1
Criptografia Pós-Quântica baseada em Códigos Corretores de Erros Aluno: Gervásio Protásio dos Santos Neto Orientador: Prof o Dr. Routo Terada IME-USP, São Paulo - 2016 [email protected] 1. Introducão Atualmente, os padrões de encriptação mais populares no mundo são o RSA e criptos- sistemas baseados em curvas elípticas (CCEs). Sua segurança baseia-se na suposta dificuldade do Problema do Logarítmo Discreto (PLD). Contudo, em 1994, Peter Shor propôs um algoritmo quântico que era capaz de resolver o PLD em tempo polinomial [6]. Se computadores quânticos se tornarem viáveis e comerci- almente disponíveis, esse algoritmo pode ser utilizado para facilmente descobrir as chaves secretas RSA ou de CCEs. A comunidade de segurança começou então linhas de pesquisa em algoritmos cripto- gráficos de chave pública que não dependem do PLD. Essa área ficou conhecida como criptografia pós-quântica. Dentre as possíveis alternativa pós-quânticas ao RSA e as ECCs, uma das mais promisso- ras é a que faz uso de códigos corretores de erros [1]. O primeiro criptossistema baseado em códigos foi proposto por McEliece [2] e leva seu nome. Um dos maiores empecilhos para a adoção do criptossistema de McEliece é o tamanho proibitivamente grande das chaves. Neste trabalho estudamos e comparamos as propos- tas feitas em [3] para obter chaves mais compactas para o Critpossistema de McEliece. 2. Códigos Lineares Códigos corretores de erros são estruturas algorítmicas que permitem expressar informa- ção (normalmente, sequências de bits) de tal forma que eventuais erros introduzidos pos- sam ser detectados e corrigidos baseados na informação correta restante. Definição 2.1. Seja K um corpo finito. Dizemos que um código C K n é um código linear se C é um subespaço vetorial de K n . Definição 2.2. Se C K n é um código linear de dimensão k . Uma matriz k × nG tal que, m K k , mG C é uma matriz geradora de C . Uma matriz (n - k ) × nH tal que m K n , Hm T =0 é uma matriz de teste de paridade de C . 3. Criptossistema de McEliece O criptossistema de McEliece tem as seguintes chaves pública e privada, respectivamente: K pub =(SGP, δ ) e K priv =(G, ψ, S, P ) Onde temos: G: uma matriz k x n, geradora de um código linear de dimensão k . A família de códigos a qual o código gerado por G pertence pode ter grande impacto sobre a segurança do sistema e o tamanho das chaves obtidas. ψ : Uma estrutura capaz de corrigir δ erros do código gerado por G. S: Uma matriz k x k , inversível P: Uma matriz de permutação n x n O algoritmo para criptografia é: Data: m K k , a mensagem a ser criptografada Result: c K n , a mensagem criptografada Calcule m 0 = m G, a palavra do código correspondente a m Selecione um vetor aleatório e K n de peso δ (o erro) Calcule c = m 0 e return c O algoritmo de decriptografia é: Data: c = m G e, a mensagem criptografada Result: m, a mensagem original Calcule c = cP -1 = mSG + eP -1 Use o corretor de erros ψ para remover os erros e obter Resolva o sistema linear sobredeterminado dado por mSG = m, obtendo m return m 4. Códigos de Goppa Definição 4.1. Seja K um corpo finito e F uma extensão de K. Tomemos ϕ(x) F [x] e L = {α 0 ,...,α n-1 }⊂ F , com α i 6= α j se i 6= j e ϕ(α k ) 6=0. Podemos definir o seguinte espaço vetorial sobre K : Γ K (L, ϕ)= c K n : n-1 X k =0 c k (ϕ(α k )) -1 · ϕ(x) - ϕ(α k ) x - α k =0 Γ K (L, ϕ) é chamado de o Código de Goppa sobre K com suporte L e polinômio ϕ. Definição 4.2. Um código de Goppa Γ K (L, ϕ) é dito binário irredutível se K = F 2 (o corpo de dois elementos), L F 2 m e ϕ é um polinômio irredutível sobre F 2 m [x]. Teorema 4.1. Um código de Goppa binário irredutível consegue corrigir grau(ϕ) erros. Códigos de Goppa binários irredutíveis (CGBI) possuem um algoritmo eficiente para cor- reção de erros e formam a classe de códigos utilizada pelo criptossistema de McEliece em sua descrição clássica. Entretanto, as chaves obtidas desta forma são extremamente longas. 5. Códigos de Goppa Quase-Diádicos Definição 5.1. Dado um corpo K e um vetor h =(h 1 ,...,h n ) K n ,a matriz diádica Δ(h) é a matriz simétrica com componentes Δ ij = h ij . Definição 5.2. Uma matriz quase-diádica é uma matriz (potencialmente não diádica) de blocos, cujos blocos componentes são matrizes diádicas. Matriz quase diádica. Cada bloco 4x4 é uma matriz diádica, bem como cada quadrado colorido. É possível construir códigos de Goppa com poder de correção de erro equivalente aos CGBIs e que admitem uma matriz de teste de paridade quase-diádica. Chama-se essa subclasse de Códigos de Goppa Quase-Diádicos (QD-Goppa) As simetrias presentes em matrizes quase-diádicas podem ser exploradas para produzir chaves menores que as obtidas com CGBIs clássicos. Além disso, a variente do McEliece que utiliza essa classe de códigos permite tempos de criptografia e decriptografia menores. [4]. 6. Códigos QC-MDPC Códigos MDPC (moderate density parity check ) são uma família de códigos cuja matriz de teste de paridade é pouco densa (sem ser totalmente esparsa). Esses códigos são desprovidos de estrutura algébrica e podem ser interpretados como grafos bipartidos. Por exemplo, um código MDPC tem matriz de teste de paridade H , e: H = 0110000010 1001001000 0100100100 0010100001 Então o grafo correspondente, chamado de Grafo de Tanner será: c 1 c 2 c 3 c 4 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 v 9 v 10 Grafo de Tanner para matriz H : vértices de checagem em verde e de variáveis em azul. Definição 6.1. Um código MDPC C de dimensão k sobre F n 2 é quase-cíclico (QC-MDPC) se existe um inteiro η tal que todo shift circular de η bits de uma palavra de C produz outra palavra de C . Particularmente, todas as linhas de uma matriz de teste de paridade de C podem ser obtidas por shifts de η bits da primeira 7. Comparação As variantes que fora estudadas permitem uma grande redução do tamanho da chave. Uma comparação dos tamanhos (em bits) é feita na tabela abaixo, retirada de [5]: Nível de Segurança CGBI QD-Goppa QC-MDPC 80 460647 20480 4801 128 1537536 32768 9857 256 7667855 65536 32771 Referências [1]D. Augot, L. Batina, D. J. Bernstein, J. Bos, J. Buchmann, W. Castryck, O. Dunkelman, T. Güneysu, S. Gueron, A. Hülsing, et al. Initial recommendations of long-term secure post-quantum systems. Available at pqcrypto.eu.org/docs/initial-recommendations.pdf, 2015. [2] R. J. McEliece. A public-key cryptosystem based on algebraic coding theory. Deep Space Network Progress Report, 44:114–116, 1978. [3] R. Misoczki. Two Approaches for Achieving Efficient Code-Based Cryptosystems. PhD thesis, Université Pierre et Marie Curie-Paris VI, 2013. [4]R. Misoczki and P. S. Barreto. Compact mceliece keys from goppa codes. In Selected Areas in Cryptography, pages 376–392. Springer, 2009. [5]R. Misoczki, J.-P. Tillich, N. Sendrier, and P. S. Barreto. Mdpc-mceliece: New mceliece variants from moderate density parity-check codes. In Information Theory Proceedings (ISIT), 2013 IEEE International Symposium on, pages 2069–2073. IEEE, 2013. [6]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.

