在密码学中,Feister network(又叫Feister Function, 一下简称 F函数)是一种用在块加密上的对称结构,很多种块加密算法都是使用这种结构。
优点:
1.加解密的过程非常相似,甚至相同,所以在软件实现上代码会减半。
2.F函数采用的迭代模式使得它在硬件实现上也是非常简便。
基本元操作:
1.Bit shuffling:实现香农理论中的‘扩散’效应
2.Simple non-linear funcitons:即下图中的F函数,用于实现香农理论中的‘混淆’效应
3.linear mixing: 即XOR,异或操作
结构细节:
加密:
F:轮函数;K1,…,Kn是每一轮的子密钥;
步骤:
1.将明文plaintex分成等长两片(L1, R1):
对每一轮i = 1, 2, …, n:
最后密文为(Rn , Ln)
解密:
步骤:
对每一轮plaintex分成等长两片(Rn, Ln):
最后(L1, R1)就是明文;
addtion:
非平衡的F加密:L1 和 R1有时不必是相等的。例如:MacGuffin cipher
F函数同样也可以使用在非块加密上的算法。例如:OAEP(Optimal Asymmetric Encryption Padding)。
参考文献: