á
á
DD

?
E ??
HASHf
fS
óqvD 9
Dy
"
"
c
c
aa
á
D
á
D¥'à
Q ¥'à
Q
a?a?
á
á
a
F
áS
a
F
áS
%&4 %&4
aaú)ú)
F
áS
F
áS
"&4 "&4
a?S
¨
á

a?S
¨
á

4.4 4.4
asF
á
¥?¨/
asF
á
¥?¨/
aa?

á
?

á
a5 [ˉ?
á
a5 [ˉ?
á
a 7
á
á

a 7
á
á

 
"
"
c
c
aa 7
á
á

 7
á
á

 
11aa
3 &

3 &
1
12a
3 &

2
aaHASHf
aa a£ a£
aa
á5 ?
aa1,*1,*/
/
a 5 [ˉ
á
a5 [ˉ
á
a9ˉa9ˉ _°_° 8
L
BBaaHASHf
f
¥à
Q ¥à
Q
aa )BTI)BTI¥T¨¥T¨
)BTI
9?óK1
9?óK1b b
μ <¥ p_?
?b b
¨¨)BTI)BTI
T
T ."$ V¨? V¨? a£ a£b b
¨¨)BTI)BTI
£ù
£ù
3 &
b b
)BTIf
V¨? 
á
áb b
BBaaHASHf
¥à
Q
aa)BTI)BTIf
¥?lf
¥?l
? )BTIBTIf
| ?ié¥
f
| ?i .MD1?é¥
I
:1:1  I)"4) .
I) .
I) .
bb
?
L¨? ?ó?¥
?ó?¥
,.9
9
I)"4) .
I)"4) .
^
^
úr¥b
èè? ??? ?? 
?_? ó?¥ó?¥)BTI)BTI′′ Is?
@s?
@ ) Y
""II¥¥ Y
9

^ ? V?¥? V?¥b b
?5 
!.
1
!.
1$ $!! M ) M||K

##

,,
^
^
á
á
 bbt ? V[?t ?$
$
p p Hashf
¥
I¥
I V7¤ V7¤
M||44"" H
--11
(C) ?aV ?aV M MM||||00 ' V' V¤ ¤ 00 b
BBaaHASHf
¥à
Q
aa)BTI)BTIf
¥?lf
¥?l
èè? ??? ?? 
F D
·?  ?ó?¥ ?ó?¥Y Ys?
@s?
@Z?YZ?Y
O O) Y
) Z
) Y
) Z
¥¥Z Z9

^? V?¥¥b b
?5?5 t ? V[?ót ? V[?ó M#  Hashff
′ H(M) iis
6Bós
6Bó M′′
P¤
H(M′′ )=H(M)b?"t ? V¨ M′′ ?
μ M
7
lZ?
?C7
lZ?
?Cb b
F <
·? s? ?
@ ) Y
) Z
¥
}
Y
Z
9

^? V?¥?¥b b
BBaaHASHf
¥à
Q
aa? ?? ?)BTI)BTIf
¥B?2f
¥B
.FSLMF.FSLMF4
? ?4
? ?)BTI )BTIf
?) ?¥B?2f
?) ?¥B?2

a
ê
a
ê á
3á
3)BTI)BTI
bb
bêsFêsF  f11 a
êf
 L
} y¤Y}¤Y}  nê
{b b
f f f
M
0
M
LL--11
M
1
bêê bêê bêê
nêê nêê nêê nêê
IV=CV
0
CV
1
CV
LL--11
HASH′
CV
L
BBaaHASHf
¥à
Q
aa? ?? ?)BTI)BTIf
¥B?2f
¥B
sF|
{ ?s1 LL--11?vl1?vl1 bê¥sFê¥sFb b
A  ?? ?? LL--11?sF?@?s bêê 5| A 15| A 1
bêê b
?F?F
B?V
U
{ ?¥9ésF b
L?vl1?vl1 bê¥sFê¥sFb b
??
{ ??cécé 
[t ?A?s 
[t ?A?s 
μM] Hash′ OéM?¥
Hó′ OéM?¥
Hó ?s?s

Hé???F ?óéa Hash′M]
¥ó¥ó V79F
t ¥
4V79F
t ¥
4b
" -v
Hashf
(?¨??2b
==aaSHA--1 HASH1 Hf
1aSHA"
"
)BTI)BTIf
f
SHA"
"
)BTI)BTIf
f
^?
SSD/
ù?
(NIST)
!9¥
!9¥b b
1993
M?
 SHA--00(FIPS PUB 180180))a ??C
