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

Σχετικά έγγραφα
ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ

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

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

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

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

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

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

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

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

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

Hash Functions. μεγεθος h = H(M) ολους. στο μηνυμα. στο συγκεκριμενο hash (one-way property)

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

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

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

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

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

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

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

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

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

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

Κρυπτογραφία. Μονόδρομες συναρτήσεις - Συναρτήσεις σύνοψης. Άρης Παγουρτζής - Πέτρος Ποτίκας

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

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

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

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

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

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

Κεφάλαια 2&21. Συναρτήσεις κατακερματισμού Πιστοποίηση ταυτότητας μηνυμάτων

Κρυπτογραφία. Συναρτήσεις μονής κατεύθυνσης - Συναρτήσεις κατακερματισμού. Άρης Παγουρτζής - Πέτρος Ποτίκας

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

Κρυπτογραφία. Κρυπτοσυστήματα ροής. Πέτρος Ποτίκας. Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

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

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

Πρόλογος 1. 1 Μαθηµατικό υπόβαθρο 9

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

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

Ασφάλεια Πληροφοριακών Συστηµάτων. Αυθεντικότητα Μηνυµάτων 1

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

UP class. & DES και AES

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

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

ΚΕΦΑΛΑΙΟ 3ο ΤΥΧΑΙΟΙ ΑΡΙΘΜΟΙ ΕΛΕΓΧΟΣ ΤΥΧΑΙΟΤΗΤΑΣ

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

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

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

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

Κεφάλαιο 6. Κρυπταλγόριθμοι Ροής. 6.1 Εισαγωγή. Πίνακας Περιεχομένων

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

Κατακερματισμός (Hashing)

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

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

Κεφάλαιο 8. Ακεραιότητα και Αυθεντικότητα Μηνυμάτων

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

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

KEΦΑΛΑΙΟ 5 ΨΗΦΙΑΚΑ ΚΡΥΠΤΟΣΥΣΤΗΜΑΤΑ

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

Εισαγωγή στην Κρυπτολογία 3. Ασφάλεια Τηλεπικοινωνιακών Συστημάτων Κωδικός DIΤ114 Σταύρος ΝΙΚΟΛΟΠΟΥΛΟΣ

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

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

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

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

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

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

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

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

Κρυπτοσύστημα RSA (Rivest, Shamir, Adlemann, 1977) Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία

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

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

Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία

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

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

Αριθμοθεωρητικοί Αλγόριθμοι

Διπλωματική Εργασία. Τίτλος:

Ταξινόμηση. 1. Ταξινόμηση με Εισαγωγή 2. Ταξινόμηση με Επιλογή. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

Προσομοίωση Συστημάτων

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

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

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

ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΟΙ ΚΑΤΑΧΩΡΗΤΕΣ ΚΑΙ Η ΥΛΟΠΟΙΗΣΗ ΤΟΥΣ ΜΕ FLIP-FLOP ΚΑΙ ΠΥΛΕΣ

Κρυπτογραφία. Hash functions. Πέτρος Ποτίκας. Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Κατακερματισμός. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Ο ΑΤΔ Λεξικό. Σύνολο στοιχείων με βασικές πράξεις: Δημιουργία Εισαγωγή Διαγραφή Μέλος. Υλοποιήσεις

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

Εισαγωγή στην επιστήμη των υπολογιστών

Συμπίεση Δεδομένων Δοκιμής (Test Data Compression) Νικολός Δημήτριος, Τμήμα Μηχ. Ηλεκτρονικών Υπολογιστών & Πληροφορικής, Παν Πατρών

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

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο. Ψηφιακή Υπογραφή και Αυθεντικοποίηση Μηνύματος

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

Κατάλογος Σχηµάτων. Κατάλογος Πινάκων. I Θεµέλια 27

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

Κρυπτογραφία Δημοσίου Κλειδιού

Δομές Δεδομένων και Αλγόριθμοι

Ψηφιακά Πιστοποιητικά Ψηφιακές Υπογραφές

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

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

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

