Playfair密码算法中的空间字符管理

时间:2016-01-17 16:51:19

标签: c algorithm cryptography

我正在尝试实现此算法;你可以在这里找到一个很好的描述

LINK - Chapter 11.6 - Playfair Cipher

我对解密阶段有了一些想法。

在我按照加密文本的说明后,我得到:

35VRX2NZDCR25885

然后解密我按照相反方向的说明,但我被困在我得到消息解密的点

LETUSMEETATNOON

我怎么能从“LETUSMEETATNOON”转到“让我们在NOON见面”?

我应该以不同的方式对待空间吗?

1 个答案:

答案 0 :(得分:1)

空间不允许作为密码系统的明文或密文,因为它在附件中定义。

您可以使用更大的定义矩阵并添加所需的所有有用符号,可能是. , ; - ? ! : ' \ /,也可能是换行符。

还有一种方法。这是一个普遍的问题:如何在文本中添加空格以获得人类可读(英语)的句子?如何识别有效的英语句子?这是一个非常难以解决的数学语言学问题,尚未解决。

在您的情况下,您可以省略语法分析并仅检查单词的有效性。您可以轻松检查所有可能的拆分,并检查所有生成的单词是否都是有效的英语单词。您所需要的只是一本优秀的英语词典(所有英语单词列表),例如可以在Linux上的文件夹/usr/share/dict//var/lib/dict/找到,其他许多可以从互联网上下载。

关于Playfair算法:

如果您需要任何真正的安全性,请不要使用它 - 使用频率分析可以很容易地将其破坏。