CN106133810B - 加密处理装置、加密处理方法 - Google Patents

加密处理装置、加密处理方法 Download PDF

Info

Publication number
CN106133810B
CN106133810B CN201580015013.9A CN201580015013A CN106133810B CN 106133810 B CN106133810 B CN 106133810B CN 201580015013 A CN201580015013 A CN 201580015013A CN 106133810 B CN106133810 B CN 106133810B
Authority
CN
China
Prior art keywords
key
conversion
encryption processing
section
round
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
CN201580015013.9A
Other languages
English (en)
Other versions
CN106133810A (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 CN106133810A publication Critical patent/CN106133810A/zh
Application granted granted Critical
Publication of CN106133810B publication Critical patent/CN106133810B/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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/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
    • 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/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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
    • 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)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

实现了一种安全性好、抗各种攻击性能高的加密处理。一种加密处理装置包括:加密处理部,其配置为对输入数据重复进行轮运算并且生成输出数据;以及密钥调度部,其配置为将待由所述加密处理部应用于所述轮运算中的轮密钥输出至所述加密处理部。所述加密处理部具有对合性质,在所述对合性质中,顺序地执行数据转换函数E和所述数据转换函数E的反函数E‑1;并且所述加密处理部执行所述轮运算,在所述轮运算中,在所述函数E和所述反函数E‑1中的仅一个中一次或者多次应用常数。所述常数配置为满足如下条件的状态:由与输入有所述常数的所述异或部相邻位置处的所述线性转换处理部在所述线性转换处理中应用的对所述线性转换矩阵的矩阵运算产生的状态的所有构成元素均非零。

Description

