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

Σχετικά έγγραφα
Mαθηµατικές Θεµελιώσεις Kρυπτογραφίας

KΕΦΑΛΑΙΟ 5 ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ

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

KΕΦΑΛΑΙΟ 1 ΧΡΗΣΙΜΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΝΝΟΙΕΣ. { 1,2,3,..., n,...

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

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Κρυπτογραφία ηµόσιου Κλειδιού Η µέθοδος RSA. Κασαπίδης Γεώργιος -Μαθηµατικός

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

Πρόβληµα 2 (15 µονάδες)

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

Πρόβληµα 2 (12 µονάδες)

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

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

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

Αριθµοθεωρητικοί Αλγόριθµοι και το. To Κρυπτοσύστηµα RSA

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

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

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 8

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

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

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις Επαναληψης

Κρυπτογραφία και Πολυπλοκότητα

Θέµατα ( ικαιολογείστε πλήρως όλες τις απαντήσεις σας)

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Ασκησεις - Επανάληψης. ιδασκων: Α. Μπεληγιάννης Ιστοσελιδα Μαθηµατος :

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 9

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

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Λυσεις Ασκησεων - Φυλλαδιο 9

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Προτεινοµενες Ασκησεις - Φυλλαδιο 9

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

Θέµατα ( ικαιολογείστε πλήρως όλες τις απαντήσεις σας)

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Ασκησεις Επαναληψης. ιδασκων: Α. Μπεληγιάννης Ιστοσελιδα Μαθηµατος :

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 7

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 8

* * * ( ) mod p = (a p 1. 2 ) mod p.

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

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Λυσεις Ασκησεων - Φυλλαδιο 2

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

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Λυσεις Ασκησεων - Φυλλαδιο 1

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

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

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

Kεφάλαιο 4. Συστήµατα διαφορικών εξισώσεων.

Κεφάλαιο 2. Παραγοντοποίηση σε Ακέραιες Περιοχές

Kεφάλαιο 4. Συστήµατα διαφορικών εξισώσεων

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Λυσεις Ασκησεων - Φυλλαδιο 7

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

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

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 7

Μάθηµα Θεωρίας Αριθµών Ε.Μ.Ε

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

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 2

Ασκήσεις για το µάθηµα «Ανάλυση Ι και Εφαρµογές» (ε) Κάθε συγκλίνουσα ακολουθία άρρητων αριθµών συγκλίνει σε άρρητο αριθµό.

KΕΦΑΛΑΙΟ 4 AΚΟΛΟΥΘΙΕΣ ΠΡΑΓΜΑΤΙΚΩΝ ΑΡΙΘΜΩΝ

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

Κρυπτογραφία. Εργαστηριακό μάθημα 10 (Επαναληπτικές ασκήσεις)

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Λυσεις Ασκησεων - Φυλλαδιο 3

ΑΛΓΕΒΡΙΚΕΣ ΟΜΕΣ Ι. Ασκησεις - Φυλλαδιο 2

Στοιχεία Θεωρίας Αριθμών

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 3

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Λυσεις Ασκησεων - Φυλλαδιο 1

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

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Λυσεις Ασκησεων - Φυλλαδιο 1

ΚΕΦΑΛΑΙΟ 2 ΜΗ ΓΡΑΜΜΙΚΕΣ ΕΞΙΣΩΣΕΙΣ

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

11 Το ολοκλήρωµα Riemann

El Gamal Αλγόριθμος. Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 7 2

< 1 για κάθε k N, τότε η σειρά a k συγκλίνει. +, τότε η η σειρά a k αποκλίνει.

ΚΕΦΑΛΑΙΟ 5 ΠΑΡΕΜΒΟΛΗ. Εστω f πραγµατική συνάρτηση, της οποίας είναι γνωστές µόνον οι τιµές f(x i ) σε n+1 σηµεία xi

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

KΕΦΑΛΑΙΟ 3. Πλεγµένες συναρτήσεις- Ανάπτυγµα Taylor-Aκρότατα

Kεφάλαιο 5. µετασχηµατισµού Laplace.

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 3

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

W i. Subset Sum Μια παραλλαγή του προβλήματος knapsack είναι το πρόβλημα Subset Sum, το οποίο δεν λαμβάνει υπόψιν την αξία των αντικειμένων:

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ: ΠΛΗΡΟΦΟΡΙΚΗ ΘΕ: ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΤΗΝ ΠΛΗΡΟΦΟΡΙΚΉ Ι (ΠΛΗ 12) ΛΥΣΕΙΣ ΕΡΓΑΣΙΑΣ 3

(x) = δ(x) π(x) + υ(x)

Γενικές Παρατηρήσεις. Μη Κανονικές Γλώσσες - Χωρίς Συµφραζόµενα (1) Το Λήµµα της Αντλησης. Χρήση του Λήµµατος Αντλησης.

Αριθµητική Ανάλυση 1 εκεµβρίου / 43

ΠΑΡΑΓΩΓΟΣ ΣΥΝΑΡΤΗΣΗ. Εφαπτοµένη ευθεία

Αλγεβρικες οµες Ι Ασκησεις - Φυλλαδιο 5

F 5 = (F n, F n+1 ) = 1.

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

Άλγεβρα Γενικής Παιδείας Β Λυκείου 2001

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

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

Κεφάλαιο 8 Το αόριστο ολοκλήρωµα

(CLR, κεφάλαιο 32) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Παραστάσεις πολυωνύµων Πολυωνυµική Παρεµβολή ιακριτός Μετασχηµατισµός Fourier

x - 1, x < 1 f(x) = x - x + 3, x

Υπολογισμός της δύναμης z=x b modn

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

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 6

Threshold Cryptography Algorithms. Εργασία στα πλαίσια του μαθήματος Τεχνολογίες Υπολογιστικού Νέφους

1 Ορισµός ακολουθίας πραγµατικών αριθµών

Η Ευκλείδεια διαίρεση

Κεφάλαιο 7 Βασικά Θεωρήµατα του ιαφορικού Λογισµού

ΑΠΑΝΤΗΣΕΙΣ - ΥΠΟ ΕΙΞΕΙΣ ΣΤΙΣ ΕΡΩΤΗΣΕΙΣ

τη µέθοδο της µαθηµατικής επαγωγής για να αποδείξουµε τη Ϲητούµενη ισότητα.

Όρια συναρτήσεων. ε > υπάρχει ( ) { } = ± ορίζονται αναλόγως. Η διατύπωση αυτών των ορισµών αφήνεται ως άσκηση. x y = +. = και για κάθε (, ) ( 0,0)

ΚΕΦΑΛΑΙΟ 4 ΑΡΙΘΜΗΤΙΚΕΣ ΜΕΘΟ ΟΙ ΕΥΡΕΣΗΣ ΠΡΑΓΜΑΤΙΚΩΝ Ι ΙΟΤΙΜΩΝ. 4.1 Γραµµικοί µετασχηµατισµοί-ιδιοτιµές-ιδιοδιανύσµατα

KΕΦΑΛΑΙΟ 6 ΥΝΑΜΟΣΕΙΡΕΣ-ΣΕΙΡΕΣ TAYLOR

Transcript:

KΕΦΑΛΑΙΟ 3 ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ 1 Το Κρυπτοσύστηµα RSA Η ιδέα της κρυπτογραφίας δηµοσίου κλειδιού παρουσιάσθηκε για πρώτη φορά το 1976 από τους Dffe και Hellman Ένα χρόνο αργότερα, οι R L Rvest, A Shamr και L Adleman εφηύραν το κρυπτοσύστηµα δηµοσίου κλειδιού RSA, το οποίο βασίζεται στη δυσκολία παραγοντοποίησης µεγάλων ακεραίων Έστω, q > είναι δύο διαφορετικοί πρώτοι αριθµοί και n = q Ο χώρος Ρ των καθαρών µηνυµάτων και ο χώρος C των κρυπτογραφηµένων µηνυµάτων είναι ο χώρος n Ο χώρος Κ των κλειδιών είναι η πολ/κή οµάδα K = * φ ( n) Το σύνολο των συναρτήσεων κρυπτογράφησης είναι της µορφής: f :, x x e, e K, e n n και το σύνολο των συναρτήσεων αποκρυπτογράφησης είναι της µορφής: d g :, x x, d n n όπου ed 1mod φ( n) Προφανώς: Eστω ( ) d de 1mod φ( n) 1 + kφ( n) ( e( )) g f x = x = x = x = 1 + kφ ( n x ) mod n x, n = 1, 0< x< n, τότε από το Θεώρηµα του Euler έχουµε: x φ ( n) 1modn, άρα: = 1+ = + mod kφ( n) kφ( n) 1 k ( n) x jn x x x xjn x + φ x n 34

Eστω ( x, n) 1, 0 x n Αν x = l, τότε θα πρέπει ( ) < <, εφόσον n= q θα πρέπει x = l ή x = lq xq, = 1, διότι αλλιώς θα πρέπει x = jq, δηλαδή x = mq, m > 1 (άτοπο διότι εξ υποθέσεως 0< x < n= q) Αρα: (, ) 1 φ xq = ( ) ( ) φ( q) φ( q) φ( n) x 1modq x 1mod q x 1mod q = + = + = + = + φ( n) φ( n) 1 ( n) x 1 kq x x x xkq x lkq x + φ x lkn 1 +φ ( n) x xmod n ( ) Tελικά: d e( ) k g f x = xmod n 1 mod n= xmod n= x Το ζεύγος (n, e) καλείται δηµόσιο κλειδί του κρυπτοσυστήµατος και δηµοσιοποιείται, ενώ ο φυσικός d καλείται ιδιωτικό κλειδί και κρατείται µυστικός Η σχέση µεταξύ τους είναι ed 1mod( ϕ( n)) Παράδειγµα 1: Έστω ότι ο Α διαλέγει τους πρώτους αριθµούς = 11 και q = 3 Τότε, n = 11 3=53 και 1 1 ϕ( n) = 53 1 1 11 3 =0 Εστω e = 3, τότε, χρησιµοποιώντας τον Ευκλείδειο αλγόριθµο, υπολογίζουµε το ιδιωτικό κλειδί αποκρυπτογράφησης: 0 = 3 73 + 1 1 = 0 3 73, άρα: d = 73 = 147 mod 0 d = 147 Ας υποθέσουµε ότι ο Β θέλει να στείλει το µήνυµα x = 63 (mod53), τότε χρησιµοποιεί τη συνάρτηση κρυπτογράφησης x x x e 3 3 = = 63 = 50047 83mod(53), άρα c = 83 Τότε ο Α αποκρυπτογραφεί κάνοντας τον υπολογισµό: 35

d 147 c = 83 63mod 53 Παρατήρηση: O υπολογισµός µεγάλων δυνάµεων όπως πχ η παραπάνω 147 ποσότητα 83 mod 53 γίνεται µε κανόνες της modular εκθετοποίησης 147 Θα περιγράψουµε τον υπολογισµό του 83 mod 53: Aρχικά υπολογίζουµε τη δυαδική αναπαράσταση του αριθµού 147: 147 = ( 10010011) Στη συνέχεια υπολογίζουµε δυνάµεις του 83 της µορφής r, 1 r N, όπου Ν είναι το πλήθος των δυαδικών ψηφίων του 147: 1 83 mod 53 = 83, 83 mod 53 = 58, ( ) 4 83 mod 53 83 mod 53 58 mod 53 75 ( ) = = =, 8 4 83 mod 53 83 mod 53 75 mod 53 59 ( ) = = =, 16 8 83 mod 53 83 mod 53 59 mod 53 19 ( ) = = =, 3 16 83 mod 53 83 mod 53 19 mod 53 179 ( ) = = =, 64 3 83 mod 53 83 mod 53 179 mod 53 163 ( ) = = =, 18 64 83 mod 53 83 mod 53 163 mod 53 4 Τέλος υπολογίζουµε: = = = 147 18 16 1 83 mod 53 = 83 83 83 83 mod 53 = 4 19 58 83mod 53 = 63 Παράδειγµα : Έστω = 81, q = 167, τότε n = 81 167 = 4697 και εργαζόµενοι όπως προηγουµένως υπολογίζουµε ότι ϕ ( n) = 46480 Έστω e = 11, τότε µε χρήση του Ευκλείδιου αλγορίθµου υπολογίζουµε ότι d = 36

8451 Έστω ότι ο Β επιθυµεί να στείλει το µήνυµα ΣΗΜΕΡΑ µε τη συνήθη αντιστοιχία A 0,,Ω 3 Εφόσον n = 4697 και το µήκος του αλφαβήτου είναι N = 4, υπολογίζoυµε την ποσότητα k [ n] [ ] [ ] = log = log 4697 = 338457 = 3 N 4 Στη συνέχεια χωρίζουµε το µήνυµα σε k-άδες δηλαδή στην προκειµένη περίπτωση σε 3-άδες τις ακόλουθες: ΣΗΜ και ΕΡΑ Στη συνέχεια µετατρέπουµε κάθε τριάδα σε αριθµητική ακολουθία µε τη συνήθη αντιστοιχία: " ΣΗΜ" {17,6,11} " ΕΡΑ " {4,16,0} Κάθε µία από τις δύο ακολουθίες που προκύπτουν τις µετατρέπουµε σε έναν αριθµό στο Ν-αδικό (στην προκειµένη περίπτωση στο 4-αδικό) σύστηµα αρίθµησης ως εξής: + + = = + + = = 1 0 {17,6,11} 17 4 6 4 11 4 a 9947 1 0 {4,16,0} 4 4 16 4 0 4 b 688 Στην συνέχεια κωδικοποιούµε τους α και b ως εξής: 11 a mod n= A1 = 1898mod 4697 11 b mod n= B1 = 5833mod 4697 Στη συνέχεια γράφουµε τους A1 και B 1 στο 4αδικό σύστηµα αρίθµησης και προκύπτει { } { } 1898 0,3,,7 " A ΓΘ" 5833 1,0,0,9 " ΒΦΦΚ" οπότε το κρυπτογραφηµένο µήνυµα είναι το c = Α ΓΘΒΦΦΚ Ο δέκτης χωρίζει το µήνυµα ανά 4-άδες, κωδικοποιεί µε 4αδική γραφή και αποκωδικοποιεί µε χρήση του d 37

Παρατηρήσεις: Εφόσον ed = 1 + l( 1)( q 1), o υπολογισµός του ιδιωτικού κλειδιού d, από το ζεύγος (n, e) ισοδυναµεί µε την εύρεση των πρώτων παραγόντων, q Με τη σειρά της, η εύρεση της παραγοντοποίησης του n ισοδυναµεί µε την εύρεση της τιµής φ(n) Εάν γνωρίζουµε την τιµή φ(n), τότε ϕ ( n) = ( 1)( q 1), άρα: n = q και + q = n + 1- φ(n), οπότε τα, q είναι λύσεις της εξίσωσης: x n ϕ n x n ( + 1 ( )) + = 0 Αντιστρόφως, εάν γνωρίζουµε το ιδιωτικό κλειδί d, τότε µπορούµε να υπολογίσουµε τους πρώτους παράγοντες, q του n ως εξής: και Αποδεικνύεται ότι : n θέτουµε s = max{ n : /( ed 1)} ed 1 k = (1) s Θεώρηµα 1 Για κάθε ζεύγος πρώτων µεταξύ τους φυσικών αριθµών an, k k τέτοιων ώστε ord ( a ) ordq( a ), (n = q), όπου το k δίνεται στη σχέση (1) ισχύει r k gcd( 1, ) a n = q ή, όταν r < s Eπιπλέον υπάρχουν τουλάχιστον ( 1)( q 1)/ τέτοιοι φυσικοί αριθµοί α στο διάστηµα [1, n] Συνεπώς, η πιθανότητα να επιλέξουµε έναν τέτοιο 1 αριθµό µετά από r επαναλήψεις είναι τουλάχιστον 1 r Αλγόριθµος παραγοντοποίησης του n δοθέντος ιδιωτικού κλειδιού d: Επιλέγουµε τυχαίο a [1, n] 38

ορίζουµε k όπως στην (1) Υπολογίζουµε: gcd( r k a 1, n) για r < s Αν gcd( r k a 1, n) = 1 r < s, επιλέγουµε άλλο α, αλλιώς αν :gcd( r k r a 1, n) > 1, τότε gcd( r k a 1, n) = 0 Εφόσον η ασφάλεια του RSA βασίζεται στη δυσκολία παραγοντοποίησης του n, ο ακέραιος n και κατά συνεπεία οι παράγοντες του και q θα πρέπει να πληρούν µερικούς περιορισµούς ώστε η παραγοντοποίηση του n να είναι πολύ δύσκολη 1 Πρέπει να διαλέγουµε πρώτους αριθµούς µε το ίδιο µήκος περίπου, το οποίο να είναι µεγαλύτερο από το 51 και να µην είναι κάποιας ειδικής µορφής Ένας τρόπος κατασκευής τέτοιων πρώτων είναι µε χρήση αλγορίθµων που παράγουν ακολουθίες δυαδικών ψηφίων ώστε οι πιθανότητες εµφάνισης του 0 και 1 σε κάθε θέση να είναι περίπου ίδιες Αυτοί οι αλγόριθµοι καλούνται γεννήτορες ψευδοτυχαίων αριθµών Ένα τέτοιο παράδειγµα είναι τα γραµµικά συστήµατα καταγραφής µετατόπισης µε ανάδραση Για να βρούµε έναν τυχαίο πρώτο µήκους k, θεωρούµε έναν γεννήτορα ψευδοτυχαίων αριθµών και παράγουµε µια ακολουθία k στοιχείων a1,, ak {0,1} Ο ακέραιος k a = + a + + a + 1 k 1 k 1 1 είναι περιττός και το µήκος του ισούται µε k Κατόπιν εφαρµόζουµε κάποιο κριτήριο πιστοποίησης πρώτου για να διαπιστώσουµε αν ο a είναι πρώτος Αν όχι θεωρούµε µια άλλη ακολουθία ψηφίων κλπ µέχρι να βρούµε έναν πρώτο Κάθε δυο µέλη µιας οµάδας χρηστών του RSA πρέπει να έχουν διαφορετικό ακέραιο n στα δηµόσια κλειδιά τους Πράγµατι αν ( na, ea), ( nb, e B) είναι τα δηµόσια κλειδιά τους και αν na = nb = n, τότε ο καθένας τους µπορεί µε χρήση του ιδιωτικού κλειδιού του, να παραγοντοποιήσει το n και συνεπώς να υπολογίσει το ιδιωτικό κλειδί του άλλου Αν επιπλέον υποθέσουµε ( e, e ) = 1, τότε x, y : A B xe A + ye = 1, B οπότε εάν κάποιος τρίτος χρήστης στέλνει το ίδιο µήνυµα στους Α, Β υπάρχουν ακέραιοι 0 c, c < n ώστε: A B 39

ea ca = m mod n e, B c = m mod n B άρα: x y xea+ yeb c c m mod n mmod n, A B άρα οποιοσδήποτε έχει στην κατοχή του τα κρυπτογραφηµένα κείµενα c, c µπορεί να βρει το m A B 3 Είναι ασφαλέστερο να αποφεύγεται η χρήση µικρών κλειδιών κρυπτογράφησης Για παράδειγµα, αν υποθέσουµε ότι ένα µήνυµα m κρυπτογραφείται e-φορές µε την χρήση δηµοσιών κλειδιών ( n, e ) και c είναι τα αντίστοιχα κρυπτογραφήµατα τότε έχουµε: e c m mod( n ) Αν ( n, nj) = 1, j τότε από το Θεώρηµα Υπολοίπων του Κινέζου 1/ e υπάρχει µοναδική λύση mod( n1 n e), άρα: m= c 4 Θεωρείται ασφαλέστερο ένα κλειδί αποκρυπτογράφησης που η τιµή του είναι µεγαλύτερη της 4 /3 n 5 Έστω (n, e) δηµόσιο κλειδί RSA Εφόσον (e, φ(n)) = 1, έχουµε: άρα: k k : e 1mod ϕ( n), k η τάξη του e, k 1 e e e c m mod ϕ( n) c m mmod n, k εποµένως εάν κάποιος γνωρίζει το c χωρίς να ξέρει το κλειδί αποκρυπτογράφησης, υπολογίζει τις ποσότητες e e c mod n, c mod n, u e e µέχρι να βρεθεί u ώστε c cmod nτότε m c mod n Πρακτικά αυτό χρησιµοποιείται µόνον στην περίπτωση που ο u είναι µικρός u 1 40

Το Κρυπτοσύστηµα Rabn Προτάθηκε το 1979 από τον MO Rabn και η ασφάλεια του έγκειται επίσης στη δυσκοίλια παραγοντοποίησης µεγάλων ακεραίων Έστω, q > διαφορετικοί πρώτοι και n = q Ορίζουµε: Το σύνολο x y x = y mod n, x, y n P = { x: x y; y, x }, είναι το σύνολο των καθαρών µηνυµάτων και το σύνολο n C x x P = { / }, είναι το σύνολο των κρυπτογραφηµένων µηνυµάτων Η συνάρτηση f : P C, x x, είναι η συνάρτηση κρυπτογράφησης και η συνάρτηση g: C P, x x είναι η συνάρτηση αποκρυπτογράφησης Ο ακέραιος αριθµός n είναι το δηµόσιο κλειδί και το ζεύγος (, q) είναι το ιδιωτικό κλειδί Έστω το µήνυµα m, τότε δηµιουργείται το κρυπτογράφηµα c m = Για την αποκρυπτογράφηση πρέπει να υπολογίσουµε τις τετραγωνικές ρίζες του mod c n Πρώτα υπολογίζουµε τις ρίζες του cmod, cmod q Για σχετικά µικρό, q (, q πρώτοι) υπολογίζουµε εύκολα το σύνολο C = { x : x n }, από όπου προκύπτει ότι x ± m mod, x ± m mod q q 41

Στη συνέχεια από τον Ευκλείδειο αλγόριθµο, λ, µ : λ + µ q = 1 Θέτουµε: x m q m w= m q m, = λ q + µ και λ q µ οπότε: και και οι λύσεις της x m mod και x m mod q, w m mod και w m mod q, x cmod n είναι οι ± x, ± wmodn q q ΠΑΡΑ ΕΙΓΜΑ: Έστω n = 77 Αν m = 17 να κρυπτογραφηθεί και να αποκρυπτογραφηθεί µε την µέθοδο Rabn το m Απάντηση: Eχουµε: n = 77 = 7 11 = 7, q = 11 Σχηµατίζουµε τους πίνακες x mod x, mod q: x Z 7 0 1 3 4 5 6 x - 1 4 4 1 x Z 11 0 1 3 4 5 6 7 8 9 10 x - 1 4 9 5 3 3 5 9 4 1 άρα: C = {1,,4}, C = {1,3,4,5,9} 7 11 Έχουµε λοιπόν: m άρα c = 58 Επειδή: m από τον 1 ο πίνακα παίρνουµε = 17 = 89mod 77 = 58mod 77, c mod7= 58mod7= mod7, 4

x mod7 3mod7 3mod7 x=± m ± Οµοίως: c mod11 = 58 mod11 = 3mod11, και και από τον ο πίνακα παίρνουµε: x x m q 3mod11 5mod11 ± 5mod11 Aπό τον αλγόριθµο του Ευκλείδη έχουµε: δηλαδή: 11= 7 + 4 7 = 4 + 3 4 = 3 + 1, 1 = 4 3 = 4 (7 4) = 7 + 4 = 7 + (11 7) = 11 3 7 oπότε: 11 37 = 1 Θέτουµε: οπότε οι λύσεις είναι: x =± 39mod 77, x = 113 375 = 39, w = 113 + 375 = 171 ± 171mod77 = ± 39mod 77, ± 17 mod 77 Το γεγονός ότι βρίσκουµε εν γένει 4 λύσεις είναι ένα µειονέκτηµα το οποίο ξεπερνιέται συνήθως µε την παράθεση στην αρχή ή στο τέλος όµοιων συµβόλων ΠΑΡΑΤΗΡΗΣΗ: Γενικά, για τον υπολογισµό των τετραγωνικών υπολοίπων mod χρησιµοποιούµε τον αλγόριθµο Shanks: ή πρώτος 1= S t, t περιττός ακέραιος t Έστω a µη τετραγωνικό υπόλοιπο και z = a t ( t+ 1)/ Θέτουµε ( b0, x0, y0, r0) = ( c, c, z, s 1), όπου c είναι το κρυπτογράφηµα Για κάθε = 0,1,, s 1 θέτουµε: b+ x + y + r+ = b x y r εάν b ( 1, 1, 1, 1) (,,, 1) r 1 1(mod ), 43

b+ x + y + r+ = b y x y y r εάν ( 1, 1, 1, 1) (,,, 1) b r 1 1(mod ) Οι τετραγωνικές ρίζες του c(mod) δίνονται από τους ακεραίους ± xs 1 Για την αποκρυπτογράφηση ενός κρυπτοσυστήµατος Rabn πρέπει να υπολογίσουµε τις τετραγωνικές ρίζες του cmod n Αν γνωρίζουµε το ιδιωτικό κλειδί, αυτό είναι σχετικά εύκολο Αν όµως δεν γνωρίζουµε την παραγοντοποίηση του n, τότε το πρόβληµα της εύρεσης µιας τετραγωνικής ρίζας του cmod n είναι τόσο δύσκολο όσο η παραγοντοποίηση του n Πιστοποίηση πρώτου Στα κρυπτοσυστήµατα RSA και Rabn χρησιµοποιούνται µεγάλοι πρώτοι που επιλέγονται τυχαία Αυτό γίνεται κατασκευάζοντας περιττούς θετικούς, οι οποίοι ελέγχονται στην συνέχεια για να διαπιστωθεί εάν είναι πρώτοι Η πιο απλή αλλά και χρονοβόρα µέθοδος βασίζεται στην ακόλουθη: Πρόταση 1: Αν ο n είναι σύνθετος ακέραιος, τότε έχει έναν τουλάχιστο πρώτο διαιρέτη µε n ηλαδή, για να διαπιστώσουµε εάν ο n είναι πρώτος, δοκιµάζουµε αν διαιρείται µε όλους τους πρώτους n Αυτή η µέθοδος καλείται µέθοδος διαδοχικών διαιρέσεων Λαµβάνοντας υπόψη ότι οι πρώτοι που 75 χρησιµοποιούνται στο RSA είναι > 10 για την µέθοδο αυτήν χρειαζό- O n n διαιρέσεις, άρα ο χρόνος είναι ( ln( )) µαστε ( /ln( )) O n n και 75 συνεπώς για n > 10 είναι εκθετικός Το 00 οι Agrawal, Kayal και Saxena δηµοσιοποίησαν έναν αλγόριθµο πιστοποίησης πρώτου σε πολυωνυµικό χρόνο Πρόταση (Lucas) Έστω n > είναι περιττός θετικός, τότε ο n είναι πρώτος αν και µόνον αν υπάρχει a:( a, n ) = 1 τέτοιος ώστε: n 1 a = 1modn και a ( n 1)/ 1modn για κάθε πρώτο διαιρέτη του n-1 Παράδειγµα Έστω 3 n = 1+ 3 5 7 101 Θεωρούµε a =, τότε: 44

= n, n 1 1mod = n,, ( n 1)/ 1mod n, ( n 1) /101 1mod άρα ο n είναι πρώτος n Ο χρόνος για τον υπολογισµό του a 1 3 mod n O log( n ) O(log( n)) όσο το πλήθος των πρώτων n 1, άρα o συνολικός χρόνος 4 υπολογισµού είναι O(log( n ) ) Κριτήριο Fermat: Εφόσον a 1, εάν βρεθεί a τέτοιος ώστε: είναι ( ) 1 = 1mod όταν είναι πρώτος (a, ) = n a 1 1modn n 1 τότε ο n είναι σύνθετος Εάν συµβεί a = 1modn, δεν µπορούµε να αποφανθούµε εάν ο n είναι πρώτος ή σύνθετος Παραγοντοποίηση ακεραίων Η παλαιότερη µέθοδος για την παραγοντοποίηση ακεραίου είναι η µέθοδος των διαδοχικών διαιρέσεων Αν ο n είναι θετικός ακέραιος, βρίσκουµε (εάν υπάρχει) έναν πρώτο παράγοντα αυτού n, οπότε 1 = n1 Στη συνέχεια βρίσκουµε έναν πρώτο παράγοντα 1 n1 του n 1 κλπ Εάν όµως ο n είναι πολύ µεγάλος, η µέθοδος δεν είναι αποτελεσµατική Θα αναφέρουµε ενδεικτικά έναν αλγόριθµο παραγοντοποίησης, γνωστό µε την ονοµασία µέθοδος Monte Carlo Έστω n σύνθετος περιττός που θέλουµε να παραγοντοποιήσουµε Επιλέγουµε x0 {0,1,, n 1}, f( X) [ X] και ορίζουµε ακολουθία ακεραίων x {0,1,, n 1}, = 0,1,: x f( x )modn 1 Υπολογίζουµε τους µέγιστους κοινούς διαιρέτες d = ( x x, n), = 0,1, 45

µέχρι να βρούµε δείκτη k : 1< dk < n Ο d k είναι ένας µη τετριµµένος παράγοντας του n Εάν τέτοιος δείκτης δεν είναι δυνατόν να προσδιορισθεί επαναλαµβάνουµε τη διαδικασία παίρνοντας άλλη τιµή για το x0 ή άλλο πολυώνυµο f ( x ) Παρατήρηση: Eστω n είναι ένας πρώτος διαιρέτης του n Υπό την προϋπόθεση ότι η ακολουθία { d1, d, } έχει τυχαία συµπεριφορά, τότε εάν ο αλγόριθµος Μοnte Carlo επαναληφθεί 1+ 1+ 8 n log k φορές, τότε η πιθανότητα να ευρεθεί ένας πρώτος διαιρέτης του αριθµού n είναι µεγαλύτερη του 05 Κρυπτοσύστηµα ElGamal Η δυσκολία του κρυπτοσυστήµατος αυτού βασίζεται στο πρόβληµα εύρεσης διακριτού λογαρίθµου Η εύρεση του διακριτού λογαρίθµου θεωρείται δύσκολο πρόβληµα και δεν υπάρχει αλγόριθµος πολυωνυµικού χρόνου επίλυσης του Η πιο απλή µέθοδος υπολογισµού του είναι η µέθοδος απαρίθµησης, δηλαδή ο υπολογισµός όλων των δυνάµεων x 1030 gg,,,: a = g, πχ 3 5 mod(017) log5 3 = 1030, άρα χρειαζό- µαστε 109 πολ/σµους mod(017) Έστω πρώτος και G είναι το σύνολο των αρχικών ριζών gmod Ο * χώρος των καθαρών µηνυµάτων είναι η πολ/κη οµάδα και ο χώρος * * των κρυπτογραφηµένων κειµένων είναι η οµάδα Ο χώρος των κλειδιών Κ είναι το σύνολο G Σ Σ όπου Σ = {1,,, 1} Για κάθε κλειδί k = (g, y, z) η συνάρτηση κρυπτογράφησης είναι: z z E : P C, m ( g, y m) και η συνάρτηση αποκρυπτογράφησης είναι η: k 1 d Dl : C P, ( u, v) u v, 46

όπου l = (g, d, z), και d = log g y Τότε: z z z 1 d z ( ) d 1 = = ( ) =( ) D ( f ) D( g, y m) g g m l k l z g m mmod Η τριάδα (, g, y) είναι το δηµόσιο κλειδί του κρυπτοσυστήµατος και δηµοσιοποιείται, ενώ ο διακριτός λογάριθµος d του y ως προς την βάση g είναι το ιδιωτικό κλειδί και κρατείται µυστικό Παρατήρηση: Oλα τα κλειδιά της µορφής l = (g, d, 1), l = (g, d, ),, l = (g, d, -1) αποκρυπτογραφούν το ίδιο κρυπτογράφηµα c ηλαδή, η µεταβλητή z στο κλειδί είναι µία παράµετρος, η αλλαγή της οποίας προκαλεί διαφορετικό κρυπτογράφηµα για το ίδιο µήνυµα m Aυτό είναι ένα πλεονέκτηµα του κρυπτοσυστήµατος ElGamal Από την άλλη µεριά το κρυπτογράφηµα έχει µήκος διπλάσιο του αρχικού, το οποίο είναι ένα µειονέκτηµα της µεθόδου αυτής Παράδειγµα: Έστω ο Α επιλέγει τον πρώτο = 11 και την αρχική ρίζα 7 g = αυτού Επιλέγει d = 7 και υπολογίζει y = = 18 7 mod11, άρα το δηµόσιο κλειδί είναι το (11,,7) Έστω ότι ο Α στέλνει το µήνυµα m = 10, τότε για z = 3 τυχαίο z z 3 3 (, ) (,7 10) (8,3430) 9mod11 g y m = άρα c = (8, 9) Για την αποκρυπτογράφηση έχουµε: 1 d 3 8 9 8 9 51 9 10mod11 = = Για τον υπολογισµό του διακριτού λογαρίθµου υπάρχουν αλγόριθµοι εκθετικού και υποεκθετικού χρόνου Αναφέρουµε ενδεικτικά: (a) αλγόριθµος Shanks: Έστω g αρχική ρίζα οµάδας G τάξης n οθέντος y G θέλουµε να x υπολογίσουµε x G: y = g Έστω 1 < q < n φυσικός Τότε x = q + j, 0 j < q, άρα: x q+ j j q y= g = g yg = g Η εξίσωση αυτή, δεδοµένου του γεγονότος ότι (, j) µοναδικό ζεύγος υποδεικνύει τον αλγόριθµο: 47

Εκλέγουµε τυχαίο 1 < q < n Υπολογίζουµε u = g 1 και w q = g Για j = 0,1,, q 1 υπολογίζουµε το j yu Για 0,1,, [ n/ q] = υπολογίζουµε το κάποιο από τα j yu του προηγούµενου βήµατος w και ελέγχουµε εάν είναι Αν βρεθεί ισότητα για κάποιο ( 0, j 0), τότε x = q 0 + j0 Οι πράξεις που απαιτούνται είναι Oq ( + n/ q) και λόγω ελευθερίας εκλογής του q, η ποσότητα ελαχιστοποιείται όταν q = n, άρα O( n ) Άρα, για µεγάλο n ο χρόνος είναι εκθετικός (β) Ο αλγόριθµος των Rohlg και Hellman Έστω πρώτος και φ ( ) = t q s, όπου q-πρώτος Αν υπολογίσουµε τα x mod t και xmod q s, δηλαδή εάν βρούµε 0 a < t s, 0 b< q τέτοια ώστε: t x amod, s x bmod q τότε µπορούµε να βρούµε x: του Κινέζου Γράφουµε το a στην βάση : τα a0, a1,, at 1 Έχουµε: x y= g mod n, από το θεώρηµα Υπολοίπων a= a + a + + t at Θα υπολογίσουµε 1 0 1 1 φ ( ) x φ( )/ ( )/ x x 0 0 x a0+ a1+ a0 y= g y = y = g = g, y = g = g g 0 0 0 0 Το a 0 υπολογίζεται µε τον αλγόριθµο Shanks Για τον a 1: y= g y = y = ( g ) = g y = g x φ( )/ φ ( )/ x x a + a 1 1 1 1 0 1 48

a a 1 1 1 1 a άρα: ( ) 1 yg = g a = log ( yg ) κλπ Οµοίως υπολογίζεται ο b 0 0 g1 Το πλήθος των πράξεων είναι O( qlog ( φ ( ))) Αν λοιπόν θέλουµε το πρόβληµα ElGamal να έχει ασφάλεια, θα πρέπει ο q να είναι µεγάλος t πρώτος Για παράδειγµα, εάν ο = + 1 είναι πρώτος και θέλουµε να υπολογίσουµε διακριτούς λογαρίθµους στην οµάδα, η τάξη της είναι φ ( ) = 1= t, οπότε µε τον αλγόριθµο αυτό υπολογίζουµε διακριτούς λογαρίθµους σε Ot ( log ) χρόνο Παράδειγµα: Ας δούµε ένα παράδειγµα υπολογισµού διακριτού λογαρίθµου µε την µέθοδο Pohlng-Hellman Έστω = 9, y = 10, g = 3, τότε φ ( ) = 8= 7 Θα υπολογίσoυµε τα xmod, x mod7, δηλαδή θα υπολογίσουµε a και b τέτοια ώστε: Έχουµε: a= a0 + a1, οπότε: Αλλά: Aλλά: x amod x bmod7 ( ) ( ) ( ) x a a 10 3 10 10 3 3 10 3 x φ ( ) / 14 14 14 0 14 14 0 = = = = =, 14 10 8mod 9 και 14 3 8mod 9, άρα: a 0 = 1 Στη συνέχεια: + ( ) ( ) ( ) x a a a 10 3 10 10 3 3 10 3 3 x φ ( )/4 7 7 7 0 1 7 7 14 1 = = = = =, 7 10 17mod 9 και 7 3 1mod9, άρα: a1 a1 1 17 = 1 8 8 = 17 1 8mod 9 a = 1, 1 άρα: a = 3 Για το b έχουµε: ( ) ( )/7 4 4 b y φ = 10 = 3 4mod 9 49

4 4 b Aλλά: 10 4mod 9 και 3 3mod 9, άρα 4 = 3 mod 9, οπότε εξετάζω τις περιπτώσεις b = 0,,6 και βρίσκω b = 6, άρα: x 3mod4 x 6mod7 Με τον αλγόριθµο του Κινέζου βρίσκω x = 7 AΣΚΗΣΕΙΣ 1 Έστω n = 143 Να παραγοντοποιηθεί ο n Αν m = 14 να κρυπτογραφηθεί και να αποκρυπτογραφηθεί µε την µέθοδο Rabn το m Έστω (13, 6, 5) το δηµόσιο κλειδί ElGamal Nα υπολογίσετε το ιδιωτικό κλειδί d του κρυπτοσυστήµατος και στη συνέχεια να κρυπτογραφήσετε και να αποκρυπτογραφήσετε το µήνυµα m = 10 χρησιµοποιώντας τυχαίο z 3 Εστω = 73, g = 5 Χρησιµοποιήστε τον αλγόριθµο Rohlg-Hellman * για να υπολογίσετε το διακριτό λογάριθµο log510 στην οµάδα 73 4 Έστω (11,, 5) το δηµόσιο κλειδί ElGamal Nα κρυπτογραφήσετε το µήνυµα {1,1,0,0,1,1} χρησιµοποιώντας το κρυπτοσύστηµα ΕlGamal 50