Διπλωματική Εργασία. του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών

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

Download "Διπλωματική Εργασία. του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών"

Transcript

1 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ: Ηλεκτρονικής και Υπολογιστών ΕΡΓΑΣΤΗΡΙΟ: Εργαστήριο Σχεδιασμού Ολοκληρωμένων Κυκλωμάτων Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών Καρανικολή Κωνσταντίνου του Ανδρέα Αριθμός Μητρώου: 7275 Θέμα «Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού» Επιβλέπων Θεοδωρίδης Γεώργιος, Επίκουρος Καθηγητής Αριθμός Διπλωματικής Εργασίας: Πάτρα, Μάιος 2015

2 ΠΙΣΤΟΠΟΙΗΣΗ Πιστοποιείται ότι η Διπλωματική Εργασία με θέμα «Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού» Του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Καρανικολή Κωνσταντίνου του Ανδρέα Αριθμός Μητρώου: 7275 Παρουσιάστηκε δημόσια και εξετάστηκε στο Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών στις.../../ Ο Επιβλέπων Θεοδωρίδης Γεώργιος Επίκουρος Καθηγητής Ο Διευθυντής του Τομέα Χούσος Ευθύμιος Καθηγητής

3 Αριθμός Διπλωματικής Εργασίας: Θέμα: «Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού» Φοιτητής: Καρανικολής Κωνσταντίνος Επιβλέπων:Θεοδωρίδης Γεώργιος Περίληψη Σκοπός της διπλωματικής εργασίας ήταν η ανάπτυξη του αλγόριθμου του Keccak. Ο αλγόριθμος του Keccak, χρησιμοποιείται για κρυπρογραφικές συναρτήσεις κατακερματισμού. Χρησιμοποιήθηκαν τρεις διαφορετικές τεχνικές για σχεδιάση καθώς και ένας συνδυασμός αυτών, με σκοπό την αύξηση της ρυθμοαπόδοσης. Στο τέλος, συγκρίνονται όλες αυτές οι αρχιτεκτονικές και παρουσιάζονται κάποια χρήσιμα συμπεράσματα.

4 Abstract The aim of the diploma thesis was the development of the Keccak Algorithm. Keccak Algorithm is used for cryptographiv hash functions. We used three different techniques for the design of the algorithm as well a combination of these three techniques with main goal the increase of throughput.at the end, there is a comparison of these architectures and we present some useful results.

5 Ευχαριστίες Στο σημείο αυτό, θα ήθελα να ευχαριστήσω θερμά τον κ.θεοδωρίδη Γεώργιο, Επίκουρο Καθηγητή του Τμήματος ΗΜ&ΤΥ, για την εμπιστοσύνη που μου έδειξε αναθέτοντας μου την παρούσα διπλωματική εργασία καθώς και για την ευκαιρία που μου έδωσε να συνεργαστώ μαζί του και να εμβαθύνω τις γνώσεις μου στο συγκεκριμένο επιστημονικό πεδίο. Ακόμη, θα ήθελα να ευχαριστήσω τον υποψήφιο διδάκτορα του Τμήματος ΗΜ&ΤΥ, Ανδρέα Εμερετλή για την πολύτιμη βοήθεια που μου παρείχε καθόλη την διάρκεια της εκπόνησης αυτής της διπλωματικής εργασίας. Χωρίς τις διαρκείς υποδείξεις και προτάσεις του, δεν θα ήταν δυνατή η επιτυχής ολοκλήρωση της εργασίας. Τέλος, θα ήθελα να ευχαριστήσω την οικογένειά μου για την υποστήριξη που μου παρείχαν και συνεχίζουν να μου παρέχουν όλα αυτά τα χρόνια.

6 Περιεχόμενα Κατάλογος Πινάκων... 9 Κεφάλαιο Εισαγωγή στην Κρυπτογραφία Ασφάλεια της πληροφορίας Κρυπτογραφία Ορισμός Κρυπτογραφίας Ιστορική Αναδρομή Βασική Ορολογία Είδη Κρυπτογραφίας Συμμετρική Κρυπτογραφία(Secret Key Cryptography) Ασύμμετρη Κρυπτογραφία ή Κρυπτογραφία Δημόσιου Κλειδιού(Public Key Cryptography) Στόχοι της Κρυπτογραφίας Επιθέσεις εναντίον κρυπτογραφικών αλγορίθμων-κρυπτανάλυση Ισχύς κρυπτογραφικού μηχανισμού Εισαγωγή στις ψηφιακές υπογραφές Ιστορική αναδρομή Τί είναι η ψηφιακή υπογραφή Δημιουργία Ψηφιακών Υπογραφών Εισαγωγή στις συναρτήσεις κατακερματισμού Κεφάλαιο Keccak Algorithm-SHA Εισαγωγικά στοιχεία για τον αλγόριθμο Keccak Μορφή των δεδομένων εισόδου - State Sponge Function και Padding Εσωτερικοί μετασχηματισμοί - Step Mapping Κεφάλαιο Αρχιτεκτονικές SHA Εισαγωγή... 43

7 3.2. Βασικές Αρχές Υλοποίησης Παρουσίαση και ανάλυση αρχιτεκτονικών Βασική αρχιτεκτονική Αρχιτεκτονικές Pipeline Αρχιτεκτονικές με unrolling Αρχιτεκτονικές Pipeline με unrolling Αρχιτεκτονικές με Mega-Step Κεφάλαιο Υλοποιήσεις σε FPGA Εισαγωγή στα FPGAs Δομικά στοιχεία των FPGAs Ιστορική αναδρομή Προσομοίωση, σύνθεση και υλοποίηση αρχιτεκτονικών Προσομοίωση αρχιτεκτονικών Σύνθεση και υλοποίηση αρχιτεκτονικών «Κατέβασμα» αρχιτεκτονικής σε συσκευή FPGA Πειραματικά αποτελέσματα Κεφάλαιο Συμπεράσματα Μελλοντικές προτάσεις Εισαγωγή Συμπεράσματα Μελλοντικές προτάσεις Βιβλιογραφία... 89

8 Κατάλογος Σχημάτων Σχήμα 1: Κρυπτογράφηση του plaintext και αποκρυπτογράφηση του ciphertext... 7 Σχήμα 2 : Συμμετρική κρυπτογράφηση Σχήμα 3: Κρυπτογράφηση Δημόσιου Κλειδιού Σχήμα 4: Διάγραμμα χρήσης ψηφιακής υπογραφής Σχήμα 5: Δημιουργία Σύνοψης Μηνύματος Σχήμα 6: Κρυπτογράφηση Σύνοψης Μηνύματος Σχήμα 7: Προσάρτηση Σύνοψης Μηνύματος Σχήμα 8: Επαλήθευση Ψηφιακής Υπογραφής Σχήμα 9: Πλήρης κύκλος δημιουργίας και επαλήθευσης ψηφιακής υπογραφής Σχήμα 10: Δομή οργάνωσης των δεδομένων(state) Σχήμα 11: Τα δομικά στοιχεία του state Σχήμα 12: Sponge Function Σχήμα 13: Μετασχηματισμός x Σχήμα 14: Μετασχηματισμός θ Σχήμα 15: Μετασχηματισμός π Σχήμα 16: Μετασχηματισμός ρ Σχήμα 17 : Βασική αρχιτεκτονική Σχήμα 18: Keccak-Core Σχήμα 19 : Finite State machine τύπου Melay, για την βασική αρχιτεκτονική Σχήμα 20: Αρχιτεκτονική 4 σταδίων Σχήμα 21: Unrolling μετασχηματισμού με βαθμό ίσο με Σχήμα 22: Ιεραρχική δομή ενός FPGA Σχήμα 23: Επιβεβαίωση ορθής λειτουργίας Σχήμα 24 : Σύνθεση και υλοποίηση αρχιτεκτονικής με χρήση του Vivado Σχήμα 25 : Επιβεβαίωση ότι η αρχιτεκτονική κατέβηκε σωστά στην συσκευή Σχήμα 26 : Επιβεβαίωση ορθής λειτουργίας της αρχιτεκτονικής(σβησμένο LED) Σχήμα 27: Το FPGA το οποίο χρησιμοποιήθηκε... 76

9 Κατάλογος Διαγραμμάτων Διάγραμμα 1 : Frequencies for the different architectures Διάγραμμα 2 : Area (slices) for the different architectures Διάγραμμα 3 : Throughput (bits/sec) for the different architectures Διάγραμμα 4 : Throughput /Area for the different architectures Διάγραμμα 5 : Σύγκριση throughput μεταξύ Virtex7 & Kintex Κατάλογος Πινάκων Πίνακας 1 : Σταθερές μετασχηματισμού rho Πίνακας 2 : Πίνακας σταθερών μετασχηματισμού iota Πίνακας 3 : R(x,y) Πίνακας 4 : Array(x,y ) Πίνακας 5 : Πειραματικά αποτελέσματα σε Virtex Πίνακας 6 : Πειραματικά αποτελέσματα σε Kintex

10 This Page Intentionally Left Blank

11 Κεφάλαιο 1 : Εισαγωγή στην Κρυπτογραφία Κεφάλαιο 1 Εισαγωγή στην Κρυπτογραφία 1.1. Ασφάλεια της πληροφορίας Για να παρουσιάσουμε την κρυπτογραφία, είναι απαραίτητη η κατανόηση θεμάτων που σχετίζονται γενικά με την ασφάλεια πληροφοριών. Η ασφάλεια πληροφοριών εκδηλώνεται με πολλούς τρόπους ανάλογα με την κατάσταση και τις απαιτήσεις. Ασχέτως με το ποιος εμπλέκεται, όλα τα μέλη μιας συναλλαγής πρέπει να έχουν τη σιγουριά ότι έχουν ικανοποιηθεί ορισμένοι αντικειμενικοί σκοποί που σχετίζονται με την ασφάλεια πληροφοριών. Ανά τους αιώνες, έχει δημιουργηθεί ένα λεπτομερές και περίπλοκο σύνολο πρωτοκόλλων και μηχανισμών, για να αντιμετωπιστούν τα θέματα της ασφάλειας πληροφοριών, όταν οι πληροφορίες μεταβιβάζονται με φυσικά έγγραφα. Συχνά οι αντικειμενικοί σκοποί της ασφάλειας των πληροφοριών δεν μπορούν να επιτευχθούν μόνο μέσω μαθηματικών αλγορίθμων και πρωτοκόλλων, αλλά απαιτούν διαδικαστικές τεχνικές και συμμόρφωση προς τους νόμους προκειμένου να επιτευχθεί το επιθυμητό αποτέλεσμα. Παραδείγματος χάρη, η μυστικότητα των επιστολών εξασφαλίζεται από σφραγισμένους φακέλους, οι οποίοι παραδίδονται από μια κοινά αποδεκτή ταχυδρομική υπηρεσία. Η φυσική ασφάλεια του φακέλου, για πρακτική αναγκαιότητα, είναι περιορισμένη και γι αυτό θεσπίζονται νόμοι, οι οποίοι καθιστούν ποινικό αδίκημα το άνοιγμα της αλληλογραφίας από κάποιον που δεν είναι εξουσιοδοτημένος. Είναι κάποιες φορές που η ασφάλεια επιτυγχάνεται όχι μέσω της πληροφορίας της ίδιας, αλλά μέσω του φυσικού εγγράφου που την καταγράφει. Παραδείγματος χάρη, τα χαρτονομίσματα χρειάζονται ειδικά μελάνια και υλικά για να αποφευχθεί η παραχάραξη. Εννοιολογικά, ο τρόπος που καταγράφεται η πληροφορία, δεν έχει αλλάξει δραματικά με την πάροδο του χρόνου. Ενώ η πληροφορία τυπικά αποθηκευόταν και μεταδιδόταν στο χαρτί, τώρα η περισσότερη πλέον βρίσκεται σε μαγνητικά μέσα και μεταδίδεται μέσω συστημάτων τηλεπικοινωνιών, κάποια από τα οποία είναι ασύρματα. Αυτό που έχει αλλάξει δραματικά, 1

12 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού είναι η δυνατότητα της αντιγραφής και της μεταβολής της πληροφορίας. Κάποιος μπορεί να κάνει χιλιάδες πανομοιότυπα αντίγραφα ενός μέρους των πληροφοριών που είναι αποθηκευμένες ηλεκτρονικά και το καθένα να μη διακρίνεται από το πρωτότυπο. Με τις πληροφορίες στο χαρτί, αυτό είναι πολύ δυσκολότερο να γίνει. Αυτό που χρειάζεται λοιπόν, σε μια κοινωνία όπου οι πληροφορίες κυρίως αποθηκεύονται και μεταδίδονται σε ηλεκτρονική μορφή, είναι ένα μέσο διασφάλισης της ασφάλειας πληροφοριών το οποίο να είναι ανεξάρτητο από το φυσικό μέσο εγγραφής ή διαβίβασής του και τέτοιο, ώστε οι αντικειμενικοί σκοποί της ασφάλειας πληροφοριών να στηρίζονται αποκλειστικά στην ίδια την ψηφιακή πληροφορία. Ένα από τα θεμελιώδη εργαλεία που χρησιμοποιήθηκαν στην ασφάλεια πληροφοριών είναι η υπογραφή. Είναι ένα θεμέλιο για πολλές άλλες υπηρεσίες όπως είναι η μη-απάρνηση, η πιστοποίηση αυθεντικότητας της πηγής των δεδομένων, η ταυτοποίηση και η μαρτυρία, για να αναφέρουμε μερικά. Έχοντας μάθει τα βασικά στη γραφή, ένα άτομο διδάσκεται πώς να δημιουργεί μια χειρόγραφη υπογραφή για τους σκοπούς ταυτοποίησης. Στη σύναψη συμβολαίου η υπογραφή καταλήγει να είναι ένα αναπόσπαστο τμήμα της ταυτότητας του ατόμου. Αυτή η υπογραφή προορίζεται να είναι μοναδική για το άτομο και χρησιμεύει ως ένα μέσο αναγνώρισης, εξουσιοδότησης και εγκυρότητας. Με την ηλεκτρονική πληροφορία η έννοια της υπογραφής πρέπει να επανορθωθεί δεν μπορεί να είναι απλά κάτι μοναδικό για τον υπογράφοντα και ανεξάρτητο από την πληροφορία που υπογράφεται. Η ηλεκτρονική αντιγραφή της είναι τόσο απλή, που η προσάρτηση μιας υπογραφής σε ένα έγγραφο μη υπογεγραμμένο από το δημιουργό τής υπογραφής είναι σχεδόν τετριμμένη Κρυπτογραφία Ορισμός Κρυπτογραφίας Η λέξη κρυπτογραφία ( cryptography ) προέρχεται από τα συνθετικά «κρυπτός» + «γράφω» και είναι ένα διεπιστημονικό γνωστικό πεδίο που ασχολείται με τη μελέτη, την ανάπτυξη και τη χρήση τεχνικών κρυπτογράφησης και αποκρυπτογράφησης [1]. Η 2

13 Κεφάλαιο 1 : Εισαγωγή στην Κρυπτογραφία κρυπτογραφία είναι ο ένας από τους δύο κλάδους της κρυπτολογίας (ο άλλος είναι η κρυπτανάλυση), η οποία ασχολείται με τη μελέτη της ασφαλούς επικοινωνίας. Σκοπός της κρυπτογραφίας είναι η εξασφάλιση θεμάτων που άπτονται της ασφάλειας μετάδοσης της πληροφορίας όπως εμπιστευτικότητα, πιστοποίηση ταυτότητας του αποστολέα και διασφάλιση του αδιάβλητου της πληροφορίας. Με λίγα λόγια, η κρυπτογραφία προσπαθεί να κρατά κρυφή την πληροφορία από οποιοδήποτε άτομο, το οποίο δεν έχει ορισθεί ως αποδέκτης της πληροφορίας Ιστορική Αναδρομή Οι πρώτοι αλγόριθμοι κρυπτογράφησης έκαναν την εμφάνιση τους πριν από περίπου χρόνια στην περιοχή της Μεσοποταμίας. Το γεγονός αυτό επαληθεύεται από αγγεία που βρέθηκαν κοντά στις όχθες του ποταμού Τίγρη τα οποία έφεραν κάποια «παράξενα μηνύματα». Έπειτα από μακροχρόνια έρευνα, αποδείχθηκε ότι οι δημιουργοί των αγγείων αποσκοπούσαν στο να μεταφέρουν την σπουδαία τεχνική της αγγειοπλαστικής στις επόμενες γενιές, χωρίς όμως αυτή η πολύτιμη γνώση να γίνει φανερή σε άλλους λαούς. Προκειμένου να πετύχουν τον σκοπό τους, προχώρησαν σε μια τεχνική αντικατάστασης κάποιων γραμμάτων με αποτέλεσμα να προκύψει ένα κείμενο ακατανόητο και «άχρηστο» για όσους δεν ήξεραν πώς έπρεπε να το διαβάσουν. Η επιστήμη της κρυπτογραφίας δεν άργησε να υιοθετηθεί και από άλλους λαούς, αλλά και να εξελιχθεί ακόμα παραπάνω. Άξιο αναφοράς, είναι το γεγονός ότι η πρώτη πολεμική-στρατιωτική χρήση κωδικοποιημένων μηνυμάτων έγινε από τους αρχαίους Σπαρτιάτες. Η «μέθοδος της σκυτάλης» όπως είναι σήμερα ευρέως γνωστή η τεχνική την οποία ακολούθησαν, χρησιμοποιούνταν από τους Σπαρτιάτες στρατιωτικούς για την ασφαλή μεταφορά μηνυμάτων, όπου το μήνυμα μπορούσε να γίνει κατανοητό (διαδικασίας αποκωδικοποίησης) μόνο με την χρήση σκυτάλης ίδιας διαμέτρου με αυτήν που χρησιμοποιήθηκε για την συγγραφή του μηνύματος. Αν και η μέθοδος αυτή, μπορεί να φαίνεται απλοϊκή στα μάτια ενός σημερινού ατόμου, αφού είναι κάτι παραπάνω από προφανές ότι δεν είναι ιδιαιτέρως ασφαλής - αν ο αντίπαλος γνωρίζει τον μηχανισμό αποκρυπτογράφησης - περιέχει βασικά χαρακτηριστικά γνωρίσματα τα οποία έχουν παραμείνει αναλλοίωτα μέχρι σήμερα, όπως για παράδειγμα την κοινή πληροφορία 3

14 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού (κλειδί κρυπτογράφησης - αποκρυπτογράφησης) του αποστολέα και του δέκτη για την διάμετρο της σκυτάλης. Η πιο γνωστή περίπτωση χρήσης της κρυπτογραφίας κατά τους αρχαίους χρόνους, ήταν αυτή που έγινε από τον Ρωμαίο Αυτοκράτορα Ιούλιο Καίσαρα. Ο Ιούλιος Καίσαρας απέστελλε μηνύματα στον Κικέρωνα καθώς και σε άλλους φίλους του, αλλάζοντας τα γράμματα του κειμένου, με γράμματα, που βρίσκονται 3 θέσεις μετά, στο Λατινικό Αλφάβητο. Στις μέρες μας, το σύστημα κρυπτογράφησης που στηρίζεται στην αντικατάσταση των γραμμάτων του αλφαβήτου με άλλα που βρίσκονται σε καθορισμένο αριθμό θέσης πριν ή μετά, λέγεται κρυπτοσύστημα αντικατάστασης του Καίσαρα. Λέγεται ότι ο Καίσαρας χρησιμοποίησε και άλλα, πιο προχωρημένα για τα δεδομένα της εποχής συστήματα κρυπτογράφησης, για τα οποία έγραψε ένα βιβλίο ο Valerius Probus, το οποίο δυστυχώς δεν κατάφερε να διασωθεί, αλλά αν και χαμένο στα βάθη του χρόνου, θεωρείται το πρώτο βιβλίο κρυπτολογίας. Η τεχνική αντικατάστασης γραμμάτων, χρησιμοποιήθηκε εκτενώς και στους επόμενους αιώνες. Όσον αφορά την κρυπτανάλυση, δηλαδή την μεθοδική μελέτη κωδικοποιημένων μηνυμάτων με σκοπό την εύρεση του περιεχομένου τους, λέγεται ότι οι Άραβες είναι οι πρώτοι που ανέπτυξαν αλλά και χρησιμοποίησαν μεθόδους προκειμένου να «σπάσουν» τα κρυπτογραφημένα μηνύματα. Το ζωτικής σημασίας εργαλείο στην κρυπτανάλυση - η χρησιμοποίηση των συχνοτήτων των γραμμάτων κειμένου σε συνδυασμό με τις συχνότητες εμφάνισης στα κείμενα των γραμμάτων της γλώσσας - επινοήθηκε από αυτούς γύρω στον 14ο αιώνα. Η «χρυσή» περίοδος της κρυπτογραφίας, τοποθετείται στις αρχές του 20ου αιώνα και φτάνει μέχρι το Περιλαμβάνει, επομένως, τους δύο παγκόσμιους πολέμους, χάρη στους οποίους (λόγω της εξαιρετικά μεγάλης ανάγκης που υπήρξε για ασφάλεια κατά τη μετάδοση ζωτικών πληροφοριών μεταξύ των στρατευμάτων των χωρών) αναπτύχθηκε και εξελίχθηκε η κρυπτογραφία τόσο όσο δεν είχε αναπτυχθεί και εξελιχθεί τα προηγούμενα 3000 χρόνια. Τα συστήματα κρυπτογράφησης αυτής της περιόδου αρχίζουν να γίνονται εξαιρετικά προχωρημένα και πολύπλοκα, και να απαρτίζονται από μηχανικές και ηλεκτρομηχανικές κατασκευές, οι οποίες ονομάζονται «κρυπτομηχανές». Η κρυπτανάλυση τους και επομένως το «σπάσιμο» του κώδικα, απαιτεί εξαιρετικά μεγάλο αριθμό ανθρώπινου δυναμικού, το οποίο εργαζόταν σκληρά και αδιάκοπα επί μεγάλο 4

15 Κεφάλαιο 1 : Εισαγωγή στην Κρυπτογραφία χρονικό διάστημα ενώ ταυτόχρονα αρχίζει να γίνεται αισθητή και επιτακτική η ανάγκη για μεγάλη υπολογιστική ισχύ. Παρά την εξαιρετικά αυξημένη πολυπλοκότητα που αποκτούν οι μηχανισμοί κρυπτογράφησης κατά τη διάρκεια εκείνης της περιόδου η εύρεση του «κλειδιού» τους είναι συνήθως επιτυχημένη. Οι Γερμανοί έκαναν συστηματική χρήση (σε διάφορες παραλλαγές) ενός προχωρημένου - για τα δεδομένα της εποχής - συστήματος γνωστού ως Enigma. Σημαντική ώθηση στην αλματώδη εξέλιξη του κλάδου έπαιξε η μεγάλη ανάπτυξη σε διάφορους επιστημονικούς κλάδους και κυρίως στους κλάδους των μαθηματικών, της μικροηλεκτρονικής και των υπολογιστικών συστημάτων. Η εποχή της σύγχρονης κρυπτογραφίας αρχίζει ουσιαστικά με τον Claude Shannon, ο οποίος αναμφισβήτητα θεωρείται ο πατέρας των μαθηματικών συστημάτων κρυπτογραφίας. Το 1949 παρουσίασε μια επιστημονική δημοσίευση με τίτλο «Θεωρία επικοινωνίας των συστημάτων μυστικότητας» (Communication Theory of Secrecy Systems [2] ) στο επιστημονικό περιοδικό Bell System και λίγα χρόνια αργότερα στο βιβλίο του, «Μαθηματική Θεωρία της Επικοινωνίας» (Mathematical Theory of Communication [3] ), μαζί με τον Warren Weaver. Με τα δύο αυτά έργα του, εκτός από τις άλλες εργασίες του επάνω στη θεωρία δεδομένων και επικοινωνίας, έθεσε τα πρώτα γερά θεμέλια στους τομείς της θεωρητικής κρυπτογραφίας και της κρυπτανάλυσης. Εκείνη την εποχή η κρυπτογραφία εξαφανίζεται και φυλάσσεται από τις μυστικές υπηρεσίες κυβερνητικών επικοινωνιών όπως η NSA. Η πιο αξιοσημείωτη εξέλιξη στην ιστορία της κρυπτογραφίας ήρθε το 1976 όταν δύο άλλοι γίγαντες της επιστήμης της κρυπτογραφίας, οι Diffie και Hellman δημοσίευσαν το άρθρο τους New Directions in Cryptography [4]. Η επιστημονική αυτή δημοσίευση έκανε αναφορά για πρώτη φορά στην επαναστατική ιδέα της κρυπτογραφίας δημόσιου κλειδιού και επίσης παρουσίαζε μια καινοτόμα και έξυπνη μέθοδο για την διαδικασία ανταλλαγής κλειδιών, η επιτυχία της οποίας στηρίζεται στην δυσκολία εύρεσης λύσης του προβλήματος διακριτού λογαρίθμου. Παρά το γεγονός ότι οι συγγραφείς δεν είχαν εκείνη την εποχή να παρουσιάσουν μια πρακτική υλοποίηση ενός συστήματος κρυπτογράφησης δημόσιου κλειδιού, η ιδέα ήταν κάτι παραπάνω από ξεκάθαρη, έγινε δεκτή με ενθουσιασμό και προκάλεσε έντονο ενδιαφέρον και εκτεταμένη κινητικότητα στην επιστημονική κοινότητα του κλάδου. Το 1978 οι Rivest, Shamir και Adleman 5

