CN100574183C - 产生伪随机序列的方法 - Google Patents

产生伪随机序列的方法 Download PDF

Info

Publication number
CN100574183C
CN100574183C CNB2004800181410A CN200480018141A CN100574183C CN 100574183 C CN100574183 C CN 100574183C CN B2004800181410 A CNB2004800181410 A CN B2004800181410A CN 200480018141 A CN200480018141 A CN 200480018141A CN 100574183 C CN100574183 C CN 100574183C
Authority
CN
China
Prior art keywords
value
key
piece
constant
mkey
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.)
Active
Application number
CNB2004800181410A
Other languages
English (en)
Other versions
CN1813439A (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.)
Nagravision SARL
Original Assignee
Nagravision SA
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 Nagravision SA filed Critical Nagravision SA
Publication of CN1813439A publication Critical patent/CN1813439A/zh
Application granted granted Critical
Publication of CN100574183C publication Critical patent/CN100574183C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • H04L9/0668Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator producing a non-linear pseudorandom sequence
    • 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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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/20Manipulating the length of blocks of bits, e.g. padding or block truncation
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Nonlinear Science (AREA)
  • Storage Device Security (AREA)
  • Image Processing (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Lock And Its Accessories (AREA)

Abstract

本发明的目的是提出一种根据主密钥产生序列或子密钥的方法,其中,每一子密钥都没有给出恢复主密钥或其他任何子密钥的信息。利用根据主密钥(MKEY)产生子密钥的方法可以达到这一目的,这种方法包括下列步骤:●通过将主密钥(MKEY)与一个常数混合,对主密钥(MKEY)应用线性多样化层,得到第一值(A1),●对第一值(A1)应用非线性变换,该变换包括如下步骤:-将第一值(A1)应用于替换层,得到第二值(A2),该替换层包括至少一个替换框(sbox),每个替换框包括至少一个常数表,对于该表以输入作为指针而所指向的常数作为输出,-基于第二值(A2),利用多排列类型的扩散框得到第三值(A3),-将第三值(A3)分为相同大小的N个块,得到由N个块构成的输出第四值(A4),第四值(A4)的每个块都是第三值(A3)的N-1个块的组合结果,所缺的块是索引相同的块,-对第四值(A4)应用替换层(sigma),得到第五值(A5),-对第五值(A5)应用对称加密模块,得到子密钥(RKEY),第一值(A1)作为该模块的密钥输入。

Description

产生伪随机序列的方法
技术领域
本发明涉及一种根据第一籽数或密钥产生通过密码加密的伪随机序列的方法。
背景技术
在许多场合,必须产生与基本密钥相关的数据序列。第一种应用领域是用来产生口令,这种口令是例如每10秒所产生的除pin码之外还要求的标识号码。这种号码只在短时间内有效,避免从第三方重放。这种产生器的目的在于代替为了标识而被打印和发送给用户的老式删除表。
另一种应用领域是在采用多循环的加密算法中用来产生子密钥。其中,应当扩展第一密钥以产生大量子密钥,每一子密钥应用于一个循环。在文件US 5,214,703中,描述了这种多循环加密方法的例子。
我们期待这种产生方法的两个特性,即:在知道一个序列情况下任一其他序列(或籽数)的不可预知性,和序列在任一指向上的再现。在序列被用作加密子密钥时,后一个特性尤其有用,因为解密需要用到次序颠倒的子密钥。
一般解决办法是将籽数或主密钥应用于LFSR(逻辑反馈移位寄存器)。LFSR产生器产生所谓线性递归序列(LRS),因为所有运算都是线性的。一般而言,序列在出现重复之前的长度取决于两个因素:反馈分接和初始状态。任一给定大小m(寄存器的数量)的LFSR在周期N=2m-1期间都能产生所有可能的状态,但只有当选择了适当的反馈分接或期限时才行。这种序列称为最大长度序列、最大序列或不太常用的最长序列。
已知的方法利用这种移位寄存器的输出来逐块产生子密钥,以便提供给加密过程的各循环。
一般认为:已知以这种方式产生的一个序列就等于开放了访问其他序列或籽数的可能性。
发明内容
本发明的目的是提出一种根据主密钥产生序列或子密钥的方法,其中,每一子密钥都没有给出恢复主密钥或其他任何子密钥的信息。
利用根据主密钥(MKEY)产生子密钥的方法可以达到这一目的,这种方法包括下列步骤:
-通过将主密钥(MKEY)与一个常数混合,对主密钥(MKEY)应用线性多样化层,得到第一值(A1),
-对第一值(A1)应用非线性变换,该变换包括如下步骤:
-将第一值(A1)应用于替换层,得到第二值(A2),该替换层包括至少一个替换框(sbox),每个替换框包括至少一个常数表,对于该表以输入作为指针而所指向的常数作为输出,
-基于第二值(A2),利用多排列类型的扩散框得到第三值(A3),
-将第三值(A3)分为相同大小的N个块,得到由N个块构成的输出第四值(A4),第四值(A4)的每个块都是第三值(A3)的N-1个块的组合结果,所缺的块是索引相同的块,
-对第四值(A4)应用替换层(sigma),得到第七值(A7),
-对第七值(A7)应用对称加密模块(SENC),得到子密钥(RKEY),第一值(A1)作为该模块的密钥输入。
这种方法可概括如下:基于线性多样化模块的第一级和基于非线性多样化模块的第二级。
线性多样化通过将主密钥与伪随机值混合来实现。产生这种伪随机值的一种普通方法是利用LFSR功能。这种功能可以用来在无需保存常数表的情况下快速产生一些值。
LFSR装有第一常数并通过移位来产生长度与密钥长度相同的比特流。然后,将该比特流与主密钥混合(XOR)以产生值A1。
第二级的目的在于产生值A1的非线性多样化。
该级包括五个主层。第一主层是替换层。
替换层的用途在于将输入值变换到输出值,而无需任何简单的代数关系。得到这一预期置乱结果的最快方法是使用含有常数的查用表。
由于在本实施方式中输入数据长度为32比特,因此,常数个数为232,每个常数的长度都是32比特。
根据一种优选实施方式,将输入数据分离成8比特长的组,从而将常数个数减小到256字节。
然后,将32比特或64比特的输入数据分为8比特的字节并应用于替换框,以得到8比特的输出。输入数据作为地址指针,而所指向的常数作为输出。
根据该实现方式,常数表对于输入数据(32比特或64比特)的所有组来说都相同。在另一种实施方式中,常数表对输入数据的每个组来说是不同的。
保存在该表中的常数是各不相同的数的固定排列,以等于表宽的比特数进行编码。
该非线性级的第二主层是多排列矩阵。该多排列矩阵是一个方阵,其特性在于,每一可能的子方阵都有零位置不同的行列式;该矩阵的元是有限域的元。混合运算包括将输入元的向量乘以该矩阵,从而得到被定义为输出的向量。
第三层是混合层。输入值被分为相同大小的若干个块。对于给定的输入块i,输出块i是除了块i之外的所有输入块的XOR操作的结果。
第四层是另一替换层,它对输入值应用与第一层相同的运算。
第五层是多循环加密方法的单一加密步骤。输入值是前一层的结果,而密钥取自线性多样化层的结果即A1。
可以应用不同的加密方法,比如DES、CAST或IDEA。这一层的用途在于确保良好的多样化,即实现输入数据的高度扩散。
在本发明的一种特定实施方式中,有意义是的可将先前各层重新用于加密循环。这就是不重新使用已知加密循环而将执行下列步骤作为对输入值A5的加密循环以得到输出值RA的原因:
-将输入值A5分为至少两个值Y0L和Y0R,
-将该至少两个值Y0L和Y0R混合,以构成混合值Y1,
-通过将值A1的第一部分A1H与值Y1混合,得到值Y2,
-通过将值Y2应用于替换层,得到值Y3,该替换层包括至少一个替换框(sbox),每个替换框包括至少一个常数表,对于该表以输入作为指针而所指向的常数作为输出,
-基于值Y3,利用多排列类型的扩散框,得到值Y4,
-通过将值A1的第二部分A1L与值Y4混合,得到值Y5,
-通过对值Y5应用替换层,得到值Y6,
-通过将子密钥RA的第一部分RAH与值Y6混合,得到值Y7,
-将值Y7与初始的至少两个值Y0L和Y0R混合,以得到至少两个值Y8L和Y8R,Y8L和Y8R表示这一加密循环的输出值RA。
根据另一种实施方式,在将值A4应用于替换层之前先对值A4施加附加变换。
该变换仅仅是与一个常数的加运算,用XOR操作来执行。
如果所提供的密钥长度与主密钥R的长度不同,那么,首先应当将当前密钥调整到与主密钥具有相同的长度。
如果当前密钥长度大于主密钥的长度,那么截断该密钥,并将余下的比特加到截断部分(XOR操作)。
如果当前密钥长度小于主密钥的长度,那么添加一个填充部分。为了避免这一填充部分降低多样化的质量,将该填充部分与当前密钥弄混,使得填充比特自始至终沿所得到的密钥散布。
上述特征使得可以产生具有以下优点的子密钥:
-密码上是安全的
-以双向、正向和反向方式产生
-利用了可变长度(最好是8比特块)的主密钥。
附图说明
图1示出了根据主密钥产生子密钥的框图,
图2示出了基于128比特输入密钥和64比特输出的非线性模块,
图3示出了基于256比特输入密钥和64比特输出的非线性模块,
图4示出了加密过程中的主模块的框图,
图5示出了利用两个MOD模块和正交射(orthomorphism)操作OR的加密过程,
图6示出了正交射操作的框图,
图7示出了主加密模块MOD的内在部分。
具体实施方式
图1描述了这一密钥产生的主体结构。第一阶段是密钥长度调整LA。本例中,输入密钥AKEY的长度比预期长度短。过程PPr在输入密钥AKEY中添加填充数据,以使其长度达到标称长度。这一填充数据只加在密钥的末端。得到的密钥PKEY具有标称长度,比如128或256比特。
第二过程是填充弄混过程MPr。重要的是在密钥内混合填充数据,使得填充数据不会总在同一位置。通过Fibonacci递归可以实现这一混合,它将长度为ek(以比特为单位)的密钥PKEY作为输入。形式上,填充后的密钥PKEY被看作是一列ek/8字节的PKEYi(8),其中0≤i≤ek/8-1,并根据下式被混合:
MKEY i ( 8 ) = PKEY i ( 8 ) ⊕ ( MKEY i - 1 ( 8 ) + MKEY i - 2 ( 8 ) mod 2 8 ) , 0 ≤ i ≤ ek / 8 - 1
下一阶段是多样化阶段LD,即线性多样化部分DPr。如果输入密钥已具有预期长度,那么可以将该密钥直接装入到MKEY寄存器中。
这一多样化部分DPr的目的在于,通过将密钥MKEY与初始化向量混合来产生密钥MKEY的线性多样化。对于所产生的每一子密钥,该初始化向量是不同的。可以用不同的实施方式来产生这种初始化向量。
最简单的方式是保存一列常数,每一常数都具有与密钥长度相同的长度并充当初始化向量。初始化向量的数量取决于加密过程所用的循环数或系统所用的子密钥数。
在第二实施方式中,利用线性反馈移位寄存器LFSR,通过基于伪随机流的多样化部分DPr产生初始化向量。初始常数被装入到LFSR(本例中为24比特),并将该寄存器的输出即初始化向量与密钥MKEY混合以产生密钥DKEY。
这一实施方式的优点在于最小化所保存的数据量,这是因为初始化向量并不用保存而是用LFSR产生,只有初始常数才需要保存或成为算法的一部分。
在第三实施方式中,将密钥本身装入到LFSR中,并将LFSR的输出直接作为下一模块的输入即密钥DKEY。
在下一阶段即所谓非线性多样化阶段NLD是非线性模块NLxPR。这一阶段如图2和3中所详述。
图2中,密钥DKEY(与值A1相应)被分为四个部分,并应用于替换层sigma,该替换层包括至少一个替换框(sbox),每个替换框包括一个常数表,对于该表以输入作为指针而所指向的常数作为输出。输出数据A2是sigma框的输出。产生这种常数表的一种方法是采用伪随机产生器。在产生该表时,应当消除所有重复的值,使得表中的每个常数都是唯一的。
根据这种实现方式,替换框(sbox)的数目可以变化,这是因为本实施方式中的每个框都有8比特数据输入。应用于sigma模块的输入数据被分为长度为8比特的部分,再应用于替换框。然后,将每个框的输出连结起来,构成模块sigma的输出。
下一阶段是多排列类型的矩阵mu。该矩阵是(n,n)多排列类型的扩散框。一个mu块的输入被分为n个输入向量。对于本例,我们将选择4元的矩阵。扩散框是通过将4个输入向量(Aa,Ab,Ac,Ad)乘以4×4方阵Mu4所组成的,该方阵的元属于具有256个元的有限域;这些元用Mu(i,j)来表示,其中i表示行索引而j表示列索引。输入向量(Aa,Ab,Ac,Ad)与矩阵Mu4相乘的结果为向量(Ya,Yb,Yc,Yd),这些值由下式得出:
Ya=Mu4(1,1)*Aa+Mu4(1,2)*Ab+Mu4(1,3)*Ac+Mu4(1,4)*Ad
Yb=Mu4(2,1)*Aa+Mu4(2,2)*Ab+Mu4(2,3)*Ac+Mu4(2,4)*Ad
Yc=Mu4(3,1)*Aa+Mu4(3,2)*Ab+Mu4(3,3)*Ac+Mu4(3,4)*Ad
Yd=Mu4(4,1)*Aa+Mu4(4,2)*Ab+Mu4(4,3)*Ac+Mu4(4,4)*Ad
这里,“+”表示有限域中的加法,而“*”表示其乘法。Mu4的元可以选择,使得求出以上四个表达式的值所需的计算量最小。因此,与常数“1”(以下表示为“单位元”)相乘的次数被选得尽可能大。
mu块的输出值A3是四个输出值Ya,Yb,Yc,Yd的连结。
下一阶段是混合步骤。它包括将值A3分为相同大小的N个块,并得到由N个块所构成的输出值A4,值A4的每个块都是值A3的N-1个块的组合结果,所缺的块是索引相同的块。
在图2的例子中,块数为4。将其余3个块混合在一起以形成值A4的一部分。
下一阶段是加法器阶段,它加上一个常数以便在处理中插入不可预知元。
将得到的值A5应用于条件倒置器,即当将填充数据添加到输入密钥AKEY中时启动倒置。启动后,值A5的所有比特都被倒置以得到值A6。如果已将填充数据添加到输入密钥AKEY中,则进行倒置。这一阶段的目的在于,在使用全长度密钥时和填充密钥时具有不同的行为。当输入较短的密钥和添加填充数据时,全长度密钥可以具有理论上相同的值。当添加填充信息使输入密钥达到预期长度时,进行数据A5的倒置,使得在产生过程的进程中引进附加多样化。
然后,将所得到值A6应用于上面已描述的替换层sigma。
通过将两个元混合,使得替换层的输出值A7的长度减小了一半。
然后,将该长度减小的值A8应用于对称加密模块SENC,其中,从过程的主要输入(即DKEY)得到密钥。如上所述,这一模块基本上是一个简单对称加密过程。在本发明的框架中,不是利用众所周知的加密过程(比如IDEA,DES...),而是利用同一申请人的专利申请EP 03011696.6中所述的过程来执行加密过程。在本申请中将该文献作为参考。确定最小循环数,使得使用整个密钥DKEY。由于该密钥比加密步骤的输入长度更长,因此,该密钥被分割并应用于串联的不同循环。
这一加密过程参照图4-7描述。
图4示出了表示模块MOD的加密过程的框架。本例中64比特的输入数据(用各自为32比特的两个部分X0L和X0R来表示)首先在混合单元MX中被混合,以得到X1值。这一混合单元是为了提供两倍32比特数据的32比特图像。这可以用不同的方法来实现,比如利用XOR操作、模加或利用任意组定律(group law)来实现。
下一步用块f32来表示,该块具有32比特输入X1和32比特输出X7,也使用子密钥DK。该块的详细描述参照图7给出(见后)。
块f32的输出X7应用于两个混合块MX,这两个块与两个输入X0L和X0H连接。
得到的数据X8L和X8R表示模块MOD的两个64比特输出X8。
图5示出了利用两个完全相同的模块MOD(即MOD1和MOD2)的整个加密过程。输入数据A8由长度各自为32比特的两个部分X0L1和X0R1构成。
对称加密过程参照图2中的SENC。这一模块相应于图5的框图。
然后,将输出X0L1和X0R1作为第一模块MOD1的输入。该第一模块处理数据时利用第一子密钥DK1。DK1是主密钥DKEY的一部分。对X0L1和X0R1的处理与参照图4所述的处理相同。该第一模块MOD1的输出是两个输出X8L1和X8R1。对这些输出之一(比如图5中所示的X8L1)应用正交射操作。由该正交射操作所得到的输出被标记为X0L2。在第二处理模块MOD2中,将第一模块MOD1的处理所得到的另一个值X8R1以及由正交射操作所得到的输出X0L2作为输入。模块MOR是模块MOD在对该模块的输出之一应用正交射操作OR后的结果。
该第二模块MOD2将基于主密钥DKEY的第二部分DK2对其输入数据进行处理。该第二模块的输出在图4中被标记为X8L2和X8R2。在汇合模块AS中,将这些输出汇合以构成子密钥RKEY。
该汇合模块AS的功能可以用不同的方法来实现,比如选择X8L2的最低位和X8R2的最高位,或者选择X8L2的所有奇数位和X8R2的所有偶数位。还可以采用汇合结果数据RKEY的其他方法,只要RKEY的所有比特都包含在X8L2和X8R2中。
图7详细示出了图4的块f32的功能。在该块中,输入32比特长的数据X1。这一数据通过分离模块SPMU按8比特长的块(X1a,X1b,X1c,X1d)进行分离,在图7中还用X1’来表示。
该块具有将输入数据X1分离的功能,使得得到的值X1a、X1b、X1c和X1d的所有比特都在X1中。将这四个值与密钥DK的最高值DKH(根据所涉及的模块(MOR或MOD),它可以是DK1或DK2)进行混合,从而形成四个值X2a、X2b、X2c和X2d。
两个子密钥DKL和DKH的产生通过分离模块SP来进行。
将这些值X2a至X2d中每一个应用于替换层,替换层包括至少一个替换框(sbox),每个替换框包括一个常数表,对于该表以输入作为指针而所指向的常数作为输出。输出数据在图7中被标记为X3a、X3b、X3c、X3d(构成值X3)。
该替换层在描述模块sigma时已参照图2作了描述。得到的值为X3。
将值X3应用于与图2的mu模块相应的Mu4模块。得到的值为X4。
然后,将数据的输出数据X4与子密钥DK的第二部分DKL混合,以得到值X5a、X5b、X5c、X5d(构成值X5)。
然后,将这些值X5a至X5d中每一个应用于替换块(sbox),以得到值X6a、X6b、X6c、X6d(构成值X6)。将这些值与子密钥DK的第一部分DKH混合,以得到新的值X7a、X7b、X7c、X7d(构成值X7)。
然后,如图5中所述那样,在汇合模块AS中,将这些值X7a、X7b、X7c、X7d汇合以构成输出数据X7。这一数据对应于图4中的块f32的输出数据X7。
图6示出正交射操作的一种实施方式。输入数据记为ZI,而输出数据记为ZO。数据长度对该操作而言无关紧要。首先,利用分离模块SP将输入数据ZI分为相同长度的两个值ZL和ZR。然后,利用所谓MX混合单元将这两个值混合,再将该单元的输出应用于汇合模块AS。另一分离值ZR无需修改直接应用于汇合模块AS。该模块包括两个输入,并将这些数据组合形成输出值ZO。该模块起到与分离模块SP相反的作用。本实施方式的特性在于,汇合模块的输入相对于分离模块SP的输出进行了交错。分离模块SP的右输出ZR应用于汇合模块AS的左输入,而分离模块SP的左输出ZL在与分离模块SP的另一输出混合后应用于汇合模块AS的右输入。
图3是根据主密钥DKEY产生子密钥RKEY的另一实施方式。当面临只能处理有限长度的数据的模块时,如果要处理更长的密钥,必须将输入密钥DKEY分为多个单元并对它们进行并行处理。参照图2所描述的原理除了在构成值A4时不同以外都相同。
为简明起见,将从值X3相混合的单元个数限于3个。
在对称加密过程SENC阶段,输入密钥DKEY被分为四个部分,并应用于三个独立的加密模块MOR64,这些模块使正交射操作应用于所得到的值的一半。最后一个模块MOD64是没有正交射操作的一个循环加密过程。
从值A8到RKEY,以四个循环执行加密过程,每一循环都利用输入密钥DKEY的一个部分。前三个循环使用模块MOR,即在MOD模块的输出之一中具有正交射操作,而最后一个循环为MOD类型的,即没有正交射操作。
重要的一点是以相反的次序产生子密钥。这一特性在多循环加密过程中使用子密钥时是有益的。
这在线性多样化部分DPr阶段实现。与密钥MKEY混合所用的初始化向量的集合以相反的次序被应用。当利用LFSR产生初始化向量时,寄存器以相反的次序(反向过程)定时,而装入到寄存器中的初始值是表示正向过程中所用的最后初始化向量的末尾值。

Claims (6)

1.一种根据主密钥MKEY产生子密钥的方法,包括如下步骤:
-通过将主密钥MKEY与一个常数混合,对主密钥MKEY应用线性多样化层,得到第一值A1,
-对第一值A1应用非线性变换,该变换包括如下步骤:
-通过将第一值A1应用于替换层sigma,得到第二值A2,该替换层sigma包括至少一个替换框sbox,每个替换框sbox包括至少一个常数表,对于该表以输入作为指针而所指向的常数作为输出,
-基于第二值A2,利用多排列类型的扩散框得到第三值A3,
-将第三值A3分为相同大小的N个块,得到由N个块构成的输出第四值A4,第四值A4的每个块都是第三值A3的N-1个块的组合结果,所缺的块是索引相同的块,
-通过对第四值A4应用所述替换层sigma,得到第七值A7,
-通过对第七值A7应用对称加密模块SENC,得到子密钥RKEY,第一值A1作为该模块的密钥输入。
2.权利要求1的方法,其特征在于,所提供的密钥AKEY的长度小于主密钥MKEY的长度,这种方法包括根据以下步骤从所提供的密钥AKEY得到主密钥MKEY:
-添加填充数据,以便使所提供的密钥AKEY完整达到主密钥MKEY的长度,
-将该填充数据与所提供的密钥AKEY混合,使得填充比特自始至终沿将该填充数据与所提供的密钥AKEY混合所得到的密钥DKEY散布。
3.权利要求1或2的方法,其特征在于,利用装有第一常数的LFSR伪随机地产生所述与主密钥MKEY混合以得到第一值A1的常数。
4.权利要求1或2的方法,其特征在于,如果对称加密模块SENC的输入长度小于第七值A7的长度,那么该方法包括以下步骤:将第七值A7除以2的倍数,并将所得到的部分两两混合以达到对称加密模块SENC的输入长度。
5.权利要求1或2的方法,其特征在于,在应用于替换层sigma之前,将另一个常数添加到第四值A4上。
6.权利要求2的方法,其特征在于,在将填充数据添加到所提供的密钥AKEY上时,对应用替换层sigma的第四值A4的所有比特进行倒置。
CNB2004800181410A 2003-09-05 2004-09-02 产生伪随机序列的方法 Active CN100574183C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP03103307A EP1513285A1 (en) 2003-09-05 2003-09-05 Method for generating pseudo-random sequence
EP03103307.9 2003-09-05

Publications (2)

Publication Number Publication Date
CN1813439A CN1813439A (zh) 2006-08-02
CN100574183C true CN100574183C (zh) 2009-12-23

Family

ID=34130323

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004800181410A Active CN100574183C (zh) 2003-09-05 2004-09-02 产生伪随机序列的方法

Country Status (23)

Country Link
US (1) US7512241B2 (zh)
EP (2) EP1513285A1 (zh)
JP (1) JP4673857B2 (zh)
KR (1) KR101086940B1 (zh)
CN (1) CN100574183C (zh)
AP (1) AP1949A (zh)
AT (1) ATE407493T1 (zh)
AU (1) AU2004302919B2 (zh)
BR (1) BRPI0411184A (zh)
CA (1) CA2525541C (zh)
DE (1) DE602004016350D1 (zh)
DK (1) DK1661296T3 (zh)
EA (1) EA008677B1 (zh)
ES (1) ES2314453T3 (zh)
HK (1) HK1085592A1 (zh)
HR (1) HRP20080526T3 (zh)
IL (1) IL171934A (zh)
NO (1) NO20055403L (zh)
NZ (1) NZ543948A (zh)
PL (1) PL1661296T3 (zh)
PT (1) PT1661296E (zh)
SI (1) SI1661296T1 (zh)
WO (1) WO2005025123A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100622128B1 (ko) * 2004-12-17 2006-09-19 한국전자통신연구원 병렬 처리 축소 키 생성기
US7602906B2 (en) * 2005-08-25 2009-10-13 Microsoft Corporation Cipher for disk encryption
US8145691B2 (en) 2006-02-24 2012-03-27 Novell, Inc. Techniques for random bit generation
US20130114805A1 (en) * 2010-04-29 2013-05-09 Dongguk University Industry-Academic Cooperate Foundation Encryption system using discrete chaos function
US9160523B2 (en) * 2013-04-30 2015-10-13 The United States Of America As Represented By The Secretary Of The Air Force Apparatus and method to prevent side channel power attacks in advanced encryption standard
US9135834B2 (en) * 2013-04-30 2015-09-15 The United Sates of America as represented by the Secretary of the Air Force Apparatus and method to prevent side channel power attacks in advanced encryption standard using floating point operation
ES2924347T3 (es) * 2015-03-26 2022-10-06 Nagravision Sa Método y sistema para buscar al menos un dato específico en una unidad de usuario
RU2632119C9 (ru) * 2016-06-02 2017-11-22 Андрей Валерьевич Менячихин Устройство для построения ортоморфизмов, использующее парные разности
US10402169B2 (en) * 2017-07-12 2019-09-03 Dell Products L.P. Method and system of secure random seed generation for a cryptographically secure pseudo-random number generator
US10361627B1 (en) * 2018-09-12 2019-07-23 Texas Instruments Incorporated Reduction of low frequency noise in a discrete spread spectrum timebase
CN110909375B (zh) * 2019-10-12 2022-04-08 浙江工业大学 一种保留分布特征的地址脱敏方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5745577A (en) * 1996-07-25 1998-04-28 Northern Telecom Limited Symmetric cryptographic system for data encryption
EP1119130A2 (en) * 2000-01-21 2001-07-25 Victor Company of Japan, Ltd. Cryptosystem-related method and apparatus
CN1384621A (zh) * 2002-06-21 2002-12-11 清华大学 量子密钥分配中的加速全效及扩容方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US44651A (en) * 1864-10-11 Improvement in cider-mills
JPH06342257A (ja) * 1993-06-02 1994-12-13 Matsushita Electric Ind Co Ltd 逐次暗号方式
US5404402A (en) * 1993-12-21 1995-04-04 Gi Corporation Clock frequency modulation for secure microprocessors
US6182216B1 (en) * 1997-09-17 2001-01-30 Frank C. Luyster Block cipher method
JPH11224183A (ja) * 1998-02-05 1999-08-17 Toyo Commun Equip Co Ltd 擬似乱数発生装置
US6189095B1 (en) * 1998-06-05 2001-02-13 International Business Machines Corporation Symmetric block cipher using multiple stages with modified type-1 and type-3 feistel networks
JP3679936B2 (ja) * 1998-11-27 2005-08-03 東芝ソリューション株式会社 暗復号装置及び記憶媒体
US7162031B1 (en) * 1998-12-30 2007-01-09 Nokia Corporation Method and device for cryptographically processing data
US6578061B1 (en) * 1999-01-19 2003-06-10 Nippon Telegraph And Telephone Corporation Method and apparatus for data permutation/division and recording medium with data permutation/division program recorded thereon
US6763363B1 (en) * 1999-12-02 2004-07-13 Honeywell International Inc. Computer efficient linear feedback shift register
US6804355B1 (en) * 2000-01-06 2004-10-12 Intel Corporation Block cipher for small selectable block sizes
US20020044651A1 (en) * 2000-05-16 2002-04-18 Tuvell Walter E. Method and apparatus for improving the security of cryptographic ciphers
EP1510028A4 (en) * 2002-05-23 2008-01-23 Atmel Corp CRYPTOGRAPHIC MOTOR OF TECHNICAL EQUIPMENT BASED ON ADVANCED ENCRYPTION STANDARD (AES)
US7028059B2 (en) * 2002-06-24 2006-04-11 Sun Microsystems, Inc. Apparatus and method for random number generation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5745577A (en) * 1996-07-25 1998-04-28 Northern Telecom Limited Symmetric cryptographic system for data encryption
EP1119130A2 (en) * 2000-01-21 2001-07-25 Victor Company of Japan, Ltd. Cryptosystem-related method and apparatus
CN1384621A (zh) * 2002-06-21 2002-12-11 清华大学 量子密钥分配中的加速全效及扩容方法

Also Published As

Publication number Publication date
PL1661296T3 (pl) 2009-02-27
HRP20080526T3 (en) 2008-11-30
KR101086940B1 (ko) 2011-11-29
ATE407493T1 (de) 2008-09-15
JP2007532935A (ja) 2007-11-15
IL171934A0 (en) 2006-04-10
EA008677B1 (ru) 2007-06-29
AP1949A (en) 2009-02-05
CA2525541C (en) 2013-03-26
EP1661296A1 (en) 2006-05-31
DE602004016350D1 (de) 2008-10-16
US7512241B2 (en) 2009-03-31
IL171934A (en) 2010-11-30
AU2004302919A1 (en) 2005-03-17
JP4673857B2 (ja) 2011-04-20
EP1661296B1 (en) 2008-09-03
DK1661296T3 (da) 2008-12-08
EP1513285A1 (en) 2005-03-09
CN1813439A (zh) 2006-08-02
PT1661296E (pt) 2008-10-08
US20050053233A1 (en) 2005-03-10
HK1085592A1 (en) 2006-08-25
CA2525541A1 (en) 2005-03-17
AU2004302919B2 (en) 2009-03-05
AP2005003444A0 (en) 2005-12-31
WO2005025123A1 (en) 2005-03-17
ES2314453T3 (es) 2009-03-16
EA200501622A1 (ru) 2006-08-25
KR20060119716A (ko) 2006-11-24
NZ543948A (en) 2007-08-31
BRPI0411184A (pt) 2006-07-25
SI1661296T1 (sl) 2009-02-28
NO20055403L (no) 2005-11-18

Similar Documents

Publication Publication Date Title
JP4052480B2 (ja) 疑似乱数発生方法、疑似乱数発生器、及び疑似乱数発生プログラム
EP0839418B1 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
AU635466B2 (en) Method of cryptographically transforming electronic digital data from one form to another
CN100574183C (zh) 产生伪随机序列的方法
JP2005215688A (ja) S−box演算を用いるハードウェア暗号化/復号化装置及び、その方法
JP2000066587A (ja) データ処理装置及び通信システム並びに記録媒体
CN116418481A (zh) 一种文本隐私数据双重加密保护方法、装置及设备
Masoodi et al. Symmetric algorithms I
JPH0675525A (ja) 暗号通信装置
CN102713994A (zh) 加密装置、加密方法以及程序
JP6501873B2 (ja) 暗号システムの再現可能なランダムシーケンス
Umamaheswaran et al. An algorithm for encrypting/decrypting textual messages
Suri et al. A Cipher based on Multiple Circular Arrays
Ezzahra Design of Secure Hybrid Cellular Automata-Based Symmetric Cryptographic Systems
abdual Rahman et al. A new approach for Encryption using radix modular
Rahma et al. Proposed Algorithm for Encrypting the (JPEG) Compressed Image
Mukherjee et al. Introduction and Preliminaries
Kaminsky Cellular Automata Based Stream Ciphers Lecture Notes
Chang Fast Quantum Algorithms of Breaking the Data Encryption Standard
Ahmed Tariq et al. Proposal of Two Secure Compression Algorithms
Prakash AHCS (Advanced Hybrid Cryptographic System)
Nakahara Jr Key-Shedule Analysis of AES Candidates
Yufang et al. DYNAMIC MDS MATRICES
Chackochan et al. Low Power and Area Optimized VHDL Implementation of AES
JP2001134176A (ja) 暗号化方法,暗号通信方法及び暗号文作成装置

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