Cryptography Reference
In-Depth Information
Algorithmus 8.2 Die Kompressionsfunktion zu SHA-256
f
SHA
(
v
:
}
512
)
1.
Zerlege
x
in 32-Bitwörter.
für
i
=0
bis
15
w
i
=
x
(
i
)
2.
Erzeuge weitere Wörter.
für
i
=16
bis
63
s
0
=
rotRight
7
(
w
i−
15
)
}
256
,x
:
{
0
,
1
{
0
,
1
⊕
rotRight
18
(
w
i−
15
)
⊕
shiftRight
3
(
w
i−
15
)
s
1
=
rotRight
17
(
w
i−
2
)
⊕
rotRight
19
(
w
i−
2
)
⊕
shiftRight
10
(
w
i−
2
)
w
i
=
w
i−
16
s
0
w
i−
7
s
1
3.
Initialisiere Zustand für Rundeniteration.
für
i
=0
bis
7
b
i
=
v
(
i
)
4.
Durchlaufe
64
Runden.
für
i
=0
bis
63
s
0
=
rotRight
2
(
b
0
)
⊕
rotRight
13
(
b
0
)
⊕
rotRight
22
(
b
0
)
m
=(
b
0
&
b
1
)
⊕
(
b
0
&
b
2
)
⊕
(
b
1
&
b
2
)
t
2
=
s
0
m
s
1
=
rotRight
6
(
b
4
)
⊕
rotRight
11
(
b
4
)
⊕
rotRight
25
(
b
4
)
(
b
4
&
b
6
)
t
1=
b
7
s
1
c
k
i
w
i
b
7
=
b
6
,
b
6
=
b
5
,
b
5
=
b
4
,
b
4
=
b
3
t
1
b
3
=
b
2
,
b
2
=
b
1
,
b
1
=
b
0
,
b
0
=
t
1
t
2
5.
Addition von
b
und Initialisierungsvektor
v
.
für
i
=0
bis 7
c
i
=
v
(
i
)
b
i
6.
Gib Kompressionswert zurück.
Gib
c
0
·c
1
· ...·c
7
aus.
c
=(
b
4
&
b
5
)
⊕
Beispiel 8.5.1 (Hashwerte von SHA-256). Es folgen drei Hashwerte von SHA-256.
1
Dabei sind die Nachrichten Zeichenketten, die dadurch als Folgen von Bits interpretiert
werden, dass jedes Zeichen durch den Bitvektor der Länge
8
gemäß ASCII ersetzt wird.
Die Hashwerte sind in hexadezimaler Schreibweise notiert.
SHA-256(»The quick brown fox jumps over the lazy dog«)
=
D7A8FBB3 07D78094 69CA9ABC B0082E4F 8D5651E4 6D3CDB76 2D02D0BF 37C9E592
SHA-256(»The quick brown fox jumps over the lazy cog«)
=
E4C4D8F3 BF76B692 DE791A17 3E053211 50F7A345 B46484FE 427F6ACC 7ECC81BE
SHA-256(
)
=
E3B0C442 98FC1C14 9AFBF4C8 996FB924 27AE41E4 649B934C A495991B 7852B855
Wie für alle in der Praxis eingesetzten Hashfunktionen existiert für SHA-256 kein
Sicherheitsbeweis. SHA-1 und MD5, die bisher in der Praxis am häufigsten eingesetz-
ten Hashfunktionen, gelten, wie für SHA-1 bereits erwähnt, sogar als unsicher (siehe
die Bemerkungen in Abschnitt 8.7). Allerdings gibt es beweisbar sichere kollisionsre-
sistente Hashfunktionen: Etwa solche, die auf zahlentheoretischen Annahmen beruhen,
1 Quelle:
http://en.wikipedia.org/wiki/Examples_of_SHA_digests