Segurança do bit menos significativo no RSA e em curvas elípticas
Defesa de dissertação de mestrado
Dionathan Nakamura Routo Terada (orientador)
Instituto de Matemática e Estatística da USP - DCC
16 de dezembro de 2011
*Durante o desenvolvimento desse projeto o autor recebeu auxílio financeiro da CAPES
Sumário
1 Introdução
2 Trabalhos para o RSA
3 Trabalhos para o DHCE
4 Resultados e trabalhos futuros
Próximo assunto
1 Introdução Introdução
2 Trabalhos para o RSA
Goldwasser, Micali e Tong, 1982 Ben-Or, Chor e Shamir, 1983
Alexi, Chor, Goldreich e Schnorr, 1988 Fischlin e Schnorr, 1997
3 Trabalhos para o DHCE Boneh e Shparlinsk, 2001 Jetchev e Venkatesan, 2008
4 Resultados e trabalhos futuros
Resultados
Introdução
Resumo
Existem algoritmos que conseguem inverter sistemas criptográficos fazendo uso de oráculos que predizem o LSB (Least Significant Bit);
A teoria em torno da segurança do LSB está relacionada com a
construção de geradores de números aleatórios (hardcore bit
theory ).
Objetivos
Fazer a implementação e verificar a viabilidade dos métodos;
procurar possíveis melhorias nos algoritmos.
Introdução
Oráculo para o LSB
Esse trabalho supõem a existência de um oráculo que retorna o LSB de x dado RSA(x ):
O(x e mod N) =
0 se x é par,
1 se x é ímpar.
Oráculo para o LSB com vantagem ε
Suponha a existência de um oráculo que retorna o LSB de x dado RSA(x ) com taxa de acerto de 1 2 + ε:
O N (x e mod N) =
0 se x é par,
1 se x é ímpar.
Introdução
Vantagem do oráculo no DHCE
Dizemos que um oráculo tem vantagem ε se ele acerta o LSB com uma probabilidade igual ou superior a 1 2 + ε.
Por exemplo, para o DHCE em uma curva E, gerador G de ordem q e a, b distribuídos uniformemente em [1, q − 1], o algoritmo A é um oráculo com vantagem ε em predizer o LSB da coordenada x da função Diffie-Hellman e denotamos:
Adv X E,G (A) =
Pr
a,b [A(E, G, aG, bG) = LSB(x )] − 1 2 ]
> ε
Trabalhos relacionados ao RSA
1982 Goldwasser, Micali e Tong [1] foram os primeiros a invertigar a segurança do LSB, provaram que era 1 2 − 1 n
-seguro;
1983 Ben-Or, Chor e Shamir [2] provaram ser
1
4 + poli(n) 1
-seguro, mas tinha problemas por dobrar o erro do oráculo;
1984 Vazirani e Vazirani [3] resolveram o problema da dobragem de erro e provaram ser 0,232-seguro;
1985 Goldreich [4] refinou o trabalho anterior e provou ser 0,225-seguro;
1988 (ACGS) enfim, Alexi, Chor, Goldreich e Schnorr [5] provaram ser ε-seguro;
1997 (FS) adicionalmente Fischlin e Schnorr [6] apresentaram uma
nova abordagem para o ACGS para valores práticos do RSA.
Introdução
Trabalhos relacionados ao DHCE
2001 (BS) Boneh e Shparlinsk [7] mostraram que o LSB da abscissa do ponto combinado é imprevisível. Utilizou famílias isomórficas de curvas elípticas;
2008 (JV) Jetchev e Venkatesan [8] expandiram o resultado anterior
para isogenias entre curvas.
Significado geral
Fatoração em primos = ⇒ Rabin
Rabin = ⇒ Fatoração em primos Rabin ⇐⇒ Fatoração em primos LSB do Rabin ⇐⇒ Rabin
LSB do Rabin ⇐⇒ Fatoração em primos
Introdução
Significado geral
∃ oráculo para o LSB −→ invertemos o Rabin invertemos o Rabin ⇐⇒ o PFP não é difícil mas nós assumimos o PFP difícil ⇐⇒ @ oráculo para o LSB
@ oráculo para o LSB ⇐⇒ LSB é imprevisível
LSB é imprevisível ⇐⇒ pseudoaleatório é imprevisível
Próximo assunto
1 Introdução Introdução
2 Trabalhos para o RSA
Goldwasser, Micali e Tong, 1982 Ben-Or, Chor e Shamir, 1983
Alexi, Chor, Goldreich e Schnorr, 1988 Fischlin e Schnorr, 1997
3 Trabalhos para o DHCE Boneh e Shparlinsk, 2001 Jetchev e Venkatesan, 2008
4 Resultados e trabalhos futuros
Resultados
Exemplo
Seja N = 37 . 31 = 1147, n = 11, m 7 = 81: (m = 107) i r [i] ANS[i] t (i)
1 81 1 00001101011
2 313 0 1000001000
3 334 0 100000100
4 1060 0 10000010
5 761 1 1000001
6 236 1 011101
7 34 1 01111
8 627 0 0110
9 211 1 011
10 79 0 00
11 601 0 0
Goldwasser, Micali e Tong, 1982
Exemplo detalhado
i m[i] bits(m) ANS[i] t (i)
1 107 1101011 1 00001101011
2 520 1000001000 0 1000001000
3 260 100000100 0 100000100
4 130 10000010 0 10000010
5 65 1000001 1 1000001
6 541 1000011101 1 011101
7 303 100101111 1 01111
8 422 110100110 0 0110
9 211 11010011 1 011
10 468 111010100 0 00
11 234 11101010 0 0
Próximo assunto
1 Introdução Introdução
2 Trabalhos para o RSA
Goldwasser, Micali e Tong, 1982 Ben-Or, Chor e Shamir, 1983
Alexi, Chor, Goldreich e Schnorr, 1988 Fischlin e Schnorr, 1997
3 Trabalhos para o DHCE Boneh e Shparlinsk, 2001 Jetchev e Venkatesan, 2008
4 Resultados e trabalhos futuros
Resultados
Ben-Or, Chor e Shamir, 1983
Algoritmo de Euclides Binário
Esse algoritmo é baseado nas seguintes idéias de [9] (Knuth — The Art of Computer Programming):
se |b| e |c| são ambos pares, então gcd (b, c) = 2.gcd ( b 2 , c 2 );
se |b| é par e |c| ímpar, então gcd (b, c) = gcd ( b 2 , c);
se |b| e |c| são ambos ímpares, então gcd (b, c) = 2.gcd ( b+c 2 , b−c 2 );
adicionalmente, no último caso, ou b+c 2 ou b−c 2 é divisível
novamente por 2.
Oráculo para dizer em que metade do conjunto está
Esse oráculo (Half ) diz em que metade do conjunto a mensagem está:
H(x e mod N) =
0 se x < N/2
1 se x > N/2
Na verdade um oráculo para o LSB é equivalente a um para o Half,
pois um pode simular o outro.
Ben-Or, Chor e Shamir, 1983
Propriedade sobre Half
Seja A(x ) = 2.
N x − 1 2
. Então para um i aleatório:
A(x ) = Pr [H(i) = H(i + x )]
Caso de probabilidade alta
0
x pequeno N/2 N0
N/2 Nx grande
0
N/2 N0
N/2 NBen-Or, Chor e Shamir, 1983
Caso de probabilidade baixa
0
x N/2 N0
N/2 N0
N/2 x N0
N/2 NEscolha inicial
Seja I ε =
− N.ε 2 , N.ε 2
e J ε = N 2 + I ε , então:
x ∈ I ε ⇒ A(x) ≥ 1 − ε
2 ⇒ s(x) > 1 2 x ∈ J ε ⇒ A(x ) ≤ ε
2 ⇒ s(x ) < 1 2
Assim, a paridade pode ser avaliada e vamos poder usar nosso GCD binário:
|x | par ⇒ x 2 ∈ I ε
|x | ímpar ⇒ x
2 ∈ J ε
Ben-Or, Chor e Shamir, 1983
Descrição do Algoritmo
Dado RSA(x ), pegue aleatoriamente i, j até ambos satisfazerem s(i.x ), s(j.x ) > 1/2:
Início faça b ← i.x, c ← j.x. Enquanto s(2 −1 .b) > 1 2 faça b ← 2 −1 .b (e similarmente para c).
Laço b ← b+c 2 , c ← b−c 2 . Elimine potências de 2 até que sobre apenas números ímpares.
Fim se mais de lg N fatores de 2 forem encontrados, aborta e
recomeça; se mais de 2. log 4/3 N iterações ocorrerem dentro do
laço, aborta e recomeça. Se b = 0 ou c = 0 recomeça. Se
b = 1, −1 ou c = 1, −1, use os coeficientes para representar
1 = k .x e assim recuperar x = k −1 mod N. Verifique a resposta
aplicando RSA.
Análise
A escolhas iniciais estarão dentro de I ε com probabilidade ≥ ε 2 Serão relativamente primos com probabilidade ≥ π 6
2Tempo total com alta probabilidade: π 6
2· ε −2 · 2 log 4/3 N
Alexi, Chor, Goldreich e Schnorr, 1988
Próximo assunto
1 Introdução Introdução
2 Trabalhos para o RSA
Goldwasser, Micali e Tong, 1982 Ben-Or, Chor e Shamir, 1983
Alexi, Chor, Goldreich e Schnorr, 1988 Fischlin e Schnorr, 1997
3 Trabalhos para o DHCE Boneh e Shparlinsk, 2001 Jetchev e Venkatesan, 2008
4 Resultados e trabalhos futuros
Resultados
Algoritmos
Ver algoritmos.
Alexi, Chor, Goldreich e Schnorr, 1988
Técnica de suposição
escolha de maneira uniforme e independente k , l ∈ Z N ;
computamos m valores [r i x ] N de modo que [r i x ] N = [(k + il)x ] N , com i = 1, 2, . . . , m;
se chamarmos y = [kx ] N e z = [lx] N , então [r i x ] N ≡ y + iz mod N;
suponha que conhecemos a localização de y dentro de um dos 4ε −1 intervalos
j εN
4 , (j + 1) εN 4
, 0 ≤ j < 4 ε
suponha que conhecemos a localização de z dentro de um dos 4mε −1 intervalos
j εN
4m , (j + 1) εN 4m
, 0 ≤ j < 4m
ε
suponha que conhecemos LSB(y ) e LSB(z).
Técnica de suposição
com o conhecimento da localização nos intervalos e do LSB de y e z é fácil calcular LSB(r i x );
note que das suposições, temos ao todo 2 · 4ε −1 · 2 · 4mε −1 = 2 6 mε −2 possibilidades
rodamos o ACGS com cada uma dessas alternativas;
em apenas uma delas estaremos computando corretamente
LSB(r i x ) e chamaremos essa instância de alternativa correta.
Alexi, Chor, Goldreich e Schnorr, 1988
Tempo de computação
O tempo do algoritmo é composto pelos seguintes fatores:
escolha de 2 múltiplos pequenos: −2 ; a chance deles serem coprimos: π 6
2; número de linhas de execução: 2 6 .m. −2 ; número de chamadas ao oráculo: 6n + 3;
número de medidas m: por def. m = 64.n. −2 .
−2 .
6
π 2
−1
.2 6 .m. −2 .(6n + 3).m ≈ −4 .m 2 .n.64.π 2 /3
= −4 .(64n −2 ) 2 .n.64.π 2 /3
= 64 3 .(π 2 /3).n 3 . −8
≈ 3 · 2 20 ε −8 n 3
Próximo assunto
1 Introdução Introdução
2 Trabalhos para o RSA
Goldwasser, Micali e Tong, 1982 Ben-Or, Chor e Shamir, 1983
Alexi, Chor, Goldreich e Schnorr, 1988 Fischlin e Schnorr, 1997
3 Trabalhos para o DHCE Boneh e Shparlinsk, 2001 Jetchev e Venkatesan, 2008
4 Resultados e trabalhos futuros
Resultados
Fischlin e Schnorr, 1997
Princípio — divisão binária
Divisão binária
0 x par N/2 N
0 N/2 N
(x+n)/2 x+N
x ímpar
Fischlin e Schnorr, 1997
Tempos
FS1 Tempo original: 3 · 2 9 ε −6 n 2 ;
FS2 Hoeffding’s Bound: 9 · 2 8 ε −6 n lg n.
Próximo assunto
1 Introdução Introdução
2 Trabalhos para o RSA
Goldwasser, Micali e Tong, 1982 Ben-Or, Chor e Shamir, 1983
Alexi, Chor, Goldreich e Schnorr, 1988 Fischlin e Schnorr, 1997
3 Trabalhos para o DHCE Boneh e Shparlinsk, 2001 Jetchev e Venkatesan, 2008
4 Resultados e trabalhos futuros
Resultados
Boneh e Shparlinsk, 2001
Classes de isomorfismo
Os autores consideram um oráculo O P com vantagem ε em predizer o LSB na curva E 0 . Isso quer dizer que O P não tem vantagem em todas as curvas na família φ λ (E 0 ) λ∈F
∗P
.
Por definição, é considerado que O P mantém essa vantagem para pelo menos uma fração δ das curvas na família de isomorfismo:
sem oráculo B : δ = 1;
com oráculo B : δ pequeno.
Próximo assunto
1 Introdução Introdução
2 Trabalhos para o RSA
Goldwasser, Micali e Tong, 1982 Ben-Or, Chor e Shamir, 1983
Alexi, Chor, Goldreich e Schnorr, 1988 Fischlin e Schnorr, 1997
3 Trabalhos para o DHCE Boneh e Shparlinsk, 2001 Jetchev e Venkatesan, 2008
4 Resultados e trabalhos futuros
Resultados
Jetchev e Venkatesan, 2008
Classes de isomorfismo Weierstrass
r Im1
Im2
Im3
Im4
E1, E3, E99...
curvas diversas
curvas isomorfas
fração da classe de isomorfismo
Onde temos 0 < r < 1.
Classes de isogenia Weierstrass
r Ig1
Ig2
Ig3
Ig4
E1, E3, E99...
curvas diversas
curvas isógenas
fração da classe de isogenia
Im1 Im2
curvas isomorfas
Onde temos 0 < r < 1.
Jetchev e Venkatesan, 2008
Nosso grafo de isogenia
E1
E2
E3
E4
1 2 3
Nosso grafo de isogenia
E1
E2
E3
E4
1 2 3
Resultados
Próximo assunto
1 Introdução Introdução
2 Trabalhos para o RSA
Goldwasser, Micali e Tong, 1982 Ben-Or, Chor e Shamir, 1983
Alexi, Chor, Goldreich e Schnorr, 1988 Fischlin e Schnorr, 1997
3 Trabalhos para o DHCE Boneh e Shparlinsk, 2001 Jetchev e Venkatesan, 2008
4 Resultados e trabalhos futuros
Resultados
Diminuindo o número de amostras
m def = 64n ε 2
m def = 4
ε 2
Resultados
Redução no limitante do BKGCD
o objetivo do ACGS é inverter o RSA dentro da alternativa correta;
Então, devemos ter o limitante do BKGCD direcionado para essa alternativa;
rodamos o ACGS para um RSA de 128 bits apenas na alternativa correta;
dentro de 200 testes, a função BKGCD fez de 324 a 368 chamadas à função PAR;
algo entre 2,53n e 2,88n;
mudamos limiteGCD = 6n + 3 para limiteGCD = 3n.
Tempo consumido em relação ao número de amostras
0 10 20 30 40 50 60 70
16 32 64 128 256 512 1024
T empo (segundos)
Amostras 0,997 2,088 4,355 8,034
16,146 35,270
66,092
Resultados
Linearidade do tempo
0 10 20 30 40 50 60 70
0 200 400 600 800 1000 1200
T empo (segundos)
Amostras
Amostragem original
128 bits 1024 bits 5000 bits
0,4 51.200 409.600 2.000.000
0,3 91.023 728.178 3.555.556
0,2 204.800 1.638.400 8.000.000
0,1 819.200 6.553.600 32.000.000
0,05 3.276.800 26.214.400 128.000.000
0,01 81.920.000 655.360.000 3.200.000.000
Resultados
Número de amostras em relação à vantagem
0 500 1000 1500 2000
0,01 0,05 0,10 0,20 0,30 0,40
Amostr as
Vantagem (ε) 40000
1600
400
100 44 25
Comparação entre as complexidades existentes
Estimativa 1024 bits 2048 bits 5000 bits
PFP exp(1,9(ln N)
13(ln ln N)
23) 6,409 · 10
255,817 · 10
343,755 · 10
50ACGS orig. 3 · 2
20ε
−8n
33,378 · 10
312,702 · 10
323,932 · 10
33ACGS novo 3 · 2
11ε
−8n 6,292 · 10
221,258 · 10
233,072 · 10
23FS 1 3 · 2
9ε
−6n
21,611 · 10
216,443 · 10
213,840 · 10
22FS 2 9 · 2
8ε
−6n lg n 2,359 · 10
195,191 · 10
191,498 · 10
20Resultados
Tempo da função PAR no ACGS (m = 16)
0 0, 1 0, 2 0, 3 0, 4 0, 5 0, 6 0, 7
128 256 512 1024 2048 5000
T empo (segundos)
Tamanho dos operandos (bits) 8,554
0,003 0,007 0,023
0,111
0,685
Tempos estimados para execução do algoritmo ACGS
n (bits) tPAR (s) Alt. correta Tempo total 1024 0,111 19,7 dias 138,4 · 10 3 anos 2048 0,685 243,5 dias 1,7 · 10 6 anos 5000 8,554 20,3 anos 52,1 · 10 6 anos
ε = 10%
Resultados
Tempo da função PAR no DHCE sem B (m = 40000)
0 0, 05 0, 1 0, 15 0, 2 0, 25
160 224
T empo (segundos)
Tamanho dos operandos (bits) 0,175
0,223
Tempos estimados para execução do algoritmo BS
n (bits) tPAR (s) Alt. correta Tempo total 160 0,175 5,6 minutos 54,6 anos 224 0,223 9,9 minutos 97,3 anos
ε = 10%
δ = 100%
Resultados
Função PAR no DHCE com B P (m = 50 e m2 = 10)
0 0, 1 0, 2 0, 3 0, 4 0, 5 0, 6 0, 7 0, 8 0, 9
160 224
T empo (segundos)
Tamanho dos operandos (bits) 0,401
0,820
Tempos estimados para BS usando o oráculo B P
n (bits) tPAR (s) Alt. correta Tempo total 160 0,401 15,6 anos 80 · 10 6 anos 224 0,820 44,7 anos 229 · 10 6 anos
ε = 10%
δ = 10%
Resultados
Tempos estimados para JV usando o oráculo B P .
n (bits) tPAR (s) Tempo total 160 0,401 8,8 · 10 29 anos 224 0,820 7,3 · 10 31 anos
ε = 10%
δ = 10%
Considerações finais
provê uma implementação da segurança do LSB no RSA;
provê uma implementação da segurança do LSB no DHCE;
identificação dos parâmetros relevantes do tempo de execução;
identificação dos erros superestimados;
inferimos o tempo de execução para o método de JV;
conseguimos uma redução no limitante da função de paridade;
encontramos uma melhoria no número de acessos ao oráculo;
com as melhorias, o ACGS passou a ser mais rápido que o PFP para valores práticos;
mostramos como provas teóricas podem não definir de maneira
precisa o tempo de execução de um algoritmo.
Resultados
Outras contribuições
implementação em Relic;
artigo com Goya e Terada no SBSEG;
correção dos tipos na função de benchmark ; correção com fp_cmp_dig;
adição do gt_exp → fb4_exp;
correção de bilinearidade do emparelhamento simétrico;
expansão de pontos para NIST_P224;
problemas com linker.
Trabalhos futuros
algoritmo Rabin;
algoritmo FS;
prova de conceito com ataque de canal secundário.
Resultados