• Nenhum resultado encontrado

Criptografia com códigos corretores de erros

N/A
N/A
Protected

Academic year: 2022

Share "Criptografia com códigos corretores de erros"

Copied!
81
0
0

Texto

(1)

Criptografia com códigos corretores de erros

Thales Paiva

thalespaiva@gmail.com 25 de novembro de 2016

Escola Politécnica - USP

PCS5734 - Prof. Dr. Marcos Antonio Simplicio Junior

(2)

Sumário

1. Teoria de Códigos

2. Esquema de McEliece

3. QC-MDPC McEliece

1

(3)

Teoria de Códigos

(4)

Teoria de Códigos

Fonte

Codificador Canal Decodificador

Receptor

m∈ M

c←E(m) c←c⊕e

mˆ ←D(c)

Figura 1:Transmissão de uma palavramatravés de um canal ruidoso.

2

(5)

Exemplo de transmissão

Fonte

Codificador Canal Decodificador

Receptor

[1 0 1]

[111 000 111] [011 001 111]

[111 000 111][1 0 1]

Figura 2:Exemplo de transmissão de uma palavramatravés de um canal que produziu o erroe= [100 001 000], usando um Código de Repetição.

(6)

Códigos Lineares

Definição

Umcódigo binário[n,k]-linearé um subespaço vetorial de dimensão k do espaçoFn2.

4

(7)

Matrizes Geradoras e de Paridade

Então, seCé um código[n,k]-linear:

Cpode ser descrito por suaimagemou por seunúcleo

• Chama-sematriz geradoratodaG∈Fk×n2 tal que C=

{mG:m∈Fk2}

• Chama-sematriz de paridadetodaH∈F(2n−k)×ntal que C={

c∈Fn2 :cHT=0}

(8)

Matrizes Geradoras e de Paridade

Então, seCé um código[n,k]-linear:

Cpode ser descrito por suaimagemou por seunúcleo

• Chama-sematriz geradoratodaG∈Fk×n2 tal que C=

{mG:m∈Fk2}

• Chama-sematriz de paridadetodaH∈F(2n−k)×ntal que C={

c∈Fn2 :cHT=0}

5

(9)

Matrizes Geradoras e de Paridade

Então, seCé um código[n,k]-linear:

Cpode ser descrito por suaimagemou por seunúcleo

• Chama-sematriz geradoratodaG∈Fk×n2 tal que C=

{mG:m∈Fk2}

• Chama-sematriz de paridadetodaH∈F(2n−k)×ntal que C={

c∈Fn2 :cHT=0}

(10)

Matrizes Geradoras e de Paridade

Então, seCé um código[n,k]-linear:

Cpode ser descrito por suaimagemou por seunúcleo

• Chama-sematriz geradoratodaG∈Fk×n2 tal que C=

{mG:m∈Fk2}

• Chama-sematriz de paridadetodaH∈F(2n−k)×ntal que C={

c∈Fn2 :cHT=0}

5

(11)

Codificação de Mensagens

FixeG,Hmatrizes geradora e de paridade deC:

• Uma mensagemmé codificada como c=mG

• É sobredeterminado o sistema mG=c

• Asíndromede um vetor¯c∈Fn2é o vetor s=cHT = ¯c∈ C ⇔s=0

• Se¯c=c⊕e, então

s= ¯cHT= (c⊕e)HT=cHT⊕eHT=eHT

(12)

Codificação de Mensagens

FixeG,Hmatrizes geradora e de paridade deC:

• Uma mensagemmé codificada como c=mG

• É sobredeterminado o sistema mG=c

• Asíndromede um vetor¯c∈Fn2é o vetor s=cHT = ¯c∈ C ⇔s=0

• Se¯c=c⊕e, então

s= ¯cHT= (c⊕e)HT=cHT⊕eHT=eHT

6

(13)

Codificação de Mensagens

FixeG,Hmatrizes geradora e de paridade deC:

• Uma mensagemmé codificada como c=mG

• É sobredeterminado o sistema mG=c

• Asíndromede um vetor¯c∈Fn2é o vetor s=cHT = ¯c∈ C ⇔s=0

• Se¯c=c⊕e, então

s= ¯cHT= (c⊕e)HT=cHT⊕eHT=eHT

(14)

Codificação de Mensagens

FixeG,Hmatrizes geradora e de paridade deC:

• Uma mensagemmé codificada como c=mG

• É sobredeterminado o sistema mG=c

• Asíndromede um vetor¯c∈Fn2 é o vetor s=cHT = ¯c∈ C ⇔s=0

• Se¯c=c⊕e, então

s= ¯cHT= (c⊕e)HT=cHT⊕eHT=eHT

6

(15)

Codificação de Mensagens

FixeG,Hmatrizes geradora e de paridade deC:

• Uma mensagemmé codificada como c=mG

• É sobredeterminado o sistema mG=c

