fundamentos matematicos aplicados a criptografia

12
FUNDAMENTOS MATEMÁTICOS APLICADOS À CRIPTOGRAFIA Sérgio S. Oliveira Resumo: Este trabalho apresenta os principais fundamentos matemáticos aplicados à criptografia moderna. Relata breve histórico da evolução da criptografia moderna e indica as principais referências bibliográficas. Introduz e exemplifica os seguintes tópicos da Teoria dos Números, da Aritmética e da Álgebra Modular: Divisibilidade; Números Primos; Maior Divisor Comum (mdc); Algoritmo de Euclides; Algoritmo Euclidiano Estendido; Congruências; Operações Aritméticas da Congruência; Divisão na Congruência; Inverso multiplicativo; Solução para ax 3 c (mod n) - quando mdc (a,n) =1; Solução para ax 3 c (mod n) - quando mdc (a,n) >1 e c não é divisível por d; d = mdc (a,n). Solução para ax 3 c (mod n), quando mdc (a,n) >1 e c|d, d = mdc (a,n); Congruência Quadrática; Frações na Congruência; Restrições a Frações na Congruência; Expansão de Congruências em Sistemas; Teorema Chinês do Resto; Busca de soluções para o Teorema do Resto Chinês; Uso do Teorema do Resto Chinês; Forma Geral do Teorema do Resto Chinês; Exponenciação Modular; O problema do Logaritmo Discreto; Pequeno Teorema de Fermat; Geração de números primos pelo Pequeno Teorema de Fermat; Função de Euler; Teorema de Euler; Princípio Básico aplicado ao Teorema de Euler; Raízes Primitivas; Raízes Primitivas em campos de números primos; Conclusões sobre raízes primitivas; Inversão de matrizes mod n; Condição necessária para inversão de matriz mod n; Comparação entre inversão de matrizes inteira e mod n; Exemplos de inversão de matrizes mod n; Raiz quadrada mod n; Exemplo de determinação de raiz quadrada mod n; Raiz quadrada de módulo número composto; Equivalência entre determinação de raiz quadrada na congruência e a fatoração de n; Corpos Finitos (Finite Fields). Corpo de Galois (Galois Field – GF); Polinômios mod 2; Divisão de polinômios mod 2; Geração de corpos finitos por Z 2 [X] mod polinômio. Procedimento para geração de corpos finitos por Z 2 [X] mod polinômio. Palavras-chave: Criptografia, Álgebra Modular, Aritmética Modular, Teoria dos Números. Abstract: MATHEMATICAL BASIS APPLIED TO CRYPTOGRAPHY. This work presents the main foundations applied to modern cryptography. It makes a historical abstract about evolution´s modern cryptography. And point to principal bibliography references. The work introduces and give examples about the follwing topics in Basic Number Theory, Modular Aritmetic and Álgebra. Divisibility; Prime Number Theorem; Greatest Common Divisor (gdc); Euclidian Theorem; Extended Euclidian Theorem, Congruences; Aritimetic Operations in Congruence; Division in Conguence; Multiplicative Inverse; Solving ax 3 c (mod n) - when gdc (a,n) =1; Solving ax 3 c (mod n) - when gdc (a,n) >1 e c is not divisible by d; d = gdc (a,n);. Solving ax 3 c (mod n), when gdc (a,n) >1 e c|d, d = gdc (a,n); Quadratic Conguence; Working with Fractions in Congruence; Restrictions at Fractions in Congruence´s Expansion at Systems; Chinês Remainder Teorhem. Searching Solutions at Chinese Remainder Theorem; Aplications to Chinese Remainder Theorem; General Form to Chinese Remainder Theorem; Modular Exponentiation; The Problem of Discrete Logaritm; Fermat´s Little Professor do Curso de Sistemas de Informação do Centro Universitário Euro-Americano (UNIEURO).

Upload: robson-pompeu

Post on 29-Jul-2015

109 views

Category:

Documents


26 download

TRANSCRIPT

Page 1: Fundamentos Matematicos Aplicados a Criptografia

FUNDAMENTOS MATEMÁTICOS APLICADOS À CRIPTOGRAFIA

Sérgio S. Oliveira∗

Resumo: Este trabalho apresenta os principais fundamentos matemáticos aplicados à criptografia moderna.

Relata breve histórico da evolução da criptografia moderna e indica as principais referências bibliográficas.

Introduz e exemplifica os seguintes tópicos da Teoria dos Números, da Aritmética e da Álgebra Modular:

Divisibilidade; Números Primos; Maior Divisor Comum (mdc); Algoritmo de Euclides; Algoritmo Euclidiano

Estendido; Congruências; Operações Aritméticas da Congruência; Divisão na Congruência; Inverso

multiplicativo; Solução para ax ≡ c (mod n) - quando mdc (a,n) =1; Solução para ax ≡ c (mod n) - quando mdc

(a,n) >1 e c não é divisível por d; d = mdc (a,n). Solução para ax ≡ c (mod n), quando mdc (a,n) >1 e c|d, d =

mdc (a,n); Congruência Quadrática; Frações na Congruência; Restrições a Frações na Congruência; Expansão de

Congruências em Sistemas; Teorema Chinês do Resto; Busca de soluções para o Teorema do Resto Chinês; Uso

do Teorema do Resto Chinês; Forma Geral do Teorema do Resto Chinês; Exponenciação Modular; O problema

do Logaritmo Discreto; Pequeno Teorema de Fermat; Geração de números primos pelo Pequeno Teorema de

