CN1286077C - 基于动态变长码的数据加密与解密系统 - Google Patents

基于动态变长码的数据加密与解密系统 Download PDF

Info

Publication number
CN1286077C
CN1286077C CN 200410025874 CN200410025874A CN1286077C CN 1286077 C CN1286077 C CN 1286077C CN 200410025874 CN200410025874 CN 200410025874 CN 200410025874 A CN200410025874 A CN 200410025874A CN 1286077 C CN1286077 C CN 1286077C
Authority
CN
China
Prior art keywords
character
state
value
plaintext
key
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
CN 200410025874
Other languages
English (en)
Other versions
CN1560823A (zh
Inventor
李春林
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.)
Beijing Tangheng Technology Development Co., Ltd.
Original Assignee
李春林
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 李春林 filed Critical 李春林
Priority to CN 200410025874 priority Critical patent/CN1286077C/zh
Publication of CN1560823A publication Critical patent/CN1560823A/zh
Application granted granted Critical
Publication of CN1286077C publication Critical patent/CN1286077C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

本发明涉及信息技术领域中的信息安全技术,具体地涉及二进制编码数据的加密和解密,本发明属于序列密码加密系统,其实质是无周期的多表密码代替方法,加密时采用动态变长码编码技术,固定长度(8比特)的一组输入数据,输出编码的长度在1~255比特之间,密文的长短是变长码编码器根据系统的状态所决定的,每加密一组明文后系统的状态都要发生变化,而系统的初始状态是由用户密钥所决定,密码分析者由于难于确定密文与明文的对应关系,从而能有效抵抗各种系统分析的攻击方法。

Description