• Asíndromede um vetor¯c∈Fn2 é o vetor s=cHT = ¯c∈ C ⇔s=0

• Se¯c=c⊕e, então

s= ¯cHT= (c⊕e)HT=cHT⊕eHT=eHT

(16)

Exemplo com um Código de Hamming

Considere o código[7,4]-linearCque tem matriz geradoraGe matriz de paridadeHtais que:

G=





1 1 1 0 0 0 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1



, H=



1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 1 1 1 1

.

• A codificação dem= [1 0 0 1]é

c=mG= [0 0 1 1 0 0 1].

• Somando o erroe= [0 1 0 0 0 0 0]acobtemos

¯c=c⊕e= [0 1 1 1 0 0 1].

• A síndrome de¯cé o vetor

s= ¯cHT= [0 1 0].

7

(17)

Exemplo com um Código de Hamming

Considere o código[7,4]-linearCque tem matriz geradoraGe matriz de paridadeHtais que:

G=





1 1 1 0 0 0 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1



, H=



1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 1 1 1 1

.

• A codificação dem= [1 0 0 1]é

c=mG= [0 0 1 1 0 0 1].

• Somando o erroe= [0 1 0 0 0 0 0]acobtemos

¯c=c⊕e= [0 1 1 1 0 0 1].

• A síndrome de¯cé o vetor

s= ¯cHT= [0 1 0].

(18)

Exemplo com um Código de Hamming

Considere o código[7,4]-linearCque tem matriz geradoraGe matriz de paridadeHtais que:

G=





1 1 1 0 0 0 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1



, H=



1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 1 1 1 1

.

• A codificação dem= [1 0 0 1]é

c=mG= [0 0 1 1 0 0 1].

• Somando o erroe= [0 1 0 0 0 0 0]acobtemos

¯c=c⊕e= [0 1 1 1 0 0 1].

• A síndrome de¯cé o vetor

s= ¯cHT= [0 1 0].

7

(19)

Exemplo com um Código de Hamming

Considere o código[7,4]-linearCque tem matriz geradoraGe matriz de paridadeHtais que:

G=





1 1 1 0 0 0 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1



, H=



1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 1 1 1 1

.

• A codificação dem= [1 0 0 1]é

c=mG= [0 0 1 1 0 0 1].

• Somando o erroe= [0 1 0 0 0 0 0]acobtemos

¯c=c⊕e= [0 1 1 1 0 0 1].

• A síndrome de¯cé o vetor

s= ¯cHT= [0 1 0].

(20)

Exemplo com um Código de Hamming

Considere o código[7,4]-linearCque tem matriz geradoraGe matriz de paridadeHtais que:

G=





1 1 1 0 0 0 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1



, H=



1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 1 1 1 1

.

• A codificação dem= [1 0 0 1]é

c=mG= [0 0 1 1 0 0 1].

• Somando o erroe= [0 1 0 0 0 0 0]acobtemos

¯c=c⊕e= [0 1 1 1 0 0 1].

• A síndrome de¯cé o vetor

s= ¯cHT= [0 1 0].

7

(21)

Exemplo com um Código de Hamming

Considere o código[7,4]-linearCque tem matriz geradoraGe matriz de paridadeHtais que:

G=





1 1 1 0 0 0 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1



, H=



1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 1 1 1 1

.

• A codificação dem= [1 0 0 1]é

c=mG= [0 0 1 1 0 0 1].

• Somando o erroe= [0 1 0 0 0 0 0]acobtemos

¯c=c⊕e= [0 1 1 1 0 0 1].

• A síndrome de¯cé o vetor

s= ¯cHT= [0 1 0].

(22)

Exemplo com um Código de Hamming

Considere o código[7,4]-linearCque tem matriz geradoraGe matriz de paridadeHtais que:

G=





1 1 1 0 0 0 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1



, H=



1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 1 1 1 1

.

• A codificação dem= [1 0 0 1]é

c=mG= [0 0 1 1 0 0 1].

• Somando o erroe= [0 1 0 0 0 0 0]acobtemos

¯c=c⊕e= [0 1 1 1 0 0 1].

• A síndrome de¯cé o vetor

s= ¯cHT= [0 1 0]. 7

(23)

Algumas definições

Sejamu,vpalavras deFn2:

• Opesodeué o número de coordenadas não nulas deu: w([1 0 0 1]) =2

• Adistância de Hammingentreuevé o número de coordenadas em queuevdiferem:

d(u,v) =w(u⊕v) d([1 0 0 1],[1 1 0 1]) =1

(24)

Algumas definições

Sejamu,vpalavras deFn2:

• Opesodeué o número de coordenadas não nulas deu:

w([1 0 0 1]) =2

• Adistância de Hammingentreuevé o número de coordenadas em queuevdiferem:

d(u,v) =w(u⊕v) d([1 0 0 1],[1 1 0 1]) =1

8

(25)

Algumas definições