16 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού πρότειναν για πρώτη φορά ένα πρακτικό σύστημα κρυπτογράφησης και υπογραφής δημόσιου κλειδιού, το οποίο είναι γνωστό στις μέρες μας ως RSA. Ο μηχανισμός RSA έχει τις βάσεις του σε ένα άλλο δύσκολο μαθηματικό πρόβλημα, την δυσκολία εύρεσης λύσης της παραγοντοποίησης μεγάλων ακεραίων αριθμών. Αυτή η επίκληση ενός εξαιρετικά δύσκολου μαθηματικού προβλήματος στην κρυπτογραφία αναζωπύρωσε τις προσπάθειες και την έρευνα για την εύρεση ακόμα πιο αποδοτικών μεθόδων παραγοντοποίησης ακεραίων. Στη δεκαετία του 80 σημειώθηκαν σημαντικές εξελίξεις σε αυτόν τον τομέα, αλλά καμία από αυτές δεν κατάφερε να θέσει σε κίνδυνο τον μηχανισμό κρυπτογράφησης RSA. Αξίζει να γίνει αναφορά και σε μια άλλη οικογένεια ισχυρών και πρακτικών μηχανισμών δημόσιου κλειδιού η οποία προτάθηκε από τον El Gamal το Οι μηχανισμοί αυτοί βασίζονται επίσης σε ένα μαθηματικό πρόβλημα και συγκεκριμένα στο πρόβλημα διακριτού λογαρίθμου. Ένα από τα σημαντικότερα οφέλη που παρέχει ο μηχανισμός δημόσιου κλειδιού είναι αυτό της ψηφιακής υπογραφής. Το 1991 δημιουργήθηκε το πρώτο διεθνές πρότυπο για ψηφιακές υπογραφές (ISO/IEC 9796). Είναι βασισμένο στον μηχανισμό δημόσιου κλειδιού RSA. Το 1994 η Κυβέρνηση των Η.Π.Α υιοθέτησε το Πρότυπο Ψηφιακών Υπογραφών (Digital Signature Standard DSA), έναν μηχανισμό βασισμένο στο σχήμα δημόσιου κλειδιού El Gamal. Η έρευνα για νέους μηχανισμούς δημόσιου κλειδιού, εξελίξεις και βελτιώσεις στους υπάρχοντες κρυπτογραφικούς μηχανισμούς και αποδείξεις της ασφάλειας, συνεχίζονται με αμείωτο ενδιαφέρον. Συνεχώς κάνουν την εμφάνιση τους διάφορα πρότυπα και συστήματα που εμπλέκουν την κρυπτογραφία. Όλο και περισσότερα προϊόντα ασφάλειας αναπτύσσονται προκειμένου να ικανοποιήσουν την ανάγκη που έχουμε για προστασία και ασφάλεια σε μια ολοένα αναπτυσσόμενης κοινωνίας με κύριο χαρακτηριστικό γνώρισμα την πληροφορία. Σήμερα, η χρήση της μοιάζει πιο επιτακτική από ποτέ. Ο τεράστιος όγκος δεδομένων ο οποίος διακινείται καθημερινά στο διαδίκτυο καθώς και η χρήση νέων μέσων για επικοινωνία όπως το ηλεκτρονικό ταχυδρομείο και τα κοινωνικά δίκτυα, καθιστούν αναγκαία την χρήση μέσων για την διαφύλαξη της πληροφορίας καθώς και του δικαιώματος ιδιωτικότητας του ατόμου. 6

17 Κεφάλαιο 1 : Εισαγωγή στην Κρυπτογραφία Βασική Ορολογία Στο σημείο αυτό κρίνεται αναγκαίο να γίνει μια αναφορά στην βασική ορολογία της επιστήμης της κρυπτογραφίας. Το αρχικό κομμάτι πληροφορίας που προορίζεται για κρυπτογράφηση ονομάζεται απλό κείμενο (plaintext) ενώ το μήνυμα που προκύπτει από την διαδικασίας της κρυπτογράφησης του απλού κειμένου, δηλαδή το κρυπτογραφημένο κείμενο, ονομάζεται κρυπτογράφημα (ciphertext). Σχήμα 1: Κρυπτογράφηση του plaintext και αποκρυπτογράφηση του ciphertext Ως αποκρυπτογράφηση (decryption) ορίζεται η αντίστροφη διαδικασία κατά την οποία το κρυπτογραφημένο μήνυμα μετατρέπεται στο αρχικό απλό μήνυμα με την βοήθεια ενός κλειδιού. Στο σημείο αυτό, πρέπει να γίνει αναφορά στην κρυπτανάλυση (cryptanalysis) η οποία δεν πρέπει να συγχέεται με την διαδικασία της αποκρυπτογράφησης. Ως κρυπτανάλυση ορίζεται η «τεχνική» της παραβίασης του κρυπτογραφημένου μηνύματος χωρίς να είναι γνωστό το κλειδί με το οποίο έγινε η κρυπτογράφηση. Είναι δηλαδή η επιστήμη εκείνη η οποία ασχολείται με την μελέτη και αποκωδικοποίηση κωδικοποιημένων πληροφοριών έχοντας ως σκοτεινά σημεία το κλειδί, με βάση το οποίο έγινε η κρυπτογράφηση του μηνύματος καθώς και το κρυπτογραφημένο μήνυμα. Καθοριστικό ρόλο για την διαδικασία της κρυπτογράφησης παίζει ο αλγόριθμος κρυπτογράφησης (encyption algorithm) ο οποίος αποτελεί τον ακρογωνιαίο λίθο της 7

18 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού όλης διαδικασίας. Πρόκειται για την μέθοδο που ακολουθείται για τη µετατροπή του αρχικού απλού κειμένου σε κρυπτογράφημα. Ο αλγόριθμος κρυπτογράφησης έχει ως βασικό στόχο την όσο το δυνατόν πιο αποτελεσματική και αποδοτική κρυπτογράφηση του μηνύματος που μεταδίδεται. Η λήψη τους μηνύματος από τον εξουσιοδοτημένο παραλήπτη ακολουθείται από την αποκρυπτογράφηση η οποία κάνει χρήση του ίδιου αλγορίθμου που χρησιμοποιείται για κρυπτογράφηση. Πρόκειται δηλαδή για την αντίστροφη διαδικασία της κρυπτογράφησης, με στόχο τη µετατροπή του κρυπτογραφήµατος σε αρχικό κείμενο. Τέλος το πιο κρίσιμο σημείο της όλης διαδικασίας είναι το κλειδί (key), το οποίο υποδεικνύει τον τρόπο με τον οποίο θα γίνει η διαδικασία της κρυπτογράφησης. Το κλειδί για παράδειγμα µπορεί να είναι η αντιστοιχία γραµµάτων του αρχικού κειμένου και του κρυπτογραφήµατος. Θα δούμε στο επόμενο κεφάλαιο την διάκριση των αλγορίθμων και των μηχανισμών κρυπτογράφησης με κριτήριο το κοινό ή όχι κλειδί αποστολέα και παραλήπτη Είδη Κρυπτογραφίας Συμμετρική Κρυπτογραφία(Secret Key Cryptography) Η συµµετρική κρυπτογράφηση περιλαμβάνει τους κρυπτογραφικούς αλγόριθμους στους οποίους χρησιμοποιείται το ίδιο κλειδί για την κρυπτογράφηση και την αποκρυπτογράφηση των δεδομένων γνωστό ως μυστικό κλειδί (secret key). Στη συµµετρική κρυπτογράφηση το κλειδί κρυπτογράφησης/αποκρυπτογράφησης είναι εξ ορισμού μυστικό κλειδί, γνωστό µόνο στους εξουσιοδοτημένους κατόχους. Με άλλα λόγια, ο αποστολέας και ο παραλήπτης είναι οι μοναδικές οντότητες που γνωρίζουν και επομένως χρησιμοποιούν το μυστικό κλειδί. Η ασφάλεια της όλης διαδικασίας βασίζεται στο γεγονός ότι μήνυμα μετατρέπεται σε κρυπτογράφημα δηλαδή σε ακατανόητη μορφή για όλους τους άλλους εκτός των κατόχων του κλειδιού. Ο παραλήπτης κάνει χρήση του συμμετρικού κλειδιού προκειμένου να αποκωδικοποιήσει το μήνυμα. Στο Σχήμα 2 που ακολουθεί, γίνεται σαφή η διαδικασία η οποία λαμβάνει χώρα κατά την διάρκεια της συμμετρικής κρυπτογράφησης. Ο αλγόριθμος του Καίσαρα είναι ένα χαρακτηριστικό 8

19 Κεφάλαιο 1 : Εισαγωγή στην Κρυπτογραφία παράδειγμα συμμετρικής κρυπτογραφίας. Μερικοί σύγχρονοι αλγόριθμοι που υπάγονται σε αυτή την κατηγορία είναι οι DES [5] και AES [6]. Στα πλεονεκτήματα της συμμετρικής κρυπτογραφίας περιλαμβάνονται οι υψηλές ταχύτητες κρυπτογράφησης και αποκρυπτογράφησης καθώς επίσης και οι μικρές απαιτήσεις σε μνήμη και υπολογιστή ισχύ. Το μεγαλύτερο πρόβλημα της συμμετρικής κρυπτογραφίας, είναι η συνεννόηση και ανταλλαγή του κλειδιού, χωρίς κάποιος τρίτος να μάθει για αυτό. Η μετάδοση μέσα από το Διαδίκτυο δεν είναι ασφαλής γιατί οποιοσδήποτε γνωρίζει για την συναλλαγή και έχει τα κατάλληλα εργαλεία μπορεί να παρακολουθήσει όλη την επικοινωνία μεταξύ αποστολέα και παραλήπτη και να μάθει το κλειδί. Έχοντας το κλειδί, μπορεί να διαβάσει, να τροποποιήσει και να πλαστογραφήσει όλα τα μηνύματα που ανταλλάσσουν οι δύο χρήστες μεταξύ τους. Τίθεται λοιπόν το πρόβλημα της ύπαρξης ενός ασφαλούς δίαυλου επικοινωνίας μεταξύ των δύο οντοτήτων. Η απουσία ενός τέτοιου διαύλου μειώνει την δυνατότητα χρήσης τέτοιων αλγορίθμων αφού η ασφάλεια του μειώνεται πριν καλά καλά αρχίσει η ανταλλαγή του μηνύματος. Ένα ακόμα βασικό μειονέκτημα είναι ότι ο αριθμός των μοναδικών συμμετρικών κλειδιών που απαιτούνται αυξάνεται εκθετικά με τον αριθμό χρηστών. Έτσι, στην περίπτωση που έχουμε n χρήστες απαιτούνται n (n 1) /2 κλειδιά. Καταλαβαίνουμε λοιπόν ότι όσο αυξάνεται ο αριθμός χρηστών αυξάνεται και η πολυπλοκότητα της μεθόδου αυτής. Στην παρακάτω εικόνα, γίνεται σαφές το πώς λειτουργεί η εν λόγω μέθοδος. 9

20 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού Σχήμα 2 : Συμμετρική κρυπτογράφηση Ασύμμετρη Κρυπτογραφία ή Κρυπτογραφία Δημόσιου Κλειδιού(Public Key Cryptography) Η ασύμμετρη κρυπτογραφία χρησιμοποιεί δύο διαφορετικά κλειδιά για την κρυπτογράφηση και αποκρυπτογράφηση. Κάθε χρήστης έχει στην κατοχή του ένα ζεύγος κλειδιών (key pair). Το ένα καλείται δημόσιο κλειδί και χρησιμοποιείται για την κρυπτογράφηση των δεδομένων. Το άλλο καλείται ιδιωτικό κλειδί και χρησιμοποιείται για την αποκρυπτογράφηση των δεδομένων. Αν και σχετίζονται μεταξύ τους με κάποια μαθηματική σχέση, είναι επαρκώς διαφορετικά έτσι ώστε η γνώση τους ενός να μην επιτρέπει την παραγωγή ή τον υπολογισμό του άλλου. Το δημόσιο κλειδί δημοσιοποιείται, ενώ το ιδιωτικό κλειδί κρατείται μυστικό. Το ιδιωτικό κλειδί δεν μεταδίδεται ποτέ στο δίκτυο και όλες οι επικοινωνίες βασίζονται στην δημόσιο κλειδί. Βασικό πλεονέκτημα όπως θα δούμε και παρακάτω είναι ότι δεν υπάρχει η ανάγκη οι δύο οντότητες να μοιράζονται το ίδιο κλειδί και συνεπώς δεν είναι αναγκαία η ανταλλαγή του όπως στην περίπτωση της 10

21 Κεφάλαιο 1 : Εισαγωγή στην Κρυπτογραφία συμμετρικής κρυπτογραφίας. Η μόνη απαίτηση της ασύμμετρης κρυπτογραφίας είναι η επιβεβαιωμένη συσχέτιση των δημόσιων κλείδων με τους κατόχους τους ώστε να μην είναι δυνατή η πλαστοπροσωπία. Η ασύμμετρη κρυπτογράφηση μπορεί να χρησιμοποιηθεί όχι μόνο για κρυπτογράφηση, αλλά και για παραγωγή ψηφιακών υπογραφών.. Μερικοί χαρακτηριστικό αλγόριθμοι της κατηγορίας αυτής είναι οι RSA [7] και ElGamal [8]. Η ασφάλεια της, βασίζεται στο γεγονός ότι είναι αδύνατο να παραχθεί το ιδιωτικό κλειδί από το δημόσιο. Θεωρητικά, βέβαια, το ιδιωτικό κλειδί μπορεί να παραχθεί αλλά το κόστος σε μνήμη, χρόνο και ισχύ καθιστά την διαδικασία μη πρακτική. Το βασικό της πλεονέκτημα είναι ότι δεν χρειάζεται ανταλλαγή μεταξύ των δύο οντοτήτων αλλά οι απαιτήσεις σε υπολογιστή ισχύ είναι σχεδόν 100 φορές μεγαλύτερες από αυτές της συμμετρικής κρυπτογραφίας. Σχήμα 3: Κρυπτογράφηση Δημόσιου Κλειδιού Στόχοι της Κρυπτογραφίας Οι κύριοι στόχοι της κρυπτογραφίας είναι οι παρακάτω: Τα μηνύματα πρέπει να φτάσουν στο σωστό προορισμό 11

22 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού Εμπιστευτικότητα (confidentiality). Μόνο ο παραλήπτης τους πρέπει να είναι ικανός να τα παραλάβει και να τα δει. Είναι δηλαδή η υπηρεσία που διατηρεί την πληροφορία μακριά από μη εξουσιοδοτημένους χρήστες. Η μυστικότητα είναι ένας όρος συνώνυμος με την εμπιστευτικότητα και την ιδιωτικότητα. Υπάρχουν ποικίλλεις προσεγγίσεις που παρέχουν εμπιστευτικότητα, που κυμαίνονται από τη φυσική προστασία σε μαθηματικούς αλγορίθμους, οι οποίοι καθιστούν τα δεδομένα ακατανόητα. Το μήνυμα δεν πρέπει να αλλοιωθεί κατά την μεταφορά του, από μη εξουσιοδοτημένο χρήστη (data integrity). Είναι δηλαδή η υπηρεσία που εξετάζει την μη εξουσιοδοτημένη τροποποίηση των δεδομένων. Για να επιβεβαιωθεί η ακεραιότητα, πρέπει να αφαιρεθεί η δυνατότητα χειρισμού των δεδομένων από μη αρμόδια άτομα. Ο χειρισμός των δεδομένων περιλαμβάνει ενέργειες όπως η εισαγωγή,η αντικατάσταση και η διαγραφή δεδομένων. Η αυθεντικότητα είναι ακόμα μια από τις υπηρεσίες που μας παρέχει η κρυπτογράφηση των δεδομένων. Αυτή η λειτουργία απευθύνεται τόσο στις οντότητες όσο και στην πληροφορία. Δύο μέρη που αρχίζουν μια επικοινωνία πρέπει να αναγνωρίσουν ο ένας τον άλλο. Πληροφορία που ανταλλάσσεται μέσω του καναλιού πρέπει να ταυτοποιείται ως προς την προέλευση,την ημερομηνία γέννησης της, την ημερομηνία αποστολής, το περιεχόμενο των δεδομένων, την ώρα αποστολής κτλπ. Οποιαδήποτε ενέργεια λάβει μέρος από κάποια οντότητα, δεν πρέπει αργότερα να μπορεί να την αρνηθεί (non-repudiation). Ουσιαστικά πρόκειται για υπηρεσία μη αποκήρυξης η οποία καθιστά αδύνατο για κάποια οντότητά να αρνηθεί προηγούμενες ενέργειες ή απόπειρες. Η κρυπτογραφία δεν λύνει τα παραπάνω, απλώς προσπαθεί να τα ικανοποιήσει. 12

23 Κεφάλαιο 1 : Εισαγωγή στην Κρυπτογραφία Επιθέσεις εναντίον κρυπτογραφικών αλγορίθμων- Κρυπτανάλυση Έχει γίνει ήδη αναφορά στην κρυπτανάλυση δηλαδή στην μελέτη μαθηματικών τεχνικών που στοχεύουν στην «ακύρωση» των κρυπτογραφικών μεθόδων, καθιστώντας τις έτσι μη κατάλληλες για κρυπτογραφικούς σκοπούς. Παρακάτω θα γίνει μία σύντομη αναφορά σε κάποια βασικά είδη επιθέσεων τα οποία μπορεί να επιστρατεύσει ο επιτιθέμενος προκειμένου να επιτύχει το σκοπό του. Ciphertext Attack είναι εκείνη όπου ο αντίπαλος (ή ο κρυπταναλυτής) προσπαθεί να εντοπίσει το κλειδί αποκρυπτογράφησης ή το απλό κείμενο έχοντας στην κατοχή του μόνο το ciphertext. Ένας μηχανισμός κρυπτογράφησης που δεν μπορεί να παρέχει προστασία απέναντι σε αυτού του τύπου την επίθεση θεωρείται ότι είναι τελείως ανασφαλές. Known-Plaintext Attack είναι η επίθεση όπου ο αντίπαλος έχει κάποιο κομμάτι από το plaintext και το αντίστοιχο ciphertext που αντιστοιχεί στο μήνυμα. Chosen-Plaintext Attack είναι εκείνη όπου ο αντίπαλος επιλέγει plaintext και στη συνέχεια του δίνεται το αντίστοιχο ciphertext. Στη συνέχεια, ο αντίπαλος μελετάει το κρυπτογράφημα που προκύπτει με σκοπό να αντλήσει οποιαδήποτε στοιχείο το οποίο θα τον οδηγήσει στο να βρει το κλειδί του μηνύματος που στέλνεται. Adaptive Chosen-Plaintext Attack είναι μια επίθεση επιλεγμένου plaintext όπου η επιλογή του απλού κειμένου μπορεί να εξαρτάται από το ciphertext που παραλήφθηκε από προηγούμενες αιτήσεις. Chosen-Ciphertext Attack είναι εκείνη όπου ο αντίπαλος επιλέγει το ciphetext και στη συνέχεια του δίνεται το αντίστοιχο απλό κείμενο. Adaptive Chosen-Ciphertext Attack είναι μια επίθεση επιλεγμένου ciphertext όπου η επιλογή του κρυπτοκειμένου μπορεί να εξαρτάται από το απλό κείμενο που παραλήφθηκε από προηγούμενες αιτήσεις. 13

24 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού Ισχύς κρυπτογραφικού μηχανισμού Βασικό κριτήριο στην αντικειμενική μέτρηση της δύναμης ενός κρυπτογραφικού μηχανισμού είναι η αρχή του Kerchoff: «Η ασφάλεια ενός κρυπτογραφικού συστήματος δεν εξαρτάται από τη μυστικότητα του αλγορίθμου κρυπτογράφησης. Η ασφάλεια του συστήματος εξαρτάται μόνον από το να διατηρείται μυστικό το κλειδί» Σύμφωνα με τον Shannon - ο οποίος θεωρείται ο πατέρας της θεωρίας της πληροφορίας - τα μέτρα τα οποία χαρακτηρίζουν έναν ορθά σχεδιασμένο αλγόριθμο κρυπτογράφησης είναι τα εξής : 1. Βαθμός απαιτούμενης κρυπτογραφικής ασφάλειας. Το μέτρο αυτό αφορά το κέρδος του αντιπάλου σε πληροφορία, όταν παρατηρεί το ciphertext. 2. Μήκος κλειδιού. Το πόσο εύκολο είναι να χειριστείς ένα κλειδί εξαρτάται από το μήκος του. 3. Πρακτική εκτέλεση της κρυπτογράφησης και της αποκρυπτογράφησης. Η προσπάθεια που απαιτείται για την κρυπτογράφηση και την αποκρυπτογράφηση σε χρόνο, πόρους ή λειτουργίες. 4. Διόγκωση του ciphertext. Είναι επιθυμητό το ciphertext να έχει το ίδιο μήκος (ή συγκρίσιμου μεγέθους) με το plaintext. 5. Διάδοση των σφαλμάτων κρυπτογράφησης. Είναι επιθυμητό ένα σφάλμα κατά την κρυπτογράφηση να επηρεάζει σε όσον το δυνατόν λιγότερο βαθμό την αποκρυπτογράφηση. Δύο βασικά γνωρίσματα τα οποία χρησιμοποιούνται στην αξιολόγηση της κρυπτογραφικής ισχύς μιας μεθόδου είναι η σύγχυση (confusion) και η διάχυση (diffusion). Confusion είναι η ικανότητα του αλγορίθμου κρυπτογράφησης να μην «παρέχει» οποιαδήποτε πληροφορία σχετικά με το τι αποτέλεσμα θα έχει μια απλή μετατροπή του 14

