原贴出处: http://bbs.pediy.com/showthread.php?t=92571
HotPower的网上HotWC3/CRC演算器(V1.09)
HotWC3密码依据的理论和构思及实现
HotWC3密码属于传统密码体系中的序列密码(分组为1位或1字节),核心采用流加密法。
密文流由明文流和密钥流作用(移位+异或)后得出,反之亦然。
在密码学中,当满足一定条件下,流加密法是一种不可破解的加密方法。
如果密钥流完全随机且与明文流等长,那么它是不可破解的,即只能穷举解密。
香农早已证明,在这种条件下,流加密法对密文攻击法是绝对安全的。
传统的流加密都会用线性反馈移位寄存器LFSR来产生伪随机密钥流,其特征多项式
尽量满足LFSR的最大周期。核心算法就是简单的移位+异或。
传统的CRC运算可以理解为密钥流就是密文流的流加密法的CRC加密算法。
它的密钥流实际由CRC初值(运动中的密文流)和权(特征多项式)组成。
由于它的密钥流就是密文流,任意相邻的2个密文皆可还原1个明文,故不能成密码。
要将CRC运算转换为CRC密码,应该遵守流加密法的准则,尽量保证密钥流伪随机。
故CRC的三要素(初值、权和方向)都应该在流加密过程中随机产生并成为CRC密码的
伪随机密钥流.
为了达到CRC密钥中初值和权的随机,采用了带有“陷门”的三元二次方程达到迅速扩散
和不可逆以实现密钥流的伪随机之目的。即采用了三角密码实现扩散。
三角密码的“陷门”出自命题:
在直角三角形中,三个直角边都为整数,已知一个直角边求解另一直角边和斜边。
即: A^2+B^2=C^2 其中:^表示平方,A,B,C皆为整数
CRC密钥流由密钥流种子(星期密钥)与明文流等叠加以实现“一文一密”。
HotWC3为了对付明文攻击法,即已知部分或全部明文(流)及密文流破解CRC密钥。
采用日期密钥(用户密钥)来生成CRC的密钥流种子即星期密钥。
故在HotWC3密码体系中,CRC密钥实际是日期密钥(用户密钥)的子密钥。
其中1字节的星期密钥实际是排在明文流前的“假明文”,它由日期密钥生成。
由于HotWC3密码属于序列密码,故明文攻击法的开始必须解决“假明文”的问题。
由于星期算法的不可逆性,攻击者无法从“假明文”推导出日期密钥(用户密钥)。
用户密钥长度小于等于明文流的长度。它不但作用于CRC伪随机密钥流而且也作用
于明文流和密文流中。它的目的就是伪随机与明文流等长以达到不可破解的目的。
写累了~~~给教授看菜农实在写不好~~~种菜和动笔俺还是觉得前者容易
俺知道HotWC3不会比RC4、A5差到那里去,感觉大家总是觉得“洋太阳”还是风光些~~~
孤独~~~
文章评论(0条评论)
登录后参与讨论