Fermat; Função φφφφ de Euler; Teorema de Euler; Princípio Básico aplicado ao Teorema de Euler; Raízes

Primitivas; Raízes Primitivas em campos de números primos; Conclusões sobre raízes primitivas; Inversão de

matrizes mod n; Condição necessária para inversão de matriz mod n; Comparação entre inversão de matrizes

inteira e mod n; Exemplos de inversão de matrizes mod n; Raiz quadrada mod n; Exemplo de determinação de

raiz quadrada mod n; Raiz quadrada de módulo número composto; Equivalência entre determinação de raiz

quadrada na congruência e a fatoração de n; Corpos Finitos (Finite Fields). Corpo de Galois (Galois Field – GF);

Polinômios mod 2; Divisão de polinômios mod 2; Geração de corpos finitos por Z2 [X] mod polinômio.

Procedimento para geração de corpos finitos por Z2 [X] mod polinômio.

Palavras-chave: Criptografia, Álgebra Modular, Aritmética Modular, Teoria dos Números.

Abstract: MATHEMATICAL BASIS APPLIED TO CRYPTOGRAPHY. This work presents the main

foundations applied to modern cryptography. It makes a historical abstract about evolution´s modern

cryptography. And point to principal bibliography references. The work introduces and give examples about the

follwing topics in Basic Number Theory, Modular Aritmetic and Álgebra. Divisibility; Prime Number Theorem;

Greatest Common Divisor (gdc); Euclidian Theorem; Extended Euclidian Theorem, Congruences; Aritimetic

Operations in Congruence; Division in Conguence; Multiplicative Inverse; Solving ax ≡ c (mod n) - when gdc

(a,n) =1; Solving ax ≡ c (mod n) - when gdc (a,n) >1 e c is not divisible by d; d = gdc (a,n);. Solving ax ≡ c (mod

n), when gdc (a,n) >1 e c|d, d = gdc (a,n); Quadratic Conguence; Working with Fractions in Congruence;

Restrictions at Fractions in Congruence´s Expansion at Systems; Chinês Remainder Teorhem. Searching

Solutions at Chinese Remainder Theorem; Aplications to Chinese Remainder Theorem; General Form to

Chinese Remainder Theorem; Modular Exponentiation; The Problem of Discrete Logaritm; Fermat´s Little

∗ Professor do Curso de Sistemas de Informação do Centro Universitário Euro-Americano (UNIEURO).

Page 2: Fundamentos Matematicos Aplicados a Criptografia

2

Theorem; Prime Generation with Fermat´s Little Theorem; Euler´s Function φφφφ; Euler Theorem; Basic Principle

Applied to Euler Theorem; Primitive Roots; Primitive Roots at Prime Number Field; Conclusions about

Primitive Roots; Inverting Matrices Mod n; Condition to Inverting Matrices Mod n; Comparision between

Inverting Integer Matrices and InvertingMatrices Mod n; Examples about Inverting Matrices Mod n; Square

Roots Mod n. Searching Square Root Mod n; Equivalence between Searchig Square Root Mod n at Congruence

and Fatoring Prime Numbers; Finite Fields; Galois Field – GF; Polynomial mod 2; Polynomial Divisibility Mod

2; Finite Field Generation by Z2 [X] mod polinomial. Procedure to Finite Field Generation by Z2 [X] mod

polinomial.

Keywords: Cryptography, Number Theory, Modular Artimetic; Modular Algebra

1. INTRODUÇÃO

A criptografia contemporânea utiliza amplamente a capacidade dos sistemas

computacionais, especialmente funções matemáticas. Estas são fundamentais para os

sistemas, pois, antes mesmo das mensagens serem cifradas ou transmitidas, elas têm um valor

numérico; os algoritmos criptográficos são operações algébricas, a construção e análise de

sistemas criptográficos requerem teoria dos números, e muito mais. Daí, para a correta

compreensão dos requisitos de sistemas criptográficos, há necessidade do estudo dos

fundamentos matemáticos aplicados à criptografia.

2. HISTÓRICO

Inicialmente a criptografia desenvolveu-se nos campos militar e diplomático. De

início, assemelhava-se a uma arte que utilizava pequenos fundamentos de lógica, para ocultar

o conteúdo de textos a inimigos potenciais. Sua aplicação cresceu em importância, e, para

salvaguardar uma gama de informações cada vez maior e mais sofisticada, foram surgindo ao

longo do tempo algoritmos cada vez mais bem elaborados.

Porém, ainda até o início do século XX, apesar de muitos algoritmos serem mantidos

em segredo, praticamente todos eles sucumbiam a uma boa criptoanálise. Isto é, a um

processo lógico e intensivo de tentativa de descobrimento dos algoritmos e senhas utilizadas

para apropriar-se das informações cifradas. A maioria sucumbia a estudos de grupos

específicos que utilizavam tanto lógica, matemática, como arte para a decifragem.

Page 3: Fundamentos Matematicos Aplicados a Criptografia

3

Mas a evolução tecnológica alçou a eletrônica e posteriormente a computação para a

execução de tarefas repetitivas de uma forma muitíssimo mais rápida do que se fazia

anteriormente.

Surgiram os dispositivos eletromecânicos, amplamente utilizados durante a Segunda

Grande Guerra Mundial, que automatizaram as inúmeras e repetitivas tarefas de cifragem dos

textos.

Para a criptoanálise de textos cifrados por essas máquinas, como o Enigma – poderoso

