Protokoªy komunikacyjne http://www.mimuw.edu.pl/ sl/teaching/semprot/ 1/18 Podpisy cyfrowe Artur Cichocki Wydziaª Matematyki, Informatyki i Mechaniki Uniwersytet Warszawski email: A.Cichocki@zodiac.mimuw.edu.pl ¹ródªa TEX: http://rainbow.mimuw.edu.pl/ ac181253/ Nie zastrzegam sobie»adnych prawa do dystrybucji tego dokumentu
Wst p Paradygmat podpisów RSA. Schemat standardowy trudno udowodni. Inne schematy zgodne z paradygmatem i udowodnialne (FDH, PSS, PSS-R). 2/18
Schemat podpisu cyfrowego DS = (K, S, V) skªada si z trzech algorytmów: 3/18 generatora kluczy K algorytm randomizowany, który zwraca par (pk, sk) kluczy, publiczny klucz i odpowiadaj cy mu klucz prywatny (piszemy (pk, sk) R K).
Schemat podpisu cyfrowego DS = (K, S, V) skªada si z trzech algorytmów: 3/18 generatora kluczy K algorytm randomizowany, który zwraca par (pk, sk) kluczy, publiczny klucz i odpowiadaj cy mu klucz prywatny (piszemy (pk, sk) R K). algorytm podpisuj cy S (by mo»e randomizowany) bior cy sk i wiadomo± M, a zwracaj cy δ (piszemy δ S sk (M)).
Schemat podpisu cyfrowego DS = (K, S, V) skªada si z trzech algorytmów: 3/18 generatora kluczy K algorytm randomizowany, który zwraca par (pk, sk) kluczy, publiczny klucz i odpowiadaj cy mu klucz prywatny (piszemy (pk, sk) R K). algorytm podpisuj cy S (by mo»e randomizowany) bior cy sk i wiadomo± M, a zwracaj cy δ (piszemy δ S sk (M)). algorytm werykuj cy V deterministyczny, przyjmuj cy pk, M i δ dla M, a zwracaj cy jeden bit (d V pk (M, δ )).
Schemat podpisu cyfrowego DS = (K, S, V) skªada si z trzech algorytmów: 3/18 generatora kluczy K algorytm randomizowany, który zwraca par (pk, sk) kluczy, publiczny klucz i odpowiadaj cy mu klucz prywatny (piszemy (pk, sk) R K). algorytm podpisuj cy S (by mo»e randomizowany) bior cy sk i wiadomo± M, a zwracaj cy δ (piszemy δ S sk (M)). algorytm werykuj cy V deterministyczny, przyjmuj cy pk, M i δ dla M, a zwracaj cy jeden bit (d V pk (M, δ )). Rozprowadzanie kluczy i dostarczanie wiadomo±ci (M, δ).
Rodzaje ataków tylko klucz Przeciwnik zna tylko klucz publiczny i mo»e sprawdzi poprawno± podpisu. 4/18
Rodzaje ataków tylko klucz Przeciwnik zna tylko klucz publiczny i mo»e sprawdzi poprawno± podpisu. znane podpisy Przeciwnik zna klucz publiczny i ma pary (wiadomo±, podpis), podpis legalnie wyprodukowany. 4/18
Rodzaje ataków tylko klucz Przeciwnik zna tylko klucz publiczny i mo»e sprawdzi poprawno± podpisu. znane podpisy Przeciwnik zna klucz publiczny i ma pary (wiadomo±, podpis), podpis legalnie wyprodukowany. wybór wiadomo±ci Przeciwnik mo»e pyta wyroczni o podpis wybranych przez siebie wiadomo±ci. 4/18
Poziomy sukcesów oszustwo egzystencjalne Przeciwnik mo»e podrobi podpis jednej wiadomo±ci, ale nie koniecznie mo»e wybiera wiadomo±. 5/18
Poziomy sukcesów oszustwo egzystencjalne Przeciwnik mo»e podrobi podpis jednej wiadomo±ci, ale nie koniecznie mo»e wybiera wiadomo±. selektywne Dodatkowo mo»e wybra jak ± wiadomo±. 5/18
Poziomy sukcesów oszustwo egzystencjalne Przeciwnik mo»e podrobi podpis jednej wiadomo±ci, ale nie koniecznie mo»e wybiera wiadomo±. selektywne Dodatkowo mo»e wybra jak ± wiadomo±. uniwersalne Dowoln wiadomo±, ale nie pozna klucza prywatnego. 5/18
Poziomy sukcesów oszustwo egzystencjalne Przeciwnik mo»e podrobi podpis jednej wiadomo±ci, ale nie koniecznie mo»e wybiera wiadomo±. selektywne Dodatkowo mo»e wybra jak ± wiadomo±. uniwersalne Dowoln wiadomo±, ale nie pozna klucza prywatnego. totalne Mo»e policzy klucz prywatny. 5/18
Poj cie bezpiecze«stwa Eksperyment Exp uf cma DS,F Niech (pk, sk) R K Niech (M, σ) F S sk( ) (pk) Je»eli V pk (M, δ) = 1 i wyrocznia nie byªa pytana o M wtedy zwró 1, w przeciwnym przypadku 0. 6/18
Poj cie bezpiecze«stwa Eksperyment Exp uf cma DS,F Niech (pk, sk) R K Niech (M, σ) F S sk( ) (pk) Je»eli V pk (M, δ) = 1 i wyrocznia nie byªa pytana o M wtedy zwró 1, w przeciwnym przypadku 0. 6/18 praw- Niech DS = (K, S, V), a F oznacza faªszerza. Adv uf cma DS,F dopodobie«stwo,»e Exp uf cma DS,F zwróci 1, wtedy
Poj cie bezpiecze«stwa Eksperyment Exp uf cma DS,F Niech (pk, sk) R K Niech (M, σ) F S sk( ) (pk) Je»eli V pk (M, δ) = 1 i wyrocznia nie byªa pytana o M wtedy zwró 1, w przeciwnym przypadku 0. 6/18 praw- Niech DS = (K, S, V), a F oznacza faªszerza. Adv uf cma DS,F dopodobie«stwo,»e Exp uf cma DS,F zwróci 1, wtedy Adv uf cma DS (t, q, µ) = max F {Advuf cma DS,F }.
Generowanie klucza Algorytm K Wybierz losowo dwie ró»ne liczy pierwsze p i q (po k/2 bitów) N pg; e R Z ϕ(n) ; d e 1 mod ϕ(n) pk (N, e); sk (N, d) Zwró pk, sk. 7/18
Generowanie klucza Algorytm K Wybierz losowo dwie ró»ne liczy pierwsze p i q (po k/2 bitów) N pg; e R Z ϕ(n) ; d e 1 mod ϕ(n) pk (N, e); sk (N, d) Zwró pk, sk. 7/18 Permutacje x Z N RSA N,e (x) = x e mod N = y
Generowanie klucza Algorytm K Wybierz losowo dwie ró»ne liczy pierwsze p i q (po k/2 bitów) N pg; e R Z ϕ(n) ; d e 1 mod ϕ(n) pk (N, e); sk (N, d) Zwró pk, sk. 7/18 Permutacje x Z N RSA N,e (x) = x e mod N = y RSA N,d (y) = y d mod N = RSA 1 N,e(y) = x
Generowanie klucza Algorytm K Wybierz losowo dwie ró»ne liczy pierwsze p i q (po k/2 bitów) N pg; e R Z ϕ(n) ; d e 1 mod ϕ(n) pk (N, e); sk (N, d) Zwró pk, sk. 7/18 Permutacje x Z N RSA N,e (x) = x e mod N = y RSA N,d (y) = y d mod N = RSA 1 N,e(y) = x Zakªadamy,»e RSA jest permutacj jednokierunkow.
Podpisy z zapadk Algorytm Algorytm S N,d (M) Algorytm V N,e (M) x M d mod N M x e mod N Zwró x Je»eli M = M zwró 1, wpp 0. 8/18
Podpisy z zapadk Algorytm Algorytm S N,d (M) Algorytm V N,e (M) x M d mod N M x e mod N Zwró x Je»eli M = M zwró 1, wpp 0. Podpis, a potem wiadomo± Faªszerz F S N,e( ) (N, e) x R Z N ; M xe mod N Zwró (M, x) 8/18
Podpisy z zapadk Algorytm Algorytm S N,d (M) Algorytm V N,e (M) x M d mod N M x e mod N Zwró x Je»eli M = M zwró 1, wpp 0. Podpis, a potem wiadomo± Faªszerz F S N,e( ) (N, e) x R Z N ; M xe mod N Zwró (M, x) Multiplikatywno± RSA x e (x 1 x 2 ) e x e 1x e 2 M 1 M 2 M (mod N) 8/18
Faªszerz F S N,e( ) (N, e) M R 1 ZN {1, M}; M 2 MM1 1 mod N x 1 S N,e (M 1 ); x 2 S N,e (M 2 ) x x 1 x 2 mod N Zwró (M, x) 9/18
Mieszaj i odwró Algorytm Algorytm S N,d (M) Algorytm V N,e (M) y Hash(M) y Hash(M) x y d mod N y x e mod N Zwró x Je»eli y = y zwró 1, wpp 0. 10/18
Mieszaj i odwró Algorytm Algorytm S N,d (M) Algorytm V N,e (M) y Hash(M) y Hash(M) x y d mod N y x e mod N Zwró x Je»eli y = y zwró 1, wpp 0. Odporno± na poprzednie ataki. x e mod N = Hash(M) Hash(M 1 )Hash(M 2 ) Hash(M) (mod N) 10/18
Mieszaj i odwró Algorytm Algorytm S N,d (M) Algorytm V N,e (M) y Hash(M) y Hash(M) x y d mod N y x e mod N Zwró x Je»eli y = y zwró 1, wpp 0. Odporno± na poprzednie ataki. x e mod N = Hash(M) Hash(M 1 )Hash(M 2 ) Hash(M) (mod N) 10/18 Kolizje Hash(M 1 ) = Hash(M 2 )
Mieszaj i odwró Algorytm Algorytm S N,d (M) Algorytm V N,e (M) y Hash(M) y Hash(M) x y d mod N y x e mod N Zwró x Je»eli y = y zwró 1, wpp 0. Odporno± na poprzednie ataki. x e mod N = Hash(M) Hash(M 1 )Hash(M 2 ) Hash(M) (mod N) 10/18 Kolizje Hash(M 1 ) = Hash(M 2 ) Faªszerz F S N,e( ) (N, e) x S N,e (M 1 ) Zwró (M 2, x)
PKCS #1 Implementacja funkcji mieszaj cej. N ϕ(n) N = 1 (p 1)(q 1) pg = p + g 1 pg < 21+k/2 2 k 1 = 4 2 k/2 11/18
PKCS #1 Implementacja funkcji mieszaj cej. N ϕ(n) N = 1 (p 1)(q 1) pg = p + g 1 pg < 21+k/2 2 k 1 = 4 2 k/2 11/18 PCKS-Hash(M) = 0x 00 01 FF FF FF FF 00 h(m)
PKCS #1 Implementacja funkcji mieszaj cej. N ϕ(n) N = 1 (p 1)(q 1) pg = p + g 1 pg < 21+k/2 2 k 1 = 4 2 k/2 11/18 PCKS-Hash(M) = 0x 00 01 FF FF FF FF 00 h(m) Algorytm S N,d (M) Algorytm V N,e (M) y P CKS-Hash(M) y P CKS-Hash(M) x y d mod N y x e mod N Zwró x Je»eli y = y zwró 1, wpp 0.
PKCS #1 Implementacja funkcji mieszaj cej. N ϕ(n) N = 1 (p 1)(q 1) pg = p + g 1 pg < 21+k/2 2 k 1 = 4 2 k/2 11/18 PCKS-Hash(M) = 0x 00 01 FF FF FF FF 00 h(m) Algorytm S N,d (M) Algorytm V N,e (M) y P CKS-Hash(M) y P CKS-Hash(M) x y d mod N y x e mod N Zwró x Je»eli y = y zwró 1, wpp 0. Dla SHA-1 S = {PCKS-Hash(M) : M {0, 1} }, S 2 160 S Z N 2160 2 1023 = 1 2 863
FDH Maj c idealn funkcje mieszaj c. 12/18
FDH Maj c idealn funkcje mieszaj c. Funkcja mieszaj ca jako wyrocznia. 12/18
FDH Maj c idealn funkcje mieszaj c. Funkcja mieszaj ca jako wyrocznia. Algorytm (poprzedni 10). Algorytm SN,d(M) H Algorytm VN,e(M) H y H(M) y H(M) x y d mod N y x e mod N Zwró x Je»eli y = y zwró 1, wpp 0. 12/18
Nowy model bezpiecze«stwa (poprzedni 6). Eksperyment Exp ro (DS, F ) Niech ((N, e), (N, d)) R K Wybra losowo H : {0, 1} ZN Niech (M, x) F H,SH N,d ( ) (N, e) Je»eli V H (N,e)(M, δ) = 1 i wyrocznia nie byªa pytana o M wtedy zwró 1, w przeciwnym przypadku 0. 13/18
Nowy model bezpiecze«stwa (poprzedni 6). Eksperyment Exp ro (DS, F ) Niech ((N, e), (N, d)) R K Wybra losowo H : {0, 1} ZN Niech (M, x) F H,SH N,d ( ) (N, e) Je»eli V H (N,e)(M, δ) = 1 i wyrocznia nie byªa pytana o M wtedy zwró 1, w przeciwnym przypadku 0. 13/18 Szanse faªszerstwa. Adv uf cma DS (t, q sig, q hash, µ) = max F {Advuf cma DS,F }
Nowy model bezpiecze«stwa (poprzedni 6). Eksperyment Exp ro (DS, F ) Niech ((N, e), (N, d)) R K Wybra losowo H : {0, 1} ZN Niech (M, x) F H,SH N,d ( ) (N, e) Je»eli V H (N,e)(M, δ) = 1 i wyrocznia nie byªa pytana o M wtedy zwró 1, w przeciwnym przypadku 0. 13/18 Szanse faªszerstwa. Adv uf cma DS (t, q sig, q hash, µ) = max F {Advuf cma DS,F } Niech DS b dzie schematem FDH-RSA z parametrem k. Wtedy dla q hash 1 + q sig i t = t + q hash O(k 3 ) zachodzi Adv uf cma DS (t, q sig, q hash, µ) q hash AdvRSA(t owf ).
PSS0 Algorytm Algorytm S H N,d(M) Algorytm V H N,e(M) r R {0, 1} s Sparsuj δ jako (r, x) gdzie r = s y H(r M) y H(r M) x y d mod N y x e mod N Zwró (r, x) Je»eli y = y zwró 1, wpp 0. 14/18
PSS0 Algorytm Algorytm S H N,d(M) Algorytm V H N,e(M) r R {0, 1} s Sparsuj δ jako (r, x) gdzie r = s y H(r M) y H(r M) x y d mod N y x e mod N Zwró (r, x) Je»eli y = y zwró 1, wpp 0. Niech DS b dzie schematem PSS0 z parametrem k i s. Wtedy dla q hash 1 + q sig i t = t + q hash O(k 3 ) zachodzi 14/18 Adv uf cma DS (t, q sig, q hash, µ) AdvRSA(t owf ) + (q hash 1) q sig. 2 s
PSS Algorytm Algorytm S g,h N,d (M) g,h Algorytm VN,e(M) y x e mod N Sparsuj y jako b w r γ gdzie r R {0, 1} k 0 ; w H(M r) r g 1 (w) r y 0 w r g 2 (w) b = 1, w = k 1, r = k 0 x y d mod N r r g 1 (w) Zwró x Je»eli h(m r) = w i g 2 (w) = γ i b = 0 wtedy zwró 1, wpp 0. Jeszcze lepiej Adv uf cma DS (t, q sig, q hash, µ) AdvRSA(t owf )+3(q hash 1) 2 (2 k 0 +2 k 1 ). 15/18
PSS Algorytm Algorytm S g,h N,d (M) g,h Algorytm VN,e(M) y x e mod N Sparsuj y jako b w r γ gdzie r R {0, 1} k 0 ; w H(M r) r g 1 (w) r y 0 w r g 2 (w) b = 1, w = k 1, r = k 0 x y d mod N r r g 1 (w) Zwró x Je»eli h(m r) = w i g 2 (w) = γ i b = 0 wtedy zwró 1, wpp 0. Jeszcze lepiej Adv uf cma DS (t, q sig, q hash, µ) AdvRSA(t owf )+3(q hash 1) 2 (2 k 0 +2 k 1 ). PSS-R = odzyskiwanie wiadomo±ci z podpisu. 15/18
El Gamal klucz publiczny (y, p, g), gdzie y = g x mod p, p pierwsza a g generator w Z p. klucz prywatny x takie,»e y = g x mod p. podpis podpisem wiadomo±ci m jest para (r, s) taka,»e r 0, s p 1 i g m = y r r s mod p. werykacja sprawdzenie czy g m = y r r s mod p. 16/18
El Gamal klucz publiczny (y, p, g), gdzie y = g x mod p, p pierwsza a g generator w Z p. klucz prywatny x takie,»e y = g x mod p. podpis podpisem wiadomo±ci m jest para (r, s) taka,»e r 0, s p 1 i g m = y r r s mod p. werykacja sprawdzenie czy g m = y r r s mod p. szczegóªy podpisywania wybra k losowo, r = g k mod p, wtedy g m = y r r s = g xr+ks mod p, wi c s = (m xr)k 1 mod p 1. 16/18
El Gamal klucz publiczny (y, p, g), gdzie y = g x mod p, p pierwsza a g generator w Z p. klucz prywatny x takie,»e y = g x mod p. podpis podpisem wiadomo±ci m jest para (r, s) taka,»e r 0, s p 1 i g m = y r r s mod p. werykacja sprawdzenie czy g m = y r r s mod p. szczegóªy podpisywania wybra k losowo, r = g k mod p, wtedy g m = y r r s = g xr+ks mod p, wi c s = (m xr)k 1 mod p 1. klapa Schemat pozwala na oszustwo egzystencjalne przy ataku znane podpisy. 16/18
Rabin klucz publiczny n = pq. klucz prywatny p i q. podpisywanie s = m mod n. werykacja s 2 = m mod n. 17/18
Rabin klucz publiczny n = pq. klucz prywatny p i q. podpisywanie s = m mod n. werykacja s 2 = m mod n. 17/18 Uups Schemat pozwala na oszustwo egzystencjalne przy ataku tylko klucz.
Rabin klucz publiczny n = pq. klucz prywatny p i q. podpisywanie s = m mod n. werykacja s 2 = m mod n. 17/18 Uups Schemat pozwala na oszustwo egzystencjalne przy ataku tylko klucz. Uuuuups Schemat pozwala na oszustwo totalne przy ataku wybór wiadomo±ci.
18/18 Dzi kuje za uwag