Enigma算法是德国人在第二次世界大战中开发的加密方法(我相信)。有点像这样:
当在Enigma机器的键盘上输入一封信时,它首先通过第一个转子发送,这将根据其当前的设置来移动该字母。然后,新的字母将通过第二个转子,在那里它将被替代根据第二个转子目前的设置。这个新的字母将依次通过第三个转子,再次相应地被替换。接下来,这个新的字母将从反射器上弹出,并以相反的顺序通过三个转子返回。使Enigma在它的时代如此强大的诀窍,是旋转转子。当纯文本字母通过第一个转子时,第一个转子将旋转一个位置。其他两个转子将保持静止,直到第一个转子旋转26次(字母表中的字母数,因此,一个完全旋转)。然后,第二个转子旋转一个位置。在第二转子旋转26次(26X26字母,因为第一转子每次第二转子旋转26次)之后,第三转子将旋转一个位置。在消息的整个长度内,循环将像这样继续。其结果是一种转变。换句话说,S可以在消息的第一部分编码为b,然后在消息中编码为m。换档转子的这一原理允许26X26X26 = 17576可能的转子位置。为了让接收者解码消息,他们需要知道转子的初始设置,然后将密码文本通过机器找到纯文本。德国人设计了一个系统,让所有接收者根据日期将他们的转子设定为预定的设置。每个职员都有一本详细列出每天设置的书。
虽然(我相信)一个真正的Feistel包括分裂成两半(这在这里不发生)和其中一个旧的一半==另一个新的一半经过一轮加密,这个算法能被归类为一个Feistel网络吗?
发布于 2012-10-02 14:28:41
谜不是费斯特尔密码。"Feistel密码“是一种具有特定结构的分组密码,即两个部分的整个业务,另一半与另一半的(单向)函数的结合和可逆运算(例如,XOR)和交换。看维基百科页面,它有很好的原理图。
所以把Enigma看作是一种Feistel密码,就像把鲑鱼当作一种鸡:是的,它没有喙,没有羽毛,没有腿,没有翅膀,但是它能被称为鸡吗?奇怪的是,我倾向于拒绝。尽管三文鱼和鸡都是可以食用的。但食用并不足以使鸡变得胆小。同样,做一个对称密码是不够的。
发布于 2012-10-02 18:59:23
不,这是一台转子机器,更重要的是,一种按字符操作的流密码。
块密码一次对一块进行操作。Feistel密码是构造块密码的一种方法。我们可以更多地讨论Feistel密码或更基本的块密码,但这不是你的问题。
在最基本的情况下,Enigma是一个流密码,而不是块密码。
发布于 2017-05-24 14:14:47
在我看来,通过一些基本的修改,谜团可能会变得更安全(如果不是不可打破的话)。
https://crypto.stackexchange.com/questions/3934
复制相似问题