32
2.3.1
Βασικά στοιχεία
Ο
SHA-2
χρησιµοποιεί
οκτώ
µεταβλητές
κατάστασης,
οι
οποίες
συµβολίζονται
µε
τα
γράµµατα
a,
b,
c,
d,
e,
f,
g
και
h.
Οι
µεταβλητές
αυτές
αποτελούν
τον
πυρήνα της διαδικασίας κατακερµατισµού, καθώς κάθε µία αποθηκεύει ενδιάµεσες
τιµές
κατά
τη
διάρκεια
των
διαδοχικών
ϕάσεων
του
αλγορίθµου.
Το
µέγεθος
κάθε
µεταβλητής
κατάστασης
αντιστοιχεί
στο
µέγεθος
της
λέξης
της
εκάστοτε
έκδοσης του SHA-2, προσαρµοζόµενο αναλόγως (32 ή 64 bits).
Η αρχικοποίηση
των µεταβλητών πραγµατοποιείται µε προκαθορισµένες σταθερές τιµές, οι οποίες
έχουν υπολογιστεί βάσει των δεκαδικών ψηϕίων των τετραγωνικών ή κυβικών ριζών
των πρώτων αριθµών.
Η πρακτική αυτή διασϕαλίζει ότι η αρχική κατάσταση του
αλγορίθµου είναι µοναδική και µη προβλέψιµη, προσθέτοντας έτσι ένα επιπλέον
επίπεδο ασϕάλειας στην κρυπτογραϕική διαδικασία [99].
Οι αλγόριθµοι SHA-1 και SHA-2 µοιράζονται κοινά χαρακτηριστικά όσον αϕορά
την
προετοιµασία
των
µηνυµάτων
πριν
από
τον
κατακερµατισµό.
Ένα
από
αυτά
είναι
η
διαδικασία
συµπλήρωσης
(padding),
η
οποία
διασϕαλίζει
ότι
το
µήκος του µηνύµατος γίνεται πολλαπλάσιο του µεγέθους µπλοκ του αλγορίθµου.
Συγκεκριµένα, η διαδικασία αρχίζει µε την προσθήκη ενός bit "1" στο τέλος του
πραγµατικού µηνύµατος, ακολουθούµενου από µια σειρά από bits "0" µέχρι το µήκος
να ϕτάσει το επιθυµητό µέγεθος, και ολοκληρώνεται µε την προσθήκη της δυαδικής
αναπαράστασης του µήκους του αρχικού µηνύµατος.
Για τον SHA-2, αυτή η διαδικασία διασϕαλίζει ότι το τελικό µήνυµα έχει µήκος που
είναι πολλαπλάσιο του µεγέθους µπλοκ εισόδου που απαιτεί ο αλγόριθµος: 512 bits
για τις εκδόσεις SHA-224 και SHA-256, ή 1024 bits για τις εκδόσεις SHA-384, SHA-512
και τις περικοµµένες παραλλαγές τους. Μετά το padding, το µήνυµα διασπάται σε
µπλοκ του αντίστοιχου µεγέθους, προετοιµάζοντας το για την επόµενη ϕάση της
επεξεργασίας.
Η επόµενη ϕάση, η διαδικασία επέκτασης του µηνύµατος, µετατρέπει τα αρχικά
µπλοκ σε
µια σειρά από
λέξεις που
θα χρησιµοποιηθούν
κατά
τη
διάρκεια
της
κατακερµατιστικής διαδικασίας. Για τον SHA-2, το αρχικό µήνυµα επεκτείνεται σε
64 λέξεις για τις εκδόσεις SHA-224 και SHA-256, ή σε 80 λέξεις για τις εκδόσεις
SHA-384 και SHA-512, µε τη χρήση λογικών και αριθµητικών πράξεων σε ειδικά
διαµορϕωµένες εξισώσεις. Αυτή η διαδικασία ενισχύει την πολυπλοκότητα και την
ασϕάλεια του παραγόµενου κατακερµατισµού.