segredo do III Reich-, deixou de ser suficiente o trabalho artesanal ou individual, como

executado até antão.

Exigiu a participação de muitos matemáticos e especialistas em criptografia para a

montagem de circuitos eletrônicos capazes de executar muitas operações lógicas em pouco

tempo, forçando a ampliação de conhecimento na área de computação, e dando origem aos

primeiros computadores, todos de grande porte, como o ENIAC e o UNIVAC>

Desde então, à medida que são ampliados os potenciais e o uso das capacidades

computacionais, os algoritmos utilizados na criptografia estão tornando-se cada vez mais

sofisticados.

O desafio da criptografia moderna é construir algoritmos capazes de fazer suas

operações computacionais de forma simples e ao mesmo tempo dificultar a criptoanálise de

forma a contrapor-se a todo poder computacional que um potencial inimigo possa ter.

Além do mais, a criptografia de chave simétrica – modelo único até a década de 1970

– apresentava a dificuldade do problema da distribuição de chaves (Burnett & Paine, 2002),

além do problema do gerenciamento de chaves.

Os novos requisitos da criptografia moderna apontaram para o surgimento de

algoritmos que solucionam os problemas acima e dificultam a criptoanálise, mesmo

considerando-se um alto poder computacional do opositor.

Surgiram publicamente, a partir da década de 80, os algoritmos de chave pública.

Estes são procedimentos que fundamentam sua segurança na dificuldade da inversibilidade de

algumas funções matemáticas. Buscam funções cuja inversibilidade não pode ser resolvida

por todo poder computacional existente hoje, nem pelo previsto para os próximos decênios.

Apontam para a classe dos problemas NP-Hard e utilizam princípios matemáticos

como a impossibilidade da fatoração de números grandes e o problema do logaritmo discreto.

Para introduzir o leitor ao mundo dessas funções matemáticas aplicadas à criptografia

moderna, este trabalho propôs-se a pesquisar os principais fundamentos matemáticos

aplicados nos algoritmos em uso. Como estes princípios não são de domínio público e exigem

Page 4: Fundamentos Matematicos Aplicados a Criptografia

4

certo esforço em seu estudo, este trabalho buscou exemplificar a aplicação dos princípios

apresentados em livros que são referências no assunto: Schneier (1995) e Washington &

Trappe (2001).

Os princípios apresentados foram divididos em duas seções: Teoria dos Números e

Álgebra e Aritmética Modular

3. TEORIA DOS NÚMEROS

Divisibilidade. Sejam a e b inteiros com a ≠ 0. Diz-se que a divide b, se há um inteiro

k tal que b = ak. A notação de divisibilidade é: a|b.Exemplos: 4|16; 5|105;1|b; 2†7 (dois não é

divisor de 7). Para todo a ≠ 0, a| 0, a|a, para todo b, 1|b. Se A propriedade é transitiva: se a|b e

b|c, então a|c. Combinação Linear: se a|b e b|c, então a|(sb + tc), para quaisquer inteiros s e t.

Números Primos. Primo é um numero inteiro p maior que 1, cujos únicos divisores são

p e 1. Um número n que não é primo é chamado número composto e pode ser fatorado, isto é,

escrito na forma de fatores multiplicativos a,b, tais que 1<a,b<n. Todo número inteiro positivo

pode ser escrito como um produto de primos e esta fatoração é única – a menos da

comutatividade dos fatores. Se p | ab, então p|a ou p|b. Generalizando, se p|abc....z, então ou

p|a, ou p|b, ou p|c, ....ou p|c. A função �(x) retorna o número de primos menores que x. Por

exemplo �(20)= 8 pois somente oito números - 2, 3, 5,7,11,13,17e 19 - são números primos

menores que 20. Quando a função �(x) tende ao infinito, tem-se que π(x) ≈ x / ln x. Este

cálculo é importante para determinar, por exemplo, a quantidade de números primos de 100

dígitos. Calculando π(10100) - π(1099) ≈ 3,9 * 1097.

Maior Divisor Comum (mdc). O maior divisor comum de a e b – notação mdc(a,b) – é

o maior inteiro positivo que divide a e b. Quando mdc (c,d) = 1, diz-se que c e d são

relativamente primos. Exemplo mdc (36,24) = 12. Para extrair o de dois números a e b

quaisquer, fatore-os em primos, extraia o mdc(a,b) separando os fatores primos comuns,

considerando os menores expoentes. Exemplo gdc(18, 24) = gdc (21.32,23.3) = 21.31=6. A

fatoração de grandes números não é de fácil execução, uma vez que não é tão fácil determinar

grandes fatores primos. Se a,b são inteiros, sendo pelo menos um dos dois diferentes de zero,

e d=mdc(a,b), então existem inteiros x e y tais que ax + by = d. Em particular, se a e b são

relativamente primos, então ax + by = 1.

Algoritmo de Euclides. É um processamento que permite calcular o mdc de grandes

números c e d, de modo fácil e rápido, pois não requer fatoração dos números. Siga os passos:

(1) Suponha c>d, senão inverta. (2) Faça c/b = q1, chame o resto de r1. (3) Escreva a na

Page 5: Fundamentos Matematicos Aplicados a Criptografia

5

forma: a = b*q1 +r1 .(4) Se r1 = 0, então mdc(c,d) = d, se não continue. (5) Divida b por r1 e o

escreva da forma b = r1 q +r2 . (6) Repita a operação até encontrar ri = 0, daí ri-1 é o mdc(c,d).

Exemplo mdc(1440, 645). 1140 = 2*645+150; 645 = 4*150+45; 150 = 4*45+10; 45 =

4*10+5; 10 = 2*5+0. Então mdc(1140,645) = 5.

Algoritmo Euclidiano Estendido. É a aplicação dos quocientes qi resultados do

algoritmo de Euclides para a solução de problemas de combinação linear do tipo: ax + by = d

e de certas congruências. Há inteiros tais que ax + by = mdc(a,b). As seguintes seqüências

permitem determinar x e y:

x0 = 0; x1 = 1, x1 = qn-1 .xn-1 + xn-2 e y0 =1; y1 =0, yn=qn-1 .yn-1 + yn-2 .

Onde qi são os quocientes do algoritmo de Euclides e qn é o quociente final.

Daí, an xn + bn yn = mdc(a,b).

Congruências. Sejam a,b,n inteiros com n≠0, diz-se que: a ≡ b (mod n), se a-b é

múltiplo (positivo ou negativo) de n. Do mesmo modo, se a = b +kn, para algum k inteiro.

Como corolário, tem-se que: a≡0 (mod n) ↔ a|n; a‘≡ a (mod n); a ≡ b (mod n) ↔ b ≡ a (mod

n); se a ≡ b e b ≡ c (mod n), então a ≡ c (mod n).

Operações Aritméticas da Congruência. Sejam a,b,c,d,n inteiros, com n ≠ 0. Dado que

a ≡ b (mod) n e c ≡ d (mod n), então: a + c ≡ b + d , a - c ≡ b - d , a.c ≡ b.d (mod n). Isto

ocorre devido ao fato de: a = b + nk e c = d + nk. Somando, subtraindo ou multiplicando

ambos lados dessas equações, obtém se os resultados enunciados.

Divisão na Congruência. Já a divisão é uma operação aritmética da congruência que

requer cuidados algébricos maiores. Sejam a,b,c,d,n inteiros, com n ≠ 0 e mdc (a,n) = 1. Se ab

≡ ac (mod n), então b ≡ c (mod n). Isto é, se a e n são relativamente primos, pode-se dividir

ambos lados da conguência por a.

Inverso multiplicativo. Suponha mdc (a,n) = 1. Sejam s e t inteiros tais que as + nt = 1

– s e t podem ser achados usando o algoritmo de Euclides estendido. Então as ≡ 1 (mod n) e

diz-se que s é inverso multiplicativo de a (mod n). Outra notação é: a-1 (mod n), onde a-1 ≡ s

(mod n).

Solução para ax ≡ c (mod n), quando mdc (a,n) =1. Usa-se o algoritmo de Euclides

estendido para achar os inteiros s e t tais que as + nt =1. A solução é x ≡ cs (mod n). Por

exemplo: 12x = 20 (mod 29). Como mdc (12,29) = 1, pelo algoritmo de Euclides obtém-se os

quocientes q1=2; q2=2; q3=2; q4=2. Pela extensão do algoritmo x4 = -12 e y4 = 5; x4 e y4 são

respectivamente s e t. Daí, como x ≡ cs (mod n), então x ≡ 20. (-12) ≡ -240 ≡ -8 ≡ 21 (mod

29). Daí 21 é a solução da equação: 12x = 20 (mod 29).

Page 6: Fundamentos Matematicos Aplicados a Criptografia

6

Solução para ax ≡ c (mod n), quando mdc (a,n) >1 e c não é divisível por d; d = mdc

(a,n). Não há solução para a equação. Por exemplo: para 12x = 21 (mod 28), c = 21 não é

divisível por 2 = mdc (12,28) = mdc (a, n) >1. Daí, não há solução para a equação.

Solução para ax ≡ c (mod n), quando mdc (a,n) >1 e c|d; d = mdc (a,n). Como d|c,

considere a nova congruência: (a/d)x ≡ (c/d) (mod n/d). Os quocientes a/d, b/d e n/d são

inteiros, pois mdc (a,n) = d. Como mdc (a/d, n/d) =1, pois d = mdc (a,n), esta nova

congruência pode ser resolvida pelo procedimento para solução para ax ≡ c (mod n), quando

mdc (a,n) =1, já visto. Dele obtém-se x0 pela aplicação do algoritmo de Euclides estendido.

As soluções da congruência original ax ≡ c (mod n) são: x0, x0 + n/d; x0 + 2(n/d); ..........., x0 +

(d-1)(n/d) (mod n). Por exemplo: para 15x = 20 (mod 25); mdc (a,n) = mdc (15,25) = 5, c =

20, então d|c. pois 20|5. Daí a nova congruência, dividida por d = 5 é 3x = 4 (mod 5). Usando

o procedimento para solução para ax ≡ c (mod n), quando mdc (a,n) =1, obtém-se x0 = 3.

então as soluções da equação original (15x = 20 (mod 25)) são: x0= 3, x0 + 25/5 = 8; x0 +

2(25/5) = 13; x0 + 3(25/5) =18 e x0 + 4(25/5) =23.

Congruência Quadrática: é uma equação do tipo x2 ≡ a (mod n). Considerando a

congruência x2 = 1 (mod 7), por inspeção obtém-se as soluções x1 =1 e x2 = 6. Em geral, se n

é um primo ímpar p, há exatamente duas soluções para a equação; x2 = 1 (mod p).

Considerando a congruência x2 = 1 (mod 15), por inspeção, observa-se que há 4 soluções: x =

