Συμμετρική Κρυπτογραφία

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

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

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

Αλγόριθµοι συµµετρικού κλειδιού

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

Κρυπτογραφία. Κρυπτοσυστήματα τμήματος (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας

Κρυπτογραφία. Κρυπτοσυστήματα πακέτου (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας

Κρυπτογραφία. Κρυπτοσυστήματα τμήματος (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας

Εφαρμοσμένη Κρυπτογραφία Ι

Κρυπτογραφία. Κρυπτοσυστήματα τμήματος (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας

Κρυπτογραφία. Κρυπτοσυστήματα τμήματος (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας

Δ Εξάμηνο. Κρυπτογραφία: Συμμετρική Κρυπτογράφηση

Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Τμήμα Τηλεπληροφορικής & Διοίκησης

Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ Κρυπτογραφία και Εφαρμογές Διαλέξεις Ακ. Έτους

Ασφάλεια Υπολογιστικών Συστηµάτων

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

Κρυπ Κρ το υπ γραφία Κρυπ Κρ το υπ λογίας

ΕΠΛ 674: Εργαστήριο 1 Ασφάλεια Επικοινωνιακών Συστημάτων - Κρυπτογραφία

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

Κεφάλαιο 2. Κρυπτογραφικά εργαλεία

Κεφάλαιο 1. Βασικές έννοιες στην κρυπτογραφία

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών Ασφάλεια Δεδομένων.

UP class. & DES και AES

Χρήστος Ξενάκης Τμήμα Ψηφιακών Συστημάτων

Κρυπτογραφία. Εργαστηριακό μάθημα 5 Stream ciphers Κρυπτανάλυση με τον αλγόριθμο Berlekamp-Massey

Ασφάλεια Υπολογιστικών Συστημάτων

Οι απειλές. Απόρρητο επικοινωνίας. Αρχές ασφάλειας δεδομένων. Απόρρητο (privacy) Μέσω κρυπτογράφησης

Κρυπτογραφία. Κεφάλαιο 1 Γενική επισκόπηση

8.3.4 Τεχνικές Ασφάλειας Συμμετρική Κρυπτογράφηση Ασυμμετρική Κρυπτογράφηση Ψηφιακές Υπογραφές

Τμήμα Μηχανικών Πληροφορικής ΤΕΙ Κρήτης

ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ Lab 3

Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων. Συναρτήσεις Κατακερματισμού

Εφαρμοσμένη Κρυπτογραφία Ι

Πληροφορική Ι. Μάθημα 10 ο Ασφάλεια. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Δρ. Γκόγκος Χρήστος

Εισαγωγή στην Κρυπτογραφία και τις Ψηφιακές Υπογραφές

Ηλεκτρονικό εμπόριο. HE 7 Τεχνολογίες ασφάλειας

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

Κρυπτογραφία. Κεφάλαιο 3 Αλγόριθμοι τμήματος Block ciphers

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

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

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

Εισαγωγή στην επιστήμη της Πληροφορικής και των. Aσφάλεια

Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών. Aσφάλεια

Ασφάλεια Ασύρματων & Κινητών Επικοινωνιών

Κρυπτογραφία. Κεφάλαιο 4 Αλγόριθμοι Δημοσίου Κλειδιού (ή ασύμμετροι αλγόριθμοι)

Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών. Aσφάλεια

Στοιχεία Κρυπτογραφίας

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Συμμετρική Κρυπτογραφία. Χρήστος Ξενάκης

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο

YΒΡΙΔΙΚΗ ΚΡΥΠΤΟΓΡΑΦΙΑ

Ασφάλεια Πληροφοριακών Συστημάτων

Κρυπτογραφία. Εργαστηριακό μάθημα 1

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική Ι. Ενότητα 10 : Ασφάλεια. Δρ. Γκόγκος Χρήστος

Μελέτη Πρωτοκόλλων Κρυπτογραφίας

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο

ΒΑΣΙΚΑ ΘΕΜΑΤΑ ΚΡΥΠΤΟΓΡΑΦΙΑΣ

1. Τι είναι ακεραιότητα δεδομένων, με ποιους μηχανισμούς επιτυγχάνετε κ πότε θα χρησιμοποιούσατε τον καθένα εξ αυτών;

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Εισαγωγή. Χρήστος Ξενάκης

Κρυπτογραφία. Ψευδοτυχαιότητα - Κρυπτοσυστήματα ροής. Άρης Παγουρτζής - Πέτρος Ποτίκας

κρυπτογραϕία Ψηφιακή ασφάλεια και ιδιωτικότητα Γεώργιος Σπαθούλας Msc Πληροφορική και υπολογιστική βιοιατρική Πανεπιστήμιο Θεσσαλίας

Κρυπτογραφία. Διάλεξη 7 Κρυπταλγόριθμοι τμήματος: Αλγόριθμος AES Τρόποι λειτουργίας

Κρυπτογραφία. Ψευδοτυχαιότητα - Κρυπτοσυστήματα ροής. Άρης Παγουρτζής - Πέτρος Ποτίκας

Cryptography and Network Security Chapter 3. Fifth Edition by William Stallings

Αυθεντικότητα Μηνυμάτων Συναρτήσεις Hash/MAC

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Κρυπτοαλγόριθμοι. Χρήστος Ξενάκης

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

Βασικές Έννοιες Κρυπτογραφίας

Symmetric Cryptography. Dimitris Mitropoulos

Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ στα Πληροφοριακά Συστήματα Κρυπτογραφία και Εφαρμογές Διαλέξεις Ακ.

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο

ρ. Κ. Σ. Χειλάς, ίκτυα Η/Υ ΙΙΙ, Τ.Ε.Ι. Σερρών, 2007

Αλγόριθµοι δηµόσιου κλειδιού

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 11η Διάλεξη: Ασφάλεια στο Web

Κρυπτογραφία. MAC - Γνησιότητα/Ακεραιότητα μηνύματος. Πέτρος Ποτίκας

Πανεπιστήμιο Πειραιώς Τμήμα Διδακτικής της Τεχνολογίας και Ψηφιακών Συστημάτων. ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ «Ψηφιακών Συστημάτων»

ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή 2. Θεωρία αριθμών Αλγεβρικές δομές 3. Οι κρυπταλγόριθμοι και οι ιδιότητές τους

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ

Διατμηματικό Μεταπτυχιακό Πρόγραμμα Ηλεκτρονική και Επεξεργασία της Πληροφορίας

Παύλος Εφραιμίδης. Βασικές Έννοιες Κρυπτογραφίας. Ασφ Υπολ Συστ

Αννα Νταγιου ΑΕΜ: 432. Εξαμηνο 8. Ερώτηση 1. Πληκτρολογήστε την εντολή: openssl help Παρατηρήστε τις πληροφορίες που λαµβάνετε.

Κεφάλαιο 21. Κρυπτογραφία δημόσιου κλειδιού και πιστοποίηση ταυτότητας μηνυμάτων

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

Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 8 η. Βασίλης Στεφανής

Κρυπτογραφία. MAC - Γνησιότητα/Ακεραιότητα μηνύματος. Πέτρος Ποτίκας

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 131: ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I ΕΡΓΑΣΙΑ 2

Ασφάλεια Τηλεπικοινωνιακών Συστημάτων ΣΤΑΥΡΟΣ Ν ΝΙΚΟΛΟΠΟΥΛΟΣ 03 ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΚΡΥΠΤΟΛΟΓΙΑ

ΕΠΑΝΑΛΗΠΤΙΚΟ ΤΕΣΤ ΣΤΗΝ ΕΝΟΤΗΤΑ

Μελέτη απόδοσης αλγορίθμων κρυπρογράϕησης σε CUDA

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

ΚΡΥΠΤΟΓΡΑΦIΑ Α ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο

Κρυπτογραφία και Ασφάλεια Υπολογιστών

6/1/2010. Ασφάλεια Ασύρματων & Κινητών Επικοινωνιών. Περιεχόμενα. Εισαγωγή /1 IEEE

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο

Δίκτυα Υπολογιστών Ενότητα 6: Secure Sockets Layer - SSL

Κρυπτογράφηση Αποκρυπτογράφηση Ερευνητική εργασία Β'1 1 ο Γενικό Λύκειο Ευόσμου

Ασφάλεια Πληροφοριακών Συστημάτων

Κρυπτογραφία και Ηλεκτρονικοί Υπολογιστές. ΣΥΝΤΕΛΕΣΤΕΣ: Κραβαρίτης Αλέξανδρος Μαργώνη Αγγελική Χαλιμούρδα Κων/να

Αυθεντικοποίηση μηνύματος και Κρυπτογραφία δημόσιου κλειδιού

Transcript:

ΤΕΙ Κρήτης Τμήμα Μηχανικών Πληροφορικής Ασφάλεια Πληροφοριακών Συστημάτων Εργαστήριο Συμμετρική Κρυπτογραφία Konstantinos Fysarakis, PhD kfysarakis@staff.teicrete.gr

Εισαγωγή } Στην συνηθισμένη κρυπτογραφία, ο αποστολέας και ο παραλήπτης ενός μηνύματος γνωρίζουν και χρησιμοποιούν το ίδιο μυστικό κλειδί. } Ο αποστολέας χρησιμοποιεί το μυστικό κλειδί για να κρυπτογραφήσει το μήνυμα και ο παραλήπτης χρησιμοποιεί το ίδιο κλειδί για να αποκρυπτογραφήσει το μήνυμα. } Αυτή η μέθοδος καλείται συμμετρική κρυπτογραφία ή κρυπτογραφία μυστικού κλειδιού. } Η συμμετρική κρυπτογραφία χρησιμοποιείται όχι μόνο για κρυπτογράφηση, άλλα και για πιστοποίηση ταυτότητας.

Εισαγωγή } Η ασφαλής επικοινωνία μεταξύ δύο χρηστών με τη χρήση ενός συμμετρικού αλγορίθμου κρυπτογράφησης απαιτεί την ύπαρξη των ακόλουθων προϋποθέσεων : } Δυνατότητα χρήσης του ίδιου αλγορίθμου. } Χρήση ενός μυστικού κλειδιού το οποίο γνωρίζουν μόνο ο αποστολέας και ο παραλήπτης. } Ύπαρξη ενός ασφαλούς καναλιού για τη διανομή του κλειδιού.

