Περίληψη: | Η παρούσα διπλωματική εργασία πραγματεύεται το σχεδιασμό και την υλοποίηση Κρυπτογραφικών Αλγορίθμων Χαμηλής Πολυπλοκότητας (Lightweight Cryptographic Algorithms). Στόχος της είναι η ανάπτυξη τεσσάρων κρυπτογραφικών αλγορίθμων με την εφαρμογή διαφόρων αρχιτεκτονικών και συγκεκριμένα των Reuse, Unrolling, Pipeline και συνδυασμών αυτών, ώστε να μπορέσουν να αναδειχθούν με σαφήνεια τα χαρακτηριστικά κάθε μιας από αυτές. Η μελέτη που διεξήχθη αφορούσε τους αλγορίθμους LBlock, Piccolo, Twine και Klein. Για κάθε έναν από τους παραπάνω αλγορίθμους προκύπτουν τρεις εκδόσεις: μια για λειτουργία κρυπτογράφησης (Encryption Only), μια για λειτουργία αποκρυπτογράφησης (Decryption Only), καθώς και μία που προκύπτει ως συνδυασμός αυτών στο ίδιο κύκλωμα (Combined). Κατά την διάρκεια του σχεδιασμού κάθε μίας εκ των προηγούμενων εκδόσεων σε κάθε αλγόριθμο, εφαρμόστηκαν οι αρχιτεκτονικές Reuse, Pipeline δύο σταδίων, Reuse με Unrolling δύο, τεσσάρων και οκτώ σταδίων καθώς και Pipeline δύο σταδίων με Unrolling δύο, τεσσάρων και οκτώ σταδίων. Αυτό οδήγησε στην υλοποίηση συνολικά 93 διαφορετικών σχεδιασμών. Η περιγραφή των αλγορίθμων στο υλικό έγινε σε γλώσσα VHDL. Η προσομοίωση και η επιβεβαίωση της ορθής λειτουργίας τους έγινε μέσω του εργαλείου Modelsim της Mentor Graphics, αφού αρχικά υλοποιήθηκαν σε γλώσσα προγραμματισμού C για την εξακρίβωση των αποτελεσμάτων τους. Με το πέρας των υλοποιήσεων, διεξήχθησαν πειραματικές μετρήσεις των παραμέτρων που αναφέρονται παρακάτω, με την βοήθεια του εργαλείου σχεδιασμού Vivado της Xilinx. Αυτές αφορούν τη μέγιστη συχνότητα λειτουργίας, την επιφάνεια ολοκλήρωσης, τη ρυθμαπόδοση, την κατανάλωση ισχύος καθώς και κάποιες που προκύπτουν συναρτήσει αυτών, όπως ο λόγος της ρυθμαπόδοσης προς την επιφάνεια ολοκλήρωσης (Throughput/Area) και της κατανάλωσης ισχύος ανά bit (Power/Bit). Οι μετρικές αυτές προέκυψαν από την εφαρμογή των υλοποιημένων σχεδιασμών σε τρία διαφορετικά FPGA devices της Xilinx: το xc7k70tfbg484 της οικογένειας Kintex-7, το xc7vx330tffg1 της οικογένειας Virtex-7 και το xc7s50fgga484 της οικογένειας Spartan-7. Σκοπός αυτού ήταν η μελέτη της συμπεριφοράς της κάθε αρχιτεκτονικής στους τέσσερις αυτούς Κρυπτογραφικούς Αλγορίθμους Χαμηλής Πολυπλοκότητας, βάσει των παραπάνω μετρικών. Τέλος, έγινε η σύγκριση των τριών αυτών devices ως προς τις συγκεκριμένες μετρικές, με σκοπό την εξαγωγή συμπερασμάτων σχετικά με τις αποδόσεις τους. Από τη διερεύνηση των αποτελεσμάτων προκύπτει το συμπέρασμα ότι οι σχεδιασμοί που εκτελούν λίγα συνδυαστικά βήματα (ένα ή δύο) σε έναν κύκλο ρολογιού, έχουν μεγάλη συχνότητα λειτουργίας και μικρή επιφάνεια ολοκλήρωσης, ενώ αυτοί με περισσότερα βήματα (δύο ή τέσσερα) παρουσιάζουν ικανοποιητική ρυθμαπόδοση και αποδεκτές τιμές του λόγου της ρυθμαπόδοσης προς την επιφάνεια ολοκλήρωσης. Με την εκτέλεση πολλών βημάτων (οκτώ) η απόδοση πέφτει. Όσο αυξάνεται ο αριθμός αυτών παρατηρείται αύξηση στην κατανάλωση ισχύος.
|