CN101496342A - 加密装置、程序及方法 - Google Patents

加密装置、程序及方法 Download PDF

Info

Publication number
CN101496342A
CN101496342A CNA2007800277332A CN200780027733A CN101496342A CN 101496342 A CN101496342 A CN 101496342A CN A2007800277332 A CNA2007800277332 A CN A2007800277332A CN 200780027733 A CN200780027733 A CN 200780027733A CN 101496342 A CN101496342 A CN 101496342A
Authority
CN
China
Prior art keywords
array
value
variable
internal state
random number
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2007800277332A
Other languages
English (en)
Other versions
CN101496342B (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.)
NEC Software Co.,Ltd.
NEC Corp
NEC Solution Innovators Ltd
Original Assignee
NEC Corp
NEC Software Hokuriku 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 NEC Corp, NEC Software Hokuriku Ltd filed Critical NEC Corp
Publication of CN101496342A publication Critical patent/CN101496342A/zh
Application granted granted Critical
Publication of CN101496342B publication Critical patent/CN101496342B/zh
Expired - Fee Related 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number 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
    • 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/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Nonlinear Science (AREA)
  • Storage Device Security (AREA)

Abstract

提供一种在数据通信和存储时用于对数据保密的安全性高的加密装置。将基于以有限个数值的列的排序为基础的状态的内部状态作为用于生成所述模拟随机数列的内部状态,使用于生成所述模拟随机数列的临时变量中的至少一个为具有如下值的临时变量:根据采用了所述内部状态中的一个或多个数值的线性、非线性、线性与非线性的组合的结果,执行取决于比内部状态的数小的数且预先设定的左旋转移位或右旋转移位,该执行后的结果即为所述临时变量的值,并且对所述内部状态中的一个或者多个数值和所述临时变量进行运算,从而生成所述生成的模拟随机数。

Description

加密装置、程序及方法
技术领域
本发明以日本专利申请:特愿2006-199681号(平成18年7月21日申请)为优先权基础,将该申请的所有内容引用到本说明书中。
本发明涉及到一种在数据通信和存储时用于对数据保密的加密装置、计算机程序及方法。
背景技术
<序列密码概要>
用于对数据保密的方法包括加密。在密码中包括序列密码,为了进行高速地加密和解密而将明文按照位单位或者字节单位依次进行加密。典型的序列密码由生成密钥序列的密钥序列生成部和将密钥序列与明文结合的结合部构成。例如,在加密处理中,以私钥为种子生成模拟随机数(密钥序列生成部),将该模拟随机数与明文进行XOR运算(结合部),从而生成密文。其中,XOR指的是按位逻辑异或运算。
设明文为P,模拟随机数为R,密文为C的话,存在
P XOR R=C
的关系。
在解密处理中,由相同种子生成模拟随机数,并与密文进行XOR运算,从而能够得到明文。
存在如下关系,
C XOR R=(P XOR R)XOR R
       =P XOR(R XOR R)