Εισαγωγή

Εισαγωγή } Τα συμμετρικά κρυπτοσυστήματα παρουσιάζουν πλεονεκτήματα αλλά έχουν και αρκετά μειονεκτήματα. } Το βασικό τους πλεονέκτημα είναι η ταχύτητα τους σε σύγκριση με τους αλγορίθμους ασύμμετρης κρυπτογραφίας. } Επίσης ως θετικά στοιχεία θεωρούνται το σχετικά μικρό μέγεθος κλειδιών και ότι εύκολα μπορούν να χρησιμοποιηθούν ως βάση για τη κατασκευή άλλων μηχανισμών (π.χ. παραγωγή τυχαίων αριθμών ή συναρτήσεις κατακερματισμού).

Εισαγωγή } Από την άλλη μεριά το μεγαλύτερο πρόβλημα της συμμετρικής κρυπτογραφίας είναι η συνεννόηση και ανταλλαγή του κλειδιού, χωρίς κάποιος τρίτος να μάθει για αυτό. } Η μετάδοση μέσα από το Διαδίκτυο δεν είναι ασφαλής γιατί οποιοσδήποτε γνωρίζει για την συναλλαγή και έχει τα κατάλληλα μέσα μπορεί να καταγράψει όλη την επικοινωνία μεταξύ αποστολέα και παραλήπτη και να αποκτήσει το κλειδί. Έπειτα, μπορεί να διαβάσει, να τροποποιήσει και να πλαστογραφήσει όλα τα μηνύματα που ανταλλάσσουν οι δύο ανυποψίαστοι χρήστες. Βέβαια, μπορούν να βασισθούν σε άλλο μέσο επικοινωνίας για την μετάδοση του κλειδιού (π.χ. τηλεφωνία), αλλά ακόμα και έτσι δεν μπορεί να εξασφαλιστεί ότι κανείς δεν παρεμβάλλεται μεταξύ της γραμμής επικοινωνίας των χρηστών. } Άλλο μειονέκτημα είναι η γενικότερη διαχείριση των κλειδιών αυτών. } Κατανομή/διανομή } Αλλαγή/ανανέωση } Περίοδος ζωής

