61
Σχήµα 3.2: Μονάδα πλήρωσης του SHA-3.
πράξης αυτής προσαρτάται µε τα επόµενα
c bits (όπου c είναι σταθερά ίση µε 1600 −
r), ολοκληρώνοντας έτσι το σχήµα προετοιµασίας του µηνύµατος για επεξεργασία
από τη συνάρτηση κατακερµατισµού.
Ο µετασχηµατισµός δεδοµένων που πραγµατοποιείται κατά την εξαγωγή της τελικής
τιµής κατακερµατισµού περιλαµβάνει την περικοπή συγκεκριµένων ψηϕίων (bits)
από την τελική κατάσταση (state), ώστε να προκύπτει το επιθυµητό µήκος εξόδου.
Η διαδικασία αυτή περιγράϕεται στην Εξίσωση (3.1), όπου τα bits που επιλέγονται
εξαρτώνται από το επιλεγµένο µήκος εξόδου (
r = 576, 832, 1088 ή 1152). Η υλοποίηση
της περικοπής επιτυγχάνεται µέσω µιας µονάδας περικοπής, η οποία βασίζεται στη
χρήση πολυπλέκτη 4 προς 1, επιτρέποντας την ευέλικτη επιλογή των κατάλληλων
bits για κάθε εκδοχή του αλγορίθµου.
State
[x, y, z] = ((Padded data r ⊕ r)||c)
∗
[64
∗
(5
∗
y + x) + z]
(3.1)
Επιπλέον, το βήµα
ι (iota) περιλαµβάνει την τροποποίηση ορισµένων bit του πίνακα
κατάστασης
A µέσω της προσθήκης (XOR) µιας στρογγυλοποιηµένης σταθεράς,
όπως περιγράϕεται στην Εξίσωση (3.2).
A
′
[x, y, z] = A[x, y, z] ⊕ RC [i
w
]
(3.2)