25 Κεφάλαιο 1 : Εισαγωγή στην Κρυπτογραφία απλού κειμένου πάνω στο κρυπτογράφημα. Ουσιαστικά αποκρύπτουμε τη σχέση μεταξύ κρυπτογραφημένου κειμένου και κλειδιού και διαλύουμε την στατική δομή του απλού κειμένου. Diffusion είναι η ικανότητα του αλγορίθμου κρυπτογράφησης όπου ένα τμήμα του απλού κειμένου να έχει την ευκαιρία να επηρεάζει όσο το δυνατόν περισσότερα τμήματα του ciphertext Εισαγωγή στις ψηφιακές υπογραφές Οι ψηφιακές υπογραφές είναι ένας από τους σπουδαιότερους τομείς της επιστήμης της κρυπτογραφίας και αποτελούν ίσως την πιο σημαντική εξέλιξη στην ιστορία της. Η πρώτη μέθοδος ψηφιακών υπογραφών που ανακαλύφθηκε και χρησιμοποιήθηκε ήταν ο αλγόριθμος RSA, ο οποίος ακόμα και στις μέρες μας είναι μία από τις πιο πρακτικές και αποτελεσματικές τεχνικές ψηφιακών υπογραφών που έχουμε στην διάθεση μας. Έρευνες που συντελέστηκαν μετά την δημιουργία του RSA, είχαν ως αποτέλεσμα πολλές εναλλακτικές τεχνικές ψηφιακών υπογραφών με σημαντικά πλεονεκτήματα στη λειτουργικότητα και στην εφαρμογή τους. Σκοπός της ψηφιακής υπογραφής είναι να συνδέσει την ταυτότητα ενός αποστολέα με ένα μήνυμα που αποστέλλεται Ιστορική αναδρομή Το 1976 ο Whitfield Diffie και ο Martin Hellman για πρώτη φορά παρουσίασαν την ιδέα των ψηφιακών υπογραφών [9], αν και η κεντρική ιδέα των τέτοιων συστημάτων προϋπήρχε. Λίγο αργότερα ο Ronald Rivest, ο Adi Shamir και ο Len Adleman παρουσίασαν τον αλγόριθμο RSA ο οποίος χρησιμοποιήθηκε στις πρώτες ψηφιακές υπογραφές. Οι πρώτες ψηφιακές υπογραφές με τον αλγόριθμο RSA αποδείχθηκαν ότι δεν ήταν ασφαλείς. Το πρώτο, ευρέος γνωστό στην αγορά, λογισμικό που χρησιμοποίησε τέτοιες ψηφιακές υπογραφές ήταν τον Lotus Notes 1.0, το οποίο κυκλοφόρησε το

26 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού Η χρήση της συνάρτησης κατατεμαχισμού στις ψηφιακές προστέθηκε αργότερα για λόγους ασφάλειας. Η ιδέα είναι ότι υπολογίζεται η σύνοψη (hash) του μηνύματος/εγγράφου και η ψηφιακή υπογραφή υπολογίζεται πάνω στην σύνοψη (hash) και όχι στο μήνυμα/έγγραφο. Άλλοι αλγόριθμοι που αναπτύχθηκαν μετά το RSA ήταν οι ψηφιακές υπογραφές Lamport [10], οι ψηφιακές υπογραφές Merkle [11] (γνωστές ως δένδρα Merkle ή απλούστερα "δένδρα συνόψεων/hash") και οι ψηφιακές υπογραφές Rabin [12]. Το 1988 ο Shafi Goldwasser, ο Silvio Micali και ο Ronald Rivest ήταν οι πρώτοι που δημοσίευσαν ολοκληρωμένη μελέτη για τις απαιτήσεις ασφάλειας των ψηφιακών υπογραφών. Παρουσίασαν με ποιους τρόπους κάποιος μπορεί να παραβιάσει τις υπάρχουσες υλοποιήσεις ψηφιακών υπογραφών και παρουσίασαν το μοντέλο ψηφιακών υπογραφών GMR. Οι πρόσφατες υλοποιήσεις ψηφιακών υπογραφών περιλαμβάνουν την χρήση συνάρτησης κατακερματισμού. Υπάρχουν διάφοροι λόγοι που ουσιαστικά εφαρμόζεται η ψηφιακή υπογραφή στην σύνοψη του μηνύματος (hash) και όχι σε ολόκληρο το μήνυμα/έγγραφο: Αποτελεσματικότητα (efficiency): Η ψηφιακή υπογραφή είναι πολύ μικρότερη σε μέγεθος και χρειάζεται λιγότερο χρόνο για να εφαρμοστεί αφού η ψηφιακή υπογραφή (η σύνοψη (hash)) έχει πολύ μικρότερο μέγεθος από ότι ολόκληρο το μήνυμα/έγγραφο. Συμβατότητα (compartibility): Τα μηνύματα/έγγραφα είναι ουσιαστικά μεταβλητού μεγέθους block bits. Ο αλγόριθμος κατακερματισμού μπορεί να μετατρέψει αυτά τα μεταβλητού μήκους blocks από bits σε συγκεκριμένο αριθμό bits (σύνοψη - hash). Ακεραιότητα (integrity): Αν δεν εφαρμοστεί η συνάρτηση κατακερματισμού το αρχικό μήνυμα/έγγραφο θα πρέπει να διαιρεθεί σε μικρότερα μεγέθη bits (πακέτα bits) ώστε ο αλγόριθμος ψηφιακών υπογραφών να εφαρμοστεί σε αυτά. Ο αποδέκτης των πακέτων bits δεν είναι σε θέση να αναγνωρίσει αν όλα τα πακέτα έχουν έρθει και αν βρίσκονται στη σωστή σειρά. 16

27 Κεφάλαιο 1 : Εισαγωγή στην Κρυπτογραφία Τί είναι η ψηφιακή υπογραφή Μια ψηφιακή υπογραφή είναι ένα κρυπτογραφημένο σύνολο δεδομένων, το οποίο σχετίζεται με το περιεχόμενο, (προαιρετικά) την ημερομηνία δημιουργίας του μηνύματος και την ταυτότητα του αποστολέα. Η διαδικασία εξασφαλίζει ότι το μήνυμα δεν έχει αλλαχθεί από τη στιγμή που υπογράφηκε από τον Α και ότι αυτός είναι ο πραγματικός αποστολέας του μηνύματος. Η ψηφιακή υπογραφή αποτελείται από τρεις αλγόριθμους: Ο αλγόριθμος δημιουργίας δημόσιου και ιδιωτικού κλειδιού: (με το ιδιωτικό κλειδί δημιουργείται η ψηφιακή υπογραφή και με το δημόσιο κλειδί ελέγχεται η ψηφιακή υπογραφή). Ο αλγόριθμος προσθήκης ψηφιακής υπογραφής σε μηνύματα ή έγγραφα. Ο αλγόριθμος ελέγχου ψηφιακής υπογραφής μηνύματος ή εγγράφου. Ένα πρόβλημα με τις ψηφιακές υπογραφές είναι ότι δεν γνωρίζουμε αν το δημόσιο κλειδί (κατά την διάρκεια ελέγχου της υπογραφής) που έχουμε ανήκει σε αυτόν που ισχυρίζεται ότι είναι. Για αυτό ακριβώς τον λόγο υπάρχει ο Πάροχος Υπηρεσιών Πιστοποίησης ο οποίος είναι ένας οργανισμός-οντότητα ο οποίος πιστοποιεί την σχέση ενός ανθρώπου με το δημόσιο κλειδί του. Στην παρακάτω εικόνα, παρουσιάζεται αναλυτική η διαδικασία που ακολουθείται όταν γίνεται χρήση της ψηφιακής υπογραφής για την ανταλλαγή ενός μηνύματος 17

28 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού Σχήμα 4: Διάγραμμα χρήσης ψηφιακής υπογραφής Δημιουργία Ψηφιακών Υπογραφών Η χρήση μιας ψηφιακής υπογραφής απαιτεί δύο διαδικασίες: α) τη δημιουργία της υπογραφής και β) την επαλήθευσή της ψηφιακής υπογραφής. Τα βήματα που ακολουθούνται κατά την διαδικασία δημιουργίας της ψηφιακής υπογραφής είναι: 1. Αρχικά ο αποστολέας χρησιμοποιεί κάποιον αλγόριθμο κατακερματισμού (one way hash) με αποτέλεσμα να δημιουργεί τη σύνοψη του μηνύματος (message digest) που θέλει να στείλει. Η παρακάτω εικόνα δείχνει τι συμβαίνει στο πρώτο βήμα της διαδικασίας. 18

29 Κεφάλαιο 1 : Εισαγωγή στην Κρυπτογραφία Σχήμα 5: Δημιουργία Σύνοψης Μηνύματος 2. Στην συνέχεια ο αποστολέας κάνει χρήση του ιδιωτικού του κλειδιού (το οποίο όπως έχουμε ήδη τονίσει είναι γνωστό μόνο σε αυτόν) προκειμένου να κρυπτογραφήσει την σύνοψη του μηνύματος που έχει δημιουργηθεί από το πρώτο βήμα. Το αποτέλεσμα είναι η ψηφιακή υπογραφή. Σχήμα 6: Κρυπτογράφηση Σύνοψης Μηνύματος 3. Σε αυτό το βήμα, η κρυπτογραφημένη με το ιδιωτικό κλειδί σύνοψη (ψηφιακή υπογραφή) προστίθεται στο έγγραφο προς αποστολή και στην συνέχεια όλα μαζί μεταδίδονται μέσω του δικτύου. 19

30 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού Σχήμα 7: Προσάρτηση Σύνοψης Μηνύματος Τα βήματα που ακολουθούνται κατά την διαδικασία επαλήθευσης της ψηφιακής υπογραφής είναι: 1. Ο παραλήπτης, αφού λάβει το υπογεγραμμένο μήνυμα, διαβάζει την ψηφιακή υπογραφή (η οποία είναι κρυπτογραφημένη με το ιδιωτικό κλειδί του αποστολέα). 2. Στην συνέχεια εφαρμόζει στο μήνυμα που έλαβε τον αλγόριθμο κατακερματισμού που χρησιμοποιείσαι ο αποστολέας. Ο παραλήπτης δημιουργεί και αυτός μια σύνοψη του μηνύματος. 3. Έπειτα, χρησιμοποιεί το δημόσιο κλειδί του αποστολέα προκειμένου να αποκρυπτογραφήσει την κρυπτογραφημένη σύνοψη του μηνύματος (ψηφιακή υπογραφή). 4. Τέλος ο παραλήπτης συγκρίνει τις δύο συνόψεις και αν είναι ίδιες, τότε είναι σίγουρος πλέον ότι το μήνυμα που έλαβε από τον αποστολέα είναι ακέραιο και αναλλοίωτο. Αν το μήνυμα έχει μεταβληθεί, η σύνοψη που θα παράγει ο παραλήπτης θα είναι διαφορετική από την σύνοψη που έχει κρυπτογραφηθεί και επομένως η απόπειρα εξαπάτησης θα γίνει αντιληπτή. 20

31 Κεφάλαιο 1 : Εισαγωγή στην Κρυπτογραφία Σχήμα 8: Επαλήθευση Ψηφιακής Υπογραφής Σχήμα 9: Πλήρης κύκλος δημιουργίας και επαλήθευσης ψηφιακής υπογραφής Σημαντικό ρόλο σε όλη αυτή την διαδικασία παίζει ο Πάροχος Υπηρεσιών Πιστοποίησης o οποίος παρέχει μεταξύ άλλων την υπηρεσία εκείνη με την οποία πιστοποιείται ότι το δημόσιο κλειδί ενός ατόμου ανήκει όντως σε αυτό το άτομο. Ο τρόπος με τον οποίο γίνεται αυτό, είναι με την έκδοση ενός πιστοποιητικού 21

32 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού (ηλεκτρονικό αρχείο), στο οποίο ο ΠΥΠ πιστοποιεί την ταυτότητα του προσώπου και το δημόσιο κλειδί του. Το Ψηφιακό πιστοποιητικό είναι ένα ηλεκτρονικό έγγραφο που χρησιμοποιείται για την αναγνώριση μίας οντότητας (φυσικό πρόσωπο, εξυπηρετητής, οργανισμός κοκ) και την ανάκτηση του δημοσίου κλειδιού αυτής. Η υποδομή με την οποία ένας ΠΥΠ εκδίδει, υπογράφει, δημοσιεύει και υποστηρίζει τυποποιημένες ηλεκτρονικές βεβαιώσεις (πιστοποιητικά) για τα κρυπτογραφικά κλειδιά των συνδρομητών του ονομάζεται Υποδομή Δημοσίου Κλειδιού (PUBLIC Key Infrastructure PKI). Ειδικότερα, το ψηφιακό αυτό πιστοποιητικό αναφέρει το δημόσιο κλειδί και επιβεβαιώνει ότι το συγκεκριμένο πρόσωπο που αναφέρεται στο πιστοποιητικό είναι ο δικαιούχος του αντίστοιχου ιδιωτικού κλειδιού. Έτσι, ο παραλήπτης που λαμβάνει ένα μήνυμα με ψηφιακή υπογραφή, μπορεί να είναι σίγουρος ότι το μήνυμα έχει σταλεί από το πρόσωπο που το υπογράφει Εισαγωγή στις συναρτήσεις κατακερματισμού Γενικά μια συνάρτηση κατατεμαχισμού, γνωστή και ως συνάρτηση κατακερματισμού, είναι μια μαθηματική συνάρτηση που δέχεται ως είσοδο κάποιο δεδομένο τυχαίου μεγέθους και επιστρέφει ένα ακέραιο σταθερού μεγέθους αναπαράστασης. Οι τιμές που επιστρέφει η συνάρτηση κατατεμαχισμού ονομάζονται τιμές κατατεμαχισμού (hash values), κώδικες κατατεμαχισμού (hash codes), αθροίσματα κατατεμαχισμού (hash sums) ή απλά τιμές κατατεμαχισμού (hashes )[12]. Θα παραθέσουμε τον ορισμό μιας μονόδρομης συνάρτησης κατακερματισμού, ο οποίος εμπεριέχει τις βασικές ιδιότητες που συντελούν ώστε μια απλή συνάρτηση, να αποτελέσει μία χρήσιμη και ισχυρή hash function. Μια (μονόδρομη) συνάρτηση κατακερματισμού h είναι ένας μετασχηματισμός που έχει τις ακόλουθες ιδιότητες: 1. Συμπίεση (compression): το όρισμα x της εισόδου μπορεί να έχει ένα οποιοδήποτε μέγεθος (πεπερασμένο μήκος) ενώ η h(x) έχει σταθερό μέγεθος. 22

33 Κεφάλαιο 1 : Εισαγωγή στην Κρυπτογραφία 2. Ευκολία στον υπολογισμό (ease of computation): έχοντας την συνάρτηση κατακερματισμού h και μια τιμή εισόδου x, η έξοδος h(x) μπορεί να υπολογιστεί εύκολα. 3. Αντίσταση 1ου ορίσματος (preimage resistance)-μη αντιστρεψιμότητα: είναι υπολογιστικά ανέφικτο για ένα δεδομένο στοιχείο y του πεδίου τιμών της h, να βρεθεί στοιχείο x του πεδίου ορισμού, τέτοιο ώστε h(x) = y. 4. Αντίσταση 2ου ορίσματος (2nd - preimage resistance): είναι υπολογιστικά ανέφικτο για δεδομένο στοιχείο x1 του πεδίου ορισμού της h, να βρεθεί άλλο στοιχείο x2, έτσι ώστε h(x1) = h(x2). 5. Μη συσχέτιση (non-correlation): τα bit εισόδου και εξόδου δεν πρέπει να είναι συσχετισμένα. 23

34 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού 24

35 Κεφάλαιο 2 : Keccak Algorithm-SHA3 Κεφάλαιο 2 Keccak Algorithm-SHA Εισαγωγικά στοιχεία για τον αλγόριθμο Keccak Ο αλγόριθμος Keccak δημιουργήθηκε από τους Guido Bertoni, Joan Daemen, Michaël Peeters και Gilles Van Assche [14]. Βασίστηκε στον αλγόριθμο RadioGatún, οποίος, με την σειρά του, βασίστηκε στον αλγόριθμο Panama. Αξίζει να σημειωθεί ότι στην ανάπτυξη του Panama το 1998 είχε ο Joan Daemen, ο οποίος, αναγνωρίζοντας τις αδυναμίες του, μαζί με τους υπόλοιπούς τρείς ανέπτυξε τον RadioGatún το έτος 2006, για την συμμετοχή στον διαγωνισμό του NIST για την εύρεση του νέου προτύπου SHA. Ο RadioGatún, αποτελώντας ευθέως μία παραλλαγή του αλγορίθμου Panama, είχε καταφέρει να επιλύσει τα προβλήματα που παρουσίαζε ο προκάτοχός του, καθιστώντας τον έτσι πιο αποτελεσματικό. Η εμφάνιση του Keccak έγινε τον Οκτώβριο του 2008, όπου υποβλήθηκε από τους δημιουργούς του, ως η συμμετοχή τους στον διαγωνισμό για την ανάδειξη του SHA-3. Βασίστηκε στον RadioGatún, καθώς οι δημιουργοί του αισθάνθηκαν ότι δεν ήταν αρκετά ασφαλής, καθόλου που καμία επίθεση ακόμη δεν είχε καταφέρει να παραβιάσει το επίπεδο ασφάλειας που υποστήριζαν ότι είχε. Βασική διαφορά των δύο αλγορίθμων ήταν η μορφή της επεξεργασίας των δεδομένων. Ενώ ο RadioGatún χρησιμοποιούσε μια μορφή εισόδου εξόδου, που έμοιαζε ιδιαίτερα με sponge function (θα αναλυθούν στην συνέχεια), χωρίς όμως να είναι, κατά τον σχεδιασμό του Keccak, οι δημιουργοί αποφάσισαν στην διαμόρφωσή του ως μια κανονική sponge function. Η διαφορά αυτή, αν και φαίνεται μικρή, είναι ιδιαιτέρως σημαντική, καθώς η αυτούσια χρήσης της λογικής των sponge function προσδίδει στο σύστημα τη γνωστή αξιοπιστία αυτών. Από την άλλη, η χρήση αλγορίθμων παρόμοιας, αλλά όχι ίδιας, λογικής μπορεί να παρουσιάζει πολλά κενά 25

