Κρυπτογραφια και πολυπλοκοτητΑ

26
Το Κρυπτοσύστημα Σακιδίου των Merkle-Hellman και η επίθεση του Shamir Κρυπτογραφια και πολυπλοκοτητΑ

Upload: melosa

Post on 22-Feb-2016

59 views

Category:

Documents


0 download

DESCRIPTION

Κρυπτογραφια και πολυπλοκοτητΑ. Το Κρυπτοσύστημα Σακιδίου των Merkle -Hellman και η επίθεση του Shamir. Το Κρυπτοσύστημα Σακιδίου. Το κρυπτοσύστημα Merkle - Hellman είναι ένα κρυπτοσύστημα δημόσιου κλειδιού βασισμένο στο πρόβλημα Σακιδίου ( Knapsack problem ). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Κρυπτογραφια και  πολυπλοκοτητΑ

Το Κρυπτοσύστημα Σακιδίου των Merkle-Hellman

και η επίθεση του Shamir

Κρυπτογραφιακαι

πολυπλοκοτητΑ

Page 2: Κρυπτογραφια και  πολυπλοκοτητΑ

Το Κρυπτοσύστημα ΣακιδίουΤο κρυπτοσύστημα Merkle-Hellman είναι ένα κρυπτοσύστημα δημόσιου κλειδιού βασισμένο στο πρόβλημα Σακιδίου (Knapsack problem).

Το πρόβλημα σακιδίου είναι NP-πλήρες, οπότε θεωρείται αρκετά απρόσιτο υπολογιστικά.

Στην πραγματικότητα, γι’ αυτό το κρυπτοσύστημα δεν χρησιμοποιούμε το πρόβλημα του σακιδίου, αλλά το πρόβλημα του Αθροίσματος Υποσυνόλων (Subset Sum) .

Για καλύτερη κατανόηση θα περιγράψουμε και τα δυο παραπάνω προβλήματα.

 

Page 3: Κρυπτογραφια και  πολυπλοκοτητΑ

Το πρόβλημα Knapsack ορίζεται ως εξής: Θεωρήστε έναν ακέραιο (την χωρητικότητα) Μ>0 και ένα σύνολο

S αντικειμένων s(i) , που στο καθένα αντιστοιχούν δύο αριθμοί: η τιμή v(i), και το βάρος w(i) .

Έτσι S={s(1), s(2),…,s(n)}, όπου s(i)={v(i), w(i)}. Πρέπει να επιλέξουμε ορισμένα αντικείμενα από το S (χωρίς

επαναλήψεις), τέτοια ώστε να μεγιστοποιήσουμε τη συνολική τους τιμή, ενώ τα βάρη τους να μην ξεπερνούν την χωρητικότητα M.

Μαθηματικά περιγράφεται το πρόβλημα ως εξής: Ζητάμε να βρεθεί ένα υποσύνολο S’<{1,…,n} δεικτών

τέτοιο ώστε:α) το άθροισμα των βαρών να είναι μικρότερο από

την χωρητικότητα Μ και β) το άθροισμα των τιμών όσο δυνατό μεγαλύτερο.

Το πρόβλημα Σακιδίου (Knapsack problem)

Page 4: Κρυπτογραφια και  πολυπλοκοτητΑ

Το πρόβλημα Αθροίσματος Υποσυνόλων (Subset Sum) είναι μια ειδική περίπτωση του προβλήματος Σακιδίου (Knapsack problem).

Θεωρήστε ένα σύνολο D ακεραίων. Το πρόβλημα έγκειται στην εύρεση υποσυνόλου D’ τέτοιο ώστε το άθροισμα των στοιχείων του υποσυνόλου να είναι μηδεν. Για παράδειγμα στην περίπτωση που έχουμε D={-7,-3,-2,5,8} η απάντηση είναι ναι αφού υπάρχει D’={-2,-3,5} τέτοιο ώστε το άθροισμα των στοιχείων του D’ να είναι μηδέν.

Ισοδύναμο πρόβλημα θεωρείται και η εύρεση υποσυνόλου του D τέτοιο ώστε το άθροισμα το στοιχείων του να είναι ίσο με οποιονδήποτε προκαθορισμένο ακέραιο . Ιδιαίτερα ενδιαφέρουσα περίπτωση του προβλήματος Αθροίσματος Υποσυνόλων (Subset Sum) είναι όταν αυτός ο προκαθορισμένος αριθμός είναι το ημιάθροισμα των στοιχείων του D (partition problem).

Πρόβλημα Αθροίσματος Υποσυνόλων(Subset Sum)

