我最近接受了密码学,我的任务之一就是创建一个kama sutra密码。直到生成密钥,我都没有问题。但是,由于kama sutra的性质,我认为密钥不应该硬编码到程序中,而是为每个纯文本生成。
我的理解是密文的长度应该与纯文本的长度相同。但是,问题是我在哪里放置密钥,这样只要密码文本由我的程序生成,即使程序关闭,程序也能够解密它。鉴于这是一种算法,我确信我不应该将密钥存储在另一个平面文件/数据库中。
网上关于此密码的相关信息并不多。我看到的是那些允许你随机化一个密钥集,根据给定的密钥集生成密文的东西。解密时,您还需要提供相同的密钥集。这是正确的实施方式吗?
对于那些了解此事的人,请指导我。
答案 0 :(得分:2)
如果您希望能够解密密文,那么您需要能够在需要时恢复密钥。对于经典密码,通常通过对多个消息使用相同的密钥来完成,请参阅Caesar Cypher的示例。凯撒使用恒定键,-3 / + 3班,而奥古斯都使用+ 1 / -1班。
您可能需要咨询您的教师,以确定是否需要固定密钥或变化密钥。
开发固定密钥版本,然后在顶部添加不同的密钥功能将更简单。这样你就可以让程序的其余部分正常工作。
您可能还想查看使用关键短语混合字母表的经典技巧。