156}
157return0;
}
3.2三次加密
随机给定一则二进制信息和一个分数,取分数的分子的一种分解方式,并利用分解后的因子及分母作为密钥分别按照一次一密的方法对信息依次进行加密。
3.2.1三次加密理论指导
随机给定一个分数A/B(A、B均为正实数)及明文X(二进制信息),对于A至少有一种分解方式:
A=A1*A2(A1、A2均为正实数),首先将A1、A2、B化为二进制数A11、A21及B1,我们利用A11、A21和B1按照一次一密的加密方法对X及加密后的信息加密,实现三次加密,使得原有信息比两次加密更加安全,不可攻破。
3.2.2三次加密实现方法
将A1、A2和B分别表示成二进制数A11、A21和B1,取A11、A21、B1和X中长度最长的作为密钥的长度L;
在A11、A21、B1和X这三个序列前加0直到分别达到长度L,得到新序列A12、A22、B2、X1;应用一次一密的加密方法A12+X1得到X2,A22+X2得到X3,B2+X3得到X4;
那么密文即为X4,得到三次加密。
从而在一次一密的基础上,实现了因子分解分数的三次加密,使得原有信息比两次加密更加安全,不可攻破。
3.2.3三次加密举例
取定分数156/7及明文101010,异或规则:
0+0=0,0+1=1,1+1=0,在二进制下,对156/7实施三次加密。
首先分解分子156:
156=4*39。
其次,4、39和7表示成二进制数分别是:
100、100111和111。
根据3.1.3实现方法确定密钥长度为:
6
为了与长度6一致,4、39、7补0后序列分别是000100、100111和000111
第一次加密:
000100+101010=101110;
第二次加密:
101110+100111=001001:
第三次加密:
001001+000111=001110
解密时用相同的密钥只需要简单地做三个异或便可以得到明文101010;