Κρυπτογραφία - euclid.ee.duth.gr · 2/4/2014 6 Πρώτοι αριθμοί –...

34
2/4/2014 1 1 Κρυπτογραφία Θεωρία Αριθμών Παύλος Εφραιμίδης v1.8, 02/04/2014 1 Θεωρία Αριθμών Θεωρία Αριθμών Ένας όμορφος κλάδος των μαθηματικών Απέκτησε μεγάλη πρακτική αξία χάρη στη Σύγχρονη Κρυπτογραφία Η Υπολογιστική Πολυπλοκότητα συγκεκριμένων υπολογιστικών προβλημάτων της Θεωρίας Αριθμών αποτελεί τη βάση της Σύγχρονης Κρυπτογραφίας 2 Γιατί χρησιμοποιούμε Θεωρία Αριθμών στη σύγχρονη Κρυπτογραφία; 3

Transcript of Κρυπτογραφία - euclid.ee.duth.gr · 2/4/2014 6 Πρώτοι αριθμοί –...

Page 1: Κρυπτογραφία - euclid.ee.duth.gr · 2/4/2014 6 Πρώτοι αριθμοί – Σύνθετοι Αριθμοί Ακέραιος αριθμός α. Αν α > 1 και οι

2/4/2014

1

1

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

Θεωρία Αριθμών

Παύλος Εφραιμίδης

v1.8, 02/04/2014

1

Θεωρία Αριθμών

� Θεωρία Αριθμών

� Ένας όμορφος κλάδος των μαθηματικών

� Απέκτησε μεγάλη πρακτική αξία χάρη στη Σύγχρονη Κρυπτογραφία

� Η Υπολογιστική Πολυπλοκότητα συγκεκριμένων υπολογιστικών προβλημάτων της Θεωρίας Αριθμών αποτελεί τη βάση της Σύγχρονης Κρυπτογραφίας

2

Γιατί χρησιμοποιούμε Θεωρία Αριθμών στη σύγχρονη Κρυπτογραφία;

3

Page 2: Κρυπτογραφία - euclid.ee.duth.gr · 2/4/2014 6 Πρώτοι αριθμοί – Σύνθετοι Αριθμοί Ακέραιος αριθμός α. Αν α > 1 και οι

2/4/2014

2

Υπολογιστικά προβλήματα

� Πρώτοι αριθμοί

� Εύρεση μεγάλων πρώτων αριθμών

Υπολογιστικά εφικτό (tractable)

� Παραγοντοποίηση ακεραίων αριθμών που είναι γινόμενο μεγάλων πρώτων αριθμών

Υπολογιστικά μη εφικτό (intractable)

4

� Ο μεγαλύτερος γνωστός πρώτος αριθμός έχει εκατομμύρια ψηφία

Κάνσας Σίτι, Μισούρι

Αμερικανός μαθηματικός υπολόγισε έναν νέο πρώτο αριθμό που αποτελείται από 17.425.170 ψηφία και είναι ο μεγαλύτερος πρώτος αριθμός που γνωρίζουμε αυτή τη στιγμή. Ο νέος βασιλιάς των πρώτων αριθμών πήρε τα σκήπτρα από έναν πρώτο αριθμό που ανακαλύφθηκε το 2008 και αποτελείται από 12.978.189 ψηφία. Το 2009 ανακαλύφθηκε άλλος ένας πρώτος αριθμός που όμως ήταν μικρότερος από εκείνον του 2008.

πηγή: http://news.in.gr/science-technology/article/?aid=1231234090Δημοσίευση: 06 Φεβ. 2013, 15:51

5

Ο μεγαλύτερος γνωστός πρώτος αριθμός

Ο μεγαλύτερος γνωστός πρώτος αριθμός

� As of January 2014, the largest known prime number is

2257,885,161 − 1,

a number with 17,425,170 digits. (wikipedia, 2014-03-04).

6

Plot of the number of digits in largest known prime by

year, since the electronic computer. Note that the

vertical scale is logarithmic. The red line is the

exponential curve of best fit: y = exp(0.188439 t -

362.591), where t is in years.

Page 3: Κρυπτογραφία - euclid.ee.duth.gr · 2/4/2014 6 Πρώτοι αριθμοί – Σύνθετοι Αριθμοί Ακέραιος αριθμός α. Αν α > 1 και οι

2/4/2014

3

Διακριτός Λογάριθμος

� Διακριτοί Λογάριθμοι

� Discrete Exponentiation

� Υπολογισμός discrete exponentiation: Δίνονται α, n και x.

� Υπολογισμός του αx (mod n) είναι:

Υπολογιστικά εφικτός

� Διακριτός Λογάριθμος (Discrete Logarithm)

� Απλοποιημένος ορισμός: Έστω x, τέτοιο ώστε αx=β (mod n), με α, n γνωστά. Η εύρεση του xείναι το πρόβλημα του διακριτού λογαρίθμου.

� Εύρεση διακριτού λογαρίθμου:

Υπολογιστικά μη εφικτός 7

Τι θα θέλαμε

� Κρυπτογράφηση, Αποκρυπτογράφηση γνωρίζοντας το κλειδί:

Υπολογιστικά Εφικτό

� Αποκρυπτογράφηση χωρίς να γνωρίζουμε το κλειδί:

Υπολογιστικά Μη Εφικτό

8

Ένα πρώτο πρωτόκολλο:Diffie - Hellman

9

Page 4: Κρυπτογραφία - euclid.ee.duth.gr · 2/4/2014 6 Πρώτοι αριθμοί – Σύνθετοι Αριθμοί Ακέραιος αριθμός α. Αν α > 1 και οι

2/4/2014

4

10

Αλγόριθμος Diffie-Hellman� Συμφωνούμε όλοι στους αριθμούς: p και g

� Η Αλίκη επιλέγει α και υπολογίζει Α = gα mod n

� Ο Μπάμπης επιλέγει β και υπολογίζει Β=gβ mod n

� Ανταλλάσσουν τα Α και Β μέσω ενός απροστάτευτου καναλιού επικοινωνίας:

� Η Αλίκη υπολογίζει k1 = Βα και ο Μπάμπης k2=Αβ.

� Ισχύει k1 = k2 = k

� Όσοι άλλοι άκουσαν τα Α και Β δεν μπορούν να βρουν το k από αυτά !!

� Επεκτείνεται και σε 3 ή περισσότερα άτομα

Υπολογιστικά εφικτό;

� Υπολογιστικά εφικτό:

� Εκτέλεση ενός αλγορίθμου πολυωνυμικού χρόνουΠχ. ταξινόμηση αριθμών με την Quicksort

� Υπολογιστικά μη-εφικτό:

� Εκτέλεση αλγορίθμου με χρόνο μη-πολυωνυμικό, πχ. εκθετικόΠχ περιοδεύων πωλητής: δεν έχει βρεθεί πολυωνυμικός αλγόριθμος

11

Αναλογία με τα NP-Complete προβλήματα

� Υπολογιστικά εφικτό:

� Η επιβεβαίωση μιας λύσης γίνεται σε πολυωνυμικό χρόνο, εφόσον μας δοθεί η υποψήφια λύση