Sejamu,vpalavras deFn2:

• Opesodeué o número de coordenadas não nulas deu:

w([1 0 0 1]) =2

• Adistância de Hammingentreuevé o número de coordenadas em queuevdiferem:

d(u,v) =w(u⊕v) d([1 0 0 1],[1 1 0 1]) =1

(26)

Decodificação

Dada uma palavra¯c∈Fn2, queremos encontrar uma palavractal que d(¯c,c)≤d(¯c,u), para qualqueru∈Fn2.

• DecodificaçãoN P-difícil no pior caso [1]

• Conjecturada tipicamente difícil para códigos aleatórios

• É preciso desenhar bons códigos que admitam a construção de decodificadores

• Reed-Muller

• Goppa

• LDPC

9

(27)

Decodificação

Dada uma palavra¯c∈Fn2, queremos encontrar uma palavractal que d(¯c,c)≤d(¯c,u), para qualqueru∈Fn2.

• DecodificaçãoN P-difícil no pior caso [1]

• Conjecturada tipicamente difícil para códigos aleatórios

• É preciso desenhar bons códigos que admitam a construção de decodificadores

• Reed-Muller

• Goppa

• LDPC

(28)

Decodificação

Dada uma palavra¯c∈Fn2, queremos encontrar uma palavractal que d(¯c,c)≤d(¯c,u), para qualqueru∈Fn2.

• DecodificaçãoN P-difícil no pior caso [1]

• Conjecturada tipicamente difícil para códigos aleatórios

• É preciso desenhar bons códigos que admitam a construção de decodificadores

• Reed-Muller

• Goppa

• LDPC

9

(29)

Decodificação

Dada uma palavra¯c∈Fn2, queremos encontrar uma palavractal que d(¯c,c)≤d(¯c,u), para qualqueru∈Fn2.

• DecodificaçãoN P-difícil no pior caso [1]

• Conjecturada tipicamente difícil para códigos aleatórios

• É preciso desenhar bons códigos que admitam a construção de decodificadores

• Reed-Muller

• Goppa

• LDPC

(30)

Decodificação

Dada uma palavra¯c∈Fn2, queremos encontrar uma palavractal que d(¯c,c)≤d(¯c,u), para qualqueru∈Fn2.

• DecodificaçãoN P-difícil no pior caso [1]

• Conjecturada tipicamente difícil para códigos aleatórios

• É preciso desenhar bons códigos que admitam a construção de decodificadores

• Reed-Muller

• Goppa

• LDPC

9

(31)

Esquema de McEliece

(32)

Esquema de McEliece

Elaborado por McEliece em 1978 [8]

• Primeiro esquema baseado no problema da decodificação

• Primeiro que usa procedimento aleatório na encriptação

• Operações mais rápidas do que as respectivas do RSA e CE Porém ficou esquecido pois

• Chaves públicas muito grandes: λ=100tamanho100 kB

• Esquema de assinatura parecia ser impossível, até CFS [3]

Até que Shor [10] mostra algoritmo quântico que resolve log discreto

10

(33)

Códigos de Goppa

Usa códigos de Goppa binários e irredutíveis:

• Cada código é gerado por um polinômio irredutívelgdeF2m[x]

• A capacidade de correção é igual ou superior ao grautdeg

• É fácil construirt-decodificadores eficientes conhecendog

• Não se conhece algoritmo eficiente para construir decodificadores sem conhecerg

• É difícil em geral distinguir matrizes geradoras de Goppa e geradoras de aleatórios

Embora seja possível parakpróximo den[4]

(34)

Parâmetros para cada nível de segurança

Tabela 1:Parâmetros de famílias de códigos de Goppa para cada nível de segurançaλ[2].

λ n k t m tamanho da chave pública

(Bytes)

81 2048 1751 27 11 65006

95 2048 1608 40 11 88440

105 2480 1940 45 12 130950

119 2690 2018 56 12 169512

146 3408 2604 67 12 261702

187 4624 3389 95 13 523177

263 6960 5413 119 13 1046739

12

(35)

Geração de Chaves

Algoritmo 1:KeyGen para a geração de chaves Entrada:λnível de segurança.

Saída:(KSec,KPub)o par de chaves secreta e pública.

1 início

2 Tomen,t,ekque permitam nível de segurançaλTabela 1

3 g←polinômio gerador de um código de Goppa aleatórioG

4 ¯G←matrizk×ngeradora deG

5 Φalgoritmot-decodificador paraG

6 S←matrizk×knão singular aleatória

7 P←matriz de permutaçãon×naleatória

8 G←SGP¯

9 ˆG←SG¯

10 KSecG,P,Φ)

11 KPub(G,t)

12 devolva(KSec,KPub)

(36)

Encriptação

Algoritmo 2:Enc para a encriptação

Entrada:mmensagem que Beto quer enviar a Alice.

KPuba chave pública de Alice.

Saída:co texto cifrado da mensagemm.