36 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού ασφαλείας, κενά τα οποία μπορεί να είναι ιδιαιτέρως δύσκολο να εντοπιστούν μέχρι να είναι πολύ αργά. Άλλη διαφορά αποτελεί η εσωτερική μορφή των δύο αλγορίθμων, με τον RadioGatún να είναι πιο απλοϊκός από τον διάδοχό του, αλλά με τις βασικές αρχές που οδήγησαν σε αυτόν ιδιαιτέρως εμφανείς. Μπορεί κανείς να πει ότι ο Keccak είναι σίγουρα ένας πολύ πιο «ωριμασμένος» αλγόριθμος. Τέλος, ο RadioGatún μπορεί να χρησιμοποιηθεί με δύο τρόπους, ή ως hash function ή ως stream cipher, ενώ ο Keccak χρησιμοποιείται κυρίως ως μία CNF. Αξίζει να αναφερθεί ότι ο RadioGatún αποτελούσε αλγόριθμο με ιδιαιτέρως υψηλές ταχύτητες στην υλοποίηση του σε υλικό, χαρακτηριστικό το οποίο κληροδότησε στον Keccak και είναι από τα πλεονεκτήματα του, τα οποία του χάρισαν τον τίτλο SHA Μορφή των δεδομένων εισόδου - State Πριν γίνει αναφορά στους μετασχηματισμούς που εκτελεί ο αλγόριθμος πάνω στα δεδομένα εισόδου, κρίνεται αναγκαίο να παρουσιάσουμε το πώς είναι οργανωμένα τα δεδομένα κατά την διαδικασία επεξεργασίας τους από τον αλγόριθμο. Υπάρχουν διάφορες παραλλαγές του αλγορίθμου ανάλογα με το μέγεθος της εισόδου και τον αριθμό επεξεργασίας των δεδομένων. Το μέγεθος των δεδομένων ονομάζεται width of permutation και το σύνολο των μετασχηματισμών που εκτελούνται σε κάθε επανάληψη ονομάζεται round. Το πλάτος του συμβολίζεται με το γράμμα b,και ο αριθμός των γύρων με το σύμβολο nr. Η παραλλαγή του Keccakανάλογα με τον αριθμό των γύρων και το πλάτος των δεδομένων - συμβολίζεται ως Keccak-p[b,nr]. Οι δυνατές παραλλαγές του αλγορίθμου είναι αυτές για κάθε b {25, 50, 100, 200, 400, 800, 1600} και για κάθε θετικό nr [15]. Ένας γύρος του Keccak-p, αποτελείται από μια ακολουθία πέντε βημάτωνμετασχηματισμών που ονομάζονται step mappings. Τα δεδομένα εισόδου είναι οργανωμένα σε κατάλληλη δομή η οποία ονομάζεται state. Το state είναι ένας πίνακας τριών διαστάσεων ο οποίος συμβολίζεται ως a[5[5][w] με w=2l και l {0, 1, 26

37 Κεφάλαιο 2 : Keccak Algorithm-SHA3 2, 3, 4, 5, 6}. Στην παρούσα διπλωματική εργασία, όλες οι υλοποιήσεις αφορούν την περίπτωση όπου l=6 και άρα το μέγεθος των δεδομένων εισόδου είναι 1600 bits. Η αντιστοίχηση των bits εισόδου στην κατάλληλη θέση του τρισδιάστατου πίνακα, βασίζεται στην παρακάτω σχέση: s[(5 y + x) + z] = a[x][y][z] ( 1 ) Οποιαδήποτε σχέση αφορά τις συντεταγμένες x και y, πρέπει να γίνει modulo 5 και οποιαδήποτε σχέση αφορά το z πρέπει να γίνει modulo w(στην συγκεκριμένη περίπτωση w=64) προκειμένου να μείνουμε εντός επιτρεπτών ορίων. Το y αναφέρεται στα rows του πίνακα, το x στα columns και το z στα lanes. Ακολουθούν οι μετασχηματισμοί οι οποίοι συνιστούν ένα round του αλγορίθμου: R = ι χ π ρ θ ( 2 ) 4 θ: α[x][y][z] = a[x][y][z] + y =0 a[x 1][y ][z] + y =0 a[x + 1][y ][z 1] ( 3 ) ρ: a[x][y][z] = a[x][y] [z (t+1)(t+2 ) t 0 1 ] with t 0 t < 24 and ( ) ( 1 0 ) = (x y ) ( 4 ) π: a[x][y] = a[x ][y ] with ( x y ) = ( ) (x y ) ( 5 ) χ: a[x] = a[x] + (a[x + 1] + 1)a[x + 2] ( 6 ) 4 ι: a = a + RC[i r ] ( 7 ) Χωρίς την παρουσία του μετασχηματισμού i, όλοι οι γύροι είναι πανομοιότυποι. Με την προσθήκη του τελευταίου γύρου όμως, γίνεται χρήση των σταθερών RC[ir] οι οποίες διαφοροποιούν τους γύρους μεταξύ τους. Ο αριθμός των γύρων καθορίζεται από το «πλάτος» των δεδομένων εισόδου του αλγόριθμου: n r = l ( 8 ) 27

38 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού Τα μονοδιάστατα στοιχεία του state είναι: Μια γραμμή (row) η οποία είναι ένα σύνολο 5 bits με σταθερές τις y και z συντεταγμένες. Μια στήλη (column) η οποία είναι ένα σύνολο 5 bits με σταθερές τις x και z συντεταγμένες Ένα lane (δεν είναι δόκιμη κάποια ελληνική απόδοση του όρου) το οποίο είναι ένα σύνολο w bits με σταθερές τις x και y συντεταγμένες. Τα δυσδιάστατα στοιχεία του state είναι: Ένα sheet, το οποίο είναι ένα σύνολο 5w bits με σταθερή την x συντεταγμένη. Ένα plane, το οποίο είναι ένα σύνολο 5w bits με σταθερή την y συντεταγμένη. Ένα slice, το οποίο είναι ένα σύνολο 25 bits με σταθερή την z συντεταγμένη. Σχήμα 10: Δομή οργάνωσης των δεδομένων(state) 28

39 Κεφάλαιο 2 : Keccak Algorithm-SHA3 Σχήμα 11: Τα δομικά στοιχεία του state 29

40 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού 2.3. Sponge Function και Padding Οι συναρτήσεις τύπου sponge (σφουγγάρι) [17] είναι μια οικογένεια συναρτήσεων με τυχαίο μέγεθος εξόδου. Η κατασκευής τους απαιτεί τρία βασικά δομικά στοιχεία: Μια συνάρτηση f η οποία ενεργεί πάνω σε δεδομένα καθορισμένου μήκους. Μια παράμετρο r η οποία ονομάζεται ρυθμός. Ενα padding κανόνα. Η συνάρτηση η οποία κατασκευάζεται από αυτά τα δομικά στοιχεία, συμβολίζεται ως SPONGE[f, pad, r], και ονομάζεται sponge συνάρτηση. Η αναλογία με ένα σφουγγάρι βασίζεται στο γεγονός ότι η συνάρτηση απορροφά έναν τυχαίο αριθμό bits εισόδου μέσα στο state και στο τέλος αποβάλει» έναν τυχαίο αριθμό bits εξόδου από το state. Η συνάρτηση f αντιστοιχεί strings ενός καθορισμένου μεγέθους, που δηλώνεται με b, σε άλλα strings του ίδιου μεγέθους.. Ο ρυθμός r είναι ένας θετικός ακέραιος αριθμός ο οποίος είναι αυστηρά μικρότερος από το πλάτος b. Η χωρητικότητα (capacity), η οποία δηλώνεται με το γράμμα c, είναι ένας θετικός ακέραιος που προκύπτει από την διαφορά b r. Επομένως, r + c = b. Ο padding κανόνας, pad, είναι μια συνάρτηση η οποία παράγει ένα string καθορισμένου μεγέθους. Μέσα στην sponge function, το padding εφαρμόζεται στο μήνυμα για να είναι σίγουρο ότι μπορεί να χωριστεί σε τμήματα των r-bit strings. Γενικά, δοθέντος ενός ακεραίου θετικού αριθμού x και ενός μη αρνητικού ακεραίου m, η έξοδος pad(x, m) είναι ένα string με την ιδιότητα το m + len(pad(x,r)). 30

41 Κεφάλαιο 2 : Keccak Algorithm-SHA3 Σχήμα 12: Sponge Function Η γενική μορφή του αλγορίθμου μιας sponge συνάρτησης είναι η παρακάτω: SPONGE[f, pad, r](m, d) Input: string M,nonnegative integer d. Output: string Z such that len(z)=d. Steps: 1. Let P=M pad(r, len(m)). 2. Let n=len(p)/r. 3. Let c=b r. 4. Let P0,, Pn-1 be the unique sequence of strings of length r such that P = P0 Pn Let S=0b. 6. For i from 0 to n 1, let S=f (S (Pi 0c)). 7. Let Z be the empty string. 8. Let Z=Z Truncr (S). 9. If d Z, then return Truncd (Z); else continue. 10. Let S=f(S), and continue with Step 8. 31

42 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού Απορρόφηση Εισόδου: Αρχικοποίηση του state memory στην τιμή μηδέν, δηλαδή δημιουργία μιας ακολουθίας μηδενικών, μεγέθους 1600 bits. Padding στην είσοδό, αν αυτό χρειάζεται. Χρησιμοποιώντας τα πρώτα r-bits της εισόδου, πραγματοποιείται XOR με το bitrate του state. Το καινούργιο state που θα προκύψει, από το αποτέλεσμα του XOR και το capacity που δεν επηρεάστηκε, τίθεται ως είσοδο στην function του αλγορίθμου. Το αποτέλεσμα της function θα είναι το καινούργιο state. Με τα επόμενα r-bits της εισόδου γίνεται XOR με το bitrate του state. Η διαδικασία συνεχίζεται μέχρι να απορροφηθεί ολόκληρη η είσοδος. Τότε η διαδικασία της «απορρόφησης» έχει τελειώσει. Δημιουργία Εξόδου: Καθώς υπάρχει το τελικό state από την προηγούμενη φάση, το bitrate αυτού είναι τα bits της εξόδου. Αν υπάρχει ανάγκη και για άλλα bits για έξοδο, τότε το state περνά ως είσοδο στην function. Από το καινούργιο state, το bitrate είναι τα επιθυμητά επιπλέον bits που προστίθενται στα προηγούμενα bits της εξόδου. Τα βήματα 2 και 3 επαναλαμβάνονται όσες φορές χρειάζεται για να αποκτηθεί ο αριθμός bits της εξόδου που επιθυμεί ο χρήστης. Από τον τρόπο λειτουργία τους, λοιπόν, μπορούν να γίνουν οι εξής παρατηρήσεις: Η έξοδος είναι ανεξάρτητη της εισόδου, δηλαδή το μέγεθος της εισόδου δεν επηρεάζει το μέγεθος της εξόδου και αντίστροφα. Συνήθως αυτά είναι συγκεκριμένα μεγέθη, με την είσοδο να είναι διπλάσια ή τριπλάσια της εξόδου. Ακόμη, το capacity του state, δεν επηρεάζεται ευθέως από την είσοδο, παρά μόνο από την function που πραγματοποιείται με βάση το state. Αυτό το χαρακτηριστικό 32

43 Κεφάλαιο 2 : Keccak Algorithm-SHA3 προσδίδει ανθεκτικότητα απέναντι στα collision ή preimage attacks, ιδιαίτερα αν είναι μεγάλο σε μέγεθος. Όσο μεγαλύτερο το capacity, τόσο μεγαλύτερη η ανθεκτικότητα. Ο Keccak δομήθηκε σαν ένα sponge function, και η εξωτερική λειτουργία του ακολουθεί ακριβώς αυτή τη λογική. Η μόνη διαφορά του από της υπόλοιπες sponge functions είναι, πέρα από τα χαρακτηριστικά μεγέθη του, αυτό που κάνει την καθεμία ξεχωριστή, η λειτουργία της function. Στο σημείο αυτό, παραθέτουμε τον συνηθέστερο κανόνα padding που χρησιμοποιείται στον αλγόριθμο Keccak: Algorithm : pad10*1(x, m) Input: positive integer x; non-negative integer m. Output: string Z such that m + len(z) is a positive multiple of x. Steps: 1. Let j = ( m 2) mod x. 2. Return 1 0j 1. Ο αστερίσκος στο pad10*1 δηλώνει ότι το 0 είτε παραλείπεται είτε επαναλαμβάνεται όταν είναι απαραίτητο προκειμένου το string εξόδου να έχει το επιθυμητό μέγεθος Εσωτερικοί μετασχηματισμοί - Step Mapping Ένας γύρος αποτελείται από μια ακολουθία συγκεκριμένων μετασχηματισμών, κάθε ένας από τους οποίους είναι επιφορτισμένος με συγκεκριμένη λειτουργία. Μετασχηματισμός x Ο αλγόριθμος ο οποίος εκτελεί το βήμα x παρουσιάζεται παρακάτω: 33

44 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού Ο μετασχηματισμός x είναι ο μοναδικός μη-γραμμικός μετασχηματισμός του αλγορίθμου Keccak. Χωρίς αυτόν, ο αλγόριθμος θα ήταν γραμμικός. Μπορεί να θεωρηθεί σαν μια παράλληλη εφαρμογή 5w S-boxes που ενεργούν πάνω σε 5-bits γραμμές. Μη-γραμμικότητα είναι η δυνατότητα του αλγορίθμου να παράγει τέτοια έξοδο, ώστε αυτή να μην μπορεί να υπολογιστεί σαν μια γραμμική συνάρτηση των εισόδων του. Ίσως να μην είναι προφανής η έννοια της παραπάνω πρότασης, αλλά είναι πολύ πιο εύκολο να το σκεφτεί κανείς ως εξής: σε κάθε σύστημα που είναι πλήρως γραμμικό, μπορεί εύκολα να περιγραφεί μια σχέση μεταξύ εισόδου εξόδου, άρα με γνώση της μιας να μπορεί κανείς εύκολα να υπολογίσει και την άλλη. Στην περίπτωσή αυτήν, αυτό είναι μη επιθυμητό, μάλιστα καταρρίπτει όλη την έννοια της κρυπτογραφίας, Ο μετασχηματισμός x είναι αντιστρέψιμος αλλά ο αντίστροφος του έχει διαφορετική φύση. Για παράδειγμα δεν έχει αλγεβρικό βαθμό ίσο με 2. Ο μετασχηματισμός, είναι απλά το συμπλήρωμα μιας μη-γραμμικής συνάρτησης γ, η οποία χρησιμοποιείται στο RadionGatun, Panama και σε άλλους κρυπτογραφικούς μηχανισμούς. Έχει επιλεγεί για τις απλές μη-γραμμικές ιδιότητες μετάδοσης, για την απλή αλγεβρική του έκφραση και για τον μικρό αριθμό πυλών: μια XOR, μια NOT και μια AND για κάθε bit του state. 34

45 Κεφάλαιο 2 : Keccak Algorithm-SHA3 Σχήμα 13: Μετασχηματισμός x Ουσιαστικά ο συγκεκριμένος μετασχηματισμός εκτελεί την πράξη η οποία φαίνεται την εξίσωση (6). Η πράξη αυτή εκτελείται σε κάθε bit του state. Μετασχηματισμός θ Ο αλγόριθμος ο οποίος εκτελείται για το συγκεκριμένο βήμα δίνεται παρακάτω: 35

46 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού Ο μετασχηματισμός θ είναι γραμμικός και στοχεύει στην διάχυση και είναι αμετάβλητος περιστροφής προς όλες τις κατευθύνσεις. Το αποτέλεσμα του μπορεί να περιγραφεί ως εξής: Προσθέτει σε κάνε bit a[x][y][z] το bitwise άθροισμα των parities δύο στηλών: αυτό της a[x 1][ ][z] και αυτό της a[x + 1][ ][z 1]. Χωρίς τον θ, ο κάθε γύρος του Keccak- f θα εκτελούνταν χωρίς να προσφέρει σημαντική διάχυση. Διάχυση είναι η ικανότητα του αλγορίθμου κρυπτογραφήσεως να επηρεάζει όσο το δυνατόν μεγαλύτερο τμήμα του κρυπτοκειμένου από ένα τμήμα του απλού κειμένου. Ένας αλγόριθμος έχει υψηλή διάχυση, όταν ένα στοιχειώδες τμήμα του απλού κειμένου, ανεξαρτήτως της θέσεως του, επηρεάζει όλο το κρυπτοκείμενο. Ο μετασχηματισμός θ έχει αριθμό διακλάδωσης 4,αλλά προσφέρει υψηλή διάχυση κατά μέσο όρο. Ο λόγος για τον οποίο χρησιμοποιείται ο εν λόγω μετασχηματισμός είναι η υψηλή διάχυση και ο χαμηλός αριθμός πυλών που απαιτούνται:2 XORs ανά bit. Χάρη στην αλληλεπίδραση που παρέχει ο μετασχηματισμός κάθε bit στην είσοδο επηρεάζει 31 bits στην έξοδο και κάθε bit στην έξοδο ενός γύρου, εξαρτάται από 31 bits της εισόδου. Ουσιαστικά, ο μετασχηματισμός εκτελεί την πράξη που ορίζεται από την εξίσωση (3) όπως αυτή παρουσιάστηκε στην αρχή του κεφαλαίου. 36

47 Κεφάλαιο 2 : Keccak Algorithm-SHA3 Σχήμα 14: Μετασχηματισμός θ Μετασχηματισμός π Ο αλγόριθμος ο οποίος εκτελεί το συγκεκριμένο βήμα είναι ο παρακάτω : 37

48 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού την εξίσωση (4). Η σχέση που εκτελεί ο συγκεκριμένος μετασχηματισμός, έχει ήδη δοθεί από Σχήμα 15: Μετασχηματισμός π Ο μετασχηματισμός π είναι μια αντιμετάθεση των lanes η οποία παρέχει διασπορά, η οποία αποσκοπεί σε μακροπρόθεσμη διάχυση.χωρίς αυτήν, ο Keccak- f θα παρουσιάζει περιοδικά ίχνη χαμηλού βάρους. Ο μετασχηματισμός π λειτουργεί με έναν γραμμικό τρόπο στις συντεταγμένες (x,y): Tο lane της θέσης (x, y) μετατίθεται στην θέση (x, y )M T, με τον πίνακα Μ να είναι ίσος με Μ = ( ). Από τα παραπάνω, γίνεται αντιληπτό ότι το lane το οποίο βρίσκεται στο (0, 0) δεν αλλάζει θέση. Καθώς ο π, ενεργεί στα slices ανεξάρτητα, δεν μεταβάλλεται στην z- κατεύθυνση. Ο αντίστροφος του Μ συμβολίζεται ως M 1. Μέσα σε ένα slice, μπορούμε να δηλώσουμε 6 άξονες, με κάθε άξονα να δηλώνει μια κατεύθυνση η οποία διαχωρίζει τις 25 θέσεις ενός slice σε 5 σύνολα: x άξονας: rows or planes; 38

49 Κεφάλαιο 2 : Keccak Algorithm-SHA3 y άξονας: columns or sheets; y = x άξονας: αύξουσα κλίση ίση με 1; y = x άξονας: φθίνουσα κλίση ίση με 1; y = 2x άξονας: αύξουσα κλίση ίση με 2; y = 2x άξονας: φθίνουσα κλίση ίση με 2; Η υλοποίηση του π σε hardware δεν απαιτεί πύλες αλλά είναι το αποτέλεσμα wiring. Μετασχηματισμός ρ Ο αλγόριθμος του μετασχηματισμού είναι ο εξής: Η λειτουργία πραγματοποιείται με βάση την εξίσωση (5) Δηλαδή, για κάθε lane, πραγματοποιείται ένα shift των bits, ανάλογα με μια σταθερά που καθορίζει πόσα bits θα γίνουν shift. Η λειτουργία αυτήν φαίνεται παρακάτω εικόνα. 39

50 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού Σχήμα 16: Μετασχηματισμός ρ παρακάτω: Ο πίνακας ο οποίος καθορίζει τον αριθμό θέσεων ολίσθησης κάθε lane δίνεται Πίνακας 1 : Σταθερές μετασχηματισμού rho Ο μετασχηματισμός ρ αποτελείται από περιστροφές εντός των lanes και στοχεύει στο να παρέχει inter-slice διασπορά. Χωρίς αυτόν, η διάχυση μεταξύ των slices θα ήταν πολύ αργή. Οι 25 σταθερές περιστροφής είναι οι τιμές που καθορίζονται από την σχέση i(i +1)/2 modulo με το μήκος του lane. Μπορεί να αποδειχθεί ότι για κάθε l, η ακολουθία i(i + 1)/2 mod 2l έχει περίοδο 2l+1 και κάθε υποακολουθία με n2l i < (n + 1)2l παίρνει όλες τις τιμές του Z 2l. Από τα παραπάνω προκύπτει ότι για μήκος lane ίσο με 64 και 32, όλες οι σταθερές περιστροφής είναι διαφορετικές. Για μήκος lane ίσο με 16, 9 σταθερές εμφανίζονται 2 φορές και 7 μια 40

51 Κεφάλαιο 2 : Keccak Algorithm-SHA3 φορά. Για μήκος lane ίσο με 8,4 και 2,όλες οι σταθερές εμφανίζονται το ίδιο συχνά εκτός από την σταθερά περιστροφής 0 η οποία εμφανίζεται μια παραπάνω φορά. Μετασχηματισμός i Ο μετασχηματισμός i αποτελείται από την προσθήκη των σταθερών κάθε γύρου και έχει σκοπό να ακυρώσει την συμμετρία που υπάρχει σε κάθε γύρο. Χωρίς αυτό το βήμα, όλοι οι γύροι του Keccak- f θα ήταν ίσοι καθιστώντας τον αλγόριθμο ευάλωτο σε επιθέσεις οι οποίες θα προσπαθούσαν να εκμεταλλευτούν την συμμετρία. Ο αριθμός των ενεργών θέσεων bit των σταθερών, δηλαδή ο αριθμός των θέσεων όπου το bit διαφέρει από το 0,είναι l + 1. Καθώς το l αυξάνεται, οι σταθερές «χαλάνε» ακόμα πιο πολύ την συμμετρία. Οι σταθερές προστίθενται μόνο σε ένα lane του state. Στο hardware, το υπολογιστικό κόστος του i είναι μόνο μερικές XORs. Ακολουθεί ο πίνακας των σταθερών: Πίνακας 2: Πίνακας σταθερών μετασχηματισμού iota 41

52 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού σχέση (7). Η λειτουργία που εκτελεί το συγκεκριμένο βήμα του αλγορίθμου δίνεται από την 42

53 Κεφάλαιο 3 :Αρχιτεκτονικές SHA-3 Κεφάλαιο 3 Αρχιτεκτονικές SHA Εισαγωγή Στο παρών κεφάλαιο παρουσιάζονται οι διάφορες αρχιτεκτονικές του αλγόριθμου SHA-3, οι οποίες υλοποιήθηκαν στα πλαίσια της διπλωματικής εργασίας. Βασικό κριτήριο για την επιλογή και ανάπτυξη των συγκεκριμένων αρχιτεκτονικών ήταν η επίτευξη όσο το δυνατόν υψηλότερης ρυθμοαπόδοσης ή αλλιώς throughput. Παρόλα αυτά πρέπει να αναφερθεί το γεγονός ότι αν και βασικός στόχος ήταν το μέγιστο throughput, δεν παραβλέψαμε άλλες μεταβλητές μια «καλής σχεδίασης» όπως είναι το area που καταλαμβάνεται σε ένα device ή το power consuption Βασικές Αρχές Υλοποίησης Για την επίτευξη των στόχων και την ανάπτυξη των διαφόρων αρχιτεκτονικών, στηριχθήκαμε σε βασικές αρχές που ακολουθούνται σε μια μεγάλη μερίδα σχεδιάσεων. Πιο συγκεκριμένα, η «διάκριση» των βασικών βημάτων της συνάρτησης κατακερματισμού όπως αυτά παρουσιάστηκαν και αναπτύχθηκαν από τους ίδιους τους δημιουργούς, δίνει μια ξεκάθαρη εικόνα για τα περισσότερα components πάνω στα οποία βασίστηκε η bottom-up σχεδίαση μας. Τα βασικά αυτά βήματα του αλγόριθμου (θ,π,ρ,χ και i steps) υλοποιούνται μέσα στο component το οποίο ονομάζεται Keccak-Core. Πάνω από αυτό το επίπεδο υπάρχει το component mykeccak το οποίο είναι υπεύθυνο για τον συγχρονισμό των διαφόρων διεργασιών, συγχρονισμός που είναι απαραίτητος ειδικά στις αρχιτεκτονικές με pipeline. Τα παραπάνω θα αναλυθούν στο επόμενο υποκεφάλαιο. 43

54 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού 3.3. Παρουσίαση και ανάλυση αρχιτεκτονικών Βασική αρχιτεκτονική Προκειμένου να γίνει μια σύγκριση των αποτελεσμάτων μεταξύ των διαφόρων αρχιτεκτονικών, είναι απαραίτητη η ανάπτυξη μιας βασικής αρχιτεκτονικής η οποία στηρίζεται αποκλειστικά στην θεμελιώδη μορφή του αλγορίθμου, όπως αυτή παρουσιάστηκε από τους δημιουργούς του. Όπως αναφέρθηκε και στο προηγούμενο κεφάλαιο το state των δεδομένων μπορεί να έχει διάφορα μεγέθη. Όλες οι αρχιτεκτονικές οι οποίες παρουσιάζονται στην συγκεκριμένη διπλωματική εργασία κάνουν χρήση μεγέθους 1600 bits που είναι και το μεγαλύτερο δυνατό μέγεθος. Η βασική αρχιτεκτονική του Keccak Algorithm, παρουσιάζεται στην παρακάτω εικόνα. Παρουσίαζουμε ακόμα, την FSM της βασικής αρχιτεκτονικής σαν μια Melay State Machine. Στο σημείο αυτό, πρέπει να αναφέρουμε ότι επειδή ο counter υλοποιήθηκε με μία απλή μεταβλητή αλλά για να φτιάξουμε την FSM χρειαζόμαστε Melay σήματα, τροποποιήσαμε τον κώδικα και υλοποιήσαμε τον counter σαν ένα ξεχωριστό component το οποίο εκτός από την τιμή του γύρου, δίνει και ένα σήμε full_counter το οποίο υποδεικνύει ότι μετρήσει μέχρι την μέγιστη τιμή του. Το σήμα αυτό (ισοδύναμο με την συνθήκη counter=23) παίζει καθοριστικό ρόλο για την αλλαγή κατάστασης. 44

55 Round in Output register Κεφάλαιο 3 :Αρχιτεκτονικές SHA bits 1600 bits MUX 2X bits Keccak-Core 1600 bits sel 64 bits Counter 5 bits Constant Generator Σχήμα 17 : Βασική αρχιτεκτονική Το Keccak-Core φαίνεται στην παρακάτω εικόνα 1600 bits Theta-step Pi-step Rho-step Chi-step Iota-step bits bits bits bits 1600 bits Σχήμα 18: Keccak-Core 45

56 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού RESET=0/ OUTPUT=0 RESET=0 AND In_index(last_block)= 0 and full_counter=0/ Output=0 EXE RESET=0 AND In_index(last_block)=0 and full_counter=1/ Output=1 RESET=0 AND in_index(last_block)= 1 and full_counter=1/ Output=1 RESET=0/Output=0 START RESET=1/ OUTPUT=0 RESET=1/OUTPUT=0 STOP RESET=1/Output=0 Σχήμα 19 : Finite State machine τύπου Melay, για την βασική αρχιτεκτονική Η λειτουργία του έχει ως εξής: 1. Αρχικά, προκειμένου να φέρουμε το σύστημα στην αρχική του κατάσταση, κρίνεται απαραίτητη η χρήση ενός σήματος reset, το οποίο θα φέρει τα σήματα select καθώς και τον counter στην επιθυμητή αρχική κατάσταση τους. Μπορούμε 46

57 Κεφάλαιο 3 :Αρχιτεκτονικές SHA-3 φυσικά να έχουμε ορίσει αρχικές καταστάσεις στα σήματα καθώς και στο state αλλά το σήμα reset εκφράζει την γενικότερη περίπτωση όπου επιθυμούμε να φέρουμε το σύστημα στην αρχική του κατάσταση. 2. Ο πίνακας state περνάει από τον πολυπλέκτη της εισόδου ο οποίος παίρνει δύο εισόδους των 1600 bits και προωθεί την κατάλληλη τιμή στην έξοδο. 3. Εκτός από την πρώτη φορά που το σήμα sel έχει τιμή 0 προκειμένου να διαβάσει τα δεδομένα εισόδου, παραμένει σταθερό και ίσο με 1 για κάθε έναν από τους υπόλοιπους 23 γύρους επεξεργασίας που θα ακολουθήσουν. Όταν τελειώσει η επεξεργασία της τρέχουσας τιμής δεδομένων το σήμα sel θα γίνει 0 προκειμένου να διαβάσει από τον καταχωρητή εισόδου τα νέα δεδομένα προς επεξεργασία. 4. Σε κάθε γύρο επεξεργασίας, τα δεδομένα περνάνε μέσα από το component Keccak_Core το οποίο υλοποιεί τον πυρήνα του αλγόριθμου κατακερματισμού. Έτσι, εκτελούνται διαδοχικά τα 5 βήματα όπως ορίζονται από τους δημιουργούς του Keccak.Είναι βασικό τα 5 αυτά βήματα να εκτελεστούν με την σειρά με την οποία δίνονται στο reference άρθρο προκειμένου να εξασφαλίσουμε την ασφάλεια της συνάρτησης κατακερματισμού. 5. Τα δεδομένα του state, μετά την επεξεργασία τους, δηλαδή μετά το πέρας της εκτέλεσης των 5 βημάτων, αποθηκεύονται σε έναν register, ο οποίος βρίσκεται αμέσως μετά το Keccak-Core. 6. Αυτό που κάνει μοναδικό κάθε γύρο επεξεργασίας, είναι η σταθερά 64 bits η οποία χρησιμοποιείται στο τελευταίο βήμα του αλγόριθμου δηλαδή το βήμα i. Ένας counter, ο οποίος μετράει τους κύκλους της διαδικασίας, δίνει ως είσοδο σε μια γεννήτρια σταθερών την τιμή του γύρου στον οποίο βρισκόμαστε και η γεννήτρια παράγει την κατάλληλη σταθερά. 7. Τα δεδομένα του register αποτελούν ουσιαστικά την δεύτερη είσοδο του πολυπλέκτη που βρίσκεται στην είσοδο της αρχιτεκτονικής και επιλέγονται όταν sel=1 δηλαδή για τους 23 από τους 24 γύρους. 8. Όταν έρθει το επόμενο σήμα ρολογιού, ξεκινάει η εκτέλεση του δεύτερου γύρου. Ακολουθείται η διαδικασία που περιγράφεται στα παραπάνω βήματα προκειμένου να παραχθούν τα νέα δεδομένα του καταχωρητή εξόδου. 47

58 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού 9. Η διαδικασία συνεχίζεται μέχρι να ολοκληρωθεί και ο 24 ος γύρος. Όταν ολοκληρωθεί ο τελευταίος γύρος, τα δεδομένα του καταχωρητή αποτελούν την τελική τιμή από την οποία - ανάλογα το μέγεθος που θέλουμε να έχει η έξοδος καθορίζεται η hash value. Όλα τα συστατικά μέλη του αλγόριθμου, υλοποιήθηκαν με συνδυαστικά κυκλώματα. Θα γίνει αναλυτική παρουσίαση για κάθε ένα από αυτά τα επιμέρους κομμάτια καθώς και για το πώς αυτά αναπτύχθηκαν Το πιο βασικό component της αρχιτεκτονικής, είναι φυσικά το Keccak_Core μέσα στο οποίο εκτελούνται οι 5 μετασχηματισμοί. Και οι 5 αυτοί μετασχηματισμοί, υλοποιούνται και εκτελούνται διαδοχικά, όπως υποδεικνύεται στο reference έγγραφο του αλγόριθμου. Πιο συγκεκριμένα υλοποιούνται τα παρακάτω: 1. Theta-Θ: Ο συγκεκριμένος μετασχηματισμός theta πραγματοποιείται με στοιχειώδη τρόπο. Για την ακρίβεια, δέχεται ως είσοδο δεδομένα 1600 bits με την μορφή state πίνακα και παράγει αντίστοιχη έξοδο. Βασικό συστατικό του, είναι οι πύλες XOR που εκτελούν τις επιμέρους πράξεις. Ο τρόπος με τον οποίο εκτελούνται οι πράξεις έχει ήδη παρουσιαστεί στο δεύτερο κεφάλαιο όπου έγινε η περιγραφή του αλγόριθμου. Συνεπώς για κάθε XOR πράξη που πρέπει να πραγματοποιηθεί, υπάρχει και η αντίστοιχη XOR πύλη στο κύκλωμα. 2. Rho-ρ: Ο μετασχηματισμός rho πραγματοποιείται με μία απλή διασύνδεση των εισόδων στις κατάλληλες εξόδους όπως περιγράφεται στον αλγόριθμο. Δεν κάνει χρήση κάποιας πύλης. 3. Pi-π: Ο μετασχηματισμός pi, όπως και ο rho, πραγματοποιείται πάλι με διασύνδεση των εισόδων στις κατάλληλες εξόδους. Προφανώς, δεν γίνεται χρήση καμίας πύλης αφού δεν απαιτείται εκτέλεση κάποιας πράξης στον εν λόγω κομμάτι του μετασχηματισμού. 4. Chi-x: Ο μετασχηματισμός chi υλοποιείται με πολύ βασικό τρόπο. Δηλαδή, οι λογικές πράξεις που πρέπει να πραγματοποιηθούν, μέσω των διαφόρων πυλών AND, NOT και XOR, υλοποιούνται με τα απαραίτητα κυκλώματα για το κάθε bit. Να σημειώσουμε ότι πρόκειται για τον μοναδικό μη-γραμμικό μετασχηματισμό της συνάρτησης. 48

59 Κεφάλαιο 3 :Αρχιτεκτονικές SHA-3 5. Iota-i: Ο μετασχηματισμός iota κάνει χρήση 64 πυλών XOR προκειμένου να χρησιμοποιήσει την σταθερά του γύρου με το κατάλληλο lane το οποίο βρίσκεται στην θέση του πίνακα με συντεταγμένες (0,0). Ο υπόλοιπος πίνακας παραμένει αναλλοίωτος και απλά περνάει στην έξοδο του μετασχηματισμού. Και οι πέντε μετασχηματισμό δέχονται δεδομένα τύπου state 1600 bits και το αποτέλεσμα τους είναι πάλι δεδομένα ίδιου τύπου. Παρουσιάσαμε λεπτομερώς τον πυλώνα της βασικής αρχιτεκτονικής. Σειρά έχουν τα θεμελιώδη στοιχεία όπως είναι ο counter, η γεννήτρια σταθερών, ο πολυπλέκτης και οι καταχωρητές. 1. Constant Generator - mygen: Πρόκειται για μία γεννήτρια των σταθερών που χρειάζεται ο αλγόριθμος σε κάθε γύρο εκτέλεσης του. Οι σταθερές έχουν μέγεθος 64 bits και έχουν τις τιμές που περιγράφονται στο κεφάλαιο 2. Η γεννήτρια, δέχεται σαν είσοδό της την τιμή του counter, με βάση την οποία κατανοεί σε ποιο round βρίσκεται ο αλγόριθμος και συνεπώς επιλέγει την κατάλληλη σταθερά. Η έξοδος της γεννήτριας λοιπόν μπαίνει σαν είσοδος στο Keccak_Core και χρησιμοποιείται αποκλειστικά στον I μετασχηματισμό. 2. Counter: Επειδή η διαδικασία που έχει να εκτελέσει ο μετρητής είναι πολύ απλή, δεν υλοποιείται σαν ένα ξεχωριστό component αλλά γίνεται χρήση μιας μεταβλητής η οποία αυξάνει κατάλληλα σε κάθε γύρο. Στην αρχή, μετά την εκτέλεση ενός reset, ο counter παίρνει αρχική τιμή 0. Με το κάθε κύκλο ρολογιού, η μεταβλητή αυξάνεται κατά ένα προκειμένου να δείχνει σε ποιο γύρο βρισκόμαστε. Όταν φτάσει την τιμή 24, μηδενίζεται και οι τιμές ξεκινάνε από την αρχή. Οι τιμές που μπορεί να πάρει είναι από 0 έως 23 και αποτελείται από 5 bits. 3. MUX 2x1: Πρόκειται για έναν πολυπλέκτη με 2 εισόδους τύπου state των 1600 bits. Η επιλογή της εξόδου του, γίνεται με βάση το σήμα sel, το οποίο λειτουργεί ως το σήμα selection. Η τιμή του sel καθορίζεται με βάση την τιμή του counter. 4. Register: Πρόκειται για έναν πολύ απλό καταχωρητή. Τόσο η είσοδος όσο και έξοδος είναι τύπου state 1600 bits. Με κάθε σήμα reset ο καταχωρητής αρχικοποιείται στην μηδενική κατάσταση. Με κάθε παλμό clock, βγάζει τα δεδομένα του στην έξοδο. 49

60 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού Η ολοκληρωμένη λειτουργία της αρχιτεκτονικής, είναι η παρακάτω: 1. Αρχικά, φέρνουμε το σύστημα στην αρχική του κατάσταση μέσω ενός σήματος reset, με αποτέλεσμα οι καταχωρητές, ο counter και το σήμα sel να αποκτούν μια αρχική κατάσταση. 2. Στην συνέχεια, εισάγουμε τα πρώτα δεδομένα εισόδου. Τα δεδομένα, θεωρούμε ότι είναι αποθηκευμένα σε ένα καταχωρητή και διαβάζονται από εκεί. Στην πραγματικότητα όμως πρέπει να διαβαστούν από κάποια μνήμη ή να δοθούν σταδιακά στο σύστημα. Τα devices δεν υποστηρίζουν 1600 pins εισόδου επομένως τμηματικά πρέπει να εισέλθουν στον αλγόριθμο σε blocks. Επιπρόσθετα πρέπει να υπάρχει η διαδικασία που κάνει XOR τα πρώτα 1024 bits των δεδομένων με το state (διαδικασία απορρόφησης). Αυτό όμως δεν περιλαμβάνεται στην συγκεκριμένη αρχιτεκτονική. Ο λόγος είναι απλός: η σύγκριση με τις υπόλοιπες αρχιτεκτονικές που χρησιμοποιούν pipeline stages οι οποίες παρουσιάζονται στην συνέχεια. Σε αυτές τις αρχιτεκτονικές δεν είναι δυνατό το μήνυμα να είναι παραπάνω από ένα block των 1600 bits αλλιώς δεν είναι δυνατό να γίνει pipeline. Αυτό συμβαίνει γιατί εάν το μήνυμα είναι μεγαλύτερο από 1600 bits, τότε το αποτέλεσμα επεξεργασίας των πρώτων 1600 bits πρέπει να περάσει από μια XOR και να συνεχιστεί η διαδικασία με τους επόμενους 24 γύρους. Επομένως δεν είναι δυνατό να βγάζουμε έξοδο κάθε 12, 8 ή 6 κύκλους όπως συμβαίνει με τις αρχιτεκτονικές pipeline που παρουσιάζονται στην συνέχεια. Αφού λοιπόν το μήνυμα αποτελείται από 1600 bits και η αρχική κατάσταση είναι μηδενική, δεν υπάρχει λόγος να γίνει XOR. Στην γενική περίπτωση όμως, συμπεριλαμβάνουμε και το πέρασμα από την XOR. 3. Στην έξοδο του MUX εισόδου βλέπει κανείς το αποτέλεσμα το state που θα εισέλθει προς επεξεργασία. Ταυτόχρονα, ο μετρητής παίρνει την κατάλληλη τιμή και «ετοιμάζει» την σταθερά που θα χρησιμοποιηθεί. 4. Με την άφιξη της ανιούσας παρυφής του ρολογιού, τα δεδομένα εισέρχονται προς επεξεργασία και ταυτόχρονα αυξάνεται ο counter για την παραγωγή της κατάλληλής σταθεράς. Εάν πρόκειται για τον πρώτο κύκλου ρολογιού, αλλάζει και η τιμή του σήματος επιλογής του πολυπλέκτη από 0 σε 1 προκειμένου από εδώ 50

61 Κεφάλαιο 3 :Αρχιτεκτονικές SHA-3 και πέρα να επιλέγει τα δεδομένα του καταχωρητή εξόδου που βρίσκεται μετά το Kecack_Core. 5. Τα δεδομένα εισέρχονται προς επεξεργασία και εκτελούνται οι 5 μετασχηματισμοί του πυρήνα του αλγόριθμου. 6. Κατά τον ερχομό του δεύτερου κύκλου ρολογιού, στην έξοδο βρίσκονται τα αποτελέσματα του πρώτου γύρου. Αυτά, αποτελούν την καινούργια είσοδο του Keccak-Core και εισέρχονται εκεί μέσω του πολυπλέκτη που βρίσκεται στην είσοδο. Πάλι ο μετρητής αυξάνεται κατά ένα με αποτέλεσμα να γεννιέται η καινούργια σταθερά για το i-step. 7. Η διαδικασία συνεχίζεται, κατά τον ίδιο τρόπο όπως στα παραπάνω βήματα 8. Στον τελευταίο παλμό, στην έξοδο του καταχωρητή, εμφανίζονται τα αποτελέσματα του 23 ου κύκλου. Ο counter μηδενίζεται όπως επίσης και το σήμα sel προκειμένου να είναι έτοιμο να δεχτεί τα νέα δεδομένα. Το αποτέλεσμα είναι το επιθυμητό μόνο στην περίπτωση που είναι το τελευταίο block του μηνύματος. Όπως αναφέραμε και πιο πάνω θεωρούμαι ότι έχουμε μόνο ένα block. Αλλιώς, πρέπει τα νέα δεδομένα, να γίνουν XOR με τα πρώτα 1024 bits της εξόδου και στην συνέχεια να εισέλθουν στο σύστημα σαν το νέο state όπου θα υποστούν επεξεργασία για επιπλέον 24 γύρους. Προφανώς απαιτούνται 24 κύκλοι ρολογιού προκειμένου να έχουμε τα αποτελέσματα. Η τελική τιμή hash δεν είναι ολόκληρη η state που προκύπτει από την έξοδο αλλά κάποια bits αυτής. Αν για παράδειγμα θέλουμε hash value 512 bits, τότε παίρνουμε τα πρώτα 512 bits της εξόδου, αν θέλουμε 256 τότε παίρνουμε τα πρώτα 256 κ.ο.κ. Η σχεδίαση αυτή, όπως μπορεί να φανεί και από την αναλυτική περιγραφή της, αποτελεί την απλούστερη υλοποίηση και απόδοση σε hardware των μετασχηματισμών και ενεργειών που πρέπει να υλοποιηθούν για την επιτυχημένη και σωστή λειτουργία του αλγόριθμου Keccak. Αυτή η απλότητα δίνει την δυνατότητα να κατανοήσουμε σε μεγαλύτερο βαθμό τις ενέργειες και τους μετασχηματισμούς που λαμβάνουν χώρα κατά την εκτέλεση του αλγόριθμου. Αυτή η κατανόηση θα οδηγήσει σε πιο προχωρημένες σχεδιάσεις, όπου έγινε προσπάθεια βελτίωσης του throughput. Στην συνέχεια θα 51

62 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού παρουσιάσουμε τις αρχιτεκτονικές εκείνες οι οποίες βασίστηκαν σε χρήση καταχωρητών pipeline προκειμένου να επιτύχουμε τον σκοπό μας Αρχιτεκτονικές Pipeline Μετά την παρουσίαση και ανάπτυξη της βασικής αρχιτεκτονικής, τέθηκε ως στόχος η αύξηση του throughput, μέσα από σχεδιαστικές τεχνικές. Η πρώτη τεχνική στην οποία καταφύγαμε προκειμένου να επιτύχουμε την επιθυμητή αύξηση της παραμέτρου αυτής ήταν η προσθήκη pipeline καταχωρητών. Γνωρίζουμε εξ ορισμού ότι για την αύξηση του throughput, πρέπει στο ίδιο χρονικό διάστημα να γίνεται επεξεργασία περισσότερων δεδομένων. Διαφορετικά, θα μπορούσε να οριστεί ως ο ρυθμός επεξεργασίας των δεδομένων. Στο σημείο αυτό κρίνεται αναγκαίο να αναφέρουμε ότι υπάρχουν και άλλες τεχνικές προκειμένου να αυξήσουμε το throughput Τι είναι όμως το pipeline και γιατί είναι τόσο σημαντικό για στην σχεδίαση ψηφιακών κυκλωμάτων; Ουσιαστικά, το pipeline κάνει χρήση ενός καταχωρητή με κύριο σκοπό να «μικρύνει» και να ελαττώσει το critical path όσο το δυνατόν περισσότερο. Το critical path είναι το χειρότερο μονοπάτι από άποψη καθυστέρησης. Είναι δηλαδή η μέγιστη καθυστέρηση που έχει η «λογική» που έχουμε προσθέσει στο κύκλωμα, μεταξύ δύο καταχωρητών. Η τοποθέτηση ενός pipeline καταχωρητή γίνεται όσο το δυνατόν καλύτερα με σκοπό να μειώσει το critical path. Αποτέλεσμα χρήσης του καταχωρητή είναι ότι τα τμήματα που προκύπτουν από την διαδικασία αυτή να έχουν όσο το δυνατόν μικρότερους χρόνους καθυστέρησης. Ο πυρήνας του αλγόριθμου Keccak, αποτελείται από 5 μετασχηματισμούς. Συνεπώς ευνοεί την χρήση ενός εσωτερικού καταχωρητή με σκοπό να μειώσει το critical path των μετασχηματισμών. Στην παρούσα όμως διπλωματική εργασία δεν χρησιμοποιήσαμε εσωτερικό pipeline register αλλά εξωτερικό. 52

63 Κεφάλαιο 3 :Αρχιτεκτονικές SHA-3 Είναι απαραίτητο να κατανοηθούν πλήρως ο στόχος και οι περιορισμοί που υπάρχουν, σε συνδυασμό πάντα με την συγκεκριμένη λειτουργία του Keccak αλγορίθμου. Για να επιτευχθεί η επιθυμητή αύξηση του throughput, θα πρέπει να υπάρχει επεξεργασία πολλαπλών δεδομένων παράλληλα και όχι σειριακά. Μελετώντας προσεκτικά τον αλγόριθμο γίνεται εύκολα αντιληπτό ότι υπάρχει η δυνατότητα τοποθέτησης pipeline καταχωρητή για τα στάδια κατά τα οποία γίνεται η απορρόφηση των δεδομένων εισόδου. Το παραπάνω γίνεται εύκολα αντιληπτό αν αναλογιστεί κανείς ότι τα στάδια είναι ξεχωριστά και ανεξάρτητα τμήματα επεξεργασίας. Η μοναδική σύνδεση η οποία υπάρχει είναι ότι υπάρχει loop ανάδρασης δηλαδή η έξοδος του ενός είναι είσοδος του άλλου. Άλλο ένα σημείο στο οποίο θα μπορούσε να χρησιμοποιηθεί pipeline register είναι μέσα στο Keccak-Core. Όπως ήδη αναφέραμε, ο πυρήνας του αλγόριθμου έχει τέτοια μορφή που ευνοεί την χρήση αυτής της τεχνικής. Θα μπορούσαμε για παράδειγμα να τοποθετήσουμε έναν καταχωρητή μετά το ρ-step. Αυτό θα σήμαινε ότι θα χρειαζόμασταν 2 κύκλους ρολογιού προκειμένου να ολοκληρώσουμε ένα γύρο επεξεργασίας. Υπάρχει η δυνατότητα πραγματοποίησης pipeline τεχνικής για τα στάδια κατά τα οποία γίνεται η επανάληψη των rounds στο Function. Αυτό μπορεί να γίνει κατανοητό πολύ εύκολα, αν ληφθεί υπόψη το γεγονός ότι τα στάδια είναι ανεξάρτητα μεταξύ τους, πέρα της σχέσης έξοδος προηγούμενου -> είσοδος επόμενου. Έτσι, θεωρητικά, θα ήταν δυνατόν να δημιουργηθεί υλικό για κάθε round της Function, δηλαδή pipeline 24 σταδίων. Αυτό βέβαια, είναι μη πρακτικό, καθώς θα υπήρχε κατακόρυφη αύξηση του υλικού που απαιτείται και, αν ακόμη σκεφτεί κανείς την αρχική σχεδίαση (στην οποία θα βασιστεί η καινούργια) η οποία δεν ήταν οικονομική σε υλικό εξ αρχής, εμφανίζονται απαγορευτικά όρια υλικού. Παρ όλα αυτά, μπορεί κανείς να αξιοποιήσει το παραπάνω σκεπτικό πραγματοποιώντας μερικές επαναλήψεις σε ένα τμήμα του υλικού και τις υπόλοιπες στο επόμενο και ούτω καθεξής. Μια βασική σκέψη, λοιπόν, είναι ο διπλασιασμός, ή τριπλασιασμός, του υλικού και η αντίστοιχη τμηματοποίηση των rounds που θα πρέπει να πραγματοποιηθούν. 53

64 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού Τέλος υπάρχει η δυνατότητα πραγματοποίησης pipeline τεχνικής για το στάδιο κατά το οποίο ολοκληρώνεται ένα συγκεκριμένος αριθμός γύρων του αλγόριθμου. Για παράδειγμα, μπορούμε να χωρίσουμε τους 24 κύκλους σε 4 «ομάδες γύρων» κάθε μία από τις οποίες περιλαμβάνει 6 γύρους μαζί με τις αντίστοιχες σταθερές για το βήμα i του μετασχηματισμού. Εμείς μελετήσαμε 3 περιπτώσεις pipeline και συγκεκριμένα αυτές με 2, 3 και 4 στάδια pipeline. Η λογική που ακολουθούμε και στις 3 αυτές περιπτώσεις είναι πανομοιότυπη. Συνεπώς για λόγους απλότητας και περιορισμού χώρου θα γίνει ανάλυση μόνο της μιας εξ αυτών και συγκεκριμένα αυτής με τα 4 stages. Φυσικά στο επόμενο κεφάλαιο θα γίνει αναλυτική παρουσίαση των πειραματικών αποτελεσμάτων και για τις 3 αυτές τεχνικές και θα εξάγουμε κάποια χρήσιμα συμπεράσματα. Για την υλοποίηση των αρχιτεκτονικών pipeline, χρησιμοποιήθηκε ως βάση η προηγούμενη αρχική αρχιτεκτονική. Λόγω αυτής της σχέσης μεταξύ των δύο αρχιτεκτονικών, είναι προφανές το γεγονός ότι οι αρχιτεκτονικές αυτής της οικογένειας δεν έχουν ιδιαίτερες διαφορές μεταξύ τους. Τα δομικά χαρακτηριστικά αυτών των αρχιτεκτονικών είναι πανομοιότυπα με αυτά της απλής υλοποίησης. Η βασική τους διαφορά εντοπίζεται στον αυξημένο αριθμό καταχωρητών και πολυπλεκτών, καθώς και στην τροποποίηση του counter προκειμένου να είναι σε θέση να μετράει λιγότερους κύκλους και να παράγει μικρότερο αριθμό σταθερών. Στην εικόνα που ακολουθεί φαίνεται η αρχιτεκτονική pipeline 4 σταδίων. Ο πυρήνας του αλγόριθμου παραμένει αμετάβλητος και ίδιος με πριν. Οι αρχιτεκτονικές με 2 και 3 στάδια αντίστοιχα είναι πανομοιότυπες με αυτήν. Το μόνο που αλλάζει είναι ο μέγιστος αριθμός κύκλων που μετράει ο counter καθώς και η χρήση διαφορετικού αριθμού γεννητριών των σταθερών για τον i μετασχηματισμό. 54

65 Κεφάλαιο 3 :Αρχιτεκτονικές SHA bits 1600 bits 1600 bits 1600 bits 1600 bits R o u n d i n 1600 bits MUX 2X bits Keccak- Core1 R R R R e R R e e e g e e g g g g g Keccak bits 1600 bits O Keccak bits 1600 bits 1600 bits 1600 bits 1600 bits MUX 2X bits I Core bits I O Keccak- MUX 2X1 MUX 2X1 u Core2 O I 1600 bits n n u Core4 t u n 2 3 t 1 t R e g 1600 bits O u t bits R o u n d O u t sel sel sel sel 64 bits 64 bits 64 bits 64 bits gen1 gen2 gen3 gen4 counter 3 bits Σχήμα 20: Αρχιτεκτονική 4 σταδίων Η λειτουργία του, η οποία αναλύεται παρακάτω, έχει πολλές ομοιότητες με την λειτουργία της βασικής αρχιτεκτονικής, γεγονός λογικό και αναμενόμενο. Τα βήματα που εκτελούνται σε αυτή την αρχιτεκτονική είναι τα παρακάτω: 1. Αρχικά εκτελείται ένα σήμα reset, προκειμένου να φέρει το σύστημα στην αρχική του κατάσταση. Αυτό πρακτικά σημαίνει ότι ο counter μηδενίζεται. Το ίδιο συμβαίνει και με τους καταχωρητές. Το σήμα επιλογής για τους πολυπλέκτες γίνεται ίσο με 0 προκειμένου να είναι έτοιμο να δεχτεί τα δεδομένα της πρώτης εισόδου. 2. Ο πίνακας δεδομένων εισόδου που είναι της μορφής state - περνάει στον πρώτο MUX ο οποίος καθορίζει την είσοδο του Keccak-Core1 και συνεπώς την είσοδο του όλου συστήματος. Στο σημείο αυτό πρέπει να αναφέρουμε ότι γίνεται χρήση 4 πανομοιότυπων "πυρήνων» του Kecack. Σε κάθε ένα από τα 4 στάδια ο αντίστοιχος πυρήνας είναι υπεύθυνος για την εκτέλεση των μετασχηματισμών.. 3. Όπως είναι λογικό, υπάρχουν 4 πολυπλέκτες, ένας για κάθε στάδιο επεξεργασίας. Και οι 4 αυτοί πολυπλέκτες λειτουργούν με το ίδιο σήμα επιλογής. Συνεπώς όταν το σήμα επιλογής sel είναι ίσο με 0 ο πρώτος πολυπλέκτης επιλέγει τα «νέα δεδομένα» τα οποία βρίσκονται αποθηκευμένα σε κάποια μνήμη. Ταυτόχρονα με τον πρώτο πολυπλέκτη, οι άλλοι τρεις περνάνε σε κατάσταση κατά την οποία διαβάζουν δεδομένα από την πρώτη τους είσοδο. Η πρώτη είσοδος όλων αυτών των πολυπλεκτών είναι συνδεδεμένη με τα δεδομένα εξόδου του αμέσως προηγούμενου σταδίου. Επομένως, με το που ξεκινάει η επεξεργασία νέων 55

66 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού δεδομένων από τον Keccak-Core1, ξεκινάει και το επόμενο στάδιο επεξεργασίας για τα δεδομένα που ήδη έχουν εισέλθει στο σύστημα. 4. Σε κάθε στάδιο επεξεργασίας, τα δεδομένα περνάνε από τους πέντε μετασχηματισμούς που χαρακτηρίζουν την συνάρτηση κατακερματισμού. Έτσι λοιπόν τα δεδομένα περνάνε με την σειρά μέσα από τους μετασχηματισμούς theta, rho, pi, chi και i και πραγματοποιούνται οι ενέργειες που έχουν καθοριστεί. Το αποτέλεσμα καταλήγει, από την έξοδο του i μετασχηματισμού και συνεπώς από την έξοδο του Keccak-Core του αντίστοιχου επιπέδου, σε ένα pipeline register που βρίσκεται αμέσως μετά. 5. Αφού έχουμε 4 στάδια επεξεργασίας και 24 γύρους που πρέπει να εκτελεστούν συνολικά, τότε τα δεδομένα πρέπει να μείνουν για επεξεργασία για 6 γύρους σε κάθε ένα από τα στάδια. Με κάθε παρυφή του clock σήματος, το αποτέλεσμα κάθε Keccak-Core τροφοδοτείται στην έξοδο του, στην οποία βρίσκεται ένας pipeline register. 6. Κατά την εκτέλεση του μετασχηματισμού i, γίνεται χρήση μιας σταθεράς η οποία περνάει από μια XOR μαζί με το lane της θέσης (0,0). Αφού έχουμε 4 διαφορετικά στάδια, τα οποία εκτελούνται για 6 κύκλους ρολογιού το καθένα, σημαίνει ότι χρειαζόμαστε 6 από τις 24 σταθερές σε κάθε στάδιο. Επομένως χρειαζόμαστε 4 διαφορετικές γεννήτριες των σταθερών κάθε μία από τις οποίες θα είναι σε θέση να παράξει μόνο τις 6 από τις 24 σταθερές. 7. Κάθε μία από τις 4 γεννήτριες δέχεται σαν είσοδο τον counter και δίνει σαν έξοδο την κατάλληλη σταθερά. Ενώ εκ πρώτης όψεως κάποιος μπορεί να πει ότι χρειαζόμαστε 4 διαφορετικούς counters, είναι δυνατό με χρήση μόνο μίας μεταβλητής counter να τροφοδοτούμε όλες τις γεννήτριες. Για να το πετύχουμε αυτό, κάθε μία από τις 6 σταθερές μέσα στις 4 γεννήτριες μπορεί να διευθυνσιοδοτηθεί από μία τιμή με τιμή από το 0 έως το 5. Για κάθε άλλη τιμή δίνει μη επιτρεπτό αποτέλεσμα. Θεωρούμε λοιπόν ότι και οι 4 Keccak-Core εκτελούνται ταυτόχρονα. Εάν ο πρώτος core εκτελεί τον 5 ο του γύρο ο οποίος αντιστοιχεί στον round με αριθμό 4 από τους 24, αυτό σημαίνει ότι ο δεύτερος θα εκτελεί το γύρο με αριθμό 10 από 24, ο οποίος όμως είναι πάλι ο πέμπτος για τον συγκεκριμένο 56

67 Κεφάλαιο 3 :Αρχιτεκτονικές SHA-3 core. Αυτό σημαίνει ότι μία και μόνο μία μεταβλητή counter είναι αρκετή για την δουλειά μας. 8. Κατά την άφιξη του επόμενου clock σήματος, το οποίο σηματοδοτεί την αρχή του επόμενου γύρου, ο counter αυξάνεται κατά ένα και παράγονται οι 4 νέες σταθερές οι οποίες θα χρησιμοποιηθούν σε κάθε ένα από τα 4 στάδια επεξεργασίας. Εάν ο counter φτάσει στην τιμή 5 σημαίνει ότι βρισκόμαστε στον τελευταίο γύρο όλων των σταδίων. Επομένως το σήμα sel πρέπει να αλλάξει από το 1 στο 0 προκειμένου το κάθε στάδιο να πάρει τα νέα δεδομένα στον επόμενο γύρο. Εάν ο counter είναι μικρότερος από το 6, σημαίνει ότι τα δεδομένα σε κάθε στάδιο επεξεργασίας, δεν έχουν συμπληρώσει τους 6 γύρους που είναι απαραίτητους. Συνεπώς το σήμα sel παραμένει 1 προκειμένου να δημιουργείται ο απαραίτητος κύκλος ανάδρασης και με το πέρας του κύκλου τα δεδομένα βρίσκονται στους καταχωρητές pipeline. Με κάθε ανιούσα παρυφή του ρολογιού τα δεδομένα αυτά είτε θα περάσουν στην είσοδο του σταδίου επεξεργασίας που βρίσκονται τώρα, πράγμα το οποίο σημαίνει ότι ακόμα δεν έχει ολοκληρωθεί ο απαραίτητος αριθμός γύρων, είτε θα περάσουν στην είσοδο του επόμενου σταδίου. 9. Αφού χρησιμοποιούμε 4 στάδια pipeline, σημαίνει ότι κάθε 6 γύρους πρέπει να βγαίνει αποτέλεσμα στην έξοδο. Το round_constant θα έχει μεταβληθεί, λόγω του clock σήματος, το οποίο αύξησε τον counter, οποίος υποδεικνύει στις γεννήτριες σταθερών σε πιο round βρίσκεται και, κατ επέκταση, ποιες σταθερές πρέπει να παρέχει στις διεργασίες iota των 4 επιπέδων. 10. Η όλη διαδικασία έχει υλοποιηθεί σαν μία μηχανή πεπερασμένων καταστάσεων. Συγκεκριμένα, έχουμε 4 διαφορετικές καταστάσεις λειτουργίας. Ανάλογα με το αν διαβάζουμε το πρώτο block δεδομένων ή το τελευταίο ή κάποιο ενδιάμεσο, καθορίζεται η κατάσταση λειτουργίας. Σε περίπτωση που διαβάσουμε και επεξεργαστούμε το τελευταίο block δεδομένων, τότε το σύστημα περνάει στην κατάσταση STOP. 11. Η διαδικασία λοιπόν συνεχίζεται μέχρι να ολοκληρωθεί η επεξεργασία όλων των δεδομένων. Στην έξοδο, βγαίνουν 1600 bits τα οποία είναι οργανωμένα σε μορφή state. Ανάλογα με το μέγεθος της hash value που έχουμε ορίσει, παίρνουμε τον απαραίτητο αριθμό bits για την έξοδο. 57

68 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού Η χρήση της λέξης block δεν είναι πολύ εύστοχη. Ουσιαστικά αναφερόμαστε στα διαφορετικά μηνύματα που επεξεργαζόμαστε. Το σήμα last block, μας λέει ότι διαβάζουμε το τελευταίο διαθέσιμο μήνυμα επομένως μετά την επεξεργασία του, το σύστημα θα περάσει στην κατάσταση STOP. Στους τελικούς κώδικες επεξεργαζόμαστε μόλις 2 τιμές αλλά στο πλαίσιο της επαλήθευσης της ορθής λειτουργίας έγινε χρήση ενός.txt αρχείου το οποίο βρίσκεται στην ιστοσελίδα του Keccak και περιλαμβάνει αρκετά ζευγάρια εισόδου-εξόδου. Όπως παρατηρούμε λοιπόν, η λειτουργία παραμένει η ίδια, με μόνη διαφορά την παρουσία των pipeline registers στην όλη διαδικασία και την ανάγκη για χρήση 4 γεννητριών σταθερών για την ολοκλήρωση της διαδικασίας. Όπως ήδη έχουμε αναφέρει, θεωρούμε ότι έχουμε αποκλειστικά και μόνο blocks (μηνύματα) των 1600 bits. Εάν είχαμε μεγαλύτερα blocks, δεν θα μπορούσαμε να επεξεργαστούμε πολλά bits ταυτόχρονα αφού σε περίπτωση ύπαρξης μηνύματος μεγαλύτερου των 1600 bits, για την ολοκλήρωση της διαδικασίας, θα απαιτούνταν η επεξεργασία των πρώτων 1600 bits πριν αρχίσει η επεξεργασία των υπόλοιπων. Στα πλαίσια υλοποίησης ενός ολοκληρωμένου συστήματος κρυπτογράφησης, θα μπορούσαμε να ορίσουμε κάποιο σήμα το οποίο θα δέχεται επεξεργασία από το στάδιο που βρίσκεται ακριβώς πριν από αυτό της συνάρτησης κατακερματισμού, και θα όριζε εάν πρόκειται για block ίδιου μηνύματος ή όχι, με αποτέλεσμα να καθορίζει τον συγχρονισμό για την επεξεργασία διαφορετικών μηνυμάτων μεγέθους μεγαλύτερου των 1600 bits Αρχιτεκτονικές με unrolling Στα πλαίσια επίτευξης καλύτερης απόδοσης του συστήματος, καταφύγαμε σε άλλη μια γνωστή τεχνική και συγκεκριμένα αυτή του unrolling. Το unrolling, δεν θα λέγαμε ότι αποτελεί ξεχωριστεί αρχιτεκτονική, παρά μόνο μια απλή επέμβαση στον 58

69 Κεφάλαιο 3 :Αρχιτεκτονικές SHA-3 πυρήνα του αλγόριθμου του Keccak και στην τροποποίηση αυτού με απώτερο σκοπό την αύξηση του throughput. Όπως είναι λογικό, η χρήση unrolling αυξάνει το critical path με αποτέλεσμα να μην μπορούμε να επιτύχουμε το ίδιο καλές συχνότητες με τις προηγούμενες αρχιτεκτονικές. Σημαντικό ρόλο στο unrolling, παίζει ο βαθμός στον οποίο «ξεδιπλώνουμε» τον πυρήνα του αλγόριθμου. Στα πλαίσια της παρούσας εργασίας, έγινε χρήση unrolling factor ίσο με 2. Πρακτικά αυτό σημαίνει ότι τοποθετούμε άλλο ένα block μετασχηματισμών μέσα στον Keccak_Core. Επομένως, τα δεδομένα περνάνε από 10 μετασχηματισμούς. Κατά συνέπεια, μειώνουμε τον αριθμό των κύκλων ρολογιού που απαιτούνται για την ολοκλήρωση της διαδικασίας στο μισό. Επομένως, αφού εκτελούνται 2 γύροι μέσα σε ένα κύκλο ρολογιού, σημαίνει ότι χρειάζονται 12 κύκλοι ρολογιού προκειμένου να ολοκληρωθούν οι 24 γύροι που απαιτούνται από τον αλγόριθμο. Αντίστοιχη διαδικασία ακολουθούμε και στην περίπτωση που επιλέξουμε μεγαλύτερο παράγοντα ξεδιπλώματος. Από τα παραπάνω, γίνεται αντιληπτό ότι δεν επεμβαίνουμε σε βάθος στην βασική αρχιτεκτονική που ήδη έχουμε παρουσιάσει. Η μοναδική διαφοροποίηση είναι ότι χρειαζόμαστε 2 counters προκειμένου να παράξουμε τις 2 απαραίτητες για τον αλγόριθμο σταθερές. Επομένως η γεννήτρια σταθερών αλλάζει κατάλληλη έτσι ώστε να δέχεται 2 εισόδους counter1 και counter2 και να δίνει 2 εξόδους. Όσον αφορά τον Keccak-Core, τον τροποποιούμε έτσι ώστε να δέχεται τις 2 σταθερές ενώ ταυτόχρονα τοποθετούμε το «ξεδίπλωμα», επαναλαμβάνοντας τις εντολές που υλοποιούν τους μετασχηματισμούς. Λόγω της μικρής παρέμβασης στην βασική αρχιτεκτονική δεν κρίνεται αναγκαίο να γράψουμε αναλυτικά τα βήματα που ακολουθούνται κατά την εκτέλεση του, αφού αυτά είναι πανομοιότυπα με την βασική αρχιτεκτονική. Στην παρακάτω εικόνα παρουσιάζεται αναλυτικά το unrolling. 59

70 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού bits 1600 bits 1600 bits 1600 bits Theta-Step1 Pi-Step1 Rho-Step1 Chi-Step1 Iota-Step bits 1600 bits Theta-Step2 Pi-Step2 Rho-Step2 Chi-Step2 Iota-Step bits 1600 bits 1600 bits 1600 bits 1600 bits Σχήμα 21: Unrolling μετασχηματισμού με βαθμό ίσο με Αρχιτεκτονικές Pipeline με unrolling Μετά την παρουσίαση της βασικής αρχιτεκτονικής, των αρχιτεκτονικών που βασίζονται σε pipeline αλλά και τεχνικής unrolling θα παρουσιάσουμε μια αρχιτεκτονική στην οποία συνδυάζονται όλα τα παραπάνω. Βασικός στόχος και σε αυτή την περίπτωση, τέθηκε η αύξησε του throughput χωρίς φυσικά να αγνοούνται άλλες παράμετροι όπως η επιφάνεια που καταλαμβάνεται στο υλικό. Όπως έχουμε ήδη τονίσει, το pipeline κάνει χρήση ενός καταχωρητή με κύριο σκοπό να βελτιώσει το critical path όσο το δυνατόν περισσότερο. Σε αυτό το υποκεφάλαιο θα παρουσιάσουμε μια αρχιτεκτονική η οποία κάνει χρήση 4 σταδίων pipeline αλλά ταυτόχρονα γίνεται χρήση της τεχνικής unrolling. Ο πυρήνας του αλγόριθμου Keccak, αποτελείται από 5 μετασχηματισμούς. Σε αυτή την περίπτωση όμως, επειδή χρησιμοποιούμε unrolling, χρησιμοποιεί δύο φορές αυτή την πεντάδα μετασχηματισμών με αποτέλεσμα να έχουμε 10 μετασχηματισμούς. Πρέπει να σημειώσουμε, ότι αναπτύξαμε και τις άλλες 2 αρχιτεκτονικές pipline που αναφέρθηκαν στο προηγούμενο κεφάλαιο (με 2 και 3 στάδια) μαζί με την τεχνική του unrolling αλλά για λόγους περιορισμού χώρου παρουσιάζουμε μόνο την πιο «πολύπλοκη», δηλαδή αυτή με τα 4 στάδια. Όπως έχουμε ήδη επισημάνει, για να επιτευχθεί η επιθυμητή αύξηση του throughput, θα πρέπει να υπάρχει επεξεργασία πολλαπλών δεδομένων παράλληλα και όχι σειριακά. 60

71 Κεφάλαιο 3 :Αρχιτεκτονικές SHA-3 Στην περίπτωση που περιοριστούμε στην χρήση pipeline stages και συγκεκριμένα στην περίπτωση χρήσης 4 σταδίων, εκτός του πρώτου μηνύματος που θα χρειαστεί 24 κύκλους ρολογιού για να τελειώσει η επεξεργασία του, κάθε επόμενο μήνυμα χρειάζεται μόλις 6 κύκλους ρολογιού μετά το προηγούμενο μήνυμα για να ολοκληρωθεί. Στην εικόνα που ακολουθεί φαίνεται η αρχιτεκτονική pipeline 4 σταδίων. Η εικόνα είναι όμοια με αυτή που έχουμε ήδη παρουσιάσει εκτός του ότι χρησιμοποιούμε 2 μετρητές και το Keccak-Core έχει τροποποιηθεί και είναι ίδιο με αυτό που παρουσιάσαμε στο υποκεφάλαιο του unrolling. Τα βήματα που εκτελούνται σε αυτή την αριχτεκτονική είναι τα παρακάτω: 1. Αρχικά εκτελείται ένα σήμα reset, προκειμένου να φέρει το σύστημα στην αρχική του κατάσταση. Αυτό πρακτικά σημαίνει ότι ο counter μηδενίζεται. Το ίδιο συμβαίνει και με τους καταχωρητές. Το σήμα επιλογής για τους πολυπλέκτες γίνεται ίσο με 0 προκειμένου να είναι έτοιμο να δεχτεί τα δεδομένα της πρώτης εισόδου. 2. Ο πίνακας δεδομένων εισόδου που είναι της μορφής state - περνάει στον πρώτο MUX ο οποίος καθορίζει την είσοδο του Keccak-Core1 και συνεπώς την είσοδο του όλου συστήματος. Στο σημείο αυτό πρέπει να αναφέρουμε ότι γίνεται χρήση 4 πανομοιότυπων "πυρήνων» του Keccak. Σε κάθε ένα από τα 4 στάδια ο αντίστοιχος πυρήνας είναι υπεύθυνος για την εκτέλεση των μετασχηματισμών.. 3. Όπως είναι λογικό, υπάρχουν 4 πολυπλέκτες, ένας για κάθε στάδιο επεξεργασίας. Και οι 4 αυτοί πολυπλέκτες λειτουργούν με το ίδιο σήμα επιλογής. Συνεπώς όταν το σήμα επιλογής sel είναι ίσο με 0 ο πρώτος πολυπλέκτης επιλέγει τα «νέα δεδομένα» τα οποία βρίσκονται αποθηκευμένα σε κάποια μνήμη. Ταυτόχρονα με τον πρώτο πολυπλέκτη, οι άλλοι τρεις περνάνε σε κατάσταση κατά την οποία διαβάζουν δεδομένα από την πρώτη τους είσοδο. Η πρώτη είσοδος όλων αυτών των πολυπλεκτών είναι συνδεδεμένη με τα δεδομένα εξόδου του αμέσως προηγούμενου σταδίου. Επομένως, με το που ξεκινάει η επεξεργασία νέων δεδομένων από τον Keccak-Core1, ξεκινάει και το επόμενο στάδιο επεξεργασίας για τα δεδομένα που ήδη έχουν εισέλθει στο σύστημα. 61

72 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού 4. Σε κάθε στάδιο επεξεργασίας, τα δεδομένα περνάνε από τους πέντε μετασχηματισμούς που χαρακτηρίζουν την συνάρτηση κατακερματισμού. Έτσι λοιπόν τα δεδομένα περνάνε με την σειρά μέσα από τους μετασχηματισμούς theta, rho, pi, chi και i και πραγματοποιούνται οι ενέργειες που έχουν καθοριστεί. Ακολουθεί και άλλη επεξεργασία από άλλους 5 πανομοιότυπους μετασχηματισμούς. Το αποτέλεσμα καταλήγει, από την έξοδο του i μετασχηματισμού και συνεπώς από την έξοδο του Keccak-Core του αντίστοιχου επιπέδου, σε ένα pipeline register που βρίσκεται αμέσως μετά. 5. Αφού έχουμε 4 στάδια επεξεργασίας και 24 γύρους που πρέπει να εκτελεστούν συνολικά, και δεδομένου ότι σε κάθε κύκλο ρολογιού κάθε στάδιο εκτελεί 2 γύρους, τότε τα δεδομένα πρέπει να μείνουν για επεξεργασία για 3 γύρους σε κάθε ένα από τα στάδια. Με κάθε παρυφή του clock σήματος, το αποτέλεσμα κάθε Keccak-Core τροφοδοτείται στην έξοδο του, στην οποία βρίσκεται ένας pipeline register. 6. Κατά την εκτέλεση του μετασχηματισμού i, γίνεται χρήση μιας σταθεράς η οποία περνάει από μια XOR μαζί με το lane της θέσης (0,0). Αφού έχουμε 4 διαφορετικά στάδια, τα οποία εκτελούνται για 3 κύκλους ρολογιού το καθένα, σημαίνει ότι χρειαζόμαστε 6 από τις 24 σταθερές σε κάθε στάδιο. Επομένως χρειαζόμαστε 4 διαφορετικές γεννήτριες των σταθερών κάθε μία από τις οποίες θα είναι σε θέση να παράξει μόνο τις 6 από τις 24 σταθερές. 7. Κάθε μία από τις 4 γεννήτριες δέχεται σαν είσοδο τους 2 counter και δίνει σαν έξοδο τις κατάλληλες σταθερές. Χρησιμοποιούμε 3 counters. Ο ένας μετράει τους κύκλους ρολογιού και οι άλλοι 2 χρησιμοποιούνται για να τροφοδοτούν τις γεννήτριες με σκοπό την παραγωγή των σωστών σταθερών. 8. Κατά την άφιξη του επόμενου clock σήματος, το οποίο σηματοδοτεί την αρχή του επόμενου γύρου, ο counter αυξάνεται κατά ένα και παράγονται οι 8 νέες σταθερές οι οποίες θα χρησιμοποιηθούν σε κάθε ένα από τα 4 στάδια επεξεργασίας. Εάν οι δύο counters φτάσουν στην τιμή 5 σημαίνει ότι βρισκόμαστε στον τελευταίο γύρο όλων των σταδίων. Επομένως το σήμα sel πρέπει να αλλάξει από το 1 στο 0 προκειμένου το κάθε στάδιο να πάρει τα νέα δεδομένα στον επόμενο γύρο. Εάν οι counters είναι μικρότεροι από το 6, σημαίνει ότι τα δεδομένα σε κάθε στάδιο 62

73 Κεφάλαιο 3 :Αρχιτεκτονικές SHA-3 επεξεργασίας, δεν έχουν συμπληρώσει τους 6 γύρους που είναι απαραίτητους. Συνεπώς το σήμα sel παραμένει 1 προκειμένου να δημιουργείται ο απαραίτητος κύκλος ανάδρασης και με το πέρας του κύκλου τα δεδομένα βρίσκονται στους καταχωρητές pipeline. Με κάθε ανιούσα παρυφή του ρολογιού τα δεδομένα αυτά είτε θα περάσουν στην είσοδο του σταδίου επεξεργασίας που βρίσκονται τώρα, πράγμα το οποίο σημαίνει ότι ακόμα δεν έχει ολοκληρωθεί ο απαραίτητος αριθμός γύρων, είτε θα περάσουν στην είσοδο του επόμενου σταδίου. 9. Αφού χρησιμοποιούμε 4 στάδια pipeline και unrolling factor ίσο με 2, σημαίνει ότι κάθε 3 γύρους πρέπει να βγαίνει αποτέλεσμα στην έξοδο Η όλη διαδικασία έχει υλοποιηθεί σαν μία μηχανή πεπερασμένων καταστάσεων. Συγκεκριμένα, έχουμε 4 διαφορετικές καταστάσεις λειτουργίας. Ανάλογα με το αν διαβάζουμε το πρώτο block δεδομένων ή το τελευταίο ή κάποιο ενδιάμεσο, καθορίζεται η κατάσταση λειτουργίας. Σε περίπτωση που διαβάσουμε και επεξεργαστούμε το τελευταίο block δεδομένων, τότε το σύστημα περνάει στην κατάσταση STOP. 11. Η διαδικασία λοιπόν συνεχίζεται μέχρι να ολοκληρωθεί η επεξεργασία όλων των δεδομένων. Στην έξοδο, βγαίνουν 1600 bits τα οποία είναι οργανωμένα σε μορφή state. Ανάλογα με το μέγεθος της hash value που έχουμε ορίσει, παίρνουμε τον απαραίτητο αριθμό bits για την έξοδο. Η αρχιτεκτονική είναι ίδια με αυτή του σχήματος 19 με την διαφορά ότι γίνεται χρήση 2 counters και οι πυρήνες έχουν την μορφή του σχήματος Αρχιτεκτονικές με Mega-Step Είδαμε στα προηγούμενα κεφάλαια τις τεχνικές του pipeline και του unrolling. Σε αυτό το υποκεφάλαιο παρουσιάζουμε μία δική μας «τεχνική» στην προσπάθεια μας για καλύτερο throughput. Την τεχνική αυτή την ονομάσαμε Mega-Step και την συνδυάσαμε τόσο με το pipeline όσο και με το unrolling. Δεν πρόκειται για κάποια σχεδιαστική παρέμβαση. Ουσιαστικά «ενώνουμε» τους 5 μετασχηματισμούς οι οποίοι αποτελούν τη βάση του αλγόριθμου του Keccak και στηριζόμαστε στον 63

74 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού compiler για την επίτευξη καλύτερου routing και καλύτερης συχνότητας. Ας δούμε όμως το πώς οδηγηθήκαμε σε αυτή την μεγάλη σχέση και το πώς την χρησιμοποιήσαμε μαζί με το unrolling και τους pipeline καταχωρητές. Έστω α[x,y,z] ο πίνακας που μπαίνει στο round (πριν την εφαρμογή του θ- step) και Θ[x,y,z] ο πίνακας που προκύπτει από την εφαρμογή του θ. Έχουμε την παρακάτω σχέση: Θ[x,y,z]= α[x,y,z] α[(x-1)mod5,:,z] α[(x+1)mod5,:,(z-1)mod64] ( 9 ) Το σύμβολο : σημαίνει για όλα τα y. Αντίστοιχη χρήση του γίνεται και στις επόμενες σχέσεις που θα χρησιμοποιήσουμε. Μετά την εφαρμογή των μετασχηματισμών π και ρ στον πίνακα Θ[x,y.z], παίρνω τον πίνακα Π-Ρ[x,y,z ]. Τα (x,y ) προκύπτουν από τον μετασχηματισμό π με χρήση του πίνακα T = ( 0 1 ), ενώ το z από τον μετασχηματισμό ρ σε 2 3 συνδυασμό με τον πίνακα R(x,y). Ο πίνακας R(x,y) είναι ο πίνακας που ορίζεται από τους δημιουργούς του αλγόριθμου του Keccak και χρησιμοποιείται στο βήμα ρ. Οι συντεταγμένες (x,y,z ) δεν αλλάζουν από εδώ και πέρα γιατί κανένας από τους επόμενους μετασχηματισμού, δηλαδή τους μετασχηματισμούς χ και i δεν περιέχει τέτοιες ενέργειες τροποποίησης συντεταγμένων. step). Έστω Χ[x,y,z ] ο πίνακας στο τέλος του γύρου (μετά την εφαρμογή του χ Π-Ρ[x,y,z ]=Π-Ρ[y,(2x+3y)mod5,(z-R(x,y))mod64] ( 10 ) Δηλαδή x =y, y =(2x+3y)mod5 και z =(z-r(x,y))mod64 Ουσιαστικά αυτό που γίνεται, είναι ότι βλέπουμε τα δεδομένα από την σκοπιά του τέλους του αλγορίθμου, δηλαδή βλέπουμε τον πίνακα X[x,y,z ] και προσπαθούμε να εκφράσουμε τα στοιχεία του πίνακα με όρους-στοιχεία από την αρχή του γύρου, δηλαδή με στοιχεία του πίνακα α[x,y,z]. 64

75 Κεφάλαιο 3 :Αρχιτεκτονικές SHA-3 Έχουμε X[x,y,z ]=Π-Ρ[x,y,z ] ((ΝΟΤ(Π-Ρ(x +1)mod5,y,z ])AND Π-Ρ[(x +2)mod5,y,z ]) ( 11 ) Επόμενο βήμα είναι να εκφράσω τα Π-Ρ(x,y,z ) με τα Θ(x,y,z) που είναι ήδη εκφρασμένα με τα α[x,y,z]. Γνωρίζουμε ήδη ότι x =y και z =(z-r(x,y))mod64. Υπάρχει πρόβλημα με το x γιατί αν αντιστρέψω τον πίνακα και προσπαθήσω να πάω από το x στο x εμφανίζονται κλάσματα. Άρα θα χρησιμοποιήσω έναν πίνακα Array[x,y ] ο οποίος ανάλογα με τα x,y μας δίνει το αρχικό x. Ακολουθούν οι πίνακες R(x,y) και Array(x,y ) Χ=3 Χ=4 Χ=0 Χ=1 Χ=2 Υ= Υ= Υ= Υ= Υ= Πίνακας 3 : R(x,y) Χ=0 Χ=1 Χ=2 Χ=3 Χ=4 Υ= Υ= Υ= Υ= Υ= Πίνακας 4 : Array(x,y ) Επομένως : Π-Ρ[x,y,z ]=Θ(Array(x,y ),x,(z +-R(Array(x,y ),x ))mod64) ( 12 ) Π-Ρ[x +1,y,z ]=Θ(Array(x +1,y ),x +1,(z +R(Array(x +1,y ),x +1))mod64) ( 13 ) Π-Ρ[x +2,y,z ]=Θ(Array(x +2,y ),x +2,(z +R(Array(x +2,y ),x +2))mod64) ( 14 ) Αντικαθιστώ στις παραπάνω σχέσεις τα Θ όπως έχουν εκφραστεί ήδη σε σχέση με τα α. 65

76 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού Τέλος αντικαθιστώ τα τελικά Π-Ρ(εκφρασμένα με α) στην έκφραση του X και έχω την ζητούμενη έκφραση. Ακριβώς το ίδιο μπορούμε να κάνουμε και για δεύτερο γύρο αλλά το πρόβλημα είναι ότι χρειαζόμαστε 33*33 αρχικά δεδομένα α[x,y,z] για να έχω ένα τελικό bit. Επιπρόσθετα, στα πλαίσια της διπλωματικής, έγινε προσπάθεια για την εύρεση κάποιων bits τα οποία παραμένουν αναλλοίωτα και βγαίνουν στην έξοδο χωρίς να έχουν επηρεαστεί αλλά δεν ήταν δυνατό να βρεθούν τέτοια bits. 66

77 Κεφάλαιο 4 : Υλοποιήσεις σε FPGA Κεφάλαιο 4 Υλοποιήσεις σε FPGA 4.1. Εισαγωγή στα FPGAs Το FPGA ή Field Programmable Gate Array είναι τύπος προγραμματιζόμενου ολοκληρωμένου κυκλώματος γενικής χρήσης το οποίο διαθέτει πολύ μεγάλο αριθμό τυποποιημένων πυλών και άλλων ψηφιακών λειτουργιών όπως απαριθμητές, καταχωρητές μνήμης, γεννήτριες PLL κτλπ. Σε ορισμένα από αυτά ενσωματώνονται και αναλογικές λειτουργίες. Κατά τον προγραμματισμό του FPGA, ενεργοποιούνται οι επιθυμητές λειτουργίες και διασυνδέονται μεταξύ τους έτσι ώστε το FPGA να συμπεριφέρεται ως ολοκληρωμένο κύκλωμα με συγκεκριμένη λειτουργία. Ο κώδικας με τον οποίο προγραμματίζεται το FPGA γράφεται σε γλώσσες περιγραφής υλικού (VHDL, AHDL, Verilog). Το FPGA έχει παρόμοιο πεδίο εφαρμογών με άλλα προγραμματιζόμενα ολοκληρωμένα ψηφιακά κυκλώματα όπως τα PLD και τα ASIC. Όμως τα ιδιαίτερα χαρακτηριστικά του FPGA είναι τα εξής: Το FPGA χάνει τον προγραμματισμό του κάθε φορά που διακόπτεται η τάση τροφοδοσίας του. Επομένως απαιτεί εξωτερικό μικροεπεξεργαστή ή μνήμη με μόνιμη συγκράτηση δεδομένων (non-volatile memory) από τα οποία θα προγραμματίζεται, κάθε φορά που επανέρχεται η τάση τροφοδοσίας. Ο προγραμματισμός του FPGA μπορεί να αλλάζει κάθε φορά που τροποποιείται το λογισμικό του μικροεπεξεργαστή ή τα δεδομένα της μνήμης που το ελέγχει. Δεν υπάρχει όριο στο πόσες φορές μπορεί να επαναπρογραμματιστεί. Η κατανάλωση ισχύος είναι σημαντικά αυξημένη, σε σχέση με τα ASIC. Έτσι το FPGA είναι ιδιαίτερα κατάλληλο εκεί που οι παράμετροι λειτουργίας πρέπει να αλλάζουν συχνά ή σε μικρές ποσότητες παραγωγής, ενώ το ASIC, λόγω μαζικής παραγωγής, είναι φτηνότερο εκεί που απαιτούνται μεγάλες 67

78 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού ποσότητες και η επιθυμητή λειτουργία είναι αυστηρά προκαθορισμένη, χωρίς σφάλματα (το ASIC δεν επαναπρογραμματίζεται). Βασική δομική μονάδα του FPGA είναι το λογικό μπλοκ, με τη χρήση του οποίου υλοποιούνται οι λογικές συναρτήσεις που εκφράζουν τη λειτουργία ενός ψηφιακού κυκλώματος. Ανάλογα με το μέγεθος του κυκλώματος πολλά λογικά μπλοκ συνδέονται για να υλοποιήσουν το πλήθος των απαραίτητων λογικών συναρτήσεων Δομικά στοιχεία των FPGAs Το FPGA έχει 3 βασικά στοιχεία: τα Look-Up Tables (LUT), τα flip-flops, και το routing matrix, τα οποία όλα μαζί μας δίνουν την δυνατότητα επαναπρογραμματισμού της συσκευής. Τα Look-up tables είναι τα στοιχεία εκείνα που μας επιτρέπουν να υλοποιήσουμε την λογική του κυκλώματος. Ένα LUT αποτελείται από έναν αριθμό εισόδων και μία έξοδο. Αυτό που κάνει τόσο ξεχωριστά τα LUTs είναι το γεγονός ότι επιτρέπουν να προγραμματίσεις ποια θα είναι η έξοδος για κάθε πιθανό συνδυασμό εισόδων. Ένα LUT αποτελείται από ένα block μνήμης RAM, το οποίο διευθυνσιοδοτείται από τις εισόδους του LUT. Η έξοδος του LUT είναι η τιμή η οποία περιέχεται στην περιοχή μνήμης που διευθυνσιοδοτούμε. Οι ομάδες των LUTs σε συνδυασμό με flipflops ονομάζονται slices. Ένα επίπεδο πάνω από τα slices βρίσκεται η άλλη κατηγορία blocks η οποία ονομάζεται CLB δηλαδή Complex Logic Block. Κάθε CLB συνδέεται με έναν switch matrix ο οποίος είναι υπεύθυνος για την σύνδεση του CLB με το υπόλοιπο FPGA. Ο switch matrix μπορεί να συνδέσει τις εισόδους και τις εξόδους των CLBs μεταξύ τους. Αξίζει να σημειωθεί ότι κάθε εταιρεία χρησιμοποιεί την δική της ορολογία για να περιγράψει την εσωτερική οργάνωση των FPGAs που κατασκευάζει. Αυτό συμβαίνει γιατί υπάρχουν κάποιες διαφορές τόσο στη δομή των προγραμματιζόμενων λογικών 68

79 Κεφάλαιο 4 : Υλοποιήσεις σε FPGA μπλοκ, όσο και στην αρχιτεκτονική διασύνδεσης. Παραπάνω έγινε ορολογίας της εταιρείας Xilinx. χρήση της Σχήμα 22: Ιεραρχική δομή ενός FPGA 4.3. Ιστορική αναδρομή Η βιομηχανία των FPGAs δημιουργήθηκε από την ένωση δύο προϊόντων, της προγραμματιζόμενης μνήμης μόνο για ανάγνωση (programmable read-only memory ή PROM) και των προγραμματιζόμενων λογικών διατάξεων (programmable logic devices ή PLDs). Και οι δύο είχαν την δυνατότητα να προγραμματιστούν είτε από το εργοστάσιο είτε μετέπειτα. Στα τέλη της δεκαετίας του 1980 το υπουργείο άμυνας των ΗΠΑ και το Surface Warfare Department χρηματοδοτούν ένα πείραμα το οποίο 69

80 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού προτάθηκε από τον Steve Casselman, με σκοπό την ανάπτυξη ενός υπολογιστή ο οποίος θα περιείχε επαναπρογραμματιζόμενες πύλες. Ο Casselman ολοκλήρωσε τον υπολογιστή και ένα δίπλωμα ευρεσιτεχνίας που σχετίζονταν με το σύστημα εκδόθηκε το Μερικές από τις θεμελιώδεις γνώσεις και τεχνολογίες που ενστερνίστηκε η βιομηχανία των επαναπροσδιοριζόμενων λογικών πυλών βασίζονται σε διπλώματα ευρεσιτεχνίας που κατέθεσαν οι David W. Page και Luverne R. Peterson το Οι ιδρυτές της Xilinx Co., Ross Freeman και Bernard Vonderschmitt, εφηύραν το πρώτο εμπορικά βιώσιμο FPGA (XC2064), το Το XC2064 είχε προγραμματιζόμενες πύλες και προγραμματιζόμενες διασυνδέσεις μεταξύ των πυλών και ήταν η αρχή μιας νέας τεχνολογίας στην αγορά. Το XC2064 καυχιόταν για 64 διαμορφώσιμα μπλοκ λογικής (CLBs), με δύο πίνακες αναζήτησης 3-εισροών (LUTs). Περισσότερα από 20 χρόνια αργότερα, ο Freeman εντάχθηκε στο Inventor Hall of Fame για την εφεύρεσή του. Η Xilinx συνέχισε χωρίς ανταγωνισμό και αναπτυσσόταν γοργά από το 1985 μέχρι τα μέσα της δεκαετίας του 1990, όταν οι ανταγωνιστές της πλέον πολλαπλασιάστηκαν, κερδίζοντας σημαντικά μερίδια της αγοράς. Από το 1993, η Actel εξυπηρετούσε περίπου το 18% της αγοράς. Η δεκαετία του 1990 ήταν ένα εκρηκτικό διάστημα για τα FPGAs, τόσο στην πολυπλοκότητα όσο και στον όγκο της παραγωγής. Στις αρχές της δεκαετίας του 1990, τα FPGAs χρησιμοποιήθηκαν κυρίως στις τηλεπικοινωνίες και τη δικτύωση. Μέχρι το τέλος 22 της δεκαετίας, τα FPGAs βρήκαν τον δρόμο τους σε τελικούς καταναλωτές, αυτοκινητιστικές και βιομηχανικές εφαρμογές. Τα FPGAs έγιναν ευρέως γνωστά το 1997, όταν ο Adrian Thompson, ένας ερευνητής που εργαζόταν στο Πανεπιστήμιο του Sussex, στην Αγγλία, συγχώνευσε γενετικούς αλγορίθμους και FPGAs για να δημιουργήσει μια συσκευή αναγνώρισης ήχου. Ο αλγόριθμος του Thompson διαμορφώνει μια σειρά από 10 x 10 κελιά σε ένα FPGA της Xilinx που κάνει διάκριση ανάμεσα σε δύο τόνους, χρησιμοποιώντας αναλογικά χαρακτηριστικά του FPGA. Η εφαρμογή των γενετικών αλγορίθμων για την διαμόρφωση συσκευών FPGA αναφέρεται πλέον ως Evolvable hardware. 70

81 Κεφάλαιο 4 : Υλοποιήσεις σε FPGA 4.4. Προσομοίωση, σύνθεση και υλοποίηση αρχιτεκτονικών Στο παρών υποκεφάλαιο, παρουσιάζονται οι διαδικασίες οι οποίες έλαβαν χώρα προκειμένου να ολοκληρωθεί η σωστή σχεδίαση των αρχιτεκτονικών που αναπτύχθηκαν. Για το στάδιο της προσομοίωσης χρησιμοποιήθηκε το ModelSim PE Student Edition 10.4.a ενώ για την σύνθεση και το κατέβασμα των αρχιτεκτονικών χρησιμοποιήθηκε το ISE Design Suite Όλες οι συχνότητες και τα μεγέθη μετρήθηκαν με ένα άλλο εργαλείο της Xilinx, το Vivado. Το Vivado παρέχει έχει μια γκάμα συσκευών οι οποίες ανήκουν στην σειρά 7 ( Virtex 7, Kintex 7 κτλπ ). Αν και οι συσκευές αυτές χρησιμοποιούνται για πολύ μεγάλες αρχιτεκτονικές πράγμα που δεν ισχύει στην δική μας περίπτωση επιλέχθηκε λόγω της δυνατότητάς για παροχή αποτελεσμάτων σε πιο σύντομο χρονικό διάστημα σε σχέση με το ISE. Με άλλα λόγια, η σύνθεση και η υλοποίηση είχαν αισθητά μικρότερη διάρκεια και συνεπώς συγκεντρώσαμε τα απαραίτητα μεγέθη (συχνότητες και slices) σε σύντομο χρονικό διάστημα. Παρόλα αυτά, για το «κατέβασμα» των αρχιτεκτονικών χρησιμοποιήσαμε μια συσκευή XC5VFX70T που υπάρχει στο εργαστήριο. Συνεπώς χρησιμοποιήσαμε το ISE για το πρακτικό σκέλος της διπλωματικής Προσομοίωση αρχιτεκτονικών Όλες οι αρχιτεκτονικές αναπτύχθηκαν κάνοντας χρήση της γλώσσας περιγραφής υλικού VHDL. Το πρώτο στάδιο που ακολουθεί την σχεδίαση στο χαρτί, είναι η ανάπτυξη του κατάλληλου κώδικα και η επαλήθευση της ορθής λειτουργίας του μέσω της προσομοίωσης. Για την ανάπτυξη του κώδικα και για την εκτέλεση των προσομοιώσεων χρησιμοποιήθηκε το εργαλείο Modelsim. Στην επόμενη σελίδα, περιλαμβάνουμε ένα screenshot από την διαδικασίας προσομοίωσης της αρχιτεκτονικής χωρίς στάδιο pipeline. Όπως μπορεί να δει κανείς, το bit εξόδου, γίνεται ίσο με 1 στον 24 ο γύρο πράγμα που σημαίνει ότι το αποτέλεσμα είναι ίσο με την αναμενόμενη τιμή που είναι αποθηκευμένη σε ένα καταχωρητή. 71

82 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού Σχήμα 23: Επιβεβαίωση ορθής λειτουργίας Κατά την διαδικασία προσομοίωσης, ελέγχουμε τα διάφορα σήματα που έχουμε ορίσει προκειμένου να διαπιστώσουμε εάν υπάρχει κάποια λανθασμένη λειτουργία είτε στην χρήση ενός σήματος είτε στον συγχρονισμό του με το ρολόι. Πώς όμως γνωρίζουμε ότι τα αποτελέσματα εξόδου είναι σωστά; Δηλαδή πώς γίνεται το verification της αρχιτεκτονικής; Στην προκειμένη περίπτωση έγινε χρήση ζευγαριών εισόδου-εξόδου του αλγορίθμου. Τα συγκεκριμένα ζευγάρια εισόδων-εξόδων περιλαμβάνονται σε ένα αρχείο.txt που βρίσκεται στην επίσημη σελίδα του αλγόριθμου. Έτσι, δημιουργήθηκε μια μνήμη η οποία περιείχε όλες εκείνες τις τιμές εισόδου προκειμένου να επαληθεύσουμε την ορθή λειτουργία. Στους τελικούς κώδικες όμως, αφήσαμε μόνο 2 από τις τιμές εκείνες για λόγους απλότητας και για πιθανή επίδραση όλων αυτών των τιμών στο μέγεθος των αρχιτεκτονικών. Η παραπάνω διαδικασία, έγινε για κάθε μια από τις αρχιτεκτονικές που αναπτύχθηκαν και το αποτέλεσμα ήταν η επιβεβαίωση της ορθής λειτουργίας τους. 72

83 Κεφάλαιο 4 : Υλοποιήσεις σε FPGA Σύνθεση και υλοποίηση αρχιτεκτονικών Το επόμενο στάδιο που ακολουθεί αυτό της προσομοίωσης, είναι εκείνο της σύνθεσης και της υλοποίησης. Κατά την διάρκεια αυτών των 2 σταδίων εξάγονται ουσιαστικά τα αποτελέσματα με βάση τα οποία θα γίνει η σύγκριση των αρχιτεκτονικών. Για αυτό το στάδιο της διαδικασίας, έγινε χρήση του Vivado , το οποίο αναπτύχθηκε από την Xilinx με σκοπό να συμπληρώσει και ίσως να αντικαταστήσει το ISE μελλοντικά. Το «μειονέκτημα» του Vivado, είναι ότι υποστηρίζει μόνο τις μεγάλες οικογένειες συσκευών όπως είναι για παράδειγμα Virtex 7 και Kintex 7. Δεν δίνει δηλαδή την δυνατότητα για χρήση «μικρότερων» συσκευών όπως για παράδειγμα είναι οι συσκευές Virtex 5. Για την εύρεση της μέγιστης συχνότητας λειτουργίας κάθε αρχιτεκτονικής, γίνεται χρήση ενός constraint file. Στο αρχείο αυτό, ορίζεται η επιθυμητή περίοδος. Στην συνέχεια εκτελείται η σύνθεση και κατόπιν γίνεται το implementation. Κατά την σύνθεση, παίρνουμε αποτελέσματα για το πόσοι πολυπλέκτες, καταχωρητές και άλλα θεμελιώδη στοιχεία θα χρησιμοποιηθούν. Η επιτυχής εκτέλεση της σύνθεσης δεν εξασφαλίζει και επιτυχή υλοποίηση. Μπορεί για παράδειγμα να μην χωράει η αρχιτεκτονική στην συσκευή που επιλέξαμε ή να μην υπάρχει ο απαραίτητος αριθμός pins εισόδου εξόδου. Το implementation είναι εκείνο το οποίο μας δίνει τα ζωτικής σημασία στοιχεία για την αρχιτεκτονική. Στις αναφορές που παράγονται, παίρνουμε αποτελέσματα τόσο για τον αριθμό slices και LUTs όσο και για την ισχύ, το critical path και το ρολόι. Σε περίπτωση που έχουμε επιλέξει περίοδο η οποία δεν μπορεί να ικανοποιηθεί από την συγκεκριμένη αρχιτεκτονική, τότε στο τέλος του implementation θα δούμε παραβίαση του setup ή του hold time το οποίο υποδεικνύει ότι πρέπει να επαναλάβουμε την διαδικασία με μικρότερη περίοδο ή να αλλάξουμε την λογική της αρχιτεκτονικής. Το Vivado παρέχει μια τεράστια γκάμα διαφορετικών στρατηγικών ανάλογα με τον στόχο που έχουμε(περιοχή,ταχύτητα,χρόνος εκτέλεσης κτλπ). Στην επόμενη εικόνα, παρουσιάζουμε ένα screenshot από την διαδικασία σύνθεσης και υλοποίησης μιας εκ των αρχιτεκτονικών μας. 73

84 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού Σχήμα 24 : Σύνθεση και υλοποίηση αρχιτεκτονικής με χρήση του Vivado «Κατέβασμα» αρχιτεκτονικής σε συσκευή FPGA Το επόμενο βήμα που ακολουθεί την σύνθεση και το implementation, είναι το κατέβασμα του κώδικα σε κάποια συσκευή. Στην παρούσα διπλωματική εργασία, ο κώδικας κατέβηκε σε ένα Virtex-5 και συγκεκριμένα χρησιμοποιήθηκε το XC5VFX70T. Ο προγραμματισμός έγινε μέσω του ISE. Προκειμένου να είμαστε σίγουροι ότι όλα πήγαν καλά, τροποποιήσαμε τους κώδικες που φαίνονται στο παράρτημα ώστε να δίνουν έξοδο output τύπου std_logic το οποίο γίνεται 0 όταν η τιμή εξόδου του αλγόριθμου, είναι ίση με μια τιμή αποθηκευμένη σε κάποιον καταχωρητή. Με άλλα λόγια, γνωρίζουμε ποια έξοδο πρέπει να δώσει μια 74

85 Κεφάλαιο 4 : Υλοποιήσεις σε FPGA συγκεκριμένη είσοδο, και την αποθηκεύουμε σε έναν καταχωρητή. Συγκρίνοντας το αποτέλεσμα στην έξοδο του αλγόριθμου με την αποθηκευμένη τιμή, επαληθεύουμε την ορθή λειτουργία. Επειδή στην πλακέτα ML507 τα LEDs είναι αναμμένα εξαρχής, το bit εξόδου το οποίο έχουμε συνδέσει με ένα από τα LEDS γίνεται 0 και άρα σβήνει το LED με το οποίο την έχουμε συνδέσει επιβεβαιώνοντας την ορθή λειτουργία. Ακολουθεί φωτογραφία από το κατέβασμα του κώδικα, στην οποία φαίνεται το σβησμένο LED. Προκειμένου να γίνει σύνδεση στα σωστά pins, μελετήθηκαν τόσο το manual του FPGA όσο και της πλακέτας. Σχήμα 25 : Επιβεβαίωση ότι η αρχιτεκτονική κατέβηκε σωστά στην συσκευή 75

86 Αρχιτεκτονικές και FPGA Υλοποιήσεις για Κρυπτογραφικές Συναρτήσεις Κατακερματισμού Σχήμα 26 : Επιβεβαίωση ορθής λειτουργίας της αρχιτεκτονικής(σβησμένο LED) Σχήμα 27: Το FPGA το οποίο χρησιμοποιήθηκε 76

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών. Aσφάλεια Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών Aσφάλεια ΣΤΟΧΟΙ ΚΕΦΑΛΑΙΟΥ Ορισµός τριών στόχων ασφάλειας - Εµπιστευτικότητα, ακεραιότητα και διαθεσιµότητα Επιθέσεις Υπηρεσίες και Τεχνικές

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

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

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

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

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

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

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

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

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

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

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

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

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

κρυπτογραϕία Ψηφιακή ασφάλεια και ιδιωτικότητα Γεώργιος Σπαθούλας Msc Πληροφορική και υπολογιστική βιοιατρική Πανεπιστήμιο Θεσσαλίας

κρυπτογραϕία Ψηφιακή ασφάλεια και ιδιωτικότητα Γεώργιος Σπαθούλας Msc Πληροφορική και υπολογιστική βιοιατρική Πανεπιστήμιο Θεσσαλίας κρυπτογραϕία Ψηφιακή ασφάλεια και ιδιωτικότητα Γεώργιος Σπαθούλας Msc Πληροφορική και υπολογιστική βιοιατρική Πανεπιστήμιο Θεσσαλίας ιδιότητες ασϕάλειας ιδιότητες ασϕάλειας αγαθών Εμπιστευτικότητα (Confidentiality)

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

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

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

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

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

ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ ΤΕΙ Κρήτης ΕΠΠ Εργαστήριο Ασφάλεια Πληροφοριακών Συστηµάτων ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ ΤΕΙ Κρητης Τµηµα Εφαρµοσµενης Πληροφορικης Και Πολυµεσων Fysarakis Konstantinos, PhD kfysarakis@staff.teicrete.gr Εισαγωγή

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 21. Κρυπτογραφία δημόσιου κλειδιού και πιστοποίηση ταυτότητας μηνυμάτων

Κεφάλαιο 21. Κρυπτογραφία δημόσιου κλειδιού και πιστοποίηση ταυτότητας μηνυμάτων Κεφάλαιο 21 Κρυπτογραφία δημόσιου κλειδιού και πιστοποίηση ταυτότητας μηνυμάτων Κρυπτογράφηση δημόσιου κλειδιού RSA Αναπτύχθηκε το 1977 από τους Rivest, Shamir και Adleman στο MIT Ο πιο γνωστός και ευρέως

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

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

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

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

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

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

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

Ψηφιακά Πιστοποιητικά Ψηφιακές Υπογραφές

Ψηφιακά Πιστοποιητικά Ψηφιακές Υπογραφές ΤΕΙ Κρητης Τμήμα Μηχανικών Πληροφορικής Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων Ψηφιακά Πιστοποιητικά Ψηφιακές Υπογραφές Ψηφιακά Πιστοποιητικά Υποδομή δημόσιου κλειδιού (Public Key Infrastructure

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

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

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

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

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

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

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

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

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

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

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

Εφαρμοσμένη Κρυπτογραφία Ι Εφαρμοσμένη Κρυπτογραφία Ι Κωνσταντίνου Ελισάβετ ekonstantinou@aegean.gr http://www.icsd.aegean.gr/ekonstantinou Ψηφιακές Υπογραφές Ορίζονται πάνω σε μηνύματα και είναι αριθμοί που εξαρτώνται από κάποιο

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 2. Κρυπτογραφικά εργαλεία

Κεφάλαιο 2. Κρυπτογραφικά εργαλεία Κεφάλαιο 2 Κρυπτογραφικά εργαλεία Συμμετρική κρυπτογράφηση Καθολικά αποδεκτή τεχνική που χρησιμοποιείται για τη διαφύλαξη της εμπιστευτικότητας δεδομένων τα οποία μεταδίδονται ή αποθηκεύονται Γνωστή και

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

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο. Ψηφιακή Υπογραφή και Αυθεντικοποίηση Μηνύματος

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο. Ψηφιακή Υπογραφή και Αυθεντικοποίηση Μηνύματος ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο Ψηφιακή Υπογραφή και Αυθεντικοποίηση Μηνύματος 1 ΠΕΡΙΕΧΟΜΕΝΑ Ψηφιακές Υπογραφές Ασύμμετρης Κρυπτογραφίας Συστήματα ψηφιακής υπογραφής με αυτοανάκτηση Συστήματα

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

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

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

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

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 χρησιμοποιειται για να ανιχνευσει τυχον αλλαγες στο

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

ΥΠΟΛΟΓΙΣΤΙΚΗ ΚΡΥΠΤΟΓΡΑΦΙΑ

ΥΠΟΛΟΓΙΣΤΙΚΗ ΚΡΥΠΤΟΓΡΑΦΙΑ ΥΠΟΛΟΓΙΣΤΙΚΗ ΚΡΥΠΤΟΓΡΑΦΙΑ Εισαγωγή Άρης Παγουρτζής Στάθης Ζάχος Σχολή ΗΜΜΥ ΕΜΠ Διοικητικά του μαθήματος Διδάσκοντες Στάθης Ζάχος Άρης Παγουρτζής Πέτρος Ποτίκας (2017-18) Βοηθοί διδασκαλίας Παναγιώτης Γροντάς

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

Ψηφιακά Πιστοποιητικά Ψηφιακές Υπογραφές

Ψηφιακά Πιστοποιητικά Ψηφιακές Υπογραφές ΤΕΙ Κρητης Τμήμα Μηχανικών Πληροφορικής Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων Ψηφιακά Πιστοποιητικά Ψηφιακές Υπογραφές Φυσαράκης Κων/νος, PhD kfysarakis@staff.teicrete.gr Ψηφιακά Πιστοποιητικά Εισαγωγή

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

Εισαγωγή στην Κρυπτολογία 3. Ασφάλεια Τηλεπικοινωνιακών Συστημάτων Κωδικός DIΤ114 Σταύρος ΝΙΚΟΛΟΠΟΥΛΟΣ

Εισαγωγή στην Κρυπτολογία 3. Ασφάλεια Τηλεπικοινωνιακών Συστημάτων Κωδικός DIΤ114 Σταύρος ΝΙΚΟΛΟΠΟΥΛΟΣ Εισαγωγή στην Κρυπτολογία 3 Ασφάλεια Τηλεπικοινωνιακών Συστημάτων Κωδικός DIΤ114 Σταύρος ΝΙΚΟΛΟΠΟΥΛΟΣ Ακεραιότητα Μονόδρομη Κρυπτογράφηση Ακεραιότητα Αυθεντικότητα μηνύματος Ακεραιότητα μηνύματος Αυθεντικότητα

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

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 11η Διάλεξη: Ασφάλεια στο Web

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 11η Διάλεξη: Ασφάλεια στο Web Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 11η Διάλεξη: Ασφάλεια στο Web Δρ. Απόστολος Γκάμας Λέκτορας (407/80) gkamas@uop.gr Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 1 1 Εισαγωγικά Βασικές

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

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

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

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

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

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

El Gamal Αλγόριθμος. Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 7 2

El Gamal Αλγόριθμος. Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 7 2 Κρυπτογραφία Εργαστηριακό μάθημα 7 (Αλγόριθμοι Δημοσίου Κλειδιού) α) El Gamal β) Diffie-Hellman αλγόριθμος για την ανταλλαγή συμμετρικού κλειδιού κρυπτογράφησης El Gamal Αλγόριθμος Παράμετροι συστήματος:

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