Α. Θα καλεί υποπρόγραμμα INPUT που θα διαβάζει τις τιμές του πίνακα MAP.

Τηλεπικοινωνιακά Συστήματα ΙΙ

Transcript:

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

Ψευδοτυχαίες ακολουθίες Η επιλογή τυχαίων αριθμών είναι ένα βασικό σημείο στην ασφάλεια των κρυπτοσυστημάτων Δημιουργία κλειδιών Επιλογή ποσοτήτων που καθορίζουν τα κλειδιά (πρώτος αριθμός) Δεν μπορούμε να χαρακτηρίσουμε έναν αριθμό σαν τυχαίο Π.χ 3526 είναι τυχαίος αριθμός? Οι αριθμοί 5 κ 7 είναι τυχαίοι?? Αναφερόμαστε στην πηγή η οποία παράγει μια ακολουθία αριθμών Στην κρυπτογραφία μας ενδιαφέρει η αξιόπιστη παραγωγή τυχαίων ακολουθιών Κρυπτοαλγόριθμους ροής γεννήτρια κλειδοροής 2

Ψευδοτυχαίες ακολουθίες Μια ακολουθία αριθμών είναι ψευδοτυχαία όταν 1. Περνά όλους τους στατιστικούς ελέγχους περί τυχαιότητας (στατιστική απαίτηση) 2. Η ακολουθία είναι απρόβλεπτη Δηλαδή, δοθέντος ενός τμήματος της ακολουθίας είναι υπολογιστικά αδύνατο για τον αντίπαλο να καθορίσει τον αμέσως επόμενο αριθμό (κρυπτογραφική απαίτηση) Μια ακολουθία αριθμών είναι πραγματικά τυχαία όταν Ικανοποιεί τα 1, κ 2 Δεν μπορεί να αναπαραχθεί με αξιοπιστία 3

Ψευδοτυχαίες ακολουθίες Στατιστικοί έλεγχοι τυχαιότητας Έλεγχος συχνότητας (frequency test) Το πλήθος των άσσων n1 και των μηδενικών n0 είναι το ίδιο Η κατανομή x 2 μπορεί να χρησιμοποιηθεί για να ελεγχθεί η υπόθεση n0 = n1, για έναν βαθμό ελευθερίας x ( n0 2 = n n1) Αν no n1 η πηγή είναι πολωμένη no > n1 πολωμένη προς το μηδέν n1 > n0 πολωμένη προς το ένα 2 Η πόλωση μπορεί να δώσει πληροφορία στον αντίπαλο 4

Ψευδοτυχαίες ακολουθίες Στατιστικοί έλεγχοι τυχαιότητας Σειριακός έλεγχος (serial test) Εξετάζεται η κατανομή των συμβόλων στην ακολουθία (εναλλαγή 0, 1) Η ακολουθία [00001111] περνάει τον έλεγχο συχνότητας αλλά δεν θεωρείται ψευδοτυχαία Έστω n00, n01, n10 κ n11 το πλήθος των 00, 01, 10 κ 11 Θα πρέπει n00 = n01 = n10 = n11 (n-1)/4 H κατανομή x 2 για δύο βαθμούς ελευθερίας προσεγγίζεται από την παρακάτω ποσότητα x 2 4 n 1 1 1 1 2 2 nij i i= 0 j= 0 n n i= 0 2 + 1 5

Ψευδοτυχαίες ακολουθίες Στατιστικοί έλεγχοι τυχαιότητας Έλεγχος της αυτοσυσχέτισης (autocorrelation test) Ελέγχει αν τα δυαδικά σύμβολα είναι τυχαία διασπαρμένα μέσα στη δυαδική ακολουθία Έστω η ακολουθία [a 1 a 2 a n ], ορίζεται η συνάρτηση A(d) n d n ( n 1 A( d) = a a μ = i i+ d 2 = i 1 n 2 d), Αν τα 0 κ 1 είναι τυχαία διεσπαρμένα μέσα στην ακολουθία Τότε Α(d) = μ, όπου n 1 το πλήθος των άσσων και d 0 6

