background image

30

2.2.2

Στάδια υπολογισµών

Ο Αλγόριθµος 2.2.1 παρουσιάζει τα στάδια υπολογισµών του SHA-1. Η διαδικασία

ξεκινά µε την προεπεξεργασία του αρχικού µηνύµατος

M , η οποία διασϕαλίζει ότι

το µήκος του µηνύµατος θα είναι κατάλληλο για διαίρεση σε µπλοκ των 512 bits.

Συγκεκριµένα,

αρχικά προστίθεται στο τέλος του µηνύµατος ένα bit µε τιµή "1".

Ακολουθούν όσα bits µε τιµή "0" απαιτούνται ώστε το µήκος του µηνύµατος να γίνει

ακριβώς 64 bits λιγότερο από κάποιο ακέραιο πολλαπλάσιο των 512.

Έπειτα, στο

τέλος του µηνύµατος προσαρτάται µια ακολουθία 64 bits που αναπαριστά το µήκος

του αρχικού µηνύµατος σε δυαδική µορϕή (big-endian). Το big-endian είναι µια σειρά

κατάταξης bytes, όπου το πιο σηµαντικό byte (το "µεγάλο" άκρο) αποθηκεύεται σε

µια χαµηλή διεύθυνση µνήµης, ενώ τα λιγότερο σηµαντικά bytes αποθηκεύονται σε

υψηλότερες διευθύνσεις µνήµης. Με τον τρόπο αυτό, το τελικό, προεπεξεργασµένο

µήνυµα έχει συνολικό µήκος που είναι ακριβές πολλαπλάσιο των 512 bits.

Algorithm 2.2.1 Ο αλγόριθµος SHA-1

Require: Μήνυµα M
Ensure: 160-bit συµπύκνωµα µηνύµατος

1:

function SHA-1(M )

2:

Αρχικοποίηση των µεταβλητών

H

0

, H

1

, H

2

, H

3

, H

4

στις προκαθορισµένες

τιµές

3:

Προσθήκη µεταβλητών στο τέλος του

M

4:

Αρχικοποίηση του µετρητή των µπλοκ

N

5:

for κάθε µπλοκ N του µηνύµατος M do

6:

Παραγωγή των 80 λέξεων

W [0], . . . , W [79]

7:

Αρχικοποίηση των τιµών

A, B, C, D, E µε H

0

, H

1

, H

2

, H

3

, H

4

8:

for i = 0 µέχρι 79 do

9:

Υπολογισµός της τιµής

T EM P

10:

Ενηµέρωση των µεταβλητών

e = d, d = c, c = λογική αριστερή

περιστροϕή

b, b = a, a = T EM P

11:

end for

12:

Ενηµέρωση των

H

0

, H

1

, H

2

, H

3

, H

4

µε τις νέες τιµές

13:

end for

14:

return Το συµπύκνωµα είναι η συνένωση των H

0

, H

1

, H

2

, H

3

, H

4

15:

end function

Στη συνέχεια, το µήνυµα χωρίζεται σε µπλοκ των 512 bits, καθένα από τα οποία

επεξεργάζεται ανεξάρτητα.

Για κάθε µπλοκ

N , παράγονται 80 λέξεις W

0

έως

W

79

µέσω της διαδικασίας επέκτασης λέξεων. Κατόπιν, οι µεταβλητές κατάστασης

A, B,

C, D και E αρχικοποιούνται στις τιµές H

0

,

H

1

,

H

2

,

H

3

και

H

4

αντίστοιχα. Για καθένα

από τα 80 βήµατα του κύριου βρόχου επεξεργασίας, υπολογίζεται µια ενδιάµεση