1 início

2 (G,t)←KPub

3 e←vetor aleatório deFn2 de pesot

4 c←mG⊕e

5 devolvac

14

(37)

Decriptação

Algoritmo 3:Dec para a encriptação Entrada:ctexto cifrado recebido por Alice.

KSeca chave secreta de Alice.

Saída:ma decifração dec.

1 início

2G,P,Φ)←KSec

3 c1 ←cP−1= (mG⊕e)P−1=mˆG⊕eP−1

4 c2Φ(c1) =mˆG

5 m←solução do sistema sobredeterminadomGˆ =c2 6 devolvam

(38)

Segurança

Mas não resiste a ataques de:

• Mensagem parcialmente conhecida

• Mensagem relacionada (e.g. reenvio de mensagens)

• Reação

• Maleabilidade

O esquema de McEliece é apenas OWE

• Conversões de segurança obrigatórias

16

(39)

Conversão IND-CCA2 de Kobara e Imai

Algoritmo 4:Conversão IND-CCA2 de Enc [7]

Entrada:mmensagem que Beto quer enviar a Alice.

KPuba chave pública de Alice.

Saída:co texto cifrado da mensagemm.

1 início

2 (G,t)←KPub

3 r←número aleatório160 bits

4 z←Hash(r∥m)

5 y←PRNG(z)(r∥m)

6 ez IntParaErro(z,t)

7 c←(yG⊕ez)

8 devolvac

(40)

Conversão IND-CCA2 de Kobara e Imai

Algoritmo 5:Conversão IND-CCA2 de Dec [7]

Entrada:ctexto cifrado recebido por Alice.

KSeca chave secreta de Alice.

Saída:ma decifração dec.

1 início

2 y←Dec(Esquerda(c,k),KSec)

3 ez Esquerda(c, k)⊕yG

4 z←ErroParaInt(ez)

5 r∥m←PRNG(z)(y)

6 sez=Hash(r∥m)então

7 devolvam

8 senão

9 devolva

18

(41)

Ataque Genérico por Conjunto de Informação

Decodificação por Conjunto de Informação - ISD

• Selecionarkcolunas decque não estão com erro

• Se askcolunas deGˆformarem matriz inversívelG

• Pode-se recuperarmao resolver o sistemamG=c

Ocorre com baixa probabilidade de (n−t

k

) (n

k

)

E assim o trabalho esperado é limitado inferormente (n

k

) (n−t

k

)

(42)

Ataque Genérico por Conjunto de Informação

Decodificação por Conjunto de Informação - ISD

• Selecionarkcolunas decque não estão com erro

• Se askcolunas deGˆformarem matriz inversívelG

• Pode-se recuperarmao resolver o sistemamG=c Ocorre com baixa probabilidade de

(n−t

k

) (n

k

)

E assim o trabalho esperado é limitado inferormente (n

k

) (n−t

k

)

19

(43)

Ataque Genérico por Conjunto de Informação

Decodificação por Conjunto de Informação - ISD

• Selecionarkcolunas decque não estão com erro

• Se askcolunas deGˆformarem matriz inversívelG

• Pode-se recuperarmao resolver o sistemamG=c Ocorre com baixa probabilidade de

(n−t

k

) (n

k

)

E assim o trabalho esperado é limitado inferormente (n

k

) (n−t

k

)

(44)

Reduzir Tamanhos das Chaves

Ideias para Reduzir Tamanhos de Chaves:

• Usar códigos que corrigem mais erros

• Usar códigos que permitem representações compactas 1. Códigos de Goppa Quase-Cíclicos (QC-Goppa)

2. Códigos de Goppa Quase-Diádicos (QD-Goppa)

3. Códigos QC com Matriz de Paridade de Baixa Densidade (QC-LDPC) 4. Códigos QC-LDPC com Densidade Moderada (QC-MDPC)

• Apenas as propostas 2 e 4 chegaram até 2016, mas

• Faugere, Perret e Portzamparc quebraram QD-Goppa [5]

• Guo, Johansson e Stankovski mostraram ataque de reação a QC-MDPC [6]

20

(45)

Reduzir Tamanhos das Chaves

Ideias para Reduzir Tamanhos de Chaves:

• Usar códigos que corrigem mais erros

• Usar códigos que permitem representações compactas

1. Códigos de Goppa Quase-Cíclicos (QC-Goppa) 2. Códigos de Goppa Quase-Diádicos (QD-Goppa)

3. Códigos QC com Matriz de Paridade de Baixa Densidade (QC-LDPC) 4. Códigos QC-LDPC com Densidade Moderada (QC-MDPC)

• Apenas as propostas 2 e 4 chegaram até 2016, mas

• Faugere, Perret e Portzamparc quebraram QD-Goppa [5]

• Guo, Johansson e Stankovski mostraram ataque de reação a QC-MDPC [6]

(46)

Reduzir Tamanhos das Chaves