Criptografia Pós-Quântica baseada em Códigos Corretores de ... · Se computadores quânticos se tornarem viáveis e comerci-almente disponíveis, esse algoritmo pode ser utilizado

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Criptografia Pós-Quântica baseada em Códigos Corretores de ... · Se computadores quânticos se tornarem viáveis e comerci-almente disponíveis, esse algoritmo pode ser utilizado

Criptografia Pós-Quântica baseadaem Códigos Corretores de Erros

Aluno: Gervásio Protásio dos Santos NetoOrientador: Profo Dr. Routo Terada

IME-USP, São Paulo - [email protected]

1. Introducão

Atualmente, os padrões de encriptação mais populares no mundo são o RSA e criptos-sistemas baseados em curvas elípticas (CCEs). Sua segurança baseia-se na supostadificuldade do Problema do Logarítmo Discreto (PLD).

Contudo, em 1994, Peter Shor propôs um algoritmo quântico que era capaz de resolvero PLD em tempo polinomial [6]. Se computadores quânticos se tornarem viáveis e comerci-almente disponíveis, esse algoritmo pode ser utilizado para facilmente descobrir as chavessecretas RSA ou de CCEs.

A comunidade de segurança começou então linhas de pesquisa em algoritmos cripto-gráficos de chave pública que não dependem do PLD. Essa área ficou conhecida comocriptografia pós-quântica.

