一种基于随机序列数据库的密码系统的制作方法

文档序号:7976605阅读:292来源:国知局
专利名称:一种基于随机序列数据库的密码系统的制作方法
技术领域
本发明属于信息安全领域,特别是涉及一种基于随机序列数据库的密码系统。
背景技术
密码系统是信息安全的核心和关键技术。目前实际应用的密码系统尽管种类很多,但其密码体制可分为两类:对称密码体制和非对称密码体制。1949年,Shannon发表了“Communication theory of secrecy system”重要论文,证明了只有“一次一密”的密码系统才是理论上不可破译的、绝对安全的密码系统。但是由于“一次一密”的密码系统存在密匙产生、分配与管理极为困难的问题,使其应用受到限制。为了达到类似“一次一密”那样的安全性,仿效“一次一密”的密码系统如分组密码和流密码应用而生。目前,流密码是世界各国信息安全领域的主流密码。流密码有许多种设计方法,比如移位寄存器序列、非线性组合序列、非线性过滤序列和钟控序列以及混沌序列等方法。流密码是指利用少量的密钥通过特定的复杂密码算法产生大量的伪随机位流,用于对明文位流的加密。解密是指用同样的密钥和密码算法及与加密相同的伪随机位流,用以还原明文位流。因此,流密码的关键是产生密匙序列的算法,其密码系统的安全性也主要取决于密匙序列,但由于密匙序列多是由一种子密匙k经某个特定的确定性算法产生的伪随机序列,因此流密码是基于数学计算的密码系统,它在理论上是可被计算机破译的。因此,本质上来讲,流密码并非是“一次一密”的密码系统。本发明提出了一个基于随机序列数据库的密码系统,该密码系统类似于流密码,都是每次加密一个字节,但流密码使用伪随机序列作为密匙序列,而本密码系统则使用随机序列数据库将明文流变换为随机序列。本发明提供了一个“一次一密”的完善密码系统,完全可不破译,同时还可自动检测密文信息的完整性,确保密文信息不被篡改、仿冒,可广泛应用于信息安全的各个领域。

