background image

48

να αντιστέκεται σε µια ευρύτερη γκάµα επιθέσεων και να παρέχει µια πιο

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

Πίνακας 2.5: Σταθερές τιµές

RC

i

RC

0

0x0000000000000001

RC

12

0x000000008000808B

RC

1

0x0000000000008082

RC

13

0x800000000000008B

RC

2

0x800000000000808A

RC

14

0x8000000000008089

RC

3

0x8000000080008000

RC

15

0x8000000000008003

RC

4

0x000000000000808B

RC

16

0x8000000000008002

RC

5

0x0000000080000001

RC

17

0x8000000000000080

RC

6

0x8000000080008081

RC

18

0x000000000000800A

RC

7

0x8000000000008009

RC

19

0x800000008000000A

RC

8

0x000000000000008A

RC

20

0x8000000080008081

RC

9

0x0000000000000088

RC

21

0x8000000000008080

RC

10

0x0000000080008009

RC

22

0x0000000080000001

RC

11

0x000000008000000A

RC

23

0x8000000080008008

Στο

πλαίσιο

του

SHA-3,

η

βελτιστοποίηση

της

χρήσης

των

πόρων

είναι

κρίσιµη, ειδικά όταν πρόκειται για υλοποιήσεις σε υλικό όπως FPGA ή ASIC.

Το βήµα

ι αντί να αποθηκεύεται και να χρησιµοποιείται ολόκληρη η τιµή

της στρογγυλοποιηµένης σταθεράς, η οποία είναι ένα 64-bit νούµερο, είναι

δυνατή η αποθήκευση µόνο των µη µηδενικών bits.

Αυτό συµβαίνει επειδή

πολλά από τα bits είναι µηδέν και άρα δεν συνεισϕέρουν στην τιµή XOR

που υπολογίζεται στο βήµα

ι. Με την εϕαρµογή αυτής της απλοποίησης,

µπορούν να εξοικονοµηθούν πόροι στον πίνακα κατάστασης και να µειωθεί

ο αριθµός των απαιτούµενων πράξεων XOR, οι οποίες είναι ουσιαστικές για

την εϕαρµογή της κρυπτογραϕικής λειτουργίας.

2.4.3

Σύνοψη σταδίων υπολογισµών

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

ξεκινά µε την αρχικοποίηση ενός πίνακα τριών διαστάσεων

5 × 5 λέξεων των w

bits

(κατάσταση

S), ο οποίος αρχικά περιέχει µόνο µηδενικά. Στη συνέχεια, το

εισερχόµενο µήνυµα

M υποβάλλεται σε κατάλληλη διαδικασία padding, ώστε να

διαµορϕωθεί το µήκος του σύµϕωνα µε τις απαιτήσεις του αλγορίθµου. Το µήνυµα

διασπάται

σε

διαδοχικά

µπλοκ

των

r bits, τα οποία επεξεργάζονται διαδοχικά

και κάθε µπλοκ ενσωµατώνεται στον πίνακα κατάστασης

S µέσω της διαδικασίας

απορρόϕησης.