CN100459489C - 可变大小的密钥以及使用该密钥的方法和装置 - Google Patents

可变大小的密钥以及使用该密钥的方法和装置 Download PDF

Info

Publication number
CN100459489C
CN100459489C CNB001342665A CN00134266A CN100459489C CN 100459489 C CN100459489 C CN 100459489C CN B001342665 A CNB001342665 A CN B001342665A CN 00134266 A CN00134266 A CN 00134266A CN 100459489 C CN100459489 C CN 100459489C
Authority
CN
China
Prior art keywords
bit stream
value
bit
frequency
frequency counting
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.)
Expired - Fee Related
Application number
CNB001342665A
Other languages
English (en)
Other versions
CN1355632A (zh
Inventor
赵风光
段成罡
苏尼尔·K·古普塔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia of America Corp
Original Assignee
Lucent Technologies Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Lucent Technologies Inc filed Critical Lucent Technologies Inc
Priority to CNB001342665A priority Critical patent/CN100459489C/zh
Priority to US09/725,910 priority patent/US20020094080A1/en
Publication of CN1355632A publication Critical patent/CN1355632A/zh
Priority to US11/170,900 priority patent/US7664267B2/en
Application granted granted Critical
Publication of CN100459489C publication Critical patent/CN100459489C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/30Compression, 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.If i=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(在图4中示意为RAMs126,在图5中示意为130)以及模型控制器128。包含在频率表130中的频率计数代表概率,如表1中所示的概率。明文12、主密钥118和工作密钥被输入到模型控制器128。随机数生成器122每个系统时钟产生一个随机比特。如图5所示,频率表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,这表明本发明中的密码不是一对一,而是可变的。
在一个优选实施例中,VHDL语言用于描述图4示意的模型控制器128和编码器114之间的行为模式。示例性的VHDL提供如下:
Figure C0013426600171
实例
本例中用于测试的参数如下:
L---编码间隔的低端:32bits,初始化为0;
H---编码间隔的高端:32bits,初始化为1;
R---编码间隔的范围:32bits,初始化为1;
V---用于解码比特流的寄存器;
2t---频率表130的大小:对频率0和1均为64k,t=15;
r---表格的地址指针寄存器:15bits。
表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 (23)

1、一种加密装置,包括:
随机数生成器,用于接收主密钥,生成随机比特流,以及基于所述主密钥和所述随机比特流输出工作密钥;
基于比特的模型,用于接收所述主密钥,接收所述工作密钥,基于所接收的明文来接收明文比特流,以及基于所述主密钥、所述工作密钥以及所述明文比特流,生成第一频率计数以及第二频率计数;以及
编码器,用于接收所述明文比特流,接收所述第一频率计数以及所述第二频率计数,基于所述第一频率计数的值以及所述第二频率计数的值,交换所述第一频率计数以及所述第二频率计数,基于所述第一频率计数的值以及所述第二频率计数的值,调整第一寄存器的值和第二寄存器的值,至少部分地根据基于比特的处理方案、所述调整后的第一寄存器的值以及所述调整后的第二寄存器的值,编码所述明文比特流,基于所述编码后的明文比特流,生成密文比特流,以及基于所述密文比特流输出密文。
2、根据权利要求1的加密装置,其中由所述随机数生成器产生的工作密钥的长度是可变的。
3、根据权利要求1的加密装置,其中所述输出的密文是可变的。
4、根据权利要求1的加密装置,其中所述工作密钥和所述主密钥不相同。
5、根据权利要求1的加密装置,其中所述模型包含至少一个频率表,所述频率表包含所述两个频率计数。
6、根据权利要求5的加密装置,其中所述至少一个频率表存储在RAM中。
7、根据权利要求5的加密装置,其中所述至少一个频率表包含所述工作密钥。
8、一种加密方法,包括:
接收明文,
基于所述接收的明文生成明文比特流,
接收主密钥,
生成随机比特流,
基于所述主密钥和所述随机比特流输出工作密钥;
配置基于比特的模型,
基于所述比特的模型、所述主密钥、所述工作密钥以及所述明文比特流,生成第一频率计数以及第二频率计数,
基于所述第一频率计数的值以及所述第二频率计数的值,交换所述第一频率计数以及所述第二频率计数,
基于所述第一频率计数的值以及所述第二频率计数的值,调整第一寄存器的值和第二寄存器的值,
基于基于比特的处理方案、所述调整后的第一寄存器的值以及所述调整后的第二寄存器的值,编码所述明文比特流,
基于所述编码后的明文比特流,生成密文比特流,以及
基于所述密文比特流输出密文。
9、根据权利要求8的方法,其中所述基于比特的处理方案包括产生长度等于工作密钥的随机比特字符串。
10、根据权利要求8的方法,其中在所述基于比特的处理方案中,不同的工作密钥比特产生至少一个不同的频率表。
11、根据权利要求8的方法,其中所述输出的密文是可变的。
12、根据权利要求10的方法,其中所述至少一个频率表包含所述工作密钥。
13、一种解密装置,包含:
随机数生成器,用于接收解码后的第一比特流,基于所述解码后的第一比特流,生成随机比特流;
基于比特的模型,用于接收主密钥,接收所述随机比特流,接收明文比特流,以及基于所述主密钥、所述随机比特流以及所述明文比特流,生成第一频率计数以及第二频率计数;以及
解码器,用于基于所接收的密文,接收密文比特流,接收所述主密钥,接收所述第一频率计数以及所述第二频率计数,基于所述第一频率计数的值以及所述第二频率计数的值,交换所述第一频率计数以及所述第二频率计数,基于所述第一频率计数的值以及所述第二频率计数的值,调整所述基于比特的模型中的第一寄存器的值和所述基于比特的模型中的第二寄存器的值,基于基于比特的处理方案、所述调整后的第一寄存器的值以及所述调整后的第二寄存器的值,解码所述密文比特流,生成所述解码后的第一比特流,基于所述解码后的密文比特流,生成所述明文比特流,以及基于所述明文比特流输出明文。
14、根据权利要求13的解密装置,其中由所述随机数生成器产生的工作密钥的长度是可变的。
15、根据权利要求13的解密装置,其中所述解码后的第一比特流是可变的。
16、根据权利要求13的解密装置,其中所述工作密钥和所述主密钥不相同。
17、根据权利要求13的解密装置,其中所述模型包含至少一个频率表,所述频率表包含所述两个频率计数。
18、根据权利要求17的解密装置,其中所述至少一个频率表存储在RAM中。
19、根据权利要求17的解密装置,其中所述至少一个频率表包含所述工作密钥。
20、一种解密方法,包括:
接收密文,
基于所述接收的密文,生成密文比特流,
接收主密钥,
生成解码后的第一比特流,
基于所述解码后的第一比特流,生成随机比特流,
配置基于比特的模型,
基于所述主密钥、所述随机比特流以及所述密文比特流,生成第一频率计数以及第二频率计数,
基于所述第一频率计数的值以及所述第二频率计数的值,交换所述第一频率计数以及所述第二频率计数,
基于所述第一频率计数的值以及所述第二频率计数的值,调整所述基于比特的模型中的第一寄存器的值和所述基于比特的模型中的第二寄存器的值,
基于基于比特的处理方案、所述调整后的第一寄存器的值以及所述调整后的第二寄存器的值,解码所述密文比特流,
基于所述解码后的密文比特流,生成所述明文比特流,
基于所述明文比特流输出明文。
21、根据权利要求20的方法,其中所述基于比特的处理方案包含产生长度等于密钥的随机比特字符串。
22、根据权利要求20的方法,其中在所述基于比特的处理方案中,不同的密钥比特产生至少一个不同的频率表。
23、根据权利要求20的方法,其中所述解码后的第一比特流是可变的。
CNB001342665A 2000-11-29 2000-11-29 可变大小的密钥以及使用该密钥的方法和装置 Expired - Fee Related CN100459489C (zh)

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 CN1355632A (zh) 2002-06-26
CN100459489C true 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)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
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
US7451326B2 (en) * 2002-08-26 2008-11-11 Mosaid Technologies, Inc. Method and apparatus for processing arbitrary key bit length encryption operations with similar efficiencies
US7190788B2 (en) * 2002-09-13 2007-03-13 Intel Corporation Methods and apparatus for encrypting a binary string
CN101057436B (zh) * 2004-11-10 2011-11-30 松下电器产业株式会社 数据传送装置
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
US8396850B2 (en) * 2009-02-27 2013-03-12 Red Hat, Inc. Discriminating search results by phrase analysis
US8527500B2 (en) * 2009-02-27 2013-09-03 Red Hat, Inc. Preprocessing text to enhance statistical features
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 Акционерное общество "Концерн радиостроения "Вега" Способ арифметического кодирования с шифрованием
US10025956B2 (en) * 2015-12-18 2018-07-17 Intel Corporation Techniques to compress cryptographic metadata for memory encryption
RU2656713C1 (ru) * 2017-02-13 2018-06-06 федеральное государственное казенное военное образовательное учреждение высшего образования "Военная академия связи имени Маршала Советского Союза С.М. Буденного" Министерства обороны Российской Федерации Способ арифметического кодирования с шифрованием
CN108959285B (zh) * 2017-05-18 2020-12-22 北京京东尚科信息技术有限公司 数据库主键获取方法及装置、存储介质、电子设备
CN116865966B (zh) * 2023-09-04 2023-12-05 中量科(南京)科技有限公司 基于量子密钥生成工作密钥的加密方法、装置及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08335040A (ja) * 1995-06-02 1996-12-17 Fujitsu Ltd 暗号化処理方式

