CRIPTOGRAFIA COMO UMA APLICAÇÃO MATEMÁTICA*

15
503 estudos, Goiânia, v. 38, n. 3, p. 503-517, jul./set. 2011. A necessidade de manter algumas mensagens secretas existe a milhares de anos. Porém a sociedade mod- erna vem se tornando cada vez mais dependente de Resumo: o objetivo deste trabalho é apresentar uma ideia geral sobre a utilização da criptografia desde sua ori- gem até os dias atuais. Ela pode ser vista como uma apli- cação de diversas ciências e em particular da matemática. Pretendemos mostrar a diferença entre codificar e cripto- grafar utilizando uma breve introdução a sistemas crip- tográficos de Chave Secreta com Block Ciphers e Stream Ciphers . Palavras-chave: Criptografia. Codificar. Sistemas Criptográficos. GLEN CÉZAR LEMOS**, NILTON CEZAR FERREIRA*** CRIPTOGRAFIA COMO UMA APLICAÇÃO MATEMÁTICA* * Recebido em: 06.05.2011. Aprovado em: 16.06.2011. ** Mestre em Matemática. Doutorando na Universidade Estadual Paulista – UNESP Campus Rio Claro. Professor do Instituto Federal de Goiás – IFG Campus Goiânia. E-mail: [email protected]. *** Mestre em Matemática, professor do Instituto Federal de Goiás – Campus Goiânia e na Pontifícia Universidade Católica de Goiás. E-mail: niltonce- [email protected].edu.br.

Transcript of CRIPTOGRAFIA COMO UMA APLICAÇÃO MATEMÁTICA*

Page 1: CRIPTOGRAFIA COMO UMA APLICAÇÃO MATEMÁTICA*

503

est

ud

os,

Goi

ânia

, v

. 38,

n. 3

, p. 5

03-5

17, j

ul./s

et. 2

011.

A necessidade de manter algumas mensagens secretas existe a milhares de anos. Porém a sociedade mod-erna vem se tornando cada vez mais dependente de

Resumo: o objetivo deste trabalho é apresentar uma ideia geral sobre a utilização da criptografia desde sua ori-gem até os dias atuais. Ela pode ser vista como uma apli-cação de diversas ciências e em particular da matemática. Pretendemos mostrar a diferença entre codificar e cripto-grafar utilizando uma breve introdução a sistemas crip-tográficos de Chave Secreta com Block Ciphers e Stream Ciphers .

Palavras-chave: Criptografia. Codificar. Sistemas Criptográficos.

GLEN CÉZAR LEMOS**, NILTON CEZAR FERREIRA***

CRIPTOGRAFIA COMOUMA APLICAÇÃOMATEMÁTICA*

* Recebido em: 06.05.2011. Aprovado em: 16.06.2011.

** Mestre em Matemática. Doutorando na Universidade Estadual Paulista – UNESP Campus Rio Claro. Professor do Instituto Federal de Goiás – IFG Campus Goiânia. E-mail: [email protected].

*** Mestre em Matemática, professor do Instituto Federal de Goiás – Campus Goiânia e na Pontifícia Universidade Católica de Goiás. E-mail: [email protected].

Page 2: CRIPTOGRAFIA COMO UMA APLICAÇÃO MATEMÁTICA*

504

est

ud

os,

Goi

ânia

, v.

38,

n. 3

, p. 5

03-5

17, j

ul./s

et. 2

011.

meios seguros e precisos para transmissão e armazenamento de dados. A revolução tecnológica concentrada nas Tecnologias da Informação e da Comunicação (TICs), que possibilita a con-exão mundial via redes de computadores, promove alterações significativas na base material da sociedade, ao estabelecer uma interdependência global entre os países. O uso crescente de redes como a Internet resultou na criação de um novo tipo de organização social, a sociedade em rede, que permite a forma-ção de comunidades virtuais, grupos humanos constituídos pela identificação de interesses comuns.

