简单的vernam密码学

时间:2017-09-04 13:08:45

标签: cryptography

我想学习vernam加密。

首先,你能否证实我的编码和解码算法是一样的?

我已经阅读了一个练习,说要用Pi解码这条消息:

01237 55235 31127 12189 87479 1592

我试过vernam python pacakge,我试过这个:

py_vernam.vernam('01237552353112712189874791592','3.141592653589793238462643383')

py_vernam.vernam('01237552353112712189874791592','31415926535897932384626433832')

但它没有给我一个可读的信息......

由于

1 个答案:

答案 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