位元压缩加密方法及其器件的制作方法

文档序号:6410671阅读:193来源:国知局
专利名称:位元压缩加密方法及其器件的制作方法
技术领域
本发明属于计算机和数字通讯等技术领域,是一种集数据压缩和加密于一体的数据处理方法及其器件。
本发明的基础是P.Elias在六十年代提出的算术编码,其原理是用一个单独的浮点输出数值代替一段数据的整体编码信息。对于较长的复杂数据,输出数值需要更多的浮点位数。
具体地说,若某一数据段中含有n个不同符号s1,s2,…,sn,各符号的出现频次分别为P1,P2,…,Pn.引进记号c0=0,ci=Σj=1iPj/Σj=1nPj---(1)]]>首先构造n个半开区间[ci-1,ci)显然这n个半开区间互不相交且正好覆盖区间
,f0[i],i=0,1… ,2m-1.其具体实现如下(1)编码初始化
区间上限置0,下限置2n-1,即low=0,high=2n-1,移位寄存器量0,即r=0,频率统计表各分量置1,即f0[i]=f1[i]=1;i=0,1,…,2m-1;位溢出控制置0,即ov=0.(2)数值计算temp=low+(high-low+1)*f0[r]/(f0[r]+f1[r]).(3)编码判断(a)如果当前编码的符号为1,则f1[r]加1,即f1[r]=f1[r]+1;调整low,即low=temp,high不调整;移位寄存器左移一位,即r=r<<1,并把当前编码符号1,置于移位寄存器末位,即r=r+1.
(b)如果当前编码的符号为0,则f0[r]加1,即f0[r]=f0[r]+1;调整high,即high=temp-1,low不调整;移位寄存器左移一位,即r=r<<1.(4)循环移位(a)如果low和high的最高二进位相同,则输出其最高二进位,low和high左移一位,即low=low<<1,high=high<<1,且high末位置1,即high=high+1.
(b)high-low≥2n-2,则返回步骤(2).
(c)上述两情况都不满足,位溢出控制符加1,即ov=ov+1.low和high左移一位,即low=low<<1,high=high<<1,且high末位置1,即high=high+1.返回步(4)中步(a).
这里的位输出过程,视溢出控制而定。若ov=0,则输出是正向的;否则,为反向输出。所谓反向输出是若当前输出1,则实际输出0;若当前输出0,则实际输出1.例如·ov=2,若当前输出为1,则实际输出2个0(反向).
·ov=3,若当前输出为0,则实际输出3个1(反向).
·ov=0,若当前输出为1,则实际输出1个1(正向).
·ov=0,若当前输出为0,则实际输出1个0(正向).
关于移位寄存器的位数m作如下说明如果m小,则需要较少的统计内存,但压缩效率不高;如m较大,则需要较大的统计内存,但有更高的压缩效率。一般1≤m≤32,通常我们使用16位移位寄存器,即m=16,这时需要128K字节的内存开销,用于两个64K字节的频率统计表f0,f1.
关于初始区间限2n中的n作如下说明n表示区间上限使用的二进位数,一般4≤n≤16,通常取为8,视计算过程中使用的计算精度而定。这些选择对压缩效率的影响不大。
另外,在上述以及下面的算法描述过程中,我们已经使用或即将使用C语言中的一些位计算符号,现说明如下a<<k表示a左移k位。a^k表示a与k作异或运算。a&k表示a与k作与运算。a|k表示a与k作或运算。
对应于上述自适应位元压缩编码算法,本发明也给出相应的自适应位元压缩解码算法,简称位元解码算法,其算法具体步骤如下(1)解码初始化区间上限置0,下限置2n-1,即low=0,high=2n-1,移位寄存器置0,即r=0,频率统计表各分量置1,即f0[i]=f1[i]=1;i=0,1,…,2m-1;压缩比特流输入,code=前n个输入位。(2)数值计算{value=(code-low+1)*(f0[r]+f1[r])/(high-low+1).temp=low+(high-low+1)*f0[r]/(f0[r]+f1[r]).]]>(3)输出判断(a)若value≥f0[r],输出符号1.f1[r]加1,即f1[r]=f1[r]+1;调整low,即low=temp,high不调整;移位寄存器左移一位,即r=r<<1,并把当前编码符号1,置于移位寄存器末位,即r=r+1.
(b)若value<f0[r],输出符号0,f0[r]加1,即f0[r]=f0[r]+1;调整high,即high=temp-1.low不调整;移位寄存器左移一位,即r=r<<1(4)循环移位(a)如果low和high的最高二进位相同,则low和high左移一位,即low=low<<1,high=high<<1,且high末位置1,即high=high+1.
(b)high-low≥2n-2,则返回步骤(2).
(c)上述两情况都不满足,则code与2n-2作异或运算,即code=code^2n-2;low与2n-2-1作与运算,即low=low&(2n-2-1);high与2n-2作或运算,即high=high|2n-2.low,code和high同时左移一位,即low=low<<1,high=high<<1,且high末位置1,即high=high+1.返回步(4)中步(a).
在上述位元解码算法中,code存放的是编码输出的数据,称为压缩比特流;m和n的含义与位元编码算法中的含义相同,且m和n的取值,在编解码中必须一致。
本发明提出的数据压缩加密技术是结合自适应位元压缩编码算法和加密处理方法实现的。加密处理方法就是在位元编码初始化过程中,利用密匙引进随机噪声,从而达到隐藏数据的作用。我们称相应的算法为自适应位元加密算法,具体实现如下输入密匙和密表,并按位处理密匙和密表如下·若当前密匙位为1,则f1[r]=f1[r]+1,编码密表中的相应位,即依次执行位元编码算法的(2)、(3)、(4)步。
·若当前密匙位为0,则f0[r]=f0[r]+1,编码密表中的相应位,即依次执行位元编码算法的(2)、(3)、(4)步。
·循环执行上述两个过程,直到编完密表中的所有位。
在位元加密算法中,密匙和密表是任意给定的等长二进制数字。加密者必须记住密匙,以便解码时使用;但加密者不需要知道密表的内容,因为它主要用来扰乱位元编码器的编码状态。也就是说,当密表编码结束后,区间上限low,区间下限high,位溢出控制ov,移位寄存器r和频率统计表f0[i],f1[i],i=0,1,…,2m-1的当前值对不掌握密匙者是不透明的。从这种混乱状态出发编码明文,就可以隐藏明文的真正含义,达到加密目的,因为攻击者不掌握密匙就无法消除这种混乱状态。如果单靠猜测编码器的当前状态,需要枚举至少 种可能性;当m>8时,这是一个庞大的天文数字,即使用现在最快的计算机也无法在数百年之内枚举所有可能性。因此,本发明提出的加密算法是非常安全的。
针对上述自适应位元压缩加密算法,本发明也给出相应的自适应位元解密算法,具体步骤如下输入加密使用的密匙,并按位处理密匙和密表如下·若当前密匙位为1,则f1[r]=f1[r]+1,解码密表中的相应位,即依次执行位元解码算法的(2)、(3)、(4)步,并扔掉输出位。
·若当前密匙位为0,则f0[r]=f0[r]+1,解码密表中的相应位,即依次执行位元解码算法的(2)、(3)、(4)步,并扔掉输出位。
·循环执行上述两个过程,直到解出密表中的所有二进位。
根据上述位元压缩加密技术,本发明研制了相应的器件一自适应位元加解密器,该器件包括加密器和解密器两个部分。加密器由产生密匙位的密匙盘,产生密表的随机数发生器和用于编码密表和明文的自适应位元编码器构成,其中的编码器实现自适应位元编码算法。解密器由产生密匙位的密匙盘和用于解码密表和明文的自适应位元解码器构成,其中的解码器实现自适应位元解码算法。加解密器的系统框图如附图
所示,其工作原理如下·加密过程在密匙的输入过程中,每输入一个密匙位,随机数生成器就产生一个随机二进位,密匙位被用于初始化位元算术编码器的计数器一次,算术编码器编码相应的随机位并输出比特流。当密匙位输入结束,编码器再用当前的编码参数和计数器状态压缩并编码明文。
·解密过程依次输入密匙,每输入一个密匙位,密匙位被用于初始化算术解码器一次,算术解码器解出密表中相应的随机二进位并扔掉。
当密匙位输入结束,解码器再用当前的解码参数和计数器状态解码明文。
加密器的操作过程如下(1)编码初始化区间上限置0,下限置2n-1,即low=0,high=2n-1,移位寄存器置0,即r=0,频率统计表各分量置1,即f0[i]=f1[i]=1;i=0,1,…,2m-1;位溢出控制置0,即ov=0.(2)引进噪声输入有限长密匙,譬如010110110.随机产生等长个二进位表达的随机数(密表),譬如,111010001.按位处理密匙和密表如下(a)若当前密匙位为1,则f1[r]=f1[r]+1,编码密表中的相应位,即依次执行位元编码算法的(2)、(3)、(4)步。
(b)若当前密匙位为0,则f0[r]=f0[r]+1,编码密表中的相应位,即依次执行位元编码算法的(2)、(3)、(4)步。
(c)循环执行上述两个过程,直到编完密表中的所有位。(3)编码明文对明文实施位元编码算法的(2)、(3)、(4)步。
解密器操作过程如下(1)解码初始化区间上限置0,下限置2n-1,即low=0,high=2n-1,移位寄存器置0,即r=0,频率统计表各分量置1,即f0[i]=f1[i]=1;i=0,1,…,2m-1;密文比特流输入,code=前n个输入位。(2)消除噪声输入加密使用的有限长密匙,譬如010110110.按位处理密匙和密表如下(a)若当前密匙位为1,则f1[r]=f1[r]+1,解码密表中的相应位,即依次执行位元解码算法的(2)、(3)、(4)步。
(b)若当前密匙位为0,则f0[r]=f0[r]+1,解码密表中的相应位,即依次执行位元解码算法的(2)、(3)、(4)步。
(c)循环执行上述两个过程,直到解出密表中的所有随机二进位。(3)解码明文对密文实施位元解码算法的(2)、(3)、(4)步。
随机数发生器的引用使攻击者无法猜测所用密匙的长度,又能扰乱攻击者对密文的理解。当使用几十个字的密匙时,不会对压缩效率带来多大的影响。
根据前面对加密算法的分析,脱密一份用位元加密器加密过的密文,首先必须脱密密表中的随机位,随后明文才能逐个译出。因为哪怕密表中的任意一个比特位发生错误,都会改变算术解码器的原始状态,从而影响随后的解码工作。但是攻击者不知密匙长度就无法知道密表的大小。另一方面,即使知道密表的长度,也无法知道密表的内容,因为它是随机数发生器产生的一个随机二进数。因此只有使用准确的密匙才能准确地解出密表从而得到明文。
利用长密文的统计特性来猜测密匙,也是非常困难的,因为明文的统计特性被密表和压缩按盖了。因此用上述加密器不管对长明文还是对短明文加密同样安全有效。
由于加密器按比特位编码,本发明可用于加密和压缩包括文本,图象和声音在内的多媒体数据,特别适用于高度保密的机要档案和军事资料的存储和传输。可作成器件实现电报和电话的加密传输,甚至可以在交互网上实现保密通讯。
权利要求
1.一种自适应位元压缩加解密方法,包括位元编解码方法和加解密处理方法。其特征在于位元编码算法,需要一个m位的移位寄存器,两个2m字节的频率统计表f1[i],f0[t],i=0,1,…,2m-1,(1≤m≤32)编码实施步骤如下(1)编码初始化区间上限置0,下限置2n-1,即low=0,high=2n-1,4≤n≤16移位寄存器置0,即r=0,频率统计表各分量置1,即f0[i]=f1[i]=1;i=0,1,…,2m-1;位溢出控制置0,即ov=0.(2)数值计算temp=low+(high-low+1)*f0[r]/(f0[r]+f1[r]).(3)编码判断(a)如果当前编码的符号为1,则f1[r]加1,即f1[r]=f1[r]+1;调整low,即low=temp,high不调整;移位寄存器左移一位,即r=r<<1,并把当前编码符号1,置于移位寄存器末位,即r=r+1.(b)如果当前编码的符号为0,则f0[r]加1,即f0[r]=f0[r]+1;调整high,即high=temp-1,low不调整;移位寄存器左移一位,即r=r<<1.(4)循环移位(a)如果low和high的最高二进位相同,则控制输出其最高二进位,low和high左移一位,即low=low<<1,high=high<<1,且high末位置1,即high=high+1(b)high-low≥2n-2,则返回步骤(2)(c)上述两情况都不满足,位溢出控制符加1,即ov=ov+1.low和high左移一位,即low=low<<1,high=high<<1,且high末位置1,即high=high+1.返回步(4)中的步(a).
2.根据权利要求1所述的自适应位元压缩加解密方法,其特征在于位元解码算法,需要一个m位的移位寄存器,两个2m字节的频率统计表f1[i],f0[i],=0,1,…,2m-1,(1≤m≤32).解码实施步骤如下(1)解码初始化区间上限置0,下限置2n-1,即low=0,high=2n-1,4≤n≤16.移位寄存器置0,即r=0,频率统计表各分量置1,即f0[i]=f1[i]=1;i=0,1,…,2m-1;压缩比特流输入,code=前n个输入位。(2)整数运算{value=(code-low+1)*(f0[r]+f1[r])/(high-low+1)temp=low+(high-low+1)*f0[r]/(f0[r]+f1[r]).]]>(3)输出判断(a)若value≥f0[r],输出符号1.f1[r]加1,即f1[r]=f1[r]+1;调整low,即low=temp,high不调整;移位寄存器左移一位,即r=r<<1,并把当前编码符号1,置于移位寄存器末位,即r=r+1.(b)若value<f0[r],输出符号0,f0[r]加1,即f0[r]=f0[r]+1;调整high,即high=temp-1,low不调整;移位寄存器左移一位,即r=r<<1.(4)循环移位(a)如果low和high的最高二进位相同,则low和high左移一位,即low=low<<1,high=high<<1,且high末位置1,即high=high+1.(b)high-low≥2n-2,则返回步骤(2).(c)上述两情况都不满足,则code与2n-2作异或运算,即code=code^2n-2;low与2n-2-1作与运算,即low=low&(2n-2-1);high与2n-2作或运算,即high=high|2n-2.low,code和high同时左移一位,即low=low<<1,high=high<<1,且high末位置1,即high=high+1.返回步(4)中步(a).
3.根据权利要求1所述的自适应位元压缩加解密方法,其特征在于加密实施步骤如下输入等长密匙和密表,按位处理密匙和密表如下(1)若当前密匙位为1,则f1[r]=f1[r]+1,编码密表中的相应位,即依次执行位元编码算法的(2)、(3)、(4)步。(2)若当前密匙位为0,则f0[r]=f0[r]+1,编码密表中的相应位,即依次执行位元编码算法的(2)、(3)、(4)步。(3)循环执行上述两个过程,直到编完密表中的所有位。
4.根据权利要求1所述的自适应位元压缩加解密方法,其特征在于解密实施步骤如下输入加密使用的密匙,并按位处理密匙和密表如下(1)若当前密匙位为1,则f1[r]=f1[r]+1,解码密表中的相应位,即依次执行位元解码算法的(2),(3),(4)步。(2)若当前密匙位为0,则f0[r]=f0[r]+1,解码密表中的相应位,即依次执行位元解码算法的(2),(3),(4)步。(3)循环执行上述两个过程,直到解出密表中的所有二进位。
5.一种自适应位元加解密器,该器件包括加密器和解密器两个部分。其特征在于加密器由产生密匙字的密匙盘、产生密表的随机数发生器和用于编码密表和明文的自适应位元编码器构成,解密器由产生密匙位的密匙盘和用于解码密表和明文的自适应位元解码器构成。
全文摘要
本发明是一种集压缩和加密于一体的数据处理方法及其器件,它利用自适应统计模型,按位编码。实现数据的快速压缩;并通过在编码过程中混入随机噪声的办法,实现数据加密,相应的器件称为位元加(解)密器,它由密匙盘、随机发生器和位元编(解)码器组成,本发明提出的压缩加密算法安全快速,可广泛应用压缩加密文本、图象和声音等数据,特别适应于高度保密的机要档案和军事资料的存储和传输,可在交互网上实现保密通讯。
文档编号G06F17/00GK1146580SQ96116408
公开日1997年4月2日 申请日期1996年6月25日 优先权日1996年6月25日
发明者赵风光 申请人:复旦大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1