Dentre as possíveis alternativa pós-quânticas ao RSA e as ECCs, uma das mais promisso-ras é a que faz uso de códigos corretores de erros [1]. O primeiro criptossistema baseadoem códigos foi proposto por McEliece [2] e leva seu nome.

Um dos maiores empecilhos para a adoção do criptossistema de McEliece é o tamanhoproibitivamente grande das chaves. Neste trabalho estudamos e comparamos as propos-tas feitas em [3] para obter chaves mais compactas para o Critpossistema de McEliece.

2. Códigos Lineares

Códigos corretores de erros são estruturas algorítmicas que permitem expressar informa-ção (normalmente, sequências de bits) de tal forma que eventuais erros introduzidos pos-sam ser detectados e corrigidos baseados na informação correta restante.Definição 2.1. Seja K um corpo finito. Dizemos que um código C ⊂ Kn é um código linearse C é um subespaço vetorial de Kn.Definição 2.2. Se C ⊂ Kn é um código linear de dimensão k. Uma matriz k × n G tal que,∀m ∈ Kk, mG ∈ C é uma matriz geradora de C. Uma matriz (n−k)×n H tal que ∀m ∈ Kn,HmT = 0 é uma matriz de teste de paridade de C.

3. Criptossistema de McEliece

O criptossistema de McEliece tem as seguintes chaves pública e privada, respectivamente:

Kpub = (SGP, δ) e Kpriv = (G,ψ, S, P )

Onde temos:•G: uma matriz k x n, geradora de um código linear de dimensão k. A família de códigos

a qual o código gerado por G pertence pode ter grande impacto sobre a segurança dosistema e o tamanho das chaves obtidas.•ψ: Uma estrutura capaz de corrigir δ erros do código gerado por G.• S: Uma matriz k x k, inversível• P: Uma matriz de permutação n x n

O algoritmo para criptografia é:

Data: m ∈ Kk, a mensagem a ser criptografadaResult: c ∈ Kn, a mensagem criptografadaCalcule m′ = mG, a palavra do código correspondente a mSelecione um vetor aleatório e ∈ Kn de peso δ (o erro)Calcule c = m′ ⊕ ereturn c

O algoritmo de decriptografia é:

Data: c = mG⊕ e, a mensagem criptografadaResult: m, a mensagem originalCalcule c = cP−1 = mSG + eP−1

Use o corretor de erros ψ para remover os erros e obterResolva o sistema linear sobredeterminado dado por mSG = m, obtendo mreturn m

4. Códigos de Goppa

Definição 4.1. Seja K um corpo finito e F uma extensão de K. Tomemos ϕ(x) ∈ F [x] eL = {α0, . . . , αn−1} ⊂ F , com αi 6= αj se i 6= j e ϕ(αk) 6= 0. Podemos definir o seguinteespaço vetorial sobre K:

ΓK(L, ϕ) =

c ∈ Kn :

n−1∑k=0

ck(ϕ(αk))−1 · ϕ(x)− ϕ(αk)

x− αk= 0

ΓK(L, ϕ) é chamado de o Código de Goppa sobre K com suporte L e polinômio ϕ.Definição 4.2. Um código de Goppa ΓK(L, ϕ) é dito binário irredutível se K = F2 (o corpode dois elementos), L ⊂ F2m e ϕ é um polinômio irredutível sobre F2m[x].Teorema 4.1. Um código de Goppa binário irredutível consegue corrigir grau(ϕ) erros.