1, 4, 11, 14. Portanto, uma congruência quadrática para módulo de número composto pode ter

mais que duas soluções em contraste com uma equação quadrática com números reais, que

têm no máximo duas soluções.

Frações na Congruência. A fim de simplificar notação, convém trabalhar com frações

na congruência cujo significado difere do sentido normal de frações da equivalência. Assim,

½ (mod 8243) é mais fácil escrever que 4122 mod (8243). A regra geral é que uma fração b/a

pode ser usada mod n, se mdc (a,n) =1. A expressão b/a (mod n) na aritmética modular

significa realmente a-1 b (mod n), onde a denota um inteiro para o qual a-1 a ≡ 1 (mod n).

Assim, se multiplicarmos b/a por a, obtém-se b. Em todo cálculo envolvendo símbolo b/a,

esta é a única propriedade usada. Portanto 4122 x 2 ≡ 1 (mod 8243), portanto 4122 e ½

podem ser intercambiáveis.

Restrições a Frações na Congruência. Símbolos de frações não podem ser usados

arbitrariamente na aritmética modular. Por exemplo, 1/10 (mod 10) teria o mesmo significado

que divisão por 0. Mas mesmo com ½ mod 10 haverá problemas. Multiplicar ambos lados de

2 ≡ 12 (mod 10) por ½ daria as seguintes soluções, que não são congruentes: 1 e 6 (mod 10).

Page 7: Fundamentos Matematicos Aplicados a Criptografia

7

Esta incorreção por ambigüidade na notação ocorre quando mdc (a,n) >1, como no caso do

exemplo dado, 2 ≡ 12 (mod 10), quando não é conveniente usá-la.

Expansão de Congruências em Sistemas. Em muitas situações é usual dividir

congruência mod n em um sistema de congruências com mod fatores de n. Por exemplo, x ≡

16 (mod 21). Isto significa que x = 16 + 21 k, para um k inteiro. Mas tal expressão pode ser

reescrita por: x = 16 + 7.(3k) = 16 + 3 (7k). Tais expressões desenvolvem em x ≡ 16 (mod 3)

≡ 1 (mod 3) e x ≡ 16 (mod 7) ≡ 2 (mod 7). Portanto, x ≡ 16 (mod 21) pode ser dividido no

sistema x ≡ 1 (mod 3) e x ≡ 2 (mod 7).

Teorema do Resto Chinês (Chinese Remainder Theorem). Suponha mdc (m,n) =1 .

Dados a e b, existe exatamente uma única solução x mod (mn) para o sistema de congruências

simultâneas x ≡ a (mod m) e x ≡ b (mod n). Este teorema mostra que o processo de expansão

de congruências em sistemas pode ser revertido. Sob certas circunstâncias, um sistema de

congruências pode ser substituído por uma congruência única. Por exemplo, seja o sistema x

≡ 3 (mod 7) e x ≡ 5 (mod 15). Como 80 ≡ 3 (mod 7) ≡ 5 (mod 15), x ≡ 80 (mod 105) é a

solução. O teorema garante que se tal solução existe, ela é única.

Busca de soluções para o Teorema do Resto Chinês. No exemplo dado, a busca da

solução x ≡ 80 (mod 105) para o sistema x ≡ 3 (mod 7) e x ≡ 5 (mod 15) pôde ser feita p[or

inspeção, buscando a coincidência nas séries côngruas x = 3 + 7k (3,10, 17, 24, 31 ...) e x = 5

+ 15 k (20, 35, 50, 65, 80, ..) que dá-se em x = 80. No entanto, para números maiores tal

busca – pela listagem das séries côngruas - é ineficiente. A solução passa pela idéia que x ≡ a

(mod m) ≡ b (mod n), então b + nk ≡ a (mod m) e nk ≡ a - b (mod m), como por hipótese mdc

(m,n) = 1, existe um inverso multiplicativo i para n (mod m), então: k ≡ (a-b) i (mod m).

substituindo de volta para x = b + nk e reduzindo módulo mn, obtém-se a resposta. Para

grandes números, a prova do teorema dá um método eficiente para achar x. Exemplo: seja o

sistema: x ≡ 7 (mod 12345) ≡ 3 (mod 11111). O inverso multiplicativo, já visto, de 11111

(mod 12345) é i = 2471.

Uso do Teorema do Resto Chinês. A idéia principal é que se há uma congruência mod

um número composto, pode-se quebrá-la em congruências simultâneas mod cada fator de

potência primo de n. A vantagem é que é mais fácil analisar congruências mod primos ou

potências primas que trabalhar com números compostos. Por exemplo, para resolver x2 ≡ 1

(mod 35), tem-se o sistema: x2 ≡ 1 (mod 7) e x2 ≡ 1 (mod 5), Como x2 ≡ 1 (mod 5) tem duas

soluções x ≡ ) 1 (mod 5) e x2 ≡ 1 (mod 7), também tem duas: x ≡ )1 (mod 5), há quatro

caminhos: x1 ≡ 1 (mod 5) e x1 ≡ 1 (mod 7), então x1 ≡ 1 (mod 35); x1 ≡ 1 (mod 5) e x2 ≡ -1

(mod 7),então x2 ≡ 6 (mod 35); x2 ≡ -1 (mod 5) e x1 ≡ 1 (mod 7), então x3 ≡ 29 (mod 35); x2 ≡

Page 8: Fundamentos Matematicos Aplicados a Criptografia

8

