首页 > 代码库 > AES SHA-1 SM3 MD5

AES SHA-1 SM3 MD5

AES是美国国家标准技术研究所NIST旨在取代DES的21世纪的加密标准。

输入:128bit 的消息分组
输出:128bit 的密文分组
密钥长度及圈数
128 10
192 12
256 14
消息 与 密钥
addroundkey//添加轮密钥  每个字节与轮密钥的对应字节进行异或运算

subbytes//  字替代  经过s盒,即对每个字节进行替换,非线性部件,16个字节采用相同的s-盒
shiftrow//  行变换   每一行按字节循环以为。第一行移动0位,第二行<<<1,.....第四行《《3
mixcolumn// 列混合
addroundkey
!!!!!!!!!!上面为循环进行!!!!!!!!!!!!!!

subbutes
shiftrow
addroundkey
AES加密数据块分组长度必须为128比特,密钥长度可以是128比特、192比特、256比特中的任意一个(如果数据块及密钥长度不足时,会补齐)。AES加密有很多轮的重复和变换。大致步骤如

下:1、密钥扩展(KeyExpansion),2、初始轮(Initial Round),3、重复轮(Rounds),每一轮又包括:SubBytes、ShiftRows、MixColumns、AddRoundKey,4、最终轮(Final Round)

,最终轮没有MixColumns。

MD5算法
MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。
 

 

SHA-1
SHA (Secure Hash Algorithm,译作安全散列算法) 是美国国家安全局 (NSA) 设计,美国国家标准与技术研究院(NIST) 发布的一系列密码散列函数。
SHA-0 和 SHA-1 会从一个最大 2^64 位元的讯息中产生一串 160 位元的摘要

SM3算法:
国家密码管理局编制的商用算法,用于密码应用中的数字签名和验证、消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。对长度为l(l< 264) 比特的消息m,SM3

杂凑算法经过填充和迭代压缩,生成杂凑值,杂凑值长度为256比特。