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