在 vigenere 密码中查找密钥的长度

Posted

技术标签:

【中文标题】在 vigenere 密码中查找密钥的长度【英文标题】:Find length of key in vigenere cipher 【发布时间】:2020-02-06 17:26:13 【问题描述】:

我是密码学新手,请通过明确定义的步骤帮助解决以下 vigenere 密码问题

假设给你一个 300 字符的加密消息,用 Vigenere 密码系统加密,你知道明文单词 CRYPTOGRAPHY 恰好出现了两次,我们知道密文序列 TICRMQUIRTJR 是 CRYPTOGRAPHY 的加密。第一次出现在字符位置 10 处,第二次出现在字符位置 241 处(我们从 1 开始计数)。用于加密的密钥长度是多少

【问题讨论】:

好的,我们知道问题所在。我们不知道您为了回答这个问题做了什么尝试。向我们展示您的尝试,我们可以为您提供指导。如果您甚至不尝试这个问题,那么我们甚至不会尝试帮助您。 *** 帮助那些帮助(或至少尝试)自己的人。也许您需要向您的导师寻求帮助? 【参考方案1】:

答案是 7 解决方案 为了估计周期,我们使用 Kasiski 测试。给定的两个事件之间的距离是 241 - 10 = 231 = 3 · 7 · 11 职位。 因此,可能的周期是 3、7 和 11。如果猜测正确,我们可以立即找到 相应的班次:在位置 10 的班次是 T - c = 19 - 2 = 17 = r .其他位置的类似计算给出了 shift 键 正确正确 我们现在看到这不是周期 3 或 11 的周期性,而周期 7 是可能的。关键字 长度 7 从位置 15 开始;因此关键字是 正确。

【讨论】:

以上是关于在 vigenere 密码中查找密钥的长度的主要内容,如果未能解决你的问题,请参考以下文章

如何将另一个密钥添加到 vigenere 密码中

Vigenere 密码解码无法正常工作

我的 CS50 Vigenere 密码程序有啥问题?

使用从文件中读取明文的 Vigenere 密码进行加密 (JAVA)

Python中的Vigenere密码不适用于大写/小写字母转换

如何在 vigenere cipherkey cs50 pset2 中重用(循环)密钥