ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. ΣΑΚΕΛΛΑΡΙΟΥ ΠΑΝΑΓΙΩΤΗ του ΚΩΝΣΤΑΝΤΙΝΟΥ

Save this PDF as:
 WORD  PNG  TXT  JPG

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. ΣΑΚΕΛΛΑΡΙΟΥ ΠΑΝΑΓΙΩΤΗ του ΚΩΝΣΤΑΝΤΙΝΟΥ"

Transcript

1 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΣΧΕ ΙΑΣΜΟΥ ΟΛΟΚΛΗΡΩΜΕΝΩΝ ΚΥΚΛΩΜΑΤΩΝ ΜΕΓΑΛΗΣ ΚΛΙΜΑΚΑΣ (VLSI DESIGN) ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ του Φοιτητή του Τµήµατος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστηµίου Πατρών: ΣΑΚΕΛΛΑΡΙΟΥ ΠΑΝΑΓΙΩΤΗ του ΚΩΝΣΤΑΝΤΙΝΟΥ Αριθµός Μητρώου: 5440 Θέµα: «ΥΛΟΠΟΙΗΣΗ ΚΡΥΠΤΟ-ΕΠΕΞΕΡΓΑΣΤΙΚΗΣ ΠΛΑΤΦΟΡΜΑΣ ΓΙΑ ΠΙΣΤΟΠΟΙΗΣΗ ΜΗΝΥΜΑΤΩΝ ΣΤΟ ΠΡΟΤΥΠΟ GALOIS/COUNTER MODE (GCM)» ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ: ΓΚΟΥΤΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ Αριθµός διπλωµατική : Πάτρα, Ιούλιος 2009

2

3 ΠΙΣΤΟΠΟΙΗΣΗ Πιστοποιείται ότι η διπλωµατική εργασία µε θέµα : «ΥΛΟΠΟΙΗΣΗ ΚΡΥΠΤΟ-ΕΠΕΞΕΡΓΑΣΤΙΚΗΣ ΠΛΑΤΦΟΡΜΑΣ ΓΙΑ ΠΙΣΤΟΠΟΙΗΣΗ ΜΗΝΥΜΑΤΩΝ ΣΤΟ ΠΡΟΤΥΠΟ GALOIS/COUNTER MODE (GCM)» του Φοιτητή του Τµήµατος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστηµίου Πατρών: ΣΑΚΕΛΛΑΡΙΟΥ ΠΑΝΑΓΙΩΤΗ του ΚΩΝΣΤΑΝΤΙΝΟΥ Αριθµός Μητρώου: 5440 παρουσιάστηκε δηµόσια και εξετάστηκε στο τµήµα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών στις 6 Ιουλίου του 2009 Ο Επιβλέπων Ο ιευθυντής του τοµέα Γκούτης Κωνσταντίνος Καθηγητής Γκούτης Κωνσταντίνος Καθηγητής

4

5 Περίληψη Η παρούσα διπλωµατική προτείνει µια hardware υλοποίηση του µηχανισµού πιστοποίησης µηνυµάτων βασισµένη στο πρότυπο Galois/Counter Mode (GCM). O αλγόριθµος κρυπτογράφησης Galois/Counter Mode (GCM) εκδόθηκε από τον οργανισµό National Institute of Standards and Technology (NIST) τον Νοέµβριο του Σε συνεργασία µε τον µηχανισµός κρυπτογράφησης µηνυµάτων, υλοποιείται το πρότυπο GCM για online λειτουργία. Στο Κεφάλαιο 1, αρχικά γίνεται µια σύντοµη ιστορική αναδροµή στον τοµέα της κρυπτογραφίας. Στην συνέχεια παρουσιάζονται οι λόγοι που οδήγησαν στην δηµιουργία αυτού του αλγορίθµου. Ακολουθεί µια σύντοµη εισαγωγή στον GCM και στους τρόπους µε τους οποίος αυτός δουλεύει. Στο τέλος του κεφαλαίου αναφέρονται οι πρακτικές εφαρµογές που έχει η χρήση του GCM. Στο Κεφάλαιο 2, αρχικά αναφέρονται οι συµβολισµοί που χρησιµοποιούνται στην διπλωµατική καθώς και οι βασικές έννοιες που χρησιµοποιούνται. Στην συνέχεια, αναλύεται το µαθηµατικό υπόβαθρο που είναι απαραίτητο για την κατανόηση των εσωτερικών µηχανισµών του GCM. Η ανάλυση που γίνεται σε αυτή την ενότητα αποτελεί και την βασική αρχή στην οποία στηρίχτηκε η δηµιουργία του αλγορίθµου. Ακολουθεί η ανάλυση των µαθηµατικών συνιστωσών του GCM. Η ενότητα αυτή κατατάσσεται τόσο σε µαθηµατική ανάλυση όσο και σε hardware προσέγγιση των επιµέρους συνιστωσών. Ιδιαίτερο ενδιαφέρον παρουσιάζει η τελευταία υποενότητα του κεφαλαίου που παρουσιάζει τον τρόπο µε τον οποίο από τον σειριακό πολλαπλασιαστή στο GF(2 128 ) οδηγούµαστε στον παράλληλο πολλαπλασιαστή. Στο Κεφάλαιο 3, αρχικά παρουσιάζεται ο Advanced Encryption Standard (AES) και πιο συγκεκριµένα η forward function αυτού µε υποστηριζόµενο κλειδί 128 bit. Στην συνέχεια του κεφαλαίου, παρουσιάζονται τα πλεονεκτήµατα για την υλοποίηση µε χρήση FPGAs, επίσης γίνεται µια σύντοµη περιγραφή των βασικών διαφορών που παρουσιάζονται στις δύο οικογένειες FPGAs που χρησιµοποιήθηκαν. Στο Κεφάλαιο 4, πραγµατοποιείται η ανάλυση του αλγορίθµου GCM βασισµένη στο recommendation του NIST. Παρουσιάζονται όλοι οι επιµέρους αλγόριθµοι που χρησιµοποιούνται καθώς και ο τρόπος µε τον οποίον αυτοί αλληλεπιδρούν και συνεργάζονται για την δηµιουργία του GCM αλγορίθµου. Στο τέλος του κεφαλαίου, αναφέρονται οι απαιτήσεις για key και IV που πρέπει να ικανοποιούνται για να θεωρείται ο αλγόριθµος κρυπτογραφικά ισχυρός. Στο Κεφάλαιο 5, αρχικά γίνεται µια top down ανάλυση του GCM. Η ανάλυση αυτή χρησιµοποιείται στην δεύτερη ενότητα όπου προτείνεται και αναλύεται η αρχιτεκτονική που χρησιµοποιήθηκε για την hardware υλοποίηση. Στην συνέχεια, αναλύονται τα βασικά δοµικά στοιχεία του GCM. Στην τελευταία ενότητα αναφέρεται η δοµή που χρησιµοποιήθηκε µε σκοπό την υλοποίηση για high speed απαιτήσεις. Στο Κεφάλαιο 6, αρχικά γίνεται εισαγωγή στον µηχανισµό πιστοποίησης µηνυµάτων έτσι όπως αυτό υλοποιήθηκε. Στην συνέχεια, παραθέτονται τα αποτέλεσµα που προέκυψαν από την εξοµοίωση του VHDL κώδικα. Ακολουθούν τα αποτελέσµατα της σύνθεσης και σύγκριση µεταξύ διαφορετικών τρόπων υλοποίησης. Στο τέλος του κεφαλαίου γίνεται σύγκριση µεταξύ των δύο τεχνολογιών που χρησιµοποιήθηκαν για την σύνθεση. Στο κεφάλαιο 7, αρχικά γίνεται εισαγωγή στον τρόπο µε τον οποίο ο µηχανισµός πιστοποίησης και κρυπτογράφησης µηνυµάτων συνεργάζονται. Στην δεύτερη ενότητα παραθέτεται ο τρόπος λειτουργίας του GCM µηχανισµού που υλοποιήθηκε.

6 Ακολουθούν τα αποτελέσµατα της εξοµοίωσης. Στην τελευταία ενότητα παραθέτονται τα αποτέλεσµα σύνθεσης σε δύο διαφορετικές τεχνολογίες. Στο Παράρτηµα Α παρουσιάζεται ο τρόπος χρήσης του Xilinx ISE που χρησιµοποιήθηκε για την σύνθεση του VHDL κώδικα για την τεχνολογία Virtex 5. Τέλος στο Παράρτηµα Β παρουσιάζονται κάποια βασικά κοµµάτια του κώδικα C.

7 Περιεχόµενα ΠΕΡΙΕΧΟΜΕΝΑ...7 ΚΕΦΑΛΑΙΟ Εισαγωγή στην κρυπτογραφία Η ανάγκη ύπαρξης του GCM Εισαγωγή στον GCM Χρήση του GCM...20 ΚΕΦΑΛΑΙΟ Συµβολισµοί και έννοιες Έννοιες Συµβολισµοί Μαθηµατικό υπόβαθρο Εισαγωγή στο πεδίο ορισµού Modular Αριθµητική Πεπερασµένο πεδίο της µορφής GF(p) Πολυωνυµική αριθµητική Το πεδίο GF(2 n ) Ανάγκη χρήσης πεδίων GF(2 n ) στους Αλγόριθµους Κρυπτογράφησης Modular Πολυωνυµική Αριθµητική Υπολογιστική θεώρηση Πρόσθεση στο GF(2 n ) πεδίο Πολλαπλασιασµός στο GF(2 n ) πεδίο Συµπεράσµατα Μαθηµατικές συνιστώσες του GCM Βασικές λειτουργίες και συναρτήσεις σε Bit sting Απλές πράξεις- Συµβολισµοί Incrementing Function Μαθηµατικές συνιστώσες του AES-CTR mode S-box Πολλαπλασιασµός στο GF(2 8 ) Πολλαπλασιασµός µεταξύ Blocks GF(2 k ) Πολλαπλασιασµός Αναπαράστασης Πολυωνυµικής Βάσης Από τον σειριακό στον παράλληλο πολλαπλασιασµό ΚΕΦΑΛΑΙΟ Advanced Encryption Standard (AES) AES Cipher...56

8 3.2 Software υλοποίηση Field Programmable Gate Arrays (FPGA) ASIC Προσέγγιση Πλεονεκτήµατα των FPGAs Πλεονεκτήµατα των FPGAs στις Κρυπτογραφικές Εφαρµογές Επιλογή FPGA...68 ΚΕΦΑΛΑΙΟ Τα στοιχεία του GCM Block Cipher Οι δύο GCM λειτουργίες Πιστοποιηµένη Κρυπτογράφηση Πιστοποιηµένη Αποκρυπτογράφηση Αξιώµατα για Εµπιστευτικότητα και Πιστοποίηση Τύποι Εφαρµογών του GCM Βασικές µαθηµατικές συνιστώσες του GCM GHASH Λειτουργία GCTR Λειτουργία GCM Specification Authenticated Encryption Authenticated Decryption Απαιτήσεις µοναδικότητας των IV και Keys Επιλογή του κλειδιού Κατασκευές IV Ντετερµινιστική κατασκευή RBG-based κατασκευή Εµπόδια για τον αριθµό των Invocations Υψηλής ταχυτάτας υλοποίηση του GCM...92 ΚΕΦΑΛΑΙΟ ιεργασίες και Μηχανισµοί ιεργασία Κρυπτογράφησης (Encryption Function) Μηχανισµός Εµπιστευτικότητας Μηχανισµός πιστοποίησης µηνυµάτων ιεργασία Αποκρυπτογράφησης (Decryption Function) Αρχιτεκτονική ιάγραµµα Ροής Σχεδιασµός των βασικών δοµών (Modules Design ) οµή AES Iterative...114

9 5.3.2 οµή GHASH οµή µηχανισµού πιστοποίησης µηνυµάτων Ροή δεδοµένων στον GCM (Data Flow) High Speed αρχιτεκτονική του GCM ΚΕΦΑΛΑΙΟ Ο µηχανισµός πιστοποίησης µηνυµάτων Εξοµοιώσεις του µηχανισµού πιστοποίησης Σύνθεση του µηχανισµού πιστοποίησης Σύνθεση µε χρήση του LeonardoSpectrum AES Iterative GHASH Reg Len Pack Μηχανισµός πιστοποίησης µηνυµάτων Σύνθεση µε χρήση του Xilinx ISE 9.2i Σύγκριση τεχνολογιών ΚΕΦΑΛΑΙΟ Εισαγωγή Τρόπος χρήσης Εξοµοίωση Αποτελέσµατα σύνθεσης Σύνθεση µε χρήση του LeonardoSpectrum Σύνθεση µε χρήση του Xilinx ISE 9.2i ΠΑΡΑΡΤΗΜΑ A ΠΑΡΑΡΤΗΜΑ Β ΒΙΒΛΙΟΓΡΑΦΙΑ...193

10

11 Κεφάλαιο 1 - Εισαγωγή Εισαγωγή στην κρυπτογραφία Η κρυπτογραφία είναι ένας επιστηµονικός κλάδος που ασχολείται µε την µελέτη, την ανάπτυξη και την χρήση τεχνικών κρυπτογράφησης και αποκρυπτογράφησης µε σκοπό την απόκρυψη του περιεχοµένου των µηνυµάτων. Ιστορικά η κρυπτογραφία χρησιµοποιήθηκε για την κρυπτογράφηση µηνυµάτων δηλαδή µετατροπή της πληροφορίας από µια κανονική κατανοητή µορφή σε έναν γρίφο, που χωρίς την γνώση του κρυφού µετασχηµατισµού θα παρέµενε ακατανόητος. Κύριο χαρακτηριστικό των παλαιότερων µορφών κρυπτογράφησης ήταν ότι η επεξεργασία γινόταν πάνω στην γλωσσική δοµή. Στις νεότερες µορφές η κρυπτογραφία κάνει χρήση του αριθµητικού ισοδύναµου, η έµφαση έχει µεταφερθεί σε διάφορα πεδία των µαθηµατικών, όπως διακριτά µαθηµατικά, θεωρία αριθµών, θεωρία πληροφορίας, υπολογιστική πολυπλοκότητα, στατιστική και συνδυαστική ανάλυση. Η κρυπτογραφία παρέχει 4 βασικές λειτουργίες (αντικειµενικοί σκοποί): Εµπιστευτικότητα: Η πληροφορία προς µετάδοση είναι προσβάσιµη µόνο στα εξουσιοδοτηµένα µέλη. Η πληροφορία είναι ακατανόητη σε κάποιον τρίτο. Ακεραιότητα: Η πληροφορία µπορεί να αλλοιωθεί µόνο από τα εξουσιοδοτηµένα µέλη και δεν µπορεί να αλλοιώνεται χωρίς την ανίχνευση της αλλοίωσης. Μη απάρνηση: Ο αποστολέας ή ο παραλήπτης της πληροφορίας δεν µπορεί να αρνηθεί την αυθεντικότητα της µετάδοσης ή της δηµιουργίας της. Πιστοποίηση: Οι αποστολέας και παραλήπτης µπορούν να εξακριβώνουν τις ταυτότητές τους καθώς και την πηγή και τον προορισµό της πληροφορίας µε διαβεβαίωση ότι οι ταυτότητές τους δεν είναι πλαστές. 11

12 Ορολογία Κρυπτογράφηση (encryption) ονοµάζεται η διαδικασία µετασχηµατισµού ενός µηνύµατος σε µία ακατανόητη µορφή µε την χρήση κάποιου κρυπτογραφικού αλγορίθµου ούτως ώστε να µην µπορεί να διαβαστεί από κανέναν εκτός του νόµιµου παραλήπτη. Η αντίστροφη διαδικασία όπου από το κρυπτογραφηµένο κείµενο παράγεται το αρχικό µήνυµα ονοµάζεται αποκρυπτογράφηση (decryption). Κρυπτογραφικός αλγόριθµος (cipher) είναι η µέθοδος µετασχηµατισµού δεδοµένων σε µία µορφή που να µην επιτρέπει την αποκάλυψη των περιεχοµένων τους από µη εξουσιοδοτηµένα µέρη. Κατά κανόνα ο κρυπτογραφικός αλγόριθµος είναι µία πολύπλοκη µαθηµατική συνάρτηση. Αρχικό κείµενο (plaintext) είναι το µήνυµα το οποίο αποτελεί την είσοδο σε µία διεργασία κρυπτογράφησης. Κλειδί (key) είναι ένας αριθµός αρκετών bit που χρησιµοποιείται ως είσοδος στην συνάρτηση κρυπτογράφησης. Κρυπτογραφηµένο κείµενο (Ciphertext) είναι το αποτέλεσµα της εφαρµογής ενός κρυπτογραφικού αλγόριθµου πάνω στο αρχικό κείµενο. Κρυπτανάλυση (cryptanalysis) είναι µία επιστήµη που ασχολείται µε το "σπάσιµο" κάποιας κρυπτογραφικής τεχνικής ούτως ώστε χωρίς να είναι γνωστό το κλειδί της κρυπτογράφησης, το αρχικό κείµενο να µπορεί να αποκωδικοποιηθεί. Η διαδικασία της κρυπτογράφησης και της αποκρυπτογράφησης φαίνεται στο παρακάτω σχήµα: Εικόνα 1.1 Η κρυπτογράφηση και αποκρυπτογράφηση ενός µηνύµατος γίνεται µε τη βοήθεια ενός αλγόριθµου κρυπτογράφησης (cipher) και ενός κλειδιού κρυπτογράφησης (key). Συνήθως ο αλγόριθµος κρυπτογράφησης είναι γνωστός, οπότε η εµπιστευτικότητα του κρυπτογραφηµένου µηνύµατος που µεταδίδεται βασίζεται ως επί το πλείστον 12

13 στην µυστικότητα του κλειδιού κρυπτογράφησης. Το µέγεθος του κλειδιού κρυπτογράφησης µετριέται σε αριθµό bits. Γενικά ισχύει ο εξής κανόνας: όσο µεγαλύτερο είναι το κλειδί κρυπτογράφησης, τόσο δυσκολότερα µπορεί να αποκρυπτογραφηθεί το κρυπτογραφηµένο µήνυµα από επίδοξους εισβολείς. ιαφορετικοί αλγόριθµοι κρυπτογράφησης απαιτούν διαφορετικά µήκη κλειδιών για να πετύχουν το ίδιο επίπεδο ανθεκτικότητας κρυπτογράφησης. Ιστορική Αναδροµή Πρώτη Περίοδος Κρυπτογραφίας (1900 π.χ µ.χ.) Κατά την διάρκεια αυτής της περιόδου αναπτύχθηκε µεγάλο πλήθος µεθόδων και αλγορίθµων κρυπτογράφησης, που βασίζονταν κυρίως σε απλές αντικαταστάσεις γραµµάτων. Όλες αυτές δεν απαιτούσαν εξειδικευµένες γνώσεις και πολύπλοκες συσκευές, αλλά στηρίζονταν στην ευφυΐα και την ευρηµατικότητα των δηµιουργών τους. Όλα αυτά τα συστήµατα έχουν στις µέρες µας κρυπταναλυθεί και έχει αποδειχθεί ότι, εάν είναι γνωστό ένα µεγάλο κοµµάτι του κρυπτογραφηµένου µηνύµατος, τότε το αρχικό κείµενο µπορεί σχετικά εύκολα να επανακτηθεί. εύτερη Περίοδος Κρυπτογραφίας (1900 µ.χ µ.χ.) Η δεύτερη περίοδος της κρυπτογραφίας όπως προαναφέρθηκε τοποθετείται στις αρχές του 20ου αιώνα και φτάνει µέχρι το Καλύπτει, εποµένως, τους δύο παγκόσµιους πολέµους, εξαιτίας των οποίων (λόγω της εξαιρετικά µεγάλης ανάγκης που υπήρξε για ασφάλεια κατά την µετάδοση ζωτικών πληροφοριών µεταξύ των στρατευµάτων των χωρών) αναπτύχθηκε η κρυπτογραφία τόσο όσο δεν είχε αναπτυχθεί τα προηγούµενα 3000 χρόνια. Τα κρυπτοσυστήµατα αυτής της περιόδου αρχίζουν να γίνονται πολύπλοκα, και να αποτελούνται από µηχανικές και ηλεκτροµηχανικές κατασκευές, οι οποίες ονοµάζονται «κρυπτοµηχανές». Η κρυπτανάλυση τους, απαιτεί µεγάλο αριθµό προσωπικού, το οποίο εργαζόταν επί µεγάλο χρονικό διάστηµα ενώ ταυτόχρονα γίνεται εξαιρετικά αισθητή η ανάγκη για µεγάλη υπολογιστική ισχύ. Παρά την πολυπλοκότητα που αποκτούν τα συστήµατα κρυπτογράφησης κατά την διάρκεια αυτής της περιόδου η κρυπτανάλυση τους είναι συνήθως επιτυχηµένη. Οι Γερµανοί έκαναν εκτενή χρήση (σε διάφορες παραλλαγές) ενός συστήµατος γνωστού ως Enigma. Ο Marian Rejewski, στην Πολωνία, προσπάθησε και, τελικά, παραβίασε την πρώτη µορφή του γερµανικού στρατιωτικού συστήµατος Enigma (που χρησιµοποιούσε µια ηλεκτροµηχανική κρυπτογραφική συσκευή) χρησιµοποιώντας θεωρητικά µαθηµατικά το