发明内容
本发明所建立的一种基于随机序列数据库的密码系统,采取如下步骤和方法:(I)首先,建立一个8位二进制数据库D。该数据库的结构如图1所示,A为8位二进制数,B为每个二进制数对应的随机序列(比如是由O和I组成的随机序列)。用A(i)表示0-255的8位二进制数,B⑴表示与A⑴对应的随机序列。B⑴序列长度的设置以足够保证随机序列ki的唯一性以及序列搜索运算速度为依据。该数据库D共有256条数据。由于216 = 28*28 = 256*28 = 256*256,对应于256条二进制数据来说,每个8位二进制数据理论上可找到256个不同的16位二进制随机序列与之相对应。每个随机序列B (i)的长度设置在30-100个字符之间足以满足需要。(2)加密方法:首先将明文M转换为二进制,然后按每个字节即8位二进制数自动划分为若干单元,比如1 ,! ,! ,……,mn。然后,依次在数据库D中检索,根据其检索到的8位二进制数A(i)找到其对应的随机序列B (i),然后在B (i)中再随机截取一段由16个字符组成的序列ki。当明文M所有字节完成上述变换后依次得到k1;k2,k3,……,kn,即构成密文。随机序列ki也可再经过加密变换Ci = E(Iii) (i = 1,2,3,......,η),则最终可得到密文C = C1C2C3…
Cn°其中,k1;k2,k3,……,kn需满足唯一性条件,即在数据库D中,这些随机序列ki是唯一的,假如截取到的ki不能满足唯一性条件,则必须重新选取,直到满足唯一性条件为止。检验ki的唯一性,可使用字符串搜索算法,在数据库D中进行搜索,如果ki仅有一个搜索结果,则表明ki在数据库D中是唯一的,否则是不唯一的。(3)密匙动态更新方法:在加密过程中,密匙可随每次加密一个字节(8位二进制数Hii)明文后而自动更新,其更新的方法是=Hli对应的随机序列被截取一段子序列ki之后,即自动从原随机序列中删除,并经过一定变换(如O和I对换处理)后插入到删除ki后的随机序列中的第j个位置上。j可以是一个约定的常数,也可以是一个明文“字节”序数的函数。设字节序数为i,则当加密第i个字节时,j = F(i)。(4)解密方法:密文C经过解密变换ki = D(Ci) (i = 1,2,3,......,η)后,依次得到随机序列字
符串:k1;k2,k3,......,ki,......kn。如果密文本身由上述随机序列组成,则不必再进行解
密变换,在数据库D中依次查找字符串k1; k2,k3 ,......, ki,......kn,得到其对应的8位
二进制数1 ,! ,! ,..... .,mn,即可转换成明文信息。在解密过程中,密匙可随每次解密得
到一个字节明文后而自动更新,其更新的方法是:每次在随机数据库查找ki得到相应的Hli之后,该字符串ki即自动从原随机序列中删除,并经过一定变换(如O和I对换处理)后插入到删除ki之后的随机序列中的第j个位置上。(5)数据库D同步更新办法:由于数据库D在加密和解密时处于动态更新状态,这种更新是对数据库D中的随机序列的重排,那么,任何影响到数据库中随机序列重排的主动攻击(比如对密文字符进行插入、删除或重放操作)均可能造成解密中断(只要密文解出的随机序列字符串唯一性条件被破坏,解密过程即自行终止)。设发送和接收双方原始共享的数据库为Dtl,经过加密后,发送方的数据库更新为D1,若接收方解密成功,则其数据库自动更新为D1,否则不更新,请求发送方重新发送,发送方加密的数据库返回到%。也就是说,只要接收方解密不成功,则请求发送方按之前的数据库重新发送。本发明的密码系统具有如下特点:I,本密码系统中通讯双方拥有的数据库D是一个仅有256条数据的小型数据库,在加解密过程中运行速度很快。2,双方共享一次数据库D之后,该数据库即可在加解密过程中实现自动更新,在更新过程中引入了随机化过程,从而实现了真正的“一次一密”。3,本密码系统完全克服了以往“一次一密”体制中要求密匙必须与明文长度相同的缺点,密匙的分配与管理不再是一个难题,只需构建一个小型的随机序列数据库,利用字符串搜索比对工具即可轻松实现对每个比特进行加密的密匙分配。
4,本系统由于是“一次一密”不可破译系统,对本系统造成破坏的唯一途径就是对本系统进行主动攻击。当攻击者对密文字符进行插入、删除或者重放操作时,如果插入的字符经解密得到的ki不存在于数据库D中,那么插入的字符就不影响正确的解密。但是,进行删除或者重放操作时,对解密就可能造成影响。如果发生不能正确解密(比如解密过程中在数据库D中依次查找字符串ki时出现查找结果唯一性被破坏,或解密完成后发现乱码或其它无意义信息)的情况,则可判断密文已经被篡改。因此,本密码系统具有自动检测密文是否被窃取并篡改、破坏的特点,密文可做到完全保密、不可仿冒。


