Algorithm 这个ETSFS算法是如何工作的?

Algorithm 这个ETSFS算法是如何工作的?,algorithm,encryption,cryptography,Algorithm,Encryption,Cryptography,我遵循ETSFS加密算法 给出一些上下文,ETSFS是一种加密算法,通过一系列数据更改函数对4x4数据矩阵进行加密 前面和后面提供的步骤(带I/O)示例非常清楚,但算法的移位步骤让我有些困惑。(参见第5/10页)以下是该页的移位I/O示例: 请注意,此算法中允许的符号如下: *-./:@_ a-z和a-z标记为0-25 它说移位是基于元素在数组中的位置。不幸的是,我不能从给定的图像中提取很多信息。在第三行,当我看不到3和2之间的相关性时,我不清楚v如何变成s。尤其是上面图像中的最后一行,其中

我遵循ETSFS加密算法

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

前面和后面提供的步骤(带I/O)示例非常清楚,但算法的移位步骤让我有些困惑。(参见第5/10页)以下是该页的移位I/O示例:

请注意,此算法中允许的符号如下:

*-./:@_

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

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


这种移位是如何工作的?

据我所知,您正在查找的信息(即移位步骤中使用的
arrayAlpha
arrayNumber
arraySymbol
数组的内容)在中的任何位置都没有指定,也似乎不是从键派生的。如果您想知道这些数组应该包含什么,您必须联系作者并询问

无论如何,我劝你不要麻烦。你引用的论文似乎不是由专业密码学家撰写的,它描述的算法似乎不是现代意义上的安全加密方案。它显然没有提供,更不用说。 当然,它永远不会在任何真正的加密会议上发表。这两位作者似乎落入了业余密码学家的陷阱:设计一个足够复杂的密码,而且他们似乎在破解(或设计)密码方面没有特别的经验

我建议用你花在这个算法上的时间来熟悉现代密码学的最新技术和最佳实践。为此,我推荐任何像样的加密入门书,如Katz&Lindell's或Ferguson,Schneier&Kohno's

哦,如果你能避免的话,不要尝试编写你自己的低级密码(除了作为学习练习)。取而代之的是,找到一个现有的由专业密码学家编写和审查的著名密码库,例如,并使用它


事实上,论文中描述的“ETSFS”加密方案即使对于业余密码来说也相当脆弱。据我所知,整件事似乎只不过是一个由16个不同的键相关字母组成的字母表,再加上一个键独立的(!)。(这不是它的指定方式,但如果您跟踪每个数据字符是如何受迭代步骤影响的,它看起来就是这样的。)

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


此外,考虑到密文字母之间似乎没有混合,即使转置部分与密钥相关,打破它仍然只需要再选择16个16字符的明文/密文对。(练习:找出一组16个要选择的明文,这样,给定相应的密文,您就可以完全确定密码的转置部分,而不必事先知道替换部分。然后找出还需要确定替换部分的其他明文。)

我投票将这个问题作为离题题结束,因为它不是一个编程问题。在你给我的链接中,它明确指出关于软件算法的问题是可以接受的。