Para Castells (1999), as descobertas básicas nas tecnologias da informação têm algo de essencial em comum: embora base-adas principalmente nos conhecimentos já existentes e desen-volvidas como uma extensão das tecnologias mais importantes. Essas tecnologias representaram um salto qualitativo na difusão maciça da tecnologia em aplicações comerciais e civis, devido a sua acessibilidade e custo cada vez menor, com qualidade cada vez maior, contudo, existem situações em que as informações são confidenciais; nestes casos os comunicantes devem ocultar e proteger o conteúdo de suas mensagens. A finalidade dos sistemas criptográficos é ocultar a mensagem, ou seja, reescrevendo-a em outra linguagem, antes de transmiti-la, para garantir que somente o destinatário seja capaz de entender.

Codificar é a arte de transformar dados de um formato para outro, sem o objetivo de dificultar o entendimento dos mesmos e não requer chave para decodificar, bastando apenas conhecer o algoritmo utilizado para codificar. Exemplos: Código Morse, ASCII, Códigos Binários, Códigos Cíclicos, dentre outros.

Criptografia (Do Grego kryptós, “escondido”, e gráphein, “escrita”) é o estudo dos princípios e técnicas pelas quais a infor-mação pode ser transformada da sua forma original para outra, de forma que somente o destinatário (detentor da “chave secreta”) seja capaz de entendê-la. Exemplos: Cifra de CÉSAR, DES, IDEA.

O primeiro registro do uso da criptografia foi em torno de 1900 a.c., no Egito, quando um escriba usou hieróglifos fora do padrão numa inscrição.Entre 600 e 500 a.c., os hebreus utilizavam a cifra de substituição simples, sendo monoalfabético e monogrâmica, ou seja, os caracteres são trocados um a um. Esse método deu origem ao Livro de Jeremias.

Page 3: CRIPTOGRAFIA COMO UMA APLICAÇÃO MATEMÁTICA*

505

est

ud

os,

Goi

ânia

, v

. 38,

n. 3

, p. 5

03-5

17, j

ul./s

et. 2

011.

Em 1928, o exército alemão construiu uma versão conhecida como «Enigma G», que tinha como garantidor de segurança a troca periódica mensal de suas chaves. Essa máquina tinha como diferencial ser eletro-mecânica, funcionando com três (inicial-mente) a oito rotores.

SISTEMAS CRIPTOGRÁFICOS

Os sistemas criptográficos se dividem em simétricos (chave secreta) e assimétricos (chave pública).

Figura 1: Máquina Enigma, utilizada na cifragem edecifragem de mensagens secretas. Versão da Marinha, exposta em Bletchley Park

Page 4: CRIPTOGRAFIA COMO UMA APLICAÇÃO MATEMÁTICA*

506

est

ud

os,

Goi

ânia

, v.

38,

n. 3

, p. 5

03-5

17, j

ul./s

et. 2

011.

Nesse trabalho será abordado o sistema de chave secreta, utilizando o modelo de Shannon, representado pelo seguinte digrama.

A Chave K deve ser enviada ao Cifrador e ao Decifrador, através de um Canal Seguro, sem que o Inimigo Criptoanalista tome conhecimento dela. O Emissor fornece ao Cifrador a sequ-ência (input), isto é, o texto em claroao qual, fazendo uso da chave gera o criptograma que será enviado ao Decifrador que fornece o texto em claro ao Receptor. Observe que o Inimigo Criptoanalista pode interceptar o criptograma, mas sem o uso da chave não po-derá decifrar a informação. Isso mostra que a segurança depende exclusivamente da chave.

A seguir serão abordados alguns exemplos de sistemas crip-tográficos considerados clássicos.Sistemas de Substituição Monoalfabética

São aqueles em que cada letra do texto em claro é substituída, sempre, por uma mesma letra de um Alfabeto Cifra, segundo uma chave bem definida.

