260 likes | 462 Views
Κρυπτογραφια και πολυπλοκοτητΑ. Το Κρυπτοσύστημα Σακιδίου των Merkle -Hellman και η επίθεση του Shamir. Το Κρυπτοσύστημα Σακιδίου. Το κρυπτοσύστημα Merkle - Hellman είναι ένα κρυπτοσύστημα δημόσιου κλειδιού βασισμένο στο πρόβλημα Σακιδίου ( Knapsack problem ).
E N D
Κρυπτογραφιακαι πολυπλοκοτητΑ Το Κρυπτοσύστημα Σακιδίου των Merkle-Hellman και η επίθεση του Shamir
Το Κρυπτοσύστημα Σακιδίου • Το κρυπτοσύστημα Merkle-Hellman είναι ένα κρυπτοσύστημα δημόσιου κλειδιού βασισμένο στο πρόβλημα Σακιδίου(Knapsackproblem). • Το πρόβλημα σακιδίου είναι NP-πλήρες, οπότε θεωρείται αρκετά απρόσιτο υπολογιστικά. • Στην πραγματικότητα, γι’ αυτό το κρυπτοσύστημα δεν χρησιμοποιούμε το πρόβλημα του σακιδίου, αλλά το πρόβλημα του Αθροίσματος Υποσυνόλων (SubsetSum) . • Για καλύτερη κατανόηση θα περιγράψουμε και τα δυο παραπάνω προβλήματα.
Το πρόβλημα Σακιδίου (Knapsack problem) • Το πρόβλημα 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} δεικτών τέτοιο ώστε: α) το άθροισμα των βαρών να είναι μικρότερο από την χωρητικότητα Μ και β) το άθροισμα των τιμών όσο δυνατό μεγαλύτερο.
Πρόβλημα Αθροίσματος Υποσυνόλων(Subset Sum) • Το πρόβλημα Αθροίσματος Υποσυνόλων (Subset Sum) είναι μια ειδική περίπτωση του προβλήματος Σακιδίου (Knapsack problem). • Θεωρήστε ένα σύνολο D ακεραίων. Το πρόβλημα έγκειται στην εύρεσηυποσυνόλου D’ τέτοιο ώστετο άθροισμα των στοιχείων του υποσυνόλου να είναι μηδεν. Για παράδειγμα στην περίπτωση που έχουμε D={-7,-3,-2,5,8} η απάντηση είναι ναι αφού υπάρχει D’={-2,-3,5} τέτοιο ώστετο άθροισμα των στοιχείων του D’ να είναι μηδέν. • Ισοδύναμο πρόβλημα θεωρείται και η εύρεση υποσυνόλου του D τέτοιο ώστε το άθροισμα το στοιχείων του να είναι ίσο με οποιονδήποτε προκαθορισμένο ακέραιο . Ιδιαίτερα ενδιαφέρουσα περίπτωση του προβλήματος Αθροίσματος Υποσυνόλων (Subset Sum) είναι όταναυτός ο προκαθορισμένος αριθμός είναι το ημιάθροισμα των στοιχείων του D (partition problem).
Κλάση NP-complete • Δε θα κάνουμε εκτεταμένη αναφορά στις κλάσεις πολυπλοκότητας, με τη λογική ότι ξεφεύγει από τον στόχο του project αυτού. Παρ’ όλα αυτά θεωρείται επιβεβλημένη μια minimum αναφορά στο τι σημαίνει κάποιο πρόβλημα να είναι NP-complete. • Στην θεωρία πολυπλοκότητας, η κλάση NP-complete είναι μια κλάση προβλημάτων απόφασης. Ένα πρόβλημα είναι NP-complete, αν ανήκει στα προβλήματα NP έτσι ώστε κάθε λύση να επαληθευθεί σε πολυωνυμικό χρόνο και αν ανήκει και στα προβλήματα NP-hard δηλαδή κάθε NP πρόβλημα να μπορεί να μετατραπεί στο πρόβλημα με μια μετατροπή των εισόδων σε πολυωνυμικό χρόνο. • Παρ’ όλο που κάθε λύση τέτοιου προβλήματος μπορεί να επαληθευθεί «γρήγορα», δεν έχει βρεθεί αποτελεσματικός τρόπος να βρεθεί μια λύση. Πράγματι, το πιο αξιοσημείωτο χαρακτηριστικό αυτής της κλάσης προβλημάτων είναι πως δεν έχει βρεθεί καμία «γρήγορη» λύση. Αυτό συμβαίνει, γιατί ο χρόνος που κάθε γνωστός αλγόριθμος λύνει το πρόβλημα αυξάνεται «πού γρήγορα» όσο το μέγεθος των εισόδων αυξάνεται. • Έτσι ο χρόνος λύσης κάποιου μετρίου μεγέθους προβλήματος αυτής της κλάσης εύκολα αγγίζει τα δισεκατομμύρια ή τρισεκατομμύρια χρόνια, με οποιαδήποτε σημερινή υπολογιστική ισχύ. Το να αποφασίσουμε αν υπάρχει λύση πολυωνυμικού χρόνου αυτών των προβλημάτων ανάγεται στο γνωστό «P versus NP problem» το οποίο είναι ένα από τα θεμελιώδη άλυτα προβλήματα της επιστήμης των υπολογιστών μέχρι και σήμερα.
Κρυπτοσύστημα Σακιδίου(1) • Το πρόβλημα του Σακιδίου (για τους σκοπούς του κρυπτοσυστήματος Merkle-Hellman) αποτελείται από: α) μία n-άδα από διαφορετικούς θετικούς ακεραίους, που ονομάζεται διάνυσμα του σακιδίου και β) έναν θετικό ακέραιο k, την χωρητικότητα του σακιδίου. Το πρόβλημα είναι να βρούμε τέτοιους ακεραίους των οποίων το άθροισμα να είναι ίσο με k. • Πάντα μπορεί να βρεθεί μια λύση ελέγχοντας εξαντλητικά όλα τα 2^n υποσύνολα του διανύσματος σακιδίου, ψάχνοντας μήπως κάποιο από αυτά έχει άθροισμα το k. Για μεγάλο n αυτός ο υπολογισμός είναι απρόσιτος.
Κρυπτοσύστημα Σακιδίου(2)Η συνάρτηση f(x) • Ορίζουμε μια συνάρτηση f(x) ως εξής: Έστω X η δυαδική αναπαράσταση ( με nbits) του ακεραίου x, (προσθέτοντας μηδενικά στην αρχή αν είναι απαραίτητο). Το f(x) είναι ίσο με το άθροισμα όλων των στοιχείων του διανύσματος σακιδίου τέτοιων ώστε το i-οστό bit του x να είναι άσσος. • f(x)=A B(x), A το διάνυσμα σακιδίου, Β(x) η δυαδική αναπαράσταση του x γραμμένη ως διάνυσμα στήλη. • Με τον παραπάνω ορισμό η f είναι one-way αφού η αντιστροφή της αντιστοιχεί στην λύση του προβλήματος του σακιδίου.
Κρυπτοσύστημα Σακιδίου(3) Κρυπτογράφηση με την f(x) • Το αρχικό κείμενο γράφεται με την μορφή δυαδικής ακολουθίας αντικαθιστώντας κάθε γράμμα του αλφαβήτου με τον αντίστοιχο αριθμό (π.χ. ASCII) (γραμμένο σε δυαδική μορφή). • Κάθε ακολουθία των nbits κρυπτογραφείται υπολογίζοντας τη συνάρτηση f για το συγκεκριμένο κομμάτι (block).
Κρυπτοσύστημα Σακιδίου(4) Αποκρυπτογράφηση με την f(x) • Η αποκρυπτογράφηση είναι εξίσου δύσκολη με ένα NP-πλήρες πρόβλημα. • Όμως ο νόμιμος χρήστης (που γνωρίζει μια μυστική καταπακτή) χρειάζεται να λύσει ένα εύκολο στιγμιότυπο του προβλήματος του σακιδίου. • Μια κλάση από εύκολα προβλήματα σακιδίου είναι αυτή των προβλημάτων που χρησιμοποιούν υπεραυξητικά διανύσματα σακιδίου .
Κρυπτοσύστημα Σακιδίου(5) Υπεραυξητικά διανύσματα • Ένα διάνυσμα σακιδίου λέγεται υπεραυξητικό αν κάθε στοιχείο υπερβαίνει το άθροισμα όλων των προηγούμενων στοιχείων • Χαρακτηριστικά: γραμμικός χρόνος λύσης το πολύ μία λύση • Η δημοσίευση της υπεραυξητικής ακολουθίας θα έκανε την κρυπτανάλυση γραμμική. • Έτσι ανακατεύουμε το διάνυσμα έτσι ώστε να μοιάζει με τυχαίο διάνυσμα σακιδίου
Κρυπτοσύστημα Σακιδίου(6)Το «ανακάτεμα» • Γίνεται με πολλαπλασιασμό με 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)
Η επίθεση του Shamir(1) • Το κρυπτοσύστημα σακιδίου έσπασε το 1984 από τον Α. Shamir με αλγόριθμο πολυωνυμικού χρόνου. • Ο Shamir χρησιμοποίησε τον αλγόριθμο του Lenstra για ακέραιο προγραμματισμό προκειμένου να βρει την καταπακτή (trapdoor) και να παραβιάσει το σύστημα. • Δεν είναι απαραίτητο να βρούμε τα t,m. Αρκεί να βρούμε t’, m’ τέτοια ώστε ο πολλαπλασιασμός του δημοσιευμένου διανύσματος με το (t’)^(-1)(mod m) να είναι ένα υπεραυξητικό διάνυσμα. • Ο αλγόριθμος χωρίζετα σε δυο μέρη.
Η επίθεση του Shamir(1)Πρώτο μέρος • Αν Α είναι το διάνυσμα σακιδίου, το W,M είναιζευγάρι καταπακτής (trapdoor pair), όταν η WA(mod M) είναι υπεραυξητική ακολουθία. • Βρίσκουμε με τη βοήθεια του αλγορίθμου ακέραιου προγραμματισμού του Lenstra έναν θετικό ρητό αριθμό α,μικρότερο της μονάδας, έτσι ώστε: • Μια αναγκαία συνθήκη, για να είναι το W,M ζευγάρι καταπακτής να είναι η: W/M ανήκει στο [α,α+ε], όπου ε μικρός θετικός.
Η επίθεση του Shamir(2)Δεύτερο μέρος • Στο δεύτερο κομμάτι, χρησιμοποιούμε το γεγονός ότι η αναλογία W/M είναι προσεγγιστικά γνωστή, για να βρούμε το πολύ n^2 υποδιαστήματα (l(i),r(i))του [α,α+ε] , τέτοια ώστε η συνθήκη: W/M ανήκει σε κάποιο υποδιάστημα (l(i),r(i)), να είναι και ικανή συνθήκη για να είναι το W και το M ένα «ζευγάρι καταπακτής» (trapdoor pair). • Η ύπαρξη ενός τουλάχιστον ζευγαριού εξασφαλίζεται από την κατασκευή του κρυπτοσυστήματος. Έτσι τουλάχιστον ένα από τα παραπάνω υποδιαστήματα θα είναι μη κενό.
Η επίθεση του Shamir(2)Ο αλγόριθμος αναλυτικά • W0,M0 το «αυθεντικό κλειδί». • Πρώτο βήμα: Ορίζουμε για τυχαίους θετικούς πραγματικούς W,M το trapdoor pair σε μια γενική βάση. • Για Μ=Μ0, W<M0 και Α το διάνυσμα σακιδίουη γραφική παράσταση της συνάρτησης WA(i) (mod M0), έχει «πριονωτή» μορφή:
Η επίθεση του Shamir(4)WA(i) (mod M0) • Η παράγωγος της συνάρτησης είναι A(i), ο αριθμός των ελαχίστων είναι A(i)και η απόσταση μεταξύ δύο διαδοχικών ελαχίστων είναι M0/ A(i)(ελάχιστα μεγαλύτερο της μονάδας). • Έστω Α(i) αντιστοιχεί στο ελάχιστο στοιχείο του Α. • Hαπόσταση μεταξύ του Wκαι του «πλησιέστερου» ελαχίστου από τα αριστερά του δεν μπορεί να υπερβαίνει το μέγεθος 2^n/Α(i)~2^(-n). Παρ’ όλα αυτά, ακόμα και να υποθέσουμε ότι ο είναι ακέραιος (το οποίο δεν μπορούμε να το κάνουμε), είναι τόσες πολλές οι τιμές που μπορεί να πάρει που είναι αδύνατο να ψάξουμε εξαντλητικά.
Η επίθεση του Shamir(5)WA(i) (mod M0) • Έστω Α(j) αντιστοιχεί στο δεύτερο μικρότερο στοιχείο του Α. • Με παρόμοια ανάλυση: o W θα έχει απόσταση από το Α(j)-«δόντι» του διαγράμματος μικρότερη του 2^(n+1)/A(j) • Άρα Α(i) και Α(j)θα είναι «πολύ κοντά». • Αυτή η διαπίστωση μειώνει εξαιρετικά το εύρος των πιθανών τιμών του Wαλλά δεν μπορεί να το χαρακτηρίσει μοναδικά. • Συνεχίζοντας με τον ίδιο τρόπο καταλήγουμε στο ότι όλα τα ελάχιστα θα είναι «κοντά». • Πρόβλημα εύρεσης του W<=>Πρόβλημα εύρεσης σημείου συσσώρευσης των ελαχίστων.
Η επίθεση του Shamir(6)WA(i) (mod M0) • Όταν υπερτίθενται τέσσερις καμπύλες η πιθανότητα να βρεθούν τέσσερα ελάχιστα «κοντά» είναι τόσο μικρή, ώστε είναι εξαιρετικά απίθανο να συμβεί σε πολλές θέσεις στην περιοχή W<M0. • Ο αριθμός τέσσερα είναι ανεξάρτητος του n και εξαρτάται μόνο από την αναλογία του Μ0 με το μικρότερο στοιχείο του Α(το υποθέσαμε 2).
Η επίθεση του Shamir(7)Δύο προβλήματα (1) 1) Θεωρήσαμε γνωστό το Μ0. • Αυτό το πρόβλημα το λύνουμε διαιρώντας τετμημένη και τεταγμένη με το Μ0. Στο νέο σύστημα συντεταγμένων το μόνο που αλλάζει στα μεγέθη είναι οι αποστάσεις ανάμεσα στα διαδοχικά ελάχιστα (1/Α(i)) και η απόσταση της νέας παραμέτρου με το «πλησιέστερο» ελάχιστο(από ~2^n σε ~2^(-3n)).
Η επίθεση του Shamir(8)Δύο προβλήματα(2) 2)Πως θα βρούμε το σημείο συσσώρευσης των ελαχίστων? • Αυτό το πρόβλημα περιγράφεται από ένα σύστημα γραμμικών ανισοτήτων με τέσσερις ακέραιους αγνώστους. • Οι συντελεστές του συστήματος ανάγονται σε ακεραίους με μέγεθος μικρότερο των 5nbits. • Τέλος, με την βοήθεια του αλγορίθμου του Lenstraμπορεί να βρεθεί το (σχεδόν πάντα μοναδικό) σημείο συσσώρρευσης των τεσσάρων ελαχίστων σε πολυωνυμικό χρόνο.
Η επίθεση του Shamir(9)Υπερτιθέμενες καμπύλες • Ένα χαρακτηριστικό διευρυμένο κομμάτι του διαγράμματος των υπερτιθέμενων καμπυλών στην περιοχή του W0/M0είναι:
Η επίθεση του Shamir(10)Το διάστημα [α,α+ε](1) • Έστω W,M τέτοια ώστε W/M ανήκει στο [α,α+ε] • Όλες οι δυάδες τέτοιου τύπου θα μας δώσουν κατάλληλα φραγμένες τιμές μετά τον πολλαπλασιασμό και το modulo • Αυτές οι τιμές δεν είναι απαραίτητο ότι θα μας δώσουν μια υπεραυξητική ακολουθία και άρα δεν θα μας οδηγήσουν απαραίτητα σε ένα εύκολα επιλύσιμο «σακίδιο». • Το δεύτερο μέρος του αλγορίθμου βρίσκει τα υποδιαστήματα του [α,α+ε] για τα οποία η μετασχηματισμένη ακολουθία θα είναι σίγουρα υπεραυξητική.
Η επίθεση του Shamir(11)Το διάστημα [α,α+ε](2) • Το διάστημα [α,α+ε] δεν περιέχει σημεία ασυνέχειας και έτσι οι n«πριονωτές» καμπύλες είναι σαν nγραμμικά «κομμάτια» μέσα σ’ αυτό το διάστημα. • Αυτά τα n«κομμάτια» τέμνονται μεταξύ τους σε το πολύ O(n^2)σημεία. Βρίσκοντας και ταξινομώντας αυτά τα σημεία, μπορούμε να χωρίσουμε το [α,α+ε]σε Ο(n^2) διαστήματα με μια καλώς ορισμένη κάθετη σειρά ανάμεσα στις καμπύλες σε κάθε υποδιάστημα. • Όταν αυτή η σειρά είναι γνωστή, μπορούμε να εκφράσουμε τις συνθήκες για να έχουμε μια υπεραυξητική ακολουθία με δύο γραμμικές ανισότητες.
Η επίθεση του Shamir(12)Τελευταίο βήμα • Η λύση κάθε συστήματος ανισοτήτων θα μας δώσει ένα (πιθανόν κενό) υποδιάστημα (l(i),r(i)),στο οποίο όλες οι συνθήκες (και για να προκύψει υπεραυξητική ακολουθία και για το μέγεθος)ικανοποιούνται. • Τουλάχιστον ένα από αυτά τα υποδιαστήματα πρέπει να είναι μη κενό και οι μικρότεροι φυσικοί αριθμοί Wκαι Mτέτοιοι ώστε το W/Mνα ανήκει σε κάποιο υποδιάστημα μπορούν να βρεθούν σε πολυωνυμικό χρόνο. • Αξίζει να σημειώσουμε ότι οι Wκαι Mπρέπει να είναι μικρότεροι των W0και M0, οι οποίοι εχουν μέγεθος 2n-bit).
Η επίθεση του Shamir(13)Κρυπτανάλυση Απ’ την στιγμή που αυτοί οι αριθμοί βρεθούν, η κρυπτανάλυση των τυχαίων κρυπτοκειμένων στο Α(1),…,Α(n) κρυπτοσύστημα γίνεται εύκολα.