Crack AES ECB mode C ++

1

Tengo este pequeño código para cifrar:

typedef unsigned char byte;

int encrypt(char *filename) {

    byte key[ 16 ];
    int i;
    memset( key, 0x00, 16);

    for(i=0;i<=sizeof(*key);i++){ 
    key[i]=(byte)(std::rand() % 256);
    }

    auto enc = new ECB_Mode<AES>::Encryption(key, sizeof(key));
}

¿Existe un método para descifrar o descifrar un fragmento de texto cifrado cifrado con esta función?

    
pregunta Mark Smith 03.03.2017 - 18:59
fuente

1 respuesta

1

El primer problema que veo es que usas una función aleatoria estándar en lugar de una aleatoria criptográfica. No veo cómo sembró eso, pero si es srand(time(0)) , entonces probablemente se pueda descifrar.

Sin embargo, el modo AES ECB sigue siendo AES. Si solo tiene 1 bloque de texto cifrado está bien. Si tiene muchos textos, es probable que uno todavía no pueda resolverlo, el problema con el modo ECB es que 2 bloques del mismo texto simple también tendrán el mismo bloque de texto cifrado. Por lo tanto, realmente depende del texto que desea cifrar y del conocimiento del atacante del texto plano original. Lo que ves en Wikipedia es una imagen codificada donde hay muchos bloques similares. Todos los bloques blancos serán similares, todos los bloques negros serán similares y así sucesivamente.

    
respondido por el akg 04.03.2017 - 00:27
fuente

Lea otras preguntas en las etiquetas