加密处理装置、加密处理方法
技术领域
本公开涉及一种加密处理装置、加密处理方法,更具体地,涉及一种执行公用密钥系统加密的加密处理装置、加密处理方法。
背景技术
随着信息社会的发展,用于安全保护待处理信息的信息安全技术已经变得更加重要。加密技术是信息安全技术的其中一个构成要素。目前,加密技术用于各种产品和系统。
存在各种加密处理算法。作为一种基础技术,存在一种称为公用密钥块加密的技术。在公用密钥块加密中,加密密钥和解密密钥是公用的。在加密处理和解密处理中,由公用密钥生成多个密钥,并且,在某个块单元中,例如,在64位、128位、256位等块数据单元中,重复执行数据转换处理。
作为代表性的公用密钥块加密算法,存在数据加密标准(DES)和高级加密标准(AES),该数据加密标准是过去的美国标准,而该高级加密标准是当前的美国标准。此外,目前继续提出各种类型的公用密钥块加密技术。在2007年由索尼公司(Sony Corporation)提出的CLEFIA是一种公用密钥块加密技术。
作为相关领域的公开了公用密钥块加密的技术,例如,存在专利文献1(IP2012-215813A)。
这种公用密钥块加密算法配置为主要包括加密处理部和密钥调度部,该加密处理部包括重复转换输入数据的轮函数执行部,该密钥调度部生成轮密钥,该轮密钥应用于轮函数部的各轮中。该密钥调度函数首先基于作为私人密钥的总密钥(主密钥)生成位数增加了的扩展密钥,并且基于所生成的扩展密钥生成应用于该加密处理部的各轮函数部的轮密钥(子密钥)。
作为执行这种算法的具体结构,熟知的有重复执行具有线性转换部和非线性转换部的轮函数的结构。例如,代表性结构有代换-置换网络(SPN)结构、Feistel结构和扩展Feistel结构。
这些结构全都是通过重复执行具有线性转换部和非线性转换部的轮函数来将明文转换成密文的结构。
引文列表
专利文献
专利文献1:JP 2012-215813A
发明内容
技术问题
作为试图对加密算法或者私人密钥进行解码的攻击,例如,存在差分攻击和线性攻击。对于加密处理装置而言,抗各种攻击的性能、高速处理、微型化等都是必需的。
鉴于上述的情况构思了本发明,例如,可以提供一种加密处理装置、加密处理方法、和在加密处理装置所需的各要素诸如安全性、高速和微型化方面实现改进的程序。
问题的解决方案
本公开的第一方面提供了一种加密处理装置,其包括:加密处理部,其配置为对输入数据执行轮运算并且生成输出数据;以及密钥调度部,其配置为将待由加密处理部应用于轮运算中的轮密钥输出至加密处理部。加密处理部具有对合性质,在对合性质中,顺序地执行数据转换函数E和数据转换函数E的反函数E-1;并且加密处理部执行轮运算,在轮运算中,在函数E和反函数E-1中的一个中一次或者多次应用常数。
进一步地,本公开的第二方面提供了一种加密处理装置,其包括:加密处理部,其配置为对输入数据执行轮运算并且生成输出数据;以及密钥调度部,其配置为将待由加密处理部应用于轮运算中的轮密钥输出至加密处理部。加密处理部具有对合性质,在对合性质中,顺序地执行数据转换函数E和数据转换函数E的反函数E-1;以及加密处理部具有如下配置:在函数E和反函数E-1中都执行轮运算,在轮运算中应用一次或者多次常数,并且在函数E和反函数E-1的非对应位置处设置常数应用位置。
进一步地,本公开的第三方面提供了一种在加密处理装置中执行的加密处理方法。该加密处理装置包括:加密处理部,其配置为对输入数据执行轮运算并且生成输出数据;以及密钥调度部,其配置为将待由加密处理部应用于轮运算中的轮密钥输出至加密处理部。加密处理部具有对合性质,在对合性质中,顺序地执行数据转换函数E和数据转换函数E的反函数E-1;并且加密处理部执行轮运算,在轮运算中,在函数E和反函数E-1中的一个中一次或者多次应用常数。
进一步地,本公开的第四方面提供了一种在加密处理装置中执行的加密处理方法。该加密处理装置包括:加密处理部,其配置为对输入数据执行轮运算并且生成输出数据;以及密钥调度部,其配置为将待由加密处理部应用于轮运算中的轮密钥输出至加密处理部。加密处理部具有对合性质,在对合性质中,顺序地执行数据转换函数E和数据转换函数E的反函数E-1;加密处理部具有如下配置:在函数E和反函数E-1的非对应位置处设置常数应用位置;并且加密处理部执行轮运算,在轮运算中,在函数E和反函数E-1中都一次或者多次应用常数。
进一步地,本公开的第五方面提供了一种使加密处理装置执行加密处理方法的程序。该加密处理装置包括:加密处理部,其配置为对输入数据执行轮运算并且生成输出数据;以及密钥调度部,其配置为将待由加密处理部应用于轮运算中的轮密钥输出至加密处理部。加密处理部具有对合性质,在对合性质中,顺序地执行数据转换函数E和数据转换函数E的反函数E-1;并且该程序使加密处理部执行轮运算,在轮运算中,在函数E和反函数E-1中的一个中一次或者多次应用常数。
进一步地,本公开的第六方面提供了一种使加密处理装置执行加密处理方法的程序。该加密处理装置包括:加密处理部,其配置为对输入数据执行轮运算并且生成输出数据;以及密钥调度部,其配置为将待由加密处理部应用于轮运算中的轮密钥输出至加密处理部。加密处理部具有对合性质,在对合性质中,顺序地执行数据转换函数E和数据转换函数E的反函数E-1;加密处理部具有如下配置:在函数E和反函数E-1的非对应位置处设置常数应用位置。并且,该程序使加密处理部执行轮运算,在轮运算中,在函数E和反函数E-1中都一次或者多次应用常数。
根据本公开的程序记录在记录介质中并且提供给能够执行各种程序代码的信息处理设备或者计算机系统。通处理序执行单元在信息处理设备或者计算机系统上执行该程序,实现了根据该程序的处理。
本公开的目的、特征和优点稍后将通过基于本公开的实施例和附图的更加详细的说明变得更加清晰。此外,本说明书中的系统并不限于逻辑上聚合了包含于同一个外壳内的多个装置的配置。
本发明的有益效果
根据本公开的实施例的配置,实现了安全性好、抗各种攻击性能高的加密处理。
具体地,该加密处理装置包括:加密处理部,其配置为对输入数据重复进行轮运算并且生成输出数据;以及密钥调度部,其配置为将待由加密处理部应用于轮运算中的轮密钥输出至加密处理部。该加密处理部具有对合性质,在对合性质中,顺序地执行数据转换函数E和数据转换函数E的反函数E-1;并且该加密处理部执行轮运算,在轮运算中,在函数E和反函数E-1中的仅一个中一次或者多次应用常数。该常数配置为满足如下条件的状态:由与输入有常数的异或部相邻位置处的线性转换处理部在线性转换处理中应用的对线性转换矩阵的矩阵运算产生的状态的所有构成元素均非零。
通过本配置实现了抗各种攻击性能提高的、安全性高的加密处理配置。
此外,在本说明书中描述的效果不是限制性的而仅是示例性的,并且可以存在另外的效果。
附图说明
图1是描述与k位密钥长度对应的n位公用密钥块加密算法的示意图。
图2是描述与图1中所示的与k位密钥长度对应的n位公用密钥块加密算法对应的解密算法的示意图。
图3是描述密钥调度部与加密处理部之间的关系的示意图。
图4是描述加密处理部的配置的示例的示意图。
图5是描述具有SPN结构的轮函数的示例的示意图。
图6是描述具有Feistel结构的轮函数的示例的示意图。
图7是描述具有扩展Feistel结构的轮函数的示例的示意图。
图8是描述具有扩展Feistel结构的轮函数的示例的示意图。
图9是描述非线性转换部的配置的示例的示意图。
图10是描述线性转换部的配置的示例的示意图。
图11是描述对状态(状态表达数据)的数据转换处理的示例的示意图。
图12是描述对状态的数据转换处理的示例的示意图。
图13是描述对状态的数据转换处理的示例的示意图。
图14是描述对状态的数据转换处理的示例的示意图。
图15是描述对状态的列扩散计算处理的示意图。
图16是描述对状态的列扩散计算处理的示意图。
图17是描述状态下的行扩散计算处理的示意图。
图18是描述对状态的行扩散计算处理的示意图。
图19是描述根据本公开的一个实施例的加密处理装置的配置的示例的示意图。
图20是描述根据本公开的一个实施例的加密处理装置的配置的示例的示意图。
图21是描述在加密处理部中执行的数据转换处理的示例的示意图。
图22是描述加密处理部的非线性转换部和线性转换部的处理和配置的示意图。
图23是描述加密处理部的线性转换部的处理和配置的示意图。
图24是描述应用于线性转换处理的矩阵的示意图。
图25是描述由线性转换部P1执行的列扩散运算的示意图。
图26是描述由线性转换部P2执行的行扩散运算的示意图。
图27是描述由线性转换部P3执行的行扩散运算的示意图。
图28是描述加密处理部的线性转换部的处理和配置的示意图。
图29是描述当加密处理部的线性转换部执行同一个线性转换处理时的配置的示意图。
图30是描述当加密处理部的线性转换部具有执行有不同线性转换处理的配置和执行有相同线性转换处理的配置时活跃S盒的数量的对比数据的示意图。
图31是描述当加密处理部的线性转换部具有执行有不同线性转换处理的配置和执行有相同线性转换处理的配置时活跃S盒的数量的对比数据的示意图。
图32是描述密钥调度部的处理和配置的示意图。
图33是描述密钥调度部的密钥转换部的处理和配置的示意图。
图34是描述密钥调度部的密钥转换部的处理和配置的示意图。
图35是描述密钥调度部的密钥转换部的转换处理中的数据扩散处理的示意图。
图36是描述用于执行密钥转换处理和不执行密钥转换处理的配置之间的对比的示意图。
图37是描述用于执行密钥转换处理和不执行密钥转换处理的配置之间的对比的示意图。
图38是描述用于执行密钥转换处理和不执行密钥转换处理的配置之间的对比的示意图。
图39是描述密钥调度部的处理和配置的示意图。
图40是描述当密钥转换函数不具有对合性质时密钥调度部的处理和配置的示意图。
图41是描述当密钥转换函数具有对合性质时密钥调度部的处理和配置的示意图。
图42是描述密钥调度部的处理和配置的示意图。
图43是描述密钥调度部的处理和配置的示意图。
图44是描述当密钥转换函数G具有全扩散性质时加密处理配置的示意图。
图45是描述当不执行密钥转换时的处理和配置的示意图。
图46是描述16位代换处理的示意图。
图47是描述应用了全扩散4位函数和16位代换函数的密钥转换处理的示例的示意图。
图48是描述应用了全扩散4位函数和16位代换函数的密钥转换处理的示例的示意图。
图49是描述应用了全扩散4位函数和16位代换函数的密钥转换处理的示例的示意图。
图50是描述应用了全扩散4位函数和16位代换函数的密钥转换处理的示例的示意图。
图51是描述应用了全扩散4位函数和16位代换函数的密钥转换处理的示例的示意图。
图52是描述用于分裂密钥的代换函数G1和G2的设置示例的示意图。
图53是描述在加密处理部中的常数输入配置的示例的示意图。
图54是描述具有对合性质的加密处理部的配置的示例的示意图。
图55是描述具有对合性质的加密处理部的配置的问题的示意图。
图56是描述在加密处理部中的常数输入配置的示例的示意图。
图57是描述在加密处理部中的常数输入配置的示例的示意图。
图58是描述在加密处理部中的常数输入配置的示例的示意图。
图59是描述在加密处理部中的常数输入配置的示例的示意图。
图60是描述基于活跃S盒的安全评估的示意图。
图61是描述基于活跃S盒的安全评估处理的示意图。
图62是描述基于活跃S盒的安全评估处理的示意图。
图63是描述在加密处理部中的常数输入配置的示例的示意图。
图64是描述加密处理部的非线性转换部的S盒的配置的示例的示意图。
图65是描述加密处理部的非线性转换部的S盒的配置的示例的示意图。
图66是描述加密处理部的非线性转换部的S盒的配置的示例的示意图。
图67是描述加密处理部的非线性转换部的S盒的线性转换层的配置的示例的示意图。
图68是描述加密处理部的非线性转换部的S盒的配置的示例的示意图。
图69是描述加密处理部的非线性转换部的S盒的配置的示例的示意图。
图70是描述加密处理部的非线性转换部的S盒的配置的示例的示意图。
图71是描述加密处理部的非线性转换部的S盒的配置的示例的示意图。
图72是描述加密处理部的配置的一个示例的示意图。
图73是图示用作加密处理装置的IC模块700的配置的示例的示意图。
图74是图示具有加密处理执行函数的智能手机的配置的示例的示意图。
具体实施方式
下面将参照附图对根据本公开的加密处理装置、加密处理方法和程序进行详细描述。将对以下项目进行描述:
1.公用密钥块加密的概述
2.公用密钥块加密中的安全指数
3.安全性提高了的公用密钥加密处理的整体配置概述
4.加密处理部的线性转换部的处理和配置
5.密钥调度部的处理和配置
5-1.密钥调度部的处理和配置的描述
5-2.基于密钥调度部的全扩散性质的效果
5-3.基于密钥转换部的对合性质的效果
5-3-a.展开安装中的效果
5-3-b.轮安装中的效果
5-4.根据本公开的密钥调度部的配置和效果的总结
5-5.密钥调度部的配置的其它示例
5-6.具有全扩散性质的密钥转换部的配置的示例
6.通过常数输入实现安全性提高的配置
6-1.相关技术中通过常数输入实现安全性提高的配置和问题
6-2.具有高安全性的常数输入配置的加密处理装置的配置
6-3.输入插入位置的变型
7.应用于非线性转换部的S盒的具体配置的示例
8.加密处理装置的具体示例
9.加密处理装置的安装示例
10.根据本公开的构造的总结
[1.公用密钥块加密的概述]
首先,将对公用密钥块加密的概述进行说明。
(1-1.公用密钥块加密)
下面将对本文中使用的公用密钥块加密(下文中有时也称为块加密)进行说明。
在块加密中,将明文P和密钥k作为输入,并且输出密文C。明文和密文的位长度称为块大小。例如,设置块大小=n。此处,n是任意整数值,并且是通常预先确定为各个块加密算法的一个值的值。具有块长度n的块加密也称为n位块加密。
密钥的位长度用k来指示。密钥可以采用任意整数值。公用密钥块加密算法对应一个密钥大小或者多个密钥大小。例如,假定某个块加密算法A具有可以对应块大小=128或者密钥大小k=128、k=192或者k=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时在某个决定步骤中输出应用于加密处理部的每一轮的轮密钥。另一个部分是“加密处理部”,该加密处理部在从密钥调度部输入明文P和轮密钥时执行数据转换并且输出密文C。
图3中图示了这两个部分之间的关系。
加密处理部具有如下配置:在许多情况下,输入密文C和输出明文P的解密处理也可以在该配置中执行。甚至在这种情况下,也执行应用从密钥调度部供给的轮密钥的解密处理。
图3中图示了这两个部分之间的关系。
(1-3.加密处理部)
假定将在下面描述中使用的加密处理部分成处理单元,也称轮函数。该轮函数对输入数据执行预定的数据转换并且输出转换的数据。在加密期间,至轮函数的输入数据为例如n位数据。轮函数在某一轮中的输出被提供为随后一轮的输入。包括具有基于从密钥调度部输出的密钥而生成的轮密钥的运算配置,作为轮函数的一个配置。具体地,在加密期间执行轮密钥和n位数据的异或运算。
轮函数的总数称为总轮数,并且是针对各种加密算法预先决定的值。
当X1从加密处理部的输入侧的角度看是第一轮的输入数据时,Xi为输入至第i轮函数的数据,并且RKi为轮密钥。图4中图示了整个加密处理部。
(1-4.轮函数)
轮函数可以具有根据块加密算法的各种形式。根据加密算法所采用的结构可以将轮函数进行分类。作为代表性结构,在本文中举例说明了代换-置换网络(SPN)结构、Feistel结构和扩展Feistel结构。
(A)代换-置换网络(SPN)结构轮函数
在配置中,将具有轮密钥、非线性转换或者线性转换处理等的异或运算应用于所有的n位输入数据。不特别地决定运算的序列。图5图示了具有SPN结构的轮函数的示例。在某些情况下,线性转换部也称为P层(置换层)。
(B)Feistel结构
将n位输入数据分裂成两条n/2位数据。应用具有一条位数据和轮密钥作为输入的函数(F函数),并且利用另一条数据对输出进行异或处理。此后,将通过数据的右侧和左侧的置换而获得的数据设置为输出数据。存在各种类型的F函数的内部配置。基本上,这些配置是通过组合具有轮密钥数据的异或运算、非线性运算和线性转换来实现,与在SPN结构中的一样。图6图示了具有Feistel结构的轮函数的示例。
(C)扩展Feistel结构
扩展Feistel结构是通过将数据的分裂条数为2的Feistel结构扩展成数据的分裂条数为3或者更多的形式的结构。当d为数据的分裂条数时,可以根据d来定义各种扩展的Feistel结构。由于F函数的输入和输出大小较小,所以扩展Feistel结构适用于微型安装。图7图示了当将d设置为d=4并且在一轮中并行应用了两个F函数时的扩展Feistel结构的示例。图8图示了当将d设置为d=8并且在一轮中应用了一个F函数时的扩展Feistel结构的示例。
(1-5.非线性转换部)
当输入数据的大小增加时,非线性转换部有增加安装成本的倾向。为了避免这种情况,许多非线性转换部具有如下配置:将目标数据分裂成多个单元,并且在各个单元中执行非线性转换。例如,非线性转换部具有如下配置:输入大小为ms位,将该输入大小分裂成具有s位的m条数据,并且在各条数据上执行具有s位输入和输出的非线性转换。这种具有s位单元的非线性转换执行部称为S盒。图9中图示了S盒的示例。
图9中示出的示例为如下配置:将具有ms位的输入数据分裂成m条s位数据,将各条数据输入至执行s位非线性转换处理的m个S盒,并且将S盒的输出进行关联以获得ms位非线性转换结果。
(1-6.线性转换部)
根据性质可以将线性转换部定义为矩阵。一般而言,矩阵的元素可以有不同的表达,诸如扩展GF(28)的元素和GF(2)的元素。图10图示了具有ms位输入和输出并且由GF(28)上定义的m×m矩阵来定义的线性转换部的示例。
(1-7.使用状态的数据表达)
在表示每条数据(明文、密文或者密钥等)时,有时将数据表示为具有m行和n列的矩阵类型的m×n阵列数据。由m×n阵列表示的数据称为状态或者状态表达数据。
图11图示了,当A为输入数据而B为输出数据时,在对输入数据A进行数据转换之后,将输入数据A和输出数据B分别表示为具有m×n阵列的状态的示例。
输入数据A具有扩展GF(2s)mn的元素。
输入数据A=(a0a1a2...amn-2amn-1)。
进一步地,a0为在MSB侧的位数据,而amn-1为LSB侧的位数据。
同样,输出数据B也具有扩展GF(2s)mn的元素。
输出数据B=(b0b1b2...bmn-2bmn-1)。
进一步地,b0为在MSB侧的位数据,而bmn-1为LSB侧的位数据。
如图所示,在m×n阵列状态中包括了m×n个元素。
例如,在图11所示的状态A中包括了mn个元素a0至anm-1。状态B的元素为mn个元素b0至bnm-1
mn个元素中的各个元素均为s位元素(其中,s=1或者更大)。具体地,例如各个元素均为位数据,诸如4位数据或者8位(1字节)数据。
在下面的实施例中,将对各个元素均为4位数据的实施例进行说明。然而,本公开的处理也可以应用于除了4位元素数据之外的配置。
图12图示了当4×4状态中包括的16个元素中的各个元素均为4位数据时的4×4状态的示例。
在图12所示的示例中,假定A为输入数据,而B为任何数据转换之后的输出数据,与图11中的一样。
输入数据A具有扩展GF(24)4×4的元素。
输入数据A=(a0a1a2...a14a15)。
进一步地,a0为在MSB侧的位数据,而a15为LSB侧的位数据。
同样,输出数据B也具有扩展GF(24)4×4的元素。
输出数据B=(b0b1b2...b14b15)。
进一步地,b0为在MSB侧的位数据,而b15为LSB侧的位数据。
图12所示的示例为输入数据A和输出数据B均表示为具有4×4阵列的状态的示例,在该4×4阵列中,各个元素均为4位数据。
例如,图12所述的状态A包括16个元素:a0至a15。各个元素均为4位数据。
换言之,当将64位输入数据A指示为状态时,该状态可以表示为具有4×4阵列的状态A,在该4×4阵列中,图12所示的各个元素均为4位数据。
同样,图12所述的状态B包括16个元素:b0至b15。各个元素均为4位数据。
换言之,当将64位输出数据B指示为状态时,该状态可以表示为具有4×4阵列的状态B,在该4×4阵列中,图12所示的各个元素均为4位数据。
(1-8.对状态表达数据的基本运算)
接着,将对状态(状态表达数据)的运算处理进行说明。
(1)非线性转换处理(S)
例如,通过应用多个S盒来执行非线性转换处理,在该多个S盒中,对在4位单元中的状态的各个元素执行非线性转换。
如图13(1)所示,假定状态B是通过对输入状态A的非线性转换处理而生成的。
在这种情况下,各个元素的4位单元的输出bi与输入ai之间的关系如下:
bi=S(ai),
其中,i=0、1、...、15。
(2)线性转换处理(P)
如图13(2)所示,假定状态B是通过对输入状态A的线性转换处理而生成的。
例如,通过将4×4状态的各行的四条数据视为向量并且对4×4矩阵[M]执行运算,对4×4状态执行线性转换处理,作为对值进行更新的运算。这称为行扩散运算。
在转换处理之后的状态的各个元素的4位单元的输出bi与输入ai之间的关系如下:
t(bi,bi+4,bi+8,bi+12)=M×t(ai,ai+4,ai+8,ai+12),
其中,i=1、2、3。
此处,tX表示X的转置矩阵。作为线性转换处理,除了行扩散运算之外,还存在各种方法,诸如列扩散运算和位代换。
(3)异或运算(密钥应用运算处理(K))
如图14所示,假定状态B是通过对输入状态A的异或运算处理而生成的。
例如,执行通过从密钥调度部输出的轮密钥K和输入数据A的异或运算来计算输出数据B的运算。输入数据A、轮密钥K和输出数据B全都是64位数据,在该64位数据中,表示出了由16个4位元素形成的状态。
在转换处理之后的状态的各个元素的4位单元的输出bi、输入ai与轮密钥ki之间的关系如下:
bi=ai(XOR)ki
其中,i=0、1、...、15。
在上式中,(XOR)表示异或运算。
通过运算组合来设置一个轮运算,在该运算组合中,按照预定的序列顺序地执行前述运算(1)至(3)。通过对输入数据重复执行轮运算来生成输出数据,例如,加密数据,并且输出。
通过执行一次具有轮密钥、线性转换处理和非线性转换处理的异或运算来设置基本轮运算。然而,也可以将无规律的轮运算配置设置成按照解密处理序列执行的轮运算。例如,也可以设置不同于另一种轮运算的轮运算,诸如,如下配置:省略了包括多次具有轮密钥的异或运算的轮运算或者线性改变处理。
通常也会使用如下配置:在加密处理序列开始或者结束时仅执行具有轮密钥的运算。该处理称为密钥白化处理,并且通常不会算入轮数。
(1-9.对状态表达数据的列扩散运算)
接着,将参照图15和图16对指示为m×n矩阵阵列的状态表达数据的列扩散运算处理进行说明。
假定X0、X1、Xn-1中的每一个均为m×m矩阵,在该m×m矩阵中,各个元素均为GF(2s)上的元素。
图15中图示了MC[X0、X1、...、Xn-1]。
将上述运算,即将状态的各列(0至n-1)的元素和与各列对应的矩阵X0、X1、...、Xn-1应用于状态表达数据的元素的矩阵运算,定义为列扩散运算。
MC指列单元的扩散(Mix),即(MixColumn)。
在列扩散运算中,执行将一个矩阵Xk应用于状态的一列的元素的矩阵运算。
针对应用于构成状态的多个列中的各列的矩阵Xk,可以设置相同的矩阵的设置或者不同的矩阵的设置。
例如,用于通过对作为输入数据的状态A执行列扩散运算来计算作为输出数据的状态B的运算公式可以表示为如下:
B=MC[X0,X1,...,Xn-1](A)。
列扩散运算处理是用以下公式表示的处理,如图15的下部分所示。
换言之,通过上述运算公式计算出的状态B的元素如下:
t(b0b1...bm-1)=X0×t(a0a1...am-1),
t(bmbm+1...b2m-1)=X1×t(amam+1...a2m-1),
...
t(b(n-1)mb(n-1)m+1...bnm-1)=Xn-1×t(a(n-1)ma(n-1)m+1...anm-1)。
在上式中,t(b1、b2...bk)表示(b1、b2...bk)的转置矩阵。
当根据实际状态A和B的元素阵列来表示运算公式时,该运算公式变成以下运算公式,如图15的下部分所示。
[数学式1]
Figure GDA0002210684070000141
图16是图示列扩散运算的应用处理示例的示意图。当输入数据A为64位数据并且状态A设置为由16个4位数据元素形成的状态A,而输出数据B也为64位数据并且状态B设置为由16个4位数据元素形成的状态B时,MC[X0,X1,X2,X3]。
换言之,如参照图15所描述的,通过以下列扩散运算处理来说明状态B的元素的计算处理示例:
B=MC[X0,X1,X2,X3](A)。
换言之,根据上述运算公式计算出的状态B的元素如下:
t(b0b1b2b3)=X0×t(a0a1a2a3),
t(b4b5b6b7)=X1×t(a4a5a6a7),
t(b8b9b10b11)=X2×t(a8a9a10a11),以及
t(b12b13b14b15)=X3×t(a12a13a14a15)。
当根据实际状态A和B的元素阵列来表示上述运算公式时,可以得到以下运算公式,如图16的下部分所示。
[数学式2]
Figure GDA0002210684070000151
当执行将相同的矩阵X应用于状态的各列元素的矩阵运算时,也可以将矩阵运算表示为:
MC[X]。
换言之,MC[X]和MC[X,X,...,X]是相同的运算。
(1-10.对状态表示数据的行扩散运算)
接着,将参照图17和图18对指示为m×n矩阵阵列的状态表示数据的行扩散运算处理进行说明。
假定X0、X1、Xm-1中的每一个均为n×n矩阵,在该n×n矩阵中,各个元素均为GF(2s)上的元素。
图17中图示了MR[X0,X1,...,Xm-1]。
将上述运算,即将状态的各行(0至n-1)的元素和与各行对应的矩阵X0、X1、...、Xm-1应用于状态表达数据的元素的矩阵运算,定义为行扩散运算。
MR指行单元的扩散(Mix),即(MixRow)。
在行扩散运算中,执行将一个矩阵Xk应用于状态的一行的元素的矩阵运算。
针对应用于构成状态的多个行中的各行的矩阵Xk,可以设置相同的矩阵的设置或者不同的矩阵的设置。
例如,用于计算通过对作为输入数据的状态A执行行扩散运算来计算作为输出数据的状态B的运算公式可以表示为如下:
B=MR[X0,X1,...,Xm-1](A)。
图17的下部分图示了该行扩散运算处理。
换言之,通过上述运算公式计算出的状态B的元素如下:
t(b0,bm...b(n-1)m)=X0×t(a0am...a(n-1)m),
t(b1bm+1...b(n-1)m+1)=X1×t(a1am+1...a(n-1)m+1),
...
t(bm-1b2m-1...bnm-1)=X1×t(ama2m-1...anm-1)。
在上式中,t(b1、b2...bk)表示(b1、b2...bk)的转置矩阵。
当根据实际状态A和B的元素阵列来表示运算公式时,运算公式变成以下运算公式,如图17的下部分所示。
[数学式3]
图18是图示行扩散运算的应用处理示例的示意图。当输入数据A为64位数据并且状态A设置为由16个4位数据元素形成的状态A,而输出数据B也为64位数据并且状态B设置为由16个4位数据元素形成的状态B时,MR[X0,X1,X2,X3]。
换言之,如参照图17所描述的,通过以下行扩散运算处理来说明状态B的元素的计算处理示例:
B=MR[X0,X1,X2,X3](A)。
换言之,根据上述运算公式计算出的状态B的元素如下:
t(b0b4b8b12)=X0×t(a0a4a8a12),
t(b1b5b9b13)=X1×t(a1a5a9a13),
t(b2b6b10b14)=X2×t(a2a6a10a14),以及
t(b3b7b11b15)=X1×t(a3a7a11a15)。
当根据实际状态A和B的元素阵列来表示运算公式时,运算公式变成了以下运算公式,如图18的下部分所示。
[数学式4]
Figure GDA0002210684070000171
当执行将相同的矩阵X应用于状态的各行元素的矩阵运算时,也可以将矩阵运算表示为如下:
MR[X]。
换言之,MR[X]和MR[X,X,...,X]是相同的运算。
(1-11.对合性质)
当轮密钥为应用于从明文P生成密文C的公用密钥块加密的各轮中的K1、K2、…和KR时,计算来自明文P的密文C的加密函数E可以表示为如下:
C=E(P,K1,K2,...,KR)。
此时,计算来自密文C的明文P的解密函数D表示为如下:
P=D(C,k1,k2,...,kr)。
然而,当上述解密函数D满足:
D(C,k1,k2,...,kr)=E(C,KR,...,K2,K1)时,
即,当解密函数D的轮密钥的应用序列与加密函数E的轮密钥的应用序列相反并且相同的函数可以用于其它时,假定公用密钥块加密具有对合性质。
通过这种方式,可以认为仅通过使用加密函数E来改变轮密钥的输入序列可以配置出解密函数D的公用密钥块加密具有对合性质。例如,熟知的有通常可以通过仅颠倒待使用轮密钥的使用顺序的相同电路来执行加密函数和解密函数的Feistel型公用密钥块加密,并且由此可以认为该Feistel型公用密钥块加密具有对合性质。
由于加密函数和解密函数基本上可以通过仅在具有对合性质的公用密钥块加密中安装加密函数来实现,所以必要电路的数量较少,可以减少重量(微型化),提高安装效率。
[2.公用密钥块加密中的安全指数]
作为对公用密钥块加密的攻击,例如,熟知的有实施以对私人密钥进行解密的各种攻击。具体地,存在差分攻击和线性攻击。
差分攻击是通过将具有比差的数据输入至加密装置并且从输出中检测出反应该输入差异的数据来评估密钥的攻击。差值的传播概率称为差异概率。
线性攻击是通过测定输入的特殊位的异或与输出的特殊位的异或之间的相关性并且发现强相关性来评估密钥的攻击。输入的特殊位与输出的特殊位的相关系数称为线性概率。
安全性高的加密是抗上述各种攻击性能高的加密,即,对应用于加密处理的私人信息(例如,密钥)的解密难度高的加密。
下面将对作为加密算法的安全指数的多条数据进行说明。
(2-1.分支数)
在公用密钥块加密中,例如,执行各种数据转换,诸如上述的线性转换、非线性转换和异或运算。
作为关于这种数据转换的解密难度的安全指数,存在分支数。
例如,从n×a位数据至n×b位数据的映射θ如下:
θ:{0,1}na→{0,1}nb
将用于映射θ的分支数(Branchn(θ))定义为如下:
Branchn(θ)=minα≠0{hwn(α)+hwn(θ(α))}。
此处,minα≠0{X(α)}表示满足α≠0的所有Xα中的最小值,hwn(Y)是返回在每隔n位对位流Y进行分割时无n位数据为0(所有数据均非零)的组分的数量的函数。
一般而言,分支数越大,解密难度便越大。因此,认为提高了抗差分攻击或者线性攻击的性能。
分支数Branchn(θ)为b+1的映射θ称为最佳扩散转换(最佳扩散映射)。
作为用于具有大分支数的线性转换的矩阵,例如,存在用于执行最佳扩散转换的最大距离可分(MDS)矩阵。该MDS矩阵是构成矩阵的任意子矩阵均为规则矩阵的矩阵。规则矩阵为具有逆矩阵的矩阵。当矩阵为A而逆矩阵为A-1时,满足以下条件:
AA-1=A-1A=E,
其中,E是单位矩阵。
满足上式的、具有逆矩阵A-1的矩阵A为规则矩阵。
(2-2.差分活跃S盒的最小数量)
如上所述,在设置有公用密钥块加密的非线性转换部中,使用以s位为单位执行非线性转换的S盒。
作为实现抗差分攻击性能的指数,存在差分活跃S盒的最小数量,即,表达差异连接关系的差分路径中包括的差分活跃S盒的最小数量。
该差分路径为加密函数中除了密钥数据之外的所有数据指定具体的差分值。该差分值并不是随意决定的,并且在转换处理之前和之后的差分值是互相关的。在线性转换处理之前和之后,在一对一的基础上确定输入差异与输出差异之间的关系。在非线性转换之前和之后,不在一对一的基础上确定输入差异与输出差异之间的关系,但是会引入概率的概念。假定某个输入差异和某个输出差异的概率是可预先计算的。当添加了所有输出的所有概率时,得到1。
在一般加密(块加密)中,非线性转换只是由S盒执行的一部分处理。因此,在这种情况下,具有除0之外的概率的差分路径是从明文(输入)的差分值开始一直到密文(输出)的差分值的一组差分数据。在所有S盒之前和之后给出的差分值均为除0之外的概率。输入至具有除0之外的概率的差分路径的S盒中的差分值不为0的S盒称为差分活跃S盒。在具有除0之外的概率的所有差分路径中的S盒的数量的最小数量称为是差分活跃S盒的最小数量。S盒的数量认为是抗差分攻击的安全指数。
一般而言,当确保了差分活跃S盒的最小数量足够大时,可以展现出抗差分攻击的安全性。可以将保证差分活跃S盒的最小数量大于轮函数的较小重复次数的加密视为是具有高性能的加密。在所有差分值均为0的差分路径中,概率为1,从而使攻击毫无意义。
(2-3.线性活跃S盒的最小数量)
作为指示抗线性攻击性能的一个指数,可以举例说明线性路径中包括的线性活跃S盒的最小数量,该线性活跃S盒的最小数量表示出线性掩码之间的连接关系。
线性路径也称为线性近似,但是在本文中路径用于与差异对应。
线性路径为加密函数中除了密钥数据之外的所有数据指定具体的线性掩码值。线性掩码值不是随意决定的,并且在转换处理之前和之后的线性掩码值是互相关的。在线性转换处理之前和之后,在一对一的基础上确定输入的线性掩码值与输出的线性掩码值之间的关系。在非线性转换处理之前和之后,不在一对一的基础上确定输入的线性掩码值与输出的线性掩码值之间的关系,但是会引入概率的概念。存在可以相对于输入的线性掩码值输出的一组一个或者多个线性掩码值,并且可以预先计算输出各个线性掩码值的概率。当添加了所有输出的概率时,得到1。
在一般加密(块加密)中,非线性转换只是由S盒执行的一部分处理。因此,在这种情况下,具有除0之外的概率的差分路径是从明文(输入)的线性掩码值开始一直到密文(输出)的线性掩码值的一组线性掩码值数据。在所有S盒之前和之后给出的线性掩码值均为除0之外的概率。输入至具有除0之外的概率的线性路径的S盒中的线性掩码值不为0的S盒称为线性活跃S盒。在具有除0之外的概率的所有线性路径中的S盒的数量的最小数量称为是线性活跃S盒的最小数量。S盒的数量认为是抗线性攻击的安全指数。
一般而言,当确保了线性活跃S盒的最小数量足够大时,可以展现出抗线性攻击的安全性。可以将保证线性活跃S盒的最小数量大于轮函数的较小重复次数的加密视为是具有较高性能的加密。在所有线性掩码值均为0的线性路径中,概率为1,从而使攻击毫无意义。
[3.安全性提高了的公用密钥加密处理的整体配置概述]
接着,将对根据本公开的安全性提高了的公用密钥加密处理装置的处理和配置进行说明。
下面将要描述的根据本公开的加密处理装置是执行公用密钥块加密(块加密)的装置并且是具有代换-置换网络(SPN)结构轮函数的装置。
具有轮密钥的异或运算、非线性转换和线性转换处理配置为对所有的n位输入数据重复执行多轮。
图19图示了根据本公开的公用密钥加密处理装置的一个具体配置示例。
如图19所示,加密处理装置100包括密钥调度部110和加密处理部120。
当输入私人密钥K时,密钥调度部110根据预定的密钥生成算法输出应用于加密处理部120的各轮的轮密钥。当从密钥调度部110输出轮密钥时,加密处理部120对明文P进行数据转换并且输出密文C。
当输入密文C时,加密处理部120也可以执行输出明文P的解密处理。在执行解密处理时,执行按照与针对从密钥调度部110供应的轮密钥的加密处理的顺序相反的顺序应用的处理。
加密处理部120包括:执行输入数据和轮密钥的异或运算的异或部121、对输入数据执行非线性转换处理的非线性转换部122、和对输入数据执行线性转换处理的线性转换部123。
如图所示,根据本公开的加密处理装置100的加密处理部120具有如下配置:异或部121、非线性转换部122和线性转换部123重复执行三种不同的数据转换处理。
作为输入数据的明文P和作为输出数据的密文C均为上述的状态表达数据,如图20所示,并且均为由4×4的16个元素构成的64位数据,各个元素均为4位数据。
从密钥调度部110输入的轮密钥也是64位数据,在该64位数据中表示出了由16个4位元素构成的状态。
如图21所示,加密处理部120重复执行以下三种数据转换处理:
(a)异或运算处理;
(b)非线性转换处理;以及
(c)线性转换处理。
这些处理是作为针对状态的处理来执行。已经参照图13和图14对状态执行的这些处理进行了说明。
由加密处理部120的非线性转换部执行的非线性转换处理是通过使用,例如,如图22(1)所示的多个S盒来执行。
例如,各个S盒均为具有4位输入与输出配置的非线性转换部,并且4×16=64位的非线性转换处理通过16个S盒的并行处理来执行。
由加密处理部120的线性转换部执行的线性转换处理是作为,例如,如图22(2)所示的矩阵运算处理来执行。
[4.加密处理部的线性转换部的处理和配置]
如参照图19所述的,根据本公开的加密处理装置100的加密处理部120具有如下配置:重复执行具有轮密钥的异或运算、非线性转换和线性转换处理多轮。
根据本公开的加密处理装置的一个特点在于在各轮中执行的线性转换处理配置为作为各轮的不同处理来执行。
下面将对由根据本公开的加密处理装置执行的线性转换处理进行详细说明。
图23是描述根据本公开的加密处理装置的加密处理部中包括的不同线性转换部的配置的示例的示意图。
图23的配置示意图是图示省略了异或部的配置的示意图。
在图23所示的示例中,在该配置中包括了执行三种不同线性转换处理的线性转换部。
换言之,包括了以下三个不同的线性转换部:
线性转换部P1 201;
线性转换部P2 202;以及
线性转换部P3 203。
在该配置中,在各轮中执行三种不同的转换处理中的任意一种。在连续几轮中,相同的线性改变处理不会继续,而是设置为执行不同的线性转换处理。
在图23所示的示例中,按照以下顺序从明文P的输入侧依次执行线性转换处理五次:
线性转换部P1;
线性转换部P2;
线性转换部P1;
线性转换部P3;以及
线性转换部P1。
在这五个线性转换处理中,在连续几轮中,相同的线性改变处理不会继续,而是根据轮的切换来执行不同的转换处理。
在上述示例中,通过组合并且执行三种不同的线性转换P1、P2和P3,将相同的线性转换设置为不在连续几轮中执行。
通过这种方式,在加密处理中,通过根据轮过渡改变线性转换形式,可以增加差分活跃S盒的最小数量和线性活跃S盒的最小数量。从而,可以提高抗差分攻击或者线性攻击的性能。
将参照图24和随后的附图对这三种线性转换处理的具体处理进行说明。
在线性转换处理P1至P3中,将图24(1)中所示的四种不同的矩阵M0至M3进行组合使用。换言之,以下4×4矩阵M0至M3配置为被组合在一起。
[数学式5]
Figure GDA0002210684070000231
Figure GDA0002210684070000232
在线性转换处理P1至P3,将上述四种不同的矩阵M0至M3进行组合使用。
上述四种矩阵均不是上述的最大距离可分(MDS)矩阵,而是非MDS矩阵。
在下文将要描述的实施例中,将对使用非MDS矩阵的线性转换处理的示例进行说明。然而,可以配置为应用MDS矩阵。
图24(2)是描述线性转换处理P1至P3的具体矩阵运算的形式的示意图。
此处,图24(2)中所示的4×4矩形表示状态,这些状态分别是由16个4位元素构成,这些4位元素是进行线性转换处理的目标。换言之,这些状态是64位4×4状态。
组合并且使用矩阵M0至M3的矩阵运算是对4×4状态的输入数据执行的。
在线性转换处理P1中,执行以列为单位将一个矩阵M0应用于4×4状态的输入数据的各列的元素的矩阵运算。
该运算是上面参照图15和图16描述的列扩散运算(MixColum)。
换言之,线性转换处理P1是由以下公式表示的列扩散运算(MC):
MC[M0]。
MC[M0]是表示将相同矩阵M0应用于状态的各列的矩阵运算、并且具有与单独指示应用于该状态的各列的矩阵的以下公式相同的意义的公式:
MC[M0,M0,M0,M0]。
接着,将对线性转换处理P2进行说明。
如图24(2)所示,线性转换处理P2执行以各行为单位将不同矩阵应用于4×4状态的输入数据的各行的元素的矩阵运算。在线性转换处理P2中,对高阶第一行至第四行执行应用了以下矩阵的矩阵运算:
第一行:应用矩阵M0
第二行:应用矩阵M1
第三行:应用矩阵M2;以及
第四行:应用矩阵M3
该运算是上面参照图17和图18描述的行扩散运算(MixRow)。
换言之,线性转换处理P2是由以下公式表示的行扩散运算(MixRow):
MR[M0,M1,M2,M3]。
接着,将对线性转换处理P3进行说明。
在线性转换处理P3中,如图24(2)所示,与线性转换处理P2一样,以各行为单位对4×4状态的输入数据的各行的元素执行应用了不同矩阵的矩阵运算。在线性转换处理P3中,与线性转换处理P2不同,对高阶第一行至第四行执行应用了以下矩阵的矩阵运算:
第一行:应用矩阵M2
第二行:应用矩阵M0
第三行:应用矩阵M1;以及
第四行:应用矩阵M3
该运算是上面参照图17和图18描述的行扩散运算(MixRow)。
换言之,线性转换处理P3是由以下公式表示的行扩散运算(MixRow):
MR[M2,M0,M1,M3]。
为了将线性转换处理P2和P3彼此区分开来,在下面将线性转换处理P2称为行扩散运算类型1(MixRow1)而将线性转换处理P3称为行扩散运算类型2(MixRow2)。
线性转换处理P1为列扩散运算(MixColumn)。
下面将参照图25和随后的附图对这三种线性转换处理P1至P3的具体矩阵运算的计算处理示例进行说明。
图25是描述线性转换处理P1的示例(即,列扩散运算(MixColumn)的具体计算处理示例)的示意图。
图25(1)图示了线性转换部P1的输入数据和输出数据的示例。
输入A为由n位数据的16个元素a0至a15构成的状态。
输入B为由n位数据的16个元素b0至b15构成的状态。
输入数据和输出数据的元素ai和bi(其中,i=0至15)均是配置为具有0或者1的n位数据。
在该实施例中,设置n=4,各个元素均为4位数据,并且输入A和输出B均具有64位。
图25(2)图示了线性转换处理P1,即,列扩散运算(MixColumn)的具体计算处理示例。
作为线性转换处理P1来执行的列扩散运算(MixColumn)是根据以下公式的矩阵运算。
[数学式6]
Figure GDA0002210684070000251
基于矩阵M0和输入A的16个元素a0至a15,通过以下运算来计算输出B的16个元素b0至b15
b0=a1(+)a2(+)a3
b1=a0(+)a2(+)a3
b2=a0(+)a1(+)a3
b3=a0(+)a1(+)a2
b4=a5(+)a6(+)a7
b5=a4(+)a6(+)a7
b6=a4(+)a5(+)a7
b7=a4(+)a5(+)a6
b8=a9(+)a10(+)a11
b9=a8(+)a10(+)a11
b10=a8(+)a9(+)a11
b11=a8(+)a9(+)a10
b12=a13(+)a14(+)a15
b13=a12(+)a14(+)a15
b14=a12(+)a13(+)a15;以及
b15=a12(+)a13(+)a14
在上式中,运算符号(+)指异或运算。
在作为线性转换处理P1来执行的列扩散运算(MixColumn)中,基于矩阵M0和输入A的16个元素a0至a15来计算输出B的16个元素b0至b15
图26是描述线性转换处理P2的示例(即,行扩散运算类型1(MixRow1)的具体计算处理示例)的示意图。
图26(1)图示了线性转换部P2的输入数据和输出数据的示例。
输入A为由n位数据的16个元素a0至a15构成的状态。
输入B为由n位数据的16个元素b0至b15构成的状态。
输入数据和输出数据的ai和bi(其中,i=0至15)均是配置为具有0或者1的n位数据。
在该实施例中,设置n=4,各个元素均为4位数据,并且输入A和输出B均具有64位。
图26(2)图示了线性转换处理P2,即,行扩散运算类型1(MixRow1)的具体计算处理示例。
作为线性转换处理P2来执行的行扩散运算类型1(MixRow1)是根据以下公式的矩阵运算。
[数学式7]
Figure GDA0002210684070000261
基于矩阵M0、M1、M2和M3和输入A的16个元素a0至a15,通过以下运算来计算输出B的16个元素b0至b15
b0=a4(+)a8(+)a12
b1=a1(+)a5(+)a13
b2=a2(+)a6(+)a10
b3=a3(+)a11(+)a15
b4=a0(+)a8(+)a12
b5=a1(+)a5(+)a9
b6=a2(+)a6(+)a14
b7=a7(+)a11(+)a15
b8=a0(+)a4(+)a12
b9=a5(+)a9(+)a13
b10=a2(+)a10(+)a14
b11=a3(+)a7(+)a11
b12=a0(+)a4(+)a8
b13=a1(+)a9(+)a13
b14=a6(+)a10(+)a14;以及
b15=a3(+)a7(+)a15
在上式中,运算符号(+)指异或运算。
在作为线性转换处理P2来执行的行扩散运算类型1(MixRow1)中,基于矩阵M0、M1、M2和M3和输入A的16个元素a0至a15来计算输出B的16个元素b0至b15
图27是描述线性转换处理P3的示例(即,行扩散运算类型2(MixRow2)的具体计算处理示例)的示意图。
图27(1)图示了线性转换部P3的输入数据和输出数据的示例。
输入A为由n位数据的16个元素a0至a15构成的状态。
输入B为由n位数据的16个元素b0至b15构成的状态。
输入数据和输出数据的ai和bi(其中,i=0至15)均是配置为具有0或者1的n位数据。
在该实施例中,设置n=4,各个元素均为4位数据,并且输入A和输出B均具有64位。
图27(2)图示了线性转换处理P2,即,行扩散运算类型2(MixRow2)的具体计算处理示例。
作为线性转换处理P3来执行的行扩散运算类型2(MixRow2)是根据以下公式的矩阵运算。
[数学式8]
Figure GDA0002210684070000281
Figure GDA0002210684070000282
基于矩阵M0、M1、M2和M3和输入A的16个元素a0至a15,通过以下运算来计算输出B的16个元素b0至b15
b0=a0(+)a4(+)a8
b1=a5(+)a9(+)a13
b2=a2(+)a6(+)a14
b=a3(+)a11(+)a15
b4=a0(+)a4(+)a12
b5=a1(+)a9(+)a13
b6=a2(+)a6(+)a10
b7=a7(+)a11(+)a15
b8=a0(+)a8(+)a12
b9=a1(+)a5(+)a13
b10=a6(+)a10(+)a14
b11=a3(+)a7(+)a11
b12=a4(+)a8(+)a12
b13=a1(+)a5(+)a9
b14=a2(+)a10(+)a14;以及
b15=a3(+)a7(+)a15
在上式中,运算符号(+)指异或运算。
在作为线性转换处理P3来执行的行扩散运算类型2(MixRow2)中,基于矩阵M0、M1、M2和M3和输入A的16个元素a0至a15来计算输出B的16个元素b0至b15
通过这种方式,通过改变各轮的一次加密处理序列中的多个线性转换处理,可以增加差分活跃S盒的最小数量和线性活跃S盒的最小数量。从而,可以提高抗差分攻击或者线性攻击的性能。
下面将对活跃S盒的数量的验证结果进行说明。
已经对在根据本公开的加密处理装置(即执行三种不同的线性转换处理P1至P3的加密处理装置)和相关技术的重复执行单种线性转换处理的加密处理装置中的活跃S盒的数量进行了验证。
根据本公开的加密处理装置具有如下配置:按照加密处理序列来使用三种线性转换处理,并且针对各轮切换线性转换处理,如图28所示。
在图28所示的附图中,省略具有轮密钥的异或运算部。
在图28所示的加密处理装置中,由于非线性转换部的数量等于6,所以配置了6轮。对轮数进行定义存在多种方法。此处,将非线性转换部的数量用作轮数。
在图28所示的示例中,应用了7个轮密钥:轮密钥RK1至RK7。由于非线性转换部为6层,所以假定6轮的加密处理装置。
如图28所示,在加密处理期间执行至少一次三种不同的线性转换处理。
线性转换处理P1是应用了矩阵M0的列扩散运算(MixColumn)。
线性转换处理P2是应用了矩阵M0、M1、M2和M3的行扩散运算类型1(MixRow1)。
线性转换处理P3是应用了矩阵M0、M1、M2和M3的行扩散运算类型2(MixRow2)。
相较于图28所示的加密处理装置,在图29中图示了相关技术的执行单种线性转换处理的加密处理装置的示例。
图29所示的加密处理装置具有如下配置:配置了6轮,但是各轮的线性转换处理是相同的线性转换处理。
在图29所示的加密处理装置的所有线性转换处理部中,设置要执行仅使用了在图28的加密处理装置中也使用了的矩阵M0的线性转换处理P1,即使用了矩阵M0的列扩散运算。
对于图28所示的执行多种不同的线性转换处理的加密处理装置和图29所示的相关技术的执行单种线性转换处理的装置,配置了各种轮数的装置,并且已经对差分活跃S盒的最小数量和线性活跃S盒的最小数量进行了验证。
图28和图29的配置设置为如下:对64位输入明文P执行加密处理,并且输出64位密文C。
S盒设置在非线性转换部中。如上面参照图22所描述的,各个S盒具有如下配置:执行4位输入和输出的非线性转换。
在图28和图29的加密处理装置的各个非线性转换部中,设置了16个4位输入与输出S盒以对4×16=64位执行非线性转换。
在图28和图29所示的6轮类型的加密处理装置中,设置了6个非线性转换部,从而S盒的总数为16×6=96。
从全部96个S盒中,已经计算出在所有输入模式中的活跃S盒的数量,并且已经对差分活跃S盒的最小数量和线性活跃S盒的最小数量进行了验证。
在图30和图31中图示了验证结果。
如图30所示,配置了不同轮数(即,4轮至24轮)的加密处理装置,并且图示出了通过对差分活跃S盒和线性活跃S盒的最小数量进行计数来获得结果。
在轮数等于4时,在重复执行相关技术的相同线性转换部的配置和本公开中执行不同线性转换处理的配置中,活跃S盒的数量为4,并且设置了相同的值。在轮数为6至24(包括8)的所有情况下,不管怎样,在本公开中执行不同线性转换处理的配置中的活跃S盒的数量较多。
该结果显示为图31所示的图。
在上述实施例中,已经描述了如下配置:将输入数据设置为由4×4个元素构成的状态,各个元素均为4位元素,并且线性转换部通过使用4种矩阵M0、M1、M2和M3的矩阵运算来执行线性转换处理。然而,在下面的设置中,可以将上述处理描述为具有通用配置。
当输入数据是由m×n个元素构成的状态,各个元素均为1位或者多位元素时,线性转换部具有如下配置:在轮运算中,执行通过应用以状态的各列元素为单位的矩阵来执行线性转换的列扩散运算和通过应用以状态的各行元素为单位的矩阵来执行线性转换的行扩散运算中的一种。
此处,线性转换部具有如下配置:通过使用多种矩阵M0至Mk(其中,k是1或者更大的整数)的矩阵运算来执行线性转换处理,并且根据轮过渡,切换并且执行通过按照特定序列将选自M0至Mk的已选矩阵以状态的各列元素为单位应用于各列来执行线性转换的列扩散运算和通过按照特定序列将选自M0至Mk的已选矩阵以状态的各行元素为单位应用于各行来执行线性转换的行扩散运算。
具体的线性转换处理配置的示例如下,例如:
(a)通过按照特定序列将选自M0至Mk的已选矩阵以状态的各列元素为单位应用于各列来执行线性转换的列扩散运算;
(b)通过按照特定序列A将选自M0至Mk的已选矩阵以状态的各行元素为单位应用于各行来执行线性转换的行扩散运算类型1;以及
(c)通过按照不同于特定序列A的序列B将选自M0至Mk的已选矩阵以状态的各行元素为单位应用于各行来执行线性转换的行扩散运算类型2。
加密处理装置根据轮过渡来切换并且执行上述运算。
进一步地,也可以使用置换了上述配置中的列扩散运算和行扩散运算的以下配置:
(a)通过按照特定序列将选自M0至Mk的已选矩阵以状态的各行元素为单位应用于各行来执行线性转换的列扩散运算;
(b)通过按照特定序列A将选自M0至Mk的已选矩阵以状态的各列元素为单位应用于各列来执行线性转换的行扩散运算类型1;以及
(c)通过按照不同于特定序列A的序列B将选自M0至Mk的已选矩阵以状态的各列元素为单位应用于各列来执行线性转换的行扩散运算类型2。
加密处理装置根据轮过渡切换并且执行上述运算。
当输入数据是由4×4个元素构成的状态,各个元素均为4位元素时,作为线性转换处理的实现的配置,可以是以下配置:
线性转换部具有如下配置:通过使用4种矩阵M0、M1、M2和M3的矩阵运算来执行线性转换处理;
(a)通过以状态的各列元素为单位应用矩阵M0来执行线性转换的列扩散运算;
(b)通过按照矩阵M0、M1、M2和M3的顺序以状态的各行元素为单位应用各个矩阵来执行线性转换的行扩散运算类型1;以及
(c)通过按照不同于上述类型1的顺序以状态的各行元素为单位应用各个矩阵来执行线性转换的行扩散运算类型2。
加密处理装置根据轮过渡切换并且执行这三种矩阵运算。
在行扩散运算类型1中以状态的各行元素为单位应用的矩阵和在行扩散运算类型2中以状态的各行元素为单位应用的矩阵的组合设置为如下组合:关于状态的任意两行,总共4个矩阵(包括应用于类型1的两个矩阵和应用于类型2的两个矩阵)通过至少3种矩阵进行配置。
例如,当在类型1中应用于4×4状态的第一行至第四行中的各行的矩阵为M1、M3、M0和M2时,在类型2中应用于4×4状态的第一行至第四行中的各行的矩阵为M0、M2、M3和M1。
在上述设置中,使用了如下组合:针对4×4状态的任意两行,总共4个矩阵(包括应用于类型1的两个矩阵和应用于类型2的两个矩阵)通过至少3种矩阵进行配置。
换言之,在上述设置中,应用于4×4状态的第一行的矩阵如下:
类型1=M1;以及
类型2=M0。
应用于4×4状态的第二行的矩阵如下:
类型1=M3;
类型2=M2。
在该组合中,应用于类型1和类型2的第一行和第二行的矩阵为四种矩阵:M0至M3。
在上述设置中,该任意其它两行的组合为如下组合:针对4×4状态的任意两行,总共4个矩阵(包括应用于类型1的两个矩阵和应用于类型2的两个矩阵)通过至少3种矩阵进行配置。
进一步地,也可以使用置换了上述配置中的列扩散运算和行扩散运算的以下配置:
线性转换部具有如下配置:通过使用4种矩阵M0、M1、M2和M3的矩阵运算来执行线性转换处理;
(a)通过以状态的各行元素为单元应用矩阵M0来执行线性转换的行扩散运算;
(b)通过按照矩阵M0、M1、M2和M3的顺序以状态的各列元素为单元应用各个矩阵来执行线性转换的列扩散运算类型1;以及
(c)通过按照不同于上述类型1的顺序以状态的各列元素为单元应用各个矩阵来执行线性转换的列扩散运算类型2。
加密处理装置根据轮过渡切换并且执行这三种矩阵运算。
在该配置中,在行扩散运算类型1中以状态的各列元素为单位应用的矩阵和在行扩散运算类型2中以状态的各列元素为单位应用的矩阵的组合设置为如下组合:关于状态的任意两列,总共4个矩阵(包括应用于类型1的两个矩阵和应用于类型2的两个矩阵)通过至少3种矩阵进行配置。
通过这种方式,可以通过改变各轮的一次加密处理序列中的线性转换处理,来增加差分活跃S盒的最小数量和线性活跃S盒的最小数量。从而,可以提高抗差分攻击或者线性攻击的性能。
[5.密钥调度部的处理和配置]
接着,将对根据本公开的加密处理装置的密钥调度部的处理和配置进行说明。
[5-1.密钥调度部的处理和配置的描述]
如上面参照图19所描述的,根据本公开的密钥处理装置100包括密钥调度部110和加密处理部120。
例如,密钥调度部110根据预定的密钥生成算法基于私人密钥K生成应用于加密处理部120的各轮的轮密钥,并且将该轮密钥输出至密钥处理部120。当从密钥调度部110输入轮密钥时,密钥处理部120对明文P进行数据转换并且输出密文C。
在解密处理时也执行相同的处理。
下面将对执行生成并且供应轮密钥的处理的密钥调度部110的处理和配置进行说明。
图32是图示根据本公开的加密处理装置中的密钥调度部的配置的一个示例的示意图。
密钥调度部300包括用作存储私人密钥K1的存储部的密钥供应部(密钥寄存器)301。
密钥调度部300将密钥K1输出至加密处理部320中的第一轮的异或部(轮密钥运算部)321。换言之,将密钥K1用作第一轮的轮密钥。
进一步地,密钥调度部300将密钥K1输入至密钥转换部302a。密钥转换部302a对密钥K1执行预定运算以生成转换密钥Kd1
进一步地,将由密钥转换部302a生成的转换密钥Kd1输出至加密处理部320中的第二轮的异或部(轮密钥运算部)322。换言之,将转换密钥Kd1用作第二轮的轮密钥。
进一步地,密钥调度部300将转换密钥Kd1输入至密钥转换部302b。密钥转换部302b对转换密钥Kd1执行预定运算以生成密钥K1
密钥K1与作为转换密钥Kd1的生成源的密钥K1相同。
密钥调度部300将由密钥转换部302b生成的密钥K1输出至加密处理部320中的第三轮的异或部(轮密钥运算部)323。换言之,将密钥K1用作第三轮的轮密钥。
此后重复执行相同的处理,这样通过密钥转换部302c至302f交替生成密钥K1和密钥K1d,并且将生成的密钥输出至加密处理部的异或部324至327。
密钥转换部302c至302f全都执行相同的运算。换言之,通过相同的运算处理,从密钥K1生成转换密钥Kd1,并且从转换密钥Kd1生成密钥K1
通过使用转换函数G和反函数G-1的公式来表示密钥:
Kd1=G(K1);以及
K1=G-1(Kd1)。
进一步地,还满足G=G-1
换言之,应用于密钥转换部302a至302f中的密钥转换的数据转换函数G具有对合性质,即,正向函数G和反向函数G-1为相同函数的性质,如图33所示。
在图33中,将图32中描述的密钥K1图示为基本密钥K,而将转换密钥Kd1图示为转换密钥Kd。图33所示的密钥表示为具有16个4位元素的4×4状态。换言之,图示了总共64位的密钥数据。
将参照图34对由密钥转换部302执行的密钥转换处理的示例。
图34是图示从基本密钥K生成转换密钥Kd的处理的示意图。
从基本密钥K生成转换密钥Kd的处理配置为包括以下两个步骤:
(S1)通过执行将中间密钥生成列扩散运算(MixColumn_KSF())应用于基本密钥K的运算来生成中间密钥S的步骤;以及
(S2)通过执行将转换密钥生成列扩散运算(MixRow_KSF())应用于中间密钥S的运算来生成转换密钥Kd的步骤。
在步骤S1中执行的列扩散运算(MixColumn)和在步骤S2中执行的行扩散计算(MixRow)都是和上面参照图24至图27描述的矩阵应用运算相同的矩阵应用运算。
此处,应用于该密钥转换处理中的矩阵MD为如下矩阵:
[数学式9]
Figure GDA0002210684070000351
上述的MD是称为哈达马(Hadamard)MDS矩阵的矩阵。
MDS矩阵是构成矩阵的任意子矩阵均为规则矩阵的矩阵。规则矩阵是具有反矩阵的矩阵。当矩阵为A而反矩阵为A-1时,满足以下条件:
AA-1=A-1A=E,
其中,E为单位矩阵。
具有满足上述公式的反矩阵A-1的矩阵A为规则矩阵。
如上所述,分支数Branch(θ)为b+1的映射θ称为最佳扩散转换(最佳扩散映射)。MDS矩阵是用于执行最佳扩散转换的矩阵。
在图34中所示的步骤S1的列扩散运算和步骤S2的行扩散运算都是通过应用哈达马MDS矩阵MD来执行的。
步骤S1的列扩散运算通过以下运算公式来表示:
MC[MD]=MC[MD,MD,MD,MD]。
步骤S2的行扩散运算通过以下运算公式来表示:
MR[MD]=MR[MD,MD,MD,MD]。
换言之,在步骤S1的列扩散运算中,执行了将相同的哈达马MDS矩阵MD应用于由4位元素构成的4×4状态表达数据的全部四列的矩阵运算。
换言之,在步骤S2的行扩散运算中,执行了将相同的哈达马MDS矩阵MD应用于由4位元素构成的4×4状态表达数据的全部四行的矩阵运算。
应用了哈达马MDS矩阵MD的矩阵运算的算法可以表示为如下:
MD():{0,1}16→{0,1}16
输入:{x0,x1,x2,x3},xi∈{0,1}4
输出:{y0,y1,y2,y3},yi∈{0,1}4
运算
·y0=x0(+)2(×)x1(+)4(×)x3(+)6(×)x4
·y1=2(×)x0(+)x2(+)6(×)x3(+)4(×)x4
·y2=4(×)x0(+)6(×)x2(+)x3(+)2(×)x4
·y3=6(×)x0(+)4(×)x2(+)2(×)x3(+)x4
此处,(+)表示异或运算,而(×)表示由不可约多项式x4+x+1定义的展开式GF(24)的乘法。
图34中所示的步骤S1的列扩散运算MC[MD]是根据以下公式的矩阵运算。
[数学式10]
Figure GDA0002210684070000361
上述列扩散运算MC[MD]的算法可以表示为如下:
MixColumn_KSF():{0,1}64→{0,1}64
输入:{k0,k1,...,k15},xi∈{0,1}4
输出:{s0,s1,...,s15},si∈{0,1}4
运算
·(s0,s1,s2,s3)=MD(k0,k1,k2,k3)
·(s4,s5,s6,s7)=MD(k4,k5,k6,k7)
·(s8,s9,s10,s11)=MD(k8,k9,k10,k11)
·(s12,s13,s14,s15)=MD(k12,k13,k14,k15)
图34中所示的步骤S2的行扩散运算MR[MD]是根据以下公式的矩阵运算。
[数学式11]
Figure GDA0002210684070000362
上述行扩散运算MR[MD]的算法可以表示为如下:
MixRow_KSF():{0,1}64→{0,1}64
输入:{k0,k1,...,k15},xi###{0,1}4
输出:{kd0,kd1,...,kd15},kdi∈{0,1}4
运算
·(kd0,kd4,kd8,kd12)=MD(s0,s4,s8,s12)
·(kd1,kd5,kd9,kd13)=MD(s1,s5,s9,s13)
·(kd2,kd6,kd10,kd14)=MD(s2,s6,s10,s14)
·(kd3,kd7,kd11,kd15)=MD(s3,s7,s11,s15)
通过这种方式,图32所示的密钥调度部300的密钥转换部302执行将矩阵MD应用于图34所示的步骤S1中的列运算MC[MD],并且执行将矩阵MD应用于步骤S2中的行扩散运算MR[MD]。
通过连续执行两次矩阵运算,由基本密钥K生成转换密钥Kd。
甚至在从转换密钥Kd生成基本密钥K时,也执行和图34中所示的处理相同的处理。
换言之,如上面参照图33所描述的,由列扩散运算MC[MD]和行扩散运算MR[MD]的连续处理形成的函数G具有对合性质,并且正向函数G和反向函数G-1是相同的。因此,通过重复执行该运算两次,来计算初始值。
进一步地,密钥转换部302执行应用了矩阵MD的列扩散运算MC[MD]和应用了矩阵MD的行扩散运算MR[MD],从而使构成输入数据的4×4状态的所有构成元素,即,全部16个构成元素,能够影响输出数据的全部16个构成元素。
换言之,在输入和输出状态的所有元素中实现了数据扩散。这种数据转换形式定义为“全扩散转换”或者具有全扩散性质的扩散。
例如,当输入和输出中的每一个是由16个n位元素构成的状态,并且f是应用于输入的转换函数时,将输出状态B设置为根据以下公式计算:
B=f(A)。
输入状态为A=(a0,a1,a2,...a15)。
输出状态为B=(b0,b1,b2,...b15)。
此处,ai和bi是状态A和B的元素。
此时,当输出状态B的任意元素bi可以用以下公式来表示时,假定函数f是全扩散转换:
bi=f(a0,a1,a2,...a15)。
通过这种方式,密钥转换部302的执行函数G是具有以下两种性质的函数:
(1)全扩散性质,在该全扩散性质中实现了全扩散转换;以及
(2)对合性质,在该对合性质中,正向函数G和反向函数G-1是相同的。
密钥转换部302具有这两种性质。
[基于密钥调度部的全扩散性质的效果]
因此,作为密钥转换部302的性质的全扩散性质在图32所示的加密处理部320中确保了甚至在转换目标数据与密钥之间的全扩散性质。下面将参照图35进行说明。
图35图示了基本密钥K=(k0,k1,k2,...k15)和转换密钥Kd=(kd0,kd1,kd2,...kd15)。
将基本密钥K输入至加密处理部的异或部331,并且和输入状态A一起进行异或运算。其后,非线性/线性转换部(S&P)332执行非线性转换处理和线性转换处理。
进一步地,异或运算部333对输出和转换密钥Kd执行异或运算。
假定异或运算部333的输出是状态B。
此时,在基本密钥K和转换密钥Kd之间的关系中,满足以下关系式:
Kdi=f(k0,k1,k2,...k15),
其中,i=0至15。
换言之,确保了全扩散性质。
从上述关系式中,在状态B与基本密钥K之间还满足以下关系式:
bi=f(k0,k1,k2,...k15),
其中,i=0至15。
满足了该关系式。
换言之,在基本密钥K与转换数据B之间也确保了全扩散性质。
该性质可以视为是有助于加密处理装置的安全性或者安装性能的性质。
具体地,通过密钥实现了数据扩散性质的提高。从而,甚至在减少了轮数时,也可以具有高扩散性能。因此,可以提高抗各种攻击的性能。例如,基于使用密钥依赖性的中间值匹配处理可以进一步提高抗密钥分析处理的性能。
如上所述,通过应用根据本公开的配置,可以提高加密处理部中的转换目标数据的扩散性能,从而可以利用较少的轮数实现安全加密处理,例如,抗各种攻击(诸如,密钥分析)性能高的加密处理。
图36图示了加密处理配置的两个示例:
(1)在各轮中不执行密钥转换的情况下应用相同轮密钥的加密处理配置;和
(2)通过执行根据本公开的密钥转换交替地应用两种轮密钥的加密处理配置。
图36(2)所示的G盒与图32所示的密钥转换部302对应。
在不执行图36(1)的密钥转换的加密处理配置中,关于应用密钥的配置信息(位流)为转换目标数据的输入明文P的所有位的扩散(全扩散)所必需的轮数取决于轮函数(R)的处理。
相应地,当轮函数的扩散性能较低时,需要较大轮数以便增加扩散水平。从而,难以实现高速处理或者减轻重量。
相反,在执行图36(2)所示的根据本公开的密钥转换的加密处理配置中,关于应用密钥的配置信息(位流)为转换目标数据的输入明文P的所有位的扩散(全扩散)所必需的轮数取决于使用两个密钥(基本密钥K1和转换密钥Kd1)的轮数。
在附图所示的示例中,使用了一轮。
换言之,当应用根据本公开的处理时,在一轮中实现了关于转换目标数据中密钥数据的配置信息的扩散,从而确保了较高的扩散性能而不依赖于轮函数(R)的处理。
换言之,利用较少的轮实现了抗攻击性能高的安全加密处理。从而,实现了高速处理或者减轻重量。
[5-3.基于密钥转换部的对合性质的效果]
如上面参照图32和图33等所描述的,根据本公开的密钥调度部300的密钥转换部302具有对合性质,在该对合性质中,正向函数G和反向函数G-1通过相同的函数来实现。
下面将对基于对合性质的效果进行说明。
重复执行作为相同数据转换处理的轮函数的加密处理装置的硬件安装配置有以下两种类型:
(a)“展开安装”,在该“展开安装”中,将数量与规定数量的轮对应的轮函数执行部配置为硬件;以及
(b)“轮安装”,在该“轮安装”中,将一个轮函数执行部配置为硬件,输入该轮函数执行部的输出作为对该同一个轮函数执行部的反馈,并且重复执行规定数量的轮的轮函数。
下面将对这两种类型中基于对合性质的效果进行顺序说明。
[5-3-a.展开安装中的效果]
将对在加密处理部的展开安装情况下由根据本公开的密钥转换部的对合性质产生的效果进行说明。
在展开安装中,将数量与规定数量的轮对应的轮函数执行部配置为加密处理部中的硬件。
将参照图37和图28对在加密处理部的展开安装情况下由根据本公开的密钥转换部的对合性质产生的效果进行说明。
图37和图38图示了加密处理装置的以下安装示例:
在密钥转换部F不具有对合性质时图37(1)中的硬件安装示例;以及
在密钥转换部(G)具有对合性质时图38(2a)和图28(2b)中的硬件安装示例。
图38(2a)和图28(2b)与根据本公开的密钥转换部的安装示例对应,即,在密钥转换部具有对合性质时的安装示例。
由于在图37中密钥转换部F不具有对合性质,所以通过密钥转换部F顺序地获得的作为转换结果的密钥成为不同的密钥。图37图示了如下配置:通过密钥转换部F的转换处理基于密钥K1顺序地生成Kd1、Kd2、Kd3、Kd4、Kd5和Kd6,并且将这些密钥作为轮密钥顺序地输入至加密处理部的异或部(轮密钥运算部)。
相反,图38(2a)和图38(2b)所示的示例是在密钥转换部(G)具有对合性质时的硬件安装示例。
图38(2a)所示的示例示出了如下配置:将生成至加密处理部的异或部(轮密钥运算部)的输入密钥(轮密钥)的密钥转换部G设置为与各轮关联,与图37(1)所示的硬件配置中的一样。
另一方面,图38(2b)图示了如下配置:仅设置一个密钥转换部G,并且将预先保存的基本密钥K1和由密钥转换部G生成的转换密钥Kd1设置为交替地输入至加密处理部的异或部(轮密钥运算部)。
由于密钥转换部G具有对合性质,所以通过密钥转换部的转换处理重复生成的密钥以K1、Kd1、K1、Kd1、K1等的方式重复。基于该性质,如图38(2b)所示,利用一个密钥转换部G,可以将基本密钥K1和由密钥转换部G通过一次密钥转换处理生成的转换密钥Kd1交替地输入至加密处理部的异或部(轮密钥运算部)。
因此,由于可以将密钥转换部G的数量设置为1,所以实现了硬件安装的轻重量(微型化)。
在图39中图示了与图28(2b)所示的配置对应的加密处理装置的配置的示例。
如图39所示,利用密钥调度部300的仅一个密钥转换部(G)302,可以交替地输入预先保存在加密处理部320的各个异或部(轮密钥运算部)中的基本密钥K1和由密钥转换部G生成的转换密钥Kd1
[5-3-b.轮安装中的效果]
接下来,将对在加密处理部的轮安装情况下由根据本公开的密钥转换部的对合性质产生的效果进行说明。
在轮安装中,将设置在加密处理部中的一个轮函数配置为重复使用。
图40图示了在密钥转换部不具有对合性质时的(a1)加密处理配置和(a2)轮安装示例。
图41图示了在密钥转换部具有对合性质时的(b1)加密处理配置和(b2)轮安装示例。
图40(a1)所示的加密处理配置是和上面参照图37所述的配置相同的配置。
换言之,由于密钥转换部F不具有对合性质,所以通过密钥转换部F顺序地获得的作为转换结果的密钥成为不同的密钥。图40(a1)图示了如下配置:通过密钥转换部F的转换处理基于密钥K1顺序地生成Kd1、Kd2、Kd3、Kd4、Kd5和Kd6,并且将这些密钥作为轮密钥顺序地输入至加密处理部的异或部(轮密钥运算部)。
当在轮类型硬件安装中实现这种配置时,实现了图40(a2)所示的配置。加密处理部350可以配置为包括一个异或部(轮密钥运算部)351和一个非线性/线性转换部352。
另一方面,密钥调度部360配置为包括存储并且供应基本密钥K1的密钥寄存器361、存储并且供应转换密钥Kd1至Kd6的密钥寄存器362、密钥转换部(F)363、和执行密钥寄存器361和362的输出的切换的开关364。
相反,图41(b1)所示的加密处理配置是密钥转换部G具有对合性质的加密处理配置,与上面参照图38(2b)所示的配置中的一样。
由于密钥转换部G具有对合性质,所以通过密钥转换部的转换处理重复生成的密钥以K1、Kd1、K1、Kd1、K1等的方式重复。基于该性质,如图41(b1)所示,利用一个密钥转换部G,可以将基本密钥K1和由密钥转换部G通过一次密钥转换处理生成的转换密钥Kd1交替地输入至加密处理部的异或部(轮密钥运算部)。
当在轮类型硬件安装中实现这种配置时,实现了图41(b2)所示的配置。加密处理部350可以配置为包括一个异或部(轮密钥运算部)351和一个非线性/线性转换部352。
另一方面,密钥调度部370配置为包括存储并且供应基本密钥K1和转换密钥Kd1的密钥寄存器371、和密钥转换部(G)372。
在图40(a2)所示的密钥转换部(F)不具有对合性质时的轮安装配置的示例中,在密钥调度部360中需要有两个密钥寄存器、一个密钥转换部和一个开关。相反,具有在图41(b2)所示的密钥转换部(G)具有对合性质时的轮安装配置的密钥调度部370配置为包括一个密钥寄存器和一个密钥转换部。从而,经过证明,实现了硬件配置的轻重量(微型化)。
例如,在密钥转换部(F)不具有对合性质时的轮安装配置中,如图40(a2)所示,需要有顺序地生成并且供应多个不同的转换密钥的密钥寄存器。因此,需要与密钥寄存器的数量对应的新硬件电路。
[5-4.根据本公开的密钥调度部的配置和效果的总结]
如上所述,在根据本公开的密钥处理装置中包括的密钥调度部的密钥转换部具有以下两种特点:
(1)全扩散性质,在该全扩散性质中实现了全扩散转换;以及
(2)对合性质,在该对合性质中,正向函数G和反向函数G-1是相同的。
密钥调度部的密钥转换部具有这两种特点。
基于这两种特点可以得到以下效果:
(效果1)基于全扩散性质,可以利用较少的轮实现转换目标数据的全扩散性质;
因此,利用较少的轮,可以执行安全性高的加密处理,从而实现了处理的高速(低时延)和装置的轻重量(微型化);
(效果2)当实现了硬件配置的展开安装时,基于对合性质,可以只包括一个密钥转换部,从而实现了装置的轻重量(微型化);以及
(效果3)当实现了硬件配置的轮安装时,基于对合性质,可以安装只包括一个密钥寄存器和一个密钥转换部的密钥调度部,从而实现了装置的轻重量(微型化)。
[5-5.密钥调度部的配置的其它示例]
接着,将参照图42和随后的附图对包括了执行应用了具有上述两种特点(即,以下两种特点)的函数G的密钥转换处理的密钥转换部的密钥调度部的配置的其它示例进行说明:
(1)全扩散性质,在该全扩散性质中实现了全扩散转换;以及
(2)对合性质,在该对合性质中,正向函数G和反向函数G-1是相同的。
图42是图示包括密钥调度部380的加密处理装置的配置的一个示例的示意图,该密钥调度部380包括具有上述两种特点的密钥转换部。
图42所示的加密处理装置包括密钥调度部380和加密处理部385。
预先生成的私人密钥K存储在密钥调度部380的密钥寄存器381中。
私人密钥K是密钥K1和K2的链接数据。
例如,K1和K2均为64位密钥,而作为链接数据的私人密钥K为128位数据。
附图中所示的G表示密钥转化部,该密钥转换部是执行应用了具有这两种特点(即,全扩散性质和对合性质)的函数G的密钥转换处理的密钥转换部,与上面参照图32和随后的附图所述的密钥转换部302中的一样。
图42所示的密钥调度部380顺序地输出作为存储在密钥寄存器381中的私人密钥K的分裂数据的密钥K1和K2,并且进一步将从密钥转换部(G)中的这些密钥转换而来的转换密钥Kd1和Kd2输出至加密处理部385的异或部(轮密钥运算部)。
在附图所示的示例中,当密钥K1和K2均为64位密钥时,作为加密处理部385的转换目标的明文P也为64位数据。
在图42所示的示例中,密钥输出序列如下:
密钥K1
密钥K2
转换密钥Kd1
转换密钥Kd2
密钥K1
密钥K2;以及
转换密钥Kd1
按照该序列,将四种密钥输入至加密处理部385中。
密钥输入序列可以设置为不同的。
在图42中,图示了多个密钥转换部(G)。然而,在进行上面参照图41所述的轮安装时,可以只包括一个密钥转换部(G)。
将参照图43对密钥调度部的配置的另一个示例进行说明。
在图43中图示了以下配置:
(a)密钥调度部的配置;以及
(b)通过密钥调度部的密钥输出配置。
如图43(a)所示,预先生成的私人密钥K存储在密钥调度部的密钥寄存器391中。
私人密钥K是密钥K1和K2的链接数据。
例如,K1和K2均为64位密钥,而作为链接数据的私人密钥K为128位数据。
图43(a)所示的密钥调度部包括密钥转换部G393和异或部392和394。
密钥转换部G393是执行应用了具有两种特点(即,全扩散性质和对合性质)的函数G的密钥转换处理的密钥转换部,和上面参照图32和随后的附图所述的密钥转换部302中的一样。
图43(a)所示的密钥调度部基于每种配置生成以下六种密钥:
密钥K1
密钥K2
转换密钥Kd1
转换密钥Kd2
异或运算密钥K1(+)K2;以及
异或运算转换密钥Kd1(+)Kd2
图43(a)所示的密钥调度部生成这六种密钥并且将这些密钥顺序地输出至加密处理部。
当密钥K=128位时,上述的六种密钥全都是64位密钥。在这种情况下,作为加密处理部的转换目标的明文P也为64位数据。
在图43(b)所示的示例中,密钥输出序列如下:
密钥K1
密钥K2
转换密钥Kd1
转换密钥Kd2
异或运算密钥K1(+)K2
异或运算转换密钥Kd1(+)Kd2
异或运算密钥K1(+)K2
异或运算转换密钥Kd1(+)Kd2
异或运算密钥K1(+)K2
转换密钥Kd2
转换密钥Kd1
密钥K2;以及
密钥K1
按照该序列,将六种密钥输入至加密处理部中。
上述密钥的输入序列和其反向序列是相同的序列。
这就意味着可以将在从明文P生成密文C的加密处理中的密钥输入序列和在从密文C生成明文P的解密处理中的密钥输入序列设置为相同的。这就意味着应用于加密处理和解密处理的硬件或者程序可以是共用的,从而使设置有助于装置的轻重量(微型化)。
稍后将对包括图43所示的密钥调度部的加密处理装置的具体配置进行进一步说明。
[具有全扩散性质的密钥转换部的配置的示例]
在上述的实施例中,已经对通过将转换函数G应用于私人密钥K的转换处理生成转换密钥Kd的密钥转换部具有对合性质和全扩散性质的这两种性质的情况进行了说明。甚至在应用了不具有对合性质而只具有全扩散性质的密钥转换部时,也实现了对输入数据的扩散性能提高了的、抗各种攻击性能高的加密处理配置。
下面将对具有全扩散性质的加密处理配置的实施例进行说明。
图44是图示在密钥转换函数G具有全扩散性质时确保输入数据(P)的内部状态S的全扩散性质的示意图。如参照图35等在前述项[5-2.基于密钥调度部的全扩散性质的效果]中所描述的,当密钥转换部的密钥转换函数G具有全扩散性质时,在转换目标数据与密钥之间也确保了全扩散性质。
在图44所示的配置中,将基本密钥K1输入至待进行具有输入状态的异或运算的加密处理部的异或部中。其后,在轮运算部R1中执行非线性转换处理和线性转换处理。
进一步地,对异或运算部中的输出执行具有转换密钥Kd1的异或运算。
将对异或运算部的输出(S)进行检查。
在基本密钥K1与转换密钥Kd1之间确保了全扩散性质。
使转换目标数据在轮运算部R1中进行非线性转换处理和线性转换处理,随后进行具有转换密钥Kd1的异或运算。
从而,甚至在基本密钥K1与转换数据之间也确保了全扩散性质。
该性质可以视为是有助于加密处理装置的安全性或者安装性能的性质。
具体地,通过密钥实现了数据扩散性质的提高。从而,甚至在减少了轮数时,也可以具有高扩散性能。因此,可以提高抗各种攻击的性能。例如,基于使用密钥依赖性的中间值匹配处理可以进一步提高抗密钥分析处理的性能。
在不执行图45的密钥转换的加密处理配置中,关于应用密钥的信息(位流)为转换目标数据的输入明文P的所有位的扩散(全扩散)所必需的轮数取决于轮函数(R)的处理。
相反,在执行图44所示的密钥转换的配置中,关于应用密钥的信息(位流)为转换目标数据的输入明文P的所有位的扩散(全扩散)所必需的轮数是使用两个密钥(基本密钥K1和转换密钥Kd1)的轮数。
在附图所示的示例中,使用了一轮。
换言之,当应用根据本公开的处理时,在一轮中实现了关于转换目标数据中密钥数据的配置信息的扩散,从而在不依靠轮函数(R)的处理的情况下确保了较高扩散性能。
换言之,利用较少的轮实现了抗攻击性能高的安全加密处理。从而,实现了高速处理或者减轻重量。
将对具有全扩散性质的G函数的具体示例进行说明。
下面将要描述的G函数是通过以下两种函数的组合来配置的:
(a)全扩散4位函数(Df4);以及
(b)16位代换函数(Bp16)。
(a)全扩散4位函数是设置为输出和输出4位的转换函数,并且是具有指示输入的4位对全部输出的4位的影响的全扩散性质的函数。
换言之,
输入:x0,x1,x2,x3(分别为1位);以及
输出:y0,y1,y2,y3(分别为1位)。
此时,函数f为:
yi=f(x0,x1,x2,x3),
其中,i=0、1、2、3。
全扩散4位函数是具有上述性质的函数。
接着,将参照图46对16位代换函数(Bp16)进行说明。
图46图示了16位代换函数(Bp16)的示例。
将输入X设置为x0、x1、x2、...、x15的16位数据,并且将在输入至转换函数G的输入X的转换之后的输出Y设置为y0、y1、y2、...、y15的16位数据。
进一步地,xi和yi均为0或者1的1位数据。
通过16位代换函数(Bp16)的输入位与输出位之间的关系为以下对应关系:
输入:x0,,x1,...,x15(分别为1位);
输出:y0,y1,y2,...,y15(分别为1位);
函数:y0=x0,y1=x4,y2=x8,y3=x12
y4=x1,y5=x5,y6=x9,y7=x13
y8=x2,y9=x6,y10=x10,y11=x14;以及
y12=x3,y13=x7,y14=x11,y15=x15
图47是图示应用了配置为包括以下两种函数并且具有全扩散性质的G函数的密钥转换处理的示例(处理示例1)的示意图:
(a)全扩散4位函数(Df4);以及
(b)16位代换函数(Bp16)。
假定基本密钥为A而转换密钥为B。这两种密钥均是由4位元素构成的4×4状态数据。
在图47所示的示例中,从基本密钥A生成转换密钥B的处理配置为包括以下4个步骤:
(S11)将全扩散4位函数(Df4)应用于基本密钥A的16个4位元素中的各个元素以便转换的步骤;
(S12)将16位代换函数(Bp16)应用于通过步骤S11的转换处理生成的数据(4×4状态)的各个列16位数据以便转换的步骤;
(S13)将全扩散4位函数(Df4)应用于通过步骤S12的转换处理生成的数据(4×4状态)的16个4位元素中的各个元素以便转换的步骤;以及
(S14)将16位代换函数(Bp16)应用于通过步骤S13的转换处理生成的数据(4×4状态)的各个行16位数据以便转换的步骤。
通过这个处理,从基本密钥A生成转换密钥B。
转换密钥B的元素b0至b15成为接收基本密钥A的元素a0至a15的影响的数据,并且在基本密钥A与转换密钥B之间确保了全扩散性质。
图48是图示应用了配置为包括以下两种函数并且具有全扩散性质的G函数的密钥转换处理的示例(处理示例2)的示意图:
(a)全扩散4位函数(Df4);以及
(b)16位代换函数(Bp16)。
假定基本密钥为A而转换密钥为B。这两种密钥均是由4位元素构成的4×4状态数据。
在图48所示的示例中,从基本密钥A生成转换密钥B的处理配置为包括以下5个步骤:
(S21)将全扩散4位函数(Df4)应用于基本密钥A的16个4位元素中的各个元素以便转换的步骤;
(S22)将16位代换函数(Bp16)应用于通过步骤S21的转换处理生成的数据(4×4状态)的各个列16位数据以便转换的步骤;
(S23)将全扩散4位函数(Df4)应用于通过步骤S22的转换处理生成的数据(4×4状态)的16个4位元素中的各个元素以便转换的步骤;
(S24)将16位代换函数(Bp16)应用于通过步骤S23的转换处理生成的数据(4×4状态)的各个行16位数据以便转换的步骤;以及
(S25)将全扩散4位函数(Df4)应用于通过步骤S24的转换处理生成的数据(4×4状态)的16个4位元素中的各个元素以便转换的步骤。
通过这个处理,从基本密钥A生成转换密钥B。
转换密钥B的元素b0至b15成为接收基本密钥A的元素a0至a15的影响的数据,并且在基本密钥A与转换密钥B之间确保了全扩散性质。
图49是图示应用了配置为包括以下两种函数并且具有全扩散性质的G函数的密钥转换处理的示例(处理示例3)的示意图:
(a)全扩散4位函数(Df4);以及
(b)16位代换函数(Bp16)。
假定基本密钥为A而转换密钥为B。这两种密钥均是由4位元素构成的4×4状态数据。
在该处理示例3中应用的(a)全扩散4位函数(Df4)是还具有对合性质的函数。
在图49所示的示例中,从基本密钥A生成转换密钥B的处理配置为包括以下5个步骤:
(S31)将具有对合性质和全扩散的4位函数(Df4)应用于基本密钥A的16个4位元素中的各个元素以便转换的步骤;
(S32)将16位代换函数(Bp16)应用于通过步骤S31的转换处理生成的数据(4×4状态)的各个列16位数据以便转换的步骤;
(S33)将具有对合性质和全扩散的4位函数(Df4)应用于通过步骤S32的转换处理生成的数据(4×4状态)的16个4位元素中的各个元素以便转换的步骤;
(S34)将16位代换函数(Bp16)应用于通过步骤S33的转换处理生成的数据(4×4状态)的各个行16位数据以便转换的步骤;以及
(S35)将具有对合性质和全扩散的4位函数(Df4)应用于通过步骤S34的转换处理生成的数据(4×4状态)的16个4位元素中的各个元素以便转换的步骤。
通过这个处理,从基本密钥A生成转换密钥B。
转换密钥B的元素b0至b15成为接收基本密钥A的元素a0至a15的影响的数据,并且在基本密钥A与转换密钥B之间确保了全扩散性质。进一步地,由于(a)全扩散4位函数(Df4)和(b)16位代换函数(Bp16)两者都具有对合性质,所以在基本密钥A与转换密钥B之间也确保了对合性质。
图50是图示应用了配置为包括以下两种函数并且具有全扩散性质的G函数的密钥转换处理的示例(处理示例4)的示意图:
(a)全扩散4位函数(Df4);以及
(b)16位代换函数(Bp16)。
假定基本密钥为A而转换密钥为B。这两种密钥均是由4位元素构成的4×4状态数据。
在该处理示例4中应用的(a)全扩散4位函数(Df4)是还具有对合性质的函数。
在图50所示的示例中,从基本密钥A生成转换密钥B的处理配置为包括以下5个步骤:
(S41)将16位代换函数(Bp16)应用于基本密钥A(4×4状态)的各个列16位数据以便转换的步骤;
(S42)将具有对合性质和全扩散的4位函数(Df4)应用于通过步骤S41的转换处理生成的数据(4×4状态)的16个4位元素中的各个元素以便转换的步骤;
(S43)将16位代换函数(Bp16)应用于通过步骤S42的转换处理生成的数据(4×4状态)的各个列16位数据以便转换的步骤;
(S44)将具有对合性质和全扩散的4位函数(Df4)应用于通过步骤S43的转换处理生成的数据(4×4状态)的16个4位元素中的各个元素以便转换的步骤;以及
(S45)将16位代换函数(Bp16)应用于通过步骤S44的转换处理生成的数据(4×4状态)的各个行16位数据以便转换的步骤。
通过这个处理,从基本密钥A生成转换密钥B。
转换密钥B的元素b0至b15成为接收基本密钥A的元素a0至a15的影响的数据,并且在基本密钥A与转换密钥B之间确保了全扩散性质。进一步地,由于(a)全扩散4位函数(Df4)和(b)16位代换函数(Bp16)两者都具有对合性质,所以在基本密钥A与转换密钥B之间也确保了对合性质。
图51是图示应用了配置为包括以下两种函数并且具有全扩散性质的G函数的密钥转换处理的示例(处理示例5)的示意图:
(a)全扩散4位函数(Df4);以及
(b)16位代换函数(Bp16)。
假定基本密钥为A而转换密钥为B。这两种密钥均是由4位元素构成的4×4状态数据。
在该处理示例5中应用的(a)全扩散4位函数(Df4)是还具有对合性质的函数。
在图51所示的示例中,从基本密钥A生成转换密钥B的处理配置为包括以下5个步骤:
(S51)将具有对合性质和全扩散的4位函数(Df4)应用于基本密钥A的16个4位元素中的各个元素以便转换的步骤;
(S52)将16位代换函数(Bp16)应用于通过步骤S51的转换处理生成的数据(4×4状态)的各个行16位数据以便转换的步骤;
(S53)将具有对合性质和全扩散的4位函数(Df4)应用于通过步骤S52的转换处理生成的数据(4×4状态)的16个4位元素中的各个元素以便转换的步骤;
(S54)将16位代换函数(Bp16)应用于通过步骤S53的转换处理生成的数据(4×4状态)的各个列16位数据以便转换的步骤;以及
(S55)将具有对合性质和全扩散的4位函数(Df4)应用于通过步骤S54的转换处理生成的数据(4×4状态)的16个4位元素中的各个元素以便转换的步骤。
通过这个处理,从基本密钥A生成转换密钥B。
转换密钥B的元素b0至b15成为接收基本密钥A的元素a0至a15的影响的数据,并且在基本密钥A与转换密钥B之间确保了全扩散性质。进一步地,由于(a)全扩散4位函数(Df4)和(b)16位代换函数(Bp16)两者都具有对合性质,所以在基本密钥A与转换密钥B之间也确保了对合性质。
已经对图47至图51的5种密钥转换函数G的配置的示例进行了说明。
这些密钥转换函数可以在从基本密钥K生成转换密钥时应用,也可以应用于通过分裂上面参照图42所述的基本密钥K来生成的分裂密钥上的转换处理。
进一步地,应用于两个分裂密钥的密钥转换函数可以设置为不同。
图52所示的加密处理装置包括密钥调度部380和加密处理部385。预先生成的私人密钥K存储在密钥调度部380的密钥寄存器381中。
私人密钥K是密钥K1和K2的链接数据。
例如,K1和K2均为64位密钥,而作为链接数据的私人密钥K为128位数据。
附图中图示的G1和G2是密钥转换部。
这些密钥转换部至少具有全扩散性质。
作为替代方案,这些密钥转换部具有两种特点:全扩散性质和对合性质。
密钥转换函数G1和G2的组合可以是以下设置:
(a)G1和G2在不具有对合性质的情况下具有全扩散性质;
(b)G1和G2具有全扩散性质和对合性质;以及
(c)G1和G2具有全扩散性质,并且将G1和G2设置为反函数,即,G2=G1-1的关系。
密钥转换函数G1和G2的组合可以是上述的各种设置。
[6.通过常数输入实现安全性提高的配置]
接着,将对通过将常数输入至重复执行轮运算和对转换目标数据或者轮密钥和常数执行运算的加密处理部来提高扩散性能的加密处理装置进行说明。
[6-1.相关技术中通过常数输入实现安全性提高的配置和问题]
对于通过轮函数重复执行轮运算的配置,在相关技术中已经提出了不同常数针对各轮有效的配置以便排除针对各轮的转换处理的同一性。
因为抗攻击(称为滑动攻击或者反射攻击)的性能较高,所以这种常数输入处理被视为是有效的方法。
首先,将对有关技术的常数输入配置的概述和问题进行说明。
作为相关技术的常数输入配置的示例,例如,存在图53所示的配置。
图53所示的轮运算执行部401a至401d是在加密处理部中包括非线性转换部、线性转换部和异或部(轮密钥运算部)的轮函数执行部。
将常数1(CON1)至常数(CON4)顺序地输入至轮运算部401a至401d。
输入的常数CON在轮运算部中进行了具有轮密钥或者转换数据的异或运算。
通过这种方式,通过在各轮中使用各种不同的常数执行运算,排除了轮运算之间的同一性,从而可以提高抗各种攻击性能。
接着,将对这种常数输入配置中存在的问题进行说明。
对于加密处理装置,加密处理和解密处理可以通过设计轮函数的设置由相同的装置来执行。
具体地,如图54所示,当从中心将应用于加密处理装置的加密处理部的多个转换函数的配置分成右侧和左侧时,加密处理和解密处理可以通过设置左半部分和右半部分之间的反函数的关系利用相同的装置的来执行。
这就是所谓的具有对合性质的加密处理装置。
在图54所示的示例中,转换函数E 411和转换函数E-1 413具有反函数的关系。中央线性转换部M输出针对输入A的输出B,并且输出针对输入B的输出A。
通过按照该序列将转换函数E 411、线性转换部412和转换函数E-1 413应用于明文P可以得到密文C。
按照相同的序列将转换部应用于密文C。换言之,通过按照该序列应用转换函数E411、线性转换部412和转换函数E-1 413可以得到原始明文P。
这种加密处理装置称为具有对合性质的加密处理装置。在具有对合性质的加密处理装置中,存在如下的加密处理装置:轮函数的执行序列在正向方向和反向方向上都是相同的序列,并且应用于各轮中的轮密钥的输入序列在正向方向和反向方向上也都是相同的序列。
例如,上面参照图43所述的密钥输入序列是实现了加密处理装置的对合性质的一个密钥输入序列。
然而,具有这种对合性质的加密处理装置的一个问题是安全性问题。
下面将参照图55对该问题进行说明。
图55(a)是描述在没有常数输入至具有对合性质的加密处理装置时转换部的数据输入值与输出值之间的关系的示意图。
假定明文P的局部配置数据=Y。
假定转换函数E 411相对于数据Y的转换结果为X。
线性转换部412对来自转换函数E 411的输出值执行线性转换,但是在某些情况下,不加改变地输出局部配置数据(位)的值。在线性转换中输入值和输出值相同的点称为固定点。许多加密处理装置中应用的线性转换处理中存在有若干个固定点。
在图55(a)所示的示例中,由于线性转换部412的固定点的作用,假定至线性转换部412的输入值X是线性转换部412的输出X,而不改变。
在这种情况下,将值X输入至转换函数E-1 413。由于转换函数E-1 413是转换函数E411的反函数,所以输入值X返回到初始值Y。
换言之,使构成密文C的局部输出值Y变成和输入明文P的配置值Y相同的值。换言之,在整个加密处理装置中发生输入值和输出值不改变的固定点。
该性质是导致抗各种攻击性弱的性质,并且是可能破坏加密处理装置的安全性的不可取性质。
在图55(b)中,与图55(a)中的一样,加密处理装置是具有对合性质的加密处理装置,但是具有如下配置:在将常数1(CON1)输入至转换函数E 411时执行运算,并且在将常数2(CON2)输入至转换函数E-1 413时执行运算。
图解说明了在输入这些常数时转换部的数据输入值与输出值之间的关系。
假定明文P的部分配置数据=Y。
假定转换函数E 411相对于数据Y的转换结果为X。
在该示例中,假定通过线性转换处理由线性转换部412将至线性转换部412的输入值X转换成X+ΔA。
在这种情况下,将值X+ΔA输入至转换函数E-1 413。转换函数E-1 413是转换函数E411的反函数,具有在输入常数2(CON2)时执行运算的配置,并且不是在输入常数1(CON1)时执行运算的转换函数E 411的完全反函数。
然而,根据常数选择方法,如图所示,在某些情况下,将与至转换函数E-1 413的输入X+ΔA对应的输出值设置为与Y+ΔB相同。
换言之,线性转换部的输入值和输出值的对应关系为X和X+ΔA,而加密处理装置的输入值和输出值的对应关系为Y和Y+ΔB。
这样,在某些情况下,发生将比差数据添加到输入数据的相关性。
输入数据与输出数据之间的相关性也是导致抗各种攻击性弱的性质并且是可能破坏加密处理装置的安全性的不可取性质。
[6-2.具有安全性高的常数输入配置的加密处理装置的配置]
接着,将对具有解决了相关技术的配置的问题并且安全性高的常数数据配置的加密处理装置的配置进行说明。
将参照图56和随后的附图对根据该实施例的加密处理装置的配置的示例进行说明。
图56是描述根据该实施例的加密处理部中的常数输入配置的示例的示意图。
在图56(a)中,将包括具有对合性质的数据转换部的加密处理部图示为与参照图54的描述中的一样。
换言之,加密处理部包括以下数据转换部:
转换函数E 431;
线性转换部432;以及
转换函数E-1 433。
转换函数E-1 433是转换函数E 431的反函数。
在该实施例中,将常数(CON)435输入至转换函数E-1 433。
转换函数E-1 433配置为包括多个轮函数,而常数(CON)配置为输入至一个或者多个轮函数部。
在本文描述的实施例中,作为常数(CON)的输入部的设置,将常数输入至转换函数E-1 433,但是常数可以设置为输入至转换函数E 431侧。
换言之,加密处理部具有对合性质,在该对合性质中,顺序地执行转换函数E 431和作为转换函数E 431的反函数的转换函数E-1 433;并且加密处理部具有如下配置:在转换函数E和反函数E-1中的仅一个中执行一次或者多次应用了常数的轮运算。
图56(b)图示了常数(CON)435的输入配置的具体示例。在加密处理部的线性转换部437的前一阶段将常数(CON)435输入至异或部436,并且利用至异或部436的输入数据A来执行异或运算。
异或部436是利用轮密钥Kr执行异或运算的轮密钥运算部。异或部436对在该图所示的前一阶段从轮运算部输出的数据A、轮密钥Kr和常数CON执行异或运算。
换言之,异或运算部436计算出B作为以下运算的执行结果,并且在后一阶段将该执行结果输出至轮运算部的线性转换部437:
B=A(+)Kr(+)CON。
在上式中,(+)表示异或运算。
在该配置中,将以下条件设置为待输入常数(CON)435的条件:
条件:输入值与输出值之间的差值设置为在与异或部437相邻的线性转换部(即,该图所示的示例中的线性转换部437)的线性转换处理中不会减少的值。
上述条件是:由于对常数CON进行的矩阵运算和在线性转换部437中应用的线性转换矩阵而得到的所有元素均非零,即,不为零的值。
下面将参照图57对该条件进行说明。
图57图示了如下的4×4矩阵:转换函数E 431构成待输入至异或部436的常数CON435和在线性转换部437中采用的线性转换矩阵M。
常数CON 435是各个元素(con0至con15)均为4位数据和64位数据的4×4状态。
线性转换矩阵M是4×4矩阵数据。
换言之,线性转换矩阵是如下所示的线性转换矩阵:
[数学式12]
常数CON的条件是:由于对常数CON进行的矩阵运算和在线性转换部437中应用的线性转换矩阵而得到的所有元素均非零,即,不为零的值。
换言之,通过以下矩阵运算得到的值均非零:
[数学式13]
Figure GDA0002210684070000561
将常数CON设置为:通过上述矩阵运算公式计算出来的16个值都不为零,即,所有值均非零。
在这种设置中,可以防止减少与输入有常数CON的异或部相邻的线性转换部(即,该图所示的示例中的线性转换部437)中的线性转换处理的输入值与输出值之间的差值。从而,可以将差分活跃S盒的最小数量保持在预定数量或者更多。
将参照图58对常数CON的具体设置示例进行说明。
图58所示的示例为如下设置:与输入有常数CON的异或部相邻的线性转换部437设置为上面参照图23至图30所述的线性转换部P1。换言之,该示例是如下设置示例:执行应用了以下矩阵的列扩散运算(MixColumn):
[数学式14]
Figure GDA0002210684070000562
线性转换部437执行应用了矩阵M0的列扩散运算(MixColumn),即:
MC[M0]。
此时,常数CON的条件是:由于对常数CON进行的矩阵运算和在线性转换部437中应用的线性转换矩阵M0而得到的所有元素均非零,即,不为零的值。
常数CON的示例是图58所示的常数CON并且是具有以下元素配置的4×4状态:
[数学式15]
Figure GDA0002210684070000571
将具有上述设置的4×4状态的常数输入至与执行列扩散运算(MixColumn)的线性转换部相邻的异或部。执行应用了矩阵M0的MC[M0]和异或运算。在该配置中,防止了由线性转换部的线性转换引起的差值的减少。从而,可以防止差分活跃S盒的最小数量的减少。因此,实现了抗各种攻击性能高、安全性高的加密处理配置。
图59是图示加密处理装置的加密处理部中的轮密钥和常数CON的运算配置示例和输入配置的示意图,该加密处理装置具有满足上述常数条件的常数CON的输入配置。
在图59中,从左下角输入明文P,并且从右下角输出密文C。
图59所示的加密处理装置的加密处理部451(E)与图56(a)所示的转换函数E 431对应。
线性转换部(P2)452与图56(a)所示的线性转换部432对应。
加密处理部453(E-1)与图56(a)所示的转换函数E-1 433对应。
具有图59所示的配置的加密处理装置是具有对合性质的加密处理装置。
图59所示的轮密钥的输入示例与上面参照图43所述的配置的示例对应。换言之,至加密处理部中包括的异或部的轮密钥的输入序列如下:
密钥K1
密钥K2
转换密钥Kd1
转换密钥Kd2
异或运算密钥K1(+)K2
异或运算转换密钥Kd1(+)Kd2
异或运算密钥K1(+)K2
异或运算密钥K1(+)K2
异或运算转换密钥Kd1(+)Kd2
异或运算密钥K1(+)K2
转换密钥Kd2
转换密钥Kd1
密钥K2;以及
密钥K1
在图43所示的设置中,将异或运算密钥K1(+)K2设置为输入至轮运算部R6。然而,在图59所示的示例中,将异或运算密钥K1(+)K2设置为在线性转换452之前和之后重复输入。
图59所示的配置对应如下配置:将图43所示的轮运算部R6设置为轮运算部,该轮运算部配置为包括以下转换部:
线性转换部452;
线性转换部452之前和之后的两个异或运算密钥K1(+)K2的异或部;以及
非线性转换部。
密钥调度部的轮密钥供应部按照上述序列输出六种密钥。密钥的输入序列及其反向序列是相同的序列。
这就意味着可以将在从明文P生成密文C的加密处理中的密钥输入序列和在从密文C生成明文P的解密处理中的密钥输入序列设置为是相同的。换言之,该密钥输入序列是具有对合性质的密钥输入序列,应用于加密处理和解密处理的硬件或者程序可以是共用的,从而使设置有助于装置的轻重量(微型化)。
在图59所示的配置中,将常数CON输入至加密处理部453(E-1)的异或部:异或部461、异或部463和异或部465。
例如,常数CON是参照图58所述的4×4状态的常数CON。
与这三个异或部461、463和465相邻的线性转换部462、464和466全都执行应用了上述矩阵M0的列扩散运算(MixColumn),即:
MC[M0]。
图59所示的加密处理部具有对合性质,在该对合性质中,通过执行从明文P生成密文C的序列的反向序列也可以从密文C生成明文P;并且该加密处理部通过应用相同硬件或者相同程序可以执行加密处理和解密处理。
由于密钥输入序列在加密处理和解密处理中也是相同的,所以密钥调度部的密钥供应处理也可以作为应用了相同硬件或者相同程序的处理来执行。
在上述的常数输入配置中,可以防止差分活跃S盒的最小数量的减少。从而,实现了抗各种攻击性能高、安全性高的加密处理配置。
在一般加密处理中基于活跃S盒的评估处理和在根据本公开的常数输入配置中基于活跃S盒的评估处理稍有不同。将参照图60和图61对该差别进行说明。
如上所述,在设置有公用密钥块加密的非线性转换部中使用以S位为单位执行非线性转换的S盒。
实现抗差分攻击性能的一个指数是差分活跃S盒的最小数量,即,在表示差值连接关系的差分路径中包括的差分活跃S盒的最小数量。
在一般的块加密中,非线性转换只是由S盒执行的处理的一部分。如图60的(A)和(B)所示,在执行块加密的块加密装置中,具有比差ΔX的数据P1和数据P2是单独输入的,并且得到加密处理结果C1和C2。
在这两个加密处理(A)和(B)中,将输入有差值的S盒定义为活跃S盒。通过指定输入有差值的S盒,提高了分析便利性。换言之,削弱了抗攻击性能。
一般而言,将输入有在设置具有如图60所示的预定差值ΔX的两个输入P1和P2时产生的差值的若干个S盒定义为活跃S盒。通过对该数量进行计数,来评估安全性。
图61图示了配置为包括具有上述图56(a)所示的对合性质的数据转换部的加密处理部。
换言之,加密处理部包括以下数据转换部:
转换函数E 431;
线性转换部432;以及
转换函数E-1 433。
转换函数E-1 433是转换函数E 431的反函数。
常数(CON)435输入至转换函数E-1 433。
转换函数E-1 433配置为包括多个轮函数,而常数(CON)输入至一个或者多个轮函数部。
加密处理部具有对合性质,在该对合性质中,顺序地执行转换函数E 431和作为转换函数E 431的反函数的转换函数E-1 433;并且在转换函数E和反函数E-1中的仅一个中执行一次或者多次应用了常数的轮运算。
在该配置中,将输入S1从线性转换部432侧输入至转换函数E 431以得到输出T。
另一方面,同样,将通过使差值ΔX和上述输入值S1相加得到的输入S2(=S1(+)ΔX)从线性转换部432侧输入至转换函数E-1 433以得到输出T(+)ΔY。
当将在反向方向上具有差值ΔX的输入值S1和S2输入至两个函数(即,转换函数E431和作为转换函数E 431的反函数的转换函数E-1 433)时,如图61所示,将在位于函数的对应位置处的S盒中输入有差值的S盒设置为活跃S盒。
图62是描述在上述图59所示的加密处理配置中包括若干个活跃S盒的配置的示意图。
将输入值S1从图62所示的加密处理装置的加密处理部451(E)的线性转换部452侧输入,并且执行应用了加密处理部451(E)的加密处理。
将在输入值S1中设置差值的输入值S2从作为加密处理部451(E)的反函数的加密处理部453(E-1)的线性转换部452侧输入,并且执行应用了加密处理部453(E-1)的加密处理。
将在位于两个加密处理中的加密处理部(E)和(E-1)的对应位置处的S盒中输入有差值的S盒设置为活跃S盒。
当减少了活跃S盒的数量时,例如,削弱了抗攻击(称为滑动攻击或者反射攻击)的性能。从而,通过将活跃S盒的数量保持在指定数量,可以提高抗这种攻击的性能,从而可以提高安全性。在上述的常数输入配置中,可以防止差分活跃S盒的数量的减少。从而,实现了抗各种攻击性能高、安全性高的加密处理配置。
[6-3.输入插入位置的变型]
在上述实施例中,已经对用于执行如下轮运算的配置进行了说明,在该轮运算中,将常数CON输入至函数E和反函数E-1中的仅一个并且将常数应用于具有如下对合性质的加密处理装置中,在该对合性质中,顺序地执行数据转换函数E和数据转换函数E的反函数E-1
在这种设置中,可以防止减少与输入有常数CON的异或部相邻的线性转换部(即,图57所示的示例中的线性转换部437)中的线性转换处理的输入值与输出值之间的差值。从而,可以将差分活跃S盒的最小数量保持在预定数量或者更多。
常数输入配置并不限于函数E和反函数E-1中的仅一个,而是可以使用如下配置:在函数E和反函数E-1中都执行一次或者多次应用了常数的轮运算。然而,常数应用位置设置为偏离对应位置的位置(非对应位置),该位置不是函数E和反函数E-1的对应位置。
在图63中图示了具有常数输入配置的加密处理装置的配置的示例。
在图63中,从左下角输入明文P,并且从右下角输出密文C。
图63所示的加密处理装置的加密处理部451(E)与图56(a)所示的转换函数E 431对应。
线性转换部(P2)452与图56(a)所示的线性转换部432对应。
加密处理部453(E-1)与图56(a)所示的转换函数E-1 433对应。
具有图63所示的配置的加密处理部是具有对合性质的加密处理部。
图63所示的轮密钥的输入示例与上面参照图43所述的配置的示例对应。换言之,至加密处理部中包括的异或部的轮密钥的输入序列如下:
密钥K1
密钥K2
转换密钥Kd1
转换密钥Kd2
异或运算密钥K1(+)K2
异或运算转换密钥Kd1(+)Kd2
异或运算密钥K1(+)K2
异或运算密钥K1(+)K2
异或运算转换密钥Kd1(+)Kd2
异或运算密钥K1(+)K2
转换密钥Kd2
转换密钥Kd1
密钥K2;以及
密钥K1
在图43所示的设置中,将异或运算密钥K1(+)K2设置为输入至轮运算部R6。然而,在图63所示的示例中,将异或运算密钥K1(+)K2设置为在线性转换452之前和之后重复输入。
图63所示的配置对应如下配置:将图43所示的轮运算部R6设置为轮运算部,该轮运算部配置为包括以下转换部:
线性转换部452;
线性转换部452之前和之后的两个异或运算密钥K1(+)K2的异或部;以及
非线性转换部。
密钥调度部的轮密钥供应部按照上述序列输出六种密钥。密钥的输入序列及其反向序列是相同的序列。
这就意味着可以将在从明文P生成密文C的加密处理中的密钥输入序列和在从密文C生成明文P的解密处理中的密钥输入序列设置为是相同的。换言之,该密钥输入序列是具有对合性质的密钥输入序列,应用于加密处理和解密处理的硬件或者程序可以是共用的,从而使设置有助于装置的轻重量(微型化)。
在图63所示的配置中,将常数CON输入至加密处理部451(E)的异或部:异或部471和异或部472。
进一步地,将常数CON也输入至加密处理部453(E-1)的异或部473。
例如,常数CON是参照图58所述的4×4状态的常数CON。
与这三个异或部471、472和473相邻的线性转换部481、482和483全都执行应用了上述矩阵M0的列扩散运算(MixColumn),即:
MC[M0]。
这样,常数输入配置并不限于函数E和反函数E-1中的仅一个,而是可以使用如下配置:在函数E和反函数E-1中都执行一次或者多次应用了常数的轮运算。然而,常数应用位置设置为偏离位置(非对应位置),该偏离位置不是函数E和反函数E-1的对应位置。
图63所示的加密处理部具有对合性质,在该对合性质中,通过执行从明文P生成密文C的序列的反向序列也可以从密文C生成明文P;并且该加密处理部通过应用相同硬件或者相同程序可以执行加密处理和解密处理。
由于密钥输入序列在加密处理和解密处理中也是相同的序列,所以密钥调度部的密钥供应处理也可以作为应用了相同硬件或者相同程序的处理来执行。
[7.应用于非线性转换部的S盒的具体配置的示例]
接着,将对应用于非线性转换部的S盒的具体配置的示例进行说明。
例如,在图19所示的加密处理装置100中,按照使加密处理部120具有对合性质的顺序,即,按照使从明文P生成并输出密文的硬件或者程序和从密文C生成并输出明文P的硬件或者程序相同的顺序,对于加密处理部120中包括的非线性转换部122来说也需要具有对合性质。
下文将对加密处理部120中包括的非线性转换部122具有对合性质的配置的示例进行说明。
如上面参照图22所述的,图19所示的加密处理装置100的加密处理部120中的非线性转换部122具有,例如,有如图22(1)所示的多个S盒的配置。
例如,各个S盒均为具有4位输入与输出配置的非线性转换部,并且4×16=64位的非线性转换处理通过16个S盒的并行处理来执行。
对于4位输入和输出的S盒来说,需要具有对合性质的配置。
换言之,需要实现如下配置:当从4位输入值中获得某个4位输出值并且将该4位输出值输入至相同S盒时,得到原始4位输入值。
具有对合性质的函数f(x)是相对于所有输入值x满足以下公式的函数:
f(f(x))=x。
加密处理部120中包括的非线性转换部122必须是具有对合性质的函数f(x)。
下面将参照图64和随后的附图对具有对合性质的4位输入与输出S盒的配置的示例进行说明。
图64(1)是图示非线性转换部的配置的示例的示意图,与上述图22(1)中的一样。
换言之,该图图示了图19所示的加密处理装置100的加密处理部120中包括的非线性转换部122的配置的示例。非线性转换部122具有如下配置:设置了执行非线性转换处理的多个S盒。
各个S盒执行4位数据的非线性转换。
图64(2)图示了非线性转换部中包括的一个S盒的配置。该S盒可以分为3层:
第一非线性转换层521;
线性转换层522;以及
第二非线性转换层523。
第二非线性转换层523是第一非线性转换层521的反函数。
图65图示了具体S盒的电路配置的示例。
如图65所示,第一非线性转换部521配置为包括两个异或运算部(XOR)和两个基本运算符号。
在图65所示的示例中,图示了将NOR电路设置为基本运算符号的示例。基本运算符号可以用执行AND电路、OR电路和NAND电路中的一个的2个输入和1个输出的运算的基本运算符号。
这两个基本运算符号可以由相同的基本运算符号组合而成或者可以由不同的基本运算符号组合而成。
线性转换层522是执行输入的4位的置换处理并且基本上具有对合性质的线性转换层。
第二非线性转换层523是由第一非线性转换层521的反函数配置而成。
配置为包括这三层的S盒电路用作具有对合性质的非线性转换电路。
在图65的底部,图示了图65所示的S盒中的输入值(in)和输出值(out)的对应关系数据。
输入值和输出值全都是4位数据,并且是0000至1111的数据。图65所示的表图示为用0000至1111的十进制记数法表示的0至15的输入值和输出值的对应表。
从该表中可以理解的是,通过将从任意输入值X获得的输出值Y用作输出值Y而得到的输出值变成原始输入值X。
换言之,图65所示的4位输入与输出S盒是具有对合性质的非线性转换电路。
图66图示了S盒的数据转换公式。
此处,假定ain,bin,cin,和din是至S盒的4位输入,而假定aout,bout,cout,和dout是来自S盒的4位输出。
S盒中的数据转换公式如下:
[数学式16]
Figure GDA0002210684070000641
Figure GDA0002210684070000642
Figure GDA0002210684070000643
Figure GDA0002210684070000644
在上述公式中,~(x|y)表示()中的值的否定(NOT)。具体地,这表明了在至NOR电路的输入值为x和y时NOR电路的输出值。
执行用上述公式表示数据转换的S盒具有对合性质。图66所示的S盒电路具有差分概率和线性概率(两者均为2-2)并且具有足够的安全性。
图66所示的S盒配置为包括4个异或运算(XOR)和4个NOR电路。在硬件电路上需要有13个门。
门的所需数量是按照异或运算符号(XOR)=2.25个门和NOR电路=1个门来计算的。
例如,参照图54所述的加密处理部具有如下配置:
转换函数E 411;
线性转换部412;以及
转换函数E-1 413。
通过使用图64至图66所示的S盒来配置具有这种配置的加密处理部中的转换函数E 411和转换函数E-1 413中的非线性转换部,实现了整个加密处理部的对合性质。
参照图65至图66所述的S盒具有如下的三层配置:
第一非线性转换层;
线性转换层;以及
第二非线性转换层。
将对具有这三层配置的S盒的另一个示例进行说明。
当执行该三层配置中的线性转换层的必要条件和不具有代换部分的位代换(其中,输入位和输出位不变)时,需要实现具有对合性质的配置。
将参照图67对线性转换层的条件进行说明。
图67图示了在4位输入与输出S盒中的线性转换层的设置示例。
与参照图65至图66所述的S盒一样,具有如下三层配置的4位输入与输出S盒中的线性转换层具有例如在67(1)所示的一种设置:
第一非线性转换层;
线性转换层;以及
第二非线性转换层。
当在线性转换层中的输入4位是X=(x0,x1,x2,x3)而输出4位是Y=(y0,y1,y2,y3)时,该配置具有对合性质。
进一步地,线性转换层的条件是如下设置:输入位和输出位是不相同的,即,满足以下公式:
yi≠xi,
其中,i=0、1、2、3。
图67(2)所示的线性转换配置不满足上述条件并且是不兼容的。
执行4位代换的线性转换层的代换函数P4可以用如下公式表示:
(a)P4(P4(X))=X;以及
(b)yi≠xi,
其中,i=0、1、2、3。
上述(a)是指示代换函数P4具有对合性质的条件公式。
上述(b)是指示输入位和输出位不相同的条件公式。
对于线性转换层而言,需要具有执行满足了上述条件的代换处理的配置。
参照图68和随后的附图,将与参照图65和图66所述的配置不同的配置的示例描述为执行4位代换的S盒的示例。
图68所示的S盒是具有如下三层配置的4位输入与输出S盒:
第一非线性转换层531;
线性转换层532;以及
第二非线性转换层533。
第一非线性转换层531配置为包括两个异或运算部(XOR)、NAND电路和NOR电路。
线性转换层522是执行输入的4位的置换处理并且具有对合性质的线性转换层。
第二非线性转换层533是由第一非线性转换层531的反函数配置而成。
配置为包括这三层的S盒电路用作具有对合性质的非线性转换电路。
在图68的底部,图示了图68所示的S盒中的输入值(in)和输出值(out)的对应关系数据。
输入值和输出值全都是4位数据,并且是0000至1111的数据。图68所示的表图示为用0000至1111的十进制记数法表示的0至15的输入值和输出值的对应表。
从该表中可以理解的是,通过将从任意输入值X获得的输出值Y用作输出值Y而得到的输出值变成原始输入值X。
换言之,图68所示的4位输入与输出S盒是具有对合性质的非线性转换电路。
图69图示了S盒的数据转换公式。
此处,假定ain,bin,cin,和din是至S盒的4位输入,而假定aout,bout,cout,和dout是来自S盒的4位输出。
S盒中的数据转换公式如下:
[数学式17]
Figure GDA0002210684070000671
Figure GDA0002210684070000672
Figure GDA0002210684070000673
Figure GDA0002210684070000674
在上述公式中,~(x|y)表明了在至NOR电路的输入值为x和y时NOR电路的输出值。
进一步地,~(x|y)表明了在至NAND电路的输入值为x和y时NAND电路的输出值。
执行用上述运算公式表示的数据转换的S盒具有对合性质。
图69所示的S盒电路也具有差分概率和线性概率(两者均为2-2)并且具有足够的安全性。
图69所示的S盒配置为包括4个异或运算(XOR)、2个NOR电路和2个NAND电路。
例如,参照图54所述的加密处理部具有如下配置:
转换函数E 411;
线性转换部412;以及
转换函数E-1 413。
通过使用图69所示的S盒来配置具有这种配置的加密处理部中的转换函数E 411和转换函数E-1 413中的非线性转换部,实现了整个加密处理部的对合性质。
接着,将参照图70对具有另一种配置的4位输入与输入S盒的示例进行说明。
图70所示的S盒是具有如下三层配置的4位输入与输出S盒:
第一非线性转换层541;
线性转换层542;以及
第二非线性转换层543。
第一非线性转换层541配置为包括两个异或运算部(XOR)和两个OR电路。
线性转换层542是执行输入4位的置换处理并且具有对合性质的线性转换层。
第二非线性转换层543是由第一非线性转换层541的反函数配置而成。
配置为包括这三层的S盒电路用作具有对合性质的非线性转换电路。
在图70的底部,图示了图70所示的S盒中的输入值(in)和输出值(out)的对应关系数据。
输入值和输出值全都是4位数据,并且是0000至1111的数据。图70所示的表图示为用0000至1111的十进制记数法表示的0至15的输入值和输出值的对应表。
从该表中可以理解的是,通过将从任意输入值X获得的输出值Y用作输出值Y而得到的输出值变成原始输入值X。
换言之,图70所示的4位输入与输出S盒是具有对合性质的非线性转换电路。
图71图示了S盒的数据转换公式。
此处,假定ain,bin,cin,和din是至S盒的4位输入,而假定aout,bout,cout,和dout是来自S盒的4位输出。
S盒中的数据转换公式如下:
[数学式18]
Figure GDA0002210684070000681
Figure GDA0002210684070000682
Figure GDA0002210684070000683
Figure GDA0002210684070000684
在上述公式中,~(x|y)表明了在至OR电路的输入值为x和y时OR电路的输出值。
执行用上述运算公式表示的数据转换的S盒具有对合性质。
图69所示的S盒电路也具有差分概率和线性概率(两者均为2-2)并且具有足够的安全性。
图69所示的S盒配置为包括4个异或运算(XOR)和4个OR电路。
例如,参照图54所述的加密处理部具有如下配置:
转换函数E 411;
线性转换部412;以及
转换函数E-1 413。
通过使用图71所示的S盒来配置具有这种配置的加密处理部中的转换函数E 411和转换函数E-1 413中的非线性转换部,实现了整个加密处理部的对合性质。
[8.加密处理装置的具体示例]
接着,将对包括所有的上述配置(即,如下配置)的加密处理装置的整体配置的示例进行说明:
(1)安全性提高了的公用密钥加密处理的整体配置(图19至图22);
(2)执行应用了多个不同的线性转换矩阵的线性转换的配置(图23至图31);
(3)提供通过使用基本密钥和转换密钥生成的轮密钥并且实现对合性质和全扩散性质的密钥调度部的配置(图32至图52);
(4)常数输入配置(图53至图63);以及
(5)应用了具有对合性质的S盒的非线性转换部的配置(图64至图71)。
图72所示的加密处理装置700是图示具有全部上述配置的加密处理装置的示例的示意图。
加密处理装置700包括密钥调度部720和加密处理部750。
密钥处理部750包括数据转换部、异或部751、非线性转换部752和线性转换部753,并且具有重复执行这些处理的配置。
密钥调度部720将轮密钥RKn输出至加密处理部750中包括的各个异或部,并且执行与转换目标数据的异或运算。
密钥调度部720包括轮密钥供应部721和常数供应部(常数寄存器)725。
轮密钥供应部721包括存储私人密钥K的密钥寄存器722和密钥转换部723。
例如,图72所示的加密处理装置700的加密处理部750输入64位的明文P并且输出64位的密文C。通过应用该加密处理部750,可以输入密文C并且输出明文P。
当转换数据具有64位时,各个轮密钥RKn也具有64位。
各64位数据全都是具有16个元素的4×4状态,各个元素均为4位元素。
加密处理部750具有对合性质的配置,在该对合性质中,将明文P用作输入数据重复执行轮运算,并且输出密文C作为输出数据;并且,通过按照相反的顺序设置使用密文C作为输入数据的轮运算的执行序列的数据转换处理,可以生成明文P作为输出数据。
当从明文P生成密文C时,从附图所示的加密处理部750的顶部阶段到底部阶段执行各个转换处理。
相反,当从密文P生成明文C时,从附图所示的加密处理部750的底端到顶端执行各个转换处理。
密钥调度部720的轮密钥供应部721具有用于执行密钥供应处理的配置,该密钥供应处理具有对合性质;并且在该密钥供应处理中,从明文P生成密文C的情况下的密钥供应序列与从密文C生成明文P的情况下的密钥供应序列相匹配。当针对加密处理部750执行密钥供应处理时,密钥调度部720通过常数对一些供应的密钥执行运算并且输出密钥数据作为针对加密处理部750的运算的结果。
这样,与上面参照图59所描述的配置中的一样,由于转换函数是按照转换函数E、线性转换函数和转换函数E-1的序列来设置的,所以图72所示的加密处理部750的配置是具有对合性质的配置。
在加密处理部750中,设置了执行三种不同的线性转换处理的线性转换处理部,如上面在[4.加密处理部的线性转换部的处理和配置]部分中参照图23至图31所述的一样。
换言之,加密处理部750包括以下三种不同的线性转换部:
线性转换部P1;
线性转换部P2;以及
线性转换部P3。
加密处理部750针对加密处理中的各轮来改变待执行的线性转换处理。换言之,相同的线性转换处理设置为不在连续几轮中执行。
在线性转换处理部P1中,执行以列为单位将一个矩阵M0应用于4×4状态的输入数据的各列的元素的矩阵运算。
该运算是上面参照图24和图25所描述的列扩散运算(MixColum)。
换言之,线性转换处理部P1执行由以下公式表示的列扩散运算(MC):
MC[M0]。
MC[M0]是表示将相同矩阵M0应用于状态的各列的矩阵运算并且具有与单独指示应用于该状态的各列的矩阵的以下公式相同的意义的公式:
MC[M0,M0,M0,M0]。
如上面参照图24和图26等所描述的,线性转换部P2执行以行为单位将不同矩阵应用于4×4状态的输入数据的各行的元素的矩阵运算。在高阶第一行至第四行上执行应用了以下矩阵的矩阵运算:
第一行:应用矩阵M0
第二行:应用矩阵M1
第三行:应用矩阵M2;以及
第四行:应用矩阵M3
换言之,线性转换部P2执行由以下公式表示的行扩散运算(MixRow):
MR[M0,M1,M2,M3]。
在线性转换处理P3中,如图24(2)所示,与线性转换处理P2一样,以各行为单位对4×4状态的输入数据的各行的元素执行应用了不同矩阵的矩阵运算。在线性转换处理P3中,与线性转换处理P2不同,在高阶第一行至第四行上执行应用了以下矩阵的矩阵运算:
第一行:应用矩阵M2
第二行:应用矩阵M0
第三行:应用矩阵M1;以及
第四行:应用矩阵M3
该运算是上面参照图27所描述的行扩散运算(MixRow)。
换言之,线性转换处理P3是由以下公式表示的行扩散运算(MixRow):
MR[M2,,M0,M1,M3]。
通过针对各轮切换待执行的线性转换处理并且组合和使用多个不同的线性转换处理,如上面参照图30所述的,可以增加活跃S盒的数量。从而,实现了安全性较高的加密处理(加密处理和解密处理)。
图72所示的加密处理部750执行顺序地应用了以下数据转换部的数据转换处理:
利用轮密钥RK1执行异或运算的异或部;
非线性转换部S;
线性转换部P1;
利用轮密钥RK2执行异或运算的异或部;
非线性转换部S;
线性转换部P2;
利用轮密钥RK3执行异或运算的异或部;
非线性转换部S;
线性转换部P1;
利用轮密钥RK4执行异或运算的异或部;
非线性转换部S;
线性转换部P3;
利用轮密钥RK5执行异或运算的异或部;
非线性转换部S;
线性转换部P1;
利用轮密钥RK6执行异或运算的异或部;
非线性转换部S;
利用轮密钥RK7执行异或运算的异或部;
线性转换部P2;
利用轮密钥RK7执行异或运算的异或部;
非线性转换部S;
利用轮密钥RK8执行异或运算的异或部;
线性转换部P1;
非线性转换部S;
利用轮密钥RK9执行异或运算的异或部;
线性转换部P3;
非线性转换部S;
利用轮密钥RK10执行异或运算的异或部;
线性转换部P1;
非线性转换部S;
利用轮密钥RK11执行异或运算的异或部;
线性转换部P2;
非线性转换部S;
利用轮密钥RK12执行异或运算的异或部;
线性转换部P1;
非线性转换部S;
利用轮密钥RK13执行异或运算的异或部。
该轮运算执行配置和上面参照图59所述的配置相同,并且按照以下序列来设置:
转换函数E;
线性转换部;以及
转换函数E-1
该配置具有对合性质。
非线性转换部是由具有上面参照图64至图66所述的对合性质的S盒配置而成。
密钥调度部720的轮密钥供应部721包括密钥寄存器722和密钥转换部723。由轮密钥供应部721执行的处理是上面在项[密钥调度部的处理和配置]中参照图32至图43所述的处理。
换言之,将通过使用基本密钥和转换密钥生成的轮密钥提供给加密处理部750。在轮密钥供应配置中,实现了对合性质和全扩散性质。
密钥寄存器中存储的私人密钥K是128位密钥数据,该128位密钥数据是64位基本密钥K1和K2的链接数据。
密钥转换部723基于基本密钥K1生成转换密钥Kd1,并且通过转换处理基于基本密钥K2生成转换密钥Kd2
该转换处理通过使用转换函数G和反函数G-1用公式表示为如下:
Kd1=G(K1);
K1=G-1(Kd1)。
此处,满足G=G-1
换言之,应用于密钥转换部723中的密钥转换的数据转换函数G具有对合性质,即,正向函数G和反向函数G-1为相同函数的性质,如图33所示。
如上面参照图34等所述,该密钥转换处理是通过应用哈达马(Hadamard)MDS矩阵MD来执行的。
具体地,执行了图34所示的步骤S1的列扩散运算和步骤S2的行扩散运算。
步骤S1的列扩散运算通过以下运算公式来表示:
MC[MD]=MC[MD,MD,MD,MD]。
步骤S2的行扩散运算通过以下运算公式来表示:
MR[MD]=MR[MD,MD,MD,MD]。
换言之,在图34的步骤S1的列扩散运算中,执行了将相同的哈达马(Hadamard)MDS矩阵MD应用于由4位元素构成的4×4状态表达数据的全部四列的矩阵运算。
在步骤S2的行扩散运算中,执行了将相同的哈达马(Hadamard)MDS矩阵MD应用于由4位元素构成的4×4状态表达数据的全部四行的矩阵运算。
换言之,由列扩散运算MC[MD]和行扩散运算MR[MD]的连续处理形成的函数G具有对合性质,并且正向函数G和反向函数G-1是相同的。因此,通过重复执行运算两次,计算出初始值。
进一步地,通过应用了在密钥转换部723中执行的矩阵MD的列扩散运算MC[MD]和应用了矩阵MD的行扩散运算MR[MD],在输入状态与输出状态的全部元素之间执行数据扩散,即“全扩散转换”。
通过将具有全扩散性质的轮密钥输入至加密处理部并且执行与转换目标数据的异或,提高了转换数据的扩散性能,而且实现了安全性较高的加密处理。
由轮密钥供应部721执行的轮密钥供应配置具有以下两种性质:
(1)全扩散性质,在该全扩散性质中实现了全扩散转换;以及
(2)对合性质,在该对合性质中,正向函数G和反向函数G-1是相同的。
如上所述,根据这两种特点取得了以下效果:
基于实现全扩散转换的全扩散性质,利用较少的轮实现了关于转换目标数据的密钥数据配置信息的扩散,从而确保了较高的扩散性能而不依赖于轮函数(R)的处理。
换言之,利用较少的轮实现了抗攻击性能高的安全加密处理。从而,实现了高速处理或者减轻重量。
作为基于对合性质的效果,可以是重复使用一个密钥转换部的配置,并且在展开安装或者轮安装中都实现了硬件的微型化。
在图72所示的示例中,轮密钥供应部721按照以下序列输出密钥:
密钥K1
密钥K2
转换密钥Kd1
换密钥Kd2
异或运算密钥K1(+)K2
异或运算转换密钥Kd1(+)Kd2
异或运算密钥K1(+)K2
异或运算转换密钥Kd1(+)Kd2
异或运算密钥K1(+)K2
转换密钥Kd2
转换密钥Kd1
密钥K2;以及
密钥K1
按照该序列,输出六种密钥。
输入至加密处理部750的轮密钥K1至K13是通过使用上述密钥或者运行常数CON来生成的。
在位于加密处理部750的中央位置处的线性转换部P2之前和之后,将异或运算转换密钥Kd1(+)Kd2重复用作轮密钥K。
轮密钥RK8、RK10和RK12是通过对由常数供应部725提供的常数CON和由轮密钥供应部721提供的密钥执行异或来生成的。
这些密钥的输入序列和上面参照图59所述的序列相同,并且其相反序列也是相同的序列。
这就意味着,在从密文C生成明文P的解密处理中,轮密钥供应部721可以按照和在从明文P生成密文C的加密处理中的密钥输入序列相同的序列来生成和输出密钥。这就意味着应用于加密处理和解密处理的硬件或者程序可以是共用的,从而使设置有助于装置的轻重量(微型化)。
在密钥调度部720中设置的常数供应部725根据上面在项[6.通过常数输入实现安全性提高的配置]中参照图53至图59所述的处理来执行常数供应处理。
在该图所示的示例中,利用由轮密钥供应部在生成以下轮密钥时生成的密钥数据,对常数(CON)进行异或运算:
轮密钥RK8
轮密钥RK10;以及
轮密钥RK12
换言之,
轮密钥RK8=Kd1(+)Kd2(+)CON;
轮密钥RK10=Kd2(+)CON;以及
轮密钥RK12=K2(+)CON。
进一步地,(+)指异或运算。
作为输入常数(CON)的处理的结果,输入至加密处理部750的轮密钥RK1至RK13的设置如下:
RK1=K1
RK2=K2
RK3=Kd1
RK4=Kd2
RK5=K1(+)K2
RK6=Kd1(+)Kd2
RK7=K1(+)K2
RK7=K1(+)K2
RK8=Kd1(+)Kd2(+)CON;
RK9=K1(+)K2
RK10=Kd2(+)CON;
RK11=Kd1
RK12=K2(+)CON;以及
RK13=K1
进一步地,(+)指异或运算。
RK7设置为:在线性转换部(P2)之前和之后两次输入相同的轮密钥。
通过这种方式,利用由轮密钥供应部在生成轮密钥时生成的密钥,对常数(CON)进行异或处理。
除了轮密钥之外,可以将常数输入至加密处理部的异或部,并且可以执行与转换数据的异或处理。在这种情况下的结果是相同的。
作为常数(CON),如上所述,使用了如下常数(CON),在该常数(CON)中,常数CON上的矩阵运算和与输入有常数CON的加密处理部的异或部相邻的线性转换部中应用的线性转换矩阵的结果的所有元素均非零,即,不为零的值。
在该配置中,防止了由线性转换部的线性转换引起的差值的减少。从而,可以防止差分活跃S盒的最小数量的减少。从而,实现了抗各种攻击性能高、安全性高的加密处理配置。
进一步地,在加密处理部750中设置的非线性转换部具有如下配置:设置了如上面在项[7.应用于非线性转换部的S盒的具体配置的示例]中参照图64至图66所述的多个盒(S盒)和具有对合性质的4位输入与输出k。
如上所述,加密处理部750具有包括了转换函数E、线性转换部和转换函数E-1的配置。通过实现在转换函数E-和转换函数E的非线性转换部中使用图64至图66所示的S盒的配置,实现了整个加密处理部的对合性质。
[9.加密处理装置的安装示例]
最后,将对根据上述实施例的执行加密处理的加密处理装置的安装示例进行说明。
根据上述实施例的执行加密处理的加密处理装置可以安装在执行加密处理的各种信息处理设备上。具体地,加密处理装置可以使用在执行与数据处理或者通信处理相关联的加密处理的各种设备中,诸如PC、TV、录音机、播放器、通信设备、RFID、智能卡、传感器网络设备、电池/蓄电池认证模块、医疗设备和独立网络设备。
IC模块800的配置的示例在图73中图示为执行根据本公开的加密处理的设备的示例。上述处理可以在各种信息处理设备诸如PC、IC卡、读写器、智能手机和可穿戴装置中执行。图73所示的IC模块可以配置在各种设备中。
图73所示的中央处理单元(CPU)801是执行加密处理的开始或者结束、对数据传输和接收的控制、对组成单元之间的数据传输的控制、以及各种程序的处理器。存储器802是通过,例如,存储固定数据诸如由CPU 801执行的程序或者运行参数的只读存储器(ROM)或者用作在CPU 801的处理中执行的程序和在程序处理中适当改变的参数的存储区或者工作区的随机存取存储器来实现的。存储器802可以用作加密处理需要的密钥数据、在加密处理中应用的转换表(代换表)、应用于转换矩阵的数据等的存储区。该数据存储区优选地配置为具有防篡改结构的存储器。
加密处理部803具有上述的加密处理配置,并且根据公用密钥块加密处理算法执行加密处理和解密处理。
此处,已经对将加密处理部设置为单独模块的示例进行了说明。例如,加密处理程序可以配置为存储在ROM中,而CPU 801可以配置为在不设置独立的加密处理模块的情况下读取并执行ROM中存储的程序。
随机数生成器804执行生成密钥生成所需的随机数或者加密处理中所需的随机数等的处理。
收发部805是数据通信处理部,该数据通信处理部执行与外界的数据通信并且执行与IC模块诸如读写器的数据通信以输出在IC模块中生成的密文或者来自诸如外部读写器等设备的输入数据。
在上述实施例中描述的加密处理装置不仅可以适用于对作为输入数据的明文进行加密的加密处理,而且可以适用于将作为输入数据的密文恢复到明文的解密处理。
在上述实施例中描述的配置可以适用于加密处理和解密处理。
图74是图示进行根据本公开的加密处理的智能手机900的示意性配置的示例的框图。智能手机900包括处理器901、存储器902、存储装置903、外部连接接口904、摄像头906、传感器907、麦克风908、输入装置909、显示装置910、扬声器911、无线通信接口913、天线开关914、天线915、总线917、蓄电池918和辅助控制器919。
处理器901可以是,例如,CPU或者片上系统(SoC),而且控制智能手机900的应用层和另一层的功能并控制加密处理。存储器902包括RAM和ROM,并且存储由处理器901执行的程序和数据。进一步地,存储器902可以用作加密处理需要的密钥数据、在加密处理中应用的转换表(代换表)、应用于转换矩阵的数据等的存储区。该数据存储区优选地配置为具有防篡改结构的存储器。存储装置903可以包括诸如半导体存储器和硬盘等存储介质。外部连接接口904是用于将诸如存储卡和通用串行总线(USB)装置等外部装置连接至智能手机900的接口。
摄像头906包括诸如电荷耦合器件(CCD)和互补金属氧化物半导体(CMOS)等图像传感器,并且生成捕捉图像。传感器907可以包括一组传感器,诸如测量传感器、陀螺仪传感器、地磁传感器和加速度传感器。麦克风908将输入至智能手机900的声音转换成音频信号。利用摄像头906生成的图像或者由传感器907获得的传感器数据和由麦克风908获得的音频信号可以通过处理器901来加密,并且可以经由无线通信接口913传输至另一设备。输入装置909包括,例如,配置为显示装置910的屏幕上的触控的触控传感器、按键、键盘、按钮或者开关,并且接收来自用户的操纵或者信息输入。显示装置910包括屏幕,诸如液晶显示器(LCD)和有机发光二极管(OLED)显示器,并且显示出智能手机900的输出图像。扬声器911将从智能手机900输出的音频信号转换成声音。
无线通信接口913实行无线通信,并且通常可以包括基带处理器、射频(RF)电路和功率放大器。无线通信接口913可以是单片模块,在该单片模块中集成有存储通信控制程序的存储器、执行该程序的处理器和相关电路。无线通信接口913可以支持不同种类的无线通信方案,诸如,除了无线LAN方案之外,短距离无线通信方案、邻近无线通信方案和蜂窝通信方案。
总线917将处理器901、存储器902、存储装置903、外部连接接口904、摄像头906、传感器907、麦克风908、输入装置909、显示装置910、扬声器911、无线通信接口913和辅助控制器919相互连接。蓄电池918经由馈电线为图74所示的智能手机900的各个块供电,馈电线在图中部分地图示为虚线。辅助控制919,例如,在睡眠模式下运行智能手机900的最少必要功能。
在上述实施例中描述的智能手机中的加密处理不仅可以适用于对作为输入数据的明文进行加密的加密处理,而且可以适用于将作为输入数据的密文恢复到明文的解密处理。
在上述实施例中描述的配置可以适用于加密处理和解密处理。
图73所示的IC模块800可以安装在图74所示的智能手机900上,这样可以在IC模块800中执行根据上述实施例的加密处理。
[10.本公开的构造的总结]
到目前为止,已经参照具体实施例对本公开的实施例进行了详细说明。但是,应该注意的是,在不脱离本公开的范围的情况下,对本领域技术人员而言各种变型和替代实施例会变得显而易见。换言之,应该注意的是,本公开是通过实施例来公开的,但是并不诠释为受这些实施例的限制。为了确定本公开的范围,需要考虑权利要求书的范围。
此外,在本文中公开的当前技术也可以如下配置:
(1)
一种加密处理装置,其包括:
加密处理部,其配置为对输入数据执行轮运算并且生成输出数据;以及密钥调度部,其配置为将待由加密处理部应用于轮运算中的轮密钥输出至加密处理部,
其中,加密处理部具有对合性质,在该对合性质中,顺序地执行数据转换函数E和数据转换函数E的反函数E-1;并且加密处理部执行轮运算,在该轮运算中,在函数E和反函数E-1中的一个中一次或者多次应用常数。
(2)
根据(1)所述的加密处理装置,
其中,加密处理部对常数和转换目标数据或者常数和轮密钥执行异或运算作为应用常数的轮运算。
(3)
根据(1)或者(2)所述的加密处理装置,
其中,配置为执行轮运算的轮运算部包括配置为执行线性转换处理的线性转换处理部,以及
加密处理部将常数输入至与线性转换处理部互相关的异或部,并且执行与转换目标数据或者轮密钥的异或运算。
(4)
根据(3)所述的加密处理装置,
其中,输入数据和常数是由m×n个元素形成的状态,各个元素是1位或者多位元素,
线性转换部具有执行有矩阵运算的配置,在该矩阵运算中,将线性转换矩阵应用于状态,以及
该常数是满足如下条件的状态:对常数和由与输入有常数的异或部互相关的线性转换处理部在线性转换处理中应用的线性转换矩阵的矩阵运算产生的状态的所有构成元素均非零。
(5)
根据(3)或者(4)所述的加密处理装置,
其中,输入数据和常数是由4×4个元素形成的状态,各个元素是4位元素,
线性转换部具有执行有矩阵运算的配置,在该矩阵运算中,将线性转换矩阵应用于状态,以及
该常数是满足如下条件的4×4状态:对常数和由与输入有常数的异或部相邻位置处的线性转换处理部在线性转换处理中应用的线性转换矩阵的矩阵运算产生的状态的所有构成元素均非零。
(6)
根据(3)至(5)中任一项所述的加密处理装置,
其中,线性转换部执行列扩散运算和行扩散运算中的一个矩阵运算,在该列扩散运算中通过以状态的各列元素为单位应用矩阵来执行线性转换,在该行扩散运算中通过以状态的各行元素为单位应用矩阵来执行线性转换。
(7)
根据(1)至(6)中任一项所述的加密处理装置,
其中,配置为执行轮运算的轮运算部包括配置为执行线性转换处理的线性转换处理部,以及
加密处理部每隔一轮将常数输入至与线性转换处理部互相关的异或部,并且执行与转换目标数据或者轮密钥的异或运算。
(8)
根据(1)至(7)中任一项所述的加密处理装置,
其中,加密处理部具有对合性质的配置,在该对合性质中,通过使用明文P作为输入数据来重复轮运算并且输出密文C作为输出数据,并且,通过数据转换处理可将明文P生成为输出数据,在该数据转换处理中,按照相反的顺序设置使用密文C作为输入数据的轮运算的执行序列。
(9)
根据(1)至(8)中任一项所述的加密处理装置,
其中,密钥调度部具有如下配置:密钥供应处理具有对合性质,在该对合性质中,密文C由明文P生成的情况的密钥供应序列与明文P由密文C生成的情况的密钥供应序列匹配。
(10)
根据(1)至(9)中任一项所述的加密处理装置,
其中,当执行针对加密处理部的密钥供应处理时,密钥调度部根据常数对一些供应的密钥执行运算,并且输出由对加密处理部的运算产生的密钥数据。
(11)
根据(1)至(10)中任一项所述的加密处理装置,
其中,由加密处理部重复执行的轮运算是包括由线性转换部进行的线性转换处理的运算,以及
线性转换部根据轮过渡来改变线性转换形式。
(12)
根据(1)至(11)中任一项所述的加密处理装置,
其中,轮运算包括非线性转换处理,以及
执行非线性转换处理的S盒具有对合性质的配置,在该对合性质中,通过再输入从输入值获得的输出值来获取输入值。
(13)
一种加密处理装置,其包括:
加密处理部,其配置为对输入数据执行轮运算并且生成输出数据;以及密钥调度部,其配置为将待由加密处理部应用于轮运算中的轮密钥输出至加密处理部,
其中,加密处理部具有对合性质,在该对合性质中,顺序地执行数据转换函数E和数据转换函数E的反函数E-1,以及
加密处理部具有如下配置:在函数E和反函数E-1中都执行轮运算,在轮运算中应用一次或者多次常数,并且在函数E和反函数E-1的非对应位置处设置常数应用位置。
(14)
根据(13)所述的加密处理装置,
其中,加密处理部对常数和转换目标数据或者常数和轮密钥执行异或运算作为应用常数的轮运算。
(15)
根据(13)或者(14)所述的加密处理装置,
其中,配置为执行轮运算的轮运算部包括配置为执行线性转换处理的线性转换处理部,以及
加密处理部将常数输入至与线性转换处理部互相关的异或部,并且执行与转换目标数据或者轮密钥的异或运算。
(16)
根据(15)所述的加密处理装置,
其中,输入数据和常数是由m×n个元素形成的状态,各个元素是1位或者多位元素,
线性转换部具有执行有矩阵运算的配置,在该矩阵运算中,将线性转换矩阵应用于状态,以及
该常数是满足如下条件的状态:对常数和由与输入有常数的异或部互相关的线性转换处理部在线性转换处理中应用的线性转换矩阵的矩阵运算产生的状态的所有构成元素均非零。
(17)
一种在加密处理装置中执行的加密处理方法,
其中,该加密处理装置包括:
加密处理部,其配置为对输入数据执行轮运算并且生成输出数据;以及密钥调度部,其配置为将待由加密处理部应用于轮运算中的轮密钥输出至加密处理部,
其中,加密处理部具有对合性质,在该对合性质中,顺序地执行数据转换函数E和数据转换函数E的反函数E-1;并且加密处理部执行轮运算,在该轮运算中,在函数E和反函数E-1中的一个中一次或者多次应用常数。
(18)
一种在加密处理装置中执行的加密处理方法,
其中,该加密处理装置包括:
加密处理部,其配置为对输入数据执行轮运算并且生成输出数据;以及
密钥调度部,其配置为将待由加密处理部应用于轮运算中的轮密钥输出至加密处理部,
其中,加密处理部具有对合性质,在该对合性质中,顺序地执行数据转换函数E和数据转换函数E的反函数E-1;加密处理部具有如下配置:在函数E和反函数E-1的非对应位置处设置常数应用位置;并且加密处理部执行轮运算,在该轮运算中,在函数E和反函数E-1中都一次或者多次应用常数。
(19)
一种用于使加密处理装置执行加密处理方法的程序,
其中,该加密处理装置包括:
加密处理部,其配置为对输入数据执行轮运算并且生成输出数据;以及
密钥调度部,其配置为将待由加密处理部应用于轮运算中的轮密钥输出至加密处理部,
其中,加密处理部具有对合性质,在该对合性质中,顺序地执行数据转换函数E和数据转换函数E的反函数E-1;并且加密处理部执行轮运算,在该轮运算中,在函数E和反函数E-1中的一个中一次或者多次应用常数。
(20)
一种用于使加密处理装置执行加密处理方法的程序,
其中,该加密处理装置包括:
加密处理部,其配置为对输入数据执行轮运算并且生成输出数据;以及
密钥调度部,其配置为将待由加密处理部应用于轮运算中的轮密钥输出至加密处理部,
其中,加密处理部具有对合性质,在该对合性质中,顺序地执行数据转换函数E和数据转换函数E的反函数E-1;加密处理部具有如下配置:在函数E和反函数E-1的非对应位置处设置常数应用位置;并且该程序使加密处理部执行轮运算,在该轮运算中,在函数E和反函数E-1中都一次或者多次应用常数。
在本说明书中描述的一系列处理可以由硬件、软件或者硬件和软件的组合配置来执行。当处理是由软件来执行时,记录有处理序列的程序可以安装在嵌入待执行的专用硬件的计算机中的存储器中,或者该程序可以安装在能够执行各种待执行处理的通用计算机中。例如,该程序可以预先记录在记录介质中。该程序可以从记录介质安装在计算机中,而且该程序也可以经由诸如局域网(LAN)或者因特网等网络来接收并可以安装在诸如内置硬盘等记录介质中。
本说明书中描述的各种处理可以根据描述按照时间顺序来执行,也可以根据执行程序的设备的处理性能或者必要时并行地或者单独地执行。本说明书中的系统是多种设备的逻辑设置配置,但是并不限于各配置均处于同一外壳内的情况。
[工业实用性]
如上所述,根据本公开的实施例的配置,实现了安全性好、抗各种攻击性能高的加密处理。
具体地,加密处理装置包括:加密处理部,其配置为对输入数据重复进行轮运算并且生成输出数据;以及密钥调度部,其配置为将待由加密处理部应用于轮运算中的轮密钥输出至加密处理部。该加密处理部具有对合性质,在该对合性质中,顺序地执行数据转换函数E和数据转换函数E的反函数E-1;并且该加密处理部执行轮运算,在该轮运算中,在函数E和反函数E-1中的一个中一次或者多次应用常数。该常数配置为满足如下条件的状态:由与输入有常数的异或部相邻位置处的线性转换处理部在线性转换处理中应用的对线性转换矩阵的矩阵运算产生的状态的所有构成元素均非零。
通过本配置实现了抗各种攻击性能提高了的、安全性高的加密处理配置。
附图标记列表:
100 加密处理装置
110 密钥调度部
120 加密处理部
121 异或部
122 非线性转换部
123 线性转换部
201 线性转换部P1
202 线性转换部P2
203 线性转换部P3
300 密钥调度部
301 密钥供应部(密钥寄存器)
302 密钥转换部
320 加密处理部
321至327 异或部
331,333 异或部
332 非线性/线性转换部(S&P)
350 加密处理部
351 异或部
352 非线性/线性转换部(S&P)
360 密钥调度部
361,362 密钥寄存器
363 密钥转换部
371 密钥寄存器
372 密钥转换部
381 密钥寄存器
391 密钥寄存器
392,394 异或部
393 密钥转换部
401 轮运算执行部
402 常数输入部
411 转换函数E
412 线性转换部
413 转换函数E-1
431 转换函数E
432 线性转换部
433 转换函数E-1
435 常数输入部
436 异或部
437 线性转换部
451 转换函数E
452 线性转换部
453 转换函数E-1
521 非线性转换层1
522 线性转换层
523 非线性转换层
700 加密处理装置
720 密钥调度部
721 轮密钥供应部
722 密钥寄存器
723 密钥转换部
725 常数输入部
750 加密处理部
751 异或部
752 非线性转换部
753 线性转换部
800 IC模块
801 CPU(中央处理单元)
802 存储器
803 加密处理部
804 随机数生成部
805 收发部
900 智能手机
901 处理器
902 存储器
903 存储装置
904 外部连接接口
906 摄像头
907 传感器
908 麦克风
909 输入装置
910 显示装置
911 扬声器
913 无线通信接口
914 天线开关
915 天线
917 总线
918 蓄电池
919 辅助控制器。

