2024年4月27日发(作者:)
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位(最后结果还是32位)。X>>n是抛弃右边的n位,将各个位依次向右移动 n位,然后在左边的n位填0。因此可以叫Sn(X)位循环移位运算 3 SHA1算法描述 在SHA1算法中,我们必须把原始消息(字符串,文件等)转换成位字符串。SHA1 算法只接受位作为输入。假设我们对字符串“abc”产生消息摘要。首先,我们将它转换 成位字符串如下:
发布者:admin,转转请注明出处:http://www.yc00.com/web/1714196518a2400159.html
评论列表(0条)