ΨΗΦΙΑΚΑ ΠΙΣΤΟΠΟΙΗΤΙΚΑ ΓΙΑ ΑΣΦΑΛΗ ΚΑΙ ΠΙΣΤΟΠΟΙΗΜΕΝΗ ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΗΝ ΤΡΑΠΕΖΑ ΤΗΣ ΕΛΛΑΔΟΣ. Οδηγίες προς τις Συνεργαζόμενες Τράπεζες

ΨΗΦΙΑΚΑ ΠΙΣΤΟΠΟΙΗΤΙΚΑ ΓΙΑ ΑΣΦΑΛΗ ΚΑΙ ΠΙΣΤΟΠΟΙΗΜΕΝΗ ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΗΝ ΤΡΑΠΕΖΑ ΤΗΣ ΕΛΛΑΔΟΣ. Οδηγίες προς τις Συνεργαζόμενες Τράπεζες ΨΗΦΙΑΚΑ ΠΙΣΤΟΠΟΙΗΤΙΚΑ ΓΙΑ ΑΣΦΑΛΗ ΚΑΙ ΠΙΣΤΟΠΟΙΗΜΕΝΗ ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΗΝ ΤΡΑΠΕΖΑ ΤΗΣ ΕΛΛΑΔΟΣ Οδηγίες προς τις Συνεργαζόμενες Τράπεζες 1. Εισαγωγή Γνωριμία με τα Ψηφιακά Πιστοποιητικά Η χρήση ηλεκτρονικών

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

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

ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΕΦΑΡΜΟΓΕΣ ΤΗΣ ΚΡΥΠΤΟΓΡΑΦΙΑΣ ΤΕΙ ΔΥΤΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΠΜΣ ΕΠΙΧΕΙΡΗΜΑΤΙΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΕΦΑΡΜΟΓΕΣ ΤΗΣ ΚΡΥΠΤΟΓΡΑΦΙΑΣ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΑΠΟΣΤΟΛΙΔΟΥ ΚΥΡΙΑΚΗ ΕΠΙΒΛΕΠΩΝ: ΜΠΙΣΜΠΑΣ ΑΝΤΩΝΙΟΣ, Καθηγητής

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

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

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

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