:图1:8位二进制数据库D,由256条数据组成,A为0-255的8位二进制数,B为与每个8位二进制对应的随机序列(由30-100个O和I组成)。图2:信息加密流程与方法图3:信息解密流程与方法图4:密匙更新的方法
具体实施例方式首先,构建8位二进制数据库D。如图1所示,A⑴表示从O到255的8位二进制数;B(i)表示与其对应的随机序列。随机序列B(i)可以由任何字符组成,图1中我们假设随机序列由O和I组成。序列长度的设置以足够保证随机序列ki的唯一性以及序列搜索运算速度为依据。由于216 = 65536,对应于256条二进制数据来说,每个二进制数据理论上可找到256个16位二进制随机序列与之相对应。每个随机序列的长度设置在30-100个字符之间足以满足需要。如需加密一个明文 信息M,首先将其转换为二进制,然后按每个字节即8位二进制数自动划分为若干单元,比如叫,m2,m3,……,mn。然后,依次在数据库D中检索,,根据其检索到的8位二进制数A(i)找到其对应的随机序列B (i),然后在B (i)中再随机截取一段由16个字符组成的序列ki。当明文M所有字节完成上述变换后依次得到k1;k2,k3,……,kn,即构成密文。随机序列ki也可再经过加密变换Ci = EGO (i = l,2,3,……,n),则最终可得到密文C = C1C2CfCv加密变换可以是用一个16位的二进制数K对匕做异或处理。图2表示信息加密的流程与方法。其中,k1;k2,k3,……,kn需满足唯一性条件,即在数据库D中,这些随机序列ki是唯一的,假如截取到的ki不能满足唯一性条件,则必须重新选取,直到满足唯一性条件为止。随机序列数据库D可以随着每加密一个字节而动态更新。图4表示加密一个二进制数据mi “10011010”的ki “0101011000010100”被选取之后,从原先的位置上删除,经过O和I对换处理之后,变成“1010100111101011”,再插入到删除ki之后的随机序列的第10个字符的位置上(j = 10),从而改变了原先对应于二进制数据“10011010”的随机序列。信息解密的方法是,密文C经过解密变换ki = D(Ci) (i = 1,2,3,......,η)后
(解密变换可以是用一个16位的二进制数1(对(^做异或处理),依次得到随机序列字符串:
k1; k2, k3,......, ki,......kn。如果密文本身由上述随机序列ki组成,则不必再进行解
密变换,在数据库D中依次查找字符串k1; k2,k3,......, ki,......kn,得到其对应的8位二进制数Hi1, m2, m3,......, mn,即可转换成明文信息。随机序列数据库D也可以随着每次解密一个字节而动态更新,从而保证随机序列数据库D与信息发送者同步一致。动态更新与加密一个字节后随机序列数据库D的动态更新方法相同。以图4为例,解密时在随机序列数据库D中查找字符串ki “0101011000010100”,得到其对应的二进制数据Hii “ 10011010”,然后ki从原先的位置上删除,经过O和I对换处理之后,变成“ 1010100111101011”,再插入到删除ki之后的随机序列的第10个字符的位置上(j = 10),这样动态更新后的随机序列数据库D与信息发送者就保持了同步。假如明文有1000个字节,那么经过加密之后,随机序列数据库D就经历1000次数据更新。设加密前数据库为Dtl,加密后数据库为D1,那么加密的字节数越多,或者经过多轮信息加密之后,D1和Dtl将变得差异越大,以至于完全不同。本密码系统可以进行信息隐藏。可以在密文中添加一些在随机序列数据库D中是不存在的字符串,完全不影响解密结果。由于随机序列数据库D有随机序列组成,同时截取的字符串ki也是随机截取的,每次加密一个字节后数据库D自动更新一次,因此本密码系统是真正的“一次一密”的完善密码系统,完全不可破译。当攻击者对密文字符进行插入、删除或者重放操作时,对解密可能造成影响(如果插入的字符经解密得到的ki不存在于数据库D中,那么插入的字符就不影响正确的解密)。解密过程中,如果查找字符串ki时发现其在数据库D中的唯一性被破坏,或解密完成后发现乱码或其它无意义信息的情况,则可判断密文已经被篡改。因此,本密码系统具有自动检测密文是否被窃取并篡改、破坏的特点,密文可做到完全保密、不可仿冒。
权利要求
1.一种基于随机序列数据库的密码系统,其特征在于按如下步骤和方法进行: (1)首先,建立一个8位二进制数据库D。该数据库是由256条数据组成的,每条数据是8位二进制数A(i)及其对应的随机序列B(i)所构成的。
(2)加密方法:首先将明文M转换为二进制数,按每个字节即8位二进制数自动划分为若干单元叫,m2, m3,......, mn。然后,依次在数据库D中检索,根据其检索到的8位二进制数A(i)找到其对应的随机序列B(i),然后在B(i)中再随机截取一段由16个字符组成的序列ki。ki需满足唯一性条件,即在数据库D中,这些随机序列ki是唯一的,假如截取到的ki不能满足唯一性条件,则必须重新选取,直到满足唯一性条件为止。检验ki的唯一性,可使用字符串搜索算法,在数据库D中进行搜索,如果ki仅有一个搜索结果,则表明ki在数据库D中是唯一的,否则是不唯一的。当明文M所有字节完成上述变换后依次得到k1;k2, k3,......, kn,即 构成密文。随机序列ki也可再经过加密变换C(i) = E(Iii) (i = 1,2,3,......,η),则最终可得到密文C = C1C2CfCv (3)密匙动态更新方法:在加密过程中,密匙可随每次加密一个字节(8位二进制数Hii)明文后而自动更新,其更新的方法是=Hli对应的随机序列被截取一段子序列ki之后,即自动从原随机序列中删除,并经过一定变换(如O和I对换处理)后插入到删除ki后的随机序列中的第j个位置上。
(4)解密方法:密文C经过解密变换ki= D(Ci) (i = 1,2,3,......,η)后,依次得到随机序列字符串k1; k2, k3,......,kn。如果密文本身由上述随机序列组成,则不必再进行解密变换,在数据库D中依次查找字符串k1; k2,k3,......, ki,......kn,得到其对应的8位二进制数Hi1, m2, m3,......, mn,即可转换成明文信息。
(5)数据库D同步更新办法:设发送和接收双方原始共享的数据库为Dci,经过加密后,发送方的数据库更新为D1,若接收方解密成功,则其数据库自动更新为D1,否则不更新,请求发送方重新发送。
2.根据权利要求1所述的一种基于随机序列数据库的密码系统,其特征在于其密匙是由随机序列数据库D组成的。
3.根据权利要求2所述的随机序列数据库D,其特征在于该数据库是由256条数据组成的,每条数据是8位二进制数A(i)及其对应的随机序列B(i)所构成的。B(i)可以是由O和I组成的字符串,也可以是其它任意字符串。
4.根据权利要求1所述的一种基于随机序列数据库的密码系统,其特征在于加密过程中从随机序列B(i)截取的ki是随机截取的。
5.根据权利要求4所述的ki,其特征在于其在随机序列数据库D中是唯一的,其唯一性的检验是采用字符串匹配算法在随机序列数据库D中检索ki。
6.根据权利要求1所述的一种基于随机序列数据库的密码系统,其特征在于在加密过程中,密匙可随每次加密一个字节(8位二进制数Hli)明文后而自动更新,其更新的方法是:Hli对应的随机序列被截取一段子序列ki之后,即自动从原随机序列中删除,并经过一定变换后插入到删除ki后的随机序列中的第j个位置上。
7.根据权利要求1所述的一种基于随机序列数据库的密码系统,其特征在于在解密过程中,密匙可随每次解密得到一个字节明文后而自动更新,其更新的方法是:每次解密得到字符串ki并在随机数据库查找得到相应的Hli之后,该字符串ki即自动从原随机序列中删除,并经过一定变换后插入到删除ki之后的随机序列中的第j个位置上。
8.根据权利要求1所述的一种基于随机序列数据库的密码系统,其特征在于密文信息中可插入随机序列数据库D中不存在的序列ks,而不影响其正确解密。
9.根据权利要求1所述的一种基于随机序列数据库的密码系统,其特征在于信息发送和接受双方的随机序列数据库D可进行同步更新。若密文遭遇攻击篡改,导致ki唯一性被破坏,则解密自行中断,要求重新发送信息。设发送和接收双方共享的原始数据库为Dtl,经过加密后,发送方的数据库更新为D1,若接收方解密成功,则其数据库自动更新为D1,否则不更新,请求发送方重新发送,`发送方加密的数据库返回到%。
全文摘要
本发明提供一种基于随机序列数据库的密码系统。该密码系统通过一个由256条数据组成的8位二进制数及与其对应的随机序列数据库D将二进制位流转变为随机序列位流。随机序列数据库D对二进制位流的变换是通过字符串搜索而实现的。随机序列数据库D可以实现每次加密或解密一个字节而动态更新与同步。本密码系统是真正的“一次一密”的完善密码系统,完全不可破译。
文档编号H04L9/18GK103117850SQ20111036400
公开日2013年5月22日 申请日期2011年11月16日 优先权日2011年11月16日
发明者曾纪晴, 张明永 申请人:中国科学院华南植物园
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1