34
το
bit από την πρώτη είσοδο· αν είναι 0, επιλέγεται το bit από τη δεύτερη είσοδο.
Αντιθέτως, η συνάρτηση
M ajority λαµβάνει υπόψη τις τιµές σε κάθε θέση bit για
τις τρεις εισόδους και επιστρέϕει εκείνη που εµϕανίζεται ως πλειοψηϕία (δηλαδή,
εάν δύο ή περισσότερες είσοδοι έχουν τιµή "1" ή "0", αυτή η τιµή επιστρέϕεται ως
αποτέλεσµα).
Choose(x, y, z) = (x AN D y) XOR ( N OT x AN D z)
(2.11)
M ajority(x, y, z) = (x AN D y) XOR (x AN D z) XOR (y AN D z)
(2.12)
Για
την
ενίσχυση
της
ασϕάλειας
της
συνάρτησης
κατακερµατισµού
SHA-2,
εισάγονται
δύο
επιπλέον
λογικές
συναρτήσεις,
οι
οποίες
είναι
απαραίτητες
για
την
περαιτέρω
ενίσχυση
της
πολυπλοκότητας
και
της
δοµικής
διάχυσης
στον
αλγόριθµο.
Οι συναρτήσεις αυτές προσθέτουν επιπλέον επίπεδα πολυπλοκότητας
στην εσωτερική δοµή του αλγορίθµου, βελτιώνοντας την ανθεκτικότητά του έναντι
επιθέσεων σύγκρουσης κατακερµατισµού, όπου δύο διαϕορετικές είσοδοι ενδέχεται
να παράγουν τον ίδιο κατακερµατισµό.
Η
συνάρτηση
υλοποιεί
µια
σειρά
από
περιστροϕές
και
λογικές
πράξεις
XOR πάνω στην είσοδο
x. Συγκεκριµένα, περιστρέϕει το x προς τα δεξιά κατά
τρεις διαϕορετικές τιµές θέσεων και στη συνέχεια εϕαρµόζει την πράξη XOR στα
αποτελέσµατα αυτών των περιστροϕών για να παράγει την τελική τιµή.
0
(x) = ROT R
r
1
(x) XOR ROT R
r
2
(x) XOR ROT R
r
3
(x)
(2.13)
Αντίστοιχα,
η
συνάρτηση
ακολουθεί
µια
παρόµοια
διαδικασία,
αλλά
µε
διαϕορετικές
τιµές
περιστροϕής.
Αυτή
η
διαϕορά
στις
τιµές
περιστροϕής
διασϕαλίζει ότι οι δύο συναρτήσεις παράγουν διαϕορετικά µοτίβα από την ίδια
είσοδο, προσθέτοντας µια στρώση ασϕάλειας στη διαδικασία [102].
1
(x) = ROT R
q
1
(x) XOR ROT R
q
2
(x) XOR ROT R
q
3
(x)
(2.14)