1 Schemat podpisu Cramer`a
Transkrypt
1 Schemat podpisu Cramer`a
1 Schemat podpisu Cramer'a-Shoup'a Denicja 1.1 Liczb¦ pierwsz¡ p nazywamy liczb¡ Sophie Germain, je±li liczba 2p + 1 te» jest liczb¡ pierwsz¡. Oznaczenia 1.1 Niech p̃ i q̃ - liczby pierwsze Sophie Germain. I = {n ∈ N | n = pq, p 6= q , |p| = |q|} Ik = {n ∈ I | n = pq, |p| = |q| = k} ISG = {n ∈ I | n = pq, p = 2p̃ + 1, q = 2q̃ + 1} ISG,k = Ik ∩ ISG Denicja 1.2 Silne zaªo»enie o bezpiecze«stwie RSA Dla ka»dego dodatniego wielomianu Q i ka»dego probabilistycznego wielomianowego algorytmu A, który na wej±ciu przyjmuje n ∈ I i y ∈ Z∗n oraz zwraca wykªadnik e > 1 i x ∈ Z∗n , istnieje liczba naturalna k0 taka, »e: u u P r(xe = y : n ← Ik , y ← Z∗n , (e, x) ← A(n, y)) ≤ 1/Q(k) Denicja 1.3 Schematem podpisu cyfrowego nazywamy nast¦puj¡c¡ trójk¦: 1. Algorytm generowania klucza K , który dla wej±cia 1k zwraca par¦ (pk, sk) skªadaj¡c¡ si¦ z klucza publicznego i prywatnego. 2. Algorytm podpisywania S(sk, m) który za pomoc¡ klucza prywatnego Alicji sk generuje podpis σ dla wiadomo±ci m. 3. Algorytm werykacji V (pk, m, σ), który za pomoc¡ klucza publicznego Alicji pk sprawdza, czy σ mo»e by¢ podpisem dla wiadomo±ci m. Oczywi±cie wszystkie te algorytmy musz¡ dziaªa¢ w czasie wielomianowym. W tym schemacie podpisu b¦dziemy u»ywali probablistycznego wielomianowego algorytmu GenPrime(1k ) o nast¦puj¡cych wªasno±ciach: 1. Maj¡c na wej±ciu 1k , GenPrime daje na wyj±ciu k-bitow¡ liczb¦ pierwsz¡. 2. Je±li GenPrime(1k ) zostanie wykonany R(k) razy (gdzie R(k) jest pewnym wielomianem dodatnim), to prawdopodobie«stwo »e którekolwiek dwie z wygenerowanych liczb pierwszych b¦d¡ równe b¦dzie zaniedbywalnie maªe. ci±lej mówi¡c, dla ka»dego dodatniego wielomianu P ∃ k0 ∈ N takie, »e ∀k ≥ k0 zachodzi: P r(ej1 = ej2 dla pewnych j1 6= j2 : ej ← GenPrime(1k ), 1 ≤ j ≤ R(k)) ≤ 1 1 P (k) Takie algorytmy istniej¡. Na przykªad, algorytm wybieraj¡cy losowo z równym prawdopodobie«stwem liczby pierwsze k-bitowe speªnia powy»sze warunki. Prawdopodobie«stwo, »e dla j1 6= j2 zachodzi ej1 = ej2 wynosi okoªo k/2k Niech N > 1 b¦dzie pewn¡ staª¡. Aby ustali¢ schemat podpisu Cramer'aShoup'a, wybieramy dwa parametry bezpiecze«stwa l i k speªniaj¡ce k1/N < l + 1 < k − 1 oraz odporn¡ na kolizje funkcj¦ haszuj¡c¡ h : 0, 1∗ 7→ 0, 1l . Maj¡c k , l i h Alicja generuje swoje klucze. Generowanie kluczy 1. Alicja losowo wybiera moduª n ← ISG,k , na przykªad poprzez wybranie liczb pierwszych Sophie Germain p̃ i q̃ dªugo±ci k − 1 i ustala n = pq , gdzie p = 2p̃ + 1 i q = 2q̃ + 1. u 2. Wybiera losowo g ← QRn i x ← QRn oraz generuje (l + 1)-bitow¡ liczb¦ pierwsz¡ ẽ = GenPrime(1l+1 ). u u 3. (n, g, x, ẽ) jest kluczem publicznym, (p, q) kluczem prywatnym. Uwaga 1.1 Wykorzystanie liczb pierwszych Sophie Germain gwarantuje nam, q−1 = p̃q̃ jest iloczynem dwóch ró»nych liczb »e rz¡d QRn który wynosi p−1 2 2 pierwszych. Skoro jest to grupa cykliczna, jest to jedyna podrupa cykliczna rz¦du p̃q̃ grupy Z∗n . Podpisywanie Za pomoc¡ tego schematu mo»na podpisa¢ dowoln¡ wiadomo±¢ m ∈ {0, 1}∗ . Aby podpisa¢ m, Alicja generuje e = GenPrime(1l+1 ) oraz wybiera losowo u ỹ ← QRn , a nast¦pnie oblicza: x̃ = ỹ ẽ · g −h(m) y = (x · g h(x̃) )e −1 Podpisem σ wiadomo±ci m jest trójka (e, y, ỹ). Uwaga 1.2 1. Liczenie e−1 oznacza obliczanie e-tego pierwiastka w Z∗n , a do tego Alicja potrzebuje swojego klucza prywatnego. Skoro |e| = l + 1 < k − 1 = |p̃| = |q̃|, liczba pierwsza e nie dzieli ϕ(n) = 4p̃q̃ . Zatem, Alicja mo»e ∗ u»ywaj¡c p̃, q̃ oraz rozszerzonego Algorytmu ªatwo obliczy¢ e−1 w Zϕ(n) Euklidesa. 2. Podpisywanie jest algorytmem probabilistycznym, gdy» e i reszta kwadratowa ỹ s¡ wybrane losowo. Po tych operacjach podpisywanie jest deterministyczne. Mo»emy opisa¢ podpis jako funkcj¦ σ(h, n, g, x, ẽ, e, ỹ, m) do obliczenia której Alicja potrzebuje zna¢ rozkªad liczby n. Werykacja Bob sprawdza podpis σ = (e, y, ỹ) wiadomo±ci m w nast¦puj¡cy sposób: 2 1. Sprawdza, czy e jest (l + 1)-bitow¡ liczb¡ nieparzyst¡ niepodzieln¡ przez ẽ. 2. Oblicza x̃ = ỹ ẽ · g −h(m) i sprawdza czy x = y e · g −h(x̃) Je±li w obu przypadkach otrzyma odpowied¹ twierdz¡c¡, przyjmuje podpisan¡ wiadomo±¢. Uwaga 1.3 1. Bob nie sprawdza pierwszo±ci e. Test pierwszo±ci by wyra¹nie spowolniª werykacj¦, a jak pokazuje dowód bezpiecze«stwa, nie jest on konieczny. 2. Dla e = ẽ podpis nie przeszedªby werykacji. Je±li tak si¦ zdarzy (co jest zaniedbywalnie maªo prawdopodobne), wystarczy, »e Alicja ponownie zapu±ci algorytm GenPrime by uzyska¢ now¡ liczb¦ e. Twierdzenie 1.1 Je±li zachodzi silne zaªo»enie RSA, istnieje wiele liczb pier- wszych Sophie Germain oraz rodzina H jest odporna na kolizje, to schemat podpisu Cramer'a-Shoup'a jest odporny na ataki z wybranym tekstem. Lemat 1.1 Istnieje deterministyczny algorytm wielomianowy który dla ka»dego k i dla danych n ∈ ISG,k , e - nieparzystej liczby naturalnej speªniaj¡cej |e| < k−1, liczby f i elementów u, v ∈ Z∗n takich »e ue = v f potra znale¹¢ pierwiastek stopnia r = e/N W D(e, f ) elementu v . Dowód. Niech d = N W D(e, f ). e, r i d s¡ wzgl¦dnie pierwsze z ϕ(n) = 4p̃q̃. Zatem elementy r−1 i d−1 w Z∗ϕ(n) mo»na wyznaczy¢ z algorytmu Euklidesa. Niech s = f /d. Skoro N W D(r, s) = 1, ten sam algorytm pozwoli nam znale¹¢ m i m0 takie, »e sm + rm0 = 1. Mamy −1 ur = (ue )d −1 = (v f )d 0 = vs 0 0 (um · v m )r = (v s )m · (v m )r = v sm+rm = v Zatem vr −1 0 = um · v m jest szukanym pierwiastkiem stopnia r elementu v . Dowód. Dowód twierdzenia b¦dzie przebiegaª przez zaprzeczenie. Niech Forger (h, n, g, x, ẽ) b¦dzie probabilistyczym wielomianowym algorytmem który adaptacyjnie »¡da podpisów dla t wiadomo±ci, gdzie t = R(k) dla pewnego wielomianu R, oraz zwraca podrobiony podpis z niezaniedbywalnie maªy prawdopodobie«stwem (tj. > 1/Q(k) dla pewnego wielomianu dodatniego Q) dla niesko«czenie wielu parametrów bezpiecze«stwa (k, l). Okre±limy algorytm atakuj¡cy A, który dla wej±cia n ∈ ISG i z ∈ Z∗n oblicza pierwiastek stopnia r modulo n z z nie znaj¡c rozkªadu n (tu zaprzeczamy silnemu zaªo»eniu RSA). A dziaªa nast¦puj¡co: 3 1. Wybiera losowo drugi parametr bezpiecze«stwa l i funkcj¦ haszuj¡c¡ h. 2. W pewien sprytny sposób generuje brakuj¡ce elementy klucza publicznego g , x i ẽ. 3. Komunikuje si¦ z Forger aby otrzyma¢ podpis (m, σ) z tym kluczem publicznym. 4. U»ywaj¡c podrobionego podpisu (m, σ) oblicza pierwiastek stopnia r modulo n z z dla pewnego r > 1. Oznaczymy przez mi , 1 ≤ i ≤ t wiadomo±ci, dla których Forger rz¡da podpisu, i przez σi = (ei , yi , ỹi ) odpowiednie podpisy. Rozwa»ymy trzy przypadki: 1. Dla pewnego 1 ≤ i ≤ t, ei dzieli e oraz x̃ = x̃i . 2. Dla pewnego 1 ≤ i ≤ t, ei dzieli e oraz x̃ 6= x̃i . 3. Dla ka»dego 1 ≤ i ≤ t, ei nie dzieli e. Zauwa»my, »e o ile ei s¡ liczbami pierwszymi, gdy» pochodz¡ z prawomocnych podpisów, to e mo»e by¢ liczb¡ zªo»on¡. Jak pami¦tamy, werykacja nie obejmuje testu pierwszo±ci. Mo»emy okre±li¢ Forger1 jako algorytm, który zwraca podpis podrobiony przez Forger w przypadku pierwszym, a w pozostaªych podpis, którego werykacja nie ko«czy si¦ sukcesem. Analogicznie mo»emy okre±li¢ Forger2 i Forger3 . Wówczas, je±li Forger dziaªa z niezaniedbywalnym prawdopodobie«stwem, to jedna z tych trzech wersji równie». Zast¦puj¡c Forger przez najlepiej dziaªaj¡cy algorytm z tych trzech, mo»emy odt¡d zakªada¢, »e Forger zwraca werykowalne podpisy tylko w jednym z trzech powy»szych przypadków. Niniejszy referat obejmuje jedynie przypadek pierwszy. Aby wygenerowa¢ klucz publiczny w przypadku 2, A wykonuje nast¦puj¡ce kroki: 1. Dla 1 ≤ i ≤ t ei := GenPrime(1l+1 ) g := z 2 Q 1≤i≤t ei 2. Losowo wybiera w ← Z∗n i wylicza u x := w2 Q 1≤i≤t ei 3. ẽ := GenPrime(1l+1 ) 4 Aby wygenerowa¢ podpis dla ei , A wybiera losowo ỹ1 ← QRn i oblicza −1 x̃i := ỹiẽ · g −h(mi ) oraz yi := (x · g h(x̃i ) )ei A mo»e to ªatwo obliczy¢ bez znajomo±ci rozkªadu n, gdy» zna pierwiastki stopnia ei z x i g . Forger zwraca wi¦c podpis σ = (e, y, ỹ) dla pewnej wiadomo±ci m ∈/ {m1 , ..., mt }. Je±li ten podpis nie przechodzi werykacji, A zwraca losowy wykªadnik i losowy element z Z∗n i zatrzymuje si¦. W przeciwnym przypadku, mamy dobrze podrobiony podpis typu 1. Zatem, dla pewnego 1 ≤ j ≤ t, mamy: u ej |e, x̃ = x̃j oraz: ỹ ẽ = x̃ · g h(m) , ỹjẽ = x̃ · g h(mj ) A musi teraz obliczy¢ pierwiastek stopnia r z z . Z odporno±ci na kolizje mamy h(m) 6= h(mj ). Bierzemy a = |h(m) − h(mj )| i dzielimy powy»sze równania stronami, otrzymuj¡c z̃ ẽ = g a = z 2a Q 1≤ileqt ei a < 2l , zatem nie jest podzielne przez ẽ, ponadto ẽ 6= ei z du»ym praw−1 dopodobie«stwem. Z lematu A mo»e obliczy¢ z ẽ , zwraca wi¦c ẽ i perwiastek tego» stopnia z z . Musimy teraz obliczy¢ prawdopodobie«stwo tego, »e A odniesie sukces. Zakªadamy, »e Forger odnosi sukces, czyli istnieje dodatni wielomian P oraz niesko«czony pozbiór K ⊆ N taki, »e ∀ k ∈ K ∃ l(k) takie, »e dla pary (k, l(k)) Forger zwraca werykowalny podpis z prawdopodobie«stwem ≥ 1/P (K). Niech Mi (h, n, g, x, ẽ, (mj , σj )1≤j≤t ) b¦dzie zmienn¡ losow¡ opisuj¡c¡ wybór wiadomo±ci mi , którego dokonuje Forger dla 1 ≤ i ≤ t. Mamy wi¦c: P r(sukces Forgera)(k, l) = = P r(Verify(h, n, g, x, ẽ, m, σ) =accept: u h ← H, n ← ISG,k , gu←QRn , xu←QRn , ẽ ← GenP rime(1l+1 ), ỹi u←QRn , mi ← Mi (h, n, g, x, ẽ, (mj , σj )1≤j≤t ), σi = sign(h, n, g, x, ẽ, ei , ỹi , mi ), (m, σ) ← F orger(h, n, g, x, ẽ, (σj )1≤j≤t )) ≥ 1/P (K) A odnosi sukces przy pierwiastkowaniu z , je±li Forger zwraca dobry podpis, h(m) 6= h(mi ) oraz ẽ 6= ei dla 1 ≤ i ≤ t. Pozostaªe kroki A s¡ deterministyczne. Zatem: P r(sukces A) = P r(v r = z : n ← ISG,k , z ← Z∗n , (v, r) ← A(n, z)) ≥ ≥ P r(V erif y(h, n, g, x, ẽ, m, σ) = accept, h(m) 6= h(mi ), ẽ 6= ei , 1 ≤ i ≤ t : u u u h ← H, n ← ISG,k , z ← Z∗n , w ← Z∗n , ẽ ← GenP rime(1l+1 ), ỹi u←QRn , mi ← Mi (h, n, g, x, ẽ, (mj , σj )1≤j≤t ), σi = sign(h, n, g, x, ẽ, ei , ỹi , mi ), (m, σ) ← F orger(h, n, g, x, ẽ, (σj )1≤j≤t )) =: p1 Niech Q b¦dzie dodatnim wielomianem. GenPrime wywoªaby wielomianow¡ u u 5 liczb¦ razy zwraca dwa razy t¦ sam¦ liczb¦ pierwsz¡ z zaniedbywalnie maªym prawdopodobie«stwem, a h jest wybrana z rodziny funkcji hashuj¡cych odpornej na kolizje. Mamy wi¦c, dla k ≥ k0 : P r(ẽ = ei ) ≥ 1 − 1/Q(k) oraz P r(h(m) = h(mi )) ≥ 1 − 1/Q(k) p1 ≥ P r(V erif y(h, n, g, x, ẽ, m, σ) = accept : u u u h ← H, n ← ISG,k , z ← Z∗n , w ← Z∗n , ẽ ← GenP rime(1l+1 ), ỹi u←QRn , mi ← Mi (h, n, g, x, ẽ, (mj , σj )1≤j≤t ), σi = sign(h, n, g, x, ẽ, ei , ỹi , mi ), (m, σ) ← F orger(h, n, g, x, ẽ, (σj )1≤j≤t )) · (1 − 1/Q(k)) · (1 − 1/Q(k)) =: p2 Pierwszy czynnik w p2 to prawdopodobie«stwo, »e Forger odniesie sukces przy podrabianiu podpisu, co oznaczali±my jako P r(sukces Forgera)(k, l). To oz- nacza: p2 = P r(sukces Forgera)(k, l) · (1 − 1/Q(k))2 . Prawdopodobie«stwo tego, »e A w pierwszym kroku wybierze l = l(k) jest ≥ 1/k , wi¦c mamy: u u 1 1 · k1 · (1 − Q(k) )2 P r(v r = z : n ← ISG,k , z ← Z∗n , (v, r) ← A(n, z)) ≥ P (k) dla niesko«czenie wielu k ∈ K. To stoi w sprzeczno±ci z silnym zaªo»eniem o bezpiecze«stwie RSA. 6