单表代替密码技术在表意文字加密中的应用
2015-05-30王朝阳张远
王朝阳 张远
摘 要:文章通过对比英文字符和汉字之间的差异,提出了一种可用于对汉字等表意文字进行加密的单表代替密码技术。该技术通过使用双方约定的文字信息构成私有字库,同时通过汉字补充形成总字库;在使用时,将明文使用构成的总字库进行Caesar加密,形成密文,为了保证加密过程的安全性,需要实时地更新私有字库的文字信息。采用穷举攻击、单字频率攻击、双字组合频率攻击对单表代替密码技术的加密过程进行安全性分析,经验证,在三种攻击条件下该技术均能保证文字信息的安全。针对最新提出的特殊字攻击方法,文章提出了避免攻击的办法。
关键词:汉字;表意文字;信息加密;实时动态;特殊字攻击
1 文字的分类与研究现状
1.1 拼音文字与表意文字
如通过类似于拼音一样的方法,将字母组合在一起,形成单词,然后再通过空格等间隔符号构成一句话,这样的文字称作拼音文字;像汉字、彝文字等,用象征性书写符号记录词或词素的文字,称作表意文字。
这两种文字形式有很大的不同,拼音文字基本组成的字符元素简单,如英文仅有26个英文字母;而表意文字却不一样,他们的基本组成复杂,如果将汉字每一个字看作基本字符元素,那么表意文字的基本字符元素的集合相对于拼音文字会庞大很多,这也就导致了两种文字在加密方面产生了差异。
时至今日,我国的汉字、彝文字是世界上为数不多仍在使用的表意文字,这也就导致了较难从其他国家借鉴经验来研究表意文字的加密。
1.2 汉字的特点及其加密研究现状
在《中华大字典》中收录了48000左右汉字[1],根据《现代汉语常用字表》的联合通知,表中的3500个字在语料(约200万字的《人民日报》等大众读物)中的覆盖率达到99.48%[2]。如果再统计常用词组、短语及专业词汇,约有一百万左右。
在对于汉字加密的研究中,大部分是基于中文的GB码或Unicode码进行的[3],甚至还有一些仅仅是在Java、ASP或者VB中的简单应用。结合汉字本身特点的研究有:胡善岳等提出根据整数串代表百万个常用汉字、词语,在整数串中加入统计频数和所在的不同表,构成9位整数串,然后结合DES和RSA算法进行加密[1];赵杰通过考虑汉字的笔顺、笔画、字根和字形等,并进行拆分编码,然后结合一系列常用的加密方法分析[3]。
2 文字加密所用代替技术
代替技术是将明文的字母或者文字用其他的字母、文字、数字、符号表示的方法。它属于古典加密方法,是一种对称密码模型,包含Caesar密码、单表代换密码、Playfair密码、Hill密码、多表代替密码(Vigenere密码、Vernam密码)、一次一密,等。
进行加密的过程中使用Caesar密码、单表代换密码,在英文加密(可以代表拼音文字)过程中安全性不能达到很高的保证。Caesar密码加密的文字可以使用穷举法攻击;对于单表代换密码加密的文字使用密码分析学的内容——通过分析其出现频率、统计双字母混合、单词联想可以破解。[4]由于汉字作为表意文字的不同特性,在这些方面很难破解。
2.1 Caesar密码技术
Caesar密码技术应用于英文中,是通过对字母表中的每个字母用它之后的第k个字母来代替。
相对于3500个常用汉字的加密,首先根据这些汉字在《现代汉语常用字表》中的顺序,依次等价于一个数值。在这里仅用3500个常用字进行算法说明,在实际应用中,存在非常用字,会大于3500。在这里排列的可能性只有3499种,很容易进行穷举攻击,不过这是作为文章实际加密算法中最后使用,不存在穷举攻击后就得到明文的情况。
2.2 单表代替密码技术
如果上面所有汉字任意代替,密钥空间将会急剧增加。一般,具有N个元素的集合会有N!种置换。由于消息的加密对应有一个汉字映射表,所以称作单表代替密码。3500个汉字进行任意置换,那么排列的方法就有3500!种可能的密钥。
3 表意文字具体加密实施
在实际的应用过程中,整个加密的流程图如图1所示,具体过程如下。
3.1 生成私密字库
这一步相当于单表代替密码中形成单表的过程,在这里需要一些加密者和接收用户约定的文章或者文字内容,将这些内容中的不重复的汉字依次取出,构成私有字库。过程中会有很大可能出现非常用汉字,这也保证了更好的信息加密效果。
在构成私有字库的时候,可以约定这些文字来自于发送密文当天某报刊网站的第一个版面的文字等。这就达到了实时动态效果,使得攻击者几乎不可能找到形成单表代替密码中的单表,也就是如果破解相当于需要穷尽破解。
3.2 生成私有补充字库
在我们生成的私密字库中,有很大可能性不能够包含3500个常用字。为了防止出现要加密的源信息(明文)中汉字在私密字库中不包括的情况,将3500个常用字作为公共补充字库,将私有字库扩展成为总字库。
将公共字库中文字的顺序置乱,一方面防止他人通过公共补充字库的汉字排列顺序来反推私有字库的某些信息,比如私有库汉字字数以及包括哪些汉字等;另一方面防止推断出加密明文汉字和加密后密文汉字中间的间隔。构成总字库的过程相当于单表代替密码加密形成最后总的表。
3.3 信息加密环节
将源信息中每一个汉字在总字库内找到相应位置,并用其k个字后汉字进行取代,这就是对Caesar密码技术的应用。
在信息加密的过程中,可能在总字库中找不到源信息中的某个汉字。这是由于这个汉字不是常用字,且在私有字库中不包括这个字。出现这样的情况,这个字就不给予代替。
3.4 信息发送环节
使用普通链接对于密文的发送即可,这个信息也是一般攻击者比较容易获取到的内容。对于约定信息和公共字库的置乱密码,最好采用提前约定的方式,约定动态更新字库方法,提高加密信息的安全性;如无法提前约定,那就需要通过更高级和安全的加密方法(如RSA等),并使用安全通道发送。
4 抗攻击性分析
4.1 穷举攻击
仅考虑常用字的情况下,总字库相当于单表代替密码技术生成的文字映射表,3500字任意置换,排列的方法有3500!种汉字映射。如考虑私有字库或源信息中的非常用字,汉字的映射表的可能性会远大于3500!种。3500汉字的排列可能性约为2.39×1010886种。举一个例子,就2013年“天河二号”5亿亿次超级计算机,及2015年开始研发10亿亿次超级计算机,它们10万年可以执行的双精度运算为1.578×1030次。穷举破解方法不可能达到攻击的目的。
4.2 单字频率攻击
这种方法是首先将密文的汉字使用频率进行统计,然后与最广泛统计的汉字使用频率进行对比。如果密文足够长,使用这种方法可以得到相应的破解结果。
这种方法如果应用于英文字母,有较好效果,因为英文字母的组成仅有26个,统计26个字母的频率相对简单。
对于汉字却完全不同,进行统计学的频率分析,表意文字需要非常庞大的文字量。至于汉字有统计学意义的字数,《现代汉语字频统计》中高频字频率大于176次/百万,低频字频率小于73次/百万。起码百万左右的汉字才有统计学的意义,可是往往密文很短,但这也只是仅能分辨高低频词汇而已;如要仔细分辨3500多字的使用频率,则需要更多密文统计分析。
采用单字频率的密码分析学技术攻击,达不到破解的目的。
4.3 双字组合频率攻击
在密文消息较短时,不能够得到准确的文字匹配的情况下,通过统计双文字组合频率分析。这在英文中可行,26的平方才676种组合,抛去不常用的配合,出现频率较高的字母组合较少,容易通过概率学得到相应的对比结论。
但是对于汉字来说,3500的平方本身数量较大,即使减去其中不构成词语的组合,还会有很多词汇,除了“我们”、“因为”等少数词汇的频率较高以外,其他组合的频率一般不会太高,因此,如果想用这种方法,就需要更长的密文,这同样是不太现实的。
如果在写明文的时候通过使用同义词的方式来避过常用的词汇,就更不可能被该方法破解。密码分析学中的双字组合频率攻击也无法攻破密文。
4.4 特殊字攻击
特殊字攻击是通过分析密文中出现的使用非常少的汉字进行分析,这是专门对于类似于汉字的表意文字的一种攻击方法。由于在源信息中出现总字库中没有字,这个字会在密文中保持原样,很多的地名和人名都不是常用字,通过这些字就能联想出一些特殊的地名和人名,已获取部分信息。
特殊字攻击会威胁到密文的安全性,但有方法避免。如果在生成私有字库的过程中,加入一些古文等含有特殊字较多的文章,甚至可以统计使用最少的文字加入私有字库,则可以增加这种分析的难度,来达到保密的结果。
5 结束语
文章通过分析类似于汉字等表意文字与英文字符的不同,设计了一种针对表意文字特征的加密技术。该技术通过约定信息构成私有字库,然后通过置乱后的共有字库进行补充形成总字库,而这个过程就相当于单表代替密码技术。在实际应用中,将源信息使用总字库进行Caesar加密,形成密文,将约定信息和密文分别通过机密途径和普通链接发给接收用户,同时在形成私有字库时,可以实时更新加密所使用的总字库。
通过对加密信息的安全型进行分析,得出以下结论:该信息在穷举攻击、单字频攻击、双字组合频率攻击条件下都具有较好的安全性。对于最新提出的特殊字攻击,可以在形成私有字库时进行避免。在文章结尾处,提出了可以改善本加密技术安全性的几点建议。
参考文献
[1]胡善岳,李俊山,吴娅.汉字加密的新思路-汉字混合加密技术研究与实现[J].计算机安全,2004,12:21-23
[2]百度文库.现代汉语常用字表.http://baike.baidu.com/link?url=DW6
vbRpEuUUBaoV9krT0g9-7V-PJrEioRAmHwcybnKEROflGQurwIi2_MgmQ5uHSq6VLYCv8jp4_oqXx0VgZfq. 2015-10-8.
[3]赵杰.基于字形编码的中文字符密码算法研究[J].吉林师范大学学报(自然科学版),2014,04:109-113.
[4]William Stallings. CRYPTOGRAPHY AND NETWORK SECURITY-PRINCIPLES AND PRACTICE[B].FIFTH EDITION. Prentice Hall,2011:38-52.