ΑΡΙΣΟΣΕΛΕΙΟ ΠΑΝΕΠΙΣΗΜΙΟ ΘΕΑΛΟΝΙΚΗ

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΑΡΙΣΟΣΕΛΕΙΟ ΠΑΝΕΠΙΣΗΜΙΟ ΘΕΑΛΟΝΙΚΗ"

Transcript

1 ΑΡΙΣΟΣΕΛΕΙΟ ΠΑΝΕΠΙΣΗΜΙΟ ΘΕΑΛΟΝΙΚΗ ΦΟΛΗ ΘΕΣΙΚΩΝ ΕΠΙΣΗΜΩΝ ΣΜΗΜΑ ΠΛΗΡΟΥΟΡΙΚΗ ΚΑΤΕΥΘΥΝΣΘ ΔΙΚΤΥΩΝ - ΕΡΙΚΟΙΝΩΝΙΩΝ - ΑΧΙΤΕΚΤΟΝΙΚΘΣ ΣΥΣΤΘΜΑΤΩΝ ΠΣΤΧΙΑΚΗ ΕΡΓΑΙΑ ΥΛΟΡΟΙΘΣΘ ΚΑΙ ΑΞΙΟΛΟΓΘΣΘ ΤΩΝ ΚΥΡΤΟΓΑΦΙΚΩΝ ΑΛΓΟΙΘΜΩΝ DES, T-DES ΚΑΙ RC4 και ςτα Αγγλικά, IMPLEMENTATION AND PERFORMANCE STUDY OF DES, T-DES AND RC4 Του ΜΑΤΡΟΜΑΣΗ ΑΝΔΡΕΑ Α.Ε.Μ. : 2001 Επιβλζπων : Νικοπολιτίδθσ Ρζτροσ Επίκουροσ Κακθγθτισ Α.Ρ.Θ.

2

3 Περύληψη Οι αλγόρικμοι κρυπτογράφθςθσ διαδραματίηουν ςθμαντικό ρόλο ςτθν αςφάλεια των πλθροφοριϊν. Κακϊσ θ ςθμαςία και θ αξία των ανταλλαςςόμενων δεδομζνων επί του Διαδικτφου ι άλλων μζςων μαηικισ ενθμζρωςθσ αυξάνονται, θ αναηιτθςθ για τθν καλφτερθ λφςθ που να προςφζρει τθν απαραίτθτθ προςταςία ενάντια ςτισ επικζςεισ επίδοξων λθςτών δεδομζνων μαηί με τθν παροχι αυτϊν των υπθρεςιϊν εγκαίρωσ ςτο πλαίςιο του χρόνου, είναι ζνα από τα πιο ενεργά αντικείμενα ςτισ κοινότθτεσ που ςχετίηονται με τθν αςφάλεια. Θ παροφςα πτυχιακι εργαςία προςπακεί να παρουςιάςει μια δίκαιθ ςφγκριςθ μεταξφ των πιο κοινϊν και χρθςιμοποιοφμενων αλγορίκμων ςτο πεδίο τθσ κρυπτογράφθςθσ δεδομζνων. Ρραγματεφεται τθν ςχεδίαςθ και τθν υλοποίθςθ ενόσ προγράμματοσ προςομοίωςθσ, το οποίο ζχει τθ δυνατότθτα για κρυπτογραφιςθ και αποκρυπτογραφιςθ δεδομζνων που του παρζχει ο χριςτθσ κάνοντασ χριςθ των αλγορίκμων κρυπτογράφθςθσ DES, TripleDES και του RC4. Θ εργαςία χωρίηεται ςε 5 κεφάλαια, τα οποία ακολουκοφν τθν πορεία ςχεδίαςθσ, υλοποίθςθσ και τθσ ςυγκομιδισ αποτελεςμάτων από το πρόγραμμα. Το Κεφάλαιο 1 επικεντρϊνεται ςτθ μεκοδολογία τθσ ςχεδίαςθσ και τθσ υλοποίθςθσ του προγράμματοσ προςομοίωςθσ κακϊσ αναφζρονται και μερικοί από τουσ πιο χρθςιμοποιοφμενουσ όρουσ ςτθν κρυπτογραφία όπωσ και μια ςφντομθ περιγραφι του κάκε επιμζρουσ αλγόρικμου κρυπτογράφθςθσ, για να παρζχετε θ δυνατότθτα ςτον αναγνϊςτθ να κατανοιςει τισ βαςικζσ διαφορζσ μεταξφ τουσ. Στο Κεφάλαιο 2 παρουςιάηεται θ μεκοδολογία αξιολόγιςθσ τθσ απόδοςθσ, οι ρυκμίςεισ που επιλζχκθκαν για τθν καλφτερθ ςφγκριςθ των αλογορίκμων κρυπτογράφθςθσ, τα αποτελζςματα που παράχκθκαν κακϊσ και τα ςυμπεράςματα που προζκυψαν απο αυτά. Στθ ςυνζχεια, ςτο Κεφάλαιο 3 παρουςιάηεται το γραφικό περιβάλλον του προγράμματοσ προςομοίωςθσ, γνωςτοποιόντασ ςτο χριςτθ τισ λειτουργίεσ του για τθ ςωςτι χριςθ του προγράμματοσ χωρίσ επιιπλοκζσ. Ουςιαςτικά, αποτελεί το εγχειρίδιο χριςθσ του προγράμματοσ πρροςομοίωςθσ(user manual). Το Κεφάλαιο 4 αποτελεί τον επίλογο τθσ εργαςίασ ενϊ το Κεφάλαιο 5 παρουςιάηει τθ βιβλιογραφία που χρειάςτθκε για τθν υλοποίθςθ τθσ παροφςασ πτυχιακισ εργαςίασ. Τζλοσ, το Παράρτθμα Α παρουςιάηει τον κϊδικα που αναπτφχκθκε για τθν υλοποίθςθ του προγράμματοσ.

4 Abstract The encryption algorithms play an important role in information security. As the importance and the value of exchanged data over the Internet or other media types are increasing, the search for the best solution to offer the necessary protection against the data thieves attacks along with providing these services under timely manner is one of the most active subjects in the security related communities. This paper tries to present a fair comparison between the most common and used algorithms in the field of data encryption. Discusses the design and implementation of a program which is able to encrypt and decrypt data supplied by the user, using the encryption algorithms of DES, TripleDES and RC4. The paper is divided into five chapters, which follow the course of design, implementation and gathering results from the simulation program. Chapter 1 focuses on methodology of design and implementation of the simulation program as well mentioned some of the most used terms in cryptography and a brief description of each individual encryption algorithm, to enable the reader to understand the key differences between them. Chapter 2 illustrates the performance evaluation methodology and the chosen settings to allow a better comparison, the results achieved and their conclusions. Chapter 3 presents the GUI of the simulation program, analyzing its functions to the user, on the proper use of the program without complications. This chapter actually constitute the user guide of the simulation program. Chapter 4 presents the conclusion of the current paper and finally, chapter 5 presents the literature needed to complete the paper. In the end, Annex A present all the developed java code to run the program. General Terms Information Security, Encryption Keywords Encryption, DES, TripleDES, RC4

5

6 Στουσ γονείσ μου, Μιλτιάδθ και Ακαναςία, ςτα αδζλφια μου Χριςτο και Ραφλο.

7

8 Πύνακασ περιεχομϋνων 1. Ειςαγωγό ςτην κρυπτογρϊφύα Οριςμού Κρυπτογραφικό ύςτημα Αςφϊλεια Σρόποι Τλοπούηςησ ενόσ Κρυπτογραφικού ςυςτόματοσ Διϊκριςη Κρυπτογραφικών υςτημϊτων Αλγόριθμοι κωδικοπούηςησ τμημϊτων... (block cipher) Αλγόριθμοσ ροόσ(stream cipher) Λύγα λόγια για το DES(Data Encryption Standard) Παρϊδειγμα λειτουργύασ του DES Περιγραφό και υλοπούηςη του DES Δημιουργύα 16 υποκλειδιών Κρυπτογρϊφηςη των μπλόκ μόκουσ 64-bit Αποκρυπτογρϊφηςη του DES Λύγα λόγια για τον TripleDES(3-DES) Γενικό δομό του TripleDES Περιγραφό και ανϊλυςη του κώδικα Επιλογϋσ κλειδιών Αποκρυπτογρϊφηςη του TripleDES Λύγα λόγια για τον RC Γενικό δομό του RC Περιγραφό και ανϊλυςη του κώδικα Αλγόριθμοσ προγραμματιςμού κλειδιού (KSA) Γεννότρια ψευδοτυχαύου ρεύματοσ (PRGA) Αποκρυπτογρϊφη του RC Περιγραφό και ανϊλυςη του GUI... 56

9 2. Αποτελϋςματα πειραμϊτων με το πρόγραμμα προςομούωςησ Πειραματικόσ ςχεδιαςμόσ Αξιολόγηςη παραμϋτρων Πειραματικϊ αποτελϋςματα και η ανϊλυςη τουσ Ανϊλυςη των αποτελεςμϊτων και ςυμπερϊςματα που προκύπτουν Σο πρόγραμμα προςομοίωςησ και η λειτουργία του Επύλογοσ Βιβλιογραφύα Παράρτημα Α DES.java ETable.java SBox.java Permutation.java RC4.java TextLimit.java CryptographerGUI.java... 97

10 Πύνακασ εικόνων Εικόνα 1. Λειτουργία κρυπτογράφθςθσ και αποκρυπτογράφθςθσ... 3 Εικόνα 2. Λειτουργία αλγορίκμου ροισ... 8 Εικόνα 3. Λειτουργία ECB Εικόνα 4. Λειτουργία CBC Εικόνα 5. Λειτουργία OFB Εικόνα 6. Λειτουργία CFB Εικόνα 7. Διαδικαςία παραγωγισ 16 υποκλειδιϊν Εικόνα 8. Λειτουργία τθσ ςυνάρτθςθσ F Εικόνα 9. Λειτουργία κρυπτογράφθςθσ ενόσ μπλόκ από το DES Εικόνα 10. Διαδικαςία κρυπτογράφθςθσ και αποκρυπτογράφθςθσ Εικόνα 11. Λειτουργία κρυπτογράφθςθσ του TripleDES Εικόνα 12. Λειτουργία αποκρυπτογράφθςθσ του TripleDES Εικόνα 13. Λειτουργία τθσ PRGA Εικόνα 14. Το GUI του προγράμματοσ Εικόνα 15. Αρχικό ςτιγμιότυπο του GUI του προγράμματοσ Εικόνα 16. Pop-up παράκυρο για τθν επιλογι αρχείου Εικόνα 17. Ειςαγωγι δεδομζνων ςτο πρόγραμμα Εικόνα 18. Ρεριοριςμόσ κλειδιϊν ςτο πρόγραμμα Εικόνα 19. Κρυπτογράφθςθ δεδομζνων με το DES Εικόνα 20. Αποκρυπτογράφθςθ του κρυπτογραφιματοσ με το DES Εικόνα 21. Ραράδειγμα εκτζλεςθσ του προγράμματοσ... 76

11 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Κεφάλαιο 1 1. Ειςαγωγό ςτην κρυπτογρϊφύα 1.1 Οριςμού Ο όροσ κρυπτογραφία (cryptology) προζρχεται από τισ λζξεισ κρυπτόσ και γράφοσ. Κυριολεκτικά ςθμαίνει τθ μελζτθ τθσ μυςτικογραφίασ. Γενικότερα αφορά τον επιςτθμονικό κλάδο που αςχολείται με τθ μελζτθ, χριςθ και ανάπτυξθ τεχνικϊν κρυπτογράφθςθσ και αποκτυπτογράφθςθσ για τθν απόκρυψθ των περιεχομζνων των μθνυμάτων (ι των αποκθκευμζνων δεδομζνων) και τθ διευκόλυνςθ τθσ ανίχνευςθσ κακόβουλων μετατροπϊν ςτα μθνφματα. Κρυπτογράφηςη (encryption / encipherment) είναι θ διεργαςία μεταςχθματιςμοφ ενόσ μθνφματοσ ςε μια ακατανόθτθ μορφι με τθ χριςθ ενόσ κρυπτογραφικοφ αλγόρικμου, ζτςι ϊςτε αυτό να μθν είναι αναγνϊςιμο από τρίτα μζλθ (εκτόσ του νόμιμου παραλιπτθ). Αποκρυπτογράφηςη (decryption / decipherment) είναι θ διεργαςία ανάκτθςθσ του αρχικοφ μθνφματοσ (αναγνϊςιμθ μορφι) από μια ακατανόθτθ ζκδοςι του που είχε παραχκεί μζςω μιασ διεργαςίασ κρυπτογράφθςθσ. Θ αποκρυπτογράφθςθ εκτελείται από κάποιο εξουςιοδοτθμζνο μζλοσ, ςε αντίκεςθ με τθν κρυπτανάλυςθ, που ορίηεται παρακάτω Αρχικό κείμενο (plaintext) είναι το μινυμα το οποίο αποτελεί είςοδο ςε μια διαδικαςία κρυπτογράφθςθσ, δθλαδι κρυπτογραφείται. Κρυπτογραφημζνο κείμενο (cipher text) είναι το αποτζλεςμα τθσ εφαρμογισ ενόσ κρυπτογραφικοφ αλγορίκμου πάνω ςτο αρχικό κείμενο. Το κρυπτογραφθμζνο κειμενο κρυπτογραφείται για να ανακτθκεί το αρχικό κείμενο. Θ κρυπτογράφθςθ και αποκρυπτογράφθςθ ενόσ μθνφματοσ γίνεται με βάςθ τθ βοικεια ενόσ αλγορίκμου κρυπτογράφθςθσ και ενόσ κλειδιοφ κρυπτογράφθςθσ. Κρυπτογραφικόσ αλγόριθμοσ (cipher) είναι θ μζκοδοσ (ςυνικωσ μια μακθματικι ςυνάρτθςθ) μεταςχθματιςμοφ δεδομζνων ςε μια μορφι που να μθν επιτρζπει ςε μθ εξουςιοδοτθμζνα μζρθ τθν αποκάλυψθ του περιεχομζνου τουσ. Θ δυνατότθτα, όμωσ, τθσ διατιρθςθσ τθσ μυςτικότθτασ των πλθροφοριϊν βαςίηεται περιςςότερο ςε ζναν αρικμό που ονομάηεται κλειδί (key) και χρθςιμοποιείται μαηί με τον αλγόρικμο κρυπτογράφθςθσ / αποκρυπτογράφθςθσ, παρά ςτον αλγόρικμο μόνο του. Επομζνωσ, θ ανκεκτικότθτα μιασ κρυπτογράφθςθσ εξαρτάται περιςςότερο από το μζγεκοσ των κλειδιϊν που χρθςιμοποιοφνται παρά από τουσ αλγορίκμουσ. Το μζγεκοσ των κλειδιϊν ςε bits. Οςο μεγαλφτερο ζιναι το μικοσ ενόσ κλειδιοφ τόςο ανκεκτικότερθ είναι θ κρυπτογράφθςθ. Διαφορετικοί αλγόρικμοι απαιτοφν διαφορετικά μικθ κλειδιϊν για να πετφχουν το ίδιο επίπεδο 1

12 Κεφάλαιο 1 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] ανκεκτικότθτασ κρυπτογράφθςθσ. Για παράδειγμα, ζνασ αλγόρικμοσ ςυμμετρικισ κρυπτογράφθςθσ με κλειδί μικουσ 128 bits παρζχει ανκεκικότερθ κρυπτογράφθςθ από τον αλγόρικμο κρυπτογράφθςθσ δθμοςίου κλειδιοφ RSA με το ίδιο μζγεκοσ κλειδιου. Γι αυτό πρζπει να χρθςιμοποιζιται κλειδί με μικοσ τουλάχιςτον 512 bits προκειμζνου θ κρυπτογράφθςθ RSA να κεωρείται ανκεκτικι. Ρρζπει να ςθμειϊςουμε ότι οι ςυμμετρικοί αλγορικμοι επιτυγχάνουν το ίδιο επίπεδο ανκεκτικότθτασ με κλειδί μικουσ 64 bits. Πμωσ και αυτά τα επίπεδα ανκεκτικότθτασ ζχουν αποδειχκεί ευπακι ςε επικζςεισ ςιμερα. Διάφοροι τρόποι κρυπτογράφθςθσ άρχιςαν να αναπτφςςονται από παλιά και ςυνεχϊσ εξελίςςονται και αλλάηουν όςο τα υπολογιςτικά ςυςιματα γίνονται ιςχυρότερα και ταχφτερα. Θ προςπάκεια να ςπάςει μια ςυγγεκριμζνθ κρυπτογραφικι τεχνικι ονομάηεται κρυπτανάλυςη (cryptanalysis). Κρυπτανάλυςη είναι θ διαδικαςία αποκρυπτογράφθςθσ ενόσ μθνφματοσ από ζνα μθ εξουςιοδοτθμζνο μζροσ, το οποίο ονομάηεται κρυπαναλυτήσ (cryptanalyst). Υποτίκεται ότι όλα τα κρυπτογραφθμζνα μθνφματα μποροφν να ςπάςουν αν δοκεί χρόνοσ ςε ζναν θλεκτρονικό υπολογιςτι να δοκιμάςει όλα τα πικανά κλειδιά. Αν όμωσ ο χρόνοσ αυτόσ είναι τόςο μεγάλοσ τότε το ςπάςιμο του κρυπτογραφθμζνου μθνφματοσ κα ζχει πικανότατα αμελθτζα ωσ και μθδενικι ςθμαςία. Το ςυμπζραςμα που εξάγεται είναι ότι όςο τα υπολογιςτικά ςυςτιματα γίνονται ταχφτερα και ιςχυρότερα τόςο οι κρυπτογραφικοί αλγόρικμοι κα γίνονται πολυπλοκότεροι και τα κλειδιά μεγαλφτερα. Τζλοσ πρζπει να αναφζρουμε ότι το αντικζιμενο τθσ κρυπτολογίασ (cryptology) καλφπτει και τθν κρυπτογραφία και τθν κρυπτανάλυςθ. 1.2 Κρυπτογραφικό ύςτημα Ζνα Κρυπτογραφικό Σφςτημα είναι ζνα πλιρεσ ςφςτθμα που περιλαμβάνει όλουσ τουσ ανκρϊπουσ, διαδικαςίεσ, εργαλεία, κρυπτογραφιματα, κλειδιά και κανάλια μετάδοςθσ που εμπλζκονται ςε μια αςφαλι μεταφορά δεδομζνων. Σε ζνα τυπικό ςφςτθμα κρυπτογράφθςθσ τα δεδομζνα κρυπτογραφοφνται και το παραγόμενο μινυμα αποςτζλλεται ςτον παραλιπτθ και αποκρυπτογραφείται για να παραχκεί το αρχικό κείμενο. Αυτοί οι μεταςχθματιςμοί αναπαρίςτανται ωσ εξισ : 2

13 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Κεφάλαιο 1 Εικόνα 1. Λειτουργία κρυπτογράφηςησ και αποκρυπτογράφηςησ Αςφϊλεια Κάκε ςφςτθμα πρζπει να παρζχει ζνα πακζτο αςφάλειασ που να μπορεί να εξαςφαλίςει τθ μυςτικότθτα του. Ζςτω ότι δφο άτομα Α και Β επικοινωνοφν μεταξφ τουσ μζςω ενόσ διαφλου επικοινωνίασ. Θ επικοινωνία μεταξφ τουσ είναι αςφαλισ, εάν ικανοποιεί τισ ακόλουκεσ ιδιότθτεσ: Εμπιςτευτικότητα (Confidentiality) : Αναφζρεται ςτο πωσ περιςςότεροι άνκρωποι ταυτοποιοφν ζνα αςφαλζσ ςφςτθμα. Κανείσ άλλοσ, εκτόσ από τουσ εξουςιοδοτθμζνουσ χριςτεσ, δεν μπορεί να λάβει γνϊςθ οποιουδιποτε μζρουσ τθσ πλθροφορίασ που ανταλλάςςεται μεταξφ τουσ. Ακεραιότητα (Integrity) : Το περιεχόμενο των δεδομζνων που ανταλλάςςονται εξαςφαλίηεται πωσ δεν κινδυνεφει από κανενόσ τφπου τροποποίθςθ που μπορεί να ςυμβεί ανάμεςα ςτουσ ςυναλλαςςόμενουσ (αποςτολζασ-παραλιπτθσ). Κανείσ άλλοσ δεν μπορεί να τροποποιιςει τα μθνφματα τουσ. Αυθεντικότητα (Authentication) : Κακζνασ από τουσ Α και Β πρζπει να είναι ςίγουροσ για τθν ταυτότθτα του μθνφματοσ που λαμβάνει από τον άλλον. Αυτό ςθμαίνει πωσ πριν τθν αποςτολι και λιψθ δεδομζνων χρθςιμοποιϊντασ το ςφςτθμα, ο αποςτολζασ και ο παραλιπτθσ κα πρζπει να ζχουν ταυτοποιθκεί. Αδυναμία αποκήρυξησ (Non repudiation) : Κανείσ από τουσ δφο να μθν μπορεί να αρνθκεί τθν πατρότθτα προθγοφμενων μθνυμάτων του. Αξιοπιςτία και Διαθεςιμότητα (Service Reliability and Availability) : Τα ςυςτιματα κα πρζπει να παρζχουν μία εγγφθςθ ποιότθτασ των υπθρεςιϊν ςτουσ χριςτεσ τουσ, αφοφ ακόμα και αςφαλι ςυςτιματα ςυχνά δζχονται επικζςεισ από ειςβολείσ. Αυτό 3

14 Κεφάλαιο 1 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] μπορεί να επθρεάςει τθν διακεςιμότθτα και το είδοσ των υπθρεςιϊν που παρζχουν ςτουσ χριςτεσ. Για να αποφεφγονται οι αποκαλοφμενεσ επικζςεισ εκτενϊν αναηθτιςεων(brute force attack) πρζπει το πλικοσ των πικανϊν διαφορετικϊν ςυνδυαςμϊν κλειδιϊν για ζναν κρυπτογραφικό αλγόρικμο να είναι μεγάλο. Αυτό ςυμβαίνει γιατί ςε περίπτωςθ που ο κρυπταναλυτισ αποκτιςει ζνα αντίςτοιχο ηεφγοσ αρχικοφ και κρυπτογραφθμζνου κειμζνου, μπορεί προςπακϊντασ με όλα τα πικανά κλειδιά να δει ποιο ταιριάηει και κατόπιν να το χρθςιμοποιιςει για να αποκρυπτογραφεί κι άλλα κρυπτογραφθμζνα κείμενα που ζχουν κρυπτογραφθκεί με το ίδιο κλειδί. Διαφορετικά, ςε περίπτωςθ που απλά κατάφερε να υποκλζψει ζνα κρυπτογραφθμζνο κείμενο, μπορεί να το αποκρυπτογραφιςει με διαφορετικοφσ ςυνδυαςμοφσ κλειδιϊν μζχρι να βρει ζνα αρχικό κείμενο που ζχει λογικι ςθμαςία, οπότε τότε αποκτά, ουςιαςτικά, και το ςωςτό κλειδί που ςτθ ςυνζχεια μπορεί να το χρθςιμοποιιςει για τθν αποκρυπτογράφθςθ και άλλων κρυπτογραφθμζνων κειμζνων. Τυπικά, τα κλειδιά είναι ςειρζσ από bits και ωσ εκ τοφτου θ απαίτθςθ για μεγάλο πλικοσ κλειδιϊν ζχει τθν ζννοια τθσ χριςθσ ολοζνα και περιςςότερων bits. Θ χριςθ 64 bits αποτελεί ζνα τυπικό μικοσ κλειδιοφ το οποίο παρζχει διαφορετικά κλειδιά, που ςθμαίνει ότι αν είχαμε τθ δυνατότθτα να δοκιμάηαμε ζνα κλειδί ανά nanosecond, δθλαδι κλειδιά ανά δευτερόλεπτο, κα χρειαηόμαςταν περίπου 300 χρόνια για να δοκιμάςουμε όλουσ τουσ δυνατοφσ ςυνδυαςμοφσ κλειδιϊν. Γενικά, όταν αναλφουμε τθν ανκεκτικότθτα ενόσ κρυπτογραφικοφ αλγορίκμου, είναι ςθμαντικό να υποκζτουμε ότι ο κρυπταναλυτισ ζχει αποκτιςει με διάφορουσ τρόπουσ ζνα αξιόλογο ποςό πλθροφοριϊν ςτο οποίο βαςίηει τθν επίκεςι του. Αυτό ςθμαίνει ότι όταν αναλφουμε τθν αςφάλεια ενόσ ςυςτιματοσ είναι βαςικό να κάνουμε υποκζςεισ για τθν χειρότερθ περίπτωςθ (worst case). Ριο ςυγκεκριμζνα αποτελεί κοινι πρακτικι ότι ο κρυπταναλυτισ διακζτει : Ρλιρθ γνϊςθ του κρυπτογραφικοφ αλγορίκμου, Μερικά κρυπτογραφθμζνα μθνφματα που όλα ζχουν προκφψει με τθ χριςθ του ίδιου μυςτικοφ κλειδιοφ. Μερικά γνωςτά μθνφματα, π.χ. μζροσ ι το ςφνολο από αρχικά μθνφματα που αντιςτοιχοφν ςε γνωςτά κρυπτογραφθμζνα μθνφματα. Μια επιπρόςκετθ πικανι υπόκεςθ είναι ότι ο κρυπταναλυτισ διακζτει το κρυπτογραφθμζνο κείμενο που αντιςτοιχεί ςε ζνα επιλεγμζνο από τον ίδιο αρχικό κείμενο. Αυτοφ του είδουσ θ επίκεςθ λζγεται επίθεςη επιλεγμζνου αρχικοφ κειμζνου (chosen plaintext attack). Στθν πράξθ, αυτό κα απαιτοφςε από τον κρυπταναλυτι το να μπορεί να ειςάγει ςτο ςφςτθμα μθνφματα τθσ επιλογισ του, κάτι που είναι αρκετά δφςκολο να γίνει. Με βάςθ τισ υποκζςεισ για τθν χειρότερθ περίπτωςθ, πρζπει να ακολουκοφν δοκιμζσ με ςκοπό να βρεκοφν τρόποι κρυπτανάλυςθσ του κρυπτογραφικοφ αλγορίκμου, δθλαδι τθσ εφρεςθσ του μυςτικοφ κλειδιοφ. Σε αυτι τθν περίπτωςθ, ο ςχεδιαςτισ του κρυπτογραφικοφ αλγορίκμου ι ο χριςτθσ που πρόκειται να χρθςιμοποιιςει ζνα προϊόν κρυπτογράφθςθσ πρζπει να παίξει το ρόλο του 4

15 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Κεφάλαιο 1 κρυπταναλυτι και να δοκιμάςει να ςπάςει τον αλγόρικμο. Με αυτόν τον τρόπο μόνο μπορεί κανείσ να διαπιςτϊςει τθν ανκεκτικότθτα ενόσ κρυπτογραφικοφ αλγορίκμου. Στισ περιςςότερεσ περιπτϊςεισ οι κρυπτογραφικοί αλγόρικμοι κεωρείται ότι είναι ιςχυροί εφόςον οι προςπάκειεσ των εξειδικευμζνων κρυπταναλυτϊν δεν είναι αρκετζσ για να μποροφν να τουσ ςπάςουν με ςυμβατικά μζςα και ςε λογικοφσ χρόνουσ. Κατά τ άλλα, δεν υπάρχουν φορμαλιςτικζσ μζκοδοι που να αποδεικνφουν τθν αςφάλεια που παρζχουν οι περιςςότεροι κρυπτογραφικοί αλγόρικμοι που χρθςιμοποιοφνται ςτθν πράξθ. Πμωσ θ κρυπτογραφία αποτελεί μια ραγδαία αναπτυςςόμενθ περιοχι ζρευνασ και νζοι κρυπτογραφικοί αλγόρικμοι ςχεδιάηονται και ςπάνε, αν και μερικοί αντζχουν καλά ςτισ παρατεταμζνεσ προςπάκειεσ κρυπτανάλυςθσ που γίνονται Σρόποι Τλοπούηςησ ενόσ Κρυπτογραφικού ςυςτόματοσ Θ ενςωμάτωςθ των μεκόδων τθσ κρυπτογραφίασ ςε υλικό (hardware) επιταχφνει ςε μεγάλο βακμό τθν διεκπεραίωςθ τθσ. Επίςθσ, οι χριςτεσ δεν γνωρίηουν, οφτε καν αντιλαμβάνονται τθν παρουςία τθσ και πραγματοποιοφν ανενόχλθτοι τισ εργαςίεσ τουσ. Το γεγονόσ ότι ο χριςτθσ δεν ανακατεφεται κακόλου ςτισ διαδικαςίεσ τθσ κρυπτογραφίασ, αυξάνει τθν αποτελεςματικότθτα του εργαλείου ςτθν παρεχόμενθ αςφάλεια. Ραρ' όλα αυτά, δεν ζχει κακιερωκεί θ κρυπτογραφία ςε υλικό (hardware) λόγω του υψθλοφ κόςτουσ τθσ, που απαγορεφει τθν αγορά και διατιρθςθ των ειδικϊν μθχανθμάτων που χρειάηονται για τθν εφαρμογι τθσ. Τα ειδικά αυτά μθχανιματα βρίςκονται τοποκετθμζνα ςε ςτρατθγικά ςθμεία κάκε δικτφου. Θ κρυπτογραφία που αναπτφςςεται ςε λογιςμικό (software) είναι φτθνότερθ, πράγμα που τθν κάνει ευρζωσ αποδεκτι και εφκολα πραγματοποιιςιμθ. Βζβαια, δεν είναι το ίδιο γριγορθ με τθν εκτζλεςθ τθσ ςε hardware, αλλά θ ολοζνα αυξανόμενθ ανάγκθ για διαςφάλιςθ των επικοινωνιϊν εδραίωςε τθ χριςθ τθσ Διϊκριςη Κρυπτογραφικών υςτημϊτων Τα κρυπτογραφικά ςυςτιματα ταξινομοφνται, γενικά, με βάςθ τρία ανεξάρτθτα κριτιρια: Τον τφπο των διαδικαςιών που χρθςιμοποιοφνται για το μεταςχθματιςμό του αρχικοφ κειμζνου ςε ζνα κρυπτογράφθμα: Το ςφνολο των αλγορίκμων κρυπτογράφθςθσ ςτθρίηεται ςε δφο γενικζσ αρχζσ: ςτθν αντικατάςταςη (substitution) ςφμφωνα με τθν οποία κάκε ςτοιχείο του αρχικοφ 5