14 Τρίτη Περίοδος Κρυπτογραφίας (1950 µ.χ. - Σήµερα) Αυτή η περίοδος χαρακτηρίζεται από την έξαρση της ανάπτυξης στους επιστηµονικούς κλάδους των µαθηµατικών, της µικροηλεκτρονικής και των υπολογιστικών συστηµάτων. Η εποχή της σύγχρονης κρυπτογραφίας αρχίζει ουσιαστικά µε τον Claude Shannon, αναµφισβήτητα ο πατέρας των µαθηµατικών συστηµάτων κρυπτογραφίας. Το 1949 δηµοσίευσε το έγγραφο «Θεωρία επικοινωνίας των συστηµάτων µυστικότητας» (Communication Theory of Secrecy Systems) στο τεχνικό περιοδικό Bell System και λίγο αργότερα στο βιβλίο του, «Μαθηµατική Θεωρία της Επικοινωνίας» (Mathematical Theory of Communication), µαζί µε τον Warren Weaver. Αυτά, εκτός από τις άλλες εργασίες του επάνω στην θεωρία δεδοµένων και επικοινωνίας καθιέρωσε µια στερεά θεωρητική βάση για την κρυπτογραφία και την κρυπτανάλυση. Εκείνη την εποχή η κρυπτογραφία εξαφανίζεται και φυλάσσεται από τις µυστικές υπηρεσίες κυβερνητικών επικοινωνιών όπως η NSA. Πολύ λίγες εξελίξεις δηµοσιοποιήθηκαν ξανά µέχρι τα µέσα της δεκαετίας του '70, όταν όλα άλλαξαν. Στα µέσα της δεκαετίας του '70 έγιναν δύο σηµαντικές δηµόσιες (δηλ. µη-µυστικές) πρόοδοι. Πρώτα ήταν η δηµοσίευση του σχεδίου προτύπου κρυπτογράφησης DES (Data Encryption Standard) στον οµοσπονδιακό κατάλογο της Αµερικής στις 17 Μαρτίου Το προτεινόµενο DES υποβλήθηκε από την ΙΒΜ, στην πρόσκληση του Εθνικού Γραφείου των Προτύπων (τώρα γνωστό ως NIST), σε µια προσπάθεια να αναπτυχθούν ασφαλείς ηλεκτρονικές εγκαταστάσεις επικοινωνίας για επιχειρήσεις όπως τράπεζες και άλλες µεγάλες οικονοµικές οργανώσεις. Μετά από τις συµβουλές και την τροποποίηση από την NSA, αυτό το πρότυπο υιοθετήθηκε και δηµοσιεύθηκε ως ένα οµοσπονδιακό τυποποιηµένο πρότυπο επεξεργασίας πληροφοριών το 1977 (αυτήν την περίοδο αναφέρεται σαν FIPS 46-3). Ο DES ήταν ο πρώτος δηµόσια προσιτός αλγόριθµος κρυπτογράφησης που εγκρίνεται από µια εθνική αντιπροσωπεία όπως η NSA. Η απελευθέρωση της προδιαγραφής του από την NSΑ υποκίνησε µια έκρηξη δηµόσιου και ακαδηµαϊκού ενδιαφέροντος για τα συστήµατα κρυπτογραφίας. Ο DES αντικαταστάθηκε επίσηµα από τον AES το 2001 όταν ανήγγειλε ο NIST το FIPS 197. Μετά από έναν ανοικτό διαγωνισµό, ο NIST επέλεξε τον αλγόριθµο Rijndael, που υποβλήθηκε από δύο Φλαµανδούς κρυπτογράφους, για να είναι το AES. Ο DES και οι ασφαλέστερες παραλλαγές του όπως ο 3DES ή TDES χρησιµοποιούνται ακόµα και σήµερα, ενσωµατωµένοι σε πολλά εθνικά και οργανωτικά πρότυπα. Εντούτοις, το βασικό µέγεθος των 56-bit έχει αποδειχθεί ότι είναι ανεπαρκές για να αντισταθεί στις επιθέσεις brute force (επίθεση κατά την οποία ουσιαστικά δοκιµάζει όλα τα δυνατά κλειδιά µέχρι να βρει το κατάλληλο), (µια τέτοια επίθεση πέτυχε να σπάσει τον DES σε 56 ώρες ενώ το άρθρο που αναφέρεται ως το σπάσιµο του DES δηµοσιεύτηκε από τον O'Reilly and Associates). Κατά συνέπεια, η χρήση απλής κρυπτογράφησης µε τον DES είναι τώρα χωρίς αµφιβολία επισφαλής για χρήση στα νέα σχέδια των κρυπτογραφικών συστηµάτων και µηνύµατα που προστατεύονται από τα παλαιότερα κρυπτογραφικά συστήµατα που χρησιµοποιούν DES, και όλα τα µηνύµατα που έχουν αποσταλεί από το 1976 µε την χρήση DES, διατρέχουν επίσης σοβαρό κίνδυνο αποκρυπτογράφησης. Ανεξάρτητα από την έµφυτη ποιότητά του, το βασικό µέγεθος του DES (56-bit) ήταν πιθανόν πάρα πολύ µικρό ακόµη και το 1976, πράγµα που είχε επισηµάνει ο Whitfield Diffie. Υπήρξε επίσης η υποψία ότι κυβερνητικές οργανώσεις είχαν ακόµα και τότε 14

15 ικανοποιητική υπολογιστική δύναµη ώστε να σπάσουν µηνύµατα που είχαν κρυπτογραφηθεί µε τον DES. Η ανάγκη εποµένως για αντικατάσταση του DES ήταν επιβλητική. Τα δεδοµένα από τότε έχουν αλλάξει αρκετά. Αρκετές εταιρίες και επιχειρήσεις έχουν δηµιουργήσει δικούς τους αλγόριθµους κρυπτογράφησης προκειµένου να διασφαλίσουν τα δεδοµένα τους. Κατηγορίες Κρυπτοσυστηµάτων Συµµετρικά Κρυπτοσυστήµατα Συµµετρικό κρυπτοσύστηµα είναι το σύστηµα εκείνο το οποίο χρησιµοποιεί κατά την διαδικασία της κρυπτογράφησης και αποκρυπτογράφησης ένα κοινό κλειδί. Η ασφάλεια αυτών των αλγορίθµων βασίζεται στην µυστικότητα του κλειδιού. Τα συµµετρικά κρυπτοσυστήµατα προϋποθέτουν την ανταλλαγή του κλειδιού µέσα από ένα ασφαλές κανάλι επικοινωνίας ή µέσα από την φυσική παρουσία των προσώπων. Αυτό το χαρακτηριστικό καθιστά δύσκολη την επικοινωνία µεταξύ αποµακρυσµένων ατόµων. Ασύµµετρα κρυπτοσυστήµατα Το ασύµµετρο κρυπτοσύστηµα ή κρυπτοσύστηµα δηµοσίου κλειδιού δηµιουργήθηκε για να καλύψει την αδυναµία µεταφοράς κλειδιών που παρουσίαζαν τα συµµετρικά συστήµατα. Χαρακτηριστικό του είναι ότι έχει δυο είδη κλειδιών ένα ιδιωτικό και ένα δηµόσιο. Το δηµόσιο είναι διαθέσιµο σε όλους ενώ το ιδιωτικό είναι µυστικό. Η βασική σχέση µεταξύ τους είναι: ότι κρυπτογραφεί το ένα, µπορεί να το αποκρυπτογραφήσει µόνο το άλλο. Στα σύγχρονα συστήµατα συνήθως υιοθετείται µια µέθοδος ασύµµετρου συµµετρικού όπου χρησιµοποιείται ασύµµετρο σύστηµα για την µεταφορά του κλειδιού και µετά συµµετρικό σύστηµα για την µεταφορά και κρυπτογράφηση αποκρυπτογράφηση των δεδοµένων. Με αυτό τον τρόπο εκµεταλλεύονται τα προτερήµατα και των δύο συστηµάτων. 15

16 Εφαρµογές κρυπτογραφίας Η εξέλιξη της χρησιµοποίησης της κρυπτογραφίας ολοένα αυξάνεται καθιστώντας πλέον αξιόπιστη την µεταφορά της πληροφορίας για διάφορους λειτουργικούς σκοπούς. Μερικοί από αυτούς είναι: 1. Ασφάλεια συναλλαγών σε τράπεζες δίκτυα ΑΤΜ 2. Κινητή τηλεφωνία (ΤΕΤΡΑ-ΤΕΤΡΑΠΟΛ-GSM) 3. Σταθερή τηλεφωνία (cryptophones) 4. ιασφάλιση Εταιρικών πληροφοριών 5. Στρατιωτικά δίκτυα (Τακτικά συστήµατα επικοινωνιών µάχης) 6. ιπλωµατικά δίκτυα (Τηλεγραφήµατα) 7. Ηλεκτρονικές επιχειρήσεις (πιστωτικές κάρτες, πληρωµές) 8. Ηλεκτρονική ψηφοφορία 9. Ηλεκτρονική δηµοπρασία 10. Ηλεκτρονικό γραµµατοκιβώτιο 11. Συστήµατα συναγερµών 12. Συστήµατα βιοµετρικής αναγνώρισης 13. Έξυπνες κάρτες 14. Ιδιωτικά δίκτυα (VPN) 15. Word Wide Web 16. ορυφορικές εφαρµογές (δορυφορική τηλεόραση) 17. Ασύρµατα δίκτυα (Hipperlan, bluetooth, x) 18. Συστήµατα ιατρικών δεδοµένων και άλλων βάσεων δεδοµένων 19. Τηλεσυνδιάσκεψη - Τηλεφωνία µέσω διαδικτύου (VOIP) Τέλος, για να κλείσουµε αυτή την ενότητα αναφέρουµε ότι η κρυπτογραφία και κρυπτανάλυση βρίσκονται σε ένα συνεχή αγώνα δρόµου. εν υπάρχει αλγόριθµος κρυπτογράφησης που να µην σπάει (τουλάχιστον προς το παρόν και από αυτά που γνωρίζει το ευρύ κοινό). Οι αλγόριθµοί που χρησιµοποιούνται είναι τόσο ισχυροί που να χρειάζεται πολύς χρόνος και υπολογιστική ισχύ µέχρι να αποκρυπτογραφηθεί το µήνυµα. Επίσης, γίνονται έρευνες για την χρήση διπλής κρυπτογράφησης έτσι ώστε ακόµα και µε την χρήση brute force επίθεσης να µην µπορεί κάποιος µη εξουσιοδοτηµένος να αποκρυπτογραφήσει το κρυπτογραφηµένο µήνυµα. 16

17 1.2 Η ανάγκη ύπαρξης του GCM Από το 2001, το National Institute of Standards and Technology (NIST) έχει εκδώσει τέσσερα recommendation για το Block Cipher Mode of Operation, και πιο συγκεκριµένα τα SP800-38A, SP800-38B, SP800-38C και SP800-38D. Το block cipher mode of operation είναι ένας αλγόριθµος που χρησιµοποιεί ένα συµµετρικό κλειδί για να παρέχει εµπιστευτικότητα, γνησιότητα-πιστοποίηση ή και τα δυο µαζί για την ασφάλεια της πληροφορίας. Στο πρώτο άρθρο SP800-38A, το NIST εισάγει τον AES ως αντικατάσταση του DES και προτείνει πέντε τρόπους/µεθόδους διασφάλισης της εµπιστευτικότητας που χρησιµοποιούνται µε έναν προαπαιτούµενο συµµετρικό αλγόριθµο κλειδιού. Αυτοί είναι: Electronic Codebook (ECB) mode, Cipher Block Chaining (CBC) mode, Cipher Feedback (CFB) mode, Output Feedback (OFB) mode, and Counter (CTR) mode Αυτοί οι πέντε µέθοδοι µπορούν να χωριστούν σε δύο οµάδες : σε ένα non-feedback mode group, που περιλαµβάνει τον ECB και τον CTR, και σε ένα feedback mode group, που περιλαµβάνει τους CBC, CFB και OFB. Στο feedback mode, το τρέχον εκτελέσιµο βήµα εξαρτάται από το αποτέλεσµα του προηγούµενου βήµατος. Εποµένως, για να εφαρµόσουµε αυτές τις µεθόδους σε hardware, τυπικά χρησιµοποιείται µια επαναληπτική (iterative) αρχιτεκτονική, για απαιτήσεις χαµηλής απόδοσης, και δεν χρησιµοποιείται µια pipelined αρχιτεκτονική. Κατά συνέπεια, η χρήση των ECB και CTR mode (ή των non-feedback modes) που υποστηρίζουν pipelined ή και parallelized αρχιτεκτονικές σχεδίασης (τεχνικές διοχέτευσης και παραλληλισµού) χρησιµοποιούνται για high-speed data flows. Στο δεύτερο άρθρο SP800-38B, το NIST προτείνει ένα message authentication code (MAC) αλγόριθµο που βασίζεται σε ένα συµµετρικού κλειδιού block cipher. Αυτός ο cipher-based MAC αναφέρεται ως CMAC, είτε ως Cipher Block Chaining MAC αλγόριθµος (CBC-MAC). Στο τρίτο άρθρο SP800-38C, το NIST προτείνει ένα mode of operation, το οποίο καλείται CCM, βασισµένο σε ένα συµµετρικού κλειδιού block cipher αλγόριθµο του οποίου το block size είναι 128 bits. Ο CCM παρέχει την εµπιστευτικότητα και την γνησιότητα-πιστοποίηση (authenticity) των δεδοµένων µε το να ενοποιεί τις τεχνικές του CTR mode και του CBC-MAC. Η απόδοση (throughput) της CTR mode υλοποίησης, που µπορεί να υλοποιηθεί µε τεχνικές διοχέτευσης, είναι πολύ µεγαλύτερο από την CBC-MAC υλοποίηση, που δεν µπορεί να υλοποιηθεί µε τεχνικές παραλληλισµού. Πιο συγκεκριµένα κανένα από τα τρία προτεινόµενα άρθρα SP800-38A, B, και C δεν µπορούν να υιοθετηθούν για 17

18 µια high speed network και computer systems εφαρµογή. Εποµένως, υπάρχει µια επιτακτική ανάγκη για µια µέθοδο διεργασιών (mode of operation) που να παρέχει αποτελεσµατικά εµπιστευτικότητα αλλά και πιστοποίηση των δεδοµένων σε υψηλές ταχύτητες. Το τέταρτο και τελευταίο άρθρο (προς το παρόν) της οικογένειας των security standard of Block Cipher Mode of Operation, SP800-38D, Galois/Counter Mode of Operation (GCM), συµπληρώνει την ανάγκη που παρουσιάστηκε παραπάνω. Στον GCM παρουσιάζεται η χρήση ενός εγκεκριµένου συµµετρικού κλειδιού block cipher µήκους 128 bits και µιας καθολικής hash function, ορισµένης σε ένα δυαδικό Galois field. To εγκεκριµένου συµµετρικού κλειδιού block cipher µήκους 128 bits που χρησιµοποιείται στο GCM είναι ο Advanced Encryption Standard (AES) αλγόριθµος όπως διευκρινίζεται στο Federal Information Processing Standard (FIPS). Η συγκεκριµένη καθολική hash function ορίζεται σε ένα δυαδικό Galois field και είναι ένας 128-bit πολυωνυµικός πολλαπλασιαστής στο GF(2 128 ) και καλείται GHASH. Η GHASH µπορεί να προσφέρει έναν ασφαλή, παραλληλοποιήσιµο και αποτελεσµατικό µηχανισµό πιστοποίησης. Όσο αφορά στον µηχανισµό της εµπιστευτικότητας του GCM, έχει υιοθετηθεί ένα CTR mode που εµπεριέχει ένα ECB mode του AES, το οποίο καλείται GCTR function και χρησιµοποιεί ένα θεµελιώδη block cipher. 1.3 Εισαγωγή στον GCM Σκοπός της διπλωµατικής είναι να αναλύσει και να προτείνει µια υλοποίηση του GCM βασισµένη στο τέταρτο και τελευταίο άρθρο της οικογένειας των security standard of Block Cipher Mode of Operation, SP800-38D, Galois/Counter Mode of Operation (GCM). Προσδιορίζοντας τον αλγόριθµο Galois/Counter Mode (GCM) για πιστοποιηµένη κρυπτογράφηση δεδοµένων, ο GCM αποτελείται από ένα εγκεκριµένου συµµετρικού κλειδιού block cipher µήκους 128 bits, όπως είναι ο Advanced Encryption Standard (AES). Έτσι ο GCM µπορεί να χαρακτηριστεί ως µια τροποποιηµένη βελτιωµένη έκδοση του AES αλγορίθµου. Ο GCM προσφέρει διασφάλιση της εµπιστευτικότητας των δεδοµένων (µέχρι και 64 gigabyte για κάθε επίκληση) χρησιµοποιώντας µία universal hash function που ορίζεται στο δυαδικό Galois field. Ο GCM µπορεί επίσης να προσφέρει διασφάλιση της εµπιστευτικότητας για επιπρόσθετα δεδοµένα (πρακτικά απείρου µήκους για κάθε επίκληση) τα οποία δεν κρυπτογραφούνται. Αν η είσοδος του GCM περιοριστεί σε δεδοµένα που δεν είναι για κρυπτογράφηση, τότε το αποτέλεσµα που προκύπτει από την εξειδίκευση του GCM καλείται GMAC και είναι απλά ένα authentication mode των δεδοµένων εισόδου. Στο εξής όλες οι δηλώσεις για το GCM θα εφαρµόζονται και στο GMAC. 18

19 Ο GCM παρέχει µια πιο δυνατή διασφάλιση της πιστοποίησης σε σχέση µε έναν (non cryptographic) checksum ή error detection κώδικα και πιο συγκεκριµένα µπορεί να ανιχνεύσει και µια τυχαία τροποποίηση των δεδοµένων αλλά και µια εσκεµµένη µη εξουσιοδοτηµένη τροποποίηση. ύο είναι οι λειτουργίες του GCM, η πιστοποιηµένη κρυπτογράφηση και η πιστοποιηµένη αποκρυπτογράφηση. Κάθε µία από τις λειτουργίες αυτές είναι σχετικά αποτελεσµατική και παραλληλοποιήσιµη, και εποµένως υψηλής απόδοσης εφαρµογές είναι δυνατές τόσο σε υλικό όσο και σε λογισµικό. O GCM έχει πολλά άλλα χρήσιµα χαρακτηριστικά, συµπεριλαµβανοµένων των εξής: Οι λειτουργίες του GCM είναι online µε την έννοια ότι το µήκη των εµπιστευτικών και µη εµπιστευτικών δεδοµένων δεν είναι προαπαιτούµενα αλλά µπορούν να υπολογιστούν καθώς τα δεδοµένα λαµβάνονται και επεξεργάζονται. Οι λειτουργίες του GCM απαιτούν µόνο την forward κατεύθυνση του προαπαιτούµενου block cipher (η αντίστροφη λειτουργία δεν απαιτείται). Η forward κατεύθυνση δηλαδή χρησιµοποιείται τόσο στην κρυπτογράφηση όσο και στην αποκρυπτογράφηση. Η πιστοποίηση των προστατευµένων δεδοµένων µπορεί να επαληθευθεί ανεξάρτητα από την ανάκτηση των εµπιστευµένων δεδοµένων από την κρυπτογραφηµένη τους µορφή (authentication tag). Αν το µοναδικό µπλοκ αρχικοποίησης (initialization string) είναι προβλέψιµο και το µήκος των εµπιστευτικών δεδοµένων είναι γνωστό, τότε οι block cipher επικλήσεις (invocations) µέσα στον GCM µηχανισµό κρυπτογράφησης µπορούν να προϋπολογιστούν. Αν κάποια ή όλα τα επιπρόσθετα δεδοµένα, µη-πιστοποιηµένα δεδοµένα, είναι σταθερά (fixed), τότε τα αντίστοιχα στοιχεία του GCM µηχανισµού πιστοποίησης µπορούν να προϋπολογιστούν. 19

20 1.4 Χρήση του GCM Ο GCM αλγόριθµος χρησιµοποιείται ήδη στο πρότυπο IEEE 802.1AE (MACsec) Ethernet security το οποίο καθορίζει την connectionless εµπιστευτικότητα και την ακεραιότητα των δεδοµένων για την media πρόσβαση ανεξάρτητων πρωτόκολλων. Είναι τυποποιηµένο από το IEEE στην οµάδα εργασίας. Επίσης χρησιµοποιείται στο πρωτόκολλο ANSI (INCITS) Fibre Channel Security Protocols (FC-SP) το οποίο µε την σειρά του είναι ένα gigabit speed network technology που κατά κύριο λόγο χρησιµοποιείται για storage networking (storage area network (SAN). Επιπλέον, ο GCM αλγόριθµος χρησιµοποιείται στο πρότυπο IEEE P tape storage και στο IETF IPSec standards. Είναι λοιπών εµφανές ότι ο αλγόριθµος αυτό χρησιµοποιείται σε εφαρµογές µε high throughput απαιτήσεις. Αποτελεί ένα από τους κατάλληλους αλγόριθµους όταν το κριτήριο για την απόδοση δεν είναι η επιφάνεια και η κατανάλωση αλλά η ταχύτητα. Σηµαντικό είναι επίσης το γεγονός ότι εκτός από κρυπτογράφηση των δεδοµένων παρέχει και πιστοποίηση πράγµα απαραίτητο όταν πρόκειται για storage networks ή tapes. Είναι ένας αλγόριθµος ευέλικτος αλλά και ταυτόχρονα ισχυρός. Έχουν επίσης παρουσιαστεί υλοποιήσεις αυτό το αλγορίθµου χαµηλές σε area και σε κατανάλωση κατάλληλες για wireless και mobile εφαρµογές. Σκοπός της παρούσας διπλωµατικής είναι η υλοποίηση του αλγορίθµου για high speed εφαρµογές. 20

21 Κεφάλαιο 2 - Συµβολισµοί - - Μαθηµατικό υπόβαθρο - - Μαθηµατικά στοιχεία του GCM - Σε αυτό το κεφάλαιο παραθέτονται οι βασικές έννοιες για την κατανόηση του GCM. Στην ενότητα 2.1 παρουσιάζονται οι συµβολισµοί ακρώνυµα καθώς και µια σύντοµη περιγραφή του καθενός. Στην ενότητα 2.2 γίνεται µια παρουσίαση της αρχής του πεπερασµένου πεδίου (finite field) και του πολυωνυµικού πολλαπλασιασµού στο δυαδικό πεπερασµένο πεδίο (binary finite field), δηλαδή παρουσιάζεται το µαθηµατικό υπόβαθρο που διέπει τις πράξεις και τους υπολογισµούς του GCM. Ακολούθως, στην ενότητα 2.3 αναφέρονται οι βασικές πράξεις µε παραδείγµατα που γίνονται µεταξύ των αλγορίθµων, καθώς επίσης αναλύονται τα στοιχεία του GCM στα οποία πραγµατοποιούνται µαθηµατικές πράξεις Συµβολισµοί και έννοιες Στην συνέχεια παρατίθεται πίνακας µε τις βασικές έννοιες καθώς και µια συνοπτική περιγραφή αυτών Έννοιες AAD Authenticated Encryption Authenticated Decryption Additional Authenticated Data Τα δεδοµένα εισόδου στην λειτουργία κρυπτογράφησης τα οποία πιστοποιούνται αλλά δεν κρυπτογραφούνται. Αυτά τα δεδοµένα συνήθως περιλαµβάνουν πληροφορίες για το πρωτόκολλο δικτύου που χρησιµοποιείται, τις διευθύνσεις, τις θύρες, ακολουθίες αριθµών, την έκδοση πρωτοκόλλου και άλλα πεδία για το πώς το plaintext πρέπει να χειριστεί. Η λειτουργία του GCM κατά την οποία το plaintext κρυπτογραφείται σε ciphertext και ένα authentication tag δηµιουργείται από τα AAD και το ciphertext. Εξασφαλίζεται έτσι η εµπιστευτικότητα και η πιστοποίηση των δεδοµένων αντίστοιχα. Η λειτουργία του GCM κατά την οποία το Ciphertext 21

22 Authentication Tag (Tag) Block Cipher Ciphertext FIPS Forward Cipher Function Fresh GCM AES-GCM ICB IV Initialization Vector Inverse Cipher Function Key αποκρυπτογραφείται σε plaintext και η γνησιότητα του ciphertext και των AAD επαληθεύεται. Είναι η αντίστροφη της παραπάνω διαδικασίας. Είναι ένα κρυπτογραφικό checksum των δεδοµένων το οποίο έχει σχεδιαστεί για να αποκαλύπτει και τα τυχαία λάθη αλλά και την σκόπιµη τροποποίηση των δεδοµένων. ηµιουργείται µε σκοπό να εξασφαλίζει την ακριβή διάδοση δεδοµένων. Μία παραµετροποιηµένη οικογένεια αναστρέψιµων διαδικασιών πάνω σε bit stings καθορισµένου µήκους. Η παράµετρος που καθορίζει τις λειτουργίες που θα γίνουν είναι ένα bit string που ονοµάζεται key. H κρυπτογραφηµένη µορφή του plaintext. Federal Information Processing Standard. Μια διαδικασία διαµόρφωσης των blocks η οποία καθορίζεται από την επιλογή του κλειδιού για το δοσµένο block cipher. Για ένα νέο δηµιουργούµενο κλειδί, η ιδιότητα της µοναδικότητας σε σχέση µε τα προηγούµενα χρησιµοποιηθέντα κλειδιά. Galois/Counter Mode Αναφέρεται στον GCM ο οποίος χρησιµοποιεί τον AES ως το προαπαιτούµενο συµµετρικό block cipher αλγόριθµο. Initial Counter Block Initialization Vector Μια αρχική τιµή µοναδική για κάθε κλειδί και διεργασία κατά την διαδικασία κρυπτογράφησης συγκεκριµένου plaintext και AAD. Η αντίστροφη διαδικασία της forward cipher function για ένα δοσµένο κλειδί. Η παράµετρος του block cipher που καθορίζει την επιλογή της forward cipher function από µία οικογένεια αναστρέψιµων διαδικασιών Ένα αλγόριθµός για την κρυπτογράφηση των δεδοµένων που βασίζεται σε ένα block cipher. National Institute of Standards and Technology. Mode of Operation (Mode) NIST Permutation Μια αναστρέψιµη διαδικασία Plaintext Τα δεδοµένα εισόδου στην διαδικασία πιστοποιηµένης κρυπτογράφησης τα οποία κρυπτογραφούνται και πιστοποιούνται. XOR Exclusive-OR. 22

23 2.1.2 Συµβολισµοί A C H ICB IV K P R T t The additional authenticated data Αναφέρεται και ως AAD The Ciphertext The hash subkey. The initial counter block The initialization vector. The block cipher key. The plaintext. The constant within the algorithm for the block multiplication operation. The authentication tag. The bit length of the authentication tag. 2.2 Μαθηµατικό υπόβαθρο Οι θεµελιώδης αρχές του AES και της GHASH (όπως αυτά αναλύονται σε παρακάτω κεφάλαια) βασίζονται σε πράξεις διεργασίες σε πεπερασµένο πεδίο. Στην ενότητα αυτή, αναλύονται οι έννοιες πεδίο, πεπερασµένο πεδίο. Για να κατανοήσουµε τις έννοιες αυτές γίνεται µια αναφορά αρχικά σε άλλες µεθόδους που η εξέλιξη αυτών οδήγησαν στο πεπερασµένο πεδίο µορφής GF(2 n ). Παρατηρώντας, έτσι, την εξέλιξη στον κλάδο αυτό, γίνεται κατανοητός και ο λόγος που οδήγησε στην χρήση τέτοιου είδους πεδίων Εισαγωγή στο πεδίο ορισµού Ένα πεδίο ορισµού F που συµβολίζεται και ως {F, +, }, είναι ένα σύνολο στοιχείων µε δύο δυαδικές πράξεις, την πρόσθεση και τον πολλαπλασιασµό, που για κάθε a, b, c που ανήκουν στο F ισχύουν τα ακόλουθα αξιώµατα : Το F είναι ένα ολοκληρωµένο πεδίο ορισµού (integral domain) που ικανοποιεί το αξίωµα Α1 µέσω του Α5 και του Μ1 µέσω του Μ6 όπως παρουσιάζονται στο πίνακα που ακολουθεί. Τα αξιώµατα που ικανοποιούνται εντός ενός πεδίου ορισµού παρουσιάζονται στο παρακάτω πίνακα µε παραδείγµατα : 23

24 Εικόνα 2.1 Ουσιαστικά, ένα πεδίο ορισµού είναι ένα σύνολο στο οποίο µπορεί να γίνει πρόσθεση, αφαίρεση, πολλαπλασιασµός, διαίρεση µεταξύ των στοιχείων του πεδίου και το αποτέλεσµα αυτών να ανήκει στο πεδίο ορισµού. Η διαίρεση ορίζεται από τον εξής κανόνα a/b = a*(b -1 ), όπως και η αφαίρεση από τον κανόνα a-b = a+(-b). Γνώριµα παραδείγµατα των πεδίων είναι οι δυαδικοί αριθµοί, οι πραγµατικοί αριθµοί και οι µιγαδικοί αριθµοί. Σηµειώνεται ότι οι ακέραιοι αριθµοί δεν αποτελούν είδος πεδίου ορισµού αφού δεν έχουν όλα τα στοιχεία του συνόλου τον αντίστροφό του. Στην πραγµατικότητα µόνο το 1 και το -1 έχουν αντίστροφο που είναι και ο εαυτός τους. Στα προηγούµενα αναφέραµε το πεδίο ορισµού ως ένα σύνολο που ακολουθεί όλα τα αξιώµατα του παραπάνω πίνακα. Τα παραπάνω πεδία ορισµού, που ορίζονται µέσω των αξιωµάτων του πίνακα, είναι απείρου µεγέθους (δεν έχουν πεπερασµένο πλήθος στοιχείων) π.χ. πραγµατικοί αριθµοί. Στην κρυπτογραφία όµως, τέτοιου είδους πεδία δεν παρουσιάζουν ιδιαίτερο ενδιαφέρον, για την ακρίβεια δεν παρουσιάζουν κανένα ενδιαφέρον. Αντιθέτως, πεπερασµένα πεδία (πεπερασµένων στοιχείων και πεπερασµένου µήκους), παίζουν πολύ σηµαντικό ρόλο στους αλγόριθµους κρυπτογραφίας και αυτό γιατί έχουµε να κάνουµε µε λογικά κυκλώµατα, λογικές πράξεις και πεπερασµένου χώρου µνήµες. Ωστόσο, οι αρχές των πεπερασµένων πεδίων που χρησιµοποιούνται στην κρυπτογραφία, βασίζονται σε αυτές των πεδίων απείρου µήκους που ορίστηκαν πρωτύτερα. 24

25 Modular Αριθµητική Στα µαθηµατικά, modular arithmetic (µερικές φορές ονοµάζεται και clock arithmetic) είναι ένα σύστηµα για την αριθµητική ακεραίων, όπου οι αριθµοί ξεκινούν από την αρχή και έχουν πεδίο ορισµού µέχρι µία καθορισµένη τιµή - το modulus. Η Modular αριθµητική εισήχθη από τον Carl Friedrich Gauss στο βιβλίο του Disquisitions Arithmetical, που δηµοσιεύθηκε το Είναι µια πολύ καλή και σχετικά απλή προσέγγιση που µας εγγυάται ότι όλοι οι αριθµοί θα χωράνε σε register n-bit τέτοιο ώστε 2 n modulus. Εκµεταλλευόµαστε καλύτερα αυτή την αριθµητική όταν επιλέγουµε modulus = 2 n γιατί έτσι χρησιµοποιούνται όλοι οι δυνατοί συνδυασµοί bit. Πολλές φορές όµως και ιδιαίτερα στην κρυπτογραφία και γενικά σε εφαρµογές που θέλουµε να µην υπάρχουν πολλές συγκρούσεις, π.χ. σε συναρτήσεις κατακερµατισµού, επιλέγουµε τον modulus να είναι πρώτος αριθµός. Ακολουθούν ορισµοί και παραδείγµατα των βασικών πράξεων που γίνονται στην modular αριθµητική. Βασικά Παραδείγµατα: a modulo x = a mod x = Επιστρέφει το υπόλοιπο της διαίρεσης του a µε τον x. Πχ. 13 mod 6 = 1, 2 mod 5 = 2 Ως Z n ορίζουµε το σύνολο των µη αρνητικών ακεραίων που είναι µικρότεροι από το n Z n = {0, 1,...,(n-1)} Modular Arithmetic Operations: Η modular arithmetic έχει τις εξής ιδιότητες : 1. [(a mod n) + (b mod n)] mod n = (a + b) mod n 2. [(a mod n) - (b mod n)] mod n = (a - b) mod n 3. [(a mod n) x (b mod n)] mod n = (a x b) mod n Παραδείγµατα : 11 mod 8 = 3; 15 mod 8 = 7 [(11 mod 8) + (15 mod 8)] mod 8 = 10 mod 8 = 2 ( ) mod 8 = 26 mod 8 = 2 [(11 mod 8) - (15 mod 8)] mod 8 = 4 mod 8 = 4 (11 15) mod 8 = 4 mod 8 = 4 [(11 mod 8) x (15 mod 8)] mod 8 = 21 mod 8 = 5 (11 x 15) mod 8 = 165 mod 8 = 5 25

26 Στο πίνακα που ακολουθεί, παρουσιάζονται οι ιδιότητες της modular αριθµητικής. Ιδιότητες της Modular Αριθµητικής για Ακέραιους στο Z n Property - Ιδιότητα Expression - Έκφραση Commutative laws - Μεταβατική Ιδιότητα Associative laws - Προσεταιριστική Ιδιότητα Distributive laws - Επιµεριστική Ιδιότητα Identities - Ταυτότητες Additive inverse (-w) Αθροιστικό Αντίστροφο (w + x) mod n = (x + w) mod n (w x x) mod n = (x x w) mod n [(w + x) + y] mod n = [w + (x + y)] mod n [(w x x) x y] mod n = [w x (x x y)] mod n [w x (x + y)] mod n = [(w x x) + (w x y)] mod n [w + (x x y)] mod n = [(w + x) x (w + y)] mod n (0 + w) mod n = w mod n (1 + w) mod n = w mod n For each w Z n, there exists a z such that : w + z 0 mod n Να σηµειωθεί ότι, στην κρυπτογραφία, η modular αριθµητική ενισχύει άµεσα τα συστήµατα δηµόσιου κλειδιού όπως τα RSA και Diffie-Hellman, καθώς επίσης και την παροχή του πεπερασµένου πεδίου τα οποία αποτελούν τη βάση για τις ελλειπτικές καµπύλες και χρησιµοποιούνται σε µια σειρά από αλγορίθµους συµµετρικού συστήµατος συµπεριλαµβανοµένων και των AES, IDEA και RC4. 26

27 Πεπερασµένο πεδίο της µορφής GF(p) Τα πεπερασµένα πεδία κατατάσσονται ως εξής (σύµφωνα µε όσα αναφέρονται στο Jacobson 1985, σ. 287): Η σειρά ή ο αριθµός των στοιχείων ενός πεπερασµένου πεδίου είναι της µορφής p n, όπου p είναι πρώτος αριθµός που καλείται το χαρακτηριστικό του πεδίου και n είναι ένας θετικός ακέραιος. Για κάθε πρώτο αριθµό p και για οποιονδήποτε θετικό ακέραιο n, υπάρχει ένα πεπερασµένο πεδίο µε p n στοιχεία. ύο πεπερασµένα πεδία µε τον ίδιο αριθµό στοιχείων είναι ισόµορφα. Γι αυτό, υπό ορισµένες µετονοµασίες των στοιχείων του ενός από αυτά, και η πρόσθεση και ο πολλαπλασιασµός πινάκων µπορεί να γίνει όµοια µε τους αντίστοιχους πίνακες του άλλου.( Η ιδιότητα αυτή χρησιµοποιείται για υποβάθµιση πεδίο και απλούστευση πράξεων ) Η κατάταξη αυτή δικαιολογεί την χρήση µίας σχηµατικής ονοµασίας για το πεπερασµένο πεδίο που καθορίζει µόνο τη διάταξη του πεδίου. Ένας συµβολισµός που χρησιµοποιείται για ένα πεπερασµένο πεδίο είναι ο : F n p. Ένας άλλος συµβολισµός είναι GF (p n ), όπου τα γράµµατα "GF" συµβολίζουν το "Galois field". Μπορεί να δειχθεί ότι η τάξη ενός πεπερασµένου πεδίου πρέπει να είναι δύναµη ενός πρώτου αριθµού p n όπου n είναι ένας θετικός ακέραιος. Ένα πεπερασµένο πεδίο τάξης p n γράφεται γενικά ως GF(p n ) που καλείται Galois field εις τιµή του µαθηµατικού που πρώτος µελέτησε τα πεπερασµένα πεδία. Ακολουθούν ορισµοί που θα µας βοηθήσουν στην κατανόηση του GF(2 n ). Έτσι, για GF(p n ) όπου n=1 ορίζονται τα παρακάτω : Πεπερασµένα Πεδία Τάξεως p: Για ένα δοσµένο πρώτο αριθµό p, το πεπερασµένο πεδίο τάξης p, GF(p), ορίζεται ως ένα σύνολο Z p από ακέραιους { 0, 1,, p-1} µαζί µε την αριθµητική πράξη modulo p. Αν (a b ) ( a c ) mod n, τότε b c mod n, Και τότε ο a και ο n είναι Αµοιβαία πρώτοι µεταξύ τους (relatively prime). Αµοιβαία πρώτοι ονοµάζονται δύο ακέραιοι αριθµοί α, b εάν ο µόνος κοινός θετικός ακέραιος παράγοντάς τους είναι ο 1. π.χ. οι αριθµοί 8 και 15 είναι αµοιβαία πρώτοι αφού οι διαιρέτες του 8 είναι 1, 2, 4 και 8 οι διαιρέτες του 15 είναι 1, 3, 5 και 15 Ο µόνος κοινός διαιρέτης είναι ο 1. 27

28 Κάθε ακέραιος που ανήκει στο Z n έχει έναν πολλαπλασιαστικό αντίστροφο (multiplicative inverse (w -1 )) αν και µόνο αν αυτός ο ακέραιος είναι αµοιβαία πρώτος (relatively prime) στον n. Αν ο n είναι πρώτος τότε όλοι η µη µηδενικοί όροι του Z n είναι αµοιβαία πρώτοι µε τον n. Έτσι, µπορούµε να προσθέσουµε την ακόλουθη ιδιότητα για τον Z p : Multiplicative inverse (w -1 ) πολλαπλασιαστικός αντίστροφος Για κάθε w Z p, w 0, υπάρχει ένας z Z p τέτοιος ώστε w z 1 (mod p) Επειδή ο w είναι αµοιβαία πρώτος του p εάν πολλαπλασιάσουµε όλα τα στοιχεία το Z p µε τον w, τα προκύπτοντα υπόλοιπα είναι όλα τα στοιχεία του Z p µεταθεµένα. Έτσι, ακριβώς ένα από τα υπόλοιπα έχει τιµή 1. Οπότε υπάρχει ένας ακέραιος στο Z p που όταν πολλαπλασιάζεται µε τον w δίνει αποτέλεσµα 1. Αυτός ο ακέραιος είναι ο πολλαπλασιαστικός αντίστροφος (multiplicative inverse) του w και συµβολίζεται µε w -1. Οπότε, προκύπτει ότι το Z p είναι ένα πεπερασµένο πεδίο. Το απλούστερο πεπερασµένο πεδίο (finite field) είναι το GF(2). Οι πράξεις του οποίου φαίνονται στο πίνακα που ακολουθεί: Εικόνα 2.2 Σε αυτήν την περίπτωση, η πρόσθεση είναι ισοδύναµη µε µία XOR λογική πράξη και ο πολλαπλασιασµός είναι ισοδύναµος µε µία λογική πράξη AND. Παραθέτουµε στην συνέχεια ολοκληρωµένα παραδείγµατα που δείχνουν σε µορφή πίνακα τις πράξεις της πρόσθεσης και του πολλαπλασιασµού στο πεπερασµένο πεδίο GF(7). Επίσης, δίνονται οι αντίστροφοι και οι πολλαπλασιαστικοί αντίστροφοι των αριθµών: 28

29 Arithmetic in GF(7) Εικόνα 2.3 Από το παραπάνω παράδειγµα παίρνουµε τα εξής συµπεράσµατα: Το πεδίο περιέχει 7 στοιχεία 0-6. Η πρόσθεση γίνεται κανονικά για αθροίσµατα µικρότερα από 7. Αν το αριθµητικό άθροισµα είναι πάνω από 7 τότε εφαρµόζεται η πράξη modulo 7. Ο πολλαπλασιασµός είναι και αυτός µια πράξη που γίνεται κατά τα γνωστά αλλά το αποτέλεσµα είναι και εδώ modulo 7 για τιµές µεγαλύτερες του 6. Ο αριθµητικός αντίστροφος ενός αριθµού είναι ο αριθµός αυτός που αν τον προσθέσουµε στον αρχικό θα έχουµε αποτέλεσµα 0. Τον βρίσκουµε δηλαδή από τον πίνακα της πρόσθεσης στα σηµεία εκείνα όπου έχουµε 0. Τέλος ο πολλαπλασιαστικός αντίστροφος ενός αριθµού είναι ο αριθµός εκείνος που αν τους πολλαπλασιάσουµε το αποτέλεσµα θα είναι 1. Τον βρίσκουµε δηλαδή από τον πίνακα του πολλαπλασιασµού στα σηµεία εκείνα όπου έχουµε 1. Το παραπάνω παράδειγµα είναι σχετικά απλό αλλά µέσα από αυτό γίνεται κατανοητή η λογική του πεδίου της µορφής GF(p). Τα πράγµατα γίνονται πιο δύσκολα όσο το p µεγαλώνει. Επίσης, δεν ισχύον τα ίδια όταν έχουµε πεπερασµένο πεδίο της µορφής 29

30 GF(p n ). Για να γίνουν κατανοητές οι πράξεις σε τέτοιας µορφής πεδία, ονοµάζουµε την επόµενη ενότητα ως Πολυωνυµική αριθµητική Πολυωνυµική αριθµητική Πριν συνεχίσουµε την ανάλυση των πεπερασµένων πεδίων πρέπει να εισάγουµε την έννοια την πολυωνυµικής αριθµητικής. Αναφερόµαστε στα πολυώνυµα µε µία µεταβλητή x, και µπορούµε να χωρίσουµε την πολυωνυµική αριθµητική σε τρείς βασικές κατηγορίες: Συνήθης πολυωνυµική αριθµητική, όπου χρησιµοποιούνται οι βασικοί κανόνες της άλγεβρας. Πολυωνυµική αριθµητική κατά την οποία η αριθµητική στους συντελεστές εκτελεί ένα module p, όπου οι συντελεστές ανήκουν σε ένα GF(p). Πολυωνυµική αριθµητική κατά την οποία οι συντελεστές ανήκουν σε ένα GF(p) και τα πολυώνυµα έχουν οριστεί µε βάση ένα αδιαίρετο modulo πολυώνυµο m(x) του οποίου η µεγαλύτερη δύναµη είναι κάποιος ακέραιος n. Στην παρούσα ενότητα αναλύονται οι δύο πρώτες κατηγορίες ενώ στην επόµενη ενότητα αναλύεται η τελευταία κατηγορία. Το πρώτο είδος είναι γνωστό. Οι πράξεις που γίνονται µεταξύ πολυωνύµων είναι η πρόσθεση, αφαίρεση, πολλαπλασιασµός και διαίρεση. Ισχύουν οι κανόνες των κλασικών µαθηµατικών και η διαίρεση δεν ορίζεται µε το µηδενικό πολυώνυµο. Πολυωνυµική αριθµητική µε συντελεστές στο Z p Ας υποθέσουµε ότι έχουµε πολυώνυµα στα οποία οι συντελεστές είναι στοιχεία ενός πεδίου F. Αναφερόµαστε σε αυτό ως ένα πολυώνυµο σε πεδίο F. Θα παρουσιάσουµε µε ένα παράδειγµα τις πράξεις που γίνονται µεταξύ των πολυωνύµων µε τους συντελεστές αυτών να ανήκουν σε ένα πεδίο. Tα πολυώνυµα στο GF(2) παρουσιάζουν ιδιαίτερο ενδιαφέρον για το αντικείµενο µε το οποίο ασχολούµαστε. Υπενθυµίζουµε ότι στο GF(2), η πρόσθεση ισούται µε µια XOR πράξη και ο πολλαπλασιασµός µε µία λογική πράξη AND. Επιπρόσθετα, η πράξη της πρόσθεσης και της αφαίρεσης ισούται µε ένα mod 2 : = 1-1 = 0; = 1-0 = 1; = 0-1 = 1. 30

31 Έτσι έχουµε : Παρακάτω παρουσιάζουµε ένα παράδειγµα πολυωνυµικής αριθµητικής σε πεδίο GF(2). Εδώ έχουµε f(x) = ( x 7 + x 5 + x 4 + x 3 + x +1 ) και g(x) = ( x 3 + x + 1 ). Παρουσιάζεται η πρόσθεση, αφαίρεση και πολλαπλασιασµός : Εικόνα 2.4 Βλέπουµε ότι δεν έχουµε κάποιον περιορισµό στην δύναµη (βαθµό του πολυωνύµου) αλλά στους συντελεστές της µεταβλητής. 31

32 Το πεδίο GF(2 n ) Το ενδιαφέρον µας επικεντρώνεται στη περίπτωση που το πεδίο έχει µορφή GF(2 n ). Τέτοιας µορφής πεπερασµένο πεδίο έχουµε στον AES ο οποίος ορίζεται στο GF(2 8 ) καθώς και στην GHASH function η οποία ορίζεται στο GF(2 128 ). Πιο συγκεκριµένα, έχουµε πολλαπλασιασµό πινάκων στον AES στο πεδίο GF(2 8 ) που ουσιαστικά πρόκειται για πολλαπλασιασµό 8-bit αριθµών µε το 2 και το 3 και πρόσθεση αυτών που ισοδυναµεί µε λογική πράξη XOR. Στην GHASH function έχουµε πολλαπλασιασµό δύο 128-bit string. Πιο συγκεκριµένα το ένα είναι σταθερό ίσο µε το hash sub key για κάθε επίκληση. Περισσότερες λεπτοµέρειες αναφέρονται παρακάτω Ανάγκη χρήσης πεδίων GF(2 n ) στους Αλγόριθµους Κρυπτογράφησης Σχεδόν όλοι οι αλγόριθµοι κρυπτογράφησης, τόσο συµµετρικού όσο και κοινού κλειδιού, εµπεριέχουν αριθµητικές πράξεις µεταξύ ακεραίων. Εάν µία από τις πράξεις που χρησιµοποιείται στους αλγορίθµους είναι η διαίρεση, τότε είναι ανάγκη να δουλέψουµε πάνω σε πεπερασµένη αριθµητική σε ένα πεδίο. Για ευκολία και για αποτελεσµατικότητα υλοποίησης, θα ήταν βολικό να δουλέψουµε µε ακέραιους που χωράνε ακριβώς σε ένα δοσµένο αριθµό bits, χωρίς πλεονασµό σε bit patterns. Βασισµένοι σε αυτό δουλεύουµε µε ακεραίους από 0 µέχρι 2 n -1, που χωράνε ακριβώς σε µία n-bit word. Ας υποθέσουµε ότι θέλουµε να ορίσουµε έναν αλγόριθµο κρυπτογράφησης που ενεργεί πάνω σε data 8 bit κάθε φορά και θέλουµε να πραγµατοποιήσουµε µία διαίρεση. Με 8 bits, περιµένουµε να έχουµε αριθµού µεταξύ 0 και 255. Ωστόσο, το 256 δεν είναι πρώτος αριθµός, εποµένως η αριθµητική δεν µπορεί να εκτελείται στο Z 256 (αριθµητικό modulo 256), οπότε αυτό δεν µπορεί να αποτελεί ένα πεπερασµένο πεδίο. Ο κοντινότερος πρώτος αριθµός µικρότερος στο 256 είναι το 251. Έτσι, το σύνολο Ζ 251 που χρησιµοποιεί αριθµητική modulo 251 είναι ένα πεπερασµένο πεδίο. Ωστόσο, στην περίπτωση που χρησιµοποιείται 8 bit pattern οι αριθµοί 251 µέχρι 255 δεν θα χρησιµοποιούνται και κατά συνέπεια δεν χρησιµοποιείται αποτελεσµατικά ο χώρος. Όπως παρουσιάστηκε στο προηγούµενο παράδειγµα, αν όλες οι αριθµητικές πράξεις χρησιµοποιηθούν, και επιθυµούµε να χρησιµοποιούµε όλο το εύρος των ακεραίων σε n bits, η αριθµητική modulo δεν αποδίδει, κατά συνέπεια το σύνολο των ακεραίων modulo 2 n, για n>1, να µην αποτελεί πεδίο. Επιπλέον, ακόµα κι αν ένας αλγόριθµος κρυπτογράφησης χρησιµοποιεί µόνο πρόσθεση και πολλαπλασιασµό και όχι διαίρεση, η χρήση του συνόλου Z 2 n είναι αµφισβητήσιµη, όπως παρουσιάζεται στο ακόλουθο παράδειγµα: 32

33 Ας υποθέσουµε ότι θέλουµε να χρησιµοποιήσουµε ένα 3 bit block στον αλγόριθµο κρυπτογράφησης και να χρησιµοποιήσουµε µόνο την πράξη της πρόσθεσης και του πολλαπλασιασµού. Τότε, η αριθµητική modulo 8 είναι καλά ορισµένη όπως παρουσιάζεται παρακάτω: Εικόνα 2.5 Ωστόσο, στο multiplication table, οι µη µηδενικοί ακέραιοι δεν εµφανίζονται µε την ίδια συχνότητα. Από την άλλη, όπως έχει ειπωθεί υπάρχουν πεπερασµένα πεδία της µορφής GF(2 n ), οπότε υπάρχει ένα πεπερασµένο πεδίο της µορφής 2 3 =8. Η αριθµητική σε αυτό το πεδίο είναι : 33

34 Εικόνα 2.6 Σε αυτή την περίπτωση ο αριθµός των επαναλήψεων των µη µηδενικών όρων είναι ο ίδιος για τον πολλαπλασιασµό. Ανακεφαλαιώνοντας : Integer Occurrences in Z Occurrences in GF(2 3 ) Προς το παρόν ας µην επικεντρωθούµε στο πώς βγήκαν τα αποτελέσµατα του πίνακα, (Arithmetic over GF(2 3 )), αλλά ας κάνουµε κάποιες παρατηρήσεις όσο αφορά τα αποτελέσµατα. Παρατηρούµε ότι: Οι πίνακες πρόσθεσης και πολλαπλασιασµού είναι συµµετρικοί στην κύρια διαγώνιο. Όλα τα µη µηδενικά στοιχεία έχουν πολλαπλασιαστικό αντίστροφο. Το σχήµα που παρουσιάζεται παραπάνω, ικανοποιεί όλα τα αναγκαία για να είναι ένα πεπερασµένο πεδίο. Έτσι µπορούµε να αναφερόµαστε σε αυτό ως GF(2 3 ) πεπερασµένο πεδίο. 34

35 Από τον παραπάνω πίνακα είναι ευδιάκριτο γιατί επιλέγουµε να χρησιµοποιήσουµε GF(2 3 ). Αυτό που µας ενδιαφέρει στην κρυπτογραφία είναι το µήνυµα που θέλουµε να παραδώσουµε να παραµένει κρυφό µέχρι να φτάσει στον παραλήπτη. Αν χρησιµοποιούσαµε κάποια άλλη αριθµητική για τις πράξεις µας τότε θα ήταν πιο τρωτός ο αλγόριθµος σε επιθέσεις γιατί θα ήταν γνωστό από πού πρέπει να ξεκινήσει κάποιος µε σκοπό να αποκρυπτογραφήσει τον αλγόριθµο. Γενικά, αυτό που µας ενδιαφέρει, είναι όλοι οι δυνατοί αριθµοί να εµφανίζονται µε ίσες πιθανότητες. Θα ήταν λοιπόν λογικό να πούµε ότι ένας αλγόριθµος που κατανέµει τους ακεραίους άνισα, µέσω των πράξεων, µπορεί κρυπτογραφικά να είναι αδύναµος σε σχέση µε εκείνον που παρέχει οµοιόµορφη κατανοµή. Έτσι, το πεπερασµένο πεδίο της µορφής GF(2 n ) είναι ελκυστικό για κρυπτογραφικούς αλγόριθµους. Ανακεφαλαιώνοντας, ψάχνουµε για ένα σύνολο µε 2 n στοιχεία που µαζί µε τους ορισµούς της πρόσθεσης και του πολλαπλασιασµού να ορίζουν ένα πεπερασµένο (κλειστό) πεδίο. Μπορούµε να αναθέσουµε έναν ακέραιο από 0 µέχρι 2 n -1 σε κάθε στοιχείο του συνόλου. Να σηµειωθεί, ότι δεν θα χρησιµοποιήσουµε αριθµητική modular, αφού όπως είδαµε δεν µπορεί να παράγει πεπερασµένο πεδίο. Αντιθέτως, θα δειχθεί πώς η πολυωνυµική αριθµητική παρέχει τα µέσα για να δοµήσουµε ένα επιθυµητό πεπερασµένο πεδίο Modular Πολυωνυµική Αριθµητική Ας υποθέσουµε ότι έχουµε ένα σύνολο (set) S από όλα τα πολυώνυµα βαθµού µικρότερου ή ίσο του n-1 που ανήκουν στο Z p. Έτσι, κάθε πολυώνυµο έχει την µορφή: Όπου κάθε a i παίρνει τιµές από ένα σύνολο {0, 1,, p-1}. Υπάρχει δηλαδή ένα σύνολο από p n διαφορετικά πολυώνυµα στο S. Παράδειγµα : Για p = 3 και n = 2, τα 3 2 = 9 τα πολυώνυµα που ανήκον στο σύνολο είναι: 0 x 2x 1 x + 1 2x x + 2 2x

36 Με τον κατάλληλο ορισµό των αριθµητικών πράξεων, κάθε τέτοιο σύνολο είναι ένα πεπερασµένο πεδίο. Ο ορισµός περιλαµβάνει τα ακόλουθα στοιχεία: Η αριθµητική ακολουθεί τους συνήθεις κανόνες της πολυωνυµικής αριθµητικής χρησιµοποιώντας τους βασικούς κανόνες της άλγεβρας, µε τις δύο ακόλουθες βελτιώσεις: Εκτελείται αριθµητική modulo p στους συντελεστές και αυτό γιατί χρησιµοποιούµε τους κανόνες της αριθµητικής για το πεπερασµένο πεδίο Z p. Εάν το αποτέλεσµα του πολλαπλασιασµού των πολυωνύµων είναι βαθµού µεγαλύτερου από n-1, τότε το πολυώνυµο µειώνεται µε modulo µε διαιρέτη, κάποιο αδιαίρετο πολυώνυµο m(x) του βαθµού n. ηλαδή, γίνεται διαίρεση µε το m (x) και κρατάµε το υπόλοιπο. Για ένα πολυώνυµο f(x), το υπόλοιπο εκφράζεται ως r(x) = f(x) mod m(x). O Advanced Encryption Standard (AES) αλγόριθµος χρησιµοποιεί αριθµητική σε ένα πεπερασµένο πεδίο GF (2 8 ), µε πολυώνυµο διαιρέτη, το αδιαίρετο πολυώνυµο: m(x) = x 8 + x 4 + x 3 + x + 1. Ας υποθέσουµε δυο πολυώνυµα f(x) = x 6 + x 4 + x 2 + x + 1 και g(x) = x 7 + x + 1. Τότε : f(x) + g(x) = x 6 + x 4 + x 2 + x x 7 + x + 1 f(x) g(x) = x 13 + x 11 + x 9 + x 8 + x 7 + x 7 + x 5 + x 3 + x 2 + x + x 6 + x 4 + x 2 + x + 1 = x 13 + x 11 + x 9 + x 8 + x 6 + x 5 + x 4 + x => Έτσι: f(x) g(x) mod m(x) = x 7 + x Όπως και µε την απλή modulo αριθµητική, έτσι και εδώ υπάρχει η έννοια ενός συνόλου υπολοίπων σε modulo πολυωνυµική αριθµητική. Το σύνολο των υπολοίπων modulo m(x), είναι ένα n-οστού βαθµού πολυώνυµο που αποτελείται από p n 36

37 στοιχεία. Κάθε ένα από αυτά τα στοιχεία εκπροσωπείται µε ένα από τα p n πολυώνυµα βαθµού m <n. Το υπολειπόµενο κλάσµα [x + 1] modulo m(x), αποτελείται από όλα εκείνα τα πολυώνυµα α(x) όπου τα α(x) (x + 1) (mod m (x)). Αντίστοιχα, το υπολειπόµενο κλάσµα [x + 1] αποτελείται από όλα εκείνα τα πολυώνυµα α(x) που πληρούν την ισότητα α(x) mod m(x) = x + 1. Μπορεί να αποδειχθεί ότι το σύνολο όλων των πολυωνύµων modulo ενός ελάχιστου n-οστού βαθµού πολυωνύµου m(x) πληροί τα αξιώµατα όπως παρουσιάστηκαν παραπάνω, και έτσι αποτελεί ένα πεπερασµένο πεδίο. Επιπλέον, όλα τα πεπερασµένα πεδία δεδοµένου βαθµού είναι ισόµορφα. Έτσι, οποιαδήποτε δύο πεπερασµένα πεδία δοµηµένα και µε δεδοµένο βαθµό έχουν την ίδια δοµή. Για να κατασκευαστεί το πεπερασµένο πεδίο GF (2 3 ), πρέπει να επιλεγεί ένα αδιαίρετο πολυώνυµο διαιρέτης βαθµού 3. Υπάρχουν µόνο δύο τέτοια πολυώνυµα: (x 3 + x 2 + 1) και (x 3 + x + 1). Χρησιµοποιώντας το τελευταίο, ο πίνακας που ακολουθεί δείχνει την πρόσθεση και πολλαπλασιασµό πινάκων στο GF(2 3 ). Σηµειώνεται ότι αυτό το σύνολο των πινάκων έχει την ίδια διάρθρωση µε αυτή του πίνακα Arithmetic in GF(2 3 ). Έτσι, έχει επιτευχθεί να βρεθεί ένας τρόπος για να ορίσουµε ένα πεδίο για το

38 Ακολουθεί ο πίνακας : Polynomial Arithmetic Modulo (x 3 + x + 1) Υπολογιστική θεώρηση Ένα πολυώνυµο f(x) στο GF(2 n ) : Μπορεί να αναπαρασταθεί µοναδικά µε τους συντελεστές (a n1 a n2...a 0 ). Έτσι, κάθε πολυώνυµο στο GF(2 n ) µπορεί να αναπαρασταθεί µε έναν n-bit αριθµό. 38

39 Πρόσθεση στο GF(2 n ) πεδίο Είδαµε ότι η προσθήκη πολυωνύµων πραγµατοποιείται µε την προσθήκη αντίστοιχων συντελεστών, και στην περίπτωση των πολυωνύµων στο Ζ 2 η πρόσθεση είναι µόνο µια λειτουργία XOR. Έτσι, η πρόσθεση δύο πολυωνύµων στο GF (2 n ) αντιστοιχεί σε µια λειτουργία bitwise XOR Πολλαπλασιασµός στο GF(2 n ) πεδίο εν υπάρχει απλή λογική πράξη αντίστοιχη της XOR για τον πολλαπλασιασµό στο GF(2 n ). Ωστόσο, µία σχετικά απλή, εύκολα υλοποιήσιµη, τεχνική είναι διαθέσιµη. Θα συζητήσουµε την τεχνική όσον αναφορά στο GF(2 8 ) χρησιµοποιώντας ως πολυώνυµο διαιρέτη, το αδιαίρετο πολυώνυµο m (x) = x 8 + x 4 + x 3 + x + 1, που αποτελεί το πεπερασµένο πεδίο που χρησιµοποιείται στον AES. Η τεχνική αυτή εύκολα γενικεύεται για GF (2 n ). Η τεχνική βασίζεται στην παρατήρηση ότι: ( α) Σε γενικές γραµµές, στα GF(2 n ) µε ένα n-οστού βαθµού πολυώνυµο p(x), έχουµε : x n mod p(x) = [p(x) - x n ]. Τώρα, ας θεωρήσουµε ένα πολυώνυµο στο GF(2 8 ) το οποίο έχει την µορφή: f(x) = b 7 x 7 + b 6 x 6 + b 5 x 5 + b 4 x 4 + b 3 x 3 + b 2 x 2 + b 1 x + b 0, αν το πολλαπλασιάσουµε µε το x έχουµε : Αν b 7 = 0, τότε το αποτέλεσµα του πολλαπλασιασµού είναι βαθµού µικρότερου από 8, που είναι ήδη µειωµένη µορφή και δεν χρειάζεται περεταίρω υπολογισµός. Αν b 7 = 1, τότε η µείωση modulo m(x) επιτυγχάνεται χρησιµοποιώντας την ( α) : x f(x) = (b 6 x 7 + b 5 x 6 + b 4 x 5 + b 3 x 4 + b 2 x 3 + b 1 x 2 + b 0 x) + (x 4 + x 3 + x + 1) Εποµένως, ο πολλαπλασιασµός µε x (δηλαδή, ) µπορεί να εκφραστεί ως µια 1-bit αριστερή ολίσθηση που ακολουθείται από µια υπό όρους bitwise XOR µε ( ), που αντιπροσωπεύει το (x 4 + x 3 + x + 1). Συνοψίζοντας: ( β) 39

40 Ο πολλαπλασιασµός µε υψηλότερη δύναµη µπορεί να επιτευχθεί µε συνεχής επαναλήψεις της β. Με την προσθήκη ενδιάµεσων αποτελεσµάτων, ο πολλαπλασιασµός µε οποιοδήποτε σταθερά στο GF (2 8 ) µπορεί να επιτευχθεί Συµπεράσµατα Στην ενότητα αυτή, δείξαµε πώς να κατασκευαστεί ένα πεπερασµένο πεδίο βαθµού 2 n. Συγκεκριµένα, ορίσαµε ένα πεδίο GF(2 n ) µε τις εξής ιδιότητες: Το GF (2 n ) αποτελείται από 2 n στοιχεία. Οι δυαδικές διεργασίες +, ορίζονται µέσα στο σύνολο. Οι πράξεις της πρόσθεσης, αφαίρεσης, πολλαπλασιασµού και διαίρεσης µπορούν να εκτελεστούν χωρίς το αποτέλεσµα να είναι εκτός συνόλου. Κάθε στοιχείο του συνόλου, εκτός από το 0, έχει και ένα πολλαπλασιαστικό αντίστροφο. Έχουµε δείξει ότι τα στοιχεία του GF(2 n ) µπορούν να οριστούν ως το σύνολο όλων των πολυωνύµων βαθµού n-1 ή µικρότερο, µε δυαδικούς συντελεστές. Κάθε τέτοιο πολυώνυµο µπορεί να εκπροσωπείται από µια µοναδική n-bit τιµή. Μια αριθµητική ορίζεται ως πολυωνυµική modular αριθµητική εάν υπάρχει κάποιο αδιαίρετο πολυώνυµο βαθµού n, το οποίο να αποτελεί το πολυώνυµο διαιρέτη. Είδαµε επίσης ότι ένας ισοδύναµος ορισµός του πεπερασµένου πεδίου GF(2 n ) γίνεται µέσω της χρήσης µιας γεννήτριας και η αριθµητική αυτή ορίζεται χρησιµοποιώντας δυνάµεις της γεννήτριας. 40

41 2.4 Μαθηµατικές συνιστώσες του GCM Έχοντας πλέον παρουσιάσει το απαραίτητο µαθηµατικό υπόβαθρο, έτσι όπως αναλύθηκε στην παραπάνω ενότητα, έγινε κατανοητός ο λόγος χρήσης του πεδίου GF. Στην ενότητα αυτή παρουσιάζονται οι απλές µαθηµατικές πράξεις (ενότητα 2.4.1). Η ενότητα αυτή χωρίζεται σε δύο υποενότητες. Στην πρώτη παρουσιάζονται οι απλές πράξεις καθώς και οι συµβολισµοί που θα χρησιµοποιούνται στο εξής ενώ στην δεύτερη παρουσιάζεται η συνάρτηση increment έτσι όπως ορίζεται από το NIST D και αποτελεί ένα από τα απαραίτητα στοιχεία του GCM. Στην ενότητα παρουσιάζονται οι µαθηµατικές πράξεις του AES. Τέλος, στην ενότητα παρουσιάζεται ο πολλαπλασιασµός (multiplication operation blocks ) που αποτελεί και το κύριο στοιχείο της GHASH έτσι όπως θα δηχθεί σε επόµενο κεφάλαιο Βασικές λειτουργίες και συναρτήσεις σε Bit sting Στην παρούσα ενότητα αναφέρονται οι βασικές πράξεις που χρησιµοποιούνται στην ανάλυση του AES-GCM καθώς και παραδείγµατα αυτών. Επίσης εδώ παρουσιάζονται και οι συµβολισµοί που χρησιµοποιούνται Απλές πράξεις- Συµβολισµοί οσµένου ένα πραγµατικού αριθµού x η ceiling function που συµβολίζεται µε [x], επιστρέφει σαν αποτέλεσµα το µικρότερο ακέραιο αριθµό που δεν είναι µικρότερος από το x. Παράδειγµα: [2, 1] =3 [4] = 4 οσµένου ενός θετικού ακεραίου αριθµού s η πράξη 0 s συµβολίζει µία ακολουθία s µήκους από 0 bits.συµβολίζει δηλαδή τον αριθµό των µηδενικών σε ένα bit string. Παράδειγµα: 0 8 = Η πράξη concatenation (αλληλουχίας) που γίνεται µεταξύ bit strings συµβολίζεται ως. Στην VHDL η πράξη αυτή συµβολίζεται ως &. Ουσιαστικά δεν πρόκειται για λογική πράξη µεταξύ bit strings, αλλά για µια απλή συνένωση ακολουθιών bits. Η πράξη αυτή αναφέρεται και ως padding. 41

42 Παράδειγµα: = οσµένων δύο bit string ίσου µήκους η πράξη exclusive-or (XOR) συµβολίζεται. Και είναι η λογική πράξη αποκλειστικό- Ή. Ο πίνακας αληθείας της XOR είναι : Α Β Α XOR B Είναι µια από της πιο χρήσιµες λογικές πράξεις διότι εκτός από την αυτό καθεαυτό πράξη χρησιµοποιείται και σε άλλες λειτουργίες όπως σύγκριση bit strings ή αντιστροφή της τιµής ενός bit string. Παράδειγµα: = Η πράξη len(χ) επιστρέφει το µήκος του bit string Χ σε ακέραιο αριθµό. Μας δείχνει δηλαδή πόσα bit έχει ένα bit sting. Είναι µία από τις εντολές που χρησιµοποιείται στους αλγόριθµους που θα παρουσιαστούν παρακάτω. Παράδειγµα: len (00010) = 5 len ( ) = 128 Να σηµειωθεί ότι το µε βάση το NIST στα δεδοµένα εισόδου το µικρότερο bit string είναι 1 byte, άρα το η ελάχιστη τιµή len(x) θα είναι 8. οσµένου ενός bit string Χ και ενός µη αρνητικού ακεραίου s τέτοιου ώστε len(x) s ορίζονται οι πράξεις LSB s (X) και MSB s (X) οι οποίες επιστρέφουν τα s least significant και s most significant bits αντίστοιχα. Χωρίζει δηλαδή το bit string σε 2 τµήµατα µε s και len(x)-s bits και µας επιστρέφει τα s MSB ή LSB. Παράδειγµα : LSB 3 ( ) = 010 MSB 4 ( ) =

43 οσµένου ενός bit string Χ, η (single) right-shift function συµβολίζεται ως Χ>>1 ή ως rightshift(x). Παράδειγµα: >>1 = rightshift ( ) = Υπάρχει επίσης και right και left shift function πολλών bit. Παράδειγµα: >>4 = <<3 = Οι θέσεις bit που έχουν γίνει shift γεµίζονται µε µηδενικά και στις δύο περιπτώσεις. Κάτι τέτοιο όµως δεν θα ίσχυε αν είχαµε να κάνουµε µε προσηµασµένους ή αρνητικούς αριθµούς. Κάτι τέτοιο εδώ δεν µας ενδιαφέρει γιατί όλα τα bit string είναι ακέραιοι θετικοί, µη προσηµασµένοι. Ο ίδιος συµβολισµός πράξης χρησιµοποιείται και στην C γλώσσα προγραµµατισµού. οσµένου ενός θετικού ακεραίου s και ενός µη αρνητικού ακεραίου X που είναι µικρότερος από 2 s,ορίζεται η συνάρτηση integer-to-string function και συµβολίζεται µε [Χ] s. Θα πρέπει όµως να ισχύει Χ<2 s γιατί αλλιώς θα έχουµε έλλειψη αλλοίωση πληροφορίας. Παράδειγµα: [39] 8 = [39] 6 = Παρόµοια ορίζεται και η συνάρτηση string-to-integer για µη αρνητικούς ακέραιους. Παράδειγµα: int ( ) = 26 Ο συµβολισµός που χρησιµοποιείται για να αναφερόµαστε σε hexadecimal αριθµούς στην C γλώσσα είναι 0x45 ή 0xff Incrementing Function Για ένα θετικό ακέραιο s και ένα bit string X τέτοιο ώστε len(x) s ορίζεται η s-bit increment function και συµβολίζεται µε inc s (X). Η µαθηµατική έκφραση της συνάρτησης είναι: inc s (X) =MSB len(x)-s (X) [int (LSB s (X)) +1 mod 2 s ] s 43

44 Παράδειγµα : inc 5 ( ) = [int (10110) +1 mod 2 5 ] 5 = [22+1 mod 32] 5 = [23 mod 32] 5 = [23] 5 = = Με άλλα λόγια η inc s (X) αυξάνει κατά µία µονάδα τα LSB s (X) αφήνοντας τα υπόλοιπα len(x) s MSB ανεπηρέαστα. Το τελικό αποτέλεσµα είναι το concatenation των δύο bit sting. Σε περίπτωση που έχουµε overflow τότε το αποτέλεσµα της πρόσθεσης mod 2 s είναι η µονάδα, άρα το τελικό αποτέλεσµα της inc s (X) είναι : Παράδειγµα: inc 5 ( ) = [int (11111) +1 mod 2 5 ] 5 = [32+1 mod 32] 5 = [33 mod 32] 5 = [1] 5 = = Πρόκειται δηλαδή για µοναδιαία κυκλική αύξηση. Όταν φτάσει στο τέλος αρχίζει πάλι από την αρχή. Είναι µια χρήσιµη έκφραση αφού µας εγγυάται ότι δεν θα έχουµε overflow και ότι το κρατούµενο διαδίδεται σε συγκεκριµένο αριθµό bit. Μας επιτρέπει έτσι να εκµεταλλευτούµε διάφορες τεχνικές υλοποίησης για να πετύχουµε µικρούς χρόνους καθυστέρησης. Ουσιαστικά το carry out τροφοδοτεί το carry in αν η πράξη υλοποιείται σε adder. Σε FPGA η πράξη αυτή δεν υλοποιείται µε adder αλλά µε counter αφού η πρόσθεση που γίνεται είναι πάντα γνωστή κι έτσι µπορεί να προϋπολογίζεται η τιµή και εποµένως η καθυστέρηση που δίνει στον συνολικό κύκλωµα να µην είναι σηµαντική. 44

45 2.4.2 Μαθηµατικές συνιστώσες του AES-CTR mode Τα µαθηµατικά στοιχεία του AES σε CTR mode είναι δύο. Πρόκειται για το S-box και για έναν πολλαπλασιασµό στο GF(2 8 ) µε το 2 και το S-box To S-box είναι ένα LUT (look up table). Για την κατασκευή του όµως πρέπει να γίνουν πολλαπλασιασµοί στο GF(2 8 ) και να βρεθούν οι αντίστροφοι όλων των αριθµών από 00 Η µέχρι FF H. Στην συνέχεια γίνεται ένας πολλαπλασιασµός πινάκων απ όπου προκύπτει τελικά το s-box. Πρόκειται για µια διαδικασία χρονοβόρα και απαιτείται µεγάλος αριθµός πράξεων για να κατασκευαστεί. Κάτι τέτοιο όµως δεν απαιτείται σε όλες τις περιπτώσει αφού όπως έχει προαναφερθεί πρόκειται για ένα LUT που οι τιµές του είναι γνωστές. Περισσότερες πληροφορίες για το s-box αναφέρονται σε επόµενο κεφάλαιο που αναλύεται ο AES Πολλαπλασιασµός στο GF(2 8 ) Στον AES σε κάποιο στάδιο της διαδικασίας κρυπτογράφησης και αποκρυπτογράφησης απαιτείται να γίνει ένας πολλαπλασιασµός των 8 bit string τιµών µε το 2 και µε το 3. Ο πολλαπλασιασµός γίνεται στο GF(2 8 ). Tο αδιαίρετο πολυώνυµο που χρησιµοποιείται για τον AES είναι το m (x) = x 8 + x 4 + x 3 + x + 1. Ο πολλαπλασιασµός µε το 2 και το 3 ενός αριθµού γίνεται µε βάση την σχέση: a*2 αντιστοιχεί µε πολλαπλασιασµό πολυώνυµων στο GF(2 8 ) (έχει αναφερθεί στην ενότητα ) Έχουµε δηλαδή: Το a έχει µήκος 8 bit. Αν a(7) (το 8 ο MSB ) είναι 0 τότε : Αλλιώς : a*2 = a 6 a 5 a 4 a 3 a 2 a 1 0 α*2 = (a 6 a 5 a 4 a 3 a 2 a 1 0 ) XOR ( ) Ο πολλαπλασιασµός µε το 3 γίνεται ως εξής : a*3 = a*(2 +1) = a*2 +a a*2 XOR a 45

46 Αφού, όπως έχει αναφερθεί, η πρόσθεση στο GF(2 8 ) αντιστοιχεί µε την λογική πράξη XOR. Για την καλύτερη κατανόηση παρακάτω παρατίθεται ο κώδικας C που πραγµατοποιεί την προηγούµενη διαδικασία : if (a<0x80) i=(a<<1); else i=(a<<1)^0x1b; if (j==1) return a; if (j==2) return i; if (j==3) return i^a; Το σύµβολο ^ αναπαριστά την πράξη XOR στην C. Στην πρώτη γραµµή το (a<0x80) γίνεται προκειµένου να ελέγξουµε αν το most significant bit είναι Πολλαπλασιασµός µεταξύ Blocks Η πράξη του πολλαπλασιασµού ορίζεται σαν µια πράξη σε bit vectors µε σκοπό να απλοποιήσει τις προδιαγραφές του αλγορίθµου GCM καθώς χρησιµοποιεί συγκεκριµένο πεδίο αναπαράστασης για τις πράξεις. Κάθε στοιχείο είναι ένα διάνυσµα των 128 bits. Το ith bit ενός διανύσµατος X δείχνεται ως X i. Το left most bit είναι το Χ 0 και το right most bit είναι το X 127 δηλαδή χρησιµοποιείται κωδικοποίηση little endian. Η πράξη του πολλαπλασιασµού χρησιµοποιεί το ειδικό στοιχείο R = To fixed block R καθορίζει µια αναπαράσταση στο binary Galois Field σαν µια modular multiplication δυαδικών πολυωνύµων µε βαθµό µικρότερο του 128. Για παράδειγµα, αν u η µεταβλητή του πολυωνύµου τότε το block x 0 x 1 x 127 αντιστοιχεί στο πολυώνυµο x 0 +x 1 u+x 2 u 2 + +x 127 u 127. Το αδιαίρετο πολυώνυµο µείωσης (reduction modulus) είναι το πολυώνυµο βαθµού 128 που αντιστοιχεί στο R 1. οσµένων δύο blocks X και Y ο Algorithm 1 παρακάτω παράγει το product block, X Y. Algorithm 1: X Y Input: blocks X, Y. Output: block X Y. Steps: 1. Let x0x1...x127 denote the sequence of bits in X. 2. Let Z 0 = and V 0 = Y. 3. For i = 0 to 127, calculate blocks Z i+1 and V i+1 as follows: 46

47 4. Return Z128. Z i+1 = Z i if x i = 0; Z i V i if x i = 1. V i+1 = V i >> 1 if LSB 1 (V i )=0; (V i >> 1 ) R if LSB 1 (V i )=1 Για περισσότερη ευκολία στην κατανόηση του Algorithm 1, δίνεται παρακάτω µια περιγραφή σε ψευδοκώδικα: Algorithm 1.2: X Y : Multiplication in GF(2 128 ) Z 0, V Y for i = 0 to 127 do if Xi = 1 then end if end if end for return Z Z Z V if V 127 = 0 then V rightshift (V) Else V rightshift (V) R Πρόκειται για έναν αλγόριθµο µε ανατροφοδότηση Z i+1 Z i. Όπου το Z i διαµορφώνει την τιµή του µε βάσει την τιµή του X και του Υ µέσω του V. Ανάδραση υπάρχει και για το V i. Προκύπτει λοιπόν ότι για να παράγει αυτή η µέθοδος πολλαπλασιασµό δυο 128 bit strings χρειάζεται 128 κύκλους ρολογιού. Απαιτείται λοιπόν περεταίρω ανάλυση. Η ανάλυση αυτή γίνεται στην παρακάτω ενότητα GF(2 k ) Πολλαπλασιασµός Αναπαράστασης Πολυωνυµικής Βάσης Οι πολλαπλασιαστές σε GF(2 k ) µπορούν να κατηγοριοποιηθούν σε σειριακούς πολλαπλασιαστές bit (bit serial), σε σειριακούς πολλαπλασιαστές ψηφίου (digit serial) και σε παράλληλους πολλαπλασιαστές. Οι bit serial πολλαπλασιαστές απαιτούν k (όσα δηλαδή τα bit) κύκλους ρολογιού έτσι ώστε να δώσουν ένα γινόµενο πολλαπλασιασµού στην έξοδό τους, και επεξεργάζονται τα δεδοµένα bit προς bit. Οι digit serial πολλαπλασιαστές απαιτούν D < k κύκλους ρολογιού, όπου D=k/d, για να δώσουν ένα γινόµενο πολλαπλασιασµού στην έξοδό τους, ενώ επεξεργάζονται τα δεδοµένα σε d-bit ψηφία. Οι παράλληλοι πολλαπλασιαστές χρειάζονται 1 κύκλο 47

48 ρολογιού για να δώσουν ένα γινόµενο πολλαπλασιασµού στην έξοδο τους, και επεξεργάζονται τα δεδοµένα ανά k bit τιµές. Υπάρχουν αρκετοί διαφορετικοί αλγόριθµοι GF(2 k ) πολλαπλασιασµού για κάθε τύπο πολλαπλασιασµού. Κάποιοι αλγόριθµοι επιτυγχάνουν καλύτερη απόδοση αν συνδυαστούν µε ειδικού τύπου ανάγωγα πολυώνυµα. εν είναι δε, εύκολη για όλους τους τύπους αλγορίθµων GF(2 k ) πολλαπλασιασµού η µετατροπή τους σε ευέλικτους. Οι πιο σηµαντικοί αλγόριθµοι GF(2 k ) πολλαπλασιασµού συνοψίζονται στο σχήµα. Εικόνα 2.8 Στον παρακάτω πίνακα συνοψίζονται οι παραπάνω µέθοδοι µε τον χρόνο που απαιτείται για να πραγµατοποιηθεί ο πολλαπλασιασµός καθώς και µε την επιφάνεια που απαιτείται για ολοκληρωµένα κυκλώµατα. Εικόνα

49 Όπως βλέπουµε, αναλόγως αν έχουµε υψηλές απαιτήσεις σε χρόνο ή σε επιφάνεια επιλέγουµε και την κατάλληλη µέθοδο. Αν πάλι επιθυµούµε να έχουµε καλούς χρόνους αλλά η επιφάνεια ολοκλήρωσης δεν είναι άφθονη, τότε η µέθοδο digit serial αποτελεί µονόδροµο. Όταν q =128, η παράλληλη µέθοδο είναι πρακτικά εφαρµόσιµη και µπορεί να συµβαδίσει µε οποιαδήποτε µέθοδο pipeline του AES. Σε πολλές περιπτώσεις, η digital serial µέθοδος µπορεί να προσφέρει ένα αξιόλογο τρόπο πολλαπλασιασµού καθώς έχει επιδώσεις µεταξύ της σειριακής και της παράλληλης µεθόδου. Παρακάτω αναφέρονται συνοπτικά οι µέθοδοι πολλαπλασιασµοί που αναφέρθηκαν. Bit Serial LSB και MSB Πολλαπλασιαστές Χρησιµοποιώντας την modulo f(x) πράξη για GF(2 k ) µαζί µε την διαδικασία bit serial πολλαπλασιασµού, δύο πολύ γνωστοί αλγόριθµοι GF(2 k ) πολλαπλασιασµού προκύπτουν. Αυτοί οι αλγόριθµοι ακολουθούν την αρχή ολίσθησης και πρόσθεσης (shift and add) και επεξεργάζονται τον πολλαπλασιαστή b(x) ξεκινώντας από το ελάχιστα σηµαντικό bit (LSB) ή το πιο σηµαντικό bit (MSB). Έτσι, οι προκύπτοντες πολλαπλασιαστές ονοµάζονται πολλαπλασιαστές ελάχιστα σηµαντικού bit (LSB πολλαπλασιαστής) και πιο σηµαντικού bit (MSB πολλαπλασιαστής) αντίστοιχα. Τέτοιου είδους είναι ο Algorithm 1 έτσι όπως αναφέρθηκε νωρίτερα. Οι παραπάνω αλγόριθµοι αποτελούνται αποκλειστικά από πράξεις αριστερής ολίσθησης µιας θέσης και πράξεις XOR. Μια bit serial αρχιτεκτονική µπορεί πολύ εύκολα να σχεδιαστεί βασισµένη πάνω σε αυτούς τους αλγορίθµους. Η καθυστέρηση όµως που παρουσιάζει είναι µεγάλη, για πολλαπλασιασµό 128 bit δεδοµένων απαιτούνται 128 κύκλοι ρολογιού, κάτι τέτοιο, για high speed συστήµατα, τις περισσότερες φορές είναι απαγορευτικό. Έτσι αν έχουµε πολλαπλασιασµό του B(a) µε το A(a) εκφρασµένο σε όρους του B(a) τότε το αποτέλεσµα C(a) µε σειριακό πολλαπλασιασµό µπορεί να υπολογιστεί από τον αλγόριθµο που δίνεται παρακάτω : Algorithm 1.3 Bit-Serial Multiplication: Input: A(α), B(α), and F(α) Output: C(α) = A(α) B(α) mod F(α) 1. C(α) 0 2. for i = m 1 downto 0 do 3. C(α) αc(α) mod F(α) 4. if (b i = 1) then 5. C(α) C(α) + A(α). Συνολικά απαιτούνται 128 κύκλοι ρολογιού για να υπολογιστεί το αποτέλεσµα του πολλαπλασιασµού στο GF(2 128 ). 49

50 Digit Serial GF(2 k ) Πολλαπλασιαστές Έστω ότι το πολυώνυµο b(x) είναι ένα στοιχείο του GF(2 k ) ορισµένου πάνω στο ανάγωγο πολυώνυµο f(x) σε µορφή ψηφίων και έστω ότι το µέγεθος των ψηφίων είναι d. Τότε ο αριθµός των ψηφίων στο b(x) θα είναι D = k / d ενώ το b(x) πολυώνυµο θα έχει την µορφή αθροίσµατος δυνάµεων του x di µε συντελεστές B i (x) παρόµοιας µορφής. Έστω ότι επιθυµούµε να πολλαπλασιάσουµε δύο στοιχεία a(x), b(x) του GF(2 k ) ορισµένου πάνω στο ανάγωγο πολυώνυµο f(x). Τότε αναπαριστώντας ένα ή και τα δύο αυτά στοιχεία σε µορφή ψηφίων όλοι οι bit serial αλγόριθµοι για πολλαπλασιασµό που παρουσιάστηκαν παραπάνω µπορούν να µετατραπούν έτσι ώστε οι προκύπτοντες πολλαπλασιαστές να επεξεργάζονται αριθµούς ανά ψηφία και όχι ανά bit σε κάθε κύκλο ρολογιού. Πρόκειται δηλαδή για µία µέθοδο που απαιτεί οµαδοποίηση των bit serial σε digit serial. Επιτυγχάνουµε µε αυτόν τον τρόπο να µειωθούν οι αριθµοί ρολογιών που απαιτούνται χωρίς όµως οι απαιτήσεις σε υλικό να είναι µεγάλες. Ισοζυγίζεται δηλαδή η απόδοση µε την επιφάνεια. Έτσι αν έχουµε πολλαπλασιασµό του B(a) µε το A(a) εκφρασµένο σε όρους του B(a) τότε το αποτέλεσµα C(a) µε χρήση digital-serial πολλαπλασιασµό µπορεί να υπολογιστεί από τον αλγόριθµο που δίνεται παρακάτω : Algorithm 2 Digital-Serial Multiplication: Input: A(α), B(α), and F(α) Output: C(α) = A(α)B(α) mod F(α) 1. C(α) B s 1 (α)a(α) mod F(α); 2. for k = s 2 downto 0 do 3. C(α) α g C(α); 4. C(α) B k (α)a(α) + C(α) mod F(α); Ο πολλαπλασιασµός ολοκληρώνεται σε [m/g] επαναλήψεις που είναι g φορές πιο γρήγορο από τον σειριακό αλγόριθµο και έχει λιγότερες απαιτήσεις πόρων σε σχέση µε τον παράλληλο πολλαπλασιασµό. Παράλληλος GF(2 k ) Mastrovito Πολλαπλασιαστής Έστω ότι τα a(x), b(x) είναι πολυώνυµα που ανήκουν στο GF(2 k ) ορισµένο πάνω σε ένα ανάγωγο πολυώνυµο f(x). Όπως έχει ήδη αναφερθεί, το γινόµενο των a(x), b(x) θα είναι c(x) = a(x)b(x) mod f(x). Τα πολυώνυµα c(x) και b(x) µπορούν να οριστούν και σε διανυσµατική µορφή σαν διανύσµατα στήλες C και B. Ο Ε. Mastrovito εισήγαγε έναν k x k πίνακα Z µε στοιχεία z i,j ορισµένα σαν συνάρτηση των συντελεστών f i και a i, των f(x) και a(x) έτσι ώστε C = Z B. 50

51 Αυτός ο πίνακας Z, ονοµάζεται πίνακας γινοµένου, και µπορεί να κατασκευαστεί χρησιµοποιώντας τον πίνακα αναγωγής R και το πολυώνυµο-πολλαπλασιαστή a(x), ακολουθώντας την παρακάτω φόρµουλα: Η συνάρτηση u(s) ορίζεται ως: u(s) = 1 αν s 0 και 0 αν s 1 Χρησιµοποιώντας τη εξίσωση C = Z B, κάθε συντελεστής c i του γινοµένου C(x) µπορεί να γραφεί σαν ένας γραµµικός συνδυασµός των συντελεστών του b(x) και των στοιχείων του πίνακα γινοµένου Ζ. Από την σκοπιά του σχεδιασµού αρχιτεκτονικής υλικού, κάθε c i µπορεί να υπολογιστεί σαν ένας συνδυασµός πυλών AND και σχετικών XOR δέντρων. Όλοι αυτοί οι υπολογισµοί ολοκληρώνονται σε ένα κύκλο ρολογιού. Μια τέτοια γενική αρχιτεκτονική για πολλαπλασιαστές Mastrovito φαίνεται στο σχήµα που ακολουθεί: Εικόνα

52 Γενική αρχιτεκτονική για παράλληλο Mastrovito GF(2 k ) πολλαπλασιαστή. Μια προσεκτική παρατήρηση του πίνακα γινοµένου αποκαλύπτει ότι αυτός ο πίνακας είναι σηµαντικά εξαρτηµένος από τη µορφή του ανάγωγου πολυωνύµου που ορίζει το GF(2 k ). Ο Ε. Mastrovito ήταν ο πρώτος που πραγµατοποίησε µια διεξοδική ανάλυση της επίδρασης του f(x) στο προκύπτον GF(2 k ) παράλληλο πολλαπλασιαστή. Βρήκε ότι τα ανάγωγα τριώνυµα βελτιώνουν σηµαντικά την απόδοση του πολλαπλασιαστή αυτού. Συγκρίνοντας τον σειριακό πολλαπλασιασµό που απαιτεί m κύκλους ρολογιού για να ολοκληρωθεί στο GF(2 128 ), ο παράλληλος πολλαπλασιασµός απαιτεί µόνο ένα κύκλο ρολογιού για την ολοκλήρωση του πολλαπλασιασµού στο ίδιο πεδίο. Βέβαια επειδή η καθυστέρηση κυκλώµατος είναι διαφορετική στον σειριακό πολλαπλασιασµό σε σχέση µε τον παράλληλο πολλαπλασιασµό, η ελάχιστη περίοδος ρολογιού για τον παράλληλο πολλαπλασιασµό είναι πολύ µεγαλύτερη σε σχέση µε την ελάχιστη περίοδο ρολογιού στον σειριακό πολλαπλασιασµό. Για την ακρίβεια, ένα κύκλος ρολογιού στον παράλληλο πολλαπλασιασµό αντιστοιχεί µε αρκετές ή και δεκάδες κύκλους ρολογιού υπολογιστικού χρόνου στον σειριακό πολλαπλασιασµό αναλόγως την υλοποίηση Στον πολλαπλασιασµό που απαιτείται από την GHASH, µια τέτοια µέθοδος είναι ιδιαίτερα ελκυστική αφού κατά τον πολλαπλασιασµό η µία τιµή µένει σταθερή πράγµα που σηµαίνει ότι για συγκεκριµένο κλειδί και IV ο πίνακας αυτός θα είναι σταθερός και επαναχρησιµοποιήσιµος οπότε ο χρόνος που χρειάζεται για να πραγµατοποιηθεί ο πολλαπλασιασµός θα είναι µικρός Από τον σειριακό στον παράλληλο πολλαπλασιασµό Στην παρών ενότητα παρουσιάζεται ο τρόπος µε τον οποίο ο αρχικός αλγόριθµος που υλοποιεί τον σειριακό πολλαπλασιασµό µετασχηµατίζεται σε παράλληλο αλγόριθµο. Ο σειριακός είναι : Steps: 4. Let x0x1...x127 denote the sequence of bits in X. 5. Let Z 0 = and V 0 = Y. 6. For i = 0 to 127, calculate blocks Z i+1 and V i+1 as follows: Z i+1 = Z i if x i = 0; Z i V i if x i = 1. V i+1 = V i >> 1 if LSB 1 (V i )=0; (V i >> 1 ) R if LSB 1 (V i )=1 52

53 4. Return Z128. Υποθέσουµε έναν πίνακα 128x128. Στην πρώτη στήλη τοποθετούµε την τιµή V i. H δεύτερη στήλη θα έχει την τιµή της πρώτης κατά (>>1) και αναλόγως την τιµή Vi (0) (0) θα γίνεται XOR ή όχι µε την τιµή R. H ίδια διαδικασία συνεχίζεται µέχρι να κατασκευαστεί όλος ο πίνακας 128x128. Να σηµειωθεί ο το shift δεν έχει καθυστέρηση αφού υλοποιείται απλά µε διασταύρωση καλωδίων. Έχουµε πλέον έναν πίνακα 128x128 που ουσιαστικά έχει όλες τις τιµές Vi. Το πρώτο µέρος αλγορίθµου υλοποιείται ως εξής : η πράξη if xi=1 µεταφράζεται σε πύλη and το κάθε ένα bit του αποτελέσµατος z µπορεί να παραχθεί αν διατρέξουµε την αντίστοιχη σειρά του πίνακα µε αφού έχει προηγηθεί and πράξη µε την τιµή εισόδου αλλά αντεστραµµένη αφού έχουµε little endian αναπαράσταση. Το αποτέλεσµα είναι το άθροισµα τον παραπάνω bit που µεταφράζεται µε πράξη XOR αφού αναφερόµαστε σε GF πεδίο. Ουσιαστικά ο πίνακας 128x128 κατασκευάζεται κατά στήλη αλλά χρησιµοποιείται κατά σειρά και παράλληλα. Στο GCM αλγόριθµο για κάθε επίκληση αφού το κλειδί δεν αλλάζει, η µία είσοδο του πολλαπλασιασµού παραµένει ίδια κι έτσι ο πίνακα κατασκευάζεται µια φορά. Βάση αυτού το γεγονότος ο Mastrovito παράλληλος πολλαπλασιαστής αποτελεί την καλύτερη επιλογή. Τέλος µέθοδοι pipeline κατά την κατασκευή του πίνακα είναι εφικτές. Περισσότερες λεπτοµέρειες όσο αφορά την επιφάνεια και την συχνότητα λειτουργίας του παράλληλου και του σειριακού πολλαπλασιαστή παρουσιάζονται στο κεφάλαιο µε τα αποτελέσµατα. Ο παράλληλος πολλαπλασιαστής µπορεί σχηµατικά να παρουσιαστεί ως η παρακάτω υλοποίηση : 53

54 54

55 Κεφάλαιο 3 - AES - - FPGAs - Σε αυτό το κεφάλαιο, θα παρουσιαστούν τα θεµελιώδη στοιχεία του Advanced Encryption Standard (AES) αλγορίθµου. Παρουσιάζονται επίσης και κάποιες πληροφορίες για τα FPGAs. O authentication mechanism όπως θα εξηγηθεί στο επόµενο κεφάλαιο χρησιµοποιεί τον cipher του AES για να παράγει δύο τιµές και πιο συγκεκριµένα µόνο την forward function του AES. Οι δύο τιµές που απαιτούνται είναι το hash subkey µε είσοδο και το CIPH k (J 0 ) µε είσοδο το IV Advanced Encryption Standard (AES) Το Advanced Encryption Standard (AES) εκδόθηκε από το NIST το Ο AES αλγόριθµος ανήκει στην οικογένεια των συµµετρικών αλγόριθµων κρυπτογραφίας, όπου και ο αποστολέας και ο παραλήπτης συµφωνούν σε ένα κοινό µυστικό κλειδί για την κρυπτογράφηση και την αποκρυπτογράφηση. Ο AES είναι δηλαδή ένα συµµετρικό block cipher που λειτουργεί πάνω σε 128-bit, block δεδοµένα εισόδου και εξόδου. Ο αλγόριθµος µπορεί να κρυπτογραφήσει και να αποκρυπτογραφήσει blocks κάνοντας χρήση του κρυφού κλειδιού το οποίο µπορεί να έχει µέγεθος 256-bit, 192-bit, ή 128-bit. Εδώ χρησιµοποιείται µόνο κλειδί µεγέθους 128 bits. Επιπρόσθετα, ο AES είναι ένας επαναληπτικός αλγόριθµος και ένα από τα κυριότερα χαρακτηριστικά του είναι η απλότητα, που επιτυγχάνεται συνδυάζοντας µε επαναλαµβανόµενο τρόπο αντικαταστάσεις (substitutions) και αναδιατάξεις (permutations) σε διαφορετικούς γύρους. Αυτό σηµαίνει ότι ο AES κρυπτογραφεί/αποκρυπτογραφεί ένα 128-bit plaintext/ciphertext εφαρµόζοντας επαναλαµβανόµενα τον ίδιο γύρο µετασχηµατισµού (round transformation) αρκετές φορές σύµφωνα µε το µέγεθος του κλειδιού. 55

56 Το Πίνακας 1 παρακάτω δείχνει αυτήν την εξάρτηση. Πίνακας 3.1. Key-Block-Round Combinations Το block δεδοµένων 128-bit χωρίζεται σε 16 bytes. Αυτά τα bytes αντιστοιχίζονται σε έναν 4x4 πίνακα ο οποίος καλείται State array, και όλες οι εσωτερικές πράξεις του AES αλγορίθµου εκτελούνται στον State.Ο state array συµπληρώνεται κατά στήλη, δηλαδή τα 8 msb καταλαµβάνουν το πρώτο κελί τα 8 δευτέρα msb στην πρώτη στήλη το δεύτερο κελί κοκ. Κάθε byte του State συµβολίζεται ως (0,4) όπου S (0 i,j 3), και αποτελεί στοιχείο του πεπερασµένου πεδίου GF(2 8 ). Παρόλο που διαφορετικά ανάγωγα (irreducible) πολυώνυµα χρησιµοποιούνται για να δηµιουργηθεί το GF(2 8 ) πεπερασµένο πεδίο, το ανάγωγο πολυώνυµο που χρησιµοποιείται στον AES αλγόριθµο είναι το p(x) = x 8 + x 4 + x 3 + x +1. Το πραγµατικό µέγεθος του κλειδιού εξαρτάται από το επιθυµητό επίπεδο ασφαλείας (security level). Ο αλγόριθµος AES-128 είναι ο επικρατέστερος και υποστηρίζεται από τις περισσότερες hardware υλοποιήσεις. Στην ενότητα αυτή, συζητείται κυρίως η AES forward cipher λειτουργία (δηλαδή η AES κρυπτογράφηση) µε κλειδί µεγέθους 128-bit, καθώς η διαδικασία αυτή καλείται στο GCTR module του AES-GCM standard για να διασφαλίσει την εµπιστευτικότητα (confidentiality) των δεδοµένων και στην διαδικασία διασφάλισης της αυθεντικότητας AES Cipher Για µέγεθος κλειδιού 128-bit, υπάρχουν 10 rounds από substitutions και permutations που πρέπει να εκτελεστούν στον AES cipher.το 128-bit plaintext εισόδου παρουσιάζεται στον πίνακα 4x4 από bytes που ονοµάζεται State array. Ο State array υπόκειται σε τροποποιήσεις σε κάθε γύρο. Το κλειδί εισόδου επεκτείνεται σε έναν πίνακα των bit words, και κάθε φορά 4 words (128 bits) του επεκταµένου κλειδιού θα χρησιµοποιηθούν σε κάθε γύρο(τα πρώτα 128 bit περιέχουν το κλειδί αυτούσιο). Η επέκταση του κλειδιού πρέπει να γίνει πριν την cipher λειτουργία ή κατά την διάρκεια(on line). 56

57 Κατά τη διαδικασία της κρυπτογράφησης στον AES αλγόριθµο, κάθε κύκλος, εκτός από τον τελικό, αποτελείται από τέσσερεις µετασχηµατισµούς: SubBytes, ShiftRows, MixColumns, και AddRoundKey, ενώ στον τελικό κύκλο δεν υπάρχει ο MixColumns µετασχηµατισµός. Παρακάτω παρουσιάζονται οι βασικές κρυπτογραφικές πράξεις και οι ιδιότητές τους, εν συντοµία. SubBytes αποτελεί έναν µη γραµµικό µετασχηµατισµό όπου κάθε byte αντικαθίσταται σύµφωνα µε έναν πίνακα αντικατάστασης, το s-box. ShiftRows αποτελεί βήµα αλληλοµετάθεσης όπου κάθε γραµµή από το State ολισθαίνει κυκλικά για ένα συγκεκριµένο αριθµό θέσεων. MixColumns η πράξη αυτή εφαρµόζεται σε κάθε στήλη του State και αναπαριστά ένα γραµµικό µετασχηµατισµό βασισµένο στα 4 bytes της στήλης. AddRoundKey κάθε byte του state συνδυάζεται µε ένα byte από το κλειδί του τρέχοντος κύκλου. Κάθε κλειδί του κύκλου προέρχεται από το κλειδί κρυπτογράφησης χρησιµοποιώντας το σύστηµα παραγωγής κλειδιών του AES (key schedule). Οι προηγούµενοι µετασχηµατισµοί εφαρµόζονται και στην αποκρυπτογράφηση αλλά µε παρόµοια λογική. Οι µετασχηµατισµοί που προκύπτουν και χρησιµοποιούνται στην αποκρυπτογράφηση είναι οι InvShiftRows, InvSubBytes, InvMixColumns, και AddRoundKey. Στις ακόλουθες ενότητες το State array µπλοκ θα χρησιµοποιείται για να περιγράψει τα διαφορά round operations και γι 'αυτό είναι σηµαντικό να κατανοήσουµε τον τρόπο µε τον οποίο η είσοδος µετατρέπεται στον State array. Η Εικόνα 1 παρακάτω δείχνει αυτή την µετατροπή, γεµίζοντας bytes δεδοµένων στον State ανά στήλη. Μετά το τέλος της AES κρυπτογράφησης, ο τελευταίος State που δίνεται στην έξοδο µετατρέπεται πάλι πίσω σε ένα 128 bit stream. Εικόνα 3.1. Illustration of State Array s Inputs 57

58 Η Εικόνα 3.1 παρακάτω, παρουσιάζει το διάγραµµα δοµικών στοιχείων του AES αλγορίθµου για την κρυπτογράφηση και την αποκρυπτογράφηση, την σειρά που είναι συνδεδεµένα και τον αριθµό των κύκλων που απαιτούνται ανάλογα µε το µέγεθος του κλειδιού, ενώ στη συνέχεια παρουσιάζονται πιο λεπτοµερώς οι τέσσερις µετασχηµατισµοί που συµβαίνουν κατά την διαδικασία της κρυπτογράφησης στον AES. Το διάγραµµα που ακολουθεί στην Εικόνα 2 απεικονίζει τη γενική δοµή του γύρου του AES που επαναλαµβάνεται µε βάση το κλειδί εισόδου. Εικόνα 3.2. Illustration of AES round structure SubBytes Μετασχηµατισµός Ο SubBytes µετασχηµατισµός είναι ο µόνος µη γραµµικός µετασχηµατισµός που εφαρµόζεται ανεξάρτητα σε κάθε byte του State χρησιµοποιώντας έναν πίνακα αντικατάστασης. Αντικαθιστά όλα τα bytes του State array χρησιµοποιώντας ένα substitution table, το οποίο είναι ένας αντιστρέψιµος πίνακας 16x16 από bytes, και συχνά καλείται S-box. Το S-box, αποτελεί ένα look-up-table (LUT), και χρησιµοποιείται στον SubBytes µετασχηµατισµό καθώς περιέχει τα αποτελέσµατα των substitution and permutation όλων των πιθανών 8-bit τιµών. Το περιεχόµενο του S-box υπολογίζεται µέσω των δύο παρακάτω βηµάτων: Καθένα από τα byte του state αντιστοιχίζεται σε ένα byte του S-box. Τα 4 leftmost bits χρησιµοποιούνται σαν δείκτες γραµµών (row index) ενώ τα 4 rightmost bits 58

59 χρησιµοποιούνται σαν δείκτες στηλών (column index). Το S-box είναι σχεδιασµένο ώστε να αντέχει στις γνωστές κρυπταναλυτικές επιθέσεις. Ο SubBytes µετασχηµατισµός έχει την ιδιότητα η έξοδος του να µην µπορεί να περιγραφεί σαν µια απλή µαθηµατική συνάρτηση της εισόδου του. Το S-box χρησιµοποιεί το SubBytes µετασχηµατισµό και εκφράζεται µέσω του πίνακα οποίος απαρτίζεται από στοιχεία σε δεκαεξαδική µορφή όπως παρουσιάζεται στην Εικόνα 3. Εικόνα 3.3. Ο πίνακας µετασχηµατισµών για την κρυπτογράφηση (σε δεκαεξαδική µορφή). ShiftRows Μετασχηµατισµός Στον ShiftRows µετασχηµατισµό, τα bytes στις τελευταίες τρείς γραµµές του State ολισθαίνουν κυκλικά για διαφορετικές τιµές bytes (βλέπε Εικόνα 4). Η πρώτη γραµµή δεν ολισθαίνει. Η δεύτερη γραµµή ολισθαίνει κυκλικά και αριστερόστροφα (leftshifted) κατά ένα byte. Στην τρίτη γραµµή πραγµατοποιείται ένα κυκλικό left shift κατά δύο bytes αυτή τη φορά. Τέλος, η τέταρτη γραµµή γίνεται κυκλικά left-shifted κατά τρία byte. Εφόσον οι µετασχηµατισµοί MixColumns και AddRoundKey γίνονται στήλη παρά στήλη, ο ShiftRows διασφαλίζει ότι 4 bytes από µία στήλη διανέµονται σε τέσσερις διαφορετικές στήλες. Η Εικόνα 4 εικονίζει την επίδραση του ShiftRows µετασχηµατισµού στον State array. 59

60 Εικόνα 3.4. Illustration of ShiftRows Transformation Σε υλικό δεν απαιτείται κάποια λογική για αυτό το βήµα και απλές συνδέσεις σύρµατος χρησιµοποιούνται για να δροµολογήσουν την είσοδο στην έξοδο. MixColumns Μετασχηµατισµός Ο µετασχηµατισµός MixColumns λειτουργεί χωριστά σε κάθε στήλη του State του αλγορίθµου AES και αντιµετωπίζει κάθε στήλη σαν ένα πολυώνυµο τεσσάρων όρων. Μπορούµε να θεωρήσουµε τις στήλες σαν πολυώνυµα GF(2 8 ) τα οποία πολλαπλασιάζονται modulo το ανάγωγο πολυώνυµο για τον AES, µε ανάγωγο πολυώνυµο το : a(x) = {03}x 3 + {01}x 2 + {01}x Καθένα από τα byte στήλης του state αντιστοιχίζεται σε µια νέα τιµή που είναι συνάρτηση και των τεσσάρων bytes αυτής της στήλης όπως δείχνεται παρακάτω. Για την περίπτωση της κρυπτογράφησης έχουµε την παρακάτω σχέση για κάθε στήλη του State : 60

61 AddRoundKey Μετασχηµατισµός Ο AddRoundKey µετασχηµατισµός είναι σχεδιασµένος σαν ένας stream cipher. Όλα τα 128 bits του State γίνονται XORed µε τέσσερις 32-bit words του επεκταµένου κλειδιού. Η AddRoundKey είναι η µόνη λειτουργία που εµπλέκει τη χρήση του κλειδιού για να διασφαλίσει την προστασία των δεδοµένων. Η πράξη θεωρείται σαν µία columnwise λειτουργία µεταξύ των 4 byte µιας στήλης του State και µιας λέξης του round key. Μπορεί επίσης να θεωρηθεί ως µία byte-level λειτουργία. Αναφορικά, η αποκρυπτογράφηση είναι η αντίστροφη διαδικασία της κρυπτογράφησης. Αντιστρέφει τους γύρους µετασχηµατισµού για να υπολογίσει το αρχικό plaintext µέσω του κρυπτογραφηµένου ciphertext. Ο γύρος µετασχηµατισµού της αποκρυπτογράφησης χρησιµοποιεί τις µετατροπές: AddRoundKey, InvMixColumns, InvShiftRows, και InvSubBytes αντίστοιχα AES Key Expansion Η διαδικασία επέκτασης του κλειδιού παίρνει το 128-bit κλειδί ως είσοδο και σε κάθε συνεδρία δίνει στην έξοδο ένα bits word επεκταµένο κλειδί. Σε κάθε γύρο, ο AES cipher χρησιµοποιεί 4 από τις 44-word του επεκταµένου κλειδιού, στον AddRoundKey µετασχηµατισµό, όπως φαίνεται στην Εικόνα 5. Στην Εικόνα 5 δείχνεται το πώς γίνεται η επέκταση του κλειδιού. Οι 4 πρώτες words του πίνακα εξόδου, ο οποίος δείχνεται ως w, δεν είναι τίποτα άλλο από τα 16-byte (128 bits) εισόδου του κρυφού κλειδιού. ηλαδή, το κλειδί αντιγράφεται στις τέσσερις πρώτες words του επεκταµένου κλειδιού. Το υπόλοιπο επεκταµένο κλειδί γεµίζεται ανά τέσσερις λέξεις κάθε φορά. Η κάθε λέξη που προστίθεται w [i] εξαρτάται από την αµέσως προηγούµενη λέξη, w [i-1], και τη λέξη τέσσερις θέσεις πίσω, w [i-4]. Στις τρεις από τις τέσσερις περιπτώσεις, µια απλή XOR χρησιµοποιείται. Για µια λέξη της οποίας η θέση στο W array είναι πολλαπλάσιο του 4, µια πιο πολύπλοκη λειτουργία χρησιµοποιείται. 61

62 Εικόνα 3.5. Key Expansion Στην Εικόνα 5 απεικονίζεται η δηµιουργία των πρώτων οκτώ λέξεων του επεκταµένου κλειδιού. Πιο συγκεκριµένα οι διεργασίες που εκτελούνται είναι οι ακόλουθες : RotWord - εκτελεί µία κυκλική αριστερόστροφη ολίσθηση κατά ένα byte σε µια λέξη. Αυτό σηµαίνει ότι µια λέξη εισόδου [B0, B1, B2, B3] µετατρέπεται σε [B1, B2, B3, B0]( εφαρµόζεται στην τελευταία στήλη του προηγούµενου round key). SubWord - εκτελεί µια αντικατάσταση (substitution) ενός byte, σε κάθε byte του µετατοπισµένου αποτελέσµατος, κάνοντας χρήση των S-box. Μια λειτουργία παρόµοια µε αυτήν που συναντήσαµε στον µετασχηµατισµό SubBytes του AES cipher]εφαρµόζεται στην τελευταία στήλη του προηγούµενου round key). Στο τελευταίο βήµα, το αποτέλεσµα των δύο παραπάνω ενεργειών, δηλαδή η αλλαγµένη word, γίνεται XORed µε την σταθερά γύρου (round constant) Rcon[ι]. Η σταθερά γύρου (round constant) είναι µια λέξη τις οποίας τα τρία δεξιότερα bytes είναι πάντα 0. Έτσι, το αποτέλεσµα µε XOR µιας λέξης µε την Rcon είναι η πραγµατοποίηση µίας λειτουργίας XOR για το αριστερό byte της λέξης. 62