Κατηγορίες Συμμετρικών Κρυπτοσυστημάτων } Block Ciphers } Feistel Ciphers } Modes of Operation }ECB (Electronic CodeBook) }CBC (Cipher Block Chaining) }CFB (Cipher FeedBack) }OFB (Output FeedBack) } Stream Ciphers

Αλγόριθμοι Συμμετρικής Κρυπτογραφίας Block Ciphers

Block Ciphers } Block cipher είναι ένας τύπος αλγορίθμου συμμετρικής κρυπτογράφησης που μετατρέπει ένα καθορισμένου μήκους block μη κρυπτογραφημένου κειμένου (plaintext) σε αντίστοιχο block κρυπτογραφημένου κειμένου (ciphertext). } Αυτός ο μετασχηματισμός πραγματοποιείται με την βοήθεια ενός μυστικού κλειδιού που χορηγείται από τον χρήστη.

Block Ciphers } Η αποκρυπτογράφηση γίνεται με την εφαρμογή του αντίστροφου μετασχηματισμού στο κρυπτογραφημένο κείμενο χρησιμοποιώντας το ίδιο μυστικό κλειδί. } Το καθορισμένο μήκος καλείται block size και για πολλούς ciphers είναι πλέον 128 bits.

Block Ciphers } Οι block ciphers λειτουργούν επαναληπτικά, κρυπτογραφώντας ένα block διαδοχικά αρκετές φορές. } Σε κάθε επανάληψη, ο ίδιος μετασχηματισμός εφαρμόζεται στα δεδομένα χρησιμοποιώντας ένα subkey. } Το σύνολο των subkeys προέρχεται από το μυστικό κλειδί που χορήγησε ο χρήστης, με ειδική συνάρτηση. } Το σύνολο των subkeys καλείται key schedule.

