Αρχιτεκτονικές και FPGA υλοποιήσεις για κρυπτογραφικούς αλγορίθμους χαμηλής πολυπλοκότητας

Η παρούσα διπλωματική εργασία πραγματεύεται την εφαρμογή και υλοποίηση αρχιτεκτονικών σε αλγορίθμους Χαμηλής Πολυπλοκότητας (Lightweight Cryptographic Algorithms). Οι αλγόριθμοι που επιλέχθηκαν είναι ο SIMON και ο RoadRunneR. Οι λόγοι για τους οποίους επιλέχθηκαν οι δύο αυτοί αλγόριθμοι είναι το μ...

Full description

Bibliographic Details
Main Author: Γεωργίου, Γεώργιος
Other Authors: Georgiou, George
Language:Greek
Published: 2021
Subjects:
Online Access:http://hdl.handle.net/10889/14671
Description
Summary:Η παρούσα διπλωματική εργασία πραγματεύεται την εφαρμογή και υλοποίηση αρχιτεκτονικών σε αλγορίθμους Χαμηλής Πολυπλοκότητας (Lightweight Cryptographic Algorithms). Οι αλγόριθμοι που επιλέχθηκαν είναι ο SIMON και ο RoadRunneR. Οι λόγοι για τους οποίους επιλέχθηκαν οι δύο αυτοί αλγόριθμοι είναι το μεγάλο εύρος των εφαρμογών που βρίσκουν, η διαφορετικότητα των δομών τους και η ευκολία στο να υλοποιηθούν οι μεικτές τους εκδόσεις κρυπτογράφησης-αποκρυπτογράφησης. Οι εφαρμοσμένες αρχιτεκτονικές είναι οι Reuse, Unrolling και Pipeline, καθώς και ο συνδυασμός αυτών. Η επιλογή την αρχιτεκτονικών έγινε με γνώμονα την επαναληπτική φύση των προαναφερόμενων αλγορίθμων, ενώ οι συνδυασμοί τους επιλέχθηκαν προκειμένου να μελετηθεί η επίδραση των αρχιτεκτονικών στην απόδοση των αλγορίθμων εκτενέστερα. Εφαρμόσαμε τους παράγοντες ξεδιπλώματος 1, 2, 3 και 6 στην Unrolling αρχιτεκτονική και δύο στάδια διασωλήνωσης στην Pipeline αρχιτεκτονική. Ο λόγος της επιλογής μας αυτής εντοπίζεται στον αριθμό των κύκλων του RoadRunneR. Επιλέξαμε να εφαρμόσουμε τις αρχιτεκτονικές αυτές σε τρείς εκδόσεις των αλγορίθμων. Ο λόγος γίνεται για την έκδοση Κρυπτογράφησης (Encryption-Only), την έκδοση Αποκρυπτογράφησης (Decryption-only) και την Μεικτή έκδοση (Combined). Η περιγραφή των αλγορίθμων σε υλικό έγινε στο ελεύθερο προς χρήση λογισμικό Modelsim της Mentor Graphics με την χρήση της γλώσσας VHDL. Για την επιβεβαίωση της ορθής λειτουργίας των εκδόσεων, αναπτύχθηκαν προγράμματα σε γλώσσα C και Python. Τα δεδομένα για την επιβεβαίωση (test vectors) προήλθαν από αξιόπιστες πηγές στο διαδίκτυο. Την επιβεβαίωσης ορθής λειτουργίας ακολούθησε η πραγματοποίηση πειραματικών μετρήσεων με χρήση του λογισμικού υλοποίησης Vivado της Xilinx. Τα μεγέθη τα οποία επιλέχθηκαν να παρθούν πειραματικά είναι η Μέγιστη Συχνότητα Λειτουργίας (Maximum Frequency), η Επιφάνεια Ολοκλήρωσης (Area), η Ρυθμαπόδοση (Throughput), η Ρυθμαπόδοση ανά Επιφάνεια Ολοκλήρωσης (Throughput/Area) και η Ενέργεια ανά Bit (Energy per Bit). Τα συμπεράσματα για την απόδοση των δύο αλγορίθμων διεξάχθηκαν από την μελέτη της συμπεριφοράς τους ως προς αυτά τα μεγέθη όταν εφαρμόζονταν οι προαναφερόμενες αρχιτεκτονικές. Για την διεξαγωγή των μετρήσεων επιλέχθηκαν δύο συσκευές FPGA, το xc7k70tfbg484 της οικογένειας Kintex-7 και το xc7s50fgga484 της οικογένειας Spartan-7. Εκτός από την σύγκριση των αποδόσεων των αλγορίθμων έγινε και η σύγκριση των αποδόσεων των δύο χρησιμοποιούμενων FPGA ως προς τις προαναφερόμενες μετρικές. Από την μελέτη των πειραματικών μετρήσεων εξάγουμε σημαντικές παρατηρήσεις και συμπεράσματα που σχετίζονται με την γενική απόδοση των αλγορίθμων, τα πλεονεκτήματα της Pipeline αρχιτεκτονικής καθώς και την επίδραση του παράγοντα ξεδιπλώματος στην απόδοση των υλοποιήσεων.