CN101553857B - 加密处理装置、加密处理方法以及计算机程序 - Google Patents

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

Info

Publication number
CN101553857B
CN101553857B CN2007800456671A CN200780045667A CN101553857B CN 101553857 B CN101553857 B CN 101553857B CN 2007800456671 A CN2007800456671 A CN 2007800456671A CN 200780045667 A CN200780045667 A CN 200780045667A CN 101553857 B CN101553857 B CN 101553857B
Authority
CN
China
Prior art keywords
data
bit
key
circulation
processing
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
CN2007800456671A
Other languages
English (en)
Other versions
CN101553857A (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 CN101553857A publication Critical patent/CN101553857A/zh
Application granted granted Critical
Publication of CN101553857B publication Critical patent/CN101553857B/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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供了增加密钥解析的难度、提高了安全性的公共密钥块加密处理构成。在将通过私有密钥的变换处理而生成的中间密钥存储在寄存器中并通过寄存器存储数据的变换处理来生成循环密钥的构成中,执行构成寄存器存储数据的部分数据的交换(替换)处理并生成循环密钥。例如,划分成四个部分数据,以便将具有相等比特数的部分数据的组设定为两组,反复执行各部分数据的交换处理,并生成多个不同的循环密钥。根据本构成,可以有效地替换各个循环密钥的比特排列,生成相关性低的循环密钥,实现提高了密钥的解析难度、安全性高的加密处理。

Description

加密处理装置、加密处理方法以及计算机程序 
技术领域
本发明涉及加密处理装置、加密处理方法以及计算机程序。更详细地,本发明涉及执行公共密钥块加密处理的加密处理装置、加密处理方法以及计算机程序。 
背景技术
在例如网络通信、电子商务交易和其它的数据处理领域中,确保安全是重要的课题。现有加密技术作为确保安全的一个方法,加密处理被用于各种领域。 
例如以下系统已经被实用化,即在IC卡等的小型的装置中埋入加密处理组件,在IC卡和作为数据读写装置的读写器之间进行数据接收发送,并进行认证处理或接收发送数据的加密化、解码。 
在加密处理算法中存在各种各样的算法,如果从大的方面分类,可以分为将加密化密钥和解码密钥设定为不同的密钥、例如设定为公共密钥(common key)和私有密钥(secret key)的公共密钥加密方式、以及将加密化密钥和解码密钥设定作为公共的密钥的公共密钥加密方式。 
在公共密钥加密方式中也存在各种各样的算法,其中之一,存在以公共密钥为基础而生成多个密钥,并使用生成的多个密钥反复执行块(block)单位(64比特、128比特、256比特等)的数据变换处理的方式。作为适用了这样的密钥生成方式和数据变换处理的代表性的算法为公共密钥块加密方式。 
作为代表性的公共密钥块加密的算法,例如已知有作为过去美国标准加密的DES(Data Encryption Standard,数据加密标准)算法、和现在美国标准的AES(Advanced Encryption Standard,高级加密标准)算法等。 
这样的公共密钥块加密的算法主要由加密处理部和加密调度(schedule)部构成,其中,该加密处理部包括反复执行输入数据的变换的循环函数执行部,该加密调度部生成在循环函数部的各循环中适用的循环密钥。密钥调度部基于作为私有密钥的主要密钥(主密钥),首先生成使比特数增加的扩大密钥,并基于生成的扩大密钥生成在加密处理部的各个循环函数部中适用的循环密钥(副密钥)。 
作为执行这样的算法的具体的构造,已知有反复执行包括线性变换部以及非线性变换部的循环函数的构造。例如作为代表性的构造存在有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,Hideki Imai:On the Construction of Block Ciphers Provably Secure and Not Relyingon Any Unproved Hypotheses.CRYPTO 1989:461-480。 
发明内容
本发明鉴于上述问题点,目的在于提供一种提高加密解析的困难性、实现安全性高的公共密钥块加密算法的加密处理装置、加密处理方法以及计算机程序。 
本发明第一方面提供了用于执行公共密钥块加密处理的加密处理装置,其包括:加密处理部,用于进行将循环函数反复多次循环的数据变换处理;以及密钥调度部,用于生成适用于上述循环函数的执行的循环密钥,上述密钥调度部构成为包括:寄存器,通过私有密钥的变换处理生成中间密钥,存储生成的中间密钥;以及数据变换部,作为对存储在上述寄存器中的寄存器存储数据执行数据变换处理的数据变换部,将上述寄存器存储数据划分成四个部分数据,以便将具有相等比特数的部分数据设定为两组,反复执行构成各上述寄存器存储数据的部分数据的交换(替换)处理并生成多个不同的循环密钥。 
并且,在本发明的第一方面的加密处理装置中,上述数据变换部将由2m比特构成的上述寄存器存储数据划分为下述(a)至(d)所示的四个部分数据,反复执行各个部分数据的交换(替换)处理,并生成多个不同的循环密钥,(a)先头i比特的部分数据A0;(b)从先头开始的第i+1比特至第m比特的部分数据A1;(c)从先头开始的第m+1比特至第2m-i比特的部分数据A2;以及(d)末尾i比特的部分数据A3。 
此外,在本发明的第一方面的加密处理装置中,上述数据变换部构成为包括:双交换处理执行部,用于将上述寄存器存储数据划分为四个部分数据,以便将具有相等比特数的部分数据的组设定为两组,并执行各组的部分数据的交换(替换)处理;以及双交换逆处理执行部,用于执行相当于上述双交换执行部处理的多个反复处理的逆处理的数据变换处理。 
此外,在本发明的第一方面的加密处理装置中,上述数据变换部包括如下的构成:进行以与加密化处理中的循环密钥生成相反的顺序来生成循环密钥的解码用循环密钥生成处理,上述数据变换部包括:解码用循环密钥对应数据变换部,通过对上述寄存器存储数据进行的变换处理来生成以根据预先规定的循环数而确定的次数反复进行双交换处理的结果数据,其中,在上述双交换处理中,将上述寄存器存储数据划分为四个部分数据,以便将具有相等比特数的部分数据的组设定为两组,并执行各组的部分数据的交换(替换)处理;以及双交换逆处理执行部,对在上述解码用循环密钥对应数据变换部中被变换的数据执行上述双交换处理的逆处理,生成各循环的循环密钥。 
此外,在本发明的第一方面的加密处理装置中,上述数据变换部构成为包括:交换处理执行部,用于将由2m比特构成的上述寄存器存储数据划分为下述(a)至(b)所示的两个部分数据,并执行各部分数据的交换(替换)处理;以及子交换处理执行部,用于将由2m比特构成的上述寄存器存储数据划分为下述(c)至(e)所示的三个部分数据,并执行下述(c)与(d)的部分数据的交换(替换)处理,(a)先头m比特的部分数据A0;以及(b)末尾m比特的部分数据A1,(c)先头(m-i)比特的部分数据A0;(d)从 先头开始的第(m-i+1)比特至第(m+i)比特的部分数据A1;以及(e)从先头开始的第(m+i+1)比特至末尾比特的部分数据A2,上述数据变换部根据循环的进行,交替执行上述交换处理执行部和上述子交换处理执行部的处理,并生成循环密钥。 
此外,在本发明的第一方面的加密处理装置中,上述数据变换部还包括:逆变换处理执行部,用于执行与上述交换处理执行部和上述子交换处理执行部的处理的反复处理的逆处理相当的数据交换。 
此外,在本发明的第一方面的加密处理装置中,上述密钥调度部构成为还包括:常数生成部,用于生成相对每个循环都不同的常数;以及按位加运算部,用于执行上述常数生成部所生成的常数和上述寄存器存储数据之间的按位加的运算并生成循环密钥。 
此外,在本发明的第一方面的加密处理装置中,上述常数生成部构成为通过比特数少于生成的常数的相对每个循环都不同的少比特数数据的移位数据的组合来生成相对每个循环都不同的常数。 
此外,在本发明的第一方面的加密处理装置中,上述常数生成部构成为通过对比特数少于生成的常数的少比特数数据进行的数据变换,生成相对每个循环都不同的少比特数数据,通过生成的少比特数数据的移位数据的组合来生成相对每个循环都不同的常数。 
本发明第二方面提供了在加密处理装置中执行公共密钥块加密处理的加密处理方法,其包括:循环密钥生成步骤,在密钥调度部中生成多个循环密钥,其中,上述多个循环密钥应用于在加密处理部中执行的多个循环的循环函数的执行;以及加密处理步骤,在加密处理部中进行将适用了上述循环密钥的循环函数反复多个循环的数据变换处理,上述循环密钥生成步骤包括:中间密钥生成步骤,通过私有密钥的变换处理来生成中间密钥并存储在寄存器中;以及数据变换步骤,将上述寄存器存储数据划分成四个部分数据,以便将具有相等比特数的部分数据设定为两组,上述数据变换部对构成存储在上述寄存器中的寄存器存储数据的部分数据反复执行交换(替换)处理,并生成多个不同的循环密钥。
并且,在本发明的第二方面的加密处理方法中,在上述数据变换步骤中,将由2m比特构成的上述寄存器存储数据划分为下述(a)至(d)所示的四个部分数据,反复执行各个部分数据的交换(替换)处理,并生成多个不同的循环密钥,(a)先头i比特的部分数据A0;(b)从先头开始的第i+1比特至第m比特的部分数据A1;(c)从先头开始的第m+1比特至第2m-i比特的部分数据A2;以及(d)末尾i比特的部分数据A3。 
此外,在本发明的第二方面的加密处理方法中,上述数据变换步骤包括:双交换处理执行步骤,将上述寄存器存储数据划分为四个部分数据,以便将具有相等比特数的部分数据的组设定为两组,并执行各组的部分数据的交换(替换)处理;以及双交换逆处理执行步骤,执行相当于上述双交换执行步骤的处理的多个反复处理的逆处理的数据变换处理。 
此外,在本发明的第二方面的加密处理方法中,上述数据变换步骤包括如下的步骤:进行以与加密化处理中的循环密钥生成相反的顺序来生成循环密钥的解码用循环密钥生成处理,并且,上述数据变换步骤包括:解码用循环密钥对应数据变换步骤,通过对上述寄存器存储数据进行的变换处理来生成以根据预先规定的循环数而确定的次数反复进行双交换处理的结果数据,其中,在上述双交换处理中,将上述寄存器存储数据划分为四个部分数据,以便将具有相等比特数的部分数据的组设定为两组,并执行各组的部分数据的交换(替换)处理;以及双交换逆处理执行步骤,对在上述解码用循环密钥对应数据变换步骤中被变换的数据执行上述双交换处理的逆处理,生成各循环的循环密钥。 
此外,在本发明的第二方面的加密处理方法中,上述数据变换步骤包括:交换处理执行步骤,将由2m比特构成的上述寄存器存储数据划分为下述(a)至(b)所示的两个部分数据,并执行各部分数据的交换(替换)处理;以及子交换处理执行步骤,用于将由2m比特构成的上述寄存器存储数据划分为下述(c)至(e)所示的三个部分数据,并执行下述(c)与(d)的部分数据的交换(替换)处理,(a)先头m比特的部分数据A0;以及(b)末尾m比特的部分数据A1,(c)先头(m-i)比特的部分数据A0;(d)从先头开始的第(m-i+1)比特至第(m+i)比特的部分数据A1;以及(e)从先头开始的第(m+i+1)比特至末尾比特的部分数据A2,在上述数据变换步骤中,根据循环的进行,交替执行上述交换处理执行步骤和上述子交换处理执行步骤的处理,并生成循环密钥。 
此外,在本发明的第二方面的加密处理方法中,上述数据变换步骤还包括:逆变换处理执行步骤,用于执行与上述交换处理执行步骤和上述子交换处理执行步骤的处理的反复处理的逆处理相当的数据交换。 
此外,在本发明的第二方面的加密处理方法中,上述加密处理方法还包括:常数生成步骤,由常数生成部生成相对每个循环都不同的常数;以及按位加运算步骤,由上述按位加运算部执行上述常数生成部所生成的常数和上述寄存器存储数据之间的按位加的运算并生成循环密钥。 
此外,在本发明的第二方面的加密处理方法中,在上述常数生成步骤中,通过比特数少于生成的常数的相对每个循环都不同的少比特数数据的移位数据的组合来生成相对每个循环都不同的常数。 
此外,在本发明的第二方面的加密处理方法中,在上述常数生成步骤中,通过对比特数少于生成的常数的少位数数据进行的数据变换来生成相对每个循环都不同的少比特数数据,通过所生成的少比特数数据的移位数据的组合来生成相对每个循环都不同的常数。 
并且,本发明第三方面提供了使加密处理装置执行公共密钥块加密处理的计算机程序,其包括:循环密钥生成步骤,使密钥调度部生成多个循环密钥,其中,上述多个循环密钥应用于在加密处理部中执行的多个循环的循环函数的执行;以及加密处理步骤,使密钥调度部进行将适用了上述循环密钥的循环函数反复多个循环的数据变换处理,上述循环密钥生成步骤包括:中间密钥生成步骤,通过私有密钥的变换处理来生成中间密钥并存储在寄存器中;以及数据变换步骤,上述数据变换部对构成存储在上述寄存器中的寄存器存储数据的部分数据反复执行交换(替换)处理,并生成多个不同的循环密钥。 
此外,本发明的计算机程序是如下的计算机程序:可通过以计算机可读形式提供的存储介质、通信介质、例如CD、FD、MO等的记录介质或者网络等的通信介质,对例如可执行各种各样的程序码的计算机系统进行提供。通过以计算机可读形式提供这样的程序,可在计算机系统上实现与程序相应的处理。 
通过对根据后述的本发明的实施例和附图进行的更加详细的说明来说明本发明的其它的目的、特征和优点。此外,本说明书中,所谓系统是多个装置的逻辑集合构成,并不仅限于各个构成的装置存在于同一个壳体内。 
发明效果 
根据本发明的构成,在公共密钥块加密处理的循环密钥生成处理中,在将通过私有密钥的变换处理而生成的中间密钥存储在寄存器中并通过寄存器存储数据的变换处理来生成循环密钥的构成中,执行构成寄存器存储数据的部分数据的交换(替换)处理并生成循环密钥。例如,将寄存器存储数据划分成四个部分数据,以便将具有相等比特数的部分数据的组设定为两组,反复执行各部分数据的交换(替换)处理,并生成多个不同的循环密钥。根据本构成,可以有效地替换各个循环密钥的比特排列,生成相关性低的循环密钥,实现提高了密钥的解析难度、安全性高的加密处理。 
附图说明
图1是示出公共密钥块加密算法的基本构成的图; 
图2是对图1所示的公共密钥块加密处理部E10的内部构成进行说明的图; 
图3是对图2所示的加密处理部12的详细构成进行说明的图; 
图4是对作为循环函数执行部的一个构成例的SPN构造循环函数进行说明的图; 
图5是对作为循环函数执行部的一个构成例的Feistel(フエイステル)构造进行说明的图; 
图6是对非线性变换处理部的具体例进行说明的图; 
图7是对线性变换处理部的具体例进行说明的图; 
图8是对加密化处理的私有密钥K、初始密钥、循环密钥和最终密钥的对应进行说明的图; 
图9是对解码处理的私有密钥K、初始密钥、循环密钥和最终密钥的对应进行说明的图; 
图10是对执行加密化处理中的循环密钥生成处理的密钥调度部的构成例进行说明的图; 
图11是对执行解码处理中的循环密钥生成处理的密钥调度部的构成例进行说明的图; 
图12是对执行加密化、解码两者中的循环密钥生成处理的密钥调度部的构成例进行说明的图; 
图13是对执行可在Feistel构造的加密处理中适用的循环密钥生成处理的密钥调度部的构成例进行说明的图; 
图14是对在加密化处理中的在循环密钥生成处理中执行适用了双交换(double swap)运算的处理的密钥调度部的构成例进行说明的图; 
图15是对适用了i比特双交换运算的比特位置变更处理进行说明的图; 
图16是对执行适用了i比特双交换运算的比特位置变更处理的硬件构成例进行说明的图; 
图17是对执行适用了(r-1)次i比特双交换逆运算的比特位置变更处理的硬件构成例进行说明的图; 
图18是对在解码处理中的在循环密钥生成处理中执行适用了双交换运算的处理的密钥调度部的构成例进行说明的图; 
图19是对在加密化、解码两者中的在循环密钥生成处理中执行适用了双交换运算的处理的密钥调度部的构成例进行说明的图; 
图20是对适用了i比特双交换运算的比特位置变更处理进行说明的图; 
图21是对在加密处理的循环密钥生成处理中执行适用了交换运算和子交换运算的处理的密钥调度部的构成例进行说明的图; 
图22是对适用了交换运算的比特位置变更处理进行说明的图; 
图23是对适用了i比特子交换运算的比特位置变更处理进行说明的图; 
图24是对适用了跳跃(jump)运算的比特位置变更处理进行说明的图; 
图25是对包括常数生成电路和“按位加”运算部的、执行循环密钥生成处理的密钥调度部的构成例进行说明的图; 
图26是对常数生成电路的构成例进行说明的图;以及 
图27是示出作为执行本发明所涉及的加密处理的加密处理装置的IC组件的构成例的图。 
具体实施方式
下面,详细说明本发明的加密处理装置、加密处理方法以及计算机程序。说明按照以下的项目进行。 
1、公共密钥块加密的概要 
2、密钥调度部中的循环密钥生成处理构成 
(2-1)关于密钥调度部的详细构成 
(2-2)关于适用了移位处理的通常的循环密钥生成处理构成 
(2-3)关于本发明的第一实施例所涉及的循环密钥的生成处理构成 
(2-4)关于本发明的第二实施例所涉及的循环密钥的生成处理构成 
(2-5)关于本发明的第三实施例所涉及的循环密钥的生成处理构成 
3、加密处理装置的构成例 
[1、公共密钥块加密的概要] 
首先,对本发明可适用的公共密钥块加密的概要进行说明。在本说明书中,公共密钥块加密(以下称为块加密)是指如下定义的加密。 
块加密输入明码文本P和密钥K,并输出加密文本C。明码文本和加密文本的比特长被称作块大小,在此用n表示。N虽然可以 取任意的整数值,但通常是针对每个块加密算法而预先确定的一个值。还可以将块长为n的块加密称作n比特块加密。 
密钥的比特长用k来表示。密钥可以取任意的整数值。公共密钥块加密算法与一个或多个密钥大小相对应。例如,某块加密算法A的块大小为n=128,可以构成为与密钥的比特长k=128、k=192或k=256的各种的密钥大小相对应。 
明码文本[P]、加密文本[C]、密钥[K]的各个比特大小如下所示。 
明码文本P:n比特 
加密文本C:n比特 
密钥K:k比特 
图1示出了与k比特的密钥长度相对应的n比特公共密钥块加密算法E的图。如图1所示,公共密钥块加密处理部E10输入n比特的明码文本P和k比特的密钥K,执行预先确定的加密算法,然后输出n比特的加密文本C。另外,在图1中仅示出了从明码文本生成加密文本的加密化处理。通常使用E10的逆函数来进行从加密文本生成明码文本的解码处理。但是,根据加密化处理部E10的构造,即使在解码处理中也可以适用同样的公共密钥块加密处理部E10,且可通过变更密钥的输入顺序等的次序来进行解码处理。 
参照图2对图1所示的公共密钥块加密处理部E10的内部构成进行说明。可以将块加密分为两部分考虑。一部分是密钥调度部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的输入侧观察将第一循环的输入数据作为X0,将从第i次的循环函数 输出的数据表示为Xi,将循环密钥表示为RKi。另外,根据该加密处理部12的构造,例如可以构成为:与加密化处理相反地设定应用的循环密钥的适用调度,通过将加密文本输入到加密处理部12从而输出明码文本。 
图3所示的加密处理部12的循环函数执行部20可采取各种各样的形式。循环函数可以根据其加密算法所采用的构造(structure)来分类。作为代表性的构造,存在有: 
(a)SPN(Substitution Permutation Network,代替置换网络)构造; 
(b)Feistel构造。 
下面,参照图4至图6针对这些具体的构成进行说明。 
(a)SPN构造循环函数 
首先,参照图4,针对作为循环函数执行部20的一个构成例的SPN构造循环函数进行说明。SPN构造循环函数执行部20a具有将非线性变换层(S层)和线性变换层(P层)连接的所谓的SP型的构成。如图4所示,由对所有的n比特的输入数据执行与循环密钥之间的按位加(EXOR)运算的按位加运算部21、输入按位加运算部21的运算结果并执行输入数据的非线性变换的非线性变换处理部22、以及输入非线性变换处理部22的非线性变换处理结果并执行对输入数据的线性变换处理的线性变换处理部23等构成。线性变换处理部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函数的数据变换处理。 
如参照图4至图5所说明的那样,公共密钥块加密的加密处理部12的循环函数执行部20可采取如下构造: 
(a)SPN(Substitution Permutation Network,代替置换网络)构造; 
(b)Feistel构造。 
这些循环函数执行部的任何一个都具有非线性变换层(S层)和线性变换层(P层)连接的所谓的SP型的构成。也就是说,包括执行非线性变换处理的非线性变换处理部和执行线性变换处理的线性变换处理部。下面,针对这些变换处理构成进行说明。 
(非线性变换处理部) 
参照图6对非线性变换处理部的具体例进行说明。如图6所示,具体地,非线性变换处理部50排列有m个被称作S盒(S-box)51的s比特输入s比特输出的非线性变换表,每s比特分割ms比特的输入数据,分别输入到对应的S盒(S-box)51中且数据被变换。在各个S盒51中执行例如应用了变换表的非线性变换处理。 
存在如果输入的数据大小变大则安装上成本变高的倾向。为了回避以上问题,如图6所示,多数情况下应用将处理对象数据X分割为多个单位并分别对每一个实施非线性变换的构成。例如,当输入大小为ms比特时,分割为m个每个s比特的数据,分别对m个的S盒(S-box)51输入s比特,例如执行应用了变换表的非线性变换处理,将m个的各s比特输出合成并得到ms比特的非线性变换结果。 
(线性变换处理部) 
参照图7对线性变换处理部的具体例进行说明。线性变换处理部输入输入值例如将来自S盒的作为输出数据即ms比特的输出值 作为输入值X,对该输入实施线性变换并输出ms比特的结果。线性变换处理执行例如输入比特位置的替换处理等线性变换处理,输出ms比特的输出值Y。线性变换处理例如对输入应用了线性变换矩阵,并进行输入比特位置的替换处理。这样的矩阵的一个例子是图7所示的线性变换矩阵。 
在线性变换处理部中所应用的线性变换矩阵的要素是可以构成为扩大域:GF(28)的域的要素、GF(2)的要素等通常构成为作为应用了各种各样的表现的矩阵。图7示出了具有ms比特输入输出,通过在GF(2s)上定义的m×m的矩阵所定义的线性变换处理部的一个构成例。 
[2、密钥调度部的循环密钥生成处理构成] 
如上所述,公共密钥块加密构成为进行基于循环函数的反复的加密处理。作为该公共密钥块加密处理的问题点,会出现由于加密解析而引起密钥的泄漏。所谓易于由加密解析而引起密钥的泄漏也就是说加密处理的安全性低,在实用上成为较大的问题。 
如上所述,在公共密钥块加密中,进行在各个循环中应用了基于扩大密钥所生成的循环密钥的处理。在加密攻击中,存在以基于循环密钥的解析而恢复扩大密钥并进一步地解析作为扩大密钥的原数据的私有密钥的顺序进行攻击的情况。下面,对提高了这样的密钥解析的困难性并提高了安全性的加密处理装置的构成例进行说明。 
下面,根据以下的各个项目进行说明。 
(2-1)关于密钥调度部的详细构成 
(2-2)关于应用了移位处理的通常的循环密钥生成处理构成 
(2-3)关于本发明的第一实施例所涉及的循环密钥的生成处理构成 
(2-4)关于本发明的第二实施例所涉及的循环密钥的生成处理构成 
(2-5)关于本发明的第三实施例所涉及的循环密钥的生成处理构成 
(2-1)关于密钥调度部的详细构成 
首先,例如参考图2所说明的那样,在公共密钥块加密中,密钥调度部将输入密钥K的比特长扩大并输出扩大密钥K’(比特长k’),执行应用了基于扩大密钥所生成的循环密钥RKi的循环函数。 
密钥调度部例如将数百比特的密钥数据扩大为数千比特左右的扩大密钥数据,并供给至执行循环函数的数据加密化部。将扩大密钥数据中的被输入到数据加密化部的循环函数的扩大密钥的一部分称作循环密钥。并且,还存在对循环函数以外插入循环加密的情况。例如,将插入(EXOR)到最初的循环函数之前的密钥称作初始密钥,将插入(EXOR)到最后的循环函数之后的密钥称作最终密钥。 
参考图8以及图9对加密化处理和解码处理中的私有密钥K和循环密钥的对应进行说明。在图8和图9中分别示出了执行将r段作为循环数的块加密的加密化构成以及解码构成。 
例如,图8是进行将r段作为循环数的块加密的加密化构成,加密密钥[K]111被输入到加密化密钥调度部112,通过按照比特扩 展处理等规定的算法的数据变换来生成包括多个循环密钥的加密化扩大密钥113。数据加密化部114构成为执行将r段作为循环数的块加密,在加密化的情况下,向第一段至第r段的循环函数中分别按顺序输入循环密钥{RK1,RK2,...,RKr-1,RKr},并执行循环函数(F函数)。 
在图9中示出了解码处理构成。私有密钥[K]121被输入到解码密钥调度部122,通过根据比特扩展处理等规定的算法的数据变换来生成含有多个循环密钥的解码扩大密钥123。另外,私有密钥[K]121可以应用与在加密化处理中所应用的图8所示的私有密钥[K]111相同的密钥。 
数据解码部124构成为执行将r段作为循环数的块加密,在解码处理的情况下,以与加密处理相反的顺序依次输入循环密钥{RKr,RKr-1,...,RK2,RK1}并执行循环函数(F函数)。 
为了形成对进行密钥解析的加密攻击的耐性高、即密钥解析困难、提高了安全性的构成,包括以下的性质作为循环密钥所满足的理想的性质: 
(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)关于应用了移位处理的通常的循环密钥生成处理构成 
如上述,在构成执行利用上述循环密钥的公共密钥块加密处理的装置的情况下,在安装成本上,难以以循环密钥之间独立的方式生成循环密钥,实际上,将从使用非线性变换从私有密钥求取的中间密钥数据进行了循环移位所得的数据中截取的数据作为循环密钥加以使用。 
参考图10至图12,对将从使用非线性变换从私有密钥求取的中间密钥数据进行了循环移位所得的数据中截取的数据作为循环密钥使用的情况下的密钥调度部的通常的构成例进行说明。 
图10是示出执行加密化处理中的循环密钥生成处理的密钥调度部的构成例。 
图11是示出执行解码处理中的循环密钥生成处理的密钥调度部的构成例。 
图12是示出执行加密化、解码两者中的循环密钥生成处理的密钥调度部的构成例。 
首先,对图10所示的执行加密化处理中的循环密钥生成处理的密钥调度部的构成以及处理进行说明。设定私有密钥K为k比特。将私有密钥K输入到非线性变换电路201中,进行非线性变换处理,生成n比特的中间密钥数据。将中间密钥数据作为L。 
中间密钥数据L通过选择器202被输入并存储在寄存器RegL203中。选择器202上连接有i比特左循环移位电路211、(r-1)×i比特右循环移位电路212,通过选择器202对寄存器RegL 203输入各个循环移位处理信号,执行存储在寄存器RegL 203中的数据的i比特左循环移位处理或(r-1)×i比特右循环移位处理。另外,i是1以上的整数。 
例如,i比特左循环移位电路211执行存储在寄存器RegL 203中的n比特的中间密钥L的i比特循环左移位,如下所述,从存储在寄存器RegL 203中的中间密钥L得到n比特的r个循环密钥数据{RK1,RK2,...RKr-1,RKr}。 
RK1=L 
RK2=L<<<i 
RK3=L<<<(2×i) 
RKr-1=L<<<((r-2)×i) 
RKr=L<<<((r-1)×i) 
另外,在上式中,[<<<i]表示i比特循环左移位, 
RK1=L表示移位量为0的数据,与中间密钥L相等, 
RK2=L<<<i表示对中间密钥L向左进行了i比特的循环移位的数据, 
RK3=L<<<(2×i)表示对中间密钥L向左进行了2×i比特的移位的数据; 
参照图10对应用了该方式的安装构成以及处理进行说明。首先,在中间密钥生成处理中,将k比特的私有密钥K输入到非线性变换电路201中,生成n比特的中间密钥数据L,通过选择器202不经过移位处理而直接存储在循环中间密钥用寄存器RegL 203中。 
在加密化的情况下,将i比特左循环移位电路211的处理信号通过选择器202选择输入到循环中间密钥用寄存器RegL 203中,反复执行相对于存储在循环中间密钥用寄存器RegL 203中的n比特的中间密钥数据L的i比特循环左移位,可以依次生成循环密钥数据{RK1,RK2,...,RKr-1,RKr}。 
根据该处理,如果生成并输出所有的循环的循环密钥{RK1,RK2,...,RKr-1,RKr},则最后对存储在循环中间密钥用寄存器RegL 203中的数据进行(r-1)×i比特循环右移位。通过将(r-1)×i比特右循环移位电路212的处理信号通过选择器202选择输入到循环中间密钥用寄存器RegL 203中来执行该处理。根据该右移位处理,可以将存储在循环中间密钥用寄存器RegL 203中的数据返还成作为无移位的初始状态的中间密钥数据L。 
将中间密钥表示为L、循环数表示为r、各个循环的循环密钥表示为RKn、各个循环移行时的移位量表示为i,以如下的方式表示该加密化处理的循环密钥生成处理。 
For n=1 to r-1 do 
       RKn←RegL 
       Reg L ←RegL<<<i 
RKr←RegL 
Reg L←RegL>>>((r-1)×i) 
在上述的描述中, 
<<<i表示i比特左循环移位, 
>>>i表示i比特右循环移位。 
图11是执行解码处理中的循环密钥生成处理的密钥调度部的构成例。在执行图11所示的解码处理中的循环密钥生成处理的密 钥调度部中,非线性变换电路201、选择器202、寄存器RegL 203与图10所示的构成相同,只是移位电路221、222不同。 
也就是说,解码处理的移位电路221、222是执行与加密处理的移位电路211、212反向移位的电路,即由 
i比特右循环移位电路221以及 
(r-1)×i比特左循环移位电路222构成。 
在该解码处理的密钥调度部中,首先,通过(r-1)×i比特左循环移位电路222的处理,对存储在寄存器RegL 203中的中间密钥数据进行(r-1)×i比特循环左移位。然后,通过i比特右循环移位电路221的处理,在每次生成各个循环的循环密钥时对存储在寄存器RegL 203中的数据进行适当的i比特右循环移位。通过这样的处理次序,以与加密处理时相反的顺序生成循环密钥数据。也就是说,可以依次得到{RKr、RKr-1、...,RK2、RK1}。 
将中间密钥表示为L、循环数表示为r、各个循环的循环密钥表示为RKn、各个循环移行时的移位量表示为i,以如下的方式表示该解码处理的循环密钥生成处理。 
RegL←RegL<<<((r-1)×i) 
For n=r to 2 do 
       RKn←RegL 
       RegL←RegL>>>i 
RK1←RegL 
在上述的描述中, 
<<<i表示i比特左循环移位, 
>>>i表示i比特右循环移位。 
图10和图11分别为执行加密化处理时的循环密钥生成处理、解码处理时的循环密钥生成处理的构成,还可以构建成兼具这些功能的构成。该构成如图12所示,在图12所示的构成中,包括循环移位电路231至234,分别是i比特左循环移位电路231、i比特右循环移位电路232、(r-1)×i比特右循环移位电路233、(r-1)×i比特左循环移位电路234,是包括图10、图11中所构成的全部的循环移位电路的构成,具有可选择性地执行i比特左循环移位、i比特右循环移位、(r-1)×i比特右循环移位、(r-1)×i比特左循环移位的构成。通过应用这样的构成,在加密化以及解码处理的任何一种情况下都能够生成并输出循环密钥。 
对基于这样的巡回移位处理的循环密钥生成处理构成进行考察。尤其对构成循环密钥数据的比特间的相对位置的变化状况进行考察。i比特左巡回移位是从作为操作对象的比特列的左侧截取i比特并使其向右侧移动并连接的操作。如果着眼于指定的比特数据,则即使执行任意次巡回移位,存在于某比特的两侧的比特也不变化。 
虽然在某比特移动到比特列的左端或者右端的情况下不存在相邻的比特,但是如果再次执行移位处理,则又成为与以前同样的比特排列。也就是说,除了被设定在比特列的端部的情况以外,位于某指定的比特的前后的比特通常是不变的。这样,比特的两侧的比特一成不变的这样的性质、即比特排列的不变性是用于提高具有 循环函数的加密处理构成中的密钥泄露的困难性的要求、即对“循环密钥相互独立”这样的条件带来了脆弱性,所以并不优选。 
而且,比特排列的不变性对于由于上述Slide attack(滑动攻击)引起的密钥解析也具有的脆弱性。例如,当(A)基于私有密钥K生成的中间密钥数据L、和(B)对基于另外的私有密钥K’而生成的中间密钥数据L’进行了(s×i)比特左循环移位后的扩大密钥数据L’<<<(s×i)这些成为相同的值的情况下,其后通过比特移位而生成的各个循环的循环密钥、即(a)通过中间密钥数据L而生成的r-s段的循环密钥{RK1,RK2,...,RK(r-s)-1,RK(r-s)}和(b)通过扩大密钥数据L’<<<(s×i)而生成的r-s段的循环密钥{RKs+1,RK2s+2,...,RK2r-1,RK2r}的各个循环密钥(a)、(b)也成为相同的数据。 
根据此性质,由上述Slide attack(滑动攻击)引起的加密解析变容易,导致对攻击的耐性不充分。 
如上所述,作为执行公共密钥块加密的算法的代表性的构造,存在Feistel构造。Feistel构造具有通过作为数据变换函数的循环函数(F函数)的单纯的反复而将明码文本变换成加密文本的构造。在循环函数(F函数)中执行线性变换处理以及非线性变换处理。在Feistel构造中,相对于作为加密化处理数据的输入比特数n,在各个循环中所应用的循环密钥的大小成为n/2比特。 
在这种情况下,通常的构成是将中间密钥数据L作为n比特生成,将n比特的数据中的上位一半的n/2比特用于奇数循环,将剩余的下位的n/2比特作为下一个循环的密钥使用。在这种情况下,需要追加安装用于相对于每个循环选择上位和下位的电路。也就是说,利用了n/2比特的循环密钥的加密处理装置构成(加密化/解码化共有的安装例)成为了例如图13所示的构成。 
图13所示的构成作为与在先说明的图12所示的构成相同的构成,其包括:非线性变换电路201、选择器202、寄存器RegL 203、i比特左循环移位电路231、i比特右循环移位电路232、(r-1)×i比特右循环移位电路233、(r-1)×i比特左循环移位电路234、以及选择器241。 
构成为:在寄存器RegL 203中存储与之前参考图12说明相同的中间密钥数据L(n比特),在选择器241中,将存储在寄存器RegL 203中的n比特数据之中的上位一半的n/2比特作为应用于奇数循环的循环密钥而输出,将剩余的下位的n/2比特作为下一个循环的循环密钥而输出。这样地,需要追加安装用于相对于每一循环选择上位和下位的选择器241。 
如上述那样,在对中间密钥数据进行移位处理并生成循环密钥的循环密钥生成法中,具有以下缺点: 
*由于相邻比特的变化少而引起循环密钥间的独立性小; 
*相对于Slide attack(滑动攻击)没有充分的耐性;以及 
*在利用到Feistel构造中的情况下,需要追加上位、下位比特列选择电路。 
(2-3)关于本发明的第一实施例所涉及的循环密钥的生成处理构成 
下面,对解决了由于上述循环移位处理而引起的循环密钥的生成处理中的问题点,相对于各种各样的加密攻击具有高的耐性、即执行安全性高的加密处理的循环密钥的生成处理构成进行说明。 
下面说明的实施例是如下这样的处理例:对基于私有密钥K的作为非线性变换处理的结果而得到的中间密钥数据L不执行循环移位处理,而是执行作为中间密钥数据L的比特位置变更处理的双交换(Double Swap)处理,从而生成循环密钥。伴随着各个循环的进行,反复执行作为比特位置变更处理的双交换(Double Swap)处理。 
参考图14,作为本发明的加密处理装置的实施例,对应用双交换(Double Swap)处理并执行循环密钥生成处理的密钥调度部的构成以及处理进行说明。 
图14所示的构成为:将之前参考图10说明的根据比特循环移位处理生成循环密钥的密钥调度部的构成中的i比特左循环移位电路211替换成了i比特双交换(Double Swap)运算电路311,并且,将图10所示的(r-1)×i比特右循环移位电路212替换成了(r-1)次i比特双交换(Double Swap)逆运算电路312。也就是说,如图14所示,包括由i比特双交换(Double Swap)运算电路311和(r-1)次i比特双交换(Double Swap)逆运算电路312构成的数据变换部310。其它的构成与参考图10所说明的构成持有相同的构成。 
对图14所示的密钥调度部的处理进行说明。将输入到密钥调度部中的私有密钥K设定为k比特。将私有密钥K输入到非线性变换电路301中,进行非线性变换处理并生成n比特的中间密钥数据。将中间密钥数据作为L。 
中间密钥数据L通过选择器302被输入并保存在寄存器RegL303中。在选择器302上连接有数据变换部310的各个处理部、即i比特双交换(Double Swap)运算电路311以及(r-1)次i比特双交换(Double Swap)逆运算电路312,通过选择器302对寄存器RegL 303输入各个电路中的处理信号,执行存储在寄存器RegL 303中的数据的比特位置变更处理。i是1以上的整数。 
参考图15,对在i比特双交换(Double Swap)运算电路311中所执行的比特位置变更处理例进行说明。图15以128比特的中间密钥数据L的i比特双交换(Double Swap)处理为例进行了示例。 
将构成中间密钥数据L的128比特的数据A设定为 
A=(a0,a1,...,a126,a127)。 
an是128比特的各个比特数据。 
此外, 
a[x→y]:数据A中的连续比特数据从ax到ay的比特列、 
b|c:连接比特列b、c的比特列。 
如果应用上述的表述,则如下所述地定义对128比特数据的i比特双交换(Double Swap)运算。 
(i比特双交换(Double Swap)定义) 
将根据对128比特数据A进行的i比特双交换运算所得的数据B设定为: 
如果使B=DoubleSwap128,i(A), 
则B=a[i→63]|a[(128-i)→127]|a[0→(i-1)]|a[64→(127-i)]。 
参考图15,对具体的对128比特数据的i比特双交换(DoubleSwap)运算进行说明。在图15中, 
(a)表示输入128比特, 
(b)表示作为运算结果的输出128比特, 
(a)的输入128比特被分区为A0至A3的四个部分。如下所述地表示各个分区的构成比特。 
A0:a[0→(i-1)],即先头i比特, 
A1:a[i→63],即先头i比特的后续比特至数据A的前半终端比特, 
A2:a[64→(127-i)],即数据A的后半开始比特至末尾i比特的先行比特, 
A3:a[(128-i)→127],即末尾i比特。 
在i比特双交换(Double Swap)运算电路311中执行将被划分成四部分的数据A的构成比特互换成图15(b)的输出数据的处理。 
即,执行将输入比特的排列:A0|A1|A2|A3设定为输出比特的排列A1|A3|A0|A2的比特数据的位置变更处理。 
作为结果,当通过将对128比特数据A进行i比特双交换运算而获得的数据B设定为B=DoubleSwap128,i(A)时, 
输出B变为B=a[i→63]|a[(128-i)→127]|a[0→(i-1)]|a[64→(127-i)]。 
用于执行该双交换处理的处理信号从图14所示的i比特双交换(Double Swap)运算电路311通过图14所示的选择器302被输入到寄存器RegL 303,执行存储在寄存器RegL 303中的数据的比特位置变更,生成下一个循环的循环密钥。此外,在下一个循环中,对图15所示的(b)输出再次通过图14所示的i比特双交换(DoubleSwap)运算电路311执行比特位置变换处理、即执行在图15中所说明的i比特双交换处理,生成对应于下一个循环的循环密钥。 
参考图15所说明的双交换运算可列举以下两个优点: 
*虽然比特的相对位置变化大,但与循环移位相比电路规模不增加; 
*如果用于Fesitel构造,则具有安装成本的缩减效果 
另外,将在后段中对这些优点进行说明。 
另外,在将i比特双交换(Double Swap)运算电路311作为硬件构成的情况下,可通过图16所示的对输入比特321的构成比特的各个输出比特位置进行变更的比特位置变换电路322来实现。比特位置变换电路322构成作为将各个比特位置的比特数据变更为之前参考图16所说明的位置的、具有输入输出部的电路,比特位置变换电路322生成并输出输出比特323。i比特双交换(Double Swap)运算电路311不仅可以构成为硬件,还可以构成为通过作为软件的程序来执行。 
此外,图14所示的密钥调度部的(r-1)次i比特双交换(DoubleSwap)逆运算电路312通过i比特双交换(Double Swap)运算电路311中执行的比特位置变更处理应用于所有的循环运算的循环密钥的生成结束之后,执行返还成最初的中间密钥数据L的处理。 
例如,在循环数r的加密处理中,由于最初的中间密钥数据L被利用作为最初的循环密钥,所以通过r-1次的i比特双交换(DoubleSwap)处理结束应用于所有的r循环的循环密钥的生成。(r-1)次i比特双交换(Double Swap)逆运算电路312对通过该r-1次的i比特双交换(Double Swap)处理所生成的应用于最终循环的循环密钥的数据执行比特位置变更处理,并执行返还成最初的中间密钥数据L的处理。 
双交换逆运算如下地被定义。 
(i比特双交换(Double Swap)逆运算定义) 
当将通过对128比特数据A进行i比特双交换逆运算而获得的数据B设定为B=DoubleSwap-1 128,i(A)时, 
变为B=a[64→63+i]|a[0→(63-i)]|[(64+i)→127]|a[(64-i)→63]。 
上述定义相当于将图15中所示的(b)输出返还成(a)输入的i比特双交换(Double Swap)逆运算。在(r-1)次i比特双交换(Double Swap)逆运算电路312中执行相当于(r-1)次的i比特双交换(Double Swap)逆运算。但是,在实际上没有必要执行反复逆运算,在将(r-1)次i比特双交换(Double Swap)逆运算电路312作为硬件构成的情况下,可通过对例如图17所示的输入比特331的构成比特的各个输出比特位置进行变更的比特位置变换电路332来实现。 
比特位置变换电路332执行如下处理:对作为应用于最终循环的循环密钥而存储在寄存器RegL 303中的数据、即作为(r-1)次i比特双交换(Double Swap)的处理后的数据的输入比特331执行 比特位置变更处理,返还成没有进行比特位置变更的最初的中间密钥数据L的比特排列并生成输出比特331。另外,该(r-1)次i比特双交换(Double Swap)逆运算电路312也与i比特双交换(DoubleSwap)运算电路311同样,不仅可以构成为硬件,还可以构成为通过作为软件的程序来执行。 
另外,在上述的实施例中,使循环密钥为128比特数据,并说明了对128比特的数据进行双交换运算以及逆运算的处理,但是双交换运算以及逆运算还可应用于128比特以外的比特数。也就是说,广义化地,可以如下地定义对2m比特(m是2以上的整数)的数据的双交换运算。 
(i比特双交换(Double Swap)定义) 
当将通过对2m比特数据A(m是2以上的整数)进行i比特双交换运算而获得的数据B设定为B=DoubleSwap2m,i(A)时, 
可以表现作为B=a[i→(m-1)]|a[(2m-i)→(2m-1)]|a[0→(i-1)]|a[m→(2m-1-i)]。 
具体地,如之前参照图15所说明的那样,如果将2m比特表示为比特0至比特(2m-1),则 
A0:a[0→(i-1)],即先头i比特, 
A1:a[i→(m-1)],即先头i比特的后续比特至数据A的前半终端比特, 
A2:a[m→(2m-1-i)],即数据A的后半开始比特至末尾i比特的先行比特, 
A3:a[(2m-i)→(2m-1)],即末尾i比特, 
对这些四分割数据执行使输入比特的排列:A0|A1|A2|A3成为输出比特的排列A1|A3|A0|A2的比特数据的位置变更处理。 
可同样如下地定义逆变换。 
如下地定义(r-1)次i比特双交换(Double Swap)逆运算电路312所执行的双交换逆运算。 
(i比特双交换(Double Swap)逆运算定义) 
当将通过对2m比特数据A(m是2以上的整数)进行i比特双交换逆运算而获得的数据B设定为B=DoubleSwap-1 2m,i(A)时, 
变为B=a[m→(m-1)+i]|a[0→(m-1)-i]|[(m+i)→(2m-i)|a[(m-i)→(m-1)]。 
这样地,图14所示的生成循环密钥的密钥调度部的构成将之前参考图10说明的根据比特循环移位处理生成循环密钥的密钥调度部的构成中的i比特左循环移位电路211替换成了i比特双交换(Double Swap)运算电路311,并且,是将图10所示的(r-1)×i比特右循环移位电路212替换成了(r-1)次i比特双交换(DoubleSwap)逆运算电路312的构成,如下生成应用于加密化的各个循环密钥。 
将输入到密钥调度部的k比特的私有密钥K输入到非线性变换电路301,执行非线性变换处理并生成n比特的中间密钥数据L,通过选择器302将中间密钥数据L存储在寄存器RegL 303中。该最初的寄存器RegL 303存储数据作为最初的循环的循环密钥而被输出。此外,对该数据执行基于i比特双交换(Double Swap)运算 电路311的比特位置变更处理、即执行之前参考图15说明的作为比特位置变更处理的i比特双交换(Double Swap)运算,其结果是,存储在寄存器RegL 303中的该寄存器存储数据被作为下一个循环的循环密钥而输出。 
此外,通过i比特双交换(Double Swap)运算电路311反复对该寄存器存储数据执行双交换(Double Swap)运算。这样地,生成应用于各个循环函数的循环密钥RK1、RK2、...RKr-1、RKr。最后通过第(r-1)次i比特双交换(Double Swap)逆运算电路312,对存储在寄存器RegL 303中的数据执行与相当于双交换逆运算的r-1次的运算相对应的比特位置变更处理,并将执行结果存储在寄存器RegL 303中。该数据成为与最初输入到寄存器RegL 303中的中间密钥L持有相同的比特排列的数据。 
在使循环数为r的加密处理中,可如下地表达密钥调度部所执行的处理算法。 
For i=1 to r-1 do 
     RKi←RegL 
     RegL←DoubleSwapn,i(RegL) 
RKr←RegL 
RegL←DoubleSwap-1 n,i(...(DoubleSwap-1 n,i(DoubleSwap-1 n,i(RegL)))) 
在上述的算法中, 
For i=1 to r-1 do 
     RKi←RegL 
     RegL←DoubleSwapn,i(RegL) 
RKr←(RegL)L 
这些相当于基于i比特双交换(Double Swap)运算电路311的i比特双交换处理反复执行的循环密钥的生成过程,最后的处理,即 
RegL←DoubleSwap-1 n,i(...(DoubleSwap-1 n,i(DoubleSwap-1 n,i(Reg L)))) 
该处理相当于如下的处理:通过相当于(r-1)次i比特双交换(Double Swap)逆运算电路312中的双交换逆运算的r-1次的运算而生成原中间密钥L。 
如之前参考图17所说明的那样,最后的r-1次的双交换逆变换可作为一个函数作为比特位置的互换运算而被安装,可通过与集中进行r-1次巡回移位运算的运算同程度的电路规模来实现。其结果是,与利用了巡回移位运算的时候相比较,实现了没有增加电路规模、有效地变更比特位置、降低了各个循环密钥的关联性、安全性高的加密处理构成。 
图18示出了在执行解码处理的情况下执行循环密钥生成处理的密钥调度部的构成例。在图18所示的执行解码处理中的循环密钥生成处理的密钥调度部中,非线性变换电路301、选择器302、寄存器RegL 303与图14所示的构成相同,包括数据变换部320,该数据变换部320设定有i比特双交换(Double Swap)逆运算电路321以代替图14所示的i比特双交换(Double Swap)运算电路311 且设定有(r-1)次i比特双交换(Double Swap)运算电路322以代替图14所示的第(r-1)次i比特双交换(Double Swap)逆运算电路312。其它的构成与参考图14所说明的构成具有相同的构成。 
对图18所示的密钥调度部的处理进行说明。使输入到密钥调度部的私有密钥K为k比特。将私有密钥K输入到非线性变换电路301,执行非线性变换处理并生成n比特的中间密钥数据。使中间密钥数据为L。 
中间密钥数据L通过选择器302而被输入并存储在寄存器RegL 303中。选择器302连接i比特双交换(Double Swap)逆运算电路321以及(r-1)次i比特双交换(Double Swap)运算电路322,通过选择器302对寄存器RegL 303输入各个电路的处理信号,执行存储在寄存器RegL 303中的数据的比特位置变更处理。此外,i为1以上的整数。 
在解码处理中,与加密处理相反的顺序生成并输出用于加密处理的r循环的r个的循环密钥。因此,在解码处理的密钥调度部中,首先,存储在寄存器Reg L 303中的中间密钥L被输入到(r-1)次i比特双交换(Double Swap)运算电路322,对存储在寄存器RegL303中的数据执行相当于双交换运算的r-1次的运算。通过该处理,生成了应用于加密处理时的最终循环的循环密钥。 
将该循环密钥作为解码处理的最初的循环密钥输出。此外,该循环密钥数据被输入到i比特双交换(Double Swap)逆运算电路321。 
在i比特双交换(Double Swap)逆运算电路321中,首先执行与参考图15所说明的处理相反的处理。即执行将图15(b)所示的输出作为输入值、将图15(a)所示的输入作为输出值的比特位置 变更处理。该处理结果被存储在寄存器RegL 303中,并被用作下一个循环的循环密钥。此外,在下一个循环中,对寄存器RegL 303的存储值执行基于i比特双交换(Double Swap)逆运算电路321的i比特双交换(Double Swap)逆运算处理,执行比特位置的变更,生成对应于下一个循环的循环密钥。 
如上所述,通过i比特双交换(Double Swap)逆运算电路321对每一循环中存储在寄存器RegL 303中的数据进行双交换逆运算,可以以之前参照图9所说明的方式依次生成并输出应用于各个循环函数的循环密钥:RKr、RKr-1、...RK2、RK1。 
另外,与之前参照图16、图17所说明的同样,在解码处理中所利用的i比特双交换(Double Swap)逆运算电路321以及(r-1)次i比特双交换(Double Swap)运算电路322可通过具有比特位置变换电路的硬件构成,还可以构成为通过作为软件的程序来执行。 
在使循环数为r的解码处理中,可如下地表示密钥调度部所执行的处理算法。 
Reg L←DoubleSwapn,i(...(DoubleSwapn,i(DoubleSwapn,i(RegL)))) 
For i=r to 2 do 
       RKi←RegL 
       RegL←DoubleSwap-1 n,i(RegL) 
RK1←RegL 
上述算法中的最初的处理,即 
RegL←DoubleSwapn,i(...(DoubleSwapn,i(DoubleSwapn,i(RegL)))) 
该处理相当于这样的处理:通过相当于(r-1)次i比特双交换(Double Swap)运算电路322的双交换运算的r-1次的运算,根据原始的中间密钥L生成加密处理的最终循环的循环密钥、即解码处理中的最初的循环密钥。 
其后的步骤,即 
For i=r to 2 do 
       RKi←RegL 
       RegL←DoubleSwap-1 n,i(RegL) 
RK1←RegL 
该处理相当于解码处理中的第二循环以后的循环密钥生成处理,并且是基于i比特双交换(Double Swap)逆运算电路321中的双交换逆运算的执行的循环密钥的生成处理。 
另外,图14、图18分别是执行加密化处理时的循环密钥生成处理、解码处理时的循环密钥生成处理的构成,还可构建兼具这些功能的构成。该构成示于图19。在图19所示的构成中,非线性变换电路301、选择器302、寄存器RegL 303与图14、图18所示的构成相同,还具有全部包括如图14以及图18所示的双交换(DoubleSwap)运算以及逆运算电路的数据变换部330。即构成为具有数据变换部330,该数据变换部330包括如下这些比特位置变换处理电路:i比特双交换(Double Swap)运算电路331、i比特双交换(DoubleSwap)逆运算电路332、(r-1)次i比特双交换(Double Swap)运 算电路333以及(r-1)次i比特双交换(Double Swap)逆运算电路334的。 
通过该构成,如果加密化处理以及解码处理都生成中间密钥数据L并存储在寄存器RegL 303中,则可以执行双交换运算、双交换逆运算、相当于r-1次的双交换运算的运算、以及相当于r-1次的双交换逆运算的运算,可以生成加密化时/解码时所利用的循环密钥。 
如以上说明的那样,构成为在本发明的加密处理装置的循环密钥生成处理中,不是通过基于移位处理的循环密钥生成处理,而是通过i比特双交换(Double Swap)运算处理或者逆运算处理来生成循环密钥。通过这样的处理,与利用巡回移位运算的时候进行比较,实现了有效地变更比特位置、降低了各个循环密钥的关联性、安全性高的加密处理构成,且不会增加电路规模。在以后使循环数r为偶数。 
在基于双交换(Double Swap)变换或逆变换的比特位置变更中,其与移位处理不同,其通过多样地替换邻接的比特的顺序,其结果是,可以降低各个循环密钥的相似性和关联性。将参照图20对基于该双交换(Double Swap)变换或逆变换的比特位置的有效的替换处理进行说明。 
图20是说明基于对128比特数据进行双交换变换处理而产生的比特位置的变化的图,并示出了以下四个数据: 
(a)初始的中间密钥数据; 
(b)执行一次双交换变换处理后的数据; 
(c)执行二次双交换变换处理后的数据; 
(d)执行三次双交换变换处理后的数据。 
考虑如下的情况:在(a)初始的中间密钥数据中,着眼于从先头开始第i+1比特[B]和左紧邻于该比特的比特[b1],并执行i比特双交换变换。 
(a)在初始的中间密钥数据中,从左开始第i比特[b1]存在于[B]的紧邻左侧。在此,如果应用一次双交换变换,则设定成为(b)执行一次双交换变换处理后的数据。 
在(b)的数据中,[B]移动到数据的左端。这时在[B]的左侧不存在比特。如果进一步应用一次双交换变换,则设定成为(c)执行二次双交换变换处理后的数据。 
在(c)的数据中,[B]移动到从数据左端开始第65比特位置。在该状态下,位于[B]的左侧的比特[b2]是在(b)的数据中存在于右端的比特数据[b2]。如果进一步应用一次双交换变换,则设定成为(d)执行三次双交换变换处理后的数据。 
在(d)的数据中,[B]移动到从数据左端开始第65+i比特位置。在该状态下,位于[B]的左侧的比特[b3]是在(c)的数据中存在于从左端开始第i比特的比特数据[b3]。 
这样,如果着眼于一个比特位置的比特[B]并通过双交换变换处理来分析相邻比特(在左侧相邻的比特)的变化,则能够理解比特[B]的相邻比特信息变化为[b1]→[无]→[b2]→[b3]。该相邻比特的变化发生在构成数据的多个比特位置上。 
这样的相邻比特的变化基本不会在移位处理中发生。因此,虽然出现循环密钥的关联性,但是通过进行基于根据本发明的双交换处理的比特位置变更,从而替换比特的顺序,其结果提高了循环密钥的随机性。 
这样地,在本发明的加密处理装置中的循环密钥生成处理中,应用不是通过移位处理的循环密钥生成处理而是通过i比特双交换(Double Swap)运算处理或逆运算处理来生成循环密钥的构成,从而实现了有效地变更比特位置、降低了各个循环密钥的关联性、以及安全性高的加密处理构成,而不会增加电路规模。 
(2-4)关于本发明第二实施例所涉及的循环密钥的生成处理构成 
接着,对在Feistel型加密那样的在加密处理对象数据为n比特时将n/2比特利用作为循环密钥的构成中应用上述的双交换(Double Swap)运算的实施例进行说明。 
在上述的实施例中,对将加密处理对象数据用为n比特、将循环密钥也用为n比特数据的例子进行了说明。但是,如之前参照图13所说明的那样,例如在Feistel型加密中,循环密钥为n/2比特。如参照图13所说明的那样,在执行移位处理的构成中,构成为将中间密钥数据L的大小生成作为n比特,将上位以及下位的比特用于两个循环,在两个循环中进行一次移位处理。 
但是,如上所述,通过这样的移位处理生成的循环密钥具有各个循环密钥的相关性高、易受攻击的缺点。此外,有必要追加上位、下位选择电路(图13中所示的选择器241),安装成本、面积变大,所以不优选。下面,参照图21对省略了这样的选择器并生成n比 特的中间密钥数据,应用了上述双交换(Double Swap)运算以及逆运算,输出n/2比特的循环密钥的密钥调度部的构成例进行说明。 
在本处理例中,双交换(Double Swap)运算被构成为执行两阶段的处理,即交替执行 
(a)交换(Swap)运算、 
(b)i比特子交换(SubSwap)运算 
这两个处理。即变为 
双交换(Double Swap)运算=交换(Swap)运算+i比特子交换(SubSwap)运算。 
在图21所示的构成中,非线性变换电路401、选择器402、寄存器RegL 403与图19中所示出的构成相同。只是在图21所示的构成中,不具有在图19所示的构成中所利用的双交换运算以及逆运算电路,取而代之的是具有数据变换部410,该数据变换部410包括交换(Swap)运算电路411、i比特子交换(SubSwap)运算电路412、跳跃(Jumpr-1)运算电路413。另外,i是1以上的整数。 
首先,对加密化处理时的n/2比特循环密钥的生成处理进行说明。将输入到密钥调度部的私有密钥K设定为k比特。将私有密钥K输入到非线性变换电路401,执行非线性变换处理,生成n比特的中间密钥数据。将中间密钥数据作为L。 
通过选择器402将中间密钥数据L输入并存储在寄存器RegL403中。选择器402连接有如下这些比特位置变更处理电路:交换(Swap)运算电路411、i比特子交换(SubSwap)运算电路412、 跳跃(Jumpr-1)运算电路413,根据预先设定的算法执行存储在寄存器RegL 403中的数据的比特位置变更处理。 
根据循环对存储在寄存器RegL 403中的数据交替地执行基于交换(Swap)运算电路411的交换运算、和基于i比特子交换(SubSwap)运算电路412的i比特子交换运算,生成适用于各个循环函数的循环密钥RK1、RK2、...,RKr-1、RKr。另外,存储在寄存器RegL 403中的数据为n比特,基于交换(Swap)运算电路411的交换运算和基于i比特子交换(SubSwap)运算电路412的i比特子交换运算是对存储在寄存器RegL 403中的n比特数据执行的,但是作为循环密钥而输出常常仅是存储在寄存器RegL 403中的n比特数据中的n/2比特数据。例如,将存储在寄存器RegL 403中的n比特数据中的上位n/2比特数据输出作为各个循环密钥。 
在结束了所有的循环(r循环)的生成的时刻,执行将最后存储在寄存器RegL 403中的n比特数据返还成最初的初始的中间密钥数据L的处理。执行该处理的是跳跃(Jumpr-1)运算电路413。 
参考图22对交换运算电路411执行的比特位置变更处理例进行说明。图22示出了128比特的中间密钥数据L的交换(Swap)处理例。 
对交换(Swap)运算的定义进行说明。 
将128比特的数据A设定为A=(a0,a1,...,a126,a127)。 
an是128比特的各个比特数据。 
此外,设定a[x→y]:数据A中的连续比特数据从ax到ay的比特列、 
b|c:连接比特列b、c的比特列。 
可如下定义对128比特数据进行的交换(Swap)运算。 
(交换(Swap)运算定义) 
当将通过对128比特数据A进行交换运算而获得的数据B设定为B=Swap128(A)时, 
B=a[64→127]|a[0→63]。 
也就是说,如图22所示,将(a)输入数据的上位一半的数据A0和下位一半的数据A1进行替换并生成(b)输出的处理是基于交换(Swap)运算的比特位置变更处理。另外,交换运算自身成为逆变换。即 
交换运算=交换逆运算。 
此外,虽然在上述的例子中定义了对128比特的数据进行的交换运算,但也可以如下定义对一般的2m比特(m是2以上的整数)的数据进行的交换运算。 
(交换(Swap)运算定义) 
当将通过对2m比特数据A(m是2以上的整数)进行交换运算而获得的数据B设定为B=Swap2m(A)时,可以表达为B=a[m→(2m-1)]|a[0→(m-1)]。 
接着,参照图23,对i比特子交换(SubSwap)运算电路412所执行的比特位置变更处理例进行说明。图23示出了128比特数据的子交换(SubSwap)处理例。 
对i比特子交换运算的定义进行说明。 
如下定义对128比特数据进行的i比特子交换(SubSwap)运算。 
(i比特子交换(SubSwap)运算定义) 
当将通过对128比特数据A进行i比特子交换(SubSwap)运算而获得的数据B设定为B=SubSwap128,i(A)时,则可表达为 
B=a[(64+i)→127]|a[(64-i)→(63+i)]|a[0→(63-i)]。 
也就是说,如图23所示,将(a)输入数据的中央2i比特数据A1固定并将除数据A1的上位比特数据A0和下位比特数据A2替换,生成(b)输出的处理是基于i比特子交换(SubSwap)运算的比特位置变更处理。另外,子交换(SubSwap)运算自己也成为逆变换。 
此外,虽然在上述的例子中定义了对128比特数据进行的子交换运算,但也可以如下定义对一般的2m比特(m是2以上的整数)的数据进行的子交换运算。 
(i比特子交换(SubSwap)运算定义) 
当将通过对2m比特数据A(m是2以上的整数)进行i比特子交换(SubSwap)运算而获得的数据B设定为B=SubSwap2m,i(A)时,则可表达为 
B=a[(m+i)→127]|a[(m-i)→(m-1+i)]|a[0→(m-1-i)]。 
如果每次连续地执行参照图22、图23所说明的交换(Swap)运算和子交换(SubSwap)运算,则首先执行与参照图15所说明的 基于双交换(Double Swap)运算的比特位置变更处理相同的比特位置变更。 
在图21所示的密钥调度部中,交替地执行应用了交换(Swap)运算电路411和i比特子交换(SubSwap)运算电路412这些各个运算电路的比特位置变更处理并生成各个循环密钥。 
对图21所示的密钥调度部的循环密钥的生成次序进行说明。将输入到密钥调度部的k比特的私有密钥K输入到非线性变换电路401,执行非线性变换处理并生成n比特的中间密钥数据L,通过选择器402将中间密钥数据L存储在寄存器RegL 403中。将该最初的寄存器RegL 403存储数据中的n/2比特、例如上位一半的n/2比特作为最初的循环的循环密钥而输出。 
此外,对该寄存器RegL 403存储数据执行基于交换(Swap)运算电路411的比特位置变更处理、即之前参考图22所说明的作为比特位置变更处理的交换(Swap)处理,其结果是,输入到寄存器RegL 403中的该输入数据中的n/2比特、例如上位一半的n/2比特被作为下一个循环密钥而输出。 
此外,对该寄存器RegL 403存储数据执行基于子交换(SubSwap)运算电路412的比特位置变更处理、之前参考图23所说明的作为比特位置变更处理的子交换(SubSwap)处理,其结果是,输入到寄存器RegL 403中的该输入数据中的n/2比特、例如上位一半的n/2比特被作为下一个循环密钥而输出。 
下面,交替地执行应用了交换(Swap)运算电路411和i比特子交换(SubSwap)运算电路412这些各个运算电路的比特位置变更处理并生成各个循环密钥。这样地,可以生成应用于各个循环函数的循环密钥RK1、RK2、...,RKr-1、RKr。最后,对存储在寄存器 RegL 403中的数据执行基于跳跃(Jumpr-1)运算电路413的比特位置变更处理,执行返还成最初存储在寄存器RegL 403中的中间密钥数据L的处理。 
参照图24对基于跳跃(Jumpr-1)运算电路413的比特位置变更处理进行说明。如图24所示,基于跳跃(Jumpr-1)运算电路413的比特位置变更处理相当于作为如下运算的比特位置变更处理:将交替反复基于交换(Swap)运算电路411的r/2次的交换(Swap)运算和基于i比特子交换(SubSwap)运算电路412的(r/2-1)次的i比特子交换(SubSwap)运算所得到的结果返还成初始数据的运算。如上所述,由于交换(Swap)运算和子交换(SubSwap)运算分别自身为逆变换,其结果是,如图24所示,基于跳跃(Jumpr-1)运算电路413的比特位置变更处理相当于再次执行交替反复基于交换(Swap)运算电路411的r/2次的交换(Swap)运算和基于i比特子交换(SubSwap)运算电路412的(r/2-1)次的i比特子交换(SubSwap)运算的处理。 
通过该基于跳跃(Jumpr-1)运算电路413的跳跃运算,可以保证最终存储在寄存器RegL 403中的数据被返还成执行交换运算和子交换运算之前的初始数据即中间密钥数据L的值。 
此外,图21所示的各个运算电路、即交换(Swap)运算电路411、i比特子交换(SubSwap)运算电路412、跳跃(Jumpr-1)运算电路413可通过与之前参考图16、图17说明的电路相同的比特位置变换电路进行安装。因此,例如跳跃(Jumpr-1)运算电路413可以通过与集中执行r-1次的巡回移位运算的运算同程度的电路规模来实现。另外,这些比特位置变更处理可以作为与参照图16、图17所说明的同样的硬件构成来实现,也可以构成为通过软件来执行。 
对图21所示的密钥调度部的加密处理执行时的循环密钥生成算法进行说明。也就是说,如下表示应用了交换(Swap)运算电路411、i比特子交换(SubSwap)运算电路412、跳跃(Jumpr-1)运算电路413这些运算(Swap)电路的比特位置变更处理的n/2比特的循环密钥生成算法。另外,使循环数为偶数循环,表示为r=r。 
For i=1 to r-1 do 
       RKi←RegL的上位n/2比特 
       IF i==odd 
              Swapn(RegL) 
       IF i==even 
              SubSwapn,i(RegL) 
      RKr←RegL的上位n/2比特 
      RegL←Jumpr-1(RegL) 
并且,应用图21所示的密钥调度部并执行解码处理时的循环密钥生成算法如下所示: 
RegL←Jumpr-1(RegL) 
For i=r to 2 do 
       RKi←RegL的上位n/2比特 
        IF i==even 
          Swapn(RegL) 
   IF i==odd 
          SubSwapn,i(RegL) 
RK1←RegL的上位n/2比特。 
在解码处理中,最初执行基于跳跃(Jumpr-1)运算电路413的跳跃运算。根据该处理,含有在加密处理时的最终循环中所应用的循环密钥数据的数据被设定在寄存器RegL 403中。之后,与加密处理时同样,交替地执行交换(Swap)运算电路411和i比特子交换(SubSwap)运算电路412这些运算电路的比特位置变更处理,执行各个循环的循环密钥生成。 
如上所述,根据图21所示的构成,对在加密化/解码的同时生成中间密钥数据L并存储在寄存器RegL 403中的数据进行基于交换(Swap)运算电路411、i比特子交换(SubSwap)运算电路412、跳跃(Jumpr-1)运算电路413这些各个运算电路的比特位置变更处理,从而可以生成循环密钥。通过该安装,可以省略在循环移位电路中必需的选择电路(图13所示的选择器241),并且可以将在循环移位电路中需要四种的运算电路的种类减小到三种,可以降低安装成本和减少安装面积。 
(2-5)关于本发明第三实施例所涉及的循环密钥的生成处理构成 
接着,参考图25对本发明第三实施例所涉及的循环密钥的生成处理构成进行说明。以下说明的实施例构成为对通过之前说明的构成所生成的循环密钥数据,对每一循环不同的常数Cj进行按位加 (EXOR),将该结果作为循环密钥。通过这样的构成,可以带来以下的效果: 
*即使在中间密钥全为0或全为1的情况下,循环密钥也不会相同。 
*对滑动攻击(Slide attack)具有充分的耐性。 
在图25中示出了本实施例的密钥调度部的构成例。图25中所示的密钥调度部的构成例是在之前参照图21说明的密钥调度部的构成上追加了常数生成电路420和按位加运算部430的构成。在此,虽然说明以图25所示的密钥调度部的构成为基础的例子,但还可以实现在具有之前参考图14、图15和图21所说明的双交换运算和逆运算电路的构成上追加常数生成电路420和按位加运算部430的构成,可发挥与上述相同的效果。在此,作为代表例,对在参考图19所说明的密钥调度部的构成上追加了常数生成电路420和按位加运算部430的构成例进行说明。 
图25所示的构成为追加了相对各个循环(j)生成不同的常数Cj(1≤j≤r)的常数生成电路420、和执行在常数生成电路421中所生成的每一循环的常数Cj(1≤j≤r)与寄存器RegL 403的各个循环的每个循环的数据之间的按位加(EXOR)的按位加(EXOR)运算部430的构成。在本实施例中,将基于该按位加(EXOR)运算部430的运算结果作为循环密钥{RK1、RK2、...,RKr-1、RKr}输出。 
在该构成中,具有例如即使在寄存器RegL 403的存储数据的全部的比特为0的情况下最终输出的循环密钥{RK1,RK2,...,RKr-1,RKr}也不会成为相同的数据的效果。 
在图25所示的构成中,输出的循环密钥为n/2比特,在按位加(EXOR)运算部430中,例如,执行寄存器RegL 403的n比特存储数据的上位n/2比特与相对于常数生成电路420所生成的每个循环不同的n比特数据之间的按位加(EXOR)运算,将该结果作为循环密钥输出。 
在这种情况下,虽然相对于常数生成电路420所生成的每个循环不同的常数为n比特的数据,但存在如下的问题:根据循环数r生成r次n比特的随机常数的电路在比特数n大的情况下其电路规模变大。为了解决这样的问题,对实现了常数生成电路420的电路规模的小型化的构成进行说明。 
例如,如图26所示,常数生成电路420被构造成将n比特的数据分割成相对各个循环都不同的m比特(m<n)的数据bj,将bj反复使用n/m次,电路规模变小。例如,在n=64时,常数生成电路420生成相对各个循环都不同的n=64比特的常数Cj。 
常数生成电路420例如使m=16,应用相对每个循环(j)都不同的16比特的数据bj执行以下的运算,生成64比特的相对每个循环都不同的常数Cj并输出到按位加(EXOR)运算部430。 
Cj=((bj<<<i)[EXOR](Mask1),(bj<<<j)[EXOR](Mask2),(bj<<<k[EXOR](Mask3),(bj<<<1)[EXOR](Mask4)) 
在上式中, 
bj<<<i是将16比特的数据bj进行了i比特左移位后的数据。 
Mask1是作为预先设定的固定值的掩码值(mask)(16比特)。 
(bj<<<i)[EXOR](Mask1)表示(bj<<<i)和(Mask1)的按位加运算。 
i、j、k、1分别是预先确定的移位量, 
MASK1、MASK2、MASK3、MASK4分别是预先确定的掩码值(16比特)。 
也就是说,上式为这样的式子:对根据不同的移位量i、j、k,1对16比特的数据bj分别进行了移位得到的16比特数据执行分别应用了不同的掩码值Mask1、Mask2、Mask3、Mask4的按位加运算而所得的四个16比特数据排列生成64比特的相对各个循环都不同的常数Cj。 
这样地,通过将常数生成电路420构成为将n比特的数据分割成相对每个循环都不同的m比特(m<n)的数据bj并反复使用n/m次bj,可以减小电路规模。 
并且,例如,在图25所示的密钥调度部构成为生成并输出对应于多个不同加密处理的不同密钥长度的循环密钥的情况下,常数生成电路420也需要生成并输出与输出密钥长度相应的比特长的数据。在这种情况下,通过使常数生成电路420所生成的常数相应于密钥长度而改变,从而例如即使在不同密钥长度中寄存器RegL 403的存储值L为相同值的情况下,也可以将循环密钥设定为不同的值。 
例如,在构成为支持(a)循环数r1的k1比特的密钥长度、(b)循环数r2的k2比特的密钥长度、(c)循环数r3的k3比特的密钥长度这些全部的情况下,常数生成电路420将对应于多个的不同的加密处理的所有循环数:r1+r2+r3个的不同的m比特的数据bj应用于各个循环。通过这样的构成,即使在不同密钥长度中寄存器RegL 403的存储值L为相同值的情况下,也可以将循环密钥设定为不同的值。 
另外,如果将bj作为对应于循环的随机值,则导致记录bj的电路的规模变大。也可以构成为设定数目少于对应于多个不同的加密处理的所有循环数:r1+r2+r3个的m比特的数据bj,在将它们应用于不同的加密处理的情况下,变更应用顺序。 
或者,还可以构成为相对于每个循环使用某种规则对m比特的常数bj从某初始值开始更新。例如,可以应用如下的规则:应用根据在伽罗瓦(Galois)域GF(2)上定义的m次的不可约多项式f(x)而所作成的扩张域GF(2m)上的x倍运算来从初始值生成相对每个循环都不同的值。在不可约多项式f(x)为原始多项式的情况下,由于从某初始值生成的x倍运算的值的周期为2m-1,所以可生成2m-1不同的数据。另外,还可以将上述规则作为扩张域GF(2m)上的x-1倍运算等。 
如图25所示,通过执行寄存器RegL 403的存储数据和常数生成电路420所生成的相对每个循环都不同的数据之间的按位加(EXOR)运算并将结果作为循环密钥输出的构成,可以带来以下的效果。 
*在中间密钥全为0或全为1的情况下,循环密钥也不会相同。 
*排除了各个循环密钥的关联性,对滑动攻击(Slide attack)具有充分的耐性。 
[3.加密处理装置的构成例] 
最后,图27示出了作为执行根据上述实施例的加密处理的加密处理装置的IC组件(module)700的构成例。上述的处理可被例如PC、IC卡、读写器和其它各种各样的信息处理装置所执行,图27所示的IC组件700可构成到这些各种各样的机器中。 
图27所示的CPU(Cenrtal processing Unit,中央处理器)701是执行加密处理的开始、加密处理的结束、数据的收发的控制、各个构成部之间的数据传输控制、以及其它各种程序的处理器。存储器702由用于存储CPU 701所执行的程序、或者运算参数等固定数据的ROM(Read-Only-Memory,只读存储器)、作为CPU701的处理所执行的程序以及在程序处理中适当变化的参数的存储区、工作区而被使用的RAM(Random Access Memory:随机存取存储器)等构成。并且,存储器702可以被作为对加密处理必要的密钥数据、在加密处理中应用的变换表(置换表)、应用于变换矩阵的数据等的储存区域而使用。另外,优选数据存储区域被构成为具有耐震动(damper)构造的存储器。 
加密处理部703执行基于应用了例如上述的各种加密处理构成例如(a)SPN(Substitution Permutation Network,置换组合网络)构造、(b)Feistel构造这些构成的公共密钥块加密处理算法的加密处理、解码处理。 
并且,加密处理部703具有密钥调度部,该密钥调度部包括与如下的上述各个实施例的构成中的任一个处理构成相对应的构成:即(2-3)本发明的第一实施例所涉及的循环密钥的生成处理、(2-3)本发明的第二实施例所涉及的循环密钥的生成处理、(2-3)本发明的第三实施例所涉及的循环密钥的生成处理。 
另外,虽然在此示出了将加密处理单元作为个别组件的例子,但是也可以构成为不设置这样独立的加密处理组件,而是将例如加密处理程序存储在ROM中,CPU 701读出并执行ROM存储程序。 
随机数发生器704执行在加密处理中所需的密钥的生成等中所需的随机数的发生处理。 
接收发送部705是执行与外部的数据通信的数据通信处理部,执行例如与读写器等、IC组件之间的数据通信,执行在IC组件内生成的加密文本的输出或者来自外部的读写器等设备的数据输入等。 
以上,参照指定的实施例对本发明进行了详细说明。但是本领域技术人员应该明白在不脱离本发明的主旨的范围内可以进行该实施例的修正或替代。也就是说,以示例的形式公开了本发明,不应该将其作为限定的解释。应该参考本发明的保护范围来判断本发明的主旨。 
此外,在说明书中所说明的一系列处理可以通过硬件、软件或者两者的复合构成来执行。在执行基于软件的处理的情况下,将记录有处理顺序的程序安装在组装在专用的硬件的计算机内的存储器中来执行,或者可以将程序安装在可执行各种处理的通用的计算机中来执行。 
例如,可以将程序预先记录在作为记录介质的硬盘或ROM(Read Only Memory,只读存储器)中。或者,可以将程序暂时或者永久地存储(记录)在软盘(flexible disc)、CD-ROM(CompactDisc Read Only Memory,光盘只读存储器)、MO(Magneto optical,磁光)盘、DVD(Digital Versatile Disc,数字通用光盘)、磁盘、半 导体存储器等可移动记录介质中。这样的可取下的记录介质可以作为所谓的软件包(package software)被提供。 
另外,程序除了从上述的可取下的记录介质安装到计算机上以外,还可以从下载站点无线传输到计算机,或通过LAN(Local AreaNetwork,局域网)、因特网这样的网络以有线传输到计算机,计算机可以接收这样传输来的程序,并安装在内置的硬件等记录介质中。 
另外,说明书中所记载的各种的处理不仅仅可以按照记载以时间顺序执行,还可以根据执行处理的装置的处理能力或者根据需要并列或者个别地执行。并且,本说明书中,所谓系统是多个装置的逻辑集合构成,并不仅限于各个构成的装置存在于同一个壳体内。 
工业上的利用可能性 
如上所述,根据本发明的一个实施例的构成,在公共密钥块加密处理中的循环密钥生成处理中,根据私有密钥的变换处理而生成的中间密钥被存储在寄存器中,反复执行构成寄存器存储数据的部分数据的交换(替换)处理并生成循环密钥。例如,将寄存器存储数据划分为四个部分数据以便将具有相等比特数的部分数据的组设定为两组,并反复执行各个部分数据的交换(替换)处理,生成多个不同的循环密钥。根据本构成,可有效地替换各个循环密钥的比特排列,生成相关性低的循环密钥,实现了提高了密钥的解析困难性且安全性高的密钥处理构成。 

Claims (18)

1.一种用于执行公共密钥块加密处理的加密处理装置,其特征在于,包括:
加密处理部,用于进行将循环函数反复多次循环的数据变换处理;以及
密钥调度部,用于生成适用于所述循环函数的执行的循环密钥,
所述密钥调度部构成为包括:
寄存器,通过私有密钥的变换处理生成中间密钥,存储生成的中间密钥;以及
数据变换部,作为对存储在所述寄存器中的寄存器存储数据执行数据变换处理的数据变换部,将所述寄存器存储数据划分成四个部分数据,以便将具有相等比特数的部分数据设定为两组,反复执行构成各所述寄存器存储数据的部分数据的交换处理并生成多个不同的循环密钥。
2.根据权利要求1所述的加密处理装置,其特征在于,
所述寄存器存储数据为2m比特,
所述数据变换部将所述四个部分数据划分为下述(a)至(d)所示的四个部分数据,反复执行各个部分数据的交换处理,并生成多个不同的循环密钥,
(a)先头i比特的部分数据A0
(b)从先头开始的第i+1比特至第m比特的部分数据A1
(c)从先头开始的第m+1比特至第2m-i比特的部分数据A2;以及
(d)末尾i比特的部分数据A3
其中,i为大于等于1的整数,m为大于等于2的整数。
3.根据权利要求1所述的加密处理装置,其特征在于,所述数据变换部构成为包括:
双交换处理执行部,用于将所述寄存器存储数据划分为四个部分数据,以便将具有相等比特数的部分数据设定为两组,并执行各组的部分数据的交换处理;以及
双交换逆处理执行部,用于执行相当于所述双交换处理执行部处理的多个反复处理的逆处理的数据变换处理。
4.根据权利要求1所述的加密处理装置,其特征在于,
所述数据变换部包括如下的构成:进行以与加密化处理中的循环密钥生成相反的顺序来生成循环密钥的解码用循环密钥生成处理,
所述数据变换部包括:
解码用循环密钥对应数据变换部,通过对所述寄存器存储数据进行的变换处理来生成以根据预先规定的循环数而确定的次数反复进行双交换处理的结果数据,其中,在所述双交换处理中,将所述寄存器存储数据划分为四个部分数据,以便将具有相等比特数的部分数据设定为两组,并执行各组的部分数据的交换处理;以及
双交换逆处理执行部,对在所述解码用循环密钥对应数据变换部中被变换的数据执行所述双交换处理的逆处理,生成各循环的循环密钥。
5.根据权利要求1所述的加密处理装置,其特征在于,
加密处理部,用于进行将循环函数反复多次循环的数据变换处理;以及
密钥调度部,用于生成适用于所述循环函数的执行的循环密钥,
所述密钥调度部构成为包括:
寄存器,通过私有密钥的变换处理生成中间密钥,存储生成的中间密钥;以及
数据变换部,作为对存储在所述寄存器中的寄存器存储数据执行数据变换处理的数据变换部,反复执行构成所述寄存器存储数据的部分数据的交换处理并生成多个不同的循环密钥,
所述数据变换部构成为包括:
交换处理执行部,用于将由2m比特构成的所述寄存器存储数据划分为下述(a)至(b)所示的两个部分数据,并执行各部分数据的交换处理;以及
子交换处理执行部,用于将由2m比特构成的所述寄存器存储数据划分为下述(c)至(e)所示的三个部分数据,并执行下述(c)与(d)的部分数据的交换处理,
(a)先头m比特的部分数据A0;以及
(b)末尾m比特的部分数据A1
(c)先头(m-i)比特的部分数据A0
(d)从先头开始的第(m-i+1)比特至第(m+i)比特的部分数据A1;以及
(e)从先头开始的第(m+i+1)比特至末尾比特的部分数据A2
所述数据变换部根据循环的进行,交替执行所述交换处理执行部和所述子交换处理执行部的处理,并生成循环密钥,其中,i为大于等于1的整数,m为大于等于2的整数。
6.根据权利要求5所述的加密处理装置,其特征在于,
所述数据变换部还包括:逆变换处理执行部,用于交替执行相当于交替处理的逆处理的数据交换,其中,所述交替处理表示所述交换处理和所述子交换处理的交替处理。
7.根据权利要求1至6中任一项所述的加密处理装置,其特征在于,
所述密钥调度部构成为还包括:
常数生成部,用于生成相对每个循环都不同的常数;以及
按位加运算部,用于执行所述常数生成部所生成的常数和所述寄存器存储数据之间的按位加的运算并生成循环密钥。
8.根据权利要求7所述的加密处理装置,其特征在于,
所述常数生成部构成为通过比特数少于生成的常数的相对每个循环都不同的少比特数数据的移位数据的组合来生成相对每个循环都不同的常数。
9.根据权利要求7所述的加密处理装置,其特征在于,
所述常数生成部构成为通过对比特数少于生成的常数的少比特数数据进行的数据变换,生成相对每个循环都不同的少比特数数据,通过生成的少比特数数据的移位数据的组合来生成相对每个循环都不同的常数。
10.一种在加密处理装置中执行公共密钥块加密处理的加密处理方法,其特征在于,包括:
循环密钥生成步骤,在密钥调度部中生成多个循环密钥,其中,所述多个循环密钥应用于在加密处理部中执行的多个循环的循环函数的执行;以及
加密处理步骤,在加密处理部中进行将适用了所述循环密钥的循环函数反复多个循环的数据变换处理,
所述循环密钥生成步骤包括:
中间密钥生成步骤,通过私有密钥的变换处理来生成中间密钥并存储在寄存器中;以及
数据变换步骤,将所述寄存器存储数据划分成四个部分数据,以便将具有相等比特数的部分数据设定为两组,数据变换部对构成存储在所述寄存器中的寄存器存储数据的各部分数据反复执行交换处理,并生成多个不同的循环密钥。
11.根据权利要求10所述的加密处理方法,其特征在于,
所述寄存器存储数据为2m比特,
在所述数据变换步骤中,将所述四个部分数据划分为下述(a)至(d)所示的四个部分数据,反复执行各个部分数据的交换处理,并生成多个不同的循环密钥,
(a)先头i比特的部分数据A0;
(b)从先头开始的第i+1比特至第m比特的部分数据A1
(c)从先头开始的第m+1比特至第2m-i比特的部分数据A2;以及
(d)末尾i比特的部分数据A3
其中,i为大于等于1的整数,m为大于等于2的整数。
12.根据权利要求10所述的加密处理方法,其特征在于,
所述数据变换步骤包括:
双交换处理执行步骤,将所述寄存器存储数据划分为四个部分数据,以便将具有相等比特数的部分数据设定为两组,并执行各组的部分数据的交换处理;以及
双交换逆处理执行步骤,执行相当于所述双交换执行步骤的处理的多个反复处理的逆处理的数据变换处理。
13.根据权利要求10所述的加密处理方法,其特征在于,
所述数据变换步骤包括如下的步骤:进行以与加密化处理中的循环密钥生成相反的顺序来生成循环密钥的解码用循环密钥生成处理,
并且,所述数据变换步骤包括:
解码用循环密钥对应数据变换步骤,通过对所述寄存器存储数据进行的变换处理来生成以根据预先规定的循环数而确定的次数反复进行双交换处理的结果数据,其中,在所述双交换处理中,将所述寄存器存储数据划分为四个部分数据,以便将具有相等比特数的部分数据设定为两组,并执行各组的部分数据的交换处理;以及
双交换逆处理执行步骤,对在所述解码用循环密钥对应数据变换步骤中被变换的数据执行所述双交换处理的逆处理,生成各循环的循环密钥。
14.根据权利要求10所述的加密处理方法,其特征在于,
循环密钥生成步骤,在密钥调度部中生成多个循环密钥,其中,所述多个循环密钥应用于在加密处理部中执行的多个循环的循环函数的执行;以及
加密处理步骤,在加密处理部中进行将适用了所述循环密钥的循环函数反复多个循环的数据变换处理,
所述循环密钥生成步骤包括:
中间密钥生成步骤,通过私有密钥的变换处理来生成中间密钥并存储在寄存器中;以及
数据变换步骤,所述数据变换部对构成存储在所述寄存器中的寄存器存储数据的部分数据反复执行交换处理,并生成多个不同的循环密钥,
所述数据变换步骤包括:
交换处理执行步骤,将由2m比特构成的所述寄存器存储数据划分为下述(a)至(b)所示的两个部分数据,并执行各部分数据的交换处理;以及
子交换处理执行步骤,用于将由2m比特构成的所述寄存器存储数据划分为下述(c)至(e)所示的三个部分数据,并执行下述(c)与(d)的部分数据的交换处理,
(a)先头m比特的部分数据A0;以及
(b)末尾m比特的部分数据A1
(c)先头(m-i)比特的部分数据A0
(d)从先头开始的第(m-i+1)比特至第(m+i)比特的部分数据A1;以及
(e)从先头开始的第(m+i+1)比特至末尾比特的部分数据A2
在所述数据变换步骤中,根据循环的进行,交替执行所述交换处理执行步骤和所述子交换处理执行步骤的处理,并生成循环密钥,
其中,i为大于等于1的整数,m为大于等于2的整数。
15.根据权利要求14所述的加密处理方法,其特征在于,
所述数据变换步骤还包括:逆变换处理执行步骤,用于交替执行相当于交替处理的逆处理的数据交换,其中,所述交替处理表示所述交换处理和所述子交换处理的交替处理。
16.根据权利要求10至15中任意一项所述的加密处理方法,其特征在于,
所述加密处理方法还包括:
常数生成步骤,由常数生成部生成相对每个循环都不同的常数;以及
按位加运算步骤,由按位加运算部执行所述常数生成部所生成的常数和所述寄存器存储数据之间的按位加的运算并生成循环密钥。
17.根据权利要求16所述的加密处理方法,其特征在于,
在所述常数生成步骤中,通过比特数少于生成的常数的相对每个循环都不同的少比特数数据的移位数据的组合来生成相对每个循环都不同的常数。
18.根据权利要求16所述的加密处理方法,其特征在于,
在所述常数生成步骤中,通过对比特数少于生成的常数的少位数数据进行的数据变换来生成相对每个循环都不同的少比特数数据,通过所生成的少比特数数据的移位数据的组合来生成相对每个循环都不同的常数。
CN2007800456671A 2006-12-11 2007-11-21 加密处理装置、加密处理方法以及计算机程序 Expired - Fee Related CN101553857B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2006333882A JP5055993B2 (ja) 2006-12-11 2006-12-11 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP333882/2006 2006-12-11
PCT/JP2007/072551 WO2008072455A1 (ja) 2006-12-11 2007-11-21 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム

Publications (2)

Publication Number Publication Date
CN101553857A CN101553857A (zh) 2009-10-07
CN101553857B true CN101553857B (zh) 2011-04-20

Family

ID=39511480

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007800456671A Expired - Fee Related CN101553857B (zh) 2006-12-11 2007-11-21 加密处理装置、加密处理方法以及计算机程序

Country Status (7)

Country Link
US (1) US8737603B2 (zh)
EP (1) EP2096616A4 (zh)
JP (1) JP5055993B2 (zh)
KR (1) KR20090094086A (zh)
CN (1) CN101553857B (zh)
HK (1) HK1138098A1 (zh)
WO (1) WO2008072455A1 (zh)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110064214A1 (en) * 2003-09-09 2011-03-17 Ternarylogic Llc Methods and Apparatus in Alternate Finite Field Based Coders and Decoders
US7772999B2 (en) * 2007-12-10 2010-08-10 Peter Lablans N-state ripple adder scheme coding with corresponding n-state ripple adder scheme decoding
US8577026B2 (en) 2010-12-29 2013-11-05 Ternarylogic Llc Methods and apparatus in alternate finite field based coders and decoders
JP4882598B2 (ja) * 2006-07-28 2012-02-22 ソニー株式会社 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
US8417942B2 (en) * 2007-08-31 2013-04-09 Cisco Technology, Inc. System and method for identifying encrypted conference media traffic
US20090169001A1 (en) * 2007-12-28 2009-07-02 Cisco Technology, Inc. System and Method for Encryption and Secure Transmission of Compressed Media
US8837598B2 (en) * 2007-12-28 2014-09-16 Cisco Technology, Inc. System and method for securely transmitting video over a network
US8233620B2 (en) * 2009-02-27 2012-07-31 Inside Secure Key recovery mechanism for cryptographic systems
JP2010245881A (ja) * 2009-04-07 2010-10-28 Toshiba Corp 暗号処理装置
JP5042272B2 (ja) * 2009-05-15 2012-10-03 日本電信電話株式会社 暗号用拡大鍵生成回路、復号用拡大鍵生成回路、暗号用拡大鍵生成方法および復号用拡大鍵生成方法
WO2011101994A1 (ja) * 2010-02-22 2011-08-25 株式会社東芝 暗号化装置
US8611540B2 (en) * 2010-06-23 2013-12-17 Damaka, Inc. System and method for secure messaging in a hybrid peer-to-peer network
JP5198526B2 (ja) * 2010-09-21 2013-05-15 株式会社東芝 暗号化装置および復号装置
JP5682527B2 (ja) 2011-03-28 2015-03-11 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
US8707123B2 (en) * 2011-12-30 2014-04-22 Lsi Corporation Variable barrel shifter
KR101362675B1 (ko) * 2012-11-30 2014-02-12 한국전자통신연구원 저전력 암호화 장치 및 방법
JP6238774B2 (ja) 2013-02-21 2017-11-29 キヤノン株式会社 ハッシュ値生成装置
JP6113091B2 (ja) 2013-03-07 2017-04-12 キヤノン株式会社 ハッシュ値生成装置
WO2014140698A1 (en) * 2013-03-11 2014-09-18 Indian Institute of Technology Kharagpur Improved resistance to cache timing attacks on block cipher encryption
JP2014192612A (ja) * 2013-03-26 2014-10-06 Toshiba Corp 生成装置、暗号化装置、復号装置、生成方法、暗号化方法、復号方法およびプログラム
JP2014240921A (ja) * 2013-06-12 2014-12-25 株式会社東芝 暗号装置、暗号処理方法及び暗号処理プログラム
JP6178142B2 (ja) * 2013-07-12 2017-08-09 株式会社東芝 生成装置、方法およびプログラム
JP2015025930A (ja) * 2013-07-26 2015-02-05 日本電信電話株式会社 圧縮関数演算装置、圧縮関数演算方法及びプログラム
KR101534792B1 (ko) * 2014-04-08 2015-07-08 주식회사 오비고 인증키 전송 관련하여 보안성을 높이기 위한 방법, 서버 및 컴퓨터 판독 가능한 기록 매체
WO2016059870A1 (ja) * 2014-10-14 2016-04-21 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
US9960908B1 (en) * 2015-06-19 2018-05-01 Amazon Technologies, Inc. Reduced-latency packet ciphering
RU2630423C1 (ru) * 2016-12-08 2017-09-07 Общество с ограниченной ответственностью "ЛАН-ПРОЕКТ" Способ криптографического преобразования информации
JP6441390B2 (ja) * 2017-01-26 2018-12-19 株式会社東芝 生成装置、暗号化装置、復号装置、生成方法、暗号化方法、復号方法およびプログラム
JP7063628B2 (ja) * 2018-01-11 2022-05-09 Necプラットフォームズ株式会社 暗号化装置、暗号化方法およびプログラム
KR102213835B1 (ko) * 2018-11-09 2021-02-09 고려대학교 산학협력단 동형암호 기법으로 암호화된 데이터의 지수 함수 연산 서버 및 방법
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
JP7383985B2 (ja) * 2019-10-30 2023-11-21 富士電機株式会社 情報処理装置、情報処理方法及びプログラム
CN110880967B (zh) * 2019-12-24 2023-04-07 北京炼石网络技术有限公司 采用分组对称密钥算法对多消息并行加解密方法
KR20210108787A (ko) 2020-02-26 2021-09-03 삼성전자주식회사 듀얼 인코더를 포함하는 시큐리티 회로 및 이를 포함하는 암복호화기
CN112887085B (zh) * 2021-01-13 2022-06-24 深圳安捷丽新技术有限公司 一种ssd固态硬盘主控芯片安全密钥生成方法、装置和系统
CN113343276B (zh) * 2021-07-01 2022-06-14 衡阳师范学院 基于广义二维猫映射的轻量级分组密码算法gcm的加密方法
US20230164150A1 (en) * 2021-11-24 2023-05-25 At&T Intellectual Property I, L.P. Anomaly detection relating to communications using information embedding
CN115017530B (zh) * 2022-08-08 2022-12-16 创云融达信息技术(天津)股份有限公司 一种数据安全存储设备及方法

Citations (4)

* Cited by examiner, † Cited by third party
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 高通股份有限公司 加密系统中协商弱密钥的方法
CN1647139A (zh) * 2002-05-23 2005-07-27 三菱电机株式会社 数据变换装置和数据变换方法
JP2005218023A (ja) * 2004-02-02 2005-08-11 Matsushita Electric Ind Co Ltd 鍵配信システム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01147585A (ja) * 1987-12-04 1989-06-09 Nippon Telegr & Teleph Corp <Ntt> 暗号装置
US6578061B1 (en) * 1999-01-19 2003-06-10 Nippon Telegraph And Telephone Corporation Method and apparatus for data permutation/division and recording medium with data permutation/division program recorded thereon
CA2373432C (en) * 2000-03-09 2005-02-08 Mitsubishi Denki Kabushiki Kaisha Block cipher apparatus using auxiliary transformation
US7237097B2 (en) * 2001-02-21 2007-06-26 Mips Technologies, Inc. Partial bitwise permutations
US7317795B2 (en) * 2001-04-17 2008-01-08 She Alfred C Pipelined deciphering round keys generation
US20040047466A1 (en) * 2002-09-06 2004-03-11 Joel Feldman Advanced encryption standard hardware accelerator and method
JP4444781B2 (ja) 2004-10-14 2010-03-31 日本電信電話株式会社 無線送信機、送信信号電力調整装置および送信信号電力調整方法
JP4622807B2 (ja) * 2005-03-25 2011-02-02 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
WO2006115219A1 (ja) * 2005-04-21 2006-11-02 Matsushita Electric Industrial Co., Ltd. プログラム難読化装置及び難読化方法
US7702100B2 (en) * 2006-06-20 2010-04-20 Lattice Semiconductor Corporation Key generation for advanced encryption standard (AES) Decryption and the like

Patent Citations (4)

* Cited by examiner, † Cited by third party
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
CN1647139A (zh) * 2002-05-23 2005-07-27 三菱电机株式会社 数据变换装置和数据变换方法
JP2005218023A (ja) * 2004-02-02 2005-08-11 Matsushita Electric Ind Co Ltd 鍵配信システム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
冈本栄司.DES配置.《暗号理论入门》.共立出版株式会社,1993,33-38. *

Also Published As

Publication number Publication date
US20100014664A1 (en) 2010-01-21
JP2008145791A (ja) 2008-06-26
JP5055993B2 (ja) 2012-10-24
CN101553857A (zh) 2009-10-07
KR20090094086A (ko) 2009-09-03
EP2096616A4 (en) 2014-04-02
US8737603B2 (en) 2014-05-27
HK1138098A1 (en) 2010-08-13
WO2008072455A1 (ja) 2008-06-19
EP2096616A1 (en) 2009-09-02

Similar Documents

Publication Publication Date Title
CN101553857B (zh) 加密处理装置、加密处理方法以及计算机程序
TWI394418B (zh) A cryptographic processing device, a cryptographic processing method, and a non-temporary computer readable recording medium
Soleimany et al. Zero-correlation linear cryptanalysis of reduced-round LBlock
CN101162557B (zh) 密码处理装置和密码处理方法
CN101371286B (zh) 密码处理装置和密码处理方法
JP5050454B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
CN101496080B (zh) 密码处理装置、密码处理算法构建方法和密码处理方法
JP5023624B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
CN103444124B (zh) 加密处理装置、加密处理方法
WO2008026625A1 (fr) Dispositif de codage, procédé de codage et programme informatique
JP2007199156A (ja) 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム
JP5198539B2 (ja) 記憶装置、アクセス装置およびプログラム
Song et al. Optimizing rectangle attacks: a unified and generic framework for key recovery
Shakiba et al. Non-isomorphic biclique cryptanalysis and its application to full-round mCrypton
JP5338945B2 (ja) 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム
Yang et al. Optimizing Rectangle and Boomerang Attacks: A Unified and Generic Framework for Key Recovery

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1138098

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1138098

Country of ref document: HK

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

Granted publication date: 20110420

Termination date: 20151121

EXPY Termination of patent right or utility model