Page 5: Κρυπτογραφια και  πολυπλοκοτητΑ

Δε θα κάνουμε εκτεταμένη αναφορά στις κλάσεις πολυπλοκότητας, με τη λογική ότι ξεφεύγει από τον στόχο του project αυτού. Παρ’ όλα αυτά θεωρείται επιβεβλημένη μια minimum αναφορά στο τι σημαίνει κάποιο πρόβλημα να είναι NP-complete.

Στην θεωρία πολυπλοκότητας, η κλάση NP-complete είναι μια κλάση προβλημάτων απόφασης. Ένα πρόβλημα είναι NP-complete, αν ανήκει στα προβλήματα NP έτσι ώστε κάθε λύση να επαληθευθεί σε πολυωνυμικό χρόνο και αν ανήκει και στα προβλήματα NP-hard δηλαδή κάθε NP πρόβλημα να μπορεί να μετατραπεί στο πρόβλημα με μια μετατροπή των εισόδων σε πολυωνυμικό χρόνο.

Παρ’ όλο που κάθε λύση τέτοιου προβλήματος μπορεί να επαληθευθεί «γρήγορα», δεν έχει βρεθεί αποτελεσματικός τρόπος να βρεθεί μια λύση. Πράγματι, το πιο αξιοσημείωτο χαρακτηριστικό αυτής της κλάσης προβλημάτων είναι πως δεν έχει βρεθεί καμία «γρήγορη» λύση. Αυτό συμβαίνει, γιατί ο χρόνος που κάθε γνωστός αλγόριθμος λύνει το πρόβλημα αυξάνεται «πού γρήγορα» όσο το μέγεθος των εισόδων αυξάνεται.

Έτσι ο χρόνος λύσης κάποιου μετρίου μεγέθους προβλήματος αυτής της κλάσης εύκολα αγγίζει τα δισεκατομμύρια ή τρισεκατομμύρια χρόνια, με οποιαδήποτε σημερινή υπολογιστική ισχύ. Το να αποφασίσουμε αν υπάρχει λύση πολυωνυμικού χρόνου αυτών των προβλημάτων ανάγεται στο γνωστό «P versus NP problem» το οποίο είναι ένα από τα θεμελιώδη άλυτα προβλήματα της επιστήμης των υπολογιστών μέχρι και σήμερα.

Κλάση NP-complete

Page 6: Κρυπτογραφια και  πολυπλοκοτητΑ

Το πρόβλημα του Σακιδίου (για τους σκοπούς του κρυπτοσυστήματος Merkle-Hellman) αποτελείται από:α) μία n-άδα από διαφορετικούς θετικούς ακεραίους, που ονομάζεται διάνυσμα του σακιδίου καιβ) έναν θετικό ακέραιο k, την χωρητικότητα του σακιδίου. Το πρόβλημα είναι να βρούμε τέτοιους ακεραίους των οποίων το άθροισμα να είναι ίσο με k.

Πάντα μπορεί να βρεθεί μια λύση ελέγχοντας εξαντλητικά όλα τα 2^n υποσύνολα του διανύσματος σακιδίου, ψάχνοντας μήπως κάποιο από αυτά έχει άθροισμα το k. Για μεγάλο n αυτός ο υπολογισμός είναι απρόσιτος.

Κρυπτοσύστημα Σακιδίου(1)

Page 7: Κρυπτογραφια και  πολυπλοκοτητΑ

Ορίζουμε μια συνάρτηση f(x) ως εξής: Έστω X η δυαδική αναπαράσταση ( με n bits) του

ακεραίου x, (προσθέτοντας μηδενικά στην αρχή αν είναι απαραίτητο).

Το f(x) είναι ίσο με το άθροισμα όλων των στοιχείων του διανύσματος σακιδίου τέτοιων ώστε το i-οστό bit του x να είναι άσσος.

f(x)=A B(x), A το διάνυσμα σακιδίου,Β(x) η δυαδική αναπαράσταση του x γραμμένη ως

διάνυσμα στήλη. Με τον παραπάνω ορισμό η f είναι one-way αφού η

αντιστροφή της αντιστοιχεί στην λύση του προβλήματος του σακιδίου.

Κρυπτοσύστημα Σακιδίου(2)Η συνάρτηση f(x)

Page 8: Κρυπτογραφια και  πολυπλοκοτητΑ

Το αρχικό κείμενο γράφεται με την μορφή δυαδικής ακολουθίας αντικαθιστώντας κάθε γράμμα του αλφαβήτου με τον αντίστοιχο αριθμό (π.χ. ASCII) (γραμμένο σε δυαδική μορφή).

