Lattices και κρυπτογραφία:ένα εργαλείο για κρυπτανάλυση
κρυπτοσυστημάτων και κρυπτογράφηση δεδομένων
Γαλάνης ΒασίλειοςΣχολή Εφαρμοσμένων Μαθηματικών και Φυσικών
ΕπιστημώνΕ.Μ.Π.
Επιβλέπων : A. Παπαϊωάννου2005
Το Knapsack Problem
Δεδομένα : • Ένα σακίδιο χωρητικότητας Μ• ν συνεχή αντικείμενα βάρους το καθένα wi και αξίας pi
όπου pi>0 και wi>0 (xi το κλάσμα των αντικειμένων που μπαίνει στο σακίδιο)
Ζητούμενα :
Η μεγιστοποίηση του ολικού κόστους ,ενώ
πρέπει να ικανοποιούνται και οι εξής περιορισμοί :
i inp x
,
0 1
0 0
i in
i
i i
w x M
x
p w
Το Knapsack Problem
O greedy αλγόριθμος που εφαρμόζεται για τη λύση
του Knapsack Problem δίνει βέλτιστη λύση με
πολυπλοκότητα O(nlogn). ,
Το Discrete Knapsack Problem
Δεδομένα: • Ένα σακίδιο χωρητικότητας Μ• n διακριτά αντικείμενα βάρους το καθένα wi και αξίας pi
όπου U={u1,u2,…,un} αντικείμενα με ακολουθία αποφάσεων αποφάσεων x1,x2,…,xn με xi{0,1} , που αντιστοιχούν στα u1,u2,…,un .
Ζητούμενα:
Η βέλτιστη ακολουθία αποφάσεων x1,x2,…,xn που
αντιστοιχούν στα u1,u2,…,un έτσι ώστε : i i
i i
x w M
p x MAXIMUM
Το Discrete Knapsack Problem
To DKP επιλύεται με τον greedy αλγόριθμο
merge-discard με τη βοήθεια της διαδικασίας
Traceback. O αλγόριθμος έχει πολυπλοκότητα
χώρου Ο(2n) όπως επίσης και χρονική
πολυπλοκότητα Ο(2n) . Άρα, ο παραπάνω
αλγόριθμος δεν είναι αποδοτικός.
DKP και πολυπλοκότητα
Για να αποδείξουμε ότι το DKP ανήκει στην κλάση
NP-complete θα το ανήξουμε στο πρόβλημα SAT
ακολουθώντας την εξής πορεία :
SAT 3SAT TRIPARTITEMATCHING
EXACT COVER BY 3-SETS
DISCRETEKNAPSACK
DKP και πολυπλοκότητα
Κάθε στιγμιότυπο του DKP μπορεί να λυθεί σε Ο(nΜ) χρόνο ,όπου n ο αριθμός των αντικειμένων και Μ το όριο του βάρους.Το DKP είναι πρόβλημα που έχει πλήρως πολυωνυμικούχρόνου σχήμα προσέγγισης με κατώφλι προσέγγισης 0.Άρα το DKP περιέχεται στην υποκλάση των ΝΡΟ προβλημάτων FPTAS.
Το κρυπτοσύστημα Merkle-Hellman
O αλγόριθμος δημιουργίας κλειδιών για τo βασικό M-H κρυπτοσύστημα :
Περιληπτικά : κάθε οντότητα δημιουργεί ένα δημόσιο κλειδί και ένα αντίστοιχο ιδιωτικό κλειδί.
1. Ένας ακέραιος n σταθεροποιείται ως μια κοινή παράμετρος του συστήματος.
2. Κάθε οντότητα Α πρέπει να εκτελέσει τα παρακάτω βήματα 3-7.
3. Επιλέγουμε μια υπεραυξητική ακολουθία (b1,b2,…,bn) και modulus M τέτοιο ώστε Μ > b1+b2+…+bn
4. Επιλέγουμε ένα τυχαίο ακέραιο W , 1 ≤ W ≤ M-1, τέτοιο ώστε gcd(W,M)=1
Το κρυπτοσύστημα Merkle-Hellman
5. Επιλέγουμε μια τυχαία μετάθεση π των ακεραίων {1,2,...,n}
6. Υπολογίζουμε για i=1,2,…,n
7. Το δημόσιο κλειδί του Α είναι (α1,α2,...,αn) και το ιδιωτικό κλειδί της Α είναι το (π,Μ,W(b1,b2,…,bn))
Το κρυπτοσύστημα Merkle-Hellman
O αλγόριθμος κρυπτογράφησης και αποκρυπτογράφησης του απλού Μ-Η κρυπτοσυστήματος :
Περιληπτικά : ο Β κρυπτογραφεί ένα μήνυμα m για τον Α και ο Α το αποκρυπτογραφεί.
1. Κρυπτογράφηση : ο Β πρέπει να κάνει τα ακόλουθα : (α) Να πάρει το αυθεντικό δημόσιο κλειδί του Α. (β) Να αναπαραστήσει το μήνυμα m ως μια δυαδική
συμβολοσειρά (string) μήκους n , m=m1m2…mn
(γ) Να υπολογίσει τον ακέραιο c=m1α1+m2α2+...+mnαn
(δ) Να στείλει το κρυπτοκείμενο c στον Α
Το κρυπτοσύστημα Merkle-Hellman
2. Αποκρυπτογράφηση : για να ανακτήσει το απλό κείμενο m από το c , ο Α πρέπει να κάνει τα ακόλουθα :
(α) Να υπολογίσει (β) Λύνοντας ένα υπεραυξητικό knapsack βρίσκει ακεραίους
τέτοιους ώστε (γ) Τα bits του μηνύματος είναι
Υπάρχει και το επαναληπτικό M-H κρυπτοσύστημα το οποίοχρησιμοποιεί μια σειρά από modular πολλαπλασιασμούςαντί για έναν για να κρύψει την υπεραυξητική ακολουθία.
1 modd W c M
1 2, ,..., , {0,1}n ir r r r 1 1 2 2 ... n nd rb r b r b ( ) , i=1,2,...,ni im r
Το κρυπτοσύστημα Chor-Rivest
Κατασκευή κλειδιών για το κρυπτοσύστημα C-HΠεριληπτικά : κάθε οντότητα δημιουργεί ένα δημόσιο κλειδί
και ένα αντίστοιχο ιδιωτικό κλειδί.Η οντότητα Α πρέπει να κάνει τα ακόλουθα : 1. Επιλέγει ένα πεπερασμένο σώμα με χαρακτηριστική p
όπου q = ph , p h , για το οποίο το πρόβλημα διακριτού λογαρίθμου είναι επιλύσιμο.
2. Επιλέγει ένα τυχαίο μονικό ανάγωγο πολυώνυμο f(x) βαθμού h πάνω στο p . Τα στοιχεία του θα αναπαριστώνται ως πολυώνυμα στο p[x] βαθμού μικρότερου από h , πολλαπλασιάζοντας με modulo f(x)
3. Επιλέγει ένα τυχαίο πρωταρχικό στοιχείο g(x) του σώματος
qF
qF
qF
Το κρυπτοσύστημα Chor-Rivest
4. Για κάθε βασικό στοιχείο της βάσης ip, βρίσκουμε το διακριτό λογάριθμο του βασικού στοιχείου (x+i) στη βάση g(x)
5. Επιλέγει μια τυχαία μετάθεση π πάνω στο σύνολο των ακεραίων {0,1,2,...,p-1}.
6. Επιλέγει ένα τυχαίο ακέραιο d, 0 ≤ d ≤ ph-2
7. Υπολογίζει
8. Το δημόσιο κλειδί του Α είναι ;
Το ιδιωτικό του κλειδί είναι το (f(x),g(x),π,d) .
( )log ( )i g xa x i
( )( ) mod( 1) , 0 1hi ic a d p i p
0 1 1(( , ,..., ) , )pc c c p h
Το κρυπτοσύστημα Chor-Rivest
Αλγόριθμος κρυπτογράφησης και αποκρυπτογράφησης των Chor-RivestΠεριληπτικά : ο Β κρυπτογραφεί ένα μήνυμα m για τον Α και ο Α το αποκρυπτογραφεί.1. Κρυπτογράφηση. Ο Β πρέπει να κάνει τα ακόλουθα :(α) Παίρνει την αυθεντική υπογραφή του Α (β) Αναπαριστά το μήνυμα m με ένα δυαδικό string μήκους
όπου ένας δυωνυμικός συντελεστής.lg
p
h
p
h
Το κρυπτοσύστημα Chor-Rivest
(γ) Θεωρεί το m ως τη δυαδική αναπαράσταση ενός ακεραίου. Μετατρέπει αυτό τον ακέραιο σε ένα δυαδικό διάνυσμα μήκους p έχοντας ακριβώς h ‘1’ ως εξής:
i. Θέτει lh. ii. Για i από το 1 στο p κάνει τα ακόλουθα: Αν τότε θέτει
Αλλιώς θέτουμε Μi-10.(δ) Υπολογίζει (ε) Στέλνει το κρυπτοκείμενο στον Α.
0 1 1( , ,..., )pM M M M
p im
i
1 1, i
p iM m m
i
1l l 1
0mod( 1)
p hi i iic M c p
Το κρυπτοσύστημα Chor-Rivest
2. Αποκρυπτογράφηση. για να ανακτήσει το απλό κείμενο m από το c , ο Α πρέπει να κάνει τα ακόλουθα :
(α) Υπολογίζει το r = (c – hd) mod (ph-1) (β) Υπολογίζει το u(x) = g(x)r mod f(x) (γ) Υπολογίζει το s(x) = u(x) + f(x), ένα μονικό πολυώνυμο
βαθμού h πάνω στο p
(δ) Παραγοντοποιούμε το s(x) σε γραμμικούς παράγοντες πάνω στο p : , όπου tj p
(ε) Υπολογίζει το δυαδικό διάνυσμα ως ακολούθως. Τα στοιχεία του Μ τα οποία είναι 1 έχουν ακεραίους . Τα εναπομείναντα στοιχεία είναι 0.
1( )
h
jjs x x t
0 1 1( , ,..., )pM M M M
1( ), 1jt j h
Το κρυπτοσύστημα Chor-Rivest
(ζ) Το μήνυμα ανακτάται ως εξής :
i. Θέτει m0 , lh.
ii. Για i από το 1 στο p κάνει τα ακόλουθα:
Αν , τότε θέσε
1 1iM , 1
p im m l l
i
Παράδειγμα λειτουργίας του κρυπτοσύστηματος Chor-Rivest
Κατασκευή κλειδιών. Η οντότητα Α κάνει τα εξής : 1. Επιλέγει p = 7 και h = 4 2. Επιλέγει το ανάγωγο πολυώνυμο f(x)=x4+3x3+5x2+6x+2
βαθμού 4 πάνω στο 7 . Τα στοιχεία του πεπερασμένου
σώματος αναπαριστώνται ως πολυώνυμα στο 7[x] βαθμού μικρότερου από 4, με πολλαπλασιασμό που εκτελείται modulo f(x) 3. Επιλέγει το τυχαίο πρωταρχικό στοιχείο g(x)=3x3+3x2+6 4.Υπολογίζει τους ακόλουθους διακριτούς λογάριθμους :
0 ( )log ( ) 1028g xa x
47Z
Παράδειγμα λειτουργίας του κρυπτοσύστηματος Chor-Rivest
5. Επιλέγει την τυχαία μετάθεση π πάνω στο {0,1,2,3,4,5,6},που
ορίζεται από π(0)=6, π(1)=4, π(2)=0, π(3)=2, π(4)=1, π(5)=5,
π(6)=3.
6. Επιλέγει τον τυχαίο ακέραιο d = 1702
1 ( )log ( 1) 1935g xa x
2 ( )log ( 2) 2054g xa x
3 ( )log ( 3) 1008g xa x
4 ( )log ( 4) 379g xa x
5 ( )log ( 5) 1780g xa x
6 ( )log ( 6) 223g xa x
Παράδειγμα λειτουργίας του κρυπτοσύστηματος Chor-Rivest
7. Υπολογίζει
8. Το δημόσιο κλειδί του Α είναι
ενώ το ιδιωτικό του κλειδί είναι (f(x),g(x),π,d).
0 6( ) mod 2400 1925c a d
1 4( ) mod 2400 2081c a d 2 0( ) mod 2400 330c a d
3 2( ) mod 2400 1356c a d
4 1( ) mod 2400 1237c a d 5 5( ) mod 2400 1082c a d
6 3( ) mod 2400 310c a d
0 1 2 3 4 5 6(( , , , , , , ) 7, 4)c c c c c c c p h
Παράδειγμα λειτουργίας του κρυπτοσύστηματος Chor-Rivest
Κρυπτογράφηση. Για να κρυπτογραφήσει ένα μήνυμα m=22 για τον Α, ο Β κάνει τα ακόλουθα :(α) Παίρνει το αυθεντικό κλειδί του Α(β) Αναπαριστά το m ως ένα δυαδικό string μήκους 5 :
m=10110.(γ) Μετατρέπει το m σε ένα δυαδικό διάνυσμα Μ =
(1,0,1,1,0,0,1) μήκους 7.(δ) Υπολογίζει c=(c0+c2+c3+c4) mod2400 = 1521.(ε) Στέλνει το c = 1521 στον Α.
Παράδειγμα λειτουργίας του κρυπτοσύστηματος Chor-Rivest
Αποκρυπτογράφηση. Για να αποκρυπτογραφήσει το κρυπτοκείμενο c=1521, o A κάνει τα εξής :
(α) Υπολογίζει r =(c-hd) mod2400 = 1913(β) Υπολογίζει u(x) = g(x)1913 mod f(x) = x3+3x2+2x+5.(γ) Υπολογίζει s(x) = u(x) + f(x) = x4+4x3+x2+x.(δ) Παραγοντοποιεί s(x)=x(x+2)(x+3)(x+6) (ώστε t1=0, t2=2,
t3=3, t4=6)(ε) Τα στοιχεία του Μ που είναι ‘1’ έχουν ακεραίους π -1 π -1(0)=2, π -1(2)=3, π -1(3)=6 και π -1(6)=0. Άρα Μ=(1,0,1,1,0,0,1) (ζ) Μετατρέπει το Μ στον ακέραιο m = 22 , ανακτώντας το
κρυπτοκείμενο.
Ορισμοί και ιδιότητες των lattices
Ένα lattice ορίζεται ως μια διακριτή υποομάδα του n-διάστατου Ευκλείδιου χώρου n δοθέν από
, όπου τα είναι γραμμικώς
ανεξάρτητα. Σ’αυτή τη περίπτωση τα διανύσματα
λέμε ότι σχηματίζουν τη βάση για το lattice και
τυπικά ένα lattice θα δίνεται από ένα nm πίνακα της
μορφής :
1 ... mb b 4444444444444 4
Z ZL
1{ }mi ib
444444444444441{ }mi ib
44444444444444
1 2
| | |
...
| | |mB b b b
444444444444444444444444444444444444444444
Ορισμοί και ιδιότητες των lattices
Έστω =Βm ένα lattice με γεννήτορες τα διανύσματα
βάσης .Τότε το στοιχειώδες παραλληλεπίπεδο του υπό το Β ορίζεται από : .
Το πλάτος του παραλληλεπιπέδου Ρ(Β), δηλαδή το μέγιστο
πάνω στα i του μήκους των προβολών των πάνω στο
ορθογώνιο συμπλήρωμα του span( ,…, , ,…, )
Έστω =Βm ένα lattice. Τότε η ορίζουσα του , det(), ορίζεται από το m-διάστατο όγκο του Ρ(). Συγκεκριμένα
εάν για το ισχύει m = n τότε det()=|det(B)|
1{ }mi ib
44444444444444
1 1( ) { ... | 0 1}m iP B c b cb c 4444444444444444444444444444
ib44444444444444
1b44444444444444
1ib
444444444444441ib
44444444444444mb
44444444444444
Ορισμοί και ιδιότητες των lattices
Η ορίζουσα του =Βm δεν εξαρτάται από την επιλογή της
βάσης Β και δίνεται από
Το δυϊκό lattice είναι ένα πλήρως διαστατικό lattice , συμβ.
* , που αποτελείται από όλα τα διανύσματα που το
εσωτερικό τους γινόμενο με όλα τα διανύσματα στο είναι
ακέραιο, δηλαδή .
det( ) det( )TB BL
* { |{ , } για όλα τα z }n nz
Z ZL Ñ
Ορισμοί και ιδιότητες των lattices
Έστω =Βm ένα lattice. Τότε η βάση Β για είναι Minkowski-ανηγμένη αν δεν υπάρχει μη μηδενικό διάνυσμα στο το οποίο να είναι μικρότερο από το και γενικότερα να μην υπάρχει μη μηδενικό διάνυσμα στο το οποίο να είναι μικρότερο από και να μην περιέχεται στο span( ,…, ) έτσι ώστε τα ,…, να μπορούν να επεκταθούν σε βάση του .Έστω =Βm ένα lattice. Τότε η βάση Β για το λέγεται LLL-ανηγμένη αν και
όπου δ=1
1b44444444444444
ib44444444444444
1b44444444444444
1ib
444444444444441b
44444444444444ib
44444444444444
,
1 για 1
2i j j i m 2 2
* * *, 1 1 1
1 για 1
14
i i i i ib b b i m
444444444444444444444444444444444444444444
Ορισμοί και ιδιότητες των latticesΈστω ,…, μια LLL-ανηγμένη βάση για ένα latticen
και έστω ,…, γραμμικώς ανεξάρτητα σημεία του
lattice. Τότε για 1 ≤ i ≤ t.
*1b
44444444444444*nb
44444444444444
1x44444444444444
tx44444444444444
2 21
12 max{ ,..., }mi tb x x
444444444444444444444444444444444444444444
Provably hard lattice προβλήματα
Δοθέντος ενός lattice =Βm, το Πρόβλημα Ελαχίστου
Διανύσματος (Shortest Vector Problem - SVP) είναι το να
βρεθεί το ελάχιστο μη μηδενικό διάνυσμα στο .
Δοθέντος ενός lattice =Βm, το Πρόβλημα
Πλησιέστερου Διανύσματος (Closest Vector Problem –
CVP) είναι το να βρεθεί το πιο κοντινό σημείο του lattice στο
διάνυσμα .t
Provably hard lattice προβλήματα
Έστω ότι g (η συνάρτηση χάσματος) είναι μια παράμετρος η οποία μπορεί να ποικίλει ως μια συνάρτηση της διάστασης του υπό εξέταση lattice. Ορίζουμε το πρόβλημα GapSVPg από τα ακόλουθα :• (V,d) είναι ένα YES στιγμιότυπο για το GapSVPg εαν V μια
βάση για ένα lattice στο n και d τέτοιο ώστε για κάποια .• (V,d) είναι ένα ΝΟ στιγμιότυπο για το GapSVPg εαν V μια
βάση για ένα lattice στο n και d τέτοιο ώστε για όλα τα .
\{0}nz
Z
\{0}nz
Z
V z d
V z gd
Provably hard lattice προβλήματα
Έστω ότι g (η συνάρτηση χάσματος) είναι μια παράμετρος η οποία μπορεί να ποικίλει ως μια συνάρτηση της διάστασης του υπό εξέταση lattice. Ορίζουμε το πρόβλημα GapCVP΄g από τα ακόλουθα :• είναι ένα YES στιγμιότυπο για το GapCVP΄gεαν , και τέτοια ώστε για κάποια .• είναι ένα ΝΟ στιγμιότυπο για το GapCVP΄g εαν , και τέτοια ώστε για όλα τα και όλα τα .
( , , )V y d44444444444444
k nV Zky
44444444444444Z
2
V z y d 4444444444444 4
\{0}nz
Z( , , )V y d
44444444444444
k nV Zky
44444444444444Z d Ñ
2
V z wy gd 4444444444444 4
\{0}nz
Z wZ
Lattice αναγωγή και ο αλγόριθμος L3
Ο αλγόριθμος του Gauss : έστω η βάση για ένα 2-διάστατο lattice. Ο παρακάτω αλγόριθμος μας δίνει ένα Minkowski-ανηγμένο lattice σε πολυωνυμικά πολλές επαναλήψεις.if then swap ;
while or do
if then swap ;end whilereturn
1 2[ , ]b b4444444444444444444444444444
1 2b b4444444444444444444444444444 1 2,b b
4444444444444444444444444444
2 1 2b b b 444444444444444444444444444444444444444444
2 1 2b b b 444444444444444444444444444444444444444444
1 2
2 2 12
2
, ;
b bb b b
b
4444444444444444444444444444444444444444444444444444444444444444444444
44444444444444
1 2b b4444444444444444444444444444
1 2,b b4444444444444444444444444444
1 2[ , ]b b4444444444444444444444444444
Lattice αναγωγή και ο αλγόριθμος L3
Αλγόριθμος LLL αναγωγή βάσηςΟ ακόλουθος αλγόριθμος υπολογίζει μια LLL-ανηγμένηβάση για =Βn σε πολυωνυμικά πολλές επαναλήψεις.LLL( , ..., ) Υπολογίζουμε την ορθογώνια Gram-Schmidt βάση ,…, ; ; k=2 ; while k ≤ m do if then sizereduce(k);
1b44444444444444
mb44444444444444
*1b
44444444444444*mb
44444444444444
2*
i iB b44444444444444
, 1
1
2k k
Lattice αναγωγή και ο αλγόριθμος L3
if then swap(k); if k > 2 then k = k-1; else k = k+1; end if end whileend LLL
2 2* * *
, 1 1 1
3
4k k k k kb b b 444444444444444444444444444444444444444444
Lattice αναγωγή και ο αλγόριθμος L3
Υπορουτίνα Size Reductionsizereduce=(k) i = 1; while i < k do i = i + 1; end while end sizereduce
, 1 1 ;k k k k kb b b 444444444444444444444444444444444444444444
, 1 , 1 , 1 ;k k k k k k
Lattice αναγωγή και ο αλγόριθμος L3
Υπορουτίνα Swapswap(k) Eναλλάσουμε μεταξύ τους τα και ; Τ = Βk ; ;
Εκτελούμε ταυτόχρονα τις παρακάτω αναθέσεις \\Ενημερώνουμε τους Gram-Schmidt συντελεστες
, 1k k
, 1 1, 1 2
1
k k kk k
k k
B
B B
21 1k k kB B B
12
1
k kk
k k
B BB
B B
1,k i ,k i
Lattice αναγωγή και ο αλγόριθμος L3
i – 1 ; while i ≤ k – 2 do Αλλάζουμε μεταξύ τους τα και end while i = k + 1 ; while i ≤n do Ταυτόχρονα εκτελούμε τις παρακάτω εργασίες end whileend swap
1,k i ,k i
, 1 , 1 , 1 ;i k i k i k kB
, , 1 , , 1 ;i k i k i k k k
Το κρυπτοσύστημα Goldreich-Goldwasser-Halevi
H γενική αρχή λειτουργίας έχει ως εξής : το δημόσιο κλειδί είναι μια φτωχή lattice βάση (δηλαδή μια βάση με μακριάδιανύσματα) και το ιδιωτικό κλειδί είναι η ανηγμένη βάση του ίδιου lattice. Η κρυπτογράφηση πραγματοποιείται παίρνοντας το ένα σημείο του lattice που ανταποκρίνεται στο απλό κείμενο και εφαρμόζουμε πάνω του μια μικρή τυχαία διαταραχή έτσι ώστε να πάρουμε ένα σημείο εκτός του lattice, του οποίου το πλησιέστερο σημείο στο lattice να είναι το σημείο του απλού κειμένου. Άρα τα κρυπτοκείμενα είναι στιγμιότυπα του CVP και η ασφάλεια του ιδιωτικού κλειδιού εξαρτάται από τη δυσκολία της εύρεσης μιας αρκετά ανηγμένης βάσης του lattice.
Το κρυπτοσύστημα Goldreich-Goldwasser-Halevi
Oι κρυπτογραφήσεις αποκαλύπτουν πληροφορίες για τα
απλά κείμενα modulo 2σ, μια παρατήρηση που μας
επιτρέπει να απλοποιήσουμε το στιγμιότυπο του CVP που
παρουσιάζεται από ένα κρυπτοκείμενο και συνεπώς να
αποκρυπτογραφήσουμε μηνύματα χρησιμοποιώντας μια
βάση του που δεν είναι ανάγκη να είναι ανηγμένη στην
ιδιωτική βάση R. Σκοπός μας είναι να μειώσουμε το
διάνυσμα σφάλματος έτσι ώστε να έχουμε προς επίλυση ένα
ευκολότερο στιγμιότυπο του CVP.
Το κρυπτοσύστημα Ajtai-Dwork
Το κρυπτοσύστημα Ajtai-Dwork έχει ιδιωτικό κλειδί ένα τυχαίο διάνυσμα μέσα από μια n-διάστατη μπάλα μήκους 1 και δημόσιο κλειδί μια κατανομή
που τα διανύσματα της ( ,..., ) να σχηματίζουν ένα παραλληλεπίπεδο που το πλάτος του να είναι μεγαλύτερο από όριο τέτοιο ώστε η ασφάλεια του κρυπτοσυστήματος να είναι το ίδιο δύσκολη με το πρόβλημα .
u
uH
1u44444444444444
mu44444444444444
gGapCVP
Το κρυπτοσύστημα Ajtai-Dwork
Η κρυπτογράφηση εκτελείται κατά ένα bit τη φορά με κατάλληλα ανάθεση τιμών στα ‘0’ και ‘1’ bits του απλού κειμένου και η αποκρυπτογράφηση γίνεται με υπολογισμό του και έλεγχο της απόστασης του κρυπτογραφημένου bit σε σχέση με το bit απλού κειμένου με μεγάλη πιθανότητα σωστής αποκρυπτογράφησης. Η αδυναμία του κρυπτοσυστήματος είναι η εκτέλεση της κρυπτογράφησης κατά ένα bit τη φορά όπου και δείχθηκε ότι είναι ασφαλές μόνο για άβολα μεγάλες παραμέτρους.
,c u
Το κρυπτοσύστημα NTRU
Όλοι οι υπολογισμοί πραγματοποιούνται στο δακτύλιο
όπου q απεικονίζει τους ακεραίουςmodulo q.
Ιδιωτικό κλειδί : ένα τυχαίο στοιχείο ( df, df -1) με (α,b)={ f | f έχει α συντελεστές ίσους με 1, b ίσους με -1 και όλουςτους υπόλοιπους ίσους με 0} Δημόσιο κλειδί : h=f -1*g όπου .Κρυπτογράφηση : με Αποκρυπτογράφηση : με κατάλληλη επιλογή παραμέτρων εφαρμόζουμε και παίρνουμε και άρα το m.
( , )g gg d d L
[ ] /( 1)nq x x R Z
( )c p h m 1 1{ ,..., }
2 2
p pm
R
1pf (mod )m p
Το κρυπτοσύστημα NTRU
Οι επιθέσεις των Coppersmith και Shamir και αυτή του
May προσπαθούν να παρουσιάσουν το NTRU ως μια
μορφή lattice και χρησιμοποιώντας το Coppersmith-Shamir
lattice να φτιάξουν μια κατάλληλη lattice κατασκευή την
οποία και χρησιμοποιούν για να επιτεθούν στο NTRU.
CSL
Επίθεση στο κρυπτοσύστημα Μerkle-Hellman με χρήση του αλγόριθμου LLL
Οι δυο επιθέσεις κατά του κρυπτοσυστήματος Μ-Η που
παρουσιάζουμε είναι : Η επίθεση του Shamir : Με χρήση του αλγόριθμου LLL
προσεγγίζει τα στοιχεία U και Μ του ιδιωτικού κλειδιού μέσα σε ένα αρκετά μικρό διάστημα σε πολυωνυμικό χρόνο.
Η επίθεση χαμηλής πυκνότητας των Lagarias-Odlyzko : Με τρέξιμο του αλγόριθμου LLL στη βάση V των βαρών α1,...,αn ελέγχοντας αν στην ανηγμένη βάση που παίρνουμε έχουμε διάνυσμα που να έιναι η λύση.
Επίθεση στο κρυπτοσύστημα Μerkle-Hellman με χρήση του αλγόριθμου LLL
Ακολουθεί ένα σύντομο παράδειγμα ‘σπασίματος’ του βασικού κρυπτοσυστηματος Merkle-Helman : Έστω ότι έχουμε ένα ιδιωτικό knapsack :• S = [2, 5, 9, 21, 45, 103, 215, 450, 946] που είναι το
ιδιωτικό μας κλειδί;• p = 2003; • m = 1289; και άρα, m-1 = 317. Το δημόσιο knapsack:
• ti = 1289 *si mod 2003 • οπότε T = [575, 436, 1586, 1030, 1921, 569, 721, 1183,
1570] που είναι το δημόσιο μας κλειδί.
Επίθεση στο κρυπτοσύστημα Μerkle-Hellman με χρήση του αλγόριθμου LLL
Θα κρυπτογραφήσουμε το 101100111 ως 575 + 1586 + 1030 + 721 + 1183 + 1570 = 6665. Ο δέκτης υπολογίζει 6665 * 317 mod 2003 = 1643 και χρησιμοποιεί το S για να βρει το απλό κείμενο.Αυτό γίνεται με το να κατασκευάσουμε το binary string από δεξιά προς τα αριστερά : 1643 - 946(1) = 697; 697 - 450(1) = 247; 247 - 215(1) = 32; 32 - 45(0) = 32;
Επίθεση στο κρυπτοσύστημα Μerkle-Hellman με χρήση του αλγόριθμου LLL
32 - 21(1) = 11;
11 - 9(1) = 2;
2 - 5(0) = 2;
2 - 2(1) = 0.
2 - 2(1) = 0.
Παίρνουμε πίσω το αρχικό μήνυμα 101100111.
Ο επιτιθέμενος γνωρίζει :
• το δημόσιο κλειδί T = [575, 436, 1586, 1030, 1921, 569, 721, 1183, 1570]
• και το κρυπτοκείμενο 6665
Επίθεση στο κρυπτοσύστημα Μerkle-Hellman με χρήση του αλγόριθμου LLL
Ο επιτιθέμενος θέλει να βρει ένα xi στο {0, 1} τέτοιο ώστε
575x0+ + 436x1 + 1586x2 + 1030x3 + 1921x4 + 569x5 +
721x6 + 1183x7 + 1570x8 = 6665.
Αυτό μπορεί να γραφεί ως T * X = 6665. Ας ξαναγράψουμε
το πρόβλημα ως M * V = W όπου
Επίθεση στο κρυπτοσύστημα Μerkle-Hellman με χρήση του αλγόριθμου LLL
Η λύση είναι το μικρότερο διάνυσμα του lattice που
παράγεται από τις στήλες του Μ και εκεί είναι που
χρησιμοποιούμε τον αλγόριθμο LLL για να βρούμε τη λύση.
Ο πίνακας Μ΄ είναι το αποτέλεσμα της εφαρμογής του LLL
πάνω στον Μ.
Επίθεση στο κρυπτοσύστημα Chor-Rivest με χρήση του αλγόριθμου LLL
Πυκνότητα : ορίζουμε ως πυκνότητα ενός συνόλου βαρών
a = (α1, ..., αn) ως
Οι τρεις επιθέσεις που παρουσιάζονται είναι οι : Επίθεση με γνωστή τη π (Odlyzko) Επίθεση χωρίς τίποτα γνωστό (Brickell) Επίθεση χαμηλής πυκνότητας (Lagarias-Odlyzko)
2
αριθμός bits στο απλό κείμενο( )
log (max ) μέσος αριθμός bits στο κρυπτοκείμενο a
i i
nd
a
ΤΕΛΟΣ !
Top Related