=P XOR 0
=P
从而得到
C XOR R=P。
<序列密码的安全性>
序列密码的结合部多采用XOR等简单的处理来实现。由此,序列密码的安全性取决于密钥序列生成部生成的模拟随机数的安全性。
此处所谓的模拟随机数的安全性取决于无法通过已被观测到的模拟随机数列推测出之后产生的模拟随机数列。
例如,当密钥序列生成部生成像a、b、c、a、b、c、…这样重复的密钥序列时,通过已被观测到的模拟随机数可以预测出之后产生的模拟随机数,从而密文被解读。这是因为,能够执行结合部的逆运算。
即,预测到模拟随机数R的话,通过观测密文C,并利用
C XOR R=P
能够得到明文P。
考虑到上述情况,如果密钥序列生成部生成的模拟随机数为不可预测的随机数(真随机数),则该序列密码可以说是安全的。反之,只要能够发现能区别密钥序列生成部生成的模拟随机数与真随机数的信息,就可以认为该序列密码的安全性有某种程度的降低。
<序列密码的安全性评价方法的一个例子>
根据上述考虑方式,得到评价序列密码的安全性的方法。表示所输出的密文和模拟随机数列与真随机数列的区别的密码的攻击方法称作“Distinguishing Attack(区分攻击)”。
只要表示所输出的密文和模拟随机数列具有某种偏向或者特征,就判断为能够区别出其与真随机数。
在Distinguishing Attack中,将上述表示偏向或者特征的方法称作“Distinguisher”,将发现或者制作上述表示偏向或者特征的方法称作“构成Distinguisher”。若能够构成Distinguisher,就能够应用DistinguishingAttack。
对于某个密码,若能够应用Distinguishing Attack,则该密码就有泄漏明文或者密钥的信息的可能性,就不能够保证是安全的密码。
因此,对能够应用Distinguishing Attack的密码加以修正,使之不能够应用Distinguishing Attack的话,能够认为提高了密码的安全性。
<序列密码的具体例子>
RC4为Ron Rivest开发出来的加密方式,是经常被用作RFC2246(TLS)、WEP、WPA等密码标准的序列密码。可以说RC4的格式在RFC2246(TLS)等中被公开。
虽然RC4具有处理单位n位可变的这一特征,然而处理单位n较大的话,需要2n的存储量,密钥编排的速度也非常低。
由此,实际上以n超过8位来实现的情况比较少,超过32位的实现则是不可能的。
因此,RC4不能够在被称作32bit/64bit处理器的最近的处理器大小上实现。
32位RC4被改良成不会产生上述限制,被改良为可以由32bit/64bit处理器高速且存储量小地实现的算法。2005年G.Gong等在论文(非专利文献1)中发表了上述内容。
在非专利文献1中,当处理单位为32bit时,成功地将速度提高到RC4的大约3.1倍,将存储量降低到RC4的大约2^{-22}倍。
此外,通过增加内部变量k,将其改良成不会产生以前报告的RC4的弱点(统计性偏差)的算法。
<发明对象即攻击方法的要点>
在G.Gong等人的算法中,可以有如下的distinguisher的结构:连续输出的最低有效位(Least significant bit)一定相同。
通过该distinguisher,在大约2^{30}的数据量下能够将其与真随机数列区别开。
<攻击方法的示例即G.Gong等提出的改良算法的说明>
图2为表示在非专利文献1中由G.Gong等人提出的RC4的改良算法(32bit RC4)的图。由G.Gong等人提出的RC4型序列密码的数组S的记录数为2^{n}个,数列S的记录大小为m位。
此外,在非专利文献1的方案中,由于仅对n=8、m=32的模式定义有KSA的初始常量ai,因此在本说明书的分析中,也是对n=8、m=32的模式进行详细分析。下面,为了方便说明,将根据基本处理单位n、m表示为GGHN(n,m)。
如图2所示,由G.Gong等人提出的RC4型序列密码GGHN(n,m)由KSA(K,S)和PRGA(S)两个处理构成。
KSA(K,S)为所谓的初始设定,根据40位到256位的密钥K,对32位的256个数组进行排序,进行生成初始状态S的处理。
PRGA(S)为生成密钥序列的处理,根据状态S在每一时刻产生模拟随机数。
其中,+表示mod N后或者mod M后的算数加法运算,N=2^{8},M=2^{32}。此外,L表示私钥的位数。
首先,对KSA(K,S)的动作进行说明。
在KSA中,作为数组S的初始值,将初始变量ai带入(S[i]=ai),通过重复S记录之间的swap(Swap[S[i],S[j]])和算数加法运算(S[i]=S[i]+S[j]mod M),打乱S记录。
在KSA中,由于内部变量k也使用S记录(k=k+S[i]mod M)进行了初始化,因此PRGA中k的初始值是未知的。
在S记录的打乱过程中,循环次数r是可变的,然而为了使S记录的出现几率不确定,在m=32时确定选择r=20。在G.Gong等人的方案中,在m=64时,确定设r=40。
设KSA(K,S)结束之后PRGA(S)还没有开始的状态为时刻t=0。在时刻t=0时,期望KSA(K,S)的动作结束,通过私钥K使数组S的状态被充分地打乱。
接着,对PRGA(S)的动作进行说明。
在PRGA中,根据索引i、j对数组S的参照结果(S[(S[i]+S[j])modN])与变量k进行算数加法运算,将1字(1字=32位)作为密钥序列out=(S[(S[i]+S[j])mod N]+k)mod M)输出。此外,在密钥序列输出后用k对用于生成密钥序列而参照的S记录(S[(S[i]+S[j])mod N])进行更新(S[(S[i]+S[j])mod N]=k+S[i]mod M)。图2中的out=(S[(S[i]+S[j])mod N]+k)mod M)为输出的密钥序列。
在图3中,表示时刻t=1时的动作(PRGA的状态转变)。在数组S中,当地址1的值S[1]为A、地址A的值S[A]为B时,地址A+B的值S[A+B]为k0+A+B。
在图4中,表示时刻t=2时的动作(PRGA的状态转变)。在数组S中,当地址1的值S[1]为A、地址A的值S[A]为B、地址2的值S[2]为C、地址A+C的值S[A+C]为D、地址A+B的值S[A+B]为k0+A+B时,地址C+D的值S[C+D]为k0+B+C+D。
由G.Gong等人提出的RC4型序列密码的安全性在他们发表的论文(非专利文献1)中进行了报告。
根据该论文,由于密钥序列通过对S记录与变量k进行算数加法运算来进行屏蔽,因此通过KSA使k均匀分布的话,输出系列不会产生偏向。
此外,内部存储量的大小为RC4的4倍,并且S记录通过算数加法运算被更新,因此相对于求取内部存储量的攻击,安全性也提高了。
但是,所有的S-box记录(数组S的元素)和变量k同时为偶数时,存在以后会始终持续偶数的[weak state]。然而,从内部存储量的大小来看,weak state的存在几率小到不可能发生,因此不会有安全性方面的问题。
非专利文献1:G.Gong,K.C.Gupta,M.Hell,and Y.Nawaz,“Towards a General RC4-Like Keystream Generator,”SKLOISConference on Information Security and Cryptology,CISC 2005,LNCS3822,pp.162-174,Springer Verlag,2005.
非专利文献2:I.Mantin,and A.Shamir:“A Practical Attack onBroadcast RC4”,Fast Software Encryption,FSE 2001,LNCS 2355,pp.152-164,Springer-Verlag,2001
非专利文献3:S.Paul,B.Preneel,and G.Sekar:“DistinguishingAttacks on the StreamCipher Py”,eSTREAM,the ECRYPT Stream CipherProject,Report 2005/081,2005.
发明内容
非专利文献1~3的公开内容引用到本说明书中。下面的分析是通过本发明得到的。
<发明对象即GGHN(n,m)攻击方法Distinguishing Attack的说明>
在分析GGHN(8,32)时,对变量的标记和定义进行说明。
“·”表示算数乘法运算。
||表示数据的连结(concatenation)。
X<<<n表示数据X左旋转n位。
此外,lsb(X)为数据X的最低有效位,LSB(X)为数据X的最低有效字节(Least significant byte),即
Lsb(X)=X mod 2
LSB(X)=X mod 2^{8}。
时刻t时的变量i、j、k记做it、jt、kt。
此外,时刻t时的第x个S-box记录记做St[x]。
在时刻t时输出的密钥序列为Ot,输出起始的密钥序列的时刻为t=1。
其中,将PRGA的初始值定义为i0=0、j0=0,k0未知。
此外,攻击者在进行分析的基础上,可以自由地得到密钥序列。
<第一个的输出字和第二个的输出字之间的偏向>
首先,为了说明GGHN(8,32)的第一个输出字和第二个输出字之间产生偏向,对下面的<范例1>的条件成立的情况进行分析。
<范例1>
1.LSB(S1[i1]+S1[j1])=LSB(S1[i1]),其中,LSB(S1[i1])≠1
2.LSB(S2[i2]+S2[j2])=i2
在范例1的情况下,图5和图6表示t=1、2时数组S的最低有效字节的状态转变。在图5中,在数组S中,地址1的值S[1]为A,地址A的值S[A]应该为k0+A但却是0,出现了矛盾。在图6中,在数组S中,地址1的值S[1]为A,地址A的值S[A]为k0+A,地址A+C的值S[A+C]为2-C,地址2的值S[2]应该为k0+2但却是C,出现了矛盾。
根据图2,在t=1时,i1=1,若LSB(S1[i1])=A,则j 1=A。
其中,在满足范例1的条件1时,
LSB(S1[1]+S1[A])=LSB(S1[1])
LSB(S1[A])=0    …(1),
因此
LSB(k1)=LSB(k0+S1[j1])=LSB(k0)。
其中,当A=1时,
LSB(S1[1]+S1[1])=LSB(S1[1])
LSB(S1[1])=0≠1,
与式(1)矛盾,因此
导出LSB(S1[i1])≠1的条件。
在t=1输出的密钥序列满足下面的关系。
LSB(O1)=LSB(k0)    …(2)
同样地,在t=2时,i2=2,若LSB(S2[i2])=C,则j2=A+C。
其中,当满足范例1的条件2时,
LSB(S2[2]+S2[A+C])=2
LSB(S2[A+C])=2-C。
在t=2输出的密钥序列满足下面的关系。
LSB(O2)=LSB(k0+2)    …(3)
因此,根据式(2)、(3),第一个和第二个输出字O1、O2必定满足下面的关系式。
lsb(O1)=lsb(O2)    …(4)
此外,对于范例2也可以同样地考虑。
<范例2>
1.LSB(S1[i1]+S1[j1])=LSB(S1[i1]),其中LSB(S1[i1])≠1
2.LSB(S2[i2]+S2[j2])=j2
在范例2的情况下,图5和图7表示t=1、2时数组S的最低有效字节的状态转变。在图7中,地址1的值S[1]为A,地址2的值S[2]为C,地址A的值S[A]为k0+A,地址A+C的值S[A+C]应该为k0+A+C但却是A,出现了矛盾。
由于时刻t=1时的内部变量k与范例1相同,因此数组S的状态转变和密钥序列的关系式(2)也相同。
在t=2时满足范例2的条件2的情况下,
LSB(S2[2]+S2[A+C])=A+C
LSB(S2[A+C])=A。
对于时刻t=2时输出的密钥序列满足下面的关系。
LSB(O2)=LSB(k0+2·S1[1])    …(5)
因此,在满足范例2的条件1、2时,根据式(2)、(5),也必然成立式(4)。
这样,范例1、2均在第一个输出字O1和第二个输出字O2之间成立相同的关系式(4)。
接着,说明该式能够作为Distinguisher而利用。
<Distinguisher的成立几率和所需的数据量>
在此,对作为Distinguisher而利用的式(4)的成立几率进行说明。
如果GGHN(8,32)输出的系列为真随机数系列,则Distinguisher的式(1)的成立几率为2^{-1}。
式(4)的成立几率取决于PRGA的结构,而不取决于KSA的结构。
因此,在下面的分析中,KSA结束后的变量k与数组S分别独立地服从均匀分布。
首先,范例1、2的条件1、2的成立几率p1、p2如下所述。其中条件2的成立几率p2为考虑到范例1、2后的几率。
p1=1/256·255/256
p2=1/256·1/256+255/256·2/256
其中,若将条件1、2中的任意一个条件不满足时式(1)的成立几率假设为理想的1/2,则在GGHN(8,32)的输出系列中,可以通过下式得到式(4)的成立几率Pd。
Pd=1·p1·p2+1/2·(1-p1·p2)
  ≈1/2·(1+2^{-15.01})