� Υπολογιστικά μη-εφικτό:

� Η εύρεση μιας λύσης

12

Page 5: Κρυπτογραφία - euclid.ee.duth.gr · 2/4/2014 6 Πρώτοι αριθμοί – Σύνθετοι Αριθμοί Ακέραιος αριθμός α. Αν α > 1 και οι

2/4/2014

5

Γιατί χρησιμοποιούμε Θεωρία Αριθμών στη σύγχρονη Κρυπτογραφία;

Από τη Θεωρία Αριθμών αντλούμε τα κατάλληλα υπολογιστικά προβλήματα για να χτίσουμε κρυπτοσυστήματα (πχ. RSA) και κρυπτογραφικά πρωτόκολλα.

13

Θεωρία Αριθμών

14

Βασικές Έννοιες

� Συμβολισμός � δ | α : O δ διαιρεί τον α ή ο α είναι πολλαπλάσιο του δ.

� Ιδιότητες� α > 0 & δ | α ⇒ |δ| ≤ |α|

� δ | α ≥ 0 ⇒ Υπάρχει κ: α = κ ∙ δ

� Ορισμός:� Εάν δ | α και δ ≥ 0 τότε ο δ είναι διαιρέτης του α

� δ διαιρέτης του α: 1 ≤ δ ≤ |α|

� Τετριμμένοι διαιρέτες του α: 1, α

� Διαιρέτες που δεν είναι τετριμμένοι: Παράγοντες� Πχ. για τον ακέραιο αριθμό 20:

� Διαιρέτες του 20: 1, 2, 4, 5, 10, 20

� Παράγοντες του 20: 2, 4, 5, 10

15

Page 6: Κρυπτογραφία - euclid.ee.duth.gr · 2/4/2014 6 Πρώτοι αριθμοί – Σύνθετοι Αριθμοί Ακέραιος αριθμός α. Αν α > 1 και οι

2/4/2014

6

Πρώτοι αριθμοί – Σύνθετοι Αριθμοί

� Ακέραιος αριθμός α. Αν

� α > 1 και

� οι μόνοι διαιρέτες του είναι οι τετριμμένοι διαιρέτες 1 και α,

τότε

ο α είναι ΠΡΩΤΟΣ αριθμός

� Οι πρώτοι αριθμοί παρουσιάζουν ιδιαίτερο ενδιαφέρον

� Οι μικρότεροι πρώτοι αριθμοί είναι:

2,3,5,7,11,13,17,19,23,29,31,37,...16

Σύνθετοι Αριθμοί

� Οι ακέραιοι που δεν είναι πρώτοι αριθμοί ονομάζονται ΣΥΝΘΕΤΟΙ.

� Πχ. ο αριθμός 39 είναι σύνθετος: 3 | 39

� Ο αριθμός 1 (μονάδα)

� Ούτε πρώτος, ούτε σύνθετος, αλλά απλά η μονάδα.

� Ακέραιοι ≤ 0

� δεν τους ονομάζουμε ούτε πρώτους, ούτε σύνθετους.

17

Θεώρημα Διαίρεσης

� Έστω ακέραιος α και θετικός ακέραιος n.

� Τότε υπάρχουν μοναδικοί ακέραιοι q και r τέτοιοι ώστε:� 0 ≤ r < n & α = q∙n+r

� q = α/n, ΠΗΛΙΚΟ

� r = α mod n, ΥΠΟΛΟΙΠΟ

� Άρα

α = q ∙ n + r ή ισοδύναμα

α mod n = α - q ∙ n

18

Page 7: Κρυπτογραφία - euclid.ee.duth.gr · 2/4/2014 6 Πρώτοι αριθμοί – Σύνθετοι Αριθμοί Ακέραιος αριθμός α. Αν α > 1 και οι

2/4/2014

7

Ισοδυναμία α ≡ b

� Εξετάζοντας τώρα τα υπόλοιπα ορίζουμε:� Αν (α mod n) = (β mod n) τότε γράφουμε

α ≡ β (mod n) και λέμε ότι o α είναι ισοδύναμος με τον b, modulo n

� Δηλαδή α ≡ β (mod n) ⇔⇔⇔⇔ έχουν το ίδιο υπόλοιπο όταν διαιρούνται με n

� Υπάρχει και ο συμβολισμός α T β (mod n) που σημαίνει ότι α και β δεν είναι ισοδύναμα modulo n

19

≡a

Κλάσεις modulo n

� Για κάθε n, μπορούμε να διαχωρίσουμε τους ακεραίους σε κλάσεις ισοδύναμων ακεραίων modulo n αριθμών.

[α]n = {α + κ∙n: k ∈ Z}

π.χ. [3]7 = [-4]7 = {..,-11,-4,3,10,17,..}

� Γράφουμε: Zn = {[α]n: 0 ≤ α ≤ n-1 }

ή απλοποιημένα: Zn = {0,1,..,n-1}

20

Μέγιστος Κοινός Διαιρέτης (ΜΚΔ)Greatest Common Divisor (GCD)

21

Page 8: Κρυπτογραφία - euclid.ee.duth.gr · 2/4/2014 6 Πρώτοι αριθμοί – Σύνθετοι Αριθμοί Ακέραιος αριθμός α. Αν α > 1 και οι

2/4/2014

8

22

Μέγιστος Κοινός Διαιρέτης (1)

� δ | α AND δ | β ⇒

δ κοινός διαιρέτης των α, β

� δ | α AND δ | β ⇒ δ|(α+β) AND δ|(α-β)

� δ | α AND δ | β ⇒ δ|(α x+ β y), x, y ακέραιοι

� α | β ⇒ |α|≤|β| OR β = 0

� α | β AND β | α ⇒ α = ±β

Μέγιστος Κοινός Διαιρέτης (2)

� Μέγιστος κοινός διαιρέτης (greatest common divisor ή gcd)

� Για α, β με |α| + |β| > 0 ισχύει

1 ≤ gcd(α,β) ≤ min(|α|,|β|)

� Ορίζουμε gcd(0,0) = 0

23

24

Ιδιότητες της συνάρτησης gcd(α,β)

� gcd(α,β) = gcd(b,a)

� gcd(α,β) = gcd(-a,β)

� gcd(α,β) = gcd(|α|,|β|)

� gcd(α,0) = |α|

� gcd(α,kα) = |α|, για k ∈ Z

Page 9: Κρυπτογραφία - euclid.ee.duth.gr · 2/4/2014 6 Πρώτοι αριθμοί – Σύνθετοι Αριθμοί Ακέραιος αριθμός α. Αν α > 1 και οι

2/4/2014

9

25

Θεώρημα

� Εάν α, β ακέραιοι, τέτοιοι ώστε |α| + |β| > 0 τότε gcd(α,β) είναι το μικρότερο θετικό στοιχείο του συνόλου{α∙x+β∙y: x,y ∈ Z}.

� Παρατηρήστε ότι {α∙x+β∙y: x,y ∈ Z} είναι το σύνολο των γραμμικών συνδυασμών των α και β

