第一步:创建16个子秘钥,每个长48比特
1.首先,将64位秘钥根据表格PC-1进行变换,按位变换之后得到一个新秘钥
2.将这个新秘钥拆为左右两部分,C0和D0,每半边各有28位
3.创建块:对于相同定义的C0和D0,创建16个块Cn和Dn,每一对Cn和Dn都由前一对移位而来(用轮函数进行左移操作)。
4.得到第n轮的秘钥Kn(1<=n<=16),具体做法是对拼合后的Cn和Dn用PC-2表进行代换,在代换前,子秘钥的位数为56位,但是在代换后,PC-2仅仅使用了48位。
第二步:加密数据的每个64位区块
1.对应明文M,应用用一个初始变换IP。
2.将初始变换IP分成两半,左半边32位的L0和右半边32位的R0。
/*我们接下来的步骤就是将L0和R0进行16轮的迭代(重点是迭代中F函数的使用),迭代之后就会产生密文*/
3.迭代公式:Ln=Rn-1
Rn=Ln-1(+) f(Rn-1,Kn) (此处的(+)表示异或运算,这就是秘钥参与的部分)
4.f函数如何工作:
1):拓展本步的Rn-1,将其从32位拓展至48位,(这个过程叫做E变换)E变换的方法类似于PC-1变换,只不过有的