Paso 5: Prueba del cojín de una sola vez
El cojín de una sola vez es el más simple de todos los métodos de cifrado. Toma el texto de entrada (texto) y usando XOR bit a bit combina con otra entrada (llave).
Si la clave es aleatoria, tan largo o más largo que el texto y la clave sólo se utiliza una vez y luego el cifrado es, en teoría, irrompible.
Texto xor clave == > cifrado de texto
Texto cifrado xor clave == > texto
Vamos a comenzar:
Texto = "Mmm. Me encantan las tortugas. "
Clave = "This_is_for_me_to_know"
--------------------------------------------
Cipher = "y E D y < h (O E C 5. A F 4 7 O J 9}"
Clave = "This_is_for_me_to_know"
--------------------------------------------
Texto = "Mmm. Me encantan las tortugas".
Funciona para la codificación de derecho una sola vez del cojín, pero tomó un tiempo. Tuve que ejecutar el programa en cada carácter de la clave y el texto y luego tuve que montarlo. Creo que sería mejor si escribí algo de código para hacer esto para mí.
----
#! / bin/bash
CAT test.txt | awk ' {} BEGIN
CHK = 0
CNT = 1
mientras que (getline < "wheel.txt" > 0)
{
n [CNT] = $0; i [$0] = CNT; CNT ++
}
Mylen = CNT-1; mymax = CNT-2
Close("wheel.txt")
}
{
CNT = 1
mientras que (CNT < = 80)
{
if(CHK==0)
{
Result[CNT]=substr($0,CNT,1)
}
if(CHK!=0)
{
Xin=substr($0,CNT,1)
Yin = resultado [CNT]
Pos1 = i [Xin]
POS2 = i [Yin]
if(Pos1==0) pos1 = 1
if(POS2==0) pos2 = 1
posX = 95-pos1 pos2
Si (posx < = 0) posx = posx + 96
Si (posx < = 0) posx = posx + 96
Si (posx < = 0) posx = posx + 96
resultado [CNT] = n [posx]
}
CNT ++
}
CHK = 1
}
{FINAL}
A = ""
CNT = 1
mientras que (CNT < = 80)
{
A = resultado [CNT]
CNT ++
}
imprimir
}'
----
Mi otro problema es que el acolchado de una sola vez es demasiado simple y tiene la restricción de no poder volver a utilizar la clave. Me gustaría un método donde la misma clave no da para arriba sus secretos tan fácilmente.
.