Block Ciphers } Ο αριθμός των επαναλήψεων του cipher εξαρτάται από το επίπεδο της επιθυμητής ασφάλειας και την απόδοση του συστήματος. } Στις περισσότερες περιπτώσεις, ο αυξημένος αριθμός επαναλήψεων βελτιώνει την προσφερόμενη ασφάλεια, με την ανάλογη υπολογιστική επιβάρυνση. } Σε μερικούς αδύναμους ciphers πρέπει να αυξηθούν σε (υπερβολικά) μεγάλο βαθμό οι επαναλήψεις προκειμένου να επιτευχθεί ικανοποιητική ασφάλεια.

Block Ciphers Feistel Ciphers } Οι Feistel Ciphers είναι ειδικές περιπτώσεις επαναληπτικών ciphers όπου το κρυπτογραφημένο κείμενο υπολογίζεται ωςεξής: } Tο κείμενο χωρίζεται στο μισό. } Η συνάρτηση f εφαρμόζεται στο ένα μισό με χρήση ενός subkey και η έξοδος της f περνάει από λογική πράξη X-OR με το άλλο μισό. } Έπειτα, το αποτέλεσμα της λογικής πράξης γίνεται είσοδος της f και το προηγούμενο μισό το οποίο μετασχηματίστηκε γίνεται μία από τις εισόδους της επόμενης X-OR. } Η άλλη είσοδος της X-OR είναι το αποτέλεσμα του δεύτερου μετασχηματισμού, ο οποίος χρησιμοποιεί νέο subkey. } Ο αλγόριθμος συνεχίζεται με το ίδιο τρόπο. } Στο τέλος της τελευταίας επανάληψης, τα δύο κρυπτογραφημένα μισά συνενώνονται.

Block Ciphers Feistel Ciphers } Ένα σημαντικό χαρακτηριστικό του Feistel είναι ότι η αποκρυπτογράφηση είναι δομικά ταυτόσημη με την κρυπτογράφηση. } Τα subkeys χρησιμοποιούνται σε αντίστροφη σειρά στην αποκρυπτογράφηση. Οι Feistel ciphers καλούνται και DES-like ciphers.

Τρόποι Λειτουργίας - Modes of Operation } Ένας αλγόριθμος τύπου block cipher έχει διάφορους τρόπους λειτουργίας. } Κάθε τρόπος λειτουργίας μπορεί να έχει τις δικές του ιδιότητες εκτός από αυτές που κληρονομεί από τον βασικό cipher. } Οι πιο συνήθεις τρόποι λειτουργίας είναι: } Electronic Code Book (ECB) } Cipher BlockChaining (CBC) } Cipher Feedback (CFB) } Output Feedback (OFB)

ECB Electronic Code Book } Σε ECB mode, το κείμενο χωρίζεται σε ισομήκη block. } Κάθε μη κρυπτογραφημένο block κρυπτογραφείται ανεξάρτητα από την συνάρτηση του βασικού blockcipher. } Η ταχύτητα της κρυπτογράφησης κάθε plaintext block είναι ίδια μετην ταχύτητα του blockcipher. } Το ECB mode επιτρέπει την παράλληλη παραγωγή των ciphertext blocks για καλύτερη απόδοση. } Μειονέκτημα αυτού του τρόπου είναι ότι ομοιότητες του plaintext δεν καλύπτονται. Τα plaintext block που είναι ταυτόσημα, δίνουν ταυτόσημα ciphertext block και το κείμενο μπορεί εύκολα να τροποποιηθεί με την αφαίρεση, πρόσθεση ή και ανακατάταξη των όμοιων ciphertext block.

ECB Electronic Code Book

CBC Cipher Block Chaining } Σε CBC mode, κάθε μη κρυπτογραφημένο block συνδυάζεται μέσω της λογικής πράξης X-OR με το πρωτύτερα κρυπτογραφημένο block. Το αποτέλεσμα κρυπτογραφείται. } Aπαιτείται μια αρχική τιμή για την πρώτη X-OR πράξη που καλείται Initialization Vector, c 0. } Τα όμοια plaintext blocks καλύπτονται με την χρήση της λογικής πράξης και αυξάνεται η ασφάλεια του αλγόριθμου. } Η ταχύτητα της κρυπτογράφησης είναι ίδια με αυτή του block cipher, αλλά η διαδικασία δεν μπορεί να πραγματοποιηθεί παράλληλα, παρ' όλο που η αποκρυπτογράφηση μπορεί.