Family Cites Families (7)

* Cited by examiner, † Cited by third party
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 富士通株式会社 データ符号化/復号化方法及び装置
CN1249473A (zh) * 1998-09-30 2000-04-05 朗迅科技公司 无乘法的算术编码
EP1169806A1 (en) * 1999-03-16 2002-01-09 Valentin Alexandrovich Mischenko Method and apparatus for encoding and decoding information

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08335040A (ja) * 1995-06-02 1996-12-17 Fujitsu Ltd 暗号化処理方式

Also Published As

Publication number Publication date
US20050254646A1 (en) 2005-11-17
CN1355632A (zh) 2002-06-26
US20020094080A1 (en) 2002-07-18
US7664267B2 (en) 2010-02-16

Similar Documents

Publication Publication Date Title
CN100459489C (zh) 可变大小的密钥以及使用该密钥的方法和装置
Nasution et al. Data security using vigenere cipher and goldbach codes algorithm
Kim et al. Secure arithmetic coding
KR100471738B1 (ko) 데이타의암호화방법및장치
CN101677399B (zh) 基于流密码的安全编码方案的多媒体内容编码方法和系统
US5696826A (en) Method and apparatus for encrypting and decrypting information using a digital chaos signal
AU2008327506B2 (en) Method and system for encryption of data
US5671284A (en) Data encryptor having a scalable clock
EP0802653A2 (en) Multi-cycle non-parallel data encryption engine
JP2005504348A (ja) データセキュリティーの暗号体系
EP0722642A1 (en) Multistream encryption system for secure communication
WO2006121149A1 (ja) 擬似乱数発生システム、暗号化システム及び復号化システム
Dai et al. Text Steganography System Using Markov Chain Source Model and DES Algorithm.
Geetha et al. Tamilian cryptography: an efficient hybrid symmetric key encryption algorithm
CN1286077C (zh) 基于动态变长码的数据加密与解密系统
CN113300840B (zh) 一种联合汉明码的数据随机加密通信方法
US6301361B1 (en) Encoding and decoding information using randomization with an alphabet of high dimensionality
KR101584127B1 (ko) 거부적 암호화 시스템 및 방법
US20040223609A1 (en) Data encryption method
CN112769545A (zh) 基于相邻像素约瑟夫变换和Mealy状态机的图像加密方法
WO2009015979A2 (en) Method, computerized device and computer program for efficient and low power encrypting or decrypting of data
Mukesh et al. Enhancing AES algorithm with arithmetic coding
CN100359494C (zh) 电子文件字符内码变换加密方法
CN101216868A (zh) 一种应用混沌密码流加密的方法和系统
Al-Jarrah et al. Word-based encryption algorithm using dictionary indexing with variable encryption key length

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