Ideias para Reduzir Tamanhos de Chaves:

• Usar códigos que corrigem mais erros

• Usar códigos que permitem representações compactas 1. Códigos de Goppa Quase-Cíclicos (QC-Goppa)

2. Códigos de Goppa Quase-Diádicos (QD-Goppa)

3. Códigos QC com Matriz de Paridade de Baixa Densidade (QC-LDPC) 4. Códigos QC-LDPC com Densidade Moderada (QC-MDPC)

• Apenas as propostas 2 e 4 chegaram até 2016, mas

• Faugere, Perret e Portzamparc quebraram QD-Goppa [5]

• Guo, Johansson e Stankovski mostraram ataque de reação a QC-MDPC [6]

20

(47)

Reduzir Tamanhos das Chaves

Ideias para Reduzir Tamanhos de Chaves:

• Usar códigos que corrigem mais erros

• Usar códigos que permitem representações compactas 1. Códigos de Goppa Quase-Cíclicos (QC-Goppa)

2. Códigos de Goppa Quase-Diádicos (QD-Goppa)

3. Códigos QC com Matriz de Paridade de Baixa Densidade (QC-LDPC) 4. Códigos QC-LDPC com Densidade Moderada (QC-MDPC)

• Apenas as propostas 2 e 4 chegaram até 2016, mas

• Faugere, Perret e Portzamparc quebraram QD-Goppa [5]

• Guo, Johansson e Stankovski mostraram ataque de reação a QC-MDPC [6]

(48)

QC-MDPC McEliece

(49)

Códigos LDPC

Definição

Um código binário e linear com matriz de paridade H é dito um código LDPC se o número de elementos não nulos de H éO(n).

(50)

Códigos LDPC

H=







1 1 1 1 0 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 0 1 0 0 1 0 0 1 1 0 0 0 1 0 0 1 0 1 0 1 0 0 0 1 0 0 1 0 1 1







c1 c2 c3 c4 c5

v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 Figura 3: Grafo de Tanner da matrizH.

22

(51)

Algoritmo de Decodificação por bit-flipping

m←[0 1 1 0 0 0]

c←mG= [0 1 1 0 0 0 0 0 1 1]

e←[0 0 0 0 0 0 0 1 0 0]

c←c⊕e= [0 1 1 0 0 0 0 1 1 1]

c1 c2 c3 c4 c5

v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 Figura 4:Funcionamento do algoritmo debit-flipping.

(52)

Algoritmo de Decodificação por bit-flipping

m←[0 1 1 0 0 0]

c←mG= [0 1 1 0 0 0 0 0 1 1]

e←[0 0 0 0 0 0 0 1 0 0]

c←c⊕e= [0 1 1 0 0 0 0 1 1 1]

c1 c2 c3 c4 c5

v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 Figura 4:Funcionamento do algoritmo debit-flipping.

23

(53)

Algoritmo de Decodificação por bit-flipping

m←[0 1 1 0 0 0]

c←mG= [0 1 1 0 0 0 0 0 1 1]

e←[0 0 0 0 0 0 0 1 0 0]

c←c⊕e= [0 1 1 0 0 0 0 1 1 1]

c1 c2 c3 c4 c5

v01

v12

v13

v04

v15

v16

v07

v28

v19

v110 Figura 4:Funcionamento do algoritmo debit-flipping.

(54)

Algoritmo de Decodificação por bit-flipping

m←[0 1 1 0 0 0]

c←mG= [0 1 1 0 0 0 0 0 1 1]

e←[0 0 0 0 0 0 0 1 0 0]

c←c⊕e= [0 1 1 0 0 0 0 1 1 1]

c1 c2 c3 c4 c5

v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 Figura 4:Funcionamento do algoritmo debit-flipping.

23

(55)

Algoritmo de bit-flipping

Algoritmo 6:Algoritmo debit-flipping Entrada:H,y,max_it

Saída:Decodificação dey, ou⊥se exceder número de iterações

1 início

2 it0

3 enquantoyHT̸=0eit<max_itfaça

4 paracada j=1,2, . . . ,nfaça

5 fjNúmero de vizinhos devjinsatisfeitos

6 max_upcmax{ fj}

7 paracada j=1,2, . . . ,nfaça

8 sefjmax_upc−δentão

9 yj←y¯j

10 seyHT=0então

11 devolvay

12 senão

13 devolva 24

(56)

Decodificação por Decisões Abruptas e Suaves

25

(57)

Códigos LDPC no esquema de McEliece

Uso no esquema de McEliece

• Códigos LDPC são ótimos códigos corretores de erros

• Porém são inseguros pois é possível recuperar a matriz esparsa Ideia de Misoczki [9]

• Usar códigos LDPC com matriz ligeiramente mais densa

• Código fica mais forte contra ataques

• Ainda é possível usar algoritmos de decodificação para LDPC

(58)

Códigos QC-MDPC