基于动态变长码的数据加密与解密系统
技术领域
本发明涉及信息技术领域中的信息安全技术,具体地涉及二进制编码数据的加密与解密。
背景技术
密码技术是信息安全技术中的核心技术,它主要包括加密技术、认证技术和密钥管理三大技术。加密技术是实现信息保密的重要手段。所谓加密就是使用数学的方法重新编码原始数据,使得除了合法的接收者(使用正确的密钥)外,其它任何人要想恢复原先的“消息”——明文,或读懂变化后的“消息”——密文,都是非常困难的。根据加密和解密时所用的密钥是否相同,可将密码体系分为对称密码体系与公钥密码体系。本发明属于对称密码体系。在对称密码体系中,对信息加密的算法可分为两大类:(1)是分组加密算法,该类算法的基本思想是将明文以64比特(或其它固定长度)为一组,在密钥的作用下,通过多轮置换和迭代,输出64比特的密文。分组加密算法可视为大字符集上的置换加密算法。著名的分组加密算法有DES和IDEA等。(2)是序列密码算法,其核心思想是设计一个随机序列产生器,该随机序列产生器在用户密钥的作用下,生成随机的密钥流,将密钥流与明文流作模2加法,从而形成密文流。序列密码可以看成是多表密码的一种,如果密码的周期不大,它将非常类似于维吉利亚(Vigenere)密码。随机序列一般通过反馈移位寄存器来产生。
对一组信源的编码,既可采用定长码,也可采用变长码。采用定长码时便于接收端的译码,而采用变长码是为了提高信号的传输效率或减少信息的储存空间。变长编码广泛应用于数据压缩系统中,如著名的霍夫曼(Huffman)编码便是可变字长编码的一种。为了保证解码时的唯一性,变长码编码时必须符合“前缀编码”的要求,即较短的编码决不能是较长编码的前缀。二叉树是构造变长码最理想的选择。要编码的字符总是出现在树叶上,假定从根向树叶行走的过程中,左转为0,右转为1,则一个字符的编码就是从根走到该字符所在树叶的路径。
发明内容
本发明的目的是提供一种对二进制数据加密与解密的设备;
本发明的另一个目的是提供一种基于动态变长码的数据加密与解密系统;
本发明的另一个目的是提供一种基于本系统方法的计算机软件或硬件设备。
一种对二进制数据加密的设备,包括:
一个系统初态生成器,用于产生系统初始状态时各字符的度值;
一个伪随机数发生器,用于产生256比特的随机数;
一个变长码编码器,用于将输入的明文字符用变长码编码输出;
一个系统状态转换器,用于系统状态的自动转换。
其中所述的系统初态生成器主要包括256比特用户密钥存贮单元、系统选定的16阶幻方数据的存贮单元和各字符度值的存贮单元;各字符的度值由256比特用户密钥形成的16阶方阵K16与系统选定的16阶幻方C16按矩阵相乘的方法而得到。
其中所述的系统初态生成器中256比特用户密钥的生成规则是:本系统中用户的密钥长为256比特,即选取32个键盘上可输入字符(ASCII值从32至126)作为密钥,如果用户密钥多于32个字符,系统只选取前32个字符;如果少于32个字符,则系统按如下规则将密钥补充为32个字符:首先重复用户的密钥到32位长,然后将补充部分字符的ASCII值增加一个递增的量。
其中所述的伪随机数发生器用来产生256比特的随机数,伪随机数可用线形拟合生成器或较安全的BBS方法产生。
其中所述的变长码编码器可选用霍夫曼编码方法、香农一法诺编码方法、范式霍夫曼编码方法或其它易于用软件或硬件实现的变长码编码方法。
其中所述的系统状态转换器包括一个固定值M和M个存贮单元,用于存贮M个度值的增加量Delta(i),i=0,1,2,3...M-1;当前输入明文字符的度值整除M后的余数为m,则当前输入明文字符度值的增加值为Delta(m)。
一种对二进制数据解密的设备,包括:
一个系统初态生成器,用于产生系统初始状态时各字符的度值;
一个变长码解码器,用于将输入的密文序列进行解码。
一个系统状态转换器,用于系统状态的自动转换。
这里的系统初态生成器和系统状态转换器与加密设备中的完全相同,而变长码解码器则是与加密设备中的变长码编码器相匹配的解码器。
一种对二进制数据进行加密与解密的系统,包括:
一个对二进制数据加密的设备和一个对二进制数据解密的设备。
其中所述加密设备的工作过程是:系统初态生成器根据输入的用户密钥,生成系统的初始状态;伪随机数生成器产生256比特的随机数,每8比特为一组,通过变长码编码器编码输出;每加密一组随机数后,通过系统状态转换器使系统的状态发生改变,然后再加密下一组随机数,当32组随机数加密完成后,将这256比特的随机数视作用户密钥而生成新的系统初态;明文序列每8比特为一组,通过变长码编码器编码输出;每加密一组明文信息后,通过系统状态转换器使系统的状态发生改变,直到所有明文都加密完毕。
其中所述的解密设备的工作过程是:系统初态生成器根据输入的用户密钥,生成系统的初始状态,逐位输入密文序列,通过变长码解码器进行解码,每解码得出一组随机数后,通过系统状态转换器使系统的状态发生改变;当解码得到最前面的32组随机数(256比特)后,由这256比特的随机数形成新的系统初始状态,然后再逐位输入密文序列,通过变长码解码器进行解码,每解码得出一组明文信息,通过系统状态转换器使系统的状态发生相应的改变,直到所有密文解码完成。
本发明属于序列密码加密系统,其实质是无周期的多表密码代替方法。主要特征有如下三点:(1)是对固定长度(本系统设定为8比特)的一组明文信息加密后,生成的密文长度在1~255比特之间,密文的长短是变长码编码器根据系统的状态所决定的。(2)是伪随机数发生器产生256比特的随机数,这些随机数并不在明文中出现,用户密钥生成的系统初态用来加密这些随机数,而由这些随机数生成的系统初态,才是真正用来加密明文信息的。(3)系统的状态每加密一组随机数或明文后都要发生变化,而系统的初始状态是由用户密钥所决定的。系统状态的转换只依赖于当前输入明文字符的度。
由于难于确定密文与明文的对应关系,从而能有效抵抗各种系统分析的攻击方法,使系统具有更好的安全性。
附图说明
图1是加密过程示意图。
图2是解密过程示意图。
具体实施方式
下面结合具体实施方式,对本发明的内容做进一步的说明。
1.加密与解密设备,包括:
1.1系统初态生成器:系统状态的自动转换是本系统的核心。待加密的明文每8比特为一组,故有28=256种不同的字符,为了说明“系统状态”这个概念,先定义字符的“度”这个量。字符的“度”(用符号D表示),是与该字符在明文中的出现次数相关的一个量,其初值由用户密钥所决定。字符每出现一次,该字符的D就增加某个特定的值,增加的值由上一时刻该字符的D决定。256个字符按各自的D从大到小排列以后,字符的排列顺序和D值的排列顺序,就唯一确定了“系统状态”。只有当字符的排列顺序和D值的排列顺序完全相同时,系统才处于同一种状态。
本系统中用户的密钥为256比特,即可选取32个键盘上可输入字符(ASCII值从32至126)作为密钥。如果用户密钥多于32个字符,系统只选取前32个字符;如果少于32个字符,则系统按如下规则将密钥补充为32个字符:首先重复用户的密钥到32个字符,然后将补充部分字符的ASCII值增加一个递增的量(不超过4)。例如递增量为1时,补充部分第1个字符的ASCII值加1,第2个字符的加2,...,第31个字符加31。将补充部分的字符变换为与用户密钥不同的字符,以增加密钥的随机特性。
将256比特的用户密钥按某种较为混乱的方式生成16阶的密钥方阵K16。方阵生成的方式可以自由选择,以16比特密钥为一组,则每组密钥必须在方阵中处于不同的行和不同的列中。
决定系统初始状态还需要另外一个较为特殊的方阵C16,即16阶幻方。所谓n阶幻方,就是将1至n2的自然数(或其它n2个相连的自然数)填入n乘n的方格中,使方格中每行数之和、每列数之和、对角线上数之和都相等。16阶幻方的数量非常巨大,可任意选择一个供系统使用。将用户密钥形成的方阵K16和系统幻方C16,按矩阵相乘的方法得到另一方阵S16,S16中的值就是系统初始时刻256个字符的“度”。每个字符的D值确定了,系统的初始状态也就随之确定了。
1.2(伪)随机数发生器:随机数真正的唯一来源涉及到测量物理现象,譬如,放射性衰变的计时,电子线路的白噪声等。由于难以获得真正的随机数,实际应用时都用伪随机数生成器(PRNG)来产生随机数据。伪随机数生成器是一个生成完全可预料的数列(称为流)的确定性程序。由伪随机数生成器返回的每一个值完全由它的前一个值所决定(第一个数,即种子决定了一切)。一个编写得很好的的PRNG可以创建一个序列,而这个序列的属性与许多真正随机数的序列的属性是一样的。例如:可以以相同几率在一个范围内生成任何数字;可以生成带任何统计分布的流;生成的数字流不具备可辨别的模式。
常用的伪随机数生成器是属于线形拟合生成器一类的。这类生成器相当普遍,它们采用的数学公式为:
Xn+1=(aXn+b)modC
即第n+1个数等于第n个数乘以某个常数a,再加上常数b。如果结果大于或等于某个常数c,那么通过除以c,并取它的余数来将这个值限制在一定范围内。式中a、b和c通常是质数。
伪随机数生成器也可选用安全但计算量较大的BBS方法:选取2个模4余3的质数p和q,n等于p乘以q,随机选取的初始值s0为属于关于n的平方剩余QRn类中的任一元素,利用公式:
S i = S i - 1 2 mod n i = 1,2 , . . . ,
产生一序列z1,z2,...
其中zi≡si mod 2  i=1,2,...
本系统引入256比特的随机数,其主要目的有两个:一是希望达到一次一密的加密效果,二是增加选择明文攻击的难度。用户密钥生成的系统初态,用来加密256比特的随机数据,随机数并不在明文中出现。将这些随机数视作用户密钥而生成的系统初态,才是真正用来加密明文信息的。因此,当用户密钥不变时,即使对同一份明文加密多次,每一次的加密结果都是完全不同的。引入256比特的随机数后,理论上需要产生2128个(约3.4×1038)随机数,才能使两组随机数完全一样的概率大于0.5。因此,这将大大增加密码分析者采用选择明文攻击时的工作难度。
1.3变长码编码器:本系统的另一个核心部件就是变长码编码器。输入一组(8比特)待编码的明文,编码器根据系统当前所处的状态,输出一定比特的数据作为输入明文的变换结果。如果输入明文在系统中的D值较高,则输出的编码长度小于8,反之,则输出的编码长度大于8。如果将系统中各字符的D值视作该字符的出现频率,则可采用霍夫曼编码或香农—法诺(Shannon-Fano)编码作为变长码编码器,但这两种编码器的编码速度可能较慢。本加密系统是开放式的结构,也可选用其它工作方式的变长码编码器。如下面要介绍的范式霍夫曼编码(Canonical Huffman Code)。
范式Huffman编码的基本思路是:编码只要符合以下两个条件:(1)是前缀编码;(2)某一字符编码长度和使用二叉树建立的该字符的编码长度相同,这样的编码都可以叫做Huffman编码。构造范式Huffman编码的方法大致是:
①统计所有待编码符号的出现频率并排序。
②根据这些频率信息求出该符号在传统Huffman编码树中的深度,也就是表示该符号所需要的位数。因为重要的是该符号在树中的深度,故没有必要构造整棵二叉树。求每个符号在传统Huffman编码树中深度的具体方法为:第1步:按字符的出现频率排升序,即出现频率最小的序号为1,出现频率最大的序号为n(设共有n个字符),初始编码长度都为0,初始出现频率为各自的出现频率值。
第2步:序号为1和2的符号,编码长度增加1;出现频率改变为2个符号出现频率之和。
第3步:所有序号值大于1的字符都将序号值减去1;
第4步:重新按符号的出现频率排升序(序号值相同的为一组)。若所有符号的序号值都为1,则计算过程结束,否则转第2步。
例如:有8个字符A、B、C、D、E、F、G、H,各自的出现频率分别为0.04,0.05,0.16,0.2,0.25,0.12,0.1,0.08,则计算过程如下表所示。
③分别统计各个长度的编码对应了多少个符号,从最大长度开始编码。设出现频率最小字符的编码长度为MaxLen,则该字符编码为MaxLen个0,其它同样长度的编码逐个加1;对编码长度小于MaxLen的字符,则选择的编码不能为长度较长编码的前缀。例如上例,编码长度为5的符号有2个,长度为4的有1个,长度为3的有3个,长度为2的有2个,按出现频率排升序为A B H G F CD E,则分配的编码依次为:A=00000,B=00001,H=0001,G=001,F=010,C=011,D=10,E=11。
系统也可以选用其它易于用软件或硬件实现的变长码编码器。
1.4变长码解码器:变长码解码器是与系统选定的变长码编码器相对应的,在设计编码器时也就相应地设计好了与之匹配的解码器。
1.5系统状态转换器:如果系统的状态不发生改变,即对同一明文输出相同的密文,则系统只是一个简单代替变换,很容易被攻破。系统状态的转换只依赖于当前输入明文字符的度。系统设定某个固定的值M和M个D值的增加量Delta(M),当前输入明文字符的D值整除M后的余数为m,则当前输入明文字符D值的增加值为Delta(m)。系统根据各字符的D值重新排序后,系统的状态就发生了变化。
2.加密示例
为简单起见,将明文字符以4比特为一组,共可组成16个字符,用十六进制符号0,1,...,F来表示。系统初始状态的生成过程在这里不详细描述。现假定系统初始时刻各字符的度D0,D1,...,DF分别为28,39,55,16,72,62,43,22,19,35,58,49,31,67,27,40,待加密的字符串为“Are you ready?Let’s go.”用ASCII来编码,则明文字符用16进制符号可表示为41726520796F752072656164793F204C6574277320676F2E。变长码编码器采用香农一法诺编码,字符D值小的位于左子树,字符D值大的位于右子树,左子树编码为0,右子树编码为1。系统状态转换器中字符D值增加量设为8个,Delta(0)~Delta(7)分别为3,5,7,9,11,13,17,19,23。设当前字符的度为Di,m=Di mod 8,则Di+1=Di+Delta(m)。
系统状态的转换及编码的输入输出结果如下表所示。
  序号   输入字符                                                                           系统状态   输出二进制码
  D0   D1   D2   D3   D4   D5   D6   D7   D8   D9   DA   DB   DC   DD   DE   DF
  1   4   28   39   55   16   72   62   43   22   19   35   58   49   31   67   27   40   111
  2   1   28   39   55   16   75   62   43   22   19   35   58   49   31   67   27   40   0100
  3   7   28   62   55   16   75   62   43   22   19   35   58   49   31   67   27   40   00010
  4   2   28   62   55   16   75   62   43   41   19   35   58   49   31   67   27   40   1000
  5   6   28   62   78   16   75   62   43   41   19   35   58   49   31   67   27   40   0101
  6   5   28   62   78   16   75   62   54   41   19   35   58   49   31   67   27   40   1001
  7   2   28   62   78   16   75   81   54   41   19   35   58   49   31   67   27   40   110
  8   0   28   62   97   16   75   81   54   41   19   35   58   49   31   67   27   40   00011
  9   7   41   62   97   16   75   81   54   41   19   35   58   49   31   67   27   40   0100
  10   9   41   62   97   16   75   81   54   46   19   35   58   49   31   67   27   40   00100
  11   6   41   62   97   16   75   81   54   46   19   46   58   49   31   67   27   40   0110
  12   F   41   62   97   16   75   81   73   46   19   46   58   49   31   67   27   40   00100
  13   7   41   62   97   16   75   81   73   46   19   46   58   49   31   67   27   43   0011
  14   5   41   62   97   16   75   81   73   65   19   46   58   49   31   67   27   43   110
  15   2   41   62   97   16   75   86   73   65   19   46   58   49   31   67   27   43   111
  16   0   41   62   102   16   75   86   73   65   19   46   58   49   31   67   27   43   00100
  17   7   46   62   102   16   75   86   73   65   19   46   58   49   31   67   27   43   0111
  18   2   46   62   102   16   75   86   73   70   19   46   58   49   31   67   27   43   111
  19   6   46   62   121   16   75   86   73   70   19   46   58   49   31   67   27   43   1001
  20   5   46   62   121   16   75   86   78   70   19   46   58   49   31   67   27   43   110
  21   6   46   62   121   16   75   105   78   70   19   46   58   49   31   67   27   43   101
  22   1   46   62   121   16   75   105   97   70   19   46   58   49   31   67   27   43   0110
  23   6   46   81   121   16   75   105   97   70   19   46   58   49   31   67   27   43   101
  24   4   46   81   121   16   75   105   102   70   19   46   58   49   31   67   27   43   1000
  25   7   46   81   121   16   86   105   102   70   19   46   58   49   31   67   27   43   0111
  26   9   46   81   121   16   86   105   102   89   19   46   58   49   31   67   27   43   0011
  27   3   46   81   121   16   86   105   102   89   19   65   58   49   31   67   27   43   000000
  28   F   46   81   121   19   86   105   102   89   19   65   58   49   31   67   27   43   00100
  29   2   46   81   121   19   86   105   102   89   19   65   58   49   31   67   27   54   111
  30   0   46   81   126   19   86   105   102   89   19   65   58   49   31   67   27   54   00011
  31   4   65   81   126   19   86   105   102   89   19   65   58   49   31   67   27   54   1000
  32   C   65   81   126   19   105   105   102   89   19   65   58   49   31   67   27   54   00010
  33   6   65   81   126   19   105   105   102   89   19   65   58   49   54   67   27   54   1001
  34   5   65   81   126   19   105   105   121   89   19   65   58   49   54   67   27   54   101
  35   7   65   81   126   19   105   110   121   89   19   65   58   49   54   67   27   54   1000
  36   4   65   81   126   19   105   110   121   94   19   65   58   49   54   67   27   54   1001
  37   2   65   81   126   19   110   110   121   94   19   65   58   49   54   67   27   54   111
  38   7   65   81   145   19   110   110   121   94   19   65   58   49   54   67   27   54   1000
  39   7   65   81   145   19   110   110   121   113   19   65   58   49   54   67   27   54   101
  40   3   65   81   145   19   110   110   121   118   19   65   58   49   54   67   27   54   000000
  41   2   65   81   145   30   110   110   121   118   19   65   58   49   54   67   27   54   111
  42   0   65   81   150   30   110   110   121   118   19   65   58   49   54   67   27   54   0100
  43   6   70   81   150   30   110   110   121   118   19   65   58   49   54   67   27   54   110
  44   7   70   81   150   30   110   110   126   118   19   65   58   49   54   67   27   54   101
  45   6   70   81   150   30   110   110   126   137   19   65   58   49   54   67   27   54   101
  46   F   70   81   150   30   110   110   145   137   19   65   58   49   54   67   27   54   00100
  47   2   70   81   150   30   110   110   145   137   19   65   58   49   54   67   27   73   111
  48   E   70   81   169   30   110   110   145   137   19   65   58   49   54   67   27   73   000001
