此外,矩阵的第i行被再次循环右移的次数等于变换矩阵M的循环移位ASCII(K(i))的值,i = 0到15。例如,矩阵M第0行循环右移次数等于ASCII值。矩阵M第1行循环右移次数等于关键字符K(1)的ASCII值等。
5.替换映射过程
一个给定的信息被分成十751块明文字符P(0)到P(15)。明文字符P(i),计算一个数J,J =(ASCII码明文字符P(i)减32)。这个数字J被用作矩阵M的列数量。使用j作为列数,继续寻找矩阵M的第i行的元素。这个元素(一个字符的ASCII码)作为给定的明文字符P(i)的一级密码CL1(i)。例如,对于在一个块中的明文字符P(0),i= 0,J =(ASCII码明文字符P(0)减32)是用作矩阵M第0行的列数来获得一级密文字符对应的P(0)。同样,对于明文字符P(1)字符块,i= 1,J =(明文ASCII码字符P(1)减32),其中J是用作矩阵M第1行的列数来获得一级密文字符对应的P(1)。在这种方式中,所有16个块中的明文字符映射到16 个一级密文字符的CL1(i)表示,i = 0到15。1级密文字符块的字符(通过的CL1(15)的CL1(0))被转移到一个16元数组A1的。
6.子键集生成
一组八个子键Kts_0,Kts_1,Kts_2,...... Kts_7使用这样的密钥K:Kts_n=矩阵M第0行的第0列至第15列字符的串连。这些键用来翻译。另一套子键Ktp_n0,Ktp_n1,Ktp_n2和Ktp_n3是这样产生,Ktp_n0=矩阵M第n行第0列的字符。每一个关键字是一个字符,代表矩阵M中的相应元素。这些键在前两轮变换中使用。
7.翻译移调
一级密文进行操作字符块进行八轮的翻译和换位。完成翻译使用异或操作,进行密文使用在第n轮的子键,Kts_n字符块。翻译后的密文字符块调换使用四个数组,其元素这一轮使用子键Ktp_n0,Ktp_n1,Ktp_n2,Ktp_n3进行循环右移。这些操作使输出的密文结果在无密钥情况下难以破解。翻译和换位产生扩散效应。
(1)翻译的密文字符
数组A1的内容与第n轮子键Kts_n异或。每块16个字符密文分别异或16个关键字符Ks_n......
(2)移调密文字符
被异或的一级密文字符在数组A1用4个数组分开和换位。对于第n轮,矩阵A1循环右移次数等于整数Ktp_n0的值。经过此操作,在A1的前八个元素(最左边的元素)转移到另一个8元数组A2。然后,A2环右移次数等于等于次数等于整数Ktp_n1的值。数组A1的其他8个元素(最右边的元素)被转移到数组A3,此数组循环右移次数等于整数值Ktp_n2。 A2和A3串联转移成16个元素的数组A1。 这16个元素的数组A1循环右移次数等于整数Ktp_n3的值.此操作后,A1的内容代表一个给定的块加密法的文本字符。A1的元素被移动到的密文块C(0)至C(15)。密文块被用来创建输出加密文本消息文件。
解密过程:
解密算法执行反向加密等操作,P = D(K,C)。这是分三个步骤完成。在这里,16个分块的密文字符C(i)使用数组和矩阵处理。第一步是用ASCII初始化矩阵字符的代码,使用密钥洗牌。在第二步,密文字符使用数组循环移位操作和使用子键多轮异或进行再次翻译。此操作拿回一级密文字符。在第三步中,这些一级密文字符是逆映射使用矩阵的明文字符。在解密密钥的生成算法中,子键通过加密算法同样的方式从密钥中生成。
1.矩阵的初始化
用于映射明文到一级密文字符的矩阵M,这里是用其将一级密文字符逆映射到明文。在解密的算法中,这个矩阵是使用对密钥K加密同样的方式创建。
2.再次调换密文字符
密文文件的字符块被移入一个16元素的数组A1。对于第n轮,数组A1循环左移次数等于整数Ktp_n3的值。在此之后操作,A1的前八个元素(最左边元素)被转移到另一个8元数组A2。然后,A2循环左移次数等于整数Ktp_n2的值。数组A1的其他8个元素的最右边的元素)被转移到另外一个8元数组A3,此数组循环右移次数等于整数Ktp_n1的值。然后,A2和A3连接在一起转移到16个元素的数组A1中。该数组左循环转移次数等于整型Ktp_n0的值。
- 上一篇:ASP.NET旅游信息服务系统的设计与开发
- 下一篇:ASP.net化妆品销售网站的设计与实现+源代码
-
-
-
-
-
-
-
当代大学生慈善意识研究+文献综述
十二层带中心支撑钢结构...
java+mysql车辆管理系统的设计+源代码
河岸冲刷和泥沙淤积的监测国内外研究现状
杂拟谷盗体内共生菌沃尔...
中考体育项目与体育教学合理结合的研究
酸性水汽提装置总汽提塔设计+CAD图纸
大众媒体对公共政策制定的影响
电站锅炉暖风器设计任务书
乳业同业并购式全产业链...