Επίθεση του Βίνερ

Η επίθεση του Βίνερ, όπως ονομάστηκε από τον κρυπτολόγο Μάικλ Τζ. Βίνερ, είναι ένα είδος κρυπτογραφικής επίθεσης εναντίον του κρυπτοσυστήματος RSA. Η επίθεση χρησιμοποιεί την μέθοδο των συνεχών κλασμάτων για τον εντοπισμό του ιδιωτικού κλειδιού d, όταν αυτό είναι μικρό.

 Προτού γίνει αναφορά στον τρόπο που λειτουργεί η επίθεση του Βίνερ, θα παρουσιαστεί σύντομα ο τρόπος λειτουργίας του κρυπτοσυστήματος RSA. Για περισσότερες λεπτομέρειες, υπάρχει και το κύριο λήμμα RSA. Γίνεται η υπόθεση ότι η Άλις και ο Μπομπ είναι δύο άτομα που θέλουν να επικοινωνήσουν με ασφάλεια. Πιο συγκεκριμένα, η Άλις θέλει να στείλει ένα μήνυμα στον Μπομπ, το οποίο μόνον ο Μπομπ θα μπορεί να διαβάσει. Αρχικά, ο Μπομπ επιλέγει δύο πρώτους αριθμούς p και q και υπολογίζει τον αριθμό N = pq. Αυτός ο αριθμός γίνεται γνωστός (δημόσιος) μαζί με τον δείκτη κρυπτογράφησης e, ενώ τα N και e διαμορφώνουν το δημόσιο κλειδί (e,N). Με αυτόν τον τρόπο, οποιοσδήποτε μπορεί να κρυπτογραφήσει κάποιο μήνυμα για τον Μπομπ. Ο δείκτης αποκρυπτογράφησης d ικανοποιεί τη συνθήκη e d = 1 mod φ ( N ) {\displaystyle ed=1{\bmod {\varphi }}(N)} , ὀπου φ ( N ) = ( p − 1 ) ( q − 1 ) {\displaystyle \varphi (N)=(p-1)(q-1)} , είναι η συνάρτηση φ ( N ) {\displaystyle \varphi (N)} του Όιλερ. (σημείωση: αυτή είναι η τάξη της πολλαπλασιαστικής ομάδας Z N ∗ {\displaystyle \mathbb {Z} _{N}^{*}} ). Ο δείκτης κρυπτογράφησης e και η τιμή του φ ( N ) {\displaystyle \varphi (N)} πρέπει επίσης να είναι σχετικά πρώτοι (πρώτοι μεταξύ τους) ώστε να υπάρχει αντίστροφη επεκτασιμότητα . Η παραγοντοποίηση του N και το ιδιωτικό κλειδί d παραμένουν κρυφά, ώστε μόνον ο Μπομπ να μπορεί να αποκρυπτογραφήσει το μήνυμα. Το ιδιωτικό κλειδί ορίζεται ως (d,N). Η κρυπτογράφηση του μηνύματος M δίνεται από τον τύπο C ≡ M e mod N {\displaystyle C\equiv M^{e}{\bmod {N}}} και η αποκρυπτογράφηση του κρυπτογραφημένου μηνύματος C {\displaystyle C} δίνεται από τον τύπο C d ≡ ( M e ) d ≡ M ( e d ) ≡ M mod N {\displaystyle C^{d}\equiv (M^{e})^{d}\equiv M^{(ed)}\equiv M{\bmod {N}}} (με χρήση του μικρού θεωρήματος του Φερμά). Με χρήση του Ευκλείδιου αλγορίθμου, μπορεί να γίνει αποτελεσματική ανάκτηση του κρυφού κλειδιού d, αν είναι γνωστή η παραγοντοποίηση του N. Αν κάποιος έχει στην κατοχή του το κρυφό κλειδί d, μπορεί να παραγοντοποιήσει τον ακέραιο Ν. Στο κρυπτοσύστημα του RSA, ο Μπομπ μπορεί να προτιμήσει να κάνει χρήση μιας μικρής τιμής του d, παρά μιας μεγαλύτερης τυχαίας, με σκοπό να βελτιώσει την απόδοση της αποκρυπτογράφησης του RSA. Ωστόσο, η επίθεση του Βίνερ αναδεικνύει το γεγονός ότι η χρήση μιας μικρής τιμής d έχει ως αποτέλεσμα ένα μη ασφαλές σύστημα, στο οποίο ο επιτιθέμενος μπορεί να ανακτήσει όλες τις κρυφές πληροφορίες και να "σπάσει" το σύστημα RSA. Αυτό είναι κάτι που βασίζεται στο Θεώρημα του Βίνερ, το οποίο ισχύει για μικρές τιμές του d. Ο Βίνερ έχει αποδείξει ότι ο επιτιθέμενος μπορεί να βρει (σε πολυωνυμικό χρόνο) το d όταν ισχύει d < 1 3 N 1 4 {\displaystyle d<{\frac {1}{3}}N^{\frac {1}{4}}} . Στη δημοσίευση του Βίνερ παρουσιάζονται, επίσης, μερικά μέτρα προστασίας από την επίθεσή του, τα οποία επιτρέπουν γρήγορη αποκρυπτογράφηση. Δύο τεχνικές περιγράφονται παρακάτω. Επιλογή μεγάλου δημοσίου κλειδιού: Αντικαθιστώντας e {\displaystyle e} με e ′ {\displaystyle e'} , όπου e ′ = e + k . φ ( N ) {\displaystyle e'=e+k.\varphi (N)} για κάποια μεγάλη τιμή του k {\displaystyle k} . Όταν η τιμή του e ′ {\displaystyle e'} είναι αρκετά μεγάλη, για παράδειγμα e ′ > N 3 2 {\displaystyle e'>N^{\frac {3}{2}}} , τότε η επίθεση του Βίνερ δεν μπορεί να εφαρμοστεί, ανεξαρτήτως με το πόσο μικρή είναι η τιμή του d {\displaystyle d} . Χρήση του Κινέζικου Θεωρήματος Υπολοίπου: Γίνεται η υπόθεση ότι κάποιος επιλέγει d ώστε αμφότερα τα d p = d mod ( p − 1 ) {\displaystyle d_{p}=d{\bmod {\ }}(p-1)} και d q = d mod ( q − 1 ) {\displaystyle d_{q}=d{\bmod {\ }}(q-1)} να έχουν μικρές τιμές χωρίς όμως να είναι μικρή και η τιμή του d {\displaystyle d} . Με βάση αυτό, μια γρήγορη αποκρυπτογράφηση του C {\displaystyle C} μπορεί να γίνει ακολούθως: Αρχικά υπολογίζονται τα M p ≡ C d p mod p {\displaystyle M_{p}\equiv C^{d_{p}}{\bmod {\ }}p} και M q ≡ C d q mod q {\displaystyle M_{q}\equiv C^{d_{q}}{\bmod {\ }}q} . Με χρήση του Κινέζικου Θεωρήματος Υπολοίπου υπλογίζεται η μοναδική τιμή του M ∈ Z N {\displaystyle M\in \mathbb {Z_{N}} } που ικανοποιεί τις σχέσεις M ≡ M p mod p {\displaystyle M\equiv M_{p}{\bmod {\ }}p} και M ≡ M q mod q {\displaystyle M\equiv M_{q}{\bmod {\ }}q} . Το αποτέλεσμα του M {\displaystyle M} ικανοποιεί τη σχέση M ≡ C d mod N {\displaystyle M\equiv C^{d}{\bmod {\ }}N} όπως θα έπρεπε. Το αξιοσημείωτο είναι ότι η επίθεση του Βίνερ δεν εφαρμόζεται εδώ, διότι η τιμή του d mod φ ( N ) {\displaystyle d{\bmod {\ }}\varphi (N)} μπορεί να είναι μεγάλη. Δεδομένου ότι: e d = 1 ( mod lcm ⁡ ( p − 1 , q − 1 ) ) {\displaystyle ed=1({\bmod {\ }}\operatorname {lcm} (p-1,q-1))} ,υπάρχει ένας ακέραιος K ώστε: e d = K × lcm ⁡ ( p − 1 , q − 1 ) + 1 {\displaystyle ed=K\times \operatorname {lcm} (p-1,q-1)+1} Θέτοντας G = gcd ( p − 1 , q − 1 ) {\displaystyle G=\gcd(p-1,q-1)} και αντικαθιστώντας τη σχέση αυτή στην παραπάνω εξίσωση προκύπτει: e d = K G ( p − 1 ) ( q − 1 ) + 1 {\displaystyle ed={\frac {K}{G}}(p-1)(q-1)+1} Θέτοντας k = K gcd ( K , G ) {\displaystyle k={\frac {K}{\gcd(K,G)}}} και g = G gcd ( K , G ) {\displaystyle g={\frac {G}{\gcd(K,G)}}} , αντικαθιστώντας παραπάνω: e d = k g ( p − 1 ) ( q − 1 ) + 1 {\displaystyle ed={\frac {k}{g}}(p-1)(q-1)+1} .Διαιρώντας με d p q {\displaystyle dpq} : e p q = k d g ( 1 − δ ) {\displaystyle {\frac {e}{pq}}={\frac {k}{dg}}(1-\delta )} , όπου δ = p + q − 1 − g k p q {\displaystyle \delta ={\frac {p+q-1-{\frac {g}{k}}}{pq}}} .Έτσι, η τιμή του e p q {\displaystyle {\frac {e}{pq}}} είναι λίγο μικρότερη από αυτή του k d g {\displaystyle {\frac {k}{dg}}} , όπου η τελευταία τιμή αποτελείται εξ ολοκλήρου από δημόσια πληροφορία. Ωστόσο, είναι αναγκαία μία μέθοδος ελέγχου της πρόβλεψης. Υποθέτοντας ότι e d > p q {\displaystyle ed>pq} (μία λογική υπόθεση, εκτός αν η τιμή του G {\displaystyle G} είναι μεγάλη) η τελευταία εξίσωση παραπάνω μπορεί να γραφεί ως : e d g = k . ( p − 1 ) ( q − 1 ) + g {\displaystyle edg=k.(p-1)(q-1)+g} Με χρήση απλών αλγεβρικών μεθόδων και ταυτοτήτων, μια πρόβλεψη μπορεί να χρησιμοποιηθεί για την ακρίβεια του αποτελέσματος. Ισχύει N = p q {\displaystyle \ N=pq} με q < p < 2 q {\displaystyle \ q<p<2q} . Ισχύει d < 1 3 N 1 4 {\displaystyle d<{\frac {1}{3}}N^{\frac {1}{4}}} . Δεδομένου ⟨ N , e ⟩ {\displaystyle \left\langle N,e\right\rangle } με e d = 1 ( mod φ ( N ) ) {\displaystyle ed=1({\bmod {\ }}\varphi (N))} , ο επιτιθέμενος μπορεί να ανακτήσει αποτελεσματικά d {\displaystyle d} . Έστω το δημόσιο κλειδί ⟨ N , e ⟩ = ⟨ 90581 , 17993 ⟩ {\displaystyle \left\langle N,e\right\rangle =\left\langle 90581,17993\right\rangle } . Ο επιτιθέμενος πρέπει να αποφασίσει για την τιμή του d {\displaystyle d} . Με χρήση του Θεωρήματος του Βίνερ και των συνεχών κλασμάτων για την προσέγγιση του d {\displaystyle d} , πρώτα γίνεται προσπάθεια εύρεσης του συνεχούς κλάσματος e N {\displaystyle {\frac {e}{N}}} . Σημειώνεται ότι αυτός ο αλγόριθμος βρίσκει το συνεχές κλάσμα στους χαμηλότερους όρους. Είναι γνωστό ότι: e N = 17993 90581 = 1 5 + 1 29 + ⋯ + 1 3 = [ 0 , 5 , 29 , 4 , 1 , 3 , 2 , 4 , 3 ] {\displaystyle {\frac {e}{N}}={\frac {17993}{90581}}={\cfrac {1}{5+{\cfrac {1}{29+\dots +{\cfrac {1}{3}}}}}}=\left[0,5,29,4,1,3,2,4,3\right]} Βάση των αποτελεσμάτων από τη χρήση μεθόδου των συνεχών κλασμάτων e N {\displaystyle {\frac {e}{N}}} , όλες οι συγκλίνουσες τιμές του k d {\displaystyle {\frac {k}{d}}} είναι: k d = 0 , 1 5 , 29 146 , 117 589 , 146 735 , 555 2794 , 1256 6323 , 5579 28086 , 17993 90581 {\displaystyle {\frac {k}{d}}=0,{\frac {1}{5}},{\frac {29}{146}},{\frac {117}{589}},{\frac {146}{735}},{\frac {555}{2794}},{\frac {1256}{6323}},{\frac {5579}{28086}},{\frac {17993}{90581}}} Γίνεται επιβεβαίωση πως η πρώτη συγκλίνουσα τιμή δεν παράγει μια παραγοντοποίηση του N {\displaystyle N} . Ωστόσο, η σύγκλιση του 1 5 {\displaystyle {\frac {1}{5}}} παράγει φ ( N ) = e . d − 1 k = 17993 × 5 − 1 1 = 89964 {\displaystyle \varphi (N)={\frac {e.d-1}{k}}={\frac {17993\times 5-1}{1}}=89964} Τώρα, επιλύοντας την εξίσωση x 2 − ( ( N − φ ( N ) ) + 1 ) x + N = 0 {\displaystyle x^{2}-\left(\left(N-\varphi (N)\right)+1\right)x+N=0} x 2 − ( ( 90581 − 89964 ) + 1 ) x + 90581 = 0 {\displaystyle x^{2}-\left(\left(90581-89964\right)+1\right)x+90581=0} x 2 − ( 618 ) x + 90581 = 0 {\displaystyle x^{2}-\left(618\right)x+90581=0} προκύπτουν οι ρίζες οι οποίες είναι x = 379 ; 239 {\displaystyle x=379;239} . Άρα, η παραγοντοποίηση είναι πλέον γνωστή. N = 90581 = 379 × 239 = p × q {\displaystyle N=90581=379\times 239=p\times q} .Επισημαίνεται ότι για το ακέραιο υπόλοιπο του N = 90581 {\displaystyle N=90581} , το Θεώρημα του Βίνερ θα είναι αποτελεσματικό εάν d < N 1 4 3 ≈ 5.7828 {\displaystyle d<{\frac {N^{\frac {1}{4}}}{3}}\approx 5.7828} . Η απόδειξη βασίζεται σε προσεγγίσεις με χρήση συνεχών κλασμάτων. Δεδομένου ότι e d = 1 mod φ ( N ) {\displaystyle ed=1{\bmod {\varphi }}(N)} , υπάρχει μία τιμή k {\displaystyle {\mathit {k}}} ούτως ώστε e d − k φ ( N ) = 1 {\displaystyle ed-k\varphi (N)=1} . Επομένως | e φ ( N ) − k d | = 1 d φ ( N ) {\displaystyle \left|{\frac {e}{\varphi (N)}}-{\frac {k}{d}}\right\vert ={\frac {1}{d\varphi (N)}}} .Ως εκ τούτου, k d {\displaystyle {\frac {k}{d}}} αποτελεί μια προσέγγιση του e φ ( N ) {\displaystyle {\frac {e}{\varphi (N)}}} . Παρόλο που ο επιτιθέμενος δεν γνωρίζει την τιμή του φ ( N ) {\displaystyle \varphi (N)} , μπορεί να χρησιμοποιήσει το N {\displaystyle N} για να βρει μια προσέγγισή του. Πράγματι, δεδομένου ότι φ ( N ) = N − p − q + 1 {\displaystyle \varphi (N)=N-p-q+1} και p + q − 1 < 3 N {\displaystyle p+q-1<3{\sqrt {N}}} , προκύπτει: | p + q − 1 | < 3 N {\displaystyle \left\vert p+q-1\right\vert <3{\sqrt {N}}} | N + 1 − φ ( N ) − 1 | < 3 N {\displaystyle \left\vert N+1-\varphi (N)-1\right\vert <3{\sqrt {N}}} Χρησιμοποιώντας N {\displaystyle N} στην θέση του φ ( N ) {\displaystyle \varphi (N)} , η σχέση γίνεται: | e N − k d | = | e d − k N N d | {\displaystyle \left\vert {\frac {e}{N}}-{\frac {k}{d}}\right\vert =\left\vert {\frac {ed-kN}{Nd}}\right\vert } = | e d − k φ ( N ) − k N + k φ ( N ) N d | {\displaystyle \qquad =\left\vert {\frac {ed-k\varphi (N)-kN+k\varphi (N)}{Nd}}\right\vert } = | 1 − k ( N − φ ( N ) ) N d | {\displaystyle =\left\vert {\frac {1-k(N-\varphi (N))}{Nd}}\right\vert } ≤ | 3 k N N d | = 3 k N N N d = 3 k d N {\displaystyle \leq \left\vert {\frac {3k{\sqrt {N}}}{Nd}}\right\vert ={\frac {3k{\sqrt {N}}}{{\sqrt {N}}{\sqrt {N}}d}}={\frac {3k}{d{\sqrt {N}}}}} Τώρα ισχύει, k φ ( N ) = e d − 1 < e d {\displaystyle k\varphi (N)=ed-1<ed} , ώστε k φ ( N ) < e d {\displaystyle k\varphi (N)<ed} . Δεδομένου ότι e < φ ( N ) {\displaystyle e<\varphi (N)} , ώστε k φ ( N ) < e d < φ ( N ) d {\displaystyle k\varphi (N)<ed<\varphi (N)d} , η σχέση γίνεται: k φ ( N ) < φ ( N ) d {\displaystyle k\varphi (N)<\varphi (N)d} k < d {\displaystyle k<d} Δεδομένου k < d {\displaystyle k<d} και d < 1 3 N 1 4 {\displaystyle d<{\frac {1}{3}}N^{\frac {1}{4}}} . Ως εκ τούτου η σχέση γίνεται: (1) | e N − k d | ≤ 1 d N 1 4 {\displaystyle \left\vert {\frac {e}{N}}-{\frac {k}{d}}\right\vert \leq {\frac {1}{dN^{\frac {1}{4}}}}} Δεδομένου ότι d < 1 3 N 1 4 , 2 d < 3 d , {\displaystyle d<{\frac {1}{3}}N^{\frac {1}{4}},2d<3d,} τότε 2 d < 3 d < N 1 4 {\displaystyle 2d<3d<N^{\frac {1}{4}}} , προκύπτει: 2 d < N 1 4 , {\displaystyle 2d<N^{\frac {1}{4}},} , ώστε (2) 1 2 d > 1 N 1 4 {\displaystyle {\frac {1}{2d}}>{\frac {1}{N^{\frac {1}{4}}}}} Από τις σχέσεις (1) και (2), συμπεραίνεται ότι: | e N − k d | ≤ 3 k d N < 1 d ⋅ 2 d = 1 2 d 2 {\displaystyle \left\vert {\frac {e}{N}}-{\frac {k}{d}}\right\vert \leq {\frac {3k}{d{\sqrt {N}}}}<{\frac {1}{d\cdot 2d}}={\frac {1}{2d^{2}}}} Επομένως από το θεώρημα του Λεζάντρ, το k/d είναι ένα συγκλίνων κλάσμα του e/n. Coppersmith, Don (1996). Low-Exponent RSA with Related Messages. Springer-Verlag Berlin Heidelberg. Jose, Justin (2010). Study of RSA and Proposed Variant Against Wiener's Attack. International Journal of Computer Applications. Dujella, Andrej (2004). Continued Fractions and RSA with Small Secret Exponent. Cui, Xiao-lei (2005). Attack On the RSA Cryptosystem.