由上表可见,对同一输入字符,输出的二进制编码既可能相同,也可能不同,编码长度也不尽相同。而不同的输入字符在不同的状态下,却有可能输出相同的二进制代码。
3.加密过程
如图1所示,用户输入密钥后,开关K1接通,通过系统初态生成器形成系统的初始状态,然后K1断开,K2接通;伪随机数发生器产生256比特的随机数,每8比特为一组,通过变长码编码器编码输出,系统状态转换器根据输入字符的不同而使系统的状态发生相应的变化,然后再加密下一组随机数。当32组随机数加密完成后,开关K2断开,K3接通,将这些随机数视作用户密钥,通过系统初态生成器产生新的系统初态。开关K3断开,K4接通,根据新的系统初始状态来加密第一组明文。每加密一组明文后系统状态转换器使系统的状态发生相应的改变,然后再加密下一组明文信息,直到所有明文加密完毕,加密过程结束。
4.解密过程
如图2所示,用户输入密钥后,开关K1接通,通过系统初态生成器形成系统的初始状态。然后K1断开,K2接通,逐位输入密文序列,通过变长码解码器进行解码。当解码得到32组数据(256比特)后,开关K2断开,K3接通。这最前的32组数据是系统加密时添加的随机数,将这256比特随机数视作用户密钥,通过系统初态生成器产生新的系统初态。然后开关K3断开,K2接通,逐位输入密文序列,通过变长码解码器进行解码。每解码得出一组明文信息,系统状态转换器使系统的状态发生相应的改变,直到所有密文解密完成。加密和解密系统中系统初态生成器、系统状态转换器是完全相同的。
5.系统安全性分析
(1)本加密系统对唯密文攻击是安全的。唯密文攻击利用了自然语言中的冗余信息在密文中仍然得到保留这一弱点。本系统在攻击者只有若干密文的情况下,无法确定每一组明文对应的密文长度,且本系统属于无周期的多表密码代替方法,同一组明文所对应的密文既可能相同,也可能不相同,因此,无法运用统计分析的方法得出明文消息。事实上,用本系统对同一份长度为几万字节的二进制文件加密,每次加密时的密钥也相同,试验时产生的几千个加密文件其长度几乎都不相同,最长与最短者相差几千字节。即使两个密文文件的长度相同,其中的内容也几乎全不相同。因此,面对两份密文文件,唯密文攻击者无法确定两者是明文相同而密钥不同、还是明文不同而密钥相同、或者明文与密钥都不相同。(2)本加密系统对已知明文攻击是安全的。当攻击者知道了一部分密文所对应的明文时,便可通过分析密文与明文的对应关系,企图得出用户的密钥或解密用同一密钥加密的文件。本系统由于引入了256比特的随机数,而这些随机数并不出现在明文中。攻击者通过分析得出的只是由这些随机数生成的初始状态的部分信息,无法进一步得到由用户密钥生成的系统初态的信息,从而无法通过进一步分析得到用户的密钥。(3)本加密系统对选择明文攻击也是安全的。引入256比特的随机数后,理论上需要产生2128(约3.4×1038)个随机数,才能使两组随机数完全一样的概率大于0.5。攻击者通过巨量的选择明文分析,有可能得到由初始状态生成的二叉树的结构信息,但由二叉树的结构反推出系统初态各字符的D值,是非常困难甚至是不可能的事情。不能确定系统初始时刻各字符的D值,就不能反推出用户的密钥。因此,本系统对选择明文攻击也是计算上安全的。(4)本系统对穷举密钥攻击也是计算上安全的。本系统的用户密钥长度为32个ASCII字符,即长度为256比特,但由于健盘输入的限制,可供用户输入的密钥字符只有95个(即ASCII值从32到126),可组成的用户密钥数为9532(约为1.9×1063)个。即使动用全世界的计算能力,再考虑到未来计算能力的迅速增长,每秒钟能破译的密钥数量假定为1030个,每年能破译的密钥数量为3.2×1037,则穷举一半用户密钥仍需2.9×1025年。因此,本系统对穷举密钥攻击也是计算上安全的。
本发明既可编成程序以软件方式实现二进制数据的加密与解密功能,也可制作成芯片以硬件的方式实现数据的加密与解密功能。本发明作为一种加密体系,可以有多种具体的实现方式,具有较好的开放性和可变性。例如,在系统初态生成器的具体实现中,由用户256比特密钥生成密钥方阵K16时,每一位密钥在方阵中的位置都是可变的。即使用户密钥不变,但生成密钥方阵K16的规则发生了改变,产生的系统初态也相应地发生改变,从而产生完全不同的加密结果。在系统初态生成器的具体实现中,另一个可以改变的是系统选定的16阶幻方C16。16阶幻方的具体数目非常巨大,人们目前还不能完全计算出来。选择不同的幻方,由同一用户密钥生成的系统初态也完全不同。更换系统初态生成器,将会使密码分析者的所有工作前功尽弃。本系统的开放性还体现在可以选择多种形式的变长码编码器和解码器。例如,若需要相邻两个状态的编码有较大的变化,可以选用霍夫曼编码器;若需要编码和解码的速度较快,可以选用前面所述的范式霍夫曼编码器,或其它形式的变长码编码器。不同的编码器对由同一密钥和同一明文产生的结果都是不一样的。本系统的可变性也体现在系统状态转换器的具体实现上。系统设定的某个固定值M和M个D值的增加量Delta(M)是可变的:M值越大,系统状态的可能变化值也越多,密码分析者的困难也越大;Delta(i)值越大,系统状态转换时产生影响的字符数也越多,相邻状态间的编码变化也越多。总之,本系统在具体实施过程中,可以根据实际的限制因素选择最合适的实现方式。

