¿Sería este tipo de encriptación bueno en algo?

-12

He pensado mucho en este algoritmo muy simple y no tengo ni idea de si se pensó antes ... Pero creo que debería haberlo hecho.
Tampoco sé nada sobre otros algoritmos de encriptación, así que no puedo saber si esto ya fue inventado o no.

Todo está esbozado en este documento:

Y esta es una pequeña función de C # para este algoritmo.

public static void Encrypt(Stream source, Stream target, byte[] key)
{
    int current;
    long pos = 0;

    int res;

    if (source.CanSeek) source.Seek(0, SeekOrigin.Begin);
    if (target.CanSeek) target.Seek(0, SeekOrigin.Begin);

    while ((current = source.ReadByte()) != -1)
    {
        byte b = (byte)current;

        res = b + key[pos++ % key.Length];
        if (res > byte.MaxValue) res -= byte.MaxValue;

        target.WriteByte((byte)res);
    }
}

Todo lo que sé sobre el cifrado es que (i) cambia los datos de manera reversible para protegerlo.
Por lo que sé, no hay forma de descifrar la clave sin conocer los datos originales.
Y para verificar si la clave es correcta (en un intento de descifrar), se debe verificar la integridad de los datos. Por lo tanto un hash debe ser conocido ...

Entonces, ¿este algoritmo casi retardado mantendrá mis datos seguros?
Si no, ¿por qué?

Editar: ¡Intenta resolver esto!
Los bytes cifrados son 169 131 181 215 152 43 55 126 235 88 46 150 17 45 185 122 180 203 34 67 109 54 127 234 87 45 57 222 125 152 142 133 ...
El hash MD5 es 116 249 25 168 168 255 211 143 122 60 216 192 37 167 178 112 !
¡Adelante!

    
pregunta Vercas 28.06.2011 - 18:12
fuente

3 respuestas

17

Simplemente no: enlace

A Bruce Schneier le gusta decir: "Cualquiera puede inventar un algoritmo de cifrado que ellos mismos no pueden romper; es mucho más difícil inventar uno que nadie más pueda romper"

Los algoritmos actuales RSA, AES, etc. se han sometido a un riguroso control durante años por decenas de miles. ¿Por qué no solo el uso de estos?

También: Lecciones aprendidas y conceptos erróneos sobre la encriptación y la criptología

    
respondido por el Rakkhi 28.06.2011 - 18:37
fuente
13

¿No es esto un Cifrado Vigenère ? Busque el artículo, estoy bastante seguro de que habla sobre el criptoanálisis de este código (encuentre la longitud de la ley, el análisis de frecuencia, etc.)

Y si la clave tiene la misma longitud que el texto sin formato, tiene un Pad de una sola vez que es prácticamente irrompible sin la clave (siempre que esta clave tenga buenas propiedades aleatorias y nunca se vuelva a utilizar).

    
respondido por el M'vy 28.06.2011 - 18:47
fuente
0

Lo primero que debe tener en cuenta al solicitar a alguien que pruebe su código de algoritmo o algo de ese tipo es HACERLO ENTENDIDO. Si puedes entender lo que quieres decir, no significa que todos puedan. De todos modos, hay dos problemas en su cifrado: es inseguro bajo Seguridad semántica (con una clave más corta que el mensaje) y es inseguro bajo CPA (ataque de texto simple elegido) y no se considera ningún cifrado de este tipo. Déjame explicarte con un poco más de detalle. Como se puede ver en la construcción general de su cifrado, es algo que se asemeja ligeramente a la OTP (almohadilla de una sola vez) aunque mucho menos segura. Sin embargo, incluso si su sistema de encriptación hubiera sido tan seguro como la OTP en el momento en que usa la misma clave para encriptar múltiples mensajes, su encriptación se rompe rápidamente y más que eso, se deduce la clave. E incluso si su algoritmo de cifrado hubiera sido resistente a deducir la clave del par de texto cifrado texto sin formato, el algoritmo de cifrado definitivamente no es una función aleatoria ni un algoritmo de cifrado basado en nonce y, por lo tanto, no es resistente al CPA. Para hacer un último punto, su algoritmo de cifrado es incluso peor que el algoritmo de cifrado OTP porque lo que está haciendo es simplemente crear un Cifrado de Corriente con un PRG (Pseudo Random Generator) completamente predecible que no hace nada buscando aleatoriamente, simplemente repite la clave cada vez El espacio está terminado. El único caso seguro con su cifrado es cuando la clave es tan larga como el mensaje y entonces no tiene sentido cifrarlo porque si tiene una manera de comunicar la clave al destinatario de forma segura, pierda tiempo y no utilice el método para comunicarse. todo el mensaje? De todos modos, el punto clave es que intentaste hacer un cifrado de flujo, pero utilizaste un generador pseudoaleatorio completamente inseguro y dejaste que esta fuera una lección para no intentar reinventar la rueda.

    
respondido por el Samuel Allan 19.03.2014 - 12:08
fuente

Lea otras preguntas en las etiquetas