• Nenhum resultado encontrado

UMA APLICAÇÃO DE CÓDIGOS CORRETORES DE ERROS EM CRIPTOGRAFIA

N/A
N/A
Protected

Academic year: 2021

Share "UMA APLICAÇÃO DE CÓDIGOS CORRETORES DE ERROS EM CRIPTOGRAFIA"

Copied!
7
0
0

Texto

(1)

UMA APLICAC

¸ ˜

AO DE C ´

ODIGOS CORRETORES DE ERROS

EM CRIPTOGRAFIA

Valdemar C. da Rocha Jr. e David Lopes de Macˆ

edo

Grupo de Pesquisa em Comunica¸c˜

oes - CODEC

Departamento de Electrˆ

onica e Sistemas - UFPE

Caixa Postal 7800

CEP 50711-970 Recife PE

E-mail: 99VCR@NPD.UFPE.BR

Resumo

Um novo criptosistema de chave-secreta ´e apresentado cuja estrutura ma-tem´atica baseia-se essencialmente em propriedades de subespa¸cos lineares com-plementares. Este criptosistema ´e bem mais pr´atico e seguro contra ataques com texto-claro escolhido de que o criptosistema equivalente proposto por Rao e Nam, em 1987.

Abstract

A new secret-key cryptosystem is presented whose mathematical structure is essentially based on properties of linear complementary subspaces. This cryp-tosystem is more practical and more secure against chosen-plaintext attacks then the equivalent one proposed by Rao and Nam in 1987.

1

Introdu¸

ao

Em 1994 da Rocha [1] propˆos um criptosistema de chave-secreta baseado em c´odigos de bloco lineares complementares. Dois c´odigos lineares C1 e C2 de

mesmo comprimento de bloco n, sobre um corpo finito GF(q), s˜ao definidos como complementares [2] quando a ´unica palavra c´odigo que tˆem em comum ´e a palavra toda zero, i.e.,{C1} ∩ {C2} = {0}, e a soma direta de suas palavras

odigo gera todo o espa¸co vetorial sobre GF(q), i.e., {C1} ⊕ {C2} = GF(q)n,

em que ⊕ denota adi¸c˜ao de n-uplas sobre GF(q). No que segue iremos nos deter o suficiente para explicar os aspectos mais importantes daquele criptosis-tema [1], com a finalidade de facilitar a compreens˜ao das modifica¸c˜oes a serem introduzidas no mesmo e que ser˜ao o tema do presente trabalho.

Sabemos que um dado c´odigo de bloco linear bin´ario, com comprimento de bloco n, com k d´ıgitos de informa¸c˜ao e distˆancia m´ınima de Hamming d, ´e capaz de corrigir um n´umero m´aximo de 2n−k padr˜oes bin´arios de erros.

(2)

Por´em, devido a problemas pr´aticos de implementa¸c˜ao e `a natureza do ru´ıdo, os decodificadores comumente empregados s´o corrigem padr˜oes contendo at´e t erros, em que t≤ ⌊(d − 1)/2⌋.

O primeiro criptosistema de chave-secreta baseado em c´odigos de bloco foi proposto por Rao e Nam [3]. Os pr´oprios autores mostraram como quebr´a-lo com um ataque de texto-claro escolhido e propuseram duas vers˜oes modificadas, que evitavam o tipo de ataque por ˆeles proposto mas que tamb´em foram que-bradas, uma delas por Hin [4] e a outra por Struik e Tilburg [5], essencialmente porque ambas empregavam um n´umero de padr˜oes de erros corrig´ıveis limitado pela desigualdade t≤ ⌊(d − 1)/2⌋.

A distin¸c˜ao essencial entre o criptosistema proposto em [1] e criptosistemas convencionais empregando c´odigos corretores de erros ´e que estes ´ultimos fazem uso exclusivo de padr˜oes de erros corrig´ıveis com peso de Hamming n˜ao superior a t, em que t ´e a capacidade de corre¸c˜ao de erros aleat´orios do c´odigo empregado, enquanto que em [1] o conjunto de padr˜oes de erros corrig´ıveis ´e formado pelas 2n−kpalavras c´odigo de um c´odigo linear C2, (n, n−k), complementar ao c´odigo

C1, (n, k), empregado para codificar as mensagens a serem transmitidas ou

armazenadas, n˜ao sofrendo portanto C2 nenhuma restri¸c˜ao quanto ao peso de

Hamming de suas palavras. Dizendo de uma outra forma, os padr˜oes de erros em [1] s˜ao palavras c´odigo de um c´odigo de bloco linear, enquanto que nos criptosistemas convencionais os padr˜oes de erros corrig´ıveis podem ser vistos como pertencendo a um c´odigo n˜ao-linear sem nenhuma estrutura alg´ebrica ´util aparente. Enquanto o criptosistema em [1] tem a vantagem de poder lidar de forma eficaz com os 2n−kpadr˜oes de erros corrig´ıveis, devido `a estrutura linear,