O exemplo mais antigo de que se tem notícia é conhecido como CIFRA DE CÉSAR, usado pelo general e estadista Roma-no Júlio César (49 - 44 a.C) em sua campanha pela Gália e nas correspondências com seus amigos. Neste sistema, cada letra de a até w é representada pela terceira letra após, no alfabeto e x, y, z por A, B, C, respectivamente.

Alfabeto em claro: a b c d e f g h i j k l m n o p q r s t u v w x y zAlfabeto cifrado: D E F G H I J K L M N O P Q R S T U V

W X Y Z A B CExemplo: Decifrar a seguinte mensagem, sabendo-se que ela

foi criptografada usando a Cifra de César.

Page 5: CRIPTOGRAFIA COMO UMA APLICAÇÃO MATEMÁTICA*

507

est

ud

os,

Goi

ânia

, v

. 38,

n. 3

, p. 5

03-5

17, j

ul./s

et. 2

011.

Texto cifrado: D FULSWRORJLD VH GLYLGH HP FUL-SWRJUDILD H FULSWRDQDOLVH.

Texto claro: “A criptologia se divide em criptografia e crip-toanálise”.

Sistema monoalfabético aditivo

O algoritmo do sistema monoalfabético aditivo consiste em adicionar ao valor que representa a letra no alfabeto, o valor da chave, indicando a posição da letra Cifra. Considerando o alfabeto citado em 2.1, o valor da chave pode variar de 0 a 25.

Definição 1: Sejam . Denominamos adição de a e b módulo 26 o inteiro α, obtido pelo resto da divisão de (a + b) por 26. Denotaremos

Definição 2: Sejam . O inteiro b, tal que é denomi-nado o oposto de a.

Se fizermos corresponder a cada letra do alfabeto um número de 0 a 25, podemos representar o algoritmo usando o sistema aditivo com a adição módulo 26, da seguinte forma , onde x representa o texto em claro, k a chave e y o criptograma.

Exemplo: considere a correspondência entre as letras do nosso alfabeto e os números inteiros de 0 a 25, estabelecidos pela tabela a seguir:

A B C D E F G H I J K L M N O P Q R S T U V

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

W X Y Z

23 24 25 0

Para cifrar um texto em claro basta fazer a adição, módulo 26, de cada número correspondente a letra do texto em claro com a chave, pré-estabelecida. E para decifrar um criptograma, deverá ser feito o mesmo processo usando no lugar do valor da chave o seu oposto.

Como existem apenas 26 chaves, concluímos que o sistema é frágil. Este sistema tem caráter puramente didático, ou seja, serve apenas para ilustrar de forma simples como funciona o método de criptografia por substituição.

Page 6: CRIPTOGRAFIA COMO UMA APLICAÇÃO MATEMÁTICA*

508

est

ud

os,

Goi

ânia

, v.

38,

n. 3

, p. 5

03-5

17, j

ul./s

et. 2

011.

Exemplo: Decifrar o criptograma abaixo, sabendo apenas que foi utilizado o sistema monoalfabético aditivo e o texto claro está em português.

Criptograma: D FLIUD GH FHCDU H R PDLV DQWLJR VLVWHPD FULSWRJUDILFR.

Analisando o criptograma notamos que as letras D, H e R aparecem isoladas, logo, em português temos apenas três possi-bilidades: ou ou

Se então, 4 = 15 k k = 15. Logo, H corresponde ao s e R ao cSe então, 4 = 1 k k = 3. Logo, H corresponde ao e e R ao oSe então, 4 = 5 k k = 25. Logo, H corresponde ao i e R ao sPortanto, concluímos que na língua portuguesa só tem sentido

se a chave usada for k = 3 e obtemos o seguinte texto em claro:“A cifra de Cezar é o mais antigo Sistema Criptográfico”.

Sistema monoalfabético multiplicativo

Quando estamos trabalhando com sistemas criptográficos devemos sempre tomar o cuidado de que cada criptograma deter-mine um único texto em claro.