26

Λήμματα για gcd

� δ|α AND δ|β ⇒ δ | gcd(α,β)

� Εάν n ≥ 0, τότε

gcd(α∙n, β∙n) = n∙gcd(α,β)

� Εάν α ≥ 0, β ≥ 0, n ≥ 0, τότε

n | α∙β AND gcd(α,n) = 1 ⇒ n|β

27

Σχετικά Πρώτοι Αριθμοί

� Εάν α,β τέτοιοι ώστε gcd(α,β) = 1

⇒ α, β σχετικά πρώτοι.

� Θεώρημα: Για ακέραιους α, β και p,

gcd(α,p)=1 και gcd(β,p)=1 ⇒ gcd(α∙β,p) = 1

Απόδειξη:

gcd(α,p) = 1 ⇒ Υπάρχουν x,y: αx + py =1

gcd(β,p) = 1 ⇒ Υπάρχουν x',y': βx'+ py'=1

Πολλαπλασιάζουμε τις 2 σχέσεις ...

Page 10: Κρυπτογραφία - euclid.ee.duth.gr · 2/4/2014 6 Πρώτοι αριθμοί – Σύνθετοι Αριθμοί Ακέραιος αριθμός α. Αν α > 1 και οι

2/4/2014

10

28

Ανά δύο σχετικά πρώτοι

� Ανά δύο σχετικά πρώτοι αριθμοί

n1, n2, n3, .., nk:

� Για κάθε i,j με i ≠ j:

gcd(ni,nj) = 1.

29

Παραγοντοποίηση Ακεραίων (1)

� Θεώρημα:

Για όλους τους πρώτους p και για όλους τους ακέραιους α,β:

p | α∙β ⇒ p|α OR p|β

� Απόδειξη με εις άτοπο απαγωγή

30

Παραγοντοποίηση Ακεραίων (2)

� Θεώρημα: Κάθε ακέραιος α μπορεί να γραφεί με μοναδικό τρόπο ως γινόμενο πρώτων παραγόντων:

α = p1e1 ∙ p2

e2 ∙ ∙ ∙ prer

όπου pi πρώτος, p1 < p2 < ..< pr και ei θετικοί ακέραιοι.

� Αποδεικνύεται με εφαρμογή του προηγούμενου θεωρήματος

Page 11: Κρυπτογραφία - euclid.ee.duth.gr · 2/4/2014 6 Πρώτοι αριθμοί – Σύνθετοι Αριθμοί Ακέραιος αριθμός α. Αν α > 1 και οι

2/4/2014

11

31

Μέγιστος Κοινός Διαιρέτης - ΜΚΔ

� Πρώτη ΙΔΕΑ για υπολογισμό ΜΚΔ:

Παραγοντοποιούμε τους δύο αριθμούς

όπου ei, fi ≥ 0.

� Τότε

� Η παραγοντοποίηση ενός ακεραίου δεν επιτυγχάνεται (μέχρι σήμερα) σε πολυωνυμικό χρόνο! Άρα αυτός ο τρόπος δεν είναι αποδοτικός.

re

r

eeppp L

21

21 ⋅=αrf

r

ffppp L

21