?a ??C
?
? ?? ?b b
1995
M??
 SHA--11
FIPSFIPSPUBPU 180180--11bb
2002
M??
 SHA--22
FIPSFIPSPUBPU 180180--22bb
SHA--22 ? 3??)BTI)BTIf
f
 SHA--256256 SHA--384384
SHA--512512
2005
M|l óB?t SHA--11¥ZE¥ZE ¨¨ 2
69
?T
s?B?
· [ - a1
^[ - a1
^ 2
80
b
NISTu
2010
Ml  SHA--11b
==aaSHA--1 HASH1 Hf
1aSHA"
"
)BTI)BTIf
f
SHA--11
^ MD5¥$
?Z  ?¥¥b b
?¨ .FSLMF4
? ? ? ?)BTI )BTI22 bbXX
$
S???S=F??
,T1S
bb
SHA--11¥
{ ?1él? 2
64
ê¥ó 
{1 160ê¥óK1ê ?
E
{ ??
E
{ ?
?? 512êé?sFsF i[sF1?êé?i[sF1?êé?
) ?) ?bb
2aSHA--11¥2
?¨?¨.F SLMF.FSLMF4
? ?4
? ?)BTI )BTI22
{
?
A


S



u
?
)
?
160êê
HASH′
==aaSHA--1 HASH1 Hf
{

ó
éé< 2
64
3aa
E
E
òò
{ ?
{ ?A A
"¥
^
P A a¥óé
@
@ 
é= NPENPEb
?A ZE
^óa?FA B?B?  ??? ??? b
? ?a?
V
U ?a? A -óéA ¥¥ ê
(Kúμrêê
 - )b
?ó'
&Xü
@

é1 p p  ˉ ?31é?A ˉ ?31é?A
 

è ? è ? ?óé1 ?óé1 êê 5 ˉ31A 5 ˉ31A  êê
P é1
P é1êê  yNA ê
yNA ê
 ??-W-Wb b
==aaSHA--1 HASH1 Hf
3aa
E
E
óó
S
u
S u

u? 5?? 32ê¥7i  (A B C D E)F?
¨? i 160ê¥?W2TK?2T?2Tb b
|7i  
S1/
 32�
ê¥ 
A 67452301 B EFCDAB8989
C 9898BADCFEBADCFE D 10325476
E CC33DD22EE11FF00
?iúμrêi??1??iúμrêi??1?b b
==aaSHA--1 HASH1 Hf
3aa
E
E
???) ??) ?
?) ?
^ SHA--11HASHHAf
¥?f
¥?b b
Q) ?B? 512ê¥sF ?ìQ
1A ?ìQ
1A
aó¥sF
Lb
==aaSHA--1 HASH1 Hf
3aa
E
E
???) ??) ?
?) ?¥2
f11 SHASHA--11¥a
êf
¥a
êf
b b
f f f
BLK
0
BLK
LL--11
BLK
1
512êê 512êê 512êê
160êê 160êê 160êê 160êê
IV=CV
0
CV
1
CV
LL--11
HASH′
==aaSHA--1 HASH1 Hf
CV
L
3aa
E
E
???) ??) ?
a
êf
^?) ?¥?
^?) ?¥?b b
?
1a


a
a 20?Y}} F?F?
1a¥
2
1a¥
2
M]M]b b
}¥
{ ?
^? -1) ?¥ 512ê¥sF BLK 160êê

u ABCDE¥
= ?¥
= ? 
a?
a? ABCDE¥
= ?÷?¥
= ?÷? 
7 O
}
P¨¥
f
?]] sY1sY1 f
1
,,f
2
,,f
3
f
4
b
?
1a¥
{D?Ba¥
{ ?MF¤?a
êf
¥
{
bb
==aaSHA--1 HASH1 Hf
==aaSHA--1 HASH1 Hf
?
B
}
P

f
f
1
?
=
}
P

f
f
2
?
?
}
P