Freedom of Speech. Κρυπτογραφία και ασφαλής ανταλλαγή πληροφοριών στο Internet

Freedom of Speech. Κρυπτογραφία και ασφαλής ανταλλαγή πληροφοριών στο Internet Freedom of Speech Κρυπτογραφία και ασφαλής ανταλλαγή πληροφοριών στο Internet Freedom of Speech Ποιός ; & Γιατί ; Τι είναι Ιστορικά Στόχοι Είδη Μοντέρνων Αλγορίθμων Μοντέλα Εμπιστοσύνης 14/03/2012 Freedom

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

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

Ασφάλεια Πληροφοριακών Συστηµάτων Ασφάλεια Πληροφοριακών Συστηµάτων Κρυπτογραφία/Ψηφιακές Υπογραφές Διάλεξη 3η Δρ. A. Στεφανή Τµ. Διοίκησης Επιχειρήσεων, ΤΕΙ Δυτ. Ελλάδας Ψηφιακές Υπογραφές- Βασικές Αρχές Η Ψηφιακή Υπογραφή είναι ένα µαθηµατικό

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

Ασφάλεια στο Ηλεκτρονικό Επιχειρείν. ΤΕΙ Δυτικής Ελλάδας Τμήμα Διοίκησης Επιχειρήσεων - Πάτρα Κουτσονίκος Γιάννης

