Σχεδιασμός και υλοποίηση σε υλικό του αλγόριθμου κρυπτογράφησης KASUMI
Date Issued
2016
Author(s)
Advisor
Abstract
Στην παρούσα διπλωματική εργασία μελετήθηκε, αναλύθηκε και υλοποιήθηκε ο αλγόριθμος κρυπτογράφησης KASUMI, όπως αυτός παρουσιάζεται από τις διάφορες επίσημες δημοσιεύσεις και από το πρότυπο όπου δημοσίευσε η SAGE (Security Algorithms Group of Experts) στις 23 Δεκεμβρίου 1999.
Πρώτα έγινε μελέτη του αλγόριθμου από τις διάφορες δημοσιεύσεις με σκοπό την κατανόηση του. Στη συνέχεια, έγινε η ανάλυση των μαθηματικών μοντέλων που περιλαμβάνει ο αλγόριθμος. Επίσης, για τον έλεγχο της ορθής λειτουργία του αλγόριθμου δημιουργήθηκε ένα μοντέλο σε γλώσσα προγραμματισμού C. Αυτό το μοντέλο χρησιμοποιήθηκε αργότερα όταν υλοποιούσαμε τον αλγόριθμο σε γλώσσα περιγραφής υλικού. Μετά την ολοκλήρωση του αλγόριθμου σε γλώσσα προγραμματισμού C, σχεδιάστηκαν γραφικά όλες οι συναρτήσεις του αλγόριθμου, οι διαδικασίες υπολογισμού του κλειδιού κρυπτογράφησης και οι υλοποιήσεις των σταδίων διασωλήνωσης 2, 4 και 8. Αφού σχεδιάστηκαν οι υλοποιήσεις των σταδίων διασωλήνωσης, στην συνέχεια υλοποιήθηκαν στην γλώσσα περιγραφής υλικού VHDL (Very High speed integrated circuits hardware Description Language). Επίσης, έγινε προσομοίωση των τεσσάρων αυτών αρχείων, καθώς και όλων των συναρτήσεων του αλγόριθμου, με τη χρήση του εργαλείου προσομοίωσης ModelSim της εταιρείας Mentor Graphics με σκοπό τον έλεγχο της ορθής λειτουργίας και χρονισμού. Τέλος, με το εργαλείο ISE Design suite της εταιρείας Xilinx, έγινε σύνθεση των σχεδιασμών σε υλικό και εφαρμογή τους σε FPGA.
Η SAGE μαζί με τη δημοσίευση του προτύπου του αλγόριθμου, δημοσίευσε και μηνύματα ελέγχου ορθότητας (test vectors), καθώς και όλα τους τα ενδιάμεσα σήματα. Τα μηνύματα ελέγχου ορθότητας είναι είσοδοι που γνωρίζουμε από πριν τις εξόδους τους. Χρησιμοποιώντας αυτές τις εισόδους μπορούμε να ελέγξουμε την ορθότητα του αλγόριθμου μας. Επίσης, εκτός από αυτά τα μηνύματα ελέγχου ορθότητας, δημιουργήσαμε και άλλα από την υλοποίηση του αλγόριθμου σε γλώσσα προγραμματισμού C.
Τέλος, για να πάρουμε τα τελικά αποτελέσματα έγινε σύγκριση των τεσσάρων υλοποιήσεων με έμφαση στη συχνότητα (frequency), την επιφάνεια ολοκλήρωσης (area), τη ρυθμαπόδοση (throughput) και στη ρυθμαπόδοση προς επιφάνεια ολοκλήρωσης (throughput per area) έτσι ώστε να βρεθεί η βέλτιστη υλοποίηση.
Πρώτα έγινε μελέτη του αλγόριθμου από τις διάφορες δημοσιεύσεις με σκοπό την κατανόηση του. Στη συνέχεια, έγινε η ανάλυση των μαθηματικών μοντέλων που περιλαμβάνει ο αλγόριθμος. Επίσης, για τον έλεγχο της ορθής λειτουργία του αλγόριθμου δημιουργήθηκε ένα μοντέλο σε γλώσσα προγραμματισμού C. Αυτό το μοντέλο χρησιμοποιήθηκε αργότερα όταν υλοποιούσαμε τον αλγόριθμο σε γλώσσα περιγραφής υλικού. Μετά την ολοκλήρωση του αλγόριθμου σε γλώσσα προγραμματισμού C, σχεδιάστηκαν γραφικά όλες οι συναρτήσεις του αλγόριθμου, οι διαδικασίες υπολογισμού του κλειδιού κρυπτογράφησης και οι υλοποιήσεις των σταδίων διασωλήνωσης 2, 4 και 8. Αφού σχεδιάστηκαν οι υλοποιήσεις των σταδίων διασωλήνωσης, στην συνέχεια υλοποιήθηκαν στην γλώσσα περιγραφής υλικού VHDL (Very High speed integrated circuits hardware Description Language). Επίσης, έγινε προσομοίωση των τεσσάρων αυτών αρχείων, καθώς και όλων των συναρτήσεων του αλγόριθμου, με τη χρήση του εργαλείου προσομοίωσης ModelSim της εταιρείας Mentor Graphics με σκοπό τον έλεγχο της ορθής λειτουργίας και χρονισμού. Τέλος, με το εργαλείο ISE Design suite της εταιρείας Xilinx, έγινε σύνθεση των σχεδιασμών σε υλικό και εφαρμογή τους σε FPGA.
Η SAGE μαζί με τη δημοσίευση του προτύπου του αλγόριθμου, δημοσίευσε και μηνύματα ελέγχου ορθότητας (test vectors), καθώς και όλα τους τα ενδιάμεσα σήματα. Τα μηνύματα ελέγχου ορθότητας είναι είσοδοι που γνωρίζουμε από πριν τις εξόδους τους. Χρησιμοποιώντας αυτές τις εισόδους μπορούμε να ελέγξουμε την ορθότητα του αλγόριθμου μας. Επίσης, εκτός από αυτά τα μηνύματα ελέγχου ορθότητας, δημιουργήσαμε και άλλα από την υλοποίηση του αλγόριθμου σε γλώσσα προγραμματισμού C.
Τέλος, για να πάρουμε τα τελικά αποτελέσματα έγινε σύγκριση των τεσσάρων υλοποιήσεων με έμφαση στη συχνότητα (frequency), την επιφάνεια ολοκλήρωσης (area), τη ρυθμαπόδοση (throughput) και στη ρυθμαπόδοση προς επιφάνεια ολοκλήρωσης (throughput per area) έτσι ώστε να βρεθεί η βέλτιστη υλοποίηση.
File(s)![Thumbnail Image]()
Name
Περίληψη.pdf
Size
502.93 KB
Format
Adobe PDF
Checksum (MD5)
02fab7bf1fdc9e856aa2fd750821bc7f

