terça-feira, 14 de abril de 2015

Exercício prático com o S-DES

Hoje vamos ver então um exemplo prático de criptografia com o S-DES. Não vou colocar aqui novamente todas aquelas imagens e explicações, vou direto ao ponto.

A única coisa que vou buscar dos outros posts antes de começar é as subchaves que criamos.

K1 = 11110010
K2 = 11000111

Recomendo que abra abas com os textos passados do S-DES para ir acompanhando as operações.

Para não cortar o fluxo do exercício vou comentar antes sobre os XOR que aparecerão no texto. Teoricamente se você está lendo este texto provavelmente você tem uma noção de binário e operações com eles, caso não tenha já sabe o que precisa estudar! :)


Esta é a tabela do XOR. Mesmo sem ter estudado operações em binário da para ter uma noção do que ela faz. Caso ainda ficou alguma dúvida veremos na prática logo abaixo.

Chega de enrolação e vamos a prática!

Nossa primeira operação é a IP, que acho que esqueci de colocar nos textos anteriores sua caixa.



O texto claro que vamos criptografar, chamaremos de X:

X = 01010001

Etapa 1: Ao passarmos a entrada X pela caixa IP teremos como resultado "10001100".

Etapa 2: Dividimos X em duas partes, a primeira parte segue para o fim e a segunda parte entra em E/P. O "1100" que entra no E/P sai como "01101001".

Etapa 3: Saída de E/P entra em um XOR com a subchave K1:
01101001 --> E/P
11110010 --> K1
10011011 --> Resultado
Etapa 4: Saída do XOR é dividida em duas partes e cada uma entra em uma Caixa-S:
Saída = 10011011
S0 = 1001
S1 = 1011
Resultado S0 = Linha 11, Coluna 00, Valor 3 = 11
Resultado S1 = Linha 11, Coluna 01, Valor 1 = 01
Etapa 5: Resultado das Caixas-S é unido novamente e usado como entrada na caixa P4. "11" e "01" entram em P4 e como resultado geram "1101".

Etapa 6: XOR com a primeira parte de IP:
1000 --> IP
1101 --> P4
0101 --> Resultado
Etapa 7: Realizado a inversão de entradas com a caixa SW. Entradas "0101" (XOR - Etapa 6) e "1100" (IP - Etapa 1) viram as Saídas "1100" e "0101".

Etapa 8: Iniciando a segunda função complexa, a primeira metade da saída anterior vai para o fim do algoritmo e a segunda vai para a caixa E/P. Resultado de E/P é "10101010".

Etapa 9: XOR com a segunda subchave:
10101010 --> E/P
11000111 --> K2
01101101 --> Resultado
Etapa 10: Saída do XOR é dividida em duas partes e cada uma entra em uma Caixa-S:
Saída = 01101101
S0 = 0110
S1 = 1101
Resultado S0 = Linha 00, Coluna 11, Valor 2 = 10
Resultado S1 = Linha 11, Coluna 10, Valor 0 = 00
Etapa 11: Resultado das Caixas-S é unido novamente e usado como entrada na caixa P4. "10" e "00" entram em P4 e como resultado geram "0001".

Etapa 12: XOR com a primeira parte de SW:
1100 --> IP
0001 --> P4
1101 --> Resultado
Etapa 13: Por fim, o resultado do XOR (1101) e o segundo resultado de SW (0101) juntam-se e entram em IP -1 que gerará nosso texto cifrado. Temos então nesta prática como texto cifrado o valor "11000111".

E era isso! Se estivessemos usando o algoritmo DES normal, teríamos que repetir essas operações por mais 14 vezes.

Compare nossa entrada X = 01010001 com a saída final "11000111". Completamente diferente e sem nenhum sentido. Claro que neste exemplo usamos apenas um bloco, mas se quiser testar pode fazer com um algoritmo de verdade, com algum software de criptografia que comentarei em algum post futuro. Verá que o resultado é totalmente ilegível.

Efeito Avalanche

O efeito avalanche explica o motivo de um algoritmo de criptografia ter de repetir diversas vezes o mesmo conjunto de operações. A mínima mudança no texto plano ou na chave deve gerar grandes mudanças no texto cifrado. Quanto mais rodadas, mais o texto cifrado sofre do efeito avalanche e maior é o impacto dessa mudança. Veja a imagem do efeito avalanche do DES:


E com isso eu fico por aqui, dando um fim nessa jornada de criptografia com o S-DES. Aguarde o próximo texto com conteúdos novos!

Se esta gostando dos textos não esqueça de compartilhar com seus amigos e conhecidos o texto e o blog.

Até a próxima!

0 comentários:

Postar um comentário

Subscribe to RSS Feed Follow me on Twitter!