background image

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,

εισάγονται

δύο

επιπλέον

λογικές

συναρτήσεις,

οι

οποίες

είναι

απαραίτητες

για

την

περαιτέρω

ενίσχυση

της

πολυπλοκότητας

και

της

δοµικής

διάχυσης

στον

αλγόριθµο.

Οι συναρτήσεις αυτές προσθέτουν επιπλέον επίπεδα πολυπλοκότητας

στην εσωτερική δοµή του αλγορίθµου, βελτιώνοντας την ανθεκτικότητά του έναντι

επιθέσεων σύγκρουσης κατακερµατισµού, όπου δύο διαϕορετικές είσοδοι ενδέχεται

να παράγουν τον ίδιο κατακερµατισµό.

Η

συνάρτηση

(2.13),

υλοποιεί

µια

σειρά

από

περιστροϕές

και

λογικές

πράξεις

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)

Αντίστοιχα,

η

συνάρτηση

(2.14),

ακολουθεί

µια

παρόµοια

διαδικασία,

αλλά

µε

διαϕορετικές

τιµές

περιστροϕής.

Αυτή

η

διαϕορά

στις

τιµές

περιστροϕής

διασϕαλίζει ότι οι δύο συναρτήσεις παράγουν διαϕορετικά µοτίβα από την ίδια

είσοδο, προσθέτοντας µια στρώση ασϕάλειας στη διαδικασία [102].

1

(x) = ROT R

q

1

(x) XOR ROT R

q

2

(x) XOR ROT R

q

3

(x)

(2.14)