f
f
3
?
1
}
P

f
f
4
A
B
C
D
E
A
B
C
D
E
A
B
C
D
E
A
B
C
D
E





CV
i
160êê
BLK
i
160êê
512ê
Cv
i+1
Cv
i
20?Y}?Y} 20?Y}?Y} 20?Y}?Y} 20?Y}?Y}
3aa
E
E
??
{
{
μ¥ L?? 512ê¥sF) ??a ?? L
?sF¥
{'
^ 160ê¥óK1K1b b
==aaSHA--1 HASH1 Hf
3aa
E
E
??B
,B
,
CV
0
" IV
ABCDE¥′¥′ 
CV
i+1
" CV
i
0≤ i ≤ LL--11
CV
i+1
((00))" CV
i
((00)+)+ A
i
CV
i+1
((11))" CV
i
((11)+)+ B
i
CV
i+1
((22))" CV
i
((22)+)+ C
i
CV
i+1
((33))" CV
i
((33)+)+ D
i
CV
i+1
((44))" CV
i
((44)+)+ E
i
z h" CV
L
==aaSHA--1 HASH1 Hf
+ 11

 2
32
FE
3aa
E
E
××a
êf
a
êf
??
{ B=
{ ? A
{ D=
{ ? C
{ E=
{ ? D
AaCaD
àμ
==aaSHA--1 HASH1 Hf
A B C D E
A B C D E




f
t
<<5
<<30
W
t
K
t
3aa
E
E
××a
êf
a
êf
? μ/
?
T
A,B,C,D,E←(E+f
t
(B,C,D)+(A<<55)+W)+
t
+K
t
),A,(B<<3030),C,D),C,D
} A,B,C,D,Eé? 20QY} 
1
}
1
}
80QY}}b b
t1Y}Q
I|1Y}Q
I| 
[
[ 0≤t≤79 b
? ?  f
t
(B,C,D) =?? t?
P¨¥'
f

<<s ==3232ê¥M
?ìPM sêê
W
t
=V? -sF BLK?¥?¥ 32ê¥3
K
t
=FEè
FEè
 
P¨
P¨ 4??]¥FEè
??]¥FEè
b b
+11

 2
32
FE
==aaSHA--1 HASH1 Hf
3aa
E
E
××a
êf
a
êf
f
f
t
a
P¨B?
f
a
P¨B?
f
  