-1 (mod 5) e x2 ≡ -1 (mod 7),então x4 ≡ 34 (mod 35). Daí as soluções para x2 ≡ 1 (mod 35)

são: x ≡ 1, 6, 29, 34 (mod 35). Em geral, se n é um produto de r primos distintos, então x2 ≡ 1

(mod n) tem 2r soluções.

Forma Geral do Teorema do Resto Chinês. Sejam m1, ....., mk inteiros com mdc (mi,

mj) = 1, para qualquer i ≠ j. Dados os inteiros a1, ....., ak, existe exatamente uma solução x

(mod m1, ....., mk) para o sistema de congruências simultâneas: x ≡ a1 (mod m1), x ≡ a2

(mod m2), ........., x ≡ ak (mod mk). Por exemplo, o teorema garante uma solução única para

as congruências simultâneas x ≡ 1 (mod 11) ≡ -1 (mod 13) ≡ 1 (mod 17). Neste caso, x ≡

1871 (mod 11.13.17).

4. ÁLGEBRA E ARITMÉTICA MODULAR

Exponenciação Modular. Resolver congruências onde apareçam expressões da forma

xa (mod n), requer, em geral, com o trabalho de grandes números. Por exemplo, computar

21024 (mod 789) requer multiplicar 1024 vezes dois e calcular o resto, o que pode requerer

enorme e indesejado espaço de memória. Pode-se calcular também as potências e calcular

uma a uma o resto. Porém, este método é lento e não é prático, especialmente para números

muito grandes. Há um caminho mais eficiente: Calcular, seqüencialmente, as potências de

potências de 2. Assim, 24 ≡ 16, 28 ≡ 256, 216 ≡ 256.256 ≡ 49, 232 ≡ 49.49 ≡ 34;264 ≡ 34.34

≡ 367, 2128 ≡ 367.367 ≡ 559, 2256 ≡ 559.559 ≡ 37, 2512 ≡ 580, 21024 ≡ 580.580 ≡ 286

(mod 789). Como 1234 em binário é representado por 10011010010 então a equação pode ser

transformada em: 21234 ≡ 21024 . 2128 . 264 . 216 . 22 ≡ 286 . 559 . 49 . 4 (mod 789).Os

cálculos nunca excederam 7882. O método pode ser generalizado para ab (mod n). Haverá no

máximo 2 log2b multiplicações mod n.

Pequeno Teorema de Fermat. (Fermat’s Little Theorem). Se p é primo e a não é

divisível por p, então ap-1 ≡ 1 (mod p) Por exemplo, 210 ≡ 1 (mod 11). Daí, pode-se

desenvolver 253 (mod 11). Como 253 = (210)5 23, 253 ≡ 15 . 23 ≡ 8 (mod 11).

Geração de números primos pelo Pequeno Teorema de Fermat. Em geral, quando 2n-1

≡ 1 (mod n) n é primo, porém há exceções. Por exemplo, para n = 561. 560 ≡ 0 (mod 10) ≡ 0

(mod 16) ≡ 0 (mod 2), daí: 2560 ≡ 1 (mod 11) ≡ 1 (mod 17) ≡ 1 (mod 3). Pelo Teorema do

Resto Chinês 2560 ≡ 1 (mod 3. 11 17) ≡ 1 (mod 561), estas exceções são muito raras e quase

sempre pode-se dizer que, se 2n-1 ≡ 1 (mod n), n é primo. Ainda, se 2n-1 não for côngruo a 1

(mod n), n não é primo. Este resultado é uma maneira eficiente de achar números primos.

Primeiramente, parte-se de um número inicial n0, testa-se sucessivamente todo ímpar n > n0

Page 9: Fundamentos Matematicos Aplicados a Criptografia

9

buscando a verificação da congruência 2n-1 ≡ 1 (mod n). Quando o resultado do teste for

verdadeiro, há uma grande chance de o número ser primo e utilizam-se técnicas mais

refinadas para garantir se n é primo. Tal procedimento é bem mais rápido que a tentativa de

fatoração de n, já que ele elimina muitos n. Há caminhos para otimização da busca, como um

teste inicial para eliminação dos números divisíveis por fatores primos.

Função φ de Euler. φ (n) é o número de inteiros a no intervalo 1≤ a ≤ n, tais que mdc

(a,n) = 1. Por exemplo. φ (10) = 4, pois a = 1, 3, 7, 9. Pela definição de números primos p

temos que: φ (p) = p –1. De forma semelhante φ (pr) = pr – pr-1, pois há pr/p = pr-1 múltiplo de

p no intervalo 1≤ a ≤ pr. Desenvolvendo a expressão, obtém-se: φ (pr) = (p – 1/p).pr.

Generalizando, pelo Teorema Chinês do Resto, φ (n) = n Π p – 1/p), para todo p|n. Assim, φ

(75) = 75 . (1- 1/3) . (1 – 1/5) = 40. Para p e q primos, φ (p q) = (p –1).(q - 1).

Teorema de Euler. Se mdc (a,n) =1, então a φ(n) ≡ 1 (mod n). Para um número primo, o

Teorema de Euler redunda no Pequeno Teorema de Fermat. Aplicação: determinar os últimos

três dígitos de 7803. Como φ (1000) = 400 e 7803.= 7800. 73 = (7400) 2. 7400.≡ 1 (mod 1000),

então 7803.≡ 12 73 (mod 1000).≡ 343 (mod 1000). Neste caso, 803 ≡ 3 (mod φ (1000))

