CN1282324C - 数据加密装置和方法 - Google Patents

数据加密装置和方法 Download PDF

Info

Publication number
CN1282324C
CN1282324C CNB001043471A CN00104347A CN1282324C CN 1282324 C CN1282324 C CN 1282324C CN B001043471 A CNB001043471 A CN B001043471A CN 00104347 A CN00104347 A CN 00104347A CN 1282324 C CN1282324 C CN 1282324C
Authority
CN
China
Prior art keywords
data
unit
cyclic shift
key
substep
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 - Lifetime
Application number
CNB001043471A
Other languages
English (en)
Other versions
CN1275846A (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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN1275846A publication Critical patent/CN1275846A/zh
Application granted granted Critical
Publication of CN1282324C publication Critical patent/CN1282324C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime 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/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
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • 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/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
    • 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/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Abstract

数据转换装置包括:密钥附加单元,用来对输入数据F和子密钥数据Ki进行算术加法模232并且以数据G的形式输出其结果;和数据代换单元,用来对通过将数据G朝着较高序位位置循环移位7位而得到的数据Rot7(G)、通过将数据G朝着较高序位位置循环移位1位而得到的数据Rot1(G)和数据G本身中相应的位进行“异-或”运算。

Description

数据加密装置和方法
本申请基于在日本提交的申请No.H11-146079,所述申请的内容被包括在本文中作为参考。
发明内容
本发明涉及数据加密装置和方法,而更具体地说,涉及使用循环移位的数据加密技术。
背景技术
近年来,随着数字通信的快速发展,为了发展安全产业(soundindustries)和保密防护起见,已经有了对能够保证通信数据的保密性的高可靠数据密码系统的日益增长的需求。这种加密系统不但需要有高的安全性,而且需要有高的加密速度和容易用硬件和软件实现。
(第一种传统技术)
下面介绍伪随机数加法密码作为传统的数据密码系统的第一个例子。
在这种密码中,发射机和接收机共用一种秘密密钥(下文简称为“密钥”)。明文数据M被分成一些固定长度的明文数据块Mi,并且对于每一个明文数据块Mi,利用所述密钥作为起始密钥产生固定长度的随机数数据R。
此后,对每一个明文数据块Mi和随机数数据R中的对应位进行“异-或”运算,产生密文数据块Ci。这种运算表示为:
Ci=Mi(+)R
其中,“(+)”表示对所述对应位的“异-或”运算。
最后,将所产生的密文数据块Ci链接在一起,形成密文数据C。
这种密码可以非常快速地进行加密,因此有助于在实时图象和音频数据通信中进行加密处理。
但是,由所述密码提供的安全性等级是非常低的。假定对所有明文数据块Mi使用相同的密钥,则获取一对明文数据块Mi和密文数据块Ci就可以使未授权的用户根据以下方程推导出所述随机数数据R,结果,可以破解其它密文数据块Ci。
                R=Mi(+)Ci
(第二种传统技术)
下面给出分组密码作为传统数据密码系统的第二个例子。分组密码的代表是数据加密标准(DES)和快速数据加密算法(FEAL)。有关DES和FEAL的细节,见Eiji Okamoto的“加密理论导论”,Ktoritsu(1993)。
分组密码利用其强的数据搅乱能力处理64位输入和输出数据。这种分组密码之一是MULTI2密码,它公开于日本公开特许公告No.Hi-276189中。
图1是说明作为使用MULTI2密码的数据加密装置中配备的三个数据转换单元之一的数据转换单元40的结构的方块图。
数据转换单元40大致由密钥附加单元401、第一数据代换单元402和第二数据代换单元403构成,并且根据32位子密钥数据Ki把32位输入数据A转换成32位输出数据D。
更明确地说,一旦把输入数据A和子密钥数据Ki输入到密钥附加单元401,密钥附加单元401就对输入数据A和子密钥数据Ki进行算术加法模232运算,并且把运算结果以32位数据B的形式输出。这表示为:
B=(A+Ki)模232
其中,“+”表示算术加法,而“α模β”代表α除以β之后的余数。
第一数据代换单元402从密钥附加单元401接收数据B,并且,对将数据B朝较高序位位置循环移位2位而获得的数据Rot2(B)、数据B本身和常量数据“1”进行算术加法模232运算。结果获得32位数据C。这可以写成:
          C=(Rot2(B)+B+1)模232
其中,“Rotα(X)”表示将32位数据X朝着较高序位循环移位α位(以及其结果)。
第二数据代换单元403接收从第一数据代换单元402输出的数据C,并且,进行关于数据C中对应的位和将数据C朝着较高序位位置循环移位4位而获得的数据Rot4(C)的“异-或”运算,从而产生32位数据D。这可以写成:
        D=Rot4(C)(+)C
结果,从数据转换单元40输出32位数据D。
这样,传统的数据转换单元40通过利用与各种循环移位结合的操作而以高速进行数据搅乱。
尽管如此,数据转换单元40具有以下的安全性问题。
假定把满足以下关系的输入数据M1和输入数据M2各自输入到第二数据代换单元403,“h”表示十六进制记数法:
M1(+)M2=55555555h
于是,由于所述循环移位的线性特性,
Rot4(M1)(+)Rot4(M2)=Rot4(M1(+)M2)
此外,由于数据“55555555h”本身是对称的,所以,
Rot4(55555555h)=55555555h
因此,以下方程成立:
Rot4(M1)(+)Rot4(M2)=55555555h
因此,
Rot4(M1)(+)M1(+)Rot4(M2)=00000000h
即,以下方程成立:
Rot(M1)(+)M1=Rot4(M2)(+)M2
也就是说,在第二数据代换单元403中,由输入数据M1产生的输出数据将和由输入数据M2产生的输出数据相同。这表明,由第二数据代换单元403进行的转换不是双映射(既是满射(surjection)又是入射(injection))。因此,由数据转换单元40进行的总体转换不是双映射的。
图2图解说明第二数据代换单元403(即,数据转换单元40)中的映射的特性,所述映射不是双映射。在该图中,X领域中的两个不同的输入值被映射到Y领域中的同一个输出值。
对于加密安全性来说,数据转换单元40的这种特性是不希望有的,因为,Y领域中元素数目比X领域中元素数目减少使得数据转换单元40的数据搅乱强度不足。
这里,可以设想以这样的方式修改第二数据代换单元403,即,它输出通过将输入数据X朝着较高序位循环移位2位而获得的数据Rot2(X),而不是“Rot4(X)(+)X”,以便使由第二数据代换单元403进行的转换成为双映射的。
但是,这种转换Rot2(X)缺乏所需要的安全度,因为它总是不能够产生足够的位雪崩效应。这里所指的位雪崩效应是密码的特性,说明由于输入数据中单个位的变化的结果,在输出数据中有多少个位发生变化。
发明内容
鉴于上述问题,本发明的目的是提供一种数据加密装置和方法,它利用循环移位来这样进行数据转换,使得所述数据转换是一种具有强的数据搅乱能力的双映射,并且产生足够的位雪崩效应。
为了实现所述目的,本发明的数据加密装置是一种用以对n位明文数据进行加密,以便获得n位密文数据的数据加密装置,这种数据加密装置,它配备有用来把n位输入数据双射地转换成n位输出数据的数据转换装置,所述数据转换装置包括:
循环移位装置,用来通过把所述n位输入数据分别循环移位S1位、S2位、…、和Sk位而产生k组数据,其中,S1、S2、…、和Sk是小于n的非负整数,而k是不小于3的奇数;以及
数据组合装置,用来通过执行“异-或”运算或加法运算把所述k组数据组合在一起,以便产生所述n位输出数据。
根据本发明的数据加密方法,它设有用来把n位输入数据双射地转换成n位输出数据的数据转换步骤,所述数据转换步骤包括:
循环移位子步骤,用来通过把所述n位输入数据分别循环移位S1位、S2位、…、和Sk位而产生k组数据,其中,S1、S2、…、和Sk是小于n的非负整数,而k是不小于3的奇数;以及
数据组合子步骤,用来通过执行“异-或”运算或加法运算把所述k组数据组合在一起,以便产生所述n位输出数据。
利用这种结构,数据加密装置首先通过循环移位把所述明文数据转换成不少于3组的奇数组数据,然后将所述各组数据组合在一起以便形成密文数据。因此,可以保证由所述数据加密装置进行的加密是双映射的,并且具有极好的数据搅乱性能和位雪崩性能。
就是说,在所述组合过程之前把明文数据转换成3组或更多组数据的条件下,由本发明的数据加密装置提供的位雪崩效应优于把明文数据转换成仅仅一组数据的传统技术。类似地,在所述组合过程之前把明文数据转换成奇数组数据的条件下,本发明的数据加密装置产生一种不同于把明文数据转换成两组数据的传统技术的双映射特性。
这里,所述数据加密装置还可以包括密钥组合单元,用来在由所述循环移位单元进行循环移位之前把所述n位明文数据与预先给定的密钥数据组合,其中,所述循环移位单元对与所述密钥数据组合的n位明文数据进行循环移位。
利用这种结构,对已经与密钥数据组合的明文数据进行循环移位。因此,可以避免与重复固定的转换相联系的问题,同时,有可能实现非常安全的秘密密钥加密。
这里,循环移位单元可以包括将所述n位明文数据分别循环移位S1位、S2位、…、和Sk位的k个循环单元。
利用这种结构,明文数据被并行输入到k个循环单元中,并且明文数据的各循环移位过程是同时进行的,因此,与以串行方式进行循环移位的情况相比较,提高了加密速度。
这里,所述k个循环单元可以由具有用来将所述n位明文数据分别循环移位S1位、S2位、…、和Sk位的布线图案的信号线构成。此外,密钥组合单元和数据组合单元可以分别由算术加法器和“异-或”门构成。
利用这种结构,可以用简单的电路来实现以高速度进行数据搅乱的数据加密装置。
这里,所述数据组合单元可以把事先给定的密钥数据与通过把所述k组数据组合在一起而获得的n位数据组合起来,从而产生n位密文数据。
利用这种结构,可以把将明文数据循环移位以及将循环移位结果组合在一起的输出与密钥数据进一步组合。因此,可以避免与重复固定的转换相联系的问题,同时,有可能实现非常安全的秘密密钥加密。
这里,所述循环移位单元可以包括:k个循环单元,用来将所述n位明文数据分别循环移位规定的循环量;用来获取密钥数据的密钥数据获取单元;以及循环量确定单元,用来根据所获取的密钥数据确定S1、S2、…、和Sk的值并且规定k个循环单元的各自的循环量S1位、S2位、…、和Sk位,其中,所述k个循环单元按照循环量确定单元规定的将n位明文数据分别循环移位S1位、S2位、…、和Sk位。
借助这种结构,利用密钥数据动态地确定所述k个循环单元的循环量,这有益于加密安全性。
这里,循环移位单元可以包括:m个循环单元,用来把所述n位明文数据分别循环移位S1位、S2位、…、和Sm位,其中,S1、S2、…、和Sm是小于n的非负整数,而m是不小于3的整数;用来获取密钥数据的密钥数据获取单元;以及选择单元,用来根据所获取的密钥数据从所述m个循环单元中选择k个,以便作为所述选择的k个循环单元对所述n位明文数据的循环移位的结果而产生k组数据。
借助这种结构,利用所述密钥数据动态地确定准备从所述明文数据产生的数据组的数目以及准备加到所述明文数据上的循环量,这有益于加密安全性。
还可以通过实现上述数据加密装置的特征的数据加密方法或者执行所述数据加密方法的程序来实现上述目的。
因此,本发明的数据加密装置呈现比较强的数据搅乱性能而不降低利用循环移位的传统技术的加密速度。鉴于对于发展多媒体技术的日益增长的需求,本发明的数据加密装置具有广泛的适用性和潜力,尤其在诸如关于图象或音频信息的实时保密通信的领域中。
附图说明
从以下结合举例说明本发明的特定实施例的附图所进行的描述,将明白本发明的这些和其它目的、优点和特征。附图中:
图1是显示传统的数据加密装置中数据转换单元的结构的方框图;
图2举例说明传统的数据转换单元中的映射特性;
图3是显示本发明的实施例中加密的通信系统的配置的方框图;
图4是显示图3中所示的数据加密装置的结构的方框图;
图5是显示图3中所示的数据解密装置的结构的方框图;
图6是显示所述数据加密装置中第一数据搅乱单元的结构的方框图;
图7是显示所述数据解密装置中第二数据搅乱单元的结构的方框图;
图8是显示所述第一数据搅乱单元(和第二数据搅乱单元)中数据转换单元的结构的方框图;
图9举例说明数据转换单元中的映射特性;
图10是显示根据第一变型的数据转换单元的结构的方框图;
图11是显示根据第二变型的数据转换单元的结构的方框图;
图12是显示根据第三变型的数据转换单元的结构的方框图;
图13是显示图12中所示的数据代换单元的详细结构的方框图;
图14是显示根据第四变型的数据转换单元的结构的方框图;以及
图15是显示图14中所示的数据代换单元的详细结构的方框图。
具体实施方式
以下是参考附图对本发明的实施例进行的详细描述。
通常,在数据加密装置中通过利用密钥数据的加密产生的密文数据,在数据解密装置中通过利用同一密钥数据的所述加密过程的逆转换过程转换成解密文本数据。
本实施例涉及把本发明用于加密的通信系统中,其中,备有数据加密装置的发射机将明文数据加密并且把密文数据输送到接收机,而备有数据解密装置的接收机将所述密文数据解密,以便获得可以应用的解密文本数据。
(加密通信系统的配置)
图3是显示本发明的实施例中加密通信系统的配置的方框图。该加密通信系统主要包括:发射机1,接收机2和传输线3。例如,发射机1和接收机2是视频服务系统中的服务器和它所服务的终端,它们分别发射和接收数字化的图象信息,而传输线路3是由互联网和数字广播中的传输流代表的通信网络。
发射机1配备有数据加密装置10和发射单元11。64位明文数据和256位密钥数据输入到数据加密装置10中。这里,明文数据是通过把信息分成诸如以64位为单位的数字编码的音频或图象信息而产生的信息块之一,而密钥数据是预先在发射机1和接收机2之间约定的秘密密钥。数据加密装置10处理输入的明文数据和密钥数据,并且产生64位的密文数据。发射机11并-串行地转换、调制和放大所产生的密文数据并且经由传输线3把它发送给接收机2。
接收机2配备有数据解密装置20和接收单元21。64位的密文数据被接收单元21接收并且串-并行地转换,然后与256位密钥数据一起被输入到数据解密装置20中。数据解密装置20处理输入的密文数据和密钥数据,以便获得64位解密文本数据,然后,后者被解码器(未示出)等等解码并且被经由显示器或扬声器输出。
(数据加密装置10的结构)
图4是显示图3中所示的数据加密装置10的结构的方框图。数据加密装置10包括第一数据搅乱单元101,第一周数(round number)控制单元102和第一密钥控制单元103。
第一数据搅乱单元101利用由第一密钥控制单元103提供的32位子密钥将输入的64位明文数据搅乱,并且输出所得到的64位数据。
第一周数控制单元102控制第一数据搅乱单元101所重复的搅乱周数。更具体地说,如果第一数据搅乱单元101所进行的搅乱周数低于预定的数目,则第一周数控制单元102使从第一数据搅乱单元101输出的64位数据返回到第一数据搅乱单元101中。另一方面,如果所述周数已经到达预定的数目,则第一周数控制单元102把64位数据作为64位密文数据输送到发射单元11。在本实施例中,所述预定数目是8。
第一密钥控制单元103把输入的256位密钥数据从其最高序位开始分成8个32位子密钥K0~K7,并且在所述8个周期中把子密钥K0~K7逐一输出到第一数据搅乱单元101。更具体地说,当开始把64位明文数据输入到第一数据搅乱单元101时,第一密钥控制单元103把子密钥K0输送到第一数据搅乱单元101。此后,每当从第一数据搅乱单元101输出的数据被返回到第一数据搅乱单元101时,第一密钥控制单元103总是一次一个地把子密钥K1~K7输送到第一数据搅乱单元101。
(数据解密装置20的结构)
图5是显示图3中所示的数据解密装置20的结构的方框图。数据解密装置20包括第二数据搅乱单元201,第二周数(round number)控制单元202和第二密钥控制单元203。
第二数据搅乱单元201利用由第二密钥控制单元203提供的32位子密钥将经过接收单元21的64位密文数据搅乱,并且输出所得到的64位数据。
第二周数控制单元202控制第二数据搅乱单元201所重复的搅乱周数。更具体地说,如果第二数据搅乱单元201所进行的搅乱周数低于预定的数目,则第二周数控制单元202使从第二数据搅乱单元201输出的64位数据返回到第二数据搅乱单元201中。另一方面,如果所述周数已经到达预定的数目,则第二周数控制单元202把64位数据作为64位解码的文本数据输出。在本实施例中,所述固定的数目是8。
第二密钥控制单元203把输入的256位密钥数据从其最高序位开始分成8个32位子密钥L0~L7,并且在所述8个周期中把子密钥L0~L7逐一输出到第二数据搅乱单元201。更具体地说,当开始把密文数据输入到第二数据搅乱单元201时,第二密钥控制单元203把子密钥L0输送到第二数据搅乱单元201。此后,每当从第二数据搅乱单元201输出的数据被返回到第二数据搅乱单元201时,第二密钥控制单元203总是一次一个地把子密钥L1~L7输送到第二数据搅乱单元201。
(第一数据搅乱单元101的结构)
图6是显示图4中所示的第一数据搅乱单元101的结构的方框图。第一数据搅乱单元101包括“异-或”单元1011和数据转换单元300。注意,用图解说明的布线图案来表示诸如分离(把一组数据分成多个部分)、转置(交换所述多个部分的位置)和拼接(把所述多个部分连接成数字,以便构成新的数据组)等过程。
把64位输入数据分离成较高序位的32位块X1和较低序位的32位块X0,而64位输出数据由分别作为较高序位和较低序位的32位块Y1和Y0的组合构成。
块X1变成块Y0,并且被输入到数据转换单元300中,在那里被转换成基于由第一密钥控制单元103提供的32位子密钥的32位数据S。数据转换单元300把数据S输出到“异-或”单元1011,后者又进行关于数据S和块X0中的各对应位的“异-或”运算,并且把结果作为块Y1输出。
这样获得的两个块Y1和Y0被拼接成64位输出数据,并且被从第一数据搅乱单元101、与时钟信号(未示出)同步地输出。
(第二数据搅乱单元201的结构)
图7是显示图5中所示的第二数据搅乱单元201的结构的方框图。第二数据搅乱单元201包括数据转换单元301和“异-或”单元2011。数据转换单元301和“异-或”单元2011的功能分别与图6中第一数据搅乱单元101的数据转换单元300和“异-或”单元1011相同。同样,用该图中所示的布线图案来表示在第二数据搅乱单元201中进行的诸如分离、转置和拼接等过程。
把64位输入数据分离成较高序位的32位块Z1和较低序位的32位块Z0,而64位输出数据由分别作为较高序位和较低序位的32位块W1和W0的组合构成。
块Z0变成块W1,同时被输入到数据转换单元301中,在那里被转换成基于由第二密钥控制单元203提供的32位子密钥的32位数据T。数据转换单元301把数据T输出到“异-或”单元2011,后者又进行关于数据T和块Z1中的各对应位的“异-或”运算,并且把结果作为块W0输出。
(数据转换单元300和301的结构)
图8是显示图6中所示的数据转换单元300(和图7中所示的数据转换单元301)的结构的方框图。
数据转换单元300接收32位输入数据F和32位子密钥Ki,并且产生输出数据O。数据转换单元300中包含密钥附加单元3001、数据代换单元3002和代换表数据存储单元3003。
密钥附加单元3001例如由具有两个32位输入端和一个32位输出端的加法器构成。密钥附加单元3001对输入数据F和子密钥Ki进行算术加法模232,并且把所述解作为32位数据G输出。这种运算可以写成:
              G=(F+Ki)模232
数据代换单元3002由具有用于循环移位、“异-或”门等等的固定布线图案的信号线构成。在接收数据G时,数据代换单元3002对通过把数据G朝着较高序位位置循环移位7位而获得的数据Rot7(G)、通过把数据G朝着较高序位位置循环移位1位而获得的数据Rot1(G)和数据G本身进行“异-或”运算,并且以32位数据H的形式输出所述运算结果。这种运算可以表示如下:
H=Rot7(G)(+)Rot1(G)(+)G
此后,数据H被从其最高序位开始分成四个8位块I3、I2、I1和I0,它们被逐一输入到代换表数据存储单元3003中。
代换表数据存储单元3003由ROM等构成,后者把包含不同的8位值的代换表数据Tab[0~255]保存在256个存储单元。代换表数据存储单元3003起转换器的作用,它输出存储在由8位输入数据指定的单元中的8位值。
更明确地说,代换表数据存储单元3003存储Apki等人在“考虑防备对分组密码的已知破译法的安全性的加密盒设计”(IEICETechnical Report,ISEC98-13)中描述的256×8位代换表数据。随着块I3、I2、I1和I0的顺序输入,代换表数据存储单元3003逐一输出8位值J3=Tab[I3],J2=Tab[I2],J1=Tab[I1]和J0=Tab[I0],它们分别存储在由块I3、I2、I1和I0指定的单元中。
4个8位值J3、J2、J1和J0以这种次序与最高序位J3相联系,而以输出数据O的形式从数据转换单元300输出合成的32位数据。
应当指出,例如通过被彼此同步地激励多路复用器和多路分解器进行代换表数据存储单元3003中的输入/输出切换,以便随着I0~I3而分别输出J0~J3。
(第一数据搅乱单元101和第二数据搅乱单元201之间的关系)
图6中的第一数据搅乱单元101和图7中的第二数据搅乱单元201两者都接收64位数据和32位子密钥,并且都输出64位数据。以下说明第一数据搅乱单元101和第二数据搅乱单元201之间的关系,以便理解被第一数据搅乱单元101加密的明文数据被第二数据搅乱单元201恢复的原因。
如上所述,图6的第一数据搅乱单元101中的X1、X0、Y1、Y0和S有以下关系:
        S=F(Ki,X1)         ...(方程1)
        Y1=S(+)X0           ...(方程2)
        Y0=X1               ...(方程3)
其中,“Ki”代表32位子密钥,而F(Ki,α)代表其输入是α的数据转换单元300的输出。
同时,当使用相同的32位子密钥Ki时,图7的第二数据搅乱单元201中的Z1、Z0、W1、W0和T有以下关系:
        T=F(Ki,Z1)         ...(方程4)
        W1=Z0               ...(方程5)
        W0=T(+)Z1           ...(方程6)
由于第一数据搅乱单元101的输出数据输入到第二数据搅乱单元201,所以,
        Y1=Z1               ...(方程7)
        Y0=Z0               ...(方程8)
根据方程3和8,有
        Y0=Z0=X1           ...(方程9)
根据方程9,可以把方程4转换成
        T=F(Ki,X1)         ...(方程10)
根据方程1和10,
        S=T                 ...(方程11)
根据方程6和11,
        W0=S(+)Z1           ...(方程12)
根据方程7和12,
        W0=S(+)Y1           ...(方程13)
此外,根据方程2和13,
        W0=S(+){S(+)X0}     ...(方程14)
这里,“异-或”运算具有如下特性:
        β(+){β(+)γ}=γ    ...(方程15)
根据方程14和15,以下方程成立:
        W0=X0                ...(方程16)
同时,根据方程3,5和8,以下方程成立:
        W1=X1                ...(方程17)
正如从方程16和17可以看到的,当在第一数据搅乱单元101中已经通过借助32位子密钥Ki搅乱64位数据X而产生的64位数据Y在第二数据搅乱单元201中被利用相同的32位子密钥Ki搅乱时,就可以恢复所述64位数据X。
(第一密钥控制单元103的操作)
图4中的第一密钥控制单元103按照以下方式操作。
为了在数据加密装置10将64位明文数据加密,第一数据搅乱单元101将搅乱操作重复8次。第一密钥控制单元103在第一周期中向第一数据搅乱单元101输出子密钥K0,在第二周期中向第一数据搅乱单元101输出子密钥K1,…,而在第八周期中最后向第一数据搅乱单元101输出子密钥K7。
(第二密钥控制单元203的操作)
另一方面,图5中的第二密钥控制单元203按照以下方式操作。
为了在数据解密装置20将64位密文数据解密,第二数据搅乱单元201将搅乱操作重复8次。第二密钥控制单元203在第一周期中向第二数据搅乱单元201输出子密钥L0,在第二周期中向第二数据搅乱单元201输出子密钥L1,…,而在第八周期中最后向第二数据搅乱单元201输出子密钥L7。
(数据加密装置10和数据解密装置20之间的关系)
图4中的数据加密装置10和图5中的数据解密装置20两者都接收64位数据和256位密钥数据,并且输出64位数据。以下说明数据加密装置10和数据解密装置20之间的关系,以便理解由数据加密装置10加密的明文数据被数据解密装置20解密的原因。
假定将在数据加密装置10中利用256位密钥数据K将64位明文数据A加密。
第一密钥控制单元103把密钥数据K从其最高序位开始分成32位子密钥K0~K7,后者随后被顺序地输入到第一数据搅乱单元101。
在第一数据搅乱单元101中,明文数据A被利用子密钥K0搅乱,结果变成数据A1。然后,数据A1被利用子密钥K1搅乱而变成数据A2。对数据A2至数据A6重复同样的操作,以便分别产生数据A3至数据A7。最后,数据A7被利用子密钥K7搅乱而变成数据A8。然后,数据A8被作为密文数据从数据加密装置10输出,经由发射单元11和传输线3发射到接收机2,并且被通过接收单元21输入到数据解密装置20。
在数据解密装置20中使用与数据加密装置10中相同的256位密钥数据K。第二密钥控制单元203把密钥数据K从其最高序位开始分成32位子密钥L0~L7,并且按照这种次序顺序地把子密钥L0~L7输送到第二数据搅乱单元201。这里,由于用于数据解密装置20中的密钥数据K与用于数据加密装置10中的密钥数据K相同,所以,K0=L7,K1=L6,K2=L5,K3=L4,K4=L3,K5=L2,K6=L1,以及K7=L0。
在第二数据搅乱单元201中,密文数据A8被利用子密钥L0搅乱,结果变成数据B1。这里,因为K7=L0,并且由第二数据搅乱单元201进行的搅乱是由第一数据搅乱单元101进行的搅乱的逆变换,所以,B1=A7。此后,数据B1被利用子密钥L1搅乱,结果变成数据B2。这里,因为K6=L1,并且由第二数据搅乱单元201进行的搅乱是由第一数据搅乱单元101进行的搅乱的逆变换,所以,B2=A6。
对数据B2至B6重复相同的操作,以便分别产生数据B3至B7,其中,由于上述原因,B3=A5,B4=A4,B5=A3,B6=A2,以及B7=A1。最后,利用子密钥L7将数据B7搅乱,其输出是解密文本数据B8。这里,因为B7=A1,K0=L7,并且由第二数据搅乱单元201进行的搅乱是由第一数据搅乱单元101进行的搅乱的逆变换,所以,B8=A。
由此证明,当在数据加密装置10中借助256位密钥数据K将64位明文数据A加密而产生的64位密文数据B在数据解密装置20中被利用相同的256位密钥数据K解密时,可以恢复所述64位明文数据。
(加密通信系统的操作)
下面参考图3~8说明本实施例的加密通信系统的总体操作。
发射机1将固定时间长度的输入图象或音频信息数字化,并且将其编码,从而产生64位明文数据。然后将所述明文数据和事先保存在发射机1中的256位密钥数据一起输入到数据加密装置10中。
256位密钥数据被输入到第一密钥控制单元103,并且被从其最高序位分成32位子密钥K0~K7。
所述64位明文数据和子密钥数据K0一起被输入到第一数据搅乱单元101中,并且利用子密钥K0将其搅乱。这种搅乱操作在第一周数控制单元102的控制下总共重复8个周期,在这期间顺序地使用子密钥K0~K7。从而获得64位密文数据并且把它从数据加密装置10输出。
然后,经由发射单元11和传输线3把所述64位密文数据从发射机1发射到接收机2。
所述密文数据被接收机2中的接收单元21接收,并且与256位密钥数据一起输入到数据解密装置20中。
所述256位密钥数据输入到第二密钥控制单元203,并且被从其最高序位开始分成32位子密钥L7~L0。
密文数据与子密钥L0一起输入到第二数据搅乱单元201,并且利用子密钥L0将其搅乱。在第二周数控制单元202的控制下重复这种搅乱处理,总计8个周期,在这期间顺序地使用L0~L7。结果获得64位解密文本数据,并且将其从数据解密装置20输出。
将所述解密文本数据在接收机2中转换成图象或音频信号,并且将其显示在显示器上或者通过扬声器输出。
(数据加密装置10的安全性)
以下是关于数据加密装置10的安全性说明。
下面首先指出由发射机1中的数据转换单元300(以及接收机2中的数据转换单元301)进行的转换是双映射的原因。
由密钥附加单元3001进行的操作是将输入数据和从密钥数据产生的子密钥相加。所述子密钥的值是固定的,与输入数据无关。因此,由密钥附加单元3001进行的转换是双映射的。
另一方面,对于数据代换单元3002,基于计算机的实验已经证实,对于1至(232-1)的所有输入值,输出值将不是零。根据这种实验结果以及数据代换单元3002的操作的线性特性,可以保证由数据代换单元3002进行的转换是双映射的。
还可以如下从理论上说明数据代换单元3002的双映射特性的基本原理。
令A31~A0是构成数据代换单元3002的输入数据A的、从其最高序位开始的32位,即,A=(A31,A30,…,A0)。
于是,
     Rot1(A)=(A30,A29,…,A1,A0,A31)
     Rot7(A)=(A24,A23,…,A27,A26,A25)
因此,
     Rot7(A)(+)Rot1(A)(+)A
     =(A31(+)A30(+)A24,A30(+)A29(+)A23,…,A1(+)A0(+)A26,A0(+)A31(+)A25)
令B=(B31,B30,…,B0)是数据代换单元3002的32位输出数据。于是,由数据代换单元3002进行的转换可以表示为:
B 31 B 30 · · · B 0 = X A 31 A 30 · · · A 0 .....(方程18)
其中
Figure C0010434700222
.....(方程19)
以及
         X0=X1=X6=1
         Xi=0(其中,i≠0,1,6)    ...(方程20)
根据Masahiko Saito的“线性代数导论”p90(东京大学出版社,1966)中的问题4及其解,
det X = Π α 32 = 1 ( X 0 + αX 1 + α 2 X 2 + · · · + α 31 X 31 )                                   .....(方程21)
其中,“detX”代表矩阵X的行列式,而方程右侧表示对每一个α的乘积,α是1的32次方根。
根据方程19和20,可以把方程21转换成
det X = Π α 32 = 1 ( 1 + α + α 6 ) .....(方程22)
在Hiroshi Nagao的“代数学”(Asakura Books,1983)的例题39.1中已经证明,当并且仅仅当α=1时α32=1。因此,可以把方程22写成:
detX=1+1+1=1模2     ...(方程23)
因此,矩阵X是可逆矩阵,并且,当而且仅仅当其输入是零时,数据代换单元3002的输出是零。这个事实以及数据代换单元3002的线性特性保证了由数据代换单元3002进行的转换是双映射的。
关于所述转换RotN1(+)RotN2(+)RotN3的双映射特性的上述基本原理也可以应用于(N1,N2,N3)≠(7,1,0)。此外,这也适用于准备采用的循环移位次数是非3的奇数的情况。换句话说,只要转换包含奇数次循环移位(包括循环移位0位),由数据代换单元3002进行的转换就一定是双映射的。
代换表数据存储单元3003根据预先存储的、包含256个不同的8位表值的代换表数据转换8位输入数据。因此,由代换表数据存储单元3003进行的转换也是双映射的。
因此,由数据转换单元300(301)的结构元件进行的转换都是双映射的,使得数据转换单元300(301)本身的总体转换是双映射的。
图9显示双映射实施例的数据代换单元3002(即,数据转换单元300(301))的映射。正如从该图可以看到的,与图2中所示的传统的映射不同,领域X中的两个不同值必然映射到领域Y中两个不同值。利用本实施例的这种映射,可以避免领域Y元素数目少于领域X的元素数目的问题。
因此,与传统技术不同,在本实施例中,数据代换单元3002(即,数据转换单元300(301))进行双映射,从而提供比较好的数据搅乱性能而有益于加密安全性。
下面分析本实施例中数据转换单元300(301)的位雪崩性能。
数据转换单元300(301)中的数据代换单元3002对输入数据X和输入数据X的两个循环移位结果、即数据Rot7(X)和数据Rot1(X)中的对应的位进行“异-或”运算。因此,输入数据X中单个位的改变不仅仅影响该位本身,而且影响其它两个位。此外,在代换表数据存储单元3003中对数据代换单元3002的输出数据进一步进行非线性处理,结果,以多得多的位受到影响而结束。
因此,在本实施例中,与传统技术不同,数据转换单元300(301)、即数据加密装置10产生强烈的位雪崩效果,从而提供更好的数据搅乱性能和加密安全性。
总之,本实施例中的数据转换单元300(301)与传统技术的不同在于:它备有数据代换单元3002,后者对输入数据进行奇数次(不少于3次)不同的循环移位(包括循环移位零位),并且对所述输入数据和循环移位结果中的对应位进行“异-或”运算。这种加密过程不但由于使用循环移位而是快速的,而且是双映射的并且具有极好的位雪崩性能,因此可以获得很高的加密安全度。
(第一变型)
下面描述上述实施例的数据转换单元300(301)的变型。以下提供的各种变型中的每一种都可以代替数据转换单元300(301)而不损害由数据转换单元300(301)实现的效果。
图10是显示第一变型中数据转换单元310的结构的方框图。在该图以及以下的各图中,与图8中所示的以上实施例中的相同的结构元件具有相同的标号。
数据转换单元310与数据转换单元300(301)的不同在于:已经在密钥附加单元3001和数据代换单元3002之间插入位重新排序单元3010。
位重新排序单元3010把从密钥附加单元3001输出的32位数据G的位任意地重新排序。例如,位重新排序单元3010把数据G的第1位移到第15位,把第2位移到第27位,把第3位移到第7位等等,并且把获得的32位数据GX输出到数据代换单元3002。
由于位重新排序单元3010所进行的转换是双映射的,所以,数据转换单元310本身的总体转换是双映射的。因此,数据转换单元310至少可以保证数据搅乱性能的水平与上述实施例的数据转换单元300(301)的相等。
(第二变型)
图11是显示第二变型中数据转换单元320的结构的方框图。数据转换单元320与数据转换单元300(301)的不同在于:密钥附加单元3001和数据代换单元3002已经交换位置(即,密钥附加单元3001和数据代换单元3002之间的连接已经反向)。
不用说,数据转换单元320能够产生和上述实施例的数据转换单元300(301)相同水平的数据搅乱性能。
(第三变型)
图12是显示第三变型中数据转换单元330的结构的方框图。数据转换单元330与数据转换单元300(301)的不同在于:数据代换单元3002已经被改变循环量的数据代换单元3020所取代。
数据代换单元3020对从密钥附加单元3001输出的32位数据G并行地进行三种不同的循环移位,其中,三种不同循环移位的循环量(数据G准备被循环移位的位数目)决定于15位的循环量密钥数据。然后,数据代换单元3020对作为所述各种循环移位的结果获得的三个32位值中对应的位进行“异-或”运算,并且,以数据H的形式输出所述结果。
图13是显示数据代换单元3020的详细结构的方框图。数据代换单元3020配备有三个移位器3021~3023、三个并-串行转换器3024~3026和“异-或”单元3027。
移位器3021~3023是32位移位寄存器,它们以这样的方式连接,使得最高有效位将被循环地移位到最低有效位。移位器3021~3023与从并-串行转换器3026~3024发送的时钟脉冲同步地、以并行方式分别把数据G朝着比较高序位循环移位。
并-串行转换器3024~3026以串行的方式分别向移位器3021~3023输出等效于用5位并行数据表示的值(0~31)的若干时钟脉冲。更明确地说,并-串行转换器3024~3026分别以5位并行数据的形式获取所述15位循环量密钥数据中的最高序5位、中间序5位和最低序5位,并且,当32位数据G被输入到移位器3021~3023时,输出由所述各5位并行值指定的分别保存在移位器3023~3021的若干时钟脉冲。
“异-或”单元3027对从移位器3021~3023输出的三个32位值中的相应位进行“异-或”运算,并且以32位数据H的形式输出其结果。
当把32位数据G和15位循环量密钥数据输入到数据代换单元3020时,该处理过程按照以下方式进行。
32位数据G输入到移位器3021~3023的每一个中,同时把15位循环量密钥数据从其最高序位开始分成5位单元,后者分别保存在并-串行转换器3024~3026中。并-串行转换器3024~3026对所述5位值进行解码和并-串行转换,并且分别向移位器3023~3021输出对应于所述5位值的脉冲串。
移位器3021~3023以并行的形式把数据G朝着较高序位位置循环移位,其循环移位的位数等效于分别从并-串行转换器3026~3024输出的脉冲串。
然后,移位器3021~3023向“异-或”单元3027输出其32位循环移位结果,所述“异-或”单元3027又对它们中的相应位进行“异-或”运算,以便产生数据H。
假定循环量密钥数据是“000000010110011b”(b是二进位符号)。则由数据代换单元3020对输入数据G进行的操作是:
        H=Rot19(G)(+)Rot5(G)(+)G
因此,通过使用数据代换单元3020,可以由循环量密钥数据动态地确定移位器3021~3023中的循环量。因此,通过用所述循环量密钥数据作为秘密密钥,与循环移位的循环量已经固定的数据转换单元300(301)相比,数据转换单元330可以更有效地隐藏信息。
此外,与上述实施例中数据代换单元3002一样,数据代换单元3020对输入数据进行三种循环移位,并且对所述循环移位结果中的对应位进行“异-或”运算,以便象在数据转换单元300(301)的情况下一样,保证由数据转换单元330进行的总体转换是双映射的,后者产生强烈的位雪崩效应。
这里应当指出,可以事先在发射机1和接收机2中秘密地共用循环量密钥数据,就象在上述实施例中利用256位密钥数据那样。例如,除了256位密钥数据之外,可以事先在发射机1和接收机2两者中存储120位密钥数据,并且将其分成8个15位块,以便与由数据转换单元330所进行的8个数据转换周期同步地把所述8个15位块作为循环量密钥数据每次一个地输出到数据转换单元330。
还应当指出,在本实施例中使用的循环量(19,5,0)和在上述实施例中使用的循环量(7,1,0)具有在加密方面被认为是更可取的共同的分母。就是说,计算每两次相邻循环量的差值(模32),对于循环量(19,5,0)和(25,6,1)相对于循环量(7,1,0),产生(13,14,5),在这两者中,彼此提供三种差值。这表明,在上述实施例和本变型两者中,三种循环移位结果都具有显著的随机性,使得有可能增强加密的安全性。
(第四变型)
图14是显示第四变型中数据转换单元340的结构的方框图。数据转换单元340与数据转换单元300(301)的不同在于:数据代换单元3002已经被改变“异-或”操作的操作数的数目的数据代换单元3030所取代。
数据代换单元3030利用由5位操作数数目密钥数据指定的循环移位器把从密钥附加单元3001输出的32位数据G循环移位,对从所述指定的循环移位器输出的32位循环移位后的值中的对应位进行“异-或”操作,并且把操作结果以32位数据H的形式输出。
图15是显示数据代换单元3030的详细结构的方框图。数据代换单元3030一般说来由5个循环移位器3031~3035和一个“异-或”单元3036构成。
循环移位器3031~3035主要配备有输出缓冲门和具有固定的布线图案、用来把32位输入数据X朝着较高序位位置分别循环移位19位、7位、5位、1位和0位的信号线。循环移位器3031~3035中的每一个当把“1”输入到允许端子时把作为其循环移位的结果获得的32位数据Rotn(X)输出到“异-或”单元3036,并且,当把“0”输入到允许端子时输出零(00000000h)。
“异-或”单元3036对从循环移位器3031~3035输出的5个32位值中的对应位进行“异-或”操作,并且把操作结果以32位数据H的形式输出。
在输入32位数据G和5位操作数数目密钥数据时,数据代换单元3030按照如下方式操作。
32位数据G被输入到循环移位器3031~3035中的每一个,被按照各自的循环量循环移位后变成Rotn(G),然后被保存在其中。在此期间,操作数数目密钥数据被分成5位,它们被分别输出到循环移位器3031~3035的允许端子。
根据输入到循环移位器3031~3035中每一个的允许端子的信号的逻辑状态(“1”或“0”),或者把保存在其中的数据Rotn(G)、或者把值0(00000000h)输出到“异-或”单元3036。
“异-或”单元3036对分别从循环移位器3031~3035输出的5个32位值中的对应位进行“异-或”操作,并且输出操作结果H。
假定操作数数目密钥数据是“10101b”。于是,由数据代换单元3030对输入数据G进行的操作是:
H=Rot19(G)(+)Rot5(G)(+)G
另一方面,如果操作数数目密钥数据是“11111b”,则由数据代换单元3030对输入数据G进行的操作是:
H=Rot19(G)(+)Rot7(G)(+)Rot5(G)(+)Rot1(G)(+)G
因此,数据代换单元3030以这样的方式操作,以便仅仅利用从所述5个循环移位器3031~3035中动态地选择的具有不同循环量的循环移位器对输入数据G进行循环移位,对循环移位结果中的对应位进行“异-或”运算,并且输出所获得的32位数据H。
因为数据转换单元340隐藏5位操作数数目密钥数据,其中3或5位一定是“1”,所以,准备启动的循环移位器的数目每一次都动态地变化。这使得与总是使用相同的3种循环移位的数据转换单元300(301)相比,数据转换单元340更加安全。
应当指出,数据代换单元3030和数据代换单元3002具有共同的分母,对于“异-或”操作,对输入数据进行奇数(不小于3)次不同的循环移位。因此,与上述实施例的数据转换单元300(301)相同,通过数据转换单元340获得了不仅是双映射的而且具有强烈的位雪崩效应的加密。
这里应当指出,可以事先在发射机1和接收机2中共用操作数数目密钥数据作为秘密密钥,就象在上述实施例中利用256位密钥数据那样。例如,除了256位密钥数据之外,可以事先在发射机1和接收机2两者中存储40位密钥数据,并且将其分成8个5位块,以便与由数据转换单元340所进行的8个数据转换周期同步地把所述8个5位块作为操作数数目密钥数据顺序地输送到数据转换单元340。
虽然已经通过上述实施例和变型描述了本发明的数据加密装置,但是本发明不限于此。例如,以下的修改是可能的。
虽然上述各实施例和变型的每一个数据转换单元都是通过包括布线图案和逻辑集成电路、例如“异-或”门的专用硬件来实现的,但是,显然,利用在配备有通用处理器、控制程序、存储代换表数据的ROM和作为工作区的RAM的计算机系统中执行的程序的软件,也可以实现所述每一个数据转换单元。可以通过诸如DVD-ROM的计算机可读存储介质或者诸如通信网络的传输介质来提供这样的程序。
这里,可以通过利用诸如向较高序位位置循环移位的“Rotate-Shift-Left”和“异-或”运算的“Exor”等机器指令来构成每一个数据代换单元,来达到软件的高速实施。此外,在根据程序顺序处理的条件下执行循环移位时,可以或者通过把数据X并行地循环移位7位和1位、或者通过首先把数据X循环移位1位然后再把结果循环移位6位来获得数据Rot7(X)和数据Rot1(X)。
对上述各实施例和变型的结构元件进行组合也是可能的。例如,可以这样构成数据代换单元,使得它既具有第三变型中的数据代换单元3020的循环量变化功能、又具有第四变型中数据代换单元3030的操作数数目变化功能。可以利用既具有时钟输入端子又具有允许输入端子的移位寄存器来实现这样的数据代换单元,使得可以动态地进行准备启动的循环移位器的选择以及所选择的循环移位器的循环量的确定。
此外,上述实施例中第一和第二数据搅乱单元101和201中的“异-或”单元1011和2011可以由诸如具有进位的全加器等能够逆操作的其它操作单元来代替。最后,由代替“异-或”单元1011的操作单元执行的操作和由代替“异-或”单元2011的操作单元执行的操作必须是彼此逆向的。因此,最好使用简单的操作单元,以便避免降低处理速度。
此外,上述实施例中的数据转换单元300(301)中的密钥附加单元3001可用具有两个32位输入和一个32位输出的、诸如“异-或”单元之类的操作单元来代替。这种操作单元最好是简单的,以免降低处理速度。
此外,虽然上述实施例的数据加密装置10和数据解密装置20中第一和第二数据搅乱单元101和201把数据搅乱操作重复8个周期,但是,本发明不限于此。
例如,可以通过使输入到数据加密装置10和数据解密装置20中的密钥数据的尺寸小于256位来使数据搅乱操作的循环次数少于8次。同样,可以通过使输入到数据加密装置10和数据解密装置20中的密钥数据的尺寸大于256位来使数据搅乱操作的循环次数多于8次。另外,可以通过重复地使用密钥数据的相同的子密钥,在不增加密钥数据尺寸的情况下增加数据搅乱操作的循环次数。对于小于256位的密钥数据,例如,可以利用数据加密标准(DES)或FEAL的子密钥产生装置来产生子密钥。
此外,虽然在上述实施例中数据转换单元300(301)利用32位块作为处理单元进行转换,所述处理单元和块的位长度不限于此。例如,当通过通用的64位CPU实现本发明时,可以使用64位块作为处理单元。可以代之以仅仅把块的一半(例如,32位块中的较低序位的16位)设置为处理单元,使得有可能加速加密处理。
虽然已经参考附图、通过实施例全面地描述了本发明,但是,应当指出,对本专业的技术人员来说,各种变化和修改是现而易见的。因此,应当认为它们被包括在本发明中,除非这些变化和修改脱离本
发明的范围。

Claims (11)

1.一种数据加密装置,它配备有用来把n位输入数据双射地转换成n位输出数据的数据转换装置,所述数据转换装置包括:
循环移位装置,用来通过把所述n位输入数据分别循环移位S1位、S2位、...、和Sk位而产生k组数据,其中,S1、S2、...、和Sk是小于n的非负整数,而k是不小于3的奇数;以及
数据组合装置,用来通过执行“异-或”运算或加法运算把所述k组数据组合在一起,以便产生所述n位输出数据。
2.权利要求1的数据加密装置,其特征在于:
所述数据转换装置还包括密钥组合装置,用来在由所述循环移位装置进行循环移位之前、通过执行“异-或”运算或加法运算把所述n位输入数据与预先给定的密钥数据组合,以及
所述循环移位装置对与所述密钥数据组合的n位输入数据进行循环移位。
3.权利要求2的数据加密装置,其特征在于:
所述循环移位装置包括将与密钥数据组合的n位输入数据分别循环移位S1位、S2位、...、和Sk位的k个循环单元。
4.权利要求3的数据加密装置,其特征在于:
所述密钥组合装置是算术加法器和“异或”门电路中的一种;以及
所述数据组合装置是“异或”门电路。
5.权利要求1的数据加密装置,其特征在于:
所述数据组合装置把事先给定的密钥数据与通过把所述k组数据组合在一起而获得的n位数据组合起来,以便产生n位输出数据。
6.权利要求1的数据加密装置,其特征在于:
所述循环移位装置包括:
m个循环单元,用来把所述n位输入数据分别循环移位S1位、S2位、...、和Sm位,其中,S1、S2、...、和Sm是小于n的非负整数,而m是不小于3又不小于k的整数,
其中,所述m个循环单元中的各循环单元获取密钥数据,该密钥数据显示是否输出一个循环移位结果或数值零,如果所获取的密钥数据显示所述循环移位结果将要输出,各循环单元就输出所述的循环移位结果,如果所获取的密钥数据显示零将要输出,各循环单元就输出零,其结果是,所述循环移位装置产生所述k组数据,这k组数据是由所述m个循环单元中选出的k个循环单元输出的。
7.一种数据加密方法,它设有用来把n位输入数据双射地转换成n位输出数据的数据转换步骤,所述数据转换步骤包括:
循环移位子步骤,用来通过把所述n位输入数据分别循环移位S1位、S2位、...、和Sk位而产生k组数据,其中,S1、S2、...、和Sk是小于n的非负整数,而k是不小于3的奇数;以及
数据组合子步骤,用来通过执行“异-或”运算或加法运算把所述k组数据组合在一起,以便产生所述n位输出数据。
8.权利要求7的数据加密方法,其特征在于:
所述数据转换步骤还包括密钥组合子步骤,用来在由所述循环移位子步骤进行循环移位之前、通过执行“异-或”运算或加法运算把所述n位输入数据与预先给定的密钥数据组合,以及
所述循环移位子步骤对与所述密钥数据组合的n位输入数据进行循环移位。
9.权利要求7的数据加密方法,其特征在于:
所述数据组合子步骤把事先给定的密钥数据与通过把所述k组数据组合在一起而获得的n位数据组合起来,以便产生n位输出数据。
10.权利要求7的数据加密方法,其特征在于:
所述循环移位子步骤包括:
用来获取密钥数据的密钥数据获取子步骤;
循环量确定子步骤,用来根据所获取的密钥数据确定S1、S2、...、和Sk的值;以及
循环子步骤,用来将所述n位输入数据独立地循环移位S1位、S2位、...、和Sk位。
11.权利要求7的数据加密方法,其特征在于:
所述循环移位子步骤包括:
用来获取密钥数据的密钥数据获取子步骤;
选择子步骤,用来根据所获取的密钥数据从预先确定的m个值S1、S2、...、和Sm中选择k个值S1、S2、...、和Sk,其中,S1、S2、...、和Sm是小于n的非负整数,而m是不小于3又不小于k的整数;以及
循环子步骤,用来将所述n位输入数据独立地循环移位S1位、S2位、...、和Sk位。
CNB001043471A 1999-05-26 2000-03-15 数据加密装置和方法 Expired - Lifetime CN1282324C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP146079/99 1999-05-26
JP146079/1999 1999-05-26
JP14607999 1999-05-26

Publications (2)

Publication Number Publication Date
CN1275846A CN1275846A (zh) 2000-12-06
CN1282324C true CN1282324C (zh) 2006-10-25

Family

ID=15399648

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB001043471A Expired - Lifetime CN1282324C (zh) 1999-05-26 2000-03-15 数据加密装置和方法

Country Status (9)

Country Link
US (1) US6304657B1 (zh)
EP (1) EP1056240B1 (zh)
KR (1) KR100349332B1 (zh)
CN (1) CN1282324C (zh)
BR (1) BRPI0000172B1 (zh)
CA (1) CA2298055C (zh)
DE (1) DE69906037T2 (zh)
MY (1) MY125798A (zh)
SG (1) SG85691A1 (zh)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7177421B2 (en) * 2000-04-13 2007-02-13 Broadcom Corporation Authentication engine architecture and method
FR2814009B1 (fr) * 2000-09-14 2003-01-31 Jean Roland Riviere Procede et dispositif de transformation de donnees a caractere convolutif et decalages variables, et systemes les mettant en oeuvre
WO2002056538A2 (en) * 2001-01-12 2002-07-18 Broadcom Corporation Implementation of the shai algorithm
DE60301750T2 (de) * 2002-04-03 2006-07-06 Matsushita Electric Industrial Co., Ltd., Kadoma Vorrichtung zur Erzeugung eines erweiterten Schlüssels, Verschlüsselungsvorrichtung und Verschlüsselungssystem
US7376235B2 (en) * 2002-04-30 2008-05-20 Microsoft Corporation Methods and systems for frustrating statistical attacks by injecting pseudo data into a data system
US7343011B2 (en) * 2002-07-15 2008-03-11 Conexant, Inc. Secure telecommunications system for wireless local area networks
US7796752B2 (en) * 2002-11-04 2010-09-14 Marvell International Ltd. Cipher implementation
US7346160B2 (en) * 2003-04-23 2008-03-18 Michaelsen David L Randomization-based encryption apparatus and method
US7257225B2 (en) * 2003-12-29 2007-08-14 American Express Travel Related Services Company, Inc. System and method for high speed reversible data encryption
US7526643B2 (en) * 2004-01-08 2009-04-28 Encryption Solutions, Inc. System for transmitting encrypted data
US7752453B2 (en) 2004-01-08 2010-07-06 Encryption Solutions, Inc. Method of encrypting and transmitting data and system for transmitting encrypted data
US8031865B2 (en) * 2004-01-08 2011-10-04 Encryption Solutions, Inc. Multiple level security system and method for encrypting data within documents
JP4101225B2 (ja) * 2004-10-19 2008-06-18 キヤノン株式会社 電子機器及び情報処理装置及びそれらの制御方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
DE602005023984D1 (de) * 2005-07-29 2010-11-18 Infineon Technologies Ag Vorrichtung und Verfahren zur Erfassung eines Fehlers in einem Leistungssignal
US7388781B2 (en) * 2006-03-06 2008-06-17 Sandisk Il Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
US8848442B2 (en) * 2006-03-06 2014-09-30 Sandisk Il Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
US8135130B2 (en) * 2006-06-23 2012-03-13 Panasonic Corporation Data encryption apparatus, data converting method, data converting program, recording medium and integrated circuit
CN101237321B (zh) * 2008-02-03 2010-12-08 西北农林科技大学 基于循环队列移位规则的加密方法
US9070453B2 (en) * 2010-04-15 2015-06-30 Ramot At Tel Aviv University Ltd. Multiple programming of flash memory without erase
US8379847B2 (en) * 2010-06-30 2013-02-19 International Business Machines Corporation Data and control encryption
KR101148560B1 (ko) * 2010-09-01 2012-05-23 중앙대학교 산학협력단 비트 조합 순서를 이용한 암호화 방법 및 장치
KR101312374B1 (ko) * 2011-07-25 2013-09-27 소프트포럼 주식회사 데이터 크기 조정 장치 및 방법
CN104318134B (zh) * 2014-11-05 2017-06-06 北京深思数盾科技股份有限公司 一种数据保护方法
CN105022961B (zh) * 2015-06-29 2018-07-06 北京深思数盾科技股份有限公司 一种计算机数据的保护方法及装置
CN106600788A (zh) * 2016-12-23 2017-04-26 嘉应学院 一种用于密码锁的实现时间数据安全交互的方法
CN110336662B (zh) * 2019-06-06 2022-02-18 平安科技(深圳)有限公司 数字信息加密方法、装置、计算机设备和存储介质
US10637837B1 (en) 2019-11-27 2020-04-28 Marpex, Inc. Method and system to secure human and also internet of things communications through automation of symmetric encryption key management
CN115277192B (zh) * 2022-07-27 2024-01-30 维沃移动通信有限公司 信息加密方法、装置及电子设备

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4255811A (en) * 1975-03-25 1981-03-10 International Business Machines Corporation Key controlled block cipher cryptographic system
DE2658065A1 (de) * 1976-12-22 1978-07-06 Ibm Deutschland Maschinelles chiffrieren und dechiffrieren
US5003597A (en) * 1989-12-21 1991-03-26 Xerox Corporation Method and apparatus for data encryption
US5054067A (en) * 1990-02-21 1991-10-01 General Instrument Corporation Block-cipher cryptographic device based upon a pseudorandom nonlinear sequence generator
US5727062A (en) * 1995-07-06 1998-03-10 Ritter; Terry F. Variable size block ciphers
FR2737370B1 (fr) * 1995-07-27 1997-08-22 Bull Cp8 Procede de communication cryptographique
US5724428A (en) * 1995-11-01 1998-03-03 Rsa Data Security, Inc. Block encryption algorithm with data-dependent rotations

Also Published As

Publication number Publication date
SG85691A1 (en) 2002-01-15
EP1056240A1 (en) 2000-11-29
US6304657B1 (en) 2001-10-16
CA2298055A1 (en) 2000-11-26
MY125798A (en) 2006-08-30
BR0000172A (pt) 2001-01-16
CA2298055C (en) 2007-07-10
CN1275846A (zh) 2000-12-06
BRPI0000172B1 (pt) 2015-10-27
KR100349332B1 (ko) 2002-08-21
DE69906037D1 (de) 2003-04-24
KR20000076501A (ko) 2000-12-26
EP1056240B1 (en) 2003-03-19
DE69906037T2 (de) 2003-08-28

Similar Documents

Publication Publication Date Title
CN1282324C (zh) 数据加密装置和方法
CN1203431C (zh) 公用密钥加密装置
CN1879138A (zh) 密码处理装置、密码处理方法及其计算机程序
CN1124545C (zh) 实现高速加密处理的设备和方法
CN1227908C (zh) 加密传输系统
CN1125407C (zh) 信息处理装置,信息处理方法,信息处理系统
CN1921382A (zh) 一种基于aes算法的加解密方法及加解密器
CN1808526A (zh) 数据变换装置和数据变换方法
CN1136692C (zh) 数据变换装置及数据变换方法
CN1285191C (zh) 公共密钥签字的方法和系统
CN1286457A (zh) 加密方法,加密装置,解密方法和解密装置
CN1312630A (zh) 基于分块加密方式的加密装置与方法及译码装置与方法
CN1617248A (zh) 记录装置和方法
CN1155196A (zh) 高保密性的数据加密与解密
CN1943240A (zh) 媒体数据代码转换设备
CN1855112A (zh) 内容信息提供服务器、系统和方法及内容再现设备和方法
CN1909023A (zh) 发送/接收系统和方法、发送/接收装置和方法及所用程序
CN1909449A (zh) 用于处理信息的方法、设备和程序
CN1520083A (zh) 设备键的译码、加密和加密译码装置及其方法、及其程序
CN1878059A (zh) 一种分组加密及解密算法
CN1574736A (zh) 数字收发装置及数字收发系统
CN1788450A (zh) 列混合函数的小型硬件实现
CN1921381A (zh) 密钥更新方法、加密处理方法、密码系统以及终端装置
CN1266616C (zh) 计算机加密装置及其加密方法
CN1120643C (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
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20061025