密码学系列之:feistel cipher
简介 feistel cipher也叫做Luby–Rackoff分组密码,是用来构建分组加密算法的对称结构。它是由德籍密码学家Horst Feistel在IBM工作的时候发明的。feistel cipher也被称为Feistel网络。 很多分组加密算法都是在feistel cipher的基础上发展起来的,比如非常有名的DES算法。 在feistel cipher中,加密和解密的操作非常相似,通常需要进行多轮加密和解密操作。 Feistel网络的原理 Feistel网络中会用到一个round function也叫做轮函数,这个函数接收两个输入参数,分别是分组数据(原始数据的一半)和子key,然后生成和分组数据同样长度的数据。 然后使用上一轮生成的数据和原始数据的另一半进行XOR异或操作,作为下一轮轮函数的输入。 就这样一轮一轮进行下去最后生成加密过后的数据。 解密的流程和加密的流程是类似的,只不过把加密的操作反过来。 Feistel网络的轮数可以任意增加。不论多少轮都可以正常解密。 解密与轮函数f无关,轮函数f也不需要有逆函数。轮函数可以设计得足够复制。 加密和解密可以使用完全相同的结构...
