background image

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)