Κάθε ακολουθία των n bits κρυπτογραφείται υπολογίζοντας τη συνάρτηση f για το συγκεκριμένο κομμάτι (block).

Κρυπτοσύστημα Σακιδίου(3) Κρυπτογράφηση με την f(x)

Page 9: Κρυπτογραφια και  πολυπλοκοτητΑ

Η αποκρυπτογράφηση είναι εξίσου δύσκολη με ένα NP-πλήρες πρόβλημα.

Όμως ο νόμιμος χρήστης (που γνωρίζει μια μυστική καταπακτή) χρειάζεται να λύσει ένα εύκολο στιγμιότυπο του προβλήματος του σακιδίου.

Μια κλάση από εύκολα προβλήματα σακιδίου είναι αυτή των προβλημάτων που χρησιμοποιούν υπεραυξητικά διανύσματα σακιδίου .

Κρυπτοσύστημα Σακιδίου(4) Αποκρυπτογράφηση με την f(x)

Page 10: Κρυπτογραφια και  πολυπλοκοτητΑ

Ένα διάνυσμα σακιδίου λέγεται υπεραυξητικό αν κάθε στοιχείο υπερβαίνει το άθροισμα όλων των προηγούμενων στοιχείων 

Χαρακτηριστικά: γραμμικός χρόνος λύσηςτο πολύ μία λύση

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

Έτσι ανακατεύουμε το διάνυσμα έτσι ώστε να μοιάζει με τυχαίο διάνυσμα σακιδίου

Κρυπτοσύστημα Σακιδίου(5) Υπεραυξητικά διανύσματα

Page 11: Κρυπτογραφια και  πολυπλοκοτητΑ

Γίνεται με πολλαπλασιασμό με moduloΔιαλέγουμε m ακέραιο, t πολλαπλασιαστή, με

gcd(m,t)=1 και έτσι ώστε να υπάρχει ο t^(-1)(mod m).Πολλαπλασιάζουμε το διάνυσμα σακιδίου με τον t και

μετά με το modulo m και το δημοσιεύουμε.Ο νόμιμος αποδέκτης μπορεί να αποκρυπτογραφήσει

πολλαπλασιάζοντας πρώτα με t^(-1) και μετά mod m.t,t^(-1),m είναι η καταπακτή (secret trapdoor)Η μοναδική λύση είναι το αρχικό κείμενο. p, αρχικό κείμενο και c’, κρυπτογραφημένο τότε

c=t^(-1)c’=t^(-1)tAp=Ap(mod m)

Κρυπτοσύστημα Σακιδίου(6)Το «ανακάτεμα»

Page 12: Κρυπτογραφια και  πολυπλοκοτητΑ

Το κρυπτοσύστημα σακιδίου έσπασε το 1984 από τον Α. Shamir με αλγόριθμο πολυωνυμικού χρόνου.

Ο Shamir χρησιμοποίησε τον αλγόριθμο του Lenstra για ακέραιο προγραμματισμό προκειμένου να βρει την καταπακτή (trapdoor) και να παραβιάσει το σύστημα.

Δεν είναι απαραίτητο να βρούμε τα t,m. Αρκεί να βρούμε t’, m’ τέτοια ώστε ο πολλαπλασιασμός του δημοσιευμένου διανύσματος με το (t’)^(-1)(mod m) να είναι ένα υπεραυξητικό διάνυσμα.

Ο αλγόριθμος χωρίζετα σε δυο μέρη.

Η επίθεση του Shamir(1)

Page 13: Κρυπτογραφια και  πολυπλοκοτητΑ

Αν Α είναι το διάνυσμα σακιδίου, το W,M είναι ζευγάρι καταπακτής (trapdoor pair), όταν η WA(mod M) είναι υπεραυξητική ακολουθία.

Βρίσκουμε με τη βοήθεια του αλγορίθμου ακέραιου προγραμματισμού του Lenstra έναν θετικό ρητό αριθμό α, μικρότερο της μονάδας, έτσι ώστε:

Μια αναγκαία συνθήκη, για να είναι το W,M ζευγάρι καταπακτής να είναι η: W/M ανήκει στο [α,α+ε], όπου ε μικρός θετικός.

Η επίθεση του Shamir(1)Πρώτο μέρος

Page 14: Κρυπτογραφια και  πολυπλοκοτητΑ

Στο δεύτερο κομμάτι, χρησιμοποιούμε το γεγονός ότι η αναλογία W/M είναι προσεγγιστικά γνωστή, για να βρούμε το πολύ n^2 υποδιαστήματα (l(i),r(i)) του [α,α+ε] , τέτοια ώστε η συνθήκη:

W/M ανήκει σε κάποιο υποδιάστημα (l(i),r(i)),

να είναι και ικανή συνθήκη για να είναι το W και το M ένα «ζευγάρι καταπακτής» (trapdoor pair).

Η ύπαρξη ενός τουλάχιστον ζευγαριού εξασφαλίζεται από την κατασκευή του κρυπτοσυστήματος. Έτσι τουλάχιστον ένα από τα παραπάνω υποδιαστήματα θα είναι μη κενό.

Η επίθεση του Shamir(2)Δεύτερο μέρος

Page 15: Κρυπτογραφια και  πολυπλοκοτητΑ

W0,M0 το «αυθεντικό κλειδί».

Πρώτο βήμα: Ορίζουμε για τυχαίους θετικούς πραγματικούς W,M το trapdoor pair σε μια γενική βάση.

Για Μ=Μ0, W<M0 και Α το διάνυσμα σακιδίου η γραφική παράσταση της συνάρτησης WA(i) (mod M0), έχει «πριονωτή» μορφή:

Η επίθεση του Shamir(2)Ο αλγόριθμος αναλυτικά

Page 16: Κρυπτογραφια και  πολυπλοκοτητΑ

Η επίθεση του Shamir(3)WA(i) (mod M0)

Page 17: Κρυπτογραφια και  πολυπλοκοτητΑ

Η παράγωγος της συνάρτησης είναι A(i) , ο αριθμός των ελαχίστων είναι A(i) και η απόσταση μεταξύ δύο διαδοχικών ελαχίστων είναι M0/ A(i) (ελάχιστα μεγαλύτερο της μονάδας).

Έστω Α(i) αντιστοιχεί στο ελάχιστο στοιχείο του Α.H απόσταση μεταξύ του W και του «πλησιέστερου»

ελαχίστου από τα αριστερά του δεν μπορεί να υπερβαίνει το μέγεθος 2^n/Α(i)~2^(-n). Παρ’ όλα αυτά, ακόμα και να υποθέσουμε ότι ο είναι ακέραιος (το οποίο δεν μπορούμε να το κάνουμε), είναι τόσες πολλές οι τιμές που μπορεί να πάρει που είναι αδύνατο να ψάξουμε εξαντλητικά.

Η επίθεση του Shamir(4)WA(i) (mod M0)

Page 18: Κρυπτογραφια και  πολυπλοκοτητΑ

Έστω Α(j) αντιστοιχεί στο δεύτερο μικρότερο στοιχείο του Α.

Με παρόμοια ανάλυση: o W θα έχει απόσταση από το Α(j)-«δόντι» του διαγράμματος μικρότερη του 2^(n+1)/A(j)

Άρα Α(i) και Α(j) θα είναι «πολύ κοντά». Αυτή η διαπίστωση μειώνει εξαιρετικά το εύρος των

πιθανών τιμών του W αλλά δεν μπορεί να το χαρακτηρίσει μοναδικά.

Συνεχίζοντας με τον ίδιο τρόπο καταλήγουμε στο ότι όλα τα ελάχιστα θα είναι «κοντά».

Πρόβλημα εύρεσης του W<=>Πρόβλημα εύρεσης σημείου συσσώρευσης των ελαχίστων.

Η επίθεση του Shamir(5)WA(i) (mod M0)

Page 19: Κρυπτογραφια και  πολυπλοκοτητΑ

Όταν υπερτίθενται τέσσερις καμπύλες η πιθανότητα να βρεθούν τέσσερα ελάχιστα «κοντά» είναι τόσο μικρή, ώστε είναι εξαιρετικά απίθανο να συμβεί σε πολλές θέσεις στην περιοχή W<M0.

Ο αριθμός τέσσερα είναι ανεξάρτητος του n και εξαρτάται μόνο από την αναλογία του Μ0 με το μικρότερο στοιχείο του Α(το υποθέσαμε 2).

Η επίθεση του Shamir(6)WA(i) (mod M0)

Page 20: Κρυπτογραφια και  πολυπλοκοτητΑ

1) Θεωρήσαμε γνωστό το Μ0.Αυτό το πρόβλημα το λύνουμε διαιρώντας

τετμημένη και τεταγμένη με το Μ0.Στο νέο σύστημα συντεταγμένων το

μόνο που αλλάζει στα μεγέθη είναι οι αποστάσεις ανάμεσα στα διαδοχικά ελάχιστα (1/Α(i)) και η απόσταση της νέας παραμέτρου με το «πλησιέστερο» ελάχιστο(από ~2^n σε ~2^(-3n)).

