MATEMATICA APLICADO A CRIPTOGRAFIA - CURSOS DE SEGURANÇA DA INFORMAÇÃO PROFº VALDIR ZIMBA INSTITUTO CIENTÍFICO DE ENSINO SUPERIOR E PESQUISA – UNICESP DEPARTAMENTO DE TECNOLOGIA CURSO DE TECNOLOGIA SEGURANÇA DA INFORMAÇÃO – TSI DISCIPLINA: MATEMÁTICA APLICADA A CRIPTOGRAFIA – MAC PROFESSOR: VALDIR SILVA DOS SANTOS ZIMBA MATEMÁTICA APLICADA A CRIPTOGRAFIA FERRAMANTAL MATEMÁTICO VOLTADO AO ESTUDO DOS ALGORITMOS CRIPTOGRÁFICOS AGO 2008 1
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
MATEMATICA APLICADO A CRIPTOGRAFIA - CURSOS DE SEGURANÇA DA INFORMAÇÃOPROFº VALDIR ZIMBA
INSTITUTO CIENTÍFICO DE ENSINO SUPERIOR E PESQUISA – UNICESP
DEPARTAMENTO DE TECNOLOGIA
CURSO DE TECNOLOGIA SEGURANÇA DA INFORMAÇÃO – TSI
DISCIPLINA: MATEMÁTICA APLICADA A CRIPTOGRAFIA – MAC
PROFESSOR: VALDIR SILVA DOS SANTOS ZIMBA
MATEMÁTICA APLICADA A CRIPTOGRAFIA
FERRAMANTAL MATEMÁTICO VOLTADO AO ESTUDO DOS
ALGORITMOS CRIPTOGRÁFICOS
AGO 2008
1
MATEMATICA APLICADO A CRIPTOGRAFIA - CURSOS DE SEGURANÇA DA INFORMAÇÃOPROFº VALDIR ZIMBA
1- INTRODUÇÃO.
A teoria de conjuntos é estudada e aplicada em vários ramos da atividade
humana, qualquer atividade onde seja necessária a sistematização ou a
organização de idéias e procedimentos nela será utilizada conceitos da teoria
de conjuntos. Os conjuntos numéricos foram organizados conforme a
necessidade da aplicação das operações de adição, subtração multiplicação,
divisão e radiciação para representar situações do dia-a-dia.
A matemática para criptografia está contida dentro da teoria numérica e da
aritmética básica. É necessário retomar o estudo da aritmética básica e rever
conceitos básicos da formação numérica, tais como: divisor, múltiplo, primos,
compostos, par, ímpar etc.
Começamos estudando a formação dos conjuntos numéricos e a capacidade
que os mesmos apresentam para suportar as operações numéricas: adição,
subtração, multiplicação, divisão, potenciação e radiciação.
2- CONJUNTOS NUMÉRICOS
Os números foram organizados em conjuntos conforme suas propriedades e de
acordo com a capacidade de representar situações do dia-a-dia. O primeiro
conjunto numérico a ser apresentado é o conjunto dos números naturais (N)
em seguida aparece o conjunto dos números inteiros relativos (Z) , logo após,
temos o conjunto dos números racionais relativos (Q) e o conjunto dos
números irracionais (I), da união desses dois últimos surge o conjunto dos
números reais (R) e por fim, é apresentado o conjunto dos números complexos
(C) .
2.1 - CONJUNTO DOS NUMEROS NATURAIS (N)
Os números naturais aparecem na vida do cidadão desde muito cedo, surge da
capacidade natural do indivíduo de enumerar quantidades, relacionar
elementos de conjuntos distintos e fazer correspondência entre quantidades
para que suas necessidades básicas sejam satisfeitas. É comum a criança
2
MATEMATICA APLICADO A CRIPTOGRAFIA - CURSOS DE SEGURANÇA DA INFORMAÇÃOPROFº VALDIR ZIMBA
utilizar os números naturais para que seus desejos sejam escutados e
satisfeitos. A criança pede: “uma mamadeira”, “dois brinquedos”, “três balas”
etc. Essas quantificações são representadas no conjunto dos números naturais
N= { 0,1,2,3,4,...}.
O conjuntos dos números naturais, suporta e modela as situações que
envolvem a operação de adição, ou seja, sempre que forem utilizados números
naturais na adição é possível encontrar um número do conjunto N que seja o
resultado da operação realizada. Isso é conhecido como a propriedade do
“fechamento”, assim enunciada: “a soma de dois números naturais é um
números natural”. Dizemos então que o conjunto N é fechado em relação à
operação de adição.
Porém, quando se trata da operação de subtração não é possível dizer o
mesmo. Não é possível modelar problemas que envolvam subtração de
quantidades apenas com números naturais, pode acontecer da quantidade a
ser retirada (subtraendo) ser maior que a quantidade existente (minuendo) e o
resultado da operação extrapolar o conjunto dos números naturais.
(18 - 20 = -2) .
A quantificação, negativo dois (-2), é exógeno ao conjunto N. Logo, podemos
concluir que a subtração não é fechada no conjunto dos naturais. É necessário
organizar um outro conjunto numérico que dê suporte esse tipo de modelagem.
2.2 – CONJUNTO DOS NÚMEROS INTEIROS RELATIVOS (Z)
A necessidade de representar quantidades não positivas e não nula gerada,
em algumas situações, pela operação de subtração levou a uma ampliação do
conjunto dos naturais. Desta forma, cada número natural, não nulo, deu origem
a dois números inteiros e relativos: um positivo (+) e outro negativo (-). O zero
passou a ser o número referencial e conjunto Z foi gerado e organizado com
quantidades negativas a esquerda do zero e quantidades positivas a direita do
zero, -2, -. Z = { ...-31, 0, 1, 2, 3, ... } .
3
MATEMATICA APLICADO A CRIPTOGRAFIA - CURSOS DE SEGURANÇA DA INFORMAÇÃOPROFº VALDIR ZIMBA
A subtração de dois números inteiros sempre será um número inteiro.
Podendo, o resultado, ser positivo (crédito), negativo (débito) ou nulo. O
mesmo ocorre com a adição algébrica de números inteiros. O problema dos
números inteiros (Z) surge na operação de divisão porque nem sempre a
divisão de dois inteiros resulta em número inteiro. ( 25 : 2 = 12,5 ).
Logo, a divisão não é fechada em Z, o que obriga a organização de outro
conjunto numérico que suporte a operação de divisão.
2.3 - CONJUNTO DOS NÚMEROS RACIONAIS REALTIVOS (Q).
Os quocientes não exatos não podem ser representados dentro do conjunto
dos inteiros relativos, é necessário que o conjunto seja ampliado para que
essas quantidades possam ser incluídas e as modelagens que representem
situações de divisões com resto diferente de zero possam ser efetuadas.
A idéia principal é pensar que na vida real o espaço entre dois números inteiros
pode vir a ser dividido em quantas partes se queira, logo, para cada divisão
não exata existirá uma fração própria (denominador maior que o numerador)
associada. Ou seja, entre dois inteiros podem existir infinitos números não
inteiros. A reunião dos inteiros com todas as frações forma o conjunto dos
Com a ampliação do conjunto dos inteiros para o conjunto dos racionais a
operação de divisão passou a ter fechamento válido. Ou seja,
},{ *
b
aZbZaQ ∈∈= , qualquer números que possa ser transformado em
fração será considerado números racional.
O conjunto dos números racionais é fechado para as operações: adição,
subtração, multiplicação e divisão. Porém, a radiciação nos racionais (Q) não é
fechada porque as raízes não exatas extrapolam a fronteira dos números
racionais, criando uma dicotomia numérica. Todos os números que poderem
ser colocados na forma de fração serão conhecidos como números irracionais.
4
MATEMATICA APLICADO A CRIPTOGRAFIA - CURSOS DE SEGURANÇA DA INFORMAÇÃOPROFº VALDIR ZIMBA
2.4 – CONJUNTO DOS NÚMEROS IRRACIONAIS ( I )
O fato de não se tornar fração nega a condição de racionalidade o que remete
o número, automaticamente, para o conjunto dos Irracionais. Dentro dessa
plêiade de números encontramos as raízes não exatas ( etc7 11,5,3 ) e
outros números tais como: 1415,3=π (razão entre o comprimento e o
diâmetro de uma circunferência), e = 1,71 ( base dos logaritmos naturais ) .
2.5 – CONJUNTO DOS NÚMEROS REAIS (R)
Como não é possível ampliar o conjunto dos racionais (Q) para que os
racionais ( I ) sejam incluídos os dois conjuntos foram reunidos gerando dessa
união o conjunto dos números reais (R) . R = Q U I.
Apesar da reunião desses dois conjuntos a operação de radiciação nos reais
(R) continua sendo não fechada. É possível aplicar a radiciação em números
reais e o resultado ser número não real. A raiz quadrada de -4 ( 4− ) é um
número não real. Seguindo essa mesma linha de raciocínio podemos concluir
que qualquer radiciação com índice par e radicando negativo não extrapolará o
conjunto dos reais.
Os conjuntos numéricos foram organizados e representados em retas
numeradas de forma que cada número ocupasse um lugar na reta numerada e
cada lugar na reta abrigasse um número. Desta forma, existe uma
correspondência biunívoca entre os espaços da reta e os números dos
conjuntos. A essa relação dá-se o nome de representação gráfica do conjunto
numérico.
5
MATEMATICA APLICADO A CRIPTOGRAFIA - CURSOS DE SEGURANÇA DA INFORMAÇÃOPROFº VALDIR ZIMBA
Figura 1: Reta dos números reais
2.6 – CONJUNTO DOS NÚMEROS COMPLEXOS (C)
A radiciação não é fechada no conjunto dos números reais e para solucionar
esse problema foi criado a unidade imaginária ( i ) . Essa unidade imaginária
foi definida como sendo igual a raiz quadrada de -1. Logo, 12 −=i , a idéia foi
considerar um número com duas partes, uma real e outra imaginaria. O
binômio ibaZ .+= , que representa o número complexo, pode ser
representado no plano cartesiano com a parte real representada no eixo das
abscissas, e a parte imaginária no eixo das ordenadas.
O número complexo (Z) representa um afixo do plano cartesiano conforme a
organização cartesiana ( plano Argand-Gauss).
Figura 2 : Plano Argand-Gauss
-3 0 -2 -1 ... +1 +2 +3 ...
R
eixo real
eixo imaginário
Z (a,b)
a
b
6
MATEMATICA APLICADO A CRIPTOGRAFIA - CURSOS DE SEGURANÇA DA INFORMAÇÃOPROFº VALDIR ZIMBA
3- INTERVALO NUMÉRICO
É um subconjunto do conjunto dos números reais e pode ser limitado
superiormente e inferiormente.
3.1-INTERVALO LIMITADO SUPERIORMENTE e MAOIR INTEIRO DO
INTERVALO
Intervalo de números reais que apresenta limite superior, ou seja, existe um
número maior que todos do conjunto (supremo). O intervalo limitado por cima
não apresenta limite inferior. Nos intervalos limitados por cima o supremo pode
ser inteiro ou não, quando o supremo é um número inteiro este supremo
assume o valor do maior inteiro do intervalo. No caso do supremo não ser
inteiro, existe um inteiro, imediatamente, a esquerda do supremo que será o
maior inteiro do intervalo limitado por cima. Conforme figura 3.
Figura 3: Intervalo limitado por cima
Exemplo:
a) 3145,13 = b) 2565,24 −=−
3.2 – INTERVALO LIMITADO INFERIORMENTE e MENOR INTEIRO DO
INTERVALO.
Intervalo de números reais que apresenta limite inferior, ou seja, existe um
número real que é menor que todos os números do conjunto (ínfimo). O
intervalo com limitado por baixo não apresenta limite superior. O ínfimo de um
intervalo limitado por baixo pode ser inteiro ou não, no caso de ser inteiro, o
ínfimo é o menor inteiro do intervalo. Quando o ínfimo não é um número inteiro,
Rx
a
, maior inteiro do intervalo termina em x é o intero “a” .
7
MATEMATICA APLICADO A CRIPTOGRAFIA - CURSOS DE SEGURANÇA DA INFORMAÇÃOPROFº VALDIR ZIMBA
o inteiro que está, imediatamente, a direita será o menor inteiro do intervalo
considerado.
Figura 4: intervalo limitado por baixo
Exemplo:
a) 1345,12 = b) 2337,23 −=−
4- ALGORITMOS FUNDAMENTAIS
Iniciamos o estudo da matemática básica para aplicação na criptografia
definido os algoritmos básicos, tais como: divisão simples, módulo resto,
máximo divisor comum (algoritmo de Euclides simples) e algoritmo estendido
de Euclides.
4.1 – ALGORITMO DA DIVISÃO
Sejam os números inteiros “a” (dividendo) e “b” (divisor) , com b ≠ 0, ao
dividirmos “a” pelo número “b” serão determinados os números inteiros “q”
(quociente) e “r” (resto) de tal forma que a = b.q + r , com 0 ≤ r < b –1 .
No caso do número “r” ser igual a zero, dizemos que o número “b” divide o
número “a”, o que implica dizer que “a” é múltiplo de “b”. ou seja, quando
existir um inteiro “q” cujo produto com “b” seja igual ao próprio “a” . (
Zqcomqba ∈= . ). Quando o resto (r) for um número que pertença ao
intervalo: 0 < r < b –1, consideramos que “b” não divide “a” , ou seja , “a” não
é múltiplo de “b”.
Rx
a
, menor inteiro do intervalo começa em x é o inteiro “a”.
8
MATEMATICA APLICADO A CRIPTOGRAFIA - CURSOS DE SEGURANÇA DA INFORMAÇÃOPROFº VALDIR ZIMBA
O resto da divisão de dois inteiros não pode ser negativo, seu valor é no
máximo igual ao antecessor do divisor (b). Da operação de divisão entre dois
números inteiros é possível extrair as definições de múltiplo e divisor.
Tabela-1 Algoritmo da divisão
4.2- ALGORITMO REDUÇÃO MODULAR ( MÓDULO RESTO )
Considerando os números inteiros “a” e “b” , com “b” positivo, a operação “a”
módulo “b” traz o resto da divisão entre “a” e “b” ou o seu equivalente modular.
Por definição temos: “a” módulo resto “b” igual ao número “a” subtraído do
produto do maior inteiro da divisão de “a” por “b” pelo próprio número “b” .
a ( mod b) = a – ( ba / . b )
Exemplo:
1-Determine:
a) 231 ( mod 7 ) = )7.7/231(231−
= )7.33(231−
= )7.33(231−
= )231(231−
= 0 .
Observação 1: Quando o resultado da operação, a ( mod b), for igual a
zero , temos que “a” é múltiplo de “b”. ou seja: a = k.b com k ∈Z.
).(,,0 adedivisorébabquetemosrPara =
adedivisorénãobquetemosbrPara ,10 −<<
ba
qr10. −<≤+= brcomrqba
9
MATEMATICA APLICADO A CRIPTOGRAFIA - CURSOS DE SEGURANÇA DA INFORMAÇÃOPROFº VALDIR ZIMBA
b) 123 ( mod 13) = )13.13/123(123 −
= )13.46,9(123 −
= )13.9(123 −
= )117(123 −
= 6
c) 17 ( mod 23 ) = )23.23/17(17 −
= )23.739,0(17 −
= )23.0(17 −
= )0(17 −
= 17
d)-23 ( mod 5 ) = )5.5/23(23 −−−
= )5.6,4(23 −−−
= )5.5(23 −−−
= )25(23 −−−
= 2523 +−
= 2
Observação 3: Quando o número “a” for menor zero, a operação, a ( mod b ),
traz o equivalente ao resta da divisão de “a” por “b”, levando em consideração
o conjunto Inteiro módulo b )( bZ . Será estudo nos próximos capítulos.
Tabela-2 Algoritmo da operação módulo resto
a ( mod b) = a – ( ba / . b ) , com *ZbeZa ∈∈
ba / - maior inteiro da divisão de a por b.0)mod(,"""" =baentãobdemúltiploforaSe
.)mod(, abaentãobaSe =<
10
MATEMATICA APLICADO A CRIPTOGRAFIA - CURSOS DE SEGURANÇA DA INFORMAÇÃOPROFº VALDIR ZIMBA
0 , ( mod )
" " " ".
[ (mod ) ] .
Se a então a b é equivalente ao resto
da divisão de a por b Podemos entrar oequivalente
positivo fazendo a b b
<
+
4.3 ALGORITMO SIMPLES DE EUCLIDES
Procedimento que utiliza o módulo resto para que seja determinado o maior
divisor comum (m.d.c) entre dois números inteiros. O algoritmo considera dois
números inteiros positivos “a” e “b” , com a > b e executa a operação: a
( mod b ). Se o resultado for zero, temos que m.d.c.( a ,b ) = b, se não; o
algoritmo faz “a” assumir o valor de “b” e “b” assumir o valor presente da
operação: a ( mod b ). O procedimento se repete até que o resultado da
operação: a (mod b) seja igual a zero, quando isso acontecer o m.d.c (a,b)
recebe o valor presente “b”.
O máximo divisor comum é importante na aritmética de frações porque
possibilita a simplificação imediata de uma fração, bastando dividir o
numerador e denominador da fração pelo máximo divisor comum a ambos o
que faz aparecer a fração irredutível.
Exemplo : 4
3
24
18
24
186
6
≅≅ ÷
÷
Para a criptografia de chaves assimétrica1, o maior divisor comum é importante
porque quando o mdc (a,b) for igual a 1, os números “a” e “b” são primos
relativos o que indica existe um número que é inverso multiplicativo de “b” no
conjunto Z módulo “a”. É possível dizer que o mdc é o embrião do que,
futuramente, chamaremos de par de chaves assimétricas.
Tabela-3 Algoritmo simples Euclides
1 A criptografia de chaves assimétricas, também conhecida de criptografia de chaves públicas, é aquela na qual, a codificação é realizada com uma chave, chamada de pública, e a decodificação é feita com outra chave, conhecida como particular. Existe uma relação de simetria entre as chaves, porém, sair de uma chave e chegar na outra é tarefa, na prática impossível.
11
MATEMATICA APLICADO A CRIPTOGRAFIA - CURSOS DE SEGURANÇA DA INFORMAÇÃOPROFº VALDIR ZIMBA
Início: mdc (a,b ) = mdc [ b, r ] , com r = a ( mod b)
Se r = 0, então mdc (a, b) = b ( fim)
Se r ≠ 0, então a ← b e b ← r (volta ao início) .
O inconveniente do algoritmo simples de Euclides, para aplicação em pesquisa
de chaves assimétricas, é o fato dos números “a” e “b” assumirem valores
muito grandes o que torna o inviável o tempo de processamento.
Exemplo:
Calcule o mdc entre os números e determine se são primos relativos:
a)248 e 110
mdc ( 248,110 ) = mdc [ 110 , 248 ( mod 110) ]
= mdc [ 110 , 28 ]
= mdc [ 28 , 110 ( mod 28) ]
= mdc [ 28 , 26 ]
= mdc [ 26 , 28 ( mod 26) ]
= mdc [ 26 , 2 ]
= mdc [ 2 , 26 ( mod 2 ) ]
= mdc [ 2 , 0 ]
mdc ( 248,110 ) = 2 .
Como mdc ( 248, 110) é diferente de 1, temos que os números 248 e
110 não são primos entre si.
a) 1175 e 381
mdc (1175, 381) = mdc [ 381 , 1175 ( mod 381) ]
= mdc [ 381, 32 ]
= mdc [ 32, 381 ( mod 32) ]
= mdc [ 32, 29 ]
= mdc [ 29, 32 ( mod 29) ]
= mdc [ 29, 3 ]
12
MATEMATICA APLICADO A CRIPTOGRAFIA - CURSOS DE SEGURANÇA DA INFORMAÇÃOPROFº VALDIR ZIMBA
= mdc [ 3, 29 ( mod 3 ) ]
= mdc [ 3 , 2 ]
= mdc [ 2, 3 ( mod 2 ) ]
= mdc [ 2, 1 ]
= mdc [ 1 , 2 ( mod 1) ]
= mdc [ 1, 0 ]
mdc ( 1175, 381 ) = 1.
Temos que 1175 e 381 são primos entre si.
4.4 - ALGORITMO ESTENDIDO DE EUCLIDES
Determinar o mdc entre dois números “a” e “b” não é suficiente para um
algoritmo ser utilizado na criptografia assimétrica, o método de Euclides apesar
de eficaz na determinação do mdc é inoportuno na prática porque quando os
números “a” e “b” assumirem valores grandes o tempo de processamento para
as divisões aumenta e o armazenamento dos resto na memória do computador
se torna oneroso. Ou seja, na prática, o algoritmo simples de Euclides é pouco
útil na aplicabilidade criptográfica.
Outra propriedade importante que precisava ser explorada era a equação de
coeficientes inteiros que é formada com o mdc entre “a” e ”b” e dois
parâmetros, que denominaremos: ""α e ""β . O grande matemático da
antiguidade, Diafante, apresentou a equação: bad .. βα += , onde ""α , ""β e
“d” são números inteiros sendo “d” o mdc entre os números “a” e ”b”.
Analisando a equação notamos que para que isso ocorra é necessária que ""α
ou ""β seja um número negativo. O fascinante e incrível, é que a definição de
número negativo não era conhecida na época que o matemático Diafante
viveu.
Segundo Coutinho (2000), foi o matemático D. E. Knuth que, em 1981,
apresentou a modificação no algoritmo de Euclides para que fosse possível o
cálculo, simultâneo, dos parâmetros ""α , ""β e “d”. Com isso, o novo algoritmo
passou a ser conhecido como algoritmo estendido de Euclides. Conforme visto
na tabela-4.
13
MATEMATICA APLICADO A CRIPTOGRAFIA - CURSOS DE SEGURANÇA DA INFORMAÇÃOPROFº VALDIR ZIMBA