16 Κεφάλαιο 1 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] κειμζνου, είτε είναι δυαδικό ψθφίο, είτε χαρακτιρασ, είτε ομάδα δυαδικϊν ψθφίων ι χαρακτιρων, αντικακίςταται από άλλο ςτοιχείο και ςτθ μετάθεςη (transposition) ςτθν οποία τα ςτοιχεία του αρχικοφ κειμζνου αναδιατάςςονται. Βαςικι προχπόκεςθ αποτελεί θ μθ απϊλεια οποιαςδιποτε πλθροφορίασ, ϊςτε όλεσ οι διαδικαςίεσ να είναι αντιςτρζψιμεσ. Τα περιςςότερα ςυςτιματα περιλαμβάνουν πλθκϊρα ςταδίων αντικαταςτάςεων και μετακζςεων. Τον αριθμό των κλειδιών που χρθςιμοποιοφνται: Εάν ο πομπόσ και ο δζκτθσ χρθςιμοποιοφν το ίδιο κλειδί, τότε το ςφςτθμα αναφζρεται ωσ ςυμμετρικό ι μοναδικοφ κλειδιοφ ι μυςτικοφ κλειδιοφ ι ςυμβατικισ κρυπτογραφίασ. Εάν, όμωσ, ο πομπόσ και ο δζκτθσ χρθςιμοποιοφν διαφορετικά κλειδιά, τότε το ςφςτθμα αναφζρεται ωσ αςφμμετρο, ι ςφςτθμα ηεφγουσ κλειδιϊν, ι κρυπτογραφίασ δθμοςίου κλειδιοφ. Τον τρόπο με τον οποίο επεξεργάηεται το αρχικό κείμενο: Ζνασ κωδικοποιητήσ τμημάτων (block cipher) επεξεργάηεται τθν είςοδο ενόσ τμιματοσ ςτοιχείων κάκε φορά, παράγοντασ ζνα τμιμα εξόδου για κάκε ςυγκεκριμζνο τμιμα ειςόδου. Αντίκετα, ζνασ κωδικοποιητήσ ροήσ (stream cipher) επεξεργάηεται κατά ςυνεχι τρόπο τα ςτοιχεία ειςόδου και κάκε φορά παράγεται ωσ ζξοδοσ ζνα ςτοιχείο, με τθ ςειρά που καταφκάνουν τα δεδομζνα. Ρολλοί αλγόρικμοι κρυπτογράφθςθσ είναι ευρζωσ διακζςιμοι και χρθςιμοποιοφνται για τθν αςφάλεια των πλθροφοριϊν. Τρείσ απο τουσ πιο ευρζωσ χρθςιμοποιθμζνουσ αλγορίκμουσ κρυπτογράφθςθσ είναι ο DES, ο TripleDES, που ουςιαςτθκά προςφζρει αφξθςθ τθσ αςφάλειασ ςτον αλγόρικμο του DES, και του πιο προςφάτου RC4. Το κφριο χαρακτθριςτικό και ςθμαςία προςδίδει και θ ταχφτθτα ςε ζνα αλογόρικμο κρυπτογράφθςθσ, δθλαδι θ ταχφτθτα που κρυπτογράφθφειται και αποκρυπτογράφθφειται ζνα απλό κειμζνου ειςόδου. Ραρακάτω αναλυόνται και υπολογίηονται οι δυναμικότθτεσ κρυπτογράφθςθσ και αποκρυπτογράφθςθσ των αλγορίκμων κρυπτογράφθςθσ DES, TripleDES και RC Αλγόριθμοι κωδικοπούηςησ τμημϊτων (block cipher) Οι κρυπτογραφικοί αλγόρικμοι τμθμάτων(block ciphers) λειτουργοφν ωσ εξισ : 1. Τα δεδομζνα που πρόκειται να κρυπτογραφθκοφν πρζπει να ζχουν τθ μορφι μιασ ςειράσ απο m τμιματα δυαδικϊν ψθφίων (bits). Το μικοσ ενόσ τμιματοσ ςυνικωσ ςυμβολίηεται με n. Τυπικζσ τιμζσ για το n είναι 64 ι 128 bits. 2. Το αρχικό κείμενο κατόπιν κρυπτογραφείται με εφαρμογι τθσ κρυπτογραφικισ ςυνάρτθςθσ e και του μυςτικοφ κλειδιοφ k. Το αποτζλεςμα είναι ζνα τμιμα κρυπτογραφθμζνου κειμζνου c, που ςυνικωσ ζχει το ίδιο μικοσ με το αντίςτοιχο τμιμα του αρχικοφ κειμζνου. Σε ζναν κρυπτογραφιό αλγόρικμο τμιματοσ μποροφμε να αναπαραςτιςουμε τθ λειτουργία κρυπτογράφθςθσ με τθ ςχζςθ : 6

17 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Κεφάλαιο 1 c =e k (m), όπου m είναι το τμιμα αρχικοφ κειμζνου, k είναι το μυςτικό κλειδί και c είναι το τμιμα κρυτπογραφθμζνου κειμζνου. Επιπρόςκετα, μποροφμε να αναπαραςτιςουμε τθ λειτουργία τθσ αποκρυπτογράφθςθσ d με τθ ςχζςθ : m = d k. (c). Το μζγεκοσ τμιματοσ n πρζπει να είναι αρκζτα μεγάλο, για παράδειγμα n 64 για να προλαμβάνονται επιθζςεισ λεξικοφ (dictionary attacks). Διαφορετικά, εάν το μζγεκοσ n είναι μικρό, ζνασ κρυπαναλυτισ εφοδιαςμζνοσ με ζνα ηευγάρι αρχικοφ και κρυπτογραφθμζνου κειμζνου μπορεί να καταςκευάςει ζνα λεξικό ςτο οποίο να αντιςτοιχίηονται τμιματα αρχικοφ και κρυπτογραφθμζνου κειμζνου για ζνα ςυγκεκριμζνο κλειδί, οπότε κάκε κρυπτογραφθμζνο κείμενο που παράγεται ςτθ ςυνζχεια με το ίδιο κλειδί μπορεί να αποκρυπτογραφθκεί αναηθτϊντασ τθν αντίςτοιχθ δζςμθ αρχικοφ κειμζνου ςτο λεξικό. Ζνασ τζτοιοσ αλγόρικμοσ αποτελεί και ο DES(οπότε και ο TripleDES). Ανικει ςτουσ επαναλθπτθκοφσ αλγορίκμουσ κρυπτογράφθςθσ τμθμάτων. Οι επαναλθπτικοί κρυπτογραφικοί αλγόρικμοι τμθμάτων (Iterated block ciphers) εφαρμόηουν επαναλθπτικά μια κυκλικι λειτουργία (round function), θ οποία αντιςτοιχίηει ζνα τμιμα μικουσ n bit ςε ζνα άλλο τμιμα μικουσ πάλι n bit. Κάκε εφαρμογι τθσ κυκλικισ λειτουργίασ ονομάηεται ανακφκλωςθ (round) και ο αρικμόσ των ανακυκλϊςεων ςυμβολίηεται με r. Σε κάκε εφαρμογι τθσ κυκλικισ λειτουργίασ χρθςμοποιείται ζνα μζροσ κλειδιοφ (sub key) k i (1 i r), το οποίο εξάγεται από το κλειδί k. Γι αυτό το λόγο πρζπει να υπάρχει μια προκακοριςμζνθ μζκοδοσ που να υπολογίηει ζνα ςφνολο από μζρθ ενόσ κλειδιοφ. Για να γίνει δυνατι θ αποκρυπτογράφθςθ, για κάκε μζροσ κλειδιοφ θ κυκλικι ςυνάρτθςθ πρζπει να είναι αντιςτρζψιμθ (invertible), δθλαδι να παρζχει μια αντίςτροφθ λειτουργία. Οπότε, κατά τθν αποκρυπτογράφθςθ εφαρμόηονται οι κυκλικζσ λειουργίεσ με ανάςτροφθ ςειρά Αλγόριθμοσ ροόσ(stream cipher) Ζνασ κρυπτογραφικόσ αλγόρικμοσ ροισ λειτουργει ωσ εξισ : 1. Τα δεδομζνα που πρόκειται να κρυπτογραφθκοφν παριςτάνονται ωσ μια ακολουκία από δυαδικά ψθφία (bits). Κατόπιν, ελζγχεται μια γεννιτρια κλειδοροισ (key stream generator) που δζχεται ωσ είςοδο ζνα μυςτικό κλειδί k και παράγει ςτθν ζξοδο μια ψευδοτυχαία ακολουκία από bits που ονομάηεται κλειδοροι (key stream). Θ γενιτρια κλειδοροισ είναι ζνασ ειδικόσ τφποσ γεννιτριασ ψευδοτυχαίων αρικμϊν. 2. Στθ ςυνζχεια, το αρχικό κείμενο κρυπτογραφείται με modulo 2 (XOR), δθλαδι προςκζτοντασ τθν κλειδοροι ςτο αρχικό κείμενο. Θ ακολουκία από bits που παράγεται με αυτόν τον τρόπο αποτελεί το κρυπτογραφθμζνο κείμενο (cipher text). 7

18 Κεφάλαιο 1 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Επομζνωσ ζνασ ςυμβολιςμόσ του κρυπτογραφικοφ αλγόρικμου ροισ κα μποροφςε να είναι : c i= m i s i, για i 0, Ππου m 0, m 1,... είναι τα bits του αρχικοφ κειμζνου, s 0, s 1,... είναι τα bits τθσ κλειδοροισ και c 0, c 1,..είναι τα bits του κρυπτογραφθμζνου κειμζνου. Το ςφμβολο ςυμβολίηει τθν πράξθ τθσ αποκλειςτικισ διάηευξθσ (exclusive or) μεταξφ των bits. Αντίςτοιχα για τθν αποκρυπτογράφθςθ ιςχφει : m i = c i s i, για i 0. Δθλαδι, θ αποκρυπτογράφθςθ γίνεται με τον ίδιο τρόπο που γίνεται και θ κρυπτογράφθςθ ροισ. Εικόνα 2. Λειτουργία αλγορίθμου ροήσ Οι κρυπτογραφικοί αλγόρικμοι ροισ κεροφνται ςχετικά απλοί και εφκολα υλοποιιςιμοι. Ιδιότητεσ τησ κλειδορροήσ Για να είναι αςφαλισ ζνασ κρυπτογραφικόσ αλγόρικμοσ ροισ πρζπει θ γεννιτρια κλειδοροισ να διακζτει τισ παρακάτω ιδιότθτεσ : 1. Θ ακολουκία πρζπει να ζχει μεγάλθ περίοδο επανάλθψθσ. Ρράγματι θ ακολουκία είναι αναγκαςτικά περιοδικι, δθλαδι μετά από κάποιον αρικμό bits χρειάηεται να επαναλαμβάνεται ξεκινϊντασ από τθν αρχι, αφοφ παράγεται από κάποια ςυνάρτθςθ με βάςθ ζνα κλειδί. Αν θ περίοδοσ επανάλθψθσ είναι πολφ μικρι τότε είναι εφκολο να υπολογιςτεί το ακριβζσ μζγεκοσ τθσ περιόδου επιτρζποντασ κατόπιν τθν αποκρυπτογράφθςθ του κρυπτογραφθμζνου κειμζνου. 8

19 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Κεφάλαιο 1 2. Θ ακολουκία πρζπει να είναι ψευδοτυχαία, δθλαδι να μοιάηει με μια πραγματικά τυχαία ακολουκία. Αυτό ςυνικωσ επαλθκεφεται με εφαρμογι ελζγχων τυχαιότθτασ (random tests), οι οποίοι ελζγχουν κατά πόςο είναι περίπου ίδιο το πλικοσ των ψθφίων μθδζν (0) και των ψθφίων (1), ι οτι κάκε μθδενικό ψθφίο (0) ακολουκείται από ψθφίο ζνα (1) τόςο ςυχνά όςο και το αντίςτροφο. 3. Θ ακολουκία πρζπει να ζχει μεγάλθ γραμμικι ιςοδυναμία (linear equivalence). Οποιαδιποτε περιοδικι ακλουκία δυαδικϊν ψθφίων (όπωσ μια ακολουκία κλειδοροισ) μπορεί να παραχκεί με τθ χριςθ γραμμικϊν (linear) μεκόδων, για παράδειγμα με υπολογιςμό κάκε ςτοιχείου τθσ ακολουκίασ ωσ γραμμικό ςυνδυαςμό των ςτοιχείων τθσ ακολουκίασ που προθγικθκαν. Αν θ ακολουκία μπορεί να παραχκεί από μια γραμμικι ανακφκλωςθ (recurrence) χρθςιμοποιϊντασ μόνο ζναν μικρό αρικμό όρων, τότε λζμε ότι ζχει μικρι γραμμικι ιςοδυναμία. Μια τζτοια ακολουκία ζχει ωσ αποτζλεςμα ζναν αναςφαλι κρυπτογραφικό αλγόρικμο. Αυτζσ οι ςυνκικεσ, όμωσ, δεν είναι αρκετζσ για να εγγυθκοφν αςφάλεια. Γενικότερα, ζνασ κρυπτογραφικόσ αλγόρικμοσ κλειδοροισ μπορεί να προςφζρει ζνα καλό επίπεδο αςφαλείασ όταν είναι δυνατό να διαςφαλιςτεί ότι ακόμα κι αν κανείσ αποκτιςει οποιαδιποτε πλθροφορία για κάποιο κομμάτι τθσ ακολουκίασ κλειδοροισ είναι υπολογιςτικά αδφνατο να ςυνάγει άλα κομμάτια τθσ ακολουκίασ. Οι μοντζρνοι κρυπτογραφικοί αλγόρικμοι ροισ χρθςιμοποιοφν γεννιτριεσ κλειδοροϊν που παράγουν ψευδοτυχαίεσ ακολουκίεσ με πολφ μεγάλεσ περιόδουσ, για παράδειγμα 264 bits ι και περιςςότερα. Υπάρχουν ακόμθ και ςυςκευζσ (hardware) γεννθτριϊν κλειδοροι που κατορκϊνουν να τρζχουν ςε πολφ μεγάλεσ ταχφτθτεσ. Σιμερα οι υψθλζσ ταχφτθτεσ μποροφν να επιτυγχάνονται ακόμθ και με λογιςμικό (software) παραγωγισ κλειδοροϊν. Θ κρυπτογράφθςθ με αλγορίκμουσ ροισ μπορεί να γίνεται πολφ γριγορα, κακϊσ από τθ μία θ λειτουργία τθσ κρυπτογράφθςθσ είναι πολφ απλά και από τθν άλλθ είναι δυνατι θ υλοποίθςθ αςφαλϊν γεννθτριϊν κλειδοροισ που λειτουργοφν ςε πολφ μεγάλεσ ταχφτθτεσ. Μια ενδιαφζρουςα ιδιότθτα των κρυπτογραφικϊν αλγορίκμων ροισ είναι οτι με αυτοφσ δεν πολλαπλαςιάηονται τα λάκθ μετάδοςθσ. Αυτό ςθμαίνει ότι όταν υπάρχει ζνα λάκοσ bit ςτο κρυπτογραφθμζνο κείμενο, τότε μετά τθν αποκρυπτογράφθςθ μόνο ζνα bit του αρχικοφ κειμζνου κα είναι λάκοσ. Ρζρα όμωσ από περιοριςμό των λακϊν μετάδοςθσ, οι κρυπτογραφικοί αλγόρικμοι ροισ δεν παρζχουν από μόνοι τουσ κάποιου είδουσ προςταςία ενάντια ςε πικανι μετατροπι του μθνφματοσ που μεταδίδεται. Αυτό ςθμαίνει οτι ο υποκλοπζασ του μθνφματοσ μπορεί να αλλάξει ζνα bit ςτο κρυπτογραφθμζνο κείμενο όντασ ςίγουροσ ότι με αυτόν τον τρόπο κα αλλάξει μόνο το αντίςτοιχο bit ςτο κείμενο που κα προκφψει από τθν αποκρυπτογράφθςθ του μθνφματοσ. Ζνα ακόμθ μειονζκτθμα είνα ότι αν το κλειδί χρθςιμοποιθκεί δφο φορζσ κα δϊςει τθν ίδια κλειδοροι. Αυτό αποτελεί κίνδυνο για τθν αςφάλεια και πρζπει να αποφεφγεται όςο γίνεται. 9

20 Κεφάλαιο 1 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Θ ςυνθκιςμζνθ λφςθ ςε αυτό το πρόβλθμα παρζχεται όταν αυτόσ που κάνει τθν κρυπτογράφθςθ (encryptor) : Ραράγει ζνα τυχαίο κλειδί μθνφματοσ ι ςυνόδου πριν αρχίςει τθν κρυπτογράφθςθ, Με αυτό το κλειδί μετατρζπει το μυςτικό κλειδί που ειςάγεται ςτθ γεννιτρια κλειδοροισ, Στζλνει το κλειδί μθνφματοσ ωσ πρόκεμα (prefix) του κρυπτογραφθμζνου κειμζνου. 1.3 Λύγα λόγια για το DES(Data Encryption Standard) Ο DES είναι ο πιο ευρζωσ χρθςιμοποιοφμενοσ ςυμμετρικόσ αλγόρικμοσ ςτον κόςμο και αποτελεί ουςιαςτικά μια βελτίωςθ του αλγορίκμου Lucifer που αναπτφχκθκε από τθν IBM ςτισ αρχζσ του Ο αλγόρικμοσ αναπτφχκθκε ςτθ πλιρθ μορφι του απο τθν IBM, τθν Υπθρεςία Εκνικισ Αςφάλειασ (NSA) και το Εκνικό Γραφείο Ρροτφπων (NBS,ςιμερα Εκνικό Ινςτιτοφτο Ρροτφπων και Τεχνολογίασ NIST) το Ο DES είναι ζνασ 64-bit αλγόρικμοσ κρυπτογράφθςθσ μπλόκ και χρθςιμοποιεί ζνα 56-bit κλειδί κατά τθ διάρκεια τθσ εκτζλεςθσ (ζχει 8 bits ιςοτιμίασ από το πλιρεσ κλειδί 64-bit). Ο DES είναι ζνα ςυμμετρικό κρυπτογραφικό ςφςτθμα, και ςυγκεκριμζνα ζνα 16-γφρο κρυπτογραφικό ςφςτθμα Feistel. Πταν χρθςιμοποιείται για τθν επικοινωνία, τόςο αποςτολζασ όςο και ο παραλιπτθσ πρζπει να γνωρίηουν το ίδιο μυςτικό κλειδί, το οποίο μπορεί να χρθςιμοποιθκεί για τθν κρυπτογράφθςθ και τθν αποκρυπτογράφθςθ του μθνφματοσ ι για τθ δθμιουργία και τθν επαλικευςθ ενόσ κϊδικα ταυτότθτασ μθνυμάτων (MAC). Ο DES μπορεί επίςθσ να χρθςιμοποιθκεί για μεμονωμζνουσ χριςτεσ κρυπτογράφθςθσ, όπωσ για τθν αποκικευςθ αρχείων ςε ζναν ςκλθρό δίςκο ςε κρυπτογραφθμζνθ μορφι. Ο DES είναι αρχετυπικόσ block cipher, δθλαδι, ζνασ πρωτότυποσ κρυπταλγόρικμοσ ςυμμετρικοφ κλειδιοφ, που λαμβάνει μια ςειρά από bits απλοφ κειμζνου (plaintext bits) ςτακεροφ μικουσ και τθν μετατρζπει, μζςω μιασ ςειράσ πολφπλοκων ενεργειϊν, ςε μια άλλθ ςειρά bits, το κρυπτογράφθμα (ciphertext) με το ίδιο μικοσ. Στθν περίπτωςθ του DES το μζγεκοσ του μπλοκ (block size: Θ ςειρά των bits ςτακεροφ μικουσ) είναι 64 bits. Ο DES χρθςιμοποιεί, επίςθσ, ζνα κλειδί για να προςαρμόςει τθν μετατροπι, ϊςτε θ αποκρυπτογράφθςθ να μπορεί, υποκετικά, να πραγματοποιθκεί μόνο από εκείνουσ που γνωρίηουν το ςυγκεκριμζνο κλειδί που χρθςιμοποιικθκε για τθν κρυπτογράφθςθ. Το κλειδί φαινομενικά αποτελείται από 64 bits. Ωςτόςο, ςτθν πραγματικότθτα μόνο 56 από αυτά χρθςιμοποιικθκαν από τον αλγόρικμο. Τα υπόλοιπα 8 bits χρθςιμοποιοφνται αποκλειςτικά για τον ζλεγχο τθσ ιςοτιμίασ (parity) και ςτθ ςυνζχεια απορρίπτονται (αυτά καλοφνται parity bits). Ωσ αποτζλεςμα, μποροφν να υπαρξουν μόνο 256 διαφορετικά κλειδιά για τον αλγόρικμο DES και γι αυτό πρζπει να κεωρείται οτι το μικοσ του κλειδιοφ του 10

21 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Κεφάλαιο 1 αλγορίκμου DES είναι 56 bits. Για κάκε κλειδί των 56 bit του αλγορίκμου DES, παράγονται 16 μζρθ κλειδιοφ(υποκλείδια) - k1, k2,..., k16 που το κακζνα ζχει μικοσ 48 bits,γι αυτό και αναφζρεται ςυνικωσ ωσ κλειδί μικουσ 56 bits. Ππωσ κι άλλοι block αλγόρικμοι κρυπτογράφθςθσ, ζτςι και ο DES από μόνοσ του δεν είναι αςφαλισ τρόποσ κρυπτογράφθςθσ κακωσ πολλεσ επικζςεισ και μεκόδοι ζχουν καταγραφεί που εκμεταλλεφονται τισ αδυναμίεσ του, όπωσ το μικρό μικοσ κλειδιοφ. Τρόποι λειτουργίασ Αμζςωσ μετά τθν ανακφρθξθ του DES ωσ Ομοςπονδιακοφ Ρροτφπου των ΘΡΑ, δθμιουργικθκε ζνα ακόμθ πρότυπο που ζδινε τζςςερισ ενδεικνυόμενουσ τρόπουσ χριςθσ τθσ κρυπτογράφθςθσ δεδμζνων με τον αλγόρικμο DES. Αυτοί οι τρόποι λειτουργίασ (modes of operation) υιοκετικθκαν κατόπιν ωσ διεκνζσ πρότυπο για τθν χριςθ οποιουδιποτε αλγορίκμου μπλόκ. Ζνασ κρυπτογραφικόσ αλγόρικμοσ μπλόκ, όπωσ ο DES, μπορεί να χρθςιμοποιθκεί με τουσ ακόλουκουσ τζςςερισ τρόπουσ(ςχθματικι τουσ περιγραφι) : Electronic Code Book (ECB) mode,που αποτελεί τον αρχικό και πιο απλό τρόπο λειτουργία κρυπτογράφθςθσ Εικόνα 3. Λειτουργία ECB Με τθ λειτουργία αυτι γίνεται φανερό ζνα μειονζκτθμα. Κάκε πανομοιότυπο μπλόκ αρχικοφ κειμζνου κρυπτογραφείται όμοια, ζτςι αναπτφχκθκαν και άλλεσ μεκόδοι λειτουργίασ. Cipher Block Chaining (CBC) mode 11

22 Κεφάλαιο 1 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Εικόνα 4. Λειτουργία CBC 12

23 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Κεφάλαιο 1 Output Feed Back (OFB) mode Εικόνα 5. Λειτουργία OFB Ciphertext Feed Back (CFB) mode Εικόνα 6. Λειτουργία CFB 13

24 Κεφάλαιο 1 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Ο DES που αναπτφχκθκε παρακάτω υλοποιεί τον πρϊτο τρόπο λειτουργίασ(ecb), όντασ αρχικόσ τρόποσ λειτουργίασ του από τουσ καταςκευαςτζσ του Παρϊδειγμα λειτουργύασ του DES O DES δουλεφει με bits. Κάκε οκτάδα bits αποτελεί ζναν χαρακτιρα ascii. Το δυαδικό αντιςτοιχεί ςτο χαρακτιρα a, το δυαδικό το χαρακτιρα 1 και το δυαδικό το χαρακτιρα. Ο DES κρυπτογραφεί κομμάτια του μθνφματοσ αποτελοφμενα από 64 bits τα οποία αντιςτοιχοφν ςε 8 χαρακτιρεσ. Για να κάνει τθν κρυπτογράφθςθ ο DES χρθςιμοποιεί «κλειδιά» τα οποία φαινομενικά αποτελοφνται κι αυτά απο 64 δυαδικά bits ι 8 χαρακτιρεσ. Φαινομενικά, γιατί κάκε 8 ο bit του κλειδιοφ αγνοείται από τον αλγόρικμο οφτωσ ϊςτε το κανονικό μικοσ του κλειδιοφ να είναι 56 bits. Ράντωσ, ςε κάκε περίπτωςθ τα 64 δυαδικά bits είναι ο ςτρογγυλόσ αρικμόσ ςτον οποίο ο DES είναι οργανωμζνοσ. Για παράδειγμα, αν κεωριςουμε το μθ κρυπτογραφθμζνο κείμενο abcd1234 και το κρυπτογραφιςουμε με το κλειδί κα λάβουμε το κρυπτογραφθμζνο μινυμα ςε bits που αντιςτοιχεί ςε χαρακτιρεσ ascii ςτο ²wºöºQ E. Αν αποκρυπτογραφιςουμε το κρυπτογραφθμζνο αυτό μινυμα με το μυςτικό κλειδί το αποτζλεςμα που κα λάβουμε κα είναι το αρχικό μθ κρυπτογραφθμζνο μινυμα abcd1234. Αυτό το παράδειγμα είναι επιδζξια καταςκευαςμζνο και μεκοδικό γιατί το μθ κρυπτογραφθμζνο μινυμα ζχει μικοσ ακριβϊσ 64 bits. Το ίδιο κα ςυνζβαινε και αν το αρχικό μινυμα είχε μικοσ πολλαπλάςιο των 64 bits, ςυνκικθ, όμωσ, που δεν ικανοποιείται από τα περιςςότερα μθνφματα που πρόκειται να κρυπτογραφθκοφν Περιγραφό και υλοπούηςη του DES Ο DES είναι κρυπτογραφικόσ αλγόρικμοσ μπλόκ, το οποίο ςθμαίνει ότι ςπάει το αρχικό κείμενο ςε μπλόκ ςτακεροφ μικουσ, ίςου με 64 bits, το κρυπτογραφεί και επιςτρζφει κρυπτογραφθμζνο κειμενο επίςθσ μικουσ 64 bits, κάκε ζνα από τα οποία μπορεί να είναι είτε 0 είτε 1. Θ λειτουργία του DES υλοποιείται ςτθν κλάςθ DES.java(Ραρουςιάηεται ολόκλθρθ ςτο Παράρτθμα Α). Για τθν καλφτερθ κατανόθςθ του αλγορίκμου, παράλλθλα με τα βιματα κα επιλφεται κι ζνα παράδειγμα κρυπτογράφθςθσ ενόσ μπλόκ κειμζνου. 14

