Σχεδίαση σε υλικό και περιγραφή με VHDL του κρυπτογραφικού αλγόριθμου Rijndael
Creators: name: Χούμκοσλης, Αχιλλέας Αβραάμ
Publisher: name: Aristotle University of Thessaloniki
Year: 2008
Subjects: Αλγόριθμοι Rijndael
Κρυπτογράφηση
Γεννήτρια κλειδιών
Μετρητές
Καταχωρητές
Επιφάνεια κυκλώματος
Algorithm Rijndael
Encoding
Key gennerator
Coynters
Registers
Work area

description: Η εργασία που επιτεύχθηκε ήταν η υλοποίηση του αλγόριθμου κρυπτογραφίας AES Rinjdael για δεδομένα μεγέθους λέξης 128bits.Η μεθοδολογία υλοποίησης και για διάταξη που δουλεύει με δεδομένα μεγέθους 192 και 256 bits είναι ακριβώς η ίδια. Για διδακτικούς σκοπούς και λόγους έχει επιλεχθεί το μέγεθος των 128bits αφού έχει λιγότερα bits και άρα μπορεί κάποιος να παρακολουθήσει ευκολότερα την διαδικασία κρυπτογράφησης/αποκρυπτογράφησης ανά στάδιο. Σκοπός της εργασίας ήταν η υλοποίηση της διάταξης που μπορεί να πραγματοποιήσει την κρυπτογράφηση/αποκρυπτογράφηση δεδομένων. Η γεννήτρια κλειδιών που απαιτείται για την πλήρη λειτουργία του αλγόριθμου και της αντίστοιχης μονάδας μνήμης RAM είναι στόχος κάποιας άλλης ευρύτερης εργασίας. Η αρχιτεκτονική που επιλέχθηκε για την υλοποίηση του αλγόριθμου είναι η pipelined αρχιτεκτονική.Η χρήση αυτής της αρχιτεκτονικής υπερισχύει της απλής υλοποίησης αρχιτεκτονικής . Δηλαδή, είναι προτιμότερο και περισσότερο χρήσιμο να χωρίζονται τα δεδομένα σε άλλα επιμέρους πακέτα δεδομένα έτσι ώστε να είναι συνέχεια &lt;&gt; η μονάδα επεξεργασίας σε αντίθεση με την αρχιτεκτονική απλής υλοποίησης. Αντί λοιπόν να επεξεργάζεται ένα πακέτο δεδομένων την φορά στην μονάδα επεξεργασίας και έτσι το κάθε component που υλοποιεί τα 4 στάδια του αλγόριθμου επεξεργάζεται το πακέτο δεδομένων ενώ τα υπόλοιπα component αδρανούν component λοιπόν τα οποία δεν έχουν δεχθεί δεδομένα περιμένουν να υλοποιήσει το κάθε γύρο για να γεμίσει και πάλι με δεδομένα. Ο προγραμματισμός έγινε χρησιμοποιώντας την &lt;&gt; ψηφιακού προγραμματισμού VHDL( very high descriptive language ) με γνώμονα την την όσο γίνεται καλύτερη και ταχύτερη λειτουργία των επιμέρους components αλλά και την όσο γίνεται μικρότερη χρησιμοποίηση ψηφιακών κυκλωμάτων . Σκοπός μας ήταν λοιπόν η όσο το δυνατόν μικρότερη έκταση των κυκλωμάτων ( circuit area ). Σκοπός της περαιτέρω έρευνας είναι η προσπάθεια εξεύρεσης νέων τρόπων και μεθοδολογιών αποδοτικότερων , τόσο σε ταχύτητα επεξεργασίας όσο και σε επιφάνεια κυκλώματος , για την υλοποίηση του αλγόριθμου AES.Τα εργαλεία με τα οποία δουλέψαμε είναι τα Leonardo spectrum 2000.1b και το ModelSim SE-EE 5,4e. To πρώτο εργαλείο χρησιμοποιείται για τον έλεγχο του κώδικα προγραμματισμού αλλά και υλοποιεί το κύκλωμα το ψηφιακό. Το δεύτερο εργαλείο είναι αυτό στο οποίο και ελέγχουμε την σωστή λειτουργία του κωδικα.Ελεγχουμε το σωστό χρονισμό και την σωστή ροή δεδομένων του κάθε component ξεχωριστά αλλά και του συνολικού γενικού component. H εργασία και η υλοποίηση του αλγόριθμου με άλλα εργαλεία καινούργια και πιο εξελιγμένα θα έχει ως αποτέλεσμα καλυτέρα αποτελέσματα τόσο σε επίπεδο προγραμματισμού ( software ) όσο και σε επίπεδο δημιουργίας κυκλώματος ( hardware ) . Ωστόσο , θεωρούμε ότι τα μεγαλύτερα περιθώρια βελτίωσης του κυκλώματος υλοποίησης του αλγόριθμου υπάρχουν στον τομεα του καλύτερου και πιο &lt;&lt; έξυπνου &gt;&gt; προγραμματισμου.Δηλαδη , μπορεί και άλλη αρχιτεκτονική πέρα της pipelined αρχιτεκτονικής να αποδώσει καλύτερα είτε ως έχει είτε με κάποια παραλλαγή άλλων αρχιτεκτονικών εφαρμογής. Αντικείμενο αυτής της εργασίας είναι η προσπάθεια υλοποίησης του αλγόριθμου κρυπτογραφίας AES Rinjdael αλλά και μέσω της υλοποίησης η καλύτερη εμβάθυνση του τρόπου χρήσης της &lt;&gt; ψηφιακών VHDL Η υλοποίηση λοιπόν γίνεται χρησιμοποιώντας τον προγραμματισμό μέσω της &lt;&gt; ψηφιακών VHDL και των εργαλείων Leonardo spectrum 2000.1b και ModelSim SE-EE 5,4e . Η VHDL υλοποιεί την δημιουργία κυκλωμάτων ψηφιακών που πραγματοποιούν τα στάδια που απαιτεί ο αλγόριθμος φύση της VHDL είναι μια περιγραφική &lt;&lt; γλωσσά &gt;&gt;. Αυτό σημαίνει ότι με τον κατάλληλο κώδικα προγραμματισμού περιγράφουμε στα εργαλεία που χρησιμοποιούμε , τα component που απαιτούνται για την υλοποίηση των σταδίων του αλγόριθμου. Η κεντρική αρχιτεκτονική της συνολικής σχεδίασης του γενικού κυκλώματος είναι η pipelined αρχιτεκτονική . Η υλοποίηση δηλαδή των επιμέρους σταδίων έτσι ώστε να επεξεργάζονται συνέχεια δεδομένα το component που υλοποιεί την Enc/Dec_Unit βαθμίδα επεξεργασιας,αντι να επεξεργάζεται δεδομένα ένα component την φορά. Έτσι , γι’ αυτό το λόγο η σχεδίαση γίνεται πιο πολύπλοκη και απαιτείται ο σχεδιασμός κάποιων βαθμιδών παραπανω.Απαιτειται λοιπόν η χρήση components που πραγματοποιούν μετρητές , μονάδα εισόδου δεδομένων και κλειδιού αλλά μιας κεντρικής μονάδας FSM που ελέγχει και συντονίζει την λειτουργία όλων των υπόλοιπων βαθμιδών αλλά και της συνολικής διάταξης. Ο απόλυτος συγχρονισμός όλων αυτών των επιμέρους components είναι και το ζητούμενο κατά την σύνταξη του κώδικα που τα υλοποιεί Η αρχιτεκτονική που υλοποιείται είναι τέτοια ώστε να είναι δυνατή η λειτουργία της κρυπτογραφίας αλλά και της αποκρυπτογραφιάς από το ίδιο κύκλωμα σχεδίαση της διάταξης είναι τέτοια ώστε χρησιμοποιώντας μια κοινή κυκλωματική υλοποίηση που περιέχει components που πραγματοποιούν τόσο κρυπτογράφηση όσο και άλλα components που πραγματοποιούν όσο και αποκρυπτογραφηση.Αυτη η λειτουργία είναι εφικτή με την χρήση του κατάλληλου σήματος ελέγχου που επιλέγει τα αντίστοιχα components που απαιτουνται.Ετσι, μπορούμε να πούμε ότι όλα τα components που υλοποιούν τα 4 στάδια του αλγόριθμου αποτελούνται το καθένα από 2 άλλα επιμέρους components που το καθένα υλοποιεί η’ την μια λειτουργία η’ την άλλη. Η ροή δεδομένων μεγέθους 128bits αφού έχουν επεξεργασθεί , εξέρχονται από το κεντρικό component CORE και τότε η συνολική διάταξη είτε συνεχίζει την λειτουργία της επεξεργασίας είτε παραμένει σε αδράνεια και αναμένει τα καινούργια δεδομένα στην είσοδο της μονάδας εισόδου δεδομένων.
description: The effort to protect information and the safety of communications has always been a major and most significant task . During transmission of confidential information, there is always the fear of their interception or stealing by non-authorized persons or enemies. The effort to protect information has led to the need to find new ways for encryption in such a way that they are incomprehensible and protected from whoever tries to slip into their transmission, even if he manages to get them. This need and effort of encryption is nowdays a science and is called cryptography. In order to encrypt data in a message, an encryption algorithm is needed. The safety of the algorithm usually has nothing to do with its secrecy, but with its resistance to attacks. Therefore, the algorithm uses keys, meaning secret codes necessary for the encryption and decryption of the message. The object of this project is the development of the AES Rijndael algorithm.. Its design is rather conservative, yet still allows a very efficient implementation. For the implementation of the algorithm we choose the choice of pipelined architecture.It uses 4 different stages which operate on each byte idependently and an easy analysis that enables us to demonstrate its security against all known types of attack. We have a 128-bit data block, size and a 128-bit key. In this project, we develop the design that it will reproduce the algorithm using for tools the programs Leonardo and Modelsim. We design the circuit that it will accomplish the encryption and the decryption.We accomplish to design a unit which is able to operate both as encryption and as the decryptio . The circuit is composed of 7 components, which are: the counters , count_round count_final and count_mix , the load input units Load_input_unit and Load_key_unit , the FSM control and finally the main component Encr/Decr_unit. The algorithm constituted from 10 rounds from which the first and the 10th are different from the others. So , the FSM control unit is efforted to control amd &lt;&gt; at which stage and which round the data are.The counters and the load input units are developed with such a way that it is possible to prepare the data for a the pipelined unit Encr/Decr. The language that was used is the VHDL and the mode of composing the codes is descriptive. For the implementation and development of the project, we use a design program, the Leonardo Spectrum and the simulation program (the Modelsim) in order to check the right timing and operation of components and circuits.