首页 > 代码库 > AES SHA-1 SM3 MD5
AES SHA-1 SM3 MD5
输入:128bit 的消息分组
输出:128bit 的密文分组
密钥长度及圈数
128 10
192 12
256 14
消息 与 密钥
addroundkey//添加轮密钥
subbytes//
shiftrow//
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比特。