25 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Κεφάλαιο 1 Αρχικά το αρχικό κείμενο μετατρζπεται ςε binary μορφι(dobinary_plaintext()). Θ παραπάνω ςυνάρτθςθ υλοποιεί τθ μετατροπι αυτι. Κακϊσ ο DES είναι ζνασ αλγόρικμοσ κρυπτογράφθςθσ μπλόκ ςτακεροφ μικουσ, ςτθ ςυνάρτθςθ πραγματοποιείται ζλεγχοσ για το μικοσ του αρχικοφ κειμζνου. Το αρχικό κείμενο πρζπει να είναι πολλαπλάςιο των 64 bits, με άλλα λόγια να περιζχει χαρακτιρεσ πολλαπλάςιουσ του 8 (ςυνκικθ που δεν υλοποιείται πάντα). Αν δεν ςυμπλθρϊνεται αυτι θ ςυνκικθ απο το αρχικό κείμενο, τότε το κείμενο ςυμπλθρϊνεται με κενά(0 ωσ bits) μζχρι να ιςχφςει θ ςυνκικθ(θ λειτουργία αυτι ονομάηεται padding). Ζπειτα, ο κάκε χαρακτιρασ μετατρζπεται ςε 8 bits μζςω τθσ getbinarybits() τα οποία αποκθκεφονται ςτο πίνακα block[][]. Τζλοσ ο πίνακασ αυτόσ αντιγράφεται ςε ζνα νζο πίνακα μίασ διάςταςθσ(binarymessage[]) για τθν ευκολότερθ χριςθ του. Θ ςυνάρτθςθ getbinarybits() επιςτρζφει τα 8 bit που ςυνκζτουν ζνα χαρακτιρα ascii με τθ χριςθ ενόσ πίνακα τφπου byte. 15

26 Κεφάλαιο 1 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Παράδειγμα: Ασ υποκζςουμε ότι το αρχικό κείμενο M= ABCDEF ςε δεκαεξαδικι μορφι (το παράδειγμα γίνεται με κείμενο και κλειδί ςτο δεκαεξαδικό ςφςτθμα αρίκμθςθσ,κακϊσ πολλοί χαρακτιρεσ ςε ascii μορφι δεν είναι εκτυπϊςιμοι, ςε ascii μορφι το κείμενο #Eg«Íï ). Αν το μετατρζψουμε ςε δυαδικι μορφι ζχουμε : M = Ο DES επεμβαίνει ςτα μπλόκ του αρχικοφ κειμζνου μικουσ 64 bits χρθςιμοποιϊντασ κλειδιά μικουσ 56 bits όπωσ ανεφζραμε και πιο πάνω. Τα κλειδιά ςτθν πραγματικότθτα αποκθκεφονται ςαν να ιταν μικουσ 64 bits με τθ διαφορά ότι κάκε όγδοο bit δεν χρθςιμοποιείται (δθλαδι το 8ο, το 16ο, το 24ο, το 32ο, το 40ο, το 48ο, το 54ο και το 64ο bit). Ραρ όλ αυτά ςτουσ επόμενουσ υπολογιςμοφσ κα καταμετρϊνται κανονικά τα bit των κλειδιϊν από το 1ο ωσ το 64ο αλλά όπωσ κα δοφμε και ςτθ ςυνζχεια τα bit ςε κζςθ πολλαπλάςια του 8 κα απαλείφονται κατά τθ δθμιουργία των υποκλειδιϊν. Ραρόμοια διαδικαςία ακολουκείται και για τθ μετατροπι του κλειδιοφ ςε binary μορφι(dobinary_keyword()). Εδϊ πάλι ο αλγόρικμοσ μετατρζπει ςε bits τουσ χαρακτιρεσ του κλειδιοφ με τθ χριςθ τθσ ςυνάρτθςθσ getbinarybits(). Κακϊσ ο DES κάνει χριςθ ςτακεροφ μικουσ κλειδιοφ(64-bit κλειδί),δθλαδι 8 χαρακτιρων κλειδί, πάλι υλοποιείται μια λειτουργία padding ςε περίπτωςθ που το κλειδί είναι λιγότερων χαρακτιρων. Θ λειτουγία αυτι γίνεται ζμμεςα κακϊσ το κλειδί μετατρζπεται ςε bit ςε ζνα ςτακερό πίνακα διαςτάςεων *8+*8+ τφπου byte, όπου αρχικοποιείται με 0 ωσ bits και απλά αλλάηει τα bits του κλειδιοφ. 16

27 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Κεφάλαιο 1 Παράδειγμα : Ασ υποκζςουμε ότι ζχουμε το κλειδί K= BBCDFF1 ςε δεκαεξαδικι μορφι(ςε ascii μορφι 4Wy¼ßñ ). Αν το μετατρζψουμε ςε δυαδικι μορφι κα ζχουμε ότι : K = Ο αλγόρικμοσ DES χωρίηεται ςτα παρακάτω βιματα : Δημιουργύα 16 υποκλειδιών Ραρακάτω παρουςιάηεται ο κϊδικασ για τθν παραγωγι των υποκλειδιϊν. Τα bit του αρχικοφ κλειδιοφ αντιμετατίκενται ςφμφωνα με τον παρακάτω πίνακα (PC_1). Ππωσ φαίνεται από τον πίνακα, από τθ ςτιγμι που θ πρϊτθ τιμι του είναι το νοφμερο 57, ςθμαίνει ότι το 57 ο bit του αρχικοφ κλειδιοφ Κ μετατίκεται ςε πρϊτο bit για το κλειδί Κ+. Ομοίωσ το 49 ο bit του αρχικοφ κλειδιοφ μετατίκεται ςε δεφτερο και το 4 ο του αρχικοφ ςε τελευταίο για το Κ+. 17

28 Κεφάλαιο 1 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Ρρζπει να παρατθριςουμε ότι μόνο 56 από τα 64 bits του αρχικοφ κλειδιοφ εμφανίηονται ςτον πίνακα αντιμετάκεςθσ. Θ αντιμετάκεςθ των bit του κλειδιοφ πραγματοποιείται με τθ χριςθ δφο δυναρτιςεων, των FillPC_1() και DoPC_1(). Θ ςυνάρτθςθ FillPC_1() αντιγράφει τα ςτοιχεία του πίνακα αντιμετάκεςθ PC_1[][] ςε ζνα πίνακα μίασ διαςτάςθσ, το store_num[]. Ζπειτα, ςτθ ςυνάρτθςθ DoPC_1(), γίνεται θ αντιμετάκεςθ των bit του κλειδιου για τθν παραγωγι του αντιμετατεκιμενου κλειδιοφ 56-bit. Θ ςυνάρτθςθ ξεκινόντασ απο το 1 ο ςτοιχείο του πίνακα store_num[](νοφμερο 57), κάνει επαναλιψεισ μζχρι να φτάςει ςτο 18

29 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Κεφάλαιο 1 αντίςτοιχο bit του αρχικοφ κλειδιοφ(key_in[]) και το αποκθκεφει ςε νζο πίνακα(key_out[]) που αντιπροςωπεφει το αντιμετατεκιμενο κλειδι Κ+. Θ ςυνάρτθςθ ςυνεχίηει με το επόμενο ςτοιχείο του πίνακα store_num*+,πραγματοποιόντασ τθν ίδια διαδικαςία και ολοκλθρϊνεται με τθ ςυμπλιρωςθ του πίνακα αντιμετάκεςθσ key_out. Παράδειγμα: Ζτςι, από το μικουσ 64 bits αρχικό κλειδί : K = Λαμβάνουμε το μικουσ 56 bits αντιμετατεκθμζνο κλειδί : Κ+ = Ζπειτα, χωρίηουμε αυτό το κλειδί ςε δφο κομμάτια C 0 και D 0 (αριςτερό και δεξί αντίςτοιχα) τα οποία ζχουν μικοσ 28 bits το κακζνα. Θ ςυνάρτθςθ DoSegementation() δεχόμενθ ωσ όριςμα το κλειδί 56-bit Κ+(key_out[]) πραγματοποιεί το χωριςμό του κλειδιοφ ςε αριςτερό και δεξί μζροσ. Παράδειγμα: Ζτςι απο το αντιμετατεκιμενο κλειδί Κ+ = ζχουμε C 0 = D 0 = Ζχοντασ προςδιορίςει το C 0 και το D 0, δθμιουργοφμε δεκαζξι δζςμεσ C n και D n (1 n 16 ). Κάκε ηεφγοσ δεςμϊν C n και D n δθμιουργείται από το προθγοφμενο ηεφγοσ C n-1 και D n-1, αντίςτοιχα, για n = 1, 2,, 16, χρθςιμοποιϊντασ τον παρακάτω πίνακα για αριςτερζσ ολιςκιςεισ τθσ προθγοφμενθσ δζςμθσ. Για να πραγματοποιθκεί μια ολίςκθςθ προσ τα αριςτερά μετακινείται κάκε bit μια κζςθ αριςτερά με εξαίρεςθ το πρϊτο το οποίο πθγαίνει τελευταίο. 19

30 Κεφάλαιο 1 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Θ πραγματοποίθςθ τθσ ολίςκθςθσ γίνεται μζςω τθσ ςυνάρτθςθσ DoOneLeftShift(). Θ ςυνάρτθςθ κάνει μία απλι ολίςκθςθ των bit προσ τα αριςτερά. Αντιγράφεται το 1 ο ςτοιχείο του εκάςτοτε μιςοφ μζρουσ (C n και D n ) ςε μία προςωρινι μεταβλθτι(temp), και ζπειτα αντιγράφει τα ςτοιχεία κζςεωσ i+1 ςτθ κζςθ i και τζλοσ τοποκετεί το ςτοιχείο τθσ μεταβλθτισ temp ςτθ τελευταία κζςθ του αντίςτοιχου πίνακα. Παράδειγμα: Ζτςι από το αρχικό ηεφγοσ C 0 και D 0 προκφπτουν τα ηεφγθ : C 0 = D 0 =

31 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Κεφάλαιο 1 C 1 = D 1 = C 2 = D 2 = C 3 = D 3 = C 4 = D 4 = C 5 = D 5 = C 6 = D 6 = C 7 = D 7 = C 8 = D 8 = C 9 = D 9 = C 10 = D 10 = C 11 = D 11 = C 12 = D 12 = C 13 = D 13 = C 14 = D 14 = C 15 = D 15 = C 16 =

32 Κεφάλαιο 1 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] D 16 = Στθ ςυνζχεια ςχθματίηουμε τα κλειδιά Κ n, με 1 n 16, χρθςιμοποιϊντασ των παρακάτω πίνακα αντιμετακζςεων (PC_2[][]) ςε κάκε ηεφγοσ C n - D n. Κάκε ηεφγοσ ζχει 56 bits αλλά ςτον πίνακα αντιμετακζςεων χρθςιμοποιοφνται μόνο τα 48. Ζτςι λοιπόν το 1 ο bit του κλειδιοφ K n είναι το 14 ο του Cn - Dn κτλ. Αρχικά, ςε κάκε γφρο ενϊνονται και πάλι ςε ζνα κλειδί τα ηεφγθ C n - D n με τθ βοικεια τθσ ςυνάρτθςθσ FillC_D(). Ζχοντασ ενϊςθ τα αντίςτοιχα ηεφγθ του εκάςτοτε γφρου, θ αντιμετάκεςθ των bit του κλειδιοφ πραγματοποιείται με τθ χριςθ δφο δυναρτιςεων, των FillPC_2() και DoPC_2(). 22

33 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Κεφάλαιο 1 Ππωσ και οι παραπάνω ςυναρτιςεισ ςυνάρτθςθ FillPC_1() και DoPC_1(), ζτςι και θ ςυνάρτθςθ FillPC_2() αντιγράφει τα ςτοιχεία του πίνακα αντιμετάκεςθ PC_2[][] ςε ζνα πίνακα μίασ διαςτάςθσ, το store_num1[]. Ζπειτα, ςτθ ςυνάρτθςθ DoPC_2(), γίνεται θ αντιμετάκεςθ των bit του κλειδιου για τθν παραγωγι του αντιμετατεκιμενου υποκλειδιοφ 48-bit. Θ ςυνάρτθςθ ξεκινόντασ απο το 1 ο ςτοιχείο τουτου πίνακα store_num1[](νοφμερο 14), κάνει επαναλιψεισ μζχρι να φτάςει ςτο αντίςτοιχο bit του κλειδιοφ(c_d[]) και το αποκθκεφει ςε νζο πίνακα(final_key[]) που αντιπροςωπεφει το υποκλείδι του γφρου. Θ ςυνάρτθςθ ςυνεχίηει με το επόμενο ςτοιχείο του πίνακα store_num1*+,πραγματοποιόντασ τθν ίδια διαδικαςία και ολοκλθρϊνεται με τθ ςυμπλιρωςθ του πίνακα αντιμετάκεςθσ final_key. Τζλοσ,το κάκε υποκλείδι γφρου που παράγεται αντιγράφεται ςε ζνα πίνακα δφο διαςτάςεων(final_keys[][]) για τθν ευκολότερθ εξαγωγι τουσ ςτο κυρίωσ πρόγραμμα. Παράδειγμα: Για το πρϊτο κλειδί ζχουμε : C 1 D 1 = Το οποίο μετα τθν αντιμετάκεςθ γίνεται : Κ 1 = Για τα υπόλοιπα κλειδιά ζχουμε ότι : K 2 = K 3 = K 4 = K 5 = K 6 = K 7 = K 8 = K 9 = K 10 = K 11 =

34 Κεφάλαιο 1 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] K 12 = K 13 = K 14 = K 15 = K 16 = Εικόνα 7. Διαδικαςία παραγωγήσ 16 υποκλειδιών Με αυτόν τον τρόπο δθμιουργοφνται τα 16 υποκλειδιά. Στθ ςυνζχεια κα δοφμε τι γίνεται με το μινυμα προσ κρυπτογράφθςθ Κρυπτογρϊφηςη των μπλόκ μόκουσ 64-bit Ραρακάτω παρουςιάηεται ολόκλθρθ θ λειτουργία τθσ κρυπτογράφθςθσ του DES 24

35 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Κεφάλαιο 1 25

36 Κεφάλαιο 1 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Ζχοντασ μεταρζψει το αρχικό κείμενο και το κλειδί ςε binary μορφι και ζχοντασ δθμιουργιςει τα 16 υποκλείδια για τον κάκε γφρο επεξεργαςία του εκάςτοτε μπλοκ κειμζνου, θ λειτουργία τθσ κρυπτογράφθςθσ περνά ςτθ κρυπτογράφθςθ των δεδομζνων. Αρχικά γίνεται επιλογι του 64-bit μπλόκ προσ επεξεργαςία από το αρχικό κείμενο ςε binary μορφι. Ξεκινϊντασ απο τθν αρχι του κειμζνου και με τθ βοικεια τθσ μεταβλθτισ f, που κακορίηει ποιο μπλόκ ζχει ςειρά προσ επεξεργαςία, επιλζγεται το μπλόκ και αποκθκεφεται ςε ζνα προςωρινό πίκανα 64 κζςεων(64 bit δεδομζνων), τον temp[]. Ζπειτα, πριν το πρϊτο γφρο επεξεργαςίασ το επιλεγμζνο μπλόκ δζχεται μια αρχικι αντιμετάκεςθ των ςτοιχείων του(bit ) με βάςθ τον πίνακα 4, όπωσ και παραπάνω. Ππωσ φαίνεται από τον πίνακα, από τθ ςτιγμι που θ πρϊτθ τιμι του είναι το νοφμερο 58, ςθμαίνει ότι το 58 ο bit του επιλεγμζνου μπλόκ μετατίκεται ςε πρϊτο bit για το αντιμετατικζμενο μπλόκ. Ομοίωσ το 50 ο bit του επιλεγμζνου μπλόκ μετατίκεται ςε δεφτερο και το 7 ο του επιλεγμζνου μπλόκ ςε τελευταίο για το 26

37 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Κεφάλαιο 1 αντιμετατικζμενο μπλόκ. Ρρζπει να παρατθριςουμε και τα 64 bits του επιλεγμζνου μπλόκ εμφανίηονται ςτον πίνακα αντιμετάκεςθσ. Θ αντιμετάκεςθ αυτι πραγματοποιείται με τθ χριςθ δφο ςυναρτιςεων, των FillPermutation() και DoIP(). Ππωσ και οι παραπάνω ςυναρτιςεισ FillPC_1(), FillPC_2(), DoPC_1() και DoPC_2(), ζτςι και θ ςυνάρτθςθ FillPermutation(), αντιγράφει τα ςτοιχεία του πίνακα αντιμετάκεςθ Permutation[][] ςε ζνα πίνακα μίασ διαςτάςθσ, το store_num[]. Ζπειτα, ςτθ ςυνάρτθςθ γίνεται θ αντιμετάκεςθ των bit του κλειδιου για τθν παραγωγι του αντιμετατεκιμενου μπλόκ 64-bit. Θ ςυνάρτθςθ ξεκινόντασ απο το 1 ο ςτοιχείο του πίνακα store_num[](νοφμερο 58), κάνει επαναλιψεισ μζχρι να φτάςει ςτο αντίςτοιχο bit του επιλεγμζνου μπλόκ(temp*+) και το αποκθκεφει ςε νζο πίνακα(perm_out[]) που αντιπροςωπεφει το αντιμετατικζμενο μπλόκ. Θ ςυνάρτθςθ ςυνεχίηει με το επόμενο ςτοιχείο του πίνακα store_num*+,πραγματοποιόντασ τθν ίδια διαδικαςία και ολοκλθρϊνεται με τθ ςυμπλιρωςθ του πίνακα αντιμετάκεςθσ perm_out. 27

38 Κεφάλαιο 1 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Παράδειγμα: Αν εφαρμόςουμε τθν αντιμετάκεςθ μπλόκ Μ που αναφζραμε παραπάνω κα λάβουμε τθ αντιμετατικζμενο μπλόκ Ι: M = IP = Στθ ςυνζχεια αντιμετατικζμενο μπλόκ των 64 bits χωρίηεται ςε δφο δζςμεσ των 32 bit (το αριςτερό μιςό L και το δεξί μιςό R). Θ λειτουργία αυτι πραγματοποιείται με τθ χριςθ τθσ ςυνάρτθςθσ DoSegmentation(). Θ διαδικαςία είναι απλι κακϊσ θ ςυνάρτθςθ απλά αντιγράφει, αρχικά τα πρϊτα 32 bit του πίνακα perm_out[] ςτο πίνακα Left[] και τα υπόλοιπα 32 bit ςτο πίνακα Right[]. Παράδειγμα: Το αντιμετατικζμενο μπλόκ IP = Χωρίηεται ςε L 0 = R 0 = Σειρά ζχουν οι 16 γφροι επεξεργαςίασ του μπλόκ, επεμβαίνοντασ και επεξεργάηοντασ τα 2 μιςά μπλόκ Left[] και Right[]. Για 1 n 16, κάνοντασ χριςθ τθσ ςυνάρτθςθσ f(feistel), θ οποία επεμβαίνει ςε δφο μπλόκ, το ζνα είναι το μπλόκ των δεδομζνων μικουσ 32 bit και το άλλο είναι ζνα υποκλειδί Κ n μικουσ 48 bit και παράγει ζνα νζο μπλόκ, μικουσ 32 bit. Ζτςι, κεωρϊντασ το ςυμβόλο + ότι αντιςτοιχεί ςτθν πράξθ XOR και για 1 n 16 γίνονται οι παρακάτω υπολογιςμοί : L n = R n -1 R n = L n-1 + f (R n-1, K n ) Με αυτόν τον τρόπο προκφπτει το τελικό μπλόκ για n=16, θ L 16 R

39 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Κεφάλαιο 1 Παράδειγμα : Κ 1 = L 1 = R 0 = R 1 = L 0 + f (R 0,K 1 ) Εικόνα 8. Λειτουργία τησ ςυνάρτηςησ F Ραραμζνει να εξθγιςουμε τον τρόπο με τον οποίο λειτουργεί θ ςυνάρτθςθ f. Σε κάκε γφρο επεξεργαςίασ το μιςό μπλόκ των δεδομζνων(32-bit), περνά κάκε φορά απο τθ ςυνάρτθςθ f θ οποία αποτελείται απο τζςςερα ςτάδια: Επζκταςη το μιςό μπλόκ R n-1 επεκτείνεται από 32 ςε 48 bits. Για να επιτευχκεί αυτό, χρθςιμοποιείται ζνασ πίνακασ με βάςθ τον οποίο επιλζγοναι κάποια ςτοιχεία του μπλόκ R n-1 και επαναλαμβάνονται. Ο πίνακασ Ε(πίνακασ επζκταςθσ) είναι 48 bit. Ζτςι θ λειτουργία Ε(R n-1 ) ζχει είςοδο ζνα 32-bit και ζξοδο μια άλλθ δζςμθ μικουσ 48-bit. Ο πίνακασ Ε φαίνεται παρακάτω. 29

40 Κεφάλαιο 1 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Ππωσ φαίνεται από τον πίνακα, από τθ ςτιγμι που θ πρϊτθ τιμι του είναι το νοφμερο 32, ςθμαίνει ότι το 32 ο bit του μιςοφ μπλόκ μετατίκεται ςε πρϊτο bit για το επεκτεταμζνο μπλόκ. Ομοίωσ το 1 ο bit του μιςοφ μπλόκ μετατίκεται ςε δεφτερο και το 1 ο πάλι του μιςοφ μπλόκ ςε τελευταίο για το επεκτεταμζνο μπλόκ. Ρρζπει να παρατθριςουμε ότι μερικά 32 bits του μιςοφ μπλόκ εμφανίηονται απο δφο φορζσ ςτον πίνακα επζκταςθσ. Θ επζκταςθ αυτι πραγματοποιείται με τθ χριςθ δφο ςυναρτιςεων, των FillETable() και DoETable (). Ραρόμοια με τισ παραπάνω ςυναρτιςεισ Fill*() και Do*(), ζτςι και θ ςυνάρτθςθ FillETable(), αντιγράφει τα ςτοιχεία του πίνακα επζκταςθσ ETable[][] ςε ζνα πίνακα μίασ διαςτάςθσ, το store_num[]. Ζπειτα, ςτθ ςυνάρτθςθ DoETable() γίνεται θ επζκταςθ των bit του μιςοφ μπλόκ για τθν παραγωγι του επεκτεταμζνου μπλόκ 48- bit. Θ ςυνάρτθςθ ξεκινόντασ απο το 1 ο ςτοιχείο του πίνακα store_num[](νοφμερο 32), κάνει επαναλιψεισ μζχρι να φτάςει ςτο αντίςτοιχο bit του μιςοφ μπλόκ(right_in *+) και το αποκθκεφει ςε νζο πίνακα(right_out[]) που αντιπροςωπεφει το επεκτεταμζνο μπλόκ. Θ ςυνάρτθςθ ςυνεχίηει με το επόμενο ςτοιχείο του πίνακα store_num*+,πραγματοποιόντασ τθν ίδια διαδικαςία και ολοκλθρϊνεται με τθ ςυμπλιρωςθ του πίνακα επζκταςθσ Right_out. 30

41 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Κεφάλαιο 1 Παράδειγμα: Αν R 0 = Τότε μετά τθν επζκταςθ του μπλόκ απο τισ ςυναρτιςεισ κα είναι E(R 0 ) = Ανάμιξη κλειδιών - το αποτζλεςμα ςυνδυάηεται με ζνα υποκλειδι, χρθςιμοποιϊντασ τθ πράξθ τθσ XOR. Δθμιουργοφνται 16 υποκλείδια 48-bit - ζνα για κάκε γφρο τα οποία προζρχονται από το κφριο κλειδί 56-bit από το προγραμματιςμό κλειδιϊν(περιγράφθκε παραπάνω). Αρχικά με τθν ςυνάρτθςθ getroundkey(), θ οποία δζχεται ωσ όριςμα το γφρο επεξεργαςίασ του μπλόκ(1 n 16), αντιγράφεται το αντίςτοιχο υποκλείδι από το πίνακα των υποκλειδειϊν(final_keys[][]) ςε μία προςωρινι μεταβλθτι για το υποκλείδι(roundkey[]). Ζπειτα, ζχοντασ το επεκτεταμζνο μπλόκ και το υποκλείδι του γφρου(48-bit και τα δφο μπλόκ), πράγματοποιείται θ πράξθ τθσ XOR απο τθν αντίςτοιχθ ςυνάρτθςθ, θ οποία ςυγκρίνει τα ςτοιχεία των ίδιων κζςεων από τα μπλόκ και παράγει ζνα νζο μπλόκ 48-bit τοποκετόντασ 0 ι 1 ανάλογα με το αποτζλεςμα τθσ ςφγκριςθσ(0 ωσ bit ςτο νζο πίνακα αν E(Rn)[i]==roundKey[i] αλλίωσ 1). Παράδειγμα: K 1 = E(R 0 ) = Με τθ πράξθ τθσ XOR ζχουμε K 1 +E(R 0 ) =

42 Κεφάλαιο 1 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Υποκατάςταςη - μετά τθν ανάμειξθ με το υποκλείδι του γφρου, το μπλόκ χωρίηεται ςε οκτϊ κομμάτια των 6-bit πρίν από τθν επεξεργαςία των S-Boxes, ι αλλίωσ κουτία αντικατάςταςθσ(substitution boxes). Κάκε ζνα από τα οκτϊ κουτιά S αντικακιςτά 6 bits ειςόδου του με 4 bits εξόδου, ςφμφωνα με ζνα μθ-γραμμικό μεταςχθματιςμό, που παρζχεται με τθ μορφι ενόσ πίνακα αναηιτθςθσ. Τα S- κουτιά παρζχουν τον πυρινα τθσ αςφάλειασ του DES - χωρίσ αυτά, θ κρυπτογράφθςθ κα ιταν γραμμικι και εφκραυςτθ. Το τελικό μπλόκ που προκφπτει από αυτι τθν διαδικαςία είναι μικουσ 32 bits. Δθλαδι, K n + E(R n-1 ) =B 1 B 2 B 3 B 4 B 5 B 6 B 7 B 8 Ππου Β i είναι μία ομάδα από ζξι bits. Ζπειτα υπολογίηουμε το νζο μπλόκ : S 1 (B 1 )S 2 (B 2 )S 3 (B 3 )S 4 (B 4 )S 5 (B 5 )S 6 (B 6 )S 7 (B 7 )S 8 (B 8 ) Ππου θ ποςότθτα S i (B i ) αντιςτοιχεί ςτο αποτζλεςμα που προκφπτει για τθν i-οςτι εξάδα ςτον i-οςτό πίνακα S. Ρριν παρακζςουμε τουσ πίνακεσ S i ασ εξθγιςουμε πωσ λειτουργοφν. Για τθν εξιγθςθ αυτι κα χρθςιμοποιιςουμε τον πίνακα S 1 : Αν κεωριςουμε S 1 τθν ςυνάρτθςθ που περιγράφεται ςτον παραπάνω πίνακα και Β μια δζςμθ από ζξι bit θ λειτουργία S 1 (B) περιγράφεται ακολοφκωσ : Το πρϊτο και το τελευταίο bit του Β παριςτάνουν ζναν δεκαδικό αρικμό από το 0 ωσ το 3 (ι ζναν δυαδικό από το 00 ωσ το 11). Θζτουμε αυτόν τον αρικμό ίςο με i. Τα υπόλοιπα, μεςαία, bit παριςτάνουν ζναν δεκαδικό αρικμό από το 0 ωσ το 15 (ι ζναν δυαδικό από το 0000 ωσ το 1111) τον οποίο και κζτουμε ίςο με j. Ζπειτα αναηθτοφμε ςτον πίνακα S 1 τον αρικμό που βρίςκεται ςτθν i -οςτι γραμμι και ςτθν j -οςτι ςτιλθ. Ο αρικμόσ που προκφπτει απ αυτι τθν αναηιτθςθ είναι ζνασ δεκαδικόσ αρικμόσ από το 0 ωσ το 15 ο οποίοσ αναπαρίςταται μοναδικά, όπωσ γνωρίηουμε, από τζςςερα δυαδικά ψθφία. Αυτόσ ο αρικμόσ είναι και το αποτζλεςμα που προκφπτει από τθν πράξθ S 1 (B). Για παράδειγμα αν Β=011011, το πρωτο ψθφίο είναι 0 και το τελευταίο 1, άρα επιλζγουμε τθν 1 θ γραμμι. Τα μεςςαία 4 ψθφία είναι 1010, το οποίο είναι το δυαδικό ιςοδφναμο του δεκαδικοφ αρικμοφ 10, επομζνωσ θ ςτιλθ που επιλζγεται είναι θ 10 θ. Στθν 1 θ γραμμι και τθν 10 θ ςτιλθ εμφανίηεται ο αρικμόσ 6 (ςε δυαδικό ςφςτθμα το 0101), το οποίο είναι και το αποτζλεςμα. Επομζνωσ ζχουμε ότι S 1 (011011)=

43 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Κεφάλαιο 1 Ραρακάτω παρατίκενται οι πίνακεσ-ςυναρτιςεισ S 1 ωσ S 8 : 33

