CN101371286B - 密码处理装置和密码处理方法 - Google Patents

密码处理装置和密码处理方法 Download PDF

Info

Publication number
CN101371286B
CN101371286B CN200780002505XA CN200780002505A CN101371286B CN 101371286 B CN101371286 B CN 101371286B CN 200780002505X A CN200780002505X A CN 200780002505XA CN 200780002505 A CN200780002505 A CN 200780002505A CN 101371286 B CN101371286 B CN 101371286B
Authority
CN
China
Prior art keywords
matrix
linear transformation
handled
circulation
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.)
Expired - Fee Related
Application number
CN200780002505XA
Other languages
English (en)
Other versions
CN101371286A (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 CN101371286A publication Critical patent/CN101371286A/zh
Application granted granted Critical
Publication of CN101371286B publication Critical patent/CN101371286B/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/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/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

实现一种能够低成本、并且可减少存储器存储数据的Feistel型共用密钥块密码处理结构。设为如下结构:在将具有非线性变换部和线性变换部的SP型F函数反复循环执行多次的Feistel型共用密钥块密码处理中,将在各循环中的F函数中执行的非线性变换处理和线性变换处理中的至少任一个变换处理作为与在上述Feistel型共用密钥块密码算法以外的密码算法或哈希函数、例如AES、Whirlpool等中应用的变换处理相同的变换处理而执行。根据本结构,通过部件共用化而可降低设计成本、可减少存储器存储数据。

Description

密码处理装置和密码处理方法
技术领域
本发明涉及一种密码处理装置和密码处理方法、以及计算机程序。更详细地说,涉及一种执行Feistel型共用密钥块(common key block)密码处理的密码处理装置和密码处理方法、以及计算机程序。 
背景技术
最近,随着网络通信、电子商务交易的发展,确保通信中的安全成为重要的问题。确保安全的方法之一是密码技术,现在实际进行着使用了各种加密方法的通信。 
例如实际应用了如下的系统:在IC卡等小型装置中嵌入密码处理模块,在IC卡与作为数据读取写入装置的读写器之间进行数据的发送接收,进行认证处理、或者发送接收数据的加密、解密。 
在密码处理算法中存在各种算法,大致分类为公开密钥密码方式和共用密钥密码方式,其中,上述公开密钥密码方式将加密密钥和解密密钥设定为不同的密钥、例如公开密钥和私人密钥,上述共用密钥密码方式将加密密钥和解密密钥设定为共用的密钥。 
在共用密钥密码方式中也存在各种算法,其中之一是如下的方式:以共用密钥为基础生成多个密钥,使用所生成的多个密钥来重复执行块单位(64比特、128比特等)的数据变换处理。在应用了这种密钥生成方式和数据变换处理的算法中代表性的方式是共用密钥块密码方式。 
作为代表性的共用密钥块密码的算法,在共用密钥块密码 的算法中进行的数据变换中包括非线性变换、线性变换。因而,在设计共用密钥块密码等密码要素技术时,必须决定进行非线性变换的函数、在线性变换部中利用的矩阵。 
例如在IC卡中执行密码处理运算的情况下,需要内置执行密码处理算法的硬件,在硬件内的存储器中记录程序(软件)等数据。 
最近,存在如下动向:通过使IC卡、手机等信息处理终端具备各种数据处理功能,排除用户持有多个卡的必要性,从而提高便利性。但是,在这种情况下,需要与在各个机关的操作系统中采用的密码算法相兼容。在IC卡、便携终端等中,存在如下问题:为了设为可执行多个不同的密码算法的结构,需要具备与各算法对应的硬件,并且需要安装与各算法对应的软件,从而导致高成本。 
发明内容
本发明是鉴于上述问题点而完成的,其目的在于提供一种在执行Feistel共用密钥块密码处理的结构中设为执行与能够在其它密码算法、哈希(hash)函数等中应用的数据变换共用的数据变换的结构而能够通过部件的共用化降低设计成本、减少存储器存储数据的密码处理装置和密码处理方法、以及计算机程序。 
更具体地说,本发明的目的在于提供一种如下的密码处理装置和密码处理方法、以及计算机程序:通过在作为不同算法的密码处理、哈希函数中能够共同地利用为了执行非线性变换、线性变换而所需的至少一部分硬件、软件,能够降低硬件的安装成本,在软件安装中也能够通过部件的共用化而缩小成本大小。 
本发明的第一侧面是一种密码处理装置,其特征在于, 
具有密码处理部,该密码处理部执行将SP型F函数反复循环多次的Feistel型共用密钥块密码处理,其中,上述SP型F函数执行包括非线性变换处理和线性变换处理的数据变换处理, 
上述密码处理部的结构为: 
将在各循环中的F函数中执行的非线性变换处理和线性变换处理中的至少任一个变换处理作为与在上述Feistel型共用密钥块密码算法以外的密码算法或哈希函数中应用的变换处理相同的变换处理而执行。 
并且,本发明的密码处理装置的一个实施方式的特征在于,上述密码处理部是在各循环的线性变换处理中选择性地应用至少两个以上的不同的多个矩阵的结构,选择应用的矩阵中的至少一个是在上述Feistel型共用密钥块密码算法以外的密码算法或哈希函数中应用的矩阵。 
并且,本发明的密码处理装置的一个实施方式的特征在于,上述密码处理部是在各循环的线性变换处理中选择性地应用两个不同的矩阵M0、M1的结构,是以使各矩阵M0、M1的配置满足如下(a)、(b)的条件的方式应用两个不同的矩阵M0、M1 的结构: 
(a)奇数循环中以M0、M1的顺序配置, 
(b)从偶数循环的最后级起以M0、M1的顺序配置。 
并且,本发明的密码处理装置的一个实施方式的特征在于,上述密码处理部是在各循环的线性变换处理中选择性地应用三个不同的矩阵M0、M1、M2的结构,是以使各矩阵M0、M1、M2的配置满足如下(a)、(b)的条件的方式应用三个不同的矩阵M0、M1、M2的结构: 
(a)奇数循环中以M0、M1、M2的顺序配置, 
(b)从偶数循环的最后级起以M0、M1、M2的顺序配置。 
并且,本发明的密码处理装置的一个实施方式的特征在于,上述密码处理部是执行64比特Feistel型共用密钥块密码处理的结构,在各循环的线性变换处理中选择应用的矩阵中的至少一个是在AES密码算法中应用的矩阵。 
并且,本发明的密码处理装置的一个实施方式的特征在于,上述密码处理部具有选择性地执行AES密码处理和64比特Feistel型共用密钥块密码处理的两个算法的结构。 
并且,本发明的密码处理装置的一个实施方式的特征在于,上述密码处理部是执行128比特Feistel型共用密钥块密码处理的结构,在各循环的线性变换处理中选择应用的矩阵中的至少一个是在Whirlpool哈希函数中应用的矩阵。 
并且,本发明的密码处理装置的一个实施方式的特征在于,上述密码处理部具有选择性地执行Whirlpool哈希函数和128比特Feistel型共用密钥块密码处理的两个算法的结构。 
并且,本发明的第二侧面是一种密码处理方法,其特征在于, 
具有密码处理步骤,在该密码处理步骤中执行将SP型F函数反复循环多次的Feistel型共用密钥块密码处理,其中,上述SP型F函数执行包括非线性变换处理和线性变换处理的数据变换处理, 
在上述密码处理步骤中,将在各循环中的F函数中执行的非线性变换处理和线性变换处理中的至少任一个变换处理作为与在上述Feistel型共用密钥块密码算法以外的密码算法或哈希函数中应用的变换处理相同的变换处理而执行。 
并且,本发明的密码处理方法的一个实施方式的特征在于,上述密码处理步骤在各循环的线性变换处理中选择性地应 用至少两个以上的不同的多个矩阵,选择应用的矩阵中的至少一个是在上述Feistel型共用密钥块密码算法以外的密码算法或哈希函数中应用的矩阵。 
并且,本发明的密码处理方法的一个实施方式的特征在于,上述密码处理步骤是在各循环的线性变换处理中选择性地应用两个不同的矩阵M0、M1的步骤,以各矩阵M0、M1的应用顺序满足如下(a)、(b)的条件的方式应用两个不同的矩阵M0、M1: 
(a)奇数循环中以M0、M1的顺序应用, 
(b)从偶数循环的最后级起以M0、M1的顺序应用。 
并且,本发明的密码处理方法的一个实施方式的特征在于,上述密码处理步骤是执行在各循环的线性变换处理中选择性地应用三个不同的矩阵M0、M1、M2的处理的步骤,以各矩阵M0、M1、M2的应用顺序满足如下(a)、(b)的条件的方式应用三个不同的矩阵M0、M1、M2: 
(a)奇数循环中以M0、M1、M2的顺序应用, 
(b)从偶数循环的最后级起以M0、M1、M2的顺序应用。 
并且,本发明的密码处理方法的一个实施方式的特征在于,上述密码处理步骤是执行64比特Feistel型共用密钥块密码处理的步骤,在各循环的线性变换处理中选择应用的矩阵中的至少一个是应用在AES密码算法中所利用的矩阵。 
并且,本发明的密码处理方法的一个实施方式的特征在于,上述密码处理步骤是执行128比特Feistel型共用密钥块密码处理的步骤,在各循环的线性变换处理中选择应用的矩阵中的至少一个是在Whirlpool哈希函数中应用的矩阵。 
并且,本发明的第三侧面是一种计算机程序,该计算机程序使密码处理装置执行密码处理,该计算机程序的特征在于, 
作为使密码处理部执行的步骤具有密码处理步骤,在该密码处理步骤中执行将SP型F函数反复循环多次的Feistel型共用密钥块密码处理,其中,上述SP型F函数执行包括非线性变换处理和线性变换处理的数据变换处理, 
上述密码处理步骤是如下的步骤: 
将在各循环中的F函数中执行的非线性变换处理和线性变换处理中的至少任一个变换处理作为与在上述Feistel型共用密钥块密码算法以外的密码算法或哈希函数中应用的变换处理相同的变换处理而执行。 
此外,本发明的计算机程序例如是能够通过以计算机可读的形式提供的存储介质、通信介质、例如CD、FD、MO等记录介质、或网络等通信介质来对可执行各种程序代码的计算机系统提供的计算机程序。通过以计算机可读的形式提供这种程序,在计算机系统上实现与程序相应的处理。 
通过基于后述的本发明的实施例、附图的更详细的说明,本发明的进一步的其它目的、特征、优点会更清楚。此外,在本说明书中的系统是多个装置的逻辑集合结构,并不限于各结构的装置在同一壳体内。 
发明的效果 
根据本发明的结构,在将具有非线性变换部和线性变换部的SP型F函数反复循环执行多次的Feistel型共用密钥块密码处理中,将在各循环中的F函数中执行的非线性变换处理和线性变换处理中的至少任一个变换处理作为与在上述Feistel型共用密钥块密码算法以外的密码算法或哈希函数、例如AES、Whirlpool等中应用的变换处理相同的变换处理而执行,因此能够通过部件共用化降低设计成本、减少存储器存储数据。即,通过在作为不同算法的密码处理、哈希函数中能够共同地利用 为了执行非线性变换、线性变换而所需的至少一部分硬件、软件,能够降低硬件的安装成本,在软件安装中也能够通过部件的共用化而缩小成本大小。 
附图说明
图1是表示具有Feistel构造的代表性的共用密钥块密码的结构的图。 
图2是说明作为循环函数部设定的F函数的结构的图。 
图3是说明利用了两个不同的线性变换矩阵的Feistel型密码算法的图。 
图4是说明利用了三个不同的线性变换矩阵的Feistel型密码算法的图。 
图5是表示作为本发明所涉及的执行密码处理的密码处理装置的IC模块的结构例的图。 
具体实施方式
下面详细说明本发明的密码处理装置和密码处理方法、以及计算机程序。按照以下项目进行说明。 
1.具有SP型F函数的Feistel构造 
2.线性变换层(P层)中的最优扩散变换 
3.各种密码算法和哈希函数中的数据变换的方式 
4.在具有SP型F函数的Feistel型密码中的数据变换处理中应用了在其它密码算法或哈希函数中应用的数据变换处理结构的结构 
(4.1)AES部件共用型64比特Feistel型密码 
(4.2)Whirlpool部件共用型128比特Feistel型密码 
5.密码处理装置的结构例 
[1.具有SP型F函数的Feistel构造] 
首先,说明具有SP型F函数的Feistel构造。作为共用密钥块密码的设计,大多使用被称为Feistel构造的构造,该Feistel构造将在明文数据的变换方法中成为基本的变换函数以某种特别的顺序进行配置。Feistel构造具有如下的构造:通过被称为循环函数的变换函数的简单的重复,将明文变换为密码文。 
参照图1说明Feistel构造。将作为加密对象输入的明文的长度设为2mn比特(bit)。其中,m、n都是整数。首先,将2mn比特的明文分割为mn比特的两个输入数据PL(Plain-Left:左明文)101、PR(Plain-Right:右明文)102,并将其设为输入值。 
Feistel构造以被称为循环函数的基本构造的重复来表现,在各循环中所包含的数据变换函数被称为F函数120。在图1的结构中,示出了F函数(循环函数)120重复r级的结构例。 
例如在第一个循环中,将mn比特的输入数据X、和从密钥生成部(未图示)输入的mn比特的循环密钥K1 103输入到F函数120,在进行F函数120中的数据变换处理之后输出mn比特的数据Y。在异或部104中对输出与来自另一方前级的输入数据(第1级的情况下是输入数据PL)进行异或运算,并向下一个循环函数输出mn比特的运算结果。将该处理、即将F函数重复应用所决定的循环数(r)来完成加密处理,输出密码文的分割数据CL(Cipher-Left:左密码)、CR(Cipher-Right:右密码)。通过以上结构,得出Feistel构造的解密处理只要使插入循环密钥的顺序反转即可、不需要构成反函数。 
参照图2说明设定为各循环的函数的F函数120的结构。图2的(a)是表示对一个循环中的F函数120的输入以及输出的图,图2的(b)是表示F函数120的详细结构的图。如图2的(b)所示,F函数120具有连接了非线性变换层(S层)和线性变换层(P层)的所谓 的SP型结构。 
图2所示的F函数120是输入输出比特长度具有m×n(m、n为整数)比特的设定的函数。在SP型F函数内部中,首先执行密钥数据Ki与数据Xi之间的异或,然后应用非线性变换层(S层),接着应用线性变换层(P层)。 
具体地说,在非线性变换层(S层)中排列了m个被称为S盒(S-box)121的n比特输入n比特输出的非线性变换表,将mn比特的数据以每n比特进行分割、并分别输入到对应的S盒(S-box)来变换数据。在各S盒中,例如执行应用了变换表的非线性变换处理。 
线性变换层(P层)由线性变换部122构成,线性变换部122被输入作为来自S盒121的输出数据的mn比特的输出值Z,对该输入实施线性变换而输出mn比特的结果。线性变换部122执行输入比特位置的替换处理等的线性变换处理,输出mn比特的输出值Y。该输出值Y与来自前级的输入数据进行异或,被设为下一个循环的F函数的输入值。 
此外,在下面说明的本实施例的结构中,将在作为线性变换层(P层)的线性变换部122中执行的线性变换定义为应用了在GF(2)上定义的mn×mn矩阵而进行的线性变换,另外,将包含在第i循环中的矩阵称为Mi。 
[2.线性变换层(P层)中的最优扩散变换] 
作为在线性变换部122中执行的线性变换的特殊例子,将最优扩散变换(Optimal Diffusion Mappings)定义为如下,其中,上述线性变换部122作为上述F函数内的线性变换层(P层)。 
对于进行从n×a比特数据向n×b比特数据的线性变换的映射, 
θ:{0,1}na→{0,1}nb
将分支数B(θ)定义为如下。 
B(θ)=minα≠0{hwn(α)+hwn(θ(α))} 
其中,将minα≠0{Xα}设为表示满足α≠0的所有的Xα中的最小值的Xα,将hwn(Y)设为在将比特列Y按每n比特进行分割而表示时返回n比特的数据都不是0(非零)的元素的数量的函数。此时,将如B(θ)为b+1那样的映射θ定义为最优扩散变换。另外,为了方便,将矩阵M的分支数表示为B(M)。 
[3.各种密码算法和哈希函数中的数据变换的方式] 
下面说明各种密码算法和哈希函数中的数据变换的方式。之前说明的非线性变换、线性变换处理是在很多密码算法、作为简化函数的哈希函数等中利用的数据变换。 
在各种密码算法和哈希函数中,为了进行这种数据变换,作为非线性变换层(S层)利用由n比特输入n比特输出的非线性变换表构成的S盒(S-box),作为线性变换层(P层)利用执行输入比特位置的替换处理等的线性变换处理的线性变换矩阵。 
这样,各种密码算法和哈希函数中的数据变换具有进行非线性变换、线性变换处理的共用性,因此在共用密钥块密码、哈希函数的一部分、流密码等中,存在使用了用于进行数据变换的相同的部件的情况。例如,存在为了实现非线性变换而使用8比特输入输出的置换表的盒、作为线性变换而使用GF(28)上的4×4、8×8矩阵的情况。下面说明在美国标准密码AES(Advanced Encryption Standard:高级加密标准)和ISO中标准化的哈希函数Whirlpool中利用的非线性变换和线性变换的概要。 
(1)AES密码 
美国标准密码AES是128比特块密码,在数据变换过程中存在进行如下的非线性运算和线性运算的部分。 
[非线性变换] 
[式1] 
y0=SAES(x0
y1=SAES(x1
y2=SAES(x2
y3=SAES(x3
上述式表示AES中的非线性变换的一部分。在上述式中,SAES(xk)表示利用执行应用于AES算法中的非线性变换的S盒的处理函数,表示进行将1个字节数据(xk)作为输入、将1个字节数据(yk)作为输出的非线性变换处理的函数。通过应用多个S盒,执行将输入4个字节数据x0~x3非线性变换为输出4个字节数据y0~y3的处理。 
[线性变换] 
[式2] 
z 0 z 1 z 2 z 3 = 2 3 1 1 1 2 3 1 1 1 2 3 3 1 1 2 y 0 y 1 y 2 y 3
上述式表示AES中的线性变换的一部分。上述式是利用了执行输入比特位置的替换处理等的线性变换处理的线性变换矩阵的式子。其中,设矩阵的元素表示有限体GF(28)的元素,将既约多项式表示为t8+t4+t3+t+1。在此使用的矩阵是分支数为5的最优扩散变换。在AES密码算法中的线性变换中应用上述的4×4矩阵。 
(2)Whirlpool 
下面说明在ISO中标准化的哈希函数Whirlpool中利用的非线性变换和线性变换的概要。哈希函数Whirlpool是具有512比特的输出的哈希函数,在数据变换过程中存在进行如下运算的部分。 
[非线性变换] 
[式3] 
y0=SW(x0
y1=SW(x1
y2=SW(x2
y3=SW(x3
y4=SW(x4
y5=SW(x5
y6=SW(x6
y7=SW(x7
上述式表示哈希函数Whirlpool的非线性变换。在上述式中,SW(xk)表示利用执行应用于哈希函数Whirlpool中的非线性变换的S盒的处理函数,表示进行将1个字节数据(xk)作为输入、将1个字节数据(yk)作为输出的非线性变换处理的函数。通过应用多个S盒,执行将输入8个字节数据x0~x7非线性变换为输出8个字节数据y0~y7的处理。 
[线性变换] 
[式4] 
z 0 z 1 z 2 z 3 z 4 z 5 z 6 z 7 = 1 9 2 5 8 1 4 1 1 1 9 2 5 8 1 4 4 1 1 9 2 5 8 1 1 4 1 1 9 2 5 8 8 1 4 1 1 9 2 5 5 8 1 4 1 1 9 2 2 5 8 1 4 1 1 9 9 2 5 8 1 4 1 1 y 0 y 1 y 2 y 3 y 4 y 5 y 6 y 7
上述式表示哈希函数Whirlpool的线性变换。上述式是利用了执行输入比特位置的替换处理等线性变换处理的线性变换矩阵的式子。其中,设矩阵元素表示有限体GF(28)的元素,将既约多项式表示为t8+t4+t3+t2+1。在此使用的矩阵是分支数为9的最优扩散变换。在哈希函数Whirlpool算法中的线性变换中应用上述的8×8矩阵。 
[4.在具有SP型F函数的Feistel型密码中的数据变换处理中应用了在其它密码算法或哈希函数中应用的数据变换处理结构的结构] 
如上所述,在AES密码、哈希函数Whirlpool中,在用于从输入值得到输出值的数据变换处理中都执行非线性变换、线性变换,关于在各个变换处理中应用的数据、即在非线性变换中应用的变换表(置换表)、在线性变换中应用的线性变换矩阵,利用了预先规定的数据。 
下面说明在具有SP型F函数的Feistel型密码中的数据变换处理中执行的非线性变换处理、变换处理中应用了在AES密码、哈希函数Whirlpool中利用的、在非线性变换中应用的变换表(置换表)、在线性变换中应用的线性变换矩阵的结构。 
本发明所涉及的密码处理装置具有如下结构:具有密码处理部,该密码处理部执行将SP型F函数反复循环多次的Feistel型共用密钥块密码处理,在密码处理部中将在各循环中的F函数中执行的非线性变换处理和线性变换处理中的至少任一个变换处理作为与在上述Feistel型共用密钥块密码算法以外的密码算法或哈希函数中应用的变换处理相同的变换处理而执行,其中,上述SP型F函数执行包括非线性变换处理和线性变换处理的数据变换处理。 
具有SP型F函数的Feistel型密码是之前在[1.具有SP型F函 数的Feistel构造]的项目中说明的算法,该算法与AES密码、哈希函数Whirlpool的算法不同。如之前参照图1、图2所说明的那样,具有SP型F函数的Feistel型密码具有在各循环中执行F函数的结构,具有在各循环中的F函数中执行应用了S盒的非线性变换、和应用了线性变换矩阵的线性变换处理的结构。 
通过变更F函数的结构,能够使具有作为共用密钥块密码的设计之一的SP型F函数的Feistel型密码对应于各种输入输出比特结构。例如是将输入输出比特设为64比特的64比特块密码、或者将输入输出比特设为128比特的128比特块密码等。 
在设计具有SP型F函数的Feistel型密码的情况下,需要将在F函数中应用的非线性变换处理、线性变换处理结构设为与处理比特数对应的结构。 
在此,例如在具有执行将输入输出比特设为64比特的64比特块密码的SP型F函数的Feistel型密码中,能够应用在上述AES算法中所应用的非线性变换和线性变换处理结构。即,能够应用在AES算法中所应用的非线性变换用的变换表(置换表)、线性变换中应用的线性变换矩阵。 
另外,在执行将输入输出比特设为128比特的128比特块密码的、具有SP型F函数的Feistel型密码中,能够应用在上述哈希函数Whirlpool中所应用的非线性变换和线性变换处理结构。即,能够应用在哈希函数Whirlpool中所应用的非线性变换用的变换表(置换表)、线性变换中应用的线性变换矩阵。 
在具有SP型F函数的Feistel型密码中,当将在各循环中应用的线性变换矩阵设定为不同的矩阵时,例如能够提高对差分解析(differential analysis)等攻击的抗拒性。即,能够提高密码强度。此外,关于通过将在各循环中应用的线性变换矩阵设定为不同的矩阵来提高具有SP型F函数的Feistel型密码的密码强度 的详细结构,在与本发明的申请人有关的之前的专利申请日本特愿2005-313842中进行了说明。 
在现有的Feistel型密码中,由于在所有级的F函数中使用相同的线性变换层,因此存在当差分的传播时同时抵消多个差分的性质。作为密码解析方法的代表性方法,已知差分解析(或差分解读法),在该差分解析(或差分解读法)中通过多次解析具有某差分的输入数据(明文)及其输出数据(密码文)来解析各循环函数中的应用密钥,在现有的DES密码算法等共用密钥块密码中,在各级的循环中将在F函数的线性变换部中应用的处理(变换矩阵)设定为相等,因此容易进行差分解析,其结果导致容易解析密钥。 
通过将在各循环的F函数中应用的线性变换矩阵设为按照特定的序列的不同的矩阵,能够排除当差分传播时同时抵消多个差分的性质,能够提高对差分解析等攻击的抗拒性。 
在将各循环中应用的线性变换矩阵设定为不同的矩阵的情况下,例如需要在执行密码处理的IC卡等信息处理装置中保持多个不同的线性变换矩阵数据。在Feistel型密码中选择多个矩阵时,存在几个选择基准,但是例如在决定各矩阵时,不是自己决定新的两个、三个矩阵的全部,而是对其中之一直接利用AES矩阵、Whirlpool矩阵,从而实现设计的高效化。 
具体地说,是如下结构:作为在64比特Feistel型密码中利用的矩阵之一利用AES中所应用的矩阵的结构、作为在128比特Feistel型密码中利用的矩阵之一利用Whirlpool中所应用的矩阵。 
如之前所说明的那样,在IC卡、便携终端中能够由一个装置执行各种数据处理,因此希望设为可执行各种密码算法、哈希函数的结构。针对这种要求,在例如设为可执行AES和Feistel 型密码的两个不同算法的结构的情况下,需要保持各个算法中应用的非线性变换表、线性变换矩阵。另外,在设为可执行Whirlpool和Feistel型密码的两个不同的算法的结构的情况下,需要保持各个算法中应用的非线性变换表、线性变换矩阵。 
为了保持这种多个算法中应用的变换用的数据,将IC卡等装置的有限的存储器空间耗费在保存这些在多个算法中利用的多个表、矩阵。另外,为了保持一定的密码强度,对在Feistel型密码中应用的例如线性变换矩阵,不适合利用任意矩阵,需要利用具有不使密码强度下降的性质的矩阵。 
关于在Feistel型密码中应用的例如线性变换矩阵的限制,例如在与上述的本发明的申请人有关的之前的专利申请日本特愿2005-313842中进行了说明。下面示出例如可应用的一个限制条件的例子。 
(限制条件A) 
具有F函数的由r级构成的Feistel型共用密钥块密码处理结构中的、与各个r级对应的F函数的线性变换部应用满足下述条件的矩阵Mi。 
对于进行从n×a比特数据向n×b比特数据的线性变换的映射θ:{0,1}na→{0,1}nb,将分支数B(θ)定义为如下, 
分支数B(θ)=minα≠0{hwn(α)+hwn(θ(α))}, 
其中,将minα≠0{Xα}设为满足α≠0的所有的Xα中的最小值,将hwn(Y)设为在将比特列Y按每n比特进行分割而表示时返回n比特的数据都不是0(非零)的元素的数量的函数,将分支数B(θ)为b+1的映射θ定义为最优扩散变换, 
并且,在将矩阵M的分支数表示为B(M)时, 
BD1=min{B(Mi)|1≤i≤r}, 
BD2=min{B(Mi|Mi+2)|1≤i≤r-2}, 
其中,在将A|B设为通过矩阵A、B的连接而得到的矩阵的情况下,应用如BD1、BD2全部都是3以上那样的矩阵Mi。 
此外,根据3以上的条件,Mi和Mi+2必须是不同的矩阵。 
例如,为了具有对差分攻击等攻击的抗拒性,能够将上述(限制条件A)作为在Feistel型密码中应用的线性变换矩阵的条件而应用。 
在AES、Whirlpool中利用的例如线性变换矩阵的、作为保持密码强度的指标之一的分支数满足一定的条件,通过将它们应用于Feistel型密码,保证一定的密码强度的保持。因而,通过对上述应用多个不同的线性变换矩阵的Feistel型密码中的多个矩阵的一部分应用在AES、Whirlpool中所利用的线性变换矩阵,能够有效利用IC卡、便携终端等的密码处理装置中的存储器,还可以实现Feistel型密码的设计的高效化。即,能够减少设计时应决定的矩阵的数量,设计者应查找的候选数量变少,减少用于限定(narrow down)的时间。 
下面说明如下的结构例:在具有SP型F函数的Feistel型密码中,在将各循环中应用的线性变换矩阵设定为不同的矩阵来提高了对差分解析等攻击的抗拒性的Feistel型密码中,对其一部分的线性变换矩阵应用了AES或Whirlpool的矩阵。在下面说明的实施例中,对在使用两个或三个不同的线性变换矩阵的Feistel密码中对这些矩阵中的一个采用AES或Whirlpool的矩阵的例子进行说明。 
(4.1)AES部件共用型64比特Feistel型密码 
首先,说明与AES共用部件的64比特块密码的结构。如上所述,通过应用在Feistel型密码的各循环的F函数中所应用的线 性变换矩阵,能够排除差分传播时同时抵消多个差分的性质,能够提高对差分解析等攻击的抗拒性。下面说明如下的结构例:在使F函数具有非线性变换层(S层)和线性变换层(P层)的SP型64比特Feistel型密码结构中应用两个不同的线性变换矩阵和三个不同的线性变换矩阵,对其一部分利用了在AES密码算法中应用的线性变换矩阵。 
(4.1.1)应用了两个不同的线性变换矩阵的结构例 
首先说明执行作为利用了两个不同的线性变换矩阵的Feistel型密码的64比特块密码的结构例。参照图3说明利用了两个不同的线性变换矩阵的Feistel型密码算法。 
在本算法的结构中,作为用于进行在具有多级(循环)的Feistel型共用密钥块密码处理结构中的各级F函数中的线性变换部中应用的线性变换处理的矩阵,利用两个不同的矩阵M0、M1。具体地说,如图3所示, 
(a)奇数级中以M0、M1的顺序配置 
(b)从偶数级的最后级起以M0、M1的顺序配置 
设为以满足上述(a)、(b)的条件的方式应用两个不同的矩阵M0、M1的结构。 
条件(a)是(a)奇数级中以M0、M1的顺序配置的条件,如图3所示,以循环1、3、5、…的顺序依次配置矩阵M0、M1。条件(b)是(b)从偶数级的最后级起以M0、M1的顺序配置的条件,如图3所示,以循环12、10、8、…的顺序依次配置矩阵M0、M1。 
在此,各个矩阵M0、M1是在各循环中的F函数中执行的线性变换矩阵,表示4×4矩阵。该两个矩阵M0、M1是不同的矩阵,对其中一个矩阵、例如矩阵M0利用了在上述AES算法中利用的4×4矩阵。将矩阵M1设为满足Feistel密码算法的限制条件的矩阵。 
下面示出了具体的矩阵组合的例子。例如,作为满足如下条件的矩阵存在下面的矩阵组合:即使取出M0、M1的两个矩阵整体的任意4行,分支数也是5,并且即使取出tM0 -1tM1 -1的两个矩阵的任意4行,分支数也是5。此外,tM表示M的转置矩阵,M-1表示M的逆矩阵。 
[式5] 
M 0 = 2 3 1 1 1 2 3 1 1 1 2 3 3 1 1 2 M 1 = 1 6 8 4 4 1 6 8 8 4 1 6 6 8 4 1
上述矩阵M0、M1中矩阵M0是在之前说明的AES算法中利用的4×4矩阵,矩阵M1是从满足Feistel密码算法的限制条件的矩阵中选择的矩阵。应用上述两个不同的矩阵M0、M1,执行Feistel密码算法的各循环中的F函数的线性变换。此外,各矩阵的元素表示有限体GF(28)的元素,将既约多项式表示为t8+t4+t3+t+1。 
(4.1.2)应用了三个不同的线性变换矩阵的结构例 
接着说明如下结构例:该结构例是利用了三个不同的线性变换矩阵的Feistel型密码,执行64比特块密码。参照图4说明利用了三个不同的线性变换矩阵的Feistel型密码算法。 
在本算法的结构中,作为用于进行在具有多级(循环)的Feistel型共用密钥块密码处理结构中的各级F函数中的线性变换部中应用的线性变换处理的矩阵,利用三个不同的矩阵M0、M1、M2。具体地说,如图4所示, 
(a)奇数级中以M0、M1、M2的顺序配置 
(b)从偶数级的最后级起以M0、M1、M2的顺序配置 
设为以满足上述(a)、(b)的条件的方式应用三个不同的矩阵M0、M1、M2的结构。 
条件(a)是(a)奇数级中以M0、M1、M2的顺序配置的条件,如图4所示,以循环1、3、5、…的顺序依次配置矩阵M0、M1、M2。条件(b)是(b)从偶数级的最后级起以M0、M1、M2的顺序配置的条件,如图4所示,以循环12、10、8、…的顺序依次配置矩陈M0、M1、M2。 
在此,各个矩阵M0、M1、M2是在各循环中的F函数中执行的线性变换矩阵,表示4×4矩阵。该三个矩阵M0、M1、M2是不同的矩阵,对其中一个矩阵、例如矩阵M0利用了在上述AES算法中利用的4×4矩阵。将矩阵M1、M2设为满足Feistel密码算法的限制条件的矩阵。 
下面示出了具体的矩阵组合的例子。例如作为满足如下条件的矩阵存在下面的矩阵组合:即使取出M0、M1、M2三个矩阵整体的任意4行,分支数也是5,并且即使取出tM0 -1tM1 -1两个矩阵、tM1 -1tM2 -1两个矩阵、tM2 -1tM0 -1两个矩阵的任意4行,分支数也是5。 
[式6] 
M 0 = 2 3 1 1 1 2 3 1 1 1 2 3 3 1 1 2 M 1 = 1 6 8 4 4 1 6 8 8 4 1 6 6 8 4 1 M 2 = 1 9 4 a a 1 9 4 4 a 1 9 9 4 a 1
上述矩阵M0、M1、M2中矩阵M0是在之前说明的AES算法中利用的4×4矩阵,M1、M2是从满足Feistel密码算法的限制条件的矩阵中选择的矩阵。应用上述三个不同的矩阵M0、M1、M2,执行Feistel密码算法的各循环中的F函数的线性变换。此外,各矩阵的元素表示有限体GF(28)的元素,将既约多项式表示为t8+t4+t3+t+1。 
(4.2)Whirlpool部件共用型128比特Feistel型密码 
接着,说明与作为ISO标准化哈希函数的Whirlpool共用部件的128比特块密码的结构。如上所述,通过应用在Feistel型密码的各循环的F函数中所应用的线性变换矩阵,能够排除差分传播时同时抵消多个差分的性质,能够提高对差分解析等攻击的抗拒性。下面说明如下的结构例:在使F函数具有非线性变换层(S层)和线性变换层(P层)的SP型的128比特Feistel型密码结构中应用两个不同的线性变换矩阵和三个不同的线性变换矩阵,对其一部分利用了在Whirlpool密码算法中应用的线性变换矩阵。 
(4.2.1)应用了两个不同的线性变换矩阵的结构例 
首先说明执行作为利用了两个不同的线性变换矩阵的Feistel型密码的128比特块密码的结构例。如之前参照图3所说明的那样,利用了两个不同的线性变换矩阵的Feistel型密码是如下结构:作为用于进行在具有多级(循环)的Feistel型共用密钥块密码处理结构中的各级的F函数中的线性变换部中应用的线性变换处理的矩阵,利用了两个不同的线性变换矩阵M0、M1。具体地说,如图3所示, 
(a)奇数级中以M0、M1的顺序配置 
(b)从偶数级的最后级起以M0、M1的顺序配置 
设为以满足上述(a)、(b)的条件的方式应用两个不同的矩阵M0、M1的结构。 
条件(a)是(a)奇数级中以M0、M1的顺序配置的条件,如图3所示,以循环1、3、5、…的顺序依次配置矩阵M0、M1。条件(b)是(b)从偶数级的最后级起以M0、M1的顺序配置的条件,如图3所示,以循环12、10、8、…的顺序依次配置矩阵M0、M1。 
在此,各个矩阵M0、M1是在各循环中的F函数中执行的线性变换矩阵,表示8×8矩阵。该两个矩阵M0、M1是不同的矩阵, 对其中一个矩阵、例如矩阵M0利用了在上述Whirlpool算法中利用的8×8矩阵。将矩阵M1设为满足Feistel密码算法的限制条件的矩阵。 
下面示出了具体的矩阵组合的例子。例如作为满足如下条件的矩阵存在下面的矩阵组合:即使取出M0、M1的两个矩阵整体的任意8行,分支数也是8以上,并且即使取出tM0 -1tM1 -1的两个矩阵的任意8行,分支数也是8以上。 
[式7] 
M 0 = 1 9 2 5 8 1 4 1 1 1 9 2 5 8 1 4 4 1 1 9 2 5 8 1 1 4 1 1 9 2 5 8 8 1 4 1 1 9 2 5 5 8 1 4 1 1 9 2 2 5 8 1 4 1 1 9 9 2 5 8 1 4 1 1 M 1 = 1 6 8 9 6 9 5 1 1 1 6 8 9 6 9 5 5 1 1 6 8 9 6 9 9 5 1 1 6 8 9 6 6 9 5 1 1 6 8 9 9 6 9 5 1 1 6 8 8 9 6 9 5 1 1 6 6 8 9 6 9 5 1 1
上述矩阵M0、M1中矩阵M0是在之前说明的Whirlpool算法中利用的8×8矩阵,M1是从满足Feistel密码算法的限制条件的矩阵中选择的矩阵。应用上述两个不同的矩阵M0、M1,执行Feistel密码算法的各循环中的F函数的线性变换。此外,各矩阵的元素表示有限体GF(28)的元素,将既约多项式表示为t8+t4+t3+t2+1。 
(4.2.2)应用了三个不同的线性变换矩阵的结构例 
接着说明如下结构例:该结构例是利用了三个不同的线性变换矩阵的Feistel型密码,执行128比特块密码。如之前参照图4所说明的那样,在利用了三个不同的线性变换矩阵的Feistel型密码中,利用三个不同的矩阵M0、M1、M2作为用于进行在具有多级(循环)的Feistel型共用密钥块密码处理结构中的各级F函数中的线性变换部中应用的线性变换处理的矩阵。具体地 说,如图4所示, 
(a)奇数级中以M0、M1、M2的顺序配置 
(b)从偶数级的最后级起以M0、M1、M2的顺序配置 
设为以满足上述(a)、(b)的条件的方式应用三个不同的矩阵M0、M1、M2的结构。 
条件(a)是(a)奇数级中以M0、M1、M2的顺序配置的条件,如图4所示,以循环1、3、5、…的顺序依次配置矩阵M0、M1、M2。条件(b)是(b)从偶数级的最后级起以M0、M1、M2的顺序配置的条件,如图4所示,以循环12、10、8、…的顺序依次配置矩阵M0、M1、M2。 
在此,各个矩阵M0、M1、M2是在各循环中的F函数中执行的线性变换矩阵,表示8×8矩阵。该三个矩阵M0、M1、M2是不同的矩阵,对其中一个矩阵、例如矩阵M0利用了在上述Whirlpool算法中利用的8×8矩阵。将矩阵M1、M2设为满足Feistel密码算法的限制条件的矩阵。 
下面示出了具体的矩阵组合的例子。例如作为满足如下条件的矩阵存在下面的矩阵组合:即使取出M0、M1、M2三个矩阵整体的任意8行,分支数也是8以上,并且即使取出tM0 -1tM1 -1 两个矩阵、tM1 -1tM2 -1两个矩阵、tM2 -1tM0 -1两个矩阵的任意8行,分支数也是8以上。 
[式8] 
M 0 = 1 9 2 5 8 1 4 1 1 1 9 2 5 8 1 4 4 1 1 9 2 5 8 1 1 4 1 1 9 2 5 8 8 1 4 1 1 9 2 5 5 8 1 4 1 1 9 2 2 5 8 1 4 1 1 9 9 2 5 8 1 4 1 1 M 1 = 1 6 8 9 6 9 5 1 1 1 6 8 9 6 9 5 5 1 1 6 8 9 6 9 9 5 1 1 6 8 9 6 6 9 5 1 1 6 8 9 9 6 9 5 1 1 6 8 8 9 6 9 5 1 1 6 6 8 9 6 9 5 1 1
M 2 = 1 6 4 8 4 5 8 9 9 1 6 4 8 4 5 8 8 9 1 6 4 8 4 5 5 8 9 1 6 4 8 4 4 5 8 9 1 6 4 8 8 4 5 8 9 1 6 4 4 8 4 5 8 9 1 6 6 4 8 4 5 8 9 1
上述矩阵M0、M1、M2中矩阵M0是在之前说明的Whirlpool算法中利用的8×8矩阵,M1、M2是从满足Feistel密码算法的限制条件的矩阵中选择的矩阵。应用上述三个不同的矩阵M0、M1、M2,执行Feistel密码算法的各循环中的F函数的线性变换。此外,各矩阵的元素表示有限体GF(28)的元素,将既约多项式表示为t8+t4+t3+t2+1。 
此外,在上述的处理例中说明了在执行Feistel型共用密钥块密码处理的结构中将在各循环的F函数中的线性变换处理中应用的线性变换矩阵与AES或Whirlpool共用的结构,关于在非线性变换中应用的变换表,例如在64比特Feistel型共用密钥块密码处理中的非线性变换处理中,也能够利用在AES算法中应用的非线性变换表,例如在128比特Feistel型共用密钥块密码处理中的非线性变换处理中,也能够利用在Whirlpool算法中应用的非线性变换表。 
即,本发明的密码处理装置具有如下的结构:具有密码处理部,该密码处理部执行将SP型F函数反复循环多次的Feistel型共用密钥块密码处理,在密码处理部中将在各循环中的F函数中执行的非线性变换处理和线性变换处理中的至少任一个变换处理作为与在上述Feistel型共用密钥块密码算法以外的密码算法或哈希函数中应用的变换处理相同的变换处理而执行,其 中,上述SP型F函数执行包括非线性变换处理和线性变换处理的数据变换处理。通过该结构,能够实现通过部件的共用化的设计成本的减少、存储器存储数据的减少。即,通过在作为不同算法的密码处理、哈希函数中能够共同地利用执行非线性变换、线性变换所需的至少一部分硬件、软件,能够降低硬件的安装成本,在软件安装中也能够通过部件共用化而缩小成本大小。 
[5.密码处理装置的结构例] 
最后,在图5中示出了作为执行密码处理的密码处理装置的IC模块300的结构例。能够在例如PC、IC卡、读写器、其它各种信息处理装置中执行上述处理,图5所示的IC模块300能够构成在这些各种设备中。 
图5所示的CPU(Central processing Unit:中央处理单元)301是执行密码处理的开始、结束、数据的发送和接收的控制、各结构部之间的数据传输控制、其它各种程序的处理器。存储器302由ROM(Read-Only-Memory:只读存储器)和RAM(RandomAccess Memory:随机存取存储器)等构成,其中,上述ROM保存由CPU 301所执行的程序、或运算参数等固定数据,上述RAM作为在CPU 301的处理中执行的程序、以及在程序处理中适当变化的参数的保存区域、工作区域而使用。另外,存储器302能够作为密码处理中所需的密钥数据、在密码处理中应用的变换表(置换表)、在变换矩阵中应用的数据等的保存区域而使用。此外,数据保存区域最好构成为具有耐损害(tamper)结构的存储器。 
密码处理部303例如执行按照上述Feistel型共用密钥块密码处理算法的密码处理、解密处理,还执行AES算法、Whirlpool等密码处理、哈希函数等。此外,在此示出了将密码处理单元 设为单独模块的例子,但是也可以不设置这种独立的密码处理模块而例如将密码处理程序保存在ROM中,CPU 301读出ROM保存程序来执行。 
随机数产生器304执行在密码处理所需的密钥的生成等中所必需的随机数的产生处理。 
发送接收部305是执行与外部的数据通信的数据通信处理部,例如执行与读写器等IC模块之间的数据通信,执行在IC模块内生成的密码文的输出、或者来自外部读写器等设备的数据输入等。 
在该IC模块300中,例如在设为可执行AE S算法、和应用了多个不同的矩阵(线性变换矩阵)的Feistel型共用密钥块密码处理算法的两个不同算法的结构的情况下,通过将Feistel型共用密钥块密码处理算法的应用矩阵的一部分与AES算法的应用矩阵共用化,能够减少应记录在存储器302中的变换矩阵用数据。 
另外,同样地,在设为可执行哈希函数Whirlpool、和应用了多个不同的矩阵(线性变换矩阵)的Feistel型共用密钥块密码处理算法的两个不同算法的结构的情况下,通过将Feistel型共用密钥块密码处理算法的应用矩阵的一部分与哈希函数Whirlpool的应用矩阵共用化,能够减少应记录在存储器302中的变换矩阵用数据。 
以上,参照特定的实施例详细说明了本发明。然而,显然在不脱离本发明的要旨的范围内本领域技术人员可进行该实施例的修改、代用。即,以例示的形式公开了本发明,但是不应限定性地解释。为了判断本发明的要旨,需要参考权利要求书的范围一栏。 
此外,在说明书中说明的一系列处理能够通过硬件、或软件、或两者的合成结构来执行。在通过软件执行处理的情况下, 能够将记录了处理顺序的程序安装在嵌入到专用硬件中的计算机内的存储器中执行、或将程序安装在可执行各种处理的通用计算机中执行。 
例如,可将程序预先记录在作为记录介质的硬盘、ROM(Read Only Memory)中。或者,可将程序暂时或永久性地保存(记录)在软盘、CD-ROM(Compact Disc Read Only Memory:光盘只读存储器)、MO(Magneto optical:磁光)盘、DVD(DigitalVersatile Disc:数字多功能光盘)、磁盘、半导体存储器等可移动记录介质中。可将这种可移动记录介质作为所谓的封装软件而提供。 
此外,程序除了从如上所述的可移动记录介质安装到计算机之外,还能够从下载站点无线传送到计算机、或通过称为LAN(Local Area Nerwork:局域网)、因特网的网络而有线传送到计算机,在计算机中接收这样传送来的程序并安装到内置的硬盘等记录介质中。 
此外,说明书中记载的各种处理,不仅按照记载以时间序列执行,也可以根据执行处理的装置的处理能力或需要来并行或单独地执行。另外,在本说明书中系统是多个装置的逻辑的集合结构,并不限于各结构的装置在同一壳体内。 
产业上的可利用性
如上所述,根据本发明的结构,在将具有非线性变换部和线性变换部的SP型F函数反复循环执行多次的F eistel型共用密钥块密码处理中,设为将在各循环中的F函数中执行的非线性变换处理和线性变换处理中的至少任一个变换处理作为在与上述Feistel型共用密钥块密码算法以外的密码算法或哈希函数、例如AES、Whirlpool等中应用的变换处理相同的变换处理而执行的结构,因此能够通过部件的共用化而降低设计成本、减少 存储器存储数据。即,能够在作为不同算法的密码处理、哈希函数中共同地利用执行非线性变换、线性变换所需的至少一部分硬件、软件,由此降低硬件的安装成本,在软件安装中还能够通过部件的共用化而缩小成本大小。 

Claims (14)

1.一种密码处理装置,其特征在于,
具有密码处理部,该密码处理部执行将SP型F函数反复循环多次的Feistel型共用密钥块密码处理,其中,上述SP型F函数执行包括非线性变换处理和线性变换处理的数据变换处理,
上述密码处理部的结构为:
在各循环中的F函数中执行的非线性变换处理和线性变换处理中的至少任一个变换处理中,应用在上述Feistel型共用密钥块密码算法以外的密码算法或哈希函数中应用的非线性变换处理用的变换表或线性变换处理用的线性变换矩阵。
2.根据权利要求1所述的密码处理装置,其特征在于,
上述密码处理部是在各循环的线性变换处理中选择性地应用至少两个以上的不同的多个矩阵的结构,选择应用的矩阵中的至少一个是在上述Feistel型共用密钥块密码算法以外的密码算法或哈希函数中应用的矩阵。
3.根据权利要求2所述的密码处理装置,其特征在于,
上述密码处理部是在各循环的线性变换处理中选择性地应用两个不同的矩阵M0、M1的结构,是以使各矩阵M0、M1的配置满足如下(a)、(b)的条件的方式应用两个不同的矩阵M0、M1的结构:
(a)奇数循环中以M0、M1的顺序配置,
(b)从偶数循环的最后级起以M0、M1的顺序配置。
4.根据权利要求2所述的密码处理装置,其特征在于,
上述密码处理部是在各循环的线性变换处理中选择性地应用三个不同的矩阵M0、M1、M2的结构,是以使各矩阵M0、M1、M2的配置满足如下(a)、(b)的条件的方式应用三个不同的矩阵M0、M1、M2的结构:
(a)奇数循环中以M0、M1、M2的顺序配置,
(b)从偶数循环的最后级起以M0、M1、M2的顺序配置。
5.根据权利要求1~4中的任一项所述的密码处理装置,其特征在于,
上述密码处理部是执行64比特Feistel型共用密钥块密码处理的结构,
在各循环的线性变换处理中选择应用的矩阵中的至少一个是在AES密码算法中应用的矩阵。
6.根据权利要求5所述的密码处理装置,其特征在于,
上述密码处理部具有选择性地执行AES密码处理和64比特Feistel型共用密钥块密码处理的两个算法的结构。
7.根据权利要求1~4中的任一项所述的密码处理装置,其特征在于,
上述密码处理部是执行128比特Feistel型共用密钥块密码处理的结构,
在各循环的线性变换处理中选择应用的矩阵中的至少一个是在Whirlpool哈希函数中应用的矩阵。
8.根据权利要求7所述的密码处理装置,其特征在于,
上述密码处理部具有选择性地执行Whirlpool哈希函数和128比特Feistel型共用密钥块密码处理的两个算法的结构。
9.一种密码处理方法,其特征在于,
具有密码处理步骤,在该密码处理步骤中执行将SP型F函数反复循环多次的Feistel型共用密钥块密码处理,其中,上述SP型F函数执行包括非线性变换处理和线性变换处理的数据变换处理,
在上述密码处理步骤中,在各循环中的F函数中执行的非线性变换处理和线性变换处理中的至少任一个变换处理中,应用在上述Feistel型共用密钥块密码算法以外的密码算法或哈希函数中应用的非线性变换处理用的变换表或线性变换处理用的线性变换矩阵。
10.根据权利要求9所述的密码处理方法,其特征在于,
上述密码处理步骤在各循环的线性变换处理中选择性地应用至少两个以上的不同的多个矩阵,选择应用的矩阵中的至少一个是在上述Feistel型共用密钥块密码算法以外的密码算法或哈希函数中应用的矩阵。
11.根据权利要求10所述的密码处理方法,其特征在于,
上述密码处理步骤是在各循环的线性变换处理中选择性地应用两个不同的矩阵M0、M1的步骤,以各矩阵M0、M1的应用顺序满足如下(a)、(b)的条件的方式应用两个不同的矩阵M0、M1
(a)奇数循环中以M0、M1的顺序应用,
(b)从偶数循环的最后级起以M0、M1的顺序应用。
12.根据权利要求10所述的密码处理方法,其特征在于,
上述密码处理步骤是执行在各循环的线性变换处理中选择性地应用三个不同的矩阵M0、M1、M2的处理的步骤,以各矩阵M0、M1、M2的应用顺序满足如下(a)、(b)的条件的方式应用三个不同的矩阵M0、M1、M2
(a)奇数循环中以M0、M1、M2的顺序应用,
(b)从偶数循环的最后级起以M0、M1、M2的顺序应用。
13.根据权利要求9~12中的任一项所述的密码处理方法,其特征在于,
上述密码处理步骤是执行64比特Feistel型共用密钥块密码处理的步骤,
对在各循环的线性变换处理中选择应用的矩阵中的至少一个应用在AES密码算法中所利用的矩阵。
14.根据权利要求9~12中的任一项所述的密码处理方法,其特征在于,
上述密码处理步骤是执行128比特Feistel型共用密钥块密码处理的步骤,
在各循环的线性变换处理中选择应用的矩阵中的至少一个是在Whirlpool哈希函数中应用的矩阵。
CN200780002505XA 2006-01-17 2007-01-04 密码处理装置和密码处理方法 Expired - Fee Related CN101371286B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP008695/2006 2006-01-17
JP2006008695A JP2007192893A (ja) 2006-01-17 2006-01-17 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
PCT/JP2007/050009 WO2007083528A1 (ja) 2006-01-17 2007-01-04 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム

Publications (2)

Publication Number Publication Date
CN101371286A CN101371286A (zh) 2009-02-18
CN101371286B true CN101371286B (zh) 2011-05-25

Family

ID=38287482

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200780002505XA Expired - Fee Related CN101371286B (zh) 2006-01-17 2007-01-04 密码处理装置和密码处理方法

Country Status (5)

Country Link
US (1) US8073140B2 (zh)
EP (1) EP1975908A4 (zh)
JP (1) JP2007192893A (zh)
CN (1) CN101371286B (zh)
WO (1) WO2007083528A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4882598B2 (ja) * 2006-07-28 2012-02-22 ソニー株式会社 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
JPWO2009075337A1 (ja) 2007-12-13 2011-04-28 日本電気株式会社 暗号化方法及び復号化方法、装置並びにプログラム
US20120047087A1 (en) 2009-03-25 2012-02-23 Waldeck Technology Llc Smart encounters
US9317286B2 (en) * 2009-03-31 2016-04-19 Oracle America, Inc. Apparatus and method for implementing instruction support for the camellia cipher algorithm
JP2011130340A (ja) * 2009-12-21 2011-06-30 Kddi Corp ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム
JP5682526B2 (ja) 2011-03-28 2015-03-11 ソニー株式会社 データ処理装置、およびデータ処理方法、並びにプログラム
JP5652363B2 (ja) 2011-03-28 2015-01-14 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
JP5682525B2 (ja) 2011-03-28 2015-03-11 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
JP5682527B2 (ja) * 2011-03-28 2015-03-11 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
US20140196151A1 (en) * 2013-01-10 2014-07-10 Microsoft Corporation Preserving geometric properties of datasets while protecting privacy
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
CN103905186B (zh) * 2014-02-26 2017-12-05 苏州朗格智能配用电系统有限公司 一种加密方法
JP2015191106A (ja) * 2014-03-28 2015-11-02 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
CN105281911B (zh) * 2015-08-04 2018-09-25 电子科技大学 将任意长度字符串映射到固定大小矩阵的哈希函数方法
CN109635599B (zh) * 2018-12-07 2024-01-09 上海航芯电子科技股份有限公司 数据加密方法、解密方法、保护装置、片内存储器及芯片

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US358738A (en) * 1887-03-01 Emmet v
US327953A (en) * 1885-10-06 Ische anilin and soda fabrik
JP3517063B2 (ja) * 1996-10-11 2004-04-05 株式会社東芝 暗号化装置及び暗号化方法
JP3724399B2 (ja) * 2001-01-23 2005-12-07 株式会社日立製作所 疑似乱数生成装置またはそれを用いた暗号復号処理装置
JP4596686B2 (ja) * 2001-06-13 2010-12-08 富士通株式会社 Dpaに対して安全な暗号化
JP4622222B2 (ja) * 2003-09-30 2011-02-02 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP2005309148A (ja) * 2004-04-22 2005-11-04 Hitachi Ltd データ変換装置およびデータ変換方法
JP2005313842A (ja) 2004-04-30 2005-11-10 Ichikoh Ind Ltd 車両用照明装置
JP4905000B2 (ja) 2006-09-01 2012-03-28 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Dai Watanabe等.A New Keystream Generator MUGI.《Lecture Notes in Computer Science》.2002,第2365卷179-194. *
SATOH A..AES to Camellia no Kyoyu Hardware Architecture.《NEN SYMPHOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY YOKOSHU》.2003,第2卷941-946. *
Taizo Shirai等.Improving Immunity of Feistel Ciphers against Differential Cryptanalysis by Using Multiple MDS Matrices.《LECTURE NOTES IN COMPUTER SCIENCE》.2004,第3017卷260-278. *

Also Published As

Publication number Publication date
US8073140B2 (en) 2011-12-06
JP2007192893A (ja) 2007-08-02
EP1975908A4 (en) 2011-06-08
EP1975908A1 (en) 2008-10-01
US20100226493A1 (en) 2010-09-09
WO2007083528A1 (ja) 2007-07-26
CN101371286A (zh) 2009-02-18

Similar Documents

Publication Publication Date Title
CN101371286B (zh) 密码处理装置和密码处理方法
CN101375323B (zh) 密码处理装置、密码处理装置制造装置及方法
CN101512620B (zh) 密码处理装置和密码处理方法
CN101553857B (zh) 加密处理装置、加密处理方法以及计算机程序
CN101496080B (zh) 密码处理装置、密码处理算法构建方法和密码处理方法
CN101512619B (zh) 密码处理装置和密码处理方法
CN101536062B (zh) 密码处理装置和密码处理方法
CN101512618B (zh) 共用密钥块密码处理装置和共用密钥块密码处理方法
CN101553856B (zh) 密码处理装置和密码处理方法
Biryukov et al. Cryptanalysis of SAFER++
CN101162557A (zh) 密码处理装置和密码处理方法、以及计算机程序
WO2009087972A1 (ja) データ送信装置、データ受信装置、これらの方法、記録媒体、そのデータ通信システム
Alsaidi et al. Compression multi-level crypto stego security of texts utilizing colored email forwarding
EP2693681A1 (en) Encryption processing device, encryption processing method, and programme
CN102713994B (zh) 加密装置
CN112507357B (zh) 一种基于密钥生成器的多级接口设计方法
CN1795637B (zh) 用于密钥扩展功能的低速存储器硬件实施的方法和设备
JP5578422B2 (ja) 暗号化通信システム、送信装置、受信装置、暗号化/復号化方法およびそれらのプログラム
Liu et al. Improved impossible differential attack on reduced version of Camellia with FL/FL− 1 functions
JP2002082608A (ja) 暗号化処理機能を備えた可搬記録媒体
Khajooeizadeh Applications of cryptanalysis methods to some symmetric key primitives
KR20070078496A (ko) 무선통신에서의 암호화 방법

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110525

Termination date: 20140104