{ ? (1 
{ ? (1 B,C,D(
? 32
êê )
{1B?
{1B? 32ê¥3ê¥3b b?lsY1?lsY1
?Ba 0≤t≤19 f
1
=f
t
(B,C,D)=(B∧C)∨(?B∧D)
?=a?=a 20≤t≤39 f
2
=f
t
(B,C,D)=B⊕C⊕D
? ?a? ?a 40≤t≤59 f
3
=f
t
(B,C,D)=(B∧C)∨(B∧D) ∨(C∧D)
? ?a? ?a 60≤t≤79 f
4
=f
t
(B,C,D)=B⊕C⊕D
?? f
2
f
4
?
^L?f
b
==aaSHA--1 HASH1 Hf
3aa
E
E
××a
êf
a
êf
FEè
 K
t
a
P¨B?FEè

a
P¨B?FEè
b b

}?
P¨¥FEè
,
?Ba K
t
0≤t≤19 5A827999
?=a?=a K
t
20≤t≤39 6ED9EBA16ED9 A1
? ?a? ?a K
t
40≤t≤59 8F1BBCDC
?
1a K
t
60≤t≤79 CA62C1D6
??  a
ê3 K
t
¥T¨S?
tlo?Y
{ A??
Y BaCaDaEb
==aaSHA--1 HASH1 Hf
3aa
E
E
××a
êf
a
êf
a
ê3 W
t
?
P¨V 512ê¥ósFê¥ BLK?¥B? 32êê
¥3 W
t
bby
μy
80??
[
31
[
31 80?? 32ê3 W
t

0≤t≤79bb
|| BLKs1 16?? 32ê¥3ê¥ (M
0
à M
15
) ?Z1 ?Z1 80
?? 32ê¥3 (M
0
à M
79
)b
?ZV?1
? ? 0≤t≤15,5 W
t
==MM
t
? ? 16≤t≤79,5 W
t
==(W(W
tt--1616
⊕ W
tt--1414
⊕ W
tt--88
⊕ W
tt--33
)<<)<<11
==aaSHA--1 HASH1 Hf
- - 16?Y}? W
t
¥′??ósF¥?? t
?3?3  ? ? 64?Y}? W
t
?? -
1?
W
t
′sa?ìPMBê¥2T′sa?ìPMBê¥2Tb b
?? 
a
êf
^L?f
a
ê3 W
t
¥T¨S?
tl o?Y
{o?Y
{ A
??Y BaCaDaEb
==aaSHA--1 HASH1 Hf
?i
SHA--11
^
S#?S=F?¥S=F?¥Sb b
SHA--11
" - V[?¨ - b b
MD--55$áS ?êvD|l ?
qt   
X?? ?X?? ?b b?
?¨?
?¨b b
==aaSHA--1 HASH1 Hf
1aSHA--22¥à ?
2002
M?
 SHA--22
FIPSFIPSPUBPU 180180--22bb
SHA--22 ? 3??)BTI)BTIf
f
 SHA--256256 SHA--384384
SHA--512512
"¥
D AES
¥*
9 <? ??
D SHA--111?
2M]
f
M]

M]
? ?aaSHA--2 HASH2 Hf
1aSHA--22¥à ?
SHA?
1?
? ?aaSHA--2 HASH2 Hf
SHASHA--11 SHASHA--256 SHASHA--384 SHASHA--512
hK1é
160 256 384 512
héhé
<<22
64
<<22
64
<<22
128
<<22
128
sFé
512 512 1024 1024
3é
32 32 64 64
??
80 64 80 80
? ??? ??
80 128 192 256
?,:11aa
μ¥é[1+1?ê
μ¥é[1+1?êb b
2a? ??
^·
{é1 n1+ hashf
¥
3 °t á
3
·¥yT
v?1 2
n/2
b
2aSHA-512
òSHAA--512512à ?
{ ?é<<22
128
sFé1024êê
{é512êê
? ?aaSHA--2 HASH2 Hf
2aSHA-512
óó
E
E
??A A
PA a¥é=896 mod 1024b
'
Ph éX
@

1 p p 91A 91A b b
A ? 1?? 1a? ???a? ??? 0F?bb
??Fé?Fé
A aA a ?F?F 128ê¥ vê¥ v V
Ueh¥éV
Ueh¥éb
?i ??aa???a?a 
é1é1 1024¥¥ N b
|
s? N v v
v
v 1024êê é?Y}) ?é?Y}) ?b b
? ?aaSHA--2 HASH2 Hf
F v) ?
+1
 2
64
F
? ?aaSHA--2 HASH2 Hf
h
10…0
hé
Lêê
L
N?1024êê
M
1
M
2
M
N
1024êê
1024êê 1024êê
F + F +
H
1
H
2
F +
H
N
SHAA--22 m
2aSHA-512
èè
S
u
S u

¥?W2TK?2T i? 5121+¥
u
??
u¨
u¨ 8?? 641+ ¥7i  (A,B,C,D,E,F,G,H)
V
UV
Ui|?t7i 
S1/
i|?t7i 
S1/
 641+¥?
b b
A" 66AA0909EE667667FF33BCCBCC90890 E=E=510510EE527527FADEFADE682682DD11
B" BBBB6767AEAE85848584CAACAA7373BBF=F=99BB0568805688CC22BB33EE66CC11FF
C" 33CC66EFEF372372FEFE9494FF8282BBG=G=11FF8383DD99ABFBABFB4141BDBD66BB
D" AA5454FFFF5353AA55FF11DD3636FF11H=H=55BEBE00CDCD1913719137EE21792
¤Z
T - 8?
í
|
üZ??  |l
?s¥ - |l
?s¥ - 64
1+1+bb
i%Z
T Kúμr3?i??1?3?ê?b b
? ?aaSHA--2 HASH2 Hf
2aSHA-512
éé v) ? v) ?
10241+ v¥) ?b b
80
}Y}
b b
B
}?ü 5121+
u¥′ ABCDEFGHT1
{ ? 
i÷?
u¥′b b?B
}
H?B
}
H 
u ú¥′
^?W
u ú¥′
^?W
¥¥ Hash′ H
ii--11
b
B
}
B
}?
P¨B??
P¨B? 641+¥′ W
t
 ? ? 0≤t≤79b