44 Κεφάλαιο 1 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Ολόκλθρθ θ λειτουργία των S-boxes πραγματοποιείται ςτθ ςυνάρτθςθ DoSBox() Θ ςυνάρτθςθ εφαρμόηει τθν αντικατάςταςθ των bits. Τα 48 bit που προζκυψαν απο τθν XOR ςυνάρτθςθ, ςπάνε ςε ομάδεσ των 6 bit(μζςω τθσ while(), 6 bit κάκε φορά). Ζπειτα, μζςο των ςυναρτιςεων DoDecimal() και DoFourDecimal() εξάγονται θ γραμμι και θ ςτιλθ απο τα 6 bit. Ζχοντασ αυτά μζςω τθσ ςυνάρτθςθσ SelectSBox() μεταφερόμαςτε ςτο επικυμθτό ςτοιχείο,ςτο αντίςτοιχο Sbox. Στθ ςυνζχεια το ςτοιχείο αυτο(νοφμερο ςτο δεκαδικό ςφςτθμα) μετατρζπεται ςτο δυαδικό ςφςτθμα αρίκμθςθ(ςε 4 bit) μζςω τθσ ςυνάρτθςθσ make32bit() και αποκθκεφονται ςτο πίνακα εξόδου από τθν επεξεργαςία των Sboxes(after_SBox[]). Θ διαδικαςία ολοκλθρϊνεται αφοφ μετατραποφν όλεσ οι ομάδεσ των 6 bit ςε 4 bit. 34

45 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Κεφάλαιο 1 Ραρακάτω παρουςιάηονται αναλυτικότερα οι παραπάνω ςυναρτιςεισ για τθν περεταίρο κατανόθςθ τουσ. Οι ςυναρτιςεισ DoDecimal() και DoFourDecimal() δζχονται τα 6 bit και παράγουν 2 αρικμοφσ, τθ γραμμι και τθ ςτιλθ αντίςτοιχα. Θ ςυνάρτθςθ DoDecimal() ςυνδιάηει το πρϊτο και το τελευταίο bit απο τθν εξάδα των bit και τα μετατρζπει με τθν απλι μζκοδο του πολλαπλαςιαςμοφ ςτο δεκαδικό ςφςτθμα αρίκμθςθσ και ζπειτα το αποτζλεςμα αποκθκεφεται ςε μια προςωρινι μεταβλθτι που αντιπροςωπεφει τθ γραμμι(row) για το Sbox. Αντίςτοιχα, θ ςυνάρτθςθ DoFourDecimal(), ςυνδιάηει τα υπόλοιπα 4 bit και με παρόμοιο τρόπο παράγεται και αποκθκεφεται ςε μια προςωρινι μεταβλθτι(col) ζνασ αρικμόσ που αντιπροςωπεφει τθ ςτιλθ για το Sbox. Θ ςυνάρτθςθ SelectSBox() δζχεται ωσ ορίςματα τθ γραμμι, τθ ςτιλθ και ποία εξάδα bit επεξεργάηεται(ι ςε ποιό Sbox πρζπει να μετακινθκοφμε). Ζχοντασ αυτά μετακινοφμαςτε ςτο αντίςτοιχο Sbox μζςο τθσ switch(choice) και ςτο αντίςτοιχο ςτοιχείο([row][col]) και αποκθκεφουμε τον αρικμό αυτό(ςτο δεκαδικό ςφςτθμα αρίκμθςθσ) ςτθν αντίςτοιχθ κζςθ ενόσ νζου πίνακα(sbox_result[]) 8 κζςεων(ζνα νοφμερο για κάκε Sbox επεξεργαςίασ(κάκε εξάδα μετατρζπεται ςε ζνα νοφμερο ςτο δεκαδικό ςυςτθμα αρίκμθςθσ)). 35

46 Κεφάλαιο 1 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Ζπειτα, ζχει ςειρά θ μετατροπι αυτϊν των αρικμϊν ςτο δυαδικό ςυςτθμα αρίκμθςθσ. Αυτό γίνεται ςτθ ςυνάρτθςθ make32bit(). Θ ςυνάρτθςθ δζχεται ζνα νοφμερο τθ φορά και το μετατρζπει ςε binary μορφι μζςο τθσ μεκόδου τθσ διαίρεςθσ. Τα bit που παράγονται αποκθκεφονται ςτον πίνακα after_sbox[]. Θ ςυνάρτθςθ Reverse() δζχεται ωσ όριςμα τον παραπάνω πίνακα(after_sbox[]) και με τθ βοικεια των μεταβλθτϊν i, count και fix, γίνεται αντιςτροφι των bit που πίνακα ανα τετράδεσ. Ο λόγοσ για αυτι τθ πράξθ είναι οτι κατά τθ διαίρεςθ τα bit που παραγόντουςαν, αποκθκεφονταν με τθν αντίςτροφα. Θ ςυνάρτθςθ μζςω τθσ fix κινζιται ςε 4 bit κάκε φορα και μζςω των count και i γίνεται θ αντιςτοφι(το 1 ο με το 4 ο και το 2 ο με το 3 ο bit). Μετάθεςη - Τζλοσ, θ 32-bit ζξοδοσ από τα S-boxes αναδιατάςςονται ςφμφωνα με μία ςτακερι μετάκεςθ, το P-box. Αυτό ζχει ςχεδιαςτεί ζτςι ϊςτε τα bits εξόδου, μετά τθ μετάκεςθ, κάκε ζξοδοσ(4 bit) από τα Sboxes να είναι μοιραςμζνα ςε 4 διαφορετικά Sboxes ςτον επόμενο γφρο. 36

47 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Κεφάλαιο 1 Ππωσ φαίνεται από τον πίνακα, από τθ ςτιγμι που θ πρϊτθ τιμι του είναι το νοφμερο 16, ςθμαίνει ότι το 16 ο bit του μπλόκ εξόδου απο τα Sboxes μετατίκεται ςε πρϊτο bit για το μπλόκ ζξοδου από τθ ςυνάρτθςθ f. Ομοίωσ το 7 ο bit μπλόκ εξόδου απο τα Sboxes μετατίκεται ςε δεφτερο και το 25 ο του μπλόκ εξόδου απο τα Sboxes ςε τελευταίο για το το μπλόκ ζξοδου από τθ ςυνάρτθςθ f. Θ επζκταςθ αυτι πραγματοποιείται με τθ χριςθ δφο ςυναρτιςεων, των Fill_P () και Do_P (). Ραρόμοια με τισ παραπάνω ςυναρτιςεισ Fill*() και Do*(), ζτςι και θ ςυνάρτθςθ Fill_P(), αντιγράφει τα ςτοιχεία του πίνακα μετάκεςθσ P[][] ςε ζνα πίνακα μίασ διαςτάςθσ, το store_num[]. Ζπειτα, ςτθ ςυνάρτθςθ Do_P() γίνεται θ μετάκεςθ των bit του μπλόκ εξόδου απο τα Sboxes για τθν παραγωγι του μπλόκ ζξοδου από τθ 37

48 Κεφάλαιο 1 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] ςυνάρτθςθ f 32-bit. Θ ςυνάρτθςθ ξεκινόντασ απο το 1 ο ςτοιχείο του πίνακα store_num[](νοφμερο 16), κάνει επαναλιψεισ μζχρι να φτάςει ςτο αντίςτοιχο bit του μπλόκ εξόδου απο τα Sboxes after_sbox*+) και το αποκθκεφει ςε νζο πίνακα(func_out[]) που αντιπροςωπεφει το μπλόκ ζξοδου από τθ ςυνάρτθςθ f. Θ ςυνάρτθςθ ςυνεχίηει με το επόμενο ςτοιχείο του πίνακα store_num[], πραγματοποιόντασ τθν ίδια διαδικαςία και ολοκλθρϊνεται με τθ ςυμπλιρωςθ του μπλόκ ζξοδου από τθ ςυνάρτθςθ f func_out. Παράδειγμα: Σφμφωνα με τα παραπάνω αν K 1 +E(R 0 ) = Τότε : S 1 (B 1 )S 2 (B 2 )S 3 (B 3 )S 4 (B 4 )S 5 (B 5 )S 6 (B 6 )S 7 (B 7 )S 8 (B 8 ) = Και με τθ μετάκεςθ τουσ υπολογίηεται θ τιμι τθσ f : f = P(S 1 (B 1 )S 2 (B 2 )...S 8 (B 8 )) f = Τζλοσ, για τθν ζξοδο απο τθ ςυνάρτθςθ f και για τθν εκκίνθςει του επόμενου γφρου επεξεργαςίασ του μπλόκ, πρζπει να οριςτοφν τα δφο μιςά μζρθ του μπλόκ Left[] και Right[].Το νζο Right*+ μιςό, είναι το αποτζλεςμα το μπλόκ εξόδου απο τθ ςυνάρτθςθ f και το Left[] μιςό ςυνδιαςμζνα με τθν πράξθ του XOR. Γίνεται χριςθ τθσ ςυνάρτθςθσ XOR() που αναλφκθκε παραπάνω αλλά ζχει ωσ ορίςματα τα μπλόκ Left[] και func_out[] μεγζκουσ 32-bit το κακζνα και το αποτζλεςμα αποκθκεφεται ςε ζνα νζο πίνακα 32 κζςεων(aft_xor_fuc[]). Ζπειτα, με μία απλι μετάκεςθ το αρχικό μιςό μπλόκ Right[]του γφρου πριν επεξεργαςτεί,γίνεται το Left*+ μιςό και το παραπάνω αποτζλεςμα απο τθν επεξεργαςία του μπλόκ και τθ πράξθ του XOR, γίνεται το νζο Right*+ μιςό για τον επόμενο γφρο. Παράδειγμα: Επομζνωσ με τθν XOR πράξθ το νζο μιςό μπλόκ Right[] γίνεται R 1 = L 0 + f(r 0, K 1 ) = = Και L 1 =R 0 =

49 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Κεφάλαιο 1 Ζπειτα, ςυνεχίηονται οι υπολογιςμοί των τμθμάτων L n R n με τον τρόπο που περιγράφτθκε παραπάνω μζχρι να υπολογιςτοφν και οι τελευταίεσ δζςμεσ L 16 R 16. Αφοφ ζχει τελειϊςει θ 16-γυρθ επεξεργαςία του μπλόκ, γίνεται αντιςτροφι των Left*+ και Right*+ ϊςτε να προκφψει ζνα νζο μπλόκ 64 bit ωσ εξισ : R 16 L 16. Θ αντιςτροφι αυτι των δφο μιςϊν πραγματοπιείται από τθ ςυνάρτθςθ swap32(). Θ αντιςτροφι τουσ πραγματοποιείται με τθ βοικεια μίασ προςωρινισ μεταβλθτθσ, τθν temp. Ζπειτα, μετά τθν αλλαγι δφο μιςϊν, ενϊνονται και πάλι ςε ζνα μπλόκ με τθ ςυνάρτθςθ contancate(). Τζλοσ, ζχοντασ το τελικό μπλόκ R 16 L 16, εφαρμόηουμε μια τελευταία αντιμετάκεςθ που περιγράφεται από τον παρακάτω πίνακα ΙΡ -1 (αντίςτροφθ): Ππωσ φαίνεται από τον πίνακα, από τθ ςτιγμι που θ πρϊτθ τιμι του είναι το νοφμερο 40, ςθμαίνει ότι το 40 ο bit του τελικοφ μπλόκ μετατίκεται ςε πρϊτο bit για το αντιμετατικζμενο τελικοφ μπλόκ. Ομοίωσ το 8 ο bit του τελικοφ μπλόκ μετατίκεται ςε δεφτερο και το 25 ο του τελικοφ μπλόκ ςε τελευταίο για το αντιμετατικζμενο 39

50 Κεφάλαιο 1 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] τελικό μπλόκ. Ρρζπει να παρατθριςουμε και τα 64 bits του επιλεγμζνου μπλόκ εμφανίηονται ςτον πίνακα αντιμετάκεςθσ. Θ αντιμετάκεςθ αυτι πραγματοποιείται με τθ χριςθ δφο ςυναρτιςεων, των FillInversePermutation() και DoInverseIP(). Ππωσ και οι παραπάνω ςυναρτιςεισ Fil*() και Do*(), ζτςι και θ ςυνάρτθςθ FillInversePermutation(), αντιγράφει τα ςτοιχεία του πίνακα αντιμετάκεςθ inverperm[][] ςε ζνα πίνακα μίασ διαςτάςθσ, το store_num[]. Ζπειτα, ςτθ ςυνάρτθςθ γίνεται θ αντιμετάκεςθ των bit του τελικοφ μπλόκ για τθν παραγωγι του αντιμετατεκιμενου τελικοφ μπλόκ 64-bit. Θ ςυνάρτθςθ ξεκινόντασ απο το 1 ο ςτοιχείο του πίνακα store_num[](νοφμερο 40), κάνει επαναλιψεισ μζχρι να φτάςει ςτο αντίςτοιχο bit του τελικοφ μπλόκ(perm_in*+) και το αποκθκεφει ςε νζο πίνακα(perm_out[]) που αντιπροςωπεφει το αντιμετατικζμενο τελικό μπλόκ. Θ ςυνάρτθςθ ςυνεχίηει με το επόμενο ςτοιχείο του πίνακα store_num*+,πραγματοποιόντασ τθν ίδια διαδικαςία και ολοκλθρϊνεται με τθ ςυμπλιρωςθ του πίνακα αντιμετάκεςθσ perm_out. 40

51 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Κεφάλαιο 1 Παράδειγμα: Αν ςυνεχίςουμε τουσ παραπάνω υπολογιςμοφσ με τον τρόπο που περιγράφτθκε παραπάνω, ςτθ 16 θ επανάλθψθ κα λάβουμε : L 16 = R 16 = Από τθν αντιςτροφι προκφπτει θ δζςμθ : R 16 L 16 = Και με τθν τελικι αντιμετάκεςθ Ι -1 : IP-1 = Το οποίο ςε δεκαεξαδικι μορφι είναι το 85E813540F0AB405(ςε ascii είναι èt ). Το μπλόκ C = 85E813540F0AB405 είναι θ τελικι κρυπτογραφθμζνθ μορφι του αρχικοφ κειμζνου M = ABCDEF. Ζχοντασ πραγματοποιιςει τθν κρυπτογράφθςθ του μπλόκ, μζνει μόνο θ αποκικευςθ του και θ επεξεργαςία για τθν παρουςιαςι του ςτο πρόγραμμα. Αρχίκα, γίνεται αποκικευςθ του κρυπτογραφθμζνου μπλόκ ςε ζνα νζο πίνακα(finale[]) ίςο με το αρχικό κείμενο ςε binary μορφι(binarymessage[]), όπου χρθςιμοποιείται για τθν αποκικευςθ όλων των κρυπτογραφθμζνων μπλόκ. Αποκθκεφονται ςε μορφι bit τα μπλόκ. Θ παρουςίαςθ του κρυπτογραφθμζνου κειμζνου ςε ascii μορφι γίνεται με τθν παραπάνω λειτουργία. 41

52 Κεφάλαιο 1 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Θ ςυνάρτθςθ getbytefrombits() δζχεται το μπλόκ 64-bit ςε binary μορφι και ανά 8 bit, παράγει ζνα αρικμό(μετατροπι binary ςε δεκαδικό ςφςτθμα αρίκμθςθσ) και τον αποκθκεφει ςε μία μεταβλθτι τφπου ch. Αυτόματα,ο αρικμόσ μετατρζπεται ςε κάποιο χαρακτιρα ascii. Αφόυ επιςτραφεί ο πίνακασ με τουσ 8 χαρακτιρεσ, με τθ ςειρά τουσ αποκθκεφονται ςε μία μεταβλθτι τφπου string με τθν χριςθ τθσ εντολισ Character.toString(). Μετά τθν αποκικευςθ του κρυπτογραφθμζνου μπλόκ ςε binary και ςε acii μορφι, θ κρυπτογράφθςθ ςυνεχίηει ςτο επόμενο μπλόκ μικουσ 64-bit πραγματοποιόντασ τθν ίδια διαδικαςία. Τζλοσ, αρχικοποιοφνται οι μεταβλθτζσ και προβάλλονται ςτο πρόγραμμα. 42

53 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Κεφάλαιο 1 Εικόνα 9. Λειτουργία κρυπτογράφηςησ ενόσ μπλόκ από το DES 43

54 Κεφάλαιο 1 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Αποκρυπτογρϊφηςη του DES Ζχοντασ παρουςιάςει τισ βαςικζσ λειτουργείεσ για τθν κρυπτογράφθςθ του κειμζνου, ο DES χάρθ τθσ λειτουργείασ Fiestel παρζχει τθν δυνατότθτα για αποκρυπτογράφθςθ του κειμζνου μζςω των ίδιων λειτουργειων με μία διαφοροποιιςθ. Θ αποκρυπτογράφθςθ του κειμζνου ακολουκεί τθν ίδια πορεία με τθν κρυπτογράφθςθ του, τοποκετόντασ με αντίςτροφθ ςειρά τα υποκλείδια(1 ο υποκλείδι αποκρυπτογράφθςθσ χρθςιμοποιείται το 16 ο τθσ κρυπτογράφθςθσ,κτλ). Θ Εικόνα 10 παρουςιάηει ςχθματικά τθ λειτουργία τθσ αποκρυπτογράφθςθσ. Εικόνα 10. Διαδικαςία κρυπτογράφηςησ και αποκρυπτογράφηςησ 44

55 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Κεφάλαιο Λύγα λόγια για τον TripleDES(3-DES) Ππωσ αναφζραμε παραπάνω, με τα χρόνια, λόγω τθσ ραγδαίασ ανάπτυξθσ του πεδίου των νζων τεχνολογιϊν και τθσ πλθροφορικισ, ζγινε απαραίτθτο να βρεκεί ζνασ πιο αξιόπιςτοσ αλγόρικμοσ κρυπτογράφθςθσ από τον DES. Ζτςι λοιπόν προζκυψε ο αλγόρικμοσ triple-des. Ο triple-des είναι απλά ο DES ςτον οποίο χρθςιμοποιοφνται τρία κλειδία μικουσ 56 bits το κακζνα. Δοκζντοσ ενόσ αρχικοφ μθνφματοσ προσ κρυπτογράφθςθ, το πρϊτο κλειδί χρθςιμοποιείται από τον DES για τθν κρυπτογράφθςθ του μθνφματοσ. Το δεφτερο κλειδί χρθςιμοποιείται για να αποκρυπτογραφιςει το κρυπτογραφθμζνο με το πρϊτο κλειδί μινυμα. Επειδι όμωσ το δεφτερο κλειδί δεν είναι το ςωςτό κλειδί για τθν αποκρυπτογράφθςθ του μθνφματοσ, το μόνο που επιτυγχάνεται με αυτι τθ διαδικαςία είναι να μπερδεφεται ακόμα περιςςότερο το ιδθ κρυπτογραφθμζνο μινυμα. Τελικά το μινυμα ξανακρυπτογραφείται με το τρίτο κλειδί και ζτςι προκφπτει το τελικό κρυπτογραφθμζνο μινυμα. Αυτι λοιπόν θ διαδικαςία τριϊν βθμάτων αποκαλείται triple-des. Το Triple-DES είναι κρυπτοςφςτθμα το οποίο αποτελείται από 3 ςυςτιματα DES ςε ςειρά. Θ ζξοδοσ δθλαδι του πρϊτου ςυςτιματοσ είναι θ είςοδοσ του δευτζρου του οποίου θ ζξοδοσ είναι θ είςοδοσ του τρίτου Γενικό δομό του TripleDES Ο TripleDES, κάνει χριςθ τριϊν κλειδιϊν(ζνα για κάκε ςφςτθμα DES), πράγμα που του προςδίδει μεγαλφτερθ αςφάλεια κακϊσ πρζπει να υποκλεπτοφν και τα τρία κλειδία απο κάποιον τρίτο για να αποκρυπτογραφιςει τα δεδομζνα. Ραρακάτω παρουςιάηεται θ λειτουργία τθσ κρυπτογράφθςθσ του TripleDES. Εικόνα 11. Λειτουργία κρυπτογράφηςησ του TripleDES 45

56 Κεφάλαιο 1 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Περιγραφό και ανϊλυςη του κώδικα Αφοφ ο TripleDES κάνει χριςθ τριϊν ςυςτθμάτων DES δεν αναπτφχκθκε εκ νζου κϊδικασ, απλά γίνεται τρείσ φορζσ κλιςθ ςτο DES ςφςτθμα. Ο αλγόρικμοσ για τθν κρυπτογράφθςθ είναι ο εξθσ : Αρχικά, το κείμενο κρυπτογραφείται με το πρϊτο κλειδί(key) και θ ζξοδο απο το πρϊτο ςφςτθμα DES(ciphertext) αποτελεί είςοδο για το δεφτερο ςφςτθμα DES. Αυτό με τθ ςειρά του αποκρυπτογραφεί το ciphertext με το δεφτερο κλειδί(key1), το οποίο ζχει ςαν αποτζλεςμα απλά να «μπερδζψει» το ciphertext παραπάνω(εκτόσ τθσ περίπτωςθσ key=key1). Τζλοσ, θ ζξοδοσ απο το δεφτερο ςφςτθμα DES, κρυπτογραφείται ξανά με το τρίτο κλειδί(key2), ζτςι ϊςτε να μπερδευτεί ακόμθ περιςςότερο το ciphertext. Για μεγαλφτερθ αςφάλεια και τα τρία κλειδία πρζπει να είναι διαφορετικά μεταξφ τουσ ζτςι ϊςτε θ μία κλθςθ ςτο DES να μθν ανερζι τθν άλλθ Επιλογϋσ κλειδιών Τα πρότυπα κακορίηουν τρεισ επιλογζσ κλειδιϊν : 1 θ Επιλογι : Πλα τα τρία κλειδιά είναι ανεξάρτθτα μεταξφ τουσ. 2 θ Επιλογι : Κ 1 και Κ 2 είναι ανεξάρτθτα, και Κ 3 = Κ 1. 3 θ Επιλογι : Και τα τρία κλειδιά είναι ίδιεσ, δθλαδι Κ 1 = Κ 2 = Κ 3. Θ 1 θ επιλογι είναι θ ιςχυρότερθ, με 3 x 56 = 168 ανεξάρτθτα bit κλειδιοφ. Θ 2 θ επιλογι παρζχει λιγότερθ αςφάλεια, με 2 x 56 = 112 bit κλειδιοφ. Θ επιλογι αυτι είναι ιςχυρότερθ από ό, τι απλά μία DES κρυπτογράφθςθ δφο φορζσ, π.χ. με Κ 1 και Κ 2, επειδι προςτατεφει από meet- in-the - middle επικζςεισ. 46

57 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Κεφάλαιο 1 Θ 3 θ επιλογι είναι ιςοδφναμθ με το DES, με μόνο 56 bit κλειδιοφ. Αυτι θ επιλογι παρζχει ςυμβατότθτα με DES, επειδι το πρϊτο και το δεφτερο ςφςτθμα DES αλλθλοανεροφνται Αποκρυπτογρϊφηςη του TripleDES Για τθν αποκρυπτογράφθςθ ακολουκείται αντίςτροφθ διαδικαςία για το DES ςυςτιματα. Σχθματικά Εικόνα 12. Λειτουργία αποκρυπτογράφηςησ του TripleDES Ο αλγόρικμοσ τθσ αποκρτυπτογράφθςθσ παρουςιάηεται παρακάτω. Αρχικά το ciphertext αποκρυπτογραφείται με το τρίτο κλειδί(key2) ξεμπερδεφοντασ λίγο το κείμενο. Ζπειτα, θ ζξοδο απο το πρϊτο ςφςτθμα DES αποτελεί είςοδο για το δεφτερο ςφςτθμα DES. Αυτό με τθ ςειρά του κρυπτογραφεί το ciphertext με το δεφτερο κλειδί(key1), το οποίο ξεμπερδεφει το ciphertext παραπάνω. Τζλοσ, θ ζξοδοσ απο το δεφτερο ςυςτθμα DES, αποκρυπτογραφείται ξανά με το πρϊτο κλειδί(key), ζτςι ϊςτε να αποκρυπτογραφθκεί πλιρωσ το ciphertext και να πάρουμε το αρχικό κείμενο(plaintext). 47

58 Κεφάλαιο 1 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] 1.5 Λύγα λόγια για τον RC4 Ο αλγόρικμοσ του RC4 ιταν αρχικά ζνα εμπορικό μυςτικό. Ο αλγόρικμοσ αφότου ζγινε γνωςτόσ, από μία ανόνυμθ παρουςιαςι του ςε ζνα περιοδικό, ο RC4 ςυχνά αναφζρεται ωσ ARCFOUR ι ARC4 (δθλαδι υποτικζμενο RC4), για να αποφευχκοφν τα προβλιματα του εμπορικοφ ςιματοσ. Ο RC4 γριγορα ζγινε μζροσ οριςμζνων ςυχνά χρθςιμοποιοφμενων πρωτόκολλων κρυπτογράφθςθσ και πρότυπων, ςυμπεριλαμβανομζνων των WEP και WPA για αςφρματεσ κάρτεσ και ςε TLS. Οι βαςικοί παράγοντεσ για τθν επιτυχία του αλγορίκμου κρυπτογράφθςθσ RC4 πάνω από ζνα τζτοιο ευρφ φάςμα εφαρμογϊν είναι θ ταχφτθτα και θ απλότθτα του. Μια αποτελεςματικι εφαρμογι του είτε ςε λογιςμικό είτε ςε hardware είναι πολφ εφκολο να αναπτυχκεί Γενικό δομό του RC4 Ο RC4 παράγει ζνα ρεφμα απο ψευδοτυχαία bits (keystream). Ππωσ και με κάκε κρυπτογράφθμα ρεφματοσ, αυτό το ρεφμα με τα ψευδοτυχαία bits μποροφν να χρθςιμοποιθκοφν για τθν κρυπτογράφθςθ, ςυνδυάηοντασ το με το απλό κείμενο(plaintext) με τθν bitwise AND πράξθ(a^b). Θ αποκρυπτογράφθςθ γίνεται με τον ίδιο τρόπο. Για τθ δθμιουργία του keystream, θ κρυπτογράφθςθ κάνει χριςθ μιασ μυςτικισ εςωτερικισ κατάςταςθσ θ οποία αποτελείται από δφο μζρθ: 1. Μια μετάκεςθ όλων των 256 πικανων bytes (ςυμβολίηεται με "S" παρακάτω). 2. Δφο 8-bit δείκτεσ(ςυμβολίηονται με "i" και "j"). Θ μετάκεςθ αρχικοποιείται με ζνα μεταβλθτό μικοσ κλειδιοφ, ςυνικωσ μεταξφ των 40 και 256 bits, χρθςιμοποιϊντασ τον αλγόρικμο προγραμματιςμοφ κλειδιοφ(ksa). Μόλισ αυτό ολοκλθρωκεί, το ρεφμα κρυπτογράφθςθσ παράγεται χρθςιμοποιϊντασ τον αλγόρικμο παραγωγισ ψευδοτυχαίασ ροισ (PRGA). 48

59 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Κεφάλαιο Περιγραφό και ανϊλυςη του κώδικα Ο αλγόρικμοσ του RC4 αναπτφχκθκε ςε ξεχωριςτι κλάςθ απο τθ DES.java τθν RC4.java. (Ραρουςιάηεται ολόκλθρθ ςτο Παράρτθμα Α). Ραρακάτω παρουςιάηονται οι 2 βαςικζσ λειτουργίεσ του αλγορίκμου RC4(KSA και PRGA) για τθν παραγωγι του κρυπτογραφιματοσ. Για τθν καλφτερθ κατανόθςθ του αλγορίκμου, παράλλθλα με τθν περιγραφι του, κα παρουςιάηεται και ζνα παράδειγμα κρυπτογράφθςθσ ενόσ κειμζνου με τον αλγόρικμο του RC Αλγόριθμοσ προγραμματιςμού κλειδιού (KSA) Ο αλγόρικμοσ προγραμματιςμοφ κλειδίου(key scheduling) χρθςιμοποιείται για να προετοιμάςει τθ μετάκεςθ ςτο πίνακα S*+, ο οποίοσ ζχει ςτακερό μικοσ 256 κζςεων. Ωσ "key.length» ορίηεται ο αρικμόσ των bytes του κλειδιοφ και μπορεί να είναι τθσ περιοχισ 1 keylength 256 bytes, αλλά ςυνικωσ γίνεται χριςθ μεταξφ 5 και 16 χαρακτιρων(bytes), που αντιςτοιχοφν ςε ζνα βαςικό μικοσ bits. Θ παραπάνω ςυνάρτθςθ παράγει το keystream του αλγορίκμου, μία ψευδοτυχαία ροι αρικμϊν, όπου ςε αυτι επάνω κα ςτθριχτεί θ παραγωγι του κρυπτογραφιματοσ(ciphertext). Αρχικά, ο πίνακασ S*+ αρχικοποιείται πρίν τθ μετάκεςθ των ςτοιχείων του,με αρικμοφσ ςε αφξουςα ςειρά απο το 0 εϊσ το 255.Ο πίνακσ S[] ςτθ ςυνζχεια επεξεργαηετα για 256 επαναλιψεισ(με παρόμοιο τρόπο με το κφριο PRGA) αναμιγνφοντασ επίςθσ τα bytes του κλειδιοφ κατά τθν ίδια ςτιγμι. 49