Claims (14)

1.一种加密处理装置,其包括:
加密处理部,其配置为对输入数据执行轮运算并且生成输出数据;以及
密钥调度部,其配置为将应用于所述加密处理部进行的轮运算中的轮密钥输出至所述加密处理部,
其中,所述加密处理部具有对合性质,在所述对合性质中,顺序地执行数据转换函数E和所述数据转换函数E的反函数E-1;并且所述加密处理部执行所述轮运算,在所述轮运算中,在所述函数E和所述反函数E-1中的一个中一次或者多次应用常数,
其中,配置为执行所述轮运算的轮运算部包括配置为执行线性转换处理的线性转换处理部,以及
所述加密处理部将所述常数输入至与所述线性转换处理部互相关的异或部,并且执行与转换目标数据或者所述轮密钥的异或运算,
其中,所述输入数据和所述常数是由m×n个元素形成的状态,各个元素是1位或者多位元素,
所述线性转换部具有执行矩阵运算的配置,在所述矩阵运算中,将线性转换矩阵应用于所述状态,以及
所述常数是满足如下条件的状态:状态的所有构成元素均非零,所述状态是对所述常数和由与输入有所述常数的所述异或部互相关的所述线性转换处理部在所述线性转换处理中应用的所述线性转换矩阵进行的矩阵运算的结果。
2.根据权利要求1所述的加密处理装置,
其中,所述加密处理部对所述常数和转换目标数据或者所述常数和所述轮密钥执行异或运算作为应用所述常数的所述轮运算。
3.根据权利要求1所述的加密处理装置,
其中,所述输入数据和所述常数是由4×4个元素形成的状态,各个元素是4位元素,
所述线性转换部具有执行矩阵运算的配置,在所述矩阵运算中,将线性转换矩阵应用于所述状态,以及
所述常数是满足如下条件的4×4状态:状态的所有构成元素均非零,所述状态是对所述常数和由与输入有所述常数的所述异或部相邻位置处的所述线性转换处理部在所述线性转换处理中应用的所述线性转换矩阵进行的矩阵运算的结果。
4.根据权利要求1或3所述的加密处理装置,
其中,所述线性转换部执行列扩散运算和行扩散运算中的一个矩阵运算,在所述列扩散运算中通过以所述状态的各列元素为单位应用矩阵来执行所述线性转换,在所述行扩散运算中通过以所述状态的各行元素为单位应用矩阵来执行所述线性转换。
5.根据权利要求1所述的加密处理装置,
其中,配置为执行所述轮运算的轮运算部包括配置为执行线性转换处理的线性转换处理部,以及
所述加密处理部每隔一轮将所述常数输入至与所述线性转换处理部互相关的异或部,并且执行与转换目标数据或者所述轮密钥的异或运算。
6.根据权利要求1所述的加密处理装置,
其中,所述加密处理部具有所述对合性质的配置,在所述对合性质中,通过使用明文P作为输入数据来重复所述轮运算并且输出密文C作为输出数据,并且,通过数据转换处理可将所述明文P生成为输出数据,在所述数据转换处理中,按照相反的顺序设置使用所述密文C作为输入数据的所述轮运算的执行序列。
7.根据权利要求1所述的加密处理装置,
其中,所述密钥调度部具有如下配置,在所述配置中,密钥供应处理具有对合性质,在所述对合性质中,密文C由明文P生成的情况的密钥供应序列与所述明文P由所述密文C生成的情况的密钥供应序列匹配。
8.根据权利要求1所述的加密处理装置,
其中,当执行针对所述加密处理部的密钥供应处理时,所述密钥调度部根据所述常数对一些供应的密钥执行运算,并且输出密钥数据,所述密钥数据是对所述加密处理部的所述运算的结果。
9.根据权利要求1所述的加密处理装置,
其中,由所述加密处理部重复执行的所述轮运算是包括由线性转换部进行的线性转换处理的运算,以及
所述线性转换部根据轮过渡来改变线性转换形式。
10.根据权利要求1所述的加密处理装置,
其中,所述轮运算包括非线性转换处理,以及
执行所述非线性转换处理的S盒具有所述对合性质的配置,在所述对合性质中,通过再输入从输入值获得的输出值来获取所述输入值。
11.一种加密处理装置,其包括:
加密处理部,其配置为对输入数据执行轮运算并且生成输出数据;以及
密钥调度部,其配置为将应用于所述加密处理部进行的所述轮运算中的轮密钥输出至所述加密处理部,
其中,所述加密处理部具有对合性质,在所述对合性质中,顺序地执行数据转换函数E和所述数据转换函数E的反函数E-1,以及
所述加密处理部具有如下配置,在所述配置中,在所述函数E和所述反函数E-1中都执行所述轮运算,在所述轮运算中应用一次或者多次常数,并且在所述函数E和所述反函数E-1的非对应位置处设置常数应用位置,
其中,配置为执行所述轮运算的轮运算部包括配置为执行线性转换处理的线性转换处理部,以及
所述加密处理部将所述常数输入至与所述线性转换处理部互相关的异或部,并且执行与转换目标数据或者所述轮密钥的异或运算,
其中,所述输入数据和所述常数是由m×n个元素形成的状态,各个元素是1位或者多位元素,
所述线性转换部具有执行矩阵运算的配置,在所述矩阵运算中,将线性转换矩阵应用于所述状态,以及
所述常数是满足如下条件的状态:状态的所有构成元素均非零,所述状态是对所述常数和由与输入有所述常数的所述异或部互相关的所述线性转换处理部在所述线性转换处理中应用的所述线性转换矩阵进行的矩阵运算的结果。
12.根据权利要求11所述的加密处理装置,
其中,所述加密处理部对所述常数和转换目标数据或者所述常数和所述轮密钥执行异或运算作为应用所述常数的所述轮运算。
13.一种在加密处理装置中执行的加密处理方法,
其中,所述加密处理装置包括:
加密处理部,其配置为对输入数据执行轮运算并且生成输出数据;以及
密钥调度部,其配置为将应用于所述加密处理部进行的所述轮运算中的轮密钥输出至所述加密处理部,
其中,所述加密处理部具有对合性质,在所述对合性质中,顺序地执行数据转换函数E和所述数据转换函数E的反函数E-1;并且所述加密处理部执行所述轮运算,在所述轮运算中,在所述函数E和所述反函数E-1中的一个中一次或者多次应用常数,
其中,配置为执行所述轮运算的轮运算部包括配置为执行线性转换处理的线性转换处理部,以及
所述加密处理部将所述常数输入至与所述线性转换处理部互相关的异或部,并且执行与转换目标数据或者所述轮密钥的异或运算,
其中,所述输入数据和所述常数是由m×n个元素形成的状态,各个元素是1位或者多位元素,
所述线性转换部具有执行矩阵运算的配置,在所述矩阵运算中,将线性转换矩阵应用于所述状态,以及
所述常数是满足如下条件的状态:状态的所有构成元素均非零,所述状态是对所述常数和由与输入有所述常数的所述异或部互相关的所述线性转换处理部在所述线性转换处理中应用的所述线性转换矩阵进行的矩阵运算的结果。
14.一种在加密处理装置中执行的加密处理方法,
其中,所述加密处理装置包括:
加密处理部,其配置为对输入数据执行轮运算并且生成输出数据;以及
密钥调度部,其配置为将应用于所述加密处理部进行的所述轮运算中的轮密钥输出至所述加密处理部,
其中,所述加密处理部具有对合性质,在所述对合性质中,顺序地执行数据转换函数E和所述数据转换函数E的反函数E-1;所述加密处理部具有如下配置,在所述配置中,在所述函数E和所述反函数E-1的非对应位置处设置常数应用位置;并且所述加密处理部执行所述轮运算,在所述轮运算中,在所述函数E和所述反函数E-1中都一次或者多次应用常数,
其中,配置为执行所述轮运算的轮运算部包括配置为执行线性转换处理的线性转换处理部,以及
所述加密处理部将所述常数输入至与所述线性转换处理部互相关的异或部,并且执行与转换目标数据或者所述轮密钥的异或运算,
其中,所述输入数据和所述常数是由m×n个元素形成的状态,各个元素是1位或者多位元素,
所述线性转换部具有执行矩阵运算的配置,在所述矩阵运算中,将线性转换矩阵应用于所述状态,以及
所述常数是满足如下条件的状态:状态的所有构成元素均非零,所述状态是对所述常数和由与输入有所述常数的所述异或部互相关的所述线性转换处理部在所述线性转换处理中应用的所述线性转换矩阵进行的矩阵运算的结果。
CN201580015013.9A 2014-03-28 2015-02-24 加密处理装置、加密处理方法 Expired - Fee Related CN106133810B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2014068292 2014-03-28
JP2014-068292 2014-03-28
PCT/JP2015/055281 WO2015146431A1 (ja) 2014-03-28 2015-02-24 暗号処理装置、および暗号処理方法、並びにプログラム

