一种随机密码表库多表替换字符加密思想
2011-08-15韩磊
韩 磊
1.北京交通大学电子信息工程学院,北京 100044 2.中国人民解放军66402部队,内蒙古 呼和浩特 010050
0 引言
大多数现代加密算法都沿续了古典加密思想的思考方式,所以运用现代的新技术思想继续打造安全可靠的古典加密方法仍是一个现实可行的思路。在计算机出现之前,无法编制足够多的密码本,繁琐的检索和长时间的加解密过程都是制约古典密码思想发展的因素。本文将利用计算机技术,建立由大量随机密码表组成的码本库,设计一种新的多表替换密码,本文称之为随机字库码,简记为 C2R2(Random Replace Character Cipher)。
目前在字符级加密(尤其是针对汉字字符特点的加密)领域的研究和相关文献很少,不利于古典密码思想与现代密码学结合应用的发展,本文在这方面作出了有益的尝试。
1 C2R2概述
C2R2借鉴分组密码一组一密钥的思想,使每个字符都对应至少一个密码本,继承了多表替换密码在隐藏单字符的频率分布的优点,同时改进的随机替换方式解决了传统多表替换具有周期性、抗字典攻击和抗穷举攻击能力差的问题。
2 C2R2设计
2.1 汉字分组
由于简单多表替代编码,用统计字频的方法就可以较轻易地推算出可能的替换表。所以,C2R2利用数据库技术对字频高的字符的对应码本进行扩容,将其代替字符的数量大大增加,从而达到分散其字频分布的效果。针对不同的应用环境,字频统计结果也不同,具体分组应结合实际情况统计分析之后决定。本文只考虑一般性需求,将GBK中的20902个汉字分为四级:一级频用字,约占0.2%;二级常用字,约占11.4%;三级鲜用字,约占38.4%;四级不用字,约占50%。
2.2 密码本数据结构
将每个字符视为一个码本,每个码本为一个8*8n的数组,本文以最简单的8*8结构为例。
码本1-8位是跳位标识符T,表示目标字符码本的位置,范围是0-255,分别表示明文中与自身相距0到255个字符的位置;9-16位是密钥识符A,用于指出目标码本的生效字符,范围是0-255,表示第一个码本中有效的替换字符编号(对于8*8结构的码本仅有1、2、3三个编号);17-64位分3段,每两个字节表示一个备选替换字符。跳转位和密钥位的值都由系统随机生成,备选替换字符的值则由分配算法依规则计算得出。
2.3 备选替换字符分配算法
不包含外文字符和特殊符号,仅用一至三级汉字编写密文,用全部四级汉字编制明文的规则下:
1)三级鲜用字,每个字在所有码本中出现且仅出现一次;
2)二级常用字,每个字在所有码本中出现5~10次且不在同一码本中重复出现;
3)一级频用字,每个字在所有码本中出现500次且不在同一码本中重复出现;
4)码本空余替换字符位随机抽取一级频用字填补。
2.4 C2R2算法
明文:M=m1m2…mi…mj
密文:C= c1c2…ci…cj
编码密钥:{T0,A0};{T1,A1},{T2,A2},…,{Ti,Ai},…,{Tj,Aj}
{T0,A0}取自标识字符的跳转位和密钥位,{Ti,Ai}取自有效码本字符的跳转位和密钥位
替换函数:F(x,k),f(x,y,K)
检索函数:s(m)输入一个明文字符m返回一个字符位包含m的码本字符k
密码本库 :{k1,k2,…,kp,…,kq},{K1,K2,…,Ku,… ,Kv}
冗余函数:r(n)随机添加n个冗余字符
判断函数:A(k)返回输入字符k密钥位的值,T(k)返回输入字符k跳转位的值
加密过程:
c1= r(1)r(T0)F(A0,s(m1))
ci=r(Ti-1)F(Ai-1,s(mi)) (i>1)
密文中第一个字符为随机选取,其跳转位T0表示第一个明文字符的替换字符的位置,冗余函数r在它们之间随机填充T0个字符;密钥位表示第一个有效字符码本中生效的替换字符编号。第一个有效字符的跳转位表示第二个有效字符码本的位置;生效替换字符即为明文的第一个字符,以此类推。
解密过程:
mi=f(Ti-1,Ai,s(mi))
密文中第一个字符为标识字符,其跳转位表示第一个有效码本字符的位置;密钥位表示第一个有效码本字符中生效的替换字符编号。第一个有效字符的跳转位表示第二个有效码本字符的位置;生效替换字符即为明文的第一个字符,以此类推。
2.5 密钥同步
初始状态下,密报收发双方终端程序的码本库生成密钥是一样的,所以密报的接收方可以读取每个字符的数据结构和隐含信息,实现解密过程。在发送端传出密文时,可以在密文中最后一个有效码本字符后添加字符串,作为新的密钥。字符串添加原则是:字串的长度最小为1且不大于字串中第一个字符跳转位的数值。密报接收端在解密完成的同时,读取字符串包含的二进制信息,其作为下一次码本库生成的密钥。
3 结论
目前C2R2加密所得到的密文是无意义的字符串,但理想状态是能够在完成加密过程后,添加冗余字符的同时组成一篇顺畅的普通文章,而且文章须具备发信方的写作习惯和用词特点等特征,不能够利用语言学和心理学等分析手段推理出破绽。相信运用大量机器计算和巧妙人工构造相结合的方式,最终的完美加密是有可以实现的。
[1]宣蕾,闫纪宁.基于混沌的“一组一密”分组密码[J].通信学报,2009,30(11A).
[2]张玉安,冯登国.一种实用的仿一次一密分组加密方案[J].北京邮电大学学报,2005,28(2).
[3]李春林,宋建社.古典多表密码体系的改进[J].网络安全技术与应用,2003,12.