60 Κεφάλαιο 1 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Αυτι θ επεξεργαςία γίνεται με τθ χριςθ των βοθκθτικϊν μεταβλθτϊν i και j κακϊσ και με τθ χριςθ τθσ ςυνάρτθςθσ swap(). Θ ςυνάρτθςθ swap() δζχεται ωσ ορίςματα το πίνακα S*+ και τισ βοθκθτικζσ μεταβλθτζσ και ουςιαςτικά, ανταλλάηει τισ τιμζσ του πίνακα S*+ ςτισ κζςεισ i και j ζτςι ϊςτε να προςδϊςει ςτον αλγόρικμο πιο τυχαία εμφάνιςθ. Παράδειγμα: Αρχικά γίνεται θ αρχικοποίθςθ του πίνακα S[] απο τον KSA() S=[0, 1, 2, 3,, i, i+1,..., 253, 254, 255] Ζπειτα, γίνεται θ επεξεργαςία του πίνακα S*+, όπου ςφμφωνα με το τφπο j= [(j + S(i) + key[i mod keylength]) mod 256], θ βοθκθτικι μεταβλθτι j δζχεται τιμζσ. Ζςτω λοιπόν το κλειδί pwd12, θ πρϊτθ τιμθ τθσ μεταβλθτισ j με αρχικζσ τιμζσ i=0, j=0 και το ςτοιχείο ςτθ κζςθ 0 του κλειδιοφ(key[0]) είναι ο χαρακτιρασ p, όπου θ τιμι του ςτο ascii είναι 102, ζχουμε j = [( ) mod 256] = 102 Ζτςι, μετά τθ εναλλαγι του i-οςτοφ με του j-οςτοφ ςτοιχείου του πίνακα S[], ζχει τθ μορφι S= [112, 1, 2,..., 100, 0, 102,...,254, 255] 50

61 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Κεφάλαιο 1 Ο τελικόσ πίνακασ S[] ζχει τθ μορφι S=[ 101, 124, 172, 10, 166, 26, 46, 91, 2, 137, 39, 243, 253, 25, 3, 30, 47, 238, 196, 38, 94, 149, 15, 32, 248, 51, 158, 150, 106, 183, 67, 219, 95, 177, 138, 152, 13, 188, 118, 108, 207, 151, 41, 142, 236, 103, 55, 72, 20, 244, 216, 14, 168, 90, 4, 42, 153, 64, 250, 129, 97, 225, 87, 199, 204, 100, 16, 249, 191, 82, 43, 131, 24, 169, 69, 54, 96, 77, 255, 84, 1, 143, 242, 123, 21, 93, 61, 102, 224, 107, 109, 79, 80, 23, 229, 6, 156, 181, 105, 159, 33, 141, 18, 104, 9, 56, 233, 178, 127, 111, 135, 206, 202, 128, 31, 71, 211, 222, 45, 66, 163, 189, 167, 201, 232, 17, 251, 198, 170, 155, 115, 57, 228, 98, 190, 76, 59, 239, 37, 147, 180, 240, 197, 200, 19, 0, 213, 99, 125, 44, 195, 164, 176, 121, 220, 212, 86, 186, 34, 214, 230, 254, 40, 203, 194, 231, 162, 226, 187, 116, 208, 22, 68, 88, 192, 140, 205, 234, 119, 83, 136, 63, 12, 112, 217, 154, 184, 81, 70, 35, 174, 78, 241, 179, 210, 215, 49, 144, 130, 48, 133, 7, 209, 92, 73, 193, 28, 75, 117, 223, 50, 113, 114, 148, 173, 29, 53, 160, 8, 139, 246, 65, 252, 161, 221, 185, 27, 36, 11, 110, 237, 165, 5, 182, 145, 171, 120, 157, 134, 175, 122, 58, 235, 52, 62, 126, 85, 60, 132, 74, 245, 227, 218, 89, 247, 146] Συνζχεια ζχει θ παραγωγι του κρυπτογραφιματοσ με τθ χριςθ τθσ PRGA λειτουργίασ Γεννότρια ψευδοτυχαύου ρεύματοσ (PRGA) Για όςεσ επαναλιψεισ είναι απαραίτθτο(ανάλογα το μζγεκοσ του κειμζνου), θ PRGA τροποποιεί εκ νζου το πίνακα S και εξάγει ζνα τυχαίο αρικμό(ςχεδόν παρόμοια λειτουργία με παραπάνω). Σε κάκε επανάλθψθ, ο PRGA με τισ προςαυξιςεισ του i, αναηθτά το ςτοιχείο S *i+, και το προςκζτει ςτο j, ζπειτα ανταλλάςςει τισ τιμζσ των S *i+ και S *j+, και ςτθ ςυνζχεια χρθςιμοποιεί το άκροιςμα S [ i ] + S [ j ] ( modulo 256 ) ωσ δείκτθ για να εξάγει ζνα τρίτο ςτοιχείο του S(Κ), το οποίο μζςω τθσ bitewise πράξθσ του AND(XOR), προςτίκεται με το επόμενο byte του αρχικοφ μθνφματοσ για τθν παραγωγι του επόμενου byte του ciphertext. 51

62 Κεφάλαιο 1 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Αρχικά, καλείται θ KGA λειτουργία (initsbox()). Ζπειτα, γίνονται οι απαραίτθτεσ προςαυξιςθσ των i και j όπωσ και θ εναλλαγι τουσ μζςο τθσ ςυνάρτθςθσ swap() για τθν εξαγωγι ενόσ τυχαίου byte από τον πίνακα S*+. Στθ ςυνζχεια, αυτό το byte προςτίκεται(πράξθ XOR) με το byte του κειμζνου που ζχει ςειρά, ζτςι ϊςτε να παραχκεί το byte του ciphertext. Ζχοντασ παράγει το κρυπτογράφθμα, μζνει μόνο θ παρουςίαςθ του ςτο πρόγραμμα. Αρχικά αντιγράφονται τα byte του ciphertext(code*+)ςε string μεταβλθτι(ciphertext). Τζλοσ, κακϊσ ο αλγόρικμοσ πρζπει να παράγει τθ ροι του κρυπτογραφιματοσ ςε δεκαεξαδικι μορφι, ςειρά ζχει και θ αντίςτοιχθ λειτουγία. Θ μετατροπι γίνεται με τθν εντολι String.format τθσ JAVA, θ οποία δζχεται ζνα χαρακτιρα τθ φορά και για τθν ομοιομορφία του εξαξόμενου κρυπτογραφιματοσ μετατρζπονται όλοι οι χαρακτιρεσ ςε κεφαλαία με τθν χριςθ τθσ εντολισ touppercase(). 52

63 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Κεφάλαιο 1 Παράδειγμα: Για το πρϊτο κφκλο επεξεργαςίασ με αρχικα i, j =0. Το i γίνεται 1 και το j=(0+s[1])=124 Ζπειτα τα S[i] και S[j] εναλλάςςονται, οπότε ο πίνακασ S γίνεται S=[ 101, 232, 172, 10, 166, 26, 46, 91, 2, 137, 39, 243, 253, 25, 3, 30, 47, 238, 196, 38, 94, 149, 15, 32, 248, 51, 158, 150, 106, 183, 67, 219, 95, 177, 138, 152, 13, 188, 118, 108, 207, 151, 41, 142, 236, 103, 55, 72, 20, 244, 216, 14, 168, 90, 4, 42, 153, 64, 250, 129, 97, 225, 87, 199, 204, 100, 16, 249, 191, 82, 43, 131, 24, 169, 69, 54, 96, 77, 255, 84, 1, 143, 242, 123, 21, 93, 61, 102, 224, 107, 109, 79, 80, 23, 229, 6, 156, 181, 105, 159, 33, 141, 18, 104, 9, 56, 233, 178, 127, 111, 135, 206, 202, 128, 31, 71, 211, 222, 45, 66, 163, 189, 167, 201, 124, 17, 251, 198, 170, 155, 115, 57, 228, 98, 190, 76, 59, 239, 37, 147, 180, 240, 197, 200, 19, 0, 213, 99, 125, 44, 195, 164, 176, 121, 220, 212, 86, 186, 34, 214, 230, 254, 40, 203, 194, 231, 162, 226, 187, 116, 208, 22, 68, 88, 192, 140, 205, 234, 119, 83, 136, 63, 12, 112, 217, 154, 184, 81, 70, 35, 174, 78, 241, 179, 210, 215, 49, 144, 130, 48, 133, 7, 209, 92, 73, 193, 28, 75, 117, 223, 50, 113, 114, 148, 173, 29, 53, 160, 8, 139, 246, 65, 252, 161, 221, 185, 27, 36, 11, 110, 237, 165, 5, 182, 145, 171, 120, 157, 134, 175, 122, 58, 235, 52, 62, 126, 85, 60, 132, 74, 245, 227, 218, 89, 247, 146] Ζχοντασ αυτά τα δφο ςτοιχεία, τα προςκζτουμε οπότε S[S[i]+S[j]]mod256=356=100 Οπότε μεταφερόμαςτε ςτθ κζςθ 100 του πίνακα S που αντιςτοιχεί ςτον αρικμό 33. Αν το αρχικό κείμενο είναι το Math 310 Proves!, μεταφερόμαςτε ςτο i-οςτό χαρακτιρα του κειμζνου όπου ςτθ περιπτωςι μασ είναι το Μ. Ο χαρακτιρασ Μ αντιςτοιχεί ςτον αρικμό 77. Κανοντασ τθν πράξθ bitwise AND ζχουμε 77+33=108 Ο αρικμόσ 108 αντιςτοιχεί ςτο χαρακτιρα 1, ο οποίοσ μετατρζπεται ςε δεκαεξαδικι μορφι 6C. Οπότε με παρόμοιο τρόπο, το κρυπτογράφθμα που προκφπτει ζχει τθ μορφι Ciphertext: 6CA86FE3CBC33C162595C3E78B9C97BC 53

64 Κεφάλαιο 1 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Ραρακάτω παρουςιάηεται ςχθματικά θ λειτουργία τθσ PRGA για τθν εξαγωγι κάποιου byte απο το πίνακα S[]. Εικόνα 13. Λειτουργία της PRGA Αποκρυπτογρϊφη του RC4 Θ αποκρυπτογράφθςθ ακολουκεί τθν ίδια διαδικαςία με τθ κρυπτογράφθςθ του κειμζνου με μία μικρι διαφορά. Αρχικά, κακϊσ το κρυπτογράφθμα είναι ςε δεκαεξαδικι μορφι, γίνεται μετατροπι του ςτο δεκαδικό ςφςτθμα αρίκμθςθσ, όπωσ επίςθσ δεν χρειάηεται θ εκ νζου μετατροπι του κειμζνου ςε δεκαεξαδικι μορφι, οπότε παρουςιάηεται ςτο πρόγραμματα το επεξεργαςμζνο String του κειμζνου ςε ascii μορφι. Αυτό πραγματοποιείται με τθν παρακάτω λειτουγία. 54

65 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Κεφάλαιο 1 Και Σκοπόσ τθσ λειτουγίασ είναι να δθμιουργθκεί ζνα string απο χαρακτιρεσ. Θ δθμιουγία του νζου string(sb) γίνεται μζςο τθσ StringBuilder(), όπου είναι ενςωματομζνθ λειτουργία τθσ JAVA. Αρχικά, δζχεται δφο - δφο τουσ χαρακτιρεσ από το κρυπτογράφθμα και τουσ μετατρζπει ςτο δεκαδικό ςυςτθμα αρίκμθςθσ(integer.parseint(output, 16)) και ζπειτα μετατρζπει τουσ αρικμοφσ ςε χαρακτιρεσ(αντιςτοιχεί τουσ αρικμοφσ ςτο ascii) και ςτθ ςυνζχεια κολλάει το χαρακτιρα ςτο αρχικό string(λειτουργία append). Τζλοσ, το αποκρυπτογραφθμζνο κείμενο αντιγράφεται ςε μια μεταβλθτι τφπου string και παρουςιάηεται ςτο πρόγραμμα. 55

66 Κεφάλαιο 1 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] 1.6 Περιγραφό και ανϊλυςη του GUI Εικόνα 14. Σο GUI του προγράμματοσ Ζχοντασ υλοποιιςει τουσ αλγορίκμουσ κρυπτογράφθςθσ, ςυνζχεια ζχει θ ειςαγωγι γραφικοφ περιβάλλοντοσ ςτο πρόγραμμα προςομοίωςθσ και θ ενςωμάτωςθ λειτουργιϊν ςε αυτό.το γραφικό περιβάλλον του προγράμματοσ αναπτφκχθκε ςε μία ξεχωριςτι κλάςθ, τθν CryptographerGUI.java(παρουςιάηεται πλιρωσ ςτο Παράρτθμα Α). Κακϊσ όλο το πρόγραμμα ζχει αναπτυχκεί ςτο IDE του netbeans, για τθν ειςαγωγι των γραφικϊν ςτοιχείων ςτο πρόγραμμα δεν χρειάςτθκε να αναπτυχκεί πολφσ κϊδικασ.αυτό γίνεται κυρίωσ γιατί το IDE του netbeans προςφζρει ζνα γραφικό περιβάλλον για τθν ανάπτυξθ και τθν ειςαγωγι γραφικϊν ςε ζνα πρόγραμμα. Θ ςχεδίαςθ τουσ ζγινε κάνοντασ χριςθ των διαφόρων γραφικϊν ςτοιχείων που προςφζρει (π.χ. JPanel, jbutton, κτλ) με Drag και Drop. Ο ςχεδιαςμόσ του προγράμματοσ είχε κφριο ςτόχο το πρόγραμμα να δίακζτει τισ παρακάτω ιδιότθτεσ : 1. τθν εφκολθ χριςθ του απο οποιοδιποτε χριςτθ το επικυμεί, όπωσ και 2. τθν κατανόθςθ για τθ λειτουργικότθτα του προγράμματοσ με τθν πρϊτθ ματία από το χριςτθ. Ζτςι, ο κάκε αλγόρικμοσ με τισ λειτουργίεσ του(ειςαγωγι κλειδιϊν και κουμπία κρυπτογράφθςθσ/αποκρυπτογράφθςθσ) ζχουν τοποκετθκεί με τζτοιο τρόπο ϊςτε 56

67 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Κεφάλαιο 1 να μθν ςυνχζωνται μεταξφ τουσ. Ζχουν τοποκετθκεί ςτα αριςτερά του προγράμματοσ, ο ζνασ κάτω απο τον άλλο μαηί με τισ λειτουργίεσ τουσ. Στο επάνω μζροσ του προγράμματοσ ζχουν τοποκετθκεί οι τρόποι για τθν ειςαγωγι δεδομζνων ςτο πρόγραμμα. Αρχικά με τθν επιγογι κάποιου αρχείου κειμζνου απο το ςφςτθμα του χριςτθ, με τθν επιλογι Attach file, και ζπειτα με χειροκίνθτο τρόπο, τοποκετόντασ ο χριςτθσ τα δεδομζνα ςτο αντίςτοιχο πεδίο. Τζλοσ, το μεγαλφτερο μζροσ κατζχει το πεδίο Log το οποίο παρουςιάηει ςτο χριςτθ ότι ςυμβαίνει ςτο πρόγραμμα(μινυμα λάκουσ, αποτελζςματα, κτλ). Ζχοντασ αναπτφξει το γραφικό περιβάλλον του προγράμματοσ, θ υλοποίθςθ περνά ςτθν τροποποίθςθ των διαφόρων ςτοιχείων και τθν λειτουργικότθτα τουσ. Ραρακάτω παρουςιάηεται ο κϊδικασ που αναπτφχκθκε για τθν ειςαγωγι λειτουργιϊν ςτα ςτοιχεία του αλγορίκμου κρυπτογράφθςθσ DES.(Ραρόμοιο κϊδικασ αναπτφχκθκε και για τισ λειτουργίεσ των υπολοίπων αλγορίκμων κρυπτογράφθςθσ) Αρχικά, γίνεται οριοθζτηςη των jtextfield των κλειδιών κρυπτογράφθςθσ για τουσ αντίςτοιχουσ αλγορίκμουσ, κακϊσ ζνασ κοινόσ χριςτθσ του προγράμματοσ δεν ξζρει πικανϊσ τισ ιδιότθτεσ και το μικοσ κλειδιοφ που πρζπει να τοποκετιςει ςτουσ αλγορίκμουσ. Στα jtextfield ζχει τοποκετθκεί το όριο των χαράκτθρων(bit) που δζχονται μζςο τθσ ςυνάρτθςθσ set.document() και TextLimit(). Στα jtextfield των DES και TripleDES() τοποκετείτε όριο 8 χαρακτιρων(64 bit) ενϊ ςτο jtextfield του RC4 τοποκετείτε όριο 256 χαρακτιρων(2048 bit). Ραρακάτω παρουςιάηεται θ κλάςθ TextLimit που επεκτείνει τθν κλάςθ PlainDocument τθσ JAVA. 57

68 Κεφάλαιο 1 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Θ κλάςθ TextLimit δζχεται ωσ όριςμα το όριο των χαρακτιρων του εκάςτοτε πεδίου κλειδιοφ και ζπειτα μζςο μίασ ςφγκριςθσ κάκε φορά που δζχεται κάποιο χαρακτιρα το πεδίο να ελζγχει το ορίο και αναλόγωσ να το δζχεται ι να κρατά το παλιό κλειδί(δεν εμφανίηει το τελευταίο χαρακτιρα που δζχκθκε). 58

69 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Κεφάλαιο 1 Ειςαγωγή λειτουργίασ ςτο κουμπί για την κρυπτογράφηςη του DES Αρχικά, γίνεται ζλεγχοσ για το αν υπάρχει κείμενο ςτο πρόγραμμα, είτε ςε μορφι αρχείου είτε ωσ ειςαγωγι απο το χριςτθ. Στθ ςυνζχεια, γίνεται ζλεγχοσ για τθν φπαρξθ κλειδιοφ. Αν δεν ιςχφει κάτι απο τα παραπάνω εμφανίηεται και αντίςτοιχο μινυμα λάκουσ ςτο χριςτθ. Υποκζτοντασ οτί ζχει γίνει ςωςτι τοποκζτθςθ των παραπάνω, αλγόρικμοσ περνά ςτθ βαςικι του λειτουργία,τθν κρυπτογράφθςθ του κειμζνου. Θ ςυνάρτθςθ κρυπτογράφθςθσ DoDesEncrypt(), που πραγματοποιεί τθν κρυπτογράφθςθ του κειμζνου ςφμφωνα με τθν λειτουργία κρυπτογράφθςθσ του DES που περίγράφθκε παραπάνω, περιβάλλεται απο δφο μεταβλθτζσ για τθ μζτρθςθ του χρόνου που χρειάηεται για να ολοκλθρωκεί θ κρυπτογράφθςθ ολόκλθρου του κειμζνου. Στθ ςυνζχεια ο χρόνοσ κρυπτογράφθςθσ, προκφπτει από τθ διαφορά μεταξφ των δφο χρονικϊν μεταβλθτϊν και προβάλλεται ςτο αντίςτοιχο jtextbox(log) μαηί με τα αποτελζςματα. Τζλοσ, ενεργοποιοφνται και απενεργοποιοφνται άλλα κουμπιά του προγράμματοσ προςομοίωςθσ για τθν αποφυγι λακϊν(π.χ. όταν πατιζται κάποιο κουμπί κρυπτογράφθςθσ, μόνο το αντίςτοιχο κουμπί αποκρυπτογράφθςθσ 59

70 Κεφάλαιο 1 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] λειτουργεί). Ραρόμοια λειτουργία υλοποιείται και για τα υπόλοιπα κουμπία του προγράμματοσ προςομοίωςθσ. Ειςαγωγή λειτουργίασ ςτο κουμπί αποκρυπτογράφηςησ του DES Κακϊσ ζχει προθγθκεί θ κρυπτογράφθςθ του κειμζνου, δζν υπάρχει θ ανάγκθ για τον ζλεγχο φπαρξθσ κειμζνου και κλειδιοφ, ζτςι απευκείασ θ λειτουγικότθτα του κουμπιοφ περνά ςτθν αποκρυπτογράφθςθ του κρυπτογραφιματοσ. Με δφο μεταβλθτζσ πάλι, κρατάμε τουσ χρόνουσ ζναρξθσ και τερματιςμοφ τθσ αποκρυπτογράφθςθσ, όπου τα αποτελζςματα τθσ αποκρυπτογράφθςθσ και θ διαφορά των δφο χρονικϊν μεταβλθτϊν παρουςιάηονται ςτο Log πεδίο. Τζλοσ, ενεργοποιοφνται και απενεργοποιοφνται άλλα κουμπία του προγράμματοσ για τθν αποφυγι λακϊν. Ραρόμοια λειτουργία υλοποιείται και για τα υπόλοιπα κουμπία αποκρυπτογράφθςθσ του προγράμματοσ προςομοίωςθσ. Ειςαγωγή λειτουργίασ ςτο κουμπί «Attach File» Αρχικά, γίνεται διλωςθ ενόσ JFileChooser αντικειμζνου, το οποίο αποτελεί ουςιαςτθκά ζνα νζο παράκυρο(pop-up) για τθν επιλογι αρχείου απο το ςφςτθμα. 60

71 [Σχεδίαςθ και υλοποίθςθ του προγράμματοσ προςομοίωςθσ και των αλγορίκμων] Κεφάλαιο 1 Στθ ςυνζχεια τοποκετοφνται περιοριςμοί ςτο αντικείμενο, όπωσ να δζχεται μόνο αρχεία κειμζνου(.txt ) με τθν ςυνάρτθςθ setfilefilter()(ςυνάρτθςθ τθσ JAVA). Τζλοσ, ςε μία νζα μεταβλθτι τοποκετοφμε το ολόκλθρο το path του αρχείου κειμζνου το οποίο προβάλλεται ςτο αντίςτοιχο jtextfield κακϊσ και απενεργοποιεί το jtextfield όπου ο χριςτθσ τοποκετεί το δικό του κείμενο. Ειςαγωγή λειτουργίασ ςτο κουμπί «C» Το κουμπί C απλϊσ αρχικοποιεί τθ μεταβλθτι του κειμζνου, τα jtextfield1,2 ςτθν αρχικι τουσ κατάςταςθ (τρόποι ειςαγωγισ δεδομζνων). Ειςαγωγή λειτουργίασ ςτα πεδία Put your own text και Log. Στα πεδία δε χρειάςτθκε θ ανάπτυξθ κάποιου κϊδικα για τθ λειτουργικότθτα τουσ, αλλά μία τροποίθςθ των ιδιοτιτων τουσ. Το πεδίο Put your own text αρχικά, με τθν εκκϋνθςθ του προγράμματοσ είναι editable και ςτθ ςυνζχεια αναλόγωσ τον τρόπο ειςαγωγισ δεδομζνων ςτο πρόγραμμα μπορεί να μθν είναι editable Αυτι θ μετατροπι τθσ ιδιότθτασ του πεδίου γίνεται με τθ χριςθ τθσ εντολισ seteditable(true/false). Το πεδίο Log, με τθν εκκίνθςθ του προγράμματοσ αλλά και κακόλθ τθ διάρκεια εκτελεςισ του, δεν είναι editable από το χριςτθ, κακϊσ απλά παρουςιάηει ότι γίνεται ςτο πρόγραμμα. 61

72 Κεφάλαιο 2 [Ρειραματικά αποτελζςματα και ςυμπεράςματα] 2. Αποτελϋςματα πειραμϊτων με το πρόγραμμα προςομούωςησ Ζχοντασ υλοποιιςει τουσ αλογορίκμουσ κρυπτογράφθςθσ των DES, TripleDES και RC4 κακϊσ και το γραφικό περιβάλλον του προγράμματοσ προςομοίωςθσ,ςειρά ζχει θ ςυγκομιδι αποτελεςμάτων απο αυτό μζςω πειραμάτων. 2.1 Πειραματικόσ ςχεδιαςμόσ Δζκα διαφορετικα αρχεία δεδομενων μεγεκουσ 10ΚΒ εϊσ 100ΚB τοποκετικθκαν ωσ είςοδο ςτο πρόγραμμα προςομοίωςθσ των αλγορίκμων κρυπτογράφθςθσ για να ελεγκεί θ απόδοςθ τουσ. Τα πειράματα εκτελοφνται ςε ζνα υπολογιςτι με τθν επεξεργαςτικι ιςχφ ενοσ intel i5 ταχφτθτασ 2,4GHz, μίασ 4GB RAM ςτο λογιςμικό των windows 7. Τα πειράματα εκτελοφνται αρκετζσ φορζσ το κακζνα για τθν διαςφάλιςθ οτι τα αποτελζςματα τουσ είναι ςυνεπισ ςτουσ χρόνουσ και μποροφν να ιςχφςουν ςε μία ςφγκριςθ διαφορετικϊν αλγορίκμων κρυπτογράφθςθσ. 2.2 Αξιολόγηςη παραμϋτρων Ρροκειμζνου να αξιολογθκεί θ απόδοςθ των ςυγκρινόμενων αλγορίκμων κρυπτογράφθςθσ, οι παράμετροι ςτουσ οποίουσ οι αλγόρικμοι πρζπει να ελζγχουν πρζπει να προςδιορίηονται. Δεδομζνου ότι τα χαρακτθριςτικά αςφάλειασ του κάκε αλγορίκμου, όπωσ είναι θ αντοχι τουσ ενάντια κρυπτογραφικζσ επικζςεισ είναι ιδθ γνωςτά και ςυηθτθμζνα, ο παράγοντασ που επιλζγεται εδϊ για να προςδιοριςτεί θ απόδοςθ είναι θ ταχφτθτα του κάκε αλγορίκμου για τθν κρυπτογράφθςθ και αποκρυπτογράφθςθ των μπλόκ δεδομζνων διαφόρων μεγεκϊν. Οι παραμζτροι είναι 2 : 1. Χρόνοσ εκτζλεςθσ τθσ κρυπτογράφθςθσ 2. Χρόνοσ εκτζλεςθσ τθσ αποκρυπτογράφθςθσ Οι χρόνοι αυτοί αντιςτοιχοφν ςτο χρόνο που απαιτικθκε απο τουσ αλγορίκμουσ για τθ μετατροπι του αρχικοφ κειμζνου(plaintext) ςε κρυπτογράφθμα(ciphertext) και το αντίκετο. Οι χρόνοι αυτοί χρθςιμοποιοφνται για τον υπολογιςμό τθσ απόδοςθσ του κάκε αλγορίκμου κρυπτογράφθςθσ. 62

73 Χρόνοσ εκτζλεςησ(sec) [Ρειραματικά αποτελζςματα και ςυμπεράςματα] Κεφάλαιο Πειραματικϊ αποτελϋςματα και η ανϊλυςη τουσ Ο Πίνακασ 1 παρουςιάηει τα δζκα διαφορετικά μεγζκθ των αρχείων δεδομζμων ειςόδου και τουσ αντίςτοιχουσ χρόνουσ εκτζλεςθσ τθσ λειτουργίασ τθσ κρυπτογράφθςθσ που λαμβάνονται από τουσ DES, 3DES και RC4 αλγορίκμουσ ςε δευτερόλεπτα. Μζγεκοσ αρχείων ειςόδου(κβ) Χρόνοσ εκτζλεςθσ κρυπτογράφθςθσ ςε δευτερόλεπτα(sec) DES TripleDES RC4 10 0,457 1,282 0, ,152 3,305 0, ,233 6,231 1, ,114 9,905 1, ,027 14,445 2, ,918 20,249 4, ,841 26,750 6, ,693 32,941 7, ,056 41,743 11, ,494 50,467 13,619 Πίνακασ 1. Χρόνοσ εκτζλεςησ κρυπτογράφηςησ Αναλφοντασ τον Πίνακα 1, ςυμπεραίνουμε ότι ο χρόνοσ που απαιτείται για τθν κρυπτογράφθςθ από το DES είναι πολφ μικρόσ ςε ςφγκριςθ με του 3DES και ςχετικά λίγο μεγαλφτεροσ ςε ςφγκριςθ με τον RC4. Ο χρόνοσ που απαιτείται για τθν κρυπτογράφθςθ από τουσ DES, 3DES, RC4 για τα 10 διαφορετικου μζγεκουσ αρχεια ειςόδου φαίνεται ςτο ςχεδιάγραμμα 1. Κρυπτογράφηςη DES 30 TripleDES 20 RC Μζγεθοσ αρχείου ειςόδου(kb) Πίνακασ 2. Χρόνοσ εκτζλεςησ κρυπτογράφηςησ DES, 3DES και RC4 63