Publications (2)

Publication Number Publication Date
CN106133810A CN106133810A (zh) 2016-11-16
CN106133810B true CN106133810B (zh) 2020-02-07

Family

ID=54194965

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580015013.9A Expired - Fee Related CN106133810B (zh) 2014-03-28 2015-02-24 加密处理装置、加密处理方法

Country Status (5)

Country Link
US (1) US10425226B2 (zh)
EP (1) EP3125221A4 (zh)
JP (1) JP6406350B2 (zh)
CN (1) CN106133810B (zh)
WO (1) WO2015146431A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR112019007111A2 (pt) * 2016-10-09 2019-06-25 Lg Electronics Inc método criptográfico para criptografar dados com uma chave provida, meio não transitório legível por máquina e aparelho
CN109144993B (zh) * 2017-06-16 2021-07-27 腾讯科技(深圳)有限公司 一种数据查询方法及装置
US10666422B2 (en) * 2017-12-29 2020-05-26 Shenzhen China Star Optoelectronics Technology Co., Ltd. Data processing method
CN108390875B (zh) * 2018-02-13 2020-08-07 沈阳航空航天大学 一种减少传输能耗的信息加密优化方法
CN108566271B (zh) * 2018-06-11 2020-12-15 安徽工程大学 复用轮变换电路、aes加密电路及其加密方法
US10936703B2 (en) * 2018-08-02 2021-03-02 International Business Machines Corporation Obfuscating programs using matrix tensor products
US11838402B2 (en) 2019-03-13 2023-12-05 The Research Foundation For The State University Of New York Ultra low power core for lightweight encryption
US10892891B2 (en) * 2019-03-13 2021-01-12 Digital 14 Llc System, method, and computer program product for zero round trip secure communications based on two noisy secrets
US10951415B2 (en) * 2019-03-13 2021-03-16 Digital 14 Llc System, method, and computer program product for implementing zero round trip secure communications based on noisy secrets with a polynomial secret sharing scheme
US11569979B2 (en) * 2019-06-05 2023-01-31 Sameer KHANNA Cryptographic systems with variable layout cryptography
CN111147230A (zh) * 2019-12-31 2020-05-12 东方红卫星移动通信有限公司 一种基于低轨卫星物联网轻量级星间的信息加密传输方法
CN112039673B (zh) * 2020-08-06 2023-06-16 国电南瑞科技股份有限公司 一种基于Feistel结构的配电物联网巡检数据动态加密方法及装置
CN115440107A (zh) * 2022-10-26 2022-12-06 北京千种幻影科技有限公司 一种基于vr虚拟现实的聋哑人智能驾驶训练系统及方法
US11895222B1 (en) * 2023-05-22 2024-02-06 Atofia Llc Systems and methods for data encryption, decryption, and authentication

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724427A (en) * 1995-08-17 1998-03-03 Lucent Technologies Inc. Method and apparatus for autokey rotor encryption

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7613295B2 (en) * 2004-02-18 2009-11-03 Harris Corporation Cryptographic device and associated methods
IL174784A0 (en) * 2006-04-04 2006-12-31 Nds Ltd Robust cipher design
US8417961B2 (en) * 2010-03-16 2013-04-09 Oracle International Corporation Apparatus and method for implementing instruction support for performing a cyclic redundancy check (CRC)
CN103004129B (zh) * 2010-07-23 2015-04-08 日本电信电话株式会社 加密装置、解密装置、加密方法、解密方法、程序及记录介质
US8583937B2 (en) * 2010-12-16 2013-11-12 Blackberry Limited Method and apparatus for securing a computing device
JP5682525B2 (ja) 2011-03-28 2015-03-11 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
US10061718B2 (en) * 2012-06-28 2018-08-28 Microsoft Technology Licensing, Llc Protecting secret state from memory attacks
US20150222421A1 (en) * 2014-02-03 2015-08-06 Qualcomm Incorporated Countermeasures against side-channel attacks on cryptographic algorithms

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724427A (en) * 1995-08-17 1998-03-03 Lucent Technologies Inc. Method and apparatus for autokey rotor encryption

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Nessie Proposal:Noekeon;Joan Daemen,et al.;《http://gro.noekeon.org/Noekeon-spec.pdf》;20001027;第2-6、9节 *
PRINCE-A Low-Latency Block Cipher for Pervasive Computing Applications;Julia Borghoff,et al.;《International Conference on the Theory and Application of Cryptology and Information Security》;20120913;第1-18页 *

Also Published As

Publication number Publication date
JPWO2015146431A1 (ja) 2017-04-13
US10425226B2 (en) 2019-09-24
JP6406350B2 (ja) 2018-10-17
WO2015146431A1 (ja) 2015-10-01
EP3125221A4 (en) 2018-04-04
US20170118016A1 (en) 2017-04-27
EP3125221A1 (en) 2017-02-01
CN106133810A (zh) 2016-11-16

Similar Documents

Publication Publication Date Title
CN106133810B (zh) 加密处理装置、加密处理方法
CN106233660B (zh) 加密处理设备、加密处理方法和程序
US9363074B2 (en) Encryption processing apparatus, encryption processing method, and computer program
EP1193665B1 (en) Block encryption device using auxiliary conversion
EP2016524B1 (en) Robust cipher design
JP2007041620A5 (zh)
US9083507B2 (en) Data processing device, data processing method, and program
WO2015146430A1 (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
WO2016059870A1 (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
WO2015146432A1 (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
RU2140716C1 (ru) Способ криптографического преобразования блоков цифровых данных
JP6292107B2 (ja) 暗号処理装置、および暗号処理方法、並びにプログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20200207