background image

45

λειτουργία

θ είναι υπεύθυνη για την ανάµειξη των bits εντός των λωρίδων

σε

όλο

τον

πίνακα.

Αυτό

γίνεται

µε

τον

υπολογισµό

της

ισοτιµίας

XOR

κάθε

λωρίδας

και

τη

συνέχεια

µιας

περιστροϕής

και

εϕαρµογής

XOR

µε

άλλα bits του πίνακα, προκειµένου να προκύψει αυξηµένη διαϕοροποίηση και

κρυπτογραϕική ανθεκτικότητα.

Η Εξισώση (2.18) που περιγράϕει τη λειτουργία του βήµατος

θ χρησιµοποιεί

δύο πίνακες:

C[x] για την ισοτιµία κάθε στήλης της λωρίδας και D[x] για την

περιστροϕή της ισοτιµίας.

Η ισοτιµία κάθε στήλης συνδυάζεται µετά στην

συνέχεια µε τα bits της κατάστασης χρησιµοποιώντας XOR, δηµιουργώντας

µια

µη

γραµµική

ανάµειξη

των

δεδοµένων

που

αυξάνει

την

ασϕάλεια

του

αλγορίθµου

κατακερµατισµού

απέναντι

σε

επιθέσεις

κρυπτανάλυσης.

Η

συνεχής µεταβολή του πίνακα καταστάσεων στοχεύει στη διασϕάλιση ότι

ακόµη

και

µικρές

αλλαγές

στην

είσοδο

θα

προκαλέσουν

σηµαντικές

και

απρόβλεπτες

αλλαγές

στην

έξοδο

του

κατακερµατισµού,

ενισχύοντας

την

πολυπλοκότητα και την ασϕάλεια του κατακερµατισµού.

C[x] = A[x, 0] ⊕ A[x, 1] ⊕ A[x, 2] ⊕ A[x, 3] ⊕ A[x, 4],

για

x = 0, 1, 2, 3, 4

D[x] = C[x − 1] ⊕ (ROTATE(C[x + 1], 1)),

για

x = 0, 1, 2, 3, 4

A[x, y] = A[x, y] ⊕ D[x],

για

x = 0, 1, 2, 3, 4

(2.18)

Βήµα

ρ (rho): Αυτό το βήµα ασχολείται µε την περιστροϕή (ROTATE)

των

bits

στον

πίνακα

κατάστασης.

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

κάθε

bit

στον

πίνακα

κατάστασης περιστρέϕεται αριστερά για έναν καθορισµένο αριθµό θέσεων.

Η τιµή µετατόπισης περιστροϕής συµβολίζεται µε

r[x, y] η οποια ειναι µια

σταθερή τιµή που εκχωρείται σύµϕωνα µε τον Πίνακα 2.4.

Πίνακας 2.4: Η σταθερή τιµή

r[x, y] στο βήµα r (rho).

x = 3

x = 4

x = 0

x = 1

x = 2

y = 2

25

39

3

10

13

y = 1

55

20

36

44

6

y = 0

28

27

0

1

62

y = 4

56

14

18

2

61

y = 3

21

8

41

54

15