Ασφάλεια στο Ηλεκτρονικό Επιχειρείν. ΤΕΙ Δυτικής Ελλάδας Τμήμα Διοίκησης Επιχειρήσεων - Πάτρα Κουτσονίκος Γιάννης Ασφάλεια στο Ηλεκτρονικό Επιχειρείν ΤΕΙ Δυτικής Ελλάδας Τμήμα Διοίκησης Επιχειρήσεων - Πάτρα Κουτσονίκος Γιάννης 1 Κίνδυνοι Η-Ε Μερικοί από τους κινδύνους ενός δικτυακού τόπου Ε-εμπορίου περιλαμβάνουν:

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

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

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

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

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

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

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

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

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

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

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

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο Τοπολογίες Διατάξεων Κρυπτογράφησης- Ασφάλεια Δικτύων και Ασφάλεια Ηλεκτρονικού Ταχυδρομείου Διδάσκων : Δρ. Παρασκευάς Κίτσος Επίκουρος Καθηγητής e-mail:

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

9 - Ασφάλεια Ηλεκτρονικών Συναλλαγών ΕΘΝΙΚΗ ΣΧΟΛΗ ΔΗΜΟΣΙΑΣ ΔΙΟΙΚΗΣΗΣ & ΑΥΤΟΔΙΟΙΚΗΣΗΣ

