3) SHA-1算法
安全Hah算法(Secure Hash Algorithm,SHA)由美国标准与技术研究所设计并于1993年作为联邦信息处理标准( FIPS 180)发布,修改版于1995年发布(FIPS 180-1),通常称之为SHA-1。SHA-1算法的输入是长度小于264的任意消息x,输出160位的散列值。
SHA-1处理消息的过程与1VID5类似,对输入消息按512位的分组为单位进行处理,整个算法分为五个步骤:
1 、增加填充位
在消息右边增加若干比特,使其长度与448模512同余。即使消息本身已经满足上述长度要求,仍然需要进行填充。填充位数在1到512之间。填充比特的第一位是“l”,其它均为“0”。
2、附加消息长度值
用64位表示原始消息X的长度,并将其附加在步骤1所得结果之后。
3、初始化缓冲区
SHA-1算法的中间结果和最终结果保存在160位的缓冲区里,缓冲区用5个32位的寄存器表示。
4、以512位的分组(16个字)为单位处理消息
重复应用主压缩函数,以512比特作为分组,依次对每个分组进行压缩。
5、输出
最后各分组处理后的输出值即是消息x的散列值SHA-1(x)。