63 Η round constant είναι διαφορετική για κάθε γύρο και ορίζεται ως Rcon [ι] = (RC [ι], 0, 0, 0), µε RC [1] = 1, RC [ι] = 2 x RC [j - 1 ], µε τον πολλαπλασιασµό να ορίζεται στο πεδίο GF (2 8 ). Οι τιµές της RC [ι] δίνονται για κάθε γύρο στον Table 2 σε δεκαεξαδική µορφή. Ο λόγος που χρησιµοποιούνται σταθερές γύρου (round constants) είναι για να εξαλειφθούν οι συµµετρίες και οµοιότητες κατά την υλοποίηση του 4-word επεκταµένου κλειδιού κάθε γύρου. Πίνακας 3.2. Round Constant Bytes, RC in Hexadecimal 3.2 Software υλοποίηση O GCM αλγόριθµος είναι µια straightforward διεργασία και σε software και σε hardware υλοποίηση. Σε software µπορεί να υλοποιηθεί σε πολλές γλώσσες προγραµµατισµού όπως C, Java, PHP κα. Η υλοποίηση σε software αν και δεν είναι δύσκολη, βελτιώσεις µε χρήση µεθόδων παραλληλισµού και pipeline αποτελεί µια δύσκολη και αναλόγως την γλώσσα προγραµµατισµού, ορισµένες φορές ανέφικτη διεργασία. Η ταχύτητα διεκπεραίωσης εξαρτάται από τους πόρους του συστήµατος. Μια υλοποίηση του αλγορίθµου πρώτα σε software και µετά σε hardware αποτελεί µια καλή προσέγγιση αφού οποιεσδήποτε απορίες όσο αφορά στην λειτουργία του αλγορίθµου διευκρινίζονται. 63

