CN101162557B - 密码处理装置和密码处理方法 - Google Patents
密码处理装置和密码处理方法 Download PDFInfo
- Publication number
- CN101162557B CN101162557B CN200710167659.6A CN200710167659A CN101162557B CN 101162557 B CN101162557 B CN 101162557B CN 200710167659 A CN200710167659 A CN 200710167659A CN 101162557 B CN101162557 B CN 101162557B
- Authority
- CN
- China
- Prior art keywords
- key
- circulation
- mentioned
- data
- computing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000012545 processing Methods 0.000 title claims abstract description 207
- 238000003672 processing method Methods 0.000 title claims abstract description 22
- 230000009466 transformation Effects 0.000 claims abstract description 77
- 230000004087 circulation Effects 0.000 claims description 239
- 239000000203 mixture Substances 0.000 claims description 113
- 238000009472 formulation Methods 0.000 claims description 80
- 238000006243 chemical reaction Methods 0.000 claims description 43
- 238000000034 method Methods 0.000 claims description 33
- 230000008569 process Effects 0.000 claims description 29
- 238000004590 computer program Methods 0.000 abstract description 8
- 230000006870 function Effects 0.000 description 86
- 125000004122 cyclic group Chemical group 0.000 description 40
- 238000004422 calculation algorithm Methods 0.000 description 20
- 230000014509 gene expression Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 7
- 230000008676 import Effects 0.000 description 5
- 241001269238 Data Species 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000013478 data encryption standard Methods 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 235000012364 Peperomia pellucida Nutrition 0.000 description 1
- 240000007711 Peperomia pellucida Species 0.000 description 1
- 241000519996 Teucrium chamaedrys Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
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/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
提供密码处理装置和密码处理方法、以及计算机程序。本发明实现提高密钥解析的困难性、并提高安全性的共用密钥块密码处理结构。在生成应用于共用密钥块密码处理中的循环密钥的密钥制定部中,对根据私人密钥生成的m位的中间密钥(MK),反复执行根据在GF(2)上定义的m次既约多项式f(x)作成的扩展体GF(2m)上的xs倍运算,生成多个不同的循环中间密钥,根据该循环中间密钥来生成多个不同的循环密钥。或者,进一步对来自循环中间密钥的选择数据,利用应用了按各循环中的每个循环不同的常数的异或运算来生成循环密钥。根据本结构,可实现提高了密钥的解析困难性的安全性高的密码处理结构。
Description
技术领域
本发明涉及一种密码处理装置和密码处理方法、以及计算机程序。更详细地说涉及一种执行共用密钥块密码处理的密码处理装置和密码处理方法、以及计算机程序。
背景技术
最近,随着网络通信、电子商务交易的发展,通信中的安全确保成为了重要的问题。安全确保的一种方法是密码技术,现在实际进行着使用了各种加密方法的通信。
例如实际应用了如下的系统:在IC卡等小型装置中嵌入密码处理模块,在IC卡与作为数据读取写入装置的读写器之间进行数据的发送接收,并进行认证处理、或发送接收数据的加密、解密。
在密码处理算法中存在各种算法,大体分类时分类为将加密密钥和解密密钥设定为不同的密钥、例如设定为公开密钥和私人密钥的公开密钥密码方式、以及将加密密钥和解密密钥设定为共用的密钥的共用密钥密码方式。
在共用密钥密码方式中也存在各种算法,其中之一是如下的方式:以共用密钥为基础生成多个密钥,使用生成的多个密钥来重复执行块单位(64位、128位等)的数据变换处理。在应用了这种密钥生成方式和数据变换处理的算法中代表性的方式是共用密钥块密码方式。
作为代表性的共用密钥块密码的算法,例如可知过去作为美国标准密码的DES(Data Encryption Standard:数据加密标准)算法、作为现在的美国标准的AES(Advanced EncryptionStandard:高级加密标准)算法等。
这种共用密钥块密码的算法主要由具有反复执行输入数据的变换的循环函数执行部的密码处理部、和生成应用于循环函数部的各循环中的循环密钥的密钥制定部构成。密钥制定部根据作为私人密钥的主密钥(主键),首先生成增加了位数的扩展密钥,根据生成的扩展密钥来生成应用于密码处理部的各循环函数部中的循环密钥(副键)。
作为执行这种算法的具体的结构,可知反复执行具有线性变换部和非线性变换部的循环函数的结构。例如代表性的结构有Feistel结构。Feistel结构具有通过作为数据变换函数的循环函数(F函数)的简单的重复来将明文变换成密码文的结构。在循环函数(F函数)中,执行线性变换处理和非线性变换处理。此外,作为记载了应用Feistel结构的密码处理的文献,例如有非专利文献1、非专利文献2。
但是,作为该共用密钥块密码处理的问题,有由密码解析引起的密钥的泄露。所谓利用密码解析的密钥的解析容易是该密码处理的安全性低,实用上成为大的问题。
非专利文献1:K.Nyberg,“Generalized Feistel networks”,ASIACRYPT’96,SpringerVerlag,1996,pp.91—104.
非专利文献2:Yuliang Zheng,Tsutomu Matsumoto,HidekiImai:On the Construction of Block Ciphers Provably Secure andNot Relying on Any Unproved Hypotheses.CRYPTO1989:461-480
发明内容
发明要解决的问题
本发明是鉴于上述问题而完成的,目的在于提供一种提高密码解析的困难度、实现安全性高的共用密钥块密码算法的密码处理装置和密码处理方法、以及计算机程序。
用于解决问题的方案
本发明的第一侧面是执行共用密钥块密码处理的密码处理装置,其特征在于,具有:
密码处理部,其进行将循环函数反复循环多次的数据变换处理;以及
密钥制定部,其生成在上述循环函数的执行中应用的循环密钥,
上述密钥制定部的结构为:
对通过私人密钥的变换处理所生成的m位的中间密钥,反复执行根据在GF(2)上定义的m次既约多项式f(x)来作成的扩展体GF(2m)上的xs倍运算,生成成为多个不同的循环密钥的生成用数据的多个不同的循环中间密钥,
其中,s、m均为1以上的整数;x倍运算是根据m次既约多项式f(x)作成的扩展体GF(2m)上的运算,xs倍运算是重复了s次上述x倍运算的运算。
并且,在本发明的密码处理装置的一个实施方式中,其特征在于,上述密钥制定部的结构为:对通过私人密钥的变换处理生成的m位的中间密钥MK,反复执行根据在GF(2)上定义的m次既约多项式f(x)来作成的扩展体GF(2m)上的xs倍运算,按照
MK1=MK
MK2=MKxs
MK3=MKx2×s
MKq-1=MKx(q-2)×s
MKq=MKx(q-1)×s
的上述式生成q个循环中间密钥{MK1,MK2,…,MKq-1,MKq},其中q为用于生成循环中间密钥的运算次数。
并且,在本发明的密码处理装置的一个实施方式中,其特征在于,上述密钥制定部是执行如下处理的结构:当将生成的循环中间密钥数设为q个时,反复执行上述xs倍运算,在生成了q个不同的循环中间密钥之后,对通过第q-1次的最终的xs倍运算生成的循环中间密钥数据MKq=MKx (q-1)×s执行x-(q-1)×s倍运算,恢复为执行xs倍运算前的原始中间密钥MK。
并且,在本发明的密码处理装置的一个实施方式中,其特征在于,上述密钥制定部通过反复执行上述xs倍运算所生成的循环中间密钥的构成数据的位选择,生成在上述密码处理部中的循环函数的执行中应用的循环密钥。
并且,在本发明的密码处理装置的一个实施方式中,其特征在于,上述密钥制定部的结构为:通过反复执行上述xs倍运算所生成的循环中间密钥的构成数据的位选择,生成在上述密码处理部中的循环函数的执行中应用的循环密钥、以及包含应用于执行循环函数前的初始数据变换中的初始密钥和应用于执行循环函数后的最终数据变换中的最终密钥的密钥。
并且,在本发明的密码处理装置的一个实施方式中,其特征在于,上述密钥制定部的结构为:进行反复执行上述xs倍运算所生成的循环中间密钥的构成数据的位选择,并且对位选择数据执行异或运算来生成循环密钥,其中,所述异或运算按提供给上述密码处理部的每个循环密钥应用了不同的常数。
并且,在本发明的密码处理装置的一个实施方式中,其特征在于,上述密钥制定部的结构为:通过对上述私人密钥的构成数据的非线性变换处理,来执行利用上述私人密钥的变换处理的中间密钥生成处理。
并且,本发明的第二侧面是在密码处理装置中执行共用密钥块密码处理的密码处理方法,其特征在于,具有:
循环密钥生成步骤,在密钥制定部中生成在由密码处理部执行的多次循环的循环函数的执行中应用的多个循环密钥;以及
密码处理步骤,在密码处理部中进行将应用了上述循环密钥的循环函数反复循环多次的数据变换处理,
上述循环密钥生成步骤具有:
循环中间密钥生成步骤,对通过私人密钥的变换处理而生成的m位的中间密钥,反复执行根据在GF(2)上定义的m次既约多项式f(x)作成的扩展体GF(2m)上的xs倍运算,生成成为多个不同的循环密钥的生成用数据的多个不同的循环中间密钥;以及
位选择步骤,根据来自上述循环中间密钥的位选择来生成循环密钥,
其中,s、m均为1以上的整数;x倍运算是根据m次既约多项式f(x)作成的扩展体GF(2m)上的运算,xs倍运算是重复了s次上述x倍运算的运算。
并且,在本发明的密码处理方法的一个实施方式中,其特征在于,上述循环密钥生成步骤是如下的步骤:对通过私人密钥的变换处理生成的m位的中间密钥MK,反复执行根据在GF(2)上定义的m次既约多项式f(x)来作成的扩展体GF(2m)上的xs倍运算,按照
MK1=MK
MK2=MKxs
MK3=MKx2×s
MKq-1=MKx(q-2)×s
MKq=MKx(q-1)×s
的上述式生成q个循环中间密钥{MK1,MK2,…,MKq-1,MKq},其中q为用于生成循环中间密钥的运算次数。
并且,在本发明的密码处理方法的一个实施方式中,其特征在于,上述密码处理方法进一步在上述密钥制定部中执行如下处理:在上述循环密钥生成步骤中反复执行上述xs倍运算来生成q个不同的循环中间密钥之后,对通过第q-1次的最终的xs倍运算而生成的循环中间密钥数据MKq=MKx (q-1)×s执行x-(q-1)×s倍运算,恢复为执行xs倍运算前的原始中间密钥MK。
并且,在本发明的密码处理方法的一个实施方式中,其特征在于,上述循环密钥生成步骤是如下的步骤:通过反复执行上述xs倍运算所生成的循环中间密钥的构成数据的位选择,生成在上述密码处理部中的循环函数的执行中应用的循环密钥、以及包含应用于执行循环函数前的初始数据变换中的初始密钥和应用于执行循环函数后的最终数据变换中的最终密钥的密钥。
并且,在本发明的密码处理方法的一个实施方式中,其特征在于,上述循环密钥生成步骤对在上述位选择步骤中抽出的位选择数据,执行异或运算来生成循环密钥,其中,所述异或运算按提供给上述密码处理部的每个循环密钥应用了不同的常数。
并且,在本发明的密码处理方法的一个实施方式中,其特征在于,通过对上述私人密钥的构成数据的非线性变换处理,来执行上述循环密钥生成步骤中的私人密钥的变换处理。
并且,本发明的第三侧面是使密码处理装置执行共用密钥块密码处理的计算机程序,其特征在于,具有:
循环密钥生成步骤,在密钥制定部中生成在由密码处理部执行的多次循环的循环函数的执行中应用的多个循环密钥;以及
密码处理步骤,在密码处理部中进行将应用了上述循环密钥的循环函数反复循环多次的数据变换处理,
上述循环密钥生成步骤是执行如下步骤的步骤:
循环中间密钥生成步骤,对通过私人密钥的变换处理生成的m位的中间密钥,反复执行根据在GF(2)上定义的m次既约多项式f(x)作成的扩展体GF(2m)上的xs倍运算,生成成为多个不同的循环密钥的生成用数据的多个不同的循环中间密钥;以及
位选择步骤,根据来自上述循环中间密钥的位选择来生成循环密钥。
此外,本发明的计算机程序例如是能够通过以计算机可读的形式提供的存储介质、通信介质例如CD、FD、MO等记录介质、或网络等通信介质来对可执行各种程序代码的计算机系统提供的计算机程序。通过以计算机可读的形式提供这种程序,在计算机系统上实现与程序相应的处理。
通过基于后述的本发明的实施例、附图的更详细的说明,本发明的进一步的其它目的、特征、优点会更清楚。此外,在本说明书中的系统是多个装置的逻辑集合结构,并不限于各结构的装置在同一壳体内。
发明的效果
根据本发明的一个实施例的结构,在生成执行共用密钥块密码处理的密码处理装置中的循环密钥的密钥制定部中,对根据私人密钥生成的m位的中间密钥MK,反复执行根据在GF(2)上定义的m次既约多项式f(x)作成的扩展体GF(2m)上的xs倍运算,生成多个不同的循环中间密钥,根据该循环中间密钥生成多个不同的循环密钥。另外,根据本发明的一个实施例的结构,进一步对从循环中间密钥选择的数据,通过按各个循环的每个循环应用了不同的常数的异或运算来生成循环密钥。通过本结构可实现提高了密钥的解析困难性的安全性高的密码处理结构。
附图说明
图1是表示共用密钥块密码算法的基本结构的图。
图2是说明图1所示的共用密钥块密码处理部E10的内部结构的图。
图3是说明图2所示的密码处理部12的详细结构的图。
图4是说明作为循环函数执行部的一个结构例的SPN结构循环函数的图。
图5是说明作为循环函数执行部的一个结构例的Feistel(菲思特尔)结构的图。
图6是说明作为循环函数执行部的一个结构例的扩展Feistel结构的图。
图7是说明非线性变换处理部的具体例的图。
图8是说明线性变换处理部的具体例的图。
图9是说明加密处理中的私人密钥K与初始密钥、循环密钥、最终密钥的对应的图。
图10是说明解密处理中的私人密钥K与初始密钥、循环密钥、最终密钥的对应的图。
图11是说明执行加密处理中的循环密钥生成处理的密钥制定部的结构例的图。
图12是说明执行解密处理中的循环密钥生成处理的密钥制定部的结构例的图。
图13是说明执行加密、解密两者中的循环密钥生成处理的密钥制定部的结构例的图。
图14是说明执行加密处理中的循环密钥生成处理的密钥制定部的结构例的图。
图15是说明执行解密处理中的循环密钥生成处理的密钥制定部的结构例的图。
图16是说明执行加密、解密两者中的循环密钥生成处理的密钥制定部的结构例的图。
图17是说明执行加密处理中的循环密钥生成处理的密钥制定部的结构例的图。
图18是说明执行解密处理中的循环密钥生成处理的密钥制定部的结构例的图。
图19是说明执行加密、解密两者中的循环密钥生成处理的密钥制定部的结构例的图。
图20是表示作为执行本发明所涉及的密码处理的密码处理装置的IC模块的结构例的图。
附图标记说明
10:共用密钥块密码处理部E;11:密钥制定部;12:密码处理部;20:循环函数执行部;21:异或运算部;22:非线性变换处理部;23:线性变换处理部;30:F函数部;31:异或运算部;32:非线性变换处理部;33:线性变换处理部;34:异或运算部;41、42:F函数部;50:非线性变换处理部;51:S箱;111:私人密钥;112:加密密钥制定部;113:加密扩展密钥;114:数据加密部;121:私人密钥;122:解密密钥制定部;123:解密扩展密钥;124:数据解密部;201:非线性变换电路;202:选择器;203:寄存器;204:选择器;211:s位左循环移位电路;212:(q-1)×s位右循环移位电路;221:s位右循环移位电路;222:(q-1)×s位左循环移位电路;231:s位左循环移位电路;232:s位右循环移位电路;233:(q-1)×s位右循环移位电路;234:(q-1)×s位左循环移位电路;301:非线性变换电路;302:选择器;303:寄存器;304:选择器;311:xs倍运算电路;312:x-(q-1)×s倍运算电路;321:x-s倍运算电路;322:x(q-1)×s倍运算电路;401:常数Ci生成电路;402:异或(EXOR)运算部;700:IC模块;701:CPU(Central processin Unit:中央处理部);702:存储器;703:密码处理部;704:随机数发生器;705:发送接收部。
具体实施方式
下面,详细说明本发明的密码处理装置和密码处理方法、以及计算机程序。按照以下的项目进行说明。
1.共用密钥块密码的概要
2.伴随通过密钥制定部中的x倍运算进行的中间密钥数据的生成的密码处理结构
(2-1)关于密钥制定部的详细结构
(2-2)关于中间密钥数据的一般生成处理结构
(2-3)关于本发明的第一实施例所涉及的中间密钥数据和循环密钥的生成处理结构
(2-4)关于本发明的第二实施例所涉及的中间密钥数据和循环密钥的生成处理结构
3.密码处理装置的结构例
[1.共用密钥块密码的概要]
首先说明本发明的可应用的共用密钥块密码的概要。在本说明书中,共用密钥块密码(以下称为块密码)是指下面定义的密码。
关于块密码,输入明文P和密钥K并输出密码文C。将明文和密码文的位长称为块尺寸,在此用n来表示。虽然n可取任意的整数值,但是通常是按每个块密码算法预先决定的一个值。有时也将块长为n的块密码称为n位块密码。
将密钥的位长用k来表示。密钥可取任意的整数值。共用密钥块密码算法对应于一个或多个密钥尺寸。例如,某一块密码算法A的块尺寸为n=128,也可以是对应于密钥的位长k=128、或k=192或k=256的各种密钥尺寸的结构。
明文[P]、密码文[C]、密钥[K]的各个位尺寸表示为如下。
明文P:n位
密码文:n位
密钥K:k位
图1中示出与k位的密钥长对应的n位共用密钥块密码算法E的图。如图1所示,在共用密钥块密码处理部E10中输入n位的明文P和k位的密钥K来执行预先决定的密码算法,从而输出n位的密码文C。此外,在图1中仅示出了从明文生成密码文的加密处理。从密码文生成明文的解密处理通常使用E10的反函数。但是,对于加密处理部E10的结构而言,即使在解密处理中也可应用同样的共用密钥块密码处理部E10,能够通过改变密钥的输入顺序等序列来进行解密处理。
参照图2说明图1所示的共用密钥块密码处理部E10的内部结构。可将块密码分为两个部分来考虑。一个是密钥制定部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和根据扩展密钥生成的循环密钥RKi的两个数据,在内部执行数据变换处理,将输出数据Xi+1输出到下一个循环函数执行部。此外,在第一循环中,输入是明文或对明文的初始化处理数据。另外,最终循环的输出为密码文。
在图3所示的例子中,密码处理部12具有r个循环函数执行部20,重复r次循环函数执行部中的数据变换来生成密码文。将循环函数的重复次数称为循环数。在图示的例子中,循环数为r。
各循环函数执行部的输入数据Xi是加密途中的n位数据,某一循环中的循环函数的输出Xi+1作为下一个循环的输入而被提供。各循环函数执行部的另一个输入数据使用基于从密钥制定输出的扩展密钥K′的数据。将输入到该各循环函数执行部、并应用于循环函数的执行中的密钥称为循环密钥。在图中,将应用于i循环的循环密钥表示为RKi。扩展密钥K′例如构成为r循环的循环密钥RK1~RKr的连接数据。
图3所示的结构是密码处理部12的结构,该密码处理部12将从密码处理部12的输入侧观察的第1次循环的输入数据设为X0,将从第i个循环函数输出的数据设为Xi,将循环密钥设为RKi。此外,对于该密码处理部12的结构而言,例如可设为如下的结构:与加密处理相反地设定所应用的循环密钥的应用序列,将密码文输入到密码处理部12,由此输出明文。
图3所示的密码处理部12的循环函数执行部20可采取各种形式。循环函数能够根据其密码算法所采用的结构(structure)来分类。作为代表性的结构,有
(1)SPN(Substitution Permutation Network:代换-置换网络)结构,
(2)Feistel结构,
(3)扩展Feistel结构。
下面,参照图4~图6说明它们的具体结构。
(1)SPN结构循环函数
首先,参照图4说明作为循环函数执行部20的一个结构例的SPN结构循环函数。SPN结构循环函数执行部20a具有连接了非线性变换层(S层)和线性变换层(P层)的所谓的SP型结构。如图4所示,由如下部分等构成:异或运算部21,其对n位的全部输入数据,执行与循环密钥的异或(EXOR)运算;非线性变换处理部22,其输入异或运算部21的运算结果,并执行输入数据的非线性变换;以及线性变换处理部23,其输入非线性变换处理部22中的非线性变换处理结果,并执行对输入数据的线性变换处理。线性变换处理部23的线性变换处理结果输出到下一个循环。在最终循环中成为密码文。此外,在图4所示的例子中,示出了异或运算部21、非线性变换处理部22、线性变换处理部23的处理顺序,但是这些处理部的顺序并不限于此,也可以设为按其它的顺序进行处理的结构。
(2)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函数处理结果数据而输出。
并且,向异或运算部34输入该F函数输出和从前一个循环输入的另一个n/2位输入来执行异或运算(EXOR),将执行结果设定为下一个循环中的F函数的输入。此外,在图中所示的第i个循环中的F函数输入中设定的n/2位被应用于与下一个循环的F函数输出的异或运算中。这样,Feistel结构在各循环中一边相互替换输入一边执行应用了F函数的数据变换处理。
(3)扩展Feistel结构
接着,参照图6说明作为循环函数执行部20的一个结构例的扩展Feistel结构。之前参照图5说明的Feistel结构将n位的明文分割成两个而按每n/2位进行划分来执行处理。即,是设为分割数d=2的处理。此外,该分割数也被称为数据序列数。
在扩展Feistel结构中,是将该数据序列数(分割数)d设为两个以上的任意的整数的设定。可定义与数据序列数(分割数)d的值相应的各种扩展Feistel结构。在图6所示的例子中,数据序列数(分割数)d=4,对各序列输入n/4位的数据。在各循环中,执行作为1个以上的循环函数的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结构可以是在各循环中执行1个以上d/2以下的F函数的结构。
如参照图4~图6所说明的那样,共用密钥块密码中的密码处理部12的循环函数执行部20可采取如下结构:
(1)SPN(Substitution Permutation Network)结构,
(2)Feistel结构,
(3)扩展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.伴随通过密钥制定部中的x倍运算进行的中间密钥数据的生成的密码处理结构]
如上所述,共用密钥块密码是通过循环函数的重复来进行密码处理的结构。作为该共用密钥块密码处理的问题,有由密码解析引起的密钥的泄露。所谓利用密码解析的密钥的解析容易,就是该密码处理的安全性低,实际应用中成为大的问题。
从上述的说明可知,在共用密钥块密码中,在各循环中进行应用了根据扩展密钥生成的循环密钥的处理。在密码攻击中,存在进行如下过程的攻击的情况:根据循环密钥的解析来复原扩展密钥,进一步解析作为扩展密钥的原始数据的私人密钥。下面说明提高这种密钥解析的困难性、且安全性高的密码处理装置的结构例。
下面按照以下的各项目进行说明。
(2-1)关于密钥制定部的详细结构
(2-2)关于中间密钥数据的一般的生成处理结构
(2-3)关于本发明的第一实施例所涉及的中间密钥数据和循环密钥的生成处理结构
(2-4)关于本发明的第二实施例所涉及的中间密钥数据和循环密钥的生成处理结构
(2-1)关于密钥制定部的详细结构
首先,例如如参照图2所说明的那样,在共用密钥块密码中,密钥制定部扩展输入密钥K的位长而输出扩展密钥K′(位长k′),执行应用了根据扩展密钥生成的循环密钥RKi的循环函数。
密钥制定部例如将几百位的密钥数据扩展为几千位左右的扩展密钥数据,并提供给执行循环函数的数据加密部。在扩展密钥数据中,将输入到数据加密部的循环函数中的扩展密钥的一部分称为循环密钥。另外,有时除了循环函数之外也插入循环密钥。例如,将在最初的循环函数之前插入(EXOR)的密钥称为初始密钥,将在最后的循环函数之后插入(EXOR)的密钥称为最终密钥。
参照图9和图10说明加密处理和解密处理中的私人密钥K与初始密钥、循环密钥、最终密钥的对应。在图9、图10中示出了执行分别将r段设为循环数的块密码的加密结构以及解密结构。
例如,图9是执行将r段设为循环数的块密码的加密结构,私人密钥[K]111被输入到加密密钥制定部112,通过按照位扩展处理等的规定的算法的数据变换,生成包含初始密钥、循环密钥、最终密钥的加密扩展密钥113。数据加密部114是执行将r段设为循环数的块密码的结构,在加密的情况下,向从第1到第r段为止的循环函数依次输入各个循环密钥{RK1,RK2,…,RKr-1,RKr},执行循环函数(F函数)。另外,作为初始密钥输入[IK],作为最终密钥输入[FK],进行与处理数据的异或运算(EXOR)。
图10表示解密处理结构。私人密钥[K]121被输入到解密密钥制定部122,通过按照位扩展处理等规定算法的数据变换,生成包含初始密钥、循环密钥、最终密钥的解密扩展密钥123。此外,私人密钥[K]121可应用与在加密处理中应用的图9所示的私人密钥[K]111相同的密钥。
数据解密部124是执行将r段设为循环数的块密码的结构,在解密处理的情况下,输入最终密钥[FK],在执行了与处理数据的异或运算(EXOR)之后,依次输入{RKr,RKr-1,…,RK2,RK1}的各循环密钥而执行循环函数(F函数),最后被输入初始密钥[IK],进行与处理数据的异或运算(EXOR)。
此外,下面将初始密钥、最终密钥也包含在内称为循环密钥。
作为对进行密钥解析的密码攻击的抗拒性高的、即用于使密钥解析困难而提高安全性的结构的、作为循环密钥所满足的理想的性质,有以下的性质。这些这些性质为:
(a)即使知道循环密钥也不能复原密钥数据
(b)循环密钥彼此独立。
(a)意味着即使万一在各循环中应用的循环密钥被解析的情况下也不能根据该循环密钥复原原始的私人密钥,由此提高安全性。另外,(b)意味着在一个循环密钥与其它的循环密钥的数据间存在某些关系的情况下,当成功解析了一个循环密钥时可估计其它循环密钥,通过排除这种关联性来提高安全性。
然而,在安装的成本上难以生成循环密钥使得循环密钥彼此独立,实际上大多情况下将从对中间密钥数据进行循环移位得到的数据中截出的数据作为循环密钥使用,其中,所述中间密钥数据是使用非线性变换从私人密钥求出的。另外,即使在不满足上述条件的情况下,在安全性方面也需要
*对slide attack(滑动攻击)具有足够的抗拒性
*对related cipher attack(关联密码攻击)具有足够的抗拒性。
Slide attack(滑动攻击)是如下的攻击:利用原始的加密函数和使其偏移的加密函数来检测重复的循环函数的数据值相同的明文/密码文,利用它来有效地求出偏移的部分的密钥。相对于不同的私人密钥在多级的循环密钥一致的情况下可进行攻击。
另外,Related cipher attack(关联密码攻击)是如下的攻击。考虑某一共用密钥块密码同时支持循环数r1的k1位的密钥长、循环数r2的k2位的密钥长的情况(设r1<r2且k1<k2)。考虑密钥长k1位的循环密钥与密钥长k2位的循环密钥的一部分一致的情况。在这种情况下,通过使用密钥长k1位的情况下的数据密码部的输出,可攻击密钥长k2位的情况下的剩余的循环密钥。
(2-2)关于中间密钥数据的一般的生成处理结构
如上所述,在构成执行利用上述循环密钥的共用密钥块密码处理的装置的情况下,在安装的成本方面难以生成循环密钥使得循环密钥彼此独立,实际上将从对中间密钥数据进行循环移位得到的数据中截出的数据作为循环密钥而使用,其中,所述中间密钥数据是使用非线性变换从私人密钥求出的。
参照图11~图13说明将从对中间密钥数据进行循环得到的数据中截出的数据作为循环密钥而使用的情况下的密钥制定部的一般的结构例,其中,所述中间密钥数据是使用非线性变换从该私人密钥求出的。
图11表示执行加密处理中的循环密钥生成处理的密钥制定部的结构例,图12表示执行解密处理中的循环密钥生成处理的密钥制定部的结构例,图13表示执行加密、解密两者中的循环密钥生成处理的密钥制定部的结构例。
首先,说明执行图11所示的加密处理中的循环密钥生成处理的密钥制定部的结构以及处理。将私人密钥K设为k位。将私人密钥K输入到非线性变换电路201中,进行非线性变换处理来生成m位的中间密钥数据。
中间密钥MK通过选择器202被输入到寄存器RegL203并保存。在选择器202上连接有s位左循环移位电路211、(q-1)×s位右循环移位电路212,通过选择器202对寄存器RegL203输入各个循环移位处理信号,执行保存在寄存器RegL203中的数据的s位左循环移位处理、或(q-1)×s位右循环移位处理。此外,s是1以上的整数。
例如,s位左循环移位电路211执行保存在寄存器RegL203中的m位的中间密钥MK的s位循环左移位,如下那样根据保存在寄存器RegL203中的中间密钥MK来作出m位×q的循环中间密钥数据{MK1,MK2,…,MKq-1,MKq}。
MK1=MK
MK2=MK<<<s
MK3=MK<<<(2×s)
MKq-1=MK<<<((q-2)×s)
MKq=MK<<<((q-1)×s)
此外,在上式中,[<<<s]表示s位循环左移位。
MK1=MK是移位量为零的数据,与中间密钥MK相等,
MK2=MK<<<s表示对中间密钥MK向左进行了s位的循环移位的数据,
MK3=MK<<<(2×s)表示对中间密钥MK向左进行了2×s位的移位的数据,...。
在此,在将包含初始密钥[IK]和最终密钥[FK]的循环密钥分别设为1(L)位时,从循环中间密钥数据{MK1,MK2,…,MKq-1,MKq}中截出数据来制作1(L)位×(r+2)的循环密钥{IK,RK1,RK2,…,RKr-1,RKr,FK}。
例如,当设选择器202中设定的中间密钥MK的位数m为循环密钥的位数(1(L))的2倍即m=2×1(L)的情况下,当从循环中间密钥数据依次适当地截出循环密钥时,成为
IK=(MK1)L
RK1=(MK1)R
RK2=(MK2)L
RK3=(MK2)R
RKr-2=(MKq-1)L
RKr-1=(MKq-1)R
RKr=(MKq)L
FK=(MKq)R。
此外,(x)L表示x的上位1(L)位,(x)R表示x的下位1(L)位。此时满足q=(r+2)/2。
参照图11说明应用了该方式的安装结构以及处理。首先,在中间密钥生成过程中,将k位的私人密钥K输入到非线性变换电路201,生成m位的中间密钥数据MK并通过选择器202不进行移位处理而直接保存在循环中间密钥用寄存器RegL203中。
在加密的情况下,通过选择器202将s位左循环移位电路211的处理信号选择输入到循环中间密钥用寄存器RegL203中,反复执行对保存在循环中间密钥用寄存器RegL203中的m位的中间密钥数据MK的s位循环左移位,能够依次作出循环中间密钥数据{MK1,MK2,…,MKq-1,MKq}。
并且,通过按照预先决定的选择顺序来从各循环中间密钥数据{MK1,MK2,…,MKq-1,MKq}中选择规定的数据,作出循环密钥{IK,RK1,RK2,…,RKr-1,RKr,FK}。数据选择在选择器204中执行,在各循环中从选择器204输出1(L)位的循环密钥。
通过该处理,当生成全部循环的循环密钥{IK,RK1,RK2,…,RKr-1,RKr,FK}并输出时,对最后保存在循环中间密钥用寄存器RegL203中的数据进行(q-1)×s位循环右移位。通过选择器202将(q-1)×s位右循环移位电路212的处理信号选择输入到中间密钥用寄存器RegL203,由此执行该处理。通过该右移位处理,能够将保存在循环中间密钥用寄存器RegL203中的数据恢复成作为没有移位的初始状态的中间密钥数据MK。
图12是执行解密处理中的循环密钥生成处理的密钥制定部的结构例。在执行图12所示的解密处理中的循环密钥生成处理的密钥制定部中,非线性变换电路201、选择器202、寄存器RegL203、选择器204与图11所示的结构相同,仅仅是移位电路221、222不同。
即,解密处理中的移位电路221、222由执行与密码处理中的移位电路211、212相反方向的移位的电路、即s位右循环移位电路221和(q-1)×s位左循环移位电路222构成。
在该解密处理中的密钥制定部中,首先通过(q-1)×s位左循环移位电路222的处理来对保存在寄存器RegL203中的中间密钥数据进行(q-1)×s位循环左移位。之后,通过s位右循环移位电路221的处理,每当生成各循环的循环密钥时,对保存在寄存器RegL203中的数据适当地进行s位右循环移位。通过该处理顺序,以与密码处理时相反的顺序生成循环中间密钥数据。即,能够依次作出{MKq,MKq-1,…,MK2,MK1}。通过在选择器204中从循环中间密钥数据中选择规定的数据,作出循环密钥。
此外,图11、图12是分别执行加密处理时的循环密钥生成处理、解密处理时的循环密钥生成处理的结构,但是还可以构建兼备这些功能的结构。在图13中示出该结构。在图13所示的结构中具备循环移位电路231~234,分别是s位左循环移位电路231、s位右循环移位电路232、(q-1)×s位右循环移位电路233、(q-1)×s位左循环移位电路234,是包含图11、图12中构成的全部的循环移位电路的结构,具有能够选择性地执行s位左循环移位、s位右循环移位、(q-1)×s位右循环移位、(q-1)×s位左循环移位的结构。通过应用该结构,在加密和解密处理中的任一个情况下也能够生成循环密钥并输出。
接着,考虑在上述的密钥制定部中生成的循环中间密钥数据的一致性。在此,将循环中间密钥数据、即MK1=MK的位列设为(mkm-1,mkm-2,…,mk1,mk0)。此时,循环中间密钥数据成为MK2=(MK<<<s)=(mkm-s-1,mkm-s-2,…,mk1,mk0,mkm-1,mkm-2,…,mkm-s+1,mkm-s)。
将两个不同的循环中间密钥数据MK1与循环中间密钥数据MK2的异或、即MK1(EXOR)MK2设为MK1(EXOR)MK2=(um-1,um-2,…,u1,u0)。此外,将(EXOR)设为表示异或运算的运算符。另外,(um-1,um-2,…,u1,u0)表示循环中间密钥数据MK1与循环中间密钥数据MK2的异或运算的结果数据的构成位。于是,可表示为:
um-1=mkm-1(EXOR)mkm-s-1
um-2=mkm-2(EXOR)mkm-s-2
us+1=mks+1(EXOR)mk1
us=mks(EXOR)mk0
us-1=mks-1(EXOR)mkm-1
u1=mk1(EXOR)mkm-s+1
u0=mk0(EXOR)mkm-s。
此时,能够使用其它的位(um-1,um-2,…,u2,u1)将位[u0]表现为u0=um-1(EXOR)um-2(EXOR),…(EXOR)u2(EXOR)u1。也就是说,即使中间密钥数据MK是随机的,两个循环中间密钥数据的异或运算的结果为MK1(EXOR)MK2,作为该结果而得到的位也满足上述性质,作为结果,m位(um-1,um-2,…,u1,u0)中的1位(u0)能够根据其它位信息来进行描述,导致其信息量损失1位。损失1位意味着例如在进行位解析的情况下可削减成为解析对象的位数,在进行解析即密钥解析的密码攻击中成为有利的条件。
同样地,关于任意的循环中间密钥数据彼此的异或、MKi(EXOR)MKj(0≤i,j≤q-1,i≠j),其信息量也会损失1位。关于由MKi(EXOR)MKj的信息量损失1位而造成的影响,例如在全数探索MKi(EXOR)MKj的情况下其信息量少,因此产生如下的弊端:全数探索变得容易,使密钥的解析容易,从而容易进行密码攻击。
另外,在生成中间密钥数据{MK1,MK2,…,MKq-1,MKq}时,在使用了循环移位的情况、中间密钥数据MK的全部的位成为0的情况、或全部的位成为1的情况下,产生如下的问题:导致任意的循环中间密钥数据MKi也同样地全部的位成为0、或全部的位成为1,导致全部的循环密钥相同。
另外,在根据私人密钥K生成的循环中间密钥数据MK1和根据其它的私人密钥K′生成的循环中间密钥数据MK2′成为相同的值的情况下,作为结果,通过之后的移位处理生成的各循环中间密钥数据也相等。即,产生如下状态:
MK1=MK2′,
MK2=MK3′
MKq-2=MKq-1′,
MKq-1=MKq′。
这样,多数的循环中间密钥数据变得相同,在选择条件相等的情况下,根据循环中间密钥数据生成的循环密钥也变得相同。这种密钥的出现使上述的slide attack(滑动攻击)成为可能。
另外,考虑该密钥制定部同时支持循环数r1的k1位的密钥长、循环数r2的k2位的情况(设r1<r2且k1<k2)。在根据k1位的私人密钥K1生成的中间密钥MK与根据k2位的私人密钥K2生成的中间密钥MK′一致的情况下,私人密钥MK的循环中间密钥数据和私人密钥MK′的r1段的循环中间密钥数据相等。这种状况产生可应用上述的related cipher attack(关联密码攻击)的问题。
如上所述,在参照图11~图13说明的中间密钥数据的生成结构、即对一个中间密钥MK执行移位处理来生成多个中间密钥数据{MK1,MK2,…,MKq-1,MKq}的结构中,产生如下的使密码攻击容易的问题。即,
*循环中间密钥数据的异或的信息量损失1位。
*中间密钥数据的全部的位成为0的情况下、或全部的位成为1的情况下,循环密钥变得全部相同。
*对S lide attack没有足够的抗拒性
*对Related cipher attack没有足够的抗拒性。
这样,具有使密码攻击容易的缺点。
(2-3)关于本发明的第一实施例所涉及的中间密钥数据以及循环密钥的生成处理结构
下面,说明解决由于上述的循环移位处理而引起的中间密钥数据的生成处理中的问题而用于执行对各种密码攻击的抗拒性高的、即安全性高的密码处理的中间密钥数据以及循环密钥的生成处理结构。
下面,说明对作为基于私人密钥K的非线性变换处理的结果而得到的中间密钥MK不执行循环移位处理而使用xs倍运算来生成循环中间密钥数据的处理结构。
即,在根据作为基于私人密钥K的非线性变换处理的结果而得到的中间密钥MK来生成中间密钥数据{MK1,MK2,…,MKq-1,MKq}时,不应用s位循环移位而使用根据在GF(2)上定义的m次既约多项式f(x)作成的扩展体GF(2m)上的xs倍运算。
例如,当将作为基于私人密钥K的非线性变换处理的结果而得到的中间密钥MK的位数m设为m=128、将m次既约多项式设为f(x)=x128+x7+x2+x1+1时,能够如下定义扩展体GF(2128)上的x倍运算。将128位的数据设为
A=(a127,a126,…,a1,a0),
B=(b127,b126,…,b1,b0)。
扩展体GF(2128)上的x倍运算B=Ax表现为如下。
(a127,a126,…,a1,a0)→(b127,b126,…,b1,b0)
在此,成为
b127=a126
b126=a125
b8=a7
b7=a6(EXOR)a127
b6=a5
b5=a4
b4=a3
b3=a2
b2=a1(EXOR)a127
b1=a0(EXOR)a127
b0=a127。
上述运算表示根据扩展体GF(2128)上的x倍运算B=Ax得到的数据B与数据A的对应。xs倍运算是重复了s次上述x倍运算的运算。
另外,能够如下定义x倍运算的逆变换即x-1倍运算。
x-1倍运算B=Ax-1
(a127,a126,…,a1,a0)→(b127,b126,…,b1,b0)
在此,成为
b127=a0
b126=a127
b125=a126
b7=a8
b6=a0(EXOR)a7
b5=a6
b4=a5
b3=a4
b2=a3
b1=a0(EXOR)a2
b0=a0(EXOR)a1。
上述运算表示根据作为扩展体GF(2128)上的x倍运算的逆变换x-1倍运算B=Ax-1而得到的数据B与数据A的对应。此外,x-s倍运算是重复了s次上述x-1倍运算的运算。
参照图14~图16说明使用了xs倍运算、或x-s倍运算的循环密钥生成处理结构。图14表示执行加密处理中的循环密钥生成处理的密钥制定部的结构例,图15表示执行解密处理中的循环密钥生成处理的密钥制定部的结构例,图16表示执行加密、解密两者中的循环密钥生成处理的密钥制定部的结构例。
首先,说明执行图14所示的加密处理中的循环密钥生成处理的密钥制定部的结构以及处理。将私人密钥K设为k位。将私人密钥K输入到非线性变换电路301,进行非线性变换处理来生成m位的中间密钥数据。
中间密钥MK通过选择器302被输入到寄存器RegL303并保存。在选择器302上连接有xs倍运算电路311、x-(q-1)×s倍运算电路312,通过选择器302对寄存器RegL303输入各处理信号,执行保存在寄存器RegL303中的数据的xs倍运算、或x(q-1)×s倍运算。
例如,xs倍运算电路311执行保存在寄存器RegL303中的m位的中间密钥MK的xs倍运算,如下那样根据保存在寄存器RegL303中的中间密钥MK作出m位×q的循环中间密钥数据{MK1,MK2,…,MKq-1,MKq}。
MK1=MK
MK2=MKxs
MK3=MKx2×s
MKq-1=MKx(q-2)×s
MKq=MKx(q-1)×s。
在上述式中,xs是根据在GF2(2)上定义的m次既约多项式f(x)作成的扩展体GF(2m)上的xs倍运算,成为重复s次之前说明的x倍运算的运算。x2×s为重复2s次之前说明的x倍运算的运算。
在此,当将包含初始密钥[IK]和最终密钥[FK]的循环密钥分别设为1(L)位时,从利用上述方法生成的循环中间密钥数据{MK1,MK2,…,MKq-1,MKq}中截出数据来作成1(L)位×(r+2)的循环密钥{IK,RK1,RK2,…,RKr-1,RKr,FK}。
参照图14说明应用了该方式的安装结构以及处理。首先,在中间密钥生成过程中,将k位的私人密钥K输入到非线性变换电路301,生成m位的中间密钥数据MK并通过选择器302不进行移位处理而直接保存在循环中间密钥用寄存器RegL303中。
在加密的情况下,通过选择器302将xs倍运算电路311的处理信号选择输入到循环中间密钥用寄存器RegL303中,反复执行对保存在循环中间密钥用寄存器RegL303中的m位的中间密钥数据MK的xs倍运算,执行上述的运算、即
MK1=MK
MK2=MKxs
MK3=MKx2×s
MKq-1=MKx(q-2)×s
MKq=MKx(q-1)×s
这些运算,能够依次作出循环中间密钥数据{MK1,MK2,…,MKq-1,MKq}。
并且,通过按照预先决定的选择顺序从各循环中间密钥数据{MK1,MK2,…,MKq-1,MKq}中选择规定的数据,作出循环密钥{IK,RK1,RK2,…,RKr-1,RKr,FK}。数据选择在选择器204中执行,在各循环中从选择器204输出1(L)位的循环密钥。
当通过该处理生成全部循环的循环密钥{IK,RK1,RK2,…,RKr-1,RKr,FK}并输出时,对最后保存在循环中间密钥用寄存器RegL203中的数据执行x-(q-1)×s倍运算。能够将x-(q-1)×s倍运算电路312的处理信号通过选择器302选择输入到中间密钥用寄存器RegL203,由此执行该处理。通过该x-(q-1)×s倍运算处理,能够将保存在循环中间密钥用寄存器RegL303中的数据恢复成作为初始状态的中间密钥数据MK。即,对通过第q-1次的最终的xs倍运算生成的循环中间密钥数据MKq=MKx(q-1)×s执行如下处理:执行x-(q-1)×s倍运算,恢复成执行xs倍运算前的原始中间密钥MK。
图15是执行解密处理中的循环密钥生成处理的密钥制定部的结构例。在执行图15所示的解密处理中的循环密钥生成处理的密钥制定部中,非线性变换电路301、选择器302、寄存器RegL303、选择器304与图14所示的结构相同,仅仅是运算电路321、322不同。
即,解密处理中的运算电路321、322由执行作为密码处理中的运算电路311、312所执行的x倍运算的逆变换的x-1倍运算的电路、即x-s倍运算电路321和x(q-1)×s倍运算电路322构成。
在该解密处理中的密钥制定部中,首先通过x(q-1)×s倍运算电路322的处理,对保存在寄存器RegL303中的中间密钥数据执行x(q-1)×s倍运算处理。之后,执行x-s倍运算电路321的处理,每当生成各循环的循环密钥时,对保存在寄存器RegL203中的数据执行x-s倍运算处理。通过该处理顺序,以与密码处理时相反的顺序生成循环中间密钥数据。即,能够依次作出{MKq,MKq-1,…,MK2,MK1}。通过在选择器304中从循环中间密钥数据中选择规定的数据,作出循环密钥。
此外,图14、图15是分别执行加密处理时的循环密钥生成处理、解密处理时的循环密钥生成处理的结构,但是也可以构建兼备这些功能的结构。在图16中示出该结构。在图16所示的结构中,具备运算电路331~334,分别是xs倍运算电路331、x-s倍运算电路332、x-(q-1)×s倍运算电路333、x(q-1)×s倍运算电路334,是包含图14、图15中构成的全部运算电路的结构,具有能够选择性地执行xs倍运算、x-s倍运算、x-(q-1)×s倍运算、x(q-1)×s倍运算的结构。通过应用该结构,在加密和解密处理的任一个情况下,也能够生成循环密钥并输出。
接着,考虑在上述密钥制定部中生成的循环中间密钥数据的一致性。两个不同的循环中间密钥数据MK1与循环中间密钥数据MK2的异或、即MK1(EXOR)MK2如下所示唯一地表示为:
MK1(EXOR)MK2
=MK(EXOR)MKxs
=MK(1(EXOR)xs)。
相反地,没有实施运算的原始的中间密钥MK应用两个不同的循环中间密钥数据MK1与循环中间密钥数据MK2的异或MK1(EXOR)MK2,它们也唯一地表示为:
MK=(MK1(EXOR)MK2)(1(EXOR)xs)-1。
也就是说,原始的中间密钥MK、与通过对中间密钥MK的运算而生成的多个不同的循环中间密钥数据MK1和循环中间密钥数据MK2的异或即MK1(EXOR)MK2是一对一的关系,与上述循环移位处理的中间密钥数据的生成结构不同,相对于中间密钥数据MK不会损失MK1(EXOR)MK2的信息量。
同样地,关于任意的循环中间密钥数据彼此的异或MKi(EXOR)MKj(0≤i,j≤q-1,i≠j),相对于中间密钥数据MK其信息量也不会损失。因而,在密钥解析中,不产生不需要解析的位信息,可提高位解析的困难性
另外,为了能够用扩展体GF(2128)上的x倍运算的b0、b1、b7来进行确认,在xs倍运算中对结果的位分配了被乘数的上位比特与其下位比特进行了异或的值,因此可认为与s位循环移位相比循环中间密钥数据容易被搅和。另外,通过将(q-1)×s设定为接近中间密钥数据MK的位长m的值,能够更多地搅和循环中间密钥数据。
并且,考虑中间密钥数据MK的全部的位为1的情况。
设MK=(mkm-1,mkm-2,…,mk1,mk0)。
此时,对中间密钥数据MK实施了x倍运算的MKx为了能够用上述的扩展体GF(2128)上的x倍运算来进行确认而使以mkm-1的值取异或的MKx的位成为0,因此不是MKx的全部的位都成为1。
同样地,由于MKxs也不是全部的位都成为1,因此任意的循环中间密钥数据MKi也同样地不是全部位都成为1,不是全部的循环密钥都相同。
因而,例如能够使前述的slide attack(滑动攻击)变得困难,实现对密码攻击的抗拒性高的、即安全性高的密码处理。
(2-4)关于本发明的第二实施例所涉及的中间密钥数据和循环密钥的生成处理结构
接着,参照图17~图19说明本发明的第二实施例所涉及的中间密钥数据和循环密钥的生成处理结构。以下说明的实施例是将由参照图14~图16说明的结构生成的循环密钥数据与按每个循环不同的常数Ci进行异或(EXOR)并将该结果作为循环密钥的结构。
即,将由参照图14~图16说明的结构生成的循环密钥数据与按各循环(i)中的每个循环(i)不同的常数Ci(1≤i≤r-1)进行异或(EXOR)得到的数据作为循环密钥。
参照图17~图19说明使用本实施例所涉及的xs倍运算或x-s倍运算并应用了常数C的异或(EXOR)的循环密钥生成处理结构。图17表示执行加密处理中的循环密钥生成处理的密钥制定部的结构例,图18表示执行解密处理中的循环密钥生成处理的密钥制定部的结构例,图19表示执行加密、解密两者中的循环密钥生成处理的密钥制定部的结构例。
图17是对执行应用了之前说明的图14所示的xs倍运算的加密用循环密钥生成处理的循环密钥生成处理结构,追加了按各循环(i)中的每个生成不同的常数Ci(1≤i≤r-1)的常数Ci生成电路401、以及执行在常数Ci生成电路401中生成的每个循环的常数Ci(1≤i≤r-1)与选择器304选择的各循环中的每个循环的数据之间的异或运算(EXOR)的异或(EXOR)运算部402的结构。在本实施中,将该异或(EXOR)运算部402的运算结果作为循环密钥{IK,RK1,RK2,…,RKr-1,RKr,FK}而输出。
图18是对执行应用了之前说明的图15所示的x-s倍运算的解密用循环密钥生成处理的循环密钥生成处理结构追加了常数Ci生成电路401和异或(EXOR)运算部402的结构,图19是可执行图17、图18两者的结构,是在之前说明的图16所示的结构中追加了常数Ci生成电路401和异或(EXOR)运算部402的结构。
在这些结构中,将选择器304输出的各循环中的每个循环的数据与按每个循环不同的常数Ci进行异或(EXOR)并将该结果作为循环密钥。这是用于例如在中间密钥数据MK的全部的位成为0的情况下不使最终输出的循环密钥{IK,RK1,RK2,…,RKr-1,RKr,FK}成为相同的数据的措施。
例如,在图17~图19所示的结构中,在保存在寄存器RegL303中的中间密钥数据MK的全部的位成为0的情况下,实施xs倍运算或x-s倍运算而生成的循环中间密钥数据MKi的全部的位成为0,但是在图17~图19所示的结构中,将选择器304输出的各循环中的每个循环的数据与按每个循环不同的常数Ci进行异或(EXOR)并将该结果作为循环密钥,按每个循环不同的常数Ci被进行异或,由此循环密钥不会变得相同。
另外,在由私人密钥K生成的循环中间密钥数据MK1与由另一私人密钥K′生成的循环中间密钥数据MK2′成为相同的值的情况下,之后的中间密钥数据变得相同,但是通过关于循环密钥按每个循环不同的常数Ci被进行异或,循环密钥不会变得相同。也就是说,可防止前述的slide attack。
另外,考虑图17~图19所示的密钥生成结构支持多个密钥长的情况。通过根据密钥长来改变各循环不同的常数,在不同的密钥长中,即使在中间密钥数据MK成为相同的值的情况下也能够使循环密钥成为不同的值,可提高对related cipherattack(关联密码攻击)的抗拒性。
例如,在作为对循环数为r1的k1位的密钥长、循环数为r2的k2位的密钥长、循环数为r3的k3位的密钥长这些全部进行支持的结构的情况下,通过设为使用合计r1+r2+r3个不同的1(L)位的常数Ci来执行异或(EXOR)的结构,即使在不同的密钥长中中间密钥数据MK成为相同值的情况下也能够使循环密钥成为不同的值。
此外,根据循环数r来生成r个按每个循环不同的1(L)位的常数的电路在1(L)为大的情况下其电路规模也变大。作为解决该问题的结构,例如将1(L)位的数据分割为按每个循环不同的w位的数据bi来重复使用1/w次的bi。通过该结构,可缩小电路规模。
例如,在1(L)=64的情况下,以按每个循环(i)不同的8位的bi来如下构成按每个循环不同的64位的常数、即应用于循环i的常数Ci。
Ci=(bi,bi,bi,bi,bi,bi,bi,bi)
这样,通过重复使用按每个循环不同的8位的bi,可缩小常数生成电路的规模。
另外,也可以设为生成Ci=(bi,bi,bi,bi,~bi,~bi,~bi,~bi)这种常数Ci的结构、即使用bi和bi的反转数据~bi的结构。
另外,当设为按每个循环使用某一规则将应用于循环i中的常数Ci的构成位bi从某一初始值开始更新的电路时,可缩小其电路规模。也可以将该规则设为根据在GF(2)上定义的w次既约多项式f(x)而作成的扩展体GF(2w)上的x倍运算。
此时,例如在设为w=8、w次的既约多项式f(x)=x8+x4+x3+x2+1时,使用bi-1=(c7,c6,…,c1,c0)来如下表示bi=(d7,d6,…,d1,d0).
d7=c6
d6=c5
d5=c4
d4=c3(EXOR)c7
d3=c2(EXOR)c7
d2=c1(EXOR)c7
d1=c0
d0=c7
可更新为如上述所述。在f(x)为原始多项式的情况下,由于根据某一初始值生成的x倍运算的值的周期为2w-1,因此可生成2w-1的不同的数据。另外,也可以将上述规则设为扩展体GF(2w)上的x-1倍运算等。
这样,在实施例2中,解决实施例1的结构中残留的问题,
*循环中间密钥数据的异或的信息量没有损失。
*即使中间密钥数据的全部的位成为0的情况下、或全部的位成为1的情况下,循环密钥也不会全部相同。
*对Slide attack具有足够的抗拒性。
*对Related cipher attack具有足够的抗拒性。
可实现满足这些全部的密钥制定部的结构。
当归纳本发明的密码处理装置的结构时,本发明的密码处理装置具有如下的结构。
本发明的密码处理装置是具有进行将循环函数反复循环多次的数据变换处理的密码处理部和生成应用于循环函数的执行中的循环密钥的密钥制定部的、执行共用密钥块密码处理的密码处理装置,密钥制定部具有如下的结构:对通过应用了对私人密钥的构成数据的非线性变换处理的变换处理来生成的m位的中间密钥,反复执行根据在GF(2)上定义的m次既约多项式f(x)而作成的扩展体GF(2m)上的xs倍运算,生成成为多个不同的循环密钥的生成用数据的多个不同的循环中间密钥,通过循环中间密钥的构成数据的位选择来生成循环密钥。此外,密钥制定部生成的循环密钥中包含应用于循环函数的执行中的循环密钥、应用于循环函数执行前的初始数据变换中的初始密钥、以及应用于循环函数执行后的最终数据变换中的最终密钥。
具体地说,密钥制定部对通过私人密钥的变换处理生成的m位的中间密钥MK,反复执行根据在GF(2)上定义的m次既约多项式f(x)而作成的扩展体GF(2m)上的xs倍运算,按照
MK1=MK
MK2=MKxs
MK3=MKx2×s
MKq-1=MKx(q-2)×s
MKq=MKx(q-1)×s
的上述式,生成q个循环中间密钥{MK1,MK2,…,MKq-1,MKq}。
并且,密钥制定部在将生成的循环中间密钥数设为q个时,反复执行xs倍运算,生成q个不同的循环中间密钥之后,对通过第q-1次的最终的xs倍运算而生成的循环中间密钥数据MKq=MKx(q-1)×s执行x-(q-1)×s倍运算,执行恢复成s倍运算执行前的原始中间密钥MK的处理。
并且,密钥制定部在上述的第二实施例中说明的结构中,对来自反复执行xs倍运算生成的循环中间密钥的构成数据的位选择数据,执行应用了按每个循环不同的常数的异或运算来生成循环密钥。
如上所述,在具有上述结构的密钥制定部中生成的循环密钥具有的特征为循环中间密钥数据的异或的信息量没有损失、即使在中间密钥数据的全部的位成为0、或全部的位成为1的情况下循环密钥也不会全部相同,可实现例如对Slide attack、Related cipher attack具有足够的抗拒性的安全性高的密码处理结构。
[3.密码处理装置的结构例]
最后,在图20中示出作为执行按照上述实施例的密码处理的密码处理装置的IC模块700的结构例。上述处理能够在例如PC、IC卡、读写器、以及各种信息处理装置中执行,图20所示的IC模块700能够构成在这些各种各样的设备中。
图20所示的CPU(Central processing Unit:中央处理单元)701是执行密码处理的开始、结束、数据的发送和接收的控制、各结构部之间的数据传送控制、其它各种程序的处理器。存储器702由保存CPU701所执行的程序或运算参数等固定数据的ROM(Read-Only-Memory:只读存储器)、作为在CPU701的处理中执行的程序以及在程序处理中适当变化的参数的保存区域、工作区域而使用的RAM(Random Access Memory:随机存取存储器)等构成。另外,存储器702能够作为密码处理中所需的密钥数据、在密码处理中应用的变换表(置换表)、在变换矩阵中应用的数据等的保存区域而使用。此外,数据保存区域最好构成为具有耐损害(耐タンパ)结构的存储器。
密码处理部703按照应用了例如上述各种密码处理结构、即
(1)SPN(Substitution Permutation Network)、
(2)Feistel结构、
(3)扩展Feistel结构、
这些各结构中的任一个结构的共用密钥块密码处理算法来执行密码处理、解密处理。
另外,密码处理部703具有密钥制定部,该密钥制定部具有与上述的各实施例对应的结构、即与
(2-3)本发明的第1实施例所涉及的中间密钥数据和循环密钥的生成处理、
(2-4)本发明的第1实施例所涉及的中间密钥数据和循环密钥的生成处理
这些处理结构的任一个对应的结构。
此外,在此,示出了将密码处理单元作为单独模块的例子,但是也可以构成为不设置这种独立的密码处理模块而例如将密码处理程序保存在ROM中、并由CPU701读出ROM保存程序而执行。
随机数发生器704执行在密码处理所需的密钥的生成等中所必需的随机数的产生处理。
发送接收部705是执行与外部的数据通信的数据通信处理部,例如执行与读写器等IC模块之间的数据通信,执行在IC模块内生成的密码文的输出、或来自外部的读写器等设备的数据输入等。
以上,参照特定的实施例详细说明了本发明。然而,显然在不脱离本发明的要旨的范围内本领域技术人员可进行该实施例的修改、代用。即,以例示的形式公开了本发明,但是不应限定性地解释。为了判断本发明的要旨,需要参考权利要求书的范围一栏。
此外,在说明书中说明的一系列处理能够通过硬件、或软件、或两者的合成结构来执行。在通过软件执行处理的情况下,能够将记录了处理顺序的程序安装在嵌入到专用硬件中的计算机内的存储器中执行、或将程序安装在可执行各种处理的通用计算机中执行。
例如,可将程序预先记录在作为记录介质的硬盘、ROM(Read Only Memory)中。或者,可将程序暂时或永久性地保存(记录)在软盘、CD-ROM(Compact Disc Read Only Memory:光盘只读存储器)、MO(Magneto optical:磁光)盘、DVD(DigitalVersatile Disc:数字多功能光盘)、磁盘、半导体存储器等可移动记录介质中。可将这种可移动记录介质作为所谓的封装软件而提供。
此外,程序除了从如上所述的可移动记录介质安装到计算机之外,还能够从下载站点无线传送到计算机、或通过称为LAN(Local Area Nerwork:局域网)、因特网的网络而有线传送到计算机,在计算机中接收这样传送来的程序并安装到内置的硬盘等记录介质中。
此外,说明书中记载的各种处理,不仅按照记载以时间序列执行,也可以根据执行处理的装置的处理能力或需要来并行或单独地执行。另外,在本说明书中系统是多个装置的逻辑的集合结构,并不限于各结构的装置在同一壳体内。
产业上的可利用性
如上所述,根据本发明的一个实施例的结构,在生成执行共用密钥块密码处理的密码处理装置中的循环密钥的密钥制定部中,对根据私人密钥生成的m位的中间密钥MK,反复执行根据在GF(2)上定义的m次既约多项式f(x)作成的扩展体GF(2m)上的xs倍运算,生成多个不同的循环中间密钥,根据该循环中间密钥生成多个不同的循环密钥。另外,根据本发明的一个实施例的结构,进一步对从循环中间密钥选择的数据,利用应用了按各循环中的每个循环不同的常数的异或运算来生成循环密钥。根据该结构,可实现提高了密钥的解析困难性的安全性高的密码处理结构。
Claims (13)
1.一种密码处理装置,执行共用密钥块密码处理,该密码处理装置的特征在于,具有:
密码处理部,其进行将循环函数反复循环多次的数据变换处理;以及
密钥制定部,其生成在上述循环函数的执行中应用的循环密钥,
上述密钥制定部的结构为:
对通过私人密钥的变换处理生成的m位的中间密钥,反复执行根据在GF(2)上定义的m次既约多项式f(x)来作成的扩展体GF(2m)上的xs倍运算,生成成为多个不同的循环密钥的生成用数据的多个不同的循环中间密钥,
其中,s、m均为1以上的整数;x倍运算是根据m次既约多项式f(x)作成的扩展体GF(2m)上的运算,xs倍运算是重复了s次上述x倍运算的运算。
2.根据权利要求1所述的密码处理装置,其特征在于,
上述密钥制定部的结构为:
对通过私人密钥的变换处理生成的m位的中间密钥MK,反复执行根据在GF(2)上定义的m次既约多项式f(x)来作成的扩展体GF(2m)上的xs倍运算,按照
MK1=MK
MK2=MKxs
MK3=MKx2×s
…
MKq-1=MKx(q-2)×s
MKq=MKx(q-1)×s
的上述式生成q个循环中间密钥{MK1,MK2,…,MKq-1,MKq},其中q为用于生成循环中间密钥的运算次数。
3.根据权利要求1所述的密码处理装置,其特征在于,
上述密钥制定部是执行如下处理的结构:
当将生成的循环中间密钥数设为q个时,反复执行上述xs倍运算,在生成了q个不同的循环中间密钥之后,
对通过第q-1次的最终的xs倍运算生成的循环中间密钥数据MKq=MKx (q-1)×s执行x-(q-1)×s倍运算,恢复为执行xs倍运算前的原始中间密钥MK。
4.根据权利要求1所述的密码处理装置,其特征在于,
上述密钥制定部通过反复执行上述xs倍运算所生成的循环中间密钥的构成数据的位选择,生成在上述密码处理部中的循环函数的执行中应用的循环密钥。
5.根据权利要求1所述的密码处理装置,其特征在于,
上述密钥制定部的结构为:
通过反复执行上述xs倍运算所生成的循环中间密钥的构成数据的位选择,生成在上述密码处理部中的循环函数的执行中应用的循环密钥、以及包含应用于执行循环函数前的初始数据变换中的初始密钥和应用于执行循环函数后的最终数据变换中的最终密钥的密钥。
6.根据权利要求1所述的密码处理装置,其特征在于,
上述密钥制定部的结构为:
进行反复执行上述xs倍运算所生成的循环中间密钥的构成数据的位选择,并且对位选择数据执行异或运算来生成循环密钥,其中,所述异或运算按提供给上述密码处理部的每个循环密钥应用了不同的常数。
7.根据权利要求1所述的密码处理装置,其特征在于,
上述密钥制定部的结构为:
通过对上述私人密钥的构成数据的非线性变换处理,来执行上述私人密钥的变换处理的中间密钥生成处理。
8.一种密码处理方法,在密码处理装置中执行共用密钥块密码处理,该密码处理方法的特征在于,具有:
循环密钥生成步骤,在密钥制定部中生成在由密码处理部执行的多次循环的循环函数的执行中应用的多个循环密钥;以及
密码处理步骤,在密码处理部中进行将应用了上述循环密钥的循环函数反复循环多次的数据变换处理,
上述循环密钥生成步骤具有:
循环中间密钥生成步骤,对通过私人密钥的变换处理而生成的m位的中间密钥,反复执行根据在GF(2)上定义的m次既约多项式f(x)作成的扩展体GF(2m)上的xs倍运算,生成成为多个不同的循环密钥的生成用数据的多个不同的循环中间密钥;以及
位选择步骤,根据来自上述循环中间密钥的位选择来生成循环密钥,
其中,s、m均为1以上的整数;x倍运算是根据m次既约多项式f(x)作成的扩展体GF(2m)上的运算,xs倍运算是重复了s次上述x倍运算的运算。
9.根据权利要求8所述的密码处理方法,其特征在于,
上述循环密钥生成步骤是如下的步骤:
对通过私人密钥的变换处理生成的m位的中间密钥MK,反复执行根据在GF(2)上定义的m次既约多项式f(x)来作成的扩展体GF(2m)上的xs倍运算,按照
MK1=MK
MK2=MKxs
MK3=MKx2×s
…
MKq-1=MKx(q-2)×s
MKq=MKx(q-1)×s
的上述式生成q个循环中间密钥{MK1,MK2,…,MKq-1,MKq},其中q为用于生成循环中间密钥的运算次数。
10.根据权利要求8的密码处理方法,其特征在于,
上述密码处理方法进一步在上述密钥制定部中执行如下处理:
在上述循环密钥生成步骤中反复执行上述xs倍运算来生成q个不同的循环中间密钥之后,对通过第q-1次的最终的xs倍运算而生成的循环中间密钥数据MKq=MKx (q-1)×s执行x-(q-1)×s倍运算,恢复为执行xs倍运算前的原始中间密钥MK。
11.根据权利要求8所述的密码处理方法,其特征在于,
上述循环密钥生成步骤是如下的步骤:
通过反复执行上述xs倍运算所生成的循环中间密钥的构成数据的位选择,生成在上述密码处理部中的循环函数的执行中应用的循环密钥、以及包含应用于执行循环函数前的初始数据变换中的初始密钥和应用于执行循环函数后的最终数据变换中的最终密钥的密钥。
12.根据权利要求8所述的密码处理方法,其特征在于,
上述循环密钥生成步骤对在上述位选择步骤中抽出的位选择数据,执行异或运算来生成循环密钥,其中,所述异或运算按提供给上述密码处理部的每个循环密钥应用了不同的常数。
13.根据权利要求8的密码处理方法,其特征在于,
通过对上述私人密钥的构成数据的非线性变换处理,来执行上述循环密钥生成步骤中的私人密钥的变换处理。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006238224A JP4905000B2 (ja) | 2006-09-01 | 2006-09-01 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
JP2006-238224 | 2006-09-01 | ||
JP2006238224 | 2006-09-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101162557A CN101162557A (zh) | 2008-04-16 |
CN101162557B true CN101162557B (zh) | 2010-10-13 |
Family
ID=38669927
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200710167659.6A Expired - Fee Related CN101162557B (zh) | 2006-09-01 | 2007-08-31 | 密码处理装置和密码处理方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8290148B2 (zh) |
EP (1) | EP1895708A1 (zh) |
JP (1) | JP4905000B2 (zh) |
CN (1) | CN101162557B (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007192893A (ja) * | 2006-01-17 | 2007-08-02 | Sony Corp | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
JP2007199156A (ja) * | 2006-01-24 | 2007-08-09 | Sony Corp | 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム |
JP4882598B2 (ja) * | 2006-07-28 | 2012-02-22 | ソニー株式会社 | 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム |
US8175266B2 (en) * | 2008-05-07 | 2012-05-08 | Apple Inc. | System and method of performing authentication |
JP5532560B2 (ja) | 2008-08-25 | 2014-06-25 | ソニー株式会社 | データ変換装置、およびデータ変換方法、並びにプログラム |
JP5504592B2 (ja) | 2008-08-25 | 2014-05-28 | ソニー株式会社 | データ変換装置、およびデータ変換方法、並びにプログラム |
US8707042B2 (en) * | 2008-08-28 | 2014-04-22 | Red Hat, Inc. | Sharing keys between cooperating parties |
JP5319209B2 (ja) * | 2008-08-29 | 2013-10-16 | 株式会社東芝 | 暗号化で用いる鍵をスケジュールする装置、方法およびプログラム |
KR100949538B1 (ko) * | 2008-09-09 | 2010-03-25 | 한국전자통신연구원 | Aes 라인달 알고리즘을 이용하는 암호화 및 복호화 장치와 그 방법 |
US9336160B2 (en) * | 2008-10-30 | 2016-05-10 | Qualcomm Incorporated | Low latency block cipher |
US8233620B2 (en) * | 2009-02-27 | 2012-07-31 | Inside Secure | Key recovery mechanism for cryptographic systems |
WO2011036745A1 (ja) * | 2009-09-24 | 2011-03-31 | 株式会社東芝 | 鍵スケジュール装置および方法 |
JP5578422B2 (ja) * | 2010-07-21 | 2014-08-27 | 日本電気株式会社 | 暗号化通信システム、送信装置、受信装置、暗号化/復号化方法およびそれらのプログラム |
JP5481455B2 (ja) * | 2011-09-27 | 2014-04-23 | 株式会社東芝 | 暗号処理装置 |
JP2014240921A (ja) * | 2013-06-12 | 2014-12-25 | 株式会社東芝 | 暗号装置、暗号処理方法及び暗号処理プログラム |
DE102014216392A1 (de) * | 2014-08-19 | 2016-02-25 | Robert Bosch Gmbh | Symmetrisches Iteriertes Blockchiffrierverfahren und entsprechende Vorrichtung |
EP3213457A4 (en) * | 2014-10-27 | 2018-06-13 | Hewlett-Packard Enterprise Development LP | Key splitting |
WO2018135563A1 (ja) * | 2017-01-20 | 2018-07-26 | 日本電信電話株式会社 | 秘密計算システム、秘密計算装置、秘密計算方法、プログラム |
US10936759B1 (en) * | 2017-09-01 | 2021-03-02 | Amzetta Technologies, Llc | Systems, methods and computer-readable media for providing enhanced encryption in a storage system |
US10637656B2 (en) * | 2017-11-28 | 2020-04-28 | Blackberry Limited | Method and system for key agreement utilizing semigroups |
EP3776288A4 (en) * | 2018-04-10 | 2022-01-05 | Al Belooshi, Bushra Abbas Mohammed | SECURITY SYSTEM AND METHOD OF CRYPTOGRAPHIC KEYS IN THE CLOUD |
CN108933652B (zh) * | 2018-06-11 | 2021-03-05 | 安徽工程大学 | 一种普通轮变换运算单元、普通轮变换电路及aes解密电路 |
JP7383985B2 (ja) * | 2019-10-30 | 2023-11-21 | 富士電機株式会社 | 情報処理装置、情報処理方法及びプログラム |
CN113194476B (zh) * | 2020-01-14 | 2022-10-21 | 宁波方太厨具有限公司 | 一种设备激活及鉴权绑定方法 |
US20220200784A1 (en) * | 2020-12-23 | 2022-06-23 | Intel Corporation | Time and frequency domain side-channel leakage suppression using integrated voltage regulator cascaded with runtime crypto arithmetic transformations |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1133100A2 (en) * | 2000-03-06 | 2001-09-12 | Kabushiki Kaisha Toshiba | Encryption apparatus and method, and decryption apparatus and method based on block encrytion |
CN1342356A (zh) * | 1998-12-18 | 2002-03-27 | 高通股份有限公司 | 加密系统中协商弱密钥的方法 |
US20050058285A1 (en) * | 2003-09-17 | 2005-03-17 | Yosef Stein | Advanced encryption standard (AES) engine with real time S-box generation |
JP2005218023A (ja) * | 2004-02-02 | 2005-08-11 | Matsushita Electric Ind Co Ltd | 鍵配信システム |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE200169T1 (de) * | 1992-12-30 | 2001-04-15 | Telstra Corp Ltd | Verfahren und einrichtung zur erzeugung einer chiffriersequenz |
JP3017726B2 (ja) * | 1998-01-27 | 2000-03-13 | 日本電信電話株式会社 | データ変換装置 |
US7508937B2 (en) * | 2001-12-18 | 2009-03-24 | Analog Devices, Inc. | Programmable data encryption engine for advanced encryption standard algorithm |
JP3818263B2 (ja) * | 2003-01-28 | 2006-09-06 | 日本電気株式会社 | Aes暗号処理装置、aes復号処理装置、aes暗号・復号処理装置、aes暗号処理方法、aes復号処理方法、および、aes暗号・復号処理方法 |
US7421067B2 (en) * | 2006-04-19 | 2008-09-02 | Emotive Communications, Inc. | System and methodology for peer-to-peer voice communication employing a pushed interactive multimedia announcement |
-
2006
- 2006-09-01 JP JP2006238224A patent/JP4905000B2/ja not_active Expired - Fee Related
-
2007
- 2007-08-29 US US11/846,853 patent/US8290148B2/en not_active Expired - Fee Related
- 2007-08-31 EP EP07253461A patent/EP1895708A1/en not_active Withdrawn
- 2007-08-31 CN CN200710167659.6A patent/CN101162557B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1342356A (zh) * | 1998-12-18 | 2002-03-27 | 高通股份有限公司 | 加密系统中协商弱密钥的方法 |
EP1133100A2 (en) * | 2000-03-06 | 2001-09-12 | Kabushiki Kaisha Toshiba | Encryption apparatus and method, and decryption apparatus and method based on block encrytion |
US20050058285A1 (en) * | 2003-09-17 | 2005-03-17 | Yosef Stein | Advanced encryption standard (AES) engine with real time S-box generation |
JP2005218023A (ja) * | 2004-02-02 | 2005-08-11 | Matsushita Electric Ind Co Ltd | 鍵配信システム |
Also Published As
Publication number | Publication date |
---|---|
JP2008058827A (ja) | 2008-03-13 |
EP1895708A1 (en) | 2008-03-05 |
JP4905000B2 (ja) | 2012-03-28 |
US8290148B2 (en) | 2012-10-16 |
US20080056490A1 (en) | 2008-03-06 |
CN101162557A (zh) | 2008-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101162557B (zh) | 密码处理装置和密码处理方法 | |
CN102158337B (zh) | 信息处理装置 | |
CN102594546B (zh) | 信息处理装置 | |
CN102594545B (zh) | 信息处理装置 | |
CN101512620B (zh) | 密码处理装置和密码处理方法 | |
CN101496080B (zh) | 密码处理装置、密码处理算法构建方法和密码处理方法 | |
CN101553857B (zh) | 加密处理装置、加密处理方法以及计算机程序 | |
CN100416519C (zh) | 进行加密或解密的计算机系统和方法 | |
JP5822970B2 (ja) | 擬似ランダム生成、データ暗号化、およびメッセージ暗号化ハッシングのための暗号化デバイス | |
CN101553856B (zh) | 密码处理装置和密码处理方法 | |
CN101371286B (zh) | 密码处理装置和密码处理方法 | |
JP6499519B2 (ja) | メッセージを安全に交換する暗号方式並びにこの方式を実施する装置及びシステム | |
CN103444124B (zh) | 加密处理装置、加密处理方法 | |
CN101176134A (zh) | 信息处理装置 | |
JP2015519022A (ja) | 疑似ランダム系列の生成方法およびデータストリームのコーディングまたはデコーディング方法 | |
CN103444125A (zh) | 加密处理设备、加密处理方法和程序 | |
El Hennawy et al. | LEA: link encryption algorithm proposed stream cipher algorithm | |
CN101515852A (zh) | 解密处理设备、系统以及方法 | |
JP5689826B2 (ja) | 秘密計算システム、暗号化装置、秘密計算装置及びその方法、プログラム | |
JP2017527225A (ja) | 暗号システムの再現可能なランダムシーケンス | |
JP5945525B2 (ja) | 鍵交換システム、鍵交換装置、その方法、及びプログラム | |
CN114020793A (zh) | 一种多机构间隐私数据查询方法、装置、设备及存储介质 | |
Bahumik et al. | A symmetric key-based image encryption scheme | |
CN110247754A (zh) | 一种分组密码fbc的实现方法及装置 | |
JP2013098722A (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 |
Granted publication date: 20101013 Termination date: 20150831 |
|
EXPY | Termination of patent right or utility model |