Determinar 243210 (mod 101). Pelo Pequeno Teorema de Fermat 2100 ≡ 1 (mod 101), daí

243210 ≡ (2432)100210 ≡ 1 210 ≡ 1024 ≡ 14 (mod 101).

Princípio Básico aplicado ao Teorema de Euler. Sejam a, n, x, y inteiros com n ≥ 1e

mdc (a,n) =1, se x ≡ y (mod φ (n)), então ax ≡ ay (mod n). Pois x = y + φ (n) .k daí

ax = a y + φ (n). k = (a y )(a φ (n)).k ≡ ay 1k ≡ ay (mod n). Em outras palavras, para trabalhar

mod n, deve-se trabalhar mod (φ (n)) no expoente. Este resultado tem larga aplicação nos

cálculos de criptografia atuais.

Raízes Primitivas. Um número a é raiz primitiva mod n, quando se obtém das

potências de a todas as classes não-nulas mod n. Por exemplo: 51 ≡ 5, 52 ≡ 4, 53 ≡ 6, 54 ≡ 2, 55

≡ 3, 56 ≡ 1 (mod 7), então diz-se que 5 é raiz primitiva mod 7. Já as potências de 4 geram 41 ≡

4, 42 ≡ 2, 43 ≡ 1, 44 ≡ 4, 45 ≡ 2, 46 ≡ 1 (mod 7) e não geram as classes de congruência 3, 5 e 6,

daí 4 não é raiz primitiva mod 7.

Raízes Primitivas em campos de números primos. Em geral, quando p é primo, uma

raiz primitiva mod p é um número cujas potências produzem todas as classes não-nulas mod

p. Existem φ (p – 1) raízes primitivas mod p. Em particular, há sempre pelo menos uma. Na

prática, não é difícil encontrá-la, pelo menos se a fatoração de p-1 é conhecida.

Conclusões sobre raízes primitivas. Seja g uma raiz primitiva para um número primo

p. Se n é um inteiro, então gn ≡ 1 (mod p) se, e somente se, n ≡ 0 (mod p –1). Se j e k são

inteiros, então gj ≡ gk (mod p) se, e somente se, j ≡ k (mod p – 1).

Page 10: Fundamentos Matematicos Aplicados a Criptografia

10

Inversão de matrizes mod n. A determinação da matriz inversa mod efetuada pelos

métodos comuns de inversão de matriz desde que sejam observadas as regras para operação

de frações na congruência.

Condição necessária para inversão de matriz mod n. Sejam M e N matrizes inteiras

mod n e I a matriz identidade. Suponha MN ≡ I (mod n). Então det(M).det(N) ≡ det (MN) ≡

det(I) ≡ 1 (mod n), Portanto, det (M) tem um inverso mod n, o que significa que det(M) e n

devem ser relativamente primos. Daí, uma matriz quadrada é inversível se, e somente se, seu

determinante e n são relativamente primos.

Comparação entre inversão de matrizes inteira e mod n. O inverso de uma matriz

inteira pode ser sempre escrito como uma matriz inteira dividida pelo determinante da matriz

original. Para achar o inverso de uma matriz, usam-se números racionais e depois retorna-se

para o campo mod n. Assim, Seja A = ((a,b), (c,d)). Então A-1 = det A ((d, -b),(-c,a)). Como

para os racionais det A = 1/(ad – bc), basta então buscar em mod o inverso multiplicativo para

(ad – bc). .

Exemplos de inversão de matrizes mod n. Seja B = ((1,5), (2,3)) (mod 13). Como det

B = -7, calcula-se op inverso multiplicativo -7 mod 13. Como 11 x (-7) ≡ 1 (mod 13), então –

1/7 pode ser substituído por 11. daí: B-1 ≡ ((1,5), (2,3)) ≡ -1/7 ((3,-5),(-2,1)) ≡ 11 ((3,-5),(-

2,1)) ≡ ((7,10),(4,11)) mod 13. Como é de se esperar: = ((1,5), (2,3)) X ((7,10),(4,11)) =

((27,65),(26, 43)) ≡ ((1,0),(0,1)) mod 13, pois B.B-1 ≡ I mod n. O mesmo vale para a matriz C

= ((1,1,1,),(1,2,3),(1,4,9)) (mod 11). Det C pela regra de Sarrus é 2, então, em números

racionais, a matriz inversa de C é- ½ .((6, -5, 1), (-6, 8, -2), (2, -3 , 1)). Como o inverso

multiplicativo de 2 mod 11 é 6, substituindo ½ por 6 obtém-se M-1 ≡ ((3, 3, 6), (8, 4, 10), (1,

4, 6)) (mod 11). .

Raiz quadrada mod n. Determinar a(s) solução(ões) do problema x2 ≡ b (mod n), onde

n é um produto de dois primos p e q é fácil se se conhecer a fatoração de n. Da mesma forma,

se as soluções são conhecidas é fácil fatorar n. Seja p ≡ 3 (mod 4) um primo e seja y um

inteiro. Faça x ≡ y (p+1) /4 (mod p), então se y tem raízes quadrada mod p, então as raízes de y

mod p são ) x. Se y não tem raiz mod p, então –y tem raízes mod p e estas raízes são ) x.

Exemplo de determinação de raiz quadrada mod n. Achar a raiz quadrada de 5 mod

11. Como (p +1)/4 = 3, então: x ≡ 53 ≡ 4 (mod 11). Como 42 ≡ 5 (mod 11), as raízes quadradas

