CN102158337A - 信息处理装置 - Google Patents
信息处理装置 Download PDFInfo
- Publication number
- CN102158337A CN102158337A CN2011100912691A CN201110091269A CN102158337A CN 102158337 A CN102158337 A CN 102158337A CN 2011100912691 A CN2011100912691 A CN 2011100912691A CN 201110091269 A CN201110091269 A CN 201110091269A CN 102158337 A CN102158337 A CN 102158337A
- Authority
- CN
- China
- Prior art keywords
- key
- mentioned
- function
- intermediate key
- data
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/122—Hardware reduction or efficient architectures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/24—Key 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)
- Storage Device Security (AREA)
Abstract
一种信息处理装置。实现一种提高密钥分析的难度、并提高了安全性、安装效率的共用密钥块密码处理结构。在执行共用密钥块密码处理的密码处理装置的密钥调度部中,将私人密钥输入到包括密码处理部所利用的循环函数的加密函数中来生成中间密钥,将进行基于中间密钥和私人密钥等的双射变换得到的结果、双射变换数据的异或运算结果应用为循环密钥。根据本结构,实现基于利用保证了安全性的加密函数而生成的中间密钥的循环密钥的生成,能够提高密钥的分析难度,能够简化密钥调度部的结构,从而能够提高安装效率。
Description
本申请是申请日为2007年8月29日、申请号为200780032112.3、发明名称为“密码处理装置和密码处理方法、以及计算机程序”的申请的分案申请。
技术领域
本发明涉及一种密码处理装置和密码处理方法、以及计算机程序。更详细地说,涉及一种执行共用密钥块密码处理的密码处理装置和密码处理方法、以及计算机程序。
背景技术
最近,随着网络通信、电子商务的发展,确保通信中的安全成为重要问题。确保安全的方法之一是密码技术,现在实际进行着使用了各种加密方法的通信。
例如实际应用了如下的系统:在IC卡等小型装置中嵌入密码处理模块,在IC卡与作为数据读取写入装置的读写器之间进行数据的发送接收,进行认证处理、或者发送接收数据的加密、解密。
在密码处理算法中存在各种算法,大致分类为公开密钥密码方式和共用密钥密码方式,其中,上述公开密钥密码方式将加密密钥和解密密钥设定为不同的密钥、例如公开密钥和私人密钥,上述共用密钥密码方式将加密密钥和解密密钥设定为共用的密钥。
在共用密钥密码方式中也存在各种算法,其中之一是如下的方式:以共用密钥为基础生成多个密钥,使用所生成的多个密钥来反复执行块单位(64比特、128比特等)的数据变换处理。应用了这种密钥生成方式和数据变换处理的算法的代表性方式是共用密钥块密码方式。
作为代表性的共用密钥块密码的算法,例如已知过去作为美国标准密码的DES(Data Encryption Standard:数据加密标准)算法、现在作为美国标准密码的AES(Advanced Encryption Standard:高级加密标准)算法等。
这种共用密钥块密码的算法主要由密码处理部和密钥调度部构成,其中,上述密码处理部具有反复执行输入数据的变换的循环函数执行部,上述密钥调度部生成在循环函数部的各循环中应用的循环密钥。密钥调度部根据作为私人密钥的主密钥(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,Hideki Imai:On the Construction of Block Ciphers Provably Secure and Not Relying on Any Unproved Hypotheses.CRYPTO 1989:461-480
发明内容
发明要解决的问题
本发明是鉴于上述问题点而完成的,其目的在于提供一种提高密码分析的难度、实现安全性较高的共用密钥块密码算法的密码处理装置和密码处理方法、以及计算机程序。
用于解决问题的方案
本发明的第一侧面是一种密码处理装置,执行共用密钥块密码处理,其特征在于,具有:
密码处理部,其进行将循环函数反复循环多次的数据变换处理;以及
密钥调度部,其生成应用于上述循环函数的执行的循环密钥,
其中,上述密钥调度部是具有如下部分的结构:
中间密钥生成部,其将私人密钥输入到加密函数来生成中间密钥,其中,上述加密函数包括在上述密码处理部中利用的循环函数;以及
中间密钥扩展部,其输入上述中间密钥生成部所生成的中间密钥来生成循环密钥。
并且,本发明的密码处理装置的一个实施方式的特征在于,上述中间密钥生成部是执行如下处理的结构:对上述加密函数输入上述私人密钥和预先设定的常数来执行加密处理从而生成中间密钥。
并且,本发明的密码处理装置的一个实施方式的特征在于,在上述中间密钥生成部中应用的加密函数是包括至少一级以上上述循环函数的结构。
并且,本发明的密码处理装置的一个实施方式的特征在于,在上述中间密钥生成部中应用的加密函数是如下的结构:包括在上述密码处理部中利用的具有Feistel结构的多级循环函数。
并且,本发明的密码处理装置的一个实施方式的特征在于,上述中间密钥生成部是如下的结构:并行地利用在上述密码处理部中利用的加密函数来生成多个中间密钥。
并且,本发明的密码处理装置的一个实施方式的特征在于,上述中间密钥生成部是如下的结构:输入与块长度相同的比特数的私人密钥,生成相同比特数的中间密钥,其中,上述块长度为在上述密码处理部中利用的加密函数的处理单位。
并且,本发明的密码处理装置的一个实施方式的特征在于,上述中间密钥生成部是如下的结构:输入块长度以上的比特数的私人密钥,对所输入的私人密钥执行数据变换来生成具有与上述块长度相同的比特数的多个私人密钥变换数据,将该私人密钥变换数据输入到上述加密函数中来生成中间密钥,其中,上述块长度为在上述密码处理部中利用的加密函数的处理单位。
并且,本发明的密码处理装置的一个实施方式的特征在于,上述中间密钥扩展部具有:第一数据变换处理部,其输入上述私人密钥和根据私人密钥生成的私人密钥变换数据中的至少一个,通过双射变换生成私人密钥双射变换数据;第二数据变换处理部,其输入上述中间密钥生成部所生成的中间密钥,通过双射变换生成中间密钥双射变换数据;以及异或运算部,其执行上述第一数据变换处理部所生成的私人密钥双射变换数据与上述第二数据变换处理部所生成的中间密钥双射变换数据之间的异或运算,该中间密钥扩展部是如下的结构:将作为上述第二数据变换处理部的处理结果的中间密钥双射变换数据以及上述异或运算部的处理结果数据作为循环密钥而输出。
并且,本发明的密码处理装置的一个实施方式的特征在于,在上述第一数据变换处理部中将生成各循环密钥时执行的双射变换所应用的双射函数的至少一部分设为共用的双射函数。
并且,本发明的密码处理装置的一个实施方式的特征在于,在上述第二数据变换处理部中将生成各循环密钥时执行的双射变换所应用的双射函数的至少一部分设为共用的双射函数。
并且,本发明的密码处理装置的一个实施方式的特征在于,上述中间密钥扩展部具有:数据变换处理部,其输入上述中间密钥生成部所生成的中间密钥,通过双射变换生成中间密钥双射变换数据;以及异或运算部,其执行上述私人密钥和根据私人密钥生成的私人密钥变换数据中的任一个与上述数据变换处理部所生成的中间密钥双射变换数据之间的异或运算,该中间密钥扩展部是如下的结构:将作为上述数据变换处理部的处理结果的中间密钥双射变换数据以及上述异或运算部的处理结果数据作为循环密钥而输出。
并且,本发明的第二侧面是一种密码处理方法,执行共用密钥块密码处理的密码处理装置的密码处理方法,其特征在于,具有以下步骤:
密钥生成步骤,在密钥调度部中生成应用于在密码处理部中执行的循环函数的执行的循环密钥;以及
密码处理步骤,在密码处理部中输入上述循环密钥,进行将循环函数反复循环多次的数据变换处理,
其中,上述密钥生成步骤具有以下步骤:
中间密钥生成步骤,在中间密钥生成部中将私人密钥输入到加密函数中来生成中间密钥,其中,上述加密函数包括在上述密码处理部中利用的循环函数;以及
中间密钥扩展步骤,在中间密钥扩展部中输入上述中间密钥生成部所生成的中间密钥来生成循环密钥。
并且,本发明的第三侧面是一种计算机程序,使执行共用密钥块密码处理的密码处理装置执行密码处理,其特征在于,具有以下步骤:
密钥生成步骤,在密钥调度部中生成应用于在密码处理部中执行的循环函数的执行的循环密钥;以及
密码处理步骤,在密码处理部中输入上述循环密钥,进行将循环函数反复循环多次的数据变换处理,
其中,上述密钥生成步骤执行以下步骤:
中间密钥生成步骤,在中间密钥生成部中将私人密钥输入到加密函数中来生成中间密钥,其中,上述加密函数包括在上述密码处理部中利用的循环函数;以及
中间密钥扩展步骤,在中间密钥扩展部中输入上述中间密钥生成部所生成的中间密钥来生成循环密钥。
此外,本发明的计算机程序例如是能够通过以计算机可读的形式提供的存储介质、通信介质、例如CD、FD、MO等记录介质或网络等通信介质来对可执行各种程序代码的计算机系统提供的计算机程序。通过以计算机可读形式提供这种程序,在计算机系统上实现与程序相应的处理。
通过根据后述的本发明的实施例、附图来详细进行说明,本发明的进一步的其它目的、特征、优点会更清楚。此外,在本说明书中,系统是多个装置的逻辑集合结构,并不限于各结构的装置存在于同一壳体内。
发明的效果
根据本发明的一个实施例的结构,设为如下结构:在执行共用密钥块密码处理的密码处理装置的密钥调度部中,利用在密码处理部中应用的加密函数进行循环密钥生成处理。具体地说,将私人密钥输入到加密函数来生成中间密钥,将基于中间密钥和私人密钥等进行双射变换而得到的结果、双射变换数据的异或运算结果应用为循环密钥,其中,上述加密函数包括在密码处理部中利用的循环函数。根据本结构,实现基于利用保证安全性的加密函数而生成的中间密钥的循环密钥的生成,能够提高安全性、即密钥的分析难度,并且通过利用了密码处理部的结构的密钥生成能够简化密钥调度部的结构,从而能够提高安装效率。
附图说明
图1是表示共用密钥块密码算法的基本结构的图。
图2是说明图1所示的共用密钥块密码处理部E 10的内部结构的图。
图3是说明图2所示的密码处理部12的详细结构的图。
图4是说明作为循环函数执行部的一个结构例的SPN结构循环函数的图。
图5是说明作为循环函数执行部的一个结构例的Feistel(菲斯特尔)结构的图。
图6是说明作为循环函数执行部的一个结构例的扩展Feistel结构的图。
图7是说明非线性变换处理部的具体例的图。
图8是说明线性变换处理部的具体例的图。
图9是说明应用于加密处理的加密密钥调度部的结构以及处理的图。
图10是说明应用于解密处理的加密密钥调度部的结构以及处理的图。
图11是说明执行加密处理中的循环密钥生成处理的密钥调度部的结构例的图。
图12是说明执行在AES中使用的重复型方式的循环密钥生成处理的密钥调度部的结构例的图。
图13是说明执行在Camellia中使用的中间密钥生成方式的循环密钥生成处理的密钥调度部的结构例的图。
图14是说明图13所示的中间密钥生成函数141的详细结构例的图。
图15是说明本发明的一个实施例所涉及的密钥调度部的中间密钥生成部的结构例的图。
图16是说明应用根据图15所示的结构而生成的中间密钥MK和私人密钥K来生成循环密钥的密钥调度部的结构的图。
图17是说明通过图16所示的密钥调度部的处理而生成的循环密钥数据的图。
图18是说明在图16所示的密钥调度部的结构中进行了双射函数的共用化的结构例的图。
图19是说明在图17所示的密钥调度部的结构中省略第一数据变换处理部的结构例的图。
图20是说明能够与长于块长度[n]的最大2n比特的私人密钥对应的密钥调度部的中间密钥生成部的结构例的图。
图21是说明应用根据图20所示的结构而生成的中间密钥MK和私人密钥K来生成循环密钥的密钥调度部的结构的图。
图22是说明通过图21所示的密钥调度部的处理而生成的循环密钥数据的图。
图23是说明在图21所示的密钥调度部的结构中进行了双射函数的共用化的结构例的图。
图24是说明能够与长于块长度[n]的最大2n比特的私人密钥对应的密钥调度部的中间密钥生成部的结构例的图。
图25是说明应用根据图24所示的结构而生成的中间密钥MK和私人密钥K来生成循环密钥的密钥调度部的结构的图。
图26是说明通过图25所示的密钥调度部的处理而生成的循环密钥数据的图。
图27是说明在图25所示的密钥调度部的结构中进行了双射函数的共用化的结构例的图。
图28是表示执行本发明所涉及的密码处理的作为密码处理装置的IC模块的结构例的图。
具体实施方式
下面详细说明本发明的密码处理装置和密码处理方法、以及计算机程序。按照下面的项目进行说明。
1.共用密钥块密码的概要
2.密钥调度部中的中间密钥生成结构的概要
(2-1)关于密钥调度部的详细结构
(2-2)关于各种中间密钥生成处理结构
3.按照本发明的中间密钥和循环密钥生成处理以及密码处理结构
(3-1:第一类)
输入具有与块长度相同的比特长度的私人密钥来生成中间密钥、根据所生成的中间密钥来生成循环密钥的密钥调度部的结构例
(3-1A)关于通过在中间密钥生成部中使用确保了对差分攻击的抵抗性的加密函数E’来实现提高对related-key attack(相关密钥攻击)的安全性的中间密钥生成部的结构例
(3-1B)关于根据在上述的(3-1A)所说明的中间密钥生成部中生成的中间密钥来生成循环密钥的中间密钥扩展部(循环密钥生成部)的、实现提高对密码攻击的抵抗性的结构例
(3-1C)关于根据在上述的(3-1A)所说明的中间密钥生成部中生成的中间密钥来生成循环密钥的中间密钥扩展部(循环密钥生成部)的、不降低安全性而提高安装效率的结构例
(3-2:第二类)
输入具有达到块长度的两倍的比特长度的私人密钥来生成中间密钥、根据所生成的中间密钥来生成循环密钥的密钥调度部的结构例
(3-2A)关于具备上述(3-1A~C)的优点的密钥调度部的结构
(3-2B)关于具备上述(3-1A~C)的优点、与上述(3-2A)相比能够进行高速处理的密钥调度部的结构
4.密码处理装置的结构例
[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,通过密码的输入顺序等顺序的变更来进行解密处理。
参照图2说明图1所示的共用密钥块密码处理部E 10的内部结构。能够将块密码分为两个部分来考虑。一个是密钥调度部11,其将密钥K作为输入,通过某个决定的步骤扩展输入密钥K的比特长度,输出扩展密钥K’(比特长度k’),另一个是密码处理部12,其接受明文P和从密钥调度部11输入的扩展密钥K’,以明文P为输入,执行应用了扩展密钥K’的密码处理,执行用于生成密文C的数据变换。此外,如之前所说明的那样,密码处理部12也能够应用在将密文还原为明文的数据解密处理中。
接着,参照图3说明图2所示的密码处理部12的详细结构。如图3所示,密码处理部12具有反复执行应用了循环函数执行部20的数据变换的结构。即,密码处理部12能够分割成循环函数执行部20这样的处理单位。循环函数执行部20接受前级的循环函数执行部的输出Xi和根据扩展密钥生成的循环密钥RKi这两个数据作为输入,在内部执行数据变换处理并将输出数据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中,例如能够设为如下结构:通过将所应用的循环密钥的应用顺序设定为与加密处理相反,将密文作为输入而输出解密文。
图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所示,由异或运算部21、非线性变换处理部22以及线性变换处理部23构成,其中,上述异或运算部21对所有n比特的输入数据执行与循环密钥之间的异或(EXOR)运算,上述非线性变换处理部22输入异或运算部21的运算结果,执行输入数据的非线性变换,上述线性变换处理部23输入非线性变换处理部22中的非线性变换处理结果,对输入数据执行线性变换处理。线性变换处理部23的线性变换处理结果被输出到下一个循环。在最终循环中成为密文。此外,在图4所示的例子中,示出了异或运算部21、非线性变换处理部22、线性变换处理部23的处理顺序,但是并不限定这些处理部的顺序,也可以设为以其它顺序进行处理的结构。
(b)Feistel结构
接着参照图5说明作为循环函数执行部20的一个结构例的Feistel(菲斯特尔)结构。如图5所示,Feistel结构将来自前一循环的作为输入(在第一循环中是输入文)的n比特的输入数据分割成n/2比特的两个数据,在各循环中替换并且执行处理。
在应用了具有Feistel结构的循环函数执行部20b的处理中,如图所示,将一个n/2比特数据和循环密钥输入到F函数部30。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所示,具体地说,非线性变换处理部50是排列m个被称为S盒(S-box)51的s比特输入s比特输出的非线性变换表而得到的,将ms比特的输入数据以每s比特进行分割,分别输入到对应的S盒(S-box)51来变换数据。在各S盒51中,例如执行应用了变换表的非线性变换处理。
当所输入的数据的大小变大时,安装上的成本有升高的趋势。为了避免成本升高,如图7所示,多采用将处理对象数据X分割为多个单位、对各单位实施非线性变换的结构。例如,当将输入大小设为ms比特时,分割为各s比特的m个数据,分别对m个S盒(S-box)51输入s比特,例如执行应用了变换表的非线性变换处理,对m个这些各s比特输出进行合成得到ms比特的非线性变换结果。
(线性变换处理部)
参照图8说明线性变换处理部的具体例。线性变换处理部例如将来自S盒的输出数据即ms比特的输出值作为输入值X而输入,对该输入实施线性变换而输出ms比特的结果。线性变换处理例如执行输入比特位置的替换处理等线性变换处理,输出ms比特的输出值Y。线性变换处理例如对输入应用线性变换矩阵来进行输入比特位置的替换处理。该矩阵的一个例子是图8所示的线性变换矩阵。
在线性变换处理部中应用的线性变换矩阵的元素是扩展域:GF(28)的域的元素、GF(2)的元素等,一般能够构成为应用了各种表现的矩阵。图8是表示具有ms比特输入输出、由在GF(2s)上定义的m×m矩阵进行定义的线性变换处理部的一个结构例的图。
[2.密钥调度部中的中间密钥生成结构的概要]
如上所述,共用密钥块密码是利用循环函数的重复来进行密码处理的结构。作为该共用密钥块密码处理的问题点,存在由密码分析引起的密钥的泄露。通过密码分析易于进行密钥的分析导致该密码处理的安全性较低,在实际应用上成为较大问题。
根据上述说明可知在共用密钥块密码中在各循环中进行应用了根据扩展密钥而生成的循环密钥的处理。在密码攻击中存在如下情况:进行根据循环密钥的分析来复原扩展密钥、进一步分析作为扩展密钥的原始数据的私人密钥这种顺序的攻击。首先,在说明本发明的结构之前,说明密钥调度部中的中间密钥生成结构的概要。
按照下面的各项目进行说明。
(2-1)关于密钥调度部的详细结构
(2-2)关于各种中间密钥生成处理结构
(2-1)关于密钥调度部的详细结构
首先,说明密钥调度部的详细结构。如之前例如参照图2说明的那样,在共用密钥块密码中,密钥调度部扩展输入密钥K的比特长度并输出扩展密钥K’(比特长度k’),执行应用了根据扩展密钥生成的循环密钥RKi的循环函数。
密钥调度部例如将k-bit的私人密钥K作为输入,通过某个决定的变换生成k’-bit的扩展密钥(循环密钥)K’。一般k<k’,例如,在共用密钥块密码AES中,
在私人密钥K的比特数:k=128的情况下,
执行扩展密钥生成处理使得
扩展密钥(循环密钥)K’的比特数:k’=1408(=128×11)。
另外,在共用密钥块密码Camellia中,
在私人密钥K的比特数:k=128的情况下,
执行扩展密钥生成处理使得
扩展密钥(循环密钥)K’的比特数:k’=1664(=128×13)。
此外,扩展密钥被输入到密码处理部的循环函数中,因此也称为循环密钥。另外,除了循环函数以外,包括应用于最初的循环函数之前的运算(异或(EXOR))的初始密钥、应用于最后的循环函数之后的运算(异或(EXOR))的最终密钥有时也称为循环密钥。这些密钥都根据密钥调度部所生成的扩展密钥而生成。
一般在密钥调度部中存在加密密钥调度部和解密密钥调度部,生成与各自的处理对应的扩展密钥,其中,上述加密密钥调度部生成应用于加密处理的加密扩展密钥,上述解密密钥调度部生成应用于解密处理的解密扩展密钥。参照图9和图10说明分别应用于加密处理和解密处理的加密密钥调度部和解密密钥调度部的结构以及处理。
例如,图9是输入明文P、执行应用了循环函数的块密码来输出密文C的加密结构,例如将k-bit的私人密钥[K]111输入到加密密钥调度部112,通过比特扩展处理等按照规定的算法的数据变换来生成作为循环密钥生成用数据的k’-bit的加密扩展密钥EK 113。进一步根据加密扩展密钥EK 113生成循环密钥,并提供给数据加密部114。在数据加密部114中,在r级的循环函数中通过应用了循环密钥的数据变换来执行加密,从而从明文P生成密文C。
图10示出解密处理结构。将k-bit的私人密钥[K]121输入到解密密钥调度部122,通过比特扩展处理等按照规定算法的数据变换来生成作为循环密钥生成用数据的k’-bit的解密扩展密钥DK 123。此外,私人密钥[K]121应用与在加密处理中应用的图9所示的私人密钥[K]111相同的密钥。进一步根据解密扩展密钥DK 123生成循环密钥,并提供给数据解密部124。在数据解密部124中,在r级的循环函数中通过应用了循环密钥的数据变换来执行解密,从而从密文C生成明文P。
当更详细地观察时,加密扩展密钥EK、解密扩展密钥DK被分别分割为循环密钥RKi(i是循环编号),插入到数据加密部、数据解密部的各自的循环函数中。图11示出加密扩展密钥EK与循环密钥之间的对应。数据加密部114是例如执行以r级为循环数的块密码的结构,在加密的情况下,对从第1级到第r级的循环函数依次输入根据加密扩展密钥EK 113生成的循环密钥115{RK1,RK2,…,RKr-1,RKr}来执行循环函数(F函数)。在解密处理中,将该密钥的顺序设为相反来执行循环函数。
此外,除了图11所示的循环函数以外也存在应用循环密钥的情况。例如在已知为共用密钥块密码算法之一的AES(Advanced Encryption Standard)算法中,执行被称为key-whitening的处理。即,在最后的循环函数之后输入循环密钥,执行循环密钥与处理数据之间的异或运算(EXOR)。另外,在已知为共用密钥块密码算法之一的Camellia中,作为key-whitening,在最初的循环函数之前和最后的循环函数之后分别输入循环密钥,执行循环密钥与处理数据之间的异或运算(EXOR)。
所谓key-whitening密钥是指在最初的循环函数之前或者最后的循环函数之后执行的异或运算(EXOR)所应用的循环密钥。另外,在最初的循环函数之前利用的循环密钥(key-whitening密钥)也称为初始密钥,在最后的循环函数之后利用的循环密钥(key-whitening密钥)也称为最终密钥。
用于构成对进行密钥分析的密码攻击的抵抗性较高、即使密钥分析变难来提高安全性的结构的循环密钥所满足的理想的性质为下面的性质。
(a)不存在等价密钥
(b)对相关密钥攻击(related key attack)具有充分的抵抗性
在此,严密地说,等价密钥是指即使改变P也总是满足E(RK1)=E(RK2)的私人密钥组K1、K2(K1≠K2)。此外,将对明文P应用加密函数E并利用私人密钥K进行加密而得到的结果C设为C=E(RK)。
E(RK1)=E(RK2)
意味着对任意的明文P利用不同的私人密钥K1、K2(K1≠K2)而得到的加密数据变得相等。
在存在这种等价密钥的情况下,使进行分析私人密钥时所进行的暴力攻击(brute force attack)时的计算量减少,因此安全性降低。因此,期望示出该等价密钥的非存在性,但是很难示出严格意义上的等价密钥的非存在性。因而,后面将扩展密钥K’相等这样的不同的私人密钥K1、K2的组重新定义为等价密钥,对该等价密钥的非存在性进行讨论。
另外,所谓related-key attack(相关密钥攻击)是指如下的攻击法:利用使用未知的密钥K进行加密而得到的密文C、和使用与K具有某种关系的密钥
K’=f(K)
根据进行加密而得到的密文C’之间的关系来估计未知的密钥K。攻击者选择K与K’之间的关系使得攻击成立。在很多情况下,表示K与K’之间的关系的函数f表示某些差分。也就是说当输入K与K’的异或运算:K(EXOR)K’=ΔK的K’时,在根据K生成的扩展密钥RK与根据K’生成的扩展密钥RK’之间也出现明显的差分ΔRK(=RK(EXOR)RK’)的情况下,攻击能够应用的可能性较大。相反,在无论对K与K’插入什么样的差分也难以制作出在RK、RK’之间具有较强相关的数据的情况下,可以说很难进行攻击。此外,A(EXOR)B意味着A与B的异或运算。
并且,在安装上还要求密钥调度部具有如下的特性。
(1)安装较为容易
(2)从私人密钥生成扩展密钥的建立时间较短
(3)能够尽量共享加密密钥调度部、解密密钥调度部
(4)能够尽量共享数据加密部、数据解密部
(5)能够容易地对应密钥长度的变更
从安全性和安装的观点出发,期望密钥调度部平衡地满足这些特性。
(2-2)关于各种中间密钥生成处理结构
该扩展密钥生成部中存在AES所使用的重复型方式、Camellia所使用的中间密钥生成方式等。首先,说明这些中间密钥生成方式。
首先,例如参照图12说明AES所使用的重复型方式。在重复型方式中,如图12所示,密钥调度部(扩展密钥生成部)130在每个循环应用被称为循环密钥生成部131-1~r的函数、或者应用适当的次数,由此从私人密钥生成由多个循环密钥RK1、RK2、RK3、…、RKr构成的扩展密钥K’。
在该方式中,在很多情况下能够从私人密钥K立即生成初始的扩展密钥K’,并且能够根据初始扩展密钥K’容易地计算下一个扩展密钥K”,因此能够高速生成扩展密钥。然而,虽然也取决于设定在密钥调度部(扩展密钥生成部)130中的循环密钥生成部131-1~r的结构,但是在使用执行一般的非线性处理的循环密钥生成部作为循环密钥生成部131-1~r的情况下,根据该循环密钥生成部的执行次数,在所使用的扩展密钥的扩散性上有可能产生差。也就是说,在仅应用一次循环密钥生成部而得到的扩展密钥与反复应用两次、三次而得到的扩展密钥中,其特性有可能不同。另外,在生成解密扩展密钥时,也存在要求与加密扩展密钥生成时不同的动作的情况。
例如,在如图12所示的循环密钥生成部131-1~r的简单重复型方式中,存在通过对私人密钥K提供某些差分能够对循环密钥RK1提供任意的差分的情况。当对循环密钥提供这种差分时,相关密钥攻击可能会成功,从而安全性降低。实际上,已知块密码AES的密钥调度部对related-key rectangle attack(相关密钥矩形攻击)的抵抗性不太强。
接着,参照图13说明Camellia所使用的中间密钥生成方式。如图13所示,中间密钥生成方式具有如下结构:在密钥调度部(扩展密钥生成部)140中设定中间密钥生成函数141和中间密钥扩展函数142,首先将私人密钥K(k-bit)输入到中间密钥生成函数141来生成中间密钥MK(m-bit),进一步将中间密钥MK和原来的私人密钥K这两者输入到中间密钥扩展函数142来得到扩展密钥K’(k’-bit)。
图14示出中间密钥生成函数141的详细结构例。图14所示的例子是共用密钥密码Camellia的密钥调度部中的中间密钥生成函数141的详细结构例。在该结构中,如果应用中间密钥生成函数141生成一次中间密钥并将该中间密钥保持在存储器等中,则还可得到能够利用该已生成的中间密钥来容易地生成扩展密钥这种安装上的优点。
但是,在该中间密钥生成方式中,通常是将满足最低限度的搅拌性的函数设定为中间密钥生成函数的结构,并不限制为能够得到充分的搅拌性,因而不能说确保了对上述的相关密钥(related-key)等攻击的抵抗性。另外,具有如下缺点:在中间密钥扩展函数中为了处理大于原来的密钥长度K的值,在硬件上需要用于对值进行操作的较大的寄存器。
[3.按照本发明的中间密钥和循环密钥生成处理以及密码处理结构]
在本发明中,提出一种具备解决上述的密钥调度部的问题点、提高密钥分析难度来提高安全性、并且在安装上也具有有利结构的密钥调度部的结构的密码处理装置。
在本发明中提出的结构是进行扩展密钥、即循环密钥的生成的密钥调度部的结构,基本上是输入k比特的私人密钥K、生成扩展密钥、即循环密钥的密钥调度部的结构。将循环密钥输入到执行加密处理或者解密处理的密码处理部,在各循环函数中进行应用。例如,如之前参照图1、图2说明的那样,以规定比特长度、例如64比特、128比特等规定比特长度的块单位对作为密码处理部中的密码处理对象而要进行处理的数据进行密码处理。
下面,作为本发明所涉及的密钥调度部(扩展密钥生成部)的结构例,划分为两类来进行说明。
(3-1:第一类)
输入具有与块长度相同的比特长度的私人密钥来生成中间密钥、根据所生成的中间密钥来生成循环密钥的密钥调度部的结构例
(3-2:第二类)
输入具有达到块长度两倍的比特长度的私人密钥来生成中间密钥、根据所生成的中间密钥来生成循环密钥的密钥调度部的结构例
并且,针对上述第一、第二类,以下面示出的结构单位来说明本发明的实施例。
(3-1:第一类)
输入具有与块长度相同的比特长度的私人密钥来生成中间密钥、根据所生成的中间密钥来生成循环密钥的密钥调度部的结构例
(3-1A)关于通过在中间密钥生成部中使用确保了对差分攻击的抵抗性的加密函数E’来实现提高对相关密钥攻击的安全性的中间密钥生成部的结构例
(3-1B)关于根据在上述的(3-1A)所说明的中间密钥生成部中生成的中间密钥来生成循环密钥的中间密钥扩展部(循环密钥生成部)的、实现提高对密码攻击的抵抗性的结构例
(3-1C)关于根据在上述的(3-1A)所说明的中间密钥生成部中生成的中间密钥来生成循环密钥的中间密钥扩展部(循环密钥生成部)的、不降低安全性而提高安装效率的结构例
(3-2:第二类)
输入具有达到块长度两倍的比特长度的私人密钥来生成中间密钥、根据所生成的中间密钥来生成循环密钥的密钥调度部的结构例
(3-2A)关于具备上述(3-1A~C)的优点的密钥调度部的结构
(3-2B)关于具备上述(3-1A~C)的优点、与上述(3-2A)相比能够进行高速处理的密钥调度部的结构
下面依次说明各项目。
(3-1:第一类)
输入具有与块长度相同的比特长度的私人密钥来生成中间密钥、根据所生成的中间密钥来生成循环密钥的密钥调度部的结构例
(3-1A)关于通过在中间密钥生成部中使用确保了对差分攻击的抵抗性的加密函数E’来实现提高对相关密钥攻击的安全性的中间密钥生成部的结构例
首先,作为输入具有与块长度相同的比特长度的私人密钥来生成扩展密钥(循环密钥)的结构例,说明通过在中间密钥生成部中使用确保了对差分攻击的抵抗性的加密函数E’来实现提高对相关密钥攻击的安全性的中间密钥生成部的结构例。
本结构例是由于在中间密钥生成部中使用确保了对差分攻击的抵抗性的加密函数E’、从而能够期待提高对相关密钥攻击的安全性的密钥调度部(扩展密钥生成部)。
参照图15说明本实施例所涉及的密钥调度部的中间密钥生成部的结构例。本实施例所涉及的密钥调度部的中间密钥生成部将在密码处理部中利用的加密函数E 201直接应用于扩展密钥生成。加密函数E 201相当于之前参照图1说明的共用密钥块密码处理部E 10。即,本实施例是如下的结构:不设置独立的密钥调度部(扩展密钥生成部),而是利用执行共用密钥块密码处理的密码处理部,对该密码处理部输入私人密钥,作为密码处理结果得到扩展密钥。加密函数E 201是在密码处理部中用于明文的加密的加密函数,密钥调度部是能够利用密码处理部的结构来生成循环密钥的结构,从而能够削减安装成本。
此外,之前参照图1说明的共用密钥块密码处理部E 10的详细结构是图2所示的结构,执行多级循环函数来进行数据变换。在本处理例中,将私人密钥作为输入来执行循环函数,将处理结果作为扩展密钥。
此外,在执行各循环函数时需要循环密钥,需要循环密钥和处理对象数据这两个输入。在本处理例中,如图15所示,对加密函数E 201输入私人密钥[K]211和常数[CONST]212,执行设为
MK=E(K,CONST)
的中间密钥生成处理,得到中间密钥[MK]213。
此外,如上所述,E(A,B)意味着对A应用密钥B并利用加密函数E来进行加密的处理。
这种方式是能够在私人密钥K的密钥大小与加密函数E201的块大小一致的情况下应用的结构。在该方式中,通过将加密函数本身作为中间密钥生成函数来使用,使对中间密钥MK输入任意的差分变得困难,从而能够保证对相关密钥攻击的安全性。要求加密函数E 201对差分攻击具有充分的安全性,从而可以说这种方式是用于构建为与该要求对应的具备安全性的结构的方式。并且,在本实施例的结构中,如上述那样直接利用加密函数,由此不需要重新安装中间密钥生成函数,因此能够降低安装成本。
此外,在该方式中,在保证能够充分确保对差分攻击的安全性的情况下,也可以设为如下结构:不直接利用加密函数E,使用作为循环数少于密码处理中应用的循环数的变换处理结构而简略加密函数E得到的函数E’。具体地说,只要加密函数E 201中任意的输入差分与输出差分之间的转移概率不超过某个阈值即可。阈值是根据与具有与该函数相同的输入输出大小的随机定义的函数比较是否能够识别而设定的值。在具有循环函数的结构的加密函数设计的阶段中,了解到哪个循环为止转移概率或其近似值变为阈值以下。例如已知在AES的情况下,利用四个循环就能够达到该水准。
在加密函数中,在大多数情况下设计为例如追加数个循环作为安全余量,在AES的情况下为10个循环,因此可以说6个循环是与差分攻击有关的余量。在这种情况下也使用去除余量的能够更高速地进行处理的函数作为加密函数E 201。
(3-1B)关于根据在上述的(3-1A)所说明的中间密钥生成部中生成的中间密钥来生成循环密钥的中间密钥扩展部(循环密钥生成部)的、实现提高对密码攻击的抵抗性的结构例
接着,参照图16、图17说明根据在上述的(3-1A)所说明的中间密钥生成部中生成的中间密钥来生成循环密钥的中间密钥扩展部(循环密钥生成部)的、实现提高对密码攻击的抵抗性的结构例。
图16所示的结构是在图15所示的密钥调度部的中间密钥生成部上追加了由第一数据变换处理部221、第二数据变换处理部222、异或运算(EXOR)部223构成的中间密钥扩展部220而得到的结构,该结构输出循环密钥RK 231。循环密钥被应用于密码处理部的各循环函数中,是n比特的多个循环密钥{RK1,RK2,…,RKr}。
图17示出通过图16所示的密钥调度部的处理而生成的循环密钥{RK1,RK2,…,RKr}的结构例。在图17中,作为表示所生成的循环密钥的一部分的例子,从顶部起示出13个循环密钥RK1~RK13。图中所示的Pa(MK)或者Pa,b(MK)表示在图16所示的第二数据变换处理部222中执行的双射变换处理,是对作为输入的中间密钥[MK]应用双射函数而得到的处理结果。另外图中所示的Pa(K)或者Pa,b(K)表示在图16所示的第一数据变换处理部221中执行的双射变换处理,是对作为输入的私人密钥[K]应用双射函数而得到的处理结果。此外,在第一数据变换处理部221、第二数据变换处理部222中,在生成各循环密钥时执行不同方式下的双射处理。
例如,第一个循环密钥RK1是对中间密钥[MK]应用双射函数P1得到的结果,
第二个循环密钥RK2是对中间密钥[MK]应用双射函数P2,1得到的结果与对私人密钥[K]应用双射函数P2,2得到的结果之间的异或运算(EXOR)的结果。在图16所示的异或运算(EXOR)部223中执行异或运算(EXOR)处理。
这样,生成n比特的多个循环密钥{RK1,RK2,…,RKr}。
根据如下的处理顺序来执行参照图16、图17说明的生成循环密钥{RK1,RK2,…,RKr}的处理。
(1)将对MK实施某个决定的双射函数得到的结果保存为RK1
(2)将对MK实施某个决定的双射函数得到的结果与对K实施某个决定的双射函数得到的结果进行异或而得到的结果保存为RK2
(3)将对MK实施某个决定的双射函数得到的结果保存为RK3
(4)将对MK实施某个决定的双射函数得到的结果与对K实施某个双射函数得到的结果进行异或而得到的结果保存为RK4
...
(重复上述)
通过这种处理生成多个循环密钥{RK1,RK2,…,RKr},由此在所输出的密钥中保证如下的性质,有助于提高密码强度、即提高使密钥的分析困难的安全性。
(1)奇数编号的RKi(i是奇数)是对MK进行双射而得到的结果,因此保障如果K变化为不同的值则RKi也必然发生变化。因此,能够保证不存在上述定义的等价密钥。
(2)偶数编号的RKi(i是偶数)是将对MK和K分别进行双射得到的值进行异或而得到的结果,因此不可能根据该结果复原MK、K的值。因此,即使万一仅偶数编号的密钥RKi由于先受到攻击而暴露,也不会知道原来的私人密钥K的值。
(3)保证在连续的两个RKi、RKi+1中必然保存有与
MK、
MK与K的合成
这两个模式对应的成分,因此为了从合并了RKi、RKi+1的2n比特中估计出任意n比特以下的m比特的值,必须进行2m次暴力攻击,从而增加分析成本。
在例如仅重复使用MK来生成循环密钥的以往型的结构、例如设为RKi=MK、RKi+1=MK这样的密钥的生成结构中,要进行m比特的估计会成为如下情况:如果选择比特重复则会降低计算成本,但是在本处理例中必须进行2m次暴力攻击,从而分析的成本变大。因此对攻击者来说密钥分析的难度提高。即使在密码学上看来较弱的双射函数也能够保障该特性。
这样,通过利用参照图16、图17说明的密钥调度部的结构来生成循环密钥,密钥分析的难度加大,从而实现安全性较高的密码处理结构。
(3-1C)关于根据在上述的(3-1A)所说明的中间密钥生成部中生成的中间密钥来生成循环密钥的中间密钥扩展部(循环密钥生成部)的、不降低安全性而提高安装效率的结构例
接着说明根据在上述的(3-1A)所说明的中间密钥生成部中生成的中间密钥来生成循环密钥的中间密钥扩展部(循环密钥生成部)的、不降低安全性而提高了安装效率的中间密钥扩展部(循环密钥生成部)的结构例。
在应用之前参照图16、图17说明的双射函数和异或运算来根据私人密钥[K]和中间密钥[MK]生成循环密钥的结构中,将所利用的双射函数都设为不同的函数进行了说明。当考虑安装时,期望是这些双射函数应用相同的函数的结构。
例如设为在第一个生成密钥[RK1]的生成处理中应用于中间密钥[MK]的双射函数P1与在第二个生成密钥[RK2]的生成处理中应用于中间密钥[MK]的双射函数P2,1相等。例如,如图18所示,在第二数据变换处理部222中执行下面的处理来生成多个循环密钥生成用数据。
(1)将对MK实施第一次双射函数得到的结果设为MK’,将其作为RK1
(2)将对MK’实施第二次相同的双射函数得到的结果设为MK”,将其作为RK2的生成用数据
以后反复进行相同的步骤来制作RK3、RK4、…的生成用数据。
在应用了该结构的硬件安装中,能够削减中间密钥[MK]的值、更新值的保存寄存器区域以及削减所安装的双射函数,从而降低安装成本。
在对决定偶数编号的RKi(i是偶数)时所需的私人密钥[K]的数据变换中也应用相同的结构。即,在图18的第一数据变换处理部221中执行下面的处理。
(1)将对私人密钥[K]实施第一次双射函数得到的结果设为K’,将其作为RK2的生成用数据
(2)将对K’实施第二次相同的双射函数得到的结果设为K”,将其作为RK4的生成用数据
以后反复进行相同的步骤来制作RK6、RK8、…的生成用数据。
关于对应于私人密钥[K]的处理,还能够如下那样实现效率化。为了决定偶数编号的RKi(i是偶数)而对私人密钥[K]实施某个决定的双射函数,但是将此时所使用的双射函数设为不对K进行变更而直接输出的函数。
即在生成偶数编号的RKi(i是偶数)的情况下,是直接对私人密钥[K]进行异或的结构。如图19所示的结构那样,该处理结构为从图18所示的结构中省略第一数据变换处理部221的结构。
即使设为这种结构也不会产生密码强度的降低。由此,不仅具有能够省略用于对私人密钥[K]实施的双射函数的效果,还具有不需要保存K的寄存器从而削减硬件资源的效果。这是由于已经将私人密钥[K]的值作为输入信号提供给硬件处理部,该值在加密处理期间不发生变化地持续保持,在任何定时都能够参照。
(3-2:第二类)
输入具有达到块长度两倍的比特长度的私人密钥来生成中间密钥、根据所生成的中间密钥生成循环密钥的密钥调度部的结构例
接着,说明输入具有达到块长度两倍的比特长度的私人密钥来生成扩展密钥(循环密钥)的密钥调度部的结构例。
(3-2A)关于具备上述(3-1A~C)的优点的密钥调度部的结构
首先,作为输入具有达到块长度两倍的比特长度的私人密钥来生成扩展密钥(循环密钥)的密钥调度部(扩展密钥生成部)的结构例,说明具备上述(3-1A~C)的优点的密钥调度部的结构。
在上述(3-1A~C)中,对输入与块长度[n]相同的长度的私人密钥[K]的情况的处理结构进行了说明,但是不仅是输入与块长度[n]相同的长度的私人密钥的[K]的情况,为了提高密码的应用范围期望能够对应最大2n比特的私人密钥,其中,上述块长度[n]是在密码处理部的加密函数中进行处理的单位数据。下面,说明这种密钥调度部的结构例。
将作为在密码处理部的加密函数中进行处理的单位数据的块长度设为n比特,将对密钥调度部输入的私人密钥[K]的比特大小设为m比特(n+1≤m≤2n)。
图20示出密钥调度部的中间密钥生成部的结构。如图20所示,本处理例的密钥调度部的中间密钥生成部具有Feistel结构,是在作为Feistel结构中的循环函数的F函数部中设定了加密函数E 301~303的结构,该结构还具有数据变换部300和异或运算(EXOR)部311~313。这些结构是在密码处理部中利用于明文的加密的结构。即,在本处理例中,密钥调度部是能够利用密码处理部的结构来生成循环密钥的结构,从而能够削减安装成本。
首先,在数据变换部300中对输入到密钥调度部的m比特的私人密钥[K]执行数据变换,生成n比特的[K1]、[K2]这两个私人密钥变换数据。作为具体的方法,将对输入私人密钥[K]连续附加n个比特0而得到的m+n比特值(K|000000000)的最初的n比特设为第一私人密钥变换数据[K1],将下一个n比特设为第二私人密钥变换数据[K2]。
或者也可以设为如下结构:在数据变换部300中生成将私人密钥[K]排列两次而得到的数据[K|K],将最初的n比特设为第一私人密钥变换数据[K1]=K,将后一半n比特设为第二私人密钥变换数据[K2]=K。
或者,也可以设为如下结构:在数据变换部300中生成在私人密钥[K]上连接K的比特反转而得到的结构K|K(反转),并且从前面起以每n比特进行分割,将最初的n比特设为第一私人密钥变换数据[K1]=K,将后一半n比特设为第二私人密钥变换数据[K2]=K的反转数据。
接着,按照将加密函数E 301~303视为Feistel结构中的循环函数即F函数的由三个循环构成的Feistel结构对这些第一私人密钥变换数据[K1]和第二私人密钥变换数据[K2]进行数据变换,作为其结果得到n比特的中间密钥[MK1]、[MK2]。
分别对各加密函数E 301~303输入预先决定的常数[CONST1]、[CONST2]、[CONST3]来执行数据变换。通过下面的处理来生成图20所示的中间值[X1]和所输出的中间密钥[MK1]、[MK2]。
X1=K2(EXOR)(E(K1,CONST1))
MK1=K1(EXOR)(E(X1,CONST2))
MK2=X1(EXOR)(E(MK1,CONST3))。
此外,A(EXOR)B意味着A与B之间的异或运算,
E(A,B)意味着对A应用密钥B并利用加密函数E进行加密的处理。
中间密钥[MK1]、[MK2]与第一私人密钥变换数据[K1]、第二私人密钥变换数据[K2]之间的关系式如下:
MK1=E[(E(K1,CONST1))(EXOR)K2,CONST2](EXOR)K1
MK2=(E(MK1,CONST3))(EXOR)(E(K1,CONST1))(EXOR)K2。
在应用了图20所示那样的Feistel结构的密码处理结构中,已知例如通过将加密函数E 301~303设定为对差分攻击具有强度的函数,作为2n比特的数据变换函数而进行三循环Feistel而得到的结果也同样,强度提高。因而,利用图20所示的数据变换结构的中间密钥生成处理结构为密码强度较高的密钥生成结构,难以通过所生成的中间密钥[MK1]、[MK2]的分析来得到私人密钥信息,从而实现安全性较高的中间密钥生成。
此外,在该方式中,在保证能够充分确保对差分攻击的安全性的情况下,也可以设为如下结构:不直接利用加密函数E,而使用作为循环数少于在密码处理中应用的循环数的变换处理结构而简略加密函数E得到的函数E’。具体地说,只要在加密函数E 201中任意的输入差分与输出差分之间的转移概率不超过某个阈值即可。阈值是根据与具有与该函数相同的输入输出大小的随机定义的函数比较是否能够识别而设定的值。在具有循环函数的结构的加密函数的设计的阶段中了解到哪个循环为止转移概率或其近似值变为阈值以下。例如已知在AES的情况下利用四个循环就能够达到该水准。
并且,参照图21、图22说明应用了图20所示的中间密钥生成结构的循环密钥生成处理结构。图21所示的结构是在图20所示的密钥调度部的中间密钥生成部结构上追加由第一数据变换处理部351、第二数据变换处理部352、异或运算(EXOR)部353构成的中间密钥扩展部350、即作为循环密钥生成部而发挥功能的中间密钥扩展部350而得到的结构,该结构输出循环密钥RK361。循环密钥被应用于密码处理部的各循环函数中,是n比特的多个循环密钥{RK1,RK2,…,RKr}。
图22示出通过图21所示的密钥调度部的处理而生成的循环密钥{RK1,RK2,…,RKr}的结构例。在图22中,作为表示所生成的循环密钥的一部分的例子,从顶部起示出了13个循环密钥RK1~RK13。图示的Pa(MK1)、Pa,b(MK1)、Pa(MK2)、Pa,b(MK2)表示在图21所示的第二数据变换处理部352中执行的双射变换处理,是对作为输入的中间密钥[MK1]或[MK2]应用双射函数而得到的处理结果。另外,图示的Pa(K1)、Pa,b(K1)、Pa(K2)、Pa, b(K2)表示在图21所示的第一数据变换处理部351中执行的双射变换处理,是对作为输入的私人密钥变换数据[K1]、[K2]应用双射函数而得到的处理结果。此外,在第一数据变换处理部351、第二数据变换处理部352中,在生成各循环密钥时执行不同方式下的双射处理。
例如,第一个循环密钥RK1是对中间密钥[MK1]应用双射函数P1得到的结果,
第二个循环密钥RK2是对中间密钥[MK1]应用双射函数P2, 1得到的结果与对第二私人密钥变换数据[K2]应用双射函数P2,2得到的结果之间的异或运算(EXOR)的结果。
第三个循环密钥RK3是对中间密钥[MK2]应用双射函数P3得到的结果,
第四个循环密钥RK4是对中间密钥[MK2]应用双射函数P4, 1得到的结果与对第一私人密钥变换数据[K1]应用双射函数P4,2得到的结果之间的异或运算(EXOR)的结果。
这样,生成n比特的多个循环密钥{RK1,RK2,…,RKr}。
通过下面的处理顺序来执行参照图21、图22说明的生成循环密钥{RK1,RK2,…,RKr}的处理。
(1)将对MK1实施某个决定的双射函数得到的结果保存为RK1
(2)将对MK1实施某个决定的双射函数得到的结果与对K2实施某个决定的双射函数得到的结果进行异或的结果保存为RK2
(3)将对MK2实施某个决定的双射函数得到的结果保存为RK3
(4)将对MK2实施某个决定的双射函数得到的结果与对K1实施某个双射函数得到的结果进行异或的结果保存为RK4
(5)将对MK1实施某个决定的双射函数得到的结果保存为RK5
(6)将对MK1实施某个决定的双射函数得到的结果与对K2实施某个决定的双射函数得到的结果进行异或的结果保存为RK6
(7)将对MK2实施某个决定的双射函数得到的结果保存为RK7
(8)将对MK2实施某个决定的双射函数得到的结果与对K 1实施某个双射函数得到的结果进行异或的结果保存为RK8
(重复上述)
此外,也可以是在上述顺序中替换了中间密钥[MK1]与[MK2]、或者替换了私人密钥变换数据[K1]与[K2]的结构。
通过这种处理来生成多个循环密钥{RK1,RK2,…,RKr},由此在所输出的密钥中保证如下的性质,有助于提高密码强度、即提高使密钥的分析困难的安全性。
(1)当合并奇数编号的RKi(i是奇数)和RKi+2时,成为MK1和MK2,这是对K1|K2进行双射而得到的结果,因此保障如果K变化为不同的值则RKi|RKi+2也必然发生变化,因此能够保证不存在上述定义的等价密钥。
(2)当合并偶数编号的RKi(i是偶数)和RKi+2时,是将对由MK1和MK2作成的2n比特数据以及由K1和K2作成的2n比特数据分别进行双射得到的值进行异或而得到的结果,因此不可能根据该结果复原MK1、MK2、K1、K2的值。因此,即使万一仅偶数编号的密钥RKi(i是偶数)和RKi+2由于先受到攻击而暴露,也不会知道原来的私人密钥K的值。
(3)保证在连续的四个RKi、RKi+1、RKi+2、RKi+3中必然保存有与
MK1、
MK2、
MK1与K2的合成、
MK2与K1的合成
这四个模式对应的成分,因此为了从合并RKi、RKi+1、RKi+2、RKi+3得到的4n比特中估计出任意的2n比特以下的m比特的值,必须进行2m次暴力攻击,从而增加分析成本。因此对攻击者来说密钥分析的难度提高。即使在密码学上看来较弱的双射函数也能够保障该性质。此外,即使替换MK1与MK2、或者替换K1与K2也存在该效果。
这样,通过应用参照图21、图22说明的密钥调度部的结构来进行循环密钥的生成,使密钥的分析的难度加大,从而实现安全性较高的密码处理结构。
此外,在本实施例中,也与之前说明的实施例相同,不将所利用的双射函数设为全部不同,而将至少一部分设为共用,由此能够提高安装效率。
例如在将应用于中间密钥[MK1]的双射函数设为共用的函数的设定例中,执行下面的处理。将在第一个生成密钥[RK1]的生成处理中应用于中间密钥[MK1]的双射函数P1与在第二个生成密钥[RK2]的生成处理中应用于中间密钥[MK1]的双射函数P2,1设为相等。如图23所示,在第二数据变换处理部352中,执行下面的处理来生成多个循环密钥生成用数据。
(1)将对MK1实施第一次双射函数得到的结果设为MK1’,将其作为RK1。
(2)将对MK1’实施第二次相同的双射函数得到的结果设为MK1”,将其作为RK2的生成用数据。
以后重复同样的步骤来制作RK3、RK4、…的生成用数据。
在上述处理中,是将对中间密钥[MK1]应用的双射变换设为共用的结构例,但是同样,也可以是将对中间密钥[MK2]应用的双射变换设为共用的结构,并且也可以设为将对两个中间密钥[MK1]、[MK2]应用的双射变换设为共用的结构。
同样地,可以是将对第一私人密钥变换数据[K1]应用的双射函数设为共用的结构、将对第二私人密钥变换数据[K2]应用的双射函数设为共用的结构、进一步将对第一私人密钥变换数据[K1]和第二私人密钥变换数据[K2]应用的双射函数设为共用的结构等。在这些情况下,如图23所示,在第一数据变换处理部351中,执行至少一部分的变换处理应用了共用的双射函数的数据变换。
在应用了该结构的硬件安装中,能够削减中间密钥[MK1]、[MK2]、各私人密钥变换数据[K1]、[K2]的值、更新值的保存寄存器区域以及削减所安装的双射函数,从而降低安装成本。
(3-2B)关于具备上述(3-1A~C)的优点、与上述(3-2A)相比能够进行高速处理的密钥调度部的结构
接着,说明具备之前在(3-1A~C)的项目中说明的具有攻势的优点、并且与上述(3-2A)的结构相比能够进行高速处理的密钥调度部的结构。
本实施例也是与如下的密钥调度部(扩展密钥生成部)的结构例相关的实施例:不仅与输入与块长度相同的长度的私人密钥K的情况对应,还能够对应最大2n比特的私人密钥,其中,上述块长度是在密码处理部中设定的加密函数的处理单位。
此外,将作为加密函数的处理单位的块长度设为n比特,将输入到密钥调度部的私人密钥的密钥大小设为m比特(n+1≤m≤2n)。参照图24说明本实施例中的密钥调度部的中间密钥生成部的结构。
首先,在数据变换部401中对输入到密钥调度部的m比特的私人密钥[K]执行数据变换,生成n比特的[K1]、[K2]两个私人密钥变换数据。作为具体的方法,将对输入私人密钥[K]连接附加n个比特0得到的m+n比特值(K|000000000)的最初的n比特设为第一私人密钥变换数据[K1],将下一个n比特设为第二私人密钥变换数据[K2]。
或者也可以设为如下结构:在数据变换部401中生成将私人密钥[K]排列两次的数据[K|K],将最初的n比特设为第一私人密钥变换数据[K1]=K,将后一半n比特设为第二私人密钥变换数据[K2]=K。
或者,也可以设为如下结构:在数据变换部401中生成在私人密钥[K]上连接K的比特反转而得到的结构K|K(反转),并且从前面起以每n比特进行分割,将最初的n比特设为第一私人密钥变换数据[K1]=K,将后一半n比特设为第二私人密钥变换数据[K2]=K的反转数据。
接着,如图24所示,将第一私人密钥变换数据[K1]输入到加密函数E 411,将第二私人密钥变换数据[K1]输入到加密函数E 412,执行利用加密函数的密码处理。这些加密函数是在密码处理部中利用于明文的加密的加密函数。即、在本处理例中,密钥调度部也是能够利用密码处理部的结构来生成循环密钥的结构,从而能够削减安装成本。
说明利用了这些加密函数的具体处理。将预先决定的常数[CONST1]、[CONST2]输入到各加密函数E 411、加密函数E 412,执行下面的数据变换处理来生成中间密钥[MK1]、[MK2]。
MK1=E(K1,CONST1)
MK2=E(K2,CONST2)
上式意味着:在加密函数E 411中,通过对第一私人密钥变换数据[K1]应用了常数[CONST1]的加密处理来生成中间密钥[MK1],在加密函数E 412中,通过对第二私人密钥变换数据[K2]应用了常数[CONST2]的加密处理来生成中间密钥[MK2]。通过该处理生成两个n比特中间密钥[MK1]、[MK2],根据这些中间密钥生成循环密钥。在本处理例中,加密函数E 411和加密函数E 412能够进行并行处理,从而能够缩短处理时间。
此外,在该方式中,在保证能够充分确保对差分攻击的安全性的情况下,也可以设为如下结构:不直接利用加密函数E,使用作为循环数少于在密码处理中应用的循环数的变换处理结构而简略加密函数E而得到的函数E’。具体地说,只要加密函数E 201中任意的输入差分与输出差分之间的转移概率不超过某个阈值即可。阈值是根据与具有与该函数相同的输入输出大小的随机定义的函数比较是否能够识别而设定的值。在具有循环函数的结构的加密函数的设计阶段中,了解到哪个循环为止转移概率或其近似值变为阈值以下。例如已知在AES的情况下利用四个循环就能够达到该水准。
并且,参照图25、图26说明应用了图24所示的中间密钥生成结构的循环密钥生成处理结构。图25所示的结构是在图24所示的结构上追加由第一数据变换处理部451、第二数据变换处理部452、异或运算(EXOR)部453构成的中间密钥扩展部450而得到的结构,该结构输出循环密钥RK 461。循环密钥被应用于密码处理部的各循环函数中,是n比特的多个循环密钥{RK1,RK2,…,RKr}。
图26示出通过图25所示的密钥调度部的处理而生成的循环密钥{RK1,RK2,…,RKr}的结构例。在图26中,作为表示所生成的循环密钥的一部分的例子,从顶部起示出了13个循环密钥RK1~RK13。图示的Pa(MK1)、Pa,b(MK1)、Pa(MK2)、Pa,b(MK2)表示在图25所示的第二数据变换处理部452中执行的双射变换处理,是对作为输入的中间密钥[MK1]或[MK2]应用双射函数而得到的处理结果。另外,图示的Pa(K1)、Pa,b(K1)、Pa(K2)、Pa, b(K2)表示在图25所示的第一数据变换处理部451中执行的双射变换处理,是对作为输入的私人密钥变换数据[K1]、[K2]应用双射函数而得到的处理结果。此外,在第一数据变换处理部451、第二数据变换处理部452中,在生成各循环密钥时执行不同方式下的双射处理。
例如,第一个循环密钥RK1是对中间密钥[MK1]应用双射函数P1得到的结果,
第二个循环密钥RK2是对中间密钥[MK1]应用双射函数P2, 1得到的结果与对第二私人密钥变换数据[K2]应用双射函数P2,2得到的结果之间的异或运算(EXOR)的结果。
第三个循环密钥RK3是对中间密钥[MK2]应用双射函数P3得到的结果,
第四个循环密钥RK4是对中间密钥[MK2]应用双射函数P4, 1得到的结果与对第一私人密钥变换数据[K1]应用双射函数P4,2得到的结果之间的异或运算(EXOR)的结果。
这样,生成n比特的多个循环密钥{RK1,RK2,…,RKr}。
根据下面的处理顺序来执行参照图25、图26说明的生成循环密钥{RK1,RK2,…,RKr}的处理。
(1)将对MK1实施某个决定的双射函数得到的结果保存为RK1
(2)将对MK1实施某个决定的双射函数得到的结果与对K2实施某个决定的双射函数得到的结果进行异或的结果保存为RK2
(3)将对MK2实施某个决定的双射函数得到的结果保存为RK3
(4)将对MK2实施某个决定的双射函数得到的结果与对K1实施某个双射函数得到的结果进行异或的结果保存为RK4
(5)将对MK1实施某个决定的双射函数得到的结果保存为RK5
(6)将对MK1实施某个决定的双射函数得到的结果与对K2实施某个决定的双射函数得到的结果进行异或的结果保存为RK6
(7)将对MK2实施某个决定的双射函数得到的结果保存为RK7
(8)将对MK2实施某个决定的双射函数得到的结果与对K1实施某个双射函数得到的结果进行异或的结果保存为RK8
...
(重复上述)
此外,设为如下的结构:在上述顺序中也可以替换中间密钥[MK1]与[MK2],但是此时必然也同时替换私人密钥变换数据[K1]与[K2]。
通过这种处理来生成多个循环密钥{RK1,RK2,…,RKr},由此在所输出的密钥中保证如下的性质,有助于提高密码强度、即提高使密钥的分析困难的安全性。
(1)当合并奇数编号的RKi(i是奇数)和RKi+2时成为MK1和MK2,这是对K1|K2进行双射而得到的结果,因此保障如果K变化为不同的值则RKi|RKi+2也必然发生变化,因此能够保证不存在上述定义的等价密钥。
(2)当合并偶数编号的RKi(i是偶数)和RKi+2时,是对由MK1和MK2作成的2n比特数据以及由K1和K2作成的2n比特数据分别进行双射而得到的值进行异或的结果,因此不可能根据该结果复原MK1、MK2、K1、K2的值。因此,即使万一仅偶数编号的密钥RKi(i是偶数)和RKi+2由于先受到攻击而暴露,也不会知道原来的私人密钥K的值。
(3)保证在连续的四个RKi、RKi+1、RKi+2、RKi+3中必然保存有与
MK1、
MK2、
MK1与K2的合成、
MK2与K1的合成
这四个模式对应的成分,因此为了从合并RKi、RKi+1、RKi+2、RKi+3得到的4n比特中估计出任意的2n比特以下的m比特的值,必须进行2m次暴力攻击,从而增加分析成本。因此对攻击者来说密钥分析的难度加大。即使在密码学上看来较弱的双射函数也能够保障该性质。
此外,在本实施例中也与之前说明的实施例相同,不将全部所利用的双射函数设为不同,而将至少一部分设为共用,由此能够提高安装效率。
例如在将应用于中间密钥[MK1]的双射函数设为共用的设定例中,执行下面的处理。将在第一个生成密钥[RK1]的生成处理中应用于中间密钥[MK1]的双射函数P1与在第二个生成密钥[RK2]的生成处理中应用于中间密钥[MK1]的双射函数P2,1设为相等。例如,如图27所示,在第二数据变换处理部452中,执行下面的处理来生成多个循环密钥生成用数据。
(1)将对MK1实施第一次双射函数得到的结果设为MK1’,将其作为RK1。
(2)将对MK1’实施第二次相同的双射函数得到的结果设为MK1”,将其作为RK2的生成用数据。
以后反复进行相同的步骤来制作RK3、RK4、…的生成用数据。
在上述处理中,是将对中间密钥[MK1]应用的双射变换设为共用的结构例,但是同样也可以是将对中间密钥[MK2]应用的双射变换设为共用的结构,并且,也可以设为将对两个中间密钥[MK1]、[MK2]应用的双射变换设为共用的结构。
同样地,可以是将对第一私人密钥变换数据[K1]应用的双射函数设为共用的结构、将对第二私人密钥变换数据[K2]应用的双射函数设为共用的结构、进一步将对第一私人密钥变换数据[K1]和第二私人密钥变换数据[K2]应用的双射函数设为共用的结构等。在这些情况下,如图27所示,在第一数据变换处理部451中,执行至少一部分的变换处理应用了共用的双射函数的数据变换。
在应用了该结构的硬件安装中,能够削减中间密钥[MK1]、[MK2]、各私人密钥变换数据[K1]、[K2]的值、更新值的保存寄存器区域以及削减所安装的双射函数,从而降低安装成本。
[4.密码处理装置的结构例]
最后,在图28中示出执行按照上述的实施例的密码处理的作为密码处理装置的IC模块700的结构例。能够在例如PC、IC卡、读写器、其它各种信息处理装置中执行上述处理,图28所示的IC模块700能够构成在这些各种设备中。
图28所示的CPU(Central processing Unit:中央处理单元)701是执行密码处理的开始、结束、数据的发送接收的控制、各结构部之间的数据传输控制、其它各种程序的处理器。存储器702由ROM(Read-Only-Memory:只读存储器)和RAM(Random Access Memory:随机存取存储器)等构成,其中,上述ROM保存CPU 701所执行的程序、或运算参数等固定数据,上述RAM作为在CPU 701的处理中执行的程序以及在程序处理中适当变化的参数的保存区域、工作区域而使用。另外,存储器702能够作为密码处理中所需的密钥数据、在密码处理中应用的变换表(置换表)、在变换矩阵中应用的数据等的保存区域而使用。此外,数据保存区域优选构成为具有耐损害(tamper)结构的存储器。
密码处理部703例如执行按照共用密钥块密码处理算法的密码处理、解密处理,其中,上述共用密钥块密码处理算法应用了上述各种密码处理结构、即
(a)SPN(Substitution Permutation Network)结构、
(b)Feistel结构、
(c)扩展Feistel结构
这些各结构中的任一个结构。
另外,密码处理部703具有密钥调度部,该密钥调度部具有与上述各实施例对应的结构、即
(3-1:第一类)
输入具有与块长度相同的比特长度的私人密钥来生成中间密钥、根据所生成的中间密钥来生成循环密钥的密钥调度部的结构
(3-1A)通过在中间密钥生成部中使用确保了对差分攻击的抵抗性的加密函数E’来实现提高对相关密钥攻击的安全性的中间密钥生成部的结构
(3-1B)根据在上述的(3-1A)所说明的中间密钥生成部中生成的中间密钥来生成循环密钥的中间密钥扩展部(循环密钥生成部)的、实现提高对密码攻击的抵抗性的结构
(3-1C)根据在上述的(3-1A)所说明的中间密钥生成部中生成的中间密钥来生成循环密钥的中间密钥扩展部(循环密钥生成部)的、不降低安全性而提高安装效率的结构
(3-2:第二类)
输入具有达到块长度两倍的比特长度的私人密钥来生成中间密钥、根据所生成的中间密钥来生成循环密钥的密钥调度部的结构
(3-2A)具备上述(3-1A~C)的优点的密钥调度部的结构
(3-2B)具备上述(3-1A~C)的优点、与上述(3-2A)相比能够进行高速处理的密钥调度部的结构
与这些处理结构中的任一个对应的结构。
例如,在密码处理部703中执行如下的密码处理。
首先,在密码处理部703内的密钥调度部中生成在密码处理部703内的密码处理执行部的循环函数的执行中应用的循环密钥。设为如下的处理来执行该循环密钥的生成:在中间密钥生成部中,将私人密钥输入到包括密码处理执行部所利用的循环函数的加密函数中来生成中间密钥,之后在中间密钥扩展部中,输入中间密钥生成部所生成的中间密钥来生成循环密钥。具体地说,应用参照图15~图27说明的结构、即上述的(3-1A~C)、(3-2A、B)中的任一个结构来执行循环密钥的生成。接着,在密码处理执行部中,输入循环密钥来执行将循环函数反复循环多次的数据变换处理。
此外,在此示出了将密码处理单元设为单独模块的例子,但是也可以构成为不设置这种独立的密码处理模块,而是例如将密码处理程序保存在ROM中,CPU 701读取ROM保存程序来执行。
随机数产生器704执行在密码处理所需的密钥的生成等中所必需的随机数的产生处理。
发送接收部705是执行与外部的数据通信的数据通信处理部,例如执行与读写器等IC模块之间的数据通信,执行在IC模块内生成的密文的输出、或者来自外部读写器等设备的数据输入等。
如上所述,参照特定的实施例详细说明了本发明。然而,在不脱离本发明的要旨的范围内,本领域技术人员可进行该实施例的修改、代用是显而易见的。即,以例示的方式公开了本发明,不应限定性地解释。为了判断本发明的要旨,需要参考权利要求书的范围一栏。
此外,在说明书中说明的一系列处理能够通过硬件、或软件、或两者的合成结构来执行。在通过软件执行处理的情况下,能够将记录了处理顺序的程序安装到嵌入在专用硬件中的计算机内的存储器中来执行、或者将程序安装到可执行各种处理的通用计算机中来执行。
例如,可将程序预先记录在作为记录介质的硬盘、ROM(Read Only Memory)中。或者,可将程序暂时或永久性地保存(记录)在软盘、CD-ROM(Compact Disc Read Only Memory:光盘只读存储器)、MO(Magneto optical:磁光)盘、DVD(Digital Versatile Disc:数字多功能光盘)、磁盘、半导体存储器等可移动记录介质中。可将这种可移动记录介质作为所谓的封装软件来提供。
此外,除了从如上所述的可移动记录介质将程序安装到计算机之外,还能够从下载站点无线传送到计算机、或通过LAN(Local Area Network:局域网)、因特网这种网络而有线传送到计算机,在计算机中接收这样传送过来的程序并安装到内置的硬盘等记录介质中。
此外,说明书中记载的各种处理,不仅按照记载以时间序列执行,也可以根据执行处理的装置的处理能力或需要来并行或单独地执行。另外,在本说明书中系统是多个装置的逻辑集合结构,并不限于各结构的装置在同一壳体内。
产业上的可利用性
如上所述,根据本发明的一个实施例的结构,设为在执行共用密钥块密码处理的密码处理装置的密钥调度部中利用密码处理部所应用的加密函数进行循环密钥生成处理的结构。具体地说,将私人密钥输入到包括密码处理部所利用的循环函数的加密函数中来生成中间密钥,将进行基于中间密钥和私人密钥等的双射变换得到的结果、双射变换数据的异或运算结果应用为循环密钥。根据本结构,实现基于利用保证了安全性的加密函数来生成的中间密钥的循环密钥的生成,能够提高安全性、即密钥的分析难度,并且通过利用了密码处理部的结构的密钥生成能够简化密钥调度部的结构,从而能够提高安装效率。
Claims (10)
1.一种信息处理装置,其特征在于,具有:
存储器,其保存密码处理中所使用的密钥数据;
处理器,其执行上述密码处理的开始和结束的控制;
密码处理部,其进行将循环函数反复循环多次的数据变换处理;以及
密钥调度部,其生成应用于执行上述循环函数的循环密钥,
其中,上述密钥调度部是具有如下部分的结构:
中间密钥生成部,其将私人密钥输入到加密函数中来生成中间密钥,其中,上述加密函数包括在上述密码处理部中利用的循环函数;以及
中间密钥扩展部,其输入上述中间密钥生成部所生成的中间密钥来生成循环密钥,
上述中间密钥扩展部具有:
数据变换处理部,其输入上述中间密钥生成部所生成的中间密钥,通过双射变换生成中间密钥双射变换数据;以及
异或运算部,其执行上述私人密钥和根据私人密钥生成的私人密钥变换数据中的任一个与上述数据变换处理部所生成的中间密钥双射变换数据之间的异或运算,
该中间密钥扩展部是如下的结构:将作为上述数据变换处理部的处理结果的中间密钥双射变换数据以及上述异或运算部的处理结果数据作为循环密钥而输出。
2.根据权利要求1所述的信息处理装置,其特征在于,
上述中间密钥生成部是执行如下处理的结构:
对上述加密函数输入上述私人密钥和预先设定的常数来执行加密处理从而生成中间密钥。
3.根据权利要求1所述的信息处理装置,其特征在于,
在上述中间密钥生成部中应用的加密函数是包括至少一级以上的上述循环函数的结构。
4.根据权利要求1所述的信息处理装置,其特征在于,
在上述中间密钥生成部中应用的加密函数是如下的结构:
包括在上述密码处理部中利用的具有Feistel结构的多级循环函数。
5.根据权利要求1所述的信息处理装置,其特征在于,
上述中间密钥生成部是如下的结构:
并行地利用在上述密码处理部中利用的加密函数来生成多个中间密钥。
6.根据权利要求1所述的信息处理装置,其特征在于,
上述中间密钥生成部是如下的结构:
输入与块长度相同的比特数的私人密钥,生成相同比特数的中间密钥,其中,上述块长度为在上述密码处理部中利用的加密函数的处理单位。
7.根据权利要求1所述的信息处理装置,其特征在于,
上述中间密钥生成部是如下的结构:
输入块长度以上的比特数的私人密钥,对所输入的私人密钥执行数据变换来生成具有与上述块长度相同的比特数的多个私人密钥变换数据,将该私人密钥变换数据输入到上述加密函数来生成中间密钥,其中,上述块长度为在上述密码处理部中利用的加密函数的处理单位。
8.根据权利要求1所述的信息处理装置,其特征在于,
在上述数据变换处理部中,将生成各循环密钥时执行的双射变换所应用的双射函数的至少一部分设为共用的双射函数。
9.一种信息处理装置,其特征在于,具有:
存储器,其保存密码处理中所使用的密钥数据;
处理器,其执行上述密码处理的开始和结束的控制;
密码处理部,其进行将循环函数反复循环多次的数据变换处理;以及
密钥调度部,其生成应用于执行上述循环函数的循环密钥,
其中,上述密钥调度部是具有如下部分的结构:
中间密钥生成部,其将私人密钥输入到加密函数中来生成中间密钥,其中,上述加密函数包括在上述密码处理部中利用的循环函数;以及
中间密钥扩展部,其输入上述中间密钥生成部所生成的中间密钥来生成循环密钥,
上述中间密钥扩展部具有:
第一数据变换处理部,其输入上述私人密钥和根据私人密钥生成的私人密钥变换数据中的至少一个,通过双射变换生成私人密钥双射变换数据;
第二数据变换处理部,其输入上述中间密钥生成部所生成的中间密钥,通过双射变换生成中间密钥双射变换数据;以及
异或运算部,其执行上述第一数据变换处理部所生成的私人密钥双射变换数据与上述第二数据变换处理部所生成的中间密钥双射变换数据之间的异或运算,
该中间密钥扩展部是如下的结构:将作为上述第二数据变换处理部的处理结果的中间密钥双射变换数据以及上述异或运算部的处理结果数据作为循环密钥而输出。
10.根据权利要求9所述的信息处理装置,其特征在于,
在上述第一数据变换处理部中,将生成各循环密钥时执行的双射变换所应用的双射函数的至少一部分设为共用的双射函数。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006-238228 | 2006-09-01 | ||
JP2006238228A JP4961909B2 (ja) | 2006-09-01 | 2006-09-01 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200780032112.3A Division CN101512619B (zh) | 2006-09-01 | 2007-08-29 | 密码处理装置和密码处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102158337A true CN102158337A (zh) | 2011-08-17 |
CN102158337B CN102158337B (zh) | 2014-06-04 |
Family
ID=39135907
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110091269.1A Expired - Fee Related CN102158337B (zh) | 2006-09-01 | 2007-08-29 | 信息处理装置 |
CN200780032112.3A Expired - Fee Related CN101512619B (zh) | 2006-09-01 | 2007-08-29 | 密码处理装置和密码处理方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200780032112.3A Expired - Fee Related CN101512619B (zh) | 2006-09-01 | 2007-08-29 | 密码处理装置和密码处理方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8369522B2 (zh) |
EP (1) | EP2058784A1 (zh) |
JP (1) | JP4961909B2 (zh) |
CN (2) | CN102158337B (zh) |
TW (1) | TW200828196A (zh) |
WO (1) | WO2008026625A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107690769A (zh) * | 2015-03-30 | 2018-02-13 | 爱迪德技术有限公司 | 密码处理 |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USRE47633E1 (en) | 2005-06-22 | 2019-10-01 | Odyssey Wireless Inc. | Systems/methods of conducting a financial transaction using a smartphone |
US8670493B2 (en) | 2005-06-22 | 2014-03-11 | Eices Research, Inc. | Systems and/or methods of increased privacy wireless communications |
US8233554B2 (en) | 2010-03-29 | 2012-07-31 | Eices Research, Inc. | Increased capacity communications for OFDM-based wireless communications systems/methods/devices |
US20080019517A1 (en) * | 2006-04-06 | 2008-01-24 | Peter Munguia | Control work key store for multiple data streams |
JP4882598B2 (ja) * | 2006-07-28 | 2012-02-22 | ソニー株式会社 | 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム |
US20160286532A1 (en) * | 2012-01-24 | 2016-09-29 | Odyssey Wireless, Inc. | Systems/methods of preferentially using a first asset, refraining from using a second asset and providing reduced levels of interference to gps and/or satellites |
US9374746B1 (en) | 2008-07-07 | 2016-06-21 | Odyssey Wireless, Inc. | Systems/methods of spatial multiplexing |
US8848904B2 (en) * | 2008-10-24 | 2014-09-30 | University Of Maryland, College Park | Method and implementation for information exchange using Markov models |
US9317286B2 (en) * | 2009-03-31 | 2016-04-19 | Oracle America, Inc. | Apparatus and method for implementing instruction support for the camellia cipher algorithm |
CN102045709B (zh) * | 2009-10-13 | 2013-11-06 | 中兴通讯股份有限公司 | 移动终端应用数据的下载方法、系统及移动终端 |
JP5198526B2 (ja) * | 2010-09-21 | 2013-05-15 | 株式会社東芝 | 暗号化装置および復号装置 |
FR2966953B1 (fr) | 2010-11-02 | 2015-08-28 | St Microelectronics Rousset | Procede de contremesure cryptographique par derivation d'une donnee secrete |
US9281940B2 (en) * | 2012-03-02 | 2016-03-08 | Sony Corporation | Information processing apparatus, information processing method, and program |
US8744078B2 (en) * | 2012-06-05 | 2014-06-03 | Secure Channels Sa | System and method for securing multiple data segments having different lengths using pattern keys having multiple different strengths |
JP5871827B2 (ja) * | 2013-01-11 | 2016-03-01 | 日本電信電話株式会社 | 安全性強化システム、安全性強化装置、検証装置、およびプログラム |
US9094191B2 (en) | 2013-03-14 | 2015-07-28 | Qualcomm Incorporated | Master key encryption functions for transmitter-receiver pairing as a countermeasure to thwart key recovery attacks |
US10148430B1 (en) * | 2013-04-17 | 2018-12-04 | Amazon Technologies, Inc | Revocable stream ciphers for upgrading encryption in a shared resource environment |
JP2014240921A (ja) * | 2013-06-12 | 2014-12-25 | 株式会社東芝 | 暗号装置、暗号処理方法及び暗号処理プログラム |
US20150227472A1 (en) * | 2014-02-10 | 2015-08-13 | Kabushiki Kaisha Toshiba | Memory system, controller, and method |
JP2015191107A (ja) * | 2014-03-28 | 2015-11-02 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにプログラム |
KR101593169B1 (ko) * | 2014-08-20 | 2016-02-15 | 한국전자통신연구원 | 페이스텔 구조의 가변길이 블록암호 장치 및 방법 |
CN104253684B (zh) * | 2014-09-23 | 2018-02-02 | 深圳市汇顶科技股份有限公司 | 加密方法和加密装置 |
EP3208788B1 (en) * | 2016-02-22 | 2020-06-03 | Eshard | Method of protecting a circuit against a side-channel analysis |
US10742405B2 (en) * | 2016-12-16 | 2020-08-11 | The Boeing Company | Method and system for generation of cipher round keys by bit-mixers |
WO2020186125A1 (en) | 2019-03-13 | 2020-09-17 | The Research Foundation For The State University Of New York | Ultra low power core for lightweight encryption |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1349182A (zh) * | 2000-07-12 | 2002-05-15 | 株式会社东芝 | 加密、解密装置及扩展密钥生成装置、方法以及记录媒体 |
WO2002058037A1 (en) * | 2001-01-22 | 2002-07-25 | Fujitsu Limited | Cipher circuit |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5317638A (en) * | 1992-07-17 | 1994-05-31 | International Business Machines Corporation | Performance enhancement for ANSI X3.92 data encryption algorithm standard |
CN1130871C (zh) * | 1996-04-30 | 2003-12-10 | 东芝株式会社 | 加密装置及加密方法 |
JP4128395B2 (ja) * | 2002-05-23 | 2008-07-30 | 三菱電機株式会社 | データ変換装置 |
-
2006
- 2006-09-01 JP JP2006238228A patent/JP4961909B2/ja not_active Expired - Fee Related
-
2007
- 2007-08-21 TW TW096130941A patent/TW200828196A/zh not_active IP Right Cessation
- 2007-08-29 EP EP07806210A patent/EP2058784A1/en not_active Withdrawn
- 2007-08-29 CN CN201110091269.1A patent/CN102158337B/zh not_active Expired - Fee Related
- 2007-08-29 CN CN200780032112.3A patent/CN101512619B/zh not_active Expired - Fee Related
- 2007-08-29 US US12/439,544 patent/US8369522B2/en active Active
- 2007-08-29 WO PCT/JP2007/066733 patent/WO2008026625A1/ja active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1349182A (zh) * | 2000-07-12 | 2002-05-15 | 株式会社东芝 | 加密、解密装置及扩展密钥生成装置、方法以及记录媒体 |
WO2002058037A1 (en) * | 2001-01-22 | 2002-07-25 | Fujitsu Limited | Cipher circuit |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107690769A (zh) * | 2015-03-30 | 2018-02-13 | 爱迪德技术有限公司 | 密码处理 |
Also Published As
Publication number | Publication date |
---|---|
US8369522B2 (en) | 2013-02-05 |
JP2008058831A (ja) | 2008-03-13 |
CN101512619B (zh) | 2012-04-18 |
US20100008498A1 (en) | 2010-01-14 |
CN101512619A (zh) | 2009-08-19 |
TW200828196A (en) | 2008-07-01 |
WO2008026625A1 (fr) | 2008-03-06 |
EP2058784A1 (en) | 2009-05-13 |
CN102158337B (zh) | 2014-06-04 |
TWI340368B (zh) | 2011-04-11 |
JP4961909B2 (ja) | 2012-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101512619B (zh) | 密码处理装置和密码处理方法 | |
CN101512620B (zh) | 密码处理装置和密码处理方法 | |
CN101536062B (zh) | 密码处理装置和密码处理方法 | |
CN101162557B (zh) | 密码处理装置和密码处理方法 | |
CN102594546B (zh) | 信息处理装置 | |
AU2016386405B2 (en) | Fast format-preserving encryption for variable length data | |
JP5682527B2 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
KR101364192B1 (ko) | 암호처리장치, 암호처리 알고리즘 구축방법 및 암호처리방법과 컴퓨터·프로그램 | |
CN101371286B (zh) | 密码处理装置和密码处理方法 | |
JP5682525B2 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
WO2009087972A1 (ja) | データ送信装置、データ受信装置、これらの方法、記録媒体、そのデータ通信システム | |
Norouzi et al. | Breaking a novel image encryption scheme based on an improper fractional order chaotic system | |
JP2008058829A (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
Arshad et al. | New extension of data encryption standard over 128-bit key for digital images | |
CN105376054A (zh) | 一种基于随机矩阵的密文提取的方法 | |
US20220417012A1 (en) | Method for performing cryptographic operations in a processing device, corresponding processing device and computer program product | |
Guttikonda et al. | A New Approach for Data Security in Cryptography and Steganography | |
Phangal et al. | A dual security scheme using dna key based dna cryptography | |
Reddy et al. | Randomized Cryptosystem Based on Linear Transformation | |
JP2009003312A (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: 20140604 |