esta mesma estrutura pesa contra pois ´e um ponto extremamente vulner´avel a ataques criptoanal´ıticos. A fim de combater tal vulnerabilidade, durante a opera¸c˜ao era imperiosa a mudan¸ca frequente do c´odigo linear complementar empregado, o que nem sempre ´e interessante do ponto de vista pr´atico. Neste trabalho mostramos como evitar esta dificuldade, mantendo as caracter´ısticas interessantes de imunidade a ataques do antigo sistema.

2

Cifras de Bloco e C´

odigos Corretores de Erros

(3)

m - CODIFICADOR c -GERADOR DE RU´IDO e 6  r - PERMUTAC¸ ˜AO y -Figura 1: Cifrador.

2.1

Criptosistemas Baseados em C´

odigos Corretores de

Erros

Denotaremos por G a matriz geradora do c´odigo C, (n, k, d). Quando G tem a forma sistem´atica G = [Ik : g], em que Ik e G s˜ao respectivamente a matriz

identidade k×k e uma matriz k×(n−k), ´e comum fazer-se um embaralhamento dos dados pr´emultiplicando-os por uma matriz S, k× k, densa e n˜ao-singular. Na descri¸c˜ao a seguir, dos processos de cifragem e de decifragem empregando c´odigos corretores de erros, admitiremos que G n˜ao se encontra na forma sis-tem´atica.

2.1.1 Cifragem

O processo de cifragem do texto-claro consiste dos seguintes passos:

1. Segmentar o texto-claro em blocos m, de k d´ıgitos cada, e us´a-los para gerar palavras c´odigo do c´odigo C, cuja matriz geradora ´e G, efetuando a opera¸c˜ao mG, dando origem `a n-upla c = mG.

2. Adicionar, atrav´es da opera¸c˜ao ou-exclusivo, a palavra c´odigo c ao vetor erro e, este ´ultimo produzido pelo gerador de ru´ıdo, obtendo assim r =

c + e.

3. Finalmente o criptograma y ´e obtido permutando-se as coordenadas da

n-upla r atrav´es da opera¸c˜ao rP, ou seja y = rP, em que P ´e uma matriz de permuta¸c˜ao n× n.

A Figura 1 ilustra a opera¸c˜ao de cifragem descrita anteriormente.

2.1.2 Decifragem

O processo de decifragem do criptograma y gerado a partir do cifrador da Figura 1 consiste dos seguintes passos, ilustrados na Figura 2.

1. Aplicar a permuta¸c˜ao inversa P−1 ao criptograma y a fim de obter r.

(4)

y - PERMUTAC¸ ˜AO INVERSA r - DECODIFICADOR m -Figura 2: Decifrador.

2. Decodificar r, obtido no passo 1, empregando um decodificador para oodigo C, o qual reproduz na sa´ıda o texto-claro m.

2.2

Fonte Aleat´

oria Privada

Nos sistemas criptogr´aficos convencionais, baseados em c´odigos corretores de erros, o segredo consiste do c´odigo C empregado, enquanto que o papel do gera-dor de ru´ıdo, ou geragera-dor de erros aleat´orios, ´e o de uma (mal projetada) fonte

aleat´oria privada [9, p´ag. 8]. Uma fonte aleat´oria privada ´e na verdade um codificador de fonte em que o alfabeto de sa´ıda tem em geral um n´umero de s´ımbolos maior que o alfabeto de entrada, e cuja finalidade ´e “esconder” a es-tat´ıstica de ocorrˆencia dos s´ımbolos de entrada apresentando, idealmente, uma distribui¸c˜ao uniforme de probabilidades para seus s´ımbolos de sa´ıda. Isto ´e al-can¸cado associando um dado s´ımbolo de entrada a um subconjunto dos s´ımbolos de sa´ıda, cuja cardinalidade ´e proporcional `a probabilidade de ocorrˆencia deste s´ımbolo de entrada. Obviamente, a fim de permitir unicidade na decodifica¸c˜ao, tais subconjuntos precisam ser necessariamente disjuntos.

Na aplica¸c˜ao em quest˜ao (vide a Figura 1), a fonte aleat´oria privada, cuja sa´ıda ´e denotada por r, ignora a estat´ıstica dos s´ımbolos do texto-claro pelo fato de associar a cada palavra c´odigo c sempre o mesmo n´umero fixo de n-uplas (padr˜oes de erros corrig´ıveis) produzidas pelo gerador de ru´ıdo. Observa-mos que o mapeamento do conjunto{C} de palavras c´odigo c (associadas aos textos-claros) para o conjunto{R} de vetores r, juntamente com o conjunto {C} (alfabeto de entrada) e o conjunto{R} (alfabeto de sa´ıda), definem um canal

