Εφαρμοσμένη Κρυπτογραφία Ι Κωνσταντίνου Ελισάβετ ekonstantinou@aegean.gr http://www.icsd.aegean.gr/ekonstantinou
Stream ciphers Η διαδικασία κωδικοποίησης για έναν stream cipher συνοψίζεται παρακάτω: 1. Το αρχικό μήνυμα (plaintext) μετατρέπεται σε δυαδική ακολουθία. 2. Επιλέγεται ένα κλειδί κρυπτογράφησης το οποίο μετατρέπεται σε δυαδική ακολουθία επίσης. 3. Το αρχικό μήνυμα και το κλειδί προστίθενται σύμφωνα με την πράξη XOR γιαναπροκύψειτο ciphertext. p i c i k i Κρυπτογράφηση k i c i p i Αποκρυπτογράφηση 2
Stream ciphers Αν η συμβολοσειρά κλειδιού που χρησιμοποιείται για ένα plaintext δεν ξαναχρησιμοποιείται τότε έχουμε το σύστημα one-time pad. Ησειράτωνκλειδιώνπου χρησιμοποιούνται καλείται keystream. Αυτή πρέπει να είναι όσο το δυνατόν περισσότερο τυχαία για να μην μπορεί να προβλεφθεί. Προκύπτει από μια γεννήτρια που καλείται keystream generator. seed Keystream generator Ίδιο Keystream K seed Keystream generator 3
Linear Feedback Shift Registers 4
Linear Feedback Shift Registers Ποια θα είναι τα bits της εξόδου αν αρχική κατάσταση είναι η [0110]? 5
Linear Feedback Shift Registers Η έξοδος του LFSR είναι μια ακολουθία από bits με περίοδο το πολύ 2 L -1. Αυτό μπορεί να επιτευχθεί αν επιλέξουμε με συγκεκριμένο τρόπο τις τιμές των c j. Χαρακτηριστικά: 1) Πολύ αποδοτική υλοποίηση σε hardware. 2) Παράγουν συμβολοσειρές με μεγάλη περίοδο και καλές στατιστικές ιδιότητες. 3) Ανκάποιοςεπιτιθέμενοςλάβειμέροςτουkeystream που παράγουν, τότε η έξοδός τους προβλέπεται εύκολα. 6
Geffe Generator H περίοδος της γεννήτριας είναι (2 L1-1)(2 L2-1)(2 L3-1)αν τα L1, L2 και L3 είναι σχετικά πρώτοι ανά δύο. 7
Shrinking Generator H περίοδος της γεννήτριας είναι (2 L2-1)2 L1-1 αν gcd(l1, L2)=1. 8
Παραγοντοποίηση Ακεραίων Οι αλγόριθμοι Rabin και RSA βασίζονται στην δυσκολία επίλυσης του προβλήματος της παραγοντοποίησης ακεραίων. Κάθε αλγόριθμος που εφαρμόζεται πάνω στον ακέραιο n που θέλουμε να παραγοντοποιήσουμε επιχειρεί να βρει δύο αριθμούς α και b (όχι απαραίτητα πρώτους) τέτοιους ώστε n = ab. Στην συνέχεια παραγοντοποιούνται οι α και b ξεχωριστά. Παρακάτω υποθέτουμε ότι ο n δεν είναι τέλεια δύναμη, δηλαδή δεν έχει τη μορφή n = x k. Στην περίπτωση αυτή, ο n παραγοντοποιείται πολύ εύκολα. Γιατί? 9
Παραγοντοποίηση Ακεραίων Factoring algorithms Special purpose algorithms (trial division, pollard s p-1, special number field sieve) General purpose algorithms (quadratic sieve, general number field sieve) Factoring records: General-purpose Algorithms: RSA768 (232 digits), December 2009 Special numbers with the special number field sieve: 320 digits for 2 1061-1, August 2012. 10
Αλγόριθμοι 1) Trial division: O ακέραιος n διαιρείται με «μικρούς» πρώτους. Αν διαιρέσουμε με όλους τους πρώτους που είναι μικρότεροι από το n 1/2 τελικά θα έχουμε παραγοντοποιήσει το n. 2) Pollard s rho factoring algorithm: Έστω μια συνάρτηση f: S S, όπου S είναι ένα πεπερασμένο σύνολο από n στοιχεία. Αν x 0 είναι ένα τυχαίο στοιχείο στο S, τότε η ακολουθία x 0, x 1, x 2, που δημιουργείται από τη σχέση x i = f(x i-1 ), θα εμφανίσει κάποια στιγμή ένα από τα x i για δεύτερη φορά (αφού το S είναι πεπερασμένο). 11
Pollard s rho factoring algorithm κύκλος ουρά Η ουρά έχει αναμενόμενο μήκος (πn/8) 1/2, όπως και ο κύκλος. Το ερώτημα που προκύπτει άμεσα είναι πώς βρίσκεις τα i και j γιαταοποίαx i = x j. Η προφανής απάντηση είναι να αποθηκεύεις όλες τις τιμές και να ελέγχεις κάθε φορά αν υπάρχει σύγκρουση (collision). To αναμενόμενο πλήθος των τιμών που πρέπει να ελεγχθούν είναι 2(πn/8) 1/2. Η μέθοδος απαιτεί Ο(n 1/2 ) μνήμη και Ο(n 1/2 ) χρόνο. 12
Pollard s rho factoring algorithm Ο μεγάλος χώρος αποθήκευσης μπορεί να αποφευχθεί αν ακολουθήσουμε τον αλγόριθμο εύρεσης κύκλου του Floyd. Με τη μέθοδο αυτή ξεκινάμε από ένα ζευγάρι (x 1, x 2 ) και υπολογίζουμε ζευγάρια (x i, x 2i ) από τα προηγούμενα (x i-1, x 2i-2 ) μέχρι να βρούμε ένα για το οποίο x m = x 2m. Πως εφαρμόζονται τα παραπάνω στην παραγοντοποίηση ακεραίων? - ημιουργούνται τα ζευγάρια (x i, x 2i ) μέσω μιας συνάρτησης f(x) = x 2 + 1 mod n και ελέγχουμε κάθε φορά το gcd(x i -x 2i, n). Αν αυτό επιστρέψει τιμή n, τότε o αλγόριθμος τερματίζει. Αν επιστρέψει 1, συνεχίζει με άλλο ζευγάρι τιμών. ιαφορετικά έχουμε βρει έναν παράγοντα του n. 13
Pollard s rho factoring algorithm Αν ο αλγόριθμος τερματίσει με αποτυχία, μπορούμε να τον ξανατρέξουμε με νέες τιμές α, b ή νέο πολυώνυμο f(x) = x 2 + c. 14
Αλγόριθμοι 3) Pollard s p-1 factoring algorithm: Ο αλγόριθμος αυτός βρίσκει πρώτους παράγοντες p ενός ακεραίου n για τους οποίους ο p-1 είναι B-smooth αριθμός. Το όριο Β ορίζεται από τον αλγόριθμο. Η ιδέα πίσω από τον αλγόριθμο είναι η εξής: ΈστωΒέναςακέραιοςκαιQ το ελάχιστο κοινό πολλαπλάσιο όλων των δυνάμεων των πρώτων αριθμών που είναι μικρότεροι από τον Β και επιπλέον οι δυνάμεις αυτές είναι μικρότερες ή ίσες με το n. ηλαδή Q = p e1 1 p e2 2 pek k για όλους τους πρώτους p i <=B και ταυτόχρονα p ei i <=n. 15
Pollard s p-1 factoring algorithm Άρα το Q είναι ίσο με το γινόμενο: Q = q B q ln n ln q Αν p είναιέναςπρώτοςπαράγονταςτουn και επιπλέον ο p-1 είναι B-smooth αριθμός, τότε p-1 Q και επομένως για κάθε ακέραιο α για τον οποίο gcd(a,p) = 1, το θεώρημα του Fermat οδηγεί Q στο συμπέρασμα ότι mod p. a 1 Άρα, αν υπολογίσουμε την τιμή d = gcd(a Q -1, n), τότε p d. Αν d=n τότε ο αλγόριθμος αποτυγχάνει (η πιθανότητα να ισχύει αυτό είναι πολύ μικρή). 16
Pollard s p-1 factoring algorithm Συνήθως επιλέγεται 10 5 <= Β <= 10 6. 17
Αλγόριθμοι 4) Elliptic Curve Method - ECM: Είναι ο 3 ος γρηγορότερος αλγόριθμος μετά τον quadratic sieve και τον general number field sieve. Σχετίζεται με τον αλγόριθμο p-1 του Pollard, με την έννοια ότι τώρα ψάχνουμε ελλειπτικές καμπύλες με smooth τάξη όπως στον p-1 ψάχναμε πρώτους p για τους οποίους η τάξη του Z p είναι ένας B-smooth αριθμός. ηλαδή, η πράξηa p-1 mod p δίνει αποτέλεσμα 1 γιατί στο Z p ητάξη τηςομάδαςείναιp-1. Κάτι ανάλογο ισχύει και στις ελλειπτικές καμπύλες: αν Ρ είναι ένα σημείο στην ελλειπτική καμπύλη και m είναι η τάξη της, τότε mp = O. Ο αλγόριθμος τρέχει σε υποεκθετικό χρόνο. Ο λόγοςείναιότι μπορεί κανείς να βρει εύκολα μια ΕΚ με smooth τάξη (υπάρχουν άπειρες που ορίζονται στο Z p ). 18
Αλγόριθμοι 5) Random square factoring methods: Περιλαμβάνουν τους quadratic sieve και number field sieve αλγόριθμους. Η βασική ιδέα πίσω από τους αλγόριθμους αυτούς είναι η εξής: αν x, y είναι ακέραιοι για τους οποίους x 2 y 2 mod n και ταυτόχρονα x ±y mod n, τότε ο n διαιρεί το x 2 y 2 = (xy)(x+y) αλλά δεν διαιρεί ούτε το (x-y) ούτε το (x+y). Επομένως, το gcd(x-y, n) (ή τοgcd(x+y, n)) θα είναι ένας παράγοντας του n. βρίσκω x, y που ικανοποιούν την ισοτιμία x 2 y 2 mod n με πιθανότητα τουλάχιστον ½ θα ισχύει x ±y mod n, άρα μπορώ να βρω έναν παράγοντα του n 19
Random Square Factoring Methods Λήμμα: Έστω n ένας σύνθετος ακέραιος που διαιρείται από k πρώτους p i > 2. ηλαδή, n = p 1 e1 p k ek με p i > 2. Αν a είναι στοιχείο του Z n*, τότε η ισοτιμία x 2 α 2 mod n έχει ακριβώς 2 k λύσεις modulo n (εκ των οποίων οι δύο είναι οι x = a, x = -a). Παράδειγμα: Έστω n=35=5*7. Τότε οι λύσεις της ισοτιμίας x 2 4mod nείναι τέσσερις. Συγκεκριμένα είναι οι x=2, x=33, x=12 και x=23. Για όλους τους random square factoring αλγόριθμους ακολουθείται η ίδια γενική στρατηγική 20
Random Square Factoring Methods Έστω S = {p 1, p 2,, p t } το σύνολο των t μικρότερων πρώτων αριθμών. Το S καλείται βάση παραγόντων (factor base). Θέλουμε να βρούμε ζευγάρια ακεραίων (a i, b i ) τα οποία ικανοποιούν τις σχέσεις t (i) a i2 b i mod n και (ii) b i = αριθμοί b i να είναι p t -smooth). j= 1 eij p j όπου e ij >=0 (δηλαδή οι Στη συνέχεια βρίσκουμε ένα υποσύνολο των b i τωνοποίωντο γινόμενο είναι ένα τέλειο τετράγωνο. Αυτό επιτυγχάνεται με το να είναι οι δυνάμεις των p i άρτιοι αριθμοί. 21
Random Square Factoring Methods Συγκεκριμένα, σε κάθε ακέραιο b i αντιστοιχίζουμε ένα διάνυσμα u i = (u i1, u i2,, u it ) τέτοιο ώστε u ij = e ij mod 2. ηλαδή οι b i αναπαρίστανται από ένα δυαδικό διάνυσμα t στοιχείων. Π.χ. Αν θεωρήσουμε ότι η βάση παραγόντων αποτελείται από τους t=6 μικρότερους πρώτους αριθμούς {2, 3, 5, 7, 11, 13} και b i είναι ένας p t -smooth αριθμός b i = 2 2 *3*5 3 *11 τότε αυτός αναπαρίσταται από το διάνυσμα (0,1,1,0,1,0). Επομένως, κατασκευάζουμε t+1 τιμές b i, δημιουργούμε τα αντίστοιχα δυαδικά διανύσματα και με μεθόδους γραμμικής άλγεβρας ψάχνουμε να βρούμε υποσύνολο Τ των διανυσμάτων τ.ω. mod 2. i T u i = 0 22
Random Square Factoring Methods Προφανώς, αν το τετράγωνο θα είναι και το a 2 i. i T Άρα, αν θέσουμε x = i T b i i T b i i T είναι τέλειο τετράγωνο, τέλειο a i και y = ακέραιη τετραγωνική ρίζα του τότε το ζευγάρι (x, y) θα ικανοποιεί τη σχέση x 2 y 2 mod n. Αν επιπλέον ισχύει ότι x ±y mod n, τότε το αποτέλεσμα gcd(x-y, n) θα δώσει έναν παράγοντα του n. Σε διαφορετική περίπτωση, επιλέγονται κάποια άλλα ζευγάρια (a i, b i ) και η διαδικασία επαναλαμβάνεται. 23
Random Square Factoring Methods Η παράμετρος t επιλέγεται να είναι ίση με 1 1/ 2 1/ 2 (ln n) (lnln n) 2 t e Πως δημιουργούνται τα ζευγάρια (a i, b i )? O πιο απλός αλγόριθμος είναι ο αλγόριθμος του Dixon. Οι αλγόριθμοι quadratic sieve και number field sieve είναι δύο random square factoring αλγόριθμοι που διαφοροποιούνται μόνο στον τρόπο που βρίσκουν τα ζευγάρια (a i, b i ). 24
Quadratic sieve algorithm Έστω n ο ακέραιος που θέλουμε να παραγοντοποιήσουμε. Υπολογίζουμε την τιμή m = n και το πολυώνυμο q(x) = (x+m) 2 -n. To πολυώνυμο αυτό για μικρές τιμές του x, παίρνει μικρές τιμές σε σχέση με τον ακέραιο n. O quadratic sieve αλγόριθμος επιλέγει τιμές a i = (x+m) και ελέγχει αν οι b i =(x+m) 2 -n είναι p t -smooth. Παρατηρήστε ότι α ι 2 b i mod n. Αν υπάρχει ένας πρώτος p που διαιρεί το b i, τότε (x+m) 2 n mod p και επομένως το n είναι τετραγωνικό υπόλοιπο modulo p. Αυτό σημαίνει ότι στη βάση παραγόντων θα περιλαμβάνονται μόνο οι πρώτοι p για τους οποίους το σύμβολο του Legendre (n/p)=1, καθώς και ο -1 επειδή το b i μπορεί να είναι αρνητικός αριθμός. 25
Quadratic sieve algorithm 26
Number field sieve algorithm Είναι ο γρηγορότερος αλγόριθμος παραγοντοποίησης ακεραίων. Το πλεονέκτημά του έναντι του quadratic sieve είναι ότι χρησιμοποιεί δύο βάσεις παραγόντων: a) Η μία αποτελείται από όλους τους πρώτους που είναι μικρότεροι από κάποιο όριο και b) η δεύτερη αποτελείται από το πλήθος των πρώτων ιδεωδών στον δακτύλιο των ακέραιων αλγεβρικών ενός αλγεβρικού σώματος αριθμών αρκετά πολύπλοκο! Μια παραλλαγή του αλγορίθμου (special number field sieve) χρησιμοποιείται για την παραγοντοποίηση ακεραίων της μορφής n = r e s για μικρές τιμές των r και s. 27
ιάβασμα Κεφάλαια 3 και 6 του Handbook of Applied Cryptography Κεφάλαια 3 και 8 απότοβιβλίοσύγχρονη Κρυπτογραφία: Θεωρία και Εφαρμογές 28