Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

1 Τα Προβλήματα TSP & RSA Σε αυτές τις διαφάνειες παρουσιάζουμε μια σύντομη ανάλυση  του προβλήματος του Περιοδεύοντα Πωλητή (Traveling.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "1 Τα Προβλήματα TSP & RSA Σε αυτές τις διαφάνειες παρουσιάζουμε μια σύντομη ανάλυση  του προβλήματος του Περιοδεύοντα Πωλητή (Traveling."— Μεταγράφημα παρουσίασης:

1 halatsis@di.uoa.gr 1 Τα Προβλήματα TSP & RSA Σε αυτές τις διαφάνειες παρουσιάζουμε μια σύντομη ανάλυση  του προβλήματος του Περιοδεύοντα Πωλητή (Traveling Salesman Problem, TSP) περιγράφοντας τον Αλγόριθμο Χριστοφίδη  το πρόβλημα/ σύστημα κρυπτογραφίας RSA

2 halatsis@di.uoa.gr 2 Το πρόβλημα TSP Given a complete undirected graph G(V,E) that has a nonnegative integer cost c(u,v) associated with each edge (u,v)  E, find a path which starts and ends at the same vertex (a tour), includes every other vertex exactly once, with minimum cost. Παράδειγμα:

3 halatsis@di.uoa.gr 3 TSP – Αλγόριθμος Χριστοφίδη (γράφοι με τριγωνική ιδιότητα)  Input: starting vertex S, 1. Find a MST (Minimum Spanning Tree) T1 (green tree); 2. Let S’ be the set of vertices in T1 with odd degree ( white vertices); 3. Find an MWM (minimum weight matching) M on S’ (the blue dashed edges); 4. Construct an Euler tour T2 on the edges of T1+M (the yellow edges); 5. “shortcut” T2 and return a tour T (red lines)  Ο αλγόριθμος Χριστοφίδη βρίσκει ένα Tour με κόστος το πολύ 3/2 φορές του βέλτιστου

4 halatsis@di.uoa.gr 4 TSP – Αλγόριθμος Χριστοφίδη Green lines = minimum spanning tree (MST) Blue dashed lines = minimum weight matching (MWM) Yellow dashed lines = Euler tour Red lines = TSP tour

5 halatsis@di.uoa.gr 5 TSP – Αλγόριθμος Χριστοφίδη Ανάλυση In step 1, we find the Minimum Spanning Tree T1 (the green edges). The sum of degrees of all the vertices S (d) = 2m, where m= number of edges. Therefore S(d) is even. Let Se(d) to be the sum of degrees of the vertices which have even degree, Se(d) is also even. Therefore S(d)-Se(d) = 2k, k=1,2,…, which means that the sum of degrees of the vertices which have odd degree each is also an even number. Thus there are even numbers of vertices which have odd number of degree. In this number, vertices 4 and 10 have even number degrees. Thus the set of vertices with odd degree is S’=(1,2,3,5,6,7,8,9,11,12). In step 3, we find a minimum weight matching on the vertices in S’. In this example, the minimum matching edges are 1-3,2- 5,6-7,8-9,11-12. (see the blue dashed lines)

6 halatsis@di.uoa.gr 6 TSP-Αλγόριθμος Χριστοφίδη Ανάλυση Euler Tour: defined as a path that starts and ends at the same vertex and visits all the edges exactly once. In step 4, we construct a Euler tour based on the MST found in step 1(because all vertices have even degree), T1 and all the matching edges built in step 2 M. So we get a tour T2: 1-3-2-4-5- 7-9-12-11-10-9-8-7-6-5-2-1 (see the yellow dashed lines) In step 5, we make a shortcut of T2 by visiting all the vertices just once. So, we get T: 1-3-2-4-5-7-9-12-11-10-8-6-1 (see the red lines). T is the near- optimal solution to TSP by Christofidis. wt(T)  wt(T2) = wt(T1) + wt(M) = wt(MST) + wt(M)  wt(Topt) + wt(M) (1) the inequality holds because when deleting an edge from Topt results to a tree worse to the MST.

7 halatsis@di.uoa.gr 7 Κύκλος TSP-Αλγόριθμος Χριστοφίδη Ανάλυση Now, we prove wt(M)  ½ wt(Topt). Suppose we have a TSP tour T’ visiting all the vertices that have odd degrees (this is the set S’ of step 2. So wt(T’)  wt(Topt). We choose alternate edges among the edges on this T’ path. Let M1 and M2 be two sets of edges (orange and light blue lines) (note that either M1 and M2 cover the nodes S’).  Note that the Topt includes the nodes S’  The remaining nodes x of the graph are interleaved with those of S’  So, wt(a,b)  wt(a,x,b) for every edge (a,b) in S’ and node x in Topt So, we have wt(T’) = wt(M1) + wt(M2)  wt(Topt) Since we find the minimum matching edges M, we have  wt(M)  wt(M1) and wt(M)  wt(M2),  wt(M)  min{wt(M1), wt(M2)}  ½ wt(Topt) (2) With (1), (2), we have wt(T)  wt(Topt) + ½ wt(Topt) = 3 / 2 wt(Topt) a x b

8 halatsis@di.uoa.gr 8 Σχηματική αναπαράσταση Χρήστης A Χρήστης B Κρυπτογράφηση με το δημόσιο κλειδί του B Αποκρυπτογράφηση με το ιδιωτικό κλειδί του B Κρυπτογραφημένο μήνυμα Κρυπτογράφηση με το δημόσιο κλειδί του A Αποκρυπτογράφηση με το ιδιωτικό κλειδί του A Κρυπτογραφημένο μήνυμα

9 halatsis@di.uoa.gr 9 Υπολογιστικά δύσκολα προβλήματα που χρησιμοποιούνται στην κρυπτογραφία (I) Factoring: για δοθέν ακέραιο n, εύρεση της παραγοντοποίησής του σε πρώτους παράγοντες RSA problem: Για δοθέν ακέραιο n που είναι γινόμενο δύο πολύ μεγάλων πρώτων p και q διαφορετικών μεταξύ τους, δοθέν φυσικό e τέτοιον ώστε gcd(e,(p-1)(q-1))=1 και δοθέν ακεραίου c, εύρεση ακεραίου m με την ιδιότητα: m e  c(mod n)

10 halatsis@di.uoa.gr 10 Υπολογιστικά δύσκολα προβλήματα που χρησιμοποιούνται στην κρυπτογραφία (II) Square roots modulo n (SQROOT): για δοθέν σύνθετο ακέραιο n και a  Q n (το σύνολο των τετραγωνικών υπολοίπων mod n), εύρεση τετραγωνικής ρίζας του a modulo n (δηλαδή, εύρεση x με την ιδιότητα x 2  a(mod n)) Discrete logarithm problem (DLP): Δοθέντος πρώτου p, ενός στοιχείου-γεννήτορα a της ομάδας Z p * και ενός στοιχείου β  Z p *, εύρεση ακεραίου x, 0 ≤ x ≤ p-2 τέτοιου ώστε a x  β (mod p)

11 halatsis@di.uoa.gr 11 Υπολογιστικά δύσκολα προβλήματα που χρησιμοποιούνται στην κρυπτογραφία (III) Diffie – Hellman problem (DHP): Δοθέντος ενός πρώτου p, ενός στοιχείου-γεννήτορα a της ομάδας Z p * και στοιχείων a α mod p και a β mod p, εύρεση του a αβ mod p. Subset sum problem (SUBSET-SUM): Δοθέντος ενός συνόλου θετικών ακεραίων {a 1, a 2, …, a n } και ενός θετικού ακεραίου s, έλεγχος για το υπάρχει ή όχι υποσύνολο των a i τέτοιων ώστε το άθροισμά τους να ισούται με s.

12 halatsis@di.uoa.gr 12 Αλγόριθμος RSA Πήρε το όνομά του από τους εμπνευστές του Rivest, Shamir, Adleman. Kάθε χρήστης διαλέγει τυχαία δύο πολύ μεγάλους πρώτους αριθμούς p, q, και υπολογίζει το γινόμενο N=pq.  Το N θα πρέπει να αποτελείται τουλάχιστον από 200 ψηφία και μπορεί να δημοσιοποιηθεί  Τα p και q κρατούνται μυστικά.

13 halatsis@di.uoa.gr 13 Ο αλγόριθμος RSA (συνέχεια) Με χρήση των p και q, ο χρήστης υπολογίζει τη συνάρτηση Euler φ(N), που ισούται με το πλήθος των θετικών ακεραίων που είναι πρώτοι ως προς το N.  φ(N)=φ(p)φ(q) = (p-1) (q-1) Στη συνέχεια ο χρήστης διαλέγει έναν τυχαίο αριθμό e μικρότερο του φ(Ν) με την ιδιότητα gcd(e,φ(N))=1. Ο αριθμός e δημοσιοποιείται. Με τον επεκταμένο (extended) αλγόριθμο του Ευκλείδη, ο χρήστης υπολογίζει τον μοναδικό ακέραιο d, 1 < d < φ(N), με την ιδιότητα ed=1 (mod φ(Ν)). Το δημόσιο κλειδί του χρήστη είναι το ζεύγος (N,e). Το ιδιωτικό του κλειδί είναι ο αριθμός d.

14 halatsis@di.uoa.gr 14 Επεκταμένος αλγόριθμος του Ευκλείδη Για δοθέντα a, b με α ≥ b ≥ 0, εύρεση του g = gcd(a,b) και ακεραίων x, y με την ιδιότητα a  x + b  y =g (στον RSA: a = φ(Ν), b = e και επίσης g = 1. Στο d θα αποδοθεί η τιμή του y, δηλ., φ(Ν)  x + e  d = 1, οπότε e  d = 1 mod φ(Ν) ). Βήμα 1: Αν b=0, τότε: d=a, x=1, y=0, δηλ., a=a  1+0  0 ΤΕΛΟΣ. Διαφορετικά, Βήμα 2: x 2 = 1, x 1 = 0, y 2 = 0, y 1 = 1 Βήμα 3: Για όσο ισχύει b>0  q =  a/b , r = a  q  b, x = x 2  q  x 1, y = y 2  q  y 1  a = b, b = r, x 2 = x 1, x 1 = x, y 2 = y 1, y 1 = y Βήμα 4: g = a, x = x 2, y = y 2 και επέστρεψε (g, x, y) ΤΕΛΟΣ

15 halatsis@di.uoa.gr 15 Παράδειγμα για RSA Έστω p=47, q=59, N=pq=2773, φ(Ν)=(p -1)(q -1)=2668, e=17 Άρα x =x 2 =-1 και y= y 2 =157, συνεπώς: Αποτέλεσμα: 2668· (-1) + 17 · 157 = 1, άρα 17 157 =1 mod 2668 qrxya=φ(Ν)b=ex2x2 x1x1 y2y2 y1y1 ----2668171001 156161-1561716011-156 111571611-156157 16017-26681017157-2668

16 halatsis@di.uoa.gr 16 Παράδειγμα ειδικό για τον RSA (με αντιστοίχηση στα βήματα του συνήθη) Πιο απλή μέθοδος! Έστω p=47, q=59, N=pq=2773, φ(Ν)=(p -1)(q -1)=2668, e=17 Τα βήματα του επεκταμένου αλγορίθμου του Ευκλείδη περιγράφονται πιο απλά με βάση τα βήματα του συνήθη αλγορίθμου, όπως φαίνεται στο παράδειγμα Συνήθης Επεκταμένος 2668 = 17·156 + 16 16= 2668  17·156 17=1·16 + 1 1= 17  1 ·16= 17  1 · (2668  17 ·156 = (  1)·2668 + 17·157 Άρα, 17 · 157 = 1 mod φ(2668)

17 halatsis@di.uoa.gr 17 RSA παράδειγμα ΘεωρίαΠαράδειγμα N = pq 2773 = 47 · 59 p=47, q=59 ed  1 (mod(p-1) (q-1))17 · 157 ≡ 1 (mod 2668), e=17, d=157 Δημόσιο κλειδί: (e, Ν)(17,2773) Ιδιωτικό κλειδί: (d)(157) Μήνυμα m (0 < m < N) m = 31 H γνώση των p, q απαιτείται για τον υπολογισμό του d

18 halatsis@di.uoa.gr 18 Αλγόριθμος RSA (κρυπτογράφηση) Για να κρυπτογραφηθεί ένα μήνυμα m που θέλει να στείλει κάποιος χρήστης B στον χρήστη A, το m διασπάται σε μία σειρά τμημάτων m 1, m 2, …, m p, όπου κάθε m i αναπαρίσταται από έναν ακέραιο μεταξύ 0 και N. Η κρυπτογράφηση γίνεται ξεχωριστά για κάθε block m i με χρήση των δημοσίων κλειδιών e και N του A και παράγεται το κρυπτόγραμμα c i ως εξής: c i =m i e mod N

19 halatsis@di.uoa.gr 19 RSA παράδειγμα ΘεωρίαΠαράδειγμα N = pq 2773 = 47 · 59 p=47, q=59 ed  1 (mod(p-1) (q-1))17 · 157 ≡ 1 (mod 2668), e=17, d=157 Δημόσιο κλειδί: (e, Ν)(17,2773) Ιδιωτικό κλειδί: (d)(157) Μήνυμα m (0 < m < N) m = 31 H γνώση των p, q απαιτείται για τον υπολογισμό του d Κρυπτογράφηση : c ≡ m e (mod n) 587 ≡ 31 17 (mod 2773)

20 halatsis@di.uoa.gr 20 Αλγόριθμος RSA (αποκρυπτογράφηση) Ο A αποκρυπτογραφεί το κρυπτόγραμμα c υπολογίζοντας το m = c d mod N. Η σχέση μεταξύ του d και του e εξασφαλίζει τη σωστή ανάκτηση του m. Μόνο ο Α μπορεί να αποκρυπτογραφήσει το μήνυμα, αφού είναι ο μόνος που γνωρίζει το d. O RSA στην ουσία στηρίζεται στα υπολογιστικά δύσκολα προβλήματα Factoring και RSA Problem – η δυσκολία αυτών του προσδίδει και την ασφάλειά του

21 halatsis@di.uoa.gr 21 Σύνοψη RSA και παράδειγμα ΘεωρίαΠαράδειγμα N = pq 2773 = 47 · 59 p=47, q=59 ed  1 (mod(p-1) (q-1))17 · 157 ≡ 1 (mod 2668), e=17, d=157 Δημόσιο κλειδί: (e, Ν)(17,2773) Ιδιωτικό κλειδί: (d)(157) Μήνυμα m (0 < m < N) m = 31 H γνώση των p, q απαιτείται για τον υπολογισμό του d Κρυπτογράφηση : c ≡ m e (mod n) 587 ≡ 31 17 (mod 2773) Αποκρυπτογράφηση: m ≡ c d (mod N) 31 ≡ 587 157 (mod 2773)

22 halatsis@di.uoa.gr 22 Ερμηνεία της αποκρυπτογράφησης RSA Από ed = 1 mod φ(Ν) = 1 mod (p-1)(q-1) έπεται ότι υπάρχει ακέραιος k με ed = kφ(Ν) +1. Άρα c i d = m i ed = m i kφ(N)+1 = m i k(p-1)(q-1)+1 = m i m i k(p-1)(q-1) Εάν το m ι διαιρείται από το p, τότε m i ed = 0 ed = m i mod p Εάν το m ι δεν διαιρείται από το p, τότε (Θεώρημα Εuler) m i p-1 = 1 mod p, οπότε m i ed = m i mod p Ομοίως έχουμε m i ed = m i mod q Επειδή p  q έπεται m i ed = m i mod N

23 halatsis@di.uoa.gr 23 Επιθέσεις εναντίον RSA Παραγοντοποίηση του N στους πρώτους παράγοντές του p και q. Ο επιτιθέμενος θα μπορεί έτσι να υπολογίσει το d. (πρόβλημα factoring). Αν το πλήθος των πιθανών μηνυμάτων δεν είναι μεγάλο, ο επιτιθέμενος μπορεί να αποκρυπτογραφήσει το c κάνοντας απλά εξαντλητικό έλεγχο κρυπτογραφώντας όλα τα πιθανά μηνύματα, μέχρι να παραχθεί το c. (Forward search attack)

24 halatsis@di.uoa.gr 24 Ασφάλεια του RSA Όσο πιο μεγάλο είναι το N (κλειδί), τόσο πιο μεγάλη η ασφάλεια. Από την άλλη, ο RSA γίνεται πιο αργός. Τα p, q πρέπει να έχουν μεγάλη διαφορά μεταξύ τους: αν η διαφορά p-q είναι μικρή, τότε p , και έτσι ο p (άρα και ο q) μπορούν να υπολογιστούν με δοκιμές. Ο 512-bit RSA-155 «έσπασε» μέσα σε 7 μήνες το 1999. Το RSA lab προτείνει σήμερα σαν μέγεθος κλειδιού τουλάχιστον 1024 bits.


Κατέβασμα ppt "1 Τα Προβλήματα TSP & RSA Σε αυτές τις διαφάνειες παρουσιάζουμε μια σύντομη ανάλυση  του προβλήματος του Περιοδεύοντα Πωλητή (Traveling."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google