CN103444124A - 加密处理装置、加密处理方法和程序 - Google Patents

加密处理装置、加密处理方法和程序 Download PDF

Info

Publication number
CN103444124A
CN103444124A CN2012800141649A CN201280014164A CN103444124A CN 103444124 A CN103444124 A CN 103444124A CN 2012800141649 A CN2012800141649 A CN 2012800141649A CN 201280014164 A CN201280014164 A CN 201280014164A CN 103444124 A CN103444124 A CN 103444124A
Authority
CN
China
Prior art keywords
data
bout
input
function
row
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2012800141649A
Other languages
English (en)
Other versions
CN103444124B (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 CN103444124A publication Critical patent/CN103444124A/zh
Application granted granted Critical
Publication of CN103444124B publication Critical patent/CN103444124B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/24Key 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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)
  • Facsimile Transmission Control (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

为了实现具有改进扩散特性的极度安全的加密处理,本发明的一方面包括加密处理单元,该加密处理单元将要进行数据处理的数据的组成位划分成多行并输入,然后对各行数据重复执行使用回合函数的数据转换处理。在加密处理单元中,将n/d位数据输入到各行,所述n/d位数据是将作为输入数据的n位数据以划分数(d)划分而获得的,并且重复执行包括使用回合函数的数据转换处理的计算作为回合计算。以d/2个单位对具有回合函数的行的输出数据的n/d位数据进行划分,对划分的数据进行组合,对d组n/d位数据进行重构,所述数据与先前阶段的回合计算的输出数据不同,并且执行得到下一阶段的回合计算的输入数据的处理。由于该配置,可以实现具有改进扩散特性的极度安全的加密处理。

Description

加密处理装置、加密处理方法和程序
技术领域
本公开涉及加密处理装置、加密处理方法和程序。更具体地,本公开涉及包括对称密钥加密术的加密处理装置、加密处理方法和程序。
背景技术
随着面向信息社会的发展,用于保证正处理的信息的安全的信息安全技术的重要性变得更高。信息安全技术的要素之一是加密技术,并且加密技术当前用在各种产品和系统中。
存在各种加密处理算法,并且基本技术之一是所谓的对称密钥块加密术。在对称密钥块加密术中,用于加密的密钥和用于解密的密钥是相同的。在加密操作和解密操作中,根据共同密钥来生成密钥,并且重复执行具有特定块数据单位(诸如64位、128位或256位)的数据转换操作。
广泛公知的对称密钥块加密算法包括作为美国的先前标准的DES(数据加密标准)和作为美国的当前标准的AES(高级加密标准)。当今仍正提出其它各种对称密钥块加密技术,并且由索尼公司在2007年提出的CLEFIA也是对称密钥块加密技术之一。
这样的对称密钥块加密算法主要由加密处理单元来构成,该加密处理单元具有:回合函数执行单元,重复地对输入数据进行转换;以及密钥安排单元,生成要在各个回合的回合函数单元中使用的回合密钥。密钥安排单元首先基于作为秘密密钥的主密钥(主要密钥)而生成具有增加位数的扩大密钥,然后基于所生成的扩大密钥而生成要在加密处理单元的各个回合函数单元中使用的回合密钥(副密钥)。
作为执行这样的算法的具体结构,存在重复地执行包括线性转换单元和非线性转换单元的回合函数的已知结构。典型的示例结构包括Feistel结构和一般化Feistel结构。Feistel结构和一般化Feistel结构均具有如下结构:其通过简单重复包括作为数据转换函数的F函数的回合函数而将明文转换为密文。在每个F函数中,执行线性转换和非线性转换。非专利文献1和非专利文献2是公开使用Feistel结构的加密处理的文献示例。
评估块加密的安全性时所使用的指示之一是扩散特性。该特性可以被视为将输入数据改变扩展(扩散)至输出数据的特性,并且在安全块加密中,期望输入数据的这种改变的影响尽可能块地被传送到输出数据。
可以预测,为了改进扩散特性,例如,回合函数重复次数的增加将是有效的。然而,没有公开用于以较小的回合函数重复次数来改进扩散特性的传统技术。
引用列表
非专利文献
非专利文献1:K.Nyberg,“Generalized Feistel networks”,ASIACRYPT96,SpringerVerlag,1996,pp.91--104.
非专利文献2:Yuliang Zheng,Tsutomu Matsumoto,Hideki Imai:Onthe Construction of Block Ciphers Provably Secure and Not Relying onAny Unproved Hypotheses.CRYPTO 1989:461-480
发明内容
本发明要解决的问题
本公开是考虑到例如上述情形而做出的,并且其目的是提供具有改进扩散特性的、具有高安全性水平的加密处理装置、加密处理方法和程序。
问题的解决方案
本公开的第一方面在于一种加密处理装置,其包括:
加密处理单元,被配置成将要进行数据处理的数据的组成位划分成行并输入,并且对各行中的数据重复执行使用回合函数的数据转换操作,
其中,加密处理单元具有如下结构:该结构被设计成将通过以划分数d对作为输入数据的n位数据进行划分而形成的n/d位数据输入到各行,并且重复执行包括使用回合函数的数据转换操作的计算作为回合计算,以及
加密处理单元执行如下操作:在该操作中,将具有回合计算的输出数据的每行的n/d位数据再划分成d/2组数据,并且对再划分的数据进行重组以重构与先前阶段的回合计算的输出数据不同的d组n/d位数据,并且将重构的数据设置为下一阶段的回合计算的输入数据。
此外,在本公开的加密处理装置的实施例中,回合函数包括F函数和F函数的输出或输入与其它行的数据之间的异或运算,该F函数包括使用回合密钥的计算、非线性转换和线性转换。
此外,在本公开的加密处理装置的实施例中,加密处理单元通过执行满足以下分配条件(1)至(3)的操作而将先前阶段的回合计算的结果设置为下一阶段的回合计算的输入:
(1)F函数输入侧数据序列被不变地分配给下一回合函数的异或(XOR)侧数据序列,
(2)XOR侧数据序列被不变地分配给下一回合计算的F函数输入侧数据序列,以及
(3)被划分成d/2组的每一个数据序列被分配给下一回合函数的d/2个数据序列而没有重叠。
此外,在本公开的加密处理装置的实施例中,加密处理单元具有输入数据的划分数d等于或大于4的一般化Feistel结构。
此外,在本公开的加密处理装置的实施例中,加密处理单元执行如下操作:在该操作中,通过将具有回合计算的输出数据的d行中的每行的n/d位数据再划分成d/2组数据而生成d×(n/d)组再划分数据,对选自与划分数d对应的d行当中的不同行的d/2组再划分数据进行重组以重构与先前阶段的回合计算的输出数据不同的d组n/d位数据,并且将重构的数据设置为下一阶段的回合计算的输入数据。
此外,在本公开的加密处理装置的实施例中,当所有输出位处于满足以下两个条件的扩散状态时,或者当输出位以关于输入位的关系式来表示时,加密处理单元具有实现了满足以下两个条件的完全扩散状态的结构:
(条件1)所有输入位都包括在关系式中,以及
(条件2)所有输入位都已通过回合函数至少一次。
此外,在本公开的加密处理装置的实施例中,加密处理单元还通过四个回合的回合计算而实现完全扩散状态。
此外,在本公开的加密处理装置的实施例中,确定先前阶段的回合计算的输出数据与下一阶段的回合计算的再划分数据之间的输入-输出关系的连接结构是选自如下连接结构的连接结构:该连接结构以作为通过组合d×(n/d)组再划分数据而生成的数据的(d/2)组2n/d位数据为单位,所述d×(n/d)组再划分数据是通过对具有回合计算的输出数据的行中的n/d位数据执行再划分操作而生成的。
此外,在本公开的加密处理装置的实施例中,加密处理单元具有适用于加密操作和解密操作两者的对合(involution)特性。
此外,在本公开的加密处理装置的实施例中,用于在加密处理单元中对各个回合计算的再划分数据进行重构的操作包括:根据预定规则将先前阶段的回合函数输入侧序列的再划分数据分配给下一阶段的异或侧序列;以及根据预定规则将先前阶段的异或侧序列的再划分数据分配给下一阶段的回合函数输入侧序列。
此外,在本公开的加密处理装置的实施例中,加密处理单元执行用于将作为输入数据的明文转换为密文的加密操作或者用于将作为输入数据的密文转换为明文的解密操作。
此外,本公开的第二方面在于在加密处理装置中实现的加密处理方法,
该加密处理方法包括:
加密处理步骤,将要经受数据处理的数据的组成位划分成行并输入,并且对各行中的数据重复执行使用回合函数的数据转换操作,
其中,加密处理步骤包括:将通过以划分数d对作为输入数据的n位数据进行划分而形成的n/d位数据输入到各行;以及重复执行包括使用回合函数的数据转换操作的计算作为回合计算,以及
加密处理步骤包括如下操作:在该操作中,将具有回合计算的输出数据的每行的n/d位数据再划分成d/2组数据,对再划分的数据进行重组以重构与先前阶段的回合计算的输出数据不同的d组n/d位数据,并且将重构的数据设置为下一阶段的回合计算的输入数据。
此外,本公开的第三方面在于一种用于使得加密处理装置执行加密处理的程序,
该程序使得加密处理单元执行:
加密处理步骤,将要经受数据处理的数据的组成位划分成行并输入,并且对各行中的数据重复执行使用回合函数的数据转换操作,
其中,加密处理步骤包括:将通过以划分数d对作为输入数据的n位数据进行划分而形成的n/d位数据输入到各行;以及重复执行包括使用回合函数的数据转换操作的计算作为回合计算,以及
加密处理步骤包括如下操作:在该操作中,将具有回合计算的输出数据的每行的n/d位数据再划分成d/2组数据,对再划分的数据进行重组以重构与先前阶段的回合计算的输出数据不同的d组n/d位数据,并且将重构的数据设置为下一阶段的回合计算的输入数据。
应注意,本公开的程序是记录在存储介质上然后被提供到例如可以执行各种程序代码的信息处理装置或计算机系统的程序。当信息处理装置或计算机系统中的程序执行单元执行这样的程序时,执行根据该程序的操作。
本公开的其它目的、特征和优点将根据以下结合稍后描述的本发明的实施例和附图的详细描述而变得明显。在该说明书中,系统是装置的逻辑集成,并且各个组成装置不一定位于同一壳体中。
本发明的效果
根据本公开的实施例,实现了具有改进的扩散特性和高安全性水平的加密处理。
具体地,加密处理单元将要经受数据处理的数据的组成位划分成行并输入,并且对各行的数据重复执行使用回合函数的数据转换操作。加密处理单元将通过以划分数d对作为输入数据的n位数据进行划分而获得的n/d位数据输入到各行,并且重复执行作为包括使用回合函数的数据转换操作的计算的回合计算。具有回合计算的输出数据的每行中的n/d位数据被划分成d/2组数据,并且划分的数据被组合以重构与先前阶段的回合计算的输出数据不同的d组n/d位数据。重构的数据被设置为下一阶段的回合计算的输入数据。利用该结构,可以实现具有改进的扩散特性和高安全性水平的加密处理。
附图说明
图1是用于说明与k位的密钥长度兼容的n位对称密钥块加密算法的图。
图2是用于说明与图1所示的与k位的密钥长度兼容的n位对称密钥块加密算法对应的解密算法的图。
图3是用于说明密钥安排单元与数据加密单元之间的关系的图。
图4是用于说明数据加密单元的示例结构的图。
图5是用于说明具有SPN结构的回合函数的示例的图。
图6是用于说明具有Feistel结构的回合函数的示例的图。
图7是用于说明扩展Feistel结构的示例的图。
图8是用于说明扩展Feistel结构的示例的图。
图9是用于说明非线性转换单元的示例结构的图。
图10是用于说明线性转换处理单元的示例结构的图。
图11是用于说明具有Feistel结构的块加密中的扩散状态的图。
图12是用于说明具有Feistel结构的块加密中的扩散状态的图。
图13是用于说明在具有在一个阶段使用两个F函数的4行一般化Feistel结构的块加密中的扩散状态的图。
图14是用于说明在具有在一个阶段使用两个F函数的4行一般化Feistel结构的块加密中的扩散状态的图。
图15是用于说明在具有在一个阶段使用两个F函数的4行一般化Feistel结构的块加密中的扩散状态的图。
图16是用于说明在d是6的情况下的传统一般化Feistel结构的图。
图17是示出在d是6的情况下在传统一般化Feistel结构中实现完全扩散状态的路径示例的图。
图18是用于说明在划分数d是6或更大的情况下通过改变回合间的线而使得完全扩散回合数比传统结构的完全扩散回合数小的示例结构的图。
图19是示出在划分数d是6或更大的情况下通过改变回合间的线而使得完全扩散回合数比传统结构的完全扩散回合数小的结构中实现完全扩散状态的路径示例的图。
图20是用于说明作为本公开的实施例的加密处理结构的图。
图21是用于说明作为本公开的实施例的d是4的示例情况的图。
图22示出了在d是4的情况下通过该方法实现完全扩散状态的路径的示例。
图23是用于说明作为本公开的实施例的d是6的示例情况的图。
图24示出了在d是6的情况下通过该方法实现完全扩散状态的路径的示例。
图25是示出在d是6的情况下以2来划分每组n/d位数据的示例结构的图。
图26是示出n位输入数据的划分数d、每组n/d位数据的划分数p和完全扩散回合数之间的关系的一部分的图。
图27是示出以彼此不同的方式来划分F函数输入侧数据序列和异或侧数据序列的示例结构的图。
图28是示出除了扩大密钥的插入位置之外与图21所示的示例结构相同的示例结构的图。
图29是用于说明更高效的数据分配方法的图。
图30是用于说明更高效的数据分配方法的图。
图31是用于说明更高效的数据分配方法的图。
图32是用于说明Feistel结构的对合特性的图。
图33是用于说明Feistel结构的对合特性的图。
图34是示出可以实现出色的扩散特性的4行结构的类型的图。
图35是用于说明用于实现对合特性的操作的图。
图36是用于说明在4行(d=4)结构中具有对合特性的示例结构的图。
图37是用于说明在6行(d=6)结构中具有对合特性的示例结构的图。
图38是用于说明具有对合特性的示例结构的图。
图39是用于说明具有对合特性的示例结构的图。
图40是示出作为加密处理装置的IC模块700的示例结构的图。
具体实施方式
以下是参照附图的根据本公开的加密处理装置、加密处理方法和程序的详细描述。将按以下章节顺序进行说明。
1.对称密钥块加密术的概况
2.扩散特性的概况
(2-1)扩散特性的描述
(2-2)将扩散特性纳入考虑的传统示例结构
3.根据本公开的具有改进扩散特性的示例结构
4.具有更高效的数据分配的示例结构
5.具有对合特性的示例结构
6.加密处理装置的示例结构
7.根据本公开的结构的总结
[1.对称密钥块加密术的概况]
首先,简要描述对称密钥块加密术。
(1-1.对称密钥块加密术)
对称密钥块加密术(下文中称为块加密)被定义为如下。
在块加密中,明文P和密钥K被接收作为输入,并且输出密文C。明文和密文的位长被称为块大小,并且在这里以n来表示。尽管n可以是任意整数值,但是n通常是针对每种块加密算法而唯一地确定的。使用n作为块长度的块加密也可称为n位块加密。
密钥的位长以k来表示。密钥可具有任意整数值。每种对称密钥块加密算法与一个或多个密钥大小兼容。例如,块加密算法A具有n=128的块大小,并且可与k=128、192和256的密钥大小兼容。
明文P:n位
密文C:n位
密钥K:k位
图1是与k位的密钥长度兼容的n位对称密钥块加密算法E的图。
与加密算法E兼容的解密算法D可以被定义为加密算法E的逆函数E-1。密文C和密钥K被接收作为输入,并且输出明文P。图2是示出与图1所示的加密算法E兼容的解密算法D的图。
(1-2.内部结构)
块加密可以被划分成两个单元。一个是“密钥安排单元”,其输入密钥K并且输出通过利用预定步骤扩展位长而形成的扩大密钥K’(位长k’),而另一个是“数据加密单元”,其接收来自密钥安排单元的明文P和扩大密钥K’,对数据进行转换,并且输出密文C。
图3示出了这两个单元之间的关系。
(1-3.数据加密单元)
在以下实施例中使用的数据加密单元可以被划分成称为回合函数的处理单位。回合函数接收两组数据作为输入,并且在其中对数据进行处理之后输出一组数据。所输入的一组数据是当前被加密的n位数据,并且一个回合中的回合函数的输出被提供作为下一回合的输入。所输入的另一组数据是从密钥安排单元输出的扩大密钥的一部分的数据,并且该密钥数据被称为回合密钥。回合函数的总数被称为总回合数,并且是针对每种加密算法预先设置的值。这里,总回合数以R来表示。
在从数据加密单元的输入侧所计数的第一回合的输入数据以X1来表示,输入到第i个回合函数的数据以Xi来表示,并且回合密钥以RKi来表示的情况下,整个数据加密单元如图4所示的来表示。
(1-4.回合函数)
回合函数根据块加密算法而可以具有各种形式。回合函数可以基于各个加密算法所采用的结构而进行分类。典型结构的示例包括SPN结构、Feistel结构和扩展Feistel结构。
(a)SPN结构回合函数
该结构对所有n位输入数据执行关于回合密钥的异或运算、非线性转换和线性转换。各个操作的顺序不是特定设置的。图5示出了具有SPN结构的回合函数的示例。
(b)Feistel结构
n位输入数据被划分成两组n/2位数据。一组数据和回合密钥被输入到函数(F函数),并且输出和另一组输入经受异或。然后将数据的左和右互相替换以形成输出数据。F函数的内部结构可以是任意各种形状,但是与SPN结构一样,基本上通过关于回合密钥数据的异或运算、非线性运算和线性转换的组合来实现。图6示出了具有Feistel结构的回合函数的示例。
(c)扩展Feistel结构
扩展Feistel结构与Feistel结构的不同之处在于数据划分数是3个或更多个而不是2。在划分数以d表示的情况下,各种扩展Feistel结构可以由d来定义。由于F函数的输入/输出大小变得相对较小,因此该结构被认为适合于小尺寸实现。图7示出了在d是4并且在一个回合中并行使用两个F函数的情况下的扩展Feistel结构的示例。图8示出了在d是8并且在一个回合中使用一个F函数的情况下所采用的扩展Feistel结构的示例。
(1-5.非线性转换处理单元)
在要输入的数据大小较大的情况下,非线性转换处理单元易于具有高实现成本。为了避免这样,在多数情况下,将目标数据划分成两个或更多个单位,并且对每个单位执行非线性转换。例如,在输入大小是ms位的情况下,输入数据被划分成m组s位数据,并且对m组s位数据中的每组执行具有s位输入和输出的非线性转换。这些s位非线性转换在这里被称为S盒(S-box)。图9示出了示例。
(1-6.线性转换处理单元)
考虑到其特性,线性转换处理单元可以被定义为矩阵。矩阵的元素通常可以以各种形式来表示,诸如GF(28)的元素或GF(2)的元素。图10示出了线性转换处理单元的示例,其具有ms位输入和输出并由关于GF(2S)定义的m×m矩阵来定义。
[2.扩散特性的概况]
在说明本公开的加密处理之前,现在简要描述扩散特性。
(2-1)扩散特性的描述
如以上简要描述的,扩散特性用作用于评估块加密的安全性时所使用的指示之一。该特性可以被视为将输入数据改变散布(或扩散)到输出数据的特性,并且在安全块加密中,期望输入数据的这样改变的影响尽可能块地被传送到输出数据。
在以下,定义了“扩散状态”、“完全扩散状态”和“完全扩散回合数”。
在输出位被记作输入位的关系式并且关系式满足以下示出的条件的情况下,输出位的状态被定义为“扩散状态”。
(条件1)所有输入位都包括在关系式中。
(条件2)所有输入位都已通过回合函数(F函数)至少一次。
此外,所有输出位都处于扩散状态的状态被定义为“完全扩散状态”。
实现完全扩散状态所需的最小回合数(重复次数)被称为“完全扩散回合数”。
现在参照作为具体示例具有图11和图12所示的Feistel结构的块加密来详细描述这些定义。图11示出了具有Feistel结构的块加密的回合函数的示例结构,并且图12示出了重复三次回合函数的结构。
如从图12看出的,第i个回合、第(i+1)个回合和第(i+2)个回合的输出的左侧(或者第(i+1)个输入、第(i+2)个输入和第(i+3)个输入的左侧)的n/2位数据Xi+1 1、Xi+2 1和Xi+3 1以及第i个回合、第(i+1)个回合和第(i+2)个回合的输出的右侧(或者第(i+1)个输入、第(i+2)个输入和第(i+3)个输入的右侧)的n/2位数据Xi+1 2、Xi+2 2和Xi+3 2均可以通过使用第i个回合的输入Xi 1和Xi 2以及回合密钥RKi 1、RKi 2和RKi 3而如下表示。
Xi+1 1=F(RKi 1,Xi 1)(+)Xi 2
Xi+2 1=F(RKi+1 1,Xi+1 1)(+)Xi+1 2=F(RKi+1 1,F(RKi 1,Xi 1)(+)Xi 2)(+)Xi 1
Xi+3 1=F(RKi+2 1,Xi+2 1)(+)Xi+2 2=(RKi+2 1,F(RKi+1 1,Xi+1 1)(+)Xi+1 2)(+)Xi+2 2
=F(RKi+2 1,F(RKi+1 1,F(RKi 1,Xi 1)(+)Xi 2)(+)Xi 1)(+)F(RKi 1,Xi 1)(+)Xi 2
Xi+1 2=Xi 1
Xi+2 2=Xi+1 1=F(RKi 1,Xi 1)(+)Xi 2
Xi+3 2=Xi+2 1=F(RKi+1 1,Xi+1 1)(+)Xi+1 2=F(RKi+1 1,F(RKi 1,Xi 1)(+)Xi 2)(+)Xi 1
在以上表示中,F(K,X)表示通过使用参数K利用F函数对数据X进行转换而获得的数据,并且(+)表示每位的异或。
尽管以输入数据Xi 1和Xi 2来表示,但是Xi+1 1没有处于扩散状态,这是由于Xi 2没有通过F函数。Xi+2 1以输入数据Xi 1和Xi 2来表示,并且输入数据被给出作为F函数的输入。因此,可以认为Xi+2 1处于扩散状态。同样地,可以认为Xi+3 1处于扩散状态。
在仅以Xi 1来表示的情况下,Xi+1 2没有处于扩散状态。由于Xi 2没有通过F函数,因此Xi+2 2没有处于扩散状态。Xi+3 2处于扩散状态,从而满足条件。
根据以上结果,第(i+3)个回合的输出Xi+3 1和Xi+3 2均处于扩散状态,并且可以认为实现了完全扩散状态。如从以上可以看出的,具有图11和图12所示的Feistel结构的块加密的完全扩散回合数是3。
如果没有实现完全扩散状态,则特定输出位不受特定输入位和非线性函数(F函数)的影响,因此,可能易受各种攻击。特别地,扩散特性用作直接估计对攻击(诸如不可能的差分攻击和饱和攻击)的安全性时的指示。可以认为,以较小的完全扩散回合数实现了较好的扩散特性。
图13和图14示出了其它示例。这些图示出了在一个阶段使用两个F函数的4行一般化Feistel结构。
图15示出了如下情况下的改变的反响:其中,第i个回合的n位输入Xi被划分为四个n/4位数据,并且仅对第四个n/4位数据(以Xi 4来表示)的一部分进行改变。
在图中,粗虚线表示在输入的改变尚未通过F函数的状态下来传送数据,并且粗线指示在输入的改变已通过F函数至少一次的状态下来传送数据。另外,假设F函数的每个输出位受F函数的所有输入位的影响。如上所述,完全扩散回合数可以通过计算在所有输出位受各种输入位的虚拟改变影响之前所需的回合数来确定。实际上,已知在d是4的情况下,在一个阶段使用两个F函数的一般化Feistel结构中的完全扩散回合数是5。
(2-2)将扩散特性纳入考虑的传统示例结构
接下来,简要描述将至此所提出的扩散特性纳入考虑的处理结构。
众所周知的是,在一个阶段使用d/2个函数的d行一般化Feistel结构没有非常良好的扩散特性,并且完全扩散回合数是d+1。在例如非专利文献3(T.Suzaki and K.Minematsu,"Improving the Generalized Feistel",FSE2010,LNCS6147,pp.19-39,2010)中对此进行了公开。
图16示出了d是6的传统一般化Feistel结构,并且图17示出了结构处于完全扩散状态的路径的示例。
为了解决以上问题,非专利文献3提出了如下构造方法:其通过改变通过将数据划分成d组而形成的每组n/d位数据的回合间的线,可以使得在划分数d等于或大于6的情况下完全扩散回合数小于传统结构中的完全扩散回合数。
图18示出了d是6的情况下的该构造方法,并且图19示出了结构处于完全扩散状态的路径的示例。
在d分别是6、8、10、12、14和16的情况下,在该结构中实现的完全扩散回合数是5、6、7、8、8和8。从此可以看出,实现了比传统结构的(d+1)个回合更好的扩散特性。然而,在d是4的情况下,该结构是无效的,并且无法使得完全扩散回合数较小。
非专利文献4(Suzaki,Tsunoo,Kubo,and Kawabata,"Proposal of astructure having diffusion layer incorporated into a generalized Feistelstructure",SCIS2008,2008)提出了通过对通过将数据划分成d组而形成的每组n/d位数据执行线性运算而使得扩散特性比传统结构好的结构。然而,在该结构中,需要实现线性运算的装置,从而导致较高的实现成本。
[3.根据本公开的具有改进扩散特性的示例结构]
鉴于上述问题,本公开提出了用于在一般化Feistel结构中实现较好扩散特性而不增加实现成本的构造方法。
在具有该组成的d行一般化Feistel结构中,如在传统结构中一样,将n位输入数据划分成d组n/d位数据,并且对d组中的每组执行F函数处理和异或运算(图20中的步骤1)。
此时输入到F函数的数据序列被称为F函数输入侧数据序列,并且经受异或的数据序列被称为异或侧数据序列。
此后,在每个相应序列(每个相应行)中传递的每组n/d位数据被进一步再划分成d/2组(此时的划分可以不是等分)。
根据以下规则来分配在每个序列(每行)中被再划分成d/2组的数据(图20中的步骤2)。
(1)F函数输入侧数据序列被不变地分配给下一回合函数的异或侧数据序列。
(2)异或侧数据序列被不变地分配给下一回合函数的F函数输入侧数据序列。
(3)被划分成d/2组的每一个数据序列被分配给下一回合函数的d/2个数据序列而没有重叠。
在上述分配之后,将被划分成d/2组的每组数据集成为一组数据(图20中的步骤3)。
重复上述所需次数。
图20示出了划分数d是4的示例结构。
在该结构中,完全扩散回合数可以是4,而与数据划分数d无关。
该方法满足实现完全扩散所需的回合数是4而与划分数d无关的条件的原因如下。
(1)第i个回合中的输入数据的任何改变影响第(i+1)个回合中的至少一个F函数。
(2)第(i+1)个回合中的至少一个异或侧数据序列处于扩散状态。
(3)第(i+1)个回合中的异或侧数据序列当中处于扩散状态的数据被进一步划分成d/2组,并且影响第(i+2)个回合中的所有d/2个F函数。因此,第(i+2)个回合中的所有异或侧数据序列都处于扩散状态。
(4)由于第(i+2)个回合中的异或侧数据序列是第(i+3)个回合中的F函数输入侧数据序列,因此第(i+3)个回合中的所有F函数输入侧数据序列都处于扩散状态。由于处于扩散状态的数据被输入到第(i+3)个回合中的所有F函数,因此与输出经受异或的所有异或侧数据序列都处于扩散状态。
出于以上原因,在第(i+3)个回合之后或在第四回合中,不变地实现了完全扩散状态。现在参照图21和图22,描述具体示例。
图21示出了d是4的情况下该方法的示例。由于d是4,因此通过将输入数据划分成四组而获得的每组n/4位数据进一步以2来划分(划分成d/2组)。
作为与第i个回合的输入Xi 1对应的第i个回合的输出的两组划分数据以Yi 1L和Yi 1R来表示,同样地,与Xi 2、Xi 3和Xi 4对应的各组划分数据以Yi 2L、Yi 2R、Yi 3L、Yi 3R、Yi 4L和Yi 4R来表示。在等分的情况下,这些划分数据的大小是n/8位。
然而,对每行中的数据进行再划分的操作不一定是等分。在例如输入位数是256并且划分数d是4的情况下,每行中的位数是n/d=256/4=64位,并且在等分的情况下,通过再划分而获得的数据是32位数据。结果,生成两组32位数据。
然而,等分不是必须的,并且从64位数据生成的再划分数据可以是任意组合,诸如20位数据和44位数据的组合。
然而,在输入到下一回合计算单元时,通过对被划分成不同行的20位数据和44位数据进行组合来重构根据划分数d=4的四组64位数据,并且将其输入到各个划分行中。
即,在具有划分数d的结构中,等分不是必须的,但是在d行中的各行的再划分操作中,d行中的各行的再划分形式(划分比率)需要相同。
如果对第i个回合的输入数据进行某种改变,则该影响被输入到第(i+1)个回合中的两个F函数中的至少一个。在仅对例如Xi 4的LSB1位进行改变的情况下,影响仅被传送到Yi 4R,并且传送的影响被传送到Xi+1 1。结果,Xi+1 1被输入到第(i+1)个回合中的左侧F函数(图22)。同样适用于如下情况:其中,仅对某个其它输入位的位置进行改变,并且保证影响被传送到至少一个F函数。
由于第(i+1)个回合中的至少一个F函数受输入改变的影响,因此与输出经受异或的数据处于扩散状态。即,保证组合(Yi+1 2L,Yi+1 2R)或(Yi+1 4L,Yi+1 4R)的扩散状态。图22示出了组合(Yi+1 2L,Yi+1 2R)处于扩散状态的示例情况。
根据该方法的规则2和3,第(i+1)个回合的输出Yi+1 2L和Yi+1 2R被输入到第(i+2)个回合中的两个(=d/2)F函数。同样地,Yi+1 4L和Yi+1 4R也被输入到第(i+2)个回合中的所有F函数。即,无论组合(Yi+1 2L,Yi+1 2R)和(Yi+1 4L,Yi+1 4R)中的哪一个在第(i+1)个回合中处于扩散状态,处于扩散状态的数据都被输入到第(i+2)个回合中的所有F函数。因此,与这些F函数的输出经受异或的所有数据Yi+2 2L、Yi+2 2R、Yi+2 4L和Yi+2 4R处于扩散状态,并且根据规则2和3而被提供到Xi+3 1和Xi+3 3。因此,显然Xi+3 1和Xi+3 3也处于扩散状态。
处于扩散状态Xi+3 1和Xi+3 3的被输入到第(i+3)个回合中的各个F函数,因此,作为与输出的异或的结果的Yi+2 2L、Yi+2 2R、Yi+2 4L和Yi+2 4R或者Xi+4 1和Xi+4 3也处于扩散状态。
根据以上结果,该方法可以满足完全扩散回合数是4的条件。图22示出了在d是4的情况下通过该方法实现完全扩散状态的路径的示例。在该示例结构中,以四个回合实现了完全扩散状态,其小于作为传统结构中的完全扩散回合数的五个回合。图22示出了在该结构中在d是4的情况下实现完全扩散的路径的示例。
图23示出了d是6的示例结构,并且图24示出了在该示例结构中实现完全扩散状态的路径的示例(回合间置换之前和之后所示的数表示指示置换之后各组数据所处的位置的索引)。
根据以上明显的是,与传统结构相比,根据本公开的结构实现了更好的扩散特性。另外,由于根据本公开的结构不涉及线性运算,因此实现成本没有增加。
如上所述,在该实施例中,加密处理单元将要进行数据处理的数据的组成位划分成行并输入,并且对各行数据重复执行使用回合函数的数据转换操作。加密处理单元重复执行包括如下所述的数据再划分和重构的回合计算。
具体地,加密处理单元将通过以划分数d对作为输入数据的n位数据进行划分而形成的n/d位数据输入到各行,并且重复执行作为包括使用回合函数的数据转换操作的计算的回合计算。
在重复执行回合计算的操作中,将具有回合计算的输出数据的每行的n/d位数据再划分成d/2组,并且对再划分数据进行重组,以重构与先前阶段的回合计算的输出数据不同的d组n/d位数据。重构的n/d位数据被设置为下一阶段的回合计算的输入数据。
具体地,执行满足以下条件的再划分和重构操作。
(1)F函数输入侧数据序列被不变地分配给下一回合函数的异或侧数据序列。
(2)异或侧数据序列被不变地分配给下一回合函数的F函数输入侧数据序列。
(3)被划分成d/2组的数据序列中的每一个被分配给下一回合函数的d/2个数据序列而没有重叠。
执行满足这样的条件的操作。
例如,加密处理单元执行如下操作:其中,通过将具有回合计算的输出数据的d行的每行的n/d位数据再划分成d/2组数据而生成d×(n/d)组再划分数据,对选自与划分数d对应的d行当中的不同行的d/2组再划分数据进行重组以重构与先前阶段的回合计算的输出数据不同的d组n/d位数据,并且将重构的数据设置为下一阶段的回合计算的输入数据。
由于执行了这样的操作,因此实现上述完全扩散状态所需的最小回合数(重复次数)或者“完全扩散回合数”可以被设置为4。
如上所述,在输出位被记作输入位的关系式并且关系式满足以下所示的条件的情况下,输出位的状态被定义为“扩散状态”。
(条件1)所有输入位都包括在关系式中。
(条件2)所有输入位已通过回合函数(F函数)至少一次。
此外,所有输出位都处于扩散状态的状态是“完全扩散状态”。
在被描述为本公开的实施例的每个示例结构中,通过用于传递通过以d划分n位输入数据而形成的数据的各行或者F函数输入侧数据序列行的(d/2)行和异或侧序列行的(d/2)行而传递的每组n/d位数据被划分成d/2组。
这是用于实现用以实现完全扩散的最小回合数4的设置。
图25示出了如下示例结构:其中,划分数d是6,并且要通过各行而传递的n/d位数据(n/6位数据)以2来划分,或者被划分成然后在回合之间传递的d/12位数据组。
然而,实现完全扩散的划分数不限于每行中的(d/2),除非回合数被限于4。
图26是示出n位输入位的划分数d、每行中的划分数p和实现完全扩散所需的回合数之间的对应关系的表。
如果数据序列被适当地分配,则可以根据以下示出的等式来计算完全扩散回合数。
回合数=3+[logp(d/2)]
这里,[x]是等于或大于x的最小整数。
图27示出了作为F函数输入侧数据序列和异或侧数据序列以彼此不同的方式来划分的扩展示例的结构。
图27所示的结构是如下示例:其中,划分数d是6,三个(=d/2)F函数输入侧数据序列行中的每个以2来划分,并且三个(=d/2)异或侧序列行中的每个以3来划分。
如果数据序列被适当地分配,则在该结构中完全扩散回合数也可以是4。
可以实现该方法的效果而与扩大密钥(回合密钥)的插入位置无关。图28示出了除了扩大密钥(回合密钥)的插入位置之外与图21所示的示例结构相同的示例结构。
在图21中,扩大密钥(回合密钥)被插入到各个F函数。
另一方面,在图28所示的结构中,扩大密钥(回合密钥)被插入到对F函数输出和异或侧数据序列执行异或运算的部分。
在这样的结构中,也可以利用包括上述回合间数据再划分操作的传递机制来减小完全扩散回合数。
[4.具有更高效数据分配的示例结构]
在上述章节[3.根据本公开的具有改进扩散特性的示例结构]中,描述了用于在一般化Feistel结构中实现较好扩散特性而没有增加实现成本的构造方法。
具体地,在通过以划分数d对作为输入数据的n位数据进行划分而获得的n/d位数据被输入到每行并且重复执行作为包括使用回合函数的数据转换操作的回合计算的操作的结构中,具有回合计算的输出数据的每行中的n/d位数据被进一步再划分成d/2组,并且对再划分数据进行组合以重构与先前阶段的回合计算的输出数据不同的d组n/d位数据。d组n/d位数据用作下一阶段的回合计算的输入数据。
在以下中,描述了用于以上实施例中描述的数据分配的更高效技术。
首先参照图29,描述了该实施例的典型示例结构。
在该结构中,如在以上章节[3]中描述的实施例中一样,在d行一般化Feistel结构中根据划分数d将n位输入数据划分成d组n/d位数据,并且重复执行作为包括使用回合函数的数据转换操作的回合计算的操作。
在第i次回合计算之后,将d行(d个序列)中的每行中的n/d位序列进一步再划分成d/2组。
在第i次回合计算之后每行(每个序列)中的d/2组划分输出数据当中的第j组数据以Yi[j]来表示(j是不小于1并且不大于d2/2的整数)。
同样地,在通过在第(i+1)个阶段中在回合计算单元中根据划分数d对d行中的每行中的n/d位数据进行再划分而获得的d/2组数据当中,第j组数据以Xi+1[j]来表示(j是不小于1并且不大于的整数d2/2)。
同时,YYi[t]表示通过顺序组合Yi[j]当中满足等式j=(d/2)s+t的数据而获得的数据。
这里,s是不小于0并且不大于(d-1)的整数,并且t是不小于1并且不大于d/2的整数。
具体地,例如,满足以下等式。
YYi[1]=Yi[1]||Yi[1×d/2+1]||Yi[2×d/2+1]||...||Yi[(d-1)×d/2+1],
YYi[2]=Yi[2]||Yi[1×d/2+2]||Yi[2×d/2+2]||...||Yi[(d-1)×d/2+2],
...
YYi[d/2]=Yi[d/2]||Yi[1×d/2+d/2]||Yi[2×d/2+d/2]||...||Yi[(d-1)×d/2+d/2]
同样,XXi[t]表示通过顺序组合Xi[j]当中满足等式j=(d/2)s+t的数据而获得的数据。
这里,Xi[j]是通过在第i个阶段中对d组n/d位数据(通过对输入数据进行划分而获得)中的每组进行划分而获得的d/2组数据当中的第j组数据,s是不小于0并且不大于(d-1)的整数,并且t是不小于1并且不大于d/2的整数。
根据以上章节[3]中描述的方法,存在大量分配模式,并且评估花费长时间。具体地,根据以上章节[3]中描述的方法,分配模式满足以下条件(1)至(3)。
(1)F函数输入侧数据序列被不变地分配给下一回合函数的异或侧数据序列。
(2)异或侧数据序列被不变地分配给下一回合函数的F函数输入侧数据序列。
(3)被划分成d/2组的每一个数据序列被分配给下一回合函数的d/2个数据序列而没有重叠。
存在满足这些条件(1)至(3)的大量分配模式。特别地,在输入数据的划分数d较大的情况下,分配模式数量非常大,因此,不易选择分配模式。另外,根据分配方法,实现成本可能变得较高。
在以下,提出了预先限制可选择分配模式并且可以降低实现成本的分配方法。该所提出的方法是通过进一步改进以上章节[3]中的描述的分配方法而开发的。
首先,在通过在第(i+1)个阶段中对d组n/d位数据(通过以d划分输入数据而获得)中的每组进行再划分而获得的d/2组数据当中的第j组数据Xi+1[j]中,将通过顺序组合满足等式j=(d/2)s+t的数据而形成的数据XXi+1[t]的数据序列以等于(2t-1)组数据的量而循环向左移位。所得到的数据序列以ZZi+1[t]来表示。
具体地,
由于ZZi+1[1]=XXi+1[1]<<<1,
因此建立以下关系。
ZZi+1[1]=XXi+1[1]<<<1
=(Xi+1[1]||Xi+1[1×d/2+1]||Xi+1[2×d/2+1]||...||Xi+1[(d-1)×d/2+1])<<<1
=Xi+1[1×d/2+1]||Xi+1[2×d/2+1]||...||Xi+1[(d-1)×d/2+1]||Xi+1[1]
利用如上定义的YYi[j]和ZZi+1[j],从每个YYi[j]中逐个选择ZZi+1[j]而没有重叠,并且进行连接。以此方式,可以确定从第i个回合的数据到第(i+1)个回合的数据的数据置换。
图30示出了输入数据的划分数d是6的示例情况。
图30中的各个中间变量被定义为如下。
中间变量是以下三种数据。
YYi[t]:通过顺序组合第i个阶段中的d/2组划分输出数据当中的第j组数据Yi[j](j是不小于1并且不大于d2/2的整数)中满足等式j=(d/2)s+t(s是不小于0并且不大于(d-1)的整数,t是不小于1并且不大于d/2的整数)的数据而生成的数据。
XXi+1[t]:通过顺序组合在第(i+1)个阶段中通过对d组n/d位数据(通过以d划分输入数据而获得)中的每组进行划分而获得d/2组数据当中的第j组数据Xi+1[j]中满足等式j=(d/2)s+t(s是不小于0并且不大于(d-1)的整数,t是不小于1并且不大于d/2的整数)的数据而生成的数据。
ZZi+1[t]:通过以等于(2t-1)组数据的量将数据序列XXi+1[t]循环向左移位而获得的数据序列。
这些是中间变量。
如图30所示,在输入数据的划分数d是6的情况下,t是不小于1并且不大于d/2的整数,并且t被设置为1、2和3中的每个。中间变量如下。
与第i个阶段的输出数据对应的中间变量YYi[t]:YYi[1]、YYi[2]和YYi[3]
与第(i+1)个阶段的移位前输入数据对应的中间变量XXi+1[t]:XXi+1[1]、XXi+1[2]和XXi+1[3]
与第(i+1)个阶段的移位后输入数据对应的中间变量ZZi+1[t]:ZZi+1[1]、ZZi+1[2]和ZZi+1[3]
这些如下所述来计算。
与第i个阶段的输出数据对应的中间变量YYi[t]:YYi[1]、YYi[2]和YYi[3]被设置为如下。
YYi[1]=Yi[1]||Yi[4]||Yi[7]||Yi[10]||Yi[13]||Yi[16],
YYi[2]=Yi[2]||Yi[5]||Yi[8]||Yi[11]||Yi[14]||Yi[17],
YYi[3]=Yi[3]||Yi[6]||Yi[9]||Yi[12]||Yi[15]||Yi[18]。
与第(i+1)个阶段的移位前输入数据对应的中间变量XXi+1[t]:XXi+1[1]、XXi+1[2]和XXi+1[3]被设置为如下。
XXi+1[1]=Xi+1[1]||Xi+1[4]||Xi+1[7]||Xi+1[10]||Xi+1[13]||Xi+1[16],
XXi+1[2]=Xi+1[2]||Xi+1[5]||Xi+1[8]||Xi+1[11]||Xi+1[14]||Xi+1[17],
XXi+1[3]=Xi+1[3]||Xi+1[6]||Xi+1[9]||Xi+1[12]||Xi+1[15]||Xi+1[18]。
与第(i+1)个阶段的移位后输入数据对应的中间变量ZZi+1[t]:ZZi+1[1]、ZZi+1[2]和ZZi+1[3]被设置为如下。
ZZi+1[1]=Xi+1[4]||Xi+1[7]||Xi+1[10]||Xi+1[13]||Xi+1[16]||Xi+1[1],
ZZi+1[2]=Xi+1[11]||Xi+1[14]||Xi+1[17]||Xi+1[2]||Xi+1[5]||Xi+1[8],
ZZi+1[3]=Xi+1[18]||Xi+1[3]||Xi+1[6]||Xi+1[9]||Xi+1[12]||Xi+1[15]。
这里,例如,如图30所示,YYi[1]连接到ZZi+1[1],YYi[2]连接到ZZi+1[2],并且YYi[3]连接到ZZi+1[3]。在该情况下,使用图31的上半部中的(a)所示的数据分配方法。
在例如YYi[1]连接到ZZi+1[2],YYi[2]连接到ZZi+1[3],并且YYi[3]连接到ZZi+1[1]的情况下,使用图31的下半部中的(b)所示的数据分配方法。
如上所述,该实施例的加密处理装置的加密处理单元的设置或者确定先前阶段的回合计算的输出数据与下一阶段的回合计算的再划分数据之间的输入-输出关系的连接结构选自如下连接结构:其以作为通过对d×(n/d)组再划分数据进行组合而生成的数据的(d/2)组2n/d位数据为单位,d×(n/d)组再划分数据是通过对具有回合计算的输出数据的行中的n/d位数据执行再划分操作而生成的。
以上述方式确定的数据分配方法满足以上章节[3]中描述的条件,即:
(1)F函数输入侧数据序列被不变地分配给下一回合函数的异或侧数据序列;
(2)异或侧数据序列被不变地分配给下一回合函数的F函数输入侧数据序列;以及
(3)被划分成d/2组的每一个数据序列被分配给下一回合函数的d/2个数据序列而没有重叠。
满足这些条件(1)至(3)。
因此,可以改进扩散特性。
另外,根据以上章节[3]中描述的方法,需要从(d/2×d/2)种数据序列逐个选择并分配(d/2×d/2)种数据序列(实际上,该操作需要再重复一次)。另一方面,根据该方法,从d/2种数据序列逐个选择并分配d/2种数据序列。因此,可以大大减小从中进行选择的模式。此外,通过以上方法选择的每种分配方法具有数据分配的规则性,因此可以降低实现成本。
[5.具有对合特性的示例结构]
传统Feistel结构中的加密函数可以如图32来表示。传统Feistel结构中的解密函数可以如图33来表示。
从图32和图33所示的结构可以看出,可以仅通过适当地更换要插入到F函数的扩大密钥(回合密钥)的顺序而将完全相同的函数用作加密函数和解密函数。可以以除了扩大密钥(回合密钥)的插入之外相同的结构来实现加密函数和解密函数的特性称为对合特性。
在具有对合特性的加密处理结构中,如果适当地更换扩大密钥(回合密钥)的顺序则加密函数可以用作解密函数,并且不需要准备解密函数。因此,可以认为,与没有对合特性的加密术相比,通常可以以较低实现成本来实现具有对合特性的加密术。
另外,使用相同的函数作为加密函数和解密函数具有如下优点:例如,可以使得验证成本减半(加密函数或解密函数任一个中的验证将足够),并且可以使得代码大小减半。
如上所述,在图32和图33所示的划分数d为2的传统Feistel结构中,可以仅通过适当地更换要插入到F函数的扩大密钥(回合密钥)的顺序而将完全相同的函数用作加密函数和解密函数,并且可以容易地形成具有对合特性的结构。
然而,在划分数d不是2的一般化Feistel结构(一般化Feistel网络)中,无法容易地实现对合特性。
首先描述在一个阶段中使用d/2个F函数的d行一般化Feistel结构的对合特性(d>2)。
已知,在诸如图14所示的上述结构的4行一般化Feistel结构中,如果处理回合数是奇数,则可以实现对合特性。例如,以三个回合形成的4行一般化Feistel结构具有对合特性(同样适用于5回合结构)。然而,在处理回合数是偶数的情况下,没有实现对合特性。
d行一般化Feistel结构通常仅在通过以划分数d划分组成回合数时所获得的余数是1或(d/2)+1的情况下才具有对合特性。
例如,图14所示的4行一般化Feistel结构仅在以等于4的划分数d划分组成回合数时所获得的余数是1或(d/2)+1=(4/2)+1=3的情况下才具有对合特性。
具体地,仅在组合数是1、3、5、7、9、…或者组成回合数是奇数的情况下才实现对合特性。
另外,具有等于6的划分数d的6行一般化Feistel结构仅在以等于6的划分数d划分组成回合数时所获得的余数是1或(d/2)+1=(6/2)+1=4的情况下才具有对合特性。
具体地,仅在组成回合数是1、4、7、10、13、…或者组成回合数是这些数之一的情况下才实现对合特性。
一般地,如上所述,d行一般化Feistel结构与组成回合数无关而具有对合特性是不成立的。
图34是示出如在以上章节[3.根据本公开的具有改进扩散特性的示例结构]中所述的可以通过回合计算之间的数据再划分和重组操作实现出色的扩散特性的4行结构中的方法的图。
根据该方法,仅当组成回合数是1+3n(n是等于或大于0的整数)时才实现对合特性。
组成回合数与安全性和实现性能大大相关。在具有对合特性的结构中,与组成回合数无关,可以以更灵活的方式来设置组成回合数,并且可以灵活地改变安全性和实现性能。此外,可以借助于对合特性而执行小尺寸实现。
描述了设计如下回合间置换的方法:其实现了较好的扩散特性而没有增加实现成本,并且还具有对合特性,且与组成回合数无关。
以下描述的方法是用于为如在以上章节[3.根据本公开的具有改进扩散特性的示例结构]中所描述的具有出色扩散特性的结构进一步提供对合特性的方法。
现在参照图35,描述了该方法的示例。根据该方法,如图35所示,重复执行以下步骤1至3的过程。
(步骤1)
首先,在如传统结构一样具有划分数d的d行一般化Feistel结构中,根据划分数d将n位输入数据划分成d组n/d位数据,并且将各组n/d位数据输入到各个划分行。对每组n/d位数据执行F函数处理和异或运算。
此时输入到F函数的数据序列被称为F函数输入侧数据序列,并且经受异或的数据序列被称为异或侧数据序列。
在F函数输入侧数据序列当中,例如,从左侧开始,最左侧的F函数输入侧数据序列以L(0)来表示,并且剩余F函数输入侧数据序列依次以L(1)、...和L((d/2)-1)来表示。
同样地,例如,从左侧开始,异或侧数据序列依次以R(0)、...和R((d/2)-1)来表示。
(步骤2)
此后,进一步将作为通过每个序列(每行)传递的数据的n/d位数据再划分成d/2组数据。该再划分可以不是等分。
F函数输入侧数据序列的再划分数据和异或侧数据序列的再划分数据分别以L(i)j和R(i)j来表示。
这里,i表示每个序列(每行)的标识符(编号),并且j表示一个序列(一行)中的每组再划分数据的标识符(编号)。
例如,通过将最左侧的F函数输入侧数据序列再划分成d/2组而获得的数据的最左侧数据以L(0)0来表示,并且剩余再划分数据依次以L(0)1、...和L(0)d/2-1来表示。
然后根据以下规则对每个序列(每行)中被再划分成d/2组的数据进行分配。
规则(2-1)
分配最左侧的F函数输入数据序列或者数据L(0)(i=0)。
将L(0)0分配给下一回合函数的R(0)0,并且将L(0)1分配给下一回合函数的R(1)1。同样地,将L(0)i分配给R(i)i,直至i变为(d/2)-1为止。
因此,建立以下:L(0)0=R(0)0,L(0)1=R(1)1,L(0)2=R(2)2,...。
规则(2-2)
接下来,分配数据L(1)。
将L(1)0分配给下一回合函数的R(1)0,并且将L(1)1分配给下一回合函数的R(2)1。同样地,将L(1)i分配给R((i+1)mod d/2)i,直至i变为(d/2)-1为止。
规则(2-3)
直到数据L((d/2)-1)重复与上述2相同的操作。即,将L(i)j分配给下一回合的R((i+j)mod d/2)j(i和j不小于0并且不大于(d/2)-1)。
规则(2-4)
对异或侧数据序列重复与上述相同的操作。具体地,将R(i)j分配给下一回合函数的L(((d/2)+i-j)mod d/2)j。这里,i和j不小于0并且不大于(d/2)-1。
(步骤3)
在上述分配之后,将被划分成d/2组的每组数据集成为一组数据。
根据执行回合计算的次数而重复上述操作所需次数。
图36示出了在4行(d=4)的情况下执行上述操作的示例结构。图37示出了在6行(d=6)的情况下执行上述操作的示例结构。
在图36和图37所示的结构中,根据以上步骤2中描述的规则(2-1)至(2-4)而将每个序列(每行)中被再划分成d/2组的数据再分配给下一回合。通过再划分数据和再分配结构,该方法实现了对合特性,而与组成回合数无关。
图38和图39示出了如下构造方法:其与上述示例结构的构造方法不同,但是实现了对合特性而与组成回合数无关。在以上章节[3]中描述的并且在图21中示出的方法是当组成回合数是奇数时实现对合特性的结构的示例。
如上所述,在加密处理单元中对各个回合计算的再划分数据进行重构的操作中,根据上述预定规则将先前阶段的回合函数输入侧序列的再划分数据分配给下一阶段的异或侧序列,并且根据上述预定规则将先前阶段的异或侧序列的再划分数据分配给下一阶段的回合函数输入侧序列。这样的结构可以是具有对合特性的结构,其中,关于对合特性,在加密操作和解密操作中可以使用相同的结构。
[6.加密处理装置的示例结构]
最后,描述执行根据上述实施例的加密处理的加密处理装置的实施例。
执行根据上述实施例的加密处理的加密处理装置可以安装在执行加密处理的各种信息处理装置中。具体地,加密处理装置可以用在执行数据处理和通信处理操作中的加密处理的各种装置(诸如PC、电视机、记录器、播放器、通信装置、RFID、智能卡、传感器网络装置、电池/蓄电池认证模块、健康/医疗装备和自含式网络装置)中。
图40示出了作为根据本公开的执行加密处理的装置示例的IC模块700的示例结构。上述操作可以在各种信息处理装置(诸如PC、IC卡和读取器/写入器)中执行。图40所示的IC模块700可以形成在任意这些各种装置中。
图40所示的CPU(中央处理单元)701是执行各种程序的处理器,这些程序用于开始和结束加密处理,控制数据传送/接收,控制各个部件之间的数据传递等。存储器702由存储要由CPU701执行的程序或固定数据(诸如计算参数)的ROM(只读存储器)或者用作要在CPU701的操作中执行的程序和在程序执行时变化的参数的存储区域和工作区域的RAM(随机存取存储器)等构成。存储器702还可以用作存储加密处理所需的密钥数据、要用在加密处理中的转换表(置换表)和要用在转换矩阵中的数据等的存储区域。数据存储区域优选地被形成为具有防篡改结构的存储器。
加密处理单元703通过使用上述加密处理结构或包括例如一般化Feistel结构或Fiestel结构的对称密钥块加密处理算法而执行加密操作和解密操作。
尽管加密处理单元在这里被描述为单独的模块,但是可不提供这样的独立加密处理模块。相反,例如,加密处理程序可存储在ROM中,并且CPU701可读取并执行存储在ROM中的程序。
随机数生成器704执行在生成加密处理所需的密钥时所需要的随机数的操作。
传送/接收单元705是与外部执行数据通信的数据通信处理单元。例如,传送/接收单元705与IC模块(诸如读取器/写入器)执行数据通信并且输出在IC模块中生成的密文,或者从外部读取器/写入器等接收数据输入。
以上实施例中描述的加密处理装置不仅可以用在对作为输入数据的明文进行加密的加密操作中,而且可以用在用于从作为输入数据的密文恢复明文的解密操作中。
上述实施例中描述的结构可以用在加密操作和解密操作中。
[根据本公开的结构的总结]
已参照以上具体实施例详细描述了本公开的实施例。然而,对本领域技术人员来说明显的是,在不背离本公开的范围的情况下,可以对实施例进行修改和变更。简言之,本发明在这里被公开作为示例,并且不应限于此。在理解本公开的范围时应该将权利要求纳入考虑。
本说明书中公开的技术可以为以下形式。
(1)一种加密处理装置,包括:
加密处理单元,被配置成将要进行数据处理的数据的组成位划分成行并输入,并且对各行中的数据重复执行使用回合函数的数据转换操作,
其中,所述加密处理单元具有如下结构:所述结构被设计成将通过以划分数d对作为输入数据的n位数据进行划分而形成的n/d位数据输入到各行,并且重复执行包括使用所述回合函数的所述数据转换操作的计算作为回合计算,以及
所述加密处理单元执行如下操作:在所述操作中,将具有所述回合计算的输出数据的每行的n/d位数据再划分成d/2组数据,并且对再划分的数据进行重组以重构与先前阶段的回合计算的输出数据不同的d组n/d位数据,并且将重构的数据设置为下一阶段的回合计算的输入数据。
(2)根据(1)所述的加密处理装置,其中,所述回合函数包括F函数和所述F函数的输出或输入与其它行的数据之间的异或运算,所述F函数包括使用回合密钥的计算、非线性转换和线性转换。
(3)根据(1)或(2)所述的加密处理装置,其中,所述加密处理单元通过执行满足以下分配条件(1)至(3)的操作而将先前阶段的回合计算的结果设置为下一阶段的回合计算的输入:
(1)F函数输入侧数据序列被不变地分配给下一回合函数的异或侧数据序列,
(2)异或侧数据序列被不变地分配给下一回合函数的F函数输入侧数据序列,以及
(3)被划分成d/2组的每一个数据序列被分配给下一回合函数的d/2个数据序列而没有重叠。
(4)根据(1)至(3)中任一项所述的加密处理装置,其中,所述加密处理单元具有输入数据的划分数d等于或大于4的一般化Feistel结构。
(5)根据(1)至(4)中任一项所述的加密处理装置,其中,所述加密处理单元执行如下操作:在所述操作中,通过将具有所述回合计算的输出数据的d行中的每行的n/d位数据再划分成d/2组数据而生成d×(n/d)组再划分数据,对选自与所述划分数d对应的d行当中的不同行的d/2组再划分数据进行重组以重构与先前阶段的回合计算的输出数据不同的d组n/d位数据,并且将重构的数据设置为下一阶段的回合计算的输入数据。
(6)根据(1)至(5)中任一项所述的加密处理装置,其中,当所有输出位处于满足以下两个条件的扩散状态时或者当所述输出位以关于输入位的关系式来表示时,所述加密处理单元具有实现满足以下两个条件的完全扩散状态的结构:
(条件1)所有输入位都包括在所述关系式中,以及
(条件2)所有所述输入位都已通过所述回合函数至少一次。
(7)根据(1)至(6)中任一项所述的加密处理装置,其中,所述加密处理单元通过四个回合的回合计算而实现所述完全扩散状态。
(8)根据(1)至(7)中任一项所述的加密处理装置,其中,确定先前阶段的回合计算的输出数据与下一阶段的回合计算的再划分数据之间的输入-输出关系的连接结构是选自如下连接结构的连接结构:所述连接结构以作为通过组合d×(n/d)组再划分数据而生成的数据的(d/2)组2n/d位数据为单位,所述d×(n/d)组再划分数据是通过对具有所述回合计算的输出数据的行中的n/d位数据执行再划分操作而生成的。
(9)根据(1)至(8)中任一项所述的加密处理装置,其中,所述加密处理单元具有能够适用于加密操作和解密操作两者的对合特性。
(10)根据(1)至(9)中任一项所述的加密处理装置,其中,用于在所述加密处理单元中对各个回合计算的再划分数据进行重构的操作包括:根据预定规则将先前阶段的回合函数输入侧序列的再划分数据分配给下一阶段的异或侧序列;以及根据预定规则将先前阶段的异或侧序列的再划分数据分配给下一阶段的回合函数输入侧序列。
(11)根据(1)至(10)中任一项所述的加密处理装置,其中,所述加密处理单元执行:用于将作为输入数据的明文转换为密文的加密操作,或者用于将作为输入数据的密文转换为明文的解密操作。
此外,要在上述装置和下图中实现的处理方法和用于执行上述操作的程序包括在根据本公开的结构中。
该说明书中描述的操作序列可以由硬件、软件或者硬件和软件的组合来执行。在操作由软件来执行的情况下,其中记录有处理序列的程序可被安装到并入专用硬件中的计算机的存储器中,或者可被安装到可以执行各种操作的通用计算机中。然后执行程序。例如,程序可以预先记录在记录介质上。程序不仅可以从记录介质安装到计算机中,而且可以经由网络(诸如LAN(局域网)或因特网)来接收并且被安装到诸如内部硬盘的记录介质中。
该说明书中描述的各种操作不一定按所描述的序列顺序来执行,而是可根据执行操作的装置的处理能力或者在必要时而并行地或彼此独立地来执行。在该说明书中,系统是装置的逻辑集成,并且每个组成装置不一定位于同一壳体中。
工业应用性
如上所述,利用根据本公开的实施例的结构,实现了具有改进扩散特性和高安全性水平的加密处理。
具体地,加密处理单元将要进行数据处理的数据的组成位划分成行并输入,并且对各行的数据重复执行使用回合函数的数据转换操作。加密处理单元将通过以划分数d对作为输入数据的n位数据进行划分而获得的n/d位数据输入到各行,并且重复执行作为包括使用回合函数的数据转换操作的计算的回合计算。将具有回合计算的输出数据的每行中的n/d位数据划分成d/2组数据,并且对划分数据进行组合以重构与先前阶段的回合计算的输出数据不同的d组n/d位数据。将重构数据设置为下一阶段的回合计算的输入数据。利用该结构,可以实现具有改进扩散特性和高安全性水平的加密处理。
附图标记列表
700 IC模块
701 CPU(中央处理单元)
702 存储器
703 加密处理单元
704 随机数生成器
705 传送/接收单元

Claims (13)

1.一种加密处理装置,包括:
加密处理单元,被配置成将要进行数据处理的数据的组成位划分成多行并输入,并且对各行中的数据重复执行使用回合函数的数据转换操作,
其中,所述加密处理单元具有如下结构:所述结构被设计成将通过以划分数d对作为输入数据的n位数据进行划分而形成的n/d位数据输入到各行,并且重复执行包括使用所述回合函数的所述数据转换操作的计算作为回合计算,以及
所述加密处理单元执行如下操作:在所述操作中,将具有所述回合计算的输出数据的每行的n/d位数据再划分成d/2组数据,并且对再划分的数据进行重组以重构与先前阶段的回合计算的输出数据不同的d组n/d位数据,并且将重构的数据设置为下一阶段的回合计算的输入数据。
2.根据权利要求1所述的加密处理装置,其中,所述回合函数包括F函数和所述F函数的输出或输入与其它行的数据之间的异或运算,所述F函数包括使用回合密钥的计算、非线性转换和线性转换。
3.根据权利要求2所述的加密处理装置,其中,所述加密处理单元通过执行满足以下分配条件(1)至(3)的操作而将先前阶段的回合计算的结果设置为下一阶段的回合计算的输入:
(1)F函数输入侧数据序列被不变地分配给下一回合函数的异或侧数据序列,
(2)异或侧数据序列被不变地分配给下一回合函数的F函数输入侧数据序列,以及
(3)被划分成d/2组的每一个数据序列被分配给下一回合函数的d/2个数据序列而没有重叠。
4.根据权利要求1所述的加密处理装置,其中,所述加密处理单元具有输入数据的划分数d等于或大于4的一般化Feistel结构。
5.根据权利要求1所述的加密处理装置,其中,所述加密处理单元执行如下操作:在所述操作中,通过将具有所述回合计算的输出数据的d行中的每行的n/d位数据再划分成d/2组数据而生成d×(n/d)组再划分数据,对选自与所述划分数d对应的d行当中的不同行的d/2组再划分数据进行重组以重构与先前阶段的回合计算的输出数据不同的d组n/d位数据,并且将重构的数据设置为下一阶段的回合计算的输入数据。
6.根据权利要求1所述的加密处理装置,其中,当所有输出位处于满足以下两个条件的扩散状态时或者当所述输出位以关于输入位的关系式来表示时,所述加密处理单元具有实现满足以下两个条件的完全扩散状态的结构:
条件1所有输入位都包括在所述关系式中,以及
条件2所有所述输入位都已通过所述回合函数至少一次。
7.根据权利要求6所述的加密处理装置,其中,所述加密处理单元通过四个回合的回合计算而实现所述完全扩散状态。
8.根据权利要求1所述的加密处理装置,其中,确定先前阶段的回合计算的输出数据与下一阶段的回合计算的再划分数据之间的输入-输出关系的连接结构是选自如下连接结构的连接结构:所述连接结构以作为通过组合d×(n/d)组再划分数据而生成的数据的(d/2)组2n/d位数据为单位,所述d×(n/d)组再划分数据是通过对具有所述回合计算的输出数据的行中的n/d位数据执行再划分操作而生成的。
9.根据权利要求1所述的加密处理装置,其中,所述加密处理单元具有能够适用于加密操作和解密操作两者的对合特性。
10.根据权利要求9所述的加密处理装置,其中,用于在所述加密处理单元中对各个回合计算的再划分数据进行重构的操作包括:
根据预定规则将先前阶段的回合函数输入侧序列的再划分数据分配给下一阶段的异或侧序列;以及
根据预定规则将先前阶段的异或侧序列的再划分数据分配给下一阶段的回合函数输入侧序列。
11.根据权利要求1所述的加密处理装置,其中,所述加密处理单元执行:
用于将作为输入数据的明文转换为密文的加密操作,或者
用于将作为输入数据的密文转换为明文的解密操作。
12.一种在加密处理装置中实现的加密处理方法,
所述加密处理方法包括:
加密处理步骤,将要进行数据处理的数据的组成位划分成多行并输入,并且对各行中的数据重复执行使用回合函数的数据转换操作,
其中,所述加密处理步骤包括:将通过以划分数d对作为输入数据的n位数据进行划分而形成的n/d位数据输入到各行;以及重复执行包括使用所述回合函数的所述数据转换操作的计算作为回合计算,以及
所述加密处理步骤包括如下操作:在所述操作中,将具有所述回合计算的输出数据的每行的n/d位数据再划分成d/2组数据,对再划分的数据进行重组以重构与先前阶段的回合计算的输出数据不同的d组n/d位数据,并且将重构的数据设置为下一阶段的回合计算的输入数据。
13.一种用于使得加密处理装置执行加密处理的程序,
所述程序使得加密处理单元执行:
加密处理步骤,将要进行数据处理的数据的组成位划分成多行并输入,并且对各行中的数据重复执行使用回合函数的数据转换操作,
其中,所述加密处理步骤包括:
将通过以划分数d对作为输入数据的n位数据进行划分而形成的n/d位数据输入到各行;以及重复执行包括使用所述回合函数的所述数据转换操作的计算作为回合计算,以及
所述加密处理步骤包括如下操作:在所述操作中,将具有所述回合计算的输出数据的每行的n/d位数据再划分成d/2组数据,对再划分的数据进行重组以重构与先前阶段的回合计算的输出数据不同的d组n/d位数据,并且将重构的数据设置为下一阶段的回合计算的输入数据。
CN201280014164.9A 2011-03-28 2012-02-20 加密处理装置、加密处理方法 Active CN103444124B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2011069182 2011-03-28
JP2011-069182 2011-03-28
JP2011-207702 2011-09-22
JP2011207702A JP5682525B2 (ja) 2011-03-28 2011-09-22 暗号処理装置、および暗号処理方法、並びにプログラム
PCT/JP2012/053930 WO2012132620A1 (ja) 2011-03-28 2012-02-20 暗号処理装置、および暗号処理方法、並びにプログラム

Publications (2)

Publication Number Publication Date
CN103444124A true CN103444124A (zh) 2013-12-11
CN103444124B CN103444124B (zh) 2016-03-16

Family

ID=46930381

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280014164.9A Active CN103444124B (zh) 2011-03-28 2012-02-20 加密处理装置、加密处理方法

Country Status (13)

Country Link
US (1) US8983062B2 (zh)
EP (1) EP2693681A4 (zh)
JP (1) JP5682525B2 (zh)
KR (1) KR101770874B1 (zh)
CN (1) CN103444124B (zh)
AU (1) AU2012235129B2 (zh)
BR (1) BR112013024250A2 (zh)
CA (1) CA2827761C (zh)
MY (1) MY163144A (zh)
RU (1) RU2598327C2 (zh)
SG (1) SG193544A1 (zh)
TW (1) TWI552121B (zh)
WO (1) WO2012132620A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4561252B2 (ja) 2004-09-03 2010-10-13 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
CN103259656B (zh) * 2012-11-07 2016-08-31 鹤山世达光电科技有限公司 作品传输方法和系统
JP2015191106A (ja) 2014-03-28 2015-11-02 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
US10425226B2 (en) 2014-03-28 2019-09-24 Sony Corporation Encryption processing device and encryption processing method
JP6292107B2 (ja) * 2014-12-01 2018-03-14 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
CN106027236B (zh) * 2016-05-20 2019-01-15 武汉天喻信息产业股份有限公司 一种抗侧信道分析的大数相减方法
US10797722B2 (en) 2016-06-10 2020-10-06 The Boeing Company System and method for providing hardware based fast and secure expansion and compression functions
US11418455B2 (en) 2020-08-31 2022-08-16 Micron Technology, Inc. Transparent packet splitting and recombining
US11539623B2 (en) 2020-08-31 2022-12-27 Micron Technology, Inc. Single field for encoding multiple elements
US11412075B2 (en) 2020-08-31 2022-08-09 Micron Technology, Inc. Multiple protocol header processing
US11296995B2 (en) * 2020-08-31 2022-04-05 Micron Technology, Inc. Reduced sized encoding of packet length field
US11360920B2 (en) 2020-08-31 2022-06-14 Micron Technology, Inc. Mapping high-speed, point-to-point interface channels to packet virtual channels

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999066669A2 (en) * 1998-06-15 1999-12-23 Rsa Security, Inc. Block ciphers with integer multiplication, data-dependent and fixed number of rotations in each round
WO2005025124A1 (en) * 2003-09-05 2005-03-17 Telecom Italia S.P.A. Secret-key-controlled reversible circuit and corresponding method of data processing
US20100266122A1 (en) * 2007-12-13 2010-10-21 Nec Corporation Encryption method, decryption method, device, and program

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5351299A (en) 1992-06-05 1994-09-27 Matsushita Electric Industrial Co., Ltd. Apparatus and method for data encryption with block selection keys and data encryption keys
JPH06118872A (ja) * 1992-10-09 1994-04-28 Matsushita Electric Ind Co Ltd データ撹乱装置
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 ソニー株式会社 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
JP2008058830A (ja) * 2006-09-01 2008-03-13 Sony Corp データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
JP4967544B2 (ja) * 2006-09-01 2012-07-04 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP5532560B2 (ja) * 2008-08-25 2014-06-25 ソニー株式会社 データ変換装置、およびデータ変換方法、並びにプログラム
CN102713994B (zh) * 2009-10-27 2015-07-01 日本电气株式会社 加密装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999066669A2 (en) * 1998-06-15 1999-12-23 Rsa Security, Inc. Block ciphers with integer multiplication, data-dependent and fixed number of rotations in each round
WO2005025124A1 (en) * 2003-09-05 2005-03-17 Telecom Italia S.P.A. Secret-key-controlled reversible circuit and corresponding method of data processing
US20100266122A1 (en) * 2007-12-13 2010-10-21 Nec Corporation Encryption method, decryption method, device, and program

Also Published As

Publication number Publication date
MY163144A (en) 2017-08-15
CN103444124B (zh) 2016-03-16
CA2827761C (en) 2019-01-08
EP2693681A1 (en) 2014-02-05
AU2012235129B2 (en) 2015-12-24
BR112013024250A2 (pt) 2018-06-19
US20140010364A1 (en) 2014-01-09
JP5682525B2 (ja) 2015-03-11
KR20140006961A (ko) 2014-01-16
AU2012235129A1 (en) 2013-09-05
EP2693681A4 (en) 2014-11-05
KR101770874B1 (ko) 2017-08-23
WO2012132620A1 (ja) 2012-10-04
JP2012215813A (ja) 2012-11-08
RU2598327C2 (ru) 2016-09-20
SG193544A1 (en) 2013-10-30
TWI552121B (zh) 2016-10-01
TW201239831A (en) 2012-10-01
RU2013142989A (ru) 2015-03-27
CA2827761A1 (en) 2012-10-04
US8983062B2 (en) 2015-03-17

Similar Documents

Publication Publication Date Title
CN103444124A (zh) 加密处理装置、加密处理方法和程序
CN103078734B (zh) 解密处理装置、方法和信息处理装置
US7659837B2 (en) Operation processing apparatus, operation processing control method, and computer program
CN102594546B (zh) 信息处理装置
CN101162557B (zh) 密码处理装置和密码处理方法
CN101512620B (zh) 密码处理装置和密码处理方法
CN102594545B (zh) 信息处理装置
CN103621007A (zh) 加密处理装置、加密处理方法和程序
CN101512619A (zh) 密码处理装置和密码处理方法、以及计算机程序
CN107070630A (zh) 一种aes算法的快速安全硬件结构
CN101009554A (zh) 一种抗功耗攻击的字节替换电路
CN101944992B (zh) 用于加密和解密数据块的设备和方法
CN108476132A (zh) 用于加密操作的密钥序列生成
CN102571330A (zh) 一种基于随机函数的分组加密算法的构造方法
CN104380651A (zh) 生成伪随机序列的方法和对数据流进行编码或解码的方法
CN102624520B (zh) 基于aes的192比特位密钥扩展系统及方法
Khatri–Valmik et al. Blowfish algorithm
CN102664730B (zh) 基于高级加密标准aes的128比特位密钥扩展方法
CN103444125A (zh) 加密处理设备、加密处理方法和程序
CN106059746B (zh) 一种抗任意阶侧信道攻击的掩码防护方法及系统
Murtaza et al. Fortification of aes with dynamic mix-column transformation
Jovanovic et al. Multi-stage fault attacks on block ciphers
Ray et al. Encryption algorithm for block ciphers based on programmable cellular automata
Abdulwahed Chaos-Based Advanced Encryption Standard
Courtois et al. Propagation of truncated differentials in GOST

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