2014-05-21 12:25 GMT-03:00 Jonas Gabriel Meirelles de Freitas
<
gabrielj...@gmail.com>:
>
> Boa tarde a todos.
>
> Ainda não muito familiarizado com todas as funções disponíveis em python, estou procurando uma maneira de reproduzir a cifra de Feistel, que é utilizada no algoritmo DES por exemplo, porém não consegui localizar nenhum exemplo para a linguagem na Web.
Procure por "pure python DES" no google que você deve achar um monte,
talvez até um que eu mesmo fiz. Mas se você está tendo problemas com
algo básico assim, melhor começar por algo mais elementar. Implemente
um algoritmo de hash simples, por exemplo
> - Como posso criar blocos de 32 bits de uma string? Digo quebrar uma mensagem de acordo com a quantidade de bits.
Você pode simplesmente usar o módulo bitarray, que vai precisar
instalar, ou converter a string para uma lista de longs de 32 bits.
Use a função ord() e faça o bitshift dos bytes de cada grupo de 4
bytes para 24, 16, 8, 0 bits, e some.
> - Preciso encriptar uma mensagem, mas não consigo encontrar uma função para uma criação de S-box injetora, que é necessário aumentar esses blocos para 48 e dividi-los em blocos de 6 bits.
Você quer dizer apenas a expansão ou a P-Box? Não creio que a
bilioteca padrão ou mesmo o bitarray tenha isso, mas acredito que é só
você quebrar o bloco de 32 bits em 8 blocos de 4 bits e em cada bloco
duplicar o primeiro e último bit, criando 8 blocos de 6 bits, e juntar
tudo de novo. 8x6=48.
---
Pedro Werneck