CN1355632A - 可变大小的密钥以及使用该密钥的方法和装置 - Google Patents
可变大小的密钥以及使用该密钥的方法和装置 Download PDFInfo
- Publication number
- CN1355632A CN1355632A CN00134266.5A CN00134266A CN1355632A CN 1355632 A CN1355632 A CN 1355632A CN 00134266 A CN00134266 A CN 00134266A CN 1355632 A CN1355632 A CN 1355632A
- Authority
- CN
- China
- Prior art keywords
- key
- bit
- frequency
- frequency meter
- model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000013461 design Methods 0.000 abstract description 7
- 238000006073 displacement reaction Methods 0.000 abstract description 4
- 230000008859 change Effects 0.000 abstract description 2
- 230000007613 environmental effect Effects 0.000 abstract 1
- 230000008569 process Effects 0.000 description 16
- 230000006835 compression Effects 0.000 description 13
- 238000007906 compression Methods 0.000 description 13
- 229910002056 binary alloy Inorganic materials 0.000 description 7
- 230000000295 complement effect Effects 0.000 description 6
- 238000002474 experimental method Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000002203 pretreatment Methods 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/30—Compression, e.g. Merkle-Damgard construction
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明涉及一种加密装置和方法以及一种解密装置和方法,用于实现基于比特的加密方案和硬件设计。该加密装置包含一个随机数生成器;一个模型。该加密装置还包含一个编码器,根据工作密钥、明文和至少两个频率计数输出编码的文本。本发明改进了加密文本,它基于流结构,密钥长度不受限,且能被压缩50%。即使对于相同的明文和相同的密钥,编码文本也能随不同环境而改变。硬件设计的操作基于算术加法和位移指令,而不是基于乘法和除法指令。
Description
本发明针对加密和解密,尤其是针对一种可变大小的密钥,以及利用可变大小的密钥来执行加密和解密方法和装置。
传统地,压缩和密码学被认为是界限清晰和独立的技术,被分别开发和应用。然而,尽管它们是以各自不同的方式来工作的,但它们具有去除输出冗余的共同目标。认识到这一共同目标,Witten,Neal和Cleary(下文中称为WNC)首次应用自适应算术编码来加密。特别的,WNC作出了如下发现:
·通过再编码消息,压缩保护了消息不会被偶然发现;
·去除冗余,摒弃了密码分析学家利用自然语言中的通常统计规律来分析的可能性;以及
·自适应地利用被传输数据的特征,可提供较好的压缩性能。
在这三个发现中确定的特性,显然给出了良好的压缩性能和安全性能——两方面都很完美。
图1示意了基于模型的、常规、通用和算术编码的加密方案10,诸如WNC方案的原理流程图。如图1所示,明文12被输入到编码器14和模型16,密钥18也被输入到模型16。编码器14根据明文12以及模型16的输出产生密文20。模型16在任何给定上下文中,为下一个字符提供概率分布。最简单的模型对上下文不敏感,而不管相邻的字符如何都给予同样的分布。模型16不应该对实际出现的字符指定0分布,否则该符号就不能被编码,因为符号范围的顶端和底端相重合。对于编码器14,选择一个源符号字母,而且为每个符号指定一个出现概率。符号范围间隔通常为0到1,而且每个源符号根据其概率占据该间隔中的一个子间隔。随着每个新的源符号的读取,该间隔被连续细分。高概率符号减小的间隔量要少于低概率符号的减小量。密文20由间隔中的一个值表示,这种系统在计算机和安全出版社出版的“DataSecurity in a Fixed-Model Arithmetic Coding CompressionAlgorithm”,11(1992),pp.445-461中有描述。
如同算术编码这个名称所提示的,组成明文12的源符号根据数字编码。每个符号在其每次被编码时,不必都翻译成同一固定码来组成密文20。可能是一个源符号字符串的输入字符串,通常由0和1之间的真实数字的一个间隔来表示。间隔的范围最初可由与讨论中的符号的概率成正比的一个值来定义。随着每个新的源符号从明文12中读取,间隔可被连续细分,明文12中的高概率符号的间隔减小量要少于低概率符号的减小量。作为模拟,图1所示的算术编码类似于使用一种灵活的标尺来测量符号字符串。
WNC方案是一种用于加密的基于字节的算术编码方案,它使用频率表,但不用随机数生成器。WNC方案的密钥特征为,一个基于字节的模型以及一个初始频率表用作加密的密钥。而在WNC中,工作密钥和主密钥是相同的。
然而,其后Bergen等人在计算机和安全出版社出版的“DataSecurity in a Fixed-Model Arithmetic Coding Compressionalgorithm”,pp.445-461,1992一文中的研究表明,WNC方案存在安全问题。特别是,作为固定模型算术编码方案的WNC实现容易被分析,因此可能被简单和直接解密。这种容易被分析和解密是由于在输出中重复使用固定子字符串的直接结果,这种固定子字符串能特征化每个特定的符号。WNC实现的固定特征使得,能相对简单地确定原始频率表中的符号顺序以及符号频率的实际值。因此很难为WNC加密方案设计一种安全模型和密钥控制。
本发明通过提供一种加密装置和方法以及一种解密装置和方法,采用传统的算术编码技术来解决上述问题,该编码技术根据的是一种基于比特的算术编码技术。该加密装置和方法以及该解密装置和方法使用值0和1的频率表以及一个随机数生成器。频率表包含工作密钥而非主密钥,均采用传统技术。在开始编码时,主密钥被输入到一个编码器。一个模型使用根据主密钥的频率表以及一个随机比特来形成一个工作密钥。工作密钥为可变的,其用作编码明文的概率。本发明中的模型根据输入文本来刷新概率。
具体来讲,本发明针对一种加密装置,它包含一个随机数生成器,用于接收主密钥,利用至少一个随机数来确定一个工作密钥并输出该工作密钥;一个模型,用于接收主密钥、工作密钥和明文并产生至少两个频率计数;以及一个编码器,基于工作密钥、明文以及至少两个频率计数来输出密文。
此外,本发明针对一种加密装置,它包含处理随机比特和密钥比特以产生至少一个频率表;以及利用至少一个频率表来编码明文。另外,本发明还针对一种解码设备,它包含一个模型,用于接收主密钥、工作密钥以及明文,并产生至少两个频率计数;一个解码器,基于工作密钥、主密钥、明文、至少两个频率计数来输出明文;以及一个随机数生成器,用于接收明文,并利用至少一个随机数来确定工作密钥,以及输出该工作密钥到所述模型。此外,本发明还针对一种解密方法,它包含处理随机比特和密钥比特以产生至少一个频率表;以及利用至少一个频率表来解码密文。
本发明的基于比特的加密方案和硬件设计能产生一种密码,该密码基于流结构,且具有长度不受限制的密钥。该密码还有一个优点是,可压缩明文至少50%。对于相同的明文和相同的密钥,该密码可随不同的环境而变化。在硬件设计中的操作是基于算术加法和位移指令,而不包含乘法和除法指令。因此,硬件设计更简单。密码、编码器、解码器以及方法也适用于密码学和电子商务。
图1示意了一种基于模型的常规、通用、算术编码的加密方案。
图2示意了在本发明的一个示例性实施例中,加密的示例性原理流程图。
图3示意了在本发明的一个实施例中,编码的流程图;以及
图4详细示意了在本发明的一个示例性实施例中的模型。
图5示意了在本发明的一个示例性实施例中的频率表。
图6示意了在本发明的一个示例性实施例中,解密的示例性原理流程图。
图7示意了在本发明的一个实施例中的解码流程图;以及
图8详细示意了在本发明的另一个示例性实施例中的模型。
图2示意了在本发明的一个示例性实施例中,加密的示例性原理流程图。如图2所示,明文12被输入到编码器114和模型116。主密钥118提供给模型116和随机数生成器122。随机数生成器122根据主密钥118以及其中生成的随机数产生工作密钥,工作密钥被输出到编码器114和模型116。模型116将0和1的两个频率计数分别提供给编码器114,而且编码器114的输出为一个压缩比特流。编码器114根据明文12、随机数生成器122输出的工作密钥以及来自模型116的频率计数0、1,来产生压缩信息(即,密文120)。
编码器114可如下述操作。要编码的消息由0和1之间的真实数字的间隔表示。随着消息长度的增加,需要用来表示消息的间隔减小,而需要用来指定间隔的比特数增加。消息中的后续符号根据模型116产生的符号概率来减小间隔的大小。高概率符号减小的范围越少于低概率符号的减小范围,因此增加到消息中的比特数越少。
最初,指定到一条消息的间隔为整个间隔[0,1)([0,1)表示半开间隔0≤x<1]。随着消息中的每个符号被处理,范围被限制到分配给指定符号的范围部分。例如,假定字母为(a,b,c,d,e,f),使用一种固定模型,其概率如表1所示。
表1
符号 | 概率 | 范围 |
a | 0.25 | [0,0.25) |
b | 0.25 | [0.25,0.5) |
c | 0.1 | [0.5,0.6) |
d | 0.1 | [0.6,0.7) |
e | 0.1 | [0.7,0.8) |
f | 0.2 | [0.8,1.0) |
假定发送的消息为abc。起初,编码器114(以及后面将要描述的一个相关的解码器)知道该范围为[0,1)。接收到第一个符号a之后,编码器114就将范围缩小至[0,0.25),即模型116分配给符号a的范围。第二个符号b将新的范围再次缩至1/4,即[0.0625,0.125)——前一范围为0.25个单位长度,它的1/4为0.0625。下一个符号c被分配[0.5,0.6),当此范围应用到[0.0625,0.125)时,提供更窄的范围[0.09375,0.1)。
假定所有的相关解码器了解到该消息的最终范围为[0.09375,0.1)。解码器就能立即推断出第一个字符为a,因为其范围完全位于表1模型分配给a的空间内。这之后,范围为[0,0.25)。在看到完全包含给定范围[0.09375,0.1)的b范围[0.0625,0.125)之后,就确定第二个字符为b。如此继续,解码器就能识别出所有消息。
在一个示例性实施例中,编码器114为同时待审的美国专利申请号No.09/240,576中所描述的编码器,该申请名为“Multiplication-FreeArithmetic Coding”,1999年2月1日申请,该申请的全部内容在此作为参考。这种编码器的一个优点是,其中不涉及乘法和除法操作,这使得硬件设计很简单。这个编码器将在下面描述。
编码
最初,两个寄存器R和L分别设置为1和一个任意数。编码器114提供有三个输入,第一个频率计数c0代表概率0的分数值,第二个频率计数c1代表概率1的分数值,以及在此范围内编码的一个符号i(0或1)。
编码器114执行的编码步骤可归述为下面的伪代码:
1. If c0>c1,exchange the values of c0 and c1,and let i=!i。
2. While R≤c1,do
●Output the most significant bit of L.
●L=L<<=1,R=R<<=1.
●If R>~L,then R=~L+1.
3. Ifi=0,then R=c0;else R=R-c0,L=L+c0.
输出L
应注意的是,在上面的伪代码中使用了一些C语言符号。!代表逻辑补(logic complement),~代表二进制补(binary complement),而<<=代表算术左移位(arithmetic shift left)。根据上面的描述,本发明基于下面的假设而工作:对于每个迭代,R≈c0+c1。
L:=L,R:=c0,i=0 (1)
L:=L+c0,R:=R-c0,i=1 (2)
在本发明中,将两个寄存器R和L分别初始化为1和一个任意数,使输出流中的第一个字来指示一个同步字,用于实时传输。此外,步骤1通常称为交换步骤,步骤2称为调整步骤,步骤3称为编码步骤。常规的无乘法算术编码技术中要求使用的量化(magnitude)步骤,在本发明中不要求。在本发明中,调整步骤先于编码步骤执行。在调整步骤中,当寄存器R的值小于或等于第二个频率计数的值时,执行“while”循环,如果寄存器R的值大于寄存器R值的二进制补时,将寄存器R的值设置为等于寄存器L值的二进制补加1,由此就不需要下一比特的塞入步骤。
总之,本发明的无乘法算术编码方法通过下述步骤来产生一个编码比特流:接收来自一个编码字符串的一个符号和两个频率计数,发现一个最大概率和最小概率符号;提供第一寄存器用于幅度位移操作,以输出比特到编码的比特流,为编码字符串中的每个符号近似一个上下文概率,以及根据上下文概率来编码编码字符串中的下一个符号。
图3包含了编码器114在编码进程20中执行的详细的特定步骤。特别的,在步骤22,寄存器R和L分别被初始化为1和同步字。在本例中,编码比特流为11011100i,它与寄存器R和L的初始值在步骤24一起输入到0阶马尔可夫模型,以产生频率计数c0和c1。在步骤26,比较c0和c1,如果c0大于c1,那么c0和c1互换,而且在步骤28,i被设置为其逻辑补。然而,如果c0不大于c1,进程继续到步骤30,在此确定寄存器R的值是否大于或等于c1。如果是这样,进程继续到步骤32,在此输出寄存器L的最高有效位(MSB),L和R被算术左移位,而且如果R大于L的二进制补,那么R被设置为L的二进制补加1,而且进程继续到步骤30。如果寄存器R的值不大于等于C1,那么进程继续到步骤34。在步骤34,确定i是否等于0。如果i等于0,那么寄存器R的值在步骤36被设置为等于C0,如果i不等于0,那么在步骤38,R被设置为R的前一值减c0,而且L被设置为L的前一值加c0,从而编码比特流中的下一个比特。该进程继续执行,直到输入比特流中的所有比特被编码。接着,输出寄存器L的值作为编码的比特流。
尽管本发明是采用0阶马尔可夫模型描述的,但均可使用本领域的普通技术人员所了解的任何模型。
如图4所示,模型116包含频率表130(示意为RAMs126)以及模型控制器128。包含在频率表130中的频率计数代表概率,如表1中所示的概率。明文12、主密钥118和工作密钥被输入到模型控制器128。随机数生成器122每个系统时钟产生一个随机比特。如图4所示,频率表130可能包含两个相关项,因此使得很难跟踪保存在频率表130中的所有信息,除了两个相关项。模型116可利用地址寄存器r来记录当前处理的最近t比特,频率表130的大小为2t。在一个实施例中,模型116为t阶马尔可夫模型,而r看起来像大小为t的滑动窗口。最初,频率表130中的值可设置为1。
本发明可描述为两阶段密码,第一阶段处理随机比特和密钥比特。在第一阶段,密钥大小控制随机比特生成器,以便控制器128能得到与密钥相同大小的随机比特字符串。对于每个比特对(一个随机比特和一个密钥比特),控制器128可执行下述操作:
1)根据模型控制器128中的一个移位寄存器,从RAMs 126得到F0和F1;
2)如果密钥比特为0,F0加1;否则F1加1;
3)传递随机比特和F0、F1到编码器114;
4)如果随机比特为0,F0加1;否则F1加1;
5)回写F0和F1到RAMs 126;
6)左移位模型控制器128中的移位寄存器,并将当前随机比特插入到移位寄存器中的最末位。
在第一阶段,随机比特经模型控制器128提供给编码器114(或解码器)。当第一阶段完成后,可在RAMs 126获得一个有用的初始频率表。
在第二阶段,编码明文12。第二阶段中,明文12被输入到模型控制器128,模型控制器128为每个输入比特执行如下动作:
1)根据移位寄存器,从RAMs 126得到F0和F1;
2)传递明文比特和F0、F1到编码器114;
3)如果明文比特为0,F0加1;否则F1加1;
4)回写F0和F1到RAMs 126;
5)左移移位寄存器,并将当前明文比特插入到移位寄存器的最末位。
由此,明文12也会经模型控制器128传递到编码器114(或解码器)。
图5示意了本发明的一个优选实施例中的频率表130。如图5所示,频率表130包含r个频率0输入和r个频率1输入。频率表130的大小在一个实施例中为2t。在一个实施例中t=15。
模型控制器128控制RAMs 126的读写、频率表130的输出以及到算术编码器114的源比特。到编码器114的输入包含来自明文12的文本比特、来自主密钥118的密钥比特、来自随机数生成器112的随机比特,以及来自RAMs 126的两个频率136。模型控制器128到RAMs126的输出为使读(read-enable)信号138、使写(write-enable)信号140、比特“0”和“1”的各自修改频率142,以及地址144。从模型控制128到编码器114的输出包含源比特146,以及比特“0”和“1”的一对频率计数148。在一个示例性实施例中,模型116使用两个时钟实现,一个系统时钟和一个RAM时钟,目的是使模型控制器128能在一个系统周期内完成到RAMs 126的一次读和写。
编码器114和模型116之间的相互作用如下所述:最初,r可设置为一个固定数,r的当前值用于从频率表130中查找0和1的各自频率计数。这两个频率计数接着被输入到编码器114。在由r指向的位置,当前比特被编码,频率计数被刷新。接下来,滑动r以包含当前比特,重复此操作直到编码完毕所有比特。
如图4中的实施例所示,频率表130包含随机存取存储器(RAM)126。两个RAMs 126分别表示比特0和1的频率表。在一个示例性实施例中,总共有64k对比特“0”和“1”的频率。因此,频率可以在从1到255的范围内。编码器114实现一种算术编码算法,在此,其输入信号为一个比特源信号和比特“0”和“1”的一对频率。对于每个时间间隔,该频率对都不相同,且取决于输入源比特。编码器114的输出为密文120和一个输出有效比特150。
本发明也可使用一个密钥(任何长度的比特字符串)来控制频率表130中的初始值,以及使用一个随机比特流来控制r的值。随机比特流可由随机数生成器122产生。用于加密的密钥被称为工作密钥。更精确地说,k1,k1,…,kn为加密密钥的比特流。一个示例性算法如下所述:
加密
初始化:r=0,使频率表130中的所有项为1,初始化编码器114,j=1
输入:k1,k1,…,kn
1. while j<=n,do
●从频率表130中查找由r指定的位置。
●如果kj=1,频率1位置加1,否则频率0位置加1。
●采用当前的频率计数来编码来自随机数生成器122的一个比特l。
●如果l=1,频率1位置加1,否则频率0位置加1。
●左移位r,r=r|随机比特。
2. 编码明文12和刷新模型116,如下:
●如果当前比特为1,频率1位置加1,否则频率0位置加1。
●左移位r,r=r|当前比特。
应注意的是,步骤1用于产生初始频率表130,因为采用随机数生成器122,频率表130可取决于环境。此外,即使不同时候采用同一加密密钥,也将产生不同的频率表130,这表明本发明中的密码不是一对一,而是可变的。
实例
本例中用于测试的参数如下:
L---编码间隔的低端:32 bits,初始化为0;
H---编码间隔的高端:32 bits,初始化为1;
R---编码间隔的范围:32 bits,初始化为1;
V---用于解码比特流的寄存器;
2t---频率表130的大小:对频率0和1均为64k,t=15;
r---表格的地址指针寄存器:15 bits。
表2:明文“AAAAAAAAAAAAAAAAAAAAAAA”
实验号 | 密钥 | 密文(HEX) |
1 | A | B9 50 C8 C9 1B F8 44 10 |
2 | A | FA A1 91 91 3C 81 14 80 |
3 | A | 83 D3 C3 C7 28 1F 35 |
4 | AbCD8910 | 56 DF B4 56 89 48 67 9E 82 28 28 28 66 45 21 40 |
5 | AbCD8910 | B9 72 D9 5D A0 F1 62 68 99 7D 7D 70 98 EE F8 |
表3:明文“It is incredible for us”
实验号 | 密钥 | 密文(HEX) |
1 | Zfg | E7 95 CE 8C A3 B7 7E 1D 98 9E 1E 6F 0D 7732 14 C5 58 24 4B FF 40 69 43 1C 45 29 80 |
2 | Zfg | 2B CF 08 FD 5F 54 87 E1 D9 89 E1 E6 F0 D773 21 4C 55 82 44 BF F4 06 94 31 C4 52 98 |
3 | 123 | C4 99 9E F4 97 49 27 32 06 97 32 0A 0B 62 8625 13 CA 51 2E 44 BA 86 72 45 CA 95 27 00 |
4 | 123 | E5 3D C0 5C 82 58 12 EA 84 95 52 85 69 0D 7732 14 C5 58 24 4B FF 40 69 43 1C 45 29 80 |
从上面的表2和表3显然可见:1)对于具有相同密钥的相同明文,可产生不同的密文,2)密文的大小可随不同的实验参数和不同密钥而改变,以及3)对于高度相关数据,压缩率很高,但对于弱相关数据或较短的字符串,压缩率也还不错。
如果频率表中的值用作加密密钥,本发明的技术也可用于加密。本发明与WNC之间的一个差别在于模型。本发明的基于比特的模型,使得利用诸如Bergen/Hogen所描述的技术很难跟踪所有初始值。压缩的比特流或密文120可通过反向处理进程来解码。
图6示意了在本发明的一个实施例中,解密的示例性原理流程图。如图6所示,密文120输入到解码器124。主密钥118被输入到模型116和解码器124。随机比特生成器152的输出被输入到模型116。模型116的输出被输入到解码器124。解码器124解码密文120以产生明文12,明文12又反馈回模型116。解码器124也将其输出传递到随机比特生成器152。在一个示例性实施例中,解码器124为在同时待审的美国专利申请序列号No.09/240,576中描述的解码器,名称为“Multiplication-Free Arithmetic Coding”,1999年2月1日申请,该申请的全部内容在此作为参考。这种解码器将在下面详细描述。
解码
为了解码,R和L寄存器再次被初始化,使用第三个寄存器V来存储部分解码比特流,而i表示输出比特。如果S为解码比特流,它由上述的编码算法产生,解码器124执行的解码步骤可归述为下面的伪代码:
1. If c0>c1,exchange the values of c0 and c1,and let i=1;elsei=0。
2. While R≤c1,do
●L=L<<=1,R=R<<=1,V=V<<=1。
●V=V|next bit from S.
●If R>~L,then R=~L+1.
3. If c0<V,then R=c0;else R=R-c0,L=L+c0,and
i=!i
总之,用于产生一个解码字符串的无乘法算术编码方法,接收来自解码流的比特和两个频率计数,查找一个最高概率符号和一个最低概率符号,将第一寄存器提供用于幅度位移操作,以从解码比特流中输入比特,近似解码字符串中每个符号的上下文概率,以及根据上下文概率来解码下一个字符到解码流。
图7包含解码器124在解码进程40中执行的详细的特定步骤,尤其是,在步骤42,寄存器R、L和V被初始化。寄存器R、L和V的值以及要被解码的字符串在步骤44被输入到0阶-马尔可夫模型,以产生频率计数c0和c1。在步骤46,比较c0和c1,如果c0大于c1,那么c0和c1互换,而且在步骤48,i被设置为其逻辑补。然而,如果c0不大于c1,进程继续到步骤50,在此确定寄存器R的值是否大于等于c1。如果是这样,进程继续到步骤52,在此寄存器R、L和V都被算术左移位,来自解码比特流S的下一个比特被添加到寄存器V,而且如果R大于L的二进制补,那么R被设置为L的二进制补加1。进程接着返回到步骤50。
如果寄存器R的值不大于等于c1,那么进程继续到步骤54。在步骤54,确定c0是否小于V。如果c0小于V,那么寄存器R的值在步骤56被设为等于c0,如果c0不小于V,那么在步骤58,R被设置为R的前一值减c0,L被设置为L的前一值加c0,而i被设置其逻辑补,从而解码比特流S中的下一个比特。进程接着通过输入下一个比特到步骤44的马尔可夫模型刷新而重复执行。进程继续进行,直到解码比特流S中的所有比特被解码。
尽管本发明刚刚使用0阶Markov模型描述,但均可使用本领域的普通技术人员所了解的任何模型。
下面的表4示意了对于不同的文件类型来说,采用乘法的编码器、美国专利No.4,652,856中公开的现有技术,以及本发明的无乘法算术编码之间的压缩率比较。
表4
源文件 | 文件大小 | 乘法编码器 | 本发明的编码器 | 美国专利No.4,652,856 |
C源文件 | 27620 | 37.5% | 38.4% | 39.9% |
中文文件 | 72596 | 43.3% | 43.8% | 44.9% |
比例图像 | 262330 | 67.9% | 68.8% | 69.6% |
EXE文件 | 54645 | 74.3% | 74.6% | 75.6% |
混合数据 | 417192 | 67.2% | 68.0% | 68.9% |
如表4所示,本发明实现了一种优于现有技术的无乘法算术技术的压缩比。表4也示意了乘法编码器通常能提供最佳的压缩,因为每个无乘法设计使用一些近似值而不是实际概率,所以使用无乘法算术技术经常会降低压缩比。然而,表4所示的本发明提供了更低的计算难度和低成本的硬件实现,而且仍可实现能与基于乘法的技术相比拟的压缩比。
如图8所示,主密钥118提供给模型控制器128。模型控制器128控制RAMs 126的读写,以及频率表130的输出和到解码器124的源比特。解码器124的输出包含来自密文120的文本比特,来自主密钥118的密钥比特,以及比特“0”和“1”的一对频率计数148。模型控制器128到RAMs 126的输出为使读信号138、使写信号140、比特“0”和“1”的各自修改频率142,以及地址144。RAMs 126输出两个频率136到模型控制器128。在一个示例性实施例中,模型116使用两个时钟实现,即系统时钟和RAM时钟,目的是使模型控制器128在一个系统周期内完成到RAMs 126的读和写。
本发明也可描述为两阶段的解密。在第一阶段,随机比特从密文比特中被解码。在第一阶段,密钥的大小控制解码器124,以便模型控制器128能从解码器124接收与密钥同样大小的随机比特流。对于每个比特对(一个随机比特一个密钥比特),解密执行如下:
1)采用解码器124中的一个移位寄存器,从RAMs 126得到F0和F1;
2)如果密钥比特为0,F0加1;否则F1加1;
3)传递F0,F1到解码器124;
4)解码器124解码随机比特,并将随机比特送至模型控制器128;
5)如果随机比特为0,模型控制器128加1到F0;否则加1到F1;
6)回写F0和F1到RAMs 126,以及
7)左移位寄存器,并将当前随机比特插入到移位寄存器的最末位。
第一阶段完成后,可在RAMs 126中获得一个有用的初始频率表。
在第二阶段,解码明文12。第二阶段中,只要求一个输入,即密文120,而且对于每个输入比特,解密包含下述步骤:
1)根据移位寄存器,从RAMs 126得到F0和F1;
2)传递F0,F1到解码器124;
3)解码器124解码明文比特,并将明文比特送至模型控制器128;
4)如果明文比特为0,F0加1;否则F1加1;
5)回写F0和F1到RAMs 126,以及
6)左移寄存器,并将当前明文比特插入到移位寄存器的最末位。因此明文12将从解码器124中输出。
为解码加密的消息,可建立频率表130,而且明文120中的随机比特流可在解码开始之前恢复。解码也可以下述伪代码定义:
解密
1. while j<=n,do
●从频率表130中查找由r指定的位置。
●如果kj=1,频率1位置加1,否则频率0位置加1。
●采用当前的频率计数来解码一个随机比特l。
●如果l=1,频率1位置加1,否则频率0位置加1。
●左移位r,r=r|随机比特。
2. 解码密文120和刷新模型,如下:
●如果当前比特为1,频率1位置加1,否则频率0位置加1。
●左移位r,r=r|当前比特。
应注意的是,图1-3,6和8中的功能块可以硬件和/或软件实现。硬件/软件实现可包含处理器和产品的组合。产品可进一步包含存储介质和计算机可执行程序。计算机可执行程序可包含执行所述操作的指令。计算机可执行程序也可提供作为外部提供的传播信号的一部分。
上面已经描述了本发明,显然,本发明可通过许多方式改进。这些改进不认为是偏离本发明的精神和范围,而且,所有这些改进显然对本发明的技术人员来说,是包含在所附的权利要求书的范围之内。
Claims (26)
1.一种加密装置,包含:
一个随机数生成器,接收主密钥,使用至少一个随机数确定工作密钥,并输出该工作密钥;
一个模型,接收主密钥、工作密钥和明文,并产生至少两个频率计数;以及
一个编码器,根据工作密钥、明文以及至少两个频率计数输出密文。
2.根据权利要求书1的加密装置,其中由所述随机数生成器产生的工作密钥的长度是可变的。
3.根据权利要求书1的加密装置,其中所述编码器的输出是可变的。
4.根据权利要求书1的加密装置,其中工作密钥和主密钥不相同。
5.根据权利要求书1的加密装置,其中所述模型包含至少一个频率表,该频率表包含至少两个频率计数。
6.根据权利要求书1的加密装置,其中至少一个频率表存储在一个RAM中。
7.根据权利要求书1的加密装置,其中由所述编码器输出的加密文本是根据基于比特的处理方案。
8.根据权利要求书5的加密装置,其中至少一个频率表包含工作密钥。
9.一种加密方法,包含:
处理随机比特和密钥比特以产生至少一个频率表;以及
使用至少一个频率表编码明文。
10.根据权利要求书9的方法,其中所述处理步骤包含产生一个长度等于密钥的随机比特字符串。
11.根据权利要求书9的方法,其中的所述处理步骤中,不同的密钥比特产生至少一个不同的频率表。
12.根据权利要求书9的方法,其中所述编码步骤的输出是可变的。
13.根据权利要求书9的方法,其中由所述编码器输出的加密文本是根据基于比特的处理方案。
14.根据权利要求书11的方法,其中至少一个频率表包含工作密钥。
15.一种解密装置,包含:
一个模型,接收主密钥、工作密钥和明文,并产生至少两个频率计数;
一个解码器,根据工作密钥、主密钥、明文、至少两个频率计数输出明文,以及
一个随机数生成器,接收明文,并利用至少一个随机数确定工作密钥,以及输出工作密钥到所述模型。
16.根据权利要求书15的解密装置,其中由所述随机数生成器产生的工作密钥的长度是可变的。
17.根据权利要求书15的解密装置,其中所述解码器的输出是可变的。
18.根据权利要求书15的解密装置,其中工作密钥和主密钥不相同。
19.根据权利要求书15的解密装置,其中所述模型包含至少一个频率表,该频率表包含至少两个频率计数。
20.根据权利要求书19的解密装置,其中至少一个频率表存储在一个RAM中。
21.根据权利要求书15的解密装置,其中由所述编码器输出的加密文本是根据基于比特的处理方案。
22.根据权利要求书19的解密装置,其中至少一个频率表包含工作密钥。
23.一种解密方法,包含:
处理随机比特和密钥比特,以产生至少一个频率表;以及
采用至少一个频率表解码密文。
24.根据权利要求书23的方法,其中所述处理步骤包含产生长度等于密钥的一个随机比特字符串。
25.根据权利要求书23的方法,其中所述的处理步骤中,不同的密钥比特产生至少一个不同的频率表。
26.根据权利要求书23的方法,其中所述解码步骤的输出是可变的。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB001342665A CN100459489C (zh) | 2000-11-29 | 2000-11-29 | 可变大小的密钥以及使用该密钥的方法和装置 |
US09/725,910 US20020094080A1 (en) | 2000-11-29 | 2000-11-30 | Variable size key cipher and method and device using the same |
US11/170,900 US7664267B2 (en) | 2000-11-29 | 2005-06-30 | Bit based arithmetic coding using variable size key cipher |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB001342665A CN100459489C (zh) | 2000-11-29 | 2000-11-29 | 可变大小的密钥以及使用该密钥的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1355632A true CN1355632A (zh) | 2002-06-26 |
CN100459489C CN100459489C (zh) | 2009-02-04 |
Family
ID=4596132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB001342665A Expired - Fee Related CN100459489C (zh) | 2000-11-29 | 2000-11-29 | 可变大小的密钥以及使用该密钥的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (2) | US20020094080A1 (zh) |
CN (1) | CN100459489C (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101057436B (zh) * | 2004-11-10 | 2011-11-30 | 松下电器产业株式会社 | 数据传送装置 |
CN101916178B (zh) * | 2002-08-26 | 2013-01-02 | 睦塞德技术公司 | 以相似的效率处理任意密钥位长加密操作的方法和设备 |
CN108351833A (zh) * | 2015-12-18 | 2018-07-31 | 英特尔公司 | 用来压缩密码元数据以用于存储器加密的技术 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030188275A1 (en) * | 2002-03-27 | 2003-10-02 | Meares Lawrence G. | System and method of preventing the simulation of a circuit if a change to the circuit topology is detected |
US7190788B2 (en) * | 2002-09-13 | 2007-03-13 | Intel Corporation | Methods and apparatus for encrypting a binary string |
US7605721B2 (en) * | 2007-11-30 | 2009-10-20 | Red Hat, Inc. | Adaptive entropy coding compression output formats |
US7518538B1 (en) * | 2007-11-30 | 2009-04-14 | Red Hat, Inc. | Adaptive entropy coding compression with multi-level context escapes |
US8527500B2 (en) * | 2009-02-27 | 2013-09-03 | Red Hat, Inc. | Preprocessing text to enhance statistical features |
US8396850B2 (en) * | 2009-02-27 | 2013-03-12 | Red Hat, Inc. | Discriminating search results by phrase analysis |
US8386511B2 (en) * | 2009-02-27 | 2013-02-26 | Red Hat, Inc. | Measuring contextual similarity |
US10891659B2 (en) * | 2009-05-29 | 2021-01-12 | Red Hat, Inc. | Placing resources in displayed web pages via context modeling |
RU2595953C1 (ru) * | 2015-08-04 | 2016-08-27 | Акционерное общество "Концерн радиостроения "Вега" | Способ арифметического кодирования с шифрованием |
RU2656713C1 (ru) * | 2017-02-13 | 2018-06-06 | федеральное государственное казенное военное образовательное учреждение высшего образования "Военная академия связи имени Маршала Советского Союза С.М. Буденного" Министерства обороны Российской Федерации | Способ арифметического кодирования с шифрованием |
CN108959285B (zh) * | 2017-05-18 | 2020-12-22 | 北京京东尚科信息技术有限公司 | 数据库主键获取方法及装置、存储介质、电子设备 |
CN116865966B (zh) * | 2023-09-04 | 2023-12-05 | 中量科(南京)科技有限公司 | 基于量子密钥生成工作密钥的加密方法、装置及存储介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US1310719A (en) * | 1919-07-22 | Secret signaling system | ||
US5025258A (en) * | 1989-06-01 | 1991-06-18 | At&T Bell Laboratories | Adaptive probability estimator for entropy encoding/decoding |
US4973961A (en) * | 1990-02-12 | 1990-11-27 | At&T Bell Laboratories | Method and apparatus for carry-over control in arithmetic entropy coding |
US5297207A (en) * | 1993-05-24 | 1994-03-22 | Degele Steven T | Machine generation of cryptographic keys by non-linear processes similar to processes normally associated with encryption of data |
JP3302210B2 (ja) * | 1995-02-10 | 2002-07-15 | 富士通株式会社 | データ符号化/復号化方法及び装置 |
JPH08335040A (ja) * | 1995-06-02 | 1996-12-17 | Fujitsu Ltd | 暗号化処理方式 |
CN1249473A (zh) * | 1998-09-30 | 2000-04-05 | 朗迅科技公司 | 无乘法的算术编码 |
AU3324599A (en) * | 1999-03-16 | 2000-10-04 | Valentin Alexandrovich Mischenko | Method and apparatus for encoding and decoding information |
-
2000
- 2000-11-29 CN CNB001342665A patent/CN100459489C/zh not_active Expired - Fee Related
- 2000-11-30 US US09/725,910 patent/US20020094080A1/en not_active Abandoned
-
2005
- 2005-06-30 US US11/170,900 patent/US7664267B2/en not_active Expired - Lifetime
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101916178B (zh) * | 2002-08-26 | 2013-01-02 | 睦塞德技术公司 | 以相似的效率处理任意密钥位长加密操作的方法和设备 |
CN101057436B (zh) * | 2004-11-10 | 2011-11-30 | 松下电器产业株式会社 | 数据传送装置 |
CN108351833A (zh) * | 2015-12-18 | 2018-07-31 | 英特尔公司 | 用来压缩密码元数据以用于存储器加密的技术 |
CN108351833B (zh) * | 2015-12-18 | 2023-07-28 | 英特尔公司 | 用来压缩密码元数据以用于存储器加密的技术 |
Also Published As
Publication number | Publication date |
---|---|
US20050254646A1 (en) | 2005-11-17 |
US20020094080A1 (en) | 2002-07-18 |
CN100459489C (zh) | 2009-02-04 |
US7664267B2 (en) | 2010-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1355632A (zh) | 可变大小的密钥以及使用该密钥的方法和装置 | |
Kim et al. | Secure arithmetic coding | |
CN101677399B (zh) | 基于流密码的安全编码方案的多媒体内容编码方法和系统 | |
CN101040275A (zh) | 内容加密方法、系统和利用该加密方法通过网络提供内容的方法 | |
CN1357182A (zh) | 用于加密信息的方法以及用于实现该方法的设备 | |
RU2009105072A (ru) | Методики кодирования и декодирования цифрового видео с переменным разрешением | |
CN1663172A (zh) | 为aes rijndael分组密码产生轮次密钥 | |
CN1168041A (zh) | 加密和解密方法以及加密和解密装置 | |
CN1636343A (zh) | 密码通信方法和装置 | |
CN109547663B (zh) | 一种结合密码学的改进lsb图像隐写方法 | |
CN106230578B (zh) | 一种基于加权处理的三维Lorenz映射控制的二进制安全算术编码方法 | |
CN101035253A (zh) | 一种实现加密或解密的方法、装置及实现加密和解密的系统 | |
CN1238988C (zh) | 密钥信息生成的方法和装置、内容信息加密与解密的方法和装置 | |
CN110475038B (zh) | 一种结合最小闭包编码的字符画生成式隐藏及恢复方法 | |
CN104038767A (zh) | 一种兼容cabac的加密域h.264/avc视频数据隐藏方法 | |
CN100456668C (zh) | 信息处理方法和信息处理设备 | |
CN1108040C (zh) | 解密方法及电子装置 | |
CN1299543A (zh) | 伪随机序列发生器及有关的方法 | |
Malik et al. | A high capacity text steganography scheme based on huffman compression and color coding | |
CN108735223B (zh) | 音频文件数字水印的嵌入及提取方法及系统 | |
CN1180351C (zh) | 强化错乱的分组密码加密方法 | |
CN1190034C (zh) | 一种分组密码加密方法 | |
CN1133297C (zh) | 一种文件加密处理方法 | |
Deng et al. | An image joint compression-encryption algorithm based on adaptive arithmetic coding | |
Külekci | An ambiguous coding scheme for selective encryption of high entropy volumes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090204 Termination date: 20141129 |
|
EXPY | Termination of patent right or utility model |