CBC Cipher Block Chaining

X-OR Cipher Πολύ απλός τρόπος κρυπτογράφισης που βασίζεται στην αντίστοιχη λογική πράξη.

X-OR Cipher } Λογική πράξη } «Αληθές αν το ένα ή το άλλο είναι αληθές αλλά όχι και τα δύο» } Πολύ απλός αλγόριθμος γι αυτό θεωρείται περισσότερο δομικό συστατικό για τη λειτουργία πιο σύνθετων αλγορίθμων.

X-OR Cipher - Παράδειγμα } Έστω ότι έχουμε το string Wiki που, σε 8-bit ASCII, αντιστοιχεί στο: } 01010111 01101001 01101011 01101001 }...και το κλειδί: } 11110011 } Κρυπτογράφηση: } Αποκρυπτογράφηση:

X-OR Cipher - Παράδειγμα } Plaintext Å Ciphertext =? } Όμως αν στο κλειδί βάλουμε μία τυχαία γεννήτρια bits έχουμε έναν stream cipher! } Και... } One-time pad } Perfect Secrecy

Αλγόριθμοι Συμμετρικής Κρυπτογραφίας Stream Ciphers

Stream Ciphers } Stream cipher είναι ένας τύπος αλγόριθμου συμμετρικής κρυπτογράφησης. } Είναι εξαιρετικά γρήγοροι αλγόριθμοι, κατά πολύ ταχύτεροι απότους blockciphers. } Ένας stream cipher παράγει μια ακολουθία από bits που χρησιμοποιείται σαν κλειδί και καλείται keystream.

Stream Ciphers } Σε αντίθεση με τους block ciphers που λειτουργούν με μεγάλα κομμάτια δεδομένων (blocks), οι stream ciphers τυπικά λειτουργούν με μικρότερες μονάδες απλού κειμένου, συνήθως μεbits. } Σε περιπτώσεις όπου υπάρχει μεγάλη πιθανότητα να έχουμε σφάλματα στη μετάδοση οι stream ciphers είναι χρήσιμοι γιατίδενυπάρχει μετάδοσηλάθους.

Stream Ciphers } Η κρυπτογράφηση επιτυγχάνεται με τον συνδυασμό του keystream με το plaintext, συνήθως μέσω X-OR πράξης. } Η παραγωγή του keystream μπορεί να είναι ανεξάρτητη του plaintext και του ciphertext (synchronous stream cipher) ή μπορεί να εξαρτάται από αυτά (self-synchronizing stream cipher). } Οι περισσότεροι stream ciphers είναι synchronous.

Stream Ciphers

Stream Ciphers } Η κρυπτογράφηση ενός συγκεκριμένου κειμένου με έναν block cipher θα καταλήγει πάντα στο ίδιο αποτέλεσμα όταν χρησιμοποιείται το ίδιο κλειδί. } Με έναν stream cipher, ο μετασχηματισμός των μικρότερων αυτών μονάδων θα ποικίλει, ανάλογα με πότε αντιμετωπίζονται κατά την διάρκειατης κρυπτογράφησης.

Stream Ciphers } Για να είναι ασφαλής ο κρυπτογραφικός αλγόριθμος ροής, θα πρέπει να πληρούνται ορισμένες προϋποθέσεις όσον αφορά την γεννήτρια κλειδοροής και την ψευδοτυχαία ακολουθία bits που αυτήπαράγει: } Η ψευδοτυχαία ακολουθία bits (κλειδοροή) που παράγεται από την γεννήτρια κλειδοροής θα πρέπει να έχει αρκετά μεγάλη περίοδο επανάληψης. } Η ακολουθία bits της κλειδοροής θα πρέπει να μοιάζει πολύ με τυχαία. } Αυτό σημαίνει ότι η μαθηματική συνάρτηση που χρησιμοποιείται στην γεννήτρια κλειδοροής θα πρέπει να επιλεγεί κατάλληλα ούτως ώστε το αποτέλεσμά της να πλησιάζει όσο το δυνατόν περισσότερο το τυχαίο. } Η κλειδοροή θα πρέπει να έχει μεγάλη γραμμική ισοδυναμία (linear equivalence). } Οποιαδήποτε ακολουθία δυαδικών ψηφίων μπορεί να παραχθεί με χρήση γραμμικών μεθόδων, για παράδειγμα με υπολογισμό της επόμενης τιμής βάσει των προηγούμενων τιμών της ακολουθίας. Αν υπολογισμός βασίζεται σε λίγες προηγούμενες τιμές, λέμε ότι έχει μικρή γραμμική ισοδυναμία. Αν βασίζεται σε πολλές προηγούμενες τιμές, τότε λέμε ότι έχει μεγάλη γραμμική ισοδυναμία.