74 Κεφάλαιο 2 [Ρειραματικά αποτελζςματα και ςυμπεράςματα] Τπολογιςμόσ απόδοςησ κρυπτογράφηςησ Encryption Throughput(KB/sec) InputData EET Encryption Throughput(απόδοςθ κρυπτογράφθςθσ) input data (ςυνολικό μζγεκοσ αρχείων ειςόδου) EET (χρόνοσ εκτζλεςθσ τθσ κρυπτογράφθςθσ) Για το αλγόριθμο του DES input data[des]=550κβ EET[DES]= sec Encryption Throughput[DES](KB/sec)=7.857 KB/sec Για το αλγόριθμο του TripleDES input data[tripledes]=550κβ EET[TripleDES]= sec Encryption Throughput[TripleDES](KB/sec)=2.652 KB/sec Για το αλγόριθμο του RC4 input data[rc4]=550κβ EET[RC4]= sec Encryption Throughput[RC4](KB/sec)= KB/sec Από τα παραπανω αποτελζςματα των αλγορίκμων είναι εφκολο να παρατθρθκεί ότι RC4 ζχει ζνα πλεονζκτθμα ζναντι άλλων αλγορίκμων ςε όρουσ απόδοςθσ ζχοντασ μια πολφ καλι απόδοςθ ςε ςφγκριςθ με άλλουσ αλγορίκμουσ. Φαίνεται επίςθσ ότι 3DES ζχει ςχεδόν 1/3 τθσ απόδοςθσ του DES, ι με άλλα λόγια χρειάηεται 3 φορζσ περιςςότερο χρόνο από DES για να επεξεργάςτει τθν ίδια ποςότθτα δεδομζνων 64

75 [Ρειραματικά αποτελζςματα και ςυμπεράςματα] Κεφάλαιο 2 Ο Πίνακασ 3 παρουςιάηει τα 10 διαφορετικά μεγζκθ αρχείων ειςόδου και τουσ αντίςτοιχοσ χρόνοσ αποκρυπτογράφθςθσ που λαμβάνονται από DES, 3DES και RC4 αλγορίκμουσ ςε δευτερόλεπτα. Μζγεκοσ αρχείων ειςόδου(κβ) Χρόνοσ εκτζλεςθσ αποκρυπτογράφθςθσ ςε δευτερόλεπτα(sec) DES TripleDES RC4 10 0,447 1,132 0, ,143 3,108 0, ,171 6,501 0, ,126 9,523 0, ,125 14,414 0, ,839 20,506 1, ,867 25,716 1, ,561 32,778 2, ,712 42,302 4, ,495 51,423 5,016 Πίνακασ 3. Χρόνοσ εκτζλεςησ αποκρυπτογράφηςησ Με τθν ανάλυςθ του Πίνακασ 2 καταλιγουμε ςτο ςυμπζραςμα ότι ο χρόνοσ αποκρυπτογράφθςθσ που λαμβάνονται από DES ειναι πολφ μικρόσ ςε ςφγκριςθ με τον 3DES αλλα και ςχετικά μεγαλοσ ςε ςφγκριςθ με RC4. Αυτο κυρίωσ οφείλεται οτι ο RC4 χρθςιμοποιεί τον ίδιο κϊδικα για κρυπτογράφθςθ και αποκρυπτογράφθςθ, αλλά θ λειτουργία για μετατροπι του κρυπτογραφιματοσ ςτο 16δικο ςφςτθμα αρίκμθςθσ(ςτθ περιπτωςθ τθσ κρυπτογράφθςθσ) είναι πολφ πιο χρονοβόρα απο τθν αντιςτροφθ διαδικαςία ςτθν αποκρυπτογράφθςθ, όπωσ φαίνεται και ςτα αντίςτοιχα αποτελζςματα. Ο χρόνοσ που απαιτείται για τθν αποκρυπτογράφθςθ από τουσ DES, 3DES, RC4 για τα 10 διαφορετικοφ μζγεκουσ αρχείων ειςόδου φαίνεται ςτο ςχεδιάγραμμα 2. 65

76 Χρονος εκτζλεςης(sec) Κεφάλαιο 2 [Ρειραματικά αποτελζςματα και ςυμπεράςματα] 60 Αποκρυπτογράφηςη DES TripleDES RC Μζγεθοσ αρχείων ειςόδου(kb) Πίνακασ 4. Χρόνοσ εκτζλεςησ αποκρυπτογράφηςησ DES,3DES και RC4 Τπολογιςμόσ απόδοςησ αποκρυπτογράφηςησ Decryption Throughput(KB/sec) InputData DET Decryption Throughput(απόδοςθ αποκρυπτογράφθςθσ) input data (ςυνολικό μζγεκοσ αρχείων ειςόδου) DET (χρόνοσ εκτζλεςθσ τθσ αποκρυπτογράφθςθσ) Για το αλγόριθμο του DES input data[des]=550κβ DET[DES]= sec Decryption Throughput[DES](KB/sec)=7.915 KB/sec Για το αλγόριθμο του TripleDES input data[tripledes]=550κβ DET[TripleDES]= sec Decryption Throughput[TripleDES](KB/sec)=2.651 KB/sec 66

77 [Ρειραματικά αποτελζςματα και ςυμπεράςματα] Κεφάλαιο 2 Για το αλγόριθμο του RC4 input data[rc4]=550κβ DET[RC4]= sec Decryption Throughput[RC4](KB/sec)= KB/sec Ομοίωσ,απο τα παραπάνω αποτελζςματα των αλγορίκμων είναι εφκολο να παρατθρθκεί ότι RC4 ζχει ζνα πλεονζκτθμα ζναντι άλλων αλγορίκμων ςε όρουσ απόδοςθσ ζχοντασ μια πολφ καλι απόδοςθ ςε ςφγκριςθ με άλλουσ αλγορίκμουσ (4 φορζσ γρθγορότεροσ απο το DES). Δείχνει επίςθσ ότι 3DES ζχει ςχεδόν 1/3 τθσ αποδόςθσ του DES, όπωσ και ςτθν κρυπτογράφθςθ Ανϊλυςη των αποτελεςμϊτων και ςυμπερϊςματα που προκύπτουν. Στθν κρυπτογράφθςθ, όπωσ και ςτθν αποκρυπτογράφθςθ, ο αλγόρικμοσ του RC4 ιταν ταχφτεροσ και είχε τθν καλφτερθ απόδοςθ από τουσ άλλουσ δφο. Αυτό προκφπτει διότι θ ταχφτθτα του RC4 βαςίηεται ςτθν απλότθτα και ςτθν τεχνικι υλοποίθςθσ τθσ κρυπτογράφθςθσ και τθσ αποκρυπτογράφθςθσ που διαφζρει. Ραράγει μία ψευδοροι κειμζνου(δεδομζνων), ςυνδιάηοντασ το αρχικό κείμενο(plaintext) με το κλειδί κρυπτογράφθςθσ με απλό τρόπο(πράξθ XOR) και ςυνεχισ αντικαταςτάςεισ των τιμϊν των μεταβλθτϊν του i, j και S. Ουςιαςτθκά, επεξεργάηεται μία φορά κάκε byte του αρχικοφ κειμζνου για να παραχκεί το κρυπτογράφθμα. Επιπλζον, ο αλγόρικμοσ του RC4, μετατρζπει το κείμενο από μορφι ascii ςε δεκαεξαδικι μορφι, μία φορά κατα τθ διάρκεια τθσ εκτζλεςθσ τθσ κρυπτογράφθςθσ και μία φορά, ςε αντίκετθ φορά κατα τθ διάρκεια τθσ αποκρυπτογράφθςθσ. Κατά τθ διαδικαςία τθσ κρυπτογράφθςθσ, μετατροπι του κρυπτογραφιματοσ ςε δεκαεξαδικι μορφι απο ascii, είναι περιςςότερο χρονοβόρα απο τθν αντίκετθ τθσ κρυπτογράφθςθσ, κακϊσ απαιτοφνται περιςςότερεσ εςωτερικζσ πράξεισ απο τθν ςυάρτθςθ τθσ JAVA, Sting.format(). Απο τθν άλλθ ο αλγόρικμοσ του DES,επεξεργάηεται το αρχικό κείμενο(δεδομζνα) ςε επίπεδο bit, και όχι byte όπωσ ο αλγόρικμοσ του RC4. Αυτό από μόνο του, κακιςτά το DES( οπότε και τον TripleDES) να λειτουργοφν πιο αργά. Ο DES περνά απο μία δεκαεξάγυρθ επεξεργαςία τα bit του κάκε 64-bit μπλόκ, μπερδεφοντασ τα bit, ςε αντίκεςθ με το ζνα περαςμα επεξεργαςίασ του κειμζνου απο τον αλγόρικμο 67

78 Κεφάλαιο 2 [Ρειραματικά αποτελζςματα και ςυμπεράςματα] του RC4. Θ διαφορά αυτι μπορεί αν είναι αμιλθτζα αν το κείμενο είναι μικρό(π.χ bit) κακϊσ γίνονται λίγεσ επεξεργαςίεσ μπλόκ απο το DES, αλλά όςο το κείμενο γίνεται μεγαλφτερο θ χρονικι διαφορά μεταξφ των δφο αυτϊν αλγορίκμων κα γίνεται ολο ζνα και πιο φανερι, κακϊσ μεγαλϊνει παράλλθλα με το κζιμενο ειςόδου. Εκτόσ απο τθν τεχνικι υλοποίθςθσ τθσ κρυπτογράφθςθσ και τθσ αποκρυπτογράφθςθσ, ο DES χάνει χρόνο και ςτισ μετατροπζσ του κειμζνου και του κλειδιοφ, αρχικά ςε binary μορφι και ζπειτα ςε ascii μορφι. Δφο μετατροπζσ του κειμζνου και μία του κλειδιοφ ςε αντικεςθ με τθ μία του RC4. Τζλοσ, αν και αμιλθτζα θ χρονικι κακιςτζρθςθ που προκαλεί, είναι θ παραγωγι των δεκαζξθ υποκλειδιϊν από το αρχικό κλειδί, πράγμα που δεν υπάρχει ςτον αλγόρικμο του RC4. Ο TripleDES, αποτελεί τρία ςυςτιματα DES. Αυτό ςυμάινει οτί θ εκτζλεςι του κα διαρκεί όςο θ εκτζλεςθ τριϊν ςυςτθμάτων DES. Ζχει τισ ίδιεσ διαφορζσ και χρονικζσ κακιςτεριςεισ από τον αλγόρικμο του RC4, όπωσ και ο αλγορικμοσ του DES. Στθν κρυπτογράφθςθ, ςθμαντικό ρόλο παίηει θ ταχφτθτα λειρουγίασ ενόσ αλγορίκμουσ, αλλά και θ ανκεκτικότθτα που παρζχει ςε διάφορεσ επικζςεισ κρυπτανάλυςθσ. Για τθν επιλογι κάποιου αλγορίκμου πρζπει να τα ζχουμε και τα δφο ςτο μυαλό μασ. Κακϊσ θ ανκεκτικότθτα του κάκε αλγορίκμου είναι πλζον γνωςτζσ και πολυμελετθμζνεσ ςυμπεραίνουμε τα εξθσ: 1. Ο DES είναι ζνα αρκετά παλιό κρυπτογραφθκό πρότυπο. Το μζγεκοσ του κλειδιοφ του είναι αρκετά μικρό για να παρζχει μία κατάλλθλθ κρυπτογράφθςθ(ζχουν καταγραφεί επικζςεισ ωμισ βίασ(brute force attack) πάνω απο δζκα χρόνια), όπωσ επίςθσ το γεγονόσ οτι ο DES χρθςιμοποιεί 64- bit μπλόκ, δθμιουργεί ςοβαρά κζματα ςτθν κρυπτογράφθςθ όςο τα δεδομζνα ειςόδου αυξάνονται(π.χ. ςε επίπεδο gigabyte) με το ίδιο κλειδί. 2. Ο TripleDES αποτελεί ουςιαςτθκά ζνα τζχναςμα με επαναχρθςιμοποίθςθ ςυςτθμάτων DES(με διαφορετικά κλειδιά), που πιςτεφετε οτι ςτισ μζρεσ μασ είναι αρκετά αςφαλζσ. Ο TripleDES είναι όμωσ πολφ αργόσ ςε επίπεδο software(αρχικά ςχεδιάςτθκε για αποτελεςματικι λειτουργία του ςε hardware επίπεδο). 3. Ο TripleDES παρζχει μεγάλθ ανκεκτικότθτα ςε επικζςεισ ωμισ βίασ, αρκετά μεγάλθ ςτισ μζρεσ μασ, ακόμθ και με παρουςία αρκετϊν τμθμάτων του κρυπτογραφιματοσ, όπωσ και θ δυναμι του ςε κρυπτανάλυςθ, αν και υπάρχουν γνωςτά του ελαττϊματα, αυτά δεν επιρρεάηουν τθν αποτελεςματικοτθτά του ςε ρεαλιςτικζσ επικζςεισ(τουλάχιςτον για μία δεκαετία ακόμθ). 4. Ο RC4 αν και ταχφτατοσ, με μεγάλθ ευελθξία ςτο μζγεκοσ του κλειδιοφ(ςε αντίκεςθ με τουσ DES και TripleDES που ζχουν κλειδί ςτακεροφ μικουσ), πολλζσ μελζτεσ παρουςίαςαν ςθμαντικζσ αδυναμίεσ του, τόςο ςτθ δομι του 68

79 [Ρειραματικά αποτελζςματα και ςυμπεράςματα] Κεφάλαιο 2 όςο και ςτθ παραγωγι του keystream, πράγμα που το κακιςτά πλζον μι αςφαλζσ αλγόρικμο κρυπτογράφθςθ με οποιοδιποτε μικοσ κλειδιοφ. 5. Ο RC4 είναι ανεκτικότεροσ από τον αλγόρικμο του DES, αν το μζγεκοσ του μεταβλθτοφ του κλειδιοφ είναι μεγαλφτερο των 56 bit, και όντασ ταχφτεροσ απο το DES, ο RC4 αποτελεί καλφτερθ επιλογι ανάμεςα ςτουσ δφο. 6. Ο RC4 αν και τθν εφκολθ υλοποίθςθ του πρωτοκόλου του, παρζχει πλζον πολφ λίγθ κρυπτογραφθκι δφναμθ ενάντια ςε επικζςθσ, ςε αντίκεςθ με τον αλγόρικμο του TripleDES, του οποίου θ δφναμθ προκφπτει από τθν τεράςτια χριςθ τθσ cpu του ςυςτιματοσ,πράγμα που αυξάνει το κόςτοσ τθσ υλοποιθςισ του(χριςθ ενζργειασ, χρόνου). Ζπειτα από αυτά τα ςυμπεράςμα, θ επιλογι κάποιου αλγορίκμου κρυπτογράφθςθσ πρζπει να βαςίηεται τόςο ςτο ςφςτθμα που κατζχειςτθ διάκεςθ του ο χριςτθσ, όςο και ςτθν αςφάλεια που κζλει να παρζχει ςτο κρυπτογραφθμά του. 69

80 Κεφάλαιο 3 [Το πρόγραμμα προςομοίωςθσ και θ λειτουργία του] 3. Σο πρόγραμμα προςομούωςησ και η λειτουργύα του Ραρακάτω παρουςιάηεται το γραφικό περιβάλλον του προγράμματοσ προςομοίωςθσ (GUI). Εικόνα 15. Αρχικό ςτιγμιότυπο του GUI του προγράμματοσ Το περιβάλλον του προγράμματοσ, είναι πολφ απλά ςχεδιαςμζνό και αυτό κακιςτά το πρόγραμμα εφκολο για τθ χριςθ του απο το κακζνα. 70

81 [Το πρόγραμμα προςομοίωςθσ και θ λειτουργία του] Κεφάλαιο 3 Ειςαγωγη δεδομενων ςτο προγραμμα προςομοίωςησ προσ κρυπτογραφηςη Θ ειςαγωγι των δεδομζνων(κζιμενο) ςτο πρόγραμμα μπορεί να γίνει με δφο τρόπουσ. 1. Αρχικά, παρζχεται θ δυνατότθτα για ειςαγωγι δεδομζνων κατευκείασ από το χριςτθ, με το αντίςτοιχο jtextfield.ο χριςτθσ δεν ζχει κάποιο περιοριςμό για τα δεδομζνα που κα επιλζξει να ειςάγει. Μπορεί να είναι κάποιο κείμενο είτε ςτα αγγλικά, είτε ςτα ελλθνικά και το μεγεκόσ του να είναι αρκετά μεγάλο. 2. Ο δεφτεροσ τρόποσ είναι θ ειςαγωγι δεδομζνων(αρχείων κειμζνου(*.txt)) απευκείασ από το ςφςτθμα του χριςτθ. Θ λειτουργία αυτι γίνεται μζςω του κουμπιοφ «attach file» το οποίο αποτελεί ουςιαςτθκά ενα αντικείμενο file chooser ςτθ JAVA που δίνει τθ δυνατότθτα ςτο χριςτθ να περιθγθκεί ςτα αρχεία του υπολογιςτι του και ζπειτα να διαλζξει το αρχείο που επικυμεί να κρυπτογραφιςει. Ραρακάτω παρουςιάηεται αυτό το παράκυρο. Εικόνα 16. Pop-up παράθυρο για την επιλογή αρχείου Αφοφ γίνει θ επιλογι κάποιου αρχείου, ςτο jtextfield δίπλα, φαίνεται ολόκλθρο το path του αρχείου ςτο ςφςτθμα. Ο χριςτθσ ζχει τθ δυνατότθτα πατϊντασ ξανά το κουμπί να τοποκετιςει νζο αρχείο δεδομζνων ςτο πρόγραμμα. 71

82 Κεφάλαιο 3 [Το πρόγραμμα προςομοίωςθσ και θ λειτουργία του] Για τθν αποφυγι λακων ι δυςνοθςεων, δεν είναι δυνατό ο χριςτθσ να χρθςιμοποιιςει και τουσ δφο τρόπουσ ταυτόχρονα, δθλαδι να ζχει και κείμενο και κάποιο αρχείο ωσ είςοδο ςτο πρόγραμμα. Ζτςι οταν γίνεται επιλογι κάποιου αρχείου από το ςφςτθμα, το jtextfield για τθν ειςαγωγι κειμζνου απευκείασ από το χριςτθ αρχικοποιείται( επανζρχεται ςε κενό κείμενο) και απενεργοποιείται. Για τθν εκ νζου ενεργοποίθςθ του πεδίου, ο χριςτθσ ζχει τθ δυνατότθτα μζςο του κουμπιοφ «C» να «κακαρίςει» τα δεδομζνα ειςόδου ζτςι ϊςτε ο χριςτθσ να βάλει εκ νζου δεδομζνα με ζνα από τουσ δφο τρόπουσ. 2 οσ τρόποσ ειςαγωγισ δεδομζνων Κουμπί C Ρροβολι του path του αρχείου ςτο ςφςτθμα 1 οσ τρόποσ ειςαγωγισ δεδομζνων Εικόνα 17. Ειςαγωγή δεδομζνων ςτο πρόγραμμα 72

Αςφάλεια και Προςταςία Δεδομζνων

Αςφάλεια και Προςταςία Δεδομζνων Αςφάλεια και Προςταςία Δεδομζνων Κρυπτογράφθςθ υμμετρικι και Αςφμμετρθ Κρυπτογραφία Αλγόρικμοι El Gamal Diffie - Hellman Σςιρόπουλοσ Γεώργιοσ ΣΙΡΟΠΟΤΛΟ ΓΕΩΡΓΙΟ 1 υμμετρικι Κρυπτογραφία υμμετρικι (Κλαςικι)

Διαβάστε περισσότερα

Παράςταςη ακεραίων ςτο ςυςτημα ςυμπλήρωμα ωσ προσ 2

Παράςταςη ακεραίων ςτο ςυςτημα ςυμπλήρωμα ωσ προσ 2 Παράςταςη ακεραίων ςτο ςυςτημα ςυμπλήρωμα ωσ προσ 2 Δρ. Χρήζηος Ηλιούδης Μθ Προςθμαςμζνοι Ακζραιοι Εφαρμογζσ (ςε οποιαδιποτε περίπτωςθ δεν χρειάηονται αρνθτικοί αρικμοί) Καταμζτρθςθ. Διευκυνςιοδότθςθ.

Διαβάστε περισσότερα

Ένα πρόβλθμα γραμμικοφ προγραμματιςμοφ βρίςκεται ςτθν κανονικι μορφι όταν:

Ένα πρόβλθμα γραμμικοφ προγραμματιςμοφ βρίςκεται ςτθν κανονικι μορφι όταν: Μζθοδος Simplex Η πλζον γνωςτι και περιςςότερο χρθςιμοποιουμζνθ μζκοδοσ για τθν επίλυςθ ενόσ γενικοφ προβλιματοσ γραμμικοφ προγραμματιςμοφ, είναι θ μζκοδοσ Simplex θ οποία αναπτφχκθκε από τον George Dantzig.

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Γνωριμία με το λογιςμικό του υπολογιςτι

ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Γνωριμία με το λογιςμικό του υπολογιςτι ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ ΚΕΦΑΛΑΙΟ 5: Γνωριμία με το λογιςμικό του υπολογιςτι Λογιςμικό (Software), Πρόγραμμα (Programme ι Program), Προγραμματιςτισ (Programmer), Λειτουργικό Σφςτθμα (Operating

Διαβάστε περισσότερα

Θεςιακά ςυςτιματα αρίκμθςθσ

Θεςιακά ςυςτιματα αρίκμθςθσ Θεςιακά ςυςτιματα αρίκμθςθσ Δρ. Χρήστος Ηλιούδης αρικμθτικό ςφςτθμα αρίκμθςθσ (Number System) Αξία (value) παράςταςθ Οι αξίεσ (π.χ. το βάροσ μιασ ποςότθτασ μιλων) μποροφν να παραςτακοφν με πολλοφσ τρόπουσ

Διαβάστε περισσότερα

ΘΥ101: Ειςαγωγι ςτθν Πλθροφορικι

ΘΥ101: Ειςαγωγι ςτθν Πλθροφορικι Παράςταςη κινητήσ υποδιαςτολήσ ςφμφωνα με το πρότυπο ΙΕΕΕ Δρ. Χρήστος Ηλιούδης το πρότυπο ΙΕΕΕ 754 ζχει χρθςιμοποιθκεί ευρζωσ ςε πραγματικοφσ υπολογιςτζσ. Το πρότυπο αυτό κακορίηει δφο βαςικζσ μορφζσ κινθτισ

Διαβάστε περισσότερα

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 7 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Γ

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 7 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Γ ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ 7 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Γ ελιδοποίθςθ (1/10) Σόςο θ κατάτμθςθ διαμεριςμάτων ςτακεροφ μεγζκουσ όςο και θ κατάτμθςθ διαμεριςμάτων μεταβλθτοφ και άνιςου μεγζκουσ δεν κάνουν

Διαβάστε περισσότερα

ΕΦΑΡΜΟΓΕ ΒΑΕΩΝ ΔΕΔΟΜΕΝΩΝ ΣΗ ΝΟΗΛΕΤΣΙΚΗ. Φιλιοποφλου Ειρινθ

ΕΦΑΡΜΟΓΕ ΒΑΕΩΝ ΔΕΔΟΜΕΝΩΝ ΣΗ ΝΟΗΛΕΤΣΙΚΗ. Φιλιοποφλου Ειρινθ ΕΦΑΡΜΟΓΕ ΒΑΕΩΝ ΔΕΔΟΜΕΝΩΝ ΣΗ ΝΟΗΛΕΤΣΙΚΗ Φιλιοποφλου Ειρινθ Προςθήκη νζων πεδίων Ασ υποκζςουμε ότι μετά τθ δθμιουργία του πίνακα αντιλαμβανόμαςτε ότι ζχουμε ξεχάςει κάποια πεδία. Είναι ζνα πρόβλθμα το οποίο

Διαβάστε περισσότερα

x n D 2 ENCODER m - σε n (m 2 n ) x 1 Παραδείγματα κωδικοποιθτϊν είναι ο κωδικοποιθτισ οκταδικοφ ςε δυαδικό και ο κωδικοποιθτισ BCD ςε δυαδικό.

x n D 2 ENCODER m - σε n (m 2 n ) x 1 Παραδείγματα κωδικοποιθτϊν είναι ο κωδικοποιθτισ οκταδικοφ ςε δυαδικό και ο κωδικοποιθτισ BCD ςε δυαδικό. Κωδικοποιητές Ο κωδικοποιθτισ (nor) είναι ζνα κφκλωμα το οποίο διακζτει n γραμμζσ εξόδου και το πολφ μζχρι m = 2 n γραμμζσ ειςόδου και (m 2 n ). Οι ζξοδοι παράγουν τθν κατάλλθλθ λζξθ ενόσ δυαδικοφ κϊδικα

Διαβάστε περισσότερα

ςυςτιματα γραμμικϊν εξιςϊςεων

ςυςτιματα γραμμικϊν εξιςϊςεων κεφάλαιο 7 Α ςυςτιματα γραμμικϊν εξιςϊςεων αςικζσ ζννοιεσ Γραμμικά, λζγονται τα ςυςτιματα εξιςϊςεων ςτα οποία οι άγνωςτοι εμφανίηονται ςτθν πρϊτθ δφναμθ. Σα γραμμικά ςυςτιματα με δφο εξιςϊςεισ και δφο

Διαβάστε περισσότερα

Παράςταςη ςυμπλήρωμα ωσ προσ 1

Παράςταςη ςυμπλήρωμα ωσ προσ 1 Δρ. Χρήστος Ηλιούδης Θζματα διάλεξησ ΣΤ1 Προςθεςη αφαίρεςη ςτο ΣΤ1 2 ή ΣΤ1 Ονομάηουμε ςυμπλιρωμα ωσ προσ μειωμζνθ βάςθ R ενόσ μθ προςθμαςμζνου αρικμοφ Χ = ( Χ θ-1 Χ θ-2... Χ 0 ) R ζναν άλλον αρικμό Χ'

Διαβάστε περισσότερα

Λαμβάνοντασ υπόψη ότι κατά την πρόςθεςη δφο δυαδικϊν ψηφίων ιςχφει: Κρατοφμενο

Λαμβάνοντασ υπόψη ότι κατά την πρόςθεςη δφο δυαδικϊν ψηφίων ιςχφει: Κρατοφμενο Αριθμητικά κυκλώματα Ημιαθροιστής (Half Adder) Ο ημιαθροιςτήσ είναι ζνα κφκλωμα το οποίο προςθζτει δφο δυαδικά ψηφία (bits) και δίνει ωσ αποτζλεςμα το άθροιςμά τουσ και το κρατοφμενο. Με βάςη αυτή την

Διαβάστε περισσότερα

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο)

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο) Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο) Ιοφνιοσ 2013 Περιεχόμενα: Ειςαγωγή... 3 1.Εθνικό Τυπογραφείο... 3 1.1. Είςοδοσ... 3 1.2. Αρχική Οθόνη... 4 1.3. Διεκπεραίωςη αίτηςησ...

Διαβάστε περισσότερα

ΚΡΤΠΣΟΓΡΑΦΙΑ ΚΑΙ ΑΦΑΛΕΙΑ ΤΠΟΛΟΓΙΣΩΝ Δ Εξάμηνο. Αςφμμετρη Κρυπτογράφηςη (Κρυπτογραφία Δημόςιου Κλειδιοφ)

ΚΡΤΠΣΟΓΡΑΦΙΑ ΚΑΙ ΑΦΑΛΕΙΑ ΤΠΟΛΟΓΙΣΩΝ Δ Εξάμηνο. Αςφμμετρη Κρυπτογράφηςη (Κρυπτογραφία Δημόςιου Κλειδιοφ) ΚΡΤΠΣΟΓΡΑΦΙΑ ΚΑΙ ΑΦΑΛΕΙΑ ΤΠΟΛΟΓΙΣΩΝ Δ Εξάμηνο Αςφμμετρη Κρυπτογράφηςη (Κρυπτογραφία Δημόςιου Κλειδιοφ) ΔΙΑΡΘΡΩ Η ΕΝΟΣΗΣΑ Αρχζσ Κρυπτογράφθςθσ Δθμοςίου Κλειδιοφ Κρυπτογραφία Δθμοςίου Κλειδιοφ Θεωρία Αρικμών

Διαβάστε περισσότερα

Σ ΤΑΤ Ι Σ Τ Ι Κ Η. Statisticum collegium V

Σ ΤΑΤ Ι Σ Τ Ι Κ Η. Statisticum collegium V Σ ΤΑΤ Ι Σ Τ Ι Κ Η i Statisticum collegium V Στατιςτική Συμπεραςματολογία Ι Σημειακζσ Εκτιμήςεισ Διαςτήματα Εμπιςτοςφνησ Στατιςτική Συμπεραςματολογία (Statistical Inference) Το πεδίο τθσ Στατιςτικισ Συμπεραςματολογία,

Διαβάστε περισσότερα

Ιςοηυγιςμζνα δζντρα και Β- δζντρα. Δομζσ Δεδομζνων