Definição 3: Sejam ,a b ∈Z . Denominaremos produto de a por b módulo 26, o inteiro, obtido pelo resto da divisão de (a×b)por 26. E denotaremos por a bγ = ⊗ .

Definição 4: Seja a ∈Z . O inteiro b tal que 1a b⊗ = , é denominado inverso multiplicativo de a.

Por analogia ao sistema anterior, a operação adição é subs-tituída pela multiplicação módulo 26. O algoritmo deste sistema

pode ser representado da seguinte forma: x x k y→ ⊗ = , onde x representa o texto em claro, k a chave, y criptograma.

Para cifrar um texto em claro basta fazer a multiplicação, mó-dulo 26, de cada número correspondente a letra do texto em claro com a chave, pré-estabelecida. E para decifrar um criptograma, deverá ser feito o mesmo processo usando no lugar do valor da chave o seu inverso multiplicativo.

Exemplo, se usarmos a chave k = 2, então

1 1 1 2 2x a y B= ⇒ = ⊗ = ↔

2 2 14 2 2x n y B= ⇒ = ⊗ = ↔

Page 7: CRIPTOGRAFIA COMO UMA APLICAÇÃO MATEMÁTICA*

509

est

ud

os,

Goi

ânia

, v

. 38,

n. 3

, p. 5

03-5

17, j

ul./s

et. 2

011.

Isto é, um único caractere do criptograma corresponde a dois caracteres do texto em claro, logo k = 2 não pode ser chave do sistema multiplicativo.

Consequentemente devemos escolher como chave todos os inteiros de 0 a 25 que possuem inverso multiplicativo, ou seja, aqueles que são relativamente primos com 26. Logo k pode assumir os seguintes valores:

k Î {1,3,5,7,9,11,15,17,19,21,23,25}

Portanto, temos somente 12 possibilidades para a chave, o que torna este sistema ainda mais frágil que o anterior.

ExemploDecifrar o criptograma MIXSMIXCAI S GMI ACSVACI

sabendo-se que foi usado o sistema multiplicativo, cuja chave é k = 9, na língua portuguesa.

Criptograma: MIXSMIXCAI S GMI ACSVACIVamos obter a chave inversa de k = 9. Se x é o inverso de 9

mod 26, então:

9 1(mod 26)x y≡ ⇔ ∃ ∈Z tal que 9 26 1x y− = , resolven-

do a equação diofantina, encontramos a solução particular 3x = ,

portanto 1 3k − = é a chave inversa de 9k = , logo,

1 1 13 3 13y M x m= ⇒ = ⊗ = ↔ ,

2 2 9 3 1y I x a= ⇒ = ⊗ = ↔3 3 24 3 20y X x t= ⇒ = ⊗ = ↔ ,

4 4 19 3 5y S x e= ⇒ = ⊗ = ↔

5 5 3 3 9y C x i= ⇒ = ⊗ = ↔ ,

6 6 1 3 3y A x c= ⇒ = ⊗ = ↔

7 7 7 3 21y G x u= ⇒ = ⊗ = ↔ ,

8 8 22 3 14y V x n= ⇒ = ⊗ = ↔

Texto em claro: “matematica e uma ciencia”

Page 8: CRIPTOGRAFIA COMO UMA APLICAÇÃO MATEMÁTICA*

510

est

ud

os,

Goi

ânia

, v.

38,

n. 3

, p. 5

03-5

17, j

ul./s

et. 2

011.

Sistema monoalfabético afim

É o sistema obtido usando a adição e a multiplicação módulo 26 simultaneamente, cujo algoritmo representamos por:

( )1 2x x k k y→ ⊗ ⊕ =, onde x representa o texto em claro,

1k e 2k chaves e y o criptograma. Portanto, o número total de chaves possíveis é 312.

CLASSIFICAÇÃO DOS SISTEMAS CRIPTOGRÁFICOS SIMÉTRICOS

Os sistemas criptográficos simétricos são usualmente clas-sificados em Stream Ciphers (sistemas que cifram caracteres) e Block Ciphers (sistemas que cifram em blocos).