Αλγόριθμοι Συμμετρικής Κρυπτογραφίας ΠΑΡΑΔΕΙΓΜΑΤΑ

DES (Data Encryption Standard) } DES είναι το ακρωνύμιο των λέξεων Data Encryption Standard. } Αντιπροσωπεύει την τυποποίηση Federal Information Processing Standard (FIPS) 46-1 που επίσης περιγράφει τον Data Encryption Algorithm (DEA). } Αρχικά αναπτύχθηκε από την IBM, ενώ σημαντικό ρόλο στην ανάπτυξη του έπαιξε η NSA και το National Institute of Standards and Technology (NIST).

DES (Data Encryption Standard) } Ο αλγόριθμος DES ανήκει στην ομάδα των αλγόριθμων κρυπτογράφησης συμμετρικού κλειδιού και βασίζεται στην ύπαρξη ενός και μόνο κλειδιού, το οποίο χρησιμοποιείται τόσο στην κρυπτογράφηση όσο και στην αποκρυπτογράφηση του μηνύματος. } Tο κλειδί αυτό θα πρέπει να είναι γνωστό μόνο στα συναλλασσόμενα μέρη.

DES (Data Encryption Standard) } Ο DES είναι block cipher και πιο συγκεκριμένα Feistel cipher. } Δέχεται ως είσοδο μια καθορισμένου μήκους σειρά plaintext 64-bits και την μετατρέπει μέσω μιας σειράς περίπλοκων διαδικασιών σε άλλη κρυπτογραφημένη σειρά του ίδιου μήκους. } Ο DES χρησιμοποιεί επίσης ένα κλειδί για να ολοκληρωθεί ο μετασχηματισμός, έτσι ώστε η αποκρυπτογράφηση να μπορεί μόνο να εκτελεστεί από εκείνους που ξέρουν το συγκεκριμένο αυτό κλειδί.

DES (Data Encryption Standard) } Το βασικό πλεονέκτημα του αλγορίθμου DES καθώς και όλων των αλγορίθμων συμμετρικού κλειδιού είναι ότι η διαδικασία της κρυπτογράφησης και αποκρυπτογράφησης είναι πολύ γρήγορη και δεν καταναλώνει σημαντική υπολογιστική ισχύ.

Triple-DES } Ο Triple-DES είναι μια παραλλαγή του DES όπου το μήνυμα κρυπτογραφείται και αποκρυπτογραφείται διαδοχικά με διαφορετικά κλειδιά για την ενίσχυση του βασικού αλγόριθμου.

Triple-DES } Υπάρχουν τέσσερις διαφορετικοί τρόποι για να επιτευχθεί αυτό: } DES-EEE3 (Encrypt-Encrypt-Encrypt): πραγματοποιούνται τρεις συνεχόμενες κρυπτογραφήσεις με το τρία διαφορετικά κλειδιά. } DES-EDE3 (Encrypt-Decrypt-Encrypt): το μήνυμα διαδοχικά κρυπτογραφείται, αποκρυπτογραφείται και τέλος κρυπτογραφείται μεχρήση τριών διαφορετικών κλειδιών. } DES-EEE2: είναι η ίδια με την πρώτη διαδικασία εκτός του ότι απαιτούνται δύοδιαφορετικά κλειδιά. } DES-EDE2: είναι η ίδια με την δεύτερη διαδικασία εκτός του ότι απαιτούνται δύοκλειδιά.

Triple-DES } Τα επιπλέον κλειδιά δημιουργούνται από το κοινό μυστικό κλειδί με κατάλληλο αλγόριθμο. } Από αυτούς τους τρόπους, ο πιο ασφαλής είναι ο DES-EEE3, με την τριπλή κρυπτογράφηση και τα τρία διαφορετικά κλειδιά.

AES Advanced Encryption Standard } Το ακρωνύμιο AES προέρχεται από την φράση Advanced Encryption Standard. } Είναι ένας block cipher που έχει τυποποιηθεί από το NIST και είναι ο αντικαταστάτης του DES. Το πραγματικό όνομα του αλγορίθμου ήταν Rijndael και κέρδισε το 2001 τον σχετικό διεθνή διαγωνισμό. } Ο DES βρισκόταν πολλά χρόνια σε χρήση και ήδη από το 1998 το NIST δεν τον συνιστά για χρήση. Το 2005 αποσύρει πλέον το σχετικόstandard.

