



Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
O artigo apresenta de forma didática a integração entre as disciplinas teoria dos números e criptografia. Discorre sobre os objetivos e tipos de criptografia. Apresenta as cifras de substituição e de transposição para aplicação prática da criptografia simétrica. Como exemplo de criptografia assimétrica apresenta-se o algoritmo RSA. Também, são apresentados os algoritmos de Euclides e Fermat para fatoração de um número extenso e possível utilização na quebra da integridade do algoritmo RSA.
Tipologia: Notas de estudo
1 / 7
Esta página não é visível na pré-visualização
Não perca as partes importantes!




criptografia. Discorre sobre os objetivos e tipos de criptografia. Apresenta as cifras de substituição e de transposição para aplicação prática da criptografia simétrica. Como exemplo de criptografia assimétrica apresenta-se o algoritmo RSA. Também, são apresentados os algoritmos de Euclides e Fermat para fatoração de um número extenso e possível utilização na quebra da integridade do algoritmo RSA.
Segundo Cavalcante (1997), Teoria dos números é uma ciência muito antiga, que visa primordialmente entender as propriedades e relações entre os números. Na busca de tais propriedades, surge uma grande interação entre este e vários outros ramos da matemática pura (como Álgebra, Análise Real e Complexa, Geometria) e aplicada (como Ciência da Computação e Criptografia). A Criptografia é a ciência que estuda as formas de se escrever uma mensagem em código. Trata-se de um conjunto de técnicas que permitem tornar incompreensível uma mensagem originalmente escrita com clareza, de forma a permitir que apenas o destinatário a decifre e compreenda (Cavalcante, 2004). Para tornar incompreensível a mensagem enviada define-se um protocolo aprovado pelo remetente e pelo destinatário, geralmente chamado de chave. A chave é base de qualquer criptografia, pois, é por meio dela que uma mensagem é codificada e decodificada. A chave indica o nível de dificuldade para decodificar a mensagem. O fator de trabalho para decodificar uma mensagem encriptada é exponencial em relação ao tamanho da chave. Assim, pode-se dizer que uma chave com um tamanho de três dígitos gera mil possibilidades para o intruso lidar, e ao aumentar mais três dígitos a esta chave, ter-se-ia um milhão de possibilidades. O tipo de chave usada depende do tipo da criptografia, isto é, simétrica ou assimétrica. A criptografia simétrica usa apenas uma chave privada (secreta) para encriptar e decriptar a mensagem, enquanto, a criptografia assimétrica usa um par de chaves. A primeira conhecida por chave pública,
utilizada para encriptar a mensagem, e a segunda, por chave privada, utilizada pra decriptá-la. Com a criptografia pretende-se garantir que uma mensagem só será lida e compreendida pelo destinatário autorizado, e para isso, é necessário que se cumpram quatro requisitos: confidencialidade, integridade, autenticação e não-recusa. A confidencialidade obtida pela encriptação dos dados, assegura que só os receptores autorizados terão acesso às informações da mensagem. A integridade assegura que a informação não será alterada durante o processo de transporte da informação. É obtida por meio da assinatura digital Na autenticação, o remetente e o receptor podem confirmar as identidades uns dos outros assim como a origem e o destino da informação. É obtida por meio da assinatura digital e dos certificados. Na não-recusa obtida por meio da assinatura digital e certificados, o remetente pode assiná-lo de forma digital, limitando legalmente a responsabilidade. Infelizmente, para discutir os temas, assinatura digital e certificados, com mais cuidado seria necessário uma digressão muito longa, o que levaria longe demais das metas deste artigo, cujo escopo principal é apresentar algumas técnicas de encriptação, ou seja, de confidencialidade.
A criptografia simétrica foi o primeiro tipo de criptografia criado. Funciona transformando um texto em uma mensagem cifrada, por meio da definição de uma chave secreta, que será utilizada posteriormente para decriptar a mensagem, tornando novamente um texto simples (Cavalcante, 2004).
A criptografia simétrica utiliza apenas uma chave para codificar e decodificar uma mensagem. É usada em transmissões de dados em que não é necessário um grande nível de segurança como mensagens enviadas de um computador para outro, nas comunicações entre duas máquinas, no armazenamento da informação em um disco rígido. A criptografia simétrica é relativamente rápida, contudo como desvantagem, não só o transmissor deve conhecer a chave como também o receptor. Além disso, o volume total dos dados transmitidos é limitado pelo tamanho da chave.
Os métodos de criptografia simétrica têm sido divididos em duas categorias: as cifras de substituição e as de transposição.
Cada grupo de letras é substituído por outro grupo de letras. A Tabela 1 apresenta um exemplo bem simples, só para entendimento da idéia. Cada uma das 26 letras do alfabeto tem um correspondente em outra letra.
Tabela 1: Cifras de substituição
a b c d e f g h i j k l m Q W E R T Y U I O P A S D n o p q r s t u v x y z w F G H J K L Z X C V B N M
Esse sistema é conhecido como cifras de substituição. Substituindo as letras da palavra "paixão" pela correspondente resultaria em "HQOVQG". Em um texto pequeno, a cifra pode ser descoberta facilmente, pois o intruso pode proceder da seguinte forma:
As cifras de transposição utilizam o princípio de mudança da ordem das letras da mensagem a ser enviada. Inicialmente, escolhe-se uma palavra para representar a chave. Por exemplo, considere a chave sendo a palavra "brasil”, e a mensagem o texto "minha linda, onde te encontro?".
A chave serve de apoio para enumerar as colunas na ordem alfabética crescente das letras (Tabela 2). A mensagem é escrita abaixo da chave, de 6 em 6 letras (que neste caso, é a mesma quantidade de letras da chave).
Tabela 2: Cifra de transposição
b r a s i l 2 5 1 6 3 4 m i n h a l i n d a o n d e t e e n c o n t r o
O texto é lido na vertical, conforme a ordem das colunas, resultando em:
"ndtnmidcaoerlnnoineohaet".
Em alguns algoritmos, utiliza-se uma combinação entre as cifras de substituição e as de transposição, dificultando um pouco mais a decodificação da mensagem. Também é possível, utilizar algum símbolo que represente os espaços entre as palavras da mensagem.
Embora a criptografia moderna utilize as mesma idéias básicas da substituição e transposição, a ênfase atual é diferente, e tem como objetivo tornar o algoritmo complexo, para que o intruso não seja capaz de obter qualquer sentido da mensagem. Desta forma, uma outra maneira de codificar uma mensagem utilizando o conceito da criptografia simétrica é por meio de multiplicação da matriz mensagem por outra matriz chave. Um exemplo dessa codificação pode ser dado pela associação das letras do alfabeto aos números, segundo a correspondência da Tabela 3.
Tabela 3: Cifras matriz
a b c d e f g h i 1 2 3 4 5 6 7 8 9 j k l m n o p q r 10 11 12 13 14 15 16 17 18 s t u v x y z w - 19 20 21 22 23 24 25 26 0
Suponha que a mensagem a ser criptografada seja “EU TE AMO”. Pode-se formar uma matriz 3 x 3, que usando a correspondência numérica da cifra matriz torna-se:
Figura 1: Comparação entre π(x) e x/log(x).
Teorema 2: (Propriedades Fundamentais da Congruência) Para quaisquer a, b e c ∈ Z , tem-se que:
(i) a ≡ a ( mod m ).
(ii) Se (^) a ≡ b ( mod m ), então.
≡ mod m )
) )
≡ mod m )
a ≡ a ( (^) mod m ) a ≡ b ( (^) mod m ) ≡ ( mod m ) a ≡ b ( (^) mod m ) ≡ (^) ( mod m )
a ≡ c ( (^) mod m )
a ≥ b
r 1 ≠ 0
r 2 ≠ 0
b ≡ a ( mod m )
a ≡ b ( (^) mod m ) ( a ≡ c ( (^) mod m )
Demonstração:Demonstração:
SejamSejam tt ,, kk ,, mm ∈∈ ZZ ,,
(i)(i) a - aa - a = 0 == 0 = tmtm , para, para tt = 0. Logo,= 0. Logo, a ≡ a ( mod m ..
(ii) Se , então a - b = tm. Por outro
(ii) Se , então a - b = tm. Por outro
a ≡ b ( mod m ( )
a - b = tm e b - c = km. Da segunda, tem-se que b = c + km. Portanto, da primeira tem-se, a - ( c + km ) = tm , ou seja, a - c = ( t + k ) m , logo
.
a - b = tm e b - c = km. Da segunda, tem-se que b = c + km. Portanto, da primeira tem-se, a - ( c + km ) = tm , ou seja, a - c = ( t + k ) m , logo
.
a ≡ b ( (^) mod m ) (
A segurança desse método se baseia na dificuldade de fatorar números extensos. Segundo pesquisadores, a fatoração de um número de 200 dígitos requer 4 milhões de anos para ser processada. Fatorar um número de 500 dígitos exige 10
a ≡ c ( (^) mod m )
O algoritmo de Euclides foi descrito nas proposições 1 e 2 do Livro 7 dos Elementos, mas acredita-se que a origem do mesmo seja muito anterior.
O algoritmo de Euclides foi descrito nas proposições 1 e 2 do Livro 7 dos Elementos, mas acredita-se que a origem do mesmo seja muito anterior. Sejam a e b inteiros positivos e. Deseja-se calcular o máximo divisor comum entre a e b , isto é, MDC( a, b ) (Keng, 1982 e Cavalcante, 1997). Para utilização do algoritmo deve-se proceder da seguinte forma:
Sejam a e b inteiros positivos e. Deseja-se calcular o máximo divisor comum entre a e b , isto é, MDC( a, b ) (Keng, 1982 e Cavalcante, 1997). Para utilização do algoritmo deve-se proceder da seguinte forma:
a ≥ b
r 1 ≠ 0 1 , obtendo o resto^ r 2.
Exemplos da utilização deste algoritmo são apresentados nos itens 6 e 7.
Exemplos da utilização deste algoritmo são apresentados nos itens 6 e 7.
0
10000000
20000000
30000000
40000000
50000000
60000000
0 400000000 800000000 1200000000 x
p(x) x/log(x)
π (x)
A criptografia assimétrica, também conhecida como de chave pública, utiliza duas chaves: uma pública, que todos conhecem, e outra privada. A primeira para cifrar o texto ou mensagem, e a segunda para decifrar (Cavalcante, 2004).
A criptografia assimétrica, também conhecida como de chave pública, utiliza duas chaves: uma pública, que todos conhecem, e outra privada. A primeira para cifrar o texto ou mensagem, e a segunda para decifrar (Cavalcante, 2004). A criptografia assimétrica pode ser empregada para assinatura digital e autenticação. Neste caso, é criada uma chave privada e a partir dela uma chave pública que deve ser enviada para todas as pessoas com as quais se deseja trocar informações. Um dos algoritmos mais famosos é o RSA.
A criptografia assimétrica pode ser empregada para assinatura digital e autenticação. Neste caso, é criada uma chave privada e a partir dela uma chave pública que deve ser enviada para todas as pessoas com as quais se deseja trocar informações. Um dos algoritmos mais famosos é o RSA.
O algoritmo RSA leva a inicial do nome dos criadores Ron Revista, Adi Shamir e Len Adleman. O RSA utiliza duas chaves criptográficas, uma chave pública e uma privada. A chave pública é usada para criptografar a mensagem, enquanto a chave privada, para decriptografá-la (Buchmann, 2002).
O algoritmo RSA leva a inicial do nome dos criadores Ron Revista, Adi Shamir e Len Adleman. O RSA utiliza duas chaves criptográficas, uma chave pública e uma privada. A chave pública é usada para criptografar a mensagem, enquanto a chave privada, para decriptografá-la (Buchmann, 2002).
(^25) anos. Mesmo que os computadores se tornem mais velozes, muito tempo irá passar até que seja possível fatorar um número de 500 dígitos, e até lá poderão escolher a fatoração de um número ainda maior.
A segurança desse método se baseia na dificuldade de fatorar números extensos. Segundo pesquisadores, a fatoração de um número de 200 dígitos requer 4 milhões de anos para ser processada. Fatorar um número de 500 dígitos exige 10
Para utilização do método deve-se proceder com as seguintes etapas:
Para utilização do método deve-se proceder com as seguintes etapas:
(^25) anos. Mesmo que os computadores se tornem mais velozes, muito tempo irá passar até que seja possível fatorar um número de 500 dígitos, e até lá poderão escolher a fatoração de um número ainda maior.
É possível provar que, para todo M na faixa especificada, as funções de criptografia e decriptografia são inversas entre si. Para realizar a criptografia, é necessário conhecer o valor do " e" e do "n" , ao passo que para decriptografar, são necessários "d" e "n". Portanto, a chave pública consiste no par ( e , n ) e a chave privada consiste em ( d , n ).
Exemplo 1: Utilize o algoritmo RSA para encriptar a palavra ANDRÉ, utilize as cifras matriz (Tabela 3).
Escolhe-se p = 3 e q = 11. Calcula-se : n = p.q = 3.11 = 33
O valor escolhido como número d que seja co-
= 1. Desse modo, pelo algoritmo de Euclides, d = 7.
Portanto, a chave privada consiste em ( d , n ) = (7, 33).
verdadeira o " e " deverá ser um número que multiplicado por 7 (mod 20) seja igual a 1. Usando o método da tentativa e erro, 1 não daria certo, pois 1.7 (mod 20) ≠ 1. 2 também não daria certo, pois 2.7 (mod 20) ≠ 1. O número 3 se identifica, pois 3.7 (mod 20) = 1, portanto, a chave pública consiste em ( e , n ) = (3, 33). Representando cada letra do alfabeto por um número, conforme a Tabela 3 (cifras matriz), chega- se a Tabela 6:
Tabela 6: Criptografia
Simbólico Numérico M^3 C = M^3 (mod33) A 1 1 1 N 14 2744 5 D 4 64 31 R 18 5832 24 E 5 125 26
A Tabela 7 apresenta o processo de decriptar a mensagem.
Tabela 7: Decriptografia
C = M^3 (mod33) C^7 M = C^7 (mod33) Simbólico 1 1 1 A 5 78125 14 N 31 317 4 D 24 247 18 R 26 267 5 E
Chama-se parte inteira de um número real x o
outros termos, parte inteira de um número real x é o maior inteiro n que não excede x (Keng, 1982 e Cavalcante, 1997). A parte inteira de um número real x indica-se pelo símbolo [ x ], que se lê: “parte inteira de x ”. Portanto, subsistem as desigualdades:
Note-se que [ x ] = x se e somente se x é um inteiro, e que todo número real x pode escrever-se sob a forma:
Além disso, obviamente:
1 ≤ ≤
n x
A função definida por f( x ) = [ x ] chama-se função maior inteiro.
Se fosse possível fatorar o valor de n (publicamente conhecido), seria possível então encontrar d utilizando-se o algoritmo de Euclides, porém fatorar números extensos é extremamente difícil. Nesta seção apresenta-se o algoritmo de Fermat, utilizado para fatorar números, e algumas aplicações (Coutinho, 2003). O algoritmo de Fermat recebe um inteiro positivo ímpar n e retorna um fator de n ou uma mensagem indicando que n é primo. Consiste das seguintes etapas:
é fator de n e pode-se parar.
Seja n = 249863005313 o número que se quer fatorar. A variável x é inicializada com a parte inteira da raiz quadrada de n , que neste caso vale x = 499862. Mas
x^2 = 249862019044 < n ,
logo passa-se a incrementar x de um em um. Faz-se
isto até que x^2 − n seja inteiro, ou x seja igual a
( n + 1)/2, que neste caso vale 124931502657. Neste caso, com apenas um laço, tem-se que x = 499863 e y = 116 são os valores desejados. Os fatores correspondentes são x + y = 499979 e x – y =
algoritmo de Euclides, é fácil perceber que para d = 5, esta equação é verificada.
49972401117 1 1 2 249862005588 5 3 2 1 3 2 1 0
E, portanto, a chave privada ( d , n ) = (5, 249863005313).
A criptografia assimétrica é mais segura que a simétrica, por não precisar comunicar o receptor a chave necessária para decriptografar a mensagem e, pode ser utilizada em assinatura digital. No entanto, a principal desvantagem consiste no fato de a criptografia assimétrica ser mais lenta do que a simétrica. O algoritmo de Fermat utilizado para fatoração de números extensos, apesar de bem interessante, na maioria dos casos leva a um processo de muitos laços, inviabilizando a quebra da integridade do modelo RSA. O que faz o modelo RSA ainda ser uma excelente escolha para criptografar mensagens, pois não existe um critério tão eficiente de fatoração. De maneira a tornar não possível a fatoração do n do modelo RSA, é necessário escolher adequadamente os fatores primos p e q. Na hora da escolha destes números primos é necessário um determinado feeling , pois como observado nos exemplos 4 e 5, não basta apenas que os números primos sejam extensos, é necessário também, que os mesmos não estejam próximos. Como sugestão para pesquisas futuras, seria interessante combinar a criptografia simétrica com a assimétrica, somando a segurança com a rapidez. Além disso, sugere-se também a necessidade de continuar o estudo sobre a distribuição dos números
primos, para melhor entendimento do limite mínimo de afastamento entre os números primos escolhidos no modelo RSA.
Buchmann, J.A. Introdução à Criptografia. São Paulo: Berkeley (2002). Cavalcante, A.L.B. Tópicos em Teoria dos Números. Relatório PIBIC/CNPq. Universidade de Brasília (1997). Cavalcante, A.L.B. Matemática II. Notas de Aula. Brasília: Editora UPIS (2004). Coutinho, S.C. Números Inteiros e Criptografia RSA. Rio de Janeiro: IMPA. Série de Computação e Matemática (2003). Hardy, G.H. & Wright, E.M. An Introduction to the Theory of Numbers. 4th^ ed. Oxford (1960). Keng, H.L. Introduction to Number Theory. Springer-Verlag (1982).