background image

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].