Claims (5)

1.一种对二进制数据加密的设备,其特征是该设备包括:
一个系统初态生成器,即根据用户密钥生成加密系统中各明文字符的‘度’值,各字符的度值由用户密钥形成的方阵K16与系统选定的幻方C16按矩阵相乘的方法而得到;
一个变长码编码器,即根据系统在第i时刻的状态和输入的明文字符,输出明文所对应的变长码作为该明文加密后的密文;
一个系统状态转换器,用于系统状态的自动转换,即包括一个固定值M和M个存贮单元,用于存贮M个度值增加量Delta(i),i=0,1,...M-1,当前输入明文字符的度值整除M后的余数为m,则当前输入明文字符度值的增加值为Delta(m);每加密一个明文字符后,都要增加该明文字符的‘度’值,如果还有明文需要加密,则再输入一个明文字符,由变长码编码器根据系统新的状态对明文进行编码,输出的变长码即为密文,然后通过系统状态转换器改变系统的状态,直到整个加密过程结束;
一个能产生随机数的伪随机数发生器,伪随机数可用线性拟合生成器或较安全的BBS方法产生。
2.一种对二进制数据解密的设备,其特征是该设备包括:
一个系统初态生成器,即根据用户密钥生成加密系统中各明文字符的‘度’值,各字符的度值由用户密钥形成的方阵K16与系统选定的幻方C16按矩阵相乘的方法而得到;
一个变长码解码器,与加密设备中的变长码编码器相匹配,根据系统中各字符的度值,逐比特输入密文序列进行解码,解码得出的字符即为原明文字符;
一个系统状态转换器,用于系统状态的自动转换,即包括一个固定值M和M个存贮单元,用于存贮M个度值增加量Delta(i),i=0,1,...M-1,当前输入明文字符的度值整除M后的余数为m,则当前输入明文字符度值的增加值为Delta(m);每解密得出一个明文字符后,都要增加该明文字符的度值,如果还有密文需要解密,则再输入一个密文字符,由变长码解码器根据系统新的状态对密文进行解码,输出的变长码即为明文,然后通过系统状态转换器改变系统的状态,直到整个解密过程结束。
3.根据权利要求1或2所述的二进制数据加密或解密的设备,其特征是当输入明文字符比特数小于等于8时,所述的系统初态生成器包括256比特用户密钥存贮单元、系统选定的16阶幻方数据的存贮单元、各字符度值的存贮单元和矩阵乘法器。
4.根据权利要求1或2所述的二进制数据加密或解密的设备,其特征是所述的系统初态生成器用户密钥的生成规则是:当输入明文字符比特数小于等于8时,系统中用户的密钥长为256比特,即选取32个键盘上可输入字符作为密钥;如果用户密钥多于32个字符,系统只选取前32个字符;如果少于32个字符,则系统按如下规则将密钥补充为32个字符:首先重复用户的密钥到32位长,然后将补充部分字符的ASCII值增加一个递增的量。
5.根据权利要求1所述的二进制数据加密设备,其特征是所述的变长码编码器可选用霍夫曼编码方法、香农—法诺编码方法、范式霍夫曼编码方法或其它易于用软件或硬件实现的变长码编码方法。
CN 200410025874 2004-02-19 2004-02-19 基于动态变长码的数据加密与解密系统 Expired - Fee Related CN1286077C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200410025874 CN1286077C (zh) 2004-02-19 2004-02-19 基于动态变长码的数据加密与解密系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200410025874 CN1286077C (zh) 2004-02-19 2004-02-19 基于动态变长码的数据加密与解密系统