AES Advanced Encryption Standard } Κρυπτογραφεί μπλοκς των 128bits χρησιμοποιώντας κλειδιά των 128, 192, και 256 bits. } Είναι ανθεκτικός σε όλες τις γνωστές μεθόδους κρυπτανάλυσης. } Είναι σχεδιαστικά πιο απλός από τον DES. } Είναι σχεδιασμένος για καλή απόδοση όταν υλοποιείται τόσο σε λογισμικό όσο και σε υλικό. } Χρησιμοποιεί πίνακες από bytes (γνωστοί ως States) μεγέθους 4x4, για να κάνει τις πράξεις σε κάποιες επαναλήψεις ο αριθμός των οποίων εξαρτάται από το μέγεθος του κλειδιού (10 για τον AES-128, 12 για τον AES-192, και 14 για τον AES-256). } Το κλειδί της κάθε επανάληψης προκύπτει από το αρχικό κλειδί. } Σε κάθε επανάληψη έχουμε τις ακόλουθες μετατροπές: } Αντικατάσταση bytes χρησιμοποιώντας ένα S-box } Ολίσθηση γραμμών } Ανάμειξη των δεδομένων σε κάθε στήλη του πίνακα } XOR του πίνακα με το κλειδί.

RC2 } Ο RC2 είναι ένας block cipher με κλειδί μεταβλητού μήκους που σχεδιάστηκε από τον Ron Rivest για την RSA Inc. Τα αρχικά σημαίνουν "Ron's Code" ή "Rivest's Cipher". } Είναι γρηγορότερος από τον DES και στόχος της σχεδίασης ήταν να λειτουργήσει για αντικατάσταση του DES. } Μπορεί να γίνει περισσότερο ή λιγότερο ασφαλής από τον DES, ανάλογα με το μήκος του κλειδιού. } Έχει μέγεθος block ίσο με 64 bits και είναι έως και τρεις φορές ταχύτερος από τον DES.

RC4 } Ο RC4 είναι ένας stream cipher που σχεδιάστηκε πάλι από την Ron Rivest για λογαριασμό της RSA Inc. } Έχει μεταβλητό μήκος κλειδιού και λειτουργεί στο επίπεδο του byte. } Θεωρείται ασφαλής και οι υλοποιήσεις του σε λογισμικό τρέχουν πολύγρήγορα. } Χρησιμοποιείται για κρυπτογράφηση τοπικά αποθηκευμένων αρχείων και για την διασφάλιση της επικοινωνίας μεταξύ δύο απομακρυσμένων σημείων μέσω του πρωτοκόλλου SSL

RC5 } Ο RC5 είναι ένας γρήγορος block cipher από τον Ron Rivest για λογαριασμό τηςrsa Inc το 1994. } Έχει πολλές παραμέτρους: } μεταβλητό μήκος κλειδιού } μεταβλητό μέγεθος block } μεταβλητό αριθμό επαναλήψεων } Τυπικές επιλογές για το μέγεθος του block είναι 32 bits (για πειραματικές εφαρμογές), 64 bits (για αντικατάσταση του DES) και 128 bits. Ο αριθμός των επαναλήψεων μπορεί να είναι από 0 έως και 255. } Ο RC5 είναι πολύ απλός στην λειτουργία, πράγμα που τον κάνει εύκολο στην ανάλυση.

IDEA (International Data Encryption Algorithm) } Ο IDEA είναι ένας block cipher που αναπτύχθηκε από τους Lai και Massey. } Χρησιμοποιεί block μεγέθους 64 bits και κλειδιά 128 bits. Η διαδικασία της κρυπτογράφησης απαιτεί 8 σύνθετες επαναλήψεις. } Παρ' όλο που δεν έχει την κατασκευή ενός Feistel cipher, η αποκρυπτογράφηση γίνεται με τον ίδιο τρόπο που γίνεται και η κρυπτογράφηση. } Έχει σχεδιαστεί για να εύκολα εφαρμόσιμος τόσο hardware σε όσο και σε software. Μερικές, όμως, αριθμητικές διεργασίες που χρησιμοποιεί ο IDEA καθιστούν τις λογισμικές εφαρμογές αργές, παρόμοιες σε ταχύτητα μετον DES. } Ο IDEA αποτελεί ένα πολύ δυνατό αλγόριθμο που είναι απρόσβλητος από τα περισσότερα είδη επιθέσεων.