Definição

Umcódigo(n,r,w)-MDPCé um código linear de comprimento n, e codimensão r, que admite uma matriz de verificação de paridade H cujas linhas têm mesmos pesos iguais a w=O(√

nlogn) .

O problema é que a matriz geradora pode ser densa

• Usar códigosquase cíclicos!

• Matriz de paridade composta de blocos cíclicos

• Matriz geradora sistemática também de blocos cíclicos

• Matriz geradora pode ser sistemática com conversão IND-CCA2

• Matrizes são descritas pelaprimeira linha e número de blocos Definição

QuandoHé quase cíclica, um código MDPC é dito umcódigo (n,r,w)-QC-MDPC.

27

(59)

Códigos QC-MDPC

Definição

Umcódigo(n,r,w)-MDPCé um código linear de comprimento n, e codimensão r, que admite uma matriz de verificação de paridade H cujas linhas têm mesmos pesos iguais a w=O(√

nlogn) . O problema é que a matriz geradora pode ser densa

• Usar códigosquase cíclicos!

• Matriz de paridade composta de blocos cíclicos

• Matriz geradora sistemática também de blocos cíclicos

• Matriz geradora pode ser sistemática com conversão IND-CCA2

• Matrizes são descritas pelaprimeira linha e número de blocos Definição

QuandoHé quase cíclica, um código MDPC é dito umcódigo (n,r,w)-QC-MDPC.

(60)

Códigos QC-MDPC

Definição

Umcódigo(n,r,w)-MDPCé um código linear de comprimento n, e codimensão r, que admite uma matriz de verificação de paridade H cujas linhas têm mesmos pesos iguais a w=O(√

nlogn) . O problema é que a matriz geradora pode ser densa

• Usar códigosquase cíclicos!

• Matriz de paridade composta de blocos cíclicos

• Matriz geradora sistemática também de blocos cíclicos

• Matriz geradora pode ser sistemática com conversão IND-CCA2

• Matrizes são descritas pelaprimeira linha e número de blocos Definição

QuandoHé quase cíclica, um código MDPC é dito umcódigo (n,r,w)-QC-MDPC.

27

(61)

Códigos QC-MDPC

Definição

Umcódigo(n,r,w)-MDPCé um código linear de comprimento n, e codimensão r, que admite uma matriz de verificação de paridade H cujas linhas têm mesmos pesos iguais a w=O(√

nlogn) . O problema é que a matriz geradora pode ser densa

• Usar códigosquase cíclicos!

• Matriz de paridade composta de blocos cíclicos

• Matriz geradora sistemática também de blocos cíclicos

• Matriz geradora pode ser sistemática com conversão IND-CCA2

• Matrizes são descritas pelaprimeira linha e número de blocos Definição

QuandoHé quase cíclica, um código MDPC é dito umcódigo (n,r,w)-QC-MDPC.

(62)

Códigos QC-MDPC

Definição

Umcódigo(n,r,w)-MDPCé um código linear de comprimento n, e codimensão r, que admite uma matriz de verificação de paridade H cujas linhas têm mesmos pesos iguais a w=O(√

nlogn) . O problema é que a matriz geradora pode ser densa

• Usar códigosquase cíclicos!

• Matriz de paridade composta de blocos cíclicos

• Matriz geradora sistemática também de blocos cíclicos

• Matriz geradora pode ser sistemática com conversão IND-CCA2

• Matrizes são descritas pelaprimeira linha e número de blocos Definição

QuandoHé quase cíclica, um código MDPC é dito umcódigo (n,r,w)-QC-MDPC.

27

(63)

Códigos QC-MDPC

Definição

Umcódigo(n,r,w)-MDPCé um código linear de comprimento n, e codimensão r, que admite uma matriz de verificação de paridade H cujas linhas têm mesmos pesos iguais a w=O(√

nlogn) . O problema é que a matriz geradora pode ser densa

• Usar códigosquase cíclicos!

• Matriz de paridade composta de blocos cíclicos

• Matriz geradora sistemática também de blocos cíclicos

• Matriz geradora pode ser sistemática com conversão IND-CCA2

• Matrizes são descritas pelaprimeira linha e número de blocos Definição

QuandoHé quase cíclica, um código MDPC é dito umcódigo (n,r,w)-QC-MDPC.

(64)

Códigos QC-MDPC

Definição

Umcódigo(n,r,w)-MDPCé um código linear de comprimento n, e codimensão r, que admite uma matriz de verificação de paridade H cujas linhas têm mesmos pesos iguais a w=O(√

nlogn) . O problema é que a matriz geradora pode ser densa

• Usar códigosquase cíclicos!

• Matriz de paridade composta de blocos cíclicos

• Matriz geradora sistemática também de blocos cíclicos

• Matriz geradora pode ser sistemática com conversão IND-CCA2

• Matrizes são descritas pelaprimeira linha e número de blocos Definição

