Classificação de Algoritmos Esteganográficos
3296 registros
1 hoje
1 nesta semana
33 neste mês![]() | 73% | Brasil (41614) |
![]() | 5% | Portugal (2585) |
![]() | 3% | EUA (1975) |
![]() | 0% | Holanda (237) |
![]() | 0% | Rússia (235) |
| Hoje: | 1555 |
| Ontem: | 1485 |
| No mês: | 31282 |
| Mês passado: | 25815 |
| Total: | 57097 |
| Recorde: | 3037 |
| No dia: | 04.03.10 |
| Leituras hoje: | 19736 |
| Leituras Total: | 250718 |
| Bots hoje: | 330 |
| Dados desde: | 16.02.2010 |
| O Algoritmo CripFix |
|
|
|
| Escrito por Yugi | ||||
| Sáb, 22.11.2003 21:00 | ||||
Página 1 de 2 O autor do CripFix, Yugi Tumro, disponibiliza um pacote "zipado" contendo o texto explicativo do seu algoritmo, um programa para cifrar e decifrar textos além de um texto desafio cifrado com o CripFix mas de chave desconhecida.
OBSERVAÇÕESCripFix é um Algoritmo Criptográfico de Fluxo. Não é um algoritmo semelhante ao DES, IDEA, AES ou SERPENT. Todos estes algoritmos são baseados em uma cifra de bloco. A maioria deles codifica a mensagem clara em blocos de 128 bits. CripFix é simplesmente um pequeno Algoritmo Criptográfico onde a mensagem clara é codificada byte a byte. A chave é de 128 bits e ela deve ser digitada em formato ASCII. CripFix não cria um arquivo temporário ao codificar ou decodificar os arquivos. Como o Algoritmo CripFix foi implementado apenas para o teste do algoritmo estas questões não foram consideradas em sua codificação. Para sua segurança convém criar um diretório e copiar o [CRIPFIX.EXE] para ele. Depois copie o arquivo que você deseja criptografar ou decodificar para este diretório. É necessário verificar que ao informar o arquivo que será criptografado ao CripFix você deve informar o nome com o formato 8.3. O CripFix utiliza o padrão MS-DOS para os nomes dos arquivos. Anote cuidadosamente a chave utilizada para codificação. Na decodificação a chave de cifra deve ser a mesma da codificação. Cuidado ao misturar letras maiúsculas e minúsculas para compor uma chave. Elas são diferentes para o CripFix. Na realidade o que importa é o código ASCII de cada caracter e não se este caracter é uma letra maiúscula, minúscula, um número ou caracter especial. Caso você queira acrescentar caracteres especiais à sua chave basta utilizar as teclas O arquivo [CRIPFIX.EXE] não é indicado para uso comercial. O software foi implementado para mostrar o uso do criptossistema CripFix. O CripFix não possui um banco de dados para guardar as chaves utilizadas. O gerenciamento de chaves fica por conta do usuário. Quaisquer prejuízos decorrentes do uso ou da impossibilidade do uso deste software serão de total responsabilidade do usuário. O autor do algoritmo somente informa que as funções de cifragem e decifragem funcionam perfeitamente se não houver erro ao digitar as chaves de cifra. DESCRIÇÃO DO ALGORITMOA cifragem dos dados com o Cripfix acontece byte a byte. Cada rodada da cifragem com o Cripfix codifica 8 bytes. Caso o tamanho do arquivo não seja múltiplo de 8 a rodada é interrompida. Vamos codificar a mensagem "aaaaaaaa" com a chave "0123456789ABCDEF". Dividindo a chave de 16 bytes nos valores A, B, C, D, E, F, G, HA = "01" => 12592 Os valores são obtidos da seguinte forma, tomando como exemplo B = "23": o código ASCII do caracter "2" é 50 (ou 32 hexadecimal) e o do caracter "3" é 51 (ou 33 hexadecimal) portanto, em valores hexadecimais, a string "23" corresponde aos valores hexadecimais 32 e 33. O valor 32 é o byte mais significativo e 33 é o byte menos significativo portanto, na memória, estão dispostos em ordem inversa: 33 32. O valor decimal correspondente ao hexadecimal 3332 é 13106 (observação da vovó Vicki com a devida autorização do autor)
. Início da cifragem propriamente ditaNesta fase começamos a codificar o arquivo claro. Antes temos que fazer alguns cálculos. Será necessário uma variável X do tipo caracter com tamanho 20. Esta variável é auxiliar e não é utilizada diretamente para cifrar ou decifrar. Primeiro vamos calcular A * A e B * B, lembrem que A = 12592 e B = 13106: A * A = 0158558464 Para padronizar o tamanho de A * A e B * B completamos os números com zeros à esquerda para que eles tenham 10 dígitos. Para obter X basta concatenar estes dois números considerando-os como se eles fossem caracteres. X = 01585584640171767236 Vamos utilizar duas variáveis auxiliares: XA e XB. Estas variáveis são numéricas. XA é igual a um número de 5 dígitos assim com XB também é. Para obter os valores de XA e XB basta ler 5 dígitos de X a partir das posições 6 e 11, respectivamente. X = 01585584640171767236 Agora é hora de modificar os valores das variáveis A, B, C, D. Elas permaneceram inalteradas até agora. Os novos valores serão calculados da seguinte forma: A = (A + XA + C) MOD 65536 Neste ponto as variáveis A e B serão utilizadas para codificar 4 bytes do arquivo claro. A e B representam um número de 16 bits. Precisamos dividir A e B em 2 partes de 8 bits para criptografar cada byte que possui 8 bits. A = 19140 A operação de divisão das variáveis A e B é simples de se fazer utilizando um computador. Basta transformar A em uma string de 2 bytes e achar o código ASCII de cada byte. O primeiro será A[1] e o segundo será A[2]. O mesmo vale para a variável B. Na falta de um computador basta utilizar os operadores DIV e MOD. MOD é o resto da divisão e DIV é a parte inteira do resultado da divisão. Vejam abaixo: A = 19140 As variáveis A[1], A[2], B[1] e B[2] contém valores de 0 até 255. A cifragem dos primeiros 4 bytes da mensagem clara fica assim: Mensagem = "aaaa" Então "aaaa" corresponde a "%«~Ò". Na decifragem o processo é o mesmo, só que ao invés de utilizarmos adição usamos a subtração. Veja: Criptograma = "%«~Ò" Notem que a operação é a mesma. Apenas utilizamos os valores de A[1], A[2], B[1], B[2] negativos. Vamos repetir todo o processo utilizando as variáveis E, F, G, H. Agora codificamos os outros 4 bytes restantes ("aaaa"). E = 14648 Para padronizar o tamanho de E * E e F * F completamos os números com zeros à esquerda para que eles tenham 10 dígitos. Para obter X basta concatenar estes dois números considerando-os como se eles fossem caracteres. X = 02145639040287675521 Vamos utilizar duas variáveis auxiliares: XA e XB. Estas variáveis são numéricas. XA é igual a um número de 5 dígitos assim com XB também é. Para obter os valores de XA e XB basta ler 5 dígitos de X a partir das posições 6 e 11, respectivamente. X = 02145639040287675521 Agora é hora de modificar os valores das variáveis E, F, G, H. Elas permaneceram inalteradas até agora. Os novos valores serão calculados da seguinte forma: E = (E + XA + G) MOD 65536 Neste ponto as variáveis E e F serão utilizadas para codificar 4 bytes do arquivo claro. E e F representam um número de 16 bits. Precisamos dividir A e B em 2 partes de 8 bits para criptografar cada byte que possui 8 bits. E = 30491 A operação de divisão das variáveis E e F é simples de se fazer utilizando um computador. Basta transformar E em uma string de 2 bytes e achar o código ASCII de cada byte. O primeiro será E[1] e o segundo será E[2]. O mesmo vale para a variável F. Na falta de um computador basta utilizar os operadores DIV e MOD. MOD é o resto da divisão e DIV é a parte inteira do resultado da divisão. Vejam abaixo: E = 30491 As variáveis E[1], E[2], F[1] e F[2] contém valores de 0 até 255. A cifragem dos primeiros 4 bytes da mensagem clara fica assim: Mensagem = "aaaa" Então "aaaa" corresponde a "|Ø#ô". Na decifragem o processo é o mesmo, só que ao invés de utilizarmos adição usamos a subtração. Veja: Criptograma = "|Ø#ô" Notem que a operação é a mesma. Apenas utilizamos os valores de E[1], E[2], F[1], F[2] negativos. Agora faremos a junção das variáveis C, D, G, H. Utilizaremos duas variáveis AUX1 e AUX2. Vejam abaixo: AUX1 = C Neste ponto voltamos ao início do passo 2.2. Os primeiros 8 bytes da mensagem "aaaaaaaa" são os bytes cifrados "%«~Ò|Ø#ô".
|
||||
| Atualização Qui, 14.01.2010 12:58 |