33
Οι Εξισώσεις επέκτασης (2.8)-(2.10) περιγράϕουν το συγκεκριµένο βήµα, όπου κάθε
νέα λέξη που παράγεται βασίζεται τόσο στις τιµές προηγούµενων λέξεων όσο και
στις αρχικές λέξεις του µηνύµατος. Η διαδικασία αυτή ενισχύει την ανθεκτικότητα
του αλγορίθµου έναντι κρυπτογραϕικών επιθέσεων, καθώς αυξάνει την εντροπία
και
συµβάλλει
ουσιαστικά
στη
διασϕάλιση
της
ασϕάλειας
της
τελικής
τιµής
κατακερµατισµού [100].
σ
0
= ROT R
r1
(W
t−15
) XOR ROT R
r2
(W
t−15
) XOR SHR
r3
(W
t−15
)
(2.8)
σ
1
= ROT R
q1
(W
t−2
) XOR ROT R
q2
(W
t−2
) XOR SHR
q3
(W
t−2
)
(2.9)
W
t
= W
t−16
+ σ
0
+ W
t−7
+ σ
1
,
16 ≤ t ≤ n
(2.10)
οπου
t = 16 εως n, ROT R
n
(X) περιστρέϕει τη λέξη X προς τα δεξιά κατά n bit, και
SHR
n
(X) µετατοπίζει δεξιά τη λέξη X κατά n bit. Οι σταθερές n, r
1
, r
2
, r
3
, q
1
, q
2
,
και
q
3
χρησιµοποιούνται στις λειτουργίες
ROT R και SHR οι οποιες ποικίλλουν
ανάλογα µε την έκδοση του
SHA-2 που εϕαρµόζεται.
Για
n = 63 στους SHA-224 και SHA-256 οι τιµές αυτές έχουν οριστεί ως:
r
1
= 7, r
2
= 18, r
3
= 3, q
1
= 7, q
2
= 19, q
3
= 10
ενώ για
n = 79 στους SHA-384 και SHA-512:
r
1
= 1, r
2
= 8, r
3
= 7, q
1
= 19, q
2
= 61, q
3
= 6
Οι τιµές αυτές είναι προκαθορισµένες και συνδέονται άµεσα µε την αρχιτεκτονική
και
τις
απαιτήσεις
ασϕαλείας
της
κάθε
εκδόσης
του
SHA-2,
επιτρέποντας
τον
εντοπισµό και την αντιµετώπιση διαϕορετικών τύπων κρυπτογραϕικών απειλών και
επιθέσεων.
∆ύο θεµελιώδεις λογικές συναρτήσεις [101] παίζουν κεντρικό ρόλο στη διαδικασία
δηµιουργίας
του
κατακερµατισµού:
η
συνάρτηση
Choose και η συνάρτηση
M ajority. Η συνάρτηση Choose επιλέγει µεταξύ δύο εισόδων µε βάση µια τρίτη:
για κάθε θέση
bit, αν το αντίστοιχο bit της τρίτης εισόδου είναι 1, τότε επιλέγεται