我想学习vernam加密。
首先,你能否证实我的编码和解码算法是一样的?
我已经阅读了一个练习,说要用Pi解码这条消息:
01237 55235 31127 12189 87479 1592
我试过vernam python pacakge,我试过这个:
py_vernam.vernam('01237552353112712189874791592','3.141592653589793238462643383')
或
py_vernam.vernam('01237552353112712189874791592','31415926535897932384626433832')
但它没有给我一个可读的信息......
由于
答案 0 :(得分:0)
“你能否证实我的编码和解码算法是一样的?”
- >首先,我们谈论的是加密而不是编码(在第一步)...区别于这两者的显着区别在于,这里涉及到一个关键...
取决于您正在处理的vernam变体,加密和解密可能相同或不同......对于二进制变体,它肯定是相同的操作,简单的XOR
如果你碰巧指的是“让我们用手做”或者学校变种,那不是,基本上是因为它处理的是mod 10而不是mod 2的值,导致加密是+ ...解密是 - ......
5块中的符号表示mod 10变体,因为使用mod 2变体通常只处理二进制数据
01237552353112712189874791592 Ciphertext
31415926535897932384626433832 Key
========================================
70822636828325880805258368760 Text (encoded)
所以最后我们必须将编码读入字符......(第二步)
由密码的用户来决定这些数字的含义所以当搜索你的示例消息时,你可以找到一个显示替换表的法语页面......所以......让我们来看看...... / p>
替换表:
Clair A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Chiffré 6 38 32 4 8 30 36 34 39 31 78 72 70 76 9 79 71 58 2 0 52 50 56 54 1 59
结果:
70 8 2 2 6 36 8 2 8 32 58 8 0 8 0 52 58 36 8 76 0
M E S S A G E S E C R E T E T U R G E N T