64 3.3 Field Programmable Gate Arrays (FPGA) Σε αυτήν την διπλωµατική παρουσιάζεται η αρχιτεκτονική µιας FPGA υλοποίησης του AES-GCM. Οι πιο γνωστές εφαρµογές υλοποίησης αντιστοιχούν σε τρεις διαφορετικές τεχνολογίες. Αυτές είναι: Application Specific Integrated Circuits (ASICs) Software-Programmed General Purpose CPU (SPGPC) Field Programmable Gate Arrays (FPGAs) Τα ASICs είναι ειδικά σχεδιασµένα για µια καθορισµένη λύση και εποµένως είναι πολύ λειτουργικά. Ωστόσο, το κύκλωµα δεν µπορεί να αλλάξει µετά την κατασκευή. Αυτό απαιτεί έναν επανασχεδιασµό του chip εάν πρέπει να γίνουν τυχόν τροποποιήσεις. Τα SPGPC είναι µια ευέλικτη λύση. Η CPU εκτελεί ένα σετ εντολών για να εκτελέσει έναν αλγόριθµο. Αλλάζοντας τον κώδικα σε software, τροποποιείται και η λειτουργία του συστήµατος χωρίς να επεµβαίνουµε στο hardware. Όµως η αποτελεσµατικότητα και η απόδοση του SPGPC είναι πολύ χαµηλότερη από αυτή του ASIC. Τα FPGAs προσφέρουν µια ενδιάµεση λύση πετυχαίνοντας υψηλότερη απόδοση από αυτήν του software ενώ ταυτόχρονα διατηρούν ένα πιο υψηλό επίπεδο ευελιξίας σε σχέση µε το hardware ASIC Προσέγγιση Ιδιαίτερη έµφαση έχει δοθεί στο σχεδιασµό ASIC µε χαρακτηριστικά χαµηλής κατανάλωσης ενέργειας. Ορισµένες τυπικές µέθοδοι ελάττωσης της κατανάλωσης ισχύος είναι οι εξής: Αποµόνωση ρολογιού (Clock Gating) Επιτυγχάνεται σηµαντική ελάττωση στην κατανάλωση ενέργειας. Κοµµάτια λογικής, τα οποία δε λειτουργούν για έναν οι περισσότερους κύκλους ρολογιού, αποκόπτονται από το σήµα ρολογιού και αδρανοποιούνται. Ασύγχρονος σχεδιασµός Ο σχεδιασµός ασύγχρονων συστηµάτων (µε σήµατα χειραψίας - handshaking) περιορίζει την κατανάλωση ενέργειας και αυξάνει την απόδοση του συστήµατος. Το πρόβληµα στην περίπτωση αυτή είναι η έλλειψη εργαλείων για την υποστήριξη του σχεδιασµού αυτού. 64