9 - Ασφάλεια Ηλεκτρονικών Συναλλαγών ΕΘΝΙΚΗ ΣΧΟΛΗ ΔΗΜΟΣΙΑΣ ΔΙΟΙΚΗΣΗΣ & ΑΥΤΟΔΙΟΙΚΗΣΗΣ 9 - Ασφάλεια Ηλεκτρονικών Συναλλαγών ΕΘΝΙΚΗ ΣΧΟΛΗ ΔΗΜΟΣΙΑΣ ΔΙΟΙΚΗΣΗΣ & ΑΥΤΟΔΙΟΙΚΗΣΗΣ Ενότητες Πυλώνες εμπιστοσύνης ηλεκτρονικών συναλλαγών Κρυπτογράφηση Δημόσιο και ιδιωτικό κλειδί Ψηφιακή υπογραφή Ψηφιακά

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

Threshold Cryptography Algorithms. Εργασία στα πλαίσια του μαθήματος Τεχνολογίες Υπολογιστικού Νέφους

Threshold Cryptography Algorithms. Εργασία στα πλαίσια του μαθήματος Τεχνολογίες Υπολογιστικού Νέφους Threshold Cryptography Algorithms Εργασία στα πλαίσια του μαθήματος Τεχνολογίες Υπολογιστικού Νέφους Ορισμός Το σύστημα το οποίο τεμαχίζει ένα κλειδί k σε n τεμάχια έτσι ώστε οποιοσδήποτε συνδυασμός πλήθους

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

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

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

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

ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΑΚΥΒΕΡΝΗΣΗ ΣΤΗΝ ΕΕ

ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΑΚΥΒΕΡΝΗΣΗ ΣΤΗΝ ΕΕ ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΑΚΥΒΕΡΝΗΣΗ Ψηφιακές υπογραφές ΝΙΚΟΣ ΣΑΡΙΔΑΚΗΣ ΣΤΑΣΗΣ ΑΝΤΩΝΗΣ Γενική Γραμματεία Δημόσιας Διοίκησης και Ηλεκτρονικής Διακυβέρνησης ΥΠΕΣΔΔΑ 1 ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΑΚΥΒΕΡΝΗΣΗ ΣΤΗΝ ΕΕ ΠΟΛΙΤΕΣ ΕΠΙΧΕΙΡΗΣΕΙΣ

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

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

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

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

ΨΗΦΙΑΚΗ ΥΠΟΓΡΑΦΗ. Απόστολος Πλεξίδας Προϊστάµενος της ιεύθυνσης ιαφάνειας & Ηλεκτρονικής ιακυβέρνησης της Περιφέρεια Κεντρικής Μακεδονίας

ΨΗΦΙΑΚΗ ΥΠΟΓΡΑΦΗ. Απόστολος Πλεξίδας Προϊστάµενος της ιεύθυνσης ιαφάνειας & Ηλεκτρονικής ιακυβέρνησης της Περιφέρεια Κεντρικής Μακεδονίας ΨΗΦΙΑΚΗ ΥΠΟΓΡΑΦΗ Προϊστάµενος της ιεύθυνσης ιαφάνειας & Ηλεκτρονικής ιακυβέρνησης της Περιφέρεια Κεντρικής Μακεδονίας 1 ΠΕΡΙΕΧΟΜΕΝΑ Hλεκτρονική υπογραφή, τι είναι, τρόπος λειτουργίας Χειρογραφη Ηλεκτρονική

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

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

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

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

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

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

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

Cryptography and Network Security Chapter 13. Fifth Edition by William Stallings

Cryptography and Network Security Chapter 13. Fifth Edition by William Stallings Cryptography and Network Security Chapter 13 Fifth Edition by William Stallings Chapter 13 Digital Signatures To guard against the baneful influence exerted by strangers is therefore an elementary dictate

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πρώτοι αριθμοί και κρυπτογραφικός αλγόριθμος RSA. Άριστος Χαραλάμπους, Δημήτρης Χαραλάμπους, Νικόλας Παρασκευάς

Πρώτοι αριθμοί και κρυπτογραφικός αλγόριθμος RSA. Άριστος Χαραλάμπους, Δημήτρης Χαραλάμπους, Νικόλας Παρασκευάς Πρώτοι αριθμοί και κρυπτογραφικός αλγόριθμος RSA Άριστος Χαραλάμπους, Δημήτρης Χαραλάμπους, Νικόλας Παρασκευάς Πρώτοι Αριθμοί Πρώτος αριθμός ονομάζεται ένας φυσικός αριθμός (δηλ. θετικός ακέραιος) μεγαλύτερος

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

Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων. PGP (Pretty Good Privacy)

Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων. PGP (Pretty Good Privacy) Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων PGP (Pretty Good Privacy) Εισαγωγή Το λογισμικό Pretty Good Privacy (PGP), το οποίο σχεδιάστηκε από τον Phill Zimmerman, είναι ένα λογισμικό κρυπτογράφησης

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

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

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

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

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

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

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

ΕΠΑΝΑΛΗΠΤΙΚΟ ΤΕΣΤ ΣΤΗΝ ΕΝΟΤΗΤΑ

ΕΠΑΝΑΛΗΠΤΙΚΟ ΤΕΣΤ ΣΤΗΝ ΕΝΟΤΗΤΑ ΕΠΑ.Λ. Άμφισσας Σχολικό Έτος : 2011-2012 Τάξη : Γ Τομέας : Πληροφορικής Μάθημα : ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ Διδάσκων : Χρήστος Ρέτσας Η-τάξη : tiny.cc/retsas-diktya2 ΕΠΑΝΑΛΗΠΤΙΚΟ ΤΕΣΤ ΣΤΗΝ ΕΝΟΤΗΤΑ 8.3.4-8.3.6

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

Cryptography and Network Security Chapter 9. Fifth Edition by William Stallings

Cryptography and Network Security Chapter 9. Fifth Edition by William Stallings Cryptography and Network Security Chapter 9 Fifth Edition by William Stallings Chapter 9 Κρυπτογραφια Δημοσιου Κλειδιου και RSA Every Egyptian received two names, which were known respectively as the true

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

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

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

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

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

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

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

ΕΠΑΝΑΛΗΠΤΙΚΟ ΤΕΣΤ ΣΤΗΝ ΕΝΟΤΗΤΑ

ΕΠΑΝΑΛΗΠΤΙΚΟ ΤΕΣΤ ΣΤΗΝ ΕΝΟΤΗΤΑ ΕΠΑ.Λ. Άμφισσας Σχολικό Έτος : 2011-2012 Τάξη : Γ Τομέας : Πληροφορικής Μάθημα : ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ Διδάσκων : Χρήστος Ρέτσας Η-τάξη : tiny.cc/retsas-diktya2 ΕΠΑΝΑΛΗΠΤΙΚΟ ΤΕΣΤ ΣΤΗΝ ΕΝΟΤΗΤΑ 8.3.1-8.3.3

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

Κεφάλαια 2&21. Συναρτήσεις κατακερματισμού Πιστοποίηση ταυτότητας μηνυμάτων

Κεφάλαια 2&21. Συναρτήσεις κατακερματισμού Πιστοποίηση ταυτότητας μηνυμάτων Κεφάλαια 2&21 Συναρτήσεις κατακερματισμού Πιστοποίηση ταυτότητας μηνυμάτων Ενεργητικές επιθέσεις Η κρυπτογράφηση παρέχει προστασία από παθητικές επιθέσεις (υποκλοπή). Μια διαφορετική απαίτηση είναι η προστασία

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

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

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

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

Διαχείριση Ασφάλειας και Εμπιστοσύνης σε Πολιτισμικά Περιβάλλοντα

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

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

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

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

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

Κρυπτοσύστημα RSA (Rivest, Shamir, Adlemann, 1977) Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία

Κρυπτοσύστημα RSA (Rivest, Shamir, Adlemann, 1977) Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία Κρυπτογραφία Δημοσίου Κλειδιού Άρης Παγουρτζής Στάθης Ζάχος Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Κρυπτοσύστημα

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

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

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

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

Διαχείριση Ασφάλειας και Εμπιστοσύνης σε Πολιτισμικά Περιβάλλοντα

Διαχείριση Ασφάλειας και Εμπιστοσύνης σε Πολιτισμικά Περιβάλλοντα Διαχείριση Ασφάλειας και Εμπιστοσύνης σε Πολιτισμικά Περιβάλλοντα Ενότητα 6: ΑΣΦΑΛΕΙΑ ΚΑΙ ΕΜΠΙΣΤΟΣΥΝΗ ΣΤΟ ΔΙΑΔΙΚΤΥΟ, ΨΗΦΙΑΚΑ ΠΙΣΤΟΠΟΙΗΤΙΚΑ-ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ Δημήτριος Κουκόπουλος Σχολή Οργάνωσης και Διοίκησης

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

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

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

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

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

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

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

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

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

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

Δραστηριότητες σχετικά με κρυπτογραφία και ελέγχους ισοτιμίας

Δραστηριότητες σχετικά με κρυπτογραφία και ελέγχους ισοτιμίας Δραστηριότητες σχετικά με κρυπτογραφία και ελέγχους ισοτιμίας Δραστηριότητα 6: Κωδικοί και κρυπτογραφία Το αντικείμενο της δραστηριότητας αυτής είναι η κατανόηση από την πλευρά των μαθητών μερικών στοιχειωδών

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΚΦΩΝΗΣΕΙΣ ΘΕΜΑ Α. α. Πριν εμφανιστεί η τεχνολογία ISDN οι υπηρεσίες φωνής, εικόνας και δεδομένων απαιτούσαν διαφορετικά δίκτυα.

ΕΚΦΩΝΗΣΕΙΣ ΘΕΜΑ Α. α. Πριν εμφανιστεί η τεχνολογία ISDN οι υπηρεσίες φωνής, εικόνας και δεδομένων απαιτούσαν διαφορετικά δίκτυα. ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗ ΕΠΑΛ (ΟΜΑΔΑ Α ) & ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΕΠΑΛ (ΟΜΑΔΑ Β ) ΘΕΜΑ Α ΚΥΡΙΑΚΗ 04/05/2014- ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΟΚΤΩ (8) ΕΚΦΩΝΗΣΕΙΣ Α1. Να χαρακτηρίσετε

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