Steam Ciphers

Nesse tipo o texto claro (mensagem) é transformado em carac-teres e operado com uma transformação tempo-variante, governada pelo estado interno do sistema, ou seja, cada estado depende do estado anterior. Assim, duas ocorrências do mesmo caractere no texto em claro normalmente não resulta em duas ocorrências de um mesmo caractere no texto cifrado (criptograma).

O mais notável de todos os sistemas criptográficos é o “one--time-pad” (sistema de chave única), pois ele é totalmente seguro. Nele o texto cifrado é a soma bit a bit módulo 2 da chave secreta, uma sequência aleatória, usada uma única vez. Como em (2)GF a adição e subtração é a mesma, a decifração é obtida da mesma forma que a cifração. O princípio básico do “one time pad” é a independência estatística entre o texto cifrado e o texto em claro pelo fato da chave ser uma sequência verdadeiramente aleatória. O dispositivo que emite tal sequência aleatória, i.é, uma sequência em que cada bit tem igual probabilidade de ser 0 ou 1 indepen-dentemente dos dígitos anteriores é chamado de fonte binaria simétrica (FBS).

A figura a seguir ilustra o “one time pad”.

Page 9: CRIPTOGRAFIA COMO UMA APLICAÇÃO MATEMÁTICA*

511

est

ud

os,

Goi

ânia

, v

. 38,

n. 3

, p. 5

03-5

17, j

ul./s

et. 2

011.

Assumindo que o Inimigo Criptoanalista tem conhecimento somente de textos cifrados, Shannon provou em 1949 que o ele nunca poderá separar o verdadeiro texto em claro dos outros pos-sivelmente verdadeiros.

Este sistema geralmente é impraticável devido aos problemas de geração das chaves, tais como: necessidade de se produzir uma quantidade ilimitada de chaves, necessidade de um local totalmente seguro para guarda-las, dentre outros.

As desvantagens operacionais do “one time pad” levaram ao desenvolvimento dos Stream Ciphers síncronos, em que o processo de cifração do texto em claro é o mesmo do “one time pad» exce-to pela geração da sequência aleatória. A segurança dos Stream Ciphers depende então da ‹»aleatoriedade» da chave.

De um modo geral um Stream Cipher consiste de um meca-nismo chamado Gerador de Key Streams – (KSG), o gerador de chaves, que produz sequências pseudoaleatórias, denominadas «keystreams», as quais são operadas caractere a caractere com os caracteres do texto em claro, resultando na mensagem cifrada.

As sequências produzidas pelos geradores de keystreams seguem uma determinada regra, assim elas não são verdadeira-mente aleatórias. Em criptografia o que realmente necessitamos, é que estas sequências sejam imprevisíveis (simulem sequências aleatórias); pois se o criptoanalista interceptar parte da sequência ele não tem como completá-la. Estes tipos de sequências são chamados de pseudoaleatórias.

A construção de Stream Ciphers do ponto de vista teórico tem dois objetivos: um é garantir propriedades que teoricamente são exigidas tais como: período, complexidade linear e distância de estruturas lineares. O segundo é estudar os princípios cripto-analísticos e desenvolver critérios para tornar ataques baseados nestes princípios impossíveis. Por exemplo:

FBS

mj Cj mj

Canal de transferência da chave secreta

kj

kj

Page 10: CRIPTOGRAFIA COMO UMA APLICAÇÃO MATEMÁTICA*

512

est

ud

os,

Goi

ânia

, v.

38,

n. 3

, p. 5

03-5

17, j

ul./s

et. 2

011.

a) Substituição e aproximação: preferencialmente por com-ponentes lineares.

b) Limitar e controlar o espaço das chaves.c) Exploração das deficiências estatísticas, tal como depen-

dência entre símbolos.Para prevenir a criptoanálise alguns critérios gerais neces-

sários, mas não suficientes são empregados na construção de geradores de keystreams:

1) Longos períodos sem repetição;2) Critérios de complexidade linear: alta complexidade linear

(i.é., próxima do período), perfil da complexidade linear, comple-xidade linear local, dentre outros.

3) Critérios estatísticos. (Por exemplo, em sequências binárias o equilíbrio entre zeros e uns; o equilíbrio do número de pares ordenados 00,10, 01,11).

4) Confusão: a dependência estatística entre a chave, o texto claro e o texto cifrado é feita de maneira tão complexa que ela se torna inútil ao criptoanalista.

5) Difusão: cada dígito do texto em claro deve influenciar vários dígitos do texto cifrado e cada dígito da chave secreta também deve ter influência sobre vários dígitos do texto cifrado.

6) Critérios de não linearidade de funções booleanas, distância entre as funções lineares, dentre outros.

Todo gerador seguro de chaves deve satisfazer estes crité-rios, ou seja, do ponto de vista teórico os sistemas são projetados satisfazendo estes critérios. O DES apesar de não ser um Stream Cipher é um bom exemplo de projeto do sistema teórico, pois, com uma chave finita de 56 bits (a qual é muito menor que o tamanho necessário das chaves de outros sistemas) resistiu à criptoanálise por mais de 15 anos, até que por volta de 1990 quando Adi Sha-mir e Eli Biham criaram a Criptoanálise Diferencial, que é uma poderosa técnica de ataque a sistemas em blocos.

Exemplo: Stream Cipher Binário Aditivo.

Page 11: CRIPTOGRAFIA COMO UMA APLICAÇÃO MATEMÁTICA*

513

est

ud

os,

Goi

ânia

, v

. 38,

n. 3

, p. 5

03-5

17, j

ul./s

et. 2

011.

A B C D E F G H I J K L M N O P Q R S T U V

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

W X Y Z ! & ; - . *

23 24 25 26 27 28 29 30 31 32

Xi é um bit da mensagem, Z

i é um bit da chave e Y

i é um bit

do criptograma. Nesse exemplo o gerador de chaves produz uma keystream

cujos elementos pertencem ao corpo de Galois GF(2), que é adi-cionada módulo 2 aos bits de um texto em claro, obtendo assim o texto cifrado. O processo de decifrar é idêntico ao processo de cifrar, pois a adição e subtração em GF(2) é a mesma. Nesse caso, podemos afirmar que o gerador de keystreams usado pelo emissor e pelo receptor estão sincronizados, sendo assim, sempre que se perder este sincronismo é impossível decifrar a mensagem enviada.

Exemplo: cifrar a palavra MATEMATICA, utilizando a chave 1001110K = obtida do Linear Feedback Shift Register (LFSR)

3 1,3x x< + + > com preenchimento inicial ( )100

.

Figura 3: Stream Cipher Binário Aditivo

Vamos representar o texto em claro no corpo GF(2):Mα13 = (01101), Aα1 = (00001), Tα20 = (10100), Eα5 = (00101),

Iα9 = (01001), Cα3 = (00011).Texto claro: MATEMATICATexto claro codificado: 01101 00001 10100 00101 01101

00001 10100 01001 00011 00001

Page 12: CRIPTOGRAFIA COMO UMA APLICAÇÃO MATEMÁTICA*

514

est

ud

os,

Goi

ânia

, v.

38,

n. 3

, p. 5

03-5

17, j

ul./s

et. 2

011.

Texto cifrado codificado: 11110 10101 01001 00010 00100 11011 11010 11010 10111 11100

Texto cifrado: - u i b d .z z w &

Block Ciphers

