CN101536062A - 密码处理装置和密码处理方法、以及计算机程序 - Google Patents

密码处理装置和密码处理方法、以及计算机程序 Download PDF

Info

Publication number
CN101536062A
CN101536062A CNA2007800408061A CN200780040806A CN101536062A CN 101536062 A CN101536062 A CN 101536062A CN A2007800408061 A CNA2007800408061 A CN A2007800408061A CN 200780040806 A CN200780040806 A CN 200780040806A CN 101536062 A CN101536062 A CN 101536062A
Authority
CN
China
Prior art keywords
box
function
cipher processing
data
mentioned
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
CNA2007800408061A
Other languages
English (en)
Other versions
CN101536062B (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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Publication of CN101536062A publication Critical patent/CN101536062A/zh
Application granted granted Critical
Publication of CN101536062B publication Critical patent/CN101536062B/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/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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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/002Countermeasures against attacks on cryptographic mechanisms
    • 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/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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/122Hardware reduction or efficient architectures
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Facsimile Transmission Control (AREA)
  • Computing Systems (AREA)
  • Computer And Data Communications (AREA)

Abstract

实现一种提高了对饱和攻击、代数攻击(XSL攻击)等攻击的抵抗性的共用密钥块密码处理结构。在执行共用密钥块密码处理的密码处理装置中,设为在设定于循环函数执行部中的作为非线性变换处理部的S盒中至少利用了两种以上多个不同的S盒的结构。根据本结构,能够提高对饱和攻击的抵抗性。另外,作为S盒的类型使不同类型的S盒共存。根据本结构,能够提高对代数攻击(XSL攻击)的抵抗性,实现安全性较高的密码处理装置。

Description

密码处理装置和密码处理方法、以及计算机程序
技术领域
本发明涉及一种密码处理装置和密码处理方法、以及计算机程序。更详细地说,涉及一种执行共用密钥块密码处理的密码处理装置和密码处理方法、以及计算机程序。
背景技术
最近,随着网络通信、电子商务的发展,确保通信中的安全成为重要的问题。确保安全的方法之一是密码技术,当前实际进行着使用了各种加密方法的通信。
例如实际应用有如下的系统:在IC卡等小型装置中嵌入密码处理模块,在IC卡与作为数据读取写入装置的读写器之间进行数据的发送接收,进行认证处理或者发送接收数据的加密、解密。
在密码处理算法中存在各种算法,大致分类为公开密钥密码方式和共用密钥密码方式,其中,上述公开密钥密码方式将加密密钥和解密密钥设定为不同的密钥、例如公开密钥和私人密钥,上述共用密钥密码方式将加密密钥和解密密钥设定为共用的密钥。
在共用密钥密码方式中也存在各种算法,其中之一是如下的方式:以共用密钥为基础生成多个密钥,使用所生成的多个密钥来反复执行块单位(64比特、128比特等)的数据变换处理。应用了这种密钥生成方式和数据变换处理的算法的代表方式是共用密钥块密码方式。
作为代表的共用密钥块密码的算法,例如已知过去作为美国标准密码的DES(Data Encryption Standard:数据加密标准)算法、现在作为美国标准密码的AES(Advanced EncryptionStandard:高级加密标准)算法等。
这种共用密钥块密码的算法主要由密码处理部和密钥调度部构成,其中,上述密码处理部具有反复执行输入数据的变换的循环函数执行部,上述密钥调度部生成在循环函数部的各循环中应用的循环密钥。密钥调度部根据作为私人密钥的主密钥(Master key)首先生成增加了比特数的扩展密钥,根据所生成的扩展密钥生成在密码处理部的各循环函数部中应用的循环密钥(副密钥)。
作为执行这种算法的具体结构,已知反复执行具有线性变换部和非线性变换部的循环函数的结构。例如代表的结构有Feistel结构。Feistel结构具有如下结构:通过作为数据变换函数的循环函数(F函数)的简单的反复,将明文变换为密文。在循环函数(F函数)中执行线性变换处理和非线性变换处理。此外,作为记载有应用了Feistel结构的密码处理的文献,例如存在非专利文献1、非专利文献2。
但是,作为该共用密钥块密码处理的问题点,存在由密码分析引起的密钥泄漏。利用密码分析容易进行密钥的分析导致该密码处理的安全性较低,实用上成为较大的问题。
非专利文献1:K.Nyberg,‘Generalized Feistel networks’,ASIACRYPT’96,Springer Verlag,1996,pp.91--104.
非专利文献2:Yuliang Zheng,Tsutomu Matsumoto,HidekiImai:On the Construction of Block Ciphers Provably Secure andNot Relying on Any Unproved Hypotheses.CRYPTO 1989:461-480
发明内容
发明要解决的问题
本发明是鉴于上述问题点而完成的,目的在于提供一种提高密码分析的难度、实现安全性较高的共用密钥块密码算法的密码处理装置和密码处理方法、以及计算机程序。
用于解决问题的方案
本发明的第一侧面在于一种密码处理装置,执行共用密钥块密码处理,其特征在于,
具有密码处理部,该密码处理部进行将循环函数反复多个循环的数据变换处理,
上述密码处理部是如下结构:
在各循环中的循环函数执行处理中进行应用了S盒的非线性变换处理,
进行作为应用于非线性变换处理的S盒而利用了至少两种以上的多个不同的S盒的处理。
并且,在本发明的密码处理装置的一个实施方式中,其特征在于,上述密码处理部是如下结构:执行应用了将数据序列数(分割数)设为2的Feistel结构或者将数据序列数(分割数)设为2以上的扩展Feistel结构的密码处理,进行应用了F函数的密码处理,该F函数将在输入数据序列和输出数据序列相同并且位于上下相邻位置的、作为循环函数执行部的F函数中的非线性变换处理设定为执行不同的非线性变换处理的不同的S盒。
并且,在本发明的密码处理装置的一个实施方式中,其特征在于,作为上述循环函数执行部的各F函数具有多个S盒,该多个S盒对分割处理对象数据得到的各分割数据执行非线性变换处理,该多个S盒由至少两种以上不同的S盒构成。
并且,在本发明的密码处理装置的一个实施方式中,其特征在于,作为上述循环函数执行部的各F函数具有多个S盒,该多个S盒对分割处理对象数据得到的各分割数据执行非线性变换处理,上述密码处理部是如下结构:以各分割数据为单位,将在输入数据序列和输出数据序列相同并且位于上下相邻位置的、作为循环函数执行部的F函数中的非线性变换处理设定为执行不同的非线性变换处理的不同的S盒。
并且,在本发明的密码处理装置的一个实施方式中,其特征在于,包含在作为上述循环函数执行部的各F函数中的S盒的种类和各S盒的数量在各F函数中是相同的设定。
并且,在本发明的密码处理装置的一个实施方式中,其特征在于,上述密码处理部是如下结构:作为应用于上述非线性变换处理的不同的具有s比特输入输出的S盒,利用如下(1)~(3)三种类型的S盒中至少两种以上不同类型的S盒:
(1)类型1:利用了扩展域GF(2s)上的逆映射:Y=X-1或者幂函数Y=Xp的S盒;
(2)类型2:组合多个t-bit的较小的S-box而制作出的S盒,其中,设为t<s;以及
(3)类型3:随机选择的S盒。
并且,在本发明的密码处理装置的一个实施方式中,其特征在于,上述密码处理部具有将应用于上述循环函数的执行的S盒设为如下(a)~(d)中的任一个的结构:
(a)将一部分设为类型1的S盒,将其它设为类型2的S盒的结构;
(b)将一部分设为类型1的S盒,将其它设为类型3的S盒的结构;
(c)将一部分设为类型2的S盒,将其它设为类型3的S盒的结构;以及
(d)将一部分设为类型1的S盒,将另一部分设为类型2的S盒,将其它设为类型3的S盒的结构。
并且,在本发明的密码处理装置的一个实施方式中,其特征在于,上述密码处理部是如下结构:在循环函数执行部内具有多个S盒,该多个S盒对分割处理对象数据得到的各分割数据执行非线性变换处理,在一个循环内利用一种类型的S盒,以循环为单位执行利用了不同类型的S盒的处理。
并且,在本发明的密码处理装置的一个实施方式中,其特征在于,上述密码处理部是如下结构:在循环函数执行部内具有多个S盒,该多个S盒对分割处理对象数据得到的各分割数据执行非线性变换处理,在一个循环内利用多个类型的S盒。
并且,在本发明的密码处理装置的一个实施方式中,其特征在于,包含在各上述循环函数执行部中的S盒的种类和各S盒的数量在各F函数中是相同的设定。
并且,在本发明的密码处理装置的一个实施方式中,其特征在于,上述密码处理部是执行按照共用密钥密码方式的密码处理的结构。
并且,在本发明的密码处理装置的一个实施方式中,其特征在于,上述密码处理部是执行按照共用密钥块密码方式的密码处理的结构。
并且,本发明的第二侧面在于一种密码处理方法,在密码处理装置中执行共用密钥块密码处理,该密码处理方法的特征在于,
具有密码处理步骤,该密码处理步骤在密码处理部中进行将循环函数反复多个循环的数据变换处理,
上述密码处理步骤是如下步骤:
在各循环中的循环函数执行处理中进行应用了S盒的非线性变换处理,进行作为应用于该非线性变换处理的S盒而利用了至少两种以上多个不同的S盒的处理。
并且,在本发明的密码处理方法的一个实施方式中,其特征在于,上述密码处理步骤执行按照共用密钥密码方式或者共用密钥块密码方式的密码处理。
并且,本发明的第三侧面在于一种计算机程序,使密码处理装置执行共用密钥块密码处理,其特征在于,
具有密码处理步骤,该密码处理步骤使密码处理部进行将循环函数反复多个循环的数据变换处理,
上述密码处理步骤是如下步骤:
在各循环中的循环函数执行处理中进行应用了S盒的非线性变换处理,进行作为应用于该非线性变换处理的S盒而利用了至少两种以上多个不同的S盒的处理。
并且,在本发明的计算机程序的一个实施方式中,其特征在于,上述密码处理步骤是如下步骤:执行按照共用密钥密码方式或者共用密钥块密码方式的密码处理。
此外,本发明的计算机程序例如是能够通过以计算机可读形式提供的存储介质、通信介质、例如CD、FD、MO等记录介质或者网络等通信介质对可执行各种程序代码的计算机系统提供的计算机程序。通过以计算机可读形式提供这种程序,在计算机系统上实现与程序相应的处理。
通过基于后述的本发明的实施例、附图的更详细的说明,本发明的进一步的其它目的、特征、优点会更清楚。此外,在本说明书中系统是多个装置的逻辑集合结构,并不限于各结构的装置在同一壳体内。
发明的效果
根据本发明的一个实施例的结构,在执行共用密钥块密码处理的密码处理装置中,设为在设定于循环函数执行部的作为非线性变换处理部的S盒中利用至少两种以上多个不同的S盒的结构。根据本结构,能够提高对饱和攻击的抵抗性。另外,根据作为S盒的类型而使不同类型的S盒共存的本发明的一个实施例的结构,能够提高对代数攻击(XSL攻击)的抵抗性,实现安全性较高的密码处理装置。
附图说明
图1是表示共用密钥块密码算法的基本结构的图。
图2是说明图1所示的共用密钥块密码处理部E10的内部结构的图。
图3是说明图2所示的密码处理部12的详细结构的图。
图4是说明作为循环函数执行部的一个结构例的SPN结构循环函数的图。
图5是说明作为循环函数执行部的一个结构例的Feistel(菲斯特尔)结构的图。
图6是说明作为循环函数执行部的一个结构例的扩展Feistel结构的图。
图7是说明非线性变换处理部的具体例的图。
图8是说明线性变换处理部的具体例的图。
图9是说明Feistel结构或者扩展Feistel结构的一般结构例的图。
图10是说明在Feistel结构或者扩展Feistel结构中配置了不同的S-box的结构例的图。
图11是说明通过配置不同的S-box来实现提高对饱和攻击的抵抗性的结构例的图。
图12是说明通过配置不同的S-box来实现提高对饱和攻击的抵抗性的结构例的图。
图13是说明通过配置不同的S-box来实现提高对饱和攻击的抵抗性的结构例的图。
图14是说明通过配置不同类型的S-box来实现提高对代数攻击(XSL攻击)的抵抗性的结构例的图。
图15是说明通过配置不同类型的S-box来实现提高对代数攻击(XSL攻击)的抵抗性的结构例的图。
图16是说明通过配置不同类型的S-box来实现提高对代数攻击(XSL攻击)的抵抗性的结构例的图。
图17是说明通过配置不同类型的S-box来实现提高对代数攻击(XSL攻击)的抵抗性的结构例的图。
图18是说明通过配置不同类型的S-box来实现提高对代数攻击(XSL攻击)的抵抗性的结构例的图。
图19是表示作为本发明所涉及的执行密码处理的密码处理装置的IC模块的结构例的图。
具体实施方式
下面,详细说明本发明的密码处理装置和密码处理方法、以及计算机程序。按照下面的项目进行说明。
1.共用密钥块密码的概要
2.通过配置多个不同的S盒来提高抵抗性的结构
(2A)通过在使用了S-box(S盒)的Feistel或者扩展Feistel型密码中配置两种以上不同的S-box来提高对饱和攻击的抵抗性的结构
(2B)通过在使用了S-box的块密码中使两种以上不同的S-box共存来提高对代数攻击(XSL攻击)的抵抗性的结构
(2C)在使用了S-box的Feistel密码或者扩展Feistel型密码中同时实现上述(2A)、(2B)的结构
3.密码处理装置的结构例
[1.共用密钥块密码的概要]
首先,说明能够应用本发明的共用密钥块密码的概要。在本说明书中,共用密钥块密码(下面为块密码)是指如下定义的密码。
块密码输入明文P和密钥K,输出密文C。将明文和密文的比特长度称为块大小,在此用n来表示。n可取任意的整数值,但是通常在每个块密码算法中是预先决定为一个的值。有时也将块长度为n的块密码称为n比特块密码。
用k表示密钥的比特长度。密钥可取任意的整数值。共用密钥块密码算法与一个或多个密钥大小对应。例如,某个块密码算法A也能是如下结构:块大小n=128,与比特长度k=128、或者k=192或者k=256的各种密钥大小对应。
如下这样表示明文[P]、密文[C]、密钥[K]的各比特大小。
明文P:n比特
密文C:n比特
密钥K:k比特
图1示出与k比特的密钥长度对应的n比特共用密钥块密码算法E的图。如图1所示,共用密钥块密码处理部E 10输入n比特的明文P和k比特的密钥K,执行预先决定的密码算法,输出n比特的密文C。此外,图1仅示出从明文生成密文的加密处理。从密文生成明文的解密处理一般使用E 10的逆函数。但是,根据加密处理部E 10的结构,在解密处理中也能够应用相同的共用密钥块密码处理部E 10,通过变更密钥的输入顺序等顺序能够进行解密处理。
参照图2说明图1所示的共用密钥块密码处理部E 10的内部结构。能够考虑将块密码分成两个部分。是密钥调度部11和密码处理部12,其中,上述密钥调度部11将密钥K作为输入,通过某个决定的步骤来扩展输入密钥K的比特长度,输出扩展密钥K’(比特长度k’),上述密码处理部12接受明文P和从密钥调度部11输入的扩展密钥K’,输入明文P,执行应用了扩展密钥K’的密码处理,执行用于生成密文C的数据变换。此外,如之前说明的那样,根据密码处理部12的结构,有时在将密文还原为明文的数据解密处理中也能够应用密码处理部12。
接着,参照图3说明图2所示的密码处理部12的详细结构。如图3所示,密码处理部12具有反复执行应用了循环函数执行部20的数据变换的结构。即,能够将密码处理部12分割为循环函数执行部20这种处理单位。循环函数执行部20作为输入接受前级的循环函数执行部的输出Xi和根据扩展密钥生成的循环密钥PKi这两个数据,在内部执行数据变换处理,将输出数据Xi+1输出到下一个循环函数执行部。此外,在第一循环中,输入是明文或者对明文的初始化处理数据。另外,最终循环的输出为密文。
在图3所示的例子中,密码处理部12具有r个循环函数执行部20,为反复进行循环函数执行部中的数据变换r次来生成密文的结构。将循环函数的反复次数称为循环数。在图示的例子中,循环数为r。
各循环函数执行部的输入数据Xi是加密过程中的n比特数据,提供某个循环中的循环函数的输出Xi+1作为下一个循环的输入。各循环函数执行部的另一个输入数据使用基于从密钥调度部输出的扩展密钥K’的数据。将该被输入到各循环函数执行部、应用于循环函数的执行的密钥称为循环密钥。在图中,将应用于i循环的循环密钥表示为RKi。扩展密钥K’例如构成为r个循环的循环密钥RK1~RKr的连接数据。
图3所示的结构是从密码处理部12的输入侧观察、将第一循环的输入数据设为X0、将从第i个循环函数输出的数据表示为Xi、将循环密钥表示为RKi的密码处理部12的结构。此外,根据该密码处理部12的结构,例如能够设为如下结构:将所应用的循环密钥的应用顺序设定为与加密处理相反,通过将密文输入到密码处理部12来输出明文。
图3所示的密码处理部12的循环函数执行部20可取各种方式。能够根据其密码算法所采用的结构(structure)来分类循环函数。作为代表的结构存在如下结构:
(a)SPN(Substitution Permutation Network:置换组合网路)结构、
(b)Feistel结构、
(c)扩展Feistel结构。
下面,参照图4~图6说明这些具体结构。
(a)SPN结构循环函数
首先,参照图4说明作为循环函数执行部20的一个结构例的SPN结构循环函数。SPN结构循环函数执行部20a具有连接了非线性变换层(S层)和线性变换层(P层)的所谓SP型结构。如图4所示,SPN结构循环函数执行部20a由如下等部分构成:异或运算部21,其对所有n比特的输入数据执行与循环密钥之间的异或(EXOR)运算;非线性变换处理部22,其输入异或运算部21的运算结果,执行输入数据的非线性变换;以及线性变换处理部23,其输入非线性变换处理部22中的非线性变换处理结果,对输入数据执行线性变换处理。线性变换处理部23的线性变换处理结果被输出到下一个循环。在最终循环中成为密文。此外,在图4示出的例子中示出了异或运算部21、非线性变换处理部22、线性变换处理部23的处理顺序,但是并不限定这些处理部的顺序,也可以设为以其它顺序进行处理的结构。
(b)Feistel结构
接着,参照图5说明作为循环函数执行部20的一个结构例的Feistel(菲斯特尔)结构。如图5所示,Feistel结构将来自前一循环的作为输入(在第一循环中为输入文)的n比特输入数据分割为n/2比特的两个数据,在各循环中进行替换并且执行处理。
如图所示,在应用了具有Feistel结构的循环函数执行部20b的处理中,对F函数部30输入一方的n/2比特数据和循环密钥。F函数部30与上述的SPN结构相同,具有连接了非线性变换层(S层)和线性变换层(P层)的所谓SP型结构。
来自前一循环的n/2比特数据和循环密钥被输入到F函数部30的异或运算部31来进行异或(EXOR)处理。并且,将该结果数据输入到非线性变换处理部32来执行非线性变换,并且,该非线性变换结果被输入到线性变换处理部33来执行线性变换。输出该线性变换结果作为F函数处理结果数据。
并且,将该F函数输出和从前一循环输入的另一个n/2比特输入输入到异或运算部34,执行异或运算(EXOR),将执行结果设定为下一个循环中的F函数的输入。此外,图示的被设定为第i循环中的F函数输入的n/2比特应用于与下一个循环的F函数输出之间的异或运算。这样,Feistel结构在各循环中相互替换输入并且执行应用了F函数的数据变换处理。
(c)扩展Feistel结构
接着,参照图6说明作为循环函数执行部20的一个结构例的扩展Feistel结构。首先,参照图5说明的Feistel结构将n比特的明文分割为两个,划分为各n/2比特来执行处理。即,是设为分割数:d=2的处理。此外,该分割数也被称为数据序列数。
在扩展Feistel结构中,是将该数据序列数(分割数)d设为2以上的任意整数的设定。能够定义与数据序列数(分割数)d的值相应的各种扩展Feistel结构。在图6所示的例子中,数据序列数(分割数)d=4,对各序列输入n/4比特的数据。在各循环中执行一个以上的作为循环函数的F函数。图示的例子是在一个循环中进行两个F函数部的循环运算的结构例。
F函数部41、42的结构与之前参照图5说明的F函数部30的结构相同,是执行循环密钥与输入值之间的异或运算、非线性变换处理、线性变换处理的结构。此外,调整输入到各F函数部的循环密钥使其比特数与输入比特一致。在图示的例子中,输入到各F函数部41、42的循环密钥为n/4比特。对构成扩展密钥的循环密钥进一步进行比特分割来生成这些密钥。此外,在将数据序列数(分割数)设为d时,输入到各序列的数据是n/d比特,输入到各F函数的密钥的比特数也被调整为n/d比特。
此外,在图6所示的扩展Feistel结构中,是将数据序列数(分割数)设为d、在各循环中并列地执行d/2个F函数的结构例,但是扩展Feistel结构可以是在各循环中执行一个以上d/2个以下F函数的结构。
如参照图4~图6说明的那样,共用密钥块密码中的密码处理部12的循环函数执行部20可取
(a)SPN(Substitution Permutation Network)结构、
(b)Feistel结构、
(c)扩展Feistel结构、
这些结构。这些循环函数执行部都具有连接了非线性变换层(S层)和线性变换层(P层)的所谓SP型结构。即,具有执行非线性变换处理的非线性变换处理部和执行线性变换处理的线性变换处理部。下面,说明这些变换处理结构。
(非线性变换处理部)
参照图7说明非线性变换处理部的具体例。如图7所示,具体地说,排列m个被称为S盒(S-box)51的s比特输入s比特输出的非线性变换表而得到非线性变换处理部50,ms比特的输入数据以每s比特进行分割并分别输入到对应的S盒(S-box)51来变换数据。在各S盒51中,例如执行应用了变换表的非线性变换处理。
当所输入的数据大小变大时存在安装上的成本变高的趋势。如图7所示,为了避免这种情况,多采用将处理对象数据X分割为多个单位、对每个单位实施非线性变换的结构。例如在将输入大小设为ms比特时,分割为各s比特的m个数据,分别对m个S盒(S-box)51输入s比特,例如执行应用了变换表的非线性变换处理,合成这些各S比特输出m个来得到ms比特的非线性变换结果。
(线性变换处理部)
参照图8说明线性变换处理部的具体例。线性变换处理部输入输入值、例如输入来自S盒的作为输出数据的ms比特的输出值作为输入值X,对该输入实施线性变换并输出ms比特的结果。线性变换处理例如执行输入比特位置的替换处理等线性变换处理,输出ms比特的输出值Y。线性变换处理例如对输入应用线性变换矩阵来进行输入比特位置的替换处理。该矩阵的一例是图8所示的线性变换矩阵。
在线性变换处理部中应用的线性变换矩阵的要素为扩展域:GF(28)域的要素、GF(2)的要素等,一般能够构成为应用了各种表现的矩阵。图8是表示具有ms比特输入输出、通过在GF(2s)上定义的m×m矩阵来定义的线性变换处理部的一个结构例的图。
[2.通过配置多个不同的S盒来提高抵抗性的结构]
如上所述,共用密钥块密码是通过循环函数的反复来进行密码处理的结构。作为该共用密钥块密码处理的问题点,存在由密码分析引起的密钥泄漏。利用密码分析容易进行密钥的分析导致该密码处理的安全性较低,实用上成为较大的问题。下面,说明通过配置多个不同的S-box(S盒)来提高抵抗性的密码处理结构。
如参照图7说明的那样,包括在循环函数执行部中的非线性变换处理部由执行非线性变换处理的多个S-box(S盒)构成。以往,这些S-box都是如下结构:应用共用的非线性变换处理用的表,在各S盒中进行共用的非线性变换处理。
在本发明中着眼于由该S-box的共用性引起的弱点、即对于密钥分析等作为密码分析的攻击较薄弱,提出通过配置多个不同的S-box来提高抵抗性的结构。
下面,作为本发明的实施例,依次说明下面三个实施例。
(2A)通过在使用了S-box的Feistel或者扩展Feistel型密码中配置两种以上不同的S-box来提高对饱和攻击的抵抗性的结构
(2B)通过在使用了S-box的块密码中使两种以上不同的S-box共存来提高对代数攻击(XSL攻击)的抵抗性的结构
(2C)在使用了S-box的Feistel密码或者扩展Feistel型密码中同时实现上述(2A)、(2B)的结构
(2A)通过在使用了S-box的Feistel或者扩展Feistel型密码中配置两种以上不同的S-box来提高对饱和攻击的抵抗性的结构
首先,说明通过在使用了S-box的Feistel或者扩展Feistel型密码中配置两种以上不同的S-box来提高对饱和攻击的抵抗性的结构。
(2A-1.饱和攻击的概要)
首先,说明作为对块密码的攻击而第一个被知道的饱和攻击。饱和攻击存在多个类型。第一类型是利用了如下性质的攻击法:在对明文的特定的字节位置改变256种值并进行输入的情况下,在数个循环的循环变换处理之后,在输出值的特定的字节位置上出现所有256种值。
另外,作为饱和攻击的其它方式的攻击,是利用了如下性质的攻击法:当对数个循环的循环变换后出现在特定的字节位置上的值计算总和时,必然为0。
例如,作为对执行循环函数的共用密钥块密码处理装置输入的256种明文P0~P255而依次输入如下这些明文P0~P255
P0=(0,0,0,0,0,0,0,0)
P1=(0,0,0,0,0,0,0,1)
.          .
.          .
P255=(0,0,0,0,0,0,0,255)
此外,在上述记载中,各[0]表示一个字节数据的0。
在依次输入这些明文P0~P255的情况下,将某个特定的循环数的数据变换处理结束之后的输出值如下那样设为C0~C255
C0=(c0,?,?,?,?,?,?,?)
C1=(c1,?,?,?,?,?,?,?)
.          .
.          .
C255=(c255,?,?,?,?,?,?,?)
上述输出中的[?]可以是任意的比特值。
如上所述,在这些输出C0~C255中具有如下性质:在特定的字节位置(在上述例子中为第一字节位置)上出现所有256种值c0~c255。这样,在预先已知0至255的值与顺序无关地必然分别出现各一次的情况下,能够进行利用了该性质的攻击。已知通过依次变更输入值地分析输出值能够估计循环密钥。
并且,在对包括在输出C0~C255中的特定的字节位置的值:c0~c255进行求和(EXOR)时,在为0的情况下,能够进行利用了该性质的攻击(密码分析)。这样,通过依次输入256种明文P0~P255地分析特定字节位置的输出能够估计密钥。
饱和攻击是如下攻击(分析)方法:在这样循环函数部的变换结果中产生带来上述那样的特定的规则的输出、即具有
出现所有256种值c0~c255或者
对特定的字节位置的值:c0~c255进行求和(EXOR)时为0
这种规则性的输出的情况下,根据这些规则性来执行攻击。
因而,在密码的设计阶段设为不产生这种特异的输出作为循环函数部的输出的结构,对设为对饱和攻击较强的密码很有效。此外,该饱和攻击不限于仅字节单位(8比特)的分析,能够对任意的比特长度进行利用了相同性质的攻击。
(2A-2)应用了Feistel结构或者扩展Feistel结构的密码处理中的问题点
接着,研究应用了Feistel结构或者扩展Feistel结构的密码处理中的问题点。
关于Feistel结构或者扩展Feistel结构,如之前参照图5、图6说明的那样,都是反复执行循环运算的结构,该循环运算应用了SP型的具有非线性变换处理部和线性变换处理部的F函数部。Feistel结构的数据序列数(分割数)限定为2、但是在扩展Feistel结构中数据序列数(分割数)被设定为2以上的任意数这一点不同。
下面,假设在应用了Feistel结构或者扩展Feistel结构的密码处理中作为循环函数执行部的F函数内的非线性变换处理部中利用了S-box的结构。如之前参照图7说明的那样,S-box对m分割输入到非线性变换处理部的ms比特数据得到的各s比特数据例如执行应用了非线性变换用表的非线性变换处理。
如之前说明的那样,以往的应用于块密码中的循环函数的执行的F函数在各循环中反复利用相同的函数。在各循环中设定了这种相同的F函数的Feistel结构或者扩展Feistel结构中,容易受到上述的饱和攻击。参照图9说明其理由。
图9是表示切出Feistel结构或者扩展Feistel结构的一部分的结构的图。即,图9示出包括在具有Feistel结构或者扩展Feistel结构的密码结构中的两个循环函数执行部、即F函数101、102。该两个F函数101、102是输入数据序列(x)和输出数据序列(y)相同并且位于上下相邻的位置的F函数。
两个F函数101、102由与循环密钥之间的异或运算部、非线性变换处理部、线性变换处理部构成。在本处理例中F函数101、102是进行32比特输入输出处理的结构,非线性变换处理部由四个S-box构成,各S-box进行8比特输入输出。
图9所示的A~J表示各种数据。即,表示如下这些各数据。
A:对先行F函数101的输入
B:先行F函数101的输出
C:后续F函数102的输入
D:后续F函数102的输出
E:对先行F函数101的输出B的异或运算数据
F:对数据A的异或运算数据
G:数据B与数据E之间的异或运算结果
H:数据D与数据G之间的异或运算结果
I:对先行F函数101输入的循环密钥
J:对后续F函数102输入的循环密钥
在之后的说明中,在用字节单位(8比特)来分割表示要在各F函数101、102中处理的32比特数据的情况下,例如在数据A是32比特数据的情况下,作为各一个字节(8比特)数据A[0]、A[1]、A[2]、A[3]的连接数据,如下这样表现。
A=A[0]|A[1]|A[2]|A[3]
在此,假设作为对图9所示的加密处理结构输入的明文而依次输入256种数据、例如
P0=(0,0,0,0)
P1=(1,0,0,0)
 .            .
 .            .
P255=(255,0,0,0)
这些明文P0~P255。此外,在上述记载中,各[0]、[1]~[255]表示一个字节数据。
将该输入值设为对图9所示的先行F函数101的输入数据A。如上所述,将数据A设为如下数据:在观察256种数据时,在第一个字节A[0]中出现0至255的全部256种值,除此以外的字节位置总是被相同的值固定。(这是由于尝试饱和攻击的攻击者有时控制明文输入来作出这种状况,因此进行这种假设。)
并且,当假设为在上述256种数据A的依次输入处理期间对数据A的异或运算数据F的值总是固定时,保证在后续F函数102的输入数据C的第一个字节C[0]中也出现0至255的全部256种值、除此以外的字节位置总是被相同的值固定。
此时,根据
I:对先行F函数101输入的循环密钥
J:对后续F函数102输入的循环密钥
以及
F:对数据A的异或运算数据
这些各数据的值的组合,能够产生下式总是成立的情况。即,
A[0](EXOR)I[0]=C[0](EXOR)J[0]
上式能够成立。
此外,(EXOR)表示异或运算,
A[0](EXOR)I[0]表示数据A[0]与数据I[0]之间的异或运算,
C[0](EXOR)J[0]表示数据C[0]与数据J[0]之间的异或运算。
式:A[0](EXOR)I[0]=C[0](EXOR)J[0]
该式无非意味着输入到两个F函数101、102中的两个S-box的值总是为相同的值。这些S-box都执行相同的非线性变换处理,对相同的输入值输出相同的输出值。因而,两个F函数101、102中的两个S-box的输出总是相同。在各F函数101、102中,由线性变换处理部的矩阵对该相同的S-box输出进行线性变换,输出到右侧的数据序列(y)的异或运算部。是图示的异或运算部111、112。
从该两个F函数101、102输出到异或运算部111、112的值B、D具有特定的差分值Δ。即,成为
B(EXOR)Δ=D。
此时,在异或运算部111中,根据
G=B(EXOR)E
的运算来算出数据G,
在异或运算部112中执行
H=G(EXOR)D。
由于G=B(EXOR)E、B(EXOR)Δ=D,因此上述式H=G(EXOR)D成为
H=B(EXOR)E(EXOR)B(EXOR)Δ
=E(EXOR)Δ。
即,由于具有固定差分值的值之间的异或运算结果为固定值Δ,因此作为结果成为
H=B(EXOR)E(EXOR)B(EXOR)Δ
=Δ(EXOR)E
=E(EXOR)Δ。
即,异或运算部112的输出H为仅是对数据E进行与固定的值Δ的异或,尽管分两级执行循环函数(F函数),也为不进行数据的搅拌这种结果。当利用该性质时,变得容易估计后续循环的循环密钥。即,即使存在后续循环也能够在使用临时设定的密钥对该循环进行解密直至解密出H的数据为止时,通过检查是否出现该性质来概率地判断临时使用的密钥是否正确。也就是说能够估计循环密钥,导致能够利用饱和攻击进行分析。
作为其对策能够根据各F函数的位置而变更应用于线性变换处理的矩阵部分,但是在各F函数的S-box相同的情况下,如果产生与上述相同的条件,则由于线性变换矩阵的要素的关联性,在后续F函数102的输出D与数据G进行异或的时刻,会产生一部分字节相互消去,有时产生对攻击者有利的状况。
这样,将在至少对相同序列进行输出的多个F函数中应用的非线性变换处理设为相同结构,存在能够利用饱和攻击来进行密钥估计的可能性。并且,根据S-box,作为其运算(EXOR)结果、即
S(A[0](EXOR)I[0])(EXOR)S(C[0](EXOR)J[0])
它们的结果,不能说都符合0至255的所有256种值都出现这种情况。严密地说,即使A[0]和C[0]两者都分别输出256种不同的值,也未必保证它们的运算(EXOR)结果得到所有256种输出值,但是根据S-box能够产生这种状况。当产生该未预期的情况时,能够利用于攻击的信息(所有值不同的信息)被保存到下一级,导致产生对于攻击者来说有利的状况。
(2A-3)通过利用多种S-box来提高抵抗性的方法
下面,说明用于使利用饱和攻击的密钥估计困难化的结构例。即,构成各F函数的非线性变换处理部、即S-box使得即使万一具备上述那样的条件也通过数据的消去使循环函数执行前的数据与执行后的数据成为不相等的数据。
参照图10说明其具体例。图10所示的结构也与图9相同,示出切出Feistel结构或者扩展Feistel结构的一部分的结构,示出输入数据序列(x)和输出数据序列(y)相同并且位于上下相邻的位置的F函数201、202。
两个F函数201、202由与循环密钥之间的异或运算部、非线性变换处理部、线性变换处理部构成。F函数201、202是进行32比特输入输出处理的结构,非线性变换处理部由四个S-box构成,各S-box进行8比特输入输出。
图10所示的A~J与图9相同,表示如下这些各数据。
A:对先行F函数201的输入
B:先行F函数201的输出
C:后续F函数202的输入
D:后续F函数202的输出
E:对先行F函数201的输出B的异或运算数据
F:对数据A的异或运算数据
G:数据B与数据E之间的异或运算结果
H:数据D与数据G之间的异或运算结果
I:对先行F函数201输入的循环密钥
J:对后续F函数202输入的循环密钥
在图10示出的结构中,设为设定在先行F函数201和后续F函数202各自中的非线性变换处理部的S-box利用了不同的S-box[S1]、[S2]的结构。
即,在先行F函数201中执行非线性变换处理的S-box[S1]和在后续F函数202中执行非线性变换处理的S-box[S2]执行不同的非线性变换处理。具体地说,例如执行应用了不同的非线性变换表的非线性变换处理,而对相同输入进行相同输出不被限定。
在此,将各S-box:S1、S2设为满足以下条件的两个不同的S-box。
当各S-box:S1、S2是执行n比特输入输出的非线性变换处理的S-box时,
(条件1)
在对任意s比特数据c依次输入所有s比特数据即2s个x的情况下,
与输入数据[x]对应的第一S-box[S1]的输出S1(x)和
与输入数据[x(EXOR)c]对应的S-box[S2]的输出S2(x(EXOR)c)最少一个具有不同的值。即,
S1(x)(EXOR)S2(x(EXOR)c)
上述式不是固定值。
并且,
(条件2)
在对任意s比特数据c依次输入所有s比特数据即2s个x的情况下,
与输入数据[x]对应的第一S-box[S1]的输出S1(x)和
与输入数据[x(EXOR)c]对应的S-box[S2]的输出S2(x(EXOR)c)最少一个具有重复值。即,
S1(x)(EXOR)S2(x(EXOR)c)
上述式不是所有2s各出现一次的形式。
其在图10中表示如下条件:
在将数据A假设为[x]
将数据F假设为[c]的情况下,
先行F函数201的S-box[S1]的输出S1(x)与
后续F函数202的S-box[S2]的输出S2(x(EXOR)c)
这两个输出不会成为完全相同或者进行异或的结果为所有值。
如图10所示那样设定满足该条件的两个S-box[S1]、[S2]。
即,在某个F函数中设为仅使用S-box[S1]的非线性变换处理部,在下一个F函数中设为仅使用S-box[S2]的非线性变换处理部。在此之后存在循环的情况下,同样地,在各F函数的非线性变换处理部中按S-box[S1]、[S2]的顺序进行设定。
这样,通过将输入数据序列和输出数据序列相同并且位于上下相邻的位置的F函数中的非线性变换处理设为执行不同的非线性变换处理的结构、即配置不同的S-box,能够使出现在输出序列的数据与出现在循环函数执行前的相同输出序列的数据具有较强相关的可能性显著降低。
即,通过利用满足上述的(条件1)的S-box,即使在两个S-box的输入关系具有固定值的差的情况下,其输出的异或也最少一次具有不同值,因此能够保证不会完全消去。
另外,通过利用满足上述的(条件2)的S-box,即使在两个S-box的输入关系具有固定值的差的情况下,其输出的异或也最少一次具有重复值,因此可以说破坏了能够利用于攻击的性质。因而,通过上述那样配置两个S-box,对饱和攻击的攻击者有利的条件减少,因此可期望能够提高对攻击的抵抗性。
即,在图10中,在各F函数201、202中的S-box的输入值相等的情况下,即使成为
A[0](EXOR)I[0]=C[0](EXOR)J[0],
各F函数的S-box的输出值,即
S1(A[0](EXOR)I[0])
S2(C[0](EXOR)J[0])
这些输出值不会在所有情况下都完全一致,结果是各F函数201、202的F函数输出B、D不完全一致,能够消除之前参照图9说明那样的现象、即
E=H(EXOR)Δ
这种在一个数据序列中循环函数(F函数)执行前后的数据仅具有固定值的差分这种可能性。
这样,通过将输入数据序列和输出数据序列相同并且位于上下相邻位置的F函数中的非线性变换处理设为执行不同的非线性变换处理的不同S-box,能够大幅提高饱和攻击的难度,提高对攻击的抵抗性。
(发展系-1)
参照图10说明的上述结构仅着眼于两个F函数的关系导出将设定在这两个F函数中的S-box设为不同的S-box这种条件,但是在三个以上的F函数中也可以说是相同的情形。例如,如图11所示,通过对每个F函数配置不同的S-box能够期望提高对饱和攻击的抵抗性。
图11示出切出Feistel结构或者扩展Feistel结构的一部分的结构,示出输入数据序列(x)和输出数据序列(y)相同并且位于上下相邻位置的三个F函数211~213。
在F函数211的非线性变换处理部中设定S-box[S1],
在F函数212的非线性变换处理部中设定S-box[S2],
在F函数213的非线性变换处理部中设定S-box[S3],
S1≠S2≠S3。
这样,作为要求多个S-box具有的条件,
(条件1)
对由k个(k>2)S-box构成的集合S1,S2,..,Sk的相互不同的两个S-box的组Si和Sj(i≠j)、对任意的c提供所有可能的2s个x作为输入时,
Si(x)和
Sj(x(EXOR)c)
这些S盒输出不完全相同,最少一个输出不同的值。即,
Si(x)和Sj(x(EXOR)c)的异或结果不是固定值。
并且,
(条件2)
对由k个(k>2)S-box构成的集合S1,S2,..,Sk的相互不同的两个S-box的组Si和Sj(i≠j)、对任意的c提供所有可能的2n个x作为输入时,
Si(x)和
Sj(x(EXOR)c)
这些S盒输出不是所有2n个值各出现一次的形式。即,最少出现一个重复值。
设定满足该条件的由S-box构成的集合S1,S2,..,Sk,在输入数据序列(x)和输出数据序列(y)相同并且位于上下按序排列的位置的多个F函数中配置这些F函数,由此能够显著降低在输出序列上出现的数据与在循环函数执行前的相同输出序列上出现的数据一致的可能性,结果是能够大幅提高饱和攻击的难度,提高对攻击的抵抗性。
(发展系-2)
当考虑实际安装时,存在即使包含在各F函数中的S-box的种类为多个也希望包含在各F函数中的S-box的组合相同的情况。
即,例如在通过硬件、软件来进行相当于F函数的数据变换的情况下,如果包含在各F函数中的S-box的组合相同,则将作为F函数的硬件、软件设为相同,在各循环中仅适当地变更输入输出就能够实现各循环中的F函数的数据变换。
参照图12说明具体例。图12也与图10相同,示出切出Feistel结构或者扩展Feistel结构的一部分的结构,示出输入数据序列(x)和输出数据序列(y)相同并且位于上下相邻位置的F函数221、222。
包含在先行F函数221中的四个S-box从上起按S1、S2、S1、S2的顺序进行配置,在下一个循环的后续F函数222中从上起设为S2、S1、S2、S1的顺序。
此外,S1≠S2。
如果设为这种设定,进行设为能够并列执行两个S1、两个S2的结构的安装,则能够应用该结构执行F函数221、222,还能够降低安装上的成本并且使装置小型化。
在图12所示的结构中,在各F函数221、222中应用于对应的比特列的非线性变换处理为
S1→S2或者
S2→S1,
作为对应的比特数据(例如各字节单位)的处理,成为与参照图10说明的处理相同的处理,作为结果,能够得到相同的效果、即显著降低在输出序列中出现的数据与在循环函数执行前的相同输出序列中出现的数据一致的可能性,结果是能够大幅提高饱和攻击的难度,提高对攻击的抵抗性。
图13示出另一个具体例。图13与图11相同,示出切出Feistel结构或者扩展Feistel结构的一部分的结构,示出输入数据序列(x)和输出数据序列(y)相同并且位于上下相邻位置的三个F函数231~233。
包含在先行F函数231中的四个S-box从上起按S1、S2、S3、S4的顺序进行配置,在下一个循环的中间F函数232中从上起设定为S2、S3、S4、S1的顺序,在再下一个循环的中间F函数233中从上起设定为S3、S4、S1、S2的顺序。
此外,S1≠S2≠S3≠S4。
如果设为这种设定,进行设为能够并列执行S1~S4各一个的结构的安装,则能够应用该结构执行所有F函数231~233,能够降低安装上的成本并且使装置小型化。
在图13所示的结构中,在各F函数231~233中应用于对应的比特列的非线性变换处理成为如下顺序,
S1→S2→S3→S4→S1→S2…
作为对应的比特数据(例如各字节单位)的处理,成为与参照图10、图11说明的处理相同的处理,作为结果,能够得到相同的效果、即显著降低在输出序列中出现的数据与在循环函数执行前的相同输出序列中出现的数据一致的可能性,结果是能够大幅提高饱和攻击的难度,提高对攻击的抵抗性。
(2B)在使用了S-box的块密码中通过使两种以上不同的S-box共存来提高对代数攻击(XSL攻击)的抵抗性的结构
接着,说明在使用了S-box的块密码中通过使种类不同的S-box共存来提高对代数攻击(XSL攻击)的抵抗性的结构。
(2B-1)代数攻击(XSL攻击)的概要
首先说明作为对块密码的攻击而已知的代数攻击(XSL攻击)。对块密码的代数攻击(XSL攻击)是利用了S-box的代数表现的攻击。关于S-box的输入输出,在表现为代数式时能够导出多个表达式,攻击所需的计算量根据该表达式的最大次数、所包含的项数而发生变化。
作为代数攻击(XSL攻击)的实施例之一存在使用了布尔表达式的方式。例如设为存在某个安装了多个具有8-bit输入输出的S-box的块密码。此时,在8比特输入输出S-box中,当将输入侧和输出侧的比特分别设为
输入X:(x1,x2,x3,x4,x5,x6,x7,x8)
输出Y:(y1,y2,y3,y4,y5,y6,y7,y8)时,评价以两次以下的布尔表达式表达出来的表达式的数量。
更具体地说,评价包含在以布尔表达式表示上述输入输出X、Y得到的结果中的项能够以
(1,xi,yi,xixj,yiyj,xiyj)
这种两次以下的任一种形式表示的多项式的数量。
在将最大次数限定为两次等低次数进行取出时,如果这样表示的全部布尔表达式之中独立表达式的数量更多、项目数较少,则视为有利于攻击。即,在这样将最大次数限定为两次等时,如果独立表达式的数更多、项目数较少,则视为有利于攻击,对攻击的抵抗性差。
另外,不仅是布尔表达式,在扩展域GF(28)等定义域上能够以较低次数进行代数表现的情况下,也容易使用相同的方法进行代数攻击(XSL攻击),视为攻击抵抗性较弱。
(2B-2)使用了一种S-box时的问题点
接着,说明在使用了S-box的块密码中仅利用了一种S-box的结构的问题点、即容易进行代数攻击(XSL攻击)这种问题点。
在执行n-bit的输入输出的非线性变换的s比特S-box中存在下面三种代表类型。
类型1:利用扩展域GF(2s)上的逆映射:Y=X-1、幂函数Y=Xp的S-box
类型2:组合多个例如4-bit输入输出等小于s比特的S-box而制作出的S-box
类型3:随机选择的S-box
这三种类型是代表。
特别是关于类型1和类型2,由于在硬件(H/W)安装时能够以低成本进行安装,因此是经常利用的S-box。
下面,对上述各类型1~3说明仅利用了一种S-box的结构的问题点、即容易进行代数攻击(XSL攻击)这种问题点。
<类型1的问题点>
说明类型1、即利用了GF(2s)上的逆映射:Y=X-1、幂函数Y=Xp的S-box的情况下的问题点。
例如,已知在使用了GF(28)上的逆映射的S-box的情况下以布尔表达式表示时存在如下表现:是20几个独立的二次表达式并且项数为80几个。关于幂函数也存在相同的简单关系。另外,不仅在GF(28)上,在GF(2s)上定义的S-box也期待相同的关系。
当使用这些多项式表现时,能够估计针对代数攻击(XSL攻击)的计算量,为确保安全性需要在密码的设计阶段利用充分数量的S-box使得能够得到充分的计算量。并且在使用了GF(2s)上的逆映射的S-box的情况下,在GF(2s)上能够进行XY=1这种代数表现,也能够导出次数较低的多项式。已知也存在利用了这些性质的攻击方法。关于幂函数也能够应用相同的结果。
这样,在仅使用利用了GF(2s)上的逆映射、幂映射的S-box的密码中,由于利用两种代数性质,因此必须考虑其两者来进行设计。
此外,关于在逆映射、幂函数的前后追加仿射变换而制作出的S-box,也可以说与上述相同。
<类型2的问题点>
接着,说明类型2、即组合多个更小的(例如4-bit)S-box而制作出的S-box的情况下的问题点。
考虑使用了组合多个输入输出例如4-bit的较小的S-box而制作出的8比特S-box的情况。已知利用3~5个4比特S-box能够制作出8比特S-box。为了代数攻击(XSL攻击)而对4比特S-box的输入输出比特导出两次以下的布尔表达式多项式,说起来输入输出比特的合计仅8个,因此已知以这种以较低次数表现的独立表达式至少存在二十几个。因此,能够利用它们构成攻击。在为了制作较大输入输出大小的S-box而使用更小大小的S-box来构成的情况下,可以说具有这种趋势。
但是,作为该方式的优点,使用利用了GF(28)上的逆映射的S-box时那样的在GF(2s)域上存在简单的代数关系的概率极低,由此可知攻击所需的计算量变多,因此根据上述情况,与上述S-box相比从代数攻击(XSL攻击)的观点出发可以说优点和缺点两者共存。
<类型3的问题点>
接着,说明类型3、即随机选择的S-box的情况下的问题点。随机选择的S-box不能期望具有上述那样的在代数上看较弱的性质,能够期望对代数攻击(XSL攻击)的较高的安全性,但是H/W安装成本极高,因此存在不希望将所有S-box都设为随机选择的S-box这种问题。
(2B-3)通过利用代数性质不同的多种S-box来提高抵抗性的结构
下面说明如下结构:鉴于上述问题,通过利用代数性质不同的两种以上的S-box来提高对使用了布尔多项式的代数攻击(XSL攻击)、以及利用了GF(2s)域的代数攻击(XSL攻击)两者的抵抗性,并且与将所有S-box都设为随机选择的S-box的情况相比,提高了硬件(H/W)安装效率。
如之前所说明那样,在执行s-bit输入输出的非线性变换的s比特S-box中存在下面三种代表类型。
类型1:利用了扩展域GF(2s)上的逆映射:Y=X-1、幂函数Y=Xp的S-box
类型2:组合多个t-bit的较小的S-box而制作出的S-box(其中设为t<s)
类型3:随机选择的S-box
这三种类型是代表。
在本实施例中,通过组合利用这些不同类型的S-box来实现提高对代数攻击(XSL攻击)的抵抗性、并且提高了硬件(H/W)安装效率的结构。即,是在使用了S-box的块密码中通过使两种以上不同的S-box共存来提高对代数攻击(XSL攻击)的抵抗性的结构。此外,能够应用本实施例的密码处理结构只要是具有执行非线性变换处理的S-box的密码处理结构即可,例如,能够应用于之前说明的下面各种密码处理结构、即
(a)SPN(Substitution Permutation Network)结构
(b)Feistel结构
(c)扩展Feistel结构
这些结构中的任一个。
在本处理例中,将包含在执行数据变换处理的循环函数中的、作为非线性变换处理部的S-box设定为下面(a)~(d)中的任一个。
(a)将一部分设为类型1的S-box、将其它设为类型2的S-box的结构
(b)将一部分设为类型1的S-box、将其它设为类型3的S-box的结构
(c)将一部分设为类型2的S-box、将其它设为类型3的S-box的结构
(d)将一部分设为类型1的S-box、将另一部分设为类型2的S-box、将其它设为类型3的S-box的结构
例如,在设定为上述(a)的情况下,设为如下结构:
将包含在执行数据变换处理的循环函数中的作为非线性变换处理部的S-box中一半的S-box设为类型1、即使用了GF(28)上的逆映射的S-box,考虑除去了此以外的S-box的虚构的密码,根据其对利用了布尔表达式的代数攻击(XSL攻击)的计算量进行估计,如果估计出充分的计算量,则将剩余一半的S-box设为类型2、即组合多个4-bit的较小的S-box而制作出的8比特S-box。
这样,通过设定为上述(a)的类型1与类型2共存的密码处理结构,如果在对GF(28)上的计算量进行估计时能够具有充分的抵抗性,则与单独利用各S-box时相比,能够制作出综合抵抗性提高的块密码。
并不限于上述设定,在上述(a)~(d)中的任一个的情况下都相同,进行设定使得即使仅限定一部分S-box对代数攻击(XSL攻击)的抵抗性也充分高,剩余S-box考虑安装效率等来决定即可。
参照图14~图18说明上述(a)~(d)那样配置了不同类型的S-box的具体的密码处理结构例。图14~图18所示的例子都示出具有六个循环的循环函数执行部的密码处理结构,在各循环函数执行部中具有由多个S-box构成的非线性变换处理部和线性变换处理部。
图14示出由六个循环构成、在每一个循环中包含十个S-box的SPN块密码的例子。SPN块密码在各循环中执行具有非线性变换层(S层)、线性变换层(P层)的数据变换。各循环的十个S-box例如输入将输入数据进行十分割得到的分割数据,执行非线性变换处理,将非线性变换结果数据输出到线性变换层(P层),线性变换处理结果被输出到下一个循环函数执行部。最终级循环函数执行部的输出为密文。
图示的各循环函数执行部301~306的[S1]、[S2]分别表示类型1的S-box、类型2的S-box,是上述的不同类型的作为非线性变换处理部的S-box。
图14所示的例子是如下结构例:在先行的三个循环的循环函数执行部301~303中配置
类型1:利用了扩展域GF(2s)上的逆映射:Y=X-1、幂函数Y=Xp的S-box
该类型1的S-box[S1],
在后续的三个循环的循环函数执行部301~303中配置
类型2:组合多个4-bit那样较小的S-box而制作出的S-box
该类型2的S-box[S2]。
在图14的结构中,非线性变换处理在前半循环中执行为应用了类型1的S-box的处理,在后半循环中执行为应用了类型2的S-box的处理。通常,在全部假设为相同类型的S-box之后执行代数攻击(XSL攻击),在这种不同类型的S-box共存的设定的情况下,攻击、即分析变得困难。结果是实现对代数攻击(XSL攻击)等密码分析的抵抗性较高的密码处理结构。
图15与图14相同,示出由六个循环构成的、在每一个循环中包含十个S-box的SPN块密码的例子。
图15所示的例子是如下结构例:
在第一、三、五奇数循环的循环函数执行部321、323、325中配置
类型1:利用了扩展域GF(2s)上的逆映射:Y=X-1、幂函数Y=Xp的S-box
该类型1的S-box[S1],
在第二、四、六偶数循环的循环函数执行部322、324、326中配置
类型2:组合多个4-bit那样较小的S-box而制作出的S-box
该类型2的S-box[S2]。
在图15的结构中,非线性变换处理在奇数循环中执行为应用了类型1的S-box的处理,在偶数循环中执行为应用了类型2的S-box的处理。在本结构中也与图14的结构相同,是不同类型的S-box共存的设定,实现对代数攻击(XSL攻击)等密码分析的抵抗性较高的密码处理结构。
图16与图14、图15相同,示出由六个循环构成的、在每一个循环中包含十个S-box的SPN块密码的例子。
图16所示的例子是如下结构例:
在所有循环的循环函数执行部341~346中配置
类型1:利用了扩展域GF(2s)上的逆映射:Y=X-1、幂函数Y=Xp的S-box
该类型1的S-box[S1]和
类型2:组合多个4-bit那样较小的S-box而制作出的S-box
该类型2的S-box[S2]
各一半、即各五个。
输入到各循环函数执行部341~346的数据被进行十分割后输入到各S盒。进行十分割得到的分割数据d1~d10的前半的数据d1~d5输入到类型1的S-box,执行应用了类型1的S-box的非线性变换处理,后半的数据d6~d10输入到类型2的S-box,执行应用了类型2的S-box的非线性变换处理。
在图16的结构中也与图14、图15的结构相同,是不同类型的S-box共存的设定,实现对代数攻击(XSL攻击)等密码分析的抵抗性较高的密码处理结构。
图17与图14~图16相同,示出由六个循环构成的、在每一个循环中包含十个S-box的SPN块密码的例子。
图17所示的例子与图16所示的例子相同,是如下结构例:
在所有循环的循环函数执行部361~366中配置
类型1:利用了扩展域GF(2s)上的逆映射:Y=X-1、幂函数Y=Xp的S-box
该类型1的S-box[S1]和
类型2:组合多个4-bit那样较小的S-box而制作出的S-box
该类型2的S-box[S2]
各一半、即各五个。
输入到各循环函数执行部361~366的数据被进行十分割后输入到各S盒。进行十分割得到的分割数据d1~d10的第奇数个分割数据d1、d3、d5、d7、d9输入到类型1的S-box,执行应用了类型1的S-box的非线性变换处理,第偶数个分割数据d2、d4、d6、d8、d10输入到类型2的S-box,执行应用了类型2的S-box的非线性变换处理。
在图17的结构中也与图14~图16的结构相同,是不同类型的S-box共存的设定,实现对代数攻击(XSL攻击)等密码分析的抵抗性较高的密码处理结构。
在图16、图17所示的结构中,在各循环中并列执行的S-box是类型1的S-box和类型2的S-box各五个,其在所有循环中共用。因而,例如作为安装如果设为能够并列执行类型1和类型2的S-box各五个的结构,则能够反复应用该结构来执行所有循环的循环函数,在安装上还存在降低成本、实现小型化的优点。
图18示出在Feistel结构中的各循环函数执行部381~386中配置多个不同类型的S-box的例子。
图18所示的例子是如下结构例:
在所有循环的循环函数执行部381~386中配置
类型1:利用了扩展域GF(2s)上的逆映射:Y=X-1、幂函数Y=Xp的S-box
该类型1的S-box[S1]和
类型2:组合多个4-bit那样较小的S-box而制作出的S-box
该类型2的S-box[S2]
各一半、即各两个。
输入到各循环函数执行部381~386中的数据被进行四分割后输入到各S盒。进行四分割得到的分割数据d1~d4的第奇数个分割数据d1、d3输入到类型1的S-box,执行应用了类型1的S-box的非线性变换处理,第偶数个分割数据d2、d4输入到类型2的S-box,执行应用了类型2的S-box的非线性变换处理。
在图18的结构中也与图14~图17的结构相同,是不同类型的S-box共存的设定,实现对代数攻击(XSL攻击)等密码分析的抵抗性较高的密码处理结构。
此外,在图14~图18所示的例子中示出使类型1和类型2这两种类型的S-box共存来进行利用的结构例,但是作为不同类型的S-box的共存结构,如之前说明的那样,可以是
(a)将一部分设为类型1的S-box、将其它设为类型2的S-box的结构
(b)将一部分设为类型1的S-box、将其它设为类型3的S-box的结构
(c)将一部分设为类型2的S-box、将其它设为类型3的S-box的结构
(d)将一部分设为类型1的S-box、将另一部分设为类型2的S-box、将其它设为类型3的S-box的结构
这些各种共存结构,在任一种情况下都实现提高对代数攻击(XSL攻击)的抵抗性。
(2C)在使用了S-box的Feistel密码或者扩展Feistel型密码中同时实现上述(2A)、(2B)的结构
接着,说明在使用了S-box的Feistel密码或者扩展Feistel型密码中同时实现上述(2A)、(2B)、即
(2A)通过在使用了S-box的Feistel或者扩展Feistel型密码中配置两种以上不同的S-box来提高对饱和攻击的抵抗性的结构
(2B)通过在使用了S-box的块密码中使两种以上不同的S-box共存来提高对代数攻击(XSL攻击)的抵抗性的结构
这些结构的结构例。
上述的(2A)的结构是通过在Feistel结构或者扩展Feistel结构中应用两种以上的S-box来提高对饱和攻击的抵抗性的结构,上述的(2B)的结构是通过对具有S-box的任意的块密码使用两种以上的S-box来提高对代数攻击(XSL攻击)的抵抗性的结构。
能够同时实现这些(2A)、(2B)的结构。即,能够利用满足(2A)、(2B)所需的性质的两种以上的S-box来构成具有同时提高对两个攻击的抵抗性的Feistel或者扩展Feistel结构的块密码。
具体地说,对各S-box[S1]、[S2]、[S3]、[S4]··对应地设定三个类型的S-box,其中,
上述各S-box[S1]、[S2]、[S3]、[S4]··为在上述的
(2A)通过在使用了S-box的Feistel或者扩展Feistel型密码中配置两种以上不同的S-box来提高对饱和攻击的抵抗性的结构
中说明的、在图10~图13的各结构中应用的执行不同的非线性变换处理的S-box,
上述三个类型的S-box为在上述的
(2B)通过在使用了S-box的块密码中使两种以上不同的S-box共存来提高对代数攻击(XSL攻击)的抵抗性的结构
中说明的不同类型的S-box、即
类型1:利用了扩展域GF(2s)上的逆映射:Y=X-1、幂函数Y=Xp的S-box
类型2:组合多个4-bit那样较小的S-box而制作出的S-box
类型3:随机选择的S-box。
例如,在图10所示的结构中,
通过将S-box[S1]和S-box[S2]设定为在(2B)中说明的不同类型的S-box来实现对饱和攻击、对代数攻击(XSL攻击)抵抗性都较高的结构。
在图11~图13所示的结构中也相同,
通过将S-box[S1]、[S2]··设定为在(2B)中说明的不同类型的S-box来实现对饱和攻击、对代数攻击(XSL攻击)抵抗性都较高的结构。
[3.密码处理装置的结构例]
最后,图19示出按照上述的实施例执行密码处理的作为密码处理装置的IC模块700的结构例。例如能够在PC、IC卡、读写器、其它各种信息处理装置中执行上述处理,图19所示的IC模块700能够构成在这些各种设备中。
图19所示的CPU(Central processing Unit:中央处理单元)701是执行密码处理的开始、结束、数据的发送接收的控制、各结构部之间的数据传送控制、其它各种程序的处理器。存储器702由ROM(Read-Only-Memory:只读存储器)、RAM(RandomAccessMemory:随机存取存储器)等构成,其中,上述ROM保存CPU 701所执行的程序或者运算参数等固定数据,上述RAM作为在CPU 701的处理中执行的程序以及在程序处理中适当变化的参数的保存区域、工作区域而使用。另外,存储器702能够作为密码处理所需的密钥数据、在密码处理中应用的变换表(置换表)、在变换矩阵中应用的数据等的保存区域而使用。此外,数据保存区域优选构成为具有耐损害结构的存储器。
密码处理部703例如按照共用密钥块密码处理算法来执行密码处理、解密处理,上述共用密钥块密码处理算法应用了上述的各种密码处理结构、即
(a)SPN(Substitution Permutation Network)结构
(b)Feistel结构
(c)扩展Feistel结构
这些各结构中的任一个结构。
另外,密码处理部703具有作为非线性变换处理部的S-box,该非线性变换处理部具有与上述的各实施例对应的结构、即与
(2A)在使用了S-box的Feistel或者扩展Feistel型密码中配置两种以上不同的S-box的结构
(2B)在使用了S-box的块密码中使两种以上不同类型的S-box共存的结构
(2C)在使用了S-box的Feistel密码或者扩展Feistel型密码中同时实现上述(2A)、(2B)的结构
这些结构中的任一个对应的结构。
此外,在此示出了将密码处理单元设为单独模块的例子,但是也可以构成为不设置这种独立的密码处理模块,例如将密码处理程序保存在ROM中,由CPU 701读取ROM保存程序来执行。
随机数产生器704执行在密码处理所需的密钥的生成等中成为必需的随机数的产生处理。
发送接收部705是执行与外部的数据通信的数据通信处理部,例如执行与读写器等IC模块之间的数据通信,执行在IC模块内生成的密文的输出、或者来自外部读写器等设备的数据输入等。
该IC模块700具有按照上述实施例的作为非线性变换处理部的S-box的排列,结果是具有
(2A)通过在使用了S-box的Feistel或者扩展Feistel型密码中配置两种以上的不同的S-box来提高对饱和攻击的抵抗性的结构
(2B)通过在使用了S-box的块密码中使两种以上不同的S-box共存来提高对代数攻击(XSL攻击)的抵抗性的结构
(2C)在使用了S-box的Feistel密码或者扩展Feistel型密码中同时实现上述(2A)、(2B)的结构
这些结构中的某一个结构,具有提高了对饱和攻击、代数攻击(XSL攻击)的抵抗性的结构。
以上,参照特定的实施例详细说明了本发明。然而,在不脱离本发明的要旨的范围内,本领域技术人员可进行该实施例的修改、代用是显而易见的。即,以例示的方式公开了本发明,并不是限定性地解释本发明。为了判断本发明的要旨,应该参考权利要求书的范围一栏。
此外,在说明书中说明的一系列处理能够通过硬件、或者软件、或者两者的复合结构来执行。在通过软件执行处理的情况下,能够将记录了处理顺序的程序安装到嵌入在专用硬件中的计算机内的存储器中来执行、或者将程序安装到可执行各种处理的通用计算机中来执行。
例如,能够将程序预先记录在作为记录介质的硬盘、ROM(Read Only Memory)中。或者,能够将程序暂时或永久性地保存(记录)在软盘、CD-ROM(Compact Disc Read OnlyMemory:光盘只读存储器)、MO(Magneto optical:磁光)盘、DVD(Digital Versatile Disc:数字多功能光盘)、磁盘、半导体存储器等可移动记录介质中。能够将这种可移动记录介质作为所谓的封装软件进行提供。
此外,除了将程序从如上所述的可移动记录介质安装到计算机以外,还能够从下载站点无线传送到计算机、或者通过称为LAN(Local Area Network:局域网)、因特网这种网络来有线传送到计算机,在计算机中接收这样传送过来的程序并安装到内置的硬盘等记录介质中。
此外,不仅可以按照记载以时间序列执行,也可以根据执行处理的装置的处理能力或需要来并行或单独地执行说明书中记载的各种处理。另外,在本说明书中系统是多个装置的逻辑集合结构,并不限于各结构的装置在同一壳体内。
产业上的可利用性
如上所述,根据本发明的一个实施例的结构,在执行共用密钥块密码处理的密码处理装置中,设为在设定于循环函数执行部中的作为非线性变换处理部的S盒中至少利用两种以上多个不同的S盒的结构。根据本结构,能够提高对饱和攻击的抵抗性。另外,根据作为S盒的类型而使不同类型的S盒共存的本发明的一个实施例的结构,能够提高对代数攻击(XSL攻击)的抵抗性,从而实现安全性较高的密码处理装置。
权利要求书(按照条约第19条的修改)
1.(修改后)一种密码处理装置,其特征在于,
具有密码处理部,该密码处理部将利用包含S盒的F函数进行的数据变换处理作为循环函数,对利用3以上的数分割输入数据而得到的各数据序列分别执行上述数据变换处理,
上述密码处理部是如下结构:
输入数据序列和输出数据序列相同并且位于上下相邻位置的F函数彼此具有种类互不相同的S盒。
2.根据权利要求1所述的密码处理装置,其特征在于,
上述密码处理部是如下结构:
执行应用了Feistel结构或者扩展Feistel结构的密码处理,其中,上述Feistel结构将数据序列数(分割数)设为2,上述扩展Feistel结构将数据序列数(分割数)设为2以上,
进行应用了F函数的密码处理,该F函数将在输入数据序列和输出数据序列相同并且位于上下相邻位置的、作为循环函数执行部的F函数中的非线性变换处理设定为执行不同的非线性变换处理的不同的S盒。
3.根据权利要求2所述的密码处理装置,其特征在于,
作为上述循环函数执行部的各F函数具有多个S盒,该多个S盒对分割处理对象数据得到的各分割数据执行非线性变换处理,
该多个S盒由至少两种以上不同的S盒构成。
4.根据权利要求2所述的密码处理装置,其特征在于,
作为上述循环函数执行部的各F函数具有多个S盒,该多个S盒对分割处理对象数据得到的各分割数据执行非线性变换处理,
上述密码处理部是如下结构:以各分割数据为单位,将输
8.根据权利要求6所述的密码处理装置,其特征在于,
上述密码处理部是如下结构:
在循环函数执行部内具有多个S盒,该多个S盒对分割处理对象数据得到的各分割数据执行非线性变换处理,
在一个循环中利用一种类型的S盒,以循环为单位执行利用了不同类型的S盒的处理。
9.根据权利要求6所述的密码处理装置,其特征在于,
上述密码处理部是如下结构:
在循环函数执行部内具有多个S盒,该多个S盒对分割处理对象数据得到的各分割数据执行非线性变换处理,
在一个循环内利用多个类型的S盒。
10.根据权利要求9所述的密码处理装置,其特征在于,
包含在各上述循环函数执行部中的S盒的种类和各S盒的数量在各F函数中是相同的设定。
11.根据权利要求1~10中的任一项所述的密码处理装置,其特征在于,
上述密码处理部是执行按照共用密钥密码方式的密码处理的结构。
12.根据权利要求1~10中的任一项所述的密码处理装置,其特征在于,
上述密码处理部是执行按照共用密钥块密码方式的密码处理的结构。
13.(修改后)一种密码处理方法,在密码处理装置中执行密码处理,该密码处理方法的特征在于,
具有密码处理步骤,该密码处理步骤在密码处理部中将利用包含S盒的F函数进行的数据变换处理作为循环函数,对利用3以上的数分割输入数据而得到的各数据序列分别执行上述数据变换处理,
上述密码处理步骤是如下步骤:
输入数据序列和输出数据序列相同并且位于上下相邻位置的F函数彼此间,进行利用了种类互不相同的S盒的数据变换处理。
14.根据权利要求13所述的密码处理方法,其特征在于,
上述密码处理步骤执行按照共用密钥密码方式或者共用密钥块密码方式的密码处理。
15.(修改后)一种计算机程序,使密码处理装置执行密码处理,其特征在于,
具有密码处理步骤,该密码处理步骤使密码处理部将利用包含S盒的F函数进行的数据变换处理作为循环函数,对利用3以上的数分割输入数据而得到的各数据序列分别执行上述数据变换处理,
上述密码处理步骤是如下步骤:
输入数据序列和输出数据序列相同并且位于上下相邻位置的F函数彼此间,进行利用了种类互不相同的S盒的数据变换处理。
16.根据权利要求15所述的计算机程序,其特征在于,
上述密码处理步骤执行按照共用密钥密码方式或者共用密钥块密码方式的密码处理。

Claims (16)

1.一种密码处理装置,执行密码处理,其特征在于,
具有密码处理部,该密码处理部进行将循环函数反复多个循环的数据变换处理,
上述密码处理部是如下结构:
在各循环中的循环函数执行处理中,进行应用了S盒的非线性变换处理,
进行作为应用于非线性变换处理的S盒而利用了至少两种以上多个不同的S盒的处理。
2.根据权利要求1所述的密码处理装置,其特征在于,
上述密码处理部是如下结构:
执行应用了Feistel结构或者扩展Feistel结构的密码处理,其中,上述Feistel结构将数据序列数(分割数)设为2,上述扩展Feistel结构将数据序列数(分割数)设为2以上,
进行应用了F函数的密码处理,该F函数将在输入数据序列和输出数据序列相同并且位于上下相邻位置的、作为循环函数执行部的F函数中的非线性变换处理设定为执行不同的非线性变换处理的不同的S盒。
3.根据权利要求2所述的密码处理装置,其特征在于,
作为上述循环函数执行部的各F函数具有多个S盒,该多个S盒对分割处理对象数据得到的各分割数据执行非线性变换处理,
该多个S盒由至少两种以上不同的S盒构成。
4.根据权利要求2所述的密码处理装置,其特征在于,
作为上述循环函数执行部的各F函数具有多个S盒,该多个S盒对分割处理对象数据得到的各分割数据执行非线性变换处理,
上述密码处理部是如下结构:以各分割数据为单位,将输入数据序列和输出数据序列相同并且位于上下相邻位置的、作为循环函数执行部的F函数中的非线性变换处理设定为执行不同的非线性变换处理的不同的S盒。
5.根据权利要求2所述的密码处理装置,其特征在于,
包含在作为上述循环函数执行部的各F函数中的S盒的种类和各S盒的数量在各F函数中是相同的设定。
6.根据权利要求1所述的密码处理装置,其特征在于,
上述密码处理部是如下结构:
作为应用于上述非线性变换处理的具有s比特的输入输出的不同的S盒,利用如下(1)~(3)三种类型的S盒中至少两种以上不同类型的S盒:
(1)类型1:利用了扩展域GF(2s)上的逆映射:Y=X-1或者幂函数Y=Xq的S盒;
(2)类型2:组合多个t-bit的较小的S-box而制作出的S盒,其中,设为t<s;以及
(3)类型3:随机选择的S盒。
7.根据权利要求6所述的密码处理装置,其特征在于,
上述密码处理部是应用于上述循环函数的执行的S盒具有如下(a)~(d)中的任一个的结构:
(a)将一部分设为类型1的S盒,将其它设为类型2的S盒的结构;
(b)将一部分设为类型1的S盒,将其它设为类型3的S盒的结构;
(c)将一部分设为类型2的S盒,将其它设为类型3的S盒的结构;以及
(d)将一部分设为类型1的S盒,将另一部分设为类型2的S盒,将其它设为类型3的S盒的结构。
8.根据权利要求6所述的密码处理装置,其特征在于,
上述密码处理部是如下结构:
在循环函数执行部内具有多个S盒,该多个S盒对分割处理对象数据得到的各分割数据执行非线性变换处理,
在一个循环中利用一种类型的S盒,以循环为单位执行利用了不同类型的S盒的处理。
9.根据权利要求6所述的密码处理装置,其特征在于,
上述密码处理部是如下结构:
在循环函数执行部内具有多个S盒,该多个S盒对分割处理对象数据得到的各分割数据执行非线性变换处理,
在一个循环内利用多个类型的S盒。
10.根据权利要求9所述的密码处理装置,其特征在于,
包含在各上述循环函数执行部中的S盒的种类和各S盒的数量在各F函数中是相同的设定。
11.根据权利要求1~10中的任一项所述的密码处理装置,其特征在于,
上述密码处理部是执行按照共用密钥密码方式的密码处理的结构。
12.根据权利要求1~10中的任一项所述的密码处理装置,其特征在于,
上述密码处理部是执行按照共用密钥块密码方式的密码处理的结构。
13.一种密码处理方法,在密码处理装置中执行密码处理,该密码处理方法的特征在于,
具有密码处理步骤,该密码处理步骤在密码处理部中进行将循环函数反复多个循环的数据变换处理,
上述密码处理步骤是如下步骤:
在各循环中的循环函数执行处理中进行应用了S盒的非线性变换处理,进行作为应用于该非线性变换处理的S盒而利用了至少两种以上的多个不同的S盒的处理。
14.根据权利要求13所述的密码处理方法,其特征在于,
上述密码处理步骤执行按照共用密钥密码方式或者共用密钥块密码方式的密码处理。
15.一种计算机程序,使密码处理装置执行密码处理,其特征在于,
具有密码处理步骤,该密码处理步骤使密码处理部进行将循环函数反复多个循环的数据变换处理,
上述密码处理步骤是如下步骤:
在各循环中的循环函数执行处理中,进行应用了S盒的非线性变换处理,进行作为应用于该非线性变换处理的S盒而利用了至少两种以上的多个不同的S盒的处理。
16.根据权利要求15所述的计算机程序,其特征在于,
上述密码处理步骤执行按照共用密钥密码方式或者共用密钥块密码方式的密码处理。
CN2007800408061A 2006-09-01 2007-08-29 密码处理装置和密码处理方法 Expired - Fee Related CN101536062B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2006238225A JP5050454B2 (ja) 2006-09-01 2006-09-01 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP238225/2006 2006-09-01
PCT/JP2007/066730 WO2008026622A1 (en) 2006-09-01 2007-08-29 Encryption device, encryption method, and computer program

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201210037340.2A Division CN102594545B (zh) 2006-09-01 2007-08-29 信息处理装置

Publications (2)

Publication Number Publication Date
CN101536062A true CN101536062A (zh) 2009-09-16
CN101536062B CN101536062B (zh) 2013-09-18

Family

ID=39135904

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2007800408061A Expired - Fee Related CN101536062B (zh) 2006-09-01 2007-08-29 密码处理装置和密码处理方法
CN201210037340.2A Expired - Fee Related CN102594545B (zh) 2006-09-01 2007-08-29 信息处理装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201210037340.2A Expired - Fee Related CN102594545B (zh) 2006-09-01 2007-08-29 信息处理装置

Country Status (7)

Country Link
US (2) US8577023B2 (zh)
EP (1) EP2058781B1 (zh)
JP (1) JP5050454B2 (zh)
CN (2) CN101536062B (zh)
RU (2) RU2502201C2 (zh)
TW (2) TWI447683B (zh)
WO (1) WO2008026622A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI452889B (zh) * 2009-04-30 2014-09-11 Sumitomo Electric Industries 加密密鑰產生裝置
CN106712925A (zh) * 2015-11-13 2017-05-24 航天信息股份有限公司 一种基于Logistic映射的S-box获取方法及获取装置
CN108650072A (zh) * 2018-03-28 2018-10-12 杭州朔天科技有限公司 一种支持多种对称密码算法芯片及其抗攻击电路实现方法

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4882598B2 (ja) * 2006-07-28 2012-02-22 ソニー株式会社 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
US20090245510A1 (en) * 2008-03-25 2009-10-01 Mathieu Ciet Block cipher with security intrinsic aspects
JP5605197B2 (ja) * 2010-12-09 2014-10-15 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
JP5652363B2 (ja) * 2011-03-28 2015-01-14 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
RU2618684C2 (ru) * 2013-04-26 2017-05-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ автоматического развертывания системы шифрования для пользователей, ранее работавших на ПК
JP2014240921A (ja) * 2013-06-12 2014-12-25 株式会社東芝 暗号装置、暗号処理方法及び暗号処理プログラム
RU2572423C2 (ru) * 2014-04-02 2016-01-10 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Способ формирования s-блоков с минимальным количеством логических элементов
KR102376506B1 (ko) * 2014-10-20 2022-03-18 삼성전자주식회사 암복호화기, 암복호화기를 포함하는 전자 장치 및 암복호화기의 동작 방법
RU2607613C2 (ru) * 2015-06-03 2017-01-10 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Способ формирования S-блока
US10128864B2 (en) 2016-01-15 2018-11-13 Psemi Corporation Non-linear converter to linearize the non-linear output of measurement devices
CN112511293B (zh) * 2020-09-21 2022-03-18 中国电子科技集团公司第三十研究所 基于比特与运算的s盒参数化设计方法及存储介质
CN112636899B (zh) * 2020-09-21 2022-03-18 中国电子科技集团公司第三十研究所 一种轻量化s盒设计方法
CN112667994B (zh) * 2020-12-10 2023-01-20 山东大学 一种面向计算机的对称密码形式化描述方法及系统

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3962539A (en) * 1975-02-24 1976-06-08 International Business Machines Corporation Product block cipher system for data security
JPS5945269A (ja) 1982-09-03 1984-03-14 Nissan Motor Co Ltd フロントピラ−結合構造
US4791669A (en) * 1985-11-30 1988-12-13 Nec Corporation Encryption/decryption system
US5003597A (en) * 1989-12-21 1991-03-26 Xerox Corporation Method and apparatus for data encryption
CA2164768C (en) * 1995-12-08 2001-01-23 Carlisle Michael Adams Constructing symmetric ciphers using the cast design procedure
US5745577A (en) * 1996-07-25 1998-04-28 Northern Telecom Limited Symmetric cryptographic system for data encryption
US6182216B1 (en) * 1997-09-17 2001-01-30 Frank C. Luyster Block cipher method
RU2188513C2 (ru) * 1997-11-28 2002-08-27 Открытое акционерное общество "Московская городская телефонная сеть" Способ криптографического преобразования l-битовых входных блоков цифровых данных в l-битовые выходные блоки
JP4317607B2 (ja) * 1998-12-14 2009-08-19 株式会社日立製作所 情報処理装置、耐タンパ処理装置
TWI275049B (en) * 2000-03-09 2007-03-01 Nippon Telegraph & Telephone Block cipher apparatus using auxiliary transformation
WO2001082524A1 (en) * 2000-04-20 2001-11-01 Matchett Noel D Cryptographic system for data encryption standard
KR100889465B1 (ko) * 2000-07-04 2009-03-20 코닌클리케 필립스 일렉트로닉스 엔.브이. 대칭-키 암호들을 위한 치환-박스
US20020021801A1 (en) * 2000-07-13 2002-02-21 Takeshi Shimoyama Computing apparatus using an SPN structure in an F function and a computation method thereof
CA2486713A1 (en) * 2002-05-23 2003-12-04 Atmel Corporation Advanced encryption standard (aes) hardware cryptographic engine
WO2006048702A1 (en) * 2004-11-05 2006-05-11 Synaptic Laboratories Limited A method of and apparatus for encoding a signal in a hashing primitive
TW200616407A (en) * 2004-11-05 2006-05-16 Cb Capital Man S A Methods of encoding and decoding data
TWI290426B (en) * 2005-02-03 2007-11-21 Sanyo Electric Co Encryption processing circuit

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI452889B (zh) * 2009-04-30 2014-09-11 Sumitomo Electric Industries 加密密鑰產生裝置
CN106712925A (zh) * 2015-11-13 2017-05-24 航天信息股份有限公司 一种基于Logistic映射的S-box获取方法及获取装置
CN108650072A (zh) * 2018-03-28 2018-10-12 杭州朔天科技有限公司 一种支持多种对称密码算法芯片及其抗攻击电路实现方法
CN108650072B (zh) * 2018-03-28 2021-04-20 杭州朔天科技有限公司 一种支持多种对称密码算法的芯片的抗攻击电路实现方法

Also Published As

Publication number Publication date
TWI447683B (zh) 2014-08-01
US20140192973A1 (en) 2014-07-10
US9363074B2 (en) 2016-06-07
TWI338872B (zh) 2011-03-11
EP2058781B1 (en) 2018-05-02
US20100104093A1 (en) 2010-04-29
TW200830232A (en) 2008-07-16
EP2058781A1 (en) 2009-05-13
RU2009107223A (ru) 2010-09-10
CN102594545B (zh) 2015-05-06
CN102594545A (zh) 2012-07-18
WO2008026622A1 (en) 2008-03-06
RU2011149646A (ru) 2013-06-20
CN101536062B (zh) 2013-09-18
EP2058781A4 (en) 2017-05-17
JP2008058828A (ja) 2008-03-13
RU2502201C2 (ru) 2013-12-20
RU2449482C2 (ru) 2012-04-27
TW201044334A (en) 2010-12-16
US8577023B2 (en) 2013-11-05
JP5050454B2 (ja) 2012-10-17

Similar Documents

Publication Publication Date Title
CN101536062B (zh) 密码处理装置和密码处理方法
CN101512620B (zh) 密码处理装置和密码处理方法
CN101512619B (zh) 密码处理装置和密码处理方法
CN102594546B (zh) 信息处理装置
CN101496080B (zh) 密码处理装置、密码处理算法构建方法和密码处理方法
CN101553856B (zh) 密码处理装置和密码处理方法
CN101162557B (zh) 密码处理装置和密码处理方法
EP2693684B1 (en) Encryption processing device, encryption processing method, and programme
CN101371286B (zh) 密码处理装置和密码处理方法
AU2012235129B2 (en) Encryption processing device, encryption processing method, and programme
JP5338945B2 (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
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: 20130918