διάνυσμα του σακιδίου

Download Report

Transcript διάνυσμα του σακιδίου

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