这个ETSFS算法如何移动工作?

时间:2017-04-20 15:19:47

标签: algorithm encryption cryptography

我正在关注ETSFS enryption算法here

为了给出一些上下文,ETSFS是一种加密算法,通过一系列数据更改函数来加密4x4数据矩阵。

提供的步骤(带有I / O)示例在之前和之后非常清楚,但算法的移位步骤对我来说有点混乱。 (参见第5/10页)以下是该页面的移动I / O示例:

Example of shifting

请注意,此算法中允许的符号依次为:

* - . / : @ _

['*','-','.','/',':','@','_']

a-z和A-Z标记为0-25

它表示移位是基于数组中元素的位置。不幸的是,我不能从给定的图像中提取很多信息。在第三行中,当我看不到vs之间的相关性时,我不清楚3如何成为2。特别是上图中的最后一行,其中4变为2。

这种转变是如何运作的?

1 个答案:

答案 0 :(得分:0)

据我所知,您正在寻找的信息(即移位步骤中使用的arrayAlphaarrayNumberarraySymbol数组的内容)根本没有指定the paper you cite中的任何位置,它们似乎也不是从密钥派生的。如果你想知道那些数组应该包含什么,你必须联系作者并询问。

无论如何,我建议你不要打扰。你引用的论文似乎并不是由专业密码学家编写的,它所描述的算法似乎并不是现代意义上的安全加密方案。它显然不提供semantic security,更不用non-malleability。  当然,它永远不会在任何实际的加密会议中发布。作者似乎已经陷入了普通的业余密码学家设计密码的陷阱,这个密码足够复杂they themselves can't think of a way to break it.而且,他们在破解(或设计)密码方面似乎没有特别的经验。

我建议您花时间使用这个算法,而不是熟悉现代加密技术的最新技术和最佳实践。为此,我建议任何体面的入门加密书,如Katz& Lindell的Introduction to Modern Cryptography或Ferguson,Schneier& Kohno的Cryptography Engineering

哦,如果你可以避免它,不要尝试编写自己的低级加密代码(除了学习练习)。相反,找到由专业密码学家编写和审核的现有信誉良好的加密库,例如NaCl,并使用它。

事实上,即使对于业余密码,本文中描述的“ETSFS”加密方案看起来也很弱。据我所知,整个事情似乎仅仅是一个polyalphabetic substitution cipher,有16个不同的依赖于关键字母的字母,并且与一个独立于密钥的(!)transposition cipher相结合。 (这不是如何指定的,但如果你追踪每个数据字符如何受到迭代步骤的影响,那就是它的效果。)

因此,鉴于密码的转置部分是固定的并且是公知的,使用相同密钥加密的几十个16字符chosen plaintext / ciphertext pairs(具体地说,对于字母表的每个字符一个)应该是足够的完全确定替换部分,从而允许解密用该特定密钥加密的任何数据。如果无法进行选择明文攻击,则known plaintext的稍大一些样本应该足以恢复替换表的大多数,如果不是全部的话。

另外,鉴于密文字母之间似乎没有混合,即使转置部分依赖于密钥,打破它仍然只需要16个选择的16个字符的明文/密文对。 (练习:找出一组16个明文来选择,这样,给定相应的密文,你可以完全确定密码的转置部分,而无需事先了解替换部分。然后找出你需要确定哪些额外的明文替代部分。)