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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

UP class. & DES και AES

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Symmetric Cryptography. Dimitris Mitropoulos

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Π Α Ν Ε Π Ι Σ Τ Η Μ Ι Ο Π ΑΤ Ρ Ω Ν

Διαχείριση Ασφάλειας και Εμπιστοσύνης σε Πολιτισμικά Περιβάλλοντα

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

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

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

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

Transcript:

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

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

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

Εισαγωγή

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

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

Κατηγορίες συμμετρικών κρυπτοσυστημάτων 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 Block Chaining (CBC) Cipher Feedback (CFB) Output Feedback (OFB)

ECB electronic code book Σε ECB mode, το κείμενο χωρίζεται σε ισομήκη block. Κάθε μη κρυπτογραφημένο block κρυπτογραφείται ανεξάρτητα από την συνάρτηση του βασικού block cipher. Η ταχύτητα της κρυπτογράφησης κάθε plaintext block είναι ίδια με την ταχύτητα του block cipher. Το 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 είναι ένας τύπος αλγόριθμου συμμετρικής κρυπτογράφησης. Είναι εξαιρετικά γρήγοροι αλγόριθμοι, κατά πολύ ταχύτεροι από τους block ciphers. Σε αντίθεση με τους block ciphers που λειτουργούν με μεγάλα κομμάτια δεδομένων (blocks), οι stream ciphers τυπικά λειτουργούν με μικρότερες μονάδες απλού κειμένου, συνήθως με bits. Ένας stream cipher παράγει μια ακολουθία από bits που χρησιμοποιείται σαν κλειδί και καλείται keystream. Σε περιπτώσεις όπου υπάρχει μεγάλη πιθανότητα να έχουμε σφάλματα στη μετάδοση οι 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. Αποκρυπτογράφηση του κρυπτογραφήματος που προέκυψε.

4 η εργαστηριακή άσκηση 1. Μετά από έρευνα στο Internet και άλλες πηγές παρουσιάστε δύο εφαρμογές όπου χρησιμοποιούνται Stream Ciphers (εκτός από αυτούς που έχουν ήδη παρουσιαστεί στο εργαστήριο) 2. Ποιά θα είναι η επίπτωση στην επικοινωνία αποστολέα και παραλήπτη αν χαθεί ένα block από το ciphertext κατά τη μετάδοση με χρήση block cipher που δουλευεί σε: a) ECB mode b) CBC mode