Publications (2)

Publication Number Publication Date
CN1560823A CN1560823A (zh) 2005-01-05
CN1286077C true CN1286077C (zh) 2006-11-22

Family

ID=34441158

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200410025874 Expired - Fee Related CN1286077C (zh) 2004-02-19 2004-02-19 基于动态变长码的数据加密与解密系统

Country Status (1)

Country Link
CN (1) CN1286077C (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109412785A (zh) * 2018-10-23 2019-03-01 江苏华存电子科技有限公司 一种频率切换驱动aes加密系统保护旁道攻击的方法
CN113595717A (zh) * 2020-04-30 2021-11-02 比亚迪股份有限公司 Ecb模式分组加密方法和解密方法及控制装置和车辆

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1829142B (zh) * 2005-03-02 2010-09-29 中国科学院软件研究所 一种强化密钥流序列的方法
CN101471769B (zh) * 2007-12-28 2011-12-28 北京大唐高鸿数据网络技术有限公司 一种适于VoIP媒体传输的加解密方法
CN103684760B (zh) * 2012-09-24 2018-12-07 腾讯科技(深圳)有限公司 通信的加密和解密的方法、装置及系统
CN102983972B (zh) * 2012-10-18 2015-06-10 吉林大学珠海学院 基于流密码的动态加密解密方法
CN103942501B (zh) * 2014-05-11 2017-01-18 西安科技大学 一种哈希密文再加密方法及再加密后的解密方法
CN103942500B (zh) * 2014-05-11 2017-02-22 西安科技大学 基于噪声的哈希密文再加密方法及再加密后的解密方法
CN106790207B (zh) * 2017-01-05 2020-03-17 唐常芳 一种流媒体信息安全保障方法及系统
CN109120273A (zh) * 2018-08-29 2019-01-01 重庆物奇科技有限公司 基于霍夫曼编码的编码装置、译码装置及系统
CN109104199A (zh) * 2018-08-29 2018-12-28 重庆物奇科技有限公司 基于霍夫曼编码的编码方法、译码方法及应用
CN110602498B (zh) * 2019-09-20 2022-03-01 唐驰鹏 一种自适应有限状态熵编码的方法
CN111309987B (zh) * 2019-10-31 2022-05-31 苏州浪潮智能科技有限公司 一种实际攻击场景下加密算法识别方法及装置
CN113595721A (zh) * 2020-04-30 2021-11-02 比亚迪股份有限公司 密钥管理方法和密钥管理装置及车辆和计算机存储介质
CN115208667B (zh) * 2022-07-14 2023-05-05 陕西合友网络科技有限公司 通过混合编程实现芯片与文件进行双重加密解密方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109412785A (zh) * 2018-10-23 2019-03-01 江苏华存电子科技有限公司 一种频率切换驱动aes加密系统保护旁道攻击的方法
CN113595717A (zh) * 2020-04-30 2021-11-02 比亚迪股份有限公司 Ecb模式分组加密方法和解密方法及控制装置和车辆
CN113595717B (zh) * 2020-04-30 2023-10-17 比亚迪股份有限公司 Ecb模式分组加密方法和解密方法及控制装置和车辆

Also Published As

Publication number Publication date
CN1560823A (zh) 2005-01-05

Similar Documents

Publication Publication Date Title
CN1286077C (zh) 基于动态变长码的数据加密与解密系统
CN108365947B (zh) 一种基于Feistel网络与动态DNA编码的图像加密方法
Wong et al. Simultaneous arithmetic coding and encryption using chaotic maps
Nasution et al. Data security using vigenere cipher and goldbach codes algorithm
Wen et al. Binary arithmetic coding with key-based interval splitting
Bose et al. A novel compression and encryption scheme using variable model arithmetic coding and coupled chaotic system
CN100576227C (zh) 一种软件加密注册防盗版方法
CN101461173B (zh) 同音替代对称加密
CN101335616B (zh) 一种具有无限密钥空间的对称加密方法
CN101814985B (zh) 应用多混沌映射多动态s盒的分组密码系统
CN112199696B (zh) 基于白盒分组密码的加解密方法
CN103019648A (zh) 一种带有数字后处理电路的真随机数发生器
CA2414261A1 (en) Method of encryption using multi-key process to create a variable-length key
US10225074B2 (en) Encryption system and method based on biometric technology
CN1241352C (zh) 加密二进制编码信息的方法
CN116527233B (zh) 基于云计算的能源监测数据管理系统
Stefanov et al. FastPRP: Fast pseudo-random permutations for small domains
CN116418481A (zh) 一种文本隐私数据双重加密保护方法、装置及设备
CN1281023C (zh) 离散数据分块加密方法
Verma et al. 3D-Playfair cipher with additional bitwise operation
CN113037488B (zh) 基于国密密码杂凑算法的保留格式加密方法及解密方法
CN1251444A (zh) 高效块加密方法
Mukesh et al. Enhancing AES algorithm with arithmetic coding
Ryabko et al. “Book stack” as a new statistical test for random numbers
CN1286855A (zh) 二进制数据块加密变换

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
C56 Change in the name or address of the patentee

Owner name: BEIJING TANGHENG TECHNOLOGY DEVELOPMENT CO., LTD.

Free format text: FORMER NAME OR ADDRESS: LI CHUNLIN

CP03 Change of name, title or address

Address after: Room 2, building 537, building 18, Anning East Road, Qinghe, Beijing, Haidian District

Patentee after: Beijing Tangheng Technology Development Co., Ltd.

Address before: Building 1, East District, Xi'an, Shaanxi

Patentee before: Li Chunlin

PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Data encipher and decipher system based on dynamic variable-length code

Effective date of registration: 20131129

Granted publication date: 20061122

Pledgee: Bank of China Limited by Share Ltd Beijing Century Fortune Central Branch

Pledgor: Beijing Tangheng Technology Development Co., Ltd.

Registration number: 2013990000916

PLDC Enforcement, change and cancellation of contracts on pledge of patent right or utility model
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20141224

Granted publication date: 20061122

Pledgee: Bank of China Limited by Share Ltd Beijing Century Fortune Central Branch

Pledgor: Beijing Tangheng Technology Development Co., Ltd.

Registration number: 2013990000916

PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Data encipher and decipher system based on dynamic variable-length code

Effective date of registration: 20141225

Granted publication date: 20061122

Pledgee: Bank of China Limited by Share Ltd Beijing Century Fortune Central Branch

Pledgor: Beijing Tangheng Technology Development Co., Ltd.

Registration number: 2014110000006

PLDC Enforcement, change and cancellation of contracts on pledge of patent right or utility model
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20160314

Granted publication date: 20061122

Pledgee: Bank of China Limited by Share Ltd Beijing Century Fortune Central Branch

Pledgor: Beijing Tangheng Technology Development Co., Ltd.

Registration number: 2014110000006

PLDC Enforcement, change and cancellation of contracts on pledge of patent right or utility model
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20061122

Termination date: 20170219