Αρχιτεκτονικές και FPGA υλοποιήσεις κρυπτογραφικών αλγορίθμων χαμηλής πολυπλοκότητας
Η παρούσα διπλωματική εργασία πραγματεύεται το σχεδιασμό και την υλοποίηση Κρυπτογραφικών Αλγορίθμων Χαμηλής Πολυπλοκότητας (Lightweight Cryptographic Algorithms). Στόχος της είναι η ανάπτυξη τεσσάρων κρυπτογραφικών αλγορίθμων με την εφαρμογή διαφόρων αρχιτεκτονικών και συγκεκριμένα των Reuse, Unrol...
Κύριοι συγγραφείς: | , |
---|---|
Άλλοι συγγραφείς: | |
Μορφή: | Thesis |
Γλώσσα: | Greek |
Έκδοση: |
2019
|
Θέματα: | |
Διαθέσιμο Online: | http://hdl.handle.net/10889/12608 |
id |
nemertes-10889-12608 |
---|---|
record_format |
dspace |
institution |
UPatras |
collection |
Nemertes |
language |
Greek |
topic |
Κρυπτογραφία χαμηλής πολυπλοκότητας Αρχιτεκτονικές Αλγόριθμοι Lightweight cryptography Architectures Algorithms Field-Programmable Gate Array (FPGA) 005.824 |
spellingShingle |
Κρυπτογραφία χαμηλής πολυπλοκότητας Αρχιτεκτονικές Αλγόριθμοι Lightweight cryptography Architectures Algorithms Field-Programmable Gate Array (FPGA) 005.824 Μωραΐτης, Στυλιανός Σεϊτανίδης, Δημήτριος-Ιωάννης Αρχιτεκτονικές και FPGA υλοποιήσεις κρυπτογραφικών αλγορίθμων χαμηλής πολυπλοκότητας |
description |
Η παρούσα διπλωματική εργασία πραγματεύεται το σχεδιασμό και την υλοποίηση Κρυπτογραφικών Αλγορίθμων Χαμηλής Πολυπλοκότητας (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 ως προς τις συγκεκριμένες μετρικές, με σκοπό την εξαγωγή συμπερασμάτων σχετικά με τις αποδόσεις τους. Από τη διερεύνηση των αποτελεσμάτων προκύπτει το συμπέρασμα ότι οι σχεδιασμοί που εκτελούν λίγα συνδυαστικά βήματα (ένα ή δύο) σε έναν κύκλο ρολογιού, έχουν μεγάλη συχνότητα λειτουργίας και μικρή επιφάνεια ολοκλήρωσης, ενώ αυτοί με περισσότερα βήματα (δύο ή τέσσερα) παρουσιάζουν ικανοποιητική ρυθμαπόδοση και αποδεκτές τιμές του λόγου της ρυθμαπόδοσης προς την επιφάνεια ολοκλήρωσης. Με την εκτέλεση πολλών βημάτων (οκτώ) η απόδοση πέφτει. Όσο αυξάνεται ο αριθμός αυτών παρατηρείται αύξηση στην κατανάλωση ισχύος. |
author2 |
Θεοδωρίδης, Γεώργιος |
author_facet |
Θεοδωρίδης, Γεώργιος Μωραΐτης, Στυλιανός Σεϊτανίδης, Δημήτριος-Ιωάννης |
format |
Thesis |
author |
Μωραΐτης, Στυλιανός Σεϊτανίδης, Δημήτριος-Ιωάννης |
author_sort |
Μωραΐτης, Στυλιανός |
title |
Αρχιτεκτονικές και FPGA υλοποιήσεις κρυπτογραφικών αλγορίθμων χαμηλής πολυπλοκότητας |
title_short |
Αρχιτεκτονικές και FPGA υλοποιήσεις κρυπτογραφικών αλγορίθμων χαμηλής πολυπλοκότητας |
title_full |
Αρχιτεκτονικές και FPGA υλοποιήσεις κρυπτογραφικών αλγορίθμων χαμηλής πολυπλοκότητας |
title_fullStr |
Αρχιτεκτονικές και FPGA υλοποιήσεις κρυπτογραφικών αλγορίθμων χαμηλής πολυπλοκότητας |
title_full_unstemmed |
Αρχιτεκτονικές και FPGA υλοποιήσεις κρυπτογραφικών αλγορίθμων χαμηλής πολυπλοκότητας |
title_sort |
αρχιτεκτονικές και fpga υλοποιήσεις κρυπτογραφικών αλγορίθμων χαμηλής πολυπλοκότητας |
publishDate |
2019 |
url |
http://hdl.handle.net/10889/12608 |
work_keys_str_mv |
AT mōraïtēsstylianos architektonikeskaifpgaylopoiēseiskryptographikōnalgorithmōnchamēlēspolyplokotētas AT seïtanidēsdēmētriosiōannēs architektonikeskaifpgaylopoiēseiskryptographikōnalgorithmōnchamēlēspolyplokotētas AT mōraïtēsstylianos architecturesandfpgaimplementationsoflightweightcryptographicalgorithms AT seïtanidēsdēmētriosiōannēs architecturesandfpgaimplementationsoflightweightcryptographicalgorithms |
_version_ |
1771297227889704960 |
spelling |
nemertes-10889-126082022-09-05T13:59:27Z Αρχιτεκτονικές και FPGA υλοποιήσεις κρυπτογραφικών αλγορίθμων χαμηλής πολυπλοκότητας Architectures and FPGA implementations of lightweight cryptographic algorithms Μωραΐτης, Στυλιανός Σεϊτανίδης, Δημήτριος-Ιωάννης Θεοδωρίδης, Γεώργιος Θεοδωρίδης, Γεώργιος Κουφοπαύλου, Οδυσσέας Moraitis, Stylianos Seitanidis, Dimitrios-Ioannis Κρυπτογραφία χαμηλής πολυπλοκότητας Αρχιτεκτονικές Αλγόριθμοι Lightweight cryptography Architectures Algorithms Field-Programmable Gate Array (FPGA) 005.824 Η παρούσα διπλωματική εργασία πραγματεύεται το σχεδιασμό και την υλοποίηση Κρυπτογραφικών Αλγορίθμων Χαμηλής Πολυπλοκότητας (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 ως προς τις συγκεκριμένες μετρικές, με σκοπό την εξαγωγή συμπερασμάτων σχετικά με τις αποδόσεις τους. Από τη διερεύνηση των αποτελεσμάτων προκύπτει το συμπέρασμα ότι οι σχεδιασμοί που εκτελούν λίγα συνδυαστικά βήματα (ένα ή δύο) σε έναν κύκλο ρολογιού, έχουν μεγάλη συχνότητα λειτουργίας και μικρή επιφάνεια ολοκλήρωσης, ενώ αυτοί με περισσότερα βήματα (δύο ή τέσσερα) παρουσιάζουν ικανοποιητική ρυθμαπόδοση και αποδεκτές τιμές του λόγου της ρυθμαπόδοσης προς την επιφάνεια ολοκλήρωσης. Με την εκτέλεση πολλών βημάτων (οκτώ) η απόδοση πέφτει. Όσο αυξάνεται ο αριθμός αυτών παρατηρείται αύξηση στην κατανάλωση ισχύος. This diploma thesis deals with the design and the implementation of Lightweight Cryptographic Algorithms. Its purpose is the development of four cryptographic algorithms by applying various architectures, in particular the Reuse, Unrolling, Pipeline and combinations thereof, so that the characteristics of each one of them can be clearly demonstrated. The study that was conducted concerned the algorithms LBlock, Piccolo, Twine and Klein. Three different versions are produced for each one of the aforementioned algorithms: one for encryption mode (Encryption Only), one for decryption mode (Decryption Only), as well as one that results as a combination of these in the same circuit (Combined). The architectures of Reuse, two-stages Pipeline, Reuse with two, four and eight stages of Unrolling as well as two-stages Pipeline with two, four and eight stages of Unrolling were applied during the design of each previous version in each algorithm. This led to the implementation of 93 different designs in total. The hardware description of the algorithms was made in VHDL language. The simulation and the confirmation of their correct operation was done by the Modelsim tool of Mentor Graphics, after they were initially implemented in programming language C for the verification of their results. By the end of these implementations, experimental measurements were conducted over the parameters listed below, with the use of the Vivado Design Suite of Xilinx. These parameters concern the maximum frequency, the integration area, the throughput, the power dissipation as well as some others that ensue therefrom, such as the throughput to area ratio (Throughput/Area) and the power per bit (Power/Bit). These metrics have been extracted by downloading the implemented designs on three different Xilinx FPGA devices: xc7k70tfbg484 of the Kintex-7 family, xc7vx330tffg1 of the Virtex-7 family and xc7s50fgga484 of the Spartan-7 family. The purpose of this was the study of the behavior of each architecture over the four Lightweight Cryptographic Algorithms, according to the metrics mentioned above. Finally, a comparison between these three devices was made with respect to these metrics, with the aim of providing some conclusions regarding their performances. After investigating the results it is concluded that designs that execute a few combinational steps (one or two) in a single clock cycle, have a high frequency of operation and a low integration area, while the ones with more steps (two or four) demonstrate a satisfactory throughput and acceptable values of the throughput to area ratio. By executing multiple steps (eight) the performance drops. As the number of them increases, an increase in power dissipation is observed. 2019-10-10T21:24:56Z 2019-10-10T21:24:56Z 2019-07-08 Thesis http://hdl.handle.net/10889/12608 gr 0 application/pdf |