Códigos de Goppa binários irredutíveis (CGBI) possuem um algoritmo eficiente para cor-reção de erros e formam a classe de códigos utilizada pelo criptossistema de McElieceem sua descrição clássica. Entretanto, as chaves obtidas desta forma são extremamentelongas.

5. Códigos de Goppa Quase-Diádicos

Definição 5.1. Dado um corpo K e um vetor h = (h1, . . . , hn) ∈ Kn, a matriz diádica ∆(h)é a matriz simétrica com componentes ∆ij = hi⊕j.Definição 5.2. Uma matriz quase-diádica é uma matriz (potencialmente não diádica) deblocos, cujos blocos componentes são matrizes diádicas.

Matriz quase diádica. Cada bloco 4x4 é uma matriz diádica, bem como cada quadrado colorido.

É possível construir códigos de Goppa com poder de correção de erro equivalente aosCGBIs e que admitem uma matriz de teste de paridade quase-diádica. Chama-se essasubclasse de Códigos de Goppa Quase-Diádicos (QD-Goppa)As simetrias presentes em matrizes quase-diádicas podem ser exploradas para produzirchaves menores que as obtidas com CGBIs clássicos. Além disso, a variente do McElieceque utiliza essa classe de códigos permite tempos de criptografia e decriptografia menores.[4].

6. Códigos QC-MDPC

Códigos MDPC (moderate density parity check ) são uma família de códigos cuja matrizde teste de paridade é pouco densa (sem ser totalmente esparsa). Esses códigos sãodesprovidos de estrutura algébrica e podem ser interpretados como grafos bipartidos. Porexemplo, um código MDPC tem matriz de teste de paridade H, e:

H =

0 1 1 0 0 0 0 0 1 01 0 0 1 0 0 1 0 0 00 1 0 0 1 0 0 1 0 00 0 1 0 1 0 0 0 0 1

Então o grafo correspondente, chamado de Grafo de Tanner será:

c1 c2 c3 c4

v1 v2 v3 v4 v5 v6 v7 v8 v9 v10

Grafo de Tanner para matriz H: vértices de checagem em verde e de variáveis em azul.

Definição 6.1. Um código MDPC C de dimensão k sobre Fn2 é quase-cíclico (QC-MDPC)se existe um inteiro η tal que todo shift circular de η bits de uma palavra de C produz outrapalavra de C.

Particularmente, todas as linhas de uma matriz de teste de paridade de C podem serobtidas por shifts de η bits da primeira

7. Comparação

As variantes que fora estudadas permitem uma grande redução do tamanho da chave. Umacomparação dos tamanhos (em bits) é feita na tabela abaixo, retirada de [5]:

Nível de Segurança CGBI QD-Goppa QC-MDPC80 460647 20480 4801128 1537536 32768 9857256 7667855 65536 32771

Referências

[1] D. Augot, L. Batina, D. J. Bernstein, J. Bos, J. Buchmann, W. Castryck, O. Dunkelman,T. Güneysu, S. Gueron, A. Hülsing, et al. Initial recommendations of long-term securepost-quantum systems. Available at pqcrypto.eu.org/docs/initial-recommendations.pdf,2015.

[2] R. J. McEliece. A public-key cryptosystem based on algebraic coding theory. Deep SpaceNetwork Progress Report, 44:114–116, 1978.

[3] R. Misoczki. Two Approaches for Achieving Efficient Code-Based Cryptosystems. PhDthesis, Université Pierre et Marie Curie-Paris VI, 2013.

[4] R. Misoczki and P. S. Barreto. Compact mceliece keys from goppa codes. In SelectedAreas in Cryptography, pages 376–392. Springer, 2009.

[5] R. Misoczki, J.-P. Tillich, N. Sendrier, and P. S. Barreto. Mdpc-mceliece: New mceliecevariants from moderate density parity-check codes. In Information Theory Proceedings(ISIT), 2013 IEEE International Symposium on, pages 2069–2073. IEEE, 2013.

[6] P. W. Shor. Polynomial time algorithms for prime factorization and discrete logarithms ona quantum computer. SIAM Journal on Computing, 26(5):1481–1509, 1997.