Εισαγωγή στην Κρυπτογραφία Κρυπτογραφία πλέγματος (Lattice Cryptography)
Γενικά χαρακτηριστικά της κλασικής κρυπτογραφίας Στηρίζεται σε δύσκολα προβλήματα (NP), βασισμένα κυρίως στη θεωρία αριθμών (για παράδειγμα, παραγοντοποίηση μεγάλων αριθμών) Μειονεκτήματα: Δεν έχει αποδειχτεί για όλα αυτά τα προβλήματα ότι είναι από τα δυσκολότερα μεταξύ των υπολοίπων NP προβλημάτων Τα συστήματα γίνονται επισφαλή σε ειδικές περιπτώσεις – για παράδειγμα, στον RSA, αν το ίδιο μήνυμα σταλεί σε 3 διαφορετικούς αποδέκτες, υπάρχει η δυνατότητα ανάκτησής του από κάποιον εισβολέα, με χρήση του Θεωρήματος Κινεζικού Υπολοίπου (Chinese Remainder Theorem) Κβαντικοί υπολογιστές μπορούν να παραγοντοποιήσουν αριθμούς σε πολυωνυμικό χρόνο
Χαρακτηριστικά κρυπτογραφίας πλέγματος Διαφορετικού τύπου αλγόριθμοι υπεισέρχονται στα κρυπτογραφικά συστήματα (βασισμένοι στη θεωρία πλέγματος – lattice theory) Πολλά από αυτά τα προβλήματα είναι NP-hard Δεν έχει βρεθεί ακόμη κβαντικός αλγόριθμος αποδοτικής επίλυσής τους
Εισαγωγικά-Τι είναι πλέγμα; Χρησιμοποιούνται τόσο στην κρυπτανάλυση (για να σπάσουν κρυπτοσυστήματα) όσο και στην κρυπτογραφία (χρησιμοποιώντας δύσκολα προβλήματα για το σχεδιασμό ασφαλών κρυπτοσυστημάτων) Ιστορικά : οι κρυπταναλυτικές εφαρμογές έγιναν πριν τις κρυπτογραφικές
Πλέγματα Έστω B={b1,…,bn} γραμμικά ανεξάρτητα διανύσματα στο Rm, m n. Το πλέγμα που παράγεται από το B, ορίζεται ως το σύνολο L(B) όλων των ακέραιων γραμμικών συνδυασμών των διανυσμάτων του B, δηλαδή, L(B) = { x1 b1 + x2 b2 +…+ xn bn Ζn } όπου xi ακέραιοι αριθμοί, xi Ζ.
Εισαγωγικά-Τι είναι πλέγμα; Με άλλα λόγια πλέγμα είναι μια κανονική διάταξη σημείων στον m-διάστατο χώρο . Μερικές φορές καλείται point lattice (ή integer lattice, όταν οι συντεταγμένες των σημείων τομής είναι ακέραιες).
Πλέγματα και Βάσεις To Β καλείται βάση και μπορεί να παρασταθεί σαν ένας mxn πίνακας, Β = [b1, b2, …bn] που οι στήλες του είναι τα διανύσματα βάσης . Ισχύει m n. Αν m = n το πλέγμα καλείται πλήρους διάστασης (full-dimensional) . Μια βάση και το πλέγμα που παράγει.
Έκταση πλέγματος: span( B ) span(B) = {x1b1 + … + xnbn : xi R} όπου οι στήλες του B μπορούν να συνδυαστούν με αυθαίρετους πραγματικούς συντελεστές. Ισοδύναμα: span(B) = {B x: x Rn ) Εάν το B είναι μια βάση ενός πλέγματος L(B) τότε είναι βάση και για το χώρο διανυσμάτων span(B). Το αντίστροφο δεν ισχύει πάντα.
Tο βασικό Παραλληλεπίπεδο, του πλέγματος Ορίζεται ως P(B) = { c1b1 + … + cnbn : 0 ci < 1 }
Ιδιότητες πλεγμάτων Κάθε πλέγμα έχει άπειρες βάσεις. Πράγματι, εάν Μ είναι ένας n x n πίνακας ακεραίων με ορίζουσα ίση με 1 ή –1 (unimodular, οπότε τότε και ο Μ-1 είναι πίνακας ακεραίων) τότε και ΒΜ είναι επίσης βάση του L(B). Η ορίζουσα det(L) ενός πλέγματος L(B) ως προς μία βάση B ορίζεται ως o m-διαστάσεων όγκος του P(B). Αποδεικνύεται ότι η ορίζουσα είναι ανεξάρτητη της επιλογής της βάσης Β. Ισχύει det(L) = det(BTB)1/2
Παράδειγμα 1
Παράδειγμα 2 Ξεκάθαρα, τα κόκκινα διανύσματα είναι στο μπλέ πλέγμα αριστερό μπλέ = δεξιό κόκκινο – αριστερό κόκκινο δεξιό μπλέ = – αριστερό κόκκινο – 2 αριστερό μπλέ Παρατήρησε ότι το κόκκινο παραλληλεπίπεδο έχει τον ίδιο όγκο όπως το μπλέ. Για να καλύψεις το R2 πρέπει να βάλεις ένα σε κάθε σημείο του πλέγματος
Παράδειγμα 3 Δεν είναι όλα τα διανύσματα βάση Παράδειγμα 3 Δεν είναι όλα τα διανύσματα βάση Τα κίτρινα διανύσματα δημιουργούν ένα υπο-πλέγμα sub-lattice Το κίτρινο παραλληλεπίπεδο είναι πολύ μεγάλο Δεν μπορούμε να βάλουμε ένα για κάθε σημείο του πλέγματος
Νόρμες Μία συνάρτηση ||·||: Rn Rn λέγεται νόρμα αν για κάθε u, v Rn και λ R : ||λu|| = |λ| ||u|| ||u + v|| ||u|| + ||v|| ||u|| > 0 για u 0 Ο αριθμός ||u|| καλείται νόρμα ή μήκος (length) του διανύσματος u νόρμα l1 : ||(u1, u2, …, un)T||1 = Σ|ui| νόρμα (Ευκλείδεια νόρμα) l2 : ||(u1, u2, …, un)T||2 = (Σ ui2)1/2 Γενικά, νόρμα lp : ||(u1, u2, …, un)T||p = (Σ|ui|p)1/p Sup νόρμα l : ||(u1, u2, …, un)T|| = max |ui|
Μείωση πλέγματος (Lattice Reduction) Στοχεύει στην εύρεση βάσεων πλέγματος που παρουσιάζουν ενδιαφέρον Μειωμένες βάσεις με μικρά και σχεδόν ορθογώνια διανύσματα Βάσεις με μικρά διανύσματα μεγάλες γωνίες μεταξύ των διανυσμάτων Ανάγεται στους Lagrange, Gauss, Hermite και Minkowski Αναβίωσε το 1981 (αλγοριθμική θεωρία αριθμών)
Μείωση πλέγματος (Lattice Reduction) Αλγόριθμος LLL 1981: Lenstra, ακέραιος προγραμματισμός Τεχνική μείωσης βάσης σε πολυωνυμικό χρόνο μόνο για σταθερή διάσταση n Lovasz: παραλλαγή του αλγορίθμου Μείωση βάσης σε πολυωνυμικό χρόνο Αλγόριθμος LLL: Lenstra, Lenstra, Lovasz Παραγοντοποίηση πολυωνύμων σε πολυωνυμικό χρόνο Βελτιωμένες παραλλαγές (π.χ. Schnorr)
Ο LLL αλγόριθμος ( lattice reduction algorithm - Lenstra Lenstra Lovàsz 1982 ) Η εύρεση μιας βάσης με σχετικά μικρά διανύσματα καλείται μείωση βάσης πλέγματος (lattice basis reduction). Για την επίλυση αυτού του προβλήματος έχουν δοθεί αξιοσημείωτοι γρήγοροι αλγόριθμοι, όπως ο LLL αλγόριθμος ( ο οποίος τρέχει σε πολυωνυμικό χρόνο ), που έχουν ευρεία εφαρμογή στα υπολογιστικά μαθηματικά και την κρυπτανάλυση. Ωστόσο σε κάποιες περιπτώσεις η εύρεση μιας μειωμένης βάσης (reduced basis) παραμένει ανέφικτο πρόβλημα (είναι ΝΡ-σκληρό πρόβλημα).
Μείωση πλέγματος (Lattice Reduction) Αλγόριθμος LLL Είσοδος: μια βάση B για ένα πλέγμα L διάστασης n. Έξοδος: μια μειωμένη βάση – ένα σύνολο μικρών διανυσμάτων που γεννούν το πλέγμα L. Απαιτεί πολυωνυμικό χρόνο. Αποδεδειγμένη απόδοση: το μικρότερο διάνυσμα στη μειωμένη βάση είναι το πολύ 2 n/2 μεγαλύτερο από το μικρότερο μη μηδενικό διάνυσμα του πλέγματος κάτω από την νόρμα l2 . Πειραματική απόδοση: για λογικά μικρά n, και εάν το κενό (ο λόγος ||b2||/||b1|| των δύο μικρότερων διανυσμάτων) του πλέγματος είναι μεγάλο, ό LLL βρίσκει σχεδόν πάντα το μικρότερο διάνυσμα.
Προβλήματα Πλέγματος Πρόβλημα μικρότερου διανύσματος (Shortest Vector Problem – SVP) Πρόβλημα πλησιέστερου διανύσματος (Closest vector problem – CVP)
Πρόβλημα μικρότερου διανύσματος (Shortest Vector Problem – SVP) Για την νόρμα, το πρόβλημα επαναδιατυπώνεται ως εύρεση του διανύσματος εκείνου που είναι πλησιέστερα στο μηδέν Για τη sup norm, το πρόβλημα είναι NP-complete
Πρόβλημα πλησιέστερου διανύσματος (Closest vector problem – CVP) Πρόβλημα: Για ένα πλέγμα L και ένα σημείο του t, εύρεση του διανύσματoς εκείνου για το οποίο το μήκος της απόστασής του με το t (ως προς κάποια συγκεκριμένη νόρμα) είναι το μικρότερο δυνατό. Για την νόρμα, το πρόβλημα είναι NP-complete
ΠΑΡΑΔΕΙΓΜΑ CVP , SVP
Άλλα δύσκολα προβλήματα Εάν η διάσταση n του πλέγματος είναι μεγάλη, τα SVP και CVP είναι πολύ δύσκολο να λυθούν Πρόβλημα Μικρότερης βάσης (Shortest Basis Problem – SBP): Εύρεση της μικρότερης βάσης ενός πλέγματος . Προσεγγιστικά πολυωνυμικοί αλγόριθμοι είναι παραλλαγές του LLL αλγόριθμου . Πρόβλημα καλύπτουσας ακτίνας (Covering radius problem): Εύρεση για ένα πλέγμα βάσης B του αριθμού r με την ιδιότητα κάθε στοιχείο του span(B) να βρίσκεται σε απόσταση μικρότερη του r από το L(B)
Κρυπτοσυστήματα πλέγματος GGH (http://theory.lcs.mit.edu/~cis/lattice/challenge.html ) HNF (http://philby.ucsd.edu/cryptolib/psfiles/99-05.ps) NTRU (http://www.ntru.com/) Ajtai-Dwork http://theory.lcs.mit.edu/~shaih/challenge.html) Tensor κρυπτοσυστήματα Άλλα Συγκεντρωμένη βιβλιογραφία: http://www.eleves.ens.fr/home/stehle/en-refreseaux/en-cryptosystemes.html
Κρυπτοσύστημα GGH (Goldreich – Goldwasser – Halevi) Βασίζεται στο CVP Ιδιωτικό κλειδί: μια μειωμένη βάση B n μικρών σχεδόν ορθογωνίων διανυσμάτων. Δημόσιο κλειδί: Μία τυχαία βάση R = {b1,…,bn} του πλέγματος που παράγεται από το ιδιωτικό κλειδί B. Άρα το δημόσιο και το ιδιωτικό κλειδί είναι αναπαραστάσεις του ίδιου πλέγματος . Ο αντίστροφος υπολογισμός της μειωμένης βάσης του ιδιωτικού κλειδιού R με δεδομένη τη βάση B του δημόσιου κλειδιού θα σήμαινε επίλυση του προβλήματος SBP.
Το ιδιωτικό κλειδί είναι μια μειωμένη βάση με μικρού μήκους (σχεδόν ορθογώνια) διανύσματα
Κρυπτογράφηση Πλέγματος Πρώτο σχήμα Ενσωμάτωση του μηνύματος στο διάνυσμα λάθους Η κρυπτογράφηση γίνεται με το να πάρουμε ένα τυχαίο σημείο του πλέγματος και να εφαρμόσουμε σ’ αυτό μια μικρή διαταραχή (λάθος), που αντιστοιχεί στο ανοικτό μήνυμα, ώστε να πάρουμε ένα άλλο σημείο (το κρυπτόγραμμα), το οποίο δεν ανήκει στο πλέγμα, αλλά είναι πλησιέστερα στο τυχαία ληφθέν σημείο του πλέγματος. Για την αποκρυπτογράφηση απαιτείται να λύσουμε άμεσα το πρόβλημα του πλησιέστερου διανύσματος ως προς το σημείο του κρυπτογράμματος, προσεγγιστικά με τη χρήση της ιδιωτικής βάσης του πλέγματος. Το σχήμα αυτό χρησιμοποιείται στο κρυπτοσύστημα HNF
Κρυπτογράφηση με πλέγμα Πρώτο σχήμα Κρυπτογράφηση με πλέγμα Πρώτο σχήμα Αποκρυπτογράφηση Χρήση της Β για να βρεις Βy=Rx πλησιέστερα στο c (CVP) D(c) = c – By = m Κρυπτογράφηση Επέλεξε Rx τυχαία Ιδιωτικό κλειδί Πρόσθεσε ως μικρό λάθος Πλέγμα Β το μήνυμα m E(m) = Rx + m = c Δημόσιο κλειδί Τυχαία βάση R
Κρυπτογράφηση Πλέγματος Δεύτερο σχήμα - GGH Ενσωμάτωση του μηνύματος σε διάνυσμα πλέγματος Η κρυπτογράφηση γίνεται με το να πάρουμε ένα σημείο του πλέγματος που αντιστοιχεί στο ανοικτό μήνυμα και να εφαρμόσουμε μια μικρή τυχαία διαταραχή (λάθος) σ’ αυτό ώστε να πάρουμε ένα άλλο σημείο (το κρυπτόγραμμα), το οποίο δεν ανήκει στο πλέγμα, αλλά του οποίου όμως το πλησιέστερο σημείο του πλέγματος είναι το ανοικτό μήνυμα! Για την αποκρυπτογράφηση δεν απαιτείται να λύσουμε άμεσα το πρόβλημα του πλησιέστερου διανύσματος. Αυτό πρέπει να το λύσει ο εχθρός
Κρυπτογράφηση με πλέγμα Δεύτερο Σχήμα (GGH) Αποκρυπτογράφηση Υπολόγισε [Β-1c] D(c) = R-1 B[Β-1c] = m Κρυπτογράφηση Κωδικοποίησε το m ως x Υπολόγισε Rx και πρόσθεσε Ιδιωτικό κλειδί τυχαίο μικρό λάθος r Πλέγμα B E(m) = Rx + r = c Δημόσιο κλειδί Τυχαία βάση R
Κρυπτοσύστημα GGH Κρυπτογράφηση: Ένα μήνυμα m = m1,…,mn (κάθε mi είναι ακέραιος), κρυπτογραφείται ως: c = όπου r τυχαίο διάνυσμα (η διαταραχή). Αποκρυπτογράφηση: προβολή του κρυπτογράμματος στο πλέγμα και προσέγγισή του στο πλησιέστερο διάνυσμα (σημείο) p που ανήκει στο πλέγμα ώστε m = B-1p Μια επίθεση σημαίνει επίλυση του CVP και όσο μεγαλώνει το δ τόσο αυξάνεται η δυσκολία του CVP αλλά πρέπει και να παραμείνει μικρό το δ για να επιτύχει η διαδικασία της αποκρυπτογράφησης ,
Γενικά χαρακτηριστικά GGH (με ποιο λεπτομέρεια) Το δημόσιο κλειδί R αποτελείται από μεγάλου μήκους διανύσματα, ενώ το ιδιωτικό κλειδί B είναι μία βάση του πλέγματος με μικρότερα διανύσματα Για την επιλογή του ιδιωτικού κλειδιού B γίνεται τυχαία και ομοιόμορφη επιλογή διανυσμάτων από το {-λ, λ}n x n, με τυπική τιμή του λ το 4. Από την Β υπολογίζεται το δημόσιο κλειδί R με μια ακολουθία 2n τυχαίων μετά-πολλαπλασιασμών με ειδικούς στοιχειώδεις ακεραίους πίνακες με ορίζουσα 1 (unimodular). Για λόγους αποδοτικής αποκρυπτογράφησης φυλάσσονται τα B-1 και T = R –1B αντί του Β. Για την αποκρυπτογράφηση, χρησιμοποιείται η τεχνική Babai για την κατά προσέγγιση εύρεση του πλησιέστερου γείτονα. Η ασφάλεια του GGH έγκειται στο πρόβλημα CVP
GGH – κρυπτογράφηση Κωδικοποίησε το μήνυμα m ως ένα διάνυσμα στο Ζn. Διάλεξε ένα τυχαίο διάνυσμα r Rn τέτοιο ώστε |ri| δ, δηλ., ri = δ με πιθανότητα ½, i = 1,…n. Το κρυπτόγραμμα είναι το c = Rm + r To c είναι κοντά στο σημείο Rm του πλέγματος. Πολυπλοκότητα κρυπτογράφησης: Ο(n2) βήματα και χρονική πολυπλοκότητα Ο(n2 log2 n)
GGH – αποκρυπτογράφηση (τρόπος Babai) [Babai 86]: Είσοδος είναι το ιδιωτικό κλειδί B και το κρυπτόγραμμα c. Επίσης έχουν υπολογιστεί τα B-1 και T = R–1B . Κάνε τα εξής: Γράψε το c ως γραμμικό συνδυασμό των διανυσμάτων του Β, δηλ., υπολόγισε το διάνυσμα Β-1 c. Στρογγυλοποίησε τους συντελεστές του Β-1 c στους πλησιέστερους ακεραίους, [B-1 c] Υπολόγισε το Τ [B-1 c] Ο ακέραιος γραμμικός συνδυασμός που προκύπτει είναι ένα σημείο του πλέγματος m’= Τ [B-1 c] Πολυπλοκότητα αποκρυπτογράφησης: Ο(n2) βήματα και χρονική πολυπλοκότητα Ο(n4 log2 n)
GGH – αντιστρέφοντας τη συνάρτηση(τρόπος Babai) Λήμμα: m’ = m εάν και μόνο εάν [Β-1r] = 0 Απόδειξη: m’ = Τ [Β-1c] = Τ [Β-1 (Rm + r)] διότι c = Rm + r = Τ [Β-1 (BT -1m + r)] διότι R = BT -1 = Τ [T -1m + Β-1 r] = Τ (T -1m + [Β-1 r]) διότι T –1= Β-1 R είναι unimodular και = m +T [Β-1 r] το m έχει ακέραιες τιμές Άρα m’ – m = [Β-1 r]
Το κρυπτοσύστημα GGH δουλεύει Θεώρημα: Για κάθε ε 0, (και μπορεί να υπολογιστεί) δ: Prr[m’m] ε (με ri=δ) q «Τυπικές τιμές» (για n=140) Bij{-4, …, +4}, ε=10-4, δ =2.7
Ασφάλεια GGH To GGH έχει 2 αδυναμίες: 1)Το τυχαίο διάνυσμα r που χρησιμοποιείται στην κρυπτογράφηση είναι πάντα μικρότερο από τα διανύσματα πλέγματος . Σε όλα τα γνωστά κρυπτοσυστήματα είναι τουλάχιστον δύο φορές πιο μικρό . Άρα οι περιπτώσεις CVP που προκύπτουν είναι ευκολότερες από γενικές περιπτώσεις CVP . 2) Έστω c=Rm + r ,όπου r { -δ ,δ }n . Εάν s = (δ,δ,…,δ)τ τότε c+s = Rm (mod 2δ ). Έτσι αν ο πίνακας R είναι αντιστρέψιμος τότε θα αποκαλυφθεί το m mod 2δ πράγμα που απλοποιεί το CVP. Αυτή η αδυναμία διορθώνεται με το να επιλέγω το r τυχαία στο {-δ,..., +δ} (πράγμα που έχει ήδη διορθωθεί)
Η ασφάλεια στο GGH Οι δύο βασικές απειλές έγκεινται στα εξής: 1) Ανάκτηση της καταπακτής Όμως η εύρεση του B από το R είναι υπολογιστικά σκληρή (SBP) 2) Παράκαμψη της καταπακτής Όμως η εύρεση του m από το (R, c) είναι υπολογιστικά σκληρή (CVP)
Το GGH προς το μέλλον Αναθεώρηση ασφάλειας Το κάτω φράγμα n=300 πρέπει να αυξηθεί Οι προκλήσεις για n=200 έως 400 λύθηκαν (εκτός από n=400) άλλες προκλήσεις δημιουργία πιο ευέλικτων (αποδοτικών) σχημάτων και για γρηγορότερη κρυπτογράφηση/αποκρυπτογράφηση χρήση μικρότερων κλειδιών Το μήκος του κλειδιού του GGH είναι πολύ μεγαλύτερο αυτό του RSA: για το Β είναι της τάξεως του n2 και για το R-1 και Τ του n3
Βελτίωση του GGH Hermite κανονική μορφή- HNF Βελτίωση του GGH από τον Micciancio Με τη χρήση δημόσιας βάσης Β σε Hermite Normal Form Ορισμός HNF: ένας αντιστρέψιμος (nonsingular) ακέραιος πίνακας Η είναι σε Hermite κανονική μορφή εάν: Η είναι άνω τριγωνικός Οι διαγώνιες τιμές είναι μεγαλύτερες του μηδενός Για όλα τα 1 i < j n ισχύει 0 Ηij < Hiι Για κάθε nxn αντιστρέψιμο ακέραιο πίνακα Α υπάρχει unimodular μετασχηματισμός U τέτοιος ώστε Η = ΑU ώστε Η να είναι σε ΗΝF HNF υπολογίζεται σε πολυωνυμικό χρόνο. Χρειαζόμαστε μόνο Ο(n2 log n) bits για τη δημόσια βάση Β και το Τ
HNF Δημόσιο Κλειδί Το σύστημα χρησιμοποιεί το ίδιο ιδιωτικό κλειδί B όπως στο σύστημα GGH To δημόσιο κλειδί είναι η βάση Η που είναι η HNF του Β, Όπου Επειδή η HNF του Β μπορεί να υπολογιστεί από οποιαδήποτε άλλη βάση Β’ του πλέγματος L(Β), η επιλογή να είναι ο Η το δημόσιο κλειδί είναι η καλλίτερη (ασφαλέστερη) επιλογή.
HNF Κρυπτογραφία Βασική ιδέα Η τυχαία επιλογή στο GGH διανύσματος v = Rx και στη συνέχεια ηπρόσθεση λάθους e αντικαθίσταται με αναγωγή του λάθους modulo τη βάση του πλέγματος.
HNF Κρυπτογραφία Ενσωμάτωση του μηνύματος στο διάνυσμα λάθους Στην περίπτωση αυτή δεν μας χρειάζεται διάνυσμα Hx του πλέγματος. Μας αρκεί να υπολογίσουμε απλά το E(m) = m mod H = c η διαδικασία αποκρυπτογράφησης είναι ίδια με αυτή του GGH Ενσωμάτωση του μηνύματος σε διάνυσμα πλέγματος Στην περίπτωση αυτή έχουμε E(m) = (Η m + r ) mod 2H = c
Σύγκριση HNF με GGH Μέγεθος κλειδιού/βάσης: GGH : R: O(n2 log n), B-1 και T: O(n3 log n) HNF : H: O(n2 log n) Μέγεθος κρυπτογράμματος GGH : Rm + r: O(n2 log n) HNF : H: O(n log n)
Κρυπτοσύστημα NTRU Κρυπτοσύστημα δημόσιου κλειδιού σχετικά μικρά και εύκολα να δημιουργηθούν κλειδιά μεγάλη ταχύτητα περιορισμένες απαιτήσεις σε μνήμη Κορυφαίο ανάμεσα στα κρυπτοσυστήματα knapsack και πλέγματος Υποστηρίζει ψηφιακές υπογραφές Δεν υπάρχει τυπική απόδειξη της ασφάλειάς του
NTRU - O δακτύλιος των περικομμένων πολυωνύμων (R) Δακτύλιος R = Z[x] / (xn – 1) όλων των περικομμένων πολυωνύμων βαθμού n - 1 με ακέραιους συντελεστές. Το κρυπτοσύστημα NTRU βασικά επεξεργάζεται πολυώνυμα στο R. Θα παρουσιαστεί και σε μορφή πλέγματος
NTRU – O δακτύλιος των περικομμένων πολυωνύμων (R) Μετά τον πολλαπλασιασμό, η δύναμη xn πρέπει να αντικατασταθεί με 1, η δύναμη xn+1 πρέπει να αντικατασταθεί με x, η δύναμη xn+2 πρέπει να αντικατασταθεί με x2 κ.ο.κ. Δηλ., έχουμε περικοπή (truncation) των πολυωνύμων Ώστε το γινόμενο να ανήκει κι αυτό στο R Παράδειγμα με n=4 (Extra Κανόνας: x4 = 1) (x3+2x-1)*(3x3-x2+x+2) = 3x6-x5+7x4-3x3+3x2+3x-2 = 3x2-x + 7 - 3x3+3x2+3x-2 = -3x3+6x2+2x+5
NTRU Πολλαπλασιασμός Πολυωνύμων Τυπικός ορισμός Το γινόμενο των f(x) = a0+a1x+a2x2+…+an-1xn-1 και g(x) = b0+b1x+b2x2+…+bn-1xn-1 είναι h(x) = f(x)*g(x) = c0+c1x+c2x2+…+cn-1xn-1 με ck = a0bk + a1bk-1 + … +akb0 + ak+1bn-1 +… an-1bk+1. Το διάνυσμα των συντελεστών του γινομένου h(x) = f(x)g(x) είναι το γινόμενο συνέλιξης (convolution product) των διανυσμάτων των συντελεστών των f(x) και g(x). Το convolution product μπορεί να υπολογιστεί πολύ γρήγορα με τους Fast Fourier Transforms ή με τον Karatsuba πολλαπλασιασμό κατά προσέγγιση σε n log(n) steps. Παράδειγμα: [4, 5, 7][5, 3, 2] = 4[5,3,2] + 5[2,5,3] + 7[3,2,5] = [20,12,8] + [10,25,15] + [21,14,35] = [20+10+21, 12+25+14, 8+15+35] = [51,51,58]
NTRU – παράμετροι του συστήματος n - τα πολυώνυμα στο R έχουν βαθμό n - 1 q (μεγάλο modulo, n ) - οι συντελεστές των πολυωνύμων θα αναχθούν mod q p (μικρό modulo, π.χ., 3) - ως τελευταίο βήμα στη αποκρυπτογράφηση, οι συντελεστές των πολυωνύμων του μηνύματος θα αναχθούν mod p Παράδειγμα: 5x3 - 11x2 + 4x + 6 = -x3 + x2 + x mod 3 Πρέπει (q,p)=1 (για να εξασφαλιστεί ασφάλεια)
NTRU – πραγματικές τιμές των παραμέτρων Οι τιμές αυτές δίνουν μια ιδέα για το τι ποσότητες χρησιμοποιούνται στις εμπορικές εφαρμογές. n q p Μέση Ασφάλεια 167 128 3 Συνήθης Ασφάλεια 251 128 3 Υψηλή Ασφάλεια 347 128 3 Πολύ υψηλή Ασφάλεια 503 256 3
NTRU Σύγκριση με RSA Τυπικές τιμές για τις παραμέτρους, με αντίστοιχα επίπεδα ασφάλειας RSA : NTRU RSA Level n p q (bits) 251 3 128 1024 347 3 128 2048 503 3 256 4096 nTRU
NTRU - Δημιουργία κλειδιού Ζεύγος δημόσιου/ιδιωτικού κλειδιού. Ιδιωτικό κλειδί είναι το ζεύγος πολυωνύμων f, g με τις ακόλουθες απαιτήσεις: Τα f, g είναι στο R και έχουν μικρούς συντελεστές (π.χ., {-1, 0, 1}) Το f να είναι αντιστρέψιμο mod p και mod q Υπάρχουν πολυώνυμα fq-1 και fp-1 τέτοια ώστε ffq-1 = 1 mod q και ffp-1 = 1 mod p Δημόσιο κλειδί είναι το πολυώνυμο h = pfq-1g mod q με βαθμό το πολύ n και συντελεστές το πολύ q Το μήκος του είναι n log n
NTRU - κρυπτογράφηση Αποστολή μηνύματος χρησιμοποιώντας το δημόσιο κλειδί h: Το μήνυμα m δίνεται σαν ένα πολυώνυμο με συντελεστές στο {-1, 0, 1} επιλογή τυχαία ενός άλλου μικρού πολυώνυμου r, το οποίο καλείται «τιμή τύφλωσης», καθώς «σκεπάζει» το μήνυμα Το κρυπτόγραμμα είναι το πολυώνυμο c = m + rh mod q
NTRU - αποκρυπτογράφηση Για να αποκρυπτογραφήσουμε το κρυπτόγραμμα c: υπολογίσουμε το πολυώνυμο a = f c mod q, οι συντελεστές του a επιλέγονται να βρίσκονται στο διάστημα {–q/2,..., q/2}. υπολογίζουμε το πολυώνυμο m’ = fp-1 a mod p Ισχυριζόμαστε ότι m’ = m με μεγάλη πιθανότητα
NTRU – απόδειξη ισχυρισμού a = f c mod q = f (m + hr) mod q = f (m + pfq-1gr) mod q = fm +pgr mod q Δεδομένου ότι υποθέτουμε ότι τα f, m, g, r είναι όλα πολυώνυμα με μικρούς συντελεστές και ότι και το p είναι μικρό, έπεται ότι οι συντελεστές του fm + pgr είναι ήδη στο διάστημα {–q/2,..., q/2}, δηλ., a = fm + pgr , άρα m’ = fp-1 a mod p = fp-1 (fm +pgr) mod p = m + fp-1 pgr mod p = m Άρα m = m’
NTRU – Χώροι των παραμέτρων Γενικά Ο χώρος των μηνυμάτων Lm περιέχει όλα τα πολυώνυμα modulo p. Lm={ m Z[x] : m έχει συντελεστές στο { -p/2,...,p/2} }. Για τους άλλους χώρους ονομάτων των f, g, r}, θα χρησιμοποιήσουμε σύνολα της μορφής L(d1,d2)={F R : F έχει d1 συντελεστές ίσους με 1, d2 συντελεστές -1 και οι υπόλοιποι είναι 0} Έτσι διαλέγουμε τρεις θετικούς ακεραίους df, dg, dr και θέτουμε Lf,=L(df,df-1), Lg=L(dg,dg), Lr=L(dr,dr). Π.χ. : df = 61, dg = 20, dr = 18 για n = 167
NTRU - Παρατηρήσεις Η ασφάλεια του NTRU έγκειται στο ότι δεν είναι εφικτή, δοθέντος του h=p·fq-1·g, η εύρεση f’, g’ έτσι ώστε h=p·f’-1g’ και ταυτόχρονα να έχουν μικρούς συντελεστές (για να μπορεί να λάβει χώρα η αποκρυπτογράφηση). Πού βρίσκεται το πλέγμα? Η κρυπτογράφηση ισοδυναμεί με μετατόπιση του σημείου πλέγματος p·(r· h) κατά m. Για δοθέν κρυπτόγραμμα c, το πλησιέστερο σημείο σε αυτό της μορφής h είναι πιθανό να απέχει σε απόσταση m από το c. Κάθε «επίθεση» αποσκοπεί στην εύρεση του f’ τέτοιου ώστε να παραχθεί διαφορετικό αλλά παρόμοιο πλέγμα Επέκταση NTRU: Η παράμετρος p είναι μικρό πολυώνυμο, πρώτο ως προς το xn-1 (αντί για μικρό ακέραιο, πρώτο ως προς το q). Αυτό συνεπάγεται αλλαγές στην κρυπτογράφηση και αποκρυπτογράφηση, αλλά η γενική δομή παραμένει η ίδια.
NTRU – Πλέγμα Έστω α ένα πολυώνυμο στο R με α = α0 + α1x +…+ α n-1 x n-1 Έστω ο κυκλικός πίνακας Έστω Mα, Mb δύο κυκλικοί πίνακες , οπότε MαMb = Mαb, όπου αb= α·b R (δηλ., ο πολλαπλασιασμός πινάκων αντιστοιχεί σε πολλαπλασιασμό πολυωνύμων) Συμβολίζουμε με rot: α rotation (α), δηλ.,
NTRU με όρους Πλέγματος Ορίζουμε Ορισμός: το Πλέγμα L είναι q-modular εάν qri L. Ορισμός: το Πλέγμα L είναι δι-κυκλικό εάν από α L έπεται rot2(α) L. Η περιγραφή του NTRU με όρους πλέγματος έχει ως εξής: Το ιδιωτικό κλειδί είναι το μικρό διάνυσμα To πλέγμα L που σχετίζεται με αυτό το διάνυσμα είναι το μικρότερο q-modular δι-κυκλικό πλέγμα που περιέχει το Το δημόσιο κλειδί είναι η HNF βάση του L,
NTRU με όρους Πλέγματος Η κρυπτογράφηση γίνεται με την αναγωγή του διανύσματος mod H Το κρυπτόγραμμα είναι το διάνυσμα H αποκρυπτογράφηση εξαρτάται από το ειδικό δακτύλιο πολυωνύμων και δεν είναι ξεκάθαρο πως μπορεί να ερμηνευθεί γεωμετρικά Η ειδική μορφή ενός q-modular δι-κυκλικού πλέγματος επιτρέπει τα κλειδιά και το κρυπτόγραμμα να είναι μήκους Ο(n log n) bits.
NTRU - Ιστορικά Αναπτύχθηκε από ομάδα μαθηματικών / κρυπτογράφων - J. Hoffstein, J. Pipher, J.Silverman (1994-1996) Παρουσιάστηκε από τον J. Hoffstein στο CRYPTO ΄96 Feedback από top κρυπτογράφους (Coppersmith, Hastad, Odlyzko, Shamir, …) για να καθοριστούν οι παράμετροι ασφαλείας Συνεχόμενη έρευνα από ειδικούς στα πλέγματα και στην κρυπτογραφία (Phong, Stern, Schnorr, …) επιβεβαιώνει την ασφάλεια του NTRU Νέο ΙΕΕΕ Ρ1363.1 standard βασισμένο στο NTRU Νέο CEES Efficient Embedded Security Standard βασισμένο στο NTRU
Κρυπτοσύστημα Ajtai-Dwork Το ομώνυμο κρυπτοσύστημα δουλεύει στο n , με μια ορισμένη ακρίβεια που εξαρτάται από το n. H ασφάλειά του βασίζεται σε μια εκδοχή του αλγορίθμου SVP. Το σχήμα έχει κυρίως θεωρητικό σκοπό δεδομένου ότι η κρυπτογράφηση γίνεται bit-προς-bit.
Κρυπτοσύστημα Ajtai-Dwork - κλειδιά Ιδιωτικό κλειδί: ένα ομοιόμορφα επιλεγμένο διάνυσμα u στο n-διάστατο χώρο Καθορίζουμε μια κατανομή Hu διανυσμάτων (σημείων) a τέτοια ώστε το εσωτερικό γινόμενο < a , u > να είναι πολύ κοντά στο Ζ
Κρυπτοσύστημα Ajtai-Dwork - κλειδιά Δημόσιο κλειδί: περιλαμβάνει έναν πολυωνυμικό αριθμό σημείων κοντά σε ένα διάνυσμα u που παραμένει μυστικό Λαμβάνεται επιλέγοντας διανύσματα w1, w2, …, wn, v1, v2, …,vm (m=n3) ανεξάρτητα και στην τύχη από την κατανομή Hu , με την προϋπόθεση ότι το παραλληλεπίπεδο w δεν είναι επίπεδο αρκετά θεωρητικό σχήμα…
Η κρυπτογράφηση στο Ajtai - Dwork Γίνεται σε επίπεδο bit Κρυπτογράφηση του ‘0’ τυχαία επιλογή b1, b2, …,bm, και υπολογισμός του ( bi vi )mod w Κρυπτογράφηση του ‘1’ τυχαία επιλεγμένο διάνυσμα στο παραλληλεπίπεδο w
Η αποκρυπτογράφηση στο Ajtai - Dwork ciphertext x Υπολογισμός του c=<x,u> με το ιδιωτικό κλειδί u Αν το x είναι επαρκώς κοντά στο Ζ, αποκρυπτογραφείται ως 0 Αλλιώς ως 1
Η αποκρυπτογράφηση στο Ajtai - Dwork κρυπτογράφηση του ‘0’ πάντα αποκρυπτογραφείται ως ‘0’ κρυπτογράφηση του ‘1’ μικρή πιθανότητα να αποκρυπτογραφηθεί ως ‘0’ Υπάρχει τρόπος διόρθωσης τέτοιων λαθών
Η ασφάλεια στο Ajtai - Dwork Απόδειξη ασφάλειας υποθέσεις χείριστης περίπτωσης ανέφικτο στη χείριστη περίπτωση να βρεθεί μικρότερο διάνυσμα σε ένα πλέγμα που έχει «μοναδικό μικρότερο διάνυσμα»
Η ασφάλεια στο Ajtai - Dwork Απόδειξη ασφαλείας Κλονίστηκε από συμπεράσματα των Nguyen και Stern Μελέτες των Goldreich και Goldwasser Το πρόβλημα της αποκρυπτογράφησης δε φαίνεται να είναι NP-hard
Η ασφάλεια στο Ajtai - Dwork Nguyen και Stern Ευριστική επίθεση για ανάκτηση του δημοσίου κλειδιού επίθεση πετυχαίνει για τουλάχιστον n=32 Για τέτοιες παραμέτρους το σύστημα καθίσταται μη πρακτικό δημόσιο κλειδί απαιτεί 20ΜΒ (!) ciphertext για κάθε bit έχει μήκος 6144 Αν δεν προκύψουν σημαντικές βελτιώσεις, το σύστημα θα έχει μόνο θεωρητική αξία
Σύγκριση συστημάτων
Η έρευνα στην κρυπτογραφία πλέγματος Το «ταξίδι» στο χώρο των πλεγμάτων συνεχίζεται…