Ιςοηυγιςμζνα δζντρα και Β- δζντρα. Δομζσ Δεδομζνων Ιςοηυγιςμζνα δζντρα και Β- δζντρα Δομζσ Δεδομζνων Περιεχόμενα Ιςοηυγιςμζνα δζντρα Μζκοδοι ιςοηφγιςθσ δζντρων Μονι Περιςτροφι Διπλι Περιςτροφι Β - δζντρα Ιςοηυγιςμζνα δζντρα Η μορφι ενόσ δυαδικοφ δζντρου

Διαβάστε περισσότερα

Ιδιότθτεσ πεδίων Γενικζσ.

Ιδιότθτεσ πεδίων Γενικζσ. Οι ιδιότθτεσ των πεδίων διαφζρουν ανάλογα με τον τφπο δεδομζνων που επιλζγουμε. Ορίηονται ςτο κάτω μζροσ του παρακφρου ςχεδίαςθσ του πίνακα, ςτθν καρτζλα Γενικζσ. Ιδιότθτα: Μζγεκοσ πεδίου (Field size)

Διαβάστε περισσότερα

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο)

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο) Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο) Πάτρα, 2013 Περιεχόμενα: Ειςαγωγή... 4 1. Επιμελητήριο... Error! Bookmark not defined. 1.1 Διαχειριςτήσ Αιτήςεων Επιμελητηρίου...

Διαβάστε περισσότερα

Δείκτεσ Διαχείριςθ Μνιμθσ. Βαγγζλθσ Οικονόμου Διάλεξθ 8

Δείκτεσ Διαχείριςθ Μνιμθσ. Βαγγζλθσ Οικονόμου Διάλεξθ 8 Δείκτεσ Διαχείριςθ Μνιμθσ Βαγγζλθσ Οικονόμου Διάλεξθ 8 Δείκτεσ Κάκε μεταβλθτι ςχετίηεται με μία κζςθ ςτθν κφρια μνιμθ του υπολογιςτι. Κάκε κζςθ ςτθ μνιμθ ζχει τθ δικι τθσ ξεχωριςτι διεφκυνςθ. Με άμεςθ

Διαβάστε περισσότερα

ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ. ΚΕΦΑΛΑΙΟ 2: Σο Τλικό του Τπολογιςτι

ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ. ΚΕΦΑΛΑΙΟ 2: Σο Τλικό του Τπολογιςτι ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ ΚΕΦΑΛΑΙΟ 2: Σο Τλικό του Τπολογιςτι Τλικό υπολογιςτι (Hardware), Προςωπικόσ Τπολογιςτισ (ΡC), υςκευι ειςόδου, υςκευι εξόδου, Οκόνθ (Screen), Εκτυπωτισ (Printer), αρωτισ

Διαβάστε περισσότερα

Ψθφιακά Ηλεκτρονικά. Ενότθτα 7 : Ελαχιςτοποίθςθ και κωδικοποίθςθ καταςτάςεων Φϊτιοσ Βαρτηιϊτθσ

Ψθφιακά Ηλεκτρονικά. Ενότθτα 7 : Ελαχιςτοποίθςθ και κωδικοποίθςθ καταςτάςεων Φϊτιοσ Βαρτηιϊτθσ Ελλθνικι Δθμοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Ψθφιακά Ηλεκτρονικά Ενότθτα 7 : Ελαχιςτοποίθςθ και κωδικοποίθςθ καταςτάςεων Φϊτιοσ Βαρτηιϊτθσ 1 Ανοιχτά Ακαδημαϊκά Μαθήματα ςτο ΤΕΙ Ηπείρου Τμιμα

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ 2: ΕΠΙΚΟΙΝΩΝΩ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Αρχεία - Φάκελοι

ΕΝΟΤΗΤΑ 2: ΕΠΙΚΟΙΝΩΝΩ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Αρχεία - Φάκελοι ΕΝΟΤΗΤΑ 2: ΕΠΙΚΟΙΝΩΝΩ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ Αρχείο (File) Φάκελοσ (Folder) Διαχειριςτισ Αρχείων (File Manager) Τφποι Αρχείων Σε τι εξυπθρετεί θ οργάνωςθ των εργαςιϊν μασ ςτουσ υπολογιςτζσ; Πϊσ κα οργανϊςουμε

Διαβάστε περισσότερα

Σχεδίαςη Σφγχρονων Ακολουθιακών Κυκλωμάτων

Σχεδίαςη Σφγχρονων Ακολουθιακών Κυκλωμάτων Σχεδίαςη Σφγχρονων Ακολουθιακών Κυκλωμάτων Πίνακεσ Διζγερςησ των FF Όπωσ είδαμε κατά τθ μελζτθ των FF, οι χαρακτθριςτικοί πίνακεσ δίνουν τθν τιμι τθσ επόμενθσ κατάςταςθσ κάκε FF ωσ ςυνάρτθςθ τθσ παροφςασ

Διαβάστε περισσότερα

Virtualization. Στο ςυγκεκριμζνο οδηγό, θα παρουςιαςτεί η ικανότητα δοκιμήσ τησ διανομήσ Ubuntu 9.04, χωρίσ την ανάγκη του format.

Virtualization. Στο ςυγκεκριμζνο οδηγό, θα παρουςιαςτεί η ικανότητα δοκιμήσ τησ διανομήσ Ubuntu 9.04, χωρίσ την ανάγκη του format. Virtualization Στο ςυγκεκριμζνο οδηγό, θα παρουςιαςτεί η ικανότητα δοκιμήσ τησ διανομήσ Ubuntu 9.04, χωρίσ την ανάγκη του format. Το virtualization πρόκειται για μια τεχνολογία, θ οποία επιτρζπει το διαχωριςμό

Διαβάστε περισσότερα

Διαχείριςθ του φακζλου "public_html" ςτο ΠΣΔ

Διαχείριςθ του φακζλου public_html ςτο ΠΣΔ Διαχείριςθ του φακζλου "public_html" ςτο ΠΣΔ Οι παρακάτω οδθγίεσ αφοροφν το χριςτθ webdipe. Για διαφορετικό λογαριαςμό χρθςιμοποιιςτε κάκε φορά το αντίςτοιχο όνομα χριςτθ. = πατάμε αριςτερό κλικ ςτο Επιςκεφκείτε

Διαβάστε περισσότερα

ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 5 ο Εργαςτιριο Ειςαγωγι ςτθ Γραμμι Εντολϊν

ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 5 ο Εργαςτιριο Ειςαγωγι ςτθ Γραμμι Εντολϊν ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ 5 ο Εργαςτιριο Ειςαγωγι ςτθ Γραμμι Εντολϊν Τι είναι θ Γραμμι Εντολϊν (1/6) Στουσ πρϊτουσ υπολογιςτζσ, και κυρίωσ από τθ δεκαετία του 60 και μετά, θ αλλθλεπίδραςθ του χριςτθ με τουσ

Διαβάστε περισσότερα

Γράφοι. Δομζσ Δεδομζνων Διάλεξθ 9

Γράφοι. Δομζσ Δεδομζνων Διάλεξθ 9 Γράφοι Δομζσ Δεδομζνων Διάλεξθ 9 Περιεχόμενα Γράφοι Γενικζσ ζννοιεσ, οριςμόσ, κτλ Παραδείγματα Γράφων Αποκικευςθ Γράφων Βαςικοί Οριςμοί Γράφοι και Δζντρα Διάςχιςθ Γράφων Περιοδεφων Πωλθτισ Γράφοι Οριςμόσ:

Διαβάστε περισσότερα

ΕΦΑΡΜΟΓΖσ ΒΆΕΩΝ ΔΕΔΟΜΖΝΩΝ ΚΑΙ ΔΙΑΔΙΚΣΥΟΤ. Ειρινθ Φιλιοποφλου

ΕΦΑΡΜΟΓΖσ ΒΆΕΩΝ ΔΕΔΟΜΖΝΩΝ ΚΑΙ ΔΙΑΔΙΚΣΥΟΤ. Ειρινθ Φιλιοποφλου ΕΦΑΡΜΟΓΖσ ΒΆΕΩΝ ΔΕΔΟΜΖΝΩΝ ΚΑΙ ΔΙΑΔΙΚΣΥΟΤ Ειρινθ Φιλιοποφλου Ειςαγωγι Ο Παγκόςμιοσ Ιςτόσ (World Wide Web - WWW) ι πιο απλά Ιςτόσ (Web) είναι μία αρχιτεκτονικι για τθν προςπζλαςθ διαςυνδεδεμζνων εγγράφων

Διαβάστε περισσότερα

Πόςο εκτατό μπορεί να είναι ζνα μη εκτατό νήμα και πόςο φυςικό. μπορεί να είναι ζνα μηχανικό ςτερεό. Συνιςταμζνη δφναμη versus «κατανεμημζνησ» δφναμησ

Πόςο εκτατό μπορεί να είναι ζνα μη εκτατό νήμα και πόςο φυςικό. μπορεί να είναι ζνα μηχανικό ςτερεό. Συνιςταμζνη δφναμη versus «κατανεμημζνησ» δφναμησ Πόςο εκτατό μπορεί να είναι ζνα μη εκτατό νήμα και πόςο φυςικό μπορεί να είναι ζνα μηχανικό ςτερεό. Συνιςταμζνη δφναμη versus «κατανεμημζνησ» δφναμησ Για τθν ανάδειξθ του κζματοσ κα λφνουμε κάποια προβλιματα

Διαβάστε περισσότερα

ΤΕΙ Κρήτης Τμήμα Μηχανικών Πληροφορικής. Συμμετρική Κρυπτογραφία

ΤΕΙ Κρήτης Τμήμα Μηχανικών Πληροφορικής. Συμμετρική Κρυπτογραφία ΤΕΙ Κρήτης Τμήμα Μηχανικών Πληροφορικής Συμμετρική Κρυπτογραφία Εισαγωγή Στην συνηθισμένη κρυπτογραφία, ο αποστολέας και ο παραλήπτης ενός μηνύματος γνωρίζουν και χρησιμοποιούν το ίδιο μυστικό κλειδί.

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 6: Το γραφικό περιβάλλον Επικοινωνίασ (Γ.Π.Ε)

ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 6: Το γραφικό περιβάλλον Επικοινωνίασ (Γ.Π.Ε) ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ ΚΕΦΑΛΑΙΟ 6: Το γραφικό περιβάλλον Επικοινωνίασ (Γ.Π.Ε) Γραφικό Περιβάλλον Επικοινωνίασ Περιβάλλον Εντολϊν Γραμμισ (Graphical User Interface/GUI), (Command Line Interface),

Διαβάστε περισσότερα

Πολυπλέκτες. 0 x 0 F = S x 0 + Sx 1 1 x 1

Πολυπλέκτες. 0 x 0 F = S x 0 + Sx 1 1 x 1 Πολυπλέκτες Ο πολυπλζκτθσ (multipleer - ) είναι ζνα ςυνδυαςτικό κφκλωμα που επιλζγει δυαδικι πλθροφορία μιασ από πολλζσ γραμμζσ ειςόδου και τθν κατευκφνει ςε μια και μοναδικι γραμμι εξόδου. Η επιλογι μιασ

Διαβάστε περισσότερα

ΕΝΟΣΘΣΑ 1: ΓΝΩΡIΗΩ ΣΟΝ ΤΠΟΛΟΓΙΣΘ Ω ΕΝΙΑΙΟ ΤΣΘΜΑ. ΚΕΦΑΛΑΙΟ 1: Ψθφιακόσ Κόςμοσ

ΕΝΟΣΘΣΑ 1: ΓΝΩΡIΗΩ ΣΟΝ ΤΠΟΛΟΓΙΣΘ Ω ΕΝΙΑΙΟ ΤΣΘΜΑ. ΚΕΦΑΛΑΙΟ 1: Ψθφιακόσ Κόςμοσ ΕΝΟΣΘΣΑ 1: ΓΝΩΡIΗΩ ΣΟΝ ΤΠΟΛΟΓΙΣΘ Αναλογικόσ (Analogue), Δυαδικό Ψθφίο (Binary digit, bit), Byte, Ψθφιακόσ (Digital), υςτιματα αρίκμθςθσ υχνά λζγεται ότι ηοφμε ςτθν ψθφιακι εποχι. Πολλζσ από τισ ςυςκευζσ

Διαβάστε περισσότερα

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο του Άβακα

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο του Άβακα Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο του Άβακα Αυτζσ οι οδθγίεσ ζχουν ςτόχο λοιπόν να βοθκιςουν τουσ εκπαιδευτικοφσ να καταςκευάςουν τισ δικζσ τουσ δραςτθριότθτεσ με το μοντζλο του Άβακα. Παρουςίαςη

Διαβάστε περισσότερα

Ειδικά Θζματα Βάςεων Δεδομζνων

Ειδικά Θζματα Βάςεων Δεδομζνων Ειδικά Θζματα Βάςεων Δεδομζνων Ενότητα 9: Κρυπτογράφηςη δεδομζνων Δρ. Σςιμπίρθσ Αλκιβιάδθσ Σμιμα Μθχανικϊν Πλθροφορικισ ΣΕ Άδειεσ Χρήςησ Σο παρόν εκπαιδευτικό υλικό υπόκειται ςε άδειεσ χριςθσ Creative

Διαβάστε περισσότερα

Διαδικαςία Διαχείριςθσ Στθλϊν Βιβλίου Εςόδων - Εξόδων. (v.1.0.7)

Διαδικαςία Διαχείριςθσ Στθλϊν Βιβλίου Εςόδων - Εξόδων. (v.1.0.7) Διαδικαςία Διαχείριςθσ Στθλϊν Βιβλίου Εςόδων - Εξόδων (v.1.0.7) 1 Περίληψη Το ςυγκεκριμζνο εγχειρίδιο δθμιουργικθκε για να βοθκιςει τθν κατανόθςθ τθσ διαδικαςίασ διαχείριςθσ ςτθλών βιβλίου Εςόδων - Εξόδων.

Διαβάστε περισσότερα

ΒΙΟΛΟΓΟΙ ΓΙΑ ΦΥΣΙΚΟΥΣ

ΒΙΟΛΟΓΟΙ ΓΙΑ ΦΥΣΙΚΟΥΣ ΦΥΣΙΚΗ vs ΒΙΟΛΟΓΙΑ ΒΙΟΛΟΓΟΙ ΓΙΑ ΦΥΣΙΚΟΥΣ «Προτείνω να αναπτφξουμε πρώτα αυτό που κα μποροφςε να ζχει τον τίτλο: «ιδζεσ ενόσ απλοϊκοφ φυςικοφ για τουσ οργανιςμοφσ». Κοντολογίσ, τισ ιδζεσ που κα μποροφςαν

Διαβάστε περισσότερα

Πειραματικι Ψυχολογία (ΨΧ66)

Πειραματικι Ψυχολογία (ΨΧ66) Πειραματικι Ψυχολογία (ΨΧ66) Διάλεξη 7 Σεχνικζσ για τθν επίτευξθ ςτακερότθτασ Πζτροσ Ροφςςοσ Μζθοδοι για την επίτευξη του ελζγχου Μζςω του κατάλλθλου ςχεδιαςμοφ του πειράματοσ (ςτόχοσ είναι θ εξάλειψθ

Διαβάστε περισσότερα

ΧΕΔΙΑΜΟ ΠΡΟΪΟΝΣΩΝ ΜΕ Η/Τ

ΧΕΔΙΑΜΟ ΠΡΟΪΟΝΣΩΝ ΜΕ Η/Τ ΧΕΔΙΑΜΟ ΠΡΟΪΟΝΣΩΝ ΜΕ Η/Τ ΚΑΜΠΤΛΕ ΕΛΕΤΘΕΡΗ ΜΟΡΦΗ Χριςιμεσ για τθν περιγραφι ομαλών και ελεφκερων ςχθμάτων Αμάξωμα αυτοκινιτου, πτερφγια αεροςκαφών, ςκελετόσ πλοίου χιματα χαρακτιρων κινουμζνων ςχεδίων Περιγραφι

Διαβάστε περισσότερα

ΗΛΕΚΣΡΟΝΙΚΗ ΤΠΗΡΕΙΑ ΑΠΟΚΣΗΗ ΑΚΑΔΗΜΑΪΚΗ ΣΑΤΣΟΣΗΣΑ

ΗΛΕΚΣΡΟΝΙΚΗ ΤΠΗΡΕΙΑ ΑΠΟΚΣΗΗ ΑΚΑΔΗΜΑΪΚΗ ΣΑΤΣΟΣΗΣΑ ΗΛΕΚΣΡΟΝΙΚΗ ΤΠΗΡΕΙΑ ΑΠΟΚΣΗΗ ΑΚΑΔΗΜΑΪΚΗ ΣΑΤΣΟΣΗΣΑ Οδηγός Χρήσης Εφαρμογής Ελέγχου Προσφορών Αφοφ πιςτοποιθκεί ο λογαριαςμόσ που δθμιουργιςατε ςτο πρόγραμμα ωσ Πάροχοσ Προςφορϊν, κα λάβετε ζνα e-mail με

Διαβάστε περισσότερα

ΑΝΣΙΣΡΟΦΗ ΤΝΑΡΣΗΗ. f y x y f A αντιςτοιχίηεται ςτο μοναδικό x A για το οποίο. Παρατθριςεισ Ιδιότθτεσ τθσ αντίςτροφθσ ςυνάρτθςθσ 1. Η. f A τθσ f.

ΑΝΣΙΣΡΟΦΗ ΤΝΑΡΣΗΗ. f y x y f A αντιςτοιχίηεται ςτο μοναδικό x A για το οποίο. Παρατθριςεισ Ιδιότθτεσ τθσ αντίςτροφθσ ςυνάρτθςθσ 1. Η. f A τθσ f. .. Αντίςτροφθ ςυνάρτθςθ Ζςτω θ ςυνάρτθςθ : A θ οποία είναι " ". Τότε ορίηεται μια νζα ςυνάρτθςθ, θ μζςω τθσ οποίασ το κάκε ιςχφει y. : A με Η νζα αυτι ςυνάρτθςθ λζγεται αντίςτροφθ τθσ. y y A αντιςτοιχίηεται

Διαβάστε περισσότερα

Περιεχόμενα. χολι Χοροφ Αντιγόνθ Βοφτου - Πολιτικι Διαχείριςθσ Cookie 1

Περιεχόμενα. χολι Χοροφ Αντιγόνθ Βοφτου - Πολιτικι Διαχείριςθσ Cookie 1 Περιεχόμενα Περιεχόμενα... 1 1. Ειςαγωγή... 2 1.1 Σχετικά... 2 2. Γενικέσ Πληροφορίεσ για τα Cookies... 2 2.1 Οριςμόσ... 2 2.2 Χρήςη... 3 2.3 Τφποι... 3 2.4 Έλεγχοσ... 3 3. Cookies Σχολήσ... 4 3.1 Ειςαγωγή...

Διαβάστε περισσότερα

ΠΟΛΤΣΕΧΝΕΙΟ ΚΡΗΣΗ ΣΜΗΜΑ ΗΛΕΚΣΡΟΝΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΣΡΟΝΙΚΩΝ ΤΠΟΛΟΓΙΣΩΝ

ΠΟΛΤΣΕΧΝΕΙΟ ΚΡΗΣΗ ΣΜΗΜΑ ΗΛΕΚΣΡΟΝΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΣΡΟΝΙΚΩΝ ΤΠΟΛΟΓΙΣΩΝ ΠΟΛΤΣΕΧΝΕΙΟ ΚΡΗΣΗ ΣΜΗΜΑ ΗΛΕΚΣΡΟΝΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΣΡΟΝΙΚΩΝ ΤΠΟΛΟΓΙΣΩΝ ΣΟΜΕΑ ΗΛΕΚΣΡΟΝΙΚΗ ΚΑΙ ΑΡΧΙΣΕΚΣΟΝΙΚΗ ΤΠΟΛΟΓΙΣΩΝ Τλοποίηςη ςε αναδιαταςςόμενη λογική των πινάκων ουράνιου τόξου (rainbow

Διαβάστε περισσότερα

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 2 ο Εργαςτιριο Διαχείριςθ Διεργαςιϊν

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 2 ο Εργαςτιριο Διαχείριςθ Διεργαςιϊν ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ 2 ο Εργαςτιριο Διαχείριςθ Διεργαςιϊν Τπόβακρο (1/3) τουσ παλαιότερουσ υπολογιςτζσ θ Κεντρικι Μονάδα Επεξεργαςίασ (Κ.Μ.Ε.) μποροφςε κάκε ςτιγμι να εκτελεί μόνο ζνα πρόγραμμα τουσ ςφγχρονουσ

Διαβάστε περισσότερα

ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ. ΚΕΦΑΛΑΙΟ 3: Εργονομία

ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ. ΚΕΦΑΛΑΙΟ 3: Εργονομία ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ Εργονομία, ωςτι ςτάςθ εργαςίασ, Εικονοςτοιχείο (pixel), Ανάλυςθ οκόνθσ (resolution), Μζγεκοσ οκόνθσ Ποιεσ επιπτϊςεισ μπορεί να ζχει θ πολφωρθ χριςθ του υπολογιςτι ςτθν

Διαβάστε περισσότερα

Κρυπτογραφία. Κωνσταντίνου Ελισάβετ

Κρυπτογραφία. Κωνσταντίνου Ελισάβετ Κρυπτογραφία Κωνσταντίνου Ελισάβετ ekonstantinou@aegean.gr http://www.icsd.aegean.gr/ekonstantinou Συμμετρικά Κρυπτοσυστήματα κλειδί k Αρχικό κείμενο (m) Αλγόριθμος Κρυπτογράφησης Ε c = E k (m) Κρυπτογραφημένο

Διαβάστε περισσότερα

Δομζσ Δεδομζνων Πίνακεσ

Δομζσ Δεδομζνων Πίνακεσ Δομζσ Δεδομζνων Πίνακεσ Διάλεξθ 2 Περιεχόμενα Πίνακεσ: Οριςμοί, Γενικζσ ζννοιεσ Αποκικευςθ πινάκων Ειδικζσ μορφζσ πινάκων Αλγόρικμοι Αναηιτθςθσ Σειριακι Αναηιτθςθ Δυαδικι Αναηιτθςθ Οριςμοί, Γενικζσ ζννοιεσ

Διαβάστε περισσότερα

Η γλώςςα προγραμματιςμού C

Η γλώςςα προγραμματιςμού C Η γλώςςα προγραμματιςμού C Οι εντολζσ επανάλθψθσ (while, do-while, for) Γενικά για τισ εντολζσ επανάλθψθσ Συχνά ςτο προγραμματιςμό είναι επικυμθτι θ πολλαπλι εκτζλεςθ μιασ ενότθτασ εντολϊν, είτε για ζνα

Διαβάστε περισσότερα

Ειςαγωγι ςτο Δομθμζνο Προγραμματιςμό. Βαγγζλθσ Οικονόμου

Ειςαγωγι ςτο Δομθμζνο Προγραμματιςμό. Βαγγζλθσ Οικονόμου Ειςαγωγι ςτο Δομθμζνο Προγραμματιςμό Βαγγζλθσ Οικονόμου Περιεχόμενα Πλθροφορίεσ Μακιματοσ Δομθμζνοσ Προγραμματιςμόσ (Οριςμοί, Γενικζσ Ζννοιεσ) Αλγόρικμοι και Ψευδοκϊδικασ Γλϊςςα προγραμματιςμοφ C Πλθροφορίεσ

Διαβάστε περισσότερα

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 3 ο Εργαςτιριο υγχρονιςμόσ Διεργαςιϊν

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 3 ο Εργαςτιριο υγχρονιςμόσ Διεργαςιϊν ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ 3 ο Εργαςτιριο υγχρονιςμόσ Διεργαςιϊν Παράλλθλεσ Διεργαςίεσ (1/5) Δφο διεργαςίεσ λζγονται «παράλλθλεσ» (concurrent) όταν υπάρχει ταυτοχρονιςμόσ, δθλαδι οι εκτελζςεισ τουσ επικαλφπτονται

Διαβάστε περισσότερα

Εισαγωγικές έννοιες. Αντώνησ Κ Μαώργιώτησ

Εισαγωγικές έννοιες. Αντώνησ Κ Μαώργιώτησ Εισαγωγικές έννοιες Αντώνησ Κ Μαώργιώτησ Έννοιεσ που πρϋπει να επιβεβαιώςουμε ότι τισ ξϋρουμε (1) - αναζότηςη Ιςτοςελίδα Αρχείο που περιζχει πλθροφορίεσ προοριςμζνεσ για δθμοςίευςθ ςτο Παγκόςμιο Ιςτό (www).

Διαβάστε περισσότερα

17. Πολυδιάςτατοι πίνακεσ

17. Πολυδιάςτατοι πίνακεσ Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων 17. Πολυδιάςτατοι πίνακεσ Ιωάννθσ Κατάκθσ Πολυδιάςτατοι πίνακεσ o Μζχρι τϊρα μιλοφςαμε για μονοδιάςτατουσ πίνακεσ ι int age[5]= 31,28,31,30,31; o Για παράλλθλουσ

Διαβάστε περισσότερα

Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία

Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία Συμμετρικά κρυπτοσυστήματα Άρης Παγουρτζής Στάθης Ζάχος Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Σχολή ΗΜΜΥ ΕΜΠ 1

Διαβάστε περισσότερα

Ηλεκτρονικι Επιχειρθςιακι Δράςθ Εργαςτιριο 1

Ηλεκτρονικι Επιχειρθςιακι Δράςθ Εργαςτιριο 1 1. Εγκατάςταςη Xampp Προκειμζνου να γίνει θ εγκατάςταςθ κα πρζπει πρϊτα να κατεβάςετε και εγκαταςτιςετε το XAMPP ωσ ακολοφκωσ. 1.1. Πάμε ςτθν ακόλουκθ διεφκυνςθ https://www.apachefriends.org/download.html

Διαβάστε περισσότερα

Τεχνικζσ Ανάλυςησ Διοικητικών Αποφάςεων

Τεχνικζσ Ανάλυςησ Διοικητικών Αποφάςεων Τεχνικζσ Ανάλυςησ Διοικητικών Αποφάςεων Ενότητα 3: υςτιματα ουρϊν αναμονισ Κακθγθτισ Γιάννθσ Γιαννίκοσ χολι Οργάνωςθσ και Διοίκθςθσ Επιχειριςεων Σμιμα Διοίκθςθσ Επιχειριςεων Σκοποί ενότητασ Μελζτθ ςυςτθμάτων

Διαβάστε περισσότερα

Συμμετρικά κρυπτοσυστήματα

Συμμετρικά κρυπτοσυστήματα Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία Συμμετρικά κρυπτοσυστήματα Άρης Παγουρτζής Στάθης Ζάχος Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών Δίκτυα Feistel Σημαντικές

Διαβάστε περισσότερα

Ανάπτυξη Εφαρμογών με Σχεςιακέσ Βάςεισ Δεδομένων

Ανάπτυξη Εφαρμογών με Σχεςιακέσ Βάςεισ Δεδομένων Ανάπτυξη Εφαρμογών με Σχεςιακέσ Βάςεισ Δεδομένων Δρ. Θεοδώρου Παύλοσ theodorou@uoc.gr Περιεχόμενα Τι είναι οι Βάςεισ Δεδομζνων (DataBases) Τι είναι Σφςτθμα Διαχείριςθσ Βάςεων Δεδομζνων (DBMS) Οι Στόχοι

Διαβάστε περισσότερα

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 15. Πίνακεσ ΙI. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 15. Πίνακεσ ΙI. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων 15. Πίνακεσ ΙI Ιωάννθσ Κατάκθσ Σιμερα o Ειςαγωγι o Διλωςθ o Αρχικοποίθςθ o Πρόςβαςθ o Παραδείγματα Πίνακεσ - Επανάλθψθ o Στθν προθγοφμενθ διάλεξθ κάναμε μια

Διαβάστε περισσότερα

Διδάςκων: Κωνςταντίνοσ τεφανίδθσ

Διδάςκων: Κωνςταντίνοσ τεφανίδθσ ΠΑΝΕΠΙΣΗΜΙΟ ΚΡΗΣΗ ΧΟΛΗ ΘΕΣΙΚΩΝ ΕΠΙΣΗΜΩΝ ΣΜΗΜΑ ΕΠΙΣΗΜΗ ΤΠΟΛΟΓΙΣΩΝ ΜΑΘΗΜΑ ΕΠΙΛΟΓΗ ΗΤ-564 ΠΡΟΧΩΡΗΜΕΝΑ ΘΕΜΑΣΑ ΕΠΙΚΟΙΝΩΝΙΑ ΑΝΘΡΩΠΟΤ - ΜΗΧΑΝΗ Διδάςκων: Κωνςταντίνοσ τεφανίδθσ τόχοσ τθσ ςυγκεκριμζνθσ εργαςίασ

Διαβάστε περισσότερα

Internet a jeho role v našem životě Το Διαδίκτυο και ο ρόλοσ του ςτθ ηωι μασ

Internet a jeho role v našem životě Το Διαδίκτυο και ο ρόλοσ του ςτθ ηωι μασ Internet a jeho role v našem životě Το Διαδίκτυο και ο ρόλοσ του ςτθ ηωι μασ Διαδίκτυο: μια πόρτα ςτον κόςμο Πϊσ μπορεί κανείσ ςε λίγα λεπτά να μάκει ποιεσ ταινίεσ παίηονται ςτουσ κινθματογράφουσ, να ςτείλει

Διαβάστε περισσότερα

1. Κατέβαςμα του VirtueMart

1. Κατέβαςμα του VirtueMart 1. Κατέβαςμα του VirtueMart Αρχικό βήμα (προαιρετικό). Κατζβαςμα και αποςυμπίεςη αρχείων VirtueMart ΠΡΟΟΧΗ. Αυτό το βήμα να παρακαμφθεί ςτο εργαςτήριο. Τα αρχεία θα ςασ δοθοφν από τουσ καθηγητζσ ςασ. Οι

Διαβάστε περισσότερα

Διαδικαςία Προγράμματοσ Ωρομζτρθςθσ. (v.1.0.7)

Διαδικαςία Προγράμματοσ Ωρομζτρθςθσ. (v.1.0.7) (v.1.0.7) 1 Περίλθψθ Σο ςυγκεκριμζνο εγχειρίδιο δθμιουργικθκε για να βοθκιςει τθν κατανόθςθ τθσ Διαδικαςίασ Προγράμματοσ Ωρομζτρθςθσ. Παρακάτω προτείνεται μια αλλθλουχία ενεργειϊν τθν οποία ο χριςτθσ πρζπει

Διαβάστε περισσότερα

ΑΤΣΟΝΟΜΟΙ ΠΡΑΚΣΟΡΕ ΕΡΓΑΙΑ ΕΞΑΜΗΝΟΤ HEARTSTONE ΑΛΕΞΑΝΔΡΟ ΛΟΤΚΟΠΟΤΛΟ ΑΜ:

ΑΤΣΟΝΟΜΟΙ ΠΡΑΚΣΟΡΕ ΕΡΓΑΙΑ ΕΞΑΜΗΝΟΤ HEARTSTONE ΑΛΕΞΑΝΔΡΟ ΛΟΤΚΟΠΟΤΛΟ ΑΜ: ΑΤΣΟΝΟΜΟΙ ΠΡΑΚΣΟΡΕ ΕΡΓΑΙΑ ΕΞΑΜΗΝΟΤ HEARTSTONE ΑΛΕΞΑΝΔΡΟ ΛΟΤΚΟΠΟΤΛΟ ΑΜ: 2008030075 ΕΙΑΓΩΓΗ Το Heartstone είναι ζνα ψθφιακό παιχνίδι καρτϊν που διεξάγιεται πάνω ςτο Battle.net, ζναν διακομιςτι τθσ εταιρίασ

Διαβάστε περισσότερα

ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 6 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Β

ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 6 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Β ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ 6 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Β Δυναμικι Κατάτμθςθ (1/8) Η δυναμικι κατάτμθςθ αναπτφχκθκε με ςτόχο να ξεπεραςτοφν οριςμζνεσ από τισ βαςικζσ δυςκολίεσ τθσ κατάτμθςθσ ςτακεροφ

Διαβάστε περισσότερα

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο τησ Αριθμογραμμήσ

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο τησ Αριθμογραμμήσ Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο τησ Αριθμογραμμήσ Αυτζσ οι οδθγίεσ ζχουν ςτόχο να βοθκιςουν τουσ εκπαιδευτικοφσ να καταςκευάςουν τισ δικζσ τουσ δραςτθριότθτεσ με το μοντζλο τθσ Αρικμογραμμισ.

Διαβάστε περισσότερα

Ανάπτυξη Εφαρμογών Σε Προγραμματιςτικό Περιβάλλον

Ανάπτυξη Εφαρμογών Σε Προγραμματιςτικό Περιβάλλον Γραπτι Εξζταςθ ςτο μάκθμα Ανάπτυξη Εφαρμογών Σε Προγραμματιςτικό Περιβάλλον Όνομα: Επϊνυμο: Τμιμα: Ημερομθνία: 20/02/11 Θζμα 1 ο Α. Να χαρακτθρίςετε κακεμιά από τισ παρακάτω προτάςεισ ωσ Σωςτι (Σ) ι Λάκοσ

Διαβάστε περισσότερα

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Περιφέρειες)

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Περιφέρειες) Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Περιφέρειες) Ιούνιοσ 2013 Περιεχόμενα: Ειςαγωγή... 3 1. Περιφζρεια... 3 1.1 Διαχειριςτήσ Αιτήςεων Περιφζρειασ... 3 1.1.1. Είςοδοσ... 3 1.1.2. Αρχική

