举个例子,如果采用128bit的密钥,就是16字节,这在分组密钥中是不错的了。
异或加密一段明文。如果发现了这个明文的一部分,跟密文异或一下,就会发现16字节为周期的规律。就可以解读其它部分。如果继续使用这个密钥,就等于公开的啦!
如果采用很长很长的密钥,分发,运用和管理都很麻烦。
ENIGMA,用比较小的空间(256×3),制造了63+1K的序列。在这么长的字节序里,不存在明文密文的规律性对应关系。
而且,可以采用更短的密钥,扩散成这个768byte的转轮机。
传输,分发,管理都很方便。
enigma1_init(t,"随便一个128bit密钥");就可以生成一个转轮,具有63+1k的序列长度。而且允许使用任意长度的密钥,加密速度和安全性与密钥长度无关。明文密文间的关系,不能反推转轮,更不能反推密钥。
在一段不长的时间,如一个会话的生存期内使用,不会有明显的安全风险。
当然,它依然具有可窥测性,所以,在这个软件包里,提供了加强版。如何窥测以及如何降低其可窥测性,可以继续讨论。
【 在 callmebbser 的大作中提到: 】
: 与异或运算比,优点在哪?速度与异或运算比如何?
:
--
修改:ylh1969 FROM 221.221.50.*
FROM 221.221.50.*