首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >简单vernam密码学

简单vernam密码学
EN

Stack Overflow用户
提问于 2017-09-04 13:08:44
回答 1查看 293关注 0票数 0

我想学习vernam加密。

首先,你能确认这个算法在编码和解码上是一样的吗?

我读过一篇练习,上面说要用Pi来解读这封信:

代码语言:javascript
复制
01237 55235 31127 12189 87479 1592

我尝试过vernam python pacakge,我尝试过这样的方法:

代码语言:javascript
复制
py_vernam.vernam('01237552353112712189874791592','3.141592653589793238462643383')

代码语言:javascript
复制
py_vernam.vernam('01237552353112712189874791592','31415926535897932384626433832')

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

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-05 08:55:12

“你能确认一下这个算法在编码和解码上是一样的吗?”

->首先,我们讨论的是加密而不是编码(在第一步).区别很大,区别在于这里有一把钥匙.

根据您正在处理的vernam的哪个变体,加密和解密可能是相同的,也可能不是.对于二进制变量,它肯定是相同的操作,简单的XOR

如果你碰巧把手指放在“让我们用手来做这件事”上,或者说它不是,基本上是因为它处理的是mod 10而不是mod 2,从而导致加密is +.解密是.

5块中的符号表示mod 10变量,因为使用mod 2变量通常只处理二进制数据。

代码语言:javascript
复制
01237552353112712189874791592 Ciphertext
31415926535897932384626433832 Key
========================================
70822636828325880805258368760 Text (encoded)

所以最后我们必须把编码读成字符..。(第二步)

密码的用户应该赋予这些数字一个意义,所以在搜索示例消息时,您可以找到一个显示替换表的法语页面.所以..。让我们看看..。

替代表:

代码语言:javascript
复制
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

结果:

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46037797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档