B
} |
P¨?F¥è
K
t
 ? ? 0≤t≤79b
80
}
}Y}Y}a
{a
{ H
i
b
i%Z
T Kúμr3?i??1?3?ê?b b
? ?aaSHA--2 HASH2 Hf
? ?aaSHA--2 HASH2 Hf
?
B
}
?
=
}
?
?
E
}
A
B
C
D
E
512êê
M
i
512êê
H
i
H
ii--11
F
G
H
A
B
C
D
E
F
G
H
A
B
C
D
E
F
G
H
+
+
+
+
+
+
+
+
h?
W
0
W
1
W
79
K
0
K
1
K
79
v) ?
2aSHA-512
êê
}f
}f
B
}¥) ?b b
'
f

CH
E,F,G =
E AND F' '

NOT E AND G
Maj
A,B,C =(A AND B)'' (A AND C)'' (B AND C)

0
512
=ROTR
28
(A)'' ROTR
34
(A)'' ROTR
39
(A)

1
512
=ROTR
14
(E)'' ROTR
18
(E)'' ROTR
41
(E)
? ROTR
i
(X)V
Uü X?ì·M iêêbb
?i - 2?f
D SHAA--11¥M]¥M] aa 2?f
?]]b b
? ?aaSHA--2 HASH2 Hf
2aSHA-512
êê
}f
}f
?Fè
K
t

80?? K
t
??UU??b
Kl¥ 80?
í
7 ?Z
í
7 ?Z  |?¥l
?s¥ - |?¥l
?s¥ - 641
++bb
?tí ?
¥l
?sμz¥
?z¥
?b b
?F K
t
 Vh"
?¥
p? Vh"
?¥
p?b b
? ?aaSHA--2 HASH2 Hf
2aSHA-512
êê
}f
}f
a
ê3 W
t

80?? W
t
??UU??b
VV 1024ê¥ v??ê¥ v?? | s? | s? 16?? 64ê¥ê¥ M
U
b
W
t
=M
U
??UU??b
W
t

1
512

W
tt--22
 + W
tt--77
+ σ
0
512

W
tt--1515
 + W
tt--1616
b
? σ
0
512

x =ROTR
1
(x)'' ROTR
8
(x) '' SHR
7
(x)(x);;
σ
1
512

x =ROTR
19
(x) '' ROTR
61
(x) '' SHR
6
(x)(x);;
SHR
i
(x)V
U xPMiêê ·HA·HA 00;;
? ?aaSHA--2 HASH2 Hf
2aSHA-512
êê
}f
}f
T
1
=H+Ch(E,F,G)+(?
1
512
E)+W
t
+K
t
T
2
=(?
0
512
A)+Maj(A,B,C)
A=T
1
+T
2
B=A
C=B
D=C
E=D+T
1
F=E
G=F
H=G
??° ¤M?¥
t¤M?¥
tb b
? ?aaSHA--2 HASH2 Hf
2aSHA-512
êê
}f
}f
? ?aaSHA--2 HASH2 Hf
A B C D E F G H
A B C D E F G H

Maj
Ch
+
+
+ +
+
+
+

W
t
K
t
2aSHA-512
a 
SHAA--512512¥2D SHAA--11M] 
SHAA--512512¥
{é1 SHAA--11éé yN F k t
yN F k t
?9 <
SHAA--512512¥¥ 4?
f
D SHAA--11M?v?v
SHAA--11
20
}
P¨B?
f

SHAA--22
}?
P ¨
1?
f

?¨? 7
S
? ??o μüV
Ll_μüV
Ll_ ?
ó? ?2
?
ó? ?2
b b
? ?aaSHA--2 HASH2 Hf
????