sem ru´ıdo [10, p´ags.111-113], isto ´e, um canal em que a sa´ıda especifica de modo ´

unico a entrada. A cardinalidade do conjunto dos vetores r ´e geralmente bem maior que a do correspondente conjunto de textos-claros. Desta forma ´e prati-camente eliminado o risco de sucesso de um ataque com texto-claro escolhido, com a finalidade de identificar o mapeamento {C} → {R} empregado. Discu-tiremos a seguir alguns aspectos te´oricos de como ´e poss´ıvel implementarmos o gerador de ru´ıdo da Figura 1.

2.3

O Arranjo Padr˜

ao

(5)

e os l´ıderes das classes laterais s˜ao escolhidos dentre os padr˜oes de erros cor-rig´ıveis mais prov´aveis de ocorrer em um dado canal discreto. Quando estamos interessados em aplica¸c˜oes desta ferramenta em criptografia n˜ao estamos neces-sariamente sujeitos `as restri¸c˜oes acima e podemos vislumbrar modos mais gerais de decomposi¸c˜ao de espa¸cos vetoriais, que incluam o arranjo-padr˜ao como um caso especial. Um destes modos, que denominamos de constru¸c˜ao n˜ao-linear,

consiste em empregar um c´odigo C n˜ao-linear e um conjunto de l´ıderes das “classes laterais” que formam um c´odigo tamb´em n˜ao-linear. A segunda, que denominamos de constru¸c˜ao linear e que foi utilizada em [1], consiste em usar

um c´odigo C linear e um conjunto de l´ıderes das classes laterais que formam um c´odigo linear. Denominamos a constru¸c˜ao empregada no estudo de c´odigos corretores de erros de constru¸c˜ao semi-linear, por raz˜oes ´obvias. Os trˆes ti-pos distintos de constru¸c˜ao aqui descritos podem ser usados, com as devidas adapta¸c˜oes, na implementa¸c˜ao do gerador de ru´ıdo da Figura 1, por´em neste trabalho utilizaremos a constru¸c˜ao semi-linear estruturada, descrita na pr´oxima se¸c˜ao.

3

Sistema Proposto

A fim de nos livrarmos das dificuldades associadas `a implementa¸c˜ao pr´atica do criptosistema proposto em [1] e mencionadas acima, introduzimos a seguir a

constru¸c˜ao semi-linear estruturada. A partir de uma palavra x, x ∈ C2, e de

um operador f (.) que leva palavras c´odigo de C2 em palavras c´odigo de C1,

geramos um vetor e (vide Figura 1) da seguinte forma:

e = x + f (x). (1)

Observamos que por meio de (1) podemos gerar 2n−k vetores e, a partir de

palavras c´odigo de C2, os quais em geral n˜ao ser˜ao palavras c´odigo nem de C1

nem de C2. O vetor r passa a ser expresso da seguinte forma:

r = c + e = c + x + f (x) = c+ x, (2) em que c ∈ C1. Denotemos por Gi e por Hi, respectivamente, as matrizes

geradora e de verifica¸c˜ao de paridade do c´odigo Ci, i = 1, 2. Como veremos a

seguir, ´e conveniente utilizarmos para a cifragem a k-upla m1 = m(G1HT2)−1