Ψευδοτυχαίες ακολουθίες Στατιστικοί έλεγχοι τυχαιότητας Έλεγχος της αυτοσυσχέτισης Ο ορισμός του A(d) προέρχεται από το γενικό ορισμό της αυτοσυσχέτισης C( d) = lim c T N 1 ( d) = Τ 1 N Τ i= 1 N i= 1 aiai+ d aiai+ d και για περίοδο Τ Οι τιμές των a i ορίζονται από την αντιστοιχία (0,1) (-1, 1) (πολλαπλασιασμό) Με βάση τα παραπάνω ο Golomb (1984) έθεσε τρία κριτήρια που πρέπει να πληροί μια ακολουθία προκειμένου να χαρακτηριστεί ΨΕΥΔΟΥΧΑΙΑ 7

Ψευδοτυχαίες ακολουθίες Στατιστικοί έλεγχοι τυχαιότητας Έλεγχος της αυτοσυσχέτισης κριτήρια Golomb 1 ο Η διαφορά μεταξύ του πλήθους των 0 κ 1 να είναι η μικρότερη δυνατή 2 ο Διαδρομή: η σειρά ομοίων συμβόλων η οποία περιβάλλεται από διαφορετικά σύμβολα Σε μια περίοδο της ακολουθίας Το 1/2 των διαδρομών έχουν μήκος 1, το 1/4 μήκος 2, το 1/8 μήκος 3, κοκ. Το παραπάνω ισχύει μέχρι ο αριθμών των διαδρομών να είναι 2 l (l : μήκος διαδρομής 3 ο Για T d η αυτοσυσχέτιση σταθερή Για d = 0 ή T = d η αυτοσυσχέτιση = 1 8

Ψευδοτυχαίες ακολουθίες Έλεγχος της αυτοσυσχέτισης κριτήρια Golomb Παράδειγμα Έστω η ακολουθία [110100111101000] Η περίοδος = μήκος ακολουθίας, Τ = 15 Ο αρ. των 1 = 8 κ των 0 = 7 1 ο κριτήριο 8-7 = 1 η μικρότερη δυνατή διαφορά Από τις 8 διαδρομές: το 1/2 (4) έχουν μήκος 1, το ¼ μήκος 2, το 1/8 μήκος 3 Για τη διαδρομή μήκους 4 δεν γίνεται έλεγχος (8 < 2 4 = 16) Για d = 0, C T (d) = 1, για d T, C T (d) = -1/5 σταθερή 9

Ψευδοτυχαίες ακολουθίες Γεννήτριες ψευδοτυχαίων ακολουθιών Καταχωρητές ολίσθησης με ανάδραση Δυνατότητα αποθήκευσης n δυαδικών στοιχείων (μνήμη n bits) Συνάρτηση ανάδρασης f:{0,1} n {0,1} F(x 1, x 2, x n ) = c 1 x 1 +c 2 x 2 + + c n x n mod 2 Καταχωρητής ολίσθησης με γραμμική ανάδραση (linear feedback shift register) 10

Ψευδοτυχαίες ακολουθίες Γεννήτριες ψευδοτυχαίων ακολουθιών Στην κρυπτογραφία προτιμώνται οι καταχωρητές ολίσθησης με γραμμική ανάδραση έναντι των μη γραμμικών παράγουν ακολουθίες με μέγιστη περίοδο Μέγιστη περίοδο (μνήμη n bits) 2 n 1 (εκτός την 000...0) Αν εμφανιστεί η κατάσταση (0,0...0) η γεννήτρια κλειδώνει παράγει μόνο 0 Για να μην κλειδώσει θα πρέπει να ισχύουν : Η αρχική τιμή του καταχωρητή να είναι διαφορετική της (0,0,...0) Να επιλεγεί συνάρτηση ανάδρασης τέτοια ώστε για οποιαδήποτε είσοδο χ (0,0,...0) η f(x) να μην παράγει n μηδενικά στη σειρά 11

Ψευδοτυχαίες ακολουθίες Γεννήτριες ψευδοτυχαίων ακολουθιών Καθορισμός χαρακτηριστικού πολυωνύμου γραμμικής συνάρτησης ανάδρασης (n = 5) c 1 = 1, c 2 = 0, c 3 = 0, c 4 = 1 c 5 = 1 F(x) = 1 + x + x 4 + x 5 Ο μέγιστος εκθέτης του πολυωνύμου καθορίζει το βαθμό του 12

Ψευδοτυχαίες ακολουθίες Γεννήτριες ψευδοτυχαίων ακολουθιών Για να παράγει ένας καταχωρητής ολίσθησης με γραμμική ανάδραση την ακολουθία με τη μέγιστη περίοδο (2 n 1) Θα πρέπει το χαρακτηριστικό πολυώνυμο της συνάρτησης ανάδρασης να πληροί τα ακόλουθα: Να έχει βαθμό ίσο με το μέγεθος του καταχωρητή n Να είναι ανάγωγο Να διαιρεί το χ κ + 1, για κ = 2 n 1 και Να μη διαιρεί χ κ + 1, για οποιοδήποτε κ < 2 n 1 Τότε το πολυώνυμο ονομάζεται πρωτεύον 13

Ψευδοτυχαίες ακολουθίες Γεννήτριες ψευδοτυχαίων ακολουθιών Γραμμική πολυπλοκότητα: Μέτρηση η οποία εφαρμόζεται στις γεννήτριες Βασίζονται σε καταχωρητές ολίσθησης με γραμμική ανάδραση Έστω μια ακολουθία a = [a 1, a 2, ], a n τα πρώτα n bits Γραμμική πολυπλοκότητα της a n ονομάζουμε τον ελάχιστο αριθμό στοιχείων ( LC(a n ) ) ενός καταχωρητή ολίσθησης που απαιτούνται για να παραχθεί η a n 14

Ψευδοτυχαίες ακολουθίες Γεννήτριες ψευδοτυχαίων ακολουθιών Γραμμική πολυπλοκότητα Για n 1, ισχύει 0 LC(a n ) n Αν a = [0,0,0, ] τότε LC(a n ) = 0, για κάθε n 1 LC(a n ) = 0 αν και μόνο αν a n = [0,0,0,...,0,1] Αν δεν υπάρχει καταχωρητής ολίσθησης με γραμμική ανάδραση ο οποίος να μπορεί να παράγει την ακολουθία LC(a n ) τότε LC(a n ) = Αν μια ακολουθία α είναι περιοδική με περίοδο Τ, τότε LC(a n ) Τ Η γραμμική πολυπλοκότητα εξαρτάται από το χαρακτηριστικό πολυώνυμο της γραμμικής συνάρτησης ανάδρασης Αν το πολυώνυμο είναι ανάγωγο ίση με το βαθμό του πολυωνύμου 15

Μονόδρομες hash συναρτήσεις Στις hash συναρτήσεις βασίζονται οι μηχανισμοί ελέγχου της ακεραιότητας και αυθεντικοποίησης Hash h: F* G n αντιστοιχίζει ένα στοιχείο χ є F* αυθαίρετου μήκος, στο y є G n μήκους n y=h(x), σύνοψη μηνύματος 16

Μονόδρομες hash συναρτήσεις Ιδιότητες μιας hash συνάρτησης 1. Δοθέντος y, είναι υπολογιστικά αδύνατο να βρεθεί χ τέτοιο ώστε h(x)=y 2. Δοθέντων x, h(x) είναι υπολογιστικά αδύνατο να βρεθεί x τέτοιο ώστε h(x ) = h(x) 3. Είναι υπολογιστικά αδύνατο να βρεθούν x1, x2 є F* τέτοια ώστε h(x1)=h(x2) Οι (1) κ (2) χαρακτηρίζουν μονόδρομες hash συναρτήσεις (one-way hash functions) Οι (2) κ (3) χαρακτηρίζουν ανθεκτικές σε συγκρούσεις hash συναρτήσεις (collision resistance hash functions) H (3) «ισχυρή αντίσταση σε συγκρούσεις» περιλαμβάνει την (2) «ασθενής αντίσταση σε συγκρούσεις» Η ύπαρξη πραγματικών μονόδρομων συναρτήσεων δεν έχει αποδειχθεί 17

Μονόδρομες hash συναρτήσεις Η έννοια του κλειδιού στις μονόδρομες hash συναρτήσεις h κ : F* G n, k є K Δημιουργία μονόδρομης hash συνάρτησης με κλειδί h κ (x) = h(x k) or h κ (x) = h(k x) Υπηρεσίες ασφάλειας που παρέχουν οι συναρτήσεις hash Κώδικας αυθεντικοποίησης μηνύματος (Message Authentication Code - MAC) Μονόδρομη συνάρτηση hash με κλειδί Δοθέντων x, h κ (x) είναι υπολογιστικά αδύνατο να βρεθεί x τέτοιο ώστε h κ (x ) = h κ (x) Κώδικας ανίχνευσης τροποποίησης (Modification Detection Code - MDC) Μονόδρομη συνάρτηση hash άνευ κλειδιού Δοθέντων x, h(x) είναι υπολογιστικά αδύνατο να βρεθεί x τέτοιο ώστε h(x ) = h(x) 18

Μονόδρομες hash συναρτήσεις Έλεγχος ακεραιότητας με MAC 19

Μονόδρομες hash συναρτήσεις Η χρήση του MDC συναντάται σε ασύμμετρη επικοινωνία Ένας στέλνει ένα μήνυμα σε πολλούς (λήψη ηλεκτρονικών αγαθών, ηλεκτρονικά βιβλία, λογισμικό, κτλ) Ο αποστολέας δημοσιεύει το MDC O «πελάτης» προμηθεύεται το αγαθό (μέσω διαδικτύου) και υπολογίζει το MDC Συγκρίνει το δικό του MDC με αυτό που έχει δημοσιευτεί Δεν υπάρχει κλειδί οπότε ο καθένας μπορεί να υπολογίσει το MDC 20

Μονόδρομες hash συναρτήσεις Ταξινόμηση στόχων και ικανοτήτων του αντιπάλου 21

Μονόδρομες hash συναρτήσεις Συνδυάζοντας αυθεντικοποίηση και εμπιστευτικότητα Κρυπτογραφική μονόδρομη hash συνάρτηση h( ) Κρυπτοαλγόριθμο e k ( ) 22

Μονόδρομες hash συναρτήσεις Εναλλακτικές συνδυασμού αυθεντικοποίηση και εμπιστευτικότητα Το κρυπτοσύστημα είναι συμμετρικό 23

Μονόδρομες hash συναρτήσεις Επαναληπτικές κρυπτογραφικές μονόδρομες hash συναρτήσεις Στην πράξη δέχονται για είσοδο μηνύματα πεπερασμένου μήκους (θεωρητικά αυθαίρετου...!) Κατάτμηση του μηνύματος εισόδου και επαναληπτική εφαρμογή της συνάρτησης g: Z m Z n, τότε το s i έχει μήκος m n bits Διάνυσμα αρχικοποίησης (Initialization vector) 24

Μονόδρομες hash συναρτήσεις Επαναληπτική μονόδρομη hash βασισμένη σε κρυπτοαλγόρυθμο τμήματος 25

Μονόδρομες hash συναρτήσεις MD5 (Message-Digest algorithm 5 ) Στόχοι ασφάλειας Ασφάλεια: θα πρέπει να είναι υπολογιστικά αδύνατο να βρεθούν δύο μηνύματα τα οποία να δίνουν το ίδιο αποτέλεσμα Άμεση ασφάλεια: ο αλγόριθμος δεν βασίζεται σε υποθέσεις π.χ., δυσκολία παραγοντοποίησης ακεραίων Απλότητα και κατάληψη χώρου: ο αλγόριθμος είναι απλός και δεν απαιτεί μεγάλους πίνακες αντικατάστασης τιμών ή μεγάλα σε μήκος προγράμματα Εύνοια αρχιτεκτονικής little-endian: (intel x386, το λιγότερο σημαντικό bit σε χαμηλή διεύθυνση μνήμης) χρησιμοποιεί απευθείας τις αποθηκευμένες λέξεις (αντίθετο big-endian, Sparc) 26

Μονόδρομες hash συναρτήσεις MD5 (Message-Digest algorithm 5 ) Είσοδο: μήνυμα αυθαίρετου μήκους Έξοδο: 128 bits Η επεξεργασία γίνεται σε τμήματα των 512 bits Αρχικά στο μήνυμα προστίθενται bits ώστε το μέγεθός του να είναι ίσο με (448 mod 512) Προστίθενται ακόμα 64 bits τα οποία παρουσιάζουν το μέγεθος του αρχικού μηνύματος Τα 512 bits απαιτούν 16 δυαδικές λέξεις των 32 bits Οι ενδιάμεσες τιμές καθώς και το αποτέλεσμα της σύνοψης αποθηκεύεται σε 4 καταχωρητές A,B,C,D (αλυσιδωτές μεταβλητές chaining variables) 27

Μονόδρομες hash συναρτήσεις MD5 (Message-Digest algorithm 5 ) Κατά την εκκίνηση οι A,B,C,D παίρνουν τις ακόλουθες τιμές Α=(67452301) 16 Β=(EFCDAB89) 16 C=(98BADCFE) 16 D=(10325476) 16 Η συνάρτηση συμπίεσης αποτελείται από 4 γύρους και κάθε γύρος εκτελεί 16 πράξεις Κάθε πράξη εκτελεί μία μη γραμμική συνάρτηση μεταξύ των τριών από τα A,B,C,D και προσθέτει το αποτέλεσμα σε μία από τις αλυσιδωτές μεταβλητές Τέλος το αποτέλεσμα αποθηκεύεται σε μία από τις αλυσιδωτές μεταβλητές 28

Μονόδρομες hash συναρτήσεις MD5 Μια MD5 εκτέλεση = 64 επαναλήψεις = 4 κύκλους των 16 F μη γραμμική συνάρτηση Μ i 32-bit τμήμα της εισόδου T i, S i σταθερές 29

Μονόδρομες hash συναρτήσεις SHA (Secure Hash Algorithm) Είσοδο: όχι μεγαλύτερη του 2 64 Bits Έξοδο: 160 bits Η επεξεργασία γίνεται σε τμήματα των 512 bits Αρχικά στο μήνυμα προστίθενται bits ώστε το μέγεθός του να είναι ίσο με (448 mod 512) Προστίθενται ακόμα 64 bits τα οποία παρουσιάζουν το μέγεθος το αρχικού μηνύματος Λόγω του μεγαλύτερου μήκους της σύνοψης έχουμε 5 καταχωρητές A,B,C,D,Ε (αλυσιδωτές μεταβλητές chaining variables) 30

SHA Μονόδρομες hash συναρτήσεις Κατά την εκκίνηση οι A,B,C,D,E παίρνουν τις ακόλουθες τιμές Α=(67452301) 16 Β=(EFCDAB89) 16 C=(98BADCFE) 16 D=(10325476) 16 E=(C3D 2E1F0) 16 Όμοια με την MD5 το κάθε τμήμα υποβάλλεται σε 4 γύρους και κάθε γύρος αποτελείται από μια μη γραμμική πράξη που εφαρμόζεται 20 φορές Τα 512 bits του τμήματος επεκτείνονται σε 2560 bits (80 δυαδικές λέξεις των 32 bits) 31

Μονόδρομες hash συναρτήσεις SHA CV q 160 Y q 512 A B C D 32 E f 1, K, W[0...19] 20 βήματα A B C D E f 2, K, W[20...39] 20 βήματα A B C D E f 3, K, W[40...59] 20 βήματα A B C D E f 4, K, W[60...79] 20 βήματα + + + + + 160 CV q+1 32

Δίκτυα Αντικατάστασης Μετάθεσης (ΔΑΜ) Substitution Permutation Networks Έχουν σα στόχο την υψηλή διάχυση και σύγχυση Η υψηλή διάχυση επιτυγχάνεται από στάδια μετάθεσης Συναρτήσεις μετάθεσης Η υψηλή σύγχυση επιτυγχάνεται από στάδια αντικατάστασης Κουτιά αντικατάστασης (substitution boxes) τα οποία εισάγουν μη γραμμικότητα Οι παράμετροι ενός ΔΑΜ Το μήκος εισόδου n, ο αριθμός των γύρων r, το μέγεθος των κουτιών αντικατάστασης m x m 33

Δίκτυα Αντικατάστασης Μετάθεσης Για n = 16, r = 4 και m = 4 34

Δίκτυα Αντικατάστασης Μετάθεσης (ΔΑΜ) Κουτιά αντικατάστασης Ένα κουτί αντικατάστασης αντιστοιχίζει m bits εισόδου σε n bits εξόδου Τα σχετικά μικρά κουτιά υλοποιούνται με πίνακες Είσοδος: δείκτης του πίνακα, Έξοδος: περιεχόμενο Κουτί αντικατάστασης {0,1} 3 {0,1} 4 35

Δίκτυα Αντικατάστασης Μετάθεσης (ΔΑΜ) Κριτήρια που θα πρέπει να πληρούν τα κουτιά αντικατάστασης Μη γραμμικότητα: ένα κουτί αντικατάστασης το οποίο είναι γραμμικό μπορεί εύκολα να κρυπτοαναλυθεί (γραμμική κρυπτοανάλυση) Αμφίεση (bijection) : είναι απαραίτητο για να ορίζεται μονοσήμαντα η αποκρυπτογράφηση (δεν ισχύει στις hash functions) Αυστηρή χιονοστιβάδα: η αντιστροφή οποιουδήποτε bit εισόδου έχει τη δυνατότητα να προκαλέσει την αντιστροφή οποιουδήποτε bit εξόδου με πιθανότητα 0,5 (σύγχυση διάχυση) Ανεξαρτησία των bits της εξόδου: η ύπαρξη αυτοσυσχέτησης μεταξύ δύο η περισσοτέρων Bits εξόδου μειώνει το χώρο αναζήτησης 36

Δίκτυα Feistel Κρυπτογραφική πράξη τύπου Feistel Πλήρης ελευθερία στην επιλογή της F (συνάρτηση γύρου) Ορίζεται πάντα η αντίστροφη σχέση ακόμα και αν η f δεν είναι ενριπτική (1 προς 1) Σε ορισμένες περιπτώσεις ένα δίκτυο Feistel είναι αποδείξιμα ασφαλές Σε κάθε γύρο i Είσοδο L i-1, R i-1 Έξοδο L i, R i Ki πρόγραμμα κλειδιού Απλό κείμενο L 0, R 0 Κρυπτοκείμενο r γύρους L r, R r 37

Δίκτυα Feistel Κρυπτογραφική πράξη τύπου Feistel Απαιτούνται τουλάχιστον 3 γύροι προκειμένου το κρυπτοσύστημα να αποκρύψει το απλό κείμενο Ο αριθμός των γύρων και η κρυπτογραφική δύναμη του κρυπτοσυστήματος εξαρτώνται από την F Αν n L κ n R το μέγεθος του αριστερού κ δεξιού τμήματος αντίστοιχα F: {0,1} nr {0,1} nl Αν n L = n R = n/2 τότε το δίκτυο ισορροπημένο e i ki ( L i, R i ) = L i 1 ( f ( R i 1 R, k i ) L i 1 ), 0 < i r 38

Δίκτυα Feistel Μια αντιστοίχηση F1 ( μη αντιστρέψιμη) Δύο μεταθέσεις h1 κ h2 ( αντιστρέψιμες) 39