2024年4月29日发(作者:)
-------------------精品文档---------------------
SHA1算法原理
1 SHA1算法简介
安全哈希算法(Secure HashAlgorithm)主要适用于数字签名标准
(Digital Signature StandardDSS)里面定义的数字签名算法(Digital
Signature AlgorithmDSA)。对于长度小于2^64位的消息,SHA1会产
生一个160位的消息摘要。当接收到消息的时候,这个消息
摘要可以用来验证数据的完整性。在传输的过程中,数据很可能会发
生变化,那么这时候就会产生不同的消息摘要。
SHA1有如下特性:不可以从消息摘要中复原信息;两个不同的消
息不会产生同样的消息摘要。
2 术语和概念
2.1位(Bit),字节(Byte)和字(Word)
SHA1始终把消息当成一个位(bit)字符串来处理。本文中,一个“字”
(Word)是32位,而一个“字节”(Byte)是8位。比如,字符串
“abc” 可以被转换成一个位字符串:01100001
0011。它也可以被表示成16进制字符串: 0x616263.
2.2 运算符和符号
)Word(下面的逻辑运算符都被运用于“字”
X^Y = X, Y逻辑与
X Y = X, Y逻辑或
X XOR Y= X, Y逻辑异或
---------------学资学习网----------------
-------------------精品文档---------------------
~X = X逻辑取反
X+Y定义如下:
字 X 和 Y 代表两个整数 x 和y, 其中 0 <= x < 2^32且 0 <= y
< 2^32. 令整数z = (x + y) mod 2^32. 这时候 0 <= z <2^32. 将z转换
成字Z, 那么就是 Z = X + Y.
循环左移位操作符Sn(X)。X是一个字,n是一个整数,0<=n<=32。
Sn(X) = (X<
X< n位,然后用0填补右边的n位(最后结果还是32位)。X>>n是抛 弃右边的n位,将各个位依次向右移动n位,然后在左边的n位填0。 因此可以叫Sn(X)位循环移位运算 3 SHA1算法描述 在SHA1算法中,我们必须把原始消息(字符串,文件等)转换成位 字符串。SHA1算法只接受位作为输入。假设我们对字符串“abc”产 生消息摘要。首先,我们将它转换成位字符串如下: 01100001 01100010 01100011 ――――――――――――― =99 'c‘=98 'b‘=97 'a‘ 这个位字符串的长度为24。下面我们需要5个步骤来计算MD5。 3.1 补位 消息必须进行补位,以使其长度在对512取模以后的余数是448。也 ---------------学资学习网----------------
发布评论