21 ⋅=β

),min(),min(

2

),min(

12211),gcd( rr fe

r

fefeppp L⋅=βα

Ευκλείδης (Euclid)

� Αλεξάνδρεια, 323–283 π.Χ.

Πηγές: wikipedia, wolfram

32

33

Αλγόριθμος του Ευκλείδη (1)

� Αναδρομικό Θεώρημα ΜΚΔ:

Για κάθε α ≥ 0 και β > 0:

gcd(α,β) = gcd(β, α mod β)

Απόδειξη: Είναι θετικά και επιπλέον μπορεί να δείξει κανείς ότι το ένα μέρος διαιρεί το άλλο και επομένως πρέπει να ταυτίζονται.

Page 12: Κρυπτογραφία - euclid.ee.duth.gr · 2/4/2014 6 Πρώτοι αριθμοί – Σύνθετοι Αριθμοί Ακέραιος αριθμός α. Αν α > 1 και οι

2/4/2014

12

34

Αλγόριθμος του Ευκλείδη (2)

� Περιγράφεται σε έργο του Ευκλείδη και είναι ίσως ο αρχαιότερος αλγόριθμος στον κόσμο

// Euclid’s GCD algorithm

a,b integers >= 0

EUCLID (a,b) {

if (b == 0)

then return a;

else return EUCLID(b, a mod b);

}

35

Παράδειγμα� Παράδειγμα:

EUCLID(30,21)

= EUCLID(21,9)

= EUCLID(9,3)

= EUCLID(3,0) = 3

// Euclid’s GCD algorithm

a,b integers >= 0

EUCLID (a,b) {

if (b == 0)

then return a;

else return EUCLID(b, a mod b);

}

36

Ανάλυση� Ορθότητα Αλγορίθμου: Από το Αναδρομικό

Θεώρημα ΜΚΔ.

� Τερματισμός Αλγορίθμου: Η δεξιά παράμετρος μειώνεται σε κάθε κλήση, άρα υποχρεωτικά θα τερματίσει.

� Πολυπλοκότητα Χρόνου: Θεωρούμε ότι α > β ≥ 1. Τότε η εκτέλεση Euclid(α,β) θα χρειαστεί O(log β) αναδρομικές κλήσεις.

Ο ακριβής χρόνος εκτέλεσης του Αλγορίθμου του Ευκλείδη σχετίζεται με τους αριθμούς Fibonacci.

Ακολουθία fibonacci:

Όπου φ≈1,61803… και ψ≈-0,61803…

Page 13: Κρυπτογραφία - euclid.ee.duth.gr · 2/4/2014 6 Πρώτοι αριθμοί – Σύνθετοι Αριθμοί Ακέραιος αριθμός α. Αν α > 1 και οι

2/4/2014

13

37

Extended Euclid Algorithm

� Έχουμε ήδη δει το θεώρημα: Εάν α, β ακέραιοι, τέτοιοι ώστε |α| + |β| > 0 τότε gcd(α,β) είναι το μικρότερο θετικό στοιχείο του συνόλου {α∙x+β∙y: x,y ∈ Z}.

� Ο αλγόριθμος του Ευκλείδη υπολογίζει το μέγιστο κοινό διαιρέτη, όχι όμως τις τιμές των x και y του παραπάνω θεωρήματος.

� Μπορούμε να επεκτείνουμε τον αλγόριθμο του Ευκλείδη ώστε να μας υπολογίζει και τα κατάλληλα x και y.

Επεκταμένος Αλγόριθμος του Ευκλείδη(Extended Euclid Algorithm)

38

39

Επεκταμένος Αλγόριθμος του Ευκλείδη

// Extended Euclid algorithm

ExtEuclid(a,b)

if (b == 0)

then return (a,1,0);

else

(d’,x',y') = ExtEuclid(b,a mod b);

(d,x,y) = (d',y',x'- a/b∙y');

return (d,x,y);

Page 14: Κρυπτογραφία - euclid.ee.duth.gr · 2/4/2014 6 Πρώτοι αριθμοί – Σύνθετοι Αριθμοί Ακέραιος αριθμός α. Αν α > 1 και οι

2/4/2014

14

ExtEuclid(a,b)

if (b == 0)

then return (a,1,0);

else

(d’,x',y') = ExtEuclid(b,a mod b);

(d,x,y) = (d',y',x'- a/b∙y');return (d,x,y);

40

Extended-Euclid(30,21)

a b a/b d x y

30 21 1 3 -2 3

21 9 2 3 1 -2

9 3 3 3 0 1-3*0=1

3 0 - 3 1 0

gcd(30,21) = 3 = (-2) * 30 +3 * 21

41

Extended-Euclid(99,69)

a b a/b d x y

99 69 1 3 7 -10

69 30 2 3 -3 7

30 9 3 3 1 -3

9 3 3 3 0 1

3 0 - 3 1 0

gcd(99,69) = 3 = 7 * 99 – 10 * 69

ExtEuclid(a,b)

if (b == 0)

then return (a,1,0);

else

(d’,x',y') = ExtEuclid(b,a mod b);

(d,x,y) = (d',y',x'- a/b∙y');return (d,x,y);

Αριθμητική Modulo

42

Page 15: Κρυπτογραφία - euclid.ee.duth.gr · 2/4/2014 6 Πρώτοι αριθμοί – Σύνθετοι Αριθμοί Ακέραιος αριθμός α. Αν α > 1 και οι

2/4/2014

15

43

Αριθμητική Modulo

� Μοιάζει με την κοινή αριθμητική με τη διαφορά ότι το αποτέλεσμα υπολογίζεται modulo n, και επομένως κάθε αποτέλεσμα είναι ένας αριθμός του συνόλου

{0,1,2,..,n-1}

� Αυτή η χαλαρή περιγραφή αρκεί σε γενικές γραμμές. Μια πιο αυστηρή θεώρηση βασίζεται στη θεωρία Ομάδων (Αβελιανές Ομάδες)

Modular πράξεις

� Το σύνολο υπολοίπων:

Ζ/N Z={0,1,…,N-1}

� Η αναγωγή:

Nba

Nba

|)( iff

mod

...-2 -1 0 1 2 ... N-1 N ...0 1

2

N-1

44

Μερικές ενδιαφέρουσες ιδιότητες

� a+b mod(N)=(a mod(N) + b mod(N)) mod(N)

� a*b mod(N)=(a mod(N) * b mod(N)) mod(N)

� Πολύ χρήσιμα στον υπολογισμό του

gX mod(N)

45

Page 16: Κρυπτογραφία - euclid.ee.duth.gr · 2/4/2014 6 Πρώτοι αριθμοί – Σύνθετοι Αριθμοί Ακέραιος αριθμός α. Αν α > 1 και οι

2/4/2014

16

Modular αριθμητική

a+b mod 6

a∙b mod 6

46

47

Αβελιανές Ομάδες

� Ομάδα: Σύνολο S και Δυαδική Πράξη *, όπου ισχύουν:

i. Κλειστότητα

ii. Ταυτότητα

iii. Προσεταιριστικότητα

iv. Αντίστροφος

� Εάν ισχύει και η αντιμεταθετική ιδιότητα:

Αβελιανή Ομάδα

� Ορίζονται δύο Αβελιανές Ομάδες, μία για κάθε πράξη.

� Πρόσθεση modulo n

� Πολλαπλασιασμός modulo n

48

Υποομάδα

� Εάν (S,⊕) είναι ομάδα και S’⊆S και (S’, ⊕) επίσης ομάδα, τότε (S’, ⊕) είναι υποομάδα της (S,⊕).

� Παράδειγμα:

� (Z,+): Το σύνολο των ακεραίων μαζί με την πράξη του αθροίσματος είναι ομάδα

� (άρτιοι ακέραιοι, +): Το σύνολο των άρτιων ακεραίων με την πράξη του αθροίσματος είναι επίσης ομάδα, και επομένως υποομάδα της (Z,+)

� Θεώρημα:

� Κάθε κλειστό υποσύνολο μιας πεπερασμένης ομάδας είναι υποομάδα.

Page 17: Κρυπτογραφία - euclid.ee.duth.gr · 2/4/2014 6 Πρώτοι αριθμοί – Σύνθετοι Αριθμοί Ακέραιος αριθμός α. Αν α > 1 και οι

2/4/2014

17

Αναγνωρίστε τις ομάδες <Ζ/nΖ, *>

49

50

Θεώρημα Lagrange

� Ομάδα (S,⊕) και Υποομάδα (S', ⊕) ⇒

|S'| είναι διαιρέτης του |S|.

� Εφαρμόζεται στη διαδικασία ελέγχουν των Miller-Rabin για το εάν ένας αριθμός είναι πρώτος

� Corollary: S' ⊂ S ⇒ |S'| ≤ |S|/2

51

Υποομάδα παραγόμενη από ένα στοιχείο α

� Έστω α ένα στοιχείο μιας ομάδας (S, ⊕)

� Το σύνολο όλων των στοιχείων που μπορούν να πραχθούν από το α χρησιμοποιώντας την πράξη ⊕

� συμβολίζεται ⟨α⟩ ή (⟨α⟩,⊕) και

� είναι μια υποομάδα της (S, ⊕)

Page 18: Κρυπτογραφία - euclid.ee.duth.gr · 2/4/2014 6 Πρώτοι αριθμοί – Σύνθετοι Αριθμοί Ακέραιος αριθμός α. Αν α > 1 και οι

2/4/2014

18

Κυκλικές ομάδες (Cyclic Groups)

� Μια ομάδα G είναι κυκλική, εάν υπάρχει στοιχείο g της G, τέτοιο ώστε όλα τα μέλη της G μπορούν να γραφούν ως gn για κάποιο n.

Τότε g είναι γεννήτορας της G και συμβολίζεται

G = ⟨g⟩

� Επομένως, μια ομάδα (S,⊕) είναι κυκλική ομάδα (cyclic group) εάν S = ⟨x⟩, για κάποιο x∈S.

� Δηλαδή τα στοιχεία του S είναι οι δυνάμεις του στοιχείου x και x είναι ένας γεννήτορας της ομάδας.

� Για παράδειγμα η ομάδα Z7* παράγεται από το στοιχείο

3 της ομάδας.52

53

Υποομάδες: Τάξη

� Υποομάδες που παράγονται από τους γραμμικούς συνδυασμούς ενός στοιχείου μια ομάδας.

� Τάξη (Order) στοιχείου α ∈ S, ord(α): Το ελάχιστο t > 0 τέτοιο ώστε αt = e (ουδέτερο στοιχείο της ομάδας ή αλλιώς “μονάδα”).

� Θεώρημα: Για κάθε πεπερασμένη ομάδα και κάθε στοιχείο α της ομάδας

ord(α) = | ⟨α⟩ |,

δηλαδή η τάξη του στοιχείου ισούται με τον πληθάριθμο της ομάδας που παράγει το στοιχείο.

� Για παράδειγμα ποια είναι η τάξη ord(3) του στοιχείου 3 στην ομάδα Z7

* ;

54

Γραμμικές Εξισώσεις Modulo

� Επίλυση modular γραμμικών εξισώσεων

α∙x ≡ β (mod n), για n > 0

� Δίνονται τα α,β,n και ζητούνται τα x mod n.

� Μπορεί να υπάρχουν 0,1 ή περισσότερες λύσεις

� α∙x ≡ β (mod n) ⇔ α∙x = d∙n + β �

α∙x – d∙n = β

� Για β=1 παίρνουμε τον πολλαπλασιαστικό αντίστροφο του α modulo n.

Page 19: Κρυπτογραφία - euclid.ee.duth.gr · 2/4/2014 6 Πρώτοι αριθμοί – Σύνθετοι Αριθμοί Ακέραιος αριθμός α. Αν α > 1 και οι

2/4/2014

19

55

Δύο Αβελιανές Ομάδες

�Αβελιανή Ομάδα: + mod n

Zn = {[α]n: 0 ≤ α ≤ n-1 }

Πχ. Z8 κλειστό ως προς “+ mod 8”

�Αβελιανή Ομάδα: * mod n

Zn* = {[α]n є Zn: gcd(α,n) = 1}

Πχ. Z15* κλειστό ως προς “* mod 15”

�Τα (Zn,+n) και (Zn*,*n) είναι πεπερασμένες

αβελιανές ομάδες

56

Συνάρτηση φ() του Euler

� Ο πληθάριθμος του συνόλου Zn* ονομάζεται

συνάρτηση φ(n) του Euler και ισούται:

� φ(n) = n ∙ Πp|n (1 - 1/p)

� για όλους τους πρώτους p που διαιρούν τον n

� Έστω p, q πρώτοι. Τότε

� φ(p), φ(q), φ(p∙q) = ?

Leonhard Euler15 April 1707 – 18 September 1783

πηγή: wikipedia

Συνάρτηση φ(n) του Euler

� Η φ(n) δίνει τον αριθμό των ακεραίων που είναι σχετικά πρώτοι με τον n.

� παράδειγμα: φ(10)=

φ(11)=

57

Page 20: Κρυπτογραφία - euclid.ee.duth.gr · 2/4/2014 6 Πρώτοι αριθμοί – Σύνθετοι Αριθμοί Ακέραιος αριθμός α. Αν α > 1 και οι

2/4/2014

20

� Η φ(n) δίνει τον αριθμό των ακεραίων που είναι σχετικά πρώτοι με τον n.

� παράδειγμα: φ(10)=

φ(11)=

� Ενδιαφέρουσες περιπτώσεις:� για πρώτο p, φ(p)=p-1

� για πρώτους p, q και n=pq τότε

φ(n)=(p-1)(q-1)

Συνάρτηση φ(n) του Euler

58

Γραμμικές εξισώσεις modulo n

59

60

Επίλυση Γραμμικών Εξισώσεων Modulo

� Εξίσωση με άγνωστο x:

α∙x ≡ β (mod n), για n > 0

� Ικανή και αναγκαία συνθήκη:

Έχει λύση ⇔ d | β, όπου d=gcd(α,n)

� Πιο συγκεκριμένα, η εξίσωση

� έχει d διακριτές λύσεις, εάν d = gcd(α,n)

� δεν έχει λύση, διαφορετικά

Page 21: Κρυπτογραφία - euclid.ee.duth.gr · 2/4/2014 6 Πρώτοι αριθμοί – Σύνθετοι Αριθμοί Ακέραιος αριθμός α. Αν α > 1 και οι

2/4/2014

21

Εύρεση των λύσεων

� Ένας τρόπος για να υπολογιστούν οι d λύσεις x0, x1, …, xd-1 της εξίσωσης:

� Έστω x, y οι τιμές που παίρνουμε από τον Extended Euclid. Τότε:

� x0 = x·(b/d) mod n

� xi = (x0 + i·(n/d)) mod n, για i = 1, …, d-1

61

Παραδείγματα

� 3∙x = 2 (mod 7)

� 4∙x = 3 (mod 8)

� 6∙x = 4 (mod 8)

� 6∙x = 1 (mod 13)

62

3∙x = 2 (mod 7)

� Λύση:

α = 3, n = 7

Αλγόριθμος Ευκλείδη: d = gcd(3,7) = 1

Το d=1 διαιρεί το β=1 και επομένως η εξίσωση έχει d=1 λύση.

Extended Euclid Algorithm:

d = 1 = gcd(3,7) = 3·(-2) + 7·1

x0 = -2 · (2/1) mod 7 ⇒ x0 = 3

63

Page 22: Κρυπτογραφία - euclid.ee.duth.gr · 2/4/2014 6 Πρώτοι αριθμοί – Σύνθετοι Αριθμοί Ακέραιος αριθμός α. Αν α > 1 και οι

2/4/2014

22

4∙x = 3 (mod 8)

� Λύση:

α = 4, n = 8

Αλγόριθμος Ευκλείδη: d = gcd(4,8) = 4

Το d=4 δεν διαιρεί το β=3.

Επομένως η εξίσωση αυτή δεν έχει λύση.

64

6∙x = 4 (mod 8)

Λύση:

� α = 6, n = 8

� Αλγόριθμος Ευκλείδη: d = gcd(6,8) = 2

� Το d=2 διαιρεί το β = 4 και επομένως η εξίσωση έχει d=2 λύσεις.

� Extended Euclid Algorithm:

d = 2 = gcd(6,8) = 6·(-1) + 8·1

� Οι d=2 λύσεις είναι:

� x0 = x·(b/d) mod n =-1 · (4/2) mod 8 ⇒ x0 = 6

� xi = (x0 + i·(n/d)) mod n, για i = 1, …, d-1 ⇒ x1=2

65

Πολλαπλασιαστικός Αντίστροφος

� H εξίσωση με άγνωστο x και b=1

α∙x ≡ 1 (mod n), για n > 0

υπολογίζει τον πολλαπλασιαστικό αντίστροφο του α (mod n).

� Παράδειγμα: Η εξίσωση 6∙x ≡ 1 (mod 13) έχει μοναδική λύση x = 11. Ισχύει 6∙11 ≡ 1 (mod 13). Μπορούμε να γράψουμε:

6-1 mod n = 11

� Παρατηρήσεις:

� Ο πολλαπλασιαστικός αντίστροφος υπάρχει αν και μόνο εάν gcd(α,n) = 1.

� Εάν υπάρχει ο πολλαπλασιαστικός αντίστροφος, είναι μοναδικός.

66

Page 23: Κρυπτογραφία - euclid.ee.duth.gr · 2/4/2014 6 Πρώτοι αριθμοί – Σύνθετοι Αριθμοί Ακέραιος αριθμός α. Αν α > 1 και οι

2/4/2014

23

Παραδείγματα

� 6∙x = 1 (mod 5)

� 4∙x = 1 (mod 8)

67

Εύρεση Πρώτων Αριθμών

68

69

Πόσοι είναι οι πρώτοι αριθμοί

� Θεώρημα του Ευκλείδη

� Έστω μια λίστα πρώτων αριθμών p1, p2, …, pn.

� Ορίζω τον αριθμό p = p1∙p2∙ ∙ ∙pn + 1

� Ο αριθμός p δεν διαιρείται από κανέναν από τους πρώτους αριθμούς της λίστας p1, p2, …, pn

� Διακρίνουμε δύο περιπτώσεις:

1. ο p είναι πρώτος αριθμός

2. ο p είναι σύνθετος αριθμός, επομένως υπάρχει πρώτος αριθμός q που δεν ανήκει στη λίστα p1, p2, …, pn και διαιρεί τον p

� Επομένως, είτε ισχύει το 1 είτε το 2, έχουμε βρει έναν επιπλέον πρώτο αριθμό για να συμπληρώσουμε τη λίστα.

� Η διαδικασία αυτή μπορεί να συνεχιστεί επ’ άπειρον.

� Συμπέρασμα: Υπάρχουν άπειροι πρώτοι αριθμοί!

Page 24: Κρυπτογραφία - euclid.ee.duth.gr · 2/4/2014 6 Πρώτοι αριθμοί – Σύνθετοι Αριθμοί Ακέραιος αριθμός α. Αν α > 1 και οι

2/4/2014

24

70

Πυκνότητα πρώτων αριθμών

� Πυκνότητα των Πρώτων Αριθμών

� Έστω π(n) η συνάρτηση κατανομής πρώτων που μας δίνει το πλήθος των πρώτων αριθμών που είναι ≤ n

� Αποδεικνύεται ότι (Prime Number Theorem):

� Ποια λοιπόν η πιθανότητα, αν επιλέξουμε τυχαία έναν ακέραιο αριθμό αυτός να είναι ΠΡΩΤΟΣ;

� Η πιθανότητα για αριθμό n είναι 1/lnn

� Άρα για αριθμό 100 ψηφίων είναι ln(10100) δηλ. περίπου 1/230

1ln

)(lim =∞→

nn

nn

π

71

Bernhard Riemann

� Στην απόδειξη του Prime Number Theorem συνέβαλαν πολλοί σπουδαίοι μαθηματικοί, με κυριότερη τη συμβολή του Riemann

Georg Friedrich Bernhard Riemann

September 17, 1826 – July 20, 1866)

πηγή: wikipedia

72

Primality Testing (1)

� Δίνεται ένας ακέραιος n. Μπορούμε να αποφανθούμε αν είναι πρώτος;

� Μπορούμε να αποφασίσουμε σε πολυωνυμικό χρόνο εάν είναι πρώτος ή όχι (χωρίς να τον παραγοντοποιήσουμε)

� Για την παραγοντοποίηση δεν έχει βρεθεί πολυωνυμικός αλγόριθμος (με εξαίρεση το κβαντικό μοντέλο υπολογισμού)

Page 25: Κρυπτογραφία - euclid.ee.duth.gr · 2/4/2014 6 Πρώτοι αριθμοί – Σύνθετοι Αριθμοί Ακέραιος αριθμός α. Αν α > 1 και οι

2/4/2014

25

73

� Τυχαιοκρατικός Αλγόριθμος (randomized algorithm)

� Ισχύει:

� Μικρό θεώρημα του Fermat:

� Δοκιμάζουμε για τυχαίες βάσεις α≤n και εάν επαληθεύεται συνεχώς υποθέτουμε ότι n πρώτος !!

� Ντετερμινιστικός Αλγόριθμος από Ινδούς ερευνητές: Agrawal, Kayal and Saxena (2002)

Primality Testing (2)

*

nZprime nZn =⇒ +

)(mod11

nan ≡−

Θεωρήματα

� Θεώρημα του Lagrange (Lagrange Theorem in Group Theory)

xφ(n)=1 mod n

� Μικρό Θεώρημα του Fermat

xp-1=1 mod p

74

Pierre de Fermat 1601 (??) – 12 January 1665

Πηγή: wikipedia

Joseph-Louis Lagrange

(Giuseppe Luigi Lagrancia)25 January 1736 – 10 April 1813

Πηγή: wikipedia

Έλεγχος πρώτου αριθμού

Βασική παρατήρηση από Θεωρία αριθμών:

Εάν ο p είναι πρώτος αριθμός, τότε για κάθε ακέραιο 0 < α < p, είναι

αp -1 mod p = 1.

Αυτό ισχύει σπάνια εάν ο p είναι σύνθετος αριθμός.

75

Page 26: Κρυπτογραφία - euclid.ee.duth.gr · 2/4/2014 6 Πρώτοι αριθμοί – Σύνθετοι Αριθμοί Ακέραιος αριθμός α. Αν α > 1 και οι

2/4/2014

26

Chinese Remainder Theorem

� Ερώτημα: Υπάρχουν ακέραιοι x που όταν διαιρεθούν με το 3, το 5 και το 7 , δίνουν υπόλοιπο 2, 3, και 2 αντίστοιχα;

� Την απάντηση έδωσε το 100 μ.Χ. περίπου ο κινέζος Sun-Tsŭ.

76

Chinese Remainder Theorem� Έστω κ αριθμοί ni , i = 1,2, …, κ τέτοιοι ώστε να είναι ανά

δύο πρώτοι μεταξύ τους, και n=n1∙n2∙ ∙ ∙ nk.

Έστω οι αριθμοί α και β. Υπολογίζουμε τους αριθμούς αi=α mod ni και βi=β mod ni.

� Έχουμε την αντιστοιχία

α ↔ (α1,α2,…,ακ)

β ↔ (β1,β2,…,βκ)

� Τότε:

(α + b) mod n ↔ ((α1+β1) mod n1, …,…,(ακ+ βκ) mod nk)

(α - b) mod n ↔ ((α1 - β1) mod n1, …,…,(ακ - βκ) mod nk)

(α∙b) mod n ↔ ((α1∙β1) mod n1, …,…,(ακ∙βκ) mod nk)

77

Chinese Remainder Theorem

� Έστω κ αριθμοί ni , i = 1,2, …, κ τέτοιοι ώστε να είναι ανά δύο πρώτοι μεταξύ τους, και n=n1∙n2∙ ∙ ∙ nk.

Έστω οι αριθμοί α1,α2,…,ακ . Τότε υπάρχει αριθμός x που να λύνει το παρακάτω σύστημα εξισώσεων modulo.

x ≡ α1 (mod n1)

x ≡ α2 (mod n2)

x ≡ αk (mod nk)

78

Για το παράδειγμα: x ≡ 2 (mod 3)x ≡ 3 (mod 5)x ≡ 2 (mod 7)

Page 27: Κρυπτογραφία - euclid.ee.duth.gr · 2/4/2014 6 Πρώτοι αριθμοί – Σύνθετοι Αριθμοί Ακέραιος αριθμός α. Αν α > 1 και οι

2/4/2014

27

Chinese Remainder Theorem

� Έστω κ αριθμοί ni , i = 1,2, …, κ τέτοιοι ώστε να είναι ανά δύο πρώτοι μεταξύ τους, και n=n1∙n2∙ ∙ ∙ nk.

� Κατεύθυνση →

Από τον αριθμό α μπορούμε εύκολα να βρούμε τα αi χρησιμοποιώντας τον τύπο αi=α mod ni

� Κατεύθυνση ←

Από τους α1,α2,…,ακ μπορούμε να βρούμε το α. Η διαδικασία όμως είναι λίγο πιο πολύπλοκη.

79

Εύρεση το α από αi

� Υπολογίζουμε αριθμούς mi = n / ni, για i=1,2,…,κ

� Επομένως mi είναι το γινόμενο όλων των nj για j≠i

� Έστω ci = mi ∙ (mi-1 mod ni), για i = 1,2, …, κ

� Τότε α = (α1c1+α2c2+…+ακcκ) (mod n)

Παράδειγμα:

� α1=2, α2=3, α3=2

� n1=3, n2=5, n3=7

� m1=35, m2=21, m3=15

� m1-1 mod 3=

� m2-1 mod 5=

� m3-1 mod 7=

� c1, c2, c3

� α

80

Chinese Remainder Theorem

� Παράδειγμα:

x ≡ 2 (mod 3)

x ≡ 3 (mod 5)

x ≡ 2 (mod 7)

� Λύση:

x = 23,

καθώς και κάθε αριθμός της ακολουθίας x = 23 + 105 k.

81

Page 28: Κρυπτογραφία - euclid.ee.duth.gr · 2/4/2014 6 Πρώτοι αριθμοί – Σύνθετοι Αριθμοί Ακέραιος αριθμός α. Αν α > 1 και οι

2/4/2014

28

82

Υπολογισμός Δυνάμεων

na modβ

• Υπολογίζουμε τη δύναμη αποδοτικά

– υψώνοντας συνεχώς στο τετράγωνο

– πολλαπλασιάζοντας με α

• Παράδειγμα:c=79 mod 11,

c=c∙c mod 11 (τρεις φορές διαδοχικά)

c=c∙7 mod 11

Modular εκθετοποίηση

gα=x mod n

� Δοθέντος α,g είναι εύκολη η εύρεση του x

� Δοθέντος g,x είναι δύσκολη η εύρεση του a

� Πρόβλημα διακριτού λογάριθμου

� Δοθέντος α,x είναι δύσκολη η εύρεση του g, εκτός εάν είναι γνωστή η παραγοντοποίηση του n

� Πρόβλημα εύρεσης διακριτής ρίζας

83

Νόμοι εκθετοποίησης

xa∙xb=xa+b

(xa)b=xa∙b

Υπολογισμός ga=x mod n

84

Page 29: Κρυπτογραφία - euclid.ee.duth.gr · 2/4/2014 6 Πρώτοι αριθμοί – Σύνθετοι Αριθμοί Ακέραιος αριθμός α. Αν α > 1 και οι

2/4/2014

29

“τετραγωνισμός και πολλαπλασιασμός”

x13 = x8∙x4∙x1

= (x4)2∙(x2)2∙x

= (x4∙x2)2∙x

= ((x2)2∙x2)2∙x

= ((x2∙x)2)2∙x

δηλ. 5 πολλαπλασιασμοί αντί 12 πολλαπλ.

Υπολογισμός ga=x mod n

85

ModularExponentiation(α,β,n)

1. x = 0

2. y = 1

3. Έστω <βκ,βκ-1,...,β0> η δυαδική αναπαράσταση του εκθέτη β.

4. for (i = κ; i >=0; i-- )

5. x = 2 ∙ x

6. y = (y ∙ y) mod n

7. if (βi == 1)

8. x = x + 1

9. y = (y ∙ α) mod n

10. return y

� Η μεταβλητή x δεν χρησιμοποιείται στην ουσία από τον αλγόριθμο. Έχει τον ακόλουθο ρόλο για την κατανόηση της εξέλιξης του αλγορίθμου:Στο τέλος κάθε επανάληψης το τρέχον αποτέλεσμα y ισούται με y = αx mod n

Υπολογισμός ga=x mod n

86

“τετραγωνισμός και πολλαπλασιασμός”

x13 : σε δυαδική μορφή : 13=(1101)2

y=1

bit=1 : y�1 ∙ x, x�x2

bit=0 : x�(x2) ∙ (x2)=x4

bit=1 : y�x ∙ x4, x�(x4) ∙ (x4)=x8

bit=1 : y�x ∙ x4 ∙ x8= x13

Υπολογισμός ga=x mod n

87

Page 30: Κρυπτογραφία - euclid.ee.duth.gr · 2/4/2014 6 Πρώτοι αριθμοί – Σύνθετοι Αριθμοί Ακέραιος αριθμός α. Αν α > 1 και οι

2/4/2014

30

88

Αλγόριθμος Diffie-Hellman (που είδαμε νωρίτερα)

� Συμφωνούμε όλοι στους αριθμούς: p και g

� Η Αλίκη επιλέγει α και υπολογίζει Α = gα mod n

� Ο Μπάμπης επιλέγει β και υπολογίζει Β=gβ mod n

� Ανταλλάσσουν τα Α και Β μέσω ενός απροστάτευτου καναλιού επικοινωνίας:

� Η Αλίκη υπολογίζει k1 = Βα και ο Μπάμπης k2=Αβ.

� Ισχύει k1 = k2 = k

� Όσοι άλλοι άκουσαν τα Α και Β δεν μπορούν να βρουν το k από αυτά !!

� Επεκτείνεται και σε 3 ή περισσότερα άτομα

Ανταλλαγή κλειδιών κατά Diffie-Hellman

Αλίκη

2. (τυχαία) επιλογή ακαι αποστολή τουΑ= gα mod p.

3. υπολογισμός του κλειδιού

K = Βα mod N.

Μπάμπης

2. (τυχαία) επιλογή βκαι αποστολή τουΒ = gβ mod p.

3. υπολογισμός του κλειδιού

K = Αβ mod N.

1. (δημόσια) συμφωνία

σε g και modulus p

K=Βα=(gβ)α=(gα)β=Αβ=K

89

Ασύμμετρη κρυπτογραφία

� Δύο κλειδιά, δημόσιο e και ιδιωτικό d

� Μία συνάρτηση (απο)κρυπτογράφησς f()� Μονόδρομη συνάρτηση με μυστική πόρτα

� Μήνυμα m (plaintext)

κρυπτογράφηση:

c=fe(m)

� Κρυπτοκείμενο c (ciphertext)

αποκρυπτογράφηση:

m=fd (c)

90

Page 31: Κρυπτογραφία - euclid.ee.duth.gr · 2/4/2014 6 Πρώτοι αριθμοί – Σύνθετοι Αριθμοί Ακέραιος αριθμός α. Αν α > 1 και οι

2/4/2014

31

91

RSA

� Φάση Δημιουργίας Κλειδιών:

1. p, q (δύο μεγάλοι πρώτοι αριθμοί)

2. n = p∙q

3. e σχετικά πρώτος με το phi(n) = (p-1)(q-1)

4. d = e-1 mod phi(n)

5. P = (e,n) PUBLIC KEY

6. S = (d,n) SECRET KEY

� Φάση Εφαρμογής του RSA (σε μήνυμα m):

� ENCRYPT: C = P(m) = me (mod n)

� DECRYPT: m = S(C) = Cd (mod n)

Κρυπτογράφηση RSA τμήματος

� Το modulus n καθορίζει το (μέγιστο) μέγεθος του τμήματος

� Πρακτική κρυπτογράφηση:� χρήση συνάρτηση αντιστοίχισης πχ:

� a-->10, b-->11, ...,z-->35

� αντιστοίχιση του μηνύματος σε έναν ακέραιο

� διαμερισμός του ακεραίου σε αριθμούς < n

Παράδειγμα

� κρυπτογράφηση “stars” με e=3 , n=1189:

� stars --> 2829102728

� 282 910 272 8� 2823 mod 1189 = 39

� 9103 mod 1189 = 635

� 2723 mod 1189 = 1012

� 83 mod 1189 = 512

� c = (39,635,1012,512)

Page 32: Κρυπτογραφία - euclid.ee.duth.gr · 2/4/2014 6 Πρώτοι αριθμοί – Σύνθετοι Αριθμοί Ακέραιος αριθμός α. Αν α > 1 και οι

2/4/2014

32

Ορθότητα του RSA

� Έστω RSA με

� παραμέτρους p, q,

� n = p∙q και phi(n) = (p-1)∙(q-1)

� και ζεύγος κλειδιών

� δημόσιο κλειδί (e,n)

� μυστικό κλειδί (d,n)

� Έστω μήνυμα m

� Τότε c = me (mod n)

� και το αποτέλεσμα της αποκρυπτογράφησης είναι

cd (mod n) = med (mod n)

� Θα δείξουμε ότι med (mod n) = m

94

med (mod n) = m

� Τα e και d είναι πολλαπλασιαστικοί αντίστροφοι mod phi(n), με phi(n)=(p-1)∙(q-1)

� Επομένως e∙d = 1 (mod phi(n)) ή ισοδύναμα e∙d = 1 + k (p-1) (q-1), για κάποιο κατάλληλο k.

� Θα δείξουμε ότι med = m (mod p)

� Eάν m = 0 (mod p) τότε και med = 0 (mod p)

� Εάν m ≠ 0 (mod p) τότε

� Όμοια προκύπτει ότι med = m (mod q)

� Οι αριθμοί p και q είναι σχετικά πρώτοι μεταξύ τους (έτσι και αλλιώς, αφού είναι πρώτοι αριθμοί)

� Επομένως εφαρμόζεται το Chinese Remainder Theorem n1=p, n2=q, n = n1∙n2 και παίρνουμε

med = m (mod n)

95

med =m ∙ (mp-1)k(q-1) (mod p)

=m ∙ ( (m mod p)p-1 )k(q-1) (mod p)

=m ∙ ( 1 )k(q-1) (mod p)

=m (mod p)

96

Ασφάλεια του RSA

� Η ασφάλεια αλλά και η πρακτικότητα του RSA βασίζονται στις παρακάτω διαπιστώσεις/υποθέσεις:

� Είναι υπολογιστικά εφικτό να βρεθούν πολύ μεγάλοι (πχ. 1024 ή 2048 bits) τυχαίοι πρώτοι αριθμοί

� Δεν είναι υπολογιστικά εφικτό (μέχρι σήμερα) να παραγοντοποιηθούν ακέραιοι που ισούνται με το γινόμενο πολύ μεγάλων πρώτων αριθμών

Page 33: Κρυπτογραφία - euclid.ee.duth.gr · 2/4/2014 6 Πρώτοι αριθμοί – Σύνθετοι Αριθμοί Ακέραιος αριθμός α. Αν α > 1 και οι

2/4/2014

33

97

ElGamal

� ElGamal cryptosystem: Πιθανοκρατικό Κρυπτοσύστημα Δημοσίου Κλειδιού

� Ο αλγόριθμος ElGamal μπορεί να χρησιμοποιηθεί αντί του RSA

� Πιθανόν ασφαλέστερος

� Η ασφάλεια του βασίζεται σε πρόβλημα σχετικό με τον υπολογισμό του διακριτού λογαρίθμου (discrete logarithm)

� Επίσης δημοφιλές είναι το Paillier cryptosystem

ElGamal

� Πιθανοκρατική κρυπτογράφηση (probabilistic encryption): Το ίδιο αρχικό μήνυμα κρυπτογραφείται κάθε φορά σε διαφορετικό κρυπτοκείμενο.

� Πλεονέκτημα: Ακόμα και εάν κάποιος υποψιάζεται το περιεχόμενο ενός κρυπτογραφημένου μηνύματος δεν μπορεί να επαληθεύσει ότι είναι πράγματι αυτό (χρησιμοποιώντας μόνο το δημόσιο κλειδί).

� Μειονέκτημα του ElGamal: Το κρυπτοκείμενο που παράγει ο ElGamal είναι διπλάσιο σε μέγεθος από το αρχικό κείμενο.

98

Υπολογιστική Πολυπλοκότητα

� Υπολογιστική πολυπλοκότητα του ερωτήματος εάν ένας ακέραιος αριθμός πρώτος ή σύνθετος;

� Απαντιέται σε πολυωνυμικό χρόνο

� Παραγοντοποίηση ενός σύνθετου ακεραίου αριθμού

� Δεν έχει βρεθεί πολυωνυμικός αλγόριθμος

� Όμως, ΔΕΝ είναι NP-Complete

99

Page 34: Κρυπτογραφία - euclid.ee.duth.gr · 2/4/2014 6 Πρώτοι αριθμοί – Σύνθετοι Αριθμοί Ακέραιος αριθμός α. Αν α > 1 και οι

2/4/2014

34

100

Κβαντικοί Υπολογιστές

� Στο μοντέλο του κβαντικού υπολογισμού υπάρχει πολυωνυμικός αλγόριθμος που παραγοντοποιεί ακέραιους αριθμούς !!

� Έχουν υλοποιηθεί στοιχειώδεις κβαντικοί υπολογιστές (μερικών bit) σε περιβάλλον εργαστηρίου

� Άμεσα αλλά και μεσοπρόσθεσμα δε φαίνεται να μπορούν να κατασκευαστούν πρακτικά χρήσιμοι κβαντικοί υπολογιστές

101

Πηγές/Αναφορές

� Κεφάλαιο 31 “Number-Theoretic Algorithms” από το βιβλίο Introduction to Algorithms, T. Cormen, C. Leiserson, R. Rivest, C. Stein, Second Edition, MIT Press, 2001

� Θεωρία Αριθμών (Κεφάλαιο 2), Τεχνικές Κρυπτογραφίας & Κρυπτανάλυσης, Κάτος, Στεφανίδης, Εκδ. Ζυγός,

� Διαφάνειες Β. Κάτου, Επίκ. Καθηγητή ΔΠΘ

� Σύγχρονη Κρυπτογραφία – Θεωρία και Εφαρμογές, Κεφάλαια 2 και 3