QuandoHé quase cíclica, um código MDPC é dito umcódigo (n,r,w)-QC-MDPC.

27

(65)

Códigos QC-MDPC

Definição

Umcódigo(n,r,w)-MDPCé um código linear de comprimento n, e codimensão r, que admite uma matriz de verificação de paridade H cujas linhas têm mesmos pesos iguais a w=O(√

nlogn) . O problema é que a matriz geradora pode ser densa

• Usar códigosquase cíclicos!

• Matriz de paridade composta de blocos cíclicos

• Matriz geradora sistemática também de blocos cíclicos

• Matriz geradora pode ser sistemática com conversão IND-CCA2

• Matrizes são descritas pelaprimeira linha e número de blocos

Definição

QuandoHé quase cíclica, um código MDPC é dito umcódigo (n,r,w)-QC-MDPC.

(66)

Códigos QC-MDPC

Definição

Umcódigo(n,r,w)-MDPCé um código linear de comprimento n, e codimensão r, que admite uma matriz de verificação de paridade H cujas linhas têm mesmos pesos iguais a w=O(√

nlogn) . O problema é que a matriz geradora pode ser densa

• Usar códigosquase cíclicos!

• Matriz de paridade composta de blocos cíclicos

• Matriz geradora sistemática também de blocos cíclicos

• Matriz geradora pode ser sistemática com conversão IND-CCA2

• Matrizes são descritas pelaprimeira linha e número de blocos Definição

QuandoHé quase cíclica, um código MDPC é dito umcódigo (n,r,w)-QC-MDPC.

27

(67)

Matriz de paridade de um código QC-MDPC

Figura 5:Matriz de paridade de código QC-MDPC com dois blocos ew=6.

(68)

Matriz geradora de um código QC-MDPC

Figura 6:Matriz geradora de código QC-MDPC com dois blocos.

29

(69)

QC-MDPC McEliece

Descrição do esquema com códigos QC-MDPC

• Chave pública é

ga primeira linha do segundo bloco da matrizGe

tnúmero de erros que o código corrige com alta probabilidade

• Chave privada é a primeira linha esparsa

• Segurança baseada na dificuldade de encontrar palavras de baixo peso

• Dispensa o uso das matrizes embaralhadorasSeP!

• Encriptação idêntica à do McEliece original

• Decriptação usa algoritmo debit-flipping

• Se o algoritmo falhar, peça reenvio de mensagem

(70)

QC-MDPC McEliece

Descrição do esquema com códigos QC-MDPC

• Chave pública é

ga primeira linha do segundo bloco da matrizGe

tnúmero de erros que o código corrige com alta probabilidade

• Chave privada é a primeira linha esparsa

• Segurança baseada na dificuldade de encontrar palavras de baixo peso

• Dispensa o uso das matrizes embaralhadorasSeP!

• Encriptação idêntica à do McEliece original

• Decriptação usa algoritmo debit-flipping

• Se o algoritmo falhar, peça reenvio de mensagem

30

(71)

QC-MDPC McEliece

Descrição do esquema com códigos QC-MDPC

• Chave pública é

ga primeira linha do segundo bloco da matrizGe

tnúmero de erros que o código corrige com alta probabilidade

• Chave privada é a primeira linha esparsa

• Segurança baseada na dificuldade de encontrar palavras de baixo peso

• Dispensa o uso das matrizes embaralhadorasSeP!

• Encriptação idêntica à do McEliece original

• Decriptação usa algoritmo debit-flipping

• Se o algoritmo falhar, peça reenvio de mensagem

(72)

QC-MDPC McEliece

Descrição do esquema com códigos QC-MDPC

• Chave pública é

ga primeira linha do segundo bloco da matrizGe

tnúmero de erros que o código corrige com alta probabilidade

• Chave privada é a primeira linha esparsa

• Segurança baseada na dificuldade de encontrar palavras de baixo peso

• Dispensa o uso das matrizes embaralhadorasSeP!

• Encriptação idêntica à do McEliece original

• Decriptação usa algoritmo debit-flipping

• Se o algoritmo falhar, peça reenvio de mensagem

30

(73)

QC-MDPC McEliece

Descrição do esquema com códigos QC-MDPC

• Chave pública é

ga primeira linha do segundo bloco da matrizGe

tnúmero de erros que o código corrige com alta probabilidade

• Chave privada é a primeira linha esparsa

• Segurança baseada na dificuldade de encontrar palavras de baixo peso

• Dispensa o uso das matrizes embaralhadorasSeP!

• Encriptação idêntica à do McEliece original

• Decriptação usa algoritmo debit-flipping

• Se o algoritmo falhar, peça reenvio de mensagem

(74)

QC-MDPC McEliece

Descrição do esquema com códigos QC-MDPC

• Chave pública é

ga primeira linha do segundo bloco da matrizGe

tnúmero de erros que o código corrige com alta probabilidade

• Chave privada é a primeira linha esparsa