65 Γεννήτρια µεταβλητής τάσης Σε συστήµατα που έχουν περιθώρια για µείωση της απόδοσης υπάρχει η δυνατότητα να µειώνουµε την εξωτερική τάση. Με µείωση της εξωτερικής τάσης η κατανάλωση ενέργειας υποτετραπλασιάζεται. Μείωση των ανεπιθύµητων φορτίσεων-εκφορτίσεων (glitches) Η µείωση των glitches, δηλαδή των µη επιθυµητών φορτίσεων και εκφορτίσεων των τρανζίστορ, µπορεί να γίνει µε σωστό σχεδιασµό. Συνήθως γίνονται αναδιατάξεις σε επίπεδο πυλών και επιλέγονται κατάλληλες κωδικοποιήσεις δεδοµένων. Παραλληλισµός και ιοχέτευση Και οι δύο µέθοδοι αυξάνουν την απόδοση του συστήµατος. Πολλές φορές χρησιµοποιούνται ώστε να αντισταθµίσουν την ελάττωση της απόδοσης εξαιτίας της εφαρµογής της µεθόδου της µείωσης της εξωτερικής τάσης. Βελτιστοποιήσεις Συναρτήσεων Επανασχεδιασµός συναρτήσεων µε περισσότερη απόδοση στο θέµα της κατανάλωσης ισχύος Πλεονεκτήµατα των FPGAs Overview H Field-programmable gate array (FPGA) technology συνεχίζει να κερδίζει έδαφος και η παγκόσµια αγορά των FPGA αναµένεται να αυξηθεί από $1,9 δισεκατοµµύρια το 2005 σε $2,75 µέχρι το Από την στιγµή της εφεύρεσής τους από την Xilinx το 1984 εξελιχτήκαν από απλά glue logic chips στην πραγµατική αντικατάσταση των custom application-specific integrated circuits (ASICs) και επεξεργαστών για signal processing και control applications. Τα 5 πιο σηµαντικά πλεονεκτήµατα της FPGA τεχνολογία είναι 1. Performance 2. Time to Market 3. Cost 4. Reliability 5. Long-Term Maintenance 65

66 1. Performance Χρησιµοποιώντας τον hardware παραλληλισµό, τα FPGAs ξεπέρασαν την υπολογιστική ισχύει σε digital signal processors (DSPs) σπάζοντας την παραδειγµατική εκτέλεση διαδοχικών πράξεων και πραγµατοποιώντας περισσότερα ανά κύκλο ρολογιού. Η BDTI, µια γνωστή αναλυτή και συγκριτική ταξινοµητική επιχείρηση, δηµοσίευσε τα σηµεία αναφοράς που δείχνουν πώς µπορεί ένα FPGA να επιτύχει πολλές φορές την επεξεργαστική ισχύ ανά δολάριο του DSP σε ορισµένες εφαρµογές. Ο έλεγχος εισροών και εκροών (I / O) στο υλικό επίπεδο παρέχει µικρότερους χρόνους απόκρισης και εξειδικευµένη λειτουργικότητα για να ταιριάζουν στενά στις απαιτήσεις της εφαρµογής. 2. Time to market H FPGA τεχνολογία προσφέρει ευελιξία και ταχεία προτυποποίηση για την αντιµετώπιση της αυξηµένης σε χρόνου διάθεσης στην αγορά απαιτήσεις. Είναι εφικτό να δοκιµαστεί µια ιδέα ή έννοια και ελεγχθεί σε υλικό, χωρίς να ακολουθηθεί η µακρά διαδικασία κατασκευής του custom ASIC design. Μπορεί στη συνέχεια να εφαρµοστούν διαδικασίες βελτίωσης και ποσοτικές αλλαγές σε FPGA σχεδιασµό µέσα σε λίγες ώρες αντί για εβδοµάδες. Εµπορικά off-the-shelf hardware είναι επίσης διαθέσιµα µε διαφορετικά είδη I / O που έχουν ήδη συνδεθεί µε ένα userprogrammable FPGA chip ( τα λεγόµενα boards). Η αυξανόµενη διαθεσιµότητα υψηλού επιπέδου εργαλείων λογισµικού µειώνει την καµπύλη µάθησης, και συχνά περιλαµβάνουν πολύτιµες IP cores (prebuilt λειτουργίες) για τον εξελιγµένο έλεγχο και την προηγµένη επεξεργασία σήµατος. 3.Cost Το κόστος κατασκευής των custom ASIC σχεδιασµών υπερβαίνει κατά πολύ εκείνο των FPGA-based υλοποιήσεων. Οι µεγάλες αρχικές επενδύσεις στην ASICS αγορά είναι εύκολο να δικαιολογηθεί για ΟΕΜ κατασκευές που παράγονται ανά χιλιάδες ανά έτος, αλλά πολλοί τελικοί χρήστες βρίσκονται στην ανάγκη για χρήση custom hardware το οποίο θα καλύπτει συγκεκριµένες ανάγκες για δεκάδες έως εκατοντάδες συστήµατα στην βιοµηχανία. Η ίδια η φύση του programmable silicon σηµαίνει ότι δεν υπάρχει κόστος για την κατασκευή ή απαιτεί πολύ µεγάλο χρόνο για την συναρµολόγηση. Όπως οι απαιτήσεις συστήµατος συχνά αλλάζει µε το χρόνο, το κόστος της προσαρµογής σε αλλαγές στα FPGA σχέδια είναι εντελώς αµελητέο σε σύγκριση µε το µεγάλο κόστος για την επαναδροµολόγηση των ASIC. 4. Reliability Ενώ τα software εργαλεία προσφέρουν το προγραµµατιστικό περιβάλλον, τα FPGA κυκλώµατα είναι δύσκολο να υλοποιηθούν µε βάση κάποιο εκτελέσιµο πρόγραµµα. Τα processor-based συστήµατα συχνά εµπεριέχουν αρκετά επίπεδα από βιβλιοθήκες βοηθειών που ο χρήστης µπορεί να συµβουλευτεί. Ο οδηγός ελέγχου πόρων υλικού και το λειτουργικό σύστηµα διαχειρίζεται το εύρος ζώνης της µνήµης και τον επεξεργαστή. Για κάθε δοσµένο πυρήνα επεξεργαστή, µόνο µία εντολή µπορεί να εκτελεστεί σε µια στιγµή, και τα συστήµατα που βασίζονται σε επεξεργαστή είναι διαρκώς σε κίνδυνο των time-critical διεργασιών να 66

67 προαφαιρέσει η µία την άλλη. Στα FPGAs από την άλλη µεριά, που δεν χρησιµοποιούν τα λειτουργικά συστήµατα, πετυχαίνεται η ελαχιστοποίηση της στις ανησυχίες όσο αφορά στην αξιοπιστίας σε παράλληλη εκτέλεση ντετερµινιστικών ακολουθιών αλλά και σε εκτέλεση διαδραστικών διεργασιών σε hardware που προορίζονται για κάθε έργο. 5. Long-Term Maintenance Όπως αναφέρθηκε προηγουµένως, τα FPGA chips είναι αναβαθµίσιµα ανά τοµέα και δεν απαιτούν το χρόνο και τα έξοδα που εµπλέκονται µε ASIC ανασχεδιασµό. Τα ψηφιακά πρωτοκόλλα επικοινωνίας, για παράδειγµα, έχουν τις προδιαγραφές που µπορεί να αλλάξει µε την πάροδο του χρόνου, και µε στα ASIC-based συστήµατα ενδέχεται να προκαλέσουν ή να συντηρηθούν ασυµβατότητα προς τα εµπρός. Όντας επαναπρογραµµατιζόµενα, τα FPGA τσιπ θα είναι σε θέση να συµβαδίσουν µε τις µελλοντικές τροποποιήσεις που µπορεί να είναι απαραίτητες. Ως προϊόν ή ως σύστηµα, στα FPGA µπορούν να πραγµατοποιηθούν λειτουργικές τροποποιήσεις χωρίς τις λειτουργικές δαπάνες για εξαρτήµατα ή επανασχεδιασµό του υλικού ή τροποποίηση της διάταξης του συστήµατος επικοινωνίας Πλεονεκτήµατα των FPGAs στις Κρυπτογραφικές Εφαρµογές Τα ακόλουθα χαρακτηριστικά της FPGA τεχνολογίας προσφέρουν ιδιαίτερα πλεονεκτήµατα στις κρυπτογραφικές εφαρµογές: Algorithm Agility (Αλγοριθµική Ευκινησία) Όλο και περισσότερες εφαρµογές ασφάλειας τείνουν στο να γίνουν ανεξάρτητες αλγόριθµου και επιτρέπουν την αλλαγή των αλγόριθµων κρυπτογράφησης οποιαδήποτε στιγµή. Ο αλγόριθµος κρυπτογράφησης µπορεί να επιλεγεί ύστερα από συνεννόηση µεταξύ των δύο εµπλεκόµενων φορέων της επικοινωνίας. Algorithm Upload ( Ανέβασµα Αλγορίθµου) Από κρυπτογραφική άποψη, το algorithm upload µπορεί να είναι χρήσιµο επειδή ο τρέχον αλγόριθµος µπορεί να είναι ξεπερασµένος ή σπασµένος. Έτσι ένας καινούριος αναβαθµισµένος αλγόριθµος δηµιουργείται. Ο σχεδιαστής µπορεί να ανεβάσει τα καινούρια bit streams του πρωτοκόλλου ασφαλείας και να επανασχεδιάσει την FPGA συσκευή µέσω του δικτύου. 67

68 Throughput (Απόδοση) Παρόλο που οι FPGA υλοποιήσεις είναι πιο αργές από τις ASIC υλοποιήσεις, οι πρώτες είναι σαφώς πιο γρήγορες από τις software υλοποιήσεις. Σε ένα κρυπτογραφικό σύστηµα, εάν µια software λύση έχει επιλεγεί, τότε µια FPGA υλοποίηση θα πρέπει να εφαρµοστεί για τους servers. Cost efficiency (Αποδοτικότητα Κόστους) Το κόστος παραγωγής ενός ASIC είναι συνήθως πολύ υψηλό για έναν µικρό αριθµό servers στα συστήµατα ασφαλείας. Έτσι, η χρήση FPGAs είναι µια κοινή εναλλακτική λύση. Εξάλλου, αυτός είναι ένας από τους λόγους για τους οποίους το FPGA επιλέγεται για την έρευνα στον τοµέα της ασφάλειας σε ιδρύµατα και πανεπιστήµια. Εποµένως, συχνά είναι καλύτερα να επιλέγεται ένα FPGA για την υλοποίηση ενός cipher, όπως το AES-GCM πρότυπο που εξετάζουµε στην διπλωµατική αυτή. Μια µικρή κατηγορία FPGAs είναι διαθέσιµη για εφαρµογές χαµηλής κατανάλωσης ενέργειας. Υπάρχουν FPGAs όπου χρησιµοποιούν ασύγχρονες µεθόδους σχεδιασµού και gated clock τεχνικές. Γενικότερα οι σχεδιαστές των FPGAs προσπαθούν να ενσωµατώσουν τεχνικές κατανάλωσης ενέργειας που εφαρµόζονται στα ASICs, όπως αυτά θα παρουσιαστούν παρακάτω. Τέλος µια αναβάθµιση των συστηµάτων µια επιχείρησης δεν απαιτεί την αγορά καινούριου εξοπλισµού αλλά των επαναπρογραµµατισµό των ήδη υπαρχόντων κυκλωµάτων δίνοντας έτσι στην εταιρία την δυνατότητα να βρίσκεται πάντα στην αιχµή των κρυπτογραφικών συστηµάτων. Επιπροσθέτως, µε την ίδια διαδικασία µπορεί να βελτιώσει την απόδοση Επιλογή FPGA Στον παρακάτω πίνακα παρουσιάζονται τα FPGA που χρησιµοποιούνται ευρέος µέχρι σήµερα. Να σηµειωθεί ότι η XILINX έχει ήδη αναγγείλει την δηµιουργία νέας βελτιωµένης οικογένειας Virtex 6 και Spartan 6. Τα περισσότερο χρησιµοποιούµενα chip µε τα χαρακτηριστικά τους είναι : 68

69 Table 3. Στην παρούσα διπλωµατική για την µέτρηση της απόδοσης χρησιµοποιήσαµε δυο διαφορετικές τεχνολογίες και δύο διαφορετικά προγράµµατα σύνθεσης. Τα προγράµµατα που χρησιµοποιήθηκαν είναι το LeonardoSpectrum v2000.1b και το Xilinx ISE 9.2i. ιαφορές µεταξύ ίδιας τεχνολογία µεταξύ τον δύο προγραµµάτων δεν παρατηρήθηκε καθώς στο LeonardoSpectrum το πιο σύγχρονο FPGA που έχει είναι το virtex II To ISE από την άλλη, στην virtex II οικογένεια απουσίαζε το µεγάλο µέλος της οικογένειας, µε µεγαλύτερη επιλογή την virtex II 500. Όπως ήταν αναµενόµενο το συνολικό κύκλωµα δεν χώραγε µε αποτέλεσµα να κάνει εκτεταµένη προσπάθεια βελτιστοποίησης µέχρι να χωρέσει. Σηµαντικές διαφορές σε ίδια τεχνολογία και ίδια device, δεν παρατηρήθηκε µε το πρόγραµµα ISE να δίνει λίγο καλύτερα αποτελέσµατα τόσο όσα αφορά στην επιφάνεια, όσο και στην συνολική απόδοση στον χρόνο. Περισσότερες πληροφορίες δίνονται στο τελευταίο κεφάλαιο µε τα αποτελέσµατα. Η παρούσα ενότητα θα αναλύσεις κάποιες διαφορές που υπάρχουν µεταξύ της virtex II και virtex 5 τεχνολογίας. Ο πίνακας 4 παρουσιάζει τις σηµαντικότερες προδιαγραφές του Virtex-II και Virtex-5 chip. Ο αριθµός των πυλών κατά παράδοση, ήταν ένας τρόπο να συγκρίνουν FPGA chip µε ASIC τεχνολογία, αλλά δεν περιγράφουν πραγµατικά τη ποσότητα χρήσιµης λογική µέσα σε ένα FPGA. Αυτός είναι ένας από τους λόγους για τους οποίους η Xilinx δεν προσδιορίζει τον αριθµό των πυλών για τη νέα Virtex-5 οικογένεια. 69

70 Table 3.4. Ο αριθµός του κάθε στοιχείου είναι χρήσιµη για άµεσες συγκρίσεις σε κάθε οικογένεια, όµως, πολλά από τα συστατικά αρχιτεκτονικές έχουν επανασχεδιαστεί για την Virtex-5 κάνοντας τις συγκρίσεις µεταξύ οικογενειών δύσκολο. Για παράδειγµα, η Virtex-5 LX85 έχει λιγότερες φέτες (slices) από Virtex-II 3000, αλλά η απόδοση είναι µεγαλύτερη για την Virtex-5. Αντιθέτως, είναι πιο χρήσιµο να εξετάζονται τα ειδικά χαρακτηριστικά των Virtex-5, για να γίνουν κατανοητά τα οφέλη. Κοινή συστατικά όπως flip-flops, LUTs, µπλοκ µνήµης RAM, και πολυπλέκτες απαρτίζουν την βασική λογική δοµές σε ένα Virtex FPGA. Μια συλλογή από αυτές τις βασικές δοµές αναφέρεται ως ένα slice (φέτα) ή ένα λογική διαµορφώσιµο µπλοκ (configurable logic block) (CLB). Οι ορισµοί του CLB και µια φέτα είναι συγκεκριµένη για κάθε προϊόν της οικογένειας. Για παράδειγµα, ένα CLB Virtex-II αποτελείται από τέσσερις φέτες και κάθε φέτα περιέχει δύο 4-εισόδων LUTs, δύο flip-flops, ευρείας λειτουργία πολυπλέκτες, και carry logic. Στην Virtex-5, ο ορισµός του CLB είναι δύο φέτες και κάθε φέτα περιέχει τέσσερα 6-εισόδων LUTs, τέσσερα flip-flops, ευρείας λειτουργία πολυπλέκτες, και carry logic. Στην Virtex-5, αυτά τα βασικά slices ονοµάζονται φέτες SLICEL. Μερικά slices έχουν ενσωµατωµένη διανεµιζόµενη RAM και 32-bit shift register. Φέτες µε αυτές τις προσθήκες ονοµάζονται SLICEM. Στην συνέχεια παρουσιάζεται η απλοποιηµένη δοµή των slices και των δύο τεχνολογιών 70

71 Εικόνα 3.6. Virtex-II Platform simplified slice Diagram 71

72 Εικόνα 3.7 Virtex 5 Platform simplified slice Diagram 72

73 Table 3.5: Components of a CLB on the Virtex-5 ύο από τα πιο συναρπαστικά οφέλη της Virtex-5 είναι οι διαφορές στη βασική αρχιτεκτονική των συστατικών του τσιπ. Για το νέο σχεδιασµό, η Xilinx βελτιστοποίησε την ικανότητα των τεσσάρων εισόδων LUT να είναι µια πλήρης έξι εισόδων LUT. Η Xilinx επίσης σχεδίασε µια βελτιωµένη διασύνδεση διαγωνίως Συµµετρικό µοτίβο. Με όλο και πιο πολύπλοκα συστήµατα, οι εφαρµογές που απαιτούν ευρύτερα data path, είναι πιο συχνές. Η παραδοσιακή τεσσάρων εισόδων LUTs έχει γίνει εξαιρετικά περιορισµένη και απαιτούν πολλά επίπεδα για την εφαρµογή λογικής πολύπλοκου κώδικα. Η Xilinx έχει επεκτείνει το LUT σε έξι εισόδων LUT για µεγαλύτερη χωρητικότητα. Η παραδοσιακή τεσσάρων εισόδων LUT έχει ένα πίνακα αλήθειας για 16 διαφορετικούς συνδυασµούς. Το νέο έξι εισόδων LUT αυξάνει τον πίνακα αλήθειας σε 64 διαφορετικούς συνδυασµούς. Για παράδειγµα, αν εξεταστεί η εφαρµογή της απλής σύγκρισης µεταξύ των δύο 16-bit αριθµούς, απαιτούνται 11 LUT 4 εισόδων σε 3 επίπεδα ενώ απαιτούνται µόνο 7 LUT 6 εισόδων σε 2 επίπεδα. Η διαφορά στην απόδοση είναι εµφανής. Η ενέργεια και η αποτελεσµατικότητα σε ένα FPGA chip ανταποκρίνονται άµεσα µε το µέγεθος της λιθογραφίας κόµβου που χρησιµοποιούνται στην επεξεργασία. Προηγούµενης γενιάς FPGA ήταν σχεδιασµένα σε λιθογραφία 90 nm. Με την εισαγωγή του Virtex-5, η Xilinx ήταν η πρώτη που εισήγαγε για τον σχεδιασµό ενός FPGA chip λιθογραφία 65 nm. Να σηµειωθεί ότι η νέα γενιά Virtex 6 θα είναι σχεδιασµένη σε λιθογραφία των 40 nm πράγµα που αυτόµατα σηµαίνει χαµηλότερα επίπεδα κατανάλωσης ισχύος και ταυτόχρονα υψηλότερη απόδοση. Η τάση λειτουργίας τέλος τον virtex 2 είναι στα 1,5 V ενώ για την οικογένεια Virtex 5 βρίσκεται στο 1,0 V επιτυγχάνοντας έτσι µειωµένη κατανάλωση ενέργειας για το τσιπ λόγω του γεγονότος ότι η τάση είναι λιγότερο αναγκαία για την οδήγηση από την πύλη στο τρανζίστορ. 73

74 74

75 Κεφάλαιο 4 - Galois / Counter Mode (GCM) - Ο Galois / Counter Mode (GCM) για λειτουργία σε µπλοκ ciphers αλγόριθµους σχεδιάστηκε για να ικανοποιήσει την ανάγκη για πιστοποιηµένο τρόπο κρυπτογράφησης που να µπορεί να συµβάλει αποτελεσµατικά στην επίτευξη ταχυτήτων των 10 gigabits ανά δευτερόλεπτο, και υψηλότερο, σε υλικό, να µπορεί να έχει καλές επιδόσεις και στον τοµέα του λογισµικού και να είναι απαλλαγµένο από πνευµατικούς περιορισµούς ιδιοκτησίας. Η κατάσταση λειτουργίας µετρητή (CTR) έχει γίνει ο τρόπος λειτουργίας που επιλέγεται για εφαρµογές υψηλής ταχύτητας διότι µπορεί να χρησιµοποιήσει αποτελεσµατικά τις τεχνικές διοχέτευσης σε hardware υλοποιήσεις. Ωστόσο, δεν παρέχει µήνυµα γνησιότητας (message authentication). Ο GCM ενσωµατώνει τον CTR και στηρίζεται πάνω του µε την προσθήκη ενός κώδικα γνησιότητας µηνύµατος (MAC) µε βάση µια καθολική hashing. Χρησιµοποιεί πολυωνυµικό hashing στο πεπερασµένο πεδίο GF(2 W ), η βασική λειτουργία του οποίου είναι πολλαπλασιασµός µε ένα σταθερό στοιχείο πεδίου (fixed field element). Το δυαδικό πεδίο πολλαπλασιασµού µπορεί να υλοποιηθεί εύκολα σε hardware, και µπορεί να γίνει σε εκπληκτικά αποτελεσµατικό λογισµικό µέσω µεθόδων οδηγούµενων από πίνακα (table-driven methods). Επιπλέον, ο GCM µπορεί να χρησιµοποιηθεί ως αυτόνοµο (stand-alone) MAC, και µπορεί να χρησιµοποιηθεί και ως πρόσθετο MAC. Μια απλή προσέγγιση για το σχεδιασµό υλικού υψηλών ταχυτήτων µιας GCM αρχιτεκτονικής είναι να χρησιµοποιήσουµε γρήγορες εφαρµογές των πυρήνων του AES και του GF πολλαπλασιαστή. Αποτελεσµατικές hardware υλοποιήσεις του AES και του πολλαπλασιαστή GF έχουν µελετηθεί εκτενώς. Για παράδειγµα, διαφορές εφαρµογές, όπως η αναζήτηση πίνακα, τα σύνθετα πεδία και τα δυαδικά διαγράµµατα αποφάσεων, έχουν προταθεί για να βελτιστοποιήσουµε το S-box κύκλωµα που κυριαρχεί στη κρίσιµη διαδροµή του κυκλώµατος του AES. Ο πολλαπλασιαστής Galois πεδίου µπορεί να βελτιστοποιηθεί για ορισµένους συγκεκριµένους τύπους modulus πολυωνύµων ή χρησιµοποιώντας διαφορετικές βάσεις για την εκπροσώπηση. Όλα τα παραπάνω όµως θα φανούν καλύτερα αφού πρώτα πραγµατοποιηθεί µια ολοκληρωµένη ανάλυση του Galois / Counter Mode σύµφωνα µε όσα περιγράφονται στο τέταρτο recommendation που αφορά στις καταστάσεις λειτουργίας των συµµετρικών block ciphers κλειδιού, όπως αυτό αναπτύχθηκε από το National Institute of Standards and Technology (NIST) κατ 'επέκταση των αρµοδιοτήτων βάσει του Federal Information Security Management Act (FISMA) of 2002, Public Law

76 4.1 Τα στοιχεία του GCM Τα στοιχειώδη µέρη του GCM και τα συσχετιζόµενα σχόλια και απαιτήσεις παρουσιάζονται παρακάτω στις ακόλουθες ενότητες. Το block cipher και το κλειδί συζητούνται στην ενότητα Τα data elements των συναρτήσεων που παρέχουν την πιστοποιηµένη κρυπτογράφηση (authenticated encryption) και πιστοποιηµένη αποκρυπτογράφηση (authenticated decryption) του GCM συζητούνται στην ενότητα Τα κρυπτογραφικά βασικά στοιχεία (primitives) που παρέχουν την εµπιστευτικότητα και την πιστοποίηση εσωτερικά στις δύο παραπάνω λειτουργίες παρουσιάζονται στην ενότητα Οι τύποι των εφαρµογών του GCM που είναι διαθέσιµοι, συνοψίζονται στην ενότητα Block Cipher Στo AES-GCM standard, οι λειτουργίες που περιγράφονται, εξαρτώνται από την επιλογή ενός βασικού συµµετρικού κλειδιού block cipher AES και εποµένως µπορούν να θεωρηθούν ως κατάσταση λειτουργίας (mode of operation) του block cipher. Το AES-GCM κλειδί είναι το block cipher κλειδί. Για κάθε δοσµένο κλειδί, το αντίστοιχο block cipher του mode, συνίσταται από δύο λειτουργίες που είναι αντίστροφες η µία της άλλη. Η επιλογή του block cipher περιλαµβάνει την ονοµασία µίας από τις δύο λειτουργίες του block cipher, ως η forward cipher function, όπως και στις προδιαγραφές του αλγορίθµου AES. Ο AES- GCM υποδεικνύει την λειτουργία κρυπτογράφησης (encryption function) του AES block cipher καθώς η forward cipher function, είναι στην πραγµατικότητα ο AES σε ECB mode. O GCM δεν χρησιµοποιεί την inverse cipher function. Η forward cipher function είναι µια αναδιάταξη (permutation) πάνω σε bit strings σταθερού µήκους, τα strings ονοµάζονται µπλοκ. Το µήκος ενός µπλοκ ονοµάζεται το µέγεθος µπλοκ (block size). Το κλειδί παριστάνεται ως K, και η προκύπτουσα forward cipher λειτουργία του κρυπτογραφικού αλγόριθµου χαρακτηρίζεται ως CIPH K. Το βασικό block cipher θα πρέπει να είναι εγκεκριµένο, το µέγεθος µπλοκ να είναι 128 bits, και το µέγεθος κλειδιού θα πρέπει να είναι τουλάχιστον 128 bits. Το κλειδί πρέπει να παράγεται τυχαία µε οµοιόµορφο τρόπο ή τυχαία µε σχεδόν οµοιόµορφο τρόπο, έτσι ώστε κάθε δυνατό κλειδί να είναι (σχεδόν) εξίσου πιθανό να δηµιουργηθεί. Συνεπώς, το κλειδί θα είναι φρέσκο (fresh), δηλαδή, άνισο µε κάθε προηγούµενο κλειδί, µε µεγάλη πιθανότητα. Το κλειδί πρέπει να εγκαθίσταται µυστικά µεταξύ των εµπλεκόµενων φορέων που συµµετέχουν στην επικοινωνία και να χρησιµοποιείται αποκλειστικά για τον GCM µε το επιλεγµένο block cipher. Πρόσθετες απαιτήσεις σχετικά µε τη δηµιουργία και τη διαχείριση των κλειδιών συζητούνται παρακάτω στην ενότητα

77 4.1.2 Οι δύο GCM λειτουργίες Ο GCM αποτελείται από δύο λειτουργίες που ονοµάζονται πιστοποιηµένη κρυπτογράφηση (authenticated encryption) και πιστοποιηµένη αποκρυπτογράφηση (authenticated decryption). Η πιστοποιηµένη κρυπτογράφηση κρυπτογραφεί τα confidential data και υπολογίζει ένα authentication tag (T) κοινό για confidential data και για τα AAD. H πιστοποιηµένη αποκρυπτογράφηση αποκρυπτογραφεί τα confidential data και µέσω του authentication tag επαληθεύει την γνησιότητά τους. Μια υλοποίηση µπορεί να περιορίζει τα δεδοµένα εισόδου σε non-confidential data χωρίς καθόλου confidential data. Η προκύπτουσα εκδοχή του GCM καλείται GMAC. Συνεπώς, στην περίπτωση που έχουµε µόνο AAD το αποτέλεσµα της GMAC λειτουργίας είναι αντίστοιχα ο υπολογισµός και η επιβεβαίωση του Tag για τα non confidential data Πιστοποιηµένη Κρυπτογράφηση Input Data Με δεδοµένα τον εγκεκριµένο block cipher και το κλειδί, υπάρχουν τρία strings εισόδου στην λειτουργία της πιστοποιηµένης κρυπτογράφησης : Ένα Plaintext, που δείχνεται ως P και µπορεί να έχει µήκος από 0 bits µέχρι bits. Τα Additional authentication data (AAD), που δείχνονται ως Α και µπορούν να έχουν µήκος από 0 µέχρι 2 64 bits. Ένα Initialization Vector, που δείχνεται ως IV και µπορεί να έχει οποιοδήποτε µήκος µεταξύ 1 και bits. Ο IV αποτελεί ουσιαστικά µία nonce, δηλαδή, µια τιµή που είναι µοναδική εντός του καθορισµένου πλαισίου της εφαρµογής, και η οποία καθορίζει µία επίκληση της Authenticated Encryption λειτουργίας για τα δεδοµένα εισόδου που πρέπει να προστατευτούν. Η απαίτηση σχετικά µε την µοναδικότητα των IVs (και κλειδιού) αναφέρεται µε ακρίβεια στην ενότητα 4.4 και δύο frameworks για την κατασκευή IVs δίνονται στην ενότητα Εδώ χρησιµοποιείται ένας 96 bits IV για να επιτυγχάνεται απλότητα στον σχεδιασµό, αποτελεσµατικότητα και διαλειτουργικότητα, όπως προτείνεται στη βιβλιογραφία. 77

