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 µέσω της διαδικασίας
απορρόϕησης.