29
Ο αλγόριθµος SHA-1 χρησιµοποιεί πέντε µεταβλητές κατάστασης, µε ενδείξεις A,
B, C, D και E. Η διαδικασία επεξεργασίας περιλαµβάνει τέσσερις γύρους των 20
επαναλήψεων
ο
καθένας,
µε
στόχο
τη
σηµαντική
τροποποίηση
των
τιµών
των
A, B, C, D και E, έτσι ώστε να µην διατηρείται συσχέτιση µε τις αρχικές τους
τιµές.
Οι µεταβλητές αυτές ενηµερώνονται µετά από κάθε βήµα σύµϕωνα µε τις
Εξισώσεις (2.3)-(2.7).
A
t
=lef t rotation (X) by 5 bit(A
t−1
)
modular addition F
t
(B
t−1
, C
t−1
, D
t−1
)
modular addition E
t−1
modular addition W
t
modular addition K
t
(2.3)
B
t
= A
t−1
(2.4)
C
t
= lef t rotation (X) by 30 bit(B
t−1
)
(2.5)
D
t
= C
t−1
(2.6)
E
t
= D
t−1
(2.7)
Μετά
την
επεξεργασία
όλων
των
µπλοκ
του
µηνύµατος,
οι
τελικές
τιµές
των
πέντε µεταβλητών κατάστασης A, B, C, D και E συνενώνονται για να παραχθεί
ο τελικός κατακερµατισµός,
ο οποίος αποτελεί το hash του αρχικού µηνύµατος.
Το παραγόµενο hash είναι µοναδικό για το εκάστοτε µήνυµα και η ανάκτηση του
αρχικού µηνύµατος από την τιµή κατακερµατισµού είναι υπολογιστικά ανέϕικτη,
ιδιότητα
που
καθιστά
τον
SHA-1
κατάλληλο
για
εϕαρµογές
ασϕάλειας,
όπως
οι
ηλεκτρονικές
υπογραϕές
και
ο
έλεγχος
ακεραιότητας
δεδοµένων.
Ωστόσο,
εξαιτίας
των
πρόσϕατων
επιθέσεων
σύγκρουσης
και
της
συνεχώς
αυξανόµενης
υπολογιστικής ισχύος, ο SHA-1 δεν θεωρείται πλέον ασϕαλής επιλογή για πολλές
σύγχρονες εϕαρµογές [95].