Η επίθεση του Shamir(7)Δύο προβλήματα (1)

Page 21: Κρυπτογραφια και  πολυπλοκοτητΑ

2)Πως θα βρούμε το σημείο συσσώρευσης των ελαχίστων?

Αυτό το πρόβλημα περιγράφεται από ένα σύστημα γραμμικών ανισοτήτων με τέσσερις ακέραιους αγνώστους.

Οι συντελεστές του συστήματος ανάγονται σε ακεραίους με μέγεθος μικρότερο των 5n bits.

Τέλος, με την βοήθεια του αλγορίθμου του Lenstra μπορεί να βρεθεί το (σχεδόν πάντα μοναδικό) σημείο συσσώρρευσης των τεσσάρων ελαχίστων σε πολυωνυμικό χρόνο.

Η επίθεση του Shamir(8)Δύο προβλήματα (2)

Page 22: Κρυπτογραφια και  πολυπλοκοτητΑ

Ένα χαρακτηριστικό διευρυμένο κομμάτι του διαγράμματος των υπερτιθέμενων καμπυλών στην περιοχή του W0/M0 είναι:

Η επίθεση του Shamir(9)Υπερτιθέμενες καμπύλες

Page 23: Κρυπτογραφια και  πολυπλοκοτητΑ

Έστω W,M τέτοια ώστε W/M ανήκει στο [α,α+ε]Όλες οι δυάδες τέτοιου τύπου θα μας δώσουν

κατάλληλα φραγμένες τιμές μετά τον πολλαπλασιασμό και το modulo

Αυτές οι τιμές δεν είναι απαραίτητο ότι θα μας δώσουν μια υπεραυξητική ακολουθία και άρα δεν θα μας οδηγήσουν απαραίτητα σε ένα εύκολα επιλύσιμο «σακίδιο».

Το δεύτερο μέρος του αλγορίθμου βρίσκει τα υποδιαστήματα του [α,α+ε] για τα οποία η μετασχηματισμένη ακολουθία θα είναι σίγουρα υπεραυξητική.

Η επίθεση του Shamir(10)Το διάστημα [α,α+ε](1)

Page 24: Κρυπτογραφια και  πολυπλοκοτητΑ

Το διάστημα [α,α+ε] δεν περιέχει σημεία ασυνέχειας και έτσι οι n «πριονωτές» καμπύλες είναι σαν n γραμμικά «κομμάτια» μέσα σ’ αυτό το διάστημα.

Αυτά τα n «κομμάτια» τέμνονται μεταξύ τους σε το πολύ O(n^2) σημεία. Βρίσκοντας και ταξινομώντας αυτά τα σημεία, μπορούμε να χωρίσουμε το [α,α+ε] σε Ο(n^2) διαστήματα με μια καλώς ορισμένη κάθετη σειρά ανάμεσα στις καμπύλες σε κάθε υποδιάστημα.

Όταν αυτή η σειρά είναι γνωστή, μπορούμε να εκφράσουμε τις συνθήκες για να έχουμε μια υπεραυξητική ακολουθία με δύο γραμμικές ανισότητες.

Η επίθεση του Shamir(11)Το διάστημα [α,α+ε](2)

Page 25: Κρυπτογραφια και  πολυπλοκοτητΑ

Η λύση κάθε συστήματος ανισοτήτων θα μας δώσει ένα (πιθανόν κενό) υποδιάστημα (l(i),r(i)), στο οποίο όλες οι συνθήκες (και για να προκύψει υπεραυξητική ακολουθία και για το μέγεθος) ικανοποιούνται.

Τουλάχιστον ένα από αυτά τα υποδιαστήματα πρέπει να είναι μη κενό και οι μικρότεροι φυσικοί αριθμοί W και M τέτοιοι ώστε το W/M να ανήκει σε κάποιο υποδιάστημα μπορούν να βρεθούν σε πολυωνυμικό χρόνο.

Αξίζει να σημειώσουμε ότι οι W και M πρέπει να είναι μικρότεροι των W0 και M0, οι οποίοι εχουν μέγεθος 2n-bit).

Η επίθεση του Shamir(12)Τελευταίο βήμα

Page 26: Κρυπτογραφια και  πολυπλοκοτητΑ

Απ’ την στιγμή που αυτοί οι αριθμοί βρεθούν, η κρυπτανάλυση των τυχαίων κρυπτοκειμένων

στο Α(1),…,Α(n) κρυπτοσύστημα γίνεται εύκολα.

Η επίθεση του Shamir(13)Κρυπτανάλυση