background image

60

εϕαρµογής.

Οι δυνατές επιλογές για το µήκος εξόδου παρουσιάζονται συνοπτικά

στον Πίνακα 3.2.

Πίνακας 3.2: Επιλογή µήκος εξόδου.

Τιµή

00

01

10

11

Έξοδος κατακερµατισµού

224

256

384

512

Η

µονάδα

πλήρωσης

(padding)

διασϕαλίζει

ότι

το

µήνυµα

εισόδου

αποκτά

κατάλληλο

µέγεθος

ώστε

να

είναι

επεξεργάσιµο

από

τον

αλγόριθµο.

Ειδικά

στην περίπτωση του SHA-3,

η µονάδα πλήρωσης συνίσταται στην προσάρτηση

κατάλληλου αριθµού bit στο τέλος του µηνύµατος,

ώστε το συνολικό µήκος να

καταστεί ακριβές πολλαπλάσιο ενός σταθερού αριθµού bit, συµβολιζόµενου ως

r

(rate το οποίο για τον SHA-3 µπορεί να είναι 576, 832, 1088 ή 1152, ανάλογα µε το

επιθυµητό µέγεθος εξόδου).

Συγκεκριµένα, η µονάδα πλήρωση που εϕαρµόζεται στον SHA-3 περιλαµβάνει [154]:

1.

την προσθήκη ενός bit µε τιµή "1" στο τέλος του µηνύµατος,

2.

την προσθήκη τόσων bit "0" όσων απαιτούνται ώστε το συνολικό µήκος να γίνει

r − 1,

3.

και τέλος, την προσθήκη ενός ακόµη bit µε τιµή "1".

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

πολλαπλάσιο των

r bits.

Η µονάδα πλήρωση που χρησιµοποιείται στον αλγόριθµο SHA-3 επιλέγεται µε βάση

το επιθυµητό µήκος εξόδου και υλοποιείται µέσω ενός πολυπλέκτη 4 προς 1. Το µήκος

εξόδου καθορίζει την αντίστοιχη τιµή του παραµέτρου

r, η οποία µε τη σειρά της

προσδιορίζει το συγκεκριµένο σχήµα πλήρωσης που εϕαρµόζεται. Για παράδειγµα,

αν το µήκος εξόδου έχει οριστεί σε 224 bits, τότε χρησιµοποιείται σχήµα πλήρωσης

για

r = 1152 bits, όπως απεικονίζεται στο Σχήµα 3.2.

Αϕού

ολοκληρωθεί

η

πλήρωση,

το

µήνυµα

περνά

στη

µονάδα

χαρτογράϕησης,

όπου πραγµατοποιείται πράξη XOR µεταξύ των πρώτων

r bits του συµπληρωµένου

µηνύµατος και της τρέχουσας κατάστασης.

Αυτή η διαδικασία εξασϕαλίζει ότι ο

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

διαϕέρει σηµαντικά από την αρχική µορϕή του µηνύµατος.

Το αποτέλεσµα της