因此,比真随机数系列的几率1/2大。
接着,对以式(4)为Distinguisher时用于区分GGHN(8,32)的输出系列与真随机数系列所需的数据量进行分析。
根据非专利文献2,区分两个分布所需的数据量如下所示。
在产生几率为p的事件分布X、产生几率为p(q+1)的事件分布Y中的事件e发生时,为了以无法忽略的成功几率区分X和Y,需要O(1/pq^{2})的样本(Sample)。
然而,上述定理在p<<1时成立。
在非专利文献3中,p=1/2时,区分两个分布所需的数据量如下所示。
在产生几率为p=1/2的事件分布X和产生几率为1/2(q+1)的事件分布Y中的事件e发生时,为了以无法忽略的成功几率区分X和Y,需要O(1/q^{2})的样本。
该解密中的事件e为式(4)成立的事件,可以认为随机数中事件e的分布为X,GGHN(8,32)的输出系列中事件e的分布为Y。
因此,由于能够认为p=2^{-1},q=2^{-15.01},因此解密中所需的数据量为O(2^{30.02})。
此处求得的数据量是GGHN(8,32)的KSA完全以随机的被称作permutation的假设的基础上得到的值,是根据PRGA的结构性偏向求得的理论数据量。
因此,GGHN(8,32)通过利用理论上大约2^{30}的私钥中的密钥序列的起始两个字,能够与真随机数列区别开。
在<第一个输出字和第二个输出字之间的偏向>的说明(说明书第8页第3行至第10页第12行)中,对密钥序列的起始两个字说明了Distinguisher的构成方法,然而在范例1的任意时刻t,对于连续的密钥序列的两个字也满足同样的关系。
因此,将密钥序列的起始的若干字除去的方案不会有效果。
上述的<发明对象即GGHN(n,m)攻击方法Distinguishing Attack的说明>能够总结为图5至图9。
图9表示解密所需的数据量(理论值),是在假设通过初始处理使S-box记录以同样的随机率均等输出的情况下,求得解密所需的数据量的理论值的流程的说明图。
在图9中,假设通过初始处理使S-box记录以同样的随机率均等输出。这是指在攻击时S的值可能会是1-256中的任意值。在图9中,几率p1=(1/256)、几率p2=(255/256),与图5中条件1产生的几率和条件2产生的几率分别对应。此外,在图9中,几率p3(=(1/256)·(1/256)+(255/256)(2/256)=512/2562)与图7中的条件3、或者图6中的条件4的产生几率对应。解密所需的数据量(理论值)为O(q-2)=O(230.02)。
如图8所示,能够构成G.Gong等人提出的改良算法的Distinguisher。图8为说明将以下式作为Distinguisher的图。
lsb(O1)=lsb(O2)
连续输出的低位8bit如下所示。
O1=k0
O2=k0+2A(条件3)
O2=k0+2(条件4)
因此,以式(4)为Distinguisher的话,能够区分GGHN(8,32)的输出系列和真随机数系列。
本发明的发明人们进行了用于确认该情况的实验,在下面进行说明。图10和图11对实验结果进行了总结。在图10中,表示根据计算机实验得到的几率和解密所需的数据量。在图11中,表示根据计算机实验使所提供的数据量N变化并确认图8的Distinguisher是否起作用的结果。
即,在图11中,使所提供的数据量N变化并求得图8的Distinguisher成立的次数X。对100以内的密钥进行实验求取拒绝率。在满足
X - 2 ^ { N - 1 } > ( 1 / 2 ) &CenterDot; ( 2 ^ { N - 1 } - 2 ^ { N - 2 } )
时,若不是随机数则拒绝(若是随机数则为30.5%)。下面,对该实验进行说明。
<对实验结果的说明>
在以式(4)为Distinguisher时,如图9所示,确认了能够对GGHN(8,32)的输出系列与真随机数系列进行区分。实验步骤如下所述。
1.随机改变私钥2^{w}次,将GGHN(8,32)的密钥序列分别生成2个字。
2.对1.中生成的2^{w}个密钥序列中式(1)的成立次数进行计数。
3.在2.中计数得到的次数x满足下面的关系式时,输出系列不是随机数,从而被拒绝。其中,μ为平均值,σ为标准偏差。
μ-x>σ/2
因此,在本实验中,在满足
2^{w-1}-x>1/2·(2^{w-1}-2^{w-2})^{-1/2}
的关系式时,输出系列不是随机数,从而被拒绝。
4.对1.中得到的2^{w}个私钥组分别赋予100以内的值,重复1~3,求得拒绝率。
根据将实验结果以表的形式表示的图11,在赋值了2^{28}个数据时,拒绝率为85%,与随机数的拒绝率相比,得到了50%以上的提高。
因此能够通过实验确认:通过以式(4)作为Distinguisher时的攻击方法,能够通过使用大约2^{30}字的密钥序列,能够以非常高的几率将GGHN(8,32)的输出系列与真随机数列区别开。
这样,通过将式(4)
{lsb(O1)=lsb(O2)}
作为Distinguisher时的攻击方法,以密钥序列能以较高的几率将现有的GGHN(8,32)的输出系列与真随机数列区别开,因此有着安全性较低的课题。
本发明是本发明的发明者们根据对上述课题的认识而创作出来的,其目的在于提供一种用于将数据保密的安全性高的加密装置、程序和方法。
本申请中公开的发明为了解决上述课题,构成为大致如下结构。
本发明提供使上述课题的分析方法具有耐性的方案。此外,在实现该方案时,考虑到无损于加密设计者们所要求的安全性和可实现性。
本发明的一个方面(侧面)的加密装置,根据密钥生成模拟随机数列,并通过使所述模拟随机数列作用于明文来生成密文,将基于以有限个数值的列的排序为基础的状态的内部状态作为用于生成所述模拟随机数列的内部状态,使用于生成所述模拟随机数列的临时变量中的至少一个为具有如下值的临时变量:根据采用了所述内部状态中的一个或多个数值的、线性、非线性、线性与非线性的组合的结果,执行取决于比内部状态的数小的数且预先设定的左旋转移位或右旋转移位,该执行后的结果即为所述临时变量的值,并且对所述内部状态中的一个或者多个数值和所述临时变量进行运算,从而生成所述生成的模拟随机数。
在本发明中,对于基于以所述有限个数值的列的排序为基础的状态的内部状态,也可以采用除了排序以外的线性运算和非线性运算来进行所述内部状态的更新。
在本发明中,对于基于以所述有限个数值的列的排序为基础的状态的内部状态,作为所述内部状态的更新,也可以通过采用除了排序以外的线性运算和非线性运算使所述内部状态的状态数单调增加。或者,也可以使所述内部状态的状态数单调减少。
在本发明中,对于基于以所述有限个数值的列的排序为基础的状态的内部状态,作为所述内部状态的更新,也可以通过采用除了排序以外的线性运算和非线性运算来使所述内部状态的状态数变动。
在本发明中,也可以按照每个所述模拟随机数列的输出分别进行所述内部状态的更新。所进行的更新也可以比所述模拟随机数列的输出多。所进行的更新也可以比所述模拟随机数列的输出少。
在本发明中,也可以使所述旋转移位的方向和/或数值(移位数)根据所述内部状态的数值动态地变化。
在本发明中,也可以使所述旋转移位的方向和数值(移位数)根据预先设定的表的值改变。
本发明的其他方面的加密装置包括:第一处理部(KSA),其通过重复数组S的元素排序和算数加法运算来打乱数组S的元素并作成数组S的初始状态,此时根据数组S的元素求得内部变量k的初始值;以及第二处理部(PRGA),关于第一索引变量i和第二索引变量j,对数组S的元素S[j]与内部变量k进行加法运算后的结果进行旋转移位,并以该旋转移位而得到的值对内部变量k的值进行更新,根据通过S[i]+S[j]得到的数组S的参照结果S[(S[i]+S[j])]与内部变量k的加法运算结果,输出密钥序列,在输出密钥序列后,利用内部变量k和数组元素S[i]对为生成所述密钥序列而参照的数组S的元素S[(S[i]+S[j])]进行更新。
本发明的其他方面的加密装置包括:第一处理部(KSA),其通过重复数组S的元素排序和算数加法运算来打乱数组S的元素并作成数组S的初始状态,此时根据数组S的元素求得内部变量k的初始值;以及第二处理部(PRGA),根据对第一索引变量i的数组元素S[i]进行第一移位数旋转移位后的值与第二索引变量j的算数加法运算结果,对第二索引变量j的值进行更新,根据对第二索引变量j的数组元素S[j]进行第二移位数旋转移位后的值与内部变量k的算数加法运算结果,对内部变量k的值进行更新,根据对由S[i]+S[j]得到的数组元素S[(S[i]+S[j])]进行第三移位数旋转移位后的值与内部变量k的算数加法运算结果,输出密钥序列,在输出密钥序列后,利用内部变量k和数组元素S[i]对为生成所述密钥序列而参照的数组元素S[(S[i]+S[j])]进行更新。
本发明也可以构成为包括:第一处理部(KSA),其采用初始设定数组a,进行数组a的排序而将其打乱,并对内部变量k与将所对应的数组元素a进行旋转移位后得到的值进行算数加法运算,从而求得所述内部变量k,对将数组a的元素进行旋转移位后得到的值与数组S的元素进行预定的运算,从而求得数组S;以及第二处理部(PRGA),关于第一索引变量i和第二索引变量j,对数组S的参照结果S[j]与内部变量k进行算数加法运算,并根据通过S[i]+S[j]得到的数组S的参照结果和内部变量k,输出密钥序列,在输出密钥序列后,利用内部变量k对为生成密钥序列而参照的S的记录进行更新。所述第一处理部(KSA)和第二处理部(PRGA)也可以作为计算机程序(软件)来实现。
此外,在本发明的方法中,将基于以有限个数值的列的排序为基础的状态的内部状态作为用于生成模拟随机数列的内部状态,使用于生成所述模拟随机数列的临时变量中的至少一个为具有如下值的临时变量:根据采用了所述内部状态中的一个或多个数值的、线性、非线性、线性与非线性的组合的结果,执行取决于比内部状态的数小的数且预先设定的左旋转移位或右旋转移位,该执行后的结果即为所述临时变量的值,对所述内部状态中的一个或者多个数值和所述临时变量进行预先设定的预定运算,从而生成所述模拟随机数。根据本发明,提供一种包括上述第一处理部(KSA)和第二处理部(PRGA)的各步骤的方法。
根据本发明,能够使GGHN(n,m)中的distinguisher难以构成,并且能够避免GGHN(n,m)所具有的速度性能降低的问题。由此,本发明能够提供一种在数据通信和存储时用于将数据保密的安全性高的加密装置。
附图说明
图1是表示本发明的一个实施方式的框图。
图2是表示32bit RC4(CISC 2005)中提出的RC4的改良算法的图。
图3是表示PRGA的状态转变(1)的图。
图4是表示PRGA的状态转变(2)的图。
图5是表示PRGA的分析(1)的图。
图6是表示PRGA的分析(3)的图。
图7是表示PRGA的分析(2)的图。
图8是表示PRGA的分析(4)的图。
图9是表示解密所需数据量(理论值)的图。
图10是表示解密所需数据量(实验值)的图。
图11是表示实验结果(distinguisher)的图。
图12是表示由G.Gong等人提出的序列密码的算法的图。
图13是表示本发明的变更算法的图。
图14是表示要解决的课题的具体例子1的图。
图15是表示要解决的课题的具体例子2的图。
图16是表示解决方案(1)的图。
图17是表示解决方案(2)的图。
具体实施方式
对上述的本发明进一步详细说明。图13是用于说明本发明的变更算法的图。在图13中表示本发明中应对原始算法进行改变的位置。
上述问题的分析方法利用了PRGA的结构性弱点。
并且,在分析方法中,认为所有内部存储通过KSA而服从均匀分布。
由此,在本发明的一个方面,对KSA不实施变更,仅对PRGA进行改良。
图13所示的解决方案中的算法变更(相对于图2的PRGA的算法的变更)为:在更新变量k时,进行左旋转(rotate)处理k=((k+S[j])<<<n)mod M(其中,N=2^{n},M=2^{m})。
旋转数在GGHN(n,m)时为n位。
根据本发明,使用于生成模拟随机数列的临时变量中的至少一个的内部变量k为进行了如下处理的结果:根据采用了所述内部状态中的一个或者多个数值的线性、非线性、线性与非线性的组合的结果,执行n位旋转移位((k+S[j])<<<n)后的结果,并且通过对所述内部状态中的一个或者多个数值与所述临时变量的运算,生成所述生成的模拟随机数(out=(S[(S[i]+S[j])mod N]+k)mod M)。
其中,为了说明本发明的解决方案的效果,使用字节单位的变量如下表现范例1中的内部变量k0和S1[A]、S2[A+C]。
其中,右侧为低位,LSB(k0)=k00。
并且,根据式(1),LSB(S1[A])=B0=0。
k0=k03||k02||k01||k00
S1[A]=B3||B2||B1||B0
S2[A+C]=A3||A2||A1||A0
此时,若忽略算数加法运算中产生的字节进位的影响,则图13所示的PRGA在最低有效字节必定会插入两个以上服从均匀分布的独立的变量,因此式(1)中不会产生偏向。
同样地,无论在任何字节之间进行比较,由于必定插入两个以上的服从均匀分布的独立变量,因此认为不会产生偏向。
实际上,进位会超过字节而产生影响,但是对基本思路没有影响。
此外,考虑到图13的解决方案的可实现性,所增加的处理为一次旋转处理。
作为图13的比较例,在图12中表示原始的算法。对变量k的更新是通过
k=(k+S[j])mod M
来进行。
此外,在本发明中,假设以在32位/64位处理器上的实现软件作为实现目标的情况下,可以认为n位的左旋转处理中的速度劣化较小。
此外,根据本发明,能够不需要使用新的内部存储量地进行改良,因此不会增加存储量。
由此,根据本发明,可期待图13的解决方案能够实现如下的加密模式:
·不会损害设计者们的设计方针
·无损于可实现性的优点。
接着,图16表示本发明的KSA(K,S)变更的解决方案的例子。将使a[i]左旋转8xr位后的值与变量k进行算数加法运算,并利用该值更新变量k。以S[i]和使a[i]左旋转8x(3-r)后的值的运算结果(逻辑异或运算),对S[i]进行更新。
在图16的变更KSA(K,S)的解决方案中,能够通过实验确认S-box在某种程度上是随机的,且各字节的输出都是均等的。
并且,KSA的速度变为大约2.5倍的高速(与RC4的KSA相比约为8倍低速),由于不使用初始值表,因此能够减少例如1Kbyte的存储量。
另外,图16的解决方案与使旋转移位的方向和/或移位数根据所述内部状态的数值而动态地变更相对应。也可以根据预先设定的表的值来对旋转移位的方向和移位数进行变更。
在图17中表示变更PRGA(S)的解决方案的其他示例。以使S[i]右旋转移位24位后的值(S[i]>>>24)与j的算数加法运算结果,对j的值进行更新,以使S[j]右旋转移位16位后的值(S[j]>>>16)与k的算数加法运算结果,对k的值进行更新,以使S[(S[i])+S[j])mod N]右旋转8位后的值与k的算数加法运算结果作为out。
在该解决方案的情况下,密钥序列之间的关系(第一个和第二个的输出字节O1和O2)为
O1=k0+XO2=k0+Y,
是根据X的值决定Y的值的关系。
因此,即使能够选择在索引的假设中参照的S-box记录,由于假设中使用的索引信息无法带入上述的关系式(无法带入到不受X、Y信息影响的恒等式),因此难以适用Distinguishing Attack。
另外,在本发明中,对于基于以所述有限个数值的列的排序为基础的状态的内部状态,也可以采用除了排序以外的线性运算和非线性运算来进行所述内部状态的更新。
在本发明中,对于基于以所述有限个数值的列的排序为基础的状态的内部状态,作为所述内部状态的更新,也可以通过采用除了排序以外的线性运算和非线性运算使所述内部状态的状态数单调增加。或者,作为所述内部状态的更新,也可以通过采用除了排序以外的线性运算和非线性运算使所述内部状态的状态数单调减少。
在本发明中,对于基于以所述有限个数值的列的排序为基础的状态的内部状态,作为所述内部状态的更新,也可以通过采用除了排序以外的线性运算和非线性运算来使所述内部状态的状态数变动。
在本发明中,也可以按照每个所述模拟随机数列的输出分别进行所述内部状态的更新。所进行的更新也可以比所述模拟随机数列的输出多。所进行的更新也可以比所述模拟随机数列的输出少。下面,根据实施例进行说明。
实施例
图1是用于说明本发明的一个实施例的图。图14、图15是作为比较例表示本发明要解决的课题的具体例子1、2的框图。下面,对本发明的一个实施例进行说明。如图1所示,在<<<n的处理中,对k(0)进行左旋转处理(k+S[j])<<<n,形成k(1)。以(S[(S[i]+S[j])mod N]+k(1))mod M作为out(1)。
图14是作为本发明要解决的课题的具体例子1表示从图5到图7(在范例2的条件下t=1、2时数组S的最低有效位的状态转变)的处理过程的图。状态变化以方块S表示,在图中并没有表示。首先,参照图14的比较例进行说明(算法表示在图12中)。
在时刻1,索引i变为1(参照从j(0)的箭头方向的方框输出的1)。输入了索引i(0)和1的十字框表示算数加法运算,输出i=(i+1)mod N=1。
地址i的值S[1](低位8位)为A,索引j为A。另外,在图1、图14、图15中,以四边形围住S的框为S-box,例如输入索引(例如1),S[1]为A的情况下,从框中输出A。输入j(0)和A的框(算数加法运算器)输出j(0)=(j(0)+A)mod N=A。
地址j的值S[j](低位8位)为0,变量k的值(低位8位)为
0+k0=k0。
地址i的值S[i](低位8位)为A,地址j的值S[j](低位8位)为0,因此生成输出O1所需的地址为
S[i]+S[j]=A+0=A。
地址A的值S[A](低位8位)为0,变量k的值(低位8位)为k0,因此输出O1的值(低位8位)为
0+k0=k0。
在生成输出O1后,地址A的值S[A](低位8位)被更新为
k0+A。
在时刻2,索引i变为2。
地址i的值S[i](低位8位)为C,索引j为A+C。
地址j的值S[j](低位8位)为A,变量k的值(低位8位)为
k0+A。
地址i的值S[i](低位8位)为C,地址j的值S[j](低位8位)为A,因此生成输出O2所需的地址为
S[i]+S[j]=A+C。
地址A+C的值S[A+C](低位8位)为A,变量k的值(低位8位)为k0+A,因此输出O2的值(低位8位)为
A+k0+A=k0+2A。
在生成输出O2后,地址A+C的值S[A+C](低位8位)被更新为
k0+A+C。
图15是作为图1的比较例表示本发明要解决的课题的具体例子2的图,表示从图5到图6(在范例1的条件下t=1、2时数组S的最低有效位的状态转变)的处理过程。状态变化以方块S表示,在图中并没有表示。
参照图15,在时刻1,索引i变为1。
地址i的值S[i](低位8位)为A,索引j为A。
地址j的值S[j](低位8位)为0,变量k的值(低位8位)为
0+k0=k0。
地址i的值S[i](低位8位)为A,地址j的值S[j](低位8位)为0,因此生成输出O1所需的地址为
S[i]+S[j]=A+0=A。
地址A的值S[A](低位8位)为0,变量k的值(低位8位)为k0,因此输出O1的值(低位8位)为
0+k0=k0。
在生成输出O1后,地址A的值S[A](低位8位)被更新为
k0+A。
在时刻2,索引i变为2。
地址i的值S[i](低位8位)为C,索引j为A+C。
地址j的值S[j](低位8位)为2-C,变量k的值(低位8位)为
k0+2-C。
地址i的值S[i](低位8位)为C,地址j的值S[j](低位8位)为2-C,因此生成输出O2所需的地址为
S[i]+S[j]=C+2-C=2。
地址2的值S[2](低位8位)为C,变量k的值(低位8位)为k0+2-C,因此输出O2的值(低位8位)为
C+k0+2-C=k0+2。
在生成输出O2后,地址2的值S[2](低位8位)被更新为
k0+2-C+C=k0+2。
与图14、图15的比较例不同,在本发明的一个实施例中,如图1所示,在处理过程中增加了旋转移位(<<<n)。k(0)=旋转移位(<<<n)为((k+S[j])<<<n)mod M。
在本实施例中,与图14相同地,在时刻1时索引i为1。地址i的值S[i](低位8位)为A,索引j为A的低位8位。
地址j的值S[j](低位8位)为B(低位8位为0),变量k的值为Roln(k0+B)。另外,Roln表示“Rotate-Left-Shift by n-bit,左旋转移位n位”。即,Roln(k0+B)与图13的k=((k+S[j]<<<n)mod M对应,执行k0=((k0+B)<<<n)mod M。
地址i的值S[i](低位8位)为A,地址j的值S[j]为B(低位8位为0),因此生成输出O1所需的地址为
S[i]+S[j]=A+0=A。
地址A的值S[A]为B(低位8位为0),变量k的值为Roln(k0+B),因此输出O 1的值(低位8位)为
0+Roln(k0+B)=Roln(k0+B)。
在生成输出O1后,地址A的值S[A](低位8位)被更新为
Roln(k0+B)+A。
在时刻2,索引i变为2。
地址i的值S[i](低位8位)为C,索引j为A+C的低位8位。
地址j的值S[j](低位8位)为A,变量k的值为Roln(Roln(k0+B)+A)。
地址i的值S[i](低位8位)为C,地址j的值S[j](低位8位)为A,因此生成输出O2所需的地址为
S[i]+S[j]=A+C。
地址A+C的值S[A+C](低位8位)为A,变量k的值为Roln(Roln(k0+B)+A),因此输出O2的值(低位8位)为
A+Roln(Roln(k0+B)+A)。
在生成输出O2后,地址A+C的值S[A+C](低位8位)被更新为
Roln(Roln(k0+B)+A)+C。
接着,在图1的本实施例中,根据图15,在时刻1,索引i为1。
地址i的值S[i](低位8位)为A,索引j为A的低位8位。
地址j的值S[j](低位8位)为B(低位8位为0),变量k的值为Roln(k0+B)。
地址i的值S[i]为A,地址j的值S[j]为B(低位8位为0),因此生成输出O1所需的地址为
S[i]+S[j]=A+0=A。
地址A的值S[A](低位8位)为B(低位8位为0),变量k的值为Roln(k0+B),因此输出O1的值(低位8位)为
0+Roln(k0+B)=Roln(k0+B)。
在生成输出O1后,地址A的值S[A](低位8位)被更新为
Roln(k0+B)+A。
在时刻2,索引i变为2。
地址i的值S[i](低位8位)为C,索引j为A+C的低位8位。
地址j的值S[j](低位8位)为2-C,变量k的值为Roln(Roln(k0+B)+2-C)。
地址i的值S[i]为C,地址j的值S[j]为2-C,因此生成输出O2所需的地址为
S[i]+S[j]=C+2-C=2。
地址2的值S[2](低位8位)为C,变量k的值为
Roln(Roln(k0+B)+2-C),
因此输出O2的值(低位8位)为
C+Roln(Roln(k0+B)+2-C)。
在生成输出O2后,地址2的值S[2](低位8位)被更新为
Roln(Roln(k0+B)+2-C)+C。
根据本发明,能够提供一种在数据通信和存储时用于将数据保密的安全性高的加密装置。
另外,参照图13、图16、图17说明的本发明的程序能够适用于生成密钥序列的任意应用程序中。本发明的加密装置构成为包括例如服务器装置的CPU、存储装置、网络等。私钥信息被存储在服务器装置的存储装置中。在图1所示的结构中,旋转移位运算是由CPU的ALU(运算装置)进行。
以上,参照上述实施例说明了本发明,然而本发明并不限于上述实施例的结构,当然也包括本领域技术人员能够在本发明的范围内进行的各种变形和修改。

Claims (22)

1.一种加密装置,根据密钥生成模拟随机数列,并通过使所述模拟随机数列作用于明文来生成密文,其特征在于,包括如下单元:
将基于以有限个数值的列的排序为基础的状态的内部状态作为用于生成所述模拟随机数列的内部状态,
用于生成所述模拟随机数列的临时变量中的至少一个为具有如下值的临时变量:
根据采用了所述内部状态中的一个或多个数值的、线性、非线性、线性与非线性的组合的结果,执行取决于比内部状态的数小的数且预先设定的左旋转移位或右旋转移位,该执行后的结果即为所述临时变量的值,
对所述内部状态中的一个或者多个数值和所述临时变量进行预先设定的预定运算,从而生成所述模拟随机数。
2.根据权利要求1所述的加密装置,其特征在于,
对于基于以所述有限个数值的列的排序为基础的状态的内部状态,采用除了排序以外的线性运算和非线性运算来进行所述内部状态的更新。
3.根据权利要求1所述的加密装置,其特征在于,
对于基于以所述有限个数值的列的排序为基础的状态的内部状态,采用除了排序以外的线性运算和非线性运算来进行所述内部状态的更新,使所述内部状态的状态数按照单调增加或者单调减少中的一种方式变化。
4.根据权利要求1所述的加密装置,其特征在于,
对于基于以所述有限个数值的列的排序为基础的状态的内部状态,采用除了排序以外的线性运算和非线性运算来进行所述内部状态的更新,使所述内部状态的状态数变动。
5.根据权利要求1至4中任一项所述的加密装置,其特征在于,
选择下述方式中的任意一个方式进行所述内部状态的更新:
按照每个所述模拟随机数列的输出分别进行;
所进行的更新比所述模拟随机数列的输出多;以及
所进行的更新比所述模拟随机数列的输出少。
6.根据权利要求1至5中任一项所述的加密装置,其特征在于,
使所述旋转移位的方向和/或移位数根据所述内部状态的数值动态地变化。
7.根据权利要求1至5中任一项所述的加密装置,其特征在于,
使所述旋转移位的方向和移位数根据预先设定的表的值改变。
8.根据权利要求1所述的加密装置,其特征在于,包括:
第一处理部,其通过重复数组S的元素排序和算数加法运算来打乱数组S的元素并作成数组S的初始状态,并以此作为用于生成所述模拟随机数列的内部状态,此时根据数组S的元素,求得生成所述临时变量的内部变量k的初始值;以及
第二处理部,
在生成所述模拟随机数(以下称作“密钥序列”)时,关于第一索引变量i和第二索引变量j,对数组S的元素S[j]与内部变量k进行加法运算后的结果进行旋转移位,并以该旋转移位而得到的值对内部变量k的值进行更新,
根据通过S[i]+S[j]得到的数组S的参照结果S[(S[i]+S[j])]与内部变量k的加法运算结果,输出密钥序列,
在输出密钥序列后,利用内部变量k和数组元素S[i],对为生成所述密钥序列而参照的数组S的元素S[(S[i]+S[j])]进行更新。
9.根据权利要求8所述的加密装置,其特征在于,
数组S的元素数N与旋转移位的移位数n为N=2n的关系。
10.根据权利要求1所述的加密装置,其特征在于,包括:
第一处理部,其通过重复数组S的元素排序和算数加法运算来打乱数组S的元素并作成数组S的初始状态,并以此作为用于生成所述模拟随机数列的内部状态,此时根据数组S的元素,求得生成所述临时变量的内部变量k的初始值;以及
第二处理部,
在生成所述模拟随机数(以下称作“密钥序列”)时,
根据对第一索引变量i的数组元素S[i]进行第一移位数旋转移位后的值与第二索引变量j的算数加法运算结果,对第二索引变量j的值进行更新,
根据对第二索引变量j的数组元素S[j]进行第二移位数旋转移位后的值与内部变量k的算数加法运算结果,对内部变量k的值进行更新,
根据对通过S[i]+S[j]得到的数组元素S[(S[i]+S[j])]进行第三移位数旋转移位后的值与内部变量k的算数加法运算结果,输出密钥序列,
在输出密钥序列后,利用内部变量k和数组元素S[i],对为生成所述密钥序列而参照的数组元素S[(S[i]+S[j])]进行更新。
11.根据权利要求1所述的加密装置,其特征在于,包括:
第一处理部,其采用初始设定数组a,进行数组a的排序而将其打乱,并对生成所述临时变量的内部变量k与将所对应的数组元素a进行旋转移位后得到的值进行算数加法运算,从而求得所述内部变量k,对将数组a的元素进行旋转移位后得到的值与数组S的元素进行预定的运算,从而求得作为用于生成所述模拟随机数列的内部状态的数组S;以及
第二处理部,
在生成所述模拟随机数(以下称作“密钥序列”)时,关于第一索引变量i和第二索引变量j,对数组S的参照结果S[j]与内部变量k进行算数加法运算,并根据通过S[i]+S[j]得到的数组S的参照结果和内部变量k,输出密钥序列,
在输出密钥序列后,利用内部变量k对为生成密钥序列而参照的S的记录进行更新。
12.一种程序,其特征在于,
使构成根据密钥生成模拟随机数列、并通过使所述模拟随机数列作用于明文来生成密文的加密装置的计算机执行如下处理,
将基于以有限个数值的列的排序为基础的状态的内部状态作为用于生成所述模拟随机数列的内部状态,
使用于生成所述模拟随机数列的临时变量中的至少一个为具有如下值的临时变量:
根据采用了所述内部状态中的一个或多个数值的、线性、非线性、线性与非线性的组合的结果,执行取决于比内部状态的数小的数且预先设定的左旋转移位或右旋转移位,该执行后的结果即为所述临时变量的值,
对所述内部状态中的一个或者多个数值和所述临时变量进行预先设定的预定运算,从而生成所述模拟随机数。
13.根据权利要求12所述的程序,其特征在于,
对于基于以所述有限个数值的列的排序为基础的状态的内部状态,采用除了排序以外的线性运算和非线性运算来进行所述内部状态的更新。
14.根据权利要求12所述的程序,其特征在于,
对于基于以所述有限个数值的列的排序为基础的状态的内部状态,采用除了排序以外的线性运算和非线性运算来进行所述内部状态的更新,使所述内部状态的状态数按照单调增加或者单调减少中的一种方式变化。
15.根据权利要求12所述的程序,其特征在于,
对于基于以所述有限个数值的列的排序为基础的状态的内部状态,采用除了排序以外的线性运算和非线性运算来进行所述内部状态的更新,使所述内部状态的状态数变动。
16.根据权利要求12所述的程序,其特征在于,
选择下述方式中的任意一个方式进行所述内部状态的更新:
按照每个所述模拟随机数列的输出分别进行;
所进行的更新比所述模拟随机数列的输出多;以及
所进行的更新比所述模拟随机数列的输出少。
17.根据权利要求12所述的程序,其特征在于,
使所述旋转移位的方向和/或移位数根据所述内部状态的数值动态地变化。
18.根据权利要求12所述的程序,其特征在于,
使所述旋转移位的方向和移位数根据预先设定的表的值改变。
19.根据权利要求12所述的程序,其特征在于,使所述计算机执行如下处理:
第一处理,其通过重复数组S的元素排序和算数加法运算来打乱数组S的元素并作成数组S的初始状态,并以此作为用于生成所述模拟随机数列的内部状态,此时根据数组S的元素,求得生成所述临时变量的内部变量k的初始值;以及
第二处理,
作为生成所述模拟随机数(以下称作“密钥序列”)的处理,
关于第一索引变量i和第二索引变量j,对数组S的元素S[j]与内部变量k进行算数加法运算后的结果进行旋转移位,并以该旋转移位而得到的值对内部变量k的值进行更新,
根据通过S[i]+S[j]得到的数组S的参照结果S[(S[i]+S[j])]与内部变量k的算数加法运算结果,输出密钥序列,
在输出密钥序列后,利用内部变量k和数组元素S[i],对为生成所述密钥序列而参照的数组S的元素S[(S[i]+S[j])]进行更新。
20.根据权利要求12所述的程序,其特征在于,使所述计算机执行如下处理:
第一处理,其通过重复数组S的元素排序和算数加法运算来打乱数组S的元素并作成数组S的初始状态,并以此作为用于生成所述模拟随机数列的内部状态,此时根据数组S的元素,求得生成所述临时变量的内部变量k的初始值;以及
第二处理,
作为生成所述模拟随机数(以下称作“密钥序列”)的处理,
根据对第一索引变量i的数组元素S[i]进行第一移位数旋转移位后的值与第二索引变量j的算数加法运算结果,对第二索引变量j的值进行更新,
根据对第二索引变量j的数组元素S[j]进行第二移位数旋转移位后的值与内部变量k的算数加法运算结果,对内部变量k的值进行更新,
根据对由S[i]+S[j]得到的数组元素S[(S[i]+S[j])]进行第三移位数旋转移位后的值与内部变量k的算数加法运算结果,输出密钥序列,
在输出密钥序列后,利用内部变量k和数组元素S[i],对为生成所述密钥序列而参照的数组元素S[(S[i]+S[j])]进行更新。
21.根据权利要求12所述的程序,其特征在于,使所述计算机执行如下处理:
第一处理,其采用初始设定数组a,进行数组a的排序而将其打乱,并对生成所述临时变量的内部变量k与将所对应的数组元素a进行旋转移位后得到的值进行算数加法运算,从而求得所述内部变量k,对将数组a的元素进行旋转移位后得到的值与数组S的元素进行预定的运算,从而求得作为用于生成所述模拟随机数列的内部状态的数组S;以及
第二处理,
作为生成所述模拟随机数(以下称作“密钥序列”)的处理,
关于第一索引变量i和第二索引变量j,对数组S的参照结果S[j]与内部变量k进行算数加法运算,
根据通过S[i]+S[j]得到的数组S的参照结果和内部变量k,输出密钥序列,
在输出密钥序列后,利用内部变量k对为生成密钥序列而参照的S的记录进行更新。
22.一种模拟随机数列的生成方法,其是使用计算机生成模拟随机数列的方法,其特征在于,
将基于以有限个数值的列的排序为基础的状态的内部状态作为用于生成所述模拟随机数列的内部状态,
使用于生成所述模拟随机数列的临时变量中的至少一个为具有如下值的临时变量:
根据采用了所述内部状态中的一个或多个数值的、线性、非线性、线性与非线性的组合的结果,执行取决于比内部状态的数小的数且预先设定的左旋转移位或右旋转移位,该执行后的结果即为所述临时变量的值,
对所述内部状态中的一个或者多个数值和所述临时变量进行预先设定的预定运算,从而生成所述模拟随机数。
CN2007800277332A 2006-07-21 2007-07-11 加密装置、程序及方法 Expired - Fee Related CN101496342B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP199681/2006 2006-07-21
JP2006199681 2006-07-21
PCT/JP2007/063797 WO2008010441A1 (fr) 2006-07-21 2007-07-11 dispositif de cryptage, programme et procédé

Publications (2)

Publication Number Publication Date
CN101496342A true CN101496342A (zh) 2009-07-29
CN101496342B CN101496342B (zh) 2012-05-30

Family

ID=38956774

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007800277332A Expired - Fee Related CN101496342B (zh) 2006-07-21 2007-07-11 加密装置、程序及方法

Country Status (8)

Country Link
US (1) US8374351B2 (zh)
EP (1) EP2048811A4 (zh)
JP (1) JPWO2008010441A1 (zh)
KR (1) KR101032592B1 (zh)
CN (1) CN101496342B (zh)
CA (1) CA2658476C (zh)
RU (1) RU2009106061A (zh)
WO (1) WO2008010441A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101567781A (zh) * 2009-06-09 2009-10-28 刘海云 利用排序产生的序号码加密的方法及密码机
CN102063586A (zh) * 2009-11-18 2011-05-18 意法半导体(鲁塞)公司 用于检测故障攻击的方法和装置
CN103246853A (zh) * 2012-02-06 2013-08-14 Arm有限公司 用于控制dram中的数据刷新的装置和方法
CN104331645B (zh) * 2014-11-24 2017-05-10 中国航空工业集团公司洛阳电光设备研究所 一种测试系统的加密方法

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010019593A1 (en) 2008-08-11 2010-02-18 Assa Abloy Ab Secure wiegand communications
US8244909B1 (en) * 2009-06-18 2012-08-14 Google Inc. Method, apparatus and networking equipment for performing flow hashing using quasi cryptographic hash functions
EP2336931B1 (fr) * 2009-11-18 2013-01-09 STMicroelectronics (Rousset) SAS Procédé de vérification de signature
FR2984553B1 (fr) 2011-12-15 2015-11-06 Proton World Int Nv Procede et dispositif de detection de fautes
US10452877B2 (en) 2016-12-16 2019-10-22 Assa Abloy Ab Methods to combine and auto-configure wiegand and RS485
EP3493457A1 (en) * 2017-11-30 2019-06-05 Gemalto Sa Method for protecting a source of entropy used in countermeasures securing a whitebox cryptographic algorithm
KR102183312B1 (ko) 2018-11-14 2020-11-26 국민대학교산학협력단 Duss 지원 가능한 양자난수 엔트로피 암호화용 코드 발급 장치 및 방법
KR102156568B1 (ko) 2018-12-21 2020-09-16 국민대학교산학협력단 구명용 비상신호 발신장치 및 방법
AU2020205530B2 (en) * 2019-01-10 2022-05-19 Nippon Telegraph And Telephone Corporation Secure array access apparatus, secure array access method, and program
EP4044156A4 (en) * 2019-10-10 2023-06-21 Nippon Telegraph And Telephone Corporation DEVICE, METHOD AND PROGRAM FOR MULTI-ITERATIVE SECRET CALCULATION
KR102253953B1 (ko) * 2020-06-11 2021-05-20 제주대학교 산학협력단 K-익명성 모델 및 데이터 교란화를 이용한 위치추적정보 보안 기법 및 장치
CN113282949B (zh) * 2021-07-26 2021-11-02 中国电力科学研究院有限公司 数据加密方法、数据解密方法、装置及电力数据交互系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5345508A (en) * 1993-08-23 1994-09-06 Apple Computer, Inc. Method and apparatus for variable-overhead cached encryption
US20020009208A1 (en) * 1995-08-09 2002-01-24 Adnan Alattar Authentication of physical and electronic media objects using digital watermarks
US7174013B1 (en) * 1998-10-20 2007-02-06 Lucent Technologies Inc. Efficient universal hashing method
WO2004032098A1 (ja) * 2002-10-07 2004-04-15 Kobayashi, Akira 疑似乱数発生方法及び疑似乱数発生器
JP5075336B2 (ja) 2004-12-20 2012-11-21 株式会社ダイセル 酢酸の製造方法
WO2006100801A1 (ja) * 2005-03-23 2006-09-28 Kddi Corporation キーストリーム暗号化装置および方法ならびにプログラム
US8019802B2 (en) * 2005-08-24 2011-09-13 Qualcomm Incorporated Cryptographically secure pseudo-random number generator

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101567781A (zh) * 2009-06-09 2009-10-28 刘海云 利用排序产生的序号码加密的方法及密码机
CN102063586A (zh) * 2009-11-18 2011-05-18 意法半导体(鲁塞)公司 用于检测故障攻击的方法和装置
CN102063586B (zh) * 2009-11-18 2015-11-25 意法半导体(鲁塞)公司 用于检测故障攻击的方法和装置
CN103246853A (zh) * 2012-02-06 2013-08-14 Arm有限公司 用于控制dram中的数据刷新的装置和方法
CN103246853B (zh) * 2012-02-06 2018-11-06 Arm 有限公司 用于控制dram中的数据刷新的装置和方法
CN104331645B (zh) * 2014-11-24 2017-05-10 中国航空工业集团公司洛阳电光设备研究所 一种测试系统的加密方法

Also Published As

Publication number Publication date
EP2048811A1 (en) 2009-04-15
KR20090041408A (ko) 2009-04-28
CN101496342B (zh) 2012-05-30
WO2008010441A1 (fr) 2008-01-24
JPWO2008010441A1 (ja) 2009-12-17
EP2048811A4 (en) 2015-10-21
RU2009106061A (ru) 2010-08-27
CA2658476A1 (en) 2008-01-24
KR101032592B1 (ko) 2011-05-06
US8374351B2 (en) 2013-02-12
US20090323956A1 (en) 2009-12-31
CA2658476C (en) 2014-11-04

Similar Documents

Publication Publication Date Title
CN101496342B (zh) 加密装置、程序及方法
Kumar et al. Development of modified AES algorithm for data security
Elkandoz et al. Logistic sine map based image encryption
Kester A cryptosystem based on Vigenère cipher with varying key
Ping et al. A chaos based image encryption scheme using digit-level permutation and block diffusion
Kester A Hybrid Cryptosystem based on Vigenere cipher and Columnar Transposition cipher
Hussain et al. Construction of cryptographically strong 8× 8 S-boxes
Zhao et al. A dynamic block image encryption using variable-length secret key and modified Henon map
US20120093308A1 (en) Apparatus and method for generating random data
KR101095386B1 (ko) 이산화된 카오스 함수를 이용한 암호 시스템
Mewada et al. Exploration of efficient symmetric AES algorithm
Kang et al. Fast image encryption algorithm based on (n, m, k)-PCMLCA
Fang et al. A secure chaotic block image encryption algorithm using generative adversarial networks and DNA sequence coding
CN110225222B (zh) 一种基于3d正交拉丁方和混沌系统的图像加密方法
Alexan et al. A 3-layer psn for image encryption utilizing fractional-order chen hyperchaotic map and cryptographically-secure prngs
Achkoun et al. SPF-CA: A new cellular automata based block cipher using key-dependent S-boxes
Bouchkaren et al. A fast cryptosystem using reversible cellular automata
Kumar et al. A hybrid approach for enhancing security in internet of things (IoT)
Al-Abiachi et al. A competitive study of cryptography techniques over block cipher
Obaida et al. A Robust Approach for Mixed Technique of Data Encryption Between DES and RC4 Algorithm
Banerjee et al. A New three dimensional based key generation technique in AVK
CN104837131B (zh) 一种基于批处理指数运算乘积的批Cramer-Shoup密码方法
Oladipupo et al. Modified Playfair cryptosystem for improved data security
Courtois et al. Propagation of truncated differentials in GOST
El-Fotouh et al. Statistical testing for disk encryption modes of operations

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
ASS Succession or assignment of patent right

Owner name: NEC

Free format text: FORMER OWNER: NEC SOFTWARE HOKURIKU LTD.

Effective date: 20140916

C41 Transfer of patent application or patent right or utility model
C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: Tokyo, Japan

Patentee after: NEC Corp.

Patentee after: NEC SOLUTION INNOVATORS, Ltd.

Address before: Tokyo, Japan

Patentee before: NEC Corp.

Patentee before: NEC Software Co.,Ltd.

TR01 Transfer of patent right

Effective date of registration: 20140916

Address after: Tokyo, Japan

Patentee after: NEC Corp.

Patentee after: NEC Software Co.,Ltd.

Address before: Tokyo, Japan

Patentee before: NEC Corp.

Patentee before: NEC Software Hokuriku Ltd.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120530

Termination date: 20200711

CF01 Termination of patent right due to non-payment of annual fee