78 Το plaintext και τα AAD, είναι οι δύο κατηγορίες δεδοµένων που προστατεύει ο GCM. Ο GCM επαληθεύει την γνησιότητα (authenticity) του P και του AAD και ταυτόχρονα προστατεύει την εµπιστευτικότητα (confidentiality) του P ενώ το AAD µεταδίδεται καθαρό χωρίς την ανάγκη για κρυπτογράφηση. Για παράδειγµα, σε ένα πρωτόκολλο δικτύου, τα AAD θα µπορούσαν να περιλαµβάνουν τις διευθύνσεις, τις θύρες, τα sequences numbers, τους αριθµούς έκδοσης πρωτόκολλου, καθώς και άλλους τοµείς που δείχνουν το πώς πρέπει να αντιµετωπίζεται το plaintext. Παρόλο που ο GCM ορίζεται για bit strings, τα µήκη των plaintext, AAD, και του IV, πρέπει να είναι όλα τα πολλαπλάσια του 8, έτσι ώστε οι τιµές αυτές να είναι byte strings. Μια εφαρµογή µπορεί να περιορίσει τα µήκη από αυτά τα δεδοµένα, σύµφωνα µε τις παραπάνω απαιτήσεις. Για παράδειγµα, µια εφαρµογή µπορεί να συστήνει µικρότερες µέγιστες τιµές των εισόδων. Τα µήκη που επιτρέπει µια εφαρµογή ονοµάζονται υποστηριζόµενα µήκη (supported bit lengths). Ένα ενιαίο σύνολο για τα µήκη για κάθε µία από τις τρεις εισόδους, θα πρέπει να καθορισθεί για ολόκληρη την εφαρµογή, ανεξάρτητα από το κλειδί. Output Data Τα ακόλουθα δύο bit strings αποτελούν τα δεδοµένα εξόδου στην λειτουργία της πιστοποιηµένης κρυπτογράφησης : Το Ciphertext, που δείχνεται ως C και το µήκος του είναι ακριβώς το ίδιο µε αυτό του plaintext. Ένα Authentication tag, που δείχνεται ως T µε µήκος µια από τις ακόλουθες τιµές 128, 120, 112, 104, 96, (64, 32). Το µήκος του Τ δείχνεται ως t. Η δύναµη της γνησιότητας των P, A, IV καθορίζεται από το µήκος του Τ, t = len(t). Το µήκος του tag, είναι µια παράµετρος ασφάλειας, όπως αναφέρεται στο παράρτηµα Β του NIST. Σε γενικές γραµµές, το t µπορεί να είναι µία από τις ακόλουθες πέντε τιµές: 128, 120, 112, 104, ή 96. Για ορισµένες εφαρµογές, το t µπορεί να είναι 64 ή ακόµα και 32. Καθοδήγηση για τη χρήση αυτών των δύο µηκών του tag, συµπεριλαµβανοµένων των απαιτήσεων σχετικά µε το µήκος των δεδοµένων και τη διάρκεια ζωής του κλειδιού σε αυτές τις περιπτώσεις, δίνεται στο παράτηµα Γ του NIST. Μια εφαρµογή δεν µπορεί να υποστηρίζει τιµές για το t διαφορετικές από τις επτά επιλογές που αναφέρθηκαν. Μια εφαρµογή µπορεί να περιορίσει το υποστηριζόµενο µήκος σε µέχρι µία από τις τιµές αυτές. Μια ενιαία, σταθερή τιµή για το t, ανάµεσα από τις τιµές που υποστηρίζονται από τις παραπάνω επιλογές, πρέπει να συνδέεται µε κάθε κλειδί. 78

79 Πιστοποιηµένη Αποκρυπτογράφηση Με δεδοµένα τον εγκεκριµένο block cipher, το κλειδί και το αντίστοιχο µήκος του tag, οι είσοδοι στην λειτουργία της πιστοποιηµένης αποκρυπτογράφησης είναι οι τιµές των : Initialization Vector (IV) Ciphertext (C) Additional authentication data (AAD) (A) Authentication tag (T) Όπως αυτές περιγράφηκαν παραπάνω. Η έξοδος είναι µία από τα ακόλουθα: Το Plaintext P που αντιστοιχεί στο Ciphertext C ή ένας ειδικός κωδικός σφάλµατος, δηλαδή ένα indication Fail, που υποδεικνύει ότι τα δεδοµένα εισόδου δεν ήταν γνήσια. Επίσης Fail παίρνουµε και στην περίπτωση που τα δεδοµένα εισόδου δεν έχουν κρυπτογραφηθεί µε το συγκεκριµένο κλειδί. H GCM πιστοποιηµένη αποκρυπτογράφηση υπολογίζει το authentication tag T βασισµένη στα δεδοµένα εισόδου και το συγκρίνει µε το authentication tag T που έχει λάβει. Αν τα δύο tag, T και T, είναι ίδια τότε το P θα είναι η έξοδος της authenticated decryption function. Αλλιώς το FAIL θα αποτελεί την έξοδο. Οι τιµές για τα len (C), len (A), και len (IV) που υποστηρίζει η εφαρµογή για την πιστοποιηµένη αποκρυπτογράφηση θα πρέπει να είναι οι ίδιες µε τις τιµές των len (P), len (A), και len (IV) που υποστηρίζει η εφαρµογή για τη λειτουργία της πιστοποιηµένης κρυπτογράφησης Αξιώµατα για Εµπιστευτικότητα και Πιστοποίηση Ο µηχανισµός για την προστασία του απορρήτου του plaintext εντός του GCM είναι µια παραλλαγή του Counter mode, µε µια συγκεκριµένη προσαυξητική συνάρτηση, για να παράγει την απαραίτητη ακολουθία των counter µπλοκ. Το πρώτο counter µπλοκ για την κρυπτογράφηση του plaintext παράγεται από ένα µπλοκ που αυξάνεται και το οποίο δηµιουργείται από το IV. 79

80 Ο µηχανισµός πιστοποίησης εντός του GCM βασίζεται σε µια hash συνάρτηση, που ονοµάζεται GHASH, και περιγράφει τα χαρακτηριστικά του πολλαπλασιασµού µε µια σταθερή παράµετρο, που ονοµάζεται hash δευτερεύον κλειδί (hash subkey), µέσα σε ένα δυαδικό Galois πεδίο. Το δευτερεύον κλειδί hash, που παριστάνεται µε το H, παράγεται µε την εφαρµογή του block cipher στο "µηδενικό" µπλοκ. Το αποτέλεσµα που προκύπτει από αυτή την hash συνάρτηση, το οποίο παριστάνεται ως GHASH H, χρησιµοποιείται για τη συµπίεση µιας κωδικοποίησης των AAD και ciphertext σε ένα ενιαίο µπλοκ, το οποίο στη συνέχεια κρυπτογραφείται για την παραγωγή της ετικέτας αυθεντικότητας (authentication tag). Η GHASH είναι µια keyed hash λειτουργία, αλλά όχι από µόνη της µια κρυπτογραφική hash λειτουργία. Η παρούσα σύσταση εγκρίνει µόνο GHASH για χρήση στο πλαίσιο του GCM. Οι ενδιάµεσες τιµές κατά την εκτέλεση του GCM είναι απόρρητες. Ειδικότερα, η απαίτηση αυτή αποκλείει ένα σύστηµα στο οποίο ο GCM έχει υλοποιηθεί µε τη χρήση του hash subkey δηµοσίως για κάποιο άλλο σκοπό, όπως για παράδειγµα, σαν µια απρόβλεπτη τιµή ή ως έλεγχος της ακεραιότητας της τιµής του κλειδιού Τύποι Εφαρµογών του GCM Υπάρχουν τέσσερις τύποι εφαρµογών του GCM που προτείνονται στο SP D. Αυτοί είναι: 1) GCM µε αυθαίρετου µεγέθους IV. 2) GCM µε καθορισµένου µεγέθους (default) IV, συγκεκριµένα, στην ανάπτυξη αυτή, το µέγεθος του IV περιορίζεται ακριβώς στα 96 bits. 3) GMAC, δηλαδή ο αλγόριθµος που παράγει ένα stand-alone authentication tag T για τα AAD µε IV αυθαίρετου µεγέθους. Το plaintext P είναι το κενό string. 4) GMAC µε καθορισµένο IV. Σε αυτήν την ανάπτυξη επιλέγεται η εφαρµογή GCM µε τον default IV και θα συζητηθεί παρακάτω λεπτοµερώς. 80

81 4.2 Βασικές µαθηµατικές συνιστώσες του GCM Η ενότητα αυτή παρουσιάζει τα µαθηµατικά στοιχεία που περιλαµβάνονται στη προδιαγραφή των υποχρεώσεων (specification) στις λειτουργίες της πιστοποιηµένης κρυπτογράφησης και αποκρυπτογράφησης στην ενότητα 4.3 κατωτέρω. Ο Algorithm 1, για την GHASH λειτουργία που είναι κατασκευασµένη από τον πολλαπλασιασµό σε πεπερασµένο δυαδικό Galois πεδίο, ορίζεται στην ενότητα Ο Algorithm 2 για την GCTR λειτουργίας καθορίζεται στην ενότητα Οι προδιαγραφές των Αλγόριθµων 1, 2 περιλαµβάνουν τις εισόδους, τις εξόδους, τα βήµατα του αλγορίθµου, διαγράµµατα, καθώς και περιλήψεις. Ισοδύναµα σύνολα ενεργειών που παράγουν την σωστή έξοδο επιτρέπονται. Οι είσοδοι που είναι κατά κανόνα καθορισµένες σε πολλές επικλήσεις (invocations) της λειτουργίας καλούνται ως προϋποθέσεις (Prerequisites), αν και µπορεί επίσης να θεωρηθούν ως (κυµαινόµενες) είσοδοι GHASH Λειτουργία Ο µηχανισµός της πιστοποίησης (authentication mechanism) στον GCM βασίζεται σε µία Hash function που καλείται GHASH και κάνει πολλαπλασιασµό µε µία fixed παράµετρο που λέγεται hash subkey (H) µέσα στο binary Galois Field GF(2 128 ). Το hash subkey παράγεται εφαρµόζοντας το block cipher σε ένα zero block και το αποτέλεσµα αυτής της πράξης δείχνεται ως GHASH H. Αυτό χρησιµοποιείται για να συµπιέσει µία κωδικοποίηση των AAD και ciphertext σε ένα µόνο block το οποίο µετά κρυπτογραφείται για να παράγει το authentication tag. H GHASH είναι µία hash function κλειδιού αλλά από µόνη της δεν είναι µια κρυπτογραφική hash function. Ουσιαστικά αυτό που προσφέρει η GHASH είναι να υπογράφει µοναδικά το AAD και το ciphertext. Ο Algorithm 1 παρακάτω δείχνει την λειτουργία που θα κληθεί µέσα στους µηχανισµούς πιστοποιηµένης κρυπτογράφησης και αποκρυπτογράφησης του AES- GCM. Algorithm 1 below specifies the GHASH function: Algorithm 1: GHASH H (X) Prerequisites - προϋποθέσεις: block H, the hash subkey. Input: bit string X such that len(x) = 128m for some positive integer m. Output: block GHASH H (X). 81

82 Steps: 1. Let X1, X 2,..., X m-1, X m denote the unique sequence of blocks such that X = X 1 X 2... X m-1 X m. 2. Let Y0 be the zero block, For i = 1,..., m, let Yi = (Yi-1 Xi) H. 4. Return Ym. Εικόνα 1: GHASH H (X1 X2... Xm) = Ym. Τελικά, η GHASH function υπολογίζει το : X1 H m X2 H m-1... Xm-1 H 2 Xm H. Η GHASH function φαίνεται στην Εικόνα 1 παραπάνω, χωρίς το zero block Y0 αφού αυτό όταν γίνει exclusive-or µε το X1 δεν αλλάζει το X1. Για περισσότερη ευκολία στην κατανόηση του Algorithm 1, δίνεται παρακάτω µια περιγραφή σε ψευδοκώδικα : Algorithm 1 Y 0 for i = 1 to m do Y (Y X) H end for return Y Η GHASH δηλαδή είναι µια λειτουργία m βαθµίδων, όπου το m αντιστοιχεί στον αριθµό των πακέτων των 128 bits εισόδου, ξεκινά από την βαθµίδα 1 πολλαπλασιάζοντας το πρώτο πακέτο εισόδου των 128 bits µε το hash subkey µέσα στο GF(2 128 ) και στη συνέχεια, για τον υπολογισµό των επόµενων βαθµίδων χρησιµοποιεί το αποτέλεσµα της προηγούµενης βαθµίδας για να το κάνει XOR µε το νέο πακέτο των 128 bits εισόδου. Αυτό που προκύπτει από την XOR πράξη πολλαπλασιάζεται µε το H µέσα στο GF(2 128 ). Ουσιαστικά, η GHAS H είναι µια 82

83 σειριακή λειτουργία καθώς κάθε βαθµίδα πρέπει να περιµένει την έξοδο της προηγούµενης βαθµίδας για να ολοκληρωθεί ο υπολογισµός. Για το λόγο αυτό, δεν µπορεί να χρησιµοποιηθεί τεχνική παραλληλισµού στην υλοποίηση της GHASH (δύο διαδοχικά πακέτα ταυτόχρονα). Επιπλέον, λόγο της σειριακής εκτέλεσης, η καθυστέρηση της GHASH εξαρτάται από την καθυστέρηση του πολλαπλασιαστή, εφόσον η ολική καθυστέρηση της GHASH είναι m φορές επί την καθυστέρηση του πολλαπλασιαστή. Είναι συνεπώς καθοριστικός ο παράγοντας της σωστής επιλογής ενός γρήγορου πολλαπλασιαστή. Άρα σύµφωνα µε όσα αναφέρθηκαν παραπάνω, η επιλογή ενός παράλληλου πολλαπλασιαστή αποτελεί µονόδροµο εφόσον ενδιαφερόµαστε για θέµατα ταχύτητας και απόδοσης του AES-GCM GCTR Λειτουργία Ο µηχανισµός της εµπιστευτικότητας (confidentiality) του GCM είναι µια παραλλαγή του CTR mode, που ονοµάζεται GCTR, χρησιµοποιώντας µια συγκεκριµένη incrementing function, που δείχνεται ως inc, για να παράγει την απαραίτητη ακολουθία των counter blocks. Το πρώτο counter block για την κρυπτογράφηση του plaintext παράγεται αυξάνοντας ένα block το οποίο προέρχεται από τον IV. Ο Algorithm 2 παρακάτω περιγράφει την GCTR Function που θα κληθεί µέσα στους αλγόριθµους κατά τις λειτουργίες της GCM πιστοποιηµένης κρυπτογράφησης και αποκρυπτογράφησης. Algorithm 2 below specifies the GCTR K (ICB, X) function: Input: 1. Bit string X, of arbitrary length 2. Initial counter block ICB, i.e. IV or some value generated from IV 3. Approved block cipher CIPH (such as AES) with a 128-bit block size 4. Key K Output: Bit string Y of bit length len(x). Steps: 0. If X is the empty string, then return the empty string as Y. 1. Let n=[len(x)/128]. 2. Let X, X,..., X, X * denote the unique sequence of bit strings such that 1 2 n-1 n X = X 1 X 2... X n-1 X * n. 3. Let CB 1 = ICB. 4. For i=2 to n, let CB i = inc(cb i-1 ). 83

84 5. For i= 1 to n-1, let Y i =X i CIPH K (CB i ). 6. Let Y * n =X* n MSB len(x*n) (CIPH K (CB n )). 7. Let Y = Y 1 Y 2... Y n-1 Y * n. 8. Return Y. Σύντοµη περιγραφή του GCTR Algorithm : Στο step1 το string εισόδου αυθαίρετου µεγέθους χωρίζεται σε µια ακολουθία από blocks των 128 bits έτσι ώστε µόνο το rightmost string της σειράς να µπορεί να είναι είτε ένα complete block είτε ένα nonempty partial block. Στα steps 2, 3, 4 η incrementing function inc32 επαναλαµβάνεται συνεχώς στο ICB ώστε να παράγεται µια σειρά από CB. Στα steps 5 και 6 το block cipher εφαρµόζεται στα CB και το αποτέλεσµα που προκύπτει γίνεται XORed µε τα αντίστοιχα blocks του string εισόδου. Στο step 7 η ακολουθία των αποτελεσµάτων που προέκυψαν συνενώνεται για να παραχθεί η έξοδος. Εικόνα 2. GCTR K (ICB, X1 X2... X*n) = Y1 Y2... Y*n. 84

85 4.3 GCM Specification Οι Algorithms 3 και 4 για την πιστοποιηµένη κρυπτογράφηση και πιστοποιηµένη αποκρυπτογράφηση του GCM ορίζονται στις δύο παρακάτω ενότητες. Αυτές οι προδιαγραφές περιλαµβάνουν τις εισόδους, εξόδους, τα βήµατα τα διαγράµµατα και µια περιγραφή των αλγορίθµων. Οι προτεινόµενοι αλγόριθµοι δεν προσδιορίζουν την επιλογή του προαπαιτούµενου block cipher, γνωρίζουµε βέβαια ότι στην ανάπτυξη της διπλωµατικής αυτής περιγράφεται ο AES-GCM. Οι είσοδοι, που είναι κατά κανόνα καθορισµένες σε πολλές επικλήσεις (invocations) της λειτουργίας, καλούνται ως προϋποθέσεις (prerequisites). Ωστόσο, ορισµένες από τις απαραίτητες προϋποθέσεις µπορούν επίσης να θεωρηθούν ως (κυµαινόµενες) είσοδοι. Οι προϋποθέσεις και τις λοιπές είσοδοι πρέπει να πληρούν τις απαιτήσεις της ενότητας και αντίστοιχα Authenticated Encryption Ο Algorithm 3 παρακάτω εκτελεί την authenticated encryption function. Algorithm 3: AES-GCM-AE K (IV, P, A) Input: 1. Block cipher CIPH (i.e. AES) with a 128-bit block size 2. Key K 3. Tag length t. 4. Initialization vector IV 5. Plaintext P 6. Additional authenticated data A. Output: 1. Cipher text C 2. Authentication tag T. Steps: 1. Let H = CIPH K (0 128 ) 2. Define a block, J 0, as follows: J 0 =IV 0 31 l, i.e. J 0 is a 128-bit string consisted of 96-bit IV, 31 0 bits, and1 1 bit. 3. Let C = GCTR K (inc(j 0 ), P). 85

86 4. Let u = 128 [len(c)/128]-len(c), and let v =128 [len(a)/128]-len(a) 5. Define a block, S, as follows: S = GHASH (A 0 v C 0 u [len(a)] [len(c)] ) H Let T = MSB (GCTR (J,S)). t K 0 7. Return (C, T). Στο step 1 το hash subkey H για την GHASH Function παράγεται, εφαρµόζοντας το block cipher στο zero block. Στο step 2, το pre-counter block (J) παράγεται από τον IV. Πιο συγκεκριµένα εφόσον το µήκος του IV περιορίζεται αυστηρά στα 96 bits, τότε το padding string , προσάπτεται στον IV για να σχηµατίσει το pre-counter block των 128 bits. Στο step 3, η 32-bit incrementing function εφαρµόζεται στο precounter block για να δηµιουργηθεί το initial counter block (ICB) για µια κλίση της GCTR function για το plaintext. Το αποτέλεσµα της κλίσης της GCTR function είναι το ciphertext. Στα steps 4 και 5, καθένα από τα AAD και ciphertext προσάπτονται µε τον ελάχιστο αριθµό µηδενικών bits, πιθανώς και κανένα, έτσι ώστε το bit length των τερµατικών strings να είναι να είναι πολλαπλάσιο του block size. Η συνένωση αυτών των strings προσάπτεται µε την 64-bit αναπαράσταση του µήκους των AAD και ciphertext, και η GHASH function εφαρµόζεται στο αποτέλεσµα για να παράγει ένα single block εξόδου. Στο step 6 αυτό το block εξόδου κρυπτογραφείται χρησιµοποιώντας την GCTR function και το pre-counter block που είχε παραχθεί στο step 2 και το αποτέλεσµα περικόπτεται στο specified tag length για να σχηµατίσει το authentication tag. H authenticated encryption function εικονίζεται στην Εικόνα 3 παρακάτω. Εικόνα 3. AES-GCM-AE K (IV, P, A) = (C, T). 86

87 4.3.2 Authenticated Decryption Algorithm 4 παρακάτω εκτελεί την authenticated decryption function. Algorithm 4: AES-GCM-AD K (IV, C, A, T) Input: 1. Block cipher CIPH (i.e. AES) with a 128-bit block size 2. Key K 3. Tag length t. 4. Initialization vector IV 5. Ciphertext C 6. Additional authenticated data A. 7. Authentication tag T. Output: Plaintext P or indication of inauthenticity FAIL. Steps: 1. Let H = CIPH K (0 128 ) 2. Define a block, J 0, as follows: J 0 =IV 0 31 l. i.e. J 0 is a 128-bit string consisted of 96-bit IV, 31 0 bits, and1 1 bit. 3. Let P = GCTR K (inc(j 0 ),C). 4. Let u = 128 [len(c)/128]-len(c), and let v =128 [len(a)/128]-len(a) 5. Define a block, S, as follows: S = GHASH H (A 0 v C 0 u [len(a)] 64 [len(c)] 64 ) 6. Let T = MSB t (GCTR K (J 0,S)). 7. If T = T, then return P; else return FAIL. Στο step 1 το hash subkey H για την GHASH function παράγεται, εφαρµόζοντας το block cipher στο zero block. Στο step 2, το pre-counter block (J) παράγεται όπως ακριβώς είδαµε στην authenticated encryption function (step 2). Στο step 3, η 32-bit incrementing function εφαρµόζεται στο pre-counter block για να δηµιουργηθεί το initial counter block (ICB) για µια κλίση της GCTR function για το ciphertext αυτή τη φορά. Το αποτέλεσµα της κλίσης της GCTR function είναι το plaintext που αντιστοιχεί στο ciphertext για τον δοσµένο IV. Στα steps 4 και 5, καθένα από τα AAD και ciphertext προσάπτονται µε τον ελάχιστο αριθµό µηδενικών bits, πιθανώς και κανένα, έτσι ώστε το bit length των τερµατικών strings να είναι να είναι πολλαπλάσιο του block size. Η συνένωση αυτών των strings προσάπτεται µε την 64-bit αναπαράσταση του µήκους των AAD και ciphertext, και η GHASH function εφαρµόζεται στο αποτέλεσµα για να παράγει ένα single block εξόδου. Στο step 6 αυτό το block εξόδου κρυπτογραφείται χρησιµοποιώντας την GCTR function µε το pre-counter block που είχε παραχθεί στο step 2 και το αποτέλεσµα περικόπτεται στο specified tag length για να σχηµατίσει το authentication tag. Στο step 7 το 87

88 αποτέλεσµα του step 6 συγκρίνεται µε το authentication tag που έχει ληφθεί από την είσοδο και αν είναι πανοµοιότυπα τότε επιστρέφεται το plaintext, αλλιώς το indication FAIL. H authenticated decryption function εικονίζεται στην Εικόνα 4 παρακάτω. Εικόνα 4. AES-GCM-AD K (IV, C, A, T) = P or FAIL. 4.4 Απαιτήσεις µοναδικότητας των IV και Keys Τα IVs στον GCM πρέπει να εκπληρώνουν την ακόλουθη απαίτηση µοναδικότητας : Η πιθανότητα να κληθεί η authenticated encryption function µε το ίδιο IV και το ίδιο key για δύο ή περισσότερα διαφορετικά set δεδοµένων εισόδου, δεν πρέπει να είναι µεγαλύτερη από Συµµόρφωση µε αυτήν την απαίτηση είναι κρίσιµης σηµασίας για την ασφάλεια του GCM. Σε όλες τις εµφανίσεις της authenticated κρυπτογράφησης που λειτουργεί µε 88

89 ένα συγκεκριµένο κλειδί, ακόµη και αν ένας IV έχει επαναληφθεί, τότε η υλοποίηση µπορεί να είναι ευάλωτη σε επιθέσεις πλαστογραφίας που περιγράφονται στο Ref [5], και συνοψίζονται στο παράρτηµα Α του NIST. Στην πράξη, αυτή η απαίτηση είναι σχεδόν το ίδιο σηµαντική µε τη µυστικότητα του κλειδιού. Ο ρόλος της επιλογής του κλειδιού για την υποστήριξη αυτής της απαίτησης συζητείται στην ενότητα Οι δύο επιτρεπόµενες IV κατασκευές για την ικανοποίηση αυτής της απαίτησης δίνονται στην ενότητα Περιορισµοί σχετικά µε τον αριθµό των invocations της authenticated encryption λειτουργίας δίνονται στην ενότητα Επιλογή του κλειδιού Η ακόλουθη απαίτηση, η οποία είναι ο κανόνας για το µυστικό κλειδί κρυπτογραφικών αλγορίθµων σε γενικές γραµµές, κατέχει ρητή σηµασία στον GCM για να υποστηρίξει την απαίτηση της µοναδικότητας. Κάθε GCM κλειδί που είναι εγκατεστηµένο µεταξύ των προβλεπόµενων χρηστών θα πρέπει, µε µεγάλη πιθανότητα, να είναι φρέσκο. Στην πράξη, οι απαιτήσεις αυτές θα πρέπει να διασφαλίσουν ότι ένα κλειδί είναι φρέσκο κατά την παραγωγή του, εάν ο µηχανισµός αναπαραγωγής του κλειδιού είναι ανθεκτικός σε παραβιάσεις. Η επίτευξη της ανθεκτικότητας αυτής συνήθως επιβάλλει απαιτήσεις σχετικά µε τη διαχείριση του µηχανισµού αναπαραγωγής του κλειδιού (key generation mechanism). Ειδικότερα, αν ο βασικός µηχανισµός αναπαραγωγής του κλειδιού είναι ντετερµινιστικός, τότε η διαχείριση του µηχανισµού παρέχει ισχυρή διαβεβαίωση ότι καµία εξωγενής οντότητα δεν µπορεί να προκαλέσει την επανάληψη προηγούµενων set εισόδων στον µηχανισµό, είτε µε οποιονδήποτε άλλο τρόπο να προκαλέσει την επανάληψη µιας προηγούµενης εξόδου. Για παράδειγµα, τα GCM κλειδιά µπορούν να καθορίζονται µε βάση την παραγωγή βασικών λειτουργιών από τα ακόλουθα πρωτόκολλα, όπως περιγράφεται στο [9],: Transport Layer Security, Internet Key Exchange v1 και v2, και Secure Shell. Οµοίως, αν ένα νέο κλειδί θα πρέπει να µεταφερθεί στους αποδέκτες, ο τρόπος µεταφοράς / διανοµής θα πρέπει να παρέχει ισχυρή διαβεβαίωση έναντι της επανάληψης, έτσι ώστε κανένα µέρος να µην µπορεί να προκαλέσει την αντικατάσταση προηγούµενου κλειδιού µε το κλειδί που προορίζεται για την συγκεκριµένη εφαρµογή. Τα GCM κλειδιά θα πρέπει να εγκατασταθούν στο πλαίσιο ενός εγκεκριµένου κλειδιού διοικητικής δοµής για να εξασφαλίσουν τη φρεσκάδα τους, καθώς και την εµπιστευτικότητα και την αυθεντικότητα τους. Οι λεπτοµέρειες των εν λόγω δοµών είναι εκτός του πεδίου αυτής της παρουσίασης. 89

90 4.4.2 Κατασκευές IV Η παρούσα σύσταση παρέχει δύο πλαίσια για την κατασκευή IVs. Η πρώτη κατασκευή, που περιγράφεται στην ενότητα , βασίζεται σε ντετερµινιστικά στοιχεία για την επίτευξη της απαίτησης της µοναδικότητας. Η δεύτερη κατασκευή, που περιγράφεται στην ενότητα , βασίζεται σε µια αρκετά µεγάλη συµβολοσειρά εξόδου από εγκεκριµένη RBG (Random Bit Generator) µε επαρκή αντοχή ασφαλείας. Για οποιαδήποτε µήκος IV που υποστηρίζεται από την εφαρµογή και είναι αυστηρώς τουλάχιστον µέχρι 96 bits, η κατασκευή της επόµενης ενότητας (ντετερµινιστική κατασκευή), θα πρέπει να χρησιµοποιείται, σε όλες τις εµφανίσεις της authenticated κρυπτογράφησης µε το δεδοµένο κλειδί. Για οποιαδήποτε IV που υποστηρίζεται από την εφαρµογή και είναι µήκους 96 bit και άνω, ακριβώς µια από τις κατασκευές, αλλά όχι και οι δύο, θα πρέπει να χρησιµοποιείται, σε όλες τις εµφανίσεις της authenticated κρυπτογράφησης µε το δεδοµένο κλειδί. Για παράδειγµα, ας υποθέσουµε ότι µια εφαρµογή υποστηρίζει IV µήκους 64-bits, 96 bits, 128 bits, και 160 bit. Για 64-bit IVs η µόνη επιλογή είναι η ντετερµινιστική κατασκευή. Για τα άλλα τρία µήκη IV, ένας δυνατός συνδυασµός των επιλογών είναι η ντετερµινιστική κατασκευή για 96-bit IVs και η RBG-based κατασκευή για τους 128-bit και 160-bit IVs Ντετερµινιστική κατασκευή Στην ντετερµινιστική κατασκευή, το IV είναι η αλληλουχία δύο πεδίων, που αναφέρονται ως σταθερό πεδίο (fixed field) και πεδίο επίκλησης (invocation field). Το fixed field προσδιορίζει τη συσκευή, ή γενικότερα, το πλαίσιο για την εµφάνιση της authenticated κρυπτογράφησης. Το invocation field προσδιορίζει τα set των εισόδων για την λειτουργία της authenticated κρυπτογράφησης στη συγκεκριµένη συσκευή. Για κάθε κλειδί, δύο διαφορετικές συσκευές δεν πρέπει να µοιράζονται το ίδιο fixed field, και δύο διαφορετικά set εισόδων, για οποιαδήποτε µεµονωµένη συσκευή, δεν πρέπει να έχουν το ίδιο invocation field. Η συµµόρφωση µε αυτές τις δύο απαιτήσεις συνεπάγεται τη συµµόρφωση µε την απαίτηση για µοναδικότητα των IVs. Εάν είναι επιθυµητό, το fixed field µπορεί να είναι κατασκευασµένο από δύο ή περισσότερα µικρότερα πεδία. Επιπλέον, ένα από τα µικρά αυτά πεδία θα µπορούσε να αποτελείται από κοµµάτια που είναι αυθαίρετα (δηλαδή, δεν είναι κατ 'ανάγκη ντετερµινιστικά ούτε µοναδικά για τη συσκευή), εφόσον τα υπόλοιπα bits εξασφαλίζουν ότι το σταθερό πεδίο δεν επαναλαµβάνεται στο σύνολό του για κάποια άλλη συσκευή µε το ίδιο κλειδί. 90

91 Οµοίως, το fixed field µπορεί να συνίσταται από αυθαίρετα bits, όταν υπάρχει µόνο ένα πλαίσιο για αναγνώριση, όπως όταν ένα φρέσκο κλειδί περιορίζεται σε µία µόνο συνεδρία ενός πρωτόκολλου επικοινωνιών. Στην περίπτωση αυτή, εάν οι συµµετέχοντες µοιράζονται ένα κοινό σταθερό πεδίο, τότε το πρωτόκολλο εξασφαλίζει ότι τα πεδία επίκλησης είναι διαφορετικά για διαφορετικά δεδοµένα εισόδου. Τα πεδία επίκλησης συνήθως είναι είτε 1) ένας ακέραιος µετρητής ή 2) ένας γραµµικός shift register που οδηγείται από ένα πρωταρχικό (primitive) πολυώνυµο για να εξασφαλιστεί η µέγιστη διάρκεια του κύκλου. Και στις δύο περιπτώσεις, τα πεδία επίκλησης αυξάνονται µετά από κάθε επίκληση της λειτουργίας της authenticated κρυπτογράφησης. Τα µήκη και οι θέσεις του σταθερού πεδίου και του πεδίου επίκλησης πρέπει να καθορίζεται για κάθε υποστηριζόµενο µήκος IV. Για την προώθηση της διαλειτουργικότητας για το default IV µήκους 96 bits, προτείνεται, αλλά δεν απαιτείται, ότι τα πρώτα (δηλαδή, αριστερότερα) 32 bit των IV να έχουν το σταθερό πεδίο, και τα τελικά (δηλαδή, δεξιότερα) 64 bit να έχουν το πεδίο επίκλησης RBG-based κατασκευή Στην RBG-based κατασκευή, ο IV είναι η αλληλουχία από δύο πεδία, που αναφέρονται ως το τυχαίο πεδίο (random field) και το ελεύθερο πεδίο (free field). Για κάθε µήκος IV που υποστηρίζεται από την εφαρµογή και χρησιµοποιείται στην RBGbased κατασκευή, το µήκος των εν λόγω πεδίων πρέπει να καθορίζεται για τη ζωή του κλειδιού. Επιπλέον, το µήκος του τυχαίου πεδίου πρέπει να είναι τουλάχιστον 96 bits, και το ελεύθερο πεδίο µπορεί να είναι άδειο. Εάν i είναι ένα υποστηριζόµενο IV µήκος που σχετίζεται µε την κατασκευή RBGbased, τότε ας χαρακτηριστεί r(i) το µήκος του τυχαίου πεδίου. Το τυχαίο πεδίο είτε αποτελείται από 1) ένα string εξόδου των r(i) bits από εγκεκριµένη RBG µε επαρκή δύναµη ασφάλειας, ή 2) το αποτέλεσµα της εφαρµογής της r(i)-bit προσαυξητικής λειτουργίας στο τυχαίο πεδίο του προηγούµενου IV για το δοσµένο κλειδί. Το r(i)-bit string εξόδου από την RBG ονοµάζεται άµεση τυχαία σειρά (direct random string), και τα τυχαία πεδία που προκύπτουν από την εφαρµογή της r(i)-bit προσαυξητικής λειτουργίας καλούνται διάδοχοι (successors). εν υπάρχουν απαιτήσεις σχετικά µε τα bits στο ελεύθερο πεδίο. Για παράδειγµα, µπορούν να εντοπίζουν τη συσκευή, παρόµοια µε το σταθερό πεδίο στην ντετερµινιστική κατασκευή, µε εξαίρεση την RBG-based κατασκευή, αυτοί οι αναγνωριστικές ποσότητες δεν απαιτείται να είναι διαφορετικές για κάθε συσκευή. Για κάθε µήκος IV που σχετίζεται µε την RBG-κατασκευή, το ελεύθερο πεδίο συνιστάται να είναι κενό, έτσι ώστε το τυχαίο πεδίο να είναι το σύνολο του IV. Τα στιγµιότυπα των RBGs σε δύο διαφορετικές συσκευές πρέπει να είναι ανεξάρτητα, έτσι ώστε η κατανοµή των direct random string σε όλα τα RBG στιγµιότυπα να αναµένεται να είναι οµοιόµορφη. Για παράδειγµα, αν η αρχικοποίηση των RBG στιγµιότυπων εξαρτάται µόνο για ένα µυστικό "σπόρο", τότε κάθε στιγµιότυπο πρέπει να ξεκινά µε ένα ξεχωριστό "σπόρο". 91

