Creé una función criptográfica bidireccional simple que te permite cifrar un mensaje y descifrarlo con la misma clave. Así es como funciona.
- Divida el mensaje en una matriz de segmentos de 32 bits (o algo más, dependiendo de la longitud de su clave)
- Genere un número aleatorio de 32 bits y xor todos los segmentos con él, y agréguelo al inicio de la matriz. (Esto se hace para evitar que un atacante reconozca que el mismo mensaje o ciertas partes de él se han enviado dos veces)
- X o todos los segmentos con un hash de la clave y el índice del segmento. El índice se incluye para evitar que un atacante encuentre patrones dentro del mensaje donde hay 0s u otros datos conocidos.
Mis preguntas son:
- ¿Ya existe una función bidireccional similar?
- ¿Hay algún defecto en él y, de ser así, qué se puede hacer para corregirlos?
Explique en términos sencillos, no soy un experto en criptografía.