0

我最近学习了密码学,我的任务之一是创建一个 kama sutra 密码。直到生成密钥为止,我都没有问题。但是,由于 kama sutra 的性质,我认为密钥不应该被硬编码到程序中,而是为它接收的每个纯文本生成。

我的理解是密文的长度应该与纯文本的长度相同。但是,问题是我将密钥放在哪里,这样只要我的程序生成密文,即使程序关闭,程序也能够解密它。鉴于这是一种算法,我确信我不应该考虑将密钥存储在另一个平面文件/数据库中。

网上关于这个密码的相关资料不多。我看到的是那些允许你随机化一个密钥集,根据给定的密钥集生成一个密文。解密时,您还需要提供相同的密钥集。这是正确的实施方式吗?

有这方面知识的朋友,请指导我。

4

1 回答 1

2

如果您希望能够解密密文,那么您需要能够在需要时恢复密钥。对于经典密码,这通常是通过对多条消息使用相同的密钥来完成的,请参阅 Caesar Cypher 示例。凯撒使用恒定键,-3/+3 移位,而奥古斯都使用 +1/-1 移位。

您可能需要咨询您的讲师,了解是否需要固定键或可变键。

开发一个固定密钥版本,然后在上面添加不同的密钥功能会更简单。这样你就可以让程序的其余部分正常工作。

您可能还想查看使用关键词来混合字母的经典技术。

于 2012-07-15T16:03:08.223 回答