em vez de m, chamando `a aten¸c˜ao de que a matriz, (G1HT2)−1, k× k, ´e

n˜ao-singular [1]. Consideraremos S = (G1HT2)−1a nossa matriz de embaralhamento

dos dados1e G = SG1a nossa matriz geradora para C1. Assim, a partir de (2)

obtemos,

r = c + e = mG + e = m(G1HT2)−1G1+ e = m1G1+ e = c+ x. (3) 1Os 2k(n−k)odigos lineares distintos C

2, complementares a um dado c´odigo linear C1[1], nos garante grande liberdade na escolha de C2 e, consequentemente, da matriz de embara-lhamento S.

(6)

De maneira an´aloga ao que fizemos para a codifica¸c˜ao das palavras de C1,

consi-deraremos a palavra c´odigo x, x∈ C2, constru´ıda da forma x = m2(G2HT1)−1G2.

Assim sendo, a recupera¸c˜ao do texto claro m ´e realizada a partir do texto-cifrado

y do seguinte modo: 1. Recupera¸c˜ao de r a partir de y: r = yP−1. 2. Recupera¸c˜ao de e a partir de r: m2= rHT1 = (c+ x)H T 1 = xH T 1 = m2(G2HT1)−1G2HT1, portanto, x = m2(G2HT1)−1G2e finalmente, e = x + f (x).

3. Recupera¸c˜ao do texto-claro m a partir de c:

c = r− (x + f(x)),

m = cHT2 = m(G1H2T)−1G1HT2.

4

Coment´

arios

A chave-secreta do sistema acima proposto ´e formada pelas matrizes geradora e de verifica¸c˜ao de paridade, respectivamente, dos c´odigos C1 e C2, e pela fun¸c˜ao

f (.). Por´em, revelando C1 e C2, e mantendo secreta apenas a fun¸c˜ao f (.), este

sistema manter-se-´a computacionalmente seguro desde que a cardinalidade do conjunto de palavras c´odigo de C2 seja elevada, por exemplo, n˜ao inferior a

2100 ≃ 1030, visando evitar uma busca exaustiva das n-uplas x + f (x), num

ataque com texto-claro escolhido.

Referˆ

encias

[1] V. C. da Rocha, Jr.,“A secret-key cipher based on linear complementary co-des”, IEEE International Symposium on Information Theory, Trondheim, Norway, 27 de junho a 01 de julho de 1994. Publicado no livro de resumos, p´agina 346.

[2] V. C. da Rocha, Jr.,“Complementary cyclic codes”, Communiations and

Signal Processing Series: 3, Communication Theory and Applications II.

Editors: B. Honary, M. Darnell and P.G. Farrell. HW Communications Ltd., p´aginas 37-40, 1994.

[3] T. R. N. Rao and K. H. Nam,“Private-key algebraic-code encryptions”,

IEEE Trans. Inform. Theory, vol.35, no.4, pp.829-833, July 1989.

(7)

[5] R. Struik and J. van Tilburg,“The Rao-Nam scheme is insecure against a chosen-plaintext attack”, Lecture Notes in Computer Science 293;

Ad-vances in Cryptology: Proceedings of Crypto’87, C. Pomerance, Ed., Santa

Barbara, CA, Aug. 16-20, pp.445-457. Berlin: Springer-Verlag, 1988.

[6] R. J. McEliece,“A public-key cryptosystem based on algebraic coding the-ory”, DSN Progress Report, Jet Propulsion Laboratory, Pasadena, CA, pp. 114-116, Jan./Feb. 1978.

[7] E. M. Gabidulin, A. V. Paramonov and O. V. Tretjakov, “Ideals over a non-commutative ring and their application in cryptology”, Advances in

Cryptology, EUROCRYPT’91 (Ed. D.W. Davies), Lecture Notes in

Com-puter Science No.547. Berlin and Heidelberg:Springer, 1991, pp.482-489.

[8] V. C. da Rocha, Jr.,“Secret-key cryptosystems based on algebraic codes”, IEEE Information Theory Workshop. Salvador, Bahia, 21 a 26 de junho de 1992. Publicado no livro de resumos, p´aginas 92-93.

[9] G. J. Simmons, Contemporary Cryptology, IEEE Press, New York, 1992.

[10] N. Abramson, Principles of Information and Coding, New York: McGraw Hill, 1963.

[11] W. W. Peterson and E. J. Weldon Jr., Error-Correcting Codes, Massachus-sets: MIT Press, 1972.

Referências

Documentos relacionados

Conduza os testes apropriados e fa¸ ca intervalos de confian¸ ca para a diferen¸ca de m´ edias populacionais... Queremos verificar se as resistˆ encias de dois tipos de vigas de a¸

Trata-se de uma concretiza¸ c˜ ao do IAC quando se obt´ em a amostra (x 1 ,.. , x n ), o intervalo passa a ser num´ erico e a interpreta¸ c˜ ao conveniente ´ e: se obtivermos v´

Os dois cap´ıtulos anteriores apresentaram intervalos de confian¸ ca e testes de hip´ oteses para o parˆ ametro de uma ´ unica popula¸ c˜ ao (a m´ edia µ, a variˆ ancia σ 2 ou

De experiˆ encias anteriores, considera-se que a resistˆ encia ao desmoronamento de tais tijolos ´ e normalmente distribu´ıda com valor m´ edio superior ou igual a 200 kg e

Considere agora a seguinte tabela de frequˆ encia para intervalos de

Caso n˜ ao tenhamos informa¸ c˜ oes suficientes, podemos utilizar informa¸ c˜ oes pessoais para criar uma probabilidade sobre a ocorrˆ encia do evento A..?. Probabilidade condicional

probabilidade m´ınima de pagar o empr´ estimo para que o Lucro seja positivo (usando um juros de 2%)?.. Vari´ avel

A amostra ´ e utilizada quando n˜ ao temos acesso a popula¸ c˜ ao toda e serve como base para inferir sobre quantidades de interesse relacionadas ` a popula¸ c˜ ao....