Étape 5: Tester l’one-time pad
L’one-time pad est la plus simple de toutes les méthodes de chiffrement. Il faut la saisie de texte (texte brut) et à l’aide de XOR bit par bit combine avec une autre entrée (clé).
Si la clé est aléatoire, aussi longues ou plus longue que le texte brut et la clé est utilisée seulement jamais une fois puis le chiffrement est, en théorie, incassable.
Texte brut xor clé == > texte chiffré
Texte de chiffrement xor clé == > texte brut
Commençons :
Plain-text = "Mmm. J’aime les tortues. "
Key = « This_is_for_me_to_know »
--------------------------------------------
Chiffrement = "y E D y < h (O E 5C. UN F 4 7 O J 9}"
Key = « This_is_for_me_to_know »
--------------------------------------------
Plain-text = "Mmm. J’aime les tortues ».
Si cela fonctionne pour le chiffrement de tout droit one-time pad, mais il a fallu un certain temps. J’ai eu à exécuter le programme sur chaque caractère de la touche plus le texte brut et puis j’ai eu à l’assembler. Je pense qu’il serait mieux si j’ai écrit un code pour cela pour moi.
----
#! / bin/bash
Cat test.txt | awk ' BEGIN {}
CHK = 0
CNT = 1
tandis que (getline < « wheel.txt » > 0)
{
n [CNT] = $0 ; J’ai [0$] = CNT ; CNT ++
}
mylen = CNT-1 ; mymax = CNT-2
Close("Wheel.txt")
}
{
CNT = 1
tandis que (CNT < = 80)
{
if(CHK==0)
{
result[CNT]=substr($0,CNT,1)
}
if(CHK!=0)
{
Xin=substr($0,CNT,1)
Yin = result [CNT]
POS1 = i [Xin]
POS2 = i [Yin]
if(POS1==0) pos1 = 1
pos2 if(POS2==0) = 1
PosX = 95-pos1-pos2
Si (posx < = 0) posx = posx + 96
Si (posx < = 0) posx = posx + 96
Si (posx < = 0) posx = posx + 96
résultat [CNT] = n [posx]
}
CNT ++
}
CHK = 1
}
{FIN}
SORTIR = ""
CNT = 1
tandis que (CNT < = 80)
{
SORTIR = résultat [CNT]
CNT ++
}
imprimer
}'
----
Mon autre question est qu’one-time pad est trop simple et a la restriction de ne pas être en mesure de réutiliser la clé. Je voudrais une méthode où la même clé abandonneront pas ses secrets facilement.
.