??xml version="1.0" encoding="utf-8" standalone="yes"?>国产乱一区二区,久久久久伊人,欧美成人精品一区二区http://www.aygfsteel.com/BigForest/category/47153.htmlq寻梦想Q自qz?/description>zh-cnTue, 23 Nov 2010 09:12:07 GMTTue, 23 Nov 2010 09:12:07 GMT60- SHA-1的Java实现 及在otp中的使用http://www.aygfsteel.com/BigForest/archive/2010/11/22/338691.htmlBigForestBigForestMon, 22 Nov 2010 06:48:00 GMThttp://www.aygfsteel.com/BigForest/archive/2010/11/22/338691.htmlhttp://www.aygfsteel.com/BigForest/comments/338691.htmlhttp://www.aygfsteel.com/BigForest/archive/2010/11/22/338691.html#Feedback0http://www.aygfsteel.com/BigForest/comments/commentRss/338691.htmlhttp://www.aygfsteel.com/BigForest/services/trackbacks/338691.html阅读全文

]]> - SHA-1-?/title>http://www.aygfsteel.com/BigForest/archive/2010/11/22/338684.htmlBigForestBigForestMon, 22 Nov 2010 06:30:00 GMThttp://www.aygfsteel.com/BigForest/archive/2010/11/22/338684.htmlhttp://www.aygfsteel.com/BigForest/comments/338684.htmlhttp://www.aygfsteel.com/BigForest/archive/2010/11/22/338684.html#Feedback0http://www.aygfsteel.com/BigForest/comments/commentRss/338684.htmlhttp://www.aygfsteel.com/BigForest/services/trackbacks/338684.html
1: FIPS 180-1 Secure Hash Standard:http://www.itl.nist.gov/fipspubs/fip180-1.htm
2: Secure Hash Standard: http://csrc.nist.gov/publications/fips/fips180-2/fips180-2.pdf
看过原文Q对SHA1׃有个大致了解了,q里再脓(chung)Z中文译吧?br />
1 SHA1法?br />
安全哈希法QSecure Hash AlgorithmQ主要适用于数?br />
{标准QDigital Signature Standard DSSQ里面定义的
数字{法QDigital Signature Algorithm DSAQ。对
于长度小?^64位的消息QSHA1会生一?60位的消息?br />
要。当接收到消息的时候,q个消息摘要可以用来验证数据
的完整性。在传输的过E中Q数据很可能会发生变化,那么q时候就会生不同的消息摘要?br />
SHA1有如下特性:不可以从消息摘要中复原信息;两个不同的消息不会生同L消息摘要?br />
2 术语和概?br />
2.1?Bit)Q字节(ByteQ和字(WordQ?br />
SHA1始终把消息当成一个位QbitQ字W串来处理。本文中Q一?#8220;?#8221;QWordQ是32位,而一?#8220;?br />
?#8221;QByteQ是8位。比如,字符?#8220;abc”可以被{换成一个位字符Ԍ01100001 01100010 01100011。它
也可以被表示?6q制字符? 0x616263.
2.2 q算W和W号
下面的逻辑q算W都被运用于“?#8221;QWordQ?br />
X^Y = XQ?Y逻辑?br />
X \/ Y = XQ?Y逻辑?br />
X XOR Y= XQ?Y逻辑异或
~X = X逻辑取反
X+Y定义如下Q?br />
?X ?Y 代表两个整数 x 和y, 其中 0 <= x < 2^32 ?0 <= y < 2^32. 令整数z = (x + y) mod 2^32.
q时?0 <= z < 2^32. z转换成字Z, 那么是 Z = X + Y.
循环左移位操作符Sn(X)。X是一个字Qn是一个整敎ͼ0<=n<=32。Sn(X) = (X<<n)OR(X>>32-n)
X<<n定义如下Q抛弃最左边的n位数字,各个位依次向左Udn位,然后?填补双的n位(最后结果还?br />
32位)。X>>n是抛弃右边的n位,各个位依次向右Udn位,然后在左边的n位填0。因此可以叫Sn(X)位@?br />
UMq算
3 SHA1法描述
在SHA1法中,我们必须把原始消息(字符Ԍ文g{)转换成位字符丌ӀSHA1法只接受位作ؓ输入。假
设我们对字符?#8220;abc”产生消息摘要。首先,我们它转换成位字符串如下:
01100001 01100010 01100011
――――――――――――?br />
‘a’=97 ‘b’=98 ‘c’=99
q个位字W串的长度ؓ24。下面我们需?个步骤来计算MD5?br />
3.1 补位
消息必须q行补位Q以使其长度在对512取模以后的余数是448。也是_Q补位后的消息长度)%512 =
448。即佉K度已l满_512取模后余数是448Q补位也必须要进行?br />
补位是这栯行的Q先补一?Q然后再?Q直到长度满_512取模后余数是448。总而言之,补位是至?br />
补一位,最多补512位。还是以前面?#8220;abc”Z昄补位的过E?br />
原始信息Q?01100001 01100010 01100011
补位W一步:01100001 01100010 01100011 1
首先补一?#8220;1”
补位W二步:01100001 01100010 01100011 10…..0
然后?23?#8220;0”
我们可以把最后补位完成后的数据用16q制写成下面的样?br />
61626380 00000000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 00000000
现在Q数据的长度?48了,我们可以q行下一步操作?br />
3.2 补长?br />
所谓的补长度是原始数据的长度补到已经q行了补位操作的消息后面。通常用一?4位的数据来表C原?br />
消息的长度。如果消息长度不大于2^64Q那么第一个字是0。在q行了补长度的操作以后,整个消息变?br />
下面q样了(16q制格式Q?br />
61626380 00000000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000018
如果原始的消息长度超q了512Q我们需要将它补?12的倍数。然后我们把整个消息分成一个一?12位的?br />
据块Q分别处理每一个数据块Q从而得到消息摘要?br />
3.3 使用的常?br />
一pd的常量字K(0), K(1), ... , K(79)Q如果以16q制l出。它们如下:
Kt = 0x5A827999 (0 <= t <= 19)
Kt = 0x6ED9EBA1 (20 <= t <= 39)
Kt = 0x8F1BBCDC (40 <= t <= 59)
Kt = 0xCA62C1D6 (60 <= t <= 79).
3.4 需要用的函数
在SHA1中我们需要一pd的函数。每个函数ft (0 <= t <= 79)都操?2位字BQCQDq且产生32位字作ؓ?br />
出。ft(B,C,D)可以如下定义
ft(B,C,D) = (B AND C) or ((NOT B) AND D) ( 0 <= t <= 19)
ft(B,C,D) = B XOR C XOR D (20 <= t <= 39)
ft(B,C,D) = (B AND C) or (B AND D) or (C AND D) (40 <= t <= 59)
ft(B,C,D) = B XOR C XOR D (60 <= t <= 79).
3.5 计算消息摘要
必须使用q行了补位和补长度后的消息来计算消息摘要。计需要两个缓冲区Q每个都??2位的字组成,
q需要一?0?2位字的缓冲区。第一?个字的缓冲区被标识ؓAQBQCQDQE。第一?个字的缓冲区被标
识ؓH0, H1, H2, H3, H4
?0个字的缓冲区被标识ؓW0, W1,..., W79
另外q需要一个一个字的TEMP~冲区?br />
Z产生消息摘要Q在W?部分中定义的16个字的数据块M1, M2,..., Mn
会依ơ进行处理,处理每个数据块Mi 包含80个步骤?br />
在处理每个数据块之前Q缓冲区 被初始化Z面的|16q制Q?br />
H0 = 0x67452301
H1 = 0xEFCDAB89
H2 = 0x98BADCFE
H3 = 0x10325476
H4 = 0xC3D2E1F0.
现在开始处理M1, M2, ... , Mn。ؓ了处?Mi,需要进行下面的步骤
(1). ?Mi 分成 16 个字 W0, W1, ... , W15, W0 是最左边的字
(2). 对于 t = 16 ?79 ?Wt = S1(Wt-3 XOR Wt-8 XOR Wt- 14 XOR Wt-16).
(3). ?A = H0, B = H1, C = H2, D = H3, E = H4.
(4) 对于 t = 0 ?79Q执行下面的循环
TEMP = S5(A) + ft(B,C,D) + E + Wt + Kt;
E = D; D = C; C = S30(B); B = A; A = TEMP;
(5). ?H0 = H0 + A, H1 = H1 + B, H2 = H2 + C, H3 = H3 + D, H4 = H4 + E.
在处理完所有的 Mn, 后,消息摘要是一?60位的字符Ԍ以下面的序标识
H0 H1 H2 H3 H4.
对于SHA256,SHA384,SHA512。你也可以用怼的办法来计算消息摘要。对消息q行补位的算法完全是一?br />
的?br />

]]>
վ֩ģ壺
|
ں|
ͭ|
|
Զ|
ϴ|
|
ľ|
ʮ|
Ȫ|
ˮ|
ͬ|
ǿ|
|
|
|
Ƥ|
|
Ҵ|
Ϣ|
|
|
|
|
Դ|
|
|
|
|
̷|
|
ɽ|
|
ʯ|
ĵ|
|
|
|
|
|
ƾ|