92 4.4.3 Εµπόδια για τον αριθµό των Invocations Η ακόλουθη απαίτηση εφαρµόζεται σε όλες τις υλοποιήσεις που χρησιµοποιούν είτε 1) την ντετερµινιστική κατασκευή των IVs το µήκος των οποίων δεν είναι 96, ή 2) την RBG-based κατασκευή, για οποιοδήποτε µήκος των IVs. Με άλλα λόγια, αν µια εφαρµογή χρησιµοποιεί µόνο 96-bit IVs που παράγονται από την ντετερµινιστική κατασκευή τότε : Ο συνολικός αριθµός των επικλήσεων (invocations) της λειτουργίας της authenticated κρυπτογράφησης δεν πρέπει να υπερβαίνει τα 2 32, συµπεριλαµβανοµένων όλων των µήκων του IV και όλες τις εµφανίσεις της λειτουργίας της authenticated κρυπτογράφησης µε το δεδοµένο κλειδί. Αυτή είναι µια "καθολική" απαίτηση που µπορεί να επιτευχθεί µε τα κατάλληλα "τοπικά" όρια για κάθε εµφάνιση της λειτουργίας της authenticated κρυπτογράφησης µε δεδοµένο κλειδί. Για παράδειγµα, ας υποθέσουµε ότι µια εφαρµογή αποτελείται από 2 10 συσκευές που υποστηρίζουν µόνο 64-bit, 96-bit και 128-bit IVs. Ένας τρόπος για να πληρείται η παραπάνω απαίτηση θα είναι να περιοριστεί κάθε συσκευή σε 2 20 invocations µε 64-bit IVs, 2 21 invocations µε 96-bit IVs, και 2 20 invocations µε 128- bit IVs. Για την RBG-based κατασκευή των IVs, η ανωτέρω απαίτηση, σε συνδυασµό µε την απαίτηση ότι r(i) 96, είναι επαρκής για να εξασφαλίσει την απαίτηση της µοναδικότητας. Για την ντετερµινιστική κατασκευή, τα µήκη των δύο πεδίων εισάγουν δύο πρόσθετους λειτουργικούς περιορισµούς. Οι εν λόγω περιορισµοί ισχύουν για κάθε υποστηριζόµενο µήκος IV, συµπεριλαµβανοµένου των 96 bits: Το µήκος bit του πεδίου επίκλησης περιορίζει τον αριθµό των επικλήσεων της λειτουργίας της authenticated κρυπτογράφησης µε δεδοµένο κλειδί και δεδοµένο σταθερό πεδίο. Ειδικότερα, εάν s υποδηλώνει τον αριθµό των bits του πεδίου επίκλησης, τότε η λειτουργία της authenticated κρυπτογράφησης δεν µπορεί να κληθεί για περισσότερο από 2 s ξεχωριστές σειρές εισόδων, χωρίς να παραβιάζεται η απαίτηση της µοναδικότητας. Οµοίως, ένα s-bit σταθερό πεδίο συνεπάγεται ένα όριο των 2 s για τον αριθµό των διακριτών συσκευών / πλαισίων που µπορούν να εφαρµόσουν τη λειτουργίας της authenticated κρυπτογράφησης µε δεδοµένο κλειδί και µε δεδοµένο µήκος IVs. 4.5 Υψηλής ταχυτάτας υλοποίηση του GCM Οι ASIC υλοποιήσεις του GCM που έχουν αναφερθεί στη βιβλιογραφία έχουν αποδόσεις (throughputs) µέχρι και 42 Gbps µε τη χρήση εξωτερικής διοχέτευσης γύρων AES και έναν παράλληλο Mastrovito πολλαπλασιαστή για την Galois λειτουργία. Σύνθετες Sbox υλοποιήσεις είχαν χρησιµοποιηθεί για να παραχθούν 92

93 σχέδια µε µεγαλύτερη λειτουργικότητα επιφάνειας, ενώ για υψηλότερη απόδοση τα BDD Sboxes χρησιµοποιήθηκαν. Το πλάτος του DataPath του σχεδιασµού είναι 128 bit, ώστε σε κάθε κύκλο ρολογιού ένα µπλοκ να δίνεται στην έξοδο. Εµπορικά σχέδια έχουν αναφέρει παρόµοια throughputs για standalone GCM υλοποιήσεις. Μία παράλληλη αρχιτεκτονική η οποία υπολογίζει τέσσερις λειτουργίες GCM ταυτόχρονα προτάθηκε από τον Satoh και είναι η υψηλότερη απόδοση που έχει αναφερθεί µέχρι σήµερα, ικανή για έως και 160 Gbps. Αυτός ο σχεδιασµός, ωστόσο, έχει έναν αυξηµένο αριθµό εισόδων που απαιτούνται για κάθε παράλληλη GCM λειτουργία. Μια αρχιτεκτονική διοχέτευσης πολλαπλασιασµού προτάθηκε µε επίτευξη 54,9 Gbps. Σε αυτό το σχεδιασµό γίνεται χρήση µιας εσωτερικής και µιας εξωτερικής διοχέτευσης του AES µπλοκ µε έναν pipelined πολλαπλασιαστή µικρής καθυστέρησης ο οποίος κατασκευάστηκε από την παράλληλη αρχιτεκτονική του GCM. Με τη χρήση αυτού του τύπου κατασκευής, η ανάδραση, που είναι προϋπόθεση για τον πολλαπλασιαστή, διατηρήθηκε, και µια υψηλή απόδοση επιτεύχθηκε λόγω των αυξηµένων σταδίων της διοχέτευσης. Η υψηλότερη καθυστέρηση αλλαγής του κλειδιού που κυµαίνεται από 40 έως 56 κύκλους, µειώνει τη συνολική αποδοτικότητα αν υπάρχουν περισσότερες απότοµες ενάρξεις που προκύπτουν ως αποτέλεσµα της ανανέωσης του κλειδιού. ιάφορα FPGA σχέδια έχουν επίσης προταθεί για το GCM µε τη χρήση ενός παράλληλου πολλαπλασιαστή µετατοπισµένης πολυωνυµικής βάσης, στα οποία έχει επιτευχθεί απόδοση µέχρι και 15,3 Gbps. Το πλάτος του DataPath προτείνεται να κυµαίνεται από 8 έως 128 bits, όπου προκύπτουν σχέδια µε διάφορα tradeoffs στις καθυστερήσεις και την επιφάνεια. Τρεις Sbox λύσεις, ο LUT, τα σύνθετα Sbox και µια Block Ram υλοποίηση χρησιµοποιήθηκαν στην εφαρµογή του GCM. Ένας άλλος FPGA σχεδιασµός µε σηµαντικά αποτελέσµατα παρουσιάστηκε, ο οποίος παρείχε µία Karatsuba Algorithm υλοποίηση του πολλαπλασιαστή (KA). Αυτός ο σχεδιασµός κάνει χρήση των σύνθετων Sbox µε τον KA πολλαπλασιαστή για την επίτευξη ενός ποσοστού απόδοσης των 15,23 Gbps µε τη χρήση ενός γύρου εξωτερικής διοχέτευσης. Χρησιµοποιώντας γύρο εσωτερικής διοχέτευσης και έναν brute force πολλαπλασιαστή, µια 20,61 Gbps απόδοση επιτεύχθηκε, αλλά είχε τη διπλάσια καθυστέρηση. Η εφαρµογή αυτή, επίσης, υποστηρίζει µόνο 128 bit AES κλειδιών σε αντίθεση µε την εφαρµογή που προβλέπεται σε άλλες υλοποιήσεις, οι οποία υποστηρίζουν όλα τα είδη κλειδιών. 93

94 94

95 Κεφάλαιο 5 -- Υλοποίηση και Αρχιτεκτονική -- Το κεφάλαιο αυτό περιγράφει την AES-GCM υλοποίηση. Η ενότητα 5.1 επεξηγεί, µέσω σχηµατικών αναπαραστάσεων, την προτεινόµενη υλοποίηση αναλύοντας µε ακρίβεια τις εσωτερικές διεργασίες και µηχανισµούς που συνθέτουν το συγκεκριµένο πρότυπο ασφαλείας. Η ενότητα περιγράφει την διεργασία της κρυπτογράφησης και τους αντίστοιχους µηχανισµούς. Η ενότητα περιγράφει την διεργασία της αποκρυπτογράφησης. Στο δεύτερο µέρος αυτού του κεφαλαίου, στην ενότητα 5.2, εµβαθύνουµε σε θέµατα αρχιτεκτονικής από την οποία προκύπτει η προτεινόµενη HDL υλοποίηση του AES-GCM που προορίζεται για την επιλεγµένη FPGA πλατφόρµα. Η ενότητα πραγµατεύεται τις αρχιτεκτονικές των βασικών δοµών AES και GHASH, η ενότητα ασχολείται µε την αρχιτεκτονική ολόκληρου του AES-GCM συστήµατος ενώ τέλος στις παρακάτω ενότητες δίνονται τα διαγράµµατα ροής. 5.1 ιεργασίες και Μηχανισµοί Στα προηγούµενα κεφάλαια έγινε µια πλήρης µαθηµατική και θεωρητική ανάλυση της λειτουργίας του AES-GCM αλγορίθµου, η οποία στηρίχθηκε στα αντίστοιχα recommendation του NIST µε την βοήθεια άλλων συγγραµµάτων για την κατανόηση. Στο κεφάλαιο αυτό γίνεται µια πλήρης και λεπτοµερής ανάλυση του AES-GCM η οποία βασίζεται στην τµηµατοποίηση, τον διαχωρισµό και την οµαδοποίηση των βασικών δοµών (modules) του αλγορίθµου ώστε να γίνει σαφές το πώς αυτές οι δοµές αλληλεπιδρούν και συνεργάζονται µεταξύ τους για την επίτευξη του επιθυµητού αποτελέσµατος. Τέλος, η ανάλυση που γίνεται σε αυτό το πρώτο µέρος του κεφαλαίου δεν είναι αυστηρά hardware προσέγγιση αλλά µπορεί να χρησιµοποιηθεί και για υλοποίηση σε software, αν θεωρήσουµε τα διάφορα στοιχεία ως συναρτήσεις ή υποσυναρτήσεις. Η αρχική ανάλυση που ακολουθεί δεν αποτελεί την αυστηρή υλοποίηση του hardware αλλά τον πλάνο στο οποίο βασίστηκε η υλοποίηση. Όπως είναι λογικό η υλοποίηση διαφέρει από το αρχικό πλάνο και αναλύεται παρακάτω ιεργασία Κρυπτογράφησης (Encryption Function) Παρακάτω φαίνονται σχηµατικά τα επίπεδα και οι δοµές που συνθέτουν τον αλγόριθµο κρυπτογράφησης έτσι όπως αυτός παρουσιάστηκε στο κεφάλαιο 4. Αυτό το βήµα είναι απαραίτητο πριν προχωρήσουµε σε περαιτέρω ανάλυση αρχιτεκτονικής, ώστε να γίνει κατανοητή η εσωτερική κατανοµή των στοιχειωδών δοµών των δύο βασικών µηχανισµών που συνθέτουν τον AES-GCM. Η προσέγγιση που ακολουθείται είναι της λογικής top-down. Ουσιαστικά, µια top-down προσέγγιση είναι ο κατακερµατισµός ενός συστήµατος για να αποκτηθούν γνώσεις σχετικά µε την σύνθεση των επιµέρους συστηµάτων. Σε µία top-down προσέγγιση διατυπώνεται µια πρώτη και γενική εικόνα του συστήµατος αλλά δεν διευκρινίζεται λεπτοµερώς κάθε πρωτοβάθµιο επίπεδο υποσυστηµάτων. Κάθε υποσύστηµα µπορεί ακόµα να 95

96 τελειοποιηθεί µε µεγαλύτερη λεπτοµέρεια, και µερικές φορές σε πολλά επιπρόσθετα επίπεδα, µέχρι το σύνολο της προδιαγραφής να µειωθεί στα βασικά στοιχεία. Ένα top-down µοντέλο εκφράζεται µε την βοήθεια των black boxes που διευκολύνει τον χειρισµό του συστήµατος. Με τον όρο black boxes αναφερόµαστε στα στοιχεία του κυκλωµατικού για τα οποία µας είναι γνωστό ποιά διεργασία υλοποιούν αλλά δεν µας είναι γνωστή η εσωτερική αρχιτεκτονική τους. Σε αυτή την ενότητα θα γίνει µια top-down ανάλυση σε τέτοιο βαθµό που να είναι εφικτό µεταγενέστερα να εφαρµόσουµε οποιαδήποτε τεχνική υλοποίησης και χρονισµού για την βελτίωση του συστήµατος. Εδώ ως εξωτερικό black box ορίζεται ο αλγόριθµος AES-GCM στο σύνολό του µε εισόδους Κ, A, IV και P δηλαδή Key, Additional Authenticated Data, Initialization Vector και Plaintext αντίστοιχα, και εξόδους Τ, C δηλαδή TAG και Ciphertext αντίστοιχα. Ως εσωτερικά black boxes ορίζονται οι δύο µηχανισµοί που επιτελούνται κατά την εκτέλεση του αλγορίθµου όπως δείχνονται παρακάτω: 96

Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 8 η. Βασίλης Στεφανής

Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 8 η. Βασίλης Στεφανής Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ Διάλεξη 8 η Βασίλης Στεφανής Περιεχόμενα Τι είναι κρυπτογραφία Ιστορική αναδρομή Αλγόριθμοι: Καίσαρα Μονοαλφαβιτικοί Vigenere Vernam Κρυπτογραφία σήμερα Κρυπτογραφία Σκοπός Αποστολέας

Διαβάστε περισσότερα

ΕΠΛ 674: Εργαστήριο 1 Ασφάλεια Επικοινωνιακών Συστημάτων - Κρυπτογραφία

ΕΠΛ 674: Εργαστήριο 1 Ασφάλεια Επικοινωνιακών Συστημάτων - Κρυπτογραφία ΕΠΛ 674: Εργαστήριο 1 Ασφάλεια Επικοινωνιακών Συστημάτων - Κρυπτογραφία Παύλος Αντωνίου Γραφείο: ΘΕΕ 02 B176 Εαρινό Εξάμηνο 2011 Department of Computer Science Ασφάλεια - Απειλές Ασφάλεια Γενικά (Ι) Τα

Διαβάστε περισσότερα

ΤΕΙ Κρήτης Τμήμα Μηχανικών Πληροφορικής. Συμμετρική Κρυπτογραφία

ΤΕΙ Κρήτης Τμήμα Μηχανικών Πληροφορικής. Συμμετρική Κρυπτογραφία ΤΕΙ Κρήτης Τμήμα Μηχανικών Πληροφορικής Συμμετρική Κρυπτογραφία Εισαγωγή Στην συνηθισμένη κρυπτογραφία, ο αποστολέας και ο παραλήπτης ενός μηνύματος γνωρίζουν και χρησιμοποιούν το ίδιο μυστικό κλειδί.

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. ΑΚΟΥΡΟΥ ΣΤΕΦΑΝΙΑ του ΝΙΚΟΛΑΟΥ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. ΑΚΟΥΡΟΥ ΣΤΕΦΑΝΙΑ του ΝΙΚΟΛΑΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΣΧΕ ΙΑΣΜΟΥ ΟΛΟΚΛΗΡΩΜΕΝΩΝ ΚΥΚΛΩΜΑΤΩΝ ΜΕΓΑΛΗΣ ΚΛΙΜΑΚΑΣ (VLSI DESIGN) ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ

Διαβάστε περισσότερα

Κρυπτογραφία. Κωνσταντίνου Ελισάβετ

Κρυπτογραφία. Κωνσταντίνου Ελισάβετ Κρυπτογραφία Κωνσταντίνου Ελισάβετ ekonstantinou@aegean.gr http://www.icsd.aegean.gr/ekonstantinou Συμμετρικά Κρυπτοσυστήματα κλειδί k Αρχικό κείμενο (m) Αλγόριθμος Κρυπτογράφησης Ε c = E k (m) Κρυπτογραφημένο

Διαβάστε περισσότερα

Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία

Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία Συμμετρικά κρυπτοσυστήματα Άρης Παγουρτζής Στάθης Ζάχος Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Σχολή ΗΜΜΥ ΕΜΠ 1

Διαβάστε περισσότερα

Συμμετρικά κρυπτοσυστήματα

Συμμετρικά κρυπτοσυστήματα Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία Συμμετρικά κρυπτοσυστήματα Άρης Παγουρτζής Στάθης Ζάχος Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών Δίκτυα Feistel Σημαντικές

Διαβάστε περισσότερα

Ασφάλεια Υπολογιστικών Συστηµάτων

Ασφάλεια Υπολογιστικών Συστηµάτων Ορισµοί Κρυπτογράφηση: η διεργασία µετασχηµατισµού ενός µηνύµατος µεταξύ ενός αποστολέα και ενός παραλήπτη σε µια ακατανόητη µορφή ώστε αυτό να µην είναι αναγνώσιµο από τρίτους Αποκρυπτογράφηση: η διεργασία

Διαβάστε περισσότερα

Εφαρμοσμένη Κρυπτογραφία Ι

Εφαρμοσμένη Κρυπτογραφία Ι Εφαρμοσμένη Κρυπτογραφία Ι Κωνσταντίνου Ελισάβετ ekonstantinou@aegean.gr http://www.icsd.aegean.gr/ekonstantinou Συμμετρικά Κρυπτοσυστήματα κλειδί k Αρχικό κείμενο (m) Αλγόριθμος Κρυπτογράφησης Ε c = E

Διαβάστε περισσότερα