O que difere os Block Ciphers dos Stream Ciphers são dois aspectos: Nos Block Ciphers o texto em claro é em geral forma-Block Ciphers o texto em claro é em geral forma-do por blocos grandes (ex. 64 bits) e os blocos consecutivos são cifrados pela mesma função, isto é, o cifrador é um dispositivo sem memória. A principal vantagem dos sistemas em blocos é a facilidade de sincronização no sentido que a perda de um bloco do texto cifrado não tem influência na decifração correta de blo-cos seguintes. A principal desvantagem é que o bloco cifrado não esconde dados padrões, isto é, blocos idênticos do texto cifrado implicam em blocos idênticos do texto em claro. No entanto essa desvantagem pode ser superada com a introdução de um pouco de memória. Como exemplo temos o DES (Data Encryption Standard) que já foi citado anteriormente e o IDEA que descre-veremos a seguir.

O sistema em bloco IDEA

O sistema em blocos IDEA (International Data Encryption Algorithm) foi baseado no sistema em blocos PES /Proposed Encryption Standard). Em ambos os casos o testo em claro e o texto cifrado são blocos de 64 bits, enquanto a chave secreta é longa, 128 bits. Ambos os sistemas são baseados no novo proces-so de “mistura de diferentes operações de grupos”. A confusão necessária é obtida pelo uso sucessivo de três operações de grupos incompatíveis em pares de sub-blocos de 16 bits e a estrutura do sistema se encarrega de fornecer a difusão necessária. A estrutura do sistema também facilita a implementação, tanto em software quanto em hardware. O sistema IDEA é uma versão melhorada do PES e foi desenvolvido para aumentar a segurança contra a criptoanálise diferencial.

O IDEA é um sistema iterado que consiste de 8 iterações seguidas por uma transformação de saída. A primeira iteração com-pleta e a transformação de saída são mostradas na Figura a seguir.

Page 13: CRIPTOGRAFIA COMO UMA APLICAÇÃO MATEMÁTICA*

515

est

ud

os,

Goi

ânia

, v

. 38,

n. 3

, p. 5

03-5

17, j

ul./s

et. 2

011.

Xi Sub-bloco do texto em claro com 16 bits

Yi Sub-bloco do texto cifrado com 16 bits

Zi(r )Sub-bloco da chave secreta com 16 bits

Î Soma bit a bit módulo 2, entre sub-blocos de 16 bits Adição de inteiros módulo 2

16

Multiplicação de inteiros módulo 216

+ 1, onde o sub-bloco nulo corresponde ao inteiro 2

16.

No processo de cifração mostrado na figura acima são usados três diferentes operações de grupos entre pares de sub-blocos de 16 bits:

Soma bit a bit modulo 2, denotado denotado por ;Adição de inteiros módulo 2

16, onde os sub-blocos de 16 bits

são usadas com números inteiros e representados na base 2; essa operação é denotada por .

- Multiplicação de inteiros módulo 216

+ 1, operação feita de maneira análoga a adição, onde o sub-bloco nulo será tratado como o inteiro 2

16 ; essa operação é denotada por .

Exemplificando:

Figura 4: Primeira iteraçao do IDEA

Page 14: CRIPTOGRAFIA COMO UMA APLICAÇÃO MATEMÁTICA*

516

est

ud

os,

Goi

ânia

, v.

38,

n. 3

, p. 5

03-5

17, j

ul./s

et. 2

011.

(0,0, ... , 0) (0,1,0, ... , 0) = (1,1,0, ... ,0,1), pois

216 ×214 mod(216 +1) = 215+ 214+1 .

O bloco de texto em claro X de 64 bits é particionado em quatro sub-blocos de 16 bits X1 , X2,X3 e X4 , isto é, X = (X1 , X2 , X3, X4 ). Os quatro sub-blocos do texto em claro são então transfor-mados em quatro sub-blocos de 16 bits Y1 , Y2,Y3 e Y4 isto é, o bloco de texto cifrado será Y = (Y1 , Y2,Y3, Y4),sob o controle de 52 sub chaves de 16 bits que são formadas a partir dos 128bits da chave secreta; são usadas 6 sub chaves em cada uma das 8 iterações. Para r = 1,2,...,8 as seis sub chaves usadas na r-ésima iteração é denotada por

Z1

( r ) ,...,Z6( r ) . Quatro sub chaves de 16