• Segurança baseada na dificuldade de encontrar palavras de baixo peso

• Dispensa o uso das matrizes embaralhadorasSeP!

• Encriptação idêntica à do McEliece original

• Decriptação usa algoritmo debit-flipping

• Se o algoritmo falhar, peça reenvio de mensagem

30

(75)

QC-MDPC McEliece

Descrição do esquema com códigos QC-MDPC

• Chave pública é

ga primeira linha do segundo bloco da matrizGe

tnúmero de erros que o código corrige com alta probabilidade

• Chave privada é a primeira linha esparsa

• Segurança baseada na dificuldade de encontrar palavras de baixo peso

• Dispensa o uso das matrizes embaralhadorasSeP!

• Encriptação idêntica à do McEliece original

• Decriptação usa algoritmo debit-flipping

• Se o algoritmo falhar, peça reenvio de mensagem

(76)

Parâmetros sugeridos para QC-MDPC

Baseado nos melhores ataques de decodificação

Tabela 2:Parâmetros sugeridos para cada nível de segurança.

Segurança n0 n r w t Tamanho da Chave

80 2 9602 4801 90 84 4801

128 2 19714 9857 142 134 9857

256 2 65542 32771 274 264 32771

31

(77)

Perguntas?

(78)

Referências i

E. R. Berlekamp, R. J. McEliece, and H. C. Van Tilborg.

On the inherent intractability of certain coding problems.

IEEE Transactions on Information Theory, 24(3):384–386, 1978.

D. J. Bernstein, T. Chou, and P. Schwabe.

Mcbits: fast constant-time code-based cryptography.

InInternational Workshop on Cryptographic Hardware and Embedded Systems, pages 250–272. Springer, 2013.

N. T. Courtois, M. Finiasz, and N. Sendrier.

How to achieve a mceliece-based digital signature scheme.

InInternational Conference on the Theory and Application of Cryptology and Information Security, pages 157–174. Springer, 2001.

32

(79)

Referências ii

J.-C. Faugere, V. Gauthier-Umana, A. Otmani, L. Perret, and J.-P.

Tillich.

A distinguisher for high-rate mceliece cryptosystems.

IEEE Transactions on Information Theory, 59(10):6830–6844, 2013.

J.-C. Faugere, A. Otmani, L. Perret, F. De Portzamparc, and J.-P.

Tillich.

Structural cryptanalysis of mceliece schemes with compact keys.

Designs, Codes and Cryptography, 79(1):87–112, 2016.

(80)

Referências iii

Q. Guo, T. Johansson, and P. Stankovski.

A key recovery attack on mdpc with cca security using decoding errors.

In22nd Annual International Conference on the Theory and Applications of Cryptology and Information Security (ASIACRYPT), 2016, 2016.

K. Kobara and H. Imai.

Semantically secure mceliece public-key cryptosystems-conversions for mceliece pkc.

InInternational Workshop on Public Key Cryptography, pages 19–35. Springer, 2001.

R. J. McEliece.

A public-key cryptosystem based on algebraic coding theory.

Deep Space Network Progress Report, 44:114–116, 1978.

34

(81)

Referências iv

R. Misoczki, J.-P. Tillich, N. Sendrier, and P. S. Barreto.

Mdpc-mceliece: New mceliece variants from moderate density parity-check codes.

InInformation Theory Proceedings (ISIT), 2013 IEEE International Symposium on, pages 2069–2073. IEEE, 2013.

P. W. Shor.

Polynomial time algorithms for prime factorization and discrete logarithms on a quantum computer.

SIAM Journal on Computing, 26(5):1481–1509, 1997.

Referências

Documentos relacionados

Dan Stoica;  The first Francophone International Conference in Information and Communication Sciences; 10th Bilateral Colloquium Franco-Romanian in Information and Communication

Selection and peer-review under responsibility of the scientific committee of the CENTERIS - International Conference on ENTERprise Information Systems / ProjMAN -

Selection and peer-review under responsibility of the scientific committee of the CENTERIS - International Conference on ENTERprise Information Systems / ProjMAN -

In Michelis, G., De e Diaz, M., editores, Lecture Notes in Computer Science; Application and Theory of Petri Nets 1995, 16 th International Conference, volume 935, p´ags.. Citado

van Rijsbergen, editors, Proceedings of the 17rd annual international ACM SIGIR conference on Research and development in information retrieval, pages 13–22. A re-examination of

Editor and Conference Chair, Proceedings of 2019 International Conference on Artificial Intelligence, Information Processing and Cloud Computing.. Faculdade de Engenharia

PhD Resarch Plan Cryptographic Protocol Security Analysis Based on Algorithmic Information Theory Summary The goal of this work is the application of Algorithmic Information Theory

Invited lectures/ Keynotes:  International Conference on Information Technology in Biomedicine 2008  Conference on Medical Informatics and Technologies 2011  Conference on