Διαβάστε περισσότερα

1. Εγκατάςταςη κειμενογράφου JCE

1. Εγκατάςταςη κειμενογράφου JCE 1. Εγκατάςταςη κειμενογράφου JCE 1.1. Πθγαίνουμε ςτθν ακόλουκθ διεφκυνςθ https://www.joomlacontenteditor.net/downloads/editor/joomla-3 και κατεβάηουμε τον JCE Editor 2.5.8. Εναλλακτικά βρίςκουμε το αρχείο

Διαβάστε περισσότερα

Πωσ δθμιουργώ φακζλουσ;

Πωσ δθμιουργώ φακζλουσ; Πωσ δθμιουργώ φακζλουσ; Για να μπορζςετε να δθμιουργιςετε φακζλουσ ςτο χαρτοφυλάκιό ςασ ςτο Mahara κα πρζπει να μπείτε ςτο ςφςτθμα αφοφ πατιςετε πάνω ςτο ςφνδεςμο Mahara profiles από οποιοδιποτε ςελίδα

Διαβάστε περισσότερα

ΟΔΗΓΙΕ ΓΙΑ ΣΗΝ ΕΙΑΓΩΓΗ ΕΚΔΡΟΜΩΝ & ΝΕΩΝ - ΑΝΑΚΟΙΝΩΕΩΝ ΣΗΝ ΙΣΟΕΛΙΔΑ ΣΗ Δ.Δ.Ε. ΘΕΠΡΩΣΙΑ

ΟΔΗΓΙΕ ΓΙΑ ΣΗΝ ΕΙΑΓΩΓΗ ΕΚΔΡΟΜΩΝ & ΝΕΩΝ - ΑΝΑΚΟΙΝΩΕΩΝ ΣΗΝ ΙΣΟΕΛΙΔΑ ΣΗ Δ.Δ.Ε. ΘΕΠΡΩΣΙΑ ΟΔΗΓΙΕ ΓΙΑ ΣΗΝ ΕΙΑΓΩΓΗ ΕΚΔΡΟΜΩΝ & ΝΕΩΝ - ΑΝΑΚΟΙΝΩΕΩΝ ΣΗΝ ΙΣΟΕΛΙΔΑ ΣΗ Δ.Δ.Ε. ΘΕΠΡΩΣΙΑ ΕΙΑΓΩΓΗ Ο νζοσ δικτυακόσ τόποσ τθσ Δ.Δ.Ε. Θεςπρωτίασ παρζχει πλζον τθ δυνατότθτα τθσ καταχϊρθςθσ νζων, ειδιςεων και

Διαβάστε περισσότερα

Μάρκετινγκ V Κοινωνικό Μάρκετινγκ. Πόπη Σουρμαΐδου. Σεμινάριο: Αναπτφςςοντασ μια κοινωνική επιχείρηςη

Μάρκετινγκ V Κοινωνικό Μάρκετινγκ. Πόπη Σουρμαΐδου. Σεμινάριο: Αναπτφςςοντασ μια κοινωνική επιχείρηςη Μάρκετινγκ V Κοινωνικό Μάρκετινγκ Πόπη Σουρμαΐδου Σεμινάριο: Αναπτφςςοντασ μια κοινωνική επιχείρηςη Σφνοψη Τι είναι το Marketing (βαςικι ειςαγωγι, swot ανάλυςθ, τα παλιά 4P) Τι είναι το Marketing Plan

Διαβάστε περισσότερα

Η θεωρία τησ ςτατιςτικήσ ςε ερωτήςεισ-απαντήςεισ Μέροσ 1 ον (έωσ ομαδοποίηςη δεδομένων)

Η θεωρία τησ ςτατιςτικήσ ςε ερωτήςεισ-απαντήςεισ Μέροσ 1 ον (έωσ ομαδοποίηςη δεδομένων) 1)Πώσ ορύζεται η Στατιςτικό επιςτόμη; Στατιςτικι είναι ζνα ςφνολο αρχϊν και μεκοδολογιϊν για: το ςχεδιαςμό τθσ διαδικαςίασ ςυλλογισ δεδομζνων τθ ςυνοπτικι και αποτελεςματικι παρουςίαςι τουσ τθν ανάλυςθ

Διαβάστε περισσότερα

Ενδεικτική Οργάνωςη Ενοτήτων. Α Σάξη. Διδ. 1 ΕΝΟΣΗΣΑ 1. 6 Ομαδοποίθςθ, Μοτίβα,

Ενδεικτική Οργάνωςη Ενοτήτων. Α Σάξη. Διδ. 1 ΕΝΟΣΗΣΑ 1. 6 Ομαδοποίθςθ, Μοτίβα, Ενδεικτική Οργάνωςη Ενοτήτων Α Σάξη Α/ Μαθηματικό περιεχόμενο Δείκτεσ Επιτυχίασ Ώρεσ Α Διδ. 1 ΕΝΟΣΗΣΑ 1 Αλ1.1 υγκρίνουν και ταξινομοφν αντικείμενα ςφμφωνα με κάποιο χαρακτθριςτικό/κριτιριο/ιδιότθτά Ομαδοποίθςθ,

Διαβάστε περισσότερα

Ειδικά Θζματα Βάςεων Δεδομζνων

Ειδικά Θζματα Βάςεων Δεδομζνων Ειδικά Θζματα Βάςεων Δεδομζνων Ενότητα 11: Αντικειμενοςτραφήσ και αντικείμενοςχεςιακζσ βάςεισ Δρ. Τςιμπίρθσ Αλκιβιάδθσ Τμιμα Μθχανικϊν Πλθροφορικισ ΤΕ Άδειεσ Χρήςησ Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

Περιοριςμοί μιασ Β.Δ. ςτθν Access(1/3)

Περιοριςμοί μιασ Β.Δ. ςτθν Access(1/3) Περιοριςμοί μιασ Β.Δ. ςτθν Access(1/3) Το όνομα ενόσ πίνακα, όπωσ και κάκε άλλου αντικειμζνου, μπορεί να ζχει μζγεκοσ ζωσ 64 χαρακτιρεσ. Το όνομα ενόσ πεδίου μπορεί να ζχει μζγεκοσ ζωσ 64 χαρακτιρεσ. Κάκε

Διαβάστε περισσότερα

Megatron ERP Βάςη δεδομζνων Π/Φ - κατηγοριοποίηςη Databox

Megatron ERP Βάςη δεδομζνων Π/Φ - κατηγοριοποίηςη Databox Megatron ERP Βάςη δεδομζνων Π/Φ - κατηγοριοποίηςη Databox 03 05 ΙΛΤΔΑ ΠΛΗΡΟΦΟΡΙΚΗ Α.Ε. αρμά Ιηαμπζλλα Βαρλάμθσ Νίκοσ Ειςαγωγι... 1 Σι είναι το Databox...... 1 Πότε ανανεϊνεται...... 1 Μπορεί να εφαρμοςτεί

Διαβάστε περισσότερα

Ζρευνα ικανοποίθςθσ τουριςτϊν

Ζρευνα ικανοποίθςθσ τουριςτϊν Ζρευνα ικανοποίθςθσ τουριςτϊν Ammon Ovis_Ζρευνα ικανοποίθςθσ τουριςτϊν_ Ραδιοςτακμόσ Flash 96 1 ΣΤΟΙΧΕΙΑ ΔΕΙΓΜΑΤΟΣ Σο δείγμα περιλαμβάνει 332 τουρίςτεσ από 5 διαφορετικζσ θπείρουσ. Οι περιςςότεροι εξ αυτϊν

Διαβάστε περισσότερα

ΡΟΓΑΜΜΑΤΙΣΤΙΚΟ ΡΕΙΒΑΛΛΟΝ MICRO WORLDS PRO

ΡΟΓΑΜΜΑΤΙΣΤΙΚΟ ΡΕΙΒΑΛΛΟΝ MICRO WORLDS PRO ΡΟΓΑΜΜΑΤΙΣΤΙΚΟ ΡΕΙΒΑΛΛΟΝ MICRO WORLDS PRO Το Micro Worlds Pro είναι ζνα ολοκλθρωμζνο περιβάλλον προγραμματιςμοφ. Χρθςιμοποιεί τθ γλϊςςα προγραμματιςμοφ Logo (εξελλθνιςμζνθ) Το Micro Worlds Pro περιλαμβάνει

Διαβάστε περισσότερα

Εργαςτιριο Βάςεων Δεδομζνων

Εργαςτιριο Βάςεων Δεδομζνων Εργαςτιριο Βάςεων Δεδομζνων 2010-2011 Μάθημα 1 ο 1 Ε. Σςαμούρα Σμήμα Πληροφορικήσ ΑΠΘ Σκοπόσ του 1 ου εργαςτθριακοφ μακιματοσ Σκοπόσ του πρϊτου εργαςτθριακοφ μακιματοσ είναι να μελετιςουμε ερωτιματα επιλογισ

Διαβάστε περισσότερα

Μάκθςθ Κατανομϊν Πικανότθτασ και Ομαδοποίθςθ

Μάκθςθ Κατανομϊν Πικανότθτασ και Ομαδοποίθςθ Μάκθςθ Κατανομϊν Πικανότθτασ και Ομαδοποίθςθ Κϊςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ 1 Μάκθςθ κατανομισ πικανότθτασ Σε όλθ τθν ανάλυςθ μζχρι τϊρα ζγινε ςιωπθρά θ παραδοχι ότι γνωρίηουμε

Διαβάστε περισσότερα

ΠΟΛΤΣΕΥΝΕΙΟ ΚΡΗΣΗ Σμήμα Ηλεκτπονικών Μησανικών & Μησανικών Τπολογιστών

ΠΟΛΤΣΕΥΝΕΙΟ ΚΡΗΣΗ Σμήμα Ηλεκτπονικών Μησανικών & Μησανικών Τπολογιστών ΠΟΛΤΣΕΥΝΕΙΟ ΚΡΗΣΗ Σμήμα Ηλεκτπονικών Μησανικών & Μησανικών Τπολογιστών ΔIΠΛΩΜΑΣΙΚΗ ΕΡΓΑΙΑ Κπςπτογπαυική ανάλςση των αλγοπίθμων LM hash, MD5 και SHA-1 με σπήση πινάκων οςπάνιος τόξος σε απσιτεκτονική CUDA

Διαβάστε περισσότερα

Βάςεισ Δεδομζνων Ι. Ενότητα 12: Κανονικοποίηςη. Δρ. Τςιμπίρθσ Αλκιβιάδθσ Τμιμα Μθχανικών Πλθροφορικισ ΤΕ

Βάςεισ Δεδομζνων Ι. Ενότητα 12: Κανονικοποίηςη. Δρ. Τςιμπίρθσ Αλκιβιάδθσ Τμιμα Μθχανικών Πλθροφορικισ ΤΕ Βάςεισ Δεδομζνων Ι Ενότητα 12: Κανονικοποίηςη Δρ. Τςιμπίρθσ Αλκιβιάδθσ Τμιμα Μθχανικών Πλθροφορικισ ΤΕ Άδειεσ Χρήςησ Το παρόν εκπαιδευτικό υλικό υπόκειται ςε άδειεσ χριςθσ Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

ΜΑΘΗΜΑΤΙΚΑ Α Γυμνασίου

ΜΑΘΗΜΑΤΙΚΑ Α Γυμνασίου ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΜΑΘΗΜΑΤΙΚΑ Α Γυμνασίου Ενότητα 1β: Ισότητα - Εξίσωση ΠΑΙΔΑΓΩΓΙΚΟ ΙΝΣΤΙΤΟΥΤΟ ΥΠΗΡΕΣΙΑ ΑΝΑΠΤΥΞΗΣ ΠΡΟΓΡΑΜΜΑΤΩΝ ΜΑΘΗΜΑΤΙΚΑ Α Γυμνασίου Ενότητα 1β: Ισότητα - Εξίσωση Συγγραφή:

Διαβάστε περισσότερα

ΕΡΓΑΣΗΡΙΟ ΕΦΑΡΜΟΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ

ΕΡΓΑΣΗΡΙΟ ΕΦΑΡΜΟΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ Στο εργαςτιριο αυτό κα δοφμε πωσ μποροφμε να προςομοιϊςουμε μια κίνθςθ χωρίσ τθ χριςθ εξειδικευμζνων εργαλείων, παρά μόνο μζςω ενόσ προγράμματοσ λογιςτικϊν φφλλων, όπωσ είναι το Calc και το Excel. Τα δφο

Διαβάστε περισσότερα

Δομζσ Δεδομζνων. Αναηιτθςθ και Ταξινόμθςθ Διάλεξθ 3

Δομζσ Δεδομζνων. Αναηιτθςθ και Ταξινόμθςθ Διάλεξθ 3 Δομζσ Δεδομζνων Αναηιτθςθ και Ταξινόμθςθ Διάλεξθ 3 Περιεχόμενα Αλγόρικμοι αναηιτθςθσ Σειριακι αναηιτθςθ Αναηιτθςθ κατά ομάδεσ Δυαδικι Αναηιτθςθ Ταξινόμθςθ Ταξινόμθςθ με παρεμβολι (insertion sort) Ταξινόμθςθ

Διαβάστε περισσότερα

ΗΥ101: Ειςαγωγι ςτθν Πλθροφορικι

ΗΥ101: Ειςαγωγι ςτθν Πλθροφορικι Παράςταςη κινητήσ υποδιαςτολήσ Δρ. Χρήστος Ηλιούδης Θζματα διάλεξησ Παράςταςη ςταθεροφ ςημείου Παράςταςη αριθμών κινητοφ ςημείου 2 Παράςταςη ςταθεροφ ςημείου Στθν παράςταςθ αρικμϊν ςτακεροφ ςθμείου (Fixed

Διαβάστε περισσότερα

ΕΡΓΑΣΗΡΙΑΚΗ ΑΚΗΗ 4.1

ΕΡΓΑΣΗΡΙΑΚΗ ΑΚΗΗ 4.1 ΕΡΓΑΣΗΡΙΑΚΗ ΑΚΗΗ 4. Να γίνει πρόγραμμα το οποίο να επιλφει το Διαγώνιο Σφςτθμα: A ι το ςφςτθμα : ι ςε μορφι εξιςώςεων το ςφςτθμα : Αλγόρικμοσ m(). Διαβάηουμε τθν τιμι του ( θ διάςταςθ του Πίνακα Α )..

Διαβάστε περισσότερα

ΦΤΛΛΟ ΕΡΓΑΙΑ ΤΠΗΡΕΙΑ ΗΛΕΚΣΡΟΝΙΚΟΤ ΣΑΥΤΔΡΟΜΕΙΟΤ

ΦΤΛΛΟ ΕΡΓΑΙΑ ΤΠΗΡΕΙΑ ΗΛΕΚΣΡΟΝΙΚΟΤ ΣΑΥΤΔΡΟΜΕΙΟΤ ΦΤΛΛΟ ΕΡΓΑΙΑ ΤΠΗΡΕΙΑ ΗΛΕΚΣΡΟΝΙΚΟΤ ΣΑΥΤΔΡΟΜΕΙΟΤ E-MAIL Ε ΣΟΠΙΚΟ ΔΙΚΣΤΟ LAN ( ΠΡΟΟΜΕΙΩΗ ΜΕ ΣΟ ΛΟΓΙΜΙΚΟ FILIUS ) ΔΗΜΙΟΤΡΓΟ: ΑΡΑΜΠΑΣΖΗ ΠΑΝΑΓΙΩΣΗ ΒΗΜΑ 1. Ανοίξτε τθ εφαρμογι προςομοίωςθσ δικτφων Filius ςτον

Διαβάστε περισσότερα

Η Τζχνθ τθσ Αποτελεςματικισ Επικοινωνίασ. Εκπαιδεύηρια: Κα. Χριζηοθή Βαζιλική Conicon Ltd

Η Τζχνθ τθσ Αποτελεςματικισ Επικοινωνίασ. Εκπαιδεύηρια: Κα. Χριζηοθή Βαζιλική Conicon Ltd Η Τζχνθ τθσ Αποτελεςματικισ Επικοινωνίασ Εκπαιδεύηρια: Κα. Χριζηοθή Βαζιλική Conicon Ltd 25 Φεβρουαρίου 2015 Εκπαιδεφτρια: Βαςιλικι Χριςτοφι Η κ. Χριςτοφι Βαςιλικι ζχει ςπουδάςει Εφαρμοςμζνθ Επικοινωνία

Διαβάστε περισσότερα

w e b t r a i l s. g r Η ΛΕΙΣΟΤΡΓΙΚΟΣΗΣΑ ΣΟΤ ΙΣΟΣΟΠΟΤ J24CLASS.GR

w e b t r a i l s. g r Η ΛΕΙΣΟΤΡΓΙΚΟΣΗΣΑ ΣΟΤ ΙΣΟΣΟΠΟΤ J24CLASS.GR w e b t r a i l s. g r Η ΛΕΙΣΟΤΡΓΙΚΟΣΗΣΑ ΣΟΤ ΙΣΟΣΟΠΟΤ J24CLASS.GR Νίκοσ Καμπιτάκθσ 26 Μαρτίου 2011 Γενικζσ πλθροφορίεσ Δθμιουργία το Νοζμβριο του 2009 Γραφιςτικόσ ςχεδιαςμόσ «κοντά» ςτο παλιό Εξελιγμζνεσ

Διαβάστε περισσότερα

8 τριγωνομετρία. βαςικζσ ζννοιεσ. γ ςφω. εφω και γ. κεφάλαιο

8 τριγωνομετρία. βαςικζσ ζννοιεσ. γ ςφω. εφω και γ. κεφάλαιο κεφάλαιο 8 τριγωνομετρία Α βαςικζσ ζννοιεσ τθν τριγωνομετρία χρθςιμοποιοφμε τουσ τριγωνομετρικοφσ αρικμοφσ, οι οποίοι ορίηονται ωσ εξισ: θμω = απζναντι κάκετθ πλευρά υποτείνουςα Γ ςυνω = εφω = προςκείμενθ

Διαβάστε περισσότερα

Σφντομεσ Οδθγίεσ Χριςθσ

Σφντομεσ Οδθγίεσ Χριςθσ Σφντομεσ Οδθγίεσ Χριςθσ Περιεχόμενα 1. Επαφζσ... 3 2. Ημερολόγιο Επιςκζψεων... 4 3. Εκκρεμότθτεσ... 5 4. Οικονομικά... 6 5. Το 4doctors ςτο κινθτό ςου... 8 6. Υποςτιριξθ... 8 2 1. Επαφζσ Στισ «Επαφζσ»

Διαβάστε περισσότερα

Αςκιςεισ ςε (i) Δομζσ Ευρετθρίων και Οργάνωςθ Αρχείων (ii) Κανονικοποίθςθ

Αςκιςεισ ςε (i) Δομζσ Ευρετθρίων και Οργάνωςθ Αρχείων (ii) Κανονικοποίθςθ Αςκιςεισ ςε (i) Δομζσ Ευρετθρίων και Οργάνωςθ Αρχείων (ii) Κανονικοποίθςθ Δεκζμβριοσ 2016 Άςκθςθ 1 Θεωρείςτε ότι κζλουμε να διαγράψουμε τθν τιμι 43 ςτο Β+ δζντρο τθσ Εικόνασ 1. Η διαγραφι αυτι προκαλεί

Διαβάστε περισσότερα

HY437 Αλγόριθμοι CAD

HY437 Αλγόριθμοι CAD HY437 Αλγόριθμοι CAD Διδάςκων: Χ. Σωτηρίου http://inf-server.inf.uth.gr/courses/ce437/ 1 ΗΥ437 - Πολυεπίπεδθ Λογικι Απλοποίθςθ με Περιεχόμενα Είδθ Αδιάφορων Τιμϊν ςε Πολφ-επίπεδα Δυαδικά Δίκτυα Αδιάφορεσ

Διαβάστε περισσότερα

Αςφάλεια και Προςταςία Δεδομζνων

Αςφάλεια και Προςταςία Δεδομζνων Αςφάλεια και Προςταςία Δεδομζνων Μοντζλα Αςφάλειασ Σςιρόπουλοσ Γεϊργιοσ ΣΙΡΟΠΟΤΛΟ ΓΕΩΡΓΙΟ 1 Μοντζλα Αςφάλειασ Οι μθχανιςμοί που είναι απαραίτθτοι για τθν επιβολι μιασ πολιτικισ αςφάλειασ ςυμμορφϊνονται

Διαβάστε περισσότερα

Ειςαγωγι ςτθν Επιςτιμθ Υπολογιςτϊν. Ειςαγωγι ςτθν Python

Ειςαγωγι ςτθν Επιςτιμθ Υπολογιςτϊν. Ειςαγωγι ςτθν Python Ειςαγωγι ςτθν Επιςτιμθ Υπολογιςτϊν Ειςαγωγι ςτθν Python Γ Μζροσ Modules, Αντικειμενοςτραφισ Προγραμματιςμόσ ςτθν Python, Classes, Objects, Αλλθλεπίδραςθ με αρχεία Ειςαγωγι αρκρωμάτων (modules): import

Διαβάστε περισσότερα

Μονάδες 6. Μονάδες ΓΑΨΕ Δεν υπάρχει ρίηα 2. ΑΝ Α>0 ΤΟΤΕ 3. ΤΕΛΟΣ_ΑΝ 4. ΑΛΛΙΩΣ 5. ίηα Τ_(Α)

Μονάδες 6. Μονάδες ΓΑΨΕ Δεν υπάρχει ρίηα 2. ΑΝ Α>0 ΤΟΤΕ 3. ΤΕΛΟΣ_ΑΝ 4. ΑΛΛΙΩΣ 5. ίηα Τ_(Α) 50 Χρόνια ΦΡΟΝΣΙΣΗΡΙΑ ΜΕΗ ΕΚΠΑΙΔΕΤΗ ΑΒΒΑΪΔΗ-ΜΑΝΩΛΑΡΑΚΗ ΠΑΓΚΡΑΣΙ : Φιλολάου & Εκφαντίδου 26 : Σηλ.: 2107601470 ΔΙΑΓΩΝΙΣΜΑ : ΑΝΑΡΤΥΞΗ ΕΦΑΜΟΓΩΝ ΣΕ ΡΟΓΑΜΜΑΤΙΣΤΙΚΟ ΡΕΙΒΑΛΛΟΝ Γϋ ΛΥΚΕΙΟΥ 2011 ΘΕΜΑ Α I. Η ςειριακι

Διαβάστε περισσότερα

3 θ διάλεξθ Επανάλθψθ, Επιςκόπθςθ των βαςικϊν γνϊςεων τθσ Ψθφιακισ Σχεδίαςθσ

3 θ διάλεξθ Επανάλθψθ, Επιςκόπθςθ των βαςικϊν γνϊςεων τθσ Ψθφιακισ Σχεδίαςθσ 3 θ διάλεξθ Επανάλθψθ, Επιςκόπθςθ των βαςικϊν γνϊςεων τθσ Ψθφιακισ Σχεδίαςθσ 1 2 3 4 5 6 7 Παραπάνω φαίνεται θ χαρακτθριςτικι καμπφλθ μετάβαςθσ δυναμικοφ (voltage transfer characteristic) για ζναν αντιςτροφζα,

Διαβάστε περισσότερα

Προχωρθμζνα Θζματα Συςτθμάτων Ελζγχου

Προχωρθμζνα Θζματα Συςτθμάτων Ελζγχου ΠΑΝΕΠΙΣΗΜΙΟ ΑΙΓΑIΟΤ & ΑΕΙ ΠΕΙΡΑΙΑ Σ.Σ. Σμήματα Ναυτιλίας και Επιχειρηματικών Τπηρεσιών & Μηχ. Αυτοματισμού ΣΕ Π.Μ.. «Νέες Σεχνολογίες στη Ναυτιλία και τις Μεταφορές» Προχωρθμζνα Θζματα Συςτθμάτων Ελζγχου

Διαβάστε περισσότερα

TIM Εικονικό Περιβάλλον Συνεργασίας Οδθγίεσ Χριςθσ

TIM Εικονικό Περιβάλλον Συνεργασίας Οδθγίεσ Χριςθσ www.timproject.eu www.tim.project-platform.eu TIM Εικονικό Περιβάλλον Συνεργασίας Οδθγίεσ Χριςθσ This project has been founded with support form the European Commission. This presentation reflects the

Διαβάστε περισσότερα