public static void Update(DES_6R dx,De_6R de,byte[] Eigen,int N) { byte[] C1,C2; for(int i=0;i<N;i++) { if(i>0&&i%(N/5)==0) { System.out.printf("%d对明密对统计结果:\n",i); de.showIkeySel(); } dx.setLR0(); dx.Excute(); C1=dx.getLRn(); dx.updateLR0(Eigen); dx.Excute(); C2=dx.getLRn(); de.setC(C1, C2); de.excDecode(); } System.out.printf("%d对明密对统计结果:\n",N); de.showIkeySel(); }代码的意思
时间: 2024-03-30 12:36:27 浏览: 51
CS_SAMP.zip_6R1_CS_SAMp_CS算法_cs samp_samp
这段代码是一个名为Update的静态方法,它接受四个参数:一个是DES_6R类型的对象dx,一个是De_6R类型的对象de,一个是特征值Eigen,另一个是整数N,代表明密文对的个数。该方法的主要作用是对dx进行加密,使用de进行解密,并统计每一轮子密钥的出现次数。
具体过程如下:
1. 定义两个byte数组C1和C2,用于保存加密后的密文。
2. 对于每一对明密文,重置dx的LR0,并执行6轮加密操作,得到两个密文C1和C2。
3. 将C1和C2设置到de对象中,并使用de对象对密文进行解密。
4. 重复步骤2和3,直到加密和解密完成N次。
5. 统计每一轮子密钥的出现次数,并打印出统计结果。
需要注意的是,Update()方法并没有返回任何结果,而是通过对dx和de对象的操作来实现对加密和解密过程的控制和统计。
阅读全文