elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Seguridad
| | |-+  Criptografía (Moderador: kub0x)
| | | |-+  ayuda con un cifrado vernam
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda con un cifrado vernam  (Leído 2,043 veces)
tca153

Desconectado Desconectado

Mensajes: 10


Ver Perfil
ayuda con un cifrado vernam
« en: 25 Agosto 2017, 21:10 pm »

hola estoy tratando de hacer un cifrador vernam para lo que se me ocurrio utilizar la clave como semilla de un generador de numeros pseudo-aleatorios para cifrar el mensaje y hacerla lo suficientemente grande como para eludir al test de kasinsky, pero lei que los generadores que hay no son criptograficamente seguros, asi que improvise uno, pero no se que tan bueno es. Alguien sabra o podra hacerle los test para saber si es bueno o no, o explicarme como hacerlo?

el codigo basico del generador (no del cifrador) es este:

Código:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void main() {
char clave[30];
unsigned char *subc;
int i,j,n,k,l,m,salto;
long numero;
unsigned long long semilla;

printf("ingrese la clave\n");
gets(clave);

n=strlen(clave);

subc=malloc(n*n);

semilla ^= semilla;
l ^= l;

for(i=0;i<n;i++)
   semilla += (long long)clave[i];
   
semilla <<= 1;
semilla++;

for(m=0;m<n;m++) {
for(i=0;i<n;i++) {
for(j=0;j<clave[i];j++) {
semilla *= semilla;
semilla %= 2147483629;
semilla *= 16811;
semilla %= 2147483629;
}

numero = (long) semilla;
// printf("%12u   %08X\n",numero,numero);

salto ^= salto;
for(k=7;k>=0;k--) {
if(!clave[i]&1<<k)
    salto++;
subc[l] <<=1;
if(numero & 1<<(k+23-salto))
    subc[l]++;
}
l++;
}
}

printf("\n");

for(i=0;i<n;i++) {
   for(j=0;j<n;j++)
      printf("%4d\n",subc[i*n+j]);
   //printf("\n");
}

for(i=0;i<(n*n-1);i++)
subc[i] ^= subc[i+1];

for(i=0;i<(n*n-1);i++)
   printf("%4d\n",subc[i]);

for(i=0;i<(n*n-2);i++)
subc[i] ^= subc[i+1];

for(i=0;i<(n*n-2);i++)
   printf("%4d\n",subc[i]);

for(i=0;i<(n*n-3);i++)
subc[i] ^= subc[i+1];

for(i=0;i<(n*n-3);i++)
   printf("%4d\n",subc[i]);

free(subc);
}

esto es lo basico, solo saca por pantalla la secuencia generada.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda Archivo cifrado
Criptografía
jagb80 3 4,338 Último mensaje 6 Junio 2010, 02:30 am
por jagb80
Ayuda con el cifrado de hill
Criptografía
philipjfray 0 2,603 Último mensaje 17 Junio 2013, 00:44 am
por philipjfray
Tipo de cifrado Ayuda!!!!!!!!!!!!!!:huh:
Hacking
Owl-City 4 4,276 Último mensaje 21 Abril 2014, 03:16 am
por engel lex
Tipo de cifrado Ayuda!!!!!!!!!!!!!! o.O « 1 2 »
Criptografía
Owl-City 18 10,799 Último mensaje 24 Abril 2014, 01:15 am
por Owl-City
Ayuda con Cifrado (16 caracteres)
Hacking
dimas89 0 2,092 Último mensaje 9 Diciembre 2015, 03:03 am
por dimas89
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines