在我熟悉随着信息时代的兴起而变得流行的密码学类型之前,我非常熟悉这个社区所称的“古典”密码:凯撒移位密码,维吉娜密码,格栅格栅,锡斯莱斯,what密码,神秘机器,以及其他一些可能不符合密码标准的技术。密码有两种:替换和转位(密码和密码也有区别)。尽管如此,在我生命的那一段时间里,我发现密码设计的多样性要比在学习现代密码学家所使用的信息时代算法的分类之后要多,比如SP网络和Feistel设计。
在了解了什么是Feistel密码和所有类似Feistel的设计之后,以及置换网络是什么(在学习这个之前,我实际上可以看到更多的变化),似乎我所能得到的只是属于任何一类的设计。也许三年前,我发现了ARX的分类,我认为大多数的密码最终都是Feistel样的密码。后来,我了解到了小斑点小斑点,它有一个非常非正统的设计(每一轮之后不交换半部)。直到我看到关于轻量级块密码的CryptoLUX文章将它(ARX)作为一种结构,我才认为它是一种不同的结构。它还列出了“广义Feistel网络”和“广义Feistel结构”,但我认为它们可以重新命名为“Feistel样结构”。回顾Speck,它似乎既不能被归类为Feistel类密码,也不能归为SP网络。
所以,我的问题是:
发布于 2017-09-22 17:32:53
。
一般来说,是的。ARX密码通常只使用简单的CPU指令(加法、旋转和Xor),通常是为了确保定时间执行和方便高效的SIMD实现。
S盒和分裂状态是如此普遍的SPN和Feistel网络通常不存在于ARX设计。我相信如果您想要的话,您可以想出/找到一个ARX Feistel网络的例子,或者从ARX指令构建一个SP网络,但我不确定它会提供什么优势。
通常,该算法的ARX/SPN/Feistel部分用于创建"伪随机置换",然后伪随机置换作为密码构造的一部分来提供加密。
基本密码结构是迭代密钥或偶数-曼苏尔建筑。AES可以这样建模,作为一个具有伪随机排列的密钥加法层的交错应用程序。
一个新的密码结构,可以建立在任意伪随机排列是海绵结构。从技术上讲,双工建设是流密码,而不是分组密码。我认为这实际上是一个关键点:认为分组密码是最好的加密方式的假设不一定是正确的。。
基于
基于置换的构造通常更通用,并且常常提供一个全合一的解决方案(认证加密、散列、MACs);虽然您可以通过分组密码来构建上述所有内容,但从实现的角度来看,使用基于置换的结构(如海绵结构)要简单得多。
存在“线性”秘密密钥密码,就像整数上的完全同态加密中的这个。通常,这些类型的密码被设计为便于同态加密和/或实例化公钥密码系统。它们通常是从数论的角度构建的,而且显然不像其他密码类别(而且您也不会出于同样的原因使用它们)。
https://crypto.stackexchange.com/questions/51726
复制相似问题