Κρυπτογραφία. Κρυπτοσυστήματα τμήματος (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας

Κρυπτογραφία. Κρυπτοσυστήματα τμήματος (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας Κρυπτογραφία Κρυπτοσυστήματα τμήματος (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Block ciphers και ψευδοτυχαίες

Διαβάστε περισσότερα

Κρυπτογραφία. Κρυπτοσυστήματα πακέτου (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας

Κρυπτογραφία. Κρυπτοσυστήματα πακέτου (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας Κρυπτογραφία Κρυπτοσυστήματα πακέτου (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Block ciphers και ψευδοτυχαίες

Διαβάστε περισσότερα

Κρυπτογραφία. Κρυπτοσυστήματα τμήματος (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας

Κρυπτογραφία. Κρυπτοσυστήματα τμήματος (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας Κρυπτογραφία Κρυπτοσυστήματα τμήματος (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Block ciphers (κρυπτοσυστήματα

Διαβάστε περισσότερα

Εισαγωγή στην Κρυπτογραφία και τις Ψηφιακές Υπογραφές

Εισαγωγή στην Κρυπτογραφία και τις Ψηφιακές Υπογραφές Εισαγωγή στην Κρυπτογραφία και τις Ψηφιακές Υπογραφές Βαγγέλης Φλώρος, BSc, MSc Τµήµα Πληροφορικής και Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήµιο Αθηνών Εν αρχή είναι... Η Πληροφορία - Αρχείο

Διαβάστε περισσότερα

Κρυπτογραφία. Κεφάλαιο 1 Γενική επισκόπηση

Κρυπτογραφία. Κεφάλαιο 1 Γενική επισκόπηση Κρυπτογραφία Κεφάλαιο 1 Γενική επισκόπηση Ανασκόπηση ύλης Στόχοι της κρυπτογραφίας Ιστορικό Γενικά χαρακτηριστικά Κλασσική κρυπτογραφία Συμμετρικού κλειδιού (block ciphers stream ciphers) Δημοσίου κλειδιού

Διαβάστε περισσότερα

Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών. Aσφάλεια

Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών. Aσφάλεια Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών Aσφάλεια Περιεχόμενα Πλευρές Ασφάλειας Ιδιωτικό Απόρρητο Μέθοδος Μυστικού Κλειδιού (Συμμετρική Κρυπτογράφηση) Μέθοδος Δημόσιου Κλειδιού (Ασύμμετρη

Διαβάστε περισσότερα

Αλγόριθµοι συµµετρικού κλειδιού

Αλγόριθµοι συµµετρικού κλειδιού Αλγόριθµοι συµµετρικού κλειδιού Αλγόριθµοι συµµετρικού κλειδιού Χρησιµοποιούν το ίδιο κλειδί για την κρυπτογράφηση και την αποκρυπτογράφηση Υλοποιούνται τόσο µε υλικό (hardware) όσο και µε λογισµικό (software)

Διαβάστε περισσότερα

Κρυπτογραφία. Εργαστηριακό μάθημα 1

Κρυπτογραφία. Εργαστηριακό μάθημα 1 Κρυπτογραφία Εργαστηριακό μάθημα 1 Βασικοί όροι Με τον όρο κρυπτογραφία εννοούμε τη μελέτη μαθηματικών τεχνικών που στοχεύουν στην εξασφάλιση θεμάτων που άπτονται της ασφάλειας μετάδοσης της πληροφορίας,

Διαβάστε περισσότερα

8.3.4 Τεχνικές Ασφάλειας Συμμετρική Κρυπτογράφηση Ασυμμετρική Κρυπτογράφηση Ψηφιακές Υπογραφές

8.3.4 Τεχνικές Ασφάλειας Συμμετρική Κρυπτογράφηση Ασυμμετρική Κρυπτογράφηση Ψηφιακές Υπογραφές Κεφάλαιο 8 8.3.4 Τεχνικές Ασφάλειας Συμμετρική Κρυπτογράφηση Ασυμμετρική Κρυπτογράφηση Ψηφιακές Υπογραφές Σελ. 320-325 Γεώργιος Γιαννόπουλος ΠΕ19, ggiannop (at) sch.gr http://diktya-epal-g.ggia.info/ Creative

Διαβάστε περισσότερα

ΤΙΤΛΟΣ ΕΡΕΥΝΗΤΙΚΗΣ ΕΚΘΕΣΗΣ ΚΩΔΙΚΕΣ. Υπόθεμα: «ΚΡΥΠΤΟΓΡΑΦΙΑ»

ΤΙΤΛΟΣ ΕΡΕΥΝΗΤΙΚΗΣ ΕΚΘΕΣΗΣ ΚΩΔΙΚΕΣ. Υπόθεμα: «ΚΡΥΠΤΟΓΡΑΦΙΑ» ΤΙΤΛΟΣ ΕΡΕΥΝΗΤΙΚΗΣ ΕΚΘΕΣΗΣ ΚΩΔΙΚΕΣ Υπόθεμα: «ΚΡΥΠΤΟΓΡΑΦΙΑ» ΤΑ ΜΕΛΗ ΤΗΣ ΟΜΑΔΑΣ ΦΩΤΕΙΝΟΥ ΑΝΔΡΙΑΝΑ ΣΟΦΟΛΟΓΗ ΑΡΕΤΗ ΣΠΑΡΤΑΛΗΣ ΝΙΚΟΣ ΜΕΜΟΣ ΝΙΚΟΣ Επιβλέπουσα καθηγήτρια: Καλλιόπη Μαγδαληνού, ΠΕ19 1 ΛΙΓΑ ΛΟΓΙΑ

Διαβάστε περισσότερα

Εισαγωγή στην επιστήμη της Πληροφορικής και των. Aσφάλεια

Εισαγωγή στην επιστήμη της Πληροφορικής και των. Aσφάλεια Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών Aσφάλεια Περιεχόμενα Πλευρές Ασφάλειας Ιδιωτικό Απόρρητο Μέθοδος Μυστικού Κλειδιού (Συμμετρική Κρυπτογράφηση) Μέθοδος Δημόσιου Κλειδιού (Ασύμμετρη

Διαβάστε περισσότερα

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Εισαγωγή. Χρήστος Ξενάκης

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Εισαγωγή. Χρήστος Ξενάκης Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Κρυπτογραφία Εισαγωγή Χρήστος Ξενάκης Στόχος του μαθήματος Η παρουσίαση και ανάλυση των βασικών θεμάτων της θεωρίας κρυπτογραφίας. Οι εφαρμογές της κρυπτογραφίας

Διαβάστε περισσότερα

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο Εισαγωγή- Βασικές Έννοιες Διδάσκων : Δρ. Παρασκευάς Κίτσος diceslab.cied.teiwest.gr Επίκουρος Καθηγητής Εργαστήριο Σχεδίασης Ψηφιακών Ολοκληρωμένων Κυκλωμάτων

Διαβάστε περισσότερα

Πληροφορική Ι. Μάθημα 10 ο Ασφάλεια. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Δρ. Γκόγκος Χρήστος

Πληροφορική Ι. Μάθημα 10 ο Ασφάλεια. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Δρ. Γκόγκος Χρήστος Οι διαφάνειες έχουν βασιστεί στο βιβλίο «Εισαγωγή στην επιστήμη των υπολογιστών» του B. Forouzanκαι Firoyz Mosharraf(2 η έκδοση-2010) Εκδόσεις Κλειδάριθμος Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου

Διαβάστε περισσότερα

UP class. & DES και AES

UP class. & DES και AES Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Σημειώσεις Διαλέξεων UP class & DES και AES Επιμέλεια σημειώσεων: Ιωάννης Νέμπαρης Μάριος Κουβαράς Διδάσκοντες: Στάθης Ζάχος

Διαβάστε περισσότερα

Ηλεκτρονικό εμπόριο. HE 7 Τεχνολογίες ασφάλειας

Ηλεκτρονικό εμπόριο. HE 7 Τεχνολογίες ασφάλειας Ηλεκτρονικό εμπόριο HE 7 Τεχνολογίες ασφάλειας Πρόκληση ανάπτυξης ασφαλών συστημάτων Η υποδομή του διαδικτύου παρουσίαζε έλλειψη υπηρεσιών ασφάλειας καθώς η οικογένεια πρωτοκόλλων TCP/IP στην οποία στηρίζεται

Διαβάστε περισσότερα

Ασφάλεια Ασύρματων & Κινητών Επικοινωνιών

Ασφάλεια Ασύρματων & Κινητών Επικοινωνιών Ασφάλεια Ασύρματων & Κινητών Επικοινωνιών Ασύρματες Επικοινωνίες Μέρος V Χρήστος Ξενάκης Τμήμα Ψηφιακών Συστημάτων Πανεπιστήμιο Πειραιώς Slide: 1/30 Περιεχόμενα IEEE 802.11i ΤΟ ΠΡΩΤΟΚΟΛΛΟ CCMP Γενικά Λίγα

Διαβάστε περισσότερα

Δ Εξάμηνο. Κρυπτογραφία: Συμμετρική Κρυπτογράφηση

Δ Εξάμηνο. Κρυπτογραφία: Συμμετρική Κρυπτογράφηση ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο Κρυπτογραφία: Συμμετρική Κρυπτογράφηση Διδάσκων : Δρ. Παρασκευάς Κίτσος http://www.diceslab.cied.teiwest.gr Επίκουρος Καθηγητής Εργαστήριο Σχεδίασης Ψηφιακών

Διαβάστε περισσότερα

Αλγόριθµοι δηµόσιου κλειδιού

Αλγόριθµοι δηµόσιου κλειδιού Αλγόριθµοι δηµόσιου κλειδιού Αλγόριθµοι δηµόσιου κλειδιού Ηδιανοµή του κλειδιού είναι ο πιο αδύναµος κρίκος στα περισσότερα κρυπτογραφικά συστήµατα Diffie και Hellman, 1976 (Stanford Un.) πρότειναν ένα

Διαβάστε περισσότερα

Κρυπτογράφηση Αποκρυπτογράφηση Ερευνητική εργασία Β'1 1 ο Γενικό Λύκειο Ευόσμου

Κρυπτογράφηση Αποκρυπτογράφηση Ερευνητική εργασία Β'1 1 ο Γενικό Λύκειο Ευόσμου Κρυπτογράφηση Αποκρυπτογράφηση Ερευνητική εργασία Β'1 1 ο Γενικό Λύκειο Ευόσμου 2013-2014 Project Ορισμοί Ιστορία Η αποκρυπτογράφηση στις μέρες μας Κρυπτογράφηση Αποκρυπτογράφηση Αποκρυπτογραφημένο-Κρυπτογραφημένο

Διαβάστε περισσότερα

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο Συναρτήσεις Κατακερματισμού και Πιστοποίηση Μηνύματος Διδάσκων : Δρ. Παρασκευάς Κίτσος Επίκουρος Καθηγητής e-mail: pkitsos@teimes.gr, pkitsos@ieee.org Αντίρριο

Διαβάστε περισσότερα

Πρόβληµα 2 (15 µονάδες)

Πρόβληµα 2 (15 µονάδες) ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΕΦΑΡΜΟΓΕΣ, 2013-2014 ΔΙΔΑΣΚΩΝ: Ε. Μαρκάκης Πρόβληµα 1 (5 µονάδες) 2 η Σειρά Ασκήσεων Προθεσµία Παράδοσης: 19/1/2014 Υπολογίστε

Διαβάστε περισσότερα

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών Ασφάλεια Δεδομένων.

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών Ασφάλεια Δεδομένων. Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής στην Επιστήμη των Υπολογιστών 2015-16 Ασφάλεια Δεδομένων http://www.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Οι απειλές Ένας κακόβουλος χρήστης Καταγράφει μηνύματα

Διαβάστε περισσότερα

ΠΡΟΣΤΑΣΙΑ ΠΡΟΣΩΠΙΚΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΘΩΣ ΚΑΙ ΣΤΟ ΔΙΑΔΙΚΤΥΟ

ΠΡΟΣΤΑΣΙΑ ΠΡΟΣΩΠΙΚΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΘΩΣ ΚΑΙ ΣΤΟ ΔΙΑΔΙΚΤΥΟ ΠΡΟΣΤΑΣΙΑ ΠΡΟΣΩΠΙΚΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΘΩΣ ΚΑΙ ΣΤΟ ΔΙΑΔΙΚΤΥΟ ΔΙΑΔΙΚΤΥΟ Το διαδίκτυο προσφέρει: Μετατροπή των δεδομένων σε ψηφιακή - ηλεκτρονική μορφή. Πρόσβαση

Διαβάστε περισσότερα

ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή 2. Θεωρία αριθμών Αλγεβρικές δομές 3. Οι κρυπταλγόριθμοι και οι ιδιότητές τους

ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή 2. Θεωρία αριθμών Αλγεβρικές δομές  3. Οι κρυπταλγόριθμοι και οι ιδιότητές τους ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή... 1 1.1. Ορισμοί και ορολογία... 2 1.1.1. Συμμετρικά και ασύμμετρα κρυπτοσυστήματα... 4 1.1.2. Κρυπτογραφικές υπηρεσίες και πρωτόκολλα... 9 1.1.3. Αρχές μέτρησης κρυπτογραφικής

Διαβάστε περισσότερα

Οι απειλές. Απόρρητο επικοινωνίας. Αρχές ασφάλειας δεδομένων. Απόρρητο (privacy) Μέσω κρυπτογράφησης

Οι απειλές. Απόρρητο επικοινωνίας. Αρχές ασφάλειας δεδομένων. Απόρρητο (privacy) Μέσω κρυπτογράφησης Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής στην Επιστήμη των Υπολογιστών 2014-015 Ασφάλεια Δεδομένων http://www.ionio.gr/~mistral/tp/csintro/ Οι απειλές Ένας κακόβουλος χρήστης Καταγράφει μηνύματα που ανταλλάσσονται

Διαβάστε περισσότερα

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ) ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ) Ενότητα 5: ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ ΔΙΔΑΣΚΩΝ: ΚΩΝΣΤΑΝΤΙΝΟΣ ΧΕΙΛΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

1. Τι είναι ακεραιότητα δεδομένων, με ποιους μηχανισμούς επιτυγχάνετε κ πότε θα χρησιμοποιούσατε τον καθένα εξ αυτών;

1. Τι είναι ακεραιότητα δεδομένων, με ποιους μηχανισμούς επιτυγχάνετε κ πότε θα χρησιμοποιούσατε τον καθένα εξ αυτών; 1. Τι είναι ακεραιότητα δεδομένων, με ποιους μηχανισμούς επιτυγχάνετε κ πότε θα χρησιμοποιούσατε τον καθένα εξ αυτών; Η ακεραιότητα δεδομένων(data integrity) Είναι η ιδιότητα που μας εξασφαλίζει ότι δεδομένα

Διαβάστε περισσότερα

Κρυπτογραφία. Κεφάλαιο 4 Αλγόριθμοι Δημοσίου Κλειδιού (ή ασύμμετροι αλγόριθμοι)

Κρυπτογραφία. Κεφάλαιο 4 Αλγόριθμοι Δημοσίου Κλειδιού (ή ασύμμετροι αλγόριθμοι) Κρυπτογραφία Κεφάλαιο 4 Αλγόριθμοι Δημοσίου Κλειδιού (ή ασύμμετροι αλγόριθμοι) Κρυπτοσυστήματα Δημοσίου κλειδιού Αποστολέας P Encryption C Decryption P Παραλήπτης Προτάθηκαν το 1976 Κάθε συμμετέχων στο

Διαβάστε περισσότερα

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο Ψηφιακή Υπογραφή και Αυθεντικοποίηση Μηνύματος Διδάσκων : Δρ. Παρασκευάς Κίτσος Επίκουρος Καθηγητής e-mail: pkitsos@teimes.gr, pkitsos@ieee.org Αντίρριο

Διαβάστε περισσότερα

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο Εισαγωγή- Βασικές Έννοιες Διδάσκων : Δρ. Παρασκευάς Κίτσος Επίκουρος Καθηγητής e-mail: pkitsos@teimes.gr, pkitsos@ieee.org Αντίρριο 2015 1 ΤΙ ΕΙΝΑΙ Η ΚΡΥΠΤΟΛΟΓΙΑ?

Διαβάστε περισσότερα

Παύλος Εφραιμίδης. Βασικές Έννοιες Κρυπτογραφίας. Ασφ Υπολ Συστ

Παύλος Εφραιμίδης. Βασικές Έννοιες Κρυπτογραφίας. Ασφ Υπολ Συστ Παύλος Εφραιμίδης Βασικές Έννοιες Κρυπτογραφίας Ασφ Υπολ Συστ 1 θα εξετάσουμε τα ακόλουθα εργαλεία κρυπτογραφίας: ψηφιακές υπογραφές κατακερματισμός (hashing) συνόψεις μηνυμάτων μ (message digests) ψευδοτυχαίοι

Διαβάστε περισσότερα

ΚΡΥΠΤΟΓΡΑΦΙΑ. Εισαγωγή. Γρηγοράκης Στέλιος Δημητρίου Αφροδίτη Ιβανόβ Τόνι Κωσταντουράκης Γρηγόρης Τσιμινικάκη Ελένη

ΚΡΥΠΤΟΓΡΑΦΙΑ. Εισαγωγή. Γρηγοράκης Στέλιος Δημητρίου Αφροδίτη Ιβανόβ Τόνι Κωσταντουράκης Γρηγόρης Τσιμινικάκη Ελένη ΚΡΥΠΤΟΓΡΑΦΙΑ Εισαγωγή Γρηγοράκης Στέλιος Δημητρίου Αφροδίτη Ιβανόβ Τόνι Κωσταντουράκης Γρηγόρης Τσιμινικάκη Ελένη Η κρυπτογραφία είναι ένας τρόπος που δίνει τη δυνατότητα σε δύο πρόσωπα να επικοινωνήσουν

Διαβάστε περισσότερα

Βασικές Έννοιες Κρυπτογραφίας

Βασικές Έννοιες Κρυπτογραφίας Βασικές Έννοιες Κρυπτογραφίας Παύλος Εφραιμίδης Κρυπτογραφία Βασικές Έννοιες 1 Τι θα μάθουμε Obscurity vs. Security Βασικές υπηρεσίες κρυπτογραφίας: Confidentiality, Authentication, Integrity, Non- Repudiation

Διαβάστε περισσότερα

Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία

Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Σημειώσεις Διαλέξεων Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία Επιμέλεια σημειώσεων: Ελένη Μπακάλη Άρης Παγουρτζής

Διαβάστε περισσότερα

ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ Lab 3

ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ Lab 3 ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ Lab 3 Η Aσύμμετρη Kρυπτογραφία ή Κρυπτογραφία Δημοσίου Κλειδιού χρησιμοποιεί δύο διαφορετικά κλειδιά για την κρυπτογράφηση και αποκρυπτογράφηση. Eπινοήθηκε στο τέλος της δεκαετίας

Διαβάστε περισσότερα

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική Ι. Ενότητα 10 : Ασφάλεια. Δρ. Γκόγκος Χρήστος

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική Ι. Ενότητα 10 : Ασφάλεια. Δρ. Γκόγκος Χρήστος 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Πληροφορική Ι Ενότητα 10 : Ασφάλεια Δρ. Γκόγκος Χρήστος 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Χρηματοοικονομικής & Ελεγκτικής

Διαβάστε περισσότερα

Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων. Συναρτήσεις Κατακερματισμού

Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων. Συναρτήσεις Κατακερματισμού ΤΕΙ ΚΡΗΤΗΣ ΤΜΉΜΑ ΜΗΧΑΝΙΚΏΝ ΠΛΗΡΟΦΟΡΙΚΉΣ Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων Συναρτήσεις Κατακερματισμού Ο όρος συνάρτηση κατακερματισμού (hash function) υποδηλώνει ένα μετασχηματισμό που παίρνει

Διαβάστε περισσότερα

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ) ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ) Ενότητα 4: ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ ΔΙΔΑΣΚΩΝ: ΚΩΝΣΤΑΝΤΙΝΟΣ ΧΕΙΛΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Ασφάλεια Τηλεπικοινωνιακών Συστημάτων ΣΤΑΥΡΟΣ Ν ΝΙΚΟΛΟΠΟΥΛΟΣ 03 ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΚΡΥΠΤΟΛΟΓΙΑ

Ασφάλεια Τηλεπικοινωνιακών Συστημάτων ΣΤΑΥΡΟΣ Ν ΝΙΚΟΛΟΠΟΥΛΟΣ 03 ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΚΡΥΠΤΟΛΟΓΙΑ Ασφάλεια Τηλεπικοινωνιακών Συστημάτων ΣΤΑΥΡΟΣ Ν ΝΙΚΟΛΟΠΟΥΛΟΣ 03 ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΚΡΥΠΤΟΛΟΓΙΑ Περιγραφή μαθήματος Η Κρυπτολογία είναι κλάδος των Μαθηματικών, που ασχολείται με: Ανάλυση Λογικών Μαθηματικών

Διαβάστε περισσότερα

Κρυπτογραφία. Κωνσταντίνου Ελισάβετ

Κρυπτογραφία. Κωνσταντίνου Ελισάβετ Κρυπτογραφία Κωνσταντίνου Ελισάβετ ekonstantinou@aegean.gr http://www.icsd.aegean.gr/ekonstantinou AES Ιαν. 1997: Το NIST (National Institute of Standards and Technology) απευθύνει κάλεσμα για τη δημιουργία

Διαβάστε περισσότερα

Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ Κρυπτογραφία και Εφαρμογές Διαλέξεις Ακ. Έτους

Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ Κρυπτογραφία και Εφαρμογές Διαλέξεις Ακ. Έτους Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ Κρυπτογραφία και Εφαρμογές Διαλέξεις Ακ. Έτους 2011-2012 Μαριάς Ιωάννης Μαρκάκης Ευάγγελος marias@aueb.gr markakis@gmail.com Διάλεξη 6-1 5-1 Περίληψη

Διαβάστε περισσότερα

Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Τμήμα Τηλεπληροφορικής & Διοίκησης

Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Τμήμα Τηλεπληροφορικής & Διοίκησης Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Τμήμα Τηλεπληροφορικής & Διοίκησης Κατάλογος Περιεχομένων ΕΙΣΑΓΩΓΉ ΣΤΟ CRYPTOOL... 3 DOWNLOADING CRYPTOOL... 3 ΜΗΧΑΝΙΣΜΟΊ ΚΑΙ ΑΛΓΌΡΙΘΜΟΙ ΚΡΥΠΤΟΓΡΑΦΊΑΣ ΣΤΟ CRYPTOOL...

Διαβάστε περισσότερα

Χρήστος Ξενάκης Τμήμα Ψηφιακών Συστημάτων

Χρήστος Ξενάκης Τμήμα Ψηφιακών Συστημάτων Βασικά Θέματα Κρυπτογραφίας Χρήστος Ξενάκης Τμήμα Ψηφιακών Συστημάτων Πανεπιστήμιο Πειραιά Αντικείμενο μελέτης Εφαρμοσμένη Κρυπτογραφία, απαραίτητη για την Ασφάλεια Δικτύων Υπολογιστών Χαρακτηριστικά των

Διαβάστε περισσότερα

Εφαρμοσμένη Κρυπτογραφία Ι

Εφαρμοσμένη Κρυπτογραφία Ι Εφαρμοσμένη Κρυπτογραφία Ι Κωνσταντίνου Ελισάβετ ekonstantinou@aegean.gr http://www.icsd.aegean.gr/ekonstantinou Συνολικό Πλαίσιο Ασφάλεια ΠΕΣ Εμπιστευτικότητα Ακεραιότητα Πιστοποίηση Μη-αποποίηση Κρυπτογράφηση

Διαβάστε περισσότερα

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο Ασύμμετρη Κρυπτογράφηση (Κρυπτογραφία Δημόσιου Κλειδιού) Διδάσκων : Δρ. Παρασκευάς Κίτσος Επίκουρος Καθηγητής e-mail: pkitsos@teimes.gr, pkitsos@ieee.org

Διαβάστε περισσότερα

Πρόβληµα 2 (12 µονάδες)

Πρόβληµα 2 (12 µονάδες) ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΕΦΑΡΜΟΓΕΣ, 2015-2016 ΔΙΔΑΣΚΟΝΤΕΣ: Ε. Μαρκάκης, Θ. Ντούσκας Λύσεις 2 ης Σειράς Ασκήσεων Πρόβληµα 1 (12 µονάδες) 1) Υπολογίστε τον

Διαβάστε περισσότερα

Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ Κρυπτογραφία και Εφαρμογές

Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ Κρυπτογραφία και Εφαρμογές Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ Κρυπτογραφία και Εφαρμογές Μαριάς Ιωάννης Μαρκάκης Ευάγγελος marias@aueb.gr markakis@gmail.com Περίληψη Shannon theory Εντροπία Μελέτη κρυπτοσυστηµάτων

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 131: ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I ΕΡΓΑΣΙΑ 2

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 131: ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I ΕΡΓΑΣΙΑ 2 ΕΡΓΑΣΙΑ Διδάσκων: Γιώργος Χρυσάνθου Υπεύθυνος Άσκησης: Πύρρος Μπράτσκας Ημερομηνία Ανάθεσης: 3/10/015 Ημερομηνία Παράδοσης: 09/11/015 09:00 π.μ. I.Στόχος Στόχος αυτής της εργασίας είναι η χρησιμοποίηση

Διαβάστε περισσότερα

Κρυπ Κρ το υπ γραφία Κρυπ Κρ το υπ λογίας

Κρυπ Κρ το υπ γραφία Κρυπ Κρ το υπ λογίας Διαχείριση και Ασφάλεια Τηλεπικοινωνιακών Συστημάτων Κρυπτογραφία Κρυπτογραφία Η Κρυπτογραφία (cryptography) είναι ένας κλάδος της επιστήμης της Κρυπτολογίας (cryptology), η οποία ασχολείται με την μελέτη

Διαβάστε περισσότερα

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ) ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ) Ενότητα 3: ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ ΔΙΔΑΣΚΩΝ: ΚΩΝΣΤΑΝΤΙΝΟΣ ΧΕΙΛΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

ρ. Κ. Σ. Χειλάς, ίκτυα Η/Υ ΙΙΙ, Τ.Ε.Ι. Σερρών, 2007

ρ. Κ. Σ. Χειλάς, ίκτυα Η/Υ ΙΙΙ, Τ.Ε.Ι. Σερρών, 2007 Ψηφιακές υπογραφές Ψηφιακές υπογραφές Υπάρχει ανάγκη αντικατάστασης των χειρόγραφων υπογραφών µε ψηφιακές (ΨΥ) Αυτές πρέπει να διαθέτουν τα εξής χαρακτηριστικά: Ο παραλήπτης πρέπει να είναι σε θέση να

Διαβάστε περισσότερα

8.3 Ασφάλεια ικτύων. Ερωτήσεις

8.3 Ασφάλεια ικτύων. Ερωτήσεις 8.3 Ασφάλεια ικτύων Ερωτήσεις 1. Με τι ασχολείται η ασφάλεια των συστηµάτων; 2. Τι είναι αυτό που προστατεύεται στην ασφάλεια των συστηµάτων και για ποιο λόγο γίνεται αυτό; 3. Ποια η διαφορά ανάµεσα στους

Διαβάστε περισσότερα

Παύλος Εφραιμίδης. Βασικές Έννοιες Κρυπτογραφίας. Ασφ Υπολ Συστ

Παύλος Εφραιμίδης. Βασικές Έννοιες Κρυπτογραφίας. Ασφ Υπολ Συστ Παύλος Εφραιμίδης Βασικές Έννοιες Κρυπτογραφίας Ασφ Υπολ Συστ 1 Βασικές υπηρεσίες/εφαρμογές κρυπτογραφίες: Confidentiality, Authentication, Integrity, Non- Repudiation Βασικές έννοιες κρυπτογραφίας 2 3

Διαβάστε περισσότερα

Ασφάλεια Υπολογιστικών Συστημάτων

Ασφάλεια Υπολογιστικών Συστημάτων Ασφάλεια Υπολογιστικών Συστημάτων Ενότητα 2: Συμμετρική κρυπτογραφία Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

KEΦΑΛΑΙΟ 5 ΨΗΦΙΑΚΑ ΚΡΥΠΤΟΣΥΣΤΗΜΑΤΑ

KEΦΑΛΑΙΟ 5 ΨΗΦΙΑΚΑ ΚΡΥΠΤΟΣΥΣΤΗΜΑΤΑ Βασικές έννοιες KEΦΑΛΑΙΟ 5 ΨΗΦΙΑΚΑ ΚΡΥΠΤΟΣΥΣΤΗΜΑΤΑ Ένα κρυπτοσύστηµα όπου οι χώροι των καθαρών µηνυµάτων, των κρυπτογραφηµένων µυνηµάτων και των κλειδιών είναι ο m,,,... m = καλείται ψηφιακό κρυπτοσύστηµα.

Διαβάστε περισσότερα

Κρυπτογραφία και Ηλεκτρονικοί Υπολογιστές. ΣΥΝΤΕΛΕΣΤΕΣ: Κραβαρίτης Αλέξανδρος Μαργώνη Αγγελική Χαλιμούρδα Κων/να

Κρυπτογραφία και Ηλεκτρονικοί Υπολογιστές. ΣΥΝΤΕΛΕΣΤΕΣ: Κραβαρίτης Αλέξανδρος Μαργώνη Αγγελική Χαλιμούρδα Κων/να Κρυπτογραφία και Ηλεκτρονικοί Υπολογιστές ΣΥΝΤΕΛΕΣΤΕΣ: Κραβαρίτης Αλέξανδρος Μαργώνη Αγγελική Χαλιμούρδα Κων/να Ορισμός κρυπτογραφίας Με τον όρο κρυπτογραφία, αναφερόμαστε στη μελέτη μαθηματικών τεχνικών

Διαβάστε περισσότερα

σύνθεση και απλοποίησή τους θεωρήµατα της άλγεβρας Boole, αξιώµατα του Huntington, κλπ.

σύνθεση και απλοποίησή τους θεωρήµατα της άλγεβρας Boole, αξιώµατα του Huntington, κλπ. Εισαγωγή Εργαστήριο 2 ΛΟΓΙΚΑ ΚΥΚΛΩΜΑΤΑ Σκοπός του εργαστηρίου είναι να κατανοήσουµε τον τρόπο µε τον οποίο εκφράζεται η ψηφιακή λογική υλοποιώντας ασκήσεις απλά και σύνθετα λογικά κυκλώµατα (χρήση του

Διαβάστε περισσότερα

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Κρυπτογραφικές Συναρτήσεις. Χρήστος Ξενάκης

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Κρυπτογραφικές Συναρτήσεις. Χρήστος Ξενάκης Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Κρυπτογραφία Κρυπτογραφικές Συναρτήσεις Χρήστος Ξενάκης Ψευδοτυχαίες ακολουθίες Η επιλογή τυχαίων αριθμών είναι ένα βασικό σημείο στην ασφάλεια των κρυπτοσυστημάτων

Διαβάστε περισσότερα

Hash Functions. μεγεθος h = H(M) ολους. στο μηνυμα. στο συγκεκριμενο hash (one-way property)

Hash Functions. μεγεθος h = H(M) ολους. στο μηνυμα. στο συγκεκριμενο hash (one-way property) Hash Functions Συρρικνωνει μηνυμα οποιουδηποτε μηκους σε σταθερο μεγεθος h = H(M) Συνηθως θεωρουμε οτι η hash function ειναι γνωστη σε ολους Το hash χρησιμοποιειται για να ανιχνευσει τυχον αλλαγες στο

Διαβάστε περισσότερα

Μελέτη Πρωτοκόλλων Κρυπτογραφίας

Μελέτη Πρωτοκόλλων Κρυπτογραφίας AΕΙ ΠΕΙΡΑΙΑ T.T. ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ T.Τ. ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Μελέτη Πρωτοκόλλων Κρυπτογραφίας Άννα Ελένη Κ. Γεωργοπούλου Εισηγητής: Δρ Παναγιώτης

Διαβάστε περισσότερα

KΕΦΑΛΑΙΟ 1 ΧΡΗΣΙΜΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΝΝΟΙΕΣ. { 1,2,3,..., n,...

KΕΦΑΛΑΙΟ 1 ΧΡΗΣΙΜΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΝΝΟΙΕΣ. { 1,2,3,..., n,... KΕΦΑΛΑΙΟ ΧΡΗΣΙΜΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΝΝΟΙΕΣ Βασικές έννοιες διαιρετότητας Θα συµβολίζουµε µε, τα σύνολα των φυσικών αριθµών και των ακεραίων αντιστοίχως: {,,3,,, } { 0,,,,, } = = ± ± ± Ορισµός Ένας φυσικός αριθµός

Διαβάστε περισσότερα

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο 2006-07

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο 2006-07 Ενότητα 4 Εισαγωγή στην Πληροφορική Κεφάλαιο 4Α: Αναπαράσταση πληροφορίας Κεφάλαιο 4Β: Επεξεργαστές που χρησιµοποιούνται σε PCs Χειµερινό Εξάµηνο 2006-07 ρ. Παναγιώτης Χατζηδούκας (Π..407/80) Εισαγωγή

Διαβάστε περισσότερα

KΕΦΑΛΑΙΟ 5 ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ

KΕΦΑΛΑΙΟ 5 ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ KΕΦΑΛΑΙΟ 5 ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ 1 Γενικά Η ψηφιακή υπογραφή είναι µια µέθοδος ηλεκτρονικής υπογραφής όπου ο παραλήπτης ενός υπογεγραµµένου ηλεκτρονικού µηνύµατος µπορεί να διαπιστώσει τη γνησιότητα του,

Διαβάστε περισσότερα

Κρυπτογραφία. MAC - Γνησιότητα/Ακεραιότητα μηνύματος. Πέτρος Ποτίκας

Κρυπτογραφία. MAC - Γνησιότητα/Ακεραιότητα μηνύματος. Πέτρος Ποτίκας Κρυπτογραφία MAC - Γνησιότητα/Ακεραιότητα μηνύματος Πέτρος Ποτίκας Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Σχολή ΗΜΜΥ ΕΜΠ Κρυπτογραφία 1 / 37 Περιεχόμενα 1 Message

Διαβάστε περισσότερα

Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ στα Πληροφοριακά Συστήματα Κρυπτογραφία και Εφαρμογές Διαλέξεις Ακ.

Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ στα Πληροφοριακά Συστήματα Κρυπτογραφία και Εφαρμογές Διαλέξεις Ακ. Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ στα Πληροφοριακά Συστήματα Κρυπτογραφία και Εφαρμογές Διαλέξεις Ακ. Έτους 2015-2016 Μαρκάκης Ευάγγελος markakis@aueb.gr Ντούσκας Θεόδωρος ttouskas@aueb.gr

Διαβάστε περισσότερα

Αυθεντικότητα Μηνυμάτων Συναρτήσεις Hash/MAC

Αυθεντικότητα Μηνυμάτων Συναρτήσεις Hash/MAC Αυθεντικότητα Μηνυμάτων Συναρτήσεις Hash/MAC Τμήμα Μηχ. Πληροφορικής ΤΕΙ Κρήτης Αυθεντικότητα Μηνυμάτων 1 Αυθεντικότητα Μηνύματος Εφαρμογές Προστασία ακεραιότητας Εξακρίβωση ταυτότητας αποστολέα Μη άρνηση

Διαβάστε περισσότερα

Εφαρμοσμένη Κρυπτογραφία Ι

Εφαρμοσμένη Κρυπτογραφία Ι Εφαρμοσμένη Κρυπτογραφία Ι Κωνσταντίνου Ελισάβετ ekonstantinou@aegean.gr http://www.icsd.aegean.gr/ekonstantinou Ασύμμετρα Κρυπτοσυστήματα κλειδί κρυπτογράφησης k1 Αρχικό κείμενο (m) (δημόσιο κλειδί) Αλγόριθμος

Διαβάστε περισσότερα

Αριθμοθεωρητικοί Αλγόριθμοι

Αριθμοθεωρητικοί Αλγόριθμοι Αλγόριθμοι που επεξεργάζονται μεγάλους ακέραιους αριθμούς Μέγεθος εισόδου: Αριθμός bits που απαιτούνται για την αναπαράσταση των ακεραίων. Έστω ότι ένας αλγόριθμος λαμβάνει ως είσοδο έναν ακέραιο Ο αλγόριθμος

Διαβάστε περισσότερα

Ασφάλεια Πληροφοριακών Συστημάτων

Ασφάλεια Πληροφοριακών Συστημάτων Ασφάλεια Πληροφοριακών Συστημάτων Κρυπτογραφία/Ψηφιακές Υπογραφές Διάλεξη 2η Δρ. Β. Βασιλειάδης Τμ. Διοίκησης Επιχειρήσεων, ΤΕΙ Δυτ. Ελλάδας Kρυπτανάλυση Προσπαθούμε να σπάσουμε τον κώδικα. Ξέρουμε το

Διαβάστε περισσότερα

ΚΡΥΠΤΟΓΡΑΦΙΑ Α. ΑΠΟ ΤΟ ΒΙΒΛΙΟ «Η ΦΥΣΗ ΚΑΙ Η ΔΥΝΑΜΗ ΤΩΝ ΜΑΘΗΜΑΤΙΚΩΝ»

ΚΡΥΠΤΟΓΡΑΦΙΑ Α. ΑΠΟ ΤΟ ΒΙΒΛΙΟ «Η ΦΥΣΗ ΚΑΙ Η ΔΥΝΑΜΗ ΤΩΝ ΜΑΘΗΜΑΤΙΚΩΝ» ΚΡΥΠΤΟΓΡΑΦΙΑ Α. ΑΠΟ ΤΟ ΒΙΒΛΙΟ «Η ΦΥΣΗ ΚΑΙ Η ΔΥΝΑΜΗ ΤΩΝ ΜΑΘΗΜΑΤΙΚΩΝ» - Κρυπτογραφία είναι - Κρυπτανάλυση είναι - Με τον όρο κλειδί. - Κρυπτολογία = Κρυπτογραφία + Κρυπτανάλυση - Οι επιστήµες αυτές είχαν

Διαβάστε περισσότερα

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Ασύμμετρη Κρυπτογραφία. Χρήστος Ξενάκης

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Ασύμμετρη Κρυπτογραφία. Χρήστος Ξενάκης Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Κρυπτογραφία Ασύμμετρη Κρυπτογραφία Χρήστος Ξενάκης Ασύμμετρη κρυπτογραφία Μονόδρομες συναρτήσεις με μυστική πόρτα Μια συνάρτηση f είναι μονόδρομη, όταν δοθέντος

Διαβάστε περισσότερα

Λειτουργικά Συστήματα (ΗΥ321)

Λειτουργικά Συστήματα (ΗΥ321) Λειτουργικά Συστήματα (ΗΥ321) Διάλεξη 19: Ασφάλεια Κρυπτογράφηση Βασική ιδέα: Αποθήκευσε και μετάδωσε την πληροφορία σε κρυπτογραφημένη μορφή που «δε βγάζει νόημα» Ο βασικός μηχανισμός: Ξεκίνησε από το

Διαβάστε περισσότερα

Ασφάλεια ικτύων (Computer Security)

Ασφάλεια ικτύων (Computer Security) Ασφάλεια ικτύων (Computer Security) Τι Εννοούµε µε τον Όρο Ασφάλεια ικτύων; Ασφάλεια Μόνο ο αποστολέας και ο προοριζόµενος παραλήπτης µπορούν να διαβάσουν και να κατανοήσουν ένα µήνυµα. Ο αποστολέας το

Διαβάστε περισσότερα

Βασικές έννοιες της κρυπτογραφίας

Βασικές έννοιες της κρυπτογραφίας ΚΕΦΑΛΑΙΟ 4 Βασικές έννοιες της κρυπτογραφίας Στο κεφάλαιο αυτό εισάγονται οι ϐασικές έννοιες της κρυπτογρα- ϕίας, όπως τα είδη των αλγορίθµων ανάλογα µε το κλειδί, τα είδη αλγορίθµων ανάλογα µε το πως

Διαβάστε περισσότερα

Ασφάλεια Πληροφοριακών Συστημάτων

Ασφάλεια Πληροφοριακών Συστημάτων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Ασφάλεια Πληροφοριακών Συστημάτων Ενότητα 6: Κρυπτογραφία Ι Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

Διαβάστε περισσότερα

Κρυπτογραφία Δημόσιου Κλειδιού II Αλγόριθμος RSA

Κρυπτογραφία Δημόσιου Κλειδιού II Αλγόριθμος RSA Κρυπτογραφία Δημόσιου Κλειδιού II Αλγόριθμος RSA Τμήμα Μηχ. Πληροφορικής ΤΕΙ Κρήτης Κρυπτογραφία Δημόσιου Κλειδιού -RSA 1 Κρυπτογραφία Δημόσιου Κλειδιού - Ιστορία Ηνωμένες Πολιτείες 1975: Ο Diffie οραματίζεται

Διαβάστε περισσότερα

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή 1. Ηλεκτρονικός Υπολογιστής Ο Ηλεκτρονικός Υπολογιστής είναι μια συσκευή, μεγάλη ή μικρή, που επεξεργάζεται δεδομένα και εκτελεί την εργασία του σύμφωνα με τα παρακάτω

Διαβάστε περισσότερα

Διδάσκουσα: Χάλκου Χαρά,

Διδάσκουσα: Χάλκου Χαρά, Διδάσκουσα: Χάλκου Χαρά, Διπλωματούχος Ηλεκτρολόγος Μηχανικός & Τεχνολογίας Η/Υ, MSc e-mail: chalkou@upatras.gr Κάθε ασθενείς έχει έναν ιατρικό φάκελο όπου περιέχονται τα ιατρικά του δεδομένα. Οι χειρόγραφοι

Διαβάστε περισσότερα

Ενότητα: Πράξεις επί Συνόλων και Σώµατα Αριθµών

Ενότητα: Πράξεις επί Συνόλων και Σώµατα Αριθµών Τίτλος Μαθήματος: Γραμμική Άλγεβρα Ι Ενότητα: Πράξεις επί Συνόλων και Σώµατα Αριθµών Διδάσκων: Καθηγητής Νικόλαος Μαρμαρίδης Τμήμα: Μαθηματικών Κεφάλαιο 1 Εισαγωγη : Πραξεις επι Συνολων και Σωµατα Αριθµων

Διαβάστε περισσότερα

Ασφάλεια Πληροφοριακών Συστημάτων

Ασφάλεια Πληροφοριακών Συστημάτων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Ασφάλεια Πληροφοριακών Συστημάτων Ενότητα 5: Διαχείριση κλειδιών Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ: ΑΝΙΧΝΕΥΣΗ ΣΦΑΛΜΑΤΩΝ ΣΕ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΔΙΚΤΥΑ

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ: ΑΝΙΧΝΕΥΣΗ ΣΦΑΛΜΑΤΩΝ ΣΕ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΔΙΚΤΥΑ ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ: ΑΝΙΧΝΕΥΣΗ ΣΦΑΛΜΑΤΩΝ ΣΕ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΔΙΚΤΥΑ ΑΝΙΧΝΕΥΣΗ ΣΦΑΛΜΑΤΩΝ: Κυκλικός Έλεγχος Πλεονασμού CRC codes Cyclic Redundancy Check codes Ο μηχανισμός ανίχνευσης σφαλμάτων στις επικοινωνίες

Διαβάστε περισσότερα

Εφαρμοσμένη Κρυπτογραφία Ι

Εφαρμοσμένη Κρυπτογραφία Ι Εφαρμοσμένη Κρυπτογραφία Ι Κωνσταντίνου Ελισάβετ ekonstantinou@aegean.gr http://www.icsd.aegean.gr/ekonstantinou Ιστορία Ασύμμετρης Κρυπτογραφίας Η αρχή έγινε το 1976 με την εργασία των Diffie-Hellman

Διαβάστε περισσότερα

Πρόλογος 1. 1 Μαθηµατικό υπόβαθρο 9

Πρόλογος 1. 1 Μαθηµατικό υπόβαθρο 9 Πρόλογος 1 Μαθηµατικό υπόβαθρο 7 1 Μαθηµατικό υπόβαθρο 9 1.1 Η αριθµητική υπολοίπων.............. 10 1.2 Η πολυωνυµική αριθµητική............ 14 1.3 Θεωρία πεπερασµένων οµάδων και σωµάτων.... 17 1.4 Πράξεις

Διαβάστε περισσότερα

Κρυπτογραφικά Πρωτόκολλα

Κρυπτογραφικά Πρωτόκολλα Κρυπτογραφικά Πρωτόκολλα Παύλος Εφραιµίδης 25/04/2013 1 Κρυπτογραφικά Πρωτόκολλα Bit Commitment Fair Coin Mental Poker Secret Sharing Zero-Knowledge Protocol 2 πρωτόκολλα και υπηρεσίες χρήστης κρυπτογραφικές

Διαβάστε περισσότερα

Τμήμα Μηχανικών Πληροφορικής ΤΕΙ Κρήτης

Τμήμα Μηχανικών Πληροφορικής ΤΕΙ Κρήτης Συμμετρική Κρυπτογραφία I Τμήμα Μηχανικών Πληροφορικής ΤΕΙ Κρήτης Συμμετρική Κρυπτογραφία I 1 Αρχές του Kerckhoff `La Cryptographie Militaire' (1883) Auguste Kerkhoffs, Ολλανδός φιλόλογος Πρώτη επιστημονική

Διαβάστε περισσότερα

Υπολογιστικά & Διακριτά Μαθηματικά

Υπολογιστικά & Διακριτά Μαθηματικά Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 9: Εσωτερική πράξη και κλάσεις ισοδυναμίας - Δομές Ισομορφισμοί Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

Διαβάστε περισσότερα

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ) ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ) Ενότητα 6: ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ ΔΙΔΑΣΚΩΝ: ΚΩΝΣΤΑΝΤΙΝΟΣ ΧΕΙΛΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Ασφάλεια Πληροφοριακών Συστημάτων

Ασφάλεια Πληροφοριακών Συστημάτων Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων Θεοδωρακοπούλου Ανδριάνα atheodorak@outlook.com Βαθμολόγηση Ασκήσεις Εργαστηρίου: 40% Τελική Εξέταση: 60% Ρήτρα: Βαθμός τελικής εξέτασης > 3.5 ΠΡΟΣΟΧΗ στις

Διαβάστε περισσότερα

6/1/2010. Ασφάλεια Ασύρματων & Κινητών Επικοινωνιών. Περιεχόμενα. Εισαγωγή /1 IEEE

6/1/2010. Ασφάλεια Ασύρματων & Κινητών Επικοινωνιών. Περιεχόμενα. Εισαγωγή /1 IEEE Ασφάλεια Ασύρματων & Κινητών Επικοινωνιών Ασύρματες Επικοινωνίες Μέρος III Χρήστος Ξενάκης Τμήμα Ψηφιακών Συστημάτων Πανεπιστήμιο Πειραιώς Slide: 1/42 Περιεχόμενα IEEE 802.11 WIRED EQUIVALENT PRIVACY (WEP)

Διαβάστε περισσότερα

5. Γεννήτριες Τυχαίων Αριθµών.

5. Γεννήτριες Τυχαίων Αριθµών. 5. Γεννήτριες Τυχαίων Αριθµών. 5.1. Εισαγωγή. Στο Κεφάλαιο αυτό θα δούµε πώς µπορούµε να δηµιουργήσουµε τυχαίους αριθµούς από την οµοιόµορφη κατανοµή στο διάστηµα [0,1]. Την κατανοµή αυτή, συµβολίζουµε

Διαβάστε περισσότερα