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 του συµπληρωµένου
µηνύµατος και της τρέχουσας κατάστασης.
Αυτή η διαδικασία εξασϕαλίζει ότι ο
τελικός πίνακας κατάστασης που θα υποβληθεί στον αλγόριθµο κατακερµατισµού
διαϕέρει σηµαντικά από την αρχική µορϕή του µηνύµατος.
Το αποτέλεσµα της