de 5 mod 11 são ) 4. Já, ao considerar o problema da determinação da raiz quadrada mod de 2

mod 11, tem-se: (p+1)/4 =3, então 23 ≡ 8 (mod 11), mas 82 ≡ 9 ≡ -2 (mod 11). Daí foi

determinada a raiz quadrada de –2, ao invés de 2, porque 2 não tem raiz quadrada mod 11.

Page 11: Fundamentos Matematicos Aplicados a Criptografia

11

Raiz quadrada de módulo número composto. Seja x2 ≡ 71 9mod 77). Como x2 ≡ 71 ≡

1 (mod 7) e x2 ≡ 71 ≡ 5 (mod 11), então x ≡ )1 (mod 7) e x ≡ )4 (mod 11). O teorema do resto

chinês diz que as congruências mod 7 e mod 11 podem ser recombinadas numa congruência

mod 77. Por exemplo para x ≡ 1 mod 7 e x ≡ 4 mod 11, então x ≡ 15 mod 77. Recombinando

todas soluções, tem-se: x ≡ ) 15, ) 29 (mod 77).

Equivalência entre determinação de raiz quadrada na congruência e a fatoração de n.

Suponha n = pq seja um produto de dois primos congruentes a 3 (mod 4) e suponha que y seja

um número relativamente primo a n, o qual tem raiz quadrada mod n. Então achar as quatro

soluções x ≡ ) a, ) b (mod n) é computacionalmente equivalente à fatoração de n.

Corpos Finitos (Finite Fields). Genericamente um corpo finito é um conjunto de

elementos e operações que guardam para adição ao e multiplicação as propriedades de

existência de elemento neutro, comutatividade, associatividade e distributividade para todos

elementos pertencentes ao conjunto e ainda todo elemento tem um inverso da adição e um

inverso multiplicativo. Generalizando um corpo finito possui as operações de adição,

multiplicação, subtração e divisão por elementos não-nulos, além das propriedades

associativa, distributiva e comutativa. Os números reais, complexos, racionais e inteiros mod

p (p é primo) são exemplos básicos de corpos finitos. Já todos os inteiros não são corpos, pois

não permitem divisão e obter resposta no próprio conjunto. Os conjuntos de matrizes

quadradas com números reais não são corpos pois não há comutatividade na multiplicação e

existem elementos não nulos que não possuem inverso multiplicativo (em conseqüência não é

possível dividir por eles).

Corpo de Galois (Galois Field – GF). Para toda potência pn de um primo, existe

exatamente um único corpo finito com pn elementos. Tal corpo finito é chamado GF(pn) em

homenagem ao matemático francês Evariste Galois.

Polinômios mod 2. Seja Z2[X] o conjunto dos polinômios cujos coeficientes são

inteiros mod 2. Por exemplo 1 + X4 + X5 pertence ao conjunto. É possível somar, subtrair e

multiplicar neste conjunto, tanto quanto se trabalha com os coeficientes mod 2. Assim: (X3 +

X2 + 1)(X + 1) = X4 + X3 + X2 + 1. O termo 2X desaparece, pois trabalhamos mod 2.

Divisão de polinômios mod 2. Já a operação de divisão mod 2 requer cuidado especial.

É possível efetuar a divisão com resto, tal como com inteiros. Dessa forma obtém-se X4 + X3

+ 1 = (X2 + 1) ( X2 + X + 1) + X. Pode ser escrito: X4 + X3 + 1 ≡ X (mod X2 + X + 1).

Geração de corpos finitos por Z2 [X] mod polinômio. Trabalho com Z2[X] mod um

polinômio pode ser usado para gerar corpos finitos. Porém, não é possível trabalhar com

Page 12: Fundamentos Matematicos Aplicados a Criptografia

12

qualquer polinômio. O polinômio deve ser irredutível, o que significa que ele não pode ser

fatorado em polinômios de grau menor que 2. Por exemplo, X2 = 1, quando trabalhado com

números reais é um polinômio irredutível, porém em GF(2) não é irredutivel pois X2 + 1 = (X

+ 1) (X + 1) mod 2.

Procedimento para geração de corpos finitos por Z2 [X] mod polinômio.

Generalizando: Zp[X] é um conjunto de polinômios com coeficientes mod p. Escolha P[X]

como sendo um polinômio irredutível mod p de grau n. Faça Gf(pn) ser Zp[X]. Então Zp[X] é

um corpo com pn elementos.

5. CONCLUSÃO

Este trabalho não procurou esgotar o assunto, nem debatê-lo exaustivamente, apenas

propôs-se a introduzir o leitor no mundo das funções matemáticas utilizadas na criptografia

moderna.

Tendo em vista que o assunto criptografia de chave pública ainda está em sua fase de

desenvolvimento e consolidação, a literatura em português sobre o assunto ainda é limitada,

por isso a pretensão do autor é somente apresentação de conceitos. A aplicação das operações

matemáticas apresentadas pode ser estudada com proficuidade em Schneier (1995).

REFERÊNCIAS BIBLIOGRÁFICAS

BURNETT Steve. & PAINE Stephen. Criptografia e Segurança – O Guia Oficial RSA. Rio

de Janeiro: Editora Campus, 2002, p. 45-65.

SCHNEIER, Bruce. Applied Cryptography, 2nd Ed. New York: John Wiley & Sons, Inc.,

1995.

TRAPPE, Wade & WASHINGTON, Lawrence C. Cryptography with Coding Theory. New

Jersey: Prentice Hall Ed., 2001.