Blowfish } O Blowfish είναι ένας block cipher που κατασκευάστηκε από τον Bruce Schneier. } Είναι ένας Feistel cipher με μέγεθος block 64 bits και μεταβλητό μήκος κλειδιού, με μέγιστο μήκος 448 bits. } Όλες οι διεργασίες βασίζονται σε X-OR πράξεις και προσθέσεις λέξεων των 32 bits. } Από το κλειδί παράγεται πίνακας με τα subkeys που χρησιμοποιούνται σε κάθε γύρο επανάληψης της κρυπτογράφησης. } Έχει σχεδιασθεί για 32-bit μηχανές και είναι σημαντικά ταχύτερος από τον DES. } Ελάχιστες πρακτικές αδυναμίες έχουν βρεθεί στον συγκεκριμένο αλγόριθμο και θεωρείται ακόμα ασφαλής αλλά προτείνεται η χρήση του νεώτερου Twofish.

Εργαστηριακές Ασκήσεις } Με τη χρήση του εργαλείου CryptTool να εκτελεστούν οι ακόλουθες ασκήσεις 1. Δημιουργία ενός τυχαίου αρχείου Κρυπτογράφηση του κειμένου που δημιουργήθηκε με τη χρήση του συμμετρικού αλγορίθμου RC2. 2. Αποκρυπτογράφησητου κρυπτογραφήματος που προέκυψε. 3. Κρυπτογράφηση του κειμένου που δημιουργήθηκε με τη χρήση του συμμετρικού αλγορίθμου DES (ECB). 4. Αποκρυπτογράφησητου κρυπτογραφήματος που προέκυψε. 5. Κρυπτογράφηση του κειμένου που δημιουργήθηκε με τη χρήση του συμμετρικού αλγορίθμου DES (CBC). 6. Αποκρυπτογράφησητου κρυπτογραφήματος που προέκυψε. 7. Κρυπτογράφηση του κειμένου που δημιουργήθηκε με τη χρήση του συμμετρικού αλγορίθμου AES (self extracting). 8. Αποκρυπτογράφησητου κρυπτογραφήματος που προέκυψε.

2 η Εργαστηριακή Άσκηση 1. Steganography: Βρείτε στο internet ένα πρόγραμμα διαφορετικό του S- Tools το οποίο μπορεί να χρησιμοποιηθεί για το κρύψιμο πληροφορίας μέσα σε άλλη πληροφορία. Π.χ.: Ø Ø Ø http://www.cotse.com/tools/stega.htm http://www.jjtc.com/security/stegtools.htm http://lmgtfy.com/?q=steganography+tools+download Κρύψτε ένα αρχείο (πχ text, image) που να περιέχει τους Α.Μ. των μελών της ομάδας σας μέσα σε μία εικόνα, αρχείο ήχου ή σε ό,τι άλλο στεγομέσο υποστηρίζει το πρόγραμμα που βρήκατε. Δείξτε με screenshots στην αναφορά σας τον τρόπο με τον οποίο είναι δυνατό να κρυφτεί αλλά και να αποκαλυφθεί η κρυμμένη πληροφορία. Αναφέρετε αν εντοπίσατε κάποιος περιορισμό όσο αφορά το μέγεθος του αρχείου που θέλετε να κρύψετε.

2 η Εργαστηριακή Άσκηση 2. Symmetric Crypto: Σας δίδεται το παρακάτω μήνυμα M: Bob s salary is $25000--Tom s salary is $150000. Χωρίστε το μήνυμα M (plaintext) σε 6 κομμάτια (M1,M2, ) μήκους 64-bit το καθένα και θεωρείστε ως δεδομένο ότι κάθε γράμμα έχει μήκος 8 bit ASCII character και ο κενός χαρακτήρας μετράει σαν ένα ASCII character (8 bit). Για παράδειγμα το πρώτο κομμάτι θα είναι ίσο με M1= Bob s sa Χρησιμοποιώντας το CrypTool κρυπτογραφήστε το κάθε κομμάτι με DES σε ECB λειτουργία και ως κλειδί χρησιμοποιήστε το κλειδί: K = 11 22 33 44 55 66 77 88. Σώστε τα κρυπτογραφημένα αποτελέσματα για το κάθε μπλοκ C1 C2... Ck. Έπειτα ενώστε και αποκρυπτογραφήστε τα κρυπτογραφημένα κομμάτια με αυτή τη σειρά: C4 C2 C3 C1 C5 C6 Χρησιμοποιήστε ως κλειδί αποκρυπτογράφησης το K a) Ποιο τελικό κείμενο προκύπτει από την αποκρυπτογράφηση; Τι παρατηρείτε σε σχέση με το αρχικό κείμενο M; b) Ακολουθήστε την ίδια διαδικασία χρησιμοποιώντας αλγόριθμό DES σε CBC λειτουργία. Συγκρίνετε τα δυο κρυπτογραφήματα και καταγράψετε τις παρατηρήσεις σας Deadline: 23 Νοεμβρίου 2017