bits são usadas na transformação de saída. Estas sub chaves serão

denotadas por Z1

(9) ,Z2(9) ,Z3

(9) e Z4( r ) .

O processo de decifrar é essencialmente o mesmo de cifrar

(C/D similar), com exceção de que as sub chaves K i

( r ) usadas para se decifrar não são as mesmas usadas para cifrar, porém as sub

chaves K i

( r ) podem ser obtidas através das sub chaves de cifrar da seguinte forma:

(K1

( r ) , K 2( r ) , K 3

( r ) , K 4( r ) ) = (Z1

(10Î r )Î 1

, Î Z3(10Î r ) , Î Z2

(10Î r ) , Z4(10Î r ) Î 1

), para r = 2, 3, ..., 8

(K1

( r ) , K 2( r ) , K 3

( r ) , K 4( r ) ) = (Z1

(10Î r )Î 1

, Î Z2(10Î r ) , Î Z3

(10Î r ) , Z4(10Î r ) Î 1

), para r = 1 ou r = 9

(K 5

( r ) , K 6( r ) ) = (Z5

( r ) , Z6(r ) ) , para r = 1, 2, ..., 8

Aqui ZÎ 1 denota o inverso multiplicativo (módulo 216 + 1)

de Z, isto é, Z Z Î 1= 1 e -Z denota o inverso aditivo (módulo 216 ) de Z, ou seja, -Z Z = 0.

As 52 sub chaves de 16 bits usadas no processo de cifrar são geradas a partir da chave de 128 bits selecionada inicialmente, da seguinte forma, os 128 bits das chaves são usados como as pri-meiras 8subchaves, onde a ordenação das sub chaves são definidas da seguinte forma:

Z1

(1) ,Z2(1) ,..., Z6

(1) ,Z1(2) ,Z2

(2) ,..., Z6(2) ,...,Z1

(8) ,Z2(8) ,..., Z6

(8) ,Z1(9) ,Z2

(9) ,Z3(9) ,Z4

(9)

Page 15: CRIPTOGRAFIA COMO UMA APLICAÇÃO MATEMÁTICA*

517

est

ud

os,

Goi

ânia

, v

. 38,

n. 3

, p. 5

03-5

17, j

ul./s

et. 2

011.

As próximas 8subchaves são construídas de 128 bits, deslo-cando-se ciclicamente em 25 bits, para a esquerda, os 128 bits da chave secreta. Continuamos com este processo até obtermos todas as 52 sub chaves necessárias.

CONCLUSÃO

O grande desafio no desenvolvimento de sistemas criptográ-ficos block ciphers e stream ciphers, com chave secreta, está no fato de que até o presente momento, a sua construção é mais arte do que ciência. Há uma grande necessidadede formulação mais científica dos princípios, nos quais a segurança de tais sistemas devem se basear. Neste trabalho, consideramos alguns princípios gerais (alguns já estabelecidos e outros mais recentes) para a construção de sistemas criptográficos. Fizemos uma abordagem geral da evolução da criptografia desde sua origem até sistemas mais modernos introduzidos J. L. Massey, que tem como princípio misturar operações de grupos incomparáveis, em que algumas versão são usadas por indústrias e bancos nos Estados Unidos e Europa. Fizemos uma breve abordagem sobre a produção de chaves, através da geração de sequências pseudoaleatórias, pois, a segurança de qualquer sistema depende de boas chaves. Espe-ramos que este trabalho dê subsídios e motivação para estudos posteriores, inclusive em um nível mais avançado.

ENCRYPTION AS AN APPLICATION MATHEMATICS

Abstract: the aim of this paper is to present an overview on the use of cryptography from its origins to the present day. It can be seen as a different application of science and in particular from mathematics. We intend to show the difference between encode and encrypt using a brief introduction to cryptographic systems with Secret-Key Block Ciphers and Stream Ciphers.

Keywords: Encryption. Encode. Cryptographic Systems.