CN105453482A - 认证加密设备、认证加密方法以及用于认证加密的程序 - Google Patents

认证加密设备、认证加密方法以及用于认证加密的程序 Download PDF

Info

Publication number
CN105453482A
CN105453482A CN201480043829.8A CN201480043829A CN105453482A CN 105453482 A CN105453482 A CN 105453482A CN 201480043829 A CN201480043829 A CN 201480043829A CN 105453482 A CN105453482 A CN 105453482A
Authority
CN
China
Prior art keywords
plaintext
decoding
encryption
block
chunk
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
CN201480043829.8A
Other languages
English (en)
Other versions
CN105453482B (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Publication of CN105453482A publication Critical patent/CN105453482A/zh
Application granted granted Critical
Publication of CN105453482B publication Critical patent/CN105453482B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
    • 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
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Detection And Correction Of Errors (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Error Detection And Correction (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

为了获得单次通过且单速率的认证加密,能够执行并行处理且仅通过一个加密函数整体执行加密和解码处理。一种认证加密设备包括认证加密装置,用于每两块应用使用指派有用于轮函数的辅助变量的加密函数的两轮Feistel结构给输入明文或加密文本,由此生成加密文本或解码的明文。认证加密装置当将明文每两块分为组块时得到对应于第i个明文组块MC[i]=(M[i_1],M[i_2])的加密文本组块CC[i]=(C[i_1],C[i_2])为:C[i_1]=F_K((N,Tw_i_1),M[i_1])xor?M[i_2],C[i_2]=F_K((N,Tw_i_2),C[i_1])xor?M[i_1]。

Description

认证加密设备、认证加密方法以及用于认证加密的程序
技术领域
本发明涉及用于通过使用公共密钥执行认证加密的认证加密设备、加密设备、解码设备、认证加密方法以及用于认证加密的程序。
背景技术
认证加密(AE)是用于通过使用之前共享的秘密密钥对明文消息进行加密且同时向其给出消息认证代码(MAC)的技术。认证加密的使用使得被保护的内容避免被窃听,并且检测未认证的操作。如果认证加密被应用于通信路径,可以获得对要发送的内容的强保护。
下面将描述认证加密的基本输入和输出。共享秘密密钥K的两个人将在下文中被假定为是Alice和Bob,认证加密所加密的消息被假定为从Alice传送到Bob。
假设认证加密的加密函数和解码函数分别为AEnc_K和ADec_K。假设要加密的明文是M且引入被称为初始矢量的变量N。初始矢量N通常是随机数,具有短的固定长度或者由Alice生成的计数器。
首先将描述Alice侧的加密处理。Alice生成初始矢量N,然后执行(C,T)=AEnc_K(N,M)。这里,AEnc_K被称为加密函数,使用密钥K作为参数,C被称为加密的文本,且T被称为认证标签,这些是用于检测更改的固定长度的变量。Alice传送初始矢量N、生成的加密文本C和生成的认证标签T的组合(N,C,T)给Bob。
下面将描述Bob侧的解码处理。这里,Bob从Alice接收到的信息被假定为(N’,C’,T’)。当从Alice接收到信息时,Bob执行ADec_K(N’,C’,T’)作为解码处理。ADec_K是使用密钥K作为参数的解码函数。如果通信在中间被修改且(N’,C’,T’)不同于(N,C,T),假定指示更改的符号为¥bot,ADec_K(N’,C’,T’)输出¥bot。没有更改且在(N’,C’,T’)=(N,C,T)的情况下,ADec_K(N’,C’,T’)输出解码的明文M’,该明文M’具有与由Alice加密的明文M相同的内容。由此,M被正确解码。
实践中,输入和输出在许多情况下包括被称为报头H的变量。报头H不被加密,而是例如要用于表达协议版本等的用于消息认证的信息。
通过包括报头H,加密函数是(C,T)=AEnc_K(N,M,H)的输入/输出,对明文M加密且给出消息认证代码至明文M和报头H的组合。Alice传送初始矢量N、报头H、生成的加密文本C和生成的认证标签T的组合(N,H,C,T)给Bob。
当获得ADec_K(N’,C’,T’,H’)的输入/输出且(N’,C’,T’,H’)不同于(N,C,T,H)时,解码函数输出指示更改的符号¥bot。当接收到的(N’,H’,C’,T’)未被更改或者建立了(N’,H’,C’,T’)=(N,H,C,T)时,在接收侧的Bob可以正确地解码M且确认报头H未更改。
输入/输出添加了报头H的认证加密可以被称为具有相关联数据的认证加密(AEAD),并在下面将被简单标注为“认证加密”,除非另外声明。
认证加密实现方法之一基于一般组成。这是一种使用安全加密系统和安全MAC系统的组合的方法。例如,通过公知的组合Enc-then-Auth,使用两个密钥K1和K2来实现采用(C,T)=MAC_K2(N,Enc_K1(M))的认证加密。这里,Enc_XX表示在加密系统中使用的加密函数,MAC_XX表示在MAC系统中使用的MAC给出函数。
当使用诸如AES(先进加密标准)加密的块加密时,例如,加密系统可以利用AES计数器模式加密,且MAC系统可以利用CMAC-AES(基于密码的MAC-AES)。此外,作为一种用于通过使用一个块加密密钥而不使用两个密钥来执行认证加密的方法,已知认证加密系统被称为CCM模式(具有CBC-MAC的计数器)(例如,非专利文献1)。
然而,所有上面的方法需要两次通过处理,包括加密和MAC给出。也就是,数据需要被完全扫描至少两次。此外,当输入明文有m块时,块加密需要被调用m次用于在CCM系统中使用的加密和MAC函数。因此,块加密需要被调用2m次用于对m块明文的认证加密处理。也就是,诸如加密函数或MAC给出函数的处理函数需要每明文块被调用两次。处理函数每块被调用两次的系统也被称为两速率系统。两次通过或两速率系统具有的问题是处理花费长时间且具有重负担。
一种用于解决问题的方法是使用块加密的单次通过认证加密系统。
在专利文献1中描述的被称为OCB模式的认证加密系统首先被提议(下面将被称为OCB系统)。OCB系统使得在非专利文献2中描述的被称为可调块加密的块加密被扩展。
可调块加密是引入称为Tweak的辅助变量到加密和解码的认证加密系统。当块尺寸为n比特时,具有可调块加密的加密可以被表达为“TE_K(Tw,M)=C”,且解码可以被表达为“TD_K(Tw,C)=M”。对于任何组合(K,Tw),TE_K(Tw,*)在n比特空间中配置置换。它的逆置换是TD_K(Tw,*)。Tw表示辅助变量Tweak,且*表示变量。辅助变量Tw要求用于解码,但是如果其被释放,可调块加密的安全性不会被影响。
在OCB系统中,首先,通过使用在非专利文献3中描述的XEX模式,典型块加密的加密函数被转换为可调块加密的加密函数或者可调指派的加密函数。然后,下面的TE_K函数被调用来加密初始矢量N和明文M=(M[1],M[2],···,M[m])。每个M[i]被假设为n比特块。OCB系统中使用的TE_K函数利用对应于Tweak的变量(N,i)。N表示初始矢量且i表示块识别号。
C[1]=TE_K((N,1),M[1]),
C[2]=TE_K((N,2),M[2]),
···,
C[m]=TE_K((N,m),M[m])
通过调用与如下的消息相同的TE_K函数来得到认证标签T,,例如,对于SUM=M[1]xorM[2]xor····xorM[m],认证标签T是对所有明文块进行XOR(异或)。
T=TE_K((N,m+1),SUM)
通过添加Tw=(N,i)以及通过秘密密钥K计算的序列mask_K(N,i)到块加密的加密函数E_k的输入/输出来执行OCB系统中使用的TE_K函数(在XEX模式中转换)。XEX模式中的转换公式被表达如下。转换公式可以在下面被称为XEX转换公式。
TE_K((N,i),M[i])=E_K(M[i]xormask_K(N,i)xormask_K(N,i)
E_K用于计算掩蔽,且在OCB系统中启用有效序列处理。也就是,可以有效地进行从mask_K(N,i)到mask_K(N,i+1)的计算。
图19是示意性示出OCB系统中的加密处理的解释图。在图19中,虚线中的块对应于TE_K((N,i),*)。在图19中忽略了计算掩蔽序列的处理的过程。
如在图19中所图示,E_K被调用一次用于计算L以便在OCB系统中分别得到掩蔽序列和认证标签T,但是作为一个整体,可能一次通过处理。此外,除了掩蔽序列的计算,每个块中的处理可以并行执行。更具体地,对于m块明文的块加密的调用数几乎为m,且几乎是诸如CCM系统和GCM(迦罗瓦/计数器模式)系统的其它两次通过认证加密系统的一半。
引用列表
专利文献
PTL1:美国专利No.8321675说明书
非专利文献
NPL1:MorrisDworkin,“RecommendationforBlockCipherModesofOperation:TheCCMModeforAuthenticationandConfidentiality.”,[线上]May2005,NISTSpecialPublication800-38C,互联网<URL:http://csrc.nist.gov/publications/nistpubs/800-38C/SP800-38C_updated-July20_2007.pdf>
NPL2:MosesLiskov,RonaldL.Rivest,DavidWagner,“TweakableBlockCiphers.”,2002,AdvancesinCryptology-CRYPTO2002,LectureNotesinComputerScience2442Springer2002,p.31-46.
NPL3:P.Rogaway,“EfficientInstantiationsofTweakableBlockciphersandRefinementstoModesOCBandPMAC.”,2004,AdvancesinCryptology-ASIACRYPT’04,LNCS3329,p.16-31.
发明内容
技术问题
图20是示意性示出OCB系统中的解码处理的解释图。在CCM模式或GCM中,作为认证加密的解码处理只通过块加密的加密函数E_K来获取,而在OCB系统中,如图20中所示,不仅块加密的加密函数E_K而且块加密的解码函数D_K都被要求用于可调块加密的解码处理。
当块加密的加密函数和解码函数都作为部分被要求用于认证加密的加密和解码时,由于存储器或电路规模,造成装配上的负担增加。代表块加密AES通常在解码处理中比在加密中更慢,且事实表明性能上的差异是在使用AES等的OCB系统中的加密处理和解码处理之间导致的。
OCB及其类似单次通过认证加密系统不能解决上面的问题。
因此,本发明的目标是提供一种认证加密设备,用于获取单次通过和单速率认证加密,通过使用仅仅一个加密函数、一种加密设备、一种解码设备、一种认证加密方法、和一种用于认证加密的程序而能够执行并行处理且整体执行加密和解码处理。
问题的解决方案
根据本发明的一种认证加密设备,其特征在于包括认证加密装置,用于每两块应用使用指派有用于轮函数的辅助变量的加密函数的两轮Feistel结构给输入明文或加密文本,由此生成加密文本或解码的明文。
根据本发明的一种加密设备,其特征在于包括加密装置,用于每两块应用使用指派有用于轮函数的辅助变量的加密函数的两轮Feistel结构给输入明文,由此生成加密文本。
根据本发明的一种解码设备,其特征在于包括解码装置,用于每两块应用使用指派有用于轮函数的辅助变量的加密函数的两轮Feistel结构给输入加密文本,由此生成解码的明文。
根据本发明的一种认证加密方法,其特征在于,信息处理装置每两块应用使用指派有用于轮函数的辅助变量的加密函数的两轮Feistel结构给输入明文或加密文本,由此生成加密文本或解码的明文。
根据本发明的用于认证加密的一种程序,其特征在于,使得计算机执行每两块应用使用指派有用于轮函数的辅助变量的加密函数的两轮Feistel结构给输入明文或加密文本,由此生成加密文本或解码的明文的处理。
发明的有益效果
根据本发明,有可能获得单次通过且单速率(one-passandone-rate)的认证加密,能够通过仅使用一个加密函数来执行并行处理且整体执行加密和解码处理。
附图说明
[图1]描述了根据本发明示意性示出整个加密处理的示例性处理流程的解释图。
[图2]描述了根据本发明示意性示出整个解码处理的示例性处理流程的解释图。
[图3]描述了示出认证加密系统中提供的示例设备的框图。
[图4]描述了示出认证加密系统的示例功能结构的框图。
[图5]描述了示意性示出实现具有两个输入变量的伪随机函数的示例的解释图。
[图6]描述了(a)示意性示出使用块加密XEX模式的采用伪随机函数的整个加密处理的示例处理流程的解释图,以及(b)示意性示出使用块加密XEX模式的采用伪随机函数的整个解码处理的示例处理流的解释图。
[图7]描述了示意性示出实现具有两个输入变量的伪随机函数的其它示例的解释图。
[图8]描述了根据第一示例实施例示出认证加密系统的示例加密操作的流程图。
[图9]描述了根据第一示例实施例示出认证加密系统的示例解码操作的流程图。
[图10]描述了示出认证加密系统的其它示例结构的框图。
[图11]描述了根据第二示例实施例示意性示出整个加密处理的示例处理流程的解释图。
[图12]描述了根据第二示例实施例示意性示出整个解码处理的示例处理流程的解释图。
[图13]描述了根据第三示例实施例示意性示出整个加密处理的示例处理流程的解释图。
[图14]描述了根据第三示例实施例示意性示出整个解码处理的示例处理流程的解释图。
[图15]描述了示出用于并行处理的加密设备100的示例结构的框图。
[图16]描述了示出用于并行处理的解码设备200的示例结构的框图。
[图17]描述了根据本发明示出认证加密设备的示例最小结构的框图。
[图18]描述了根据本发明示出认证加密设备的其它示例结构的框图。
[图19]描述了示意性示出OCB系统中整个加密处理的示例处理流程的解释图。
[图20]描述了示意性示出OCB系统中整个解码处理的示例处理流程的解释图。
具体实施方式
首先描述本发明的概述。本发明涉及基于块加密系统使用公共密钥的加密系统,对每个确定尺寸进行加密。本发明对每两个块应用两轮Feistel结构。被指派以被称为Tweak的辅助变量Tw(调整值)的加密函数被用于两轮Feistel结构的一轮函数。以这种方式,Feistel结构以两个块为单位用于认证加密,由此解决上述的问题。
下面将更具体地描述根据本发明的认证加密系统。本发明使用下面的变量的序列,假设将辅助变量Tw引入到加密函数中。被用作辅助变量Tw的变量的序列可以在下面被称为“辅助序列”。配置辅助序列,使得不同值被输入到要在由一个密钥进行加密时被调用的所有加密函数中。下面将描述这样一种情况:用于加密一个明文的具有不同值的初始矢量N、用于识别单位为两个块的组块的标识符i、以及用于识别组块中的块与其它处理的j的组合或者(N,i,j)的组合中的辅助序列被用作辅助变量Tw,但是辅助序列不限于此。辅助序列被配置为在加密和解码时都能够生成用于一个明文的相同的值。例如,用于生成辅助序列的值预先被定义。上面的示例满足上面的条件,因为辅助序列的值可以基于初始矢量和明文或加密文本的长度而被唯一地定义。
例如,假设每个块具有n比特,当要被处理的明文或加密文本中的块的数目为2m时,则可以假设(N,1,1),、(N,1,2)、(N,2,1)、(N,2,2)、···、(N,m,1)、(N,m,2)根据每个块的索引被用作辅助序列,且(N,m,3)被用作用于生成认证标签的辅助序列。
使用这样定义的辅助序列,要被加密的明文M在加密处理中在双块组块中被处理。通过使用辅助序列(N,i,1),(N,i,2)和键控的伪随机函数F_K(*,*)作为具有两个输入变量的伪随机函数,第i个加密文本组块(C[2i],C[2i-1])被生成以用于第i个明文组块(M[2i-1],M[2i],其中(i=1,···,m))。“伪随机函数”是加密函数基于其属性的名称。伪随机函数可以是例如块加密或键控散列函数的加密函数。
图1是根据本发明示意性示出整个加密处理的示例处理流程的解释图。在图1中,虚线中的块在两轮Feistel结构中,且对应于以两块为单位的加密处理中的处理块。例如,假设第一输入变量作为辅助序列,通过使用具有辅助序列(N,i,1)作为第一输入变量的F_K((N,i,1),*)、以及具有辅助序列(N,i,2)作为第一输入变量的F_K((N,i,2),*)在每个处理块中如下地获取第i个加密文本组块(C[2i],C[2i-1])。xor表示每比特的异或。
C[2i-1]=F_K((N,i,1),M[2i-1])xorM[2i],
C[2i]=F_K((N,i,2),C[2i-1])xorM[2i-1]
···公式(1)
公式(1)表示通过使用对应于第i个明文组块中的奇数块的辅助序列(N,i,1)对第i个明文组块中奇数块M[2i-1]运行伪随机函数F_K所获得的结果与第i个明文组块中被假设为作为第i个加密文本组块中的奇数块的加密文本块C[2i-1]的偶数块M[2i]的XOR,以及通过使用对应于第i个明文组块中的偶数块的辅助序列(N,i,2)对由此获得的加密文本块C[2i-1]运行伪随机函数F_K而获得的结果与第i个明文组块中被假设为作为第i个加密文本组块中的偶数块加密文本块C[2i]的奇数块M[2i-1]的XOR。针对所有组块执行该处理。
除了上面的处理,通过使用用于生成明文的认证标签的辅助序列(N,m,3)和具有两个具有密钥K的输入变量的伪随机函数F_K,认证标签T被生成用于对明文中所有偶数块M[2]、M[4]、···、M[2m]取XOR的明文校验和SUM=M[2]xorM[4]xor···xorM[2m],。在图1中,点划线中的块对应于用于认证标签生成处理的处理块。通过使用例如使用辅助序列(N,m,3)作为第一输入变量的F_K((N,m,3),*),如下地获取认证标签T。在计算SUM中,XOR可以是任何群组中的加法,诸如算术加法。
T=F_K((N,m,3),SUM)···公式(2)
用于偶数块和奇数块的处理可以被互相替换。在此情况下,明文校验和可以从每个奇数块中生成。此外,划分为以两个块为单位的组块不限于此。当序列处理的需求相对不高时,诸如没有在线计算时,一个组块可以以例如第一块和第三块来创建。辅助序列可以被配置为使得不同值被输入到图中所有伪随机函数中,同时用一个密钥来进行加密。在图中,带圈+的符号表示进行XOR。
加密文本C、初始矢量N和认证标签T被发送到解码侧。
当要被解码的加密文本C、初始矢量N和认证标签T在解码侧被输入时,首先根据相同规则来确定辅助序列。例如,假设加密文本C=(C[1],C[2],···,C[2m]),每块具有n比特,(N,1,1),(N,1,2),(N,2,1),(N,2,2),···,(N,m,1),(N,m,2)可以根据加密文本C中的每个块的索引被确定为用作辅助序列,且(N,m,3)可以基于关于初始矢量N和加密文本的长度的信息被确定为用作用于生成认证标签的辅助序列。
而且,在解码处理中,要被解码的加密文本C被划分为以两个块为单位的组块,针对第i个加密文本组块(C[2i-1],C[2i],其中(i=1,···,m))使用配置有具有与加密中引入的辅助序列相同的辅助序列的伪随机函数F_K(*,*)的两轮Feistel结构来执行解码处理。由此,可以获取解码的明文组块(M’[2i],M’[2i-1])。
此外,当基于对明文中的所有生成的偶数块M’[2]、M’[4]、···、M’[2m]取XOR得到的明文校验和执行与在加密期间执行的处理相同的处理时,获取解码检查认证标签T。
图2是根据本发明示意性示出整个解码处理的示例处理流程的解释图。在图2中,虚线中的块在两轮Feistel结构中,并且对应于以两块为单位的解码处理的处理块。在每个处理块中,通过使用采用辅助序列(N,i,1)作为第一输入变量的F_K((N,i,1),*),,以及使用采用辅助序列(N,i,2)作为第一输入变量的F_K((N,i,2),*),获取如下地解码的明文块M’[2i]和M’[2i-1]。
M’[2i–1]=F_K((N,i,2),C[2i-1])xorC[2i],
M’[2i]=F_K((N,i,1),M’[2i-1])xorC[2i-1]
···公式(3)
针对所有加密文本组块执行这些处理。通过使用用于生成解码的明文的认证标签的辅助序列(N,m,3)和具有两个具有密钥K的输入变量的伪随机函数F_K,解码检查认证标签T’被生成用于对解码的明文中的所有偶数块M’[2],M’[4],···,M’[2m]取XOR的用于解码检查的明文校验和SUM’=M[2]xorM’[4]xor···xorM’[2m]。在图2中,点划线中的块对应于认证标签生成处理的处理块。通过使用采用辅助序列(N,m,3)作为第一输入变量的F_K((N,m,3),*),如下地获取解码检查认证标签T’。
T’=F_K((N,m,3),SUM’)···公式(4)
当获取解码检查认证标签T’时,对于输入认证标签T是否匹配解码检查认证标签T’进行检查,并且当它们匹配时,输出解码的明文M’=(M’[1],M’[2],···,M’[2m])。当它们不匹配时,输出指示解码错误的错误消息。
因为两轮Feistel结构配置对任何轮函数的替换,使得当确定用于加密函数的密钥和辅助变量时,明文组块和加密文本组块以一对一的方式互相对应,辅助序列被配置为基于初始矢量和明文或加密文本的长度而唯一定义,且相同辅助序列被用于加密和解码二者,加密的文本可以在本解码系统中正确解码。
此外,在两轮Feistel结构中的各个轮的处理中不需要轮函数自身的逆处理(从函数的输出得到输入的处理),且轮函数的逆处理不完全被需要。在本系统中,加密函数被用于轮函数,且因此加密函数的逆处理不被要求用于将明文转换为加密文本。此外,在认证标签生成处理中,在加密和解码二者期间执行相同处理,并且因此,在该处理中也不要求加密函数的逆处理。
本系统的安全性导致加密函数的安全性。这是因为本系统被配置为基于偶数块的SUM而生成认证标签,加密函数在两轮Feistel结构中向偶数块施加两次。当更改的加密文本被解码时,更改的攻击者(当然不知道密钥)不能预测的随机数很可能出现在任何偶数块中作为解码的结果,因此其XOR,或者明文校验和也不能被预测。由此,通过输入明文校验和到加密函数中而获取的解码检查认证标签T’也是不可预测的。
根据本系统,只通过加密函数来获取认证加密,并且因此可以利用诸如HMAC之类的键控散列函数。此外,除了块加密或散列加密之外,还可以基于各种加密技术。
根据本系统,处理以两块为单位而独立,且也可以获取用于认证标签的明文校验和的明文块可以在顺序计算处理中获取,并因此可以进行在线计算。
下面将根据第一示例实施例来描述将认证加密系统应用于要被划分为偶数块的明文的认证加密系统。根据第二和随后的示例实施例,将以更加扩展的方式来描述应用能够处理最后的块的尺寸小于块尺寸或造成奇数块的认证加密系统的认证加密系统。
第一示例实施例
将参考图3、图4和图5来描述根据本发明的第一示例实施例的认证加密系统的示例结构。图3是根据本示例实施例示出在认证加密系统中提供的示例装置的框图。如在图3中所图示,根据本示例实施例的系统包括信息处理装置50。信息处理装置50包括计算单元51、存储单元52和输入/输出单元53。信息处理装置50是根据例如程序等操作的个人计算机。在此情况下,计算单元51、存储单元52和输入/输出单元53分别由CPU、存储器和各种输入/输出设备(诸如键盘、鼠标和网络接口单元)来实现。图3示出了一个装置包括全部计算单元51、存储单元52和输入/输出单元53,但计算单元51、存储单元52和输入/输出单元53也可以分布到多个设备中。
图4是根据本示例实施例示出认证加密系统的示例功能结构的框图。如图4中所示,认证加密系统可以包括:包括加密装置10的加密设备100、包括解码装置20的解码设备200。加密设备100和解码设备200由例如如图3中所图示的信息处理装置50来实现。
首先将描述在加密设备100中提供的加密装置10。加密装置10具有输入装置101、辅助变量生成装置102、两轮Feistel加密装置103、标签计算装置104和输出装置105。
下面,除非另外陈述,将假设一个块的长度为n比特。
输入装置101输入要被加密的明文M和初始矢量N。输入装置101由字符输入设备诸如键盘来实现。下面将假设输入具有偶数个块的明文M=(M[1],···,M[2m])。为了简化,假设初始矢量N具有n比特,但是如果其更短,执行适当的填充,或者附加地应用具有n比特输出和可变长度输入的伪随机函数(例如,可以通过CMAC或HMAC来实现)以减少到n比特。这里,填充是为了将固定序列耦合到二进制序列的尾部,由此获取特定长度。例如,利用零填充或10*填充(首位是1,之后是00…0)。后者在防止具有不同长度的序列在填充后具有相同值时有效。在此情况下,可以利用零填充。
基于关于初始矢量N和明文M的长度的信息,辅助变量生成装置102生成通常被称为Tweak或调整值的辅助变量,该辅助变量被向解码处理中的伪随机函数给出。根据本示例实施例,如下所述的变量的序列(辅助序列)被生成作为辅助变量。一个辅助序列被具有三个元素的矢量表达为(N,i,j)的形式,i和j为正整数。当明文具有2m块时,辅助序列是(N,1,1),(N,1,2),(N,2,1),(N,2,2),···,(N,m-1,1),(N,m-1,2),(N,m,1),(N,m,2),(N,m,3)。最后一个以外的变量被用于加密,只有最后一个被用于生成认证标签。
两轮Feistel加密装置103被引导用于执行图1虚线中的每个块处理,并且通过将明文M以两块为单位进行划分并且使用具有辅助输入和两个输入变量的伪随机函数F_K(*,*)来执行加密。具有两个输入变量的伪随机函数F_K(*,*)是键控的n比特输出函数,在其中对于任意x和y输出F_K(x,y),不知道密钥K的人不能将该输出与随机数区分开。
下面将描述这样的情况,其中,任何辅助序列被输入到F_K(*,*)中的第一输入变量,并且作为要被加密的n比特变量被输入到第二输入变量中。而且,在本示例实施例中,假设MC[i]=(M[2i-1],M[2i])用于明文M=(M[1],···,M[2m]),且其中的MC[i]被称为第i个明文组块。此外,假设CC[i]=(C[2i-1],C[2i]),且其中的CC[i]被称为第i个加密文本组块。
如公式(1),两轮Feistel加密装置103对于每个i=1,···,m处理明文组块MC[i],例如,由此获取加密文本组块CC[i]。
如上所述,F_K(*,*)可以由各种加密函数来实现。例如,可以利用块加密的加密函数。当利用n比特块加密的加密函数E(*)时,可以通过使用被称为可调块加密的扩展后的块加密来有效地计算Y=F_K((N,i,j),X)。
具体地,可以像在XEX转换公式中那样使用非专利文献2中所述的XEX模式,通过添加Tweak(N,i,j)和从秘密密钥K计算的序列mask_K(N,i,j)到块加密的输入来实现计算。在该模式中的转换公式被表达如下。转换公式下面可以被称为XE转换公式。
TE_K((N,i,j),X)=E_K(Xxormask_K(N,i,j))···公式(5)
应用公式(5)中的XE转换公式,由此进行对应于Y=F((N,i,j),X)的计算。例如,用于计算mask_K(N,i,j)的具体方法利用下面的方法。
mask_K(N,i,j)=2^i3^(j-1)L,其中L=E_K(N)···公式(6)
这里,2^i或3^j表示幂运算,假设2或3作为有限域GF(2^n)上的常数,且2^i3^jL表示乘以(2^i3^j)的乘法,假设L为在有限域GF(2^n)上的元素。图5是示意性图示示例的解释图,其中在示例中具有用于本示例实施例的两个输入变量的伪随机函数通过使用块加密的XEX模式而实现。图5示出了具有在上面的方法中实现的两个输入变量的示例性伪随机函数。图6(a)是当具有两个输入变量的伪随机函数通过使用块加密的XEX模式而实现时,根据本示例实施例的整个监处理的示例性处理流程的示意性图示说明解释图。
这里,如在公式(6)中的条款中所指出的,L是L=E_K(N)。因此,每当N被定义,E_K可以被运行一次。当L不改变而i或j顺序地改变时,通过使用过去的计算结果可以有效计算B=2^i3^jL,因此首先得到L=E(N),然后可以将计算量视为大约为Y=E(BxorX)。此外,在有限域GF(2^n)上的常数可以在各种系统中使用在非专利文献2中描述的XEX模式来设置。
根据本发明,XE转换公式与在OCB系统中使用的XEX转换公式不同之处在于:因为OCB系统要求TE_K的解码函数TD_K,同时可以只由TE_K来执行处理,mask_K输出没有被添加到外部。
除了XEX模式以外,也可以利用在Cryptography2006第96-113页(非专利文献4)中所选区域的文献KazuhikoMinematsu,“ImprovedSecurityAnalysisofXEXandLRWModes”中描述的可调块加密,或者在文献Nielsferguson,etal.,“TheSkeinHashFunctionFamily.”,[在线]2008,互联网<URL:http://www.skein-hash.info/sites/default/files/skein1.1.pdf”>”(非专利文献5)中描述的可调块加密的加密函数Threefish。
诸如HMAC之类的键控散列函数,可以被用于F_K(*,*)作为其它实现示例。在此情况下,可以通过对(N,i,j)执行适当的无损编码且随后与X耦合为HMAC的输入来计算Y=F_K((N,i,j),X)。
例如,用于辅助序列的变量N,i,j可以采用二进制以适当的固定长度(诸如128比特)来表达和耦合。图7是示意性示出示例的解释图,在示例中,通过使用键控散列函数来实现具有在本示例实施例中使用的两个输入变量的伪随机函数。图7示出具有在上述方法中实现的两个输入变量的示例伪随机函数。图7中的符号“||”表示比特耦合。输入X和辅助输入(N,i,j)是输出HMAC_K(N||i||j||X)。
例如,F_K(*,*)可以通过使用HMAC_K而不是图5中所图示的E_K来实现。
上面的处理是针对i=1,···,m来执行的,且生成的C=(C[1],···,C[2m])是加密文本。
标签计算装置104被引导用于执行图1中的点划线中的块处理,并且通过使用由辅助变量生成装置102输出的辅助序列和输入明文计算用于消息认证的认证标签,。
根据本示例实施例的标签计算装置104首先得到用于通过使用如下明文中的偶数块M[2],M[4],···,M[2m]来生成认证标签的明文校验和SUM。计算SUM中的XOR可以是任何群组中的加法,诸如算术加法。
SUM=M[2]xorM[4]xor···xorM[2m]···公式(7)
也就是说,得到明文中所有偶数块M[2],M[4],···,M[2m]的和是SUM。然后,通过使用具有两个输入变量的伪随机函数F_K(*,*)和辅助序列(N,m,3),针对所得到的明文校验和执行在公式(2)中表达的处理,用于生成认证标签,由此得到认证标签T。
输出装置105输出由两轮Feistel加密装置103输出的加密文本C=(C[1],···,C[2m]),以及由标签计算装置104输出的认证标签T。例如,输出装置105可以向请求加密的上级应用输出,或者可以经由通信设备等输出到通信路径。此外,其可以向计算机显示器或打印机输出。
下面将描述解码设备200中提供的解码装置20。解码装置20具有输入装置201、辅助变量生成装置202、两轮Feistel解码装置203、解码检查标签计算装置204、确定装置205和输出装置206。
输入装置201输入要被解码的加密文本C、初始矢量N和与加密文本相关联的认证标签T。与加密装置10类似,下面将假设输入具有多个块的加密文本C=(C[1],···,C[2m])。为了简化,假设初始矢量N具有n比特,但是如果其更短,执行适当的填充,或者额外地应用具有n比特输出的伪随机函数以减少到n比特。
基于关于初始矢量N和加密文本C的长度的信息,辅助变量生成装置202生成向解码处理中的伪随机函数给出的辅助变量。根据本示例实施例,其输出与加密装置10中的辅助变量生成装置102相同的辅助变量。
两轮Feistel解码装置203对应于图2中虚线中的每个块,并且通过将其以两个块为单位进行划分并且通过使用由辅助变量生成装置202输出的辅助序列和具有两个输入变量的伪随机函数F_K(*,*)来解码加密的文本C。这里,具有由两轮Feistel解码装置203使用的两个输入变量的伪随机函数F_K(*,*)与加密装置10中的两轮Feistel加密装置103所使用的F_K(*,*)相同。
例如,如公式(3),两轮Feistel解码装置203对每个i=1,···,m处理加密文本组块CC[i],由此获取解码的明文组块MC’[i]=(M’[2i-1],M’[2i])。
对于每个i执行上面的处理,使得生成的M’=(M’[1],··,M’[2m])被解码为明文。
解码检查标签计算装置204对应于图2中点划线中的块,并且计算解码检查认证标签T’以用于通过使用由辅助变量生成装置202输出的辅助序列和由两轮Feistel解码装置203解码的明文M’来检查解码结果。这里,具有由解码检查标签计算装置204使用的两个输入变量的伪随机函数F_K(*,*)与加密装置10中的标签计算装置104所使用的F_K(**,*)相同。
解码检查标签计算装置204首先使用如下地解码的明文中的偶数块M’[2],M’[4],···,M’[2m]得到用于使用解码的明文M’解码检查的明文校验和SUM’。
SUM’=M’[2]xorM’[4]xor···xorM’[2m]···公式(8)
也就是说,得到解码的明文中的所有偶数块M’[2],M’[4],···,M’[2m]的总和SUM’。然后,公式(4)中指示的处理针对所得到的明文校验和SUM’而被执行,以通过使用具有两个输入变量的伪随机函数F_K(*,*)以及用于生成认证标签的辅助序列(N,m,3)来进行解码检查,由此得到认证标签T’。计算SUM中的XOR可以是在任何群组中的加法,诸如算数加法。
图6(b)是当使用块加密的XEX模式来实现具有两个输入变量的伪随机函数时根据本示例实施例示意性示出整个解码处理的示例处理流程的解释图。而且,在图6(b)中所图示的示例中,可以看出,只需改变从外部向具有两个输入变量的伪随机函数给出的参数,解码的明文M’和解码检查认证标签T’可以通过与图6(a)中所图示的加密处理相同的处理而获取。
确定装置205比较输入认证标签T与由解码检查标签计算装置204生成的解码检查认证标签T’,并且当他们匹配时,确定解码成功,假设由两轮Feistel解码装置203输出的解码的明文M’=(M’[1],···,M’[2m])是正确的。另一方面,当T’和T彼此不同时,确定解码失败,假设由输入装置201输入的(N,C,T)被更改。
当确定装置205将确定结果确定为解码成功时,输出装置206输出解码的明文M’=(M’[1],···,M’[2m])。另一方面,当确定解码失败时,不输出解码的明文M’=(M’[1],···,M’[2m])而是输出指示解码错误的错误消息。该结果被输出给上级应用、通信路径、显示设备、打印机等。
根据本示例实施例,输入装置101和输入装置201由各种输入设备以及它们的控制单元来实现,诸如键盘、鼠标或在设备中提供的网络接口单元。此外,输出装置105和输出装置206由各种输出设备以及它们的控制单元来实现,诸如显示设备、具有打印机的设备接口单元或者在设备中提供的网络接口。例如,辅助变量生成装置102、辅助变量生成装置202、两轮Feistel加密装置103、两轮Feistel解码装置203、标签计算装置104、解码检查标签计算装置204以及确定装置205由CPU根据设备中提供的程序操作来实现。
尽管未示出,加密装置10和解码装置20包括控制装置,用于控制加密处理或解码处理,诸如合适地调用每个装置。
下面将描述根据本示例实施例的操作。图8和图9是示出根据本示例实施例的认证加密系统的示例操作的流程图。图8是示出示例加密操作的流程图,图9是示出示例解码操作的流程图。
首先将参考图8来描述根据本示例实施例的加密操作。在图8图示的示例中,输入装置101首先输入具有偶数个要被的加密的块的明文M=(M[1],···,M[2m]),以及初始矢量N(步骤S101)。
随后,辅助变量生成装置102基于关于初始矢量N和明文N的长度的信息来生成辅助序列(步骤S102)。在本示例中,假设输出2m个划分后的块(N,1,1,),(N,1,2),(N,2,1),(N,2,2),···,(N,m-1,1),(N,m-1,2),(N,m,1),(N,m,2),(N,m,3)。所有辅助序列不需要一次生成,并且如果之前确定了要利用哪个辅助序列,每次调用加密函数时可以根据加密函数生成并且输出辅助序列。
随后,两轮Feistel加密装置103以两块为单位对明文M进行划分,并且通过使用由辅助变量生成装置102生成的辅助序列和预先确定的伪随机函数F_K(*,*)进行加密,由此得到加密文本C=(C[1],···,C[2m])(步骤S103到S106)。例如,在首先将i初始化为i=1(步骤S103)之后,两轮Feistel加密装置103可以针对由i指示的明文组块MC[i]=(M[2i-1],M[2i])分别执行以两块为单位的Feistel加密处理或执行公式(1)的处理(步骤S104),直到满足++i>m。
随后,标签计算装置104通过使用明文M中的偶数个块来计算明文校验和SUM(步骤S107),并且通过使用生成的SUM和用于生成认证标签的辅助序列(N,m,3)来计算认证标签T(步骤S108)。
最后,输出装置105输出生成的加密文本C和标签T(步骤S109)。
下面将参考图9来描述根据本示例实施例的解码操作。在图9中所图示的示例中,输入装置201首先输入具有偶数个要被解码的块的加密文本C=(C[1],···,C[2m])、初始矢量N以及认证标签T(步骤S201)。
随后,辅助变量生成装置202基于关于初始矢量N和加密文本C的长度的信息来生成辅助序列(步骤S202)。在本示例中,假设输出2m个划分后的块(N,1,1),(N,1,2),(N,2,1),(N,2,2),···,(N,m-1,1),(N,m-1,2),(N,m,1),(N,m,2),(N,m,3)。所有辅助序列不需要一次生成,如果之前确定要利用哪个辅助序列,每次调用加密函数时可以根据加密函数生成并且输出辅助序列。
随后,两轮Feistel解码装置203以两块为单位划分加密文本C,并且通过使用由辅助变量生成装置202生成的辅助序列和预先确定的伪随机函数F_K(*,*)来对其解码,由此得到解码的明文M’=(M’[1],···,M’[2m])(步骤S203到S206)。例如,在首先将i初始化为i=1(步骤S203)之后,两轮Feistel解码装置203可以针对由i指示的加密文本组块CC[i]=(C[2i-1],C[2i])重复执行以两块为单位的Feistel解码处理或执行公式(3)的处理(步骤S204),直到满足++i>m。
随后,解码检查标签计算装置204通过使用解码的明文M’来计算用于解码检查的明文校验和SUM’(步骤S207),并且通过使用生成的SUM’和用于生成认证标签的辅助序列(N,m,3)来计算解码检查认证标签T’(步骤S208)。
随后,确定装置205比较输入的认证标签T与解码检查认证标签T’(步骤S209),当它们匹配时,确定解码成功,而当它们不匹配时,确定解码失败。
最后,输出装置206基于确定装置205的确定结果来输出解码的明文M’或错误消息。当解码成功时输出装置206输出解码的明文M’(步骤S210),而当解码失败时输出错误消息(步骤S211),作为确定装置205的确定结果。
上面已经描述了这样的情况,其中,加密设备和解码设备由不同设备来实现,但如图10中所示,一个设备可以包括加密装置10和解码装置20二者。在此情况下,提供包括加密装置10和解码装置20的认证加密装置30,并且在认证加密装置30中,解码装置20可以利用加密装置10中的辅助变量生成装置102、两轮Feistel加密装置103和标签计算装置104,以取代辅助变量生成装置202、两轮Feistel解码装置203和解码检查标签计算装置204。而且,当一个设备包括加密装置10和解码装置20二者时,每个装置可以分别被安装在多个设备上。
当加密装置10和解码装置20共享辅助变量生成装置102时,例如,调用发起者可以被配置为指定初始矢量或长度。类似地,当共享两轮Feistel加密装置103时,调用发起者可以被配置为例如指定输入到具有两个输入变量的上伪随机函数F_K(*,*)和输入到具有两个输入变量的下伪随机函数F_K(*,*)。类似地,当共享标签计算装置104时,调用发起者可以被配置为例如指定明文校验和。
如上所述,根据本示例实施例,可以实现高速和简易认证加密。这是因为根据本发明的认证加密系统通过S+1次调用具有两个输入变量的伪随机函数F_K(*,*)用于具有S块的明文来进行加密和解码。
例如,当利用块加密的加密函数E(*)时,通过转换加密函数E到加密函数TE(*,*)用于可调块加密可以实现具有两个输入变量的伪随机函数F_K(*,*),但是当利用E->TE转换系统时,块加密的加密函数E(*)被仅调用S+h次,使得加密和解码都可以实现。
另一方面,在现有两次通过认证加密系统中,加密函数需要被调用2×2m或者更多次。在作为单次通过认证加密系统的OCB系统中,根据本发明,调用的次数几乎多到S+2到S+3次,但是块加密的解码函数在解码处理中被要求,并且因此,导致了软件安装中的ROM/RAM使用或者硬件安装中的电路规模的增加。
通过根据本发明的认证加密系统,完全可能以两块为单位并行处理,由此在安装在多核CPU中的软件或硬件中实现更高速度。
第二示例实施例
根据第二示例实施例的认证加密系统使得要被加密或解码的对象具有偶数个块且最后的块的长度小于n比特。基本结构与第一示例实施例中相同,并且因此在下面将只描述其区别。
在下面的示例中,假设一个块具有n比特,假设具有偶数块的明文中的最后的块M[2m]的比特长度s为s<n。
在本示例实施例中,将新定义用于生成认证标签的第二辅助序列。在下面的示例中,新定义(N,m,4)。
在以两块为单位的Feistel加密处理和Feistel解码处理中,第m个组块被如下地处理。第i=1,···,m-1个组块可以与第一示例实施例类似地处理。
首先,加密处理应用具有两个输入变量的伪随机函数F_K(*,*),其向明文块M[2m-1]给出辅助序列(N,m,1)作为第m个明文组块中的奇数块。然后,假设生成的输出作为中间输出Z,且从中间输出z中的固定部分取出s比特的s比特二进制序列Z_s的XOR,以及采用作为第m个明文组块中的偶数块的明文块M[2m],由此得到加密文本组C_s[2m]作为在第m个加密文本组块中的偶数块。C_s[*]表示对应加密文本块的尺寸是s比特。
此外,针对这样获得的s比特加密文本块C_s[2m]执行s→n比特填充,并且将具有给出辅助序列(N,m,2)的两个输入变量的伪随机函数F_K(*,*)应用于生成的C_n[2m],随后对作为第m个明文组块中的奇数块的明文块M[2m-1]采用XOR,由此得到加密文本块C[2m-1]作为第m个加密文本组块中的奇数块。根据本示例实施例,以这样的方式获取第m个加密文本组块CC[m]=(C[2m-1],C_s[2m])。根据本示例实施例,获取第m个加密文本组块的示例处理被表达如下。
C_s[2m]=cut_s(Z)xorM[2m],
C[2m-1]=F_K((N,m,2),pad_n(C_s[2m])))xorM[2m-1]
其中,Z=F_K((N,m,1),M[2m-1])
···公式(9)
cut_s(A)表示从二进制序列A中的固定部分取出s比特的处理。例如,cut_s(A)可以是msb_s(A)。msb_s(A)是从二进制序列A中的最上级中取出s比特的处理。此外,pad_n(A)指示通过使用固定比特序列填充的处理,使得二进制序列A具有n比特。在本示例中,假设填充为10*填充。假设10*填充,有可能防止具有不同长度的序列在填充之后具有相同值。具有不同长度的序列在填充之后不具有相同值的任何形式都可被利用,而不限于上面的示例。
认证标签T可以被如下地得到。首先,通过使用直到第m-1个明文组块的偶数块M[2],···,M[2(m-1)],在上面的处理中获取的中间输出Z,以及将作为在上面处理中获取的第m个加密文本组块中的偶数块的加密文本块C_s[2m]填充为n比特的C_n[2m],来得到明文校验和SUM。例如,如下面的公式(10)中所表示,通过采用它们的XOR来得到。
SUM=M[2]xorM[4]xor···xorM[2m-2]xorC_n[2m]xorZ
···公式(10)
明文校验和SUM不同于根据第一示例实施例生成的明文校验和之处在于:使用“C_n[2m]xorZ”而不是M[2m]。
将具有使用辅助变量(N,m,4)的两个输入变量的伪随机函数F_K((N,m,4),*)应用于由此获取的明文校验和SUM,由此得到认证标签T。
图11是根据本示例实施例示意性示出整个加密处理的示例处理流程的解释图。如图11中图示,根据本示例实施例的加密处理与第一示例实施例中相同,除了用于生成认证标签的辅助序列、对包括具有小于n个比特的尺寸的偶数块的组块的加密处理、以及明文校验和计算方法。在图11中,“C_s[2m]||10*”指示通过对C_s[2m]执行10*填充而获得的结果。
根据本示例实施例的加密装置10可以使得当具有偶数块的明文中的最后的块M[2m]具有s(s<n)比特时,辅助变量生成装置102生成辅助序列(N,1,1),(N,1,2),(N,2,1),(N,2,2),···,(N,m,1),(N,m,2),(N,m,4),并且可以包括:第二两轮Feistel加密装置,用于对第m个明文组块执行上述处理并且输出加密文本组块CC[m]和中间输出Z;以及第二标签计算装置,用于在上面的处理中计算认证标签T。可替换地,两轮Feistel加密装置103和标签计算装置104可以切换和执行根据第一示例实施例的操作和根据明文尺寸的上述操作,而不是提供第二两轮Feistel加密装置和第二标签计算装置。
在解码处理中,首先,对作为第m个加密文本组块中的偶数块的s比特加密文本块C_s[2m]执行s→n比特填充。然后,被给出辅助序列(N,m,2)的具有两个输入变量的伪随机函数F_K(*,*)被应用于通过填充所获取的n比特加密文本块C_n[2m]比特。对其结果和对应于第m个加密文本组块中的奇数块的加密文本块C[2m-1]进行XOR,由此得到解码的明文块M’[2m-1],对应于第m个解码的明文组块中的奇数块。
然后,被给出辅助序列(N,m,1)的具有两个输入变量的伪随机函数F_K(*,*)被应用于由此获取的解码的明文块M’[2m-1]。然后,假设生成的输出为用于解码的中间输出Z’,并且对从用于解码的中间输出Z’中的固定部分取出s比特的s比特二进制序列Z_s’,以及作为第m个加密文本组块中的偶数块的加密文本块C_s[2m]进行XOR,由此得到对应于第m个解码的明文组块中的偶数块的解码的明文块M_s’[2m]。M_s’[*]指示对应解码的明文块的尺寸是s比特。根据本示例实施例,以这种方式获取第m个解码的明文组块MC’[m]=(M’[2m-1],M_s’[2m])。根据本示例实施例获取第m个解码的明文组块的示例处理被表达如下。
M’[2m-1]=F_K((N,m,2),pad_n(C_s[2m])))xorC[2m-1],
M_s’[2m]=cut_s(Z’)xorC_s[2m]
其中Z’=F_K((N,m,1),M’[2m-1])
···公式(11)
解码检查认证标签可以如下地得到。首先,通过使用直到第m-1个解码的明文组块的偶数块M’[2],···,M’[2(m-1)],在上面的处理中获取的用于解码的中间输出Z’,以及通过填充作为输入的第m个加密文本组块中的偶数块的加密文本块C_s[2m]到n比特而获得的C_n[2m],来得到使用解码的明文的用于解码检查的明文校验和SUM’。例如,通过进行下面公式(12)中表示的它们的XOR来得到。
SUM’=M’[2]xorM’[4]xor···xorM’[2m-2]xorC_n[2m]xorZ’
···公式(12)
明文校验和SUM’不同于用于根据第一示例实施例生成的解码检查的明文校验和之处在于:使用“C_n[2m]xorZ’”来替代M’[2m]。
具有辅助序列(N,m,4)的具有两个输入变量的伪随机函数F_K((N,m,4),*)被应用于由此获取的用于解码检查的明文校验和SUM’,由此计算解码检查认证标签T’。
图12是根据本示例实施例示意性示出整个解码处理的示例处理流程的解释图。如图12中所示,除了用于生成认证标签的辅助序列、对包括具有小于n个比特尺寸的偶数块的组块的解码处理、以及解码检查明文校验和计算方法,根据本示例实施例的解码处理可能与第一示例实施例中相同。在图12中,“C_s[2m]||10*”表示通过对C_s[2m]执行10*填充而获得的结果。
根据本示例实施例的解码装置20可以包括:第二两轮Feistel解码装置,当具有偶数块的加密文本中的最后的块C[2m]是s(s<n)比特时,输出通过对第m个加密文本组块执行上述处理而解码的明文组块MC’以及用于解码的中间输出Z’;以及第二解码检查标签计算装置,用于在上述处理中计算解码检查认证标签T’,并且辅助变量生成装置202可以被配置为生成辅助序列(N,1,1),(N,1,2),(N,2,1),(N,2,2),···,(N,m,1),(N,m,2),(N,m,4)。此外,之前所述的两轮Feistel解码装置203和解码检查标签计算装置204可以被配置为切换并执行根据第一示例实施例的操作和根据明文尺寸的上述操作。
而且,在本示例实施例中,对第m个块的加密处理和解码处理仅在上阶段和下阶段之间切换,因此,如果上阶段和下阶段被分为部分,它们可以在加密处理和解码处理之间共享。而且,对于生成认证标签,如果要被给出的参数在调用发起者处被指定,如第一示例实施例中,其可以在其间共享。
本示例实施例还被配置为使得如果辅助输入和密钥被定义,明文组块和加密文本组块是一对一对应的,并且因此最后的组块可以被正确解码。此外,加密函数F_K自身在Feistel结构中的单个轮中的处理中不需要被逆处理,并且,解码检查认证标签以与同样在本示例实施例中的加密处理相同的方法被得到,因此本示例实施例与第一示例实施例相同,因为加密函数F_K自身不需要整个被逆处理。
第三示例实施例
根据第三示例实施例的认证加密系统使得要被加密或解码的对象具有奇数个块。该基本结构与第一示例实施例中相同,因此下面将只描述区别。
根据本示例实施例,当明文中的块数是奇数(2m-1)时,假设一个块具有n比特,且最后的块的比特长度是s≤n,认证加密被如下地执行。
新定义用于生成认证标签的第三和第四辅助序列。在下面的示例中,新定义(N,m,5)和(N,m,6)。对于具有奇数块的明文,对应于最后的组块中的偶数块的辅助序列(N,m,2)不被要求。
在以两块为单位的Feistel加密处理和Feistel解码处理中,第m个组块被如下地处理。此外,第i=1,···,m-1个组块可以如第一示例实施例中一样被处理。
在加密处理中,准备由全零组成的n比特二进制序列,以及将被给出辅助序列(N,m,1)的具有两个输入变量的伪随机函数F_K(*,*)应用于二进制序列。对从生成的输出中的固定部分中取出s比特的s比特二进制序列Z_s,与作为作为第m个明文组块中的奇数块的明文中的最后的块的s比特明文块M_s[2m-1]进行XOR,由此得到对应于第m个加密文本组块中的奇数块或者加密文本中的最后的块的加密文本块C_s[2m-1]。
根据本示例实施例,以这样的方式来获取第m个加密文本组块CC[m]=(C_s[2m-1])。根据本示例实施例的获取第m个加密文本组块的示例处理被表达如下。
C_s[2m-1]=cut_s(F_K((N,m,1),0^n))xorM_s[2m-1]
···公式(13)
当最后的块的尺寸是s=n时,cut_s()被忽略且下面的公式(14)中的处理被执行,由此获取CC[m]=(C[2m-1])。
C[2m-1]=F_K((N,m,1),0^n)xorM[2m-1]
···公式(14)
认证标签T被如下地得到。根据本示例实施例,如果最后的块的尺寸是s=n,通过使用直到第m-1个明文组块的偶数块M[2],···,M[2(m-1)]以及作为最后的块的明文块M[2m-1]来得到明文校验和SUM。例如,通过进行如下面公式(15)所表达的它们的XOR来得到。
SUM=M[2]xorM[4]xor···xorM[2m-2]xorM[2m-1]
···公式(15)
另一方面,当最后的块的尺寸是s<n时,通过使用直到第m-1个明文组块的偶数块M[2],···,M[2(m-1)],以及通过填充s比特明文块M_s[2m-1]作为到n比特的最后的块而获得的M_n[2m-1],来得到明文校验和SUM。
SUM=M[2]xorM[4]xor···xorM[2m-2]xorpad_n(M_s[2m-1])
···公式(16)
明文校验和SUM不同于根据第一示例实施例生成的明文校验和之处在于:M_n[2m-1](M[2m-1]或M_s[2m-1]被扩展到n比特)被用来替代M[2m]。
在s=n时,具有辅助序列(N,m,5)的具有两个输入变量的伪随机函数F_K((N,m,5),*)被应用于由此获取的明文校验和SUM,且具有辅助序列(N,m,6)的具有两个输入变量的伪随机函数F_K((N,m,6),*)也在s<n时被应用于此,由此得到认证标签T。
图13是根据本示例实施例示意性示出整个加密处理的示例处理流程的解释图。如图13中所示,除了对第m个组块的加密处理和认证标签生成处理,根据本示例实施例的加密处理与在第一示例实施例中相同。在图13中,“M_s[2m-1]||10*”指示通过对s比特明文块M_s[2m]执行10*填充而获得的结果。图13示出了这样的情况,其中,最后的块的尺寸是s<n,但在s=n的情况下,可以忽略对第m个块进行切除处理(图中的“cut_s”)和在认证标签生成处理中的填充(图中的“||10*”)。在s=n的情况下,建立M_s[m-1]=M[m-1]和C_s[2m-1]=C[2m-1],且即使执行cut_s()或pad_n(),实质上也不执行任何处理,因此不用忽略cut_s()或pad_n()也不会特别导致问题。
根据本示例实施例的加密装置10可以使得当明文具有2m-1块时,辅助变量生成装置102生成辅助序列(N,1,1),(N,1,2),(N,2,1),(N,2,2),···,(N,m,1),(N,m,5),(N,m,6),并且可以包括:一轮Feistel加密装置,用于对第m个明文组块执行上述处理并且输出加密文本组块CC[m]=(C_s[2m-1]);以及第三标签计算装置,用于在上面的处理中计算认证标签T。此外,两轮Feistel加密装置103和标签计算装置104可以被配置为切换和执行根据第一示例实施例的操作以及根据明文的尺寸的上述操作,而不是提供一轮Feistel加密装置和第三标签计算装置。如果辅助变量生成装置102、两轮Feistel加密装置103以及标签计算装置104被配置为根据明文的尺寸切换和执行根据第一示例实施例的操作和根据第二示例实施例的操作,则偶数个块、技术个块、或者最后的块具有小于n的尺寸的任何情况可以被处理。
而且,在解码处理中,准备由全零组成的n比特二进制序列,且被给出辅助序列(N,m,1)的具有两个输入变量的伪随机函数F_K(*,*)被应用于二进制序列。对从生成的输出中的固定部分中取出s比特的s比特二进制序列Z_s,与作为在第m个加密文本组块中的奇数块或者在加密文本中的最后的块的s比特加密文本块C_s[2m-1]进行XOR,由此得到解码的明文块M_s’[2m-1],其对应于第m个解码的明文组块中的奇数块或者解码的明文中的最后的块。
根据本示例实施例,以这样的方式获取第m个解码的明文组块MC’[m]=(M_s’[2m-1])。根据本示例实施例,获取第m个解码的明文组块的示例处理被表达如下。
M_s’[2m-1]=cut_s(F_K((N,m,1),0^n))xorC_s[2m-1]
···公式(17)
当最后的块的尺寸是s=n时,cut_s()被忽略且执行在下面的公式(18)中表达的处理,由此获取MC’[m]=(M’[2m-1])。
M’[2m-1]=F_K((N,m,1),0^n)xorC[2m-1]
···公式(18)
解码检查认证标签T’可以通过用解码的明文来替代加密处理中的明文来得到。也就是,当最后的块的尺寸是s=n时,通过使用直到第m-1个解码的明文组块的偶数块M’[2],···,M’[2(m-1)],以及作为最后的块的解码的明文块M’[2m-1],来得到用于解码检查的明文校验和SUM’。例如,通过对它们进行如下面公式(19)中所表达的XOR来得到。
SUM’=M’[2]xorM[4]xor···M’[2m-2]xorM’[2m-1]
···公式(19)
另一方面,当最后的块的尺寸是s<n时,通过使用直到第m-1个解码的明文组块的偶数块M’[2],···,M’[2(m-1)],以及通过填充作为最后的块的s比特明文块M_s’[2m-1]到n比特而获得的M_n’[2m-1],来得到用于解码检查的明文校验和SUM’。例如,通过对它们进行如在下面的公式(20)中所表达的XOR而得到。
SUM’=M’[2]xorM’[4]xor···M’[2m-2]xorpad_n(M_s’[2m-1])
···公式(20)
用于解码检查的明文校验和SUM’不同于用于根据第一示例实施例生成的解码检查的明文校验和之处在于:使用M_n’[2m-1](M’[2m-1]或M_s’[2m-1]扩展到n比特)来替代M’[2m]。
在s=n时,具有辅助序列(N,m,5)的具有两个输入变量的伪随机函数F_K((N,m,5),*)被应用于由此获取的用于解码检查的明文校验和SUM’,并且具有辅助序列(N,m,6)的具有两个输入变量的伪随机函数F_K((N,m,6),*)在s<n时被应用于此,由此得到解码检查认证标签T’。
图14是根据本示例实施例示意性示出整个解码处理的示例处理流程的解释图。如图14中所示,除了对第m个加密文本组块的解码处理以及解码检查认证标签生成处理,根据本示例实施例的解码处理可以与第一示例实施例中相同。在图14中,“M_s’[2m-1]||10*”指示通过对s比特解码的明文块M_s’[2m-1]执行10*填充而获得的结果。图14示出了这种情况,其中,最后的块的尺寸是s<n,但对第m个块的切除处理(图中的“cut_s”)以及认证标签生成处理中的填充(图中的“||10*”)可以在s=n时被忽略。在s=n时,建立C_s[2m-1]=C[2m-1]和M_s’[m-1]=M’[m-1],即使执行cut_s()或pad_n(),实质上也不执行任何处理,因此不用忽略cut_s()或pad_n()也不会特别导致问题。
根据本示例实施例的解码装置20可以使得当加密文本具有2m-1块时,辅助变量生成装置202生成辅助序列(N,1,1),(N,1,2),(N,2,1),(N,2,2),···,(N,m,1),(N,m,5),(N,m,6),并且可以包括:一轮Feistel解码装置,用于对第m个加密文本组块执行上述处理以及输出解码的明文组块MC’[m]=(M_s’[2m-1]);以及第三解码检查标签计算装置,用于在上述处理中计算解码检查认证标签T’。可替换地,两轮Feistel解码装置203和解码检查标签计算装置204可以被配置为根据加密文本的尺寸,切换和执行根据第一示例实施例的操作和上述操作而非提供一轮Feistel解码装置和第三解码检查标签计算装置。如果辅助变量生成装置202、两轮Feistel解码装置203、以及解码检查标签计算装置204被配置为根据加密文本的尺寸切换和执行根据第一示例实施例的操作和根据第二示例实施例的操作,偶数个块、奇数个块或者具有小于n的尺寸的最后的块的任何情况可以被处理。
而且,在本示例实施例中,对第m个块的加密处理和解码处理在被给出的参数上彼此不同而在处理内容上相同,因此如果要被给出的参数可以在调用发起者被指定,其可以如在第一示例实施例中那样在其间共享。此外,对于生成认证标签,如果要被给出的参数可以在调用发起者处被指定,其可以如在第一示例实施例中那样在其间共享。
本示例实施例还被配置为使得如果定义辅助输入和密钥,明文组块和加密文本组块是一对一的对应,因此最后的组块可以被正确解码。此外,加密函数F_K自身不需要在Feistel结构的各个轮的处理中被进行逆处理,在与同样根据本示例实施例的加密处理相同的方法中得到解码检查认证标签,并且因此作为在第一示例实施例和第二示例实施例中的整体,加密函数F_K自身不需要被进行逆处理。
图15是示出用于并行处理的加密设备100的示例结构的框图。图16是示出用于并行地处理的解码设备200的示例结构的框图。如图15中所示,提供多个两轮Feistel加密装置103,由此以两块为单位并行对每个明文组块执行加密处理。在图15中,某些两轮Feistel加密装置103根据明文的尺寸起第二两轮Feistel加密装置或一轮Feistel加密装置的作用。此外,标签计算装置104根据明文的尺寸起第二标签计算装置或第三标签计算装置的作用。此外,如图16中所示,提供多个两轮Feistel解码装置203,由此以两块为单位并行地对每个加密文本组件执行解码处理。在图16中,某些两轮Feistel解码装置203根据加密文本的尺寸起第二两轮Feistel解码装置或一轮Feistel解码装置的作用。此外,解码检查标签计算装置204根据加密文本的尺寸起第二解码检查标签计算装置或第三解码检查标签计算装置的作用。
根据每个示例实施例,为了处理具有相关联的数据的认证加密(AEAD),报头H被添加到输入并随后准备具有任何变量长度输入的伪随机函数g_K’(*),对生成的认证标签(T或T’)和来自具有任何变量长度输入的伪随机函数g_K’(H)的的输出进行的XOR可以被假设为最终认证标签(T2或T2’)。也就是,在加密处理中,如上所述地得到认证标签T,随后,通过使用g_K’(*),可以得到最终认证标签T2为T2=Txorg_K’(H)。然后,加密结果可以被假设为(N,C,H,T2)。在解码处理中,如上所述地得到解码检查认证标签T’,随后通过使用g_K’(H),得到最终解码检查认证标签T2’=T’xorg_K(H),从而确定其是否匹配接收到的T2。
这里,K’是具有两个输入变量的伪随机函数F_K(*,*)的密钥的独立选择的密钥。在此情况下,整个处理的密钥是(K,K’)对。
具有可变长度输入的伪随机函数g_K’可以由例如CMAC或HMAC来实现。CMAC或HMAC是用于通过使用密钥减少对固定长度输出的任何输入的加密函数。例如,CMAC被配置成针对报头H中的每个块(诸如H[1],···,H[h])的称为CBC_MAC的链处理,以及通过使用具有密钥K’的块函数E_K’的终止处理。
作为具体示例,当要使用的块加密利用n比特块时,处理:
Y[0]=00..0,
Y[i]=E_K’(H[1]xorY[i-1]),fori=1,2,···,(h-1)
如果H[h]是n比特,
Y[h]=E_K’(H[h]xorY[i-1]xor2*E_K’(00..0))
如果H[h]小于n比特,则执行
Y[h]=E_K’((H[h]||10*)xorY[h-1]xor4*E_K’(00..0))。2*和4*表示乘以有限域上的常数的乘法处理。
下面将描述本发明的最小结构。图17是根据本发明示出认证加密设备的示例最小结构的框图。如图17中所图示,根据本发明的认证加密设备包括作为最小部件的认证加密装置60。
在图17中所示的认证加密设备中,认证加密装置60向输入明文或加密文本应用两轮Feistel结构,其中将指派有辅助变量的加密函数用于以两块为单位的轮函数,由此生成加密文本或解码的明文。
通过具有最小结构的认证加密设备,加密函数仅用于加密处理和解码处理的一个方向上,因此有可能实现单次通过和单速率的认证加密,能够执行并行处理和只通过一个加密函数来完全地执行加密和解码处理。
图18(a)和18(b)是通过示例的方式示出认证加密装置60的更具体结构的框图,其中图18(a)示出了当假设认证加密设备为加密设备时认证加密装置60的示例结构,而图18(b)示出了当假设认证加密设备为解码设备时认证加密装置60的示例结构。
如图18(a)中所示,认证加密装置60可以包括加密装置61(例如,加密装置10),且加密装置61可以具有明文输入装置611、辅助变量生成装置612、两轮Feistel加密装置613以及标签计算装置614。
明文输入装置611(例如,输入装置101)输入要加密的明文以及初始矢量。
辅助变量生成装置612(例如,辅助变量生成装置102)基于初始矢量和输入明文的尺寸来生成要向每个加密函数给出的辅助变量。
当明文被每两个块划分为组块时,两轮Feistel加密装置613(例如,两轮Feistel加密装置103)应用向每个明文组块两轮Feistel结构,由此生成对应于明文组块的加密文本组块。
假设初始矢量N、组块索引i、第i个明文组块MC[i]=(M[i_1],M[i_2])、对应于包括在明文组块MC[i]中的两个明文块的一对辅助变量(N,Tw_i_1)和(N,Tw_i_2)、以及加密函数F_K(*,*),两轮Feistel加密装置613可以得到第i个加密文本组块CC[i]=(C[i_1],C[i_2])为:
C[i_1]=F_K((N,Tw_i_1),M[i_1])xorM[i_2],
C[i_2]=F_K((N,Tw_i_2),C[i_1])xorM[i_1].
标签计算装置614(例如,标签计算装置104)计算明文校验和,并且应用指派有辅助变量的加密函数给生成的校验和,由此生成认证标签。
标签计算装置614通过使用包括在每个明文组块中的明文块M[i_2]来计算明文校验和,并且假设生成的校验和SUM、向用于生成认证标签的加密函数给出的辅助变量(N,Tw_T_1)、以及加密函数F_K(*,*),可以得到认证标签T为T=F_K((N,Tw_T_1),SUM)。
如图18(b)中所示,认证加密装置60可以包括解码装置62(例如,解码装置20),且解码装置62可以具有加密文本输入装置621、解码辅助变量生成装置622、两轮Feistel解码装置623、解码检查标签计算装置624、以及确定装置625。
加密文本输入装置621(例如,输入装置201)输入要解码的加密文本、初始矢量以及认证标签。
解码辅助变量生成装置622(例如,辅助变量生成装置202)基于初始矢量和输入加密文本的尺寸来生成与加密中相同的辅助变量,其要向每个加密函数给出。
当将加密文本每两个块划分为组块时,两轮Feistel解码装置623(例如,两轮Feistel解码装置203)向每个加密文本组块应用两轮Feistel结构,由此生成对应于加密文本组块的解码的明文组块。
假设初始矢量N、组块索引i、第i个加密文本组块CC[i]=(C[i_1],C[i_2])、对应于包括在加密文本组块CC[i]中的两个加密文本块的一对辅助变量(N,Tw_i_1)和(N,Tw_i_2)、以及加密函数F_K(*,*),两轮Feistel解码装置623可以得到第i个解码的明文组块MC’[i]=(M’[i_1],M’[i_2])为:
M’[i_1]=F_K((N,Tw_i_2),C[i_1])xorC[i_2],
M’[i_2]=F_K((N,Tw_i_1),M’[i_1])xorC[i_1].
解码检查标签计算装置624(例如,解码检查标签计算装置204)计算解码的明文校验和,并且应用指派有辅助变量的加密函数给生成的校验和,由此生成解码检查认证标签。
解码检查标签计算装置624通过使用包括在每个解码的明文组块中的每个解码的明文块M’[i_2]来计算解码的明文校验和,并且假设生成的校验和SUM’、向用于生成解码检查认证标签的加密函数给出的辅助变量(N,Tw_T_1)、以及加密函数F_K(*,*),可以得到解码检查认证标签T’为T’=F_K((N,Tw_T_1),SUM’)。
确定装置625(例如,确定装置205)基于由解码检查标签计算装置624所生成的解码检查认证标签和输入认证标签来确定解码成功还是失败。
上面已经参考示例实施例和示例描述了本发明,但本发明不限于上述示例实施例。本发明的结构和细节可以在本领域技术人员所能理解的本发明的范围内进行各种改变。
一些或全部上述示例实施例可以被描述为下面的注释,但不限于此。
(注释1)一种加密设备,包括加密装置,用于每两块应用使用指派有用于轮函数的辅助变量的加密函数的两轮Feistel结构给输入明文,由此生成加密文本。
(注释2)根据注释1所述的加密设备,其中,所述加密装置包括:明文输入装置,用于输入要被加密的明文和初始矢量;辅助变量生成装置,用于基于所述初始矢量和所述输入明文的尺寸来生成向每个所述加密函数给出的辅助变量;两轮Feistel加密装置,用于当将明文每两块分成组块时应用两轮Feistel结构给每个明文组块,由此生成对应于明文组块的加密文本组块;以及标签计算装置,用于计算明文的校验和,并且应用分配有辅助变量的加密函数给生成的校验和,由此生成认证标签,假设初始矢量N、组块索引i、第i个明文组块MC[i]=(M[i_1],M[i_2])、对应于包括在明文组块MC[i]中的两个明文块的一对辅助变量(N,Tw_i_1)和(N,Tw_i_2)、以及加密函数F_K(*,*),所述两轮Feistel加密装置得到第i个加密文本组块CC[i]=(C[i_1],C[i_2])为:
C[i_1]=F_K((N,Tw_i_1),M[i_1])xorM[i_2],
C[i_2]=F_K((N,Tw_i_2),C[i_1])xorM[i_1],以及所述标签计算装置通过使用包括在每个明文组块中的明文块M[i_2]来计算明文的校验和,并且假设生成的校验和SUM、向用于生成认证标签的加密函数给出的辅助变量(N,Tw_T_1)、以及加密函数F_K(*,*),得到认证标签T为:
T=F_K((N,Tw_T_1),SUM)。
(注释3)根据注释2所述的加密设备,其中,当输入明文被分为偶数个块且最后的块的尺寸小于预先确定的块尺寸时,所述辅助变量生成装置生成用于认证标签的第二辅助变量作为辅助变量向用于生成认证标签的加密函数给出,
所述加密装置包括:
第二两轮Feistel加密装置,用于应用预先确定的两轮Feistel结构给包括最后的明文块的最后的明文组块,由此生成包括最后的加密文本块的最后的加密文本组块;以及
第二标签计算装置,用于通过使用所述输入明文和来自所述第二两轮Feistel加密装置的输出来计算明文的校验和,并且应用指派有辅助变量的加密函数给生成的校验和,由此生成认证标签,
假设最后的明文组块的索引m、最后的明文块M[m_2]、最后的明文组块MC[m]=(M[m_1],M[m_2])、对应于包括在所述最后的明文组块MC[m]中的两个明文块的一对辅助变量(N,Tw_m_1)和(N,Tw_m_2)、加密函数F_K(*,*)、所述最后的明文块的尺寸s、块尺寸n、从s尺寸到n尺寸的填充处理pad_n()、以及从n尺寸到s尺寸的切除处理cut_s(),所述第二两轮Feistel加密装置得到包括具有s尺寸的最后的加密文本块C[m_2]的最后的加密文本组块CC[m]=(C[m_1],C[m_2])为:
C[m_2]=cut_s(Z)xorM[m_2],
C[m_1]=F_K((N,Tw_m_2),pad_n(C[m_2]))xorM[m_1]
其中,Z=F_K((N,Tw_m_1),M[m_1]),以及
第二标签计算装置通过使用包括在除了所述最后的明文组块以外的每个明文组块中的明文块M[i_2]、所述Z以及通过填充C[m_2]到n尺寸而获得的C_n[m_2]来计算明文的校验和,并且得到认证标签T为:
T=F_K((N,Tw_T_2),SUM)假设生成的校验和SUM、用于认证标签的所述第二辅助变量(N,Tw_T_2)以及加密函数F_K(*,*)。
(注释4)根据注释2或注释3所述的加密设备,其中,当输入明文被分为奇数个块且最后的块的尺寸与预先确定的块尺寸相同时,所述辅助变量生成装置生成用于认证标签的第三辅助变量作为向用于生成认证标签的加密函数给出的辅助变量,并且当输入明文被分成奇数个块且所述最后的块的尺寸小于预先确定的块尺寸时,所述辅助变量生成装置生成用于认证标签的第四辅助变量作为向用于生成认证标签的加密函数给出的辅助变量,
所述加密装置包括:一轮Feistel加密装置,用于应用预先确定的一轮Feistel结构给包括所述最后的明文块的所述最后的明文组块,由此生成包括所述最后的加密文本块的所述最后的加密文本组块;以及第三标签计算装置,用于通过使用输入明文和来自所述一轮Feistel加密装置的输出来计算明文的校验和,并且应用指派有辅助变量的加密函数给所述生成的校验和,由此生成认证标签,假设所述最后的明文组块的索引m、所述最后的明文块M[m_1]、所述最后的明文组块MC[m]=(M[m_1])、对应于所述最后的明文块的辅助变量(N,Tw_m_1)、加密函数F_K(*,*)、所述最后的明文块的尺寸s、块尺寸n、以及从n尺寸到s尺寸的切除处理cut_s(),所述一轮Feistel加密装置得到包括具有s尺寸的所述最后的加密文本块C[m_1]的所述最后的加密文本组块CC[m]=(C[m_1])为:
C[m_1]=cut_s(F_K((N,Tw_m_1),0^n))xorM[m_1]
其中,如果s=n,cut_s()可以被忽略,并且
所述第三标签计算装置在s=n处通过使用包括在除了所述最后的明文组块以外的每个明文组块中的明文块M[i_2],以及所述C[m_1],来得到明文的校验和,得到认证标签T为:
T=F_K((N,Tw_T_3),SUM)
假设生成的校验和SUM、用于认证标签的所述第三辅助变量(N,Tw_T_3)、以及加密函数F_K(*,*),
在s<n处通过使用包括在除了所述最后的明文组块以外的每个明文组块中的明文块M[i_2],以及通过填充C[m_1]到n尺寸而获得的C_n[m_1],来计算明文的校验和,并且得到认证标签T为:
T=F_K((N,Tw_T_4),SUM)
假设生成的校验和SUM、用于认证标签的所述第四辅助变量(N,Tw_T_4)、以及加密函数F_K(*,*)。
(注释5)根据注释1到注释4中任意一项所述的加密设备,其中,加密函数是可调块加密,具有包括被称为Tweak的辅助变量的两个输入变量。
(注释6)根据注释1到注释4中任意一项所述的加密设备,其中,加密函数是键控散列函数,具有第一变量和第二变量的耦合输入。
(注释7)一种解码设备,包括:解码装置,用于每两块应用使用指派有用于一轮函数的辅助变量的加密函数的两轮Feistel结构给输入加密文本,由此生成解码的明文。
(注释8)根据注释7的解码设备,其中,所述码装置包括:加密文本输入装置,用于输入要解码的加密文本、初始矢量和认证标签;解码辅助变量生成装置,用于基于所述初始矢量和所述输入加密文本的尺寸而生成与加密中相同的辅助变量,其向每个所述加密函数给出;两轮Feistel解码装置,用于当将加密文本每两块分为组块时应用两轮Feistel结构给每个加密文本组块,由此生成对应于所述加密文本组块的解码的明文组块;解码检查标签计算装置,用于计算解码的明文的校验和,并且应用指派有辅助变量的加密函数给所生成的校验和,由此生成解码检查认证标签;以及确定装置,用于基于由所述解码检查标签计算装置生成的解码检查认证标签和输入认证标签来确定解码成功或失败,
假设初始矢量N、组块索引i、第i个加密文本组块CC[i]=(C[i_1],C[i_2])、对应于包括在加密文本组块CC[i]中的两个加密文本块的一对辅助变量(N,Tw_i_1)和(N,Tw_i_2)、以及加密函数F_K(*,*),所述两轮Feistel解码装置得到第i个解码的明文组块MC’[i]=(M’[i_1],M’[i_2])为:
M’[i_1]=F_K((N,Tw_i_2),C[i_1])xorC[i_2],
M’[i_2]=F_K((N,Tw_i_1),M’[i_1])xorC[i_1],以及
所述解码检查标签计算装置通过使用包括在每个解码的明文组块中的每个解码的明文块M’[i_2]来计算解码的明文的校验和,并且得到解码检查认证标签T’为:
T’=F_K((N,Tw_T_1),SUM’)
假设所生成的校验和SUM’、向用于生成解码检查认证标签的加密函数给出的辅助变量(N,Tw_T_1)、以及加密函数F_K(*,*)。
(注释9)根据注释8所述的解码设备,其中,当输入加密文本被分为偶数个块且最后的块的尺寸小于预先确定的块尺寸时,所述解码辅助变量生成装置生成与加密中相同的用于认证标签的第二辅助变量作为向用于生成解码检查认证标签的加密函数给出的辅助变量,
所述解码装置包括:
第二两轮Feistel解码装置,用于应用预先确定的两轮Feistel结构给包括所述最后的加密文本块的所述最后的加密文本组块,由此生成包括所述最后的加密块的解码的明文块的所述最后的加密文本组块;以及
第二解码检查标签计算装置,用于通过使用来自所述两轮Feistel解码装置的输出、来自所述第二两轮Feistel解码装置的输出、以及所述最后的加密文本块而计算解码的明文的校验和,并且应用指派有辅助变量的加密函数给所生成的校验和,由此生成解码检查认证标签,
假设所述最后的加密文本组块的索引m、所述最后的加密文本块C[m_2]、所述最后的加密文本组块CC[m]=(C[m_1],C[m_2])、对应于包括在所述最后的加密文本组块CC[m]中的两个加密文本块的一对辅助变量(N,Tw_m_1)和(N,Tw_m_2)、加密函数F_K(*,*)、所述最后的加密文本块的尺寸s、块尺寸n、从s尺寸到n尺寸的填充处理pad_n()、以及从n尺寸到s尺寸的切除处理cut_s(),所述第二两轮Feistel解码装置得到包括具有s尺寸的所述最后的解码的明文块M’[m_2]的所述最后的解码的明文组块MC’[m]=(M’[m_1],M’[m_2])为:
M’[m_1]=F_K((N,Tw_m_2),pad_n(C[m_2]))xorC[m_1],
M’[m_2]=cut_s(Z’)xorC[m_2],
其中,Z’=F_K((N,Tw_m_1),M’[m_1]),以及
所述第二解码检查标签计算装置通过使用包括在除了所述最后的解码的明文组块的每个解码的明文组块中的解码的明文块M[i_2]、所述Z’和通过填充所述M’[m_2]到n尺寸而获得的M_n’[m_2]来计算解码的明文的校验和,并且得到解码检查认证标签T’为:
T’=F_K((N,Tw_T_2),SUM’)
假设所生成的校验和SUM’、用于认证标签的所述第二辅助变量(N,Tw_T_2)、以及加密函数F_K(*,*)。
(注释10)根据注释8或注释9所述的解码设备,其中,当输入加密文本被分成奇数个块且最后的块的尺寸与预先确定的块尺寸相同时,所述辅助变量生成装置生成与加密中相同的用于认证标签的第三辅助变量作为向用于生成解码检查认证标签的加密函数给出的辅助变量,并且当输入加密文本被分成奇数个块且最后的块的尺寸小于预先确定的块尺寸时,所述辅助变量生成装置生成与在加密中相同的用于认证标签的第四辅助变量,
所述解码装置包括:
一轮Feistel解码装置,用于应用预先确定的一轮Feistel结构给包括所述最后的加密文本块的所述最后的加密文本组块,由此生成包括所述最后的解码的明文块的所述最后的明文组块;以及
第三解码检查标签计算装置,用于通过使用来自所述两轮Feistel解码装置的输出和来自所述一轮Feistel解码装置的输出来计算解码的明文的校验和,并且应用指派有辅助变量的加密函数给所生成的校验和,由此生成解码检查认证标签,
假设所述最后的加密文本组块的索引m、所述最后的加密文本块C[m_1]、所述最后的加密文本组块CC[m]=(C[m_1])、对应于所述最后的加密文本块的辅助变量(N,Tw_m_1)、加密函数F_K(*,*)、所述最后的加密文本块的尺寸s、块尺寸n、以及从n尺寸到s尺寸的切除处理cut_s(),所述一轮Feistel解码装置得到包括具有s尺寸的所述最后的解码的明文块M’[m_1]的所述最后的解码的明文组块MC’[m]=(M’[m_1])为:
M’[m_1]=cut_s(F_K((N,Tw_m_1),0^n))xor[m_1]
其中,如果s=n,cut_s()可以被忽略,以及
所述第三解码检查标签计算装置在s=n处通过使用包括在除了所述最后的解码的明文组块以外的每个解码的明文组块中的明文块M’[i_2]、以及所述M’[m_1]来计算解码的明文的校验和,得到解码检查认证标签T’为:
T’=F_K((N,Tw_T_3),SUM’)
假设所生成的校验和SUM’、用于认证标签的所述第三辅助变量(N,Tw_T_3)、以及加密函数F_K(*,*),
在s<n处通过使用包括在除了所述最后的解码的明文组块以外的每个解码的明文组块中的明文块M’[i_2],以及通过填充所述M’[m_1]到n尺寸而获得的M_n’[m_1],来计算解码的明文的校验和,并且得到解码检查认证标签T’为:
T’=F_K((N,Tw_T_4),SUM’)
假设所生成的校验和SUM’、用于认证标签的所述第四辅助变量(N,Tw_T_4)、以及加密函数F_K(*,*)。
(注释11)根据注释7到注释10中任意一项所述的解码设备,其中,加密函数是可调块加密,具有包括被称为Tweak的辅助变量的两个输入变量。
(注释12)根据注释7到注释10中任意一项的解码设备,其中,加密函数是键控散列函数,具有第一变量和第二变量的耦合输入。
(注释13)一种认证加密方法,其中,在两轮Feistel加密处理中,输入要被加密的明文和初始矢量,基于所述初始矢量和所述输入明文的尺寸来生成向每个所述加密函数给出的辅助变量,以及当将明文每两个块分成组块时应用两轮Feistel结构给每个明文组块,由此生成对应于所述明文组块的加密文本组块,假设初始矢量N、组块索引i、第i个明文组块MC[i]=(M[i_1],M[i_2])、对应于包括在所述明文组块MC[i]中的两个明文块的一对辅助变量(N,Tw_i_1)和(N,Tw_i_2)、以及加密函数F_K(*,*),信息处理装置得到第i个加密文本组块CC[i]=(C[i_1],C[i_2])为:
C[i_1]=F_K((N,Tw_i_1),M[i_1])xorM[i_2],
C[i_2]=F_K((N,Tw_i_2),C[i_1])xorM[i_1],通过使用包括在每个明文组块中的明文块M[i_2]来计算明文的校验和,并且假设所生成的校验和SUM、向用于生成认证标签的加密函数给出的辅助变量(N,Tw_T_1)、以及加密函数F_K(*,*),得到认证标签T为:
T=F_K((N,Tw_T_1),SUM)。
(注释14)根据注释13所述的认证加密方法,其中,在第二两轮Feistel加密处理中,当输入明文被分为偶数个块且最后一块的尺寸小于预先确定的块尺寸时,生成用于认证标签的第二辅助变量作为辅助变量向用于生成认证标签的加密函数给出,应用预先确定的两轮Feistel结构给包括最后的明文块的最后的明文组块,由此生成包括最后的加密文本块的最后的加密文本组块,假设所述最后的明文组块的索引m、所述最后的明文块M[m_2]、所述最后的明文组块MC[m]=(M[m_1],M[m_2])、对应于包括在所述最后的明文组块MC[m]中的两个明文块的一对辅助变量(N,Tw_m_1)和(N,Tw_m_2)、加密函数F_K(*,*)、所述最后的明文块的尺寸s、块尺寸n、从s尺寸到n尺寸的填充处理pad_n()、以及从n尺寸到s尺寸的切除处理cut_s(),信息处理装置得到包括具有s尺寸的所述最后的加密文本块C[m_2]的所述最后的加密文本组块CC[m]=(C[m_1],C[m_2])为:
C[m_2]=cut_s(Z)xorM[m_2],
C[m_1]=F_K((N,Tw_m_2),pad_n(C[m_2]))xorM[m_1]
其中,Z=F_K((N,Tw_m_1),M[m_1]),通过使用包括在除了所述最后的明文组块以外的每个明文组块中的明文块M[i_2]、所述Z以及通过填充C[m_2]到n尺寸而获得的C_n[m_2]来计算明文的校验和,并且得到认证标签T为:
T=F_K((N,Tw_T_2),SUM)
假设所生成的校验和SUM、用于认证标签的所述第二辅助变量(N,Tw_T_2)以及加密函数F_K(*,*)。
(注释15)根据注释13或注释14所述的认证加密方法,其中,在一轮Feistel加密处理中,当输入加密文本被分成奇数个块且最后的块的尺寸与预先确定的块尺寸相同时,生成用于认证标签的第三辅助变量作为向用于生成认证标签的加密函数给出的辅助变量,当输入明文被分成奇数个块且最后的块的尺寸小于预先确定的块尺寸时,生成用于认证标签的第四辅助变量作为向用于生成认证标签的加密函数给出的辅助变量,以及应用预先确定的一轮Feistel结构给包括所述最后的明文块的所述最后的明文组块,由此生成包括最后的加密文本块的最后的加密文本组块,所述方法包括步骤:假设所述最后的明文组块的索引m、所述最后的明文块M[m_1]、所述最后的明文组块MC[m]=(M[m_1])、对应于所述最后的明文块的辅助变量(N,Tw_m_1)、加密函数F_K(*,*)、所述最后的明文块的尺寸s、块尺寸n、以及从n尺寸到s尺寸的切除处理cut_s(),得到包括具有s尺寸的所述最后的加密文本块C[m_1]的所述最后的加密文本组块CC[m]=(C[m_1])为:
C[m_1]=cut_s(F_K((N,Tw_m_1),0^n))xorM[m_1]
其中,如果s=n,cut_s()可以被忽略,在s=n处通过使用包括在除了所述最后的明文组块以外的每个明文组块中的明文块M[i_2],以及所述C[m_1],来计算明文的校验和,得到认证标签T为:
T=F_K((N,Tw_T_3),SUM)
假设所生成的校验和SUM、用于认证标签的所述第三辅助变量(N,Tw_T_3)、以及加密函数F_K(*,*),
在s<n处通过使用包括在除了所述最后的明文组块以外的每个明文组块中的明文块M[i_2],以及通过填充C[m_1]到n尺寸而获得的C_n[m_1],来计算明文的校验和,并且得到认证标签T为:
T=F_K((N,Tw_T_4),SUM)
假设所生成的校验和SUM、用于认证标签的所述第四辅助变量(N,Tw_T_4)、以及加密函数F_K(*,*)。
(注释16)一种认证加密方法,其中,在两轮Feistel解码处理中,输入要解码的加密文本、初始矢量和认证标签,基于所述初始矢量和所述输入加密文本的尺寸而生成与加密中相同的辅助变量,其向每个所述加密函数给出,以及当将加密文本每两块分为组块时应用两轮Feistel结构给每个加密文本组块,由此生成对应于加密文本组块的解码的明文组块,假设初始矢量N、组块索引i、第i个加密文本组块CC[i]=(C[i_1],C[i_2])、对应于包括在加密文本组块CC[i]中的两个加密文本块的一对辅助变量(N,Tw_i_1)和(N,Tw_i_2)、以及加密函数F_K(*,*),信息处理装置得到第i个解码的明文组块MC’[i]=(M’[i_1],M’[i_2])为:
M’[i_1]=F_K((N,Tw_i_2),C[i_1])xorC[i_2],
M’[i_2]=F_K((N,Tw_i_1),M’[i_1])xorC[i_1],
通过使用包括在每个解码的明文组块中的每个解码的明文块M’[i_2]来计算解码的明文的校验和,并且得到解码检查认证标签T’为:
T’=F_K((N,Tw_T_1),SUM’)
假设所生成的校验和SUM’、向用于生成解码检查认证标签的加密函数给出的辅助变量(N,Tw_T_1)、以及加密函数F_K(*,*)。
(注释17)根据注释16所述的认证加密方法,其中,在第二两轮Feistel解码处理中,当输入加密文本被分为偶数个块且最后的块的尺寸小于预先确定的块尺寸时,生成与加密中相同的用于认证标签的第二辅助变量作为向用于生成解码检查认证标签的加密函数给出的辅助变量,以及应用预先确定的两轮Feistel结构给包括最后的加密文本块的最后的加密文本组块,由此生成包括所述最后的加密块的解码的明文块的最后的解码的明文组块,所述方法包括步骤:假设所述最后的加密文本组块的索引m、所述最后的加密文本块C[m_2]、所述最后的加密文本组块CC[m]=(C[m_1],C[m_2])、对应于包括在所述最后的加密文本组块CC[m]中的两个加密文本块的一对辅助变量(N,Tw_m_1)和(N,Tw_m_2)、加密函数F_K(*,*)、所述最后的加密文本块的尺寸s、块尺寸n、从s尺寸到n尺寸的填充处理pad_n()、以及从n尺寸到s尺寸的切除处理cut_s(),得到包括具有s尺寸的所述最后的解码的明文块M’[m_2]的所述最后的解码的明文组块MC’[m]=(M’[m_1],M’[m_2])为:
M’[m_1]=F_K((N,Tw_m_2),pad_n(C[m_2]))xorC[m_1],
M’[m_2]=cut_s(Z’)xorC[m_2],
其中,Z’=F_K((N,Tw_m_1),M’[m_1]),
通过使用包括在除了所述最后的解码的明文组块的每个解码的明文组块中的解码的明文块M[i_2]、所述Z’和通过填充M’[m_2]到n尺寸而获得的M_n’[m_2]来计算解码的明文的校验和,并且得到解码检查认证标签T’为:
T’=F_K((N,Tw_T_2),SUM’)
假设所生成的校验和SUM’、用于认证标签的所述第二辅助变量(N,Tw_T_2)、以及加密函数F_K(*,*)。
(注释18)根据注释16或注释17所述的认证加密方法,其中,在一轮Feistel解码处理中,当输入加密文本被分成奇数个块且最后的块的尺寸与预先确定的块尺寸相同时,生成与加密中相同的用于认证标签的第三辅助变量作为向用于生成解码检查认证标签的加密函数给出的辅助变量,当输入加密文本被分成奇数个块且最后的块的尺寸小于预先确定的块尺寸时,生成与在加密中相同的用于认证标签的第四辅助变量作为向用于生成认证标签的加密函数给出的辅助变量,以及应用预先确定的一轮Feistel结构给包括最后的加密文本块的最后的加密文本组块,由此生成包括最后的解码的明文块的最后的明文组块,所述方法包括步骤:假设所述最后的加密文本组块的索引m、所述最后的加密文本块C[m_1]、所述最后的加密文本组块CC[m]=(C[m_1])、对应于所述最后的加密文本块的辅助变量(N,Tw_m_1)、加密函数F_K(*,*)、所述最后的加密文本块的尺寸s、块尺寸n、以及从n尺寸到s尺寸的切除处理cut_s(),所述一轮Feistel解码装置得到包括具有s尺寸的所述最后的解码的明文块M’[m_1]的所述最后的解码的明文组块MC’[m]=(M’[m_1])为:
M’[m_1]=cut_s(F_K((N,Tw_m_1),0^n))xor[m_1]
其中,如果s=n,cut_s()可以被忽略,
在s=n处通过使用包括在除了所述最后的解码的明文组块以外的每个解码的明文组块中的明文块M’[i_2]、以及所述M’[m_1]来计算解码的明文的校验和,得到解码检查认证标签T’为:
T’=F_K((N,Tw_T_3),SUM’)
假设生成的校验和SUM’、用于认证标签的所述辅助变量(N,Tw_T_3)、以及加密函数F_K(*,*),
在s<n处通过使用包括在除了所述最后的解码的明文组块以外的每个解码的明文组块中的明文块M’[i_2],以及通过填充所述M’[m_1]到n尺寸而获得的M_n’[m_1],来计算解码的明文的校验和,并且得到解码检查认证标签T’为:
T’=F_K((N,Tw_T_4),SUM’)
假设所生成的校验和SUM’、用于认证标签的所述第四辅助变量(N,Tw_T_4)、以及加密函数F_K(*,*)。
(注释19)根据注释13到注释18中任意一项所述的认证加密方法,其中,加密函数是可调块加密,具有包括被称为Tweak的辅助变量的两个输入变量。
(注释20)根据注释13到注释18中任意一项所述的认证加密方法,其中,加密函数是键控散列函数,具有第一变量和第二变量的耦合输入。
(注释21)一种用于认证加密的程序,用于使得计算机执行明文输入处理、辅助变量生成处理、两轮Feistel加密处理以及标签计算处理;所述明文输入处理输入要被加密的明文和初始矢量;所述辅助变量生成处理基于所述初始矢量和所述输入明文的尺寸来生成向每个加密函数给出的辅助变量;所述两轮Feistel加密处理当将明文每两个块分成组块时应用两轮Feistel结构给每个明文组块由此生成对应于所述明文组块的加密文本组块;所述标签计算处理是计算所述明文的校验和,并且应用分配有辅助变量的加密函数给所生成的校验和,由此生成认证标签的标签计算处理;所述两轮Feistel加密处理为:假设初始矢量N、组块索引i、第i个明文组块MC[i]=(M[i_1],M[i_2])、对应于包括在所述明文组块MC[i]中的两个明文块的一对辅助变量(N,Tw_i_1)和(N,Tw_i_2)、以及加密函数F_K(*,*),得到第i个加密文本组块CC[i]=(C[i_1],C[i_2])为:
C[i_1]=F_K((N,Tw_i_1),M[i_1])xorM[i_2],
C[i_2]=F_K((N,Tw_i_2),C[i_1])xorM[i_1],以及
所述标签计算处理为通过使用包括在每个明文组块中的明文块M[i_2]来计算明文的校验和,并且假设所生成的校验和SUM、向用于生成认证标签的加密函数给出的辅助变量(N,Tw_T_1)、以及加密函数F_K(*,*),得到认证标签T为:
T=F_K((N,Tw_T_1),SUM).
(注释22)根据注释21所述的用于认证加密的程序,所述程序用于使得计算机执行辅助变量生成处理、两轮Feistel加密处理以及第二标签计算处理;当输入明文被分为偶数个块且最后的块的尺寸小于预先确定的块尺寸时,所述辅助变量生成处理生成用于认证标签的第二辅助变量作为辅助变量向用于生成认证标签的加密函数给出;所述两轮Feistel加密处理假设所述最后的明文组块的索引m、所述最后的明文块M[m_2]、所述最后的明文组块MC[m]=(M[m_1],M[m_2])、对应于包括在所述最后的明文组块MC[m]中的两个明文块的一对辅助变量(N,Tw_m_1)和(N,Tw_m_2)、加密函数F_K(*,*)、所述最后的明文块的尺寸s、块尺寸n、从s尺寸到n尺寸的填充处理pad_n()、以及从n尺寸到s尺寸的切除处理cut_s(),得到包括具有s尺寸的所述最后的加密文本块C[m_2]的所述最后的加密文本组块CC[m]=(C[m_1],C[m_2])为:
C[m_2]=cut_s(Z)xorM[m_2],
C[m_1]=F_K((N,Tw_m_2),pad_n(C[m_2]))xorM[m_1]
其中,Z=F_K((N,Tw_m_1),M[m_1]),以及
所述第二标签计算处理通过使用包括在除了所述最后的明文组块以外的每个明文组块中的明文块M[i_2]、所述Z以及通过填充C[m_2]到n尺寸而获得的C_n[m_2]来计算明文的校验和,并且得到认证标签T为:
T=F_K((N,Tw_T_2),SUM)
假设所生成的校验和SUM、用于认证标签的所述第二辅助变量(N,Tw_T_2)以及加密函数F_K(*,*)。
(注释23)根据注释21或注释22所述的用于认证加密的程序,所述程序用于使得计算机执行辅助变量生成处理、两轮Feistel加密处理以及标签计算处理;所述辅助变量生成处理当输入明文被分为奇数个块且最后的块的尺寸与预先确定的块尺寸相同时,所述辅助变量生成处理生成用于认证标签的第三辅助变量作为向用于生成认证标签的加密函数给出的辅助变量,并且当输入明文被分成奇数个块且最后的块的尺寸小于预先确定的块尺寸时,所述辅助变量生成处理生成用于认证标签的第四辅助变量作为向用于生成认证标签的加密函数给出的辅助变量;所述两轮Feistel加密处理包括:假设所述最后的明文组块的索引m、所述最后的明文块M[m_1]、所述最后的明文组块MC[m]=(M[m_1])、对应于所述最后的明文块的辅助变量(N,Tw_m_1)、加密函数F_K(*,*)、所述最后的明文块的尺寸s、块尺寸n、以及从n尺寸到s尺寸的切除处理cut_s(),得到包括具有s尺寸的最后的加密文本块C[m_1]的所述最后的加密文本组块CC[m]=(C[m_1])为:
C[m_1]=cut_s(F_K((N,Tw_m_1),0^n))xorM[m_1]
其中,如果s=n,cut_s()可以被忽略,以及所述标签计算处理,在s=n处通过使用包括在除了所述最后的明文组块以外的每个明文组块中的明文块M[i_2],以及所述C[m_1],来计算明文的校验和,得到认证标签T为:
T=F_K((N,Tw_T_3),SUM)
假设所生成的校验和SUM、用于认证标签的所述第三辅助变量(N,Tw_T_3)、以及加密函数F_K(*,*),
在s<n处通过使用包括在除了所述最后的明文组块以外的每个明文组块中的明文块M[i_2],以及通过填充C[m_1]到n尺寸而获得的C_n[m_1],来计算明文的校验和,并且得到认证标签T为:
T=F_K((N,Tw_T_4),SUM)
假设所生成的校验和SUM、用于认证标签的所述第四辅助变量(N,Tw_T_4)、以及加密函数F_K(*,*)。
(注释24)一种用于认证加密的程序,使得计算机执行加密文本输入处理、解码辅助变量生成处理、两轮Feistel解码处理、解码检查标签计算处理以及确定处理;所述加密文本输入处理输入要解码的加密文本、初始矢量和认证标签;所述解码辅助变量生成处理基于所述初始矢量和所述输入加密文本的尺寸而生成与加密中相同的向每个所述加密函数给出辅助变量;所述两轮Feistel解码处理当将加密文本每两块分为组块时,应用两轮Feistel结构给每个加密文本组块,由此生成对应于所述加密文本组块的解码的明文组块;所述解码检查标签计算处理计算解码的明文的校验和,并且应用指派有辅助变量的加密函数到所生成的校验和,由此生成解码检查认证标签;所述确定处理基于由所述解码检查标签计算装置生成的所述解码检查认证标签和输入认证标签来确定解码成功或失败;所述两轮Feistel解码处理,包括:假设初始矢量N、组块索引i、第i个加密文本组块CC[i]=(C[i_1],C[i_2])、对应于包括在所述加密文本组块CC[i]中的两个加密文本块的一对辅助变量(N,Tw_i_1)和(N,Tw_i_2)、以及加密函数F_K(*,*),得到第i个解码的明文组块MC’[i]=(M’[i_1],M’[i_2])为:
M’[i_1]=F_K((N,Tw_i_2),C[i_1])xorC[i_2],
M’[i_2]=F_K((N,Tw_i_1),M’[i_1])xorC[i_1],以及
所述解码检查标签计算处理通过使用包括在每个解码的明文组块中的每个解码的明文块M’[i_2]来计算解码的明文的校验和,并且得到解码检查认证标签T’为:
T’=F_K((N,Tw_T_1),SUM’)
假设所生成的校验和SUM’、向用于生成解码检查认证标签的加密函数给出的辅助变量(N,Tw_T_1)、以及加密函数F_K(*,*)。
(注释25)根据注释24所述的用于认证加密的程序,所述程序用于使得计算机执行解码辅助变量生成处理、第二两轮Feistel解码处理以及解码检查标签计算处理;所述辅助变量生成处理包括:当输入加密文本被分为偶数个块且最后的块的尺寸小于预先确定的块尺寸时,生成与加密中相同的用于认证标签的第二辅助变量作为向用于生成解码检查认证标签的加密函数给出的辅助变量;所述两轮Feistel解码处理包括:假设所述最后的加密文本组块的索引m、所述最后的加密文本块C[m_2]、所述最后的加密文本组块CC[m]=(C[m_1],C[m_2])、对应于包括在所述最后的加密文本组块CC[m]中的两个加密文本块的一对辅助变量(N,Tw_m_1)和(N,Tw_m_2)、加密函数F_K(*,*)、所述最后的加密文本块的尺寸s、块尺寸n、从s尺寸到n尺寸的填充处理pad_n()、以及从n尺寸到s尺寸的切除处理cut_s(),得到包括具有s尺寸的所述最后的解码的明文块M’[m_2]的所述最后的解码的明文组块MC’[m]=(M’[m_1],M’[m_2])为:
M’[m_1]=F_K((N,Tw_m_2),pad_n(C[m_2]))xorC[m_1],
M’[m_2]=cut_s(Z’)xorC[m_2],
其中,Z’=F_K((N,Tw_m_1),M’[m_1]),
解码检查标签计算处理通过使用包括在除了所述最后的解码的明文组块的每个解码的明文组块中的解码的明文块M[i_2]、所述Z’和通过填充M’[m_2]到n尺寸而获得的M_n’[m_2]来计算解码的明文的校验和,并且得到解码检查认证标签T’为:
T’=F_K((N,Tw_T_2),SUM’)
假设所生成的校验和SUM’、用于认证标签的所述第二辅助变量(N,Tw_T_2)、以及加密函数F_K(*,*)。
(注释26)根据注释24或注释25所述的用于认证加密的程序,所述程序使得计算机执行辅助变量生成处理、两轮Feistel解码处理以及解码检查标签计算处理;所述辅助变量生成处理包括:当输入加密文本被分成奇数个块且最后的块的尺寸与预先确定的块尺寸相同时,生成与加密中相同的用于认证标签的第三辅助变量作为向用于生成解码检查认证标签的加密函数给出的辅助变量,并且当输入加密文本被分成奇数个块且最后的块的尺寸小于预先确定的块尺寸时,生成与在加密中相同的用于认证标签的第四辅助作为向用于生成解码检查认证标签的加密函数给出的辅助变量;所述两轮Feistel解码处理包括:假设所述最后的加密文本组块的索引m、所述最后的加密文本块C[m_1]、所述最后的加密文本组块CC[m]=(C[m_1])、对应于所述最后的加密文本块的辅助变量(N,Tw_m_1)、加密函数F_K(*,*)、所述最后的加密文本块的尺寸s、块尺寸n、以及从n尺寸到s尺寸的切除处理cut_s(),得到包括具有s尺寸的所述最后的解码的明文块M’[m_1]的所述最后的解码的明文组块MC’[m]=(M’[m_1])为:
M’[m_1]=cut_s(F_K((N,Tw_m_1),0^n))xor[m_1]
其中,如果s=n,cut_s()可以被忽略,以及
所述解码检查标签计算处理,包括:在s=n处通过使用包括在除了所述最后的解码的明文组块以外的每个解码的明文组块中的明文块M’[i_2]、以及所述M’[m_1]来计算解码的明文的校验和,得到解码检查认证标签T’为:
T’=F_K((N,Tw_T_3),SUM’)
假设所生成的校验和SUM’、用于认证标签的所述第三辅助变量(N,Tw_T_3)、以及加密函数F_K(*,*),在s<n处通过使用包括在除了所述最后的解码的明文组块以外的每个解码的明文组块中的明文块M’[i_2],以及通过填充所述M’[m_1]到n尺寸而获得的M_n’[m_1],来计算解码的明文的校验和,并且得到解码检查认证标签T’为:
T’=F_K((N,Tw_T_4),SUM’)
假设所生成的校验和SUM’、用于认证标签的所述第四辅助变量(N,Tw_T_4)、以及加密函数F_K(*,*)。
(注释27)根据注释21到注释26中任意一项所述的用于认证加密的程序,其中,加密函数是可调块加密,具有包括被称为Tweak的辅助变量的两个输入变量。
(注释28)根据注释21到注释26中任意一项所述的用于认证加密的程序,其中,加密函数是键控散列函数,具有第一变量和第二变量的耦合输入。
本发明要求基于2013年8月2日提交的日本专利申请第2013-161446号的优先权,其公开内容通过在此引用而加入进来。
工业实用性
本发明适合适用于诸如加密、消息认证和诸如在无线或有线数据通信中的数据库的存储的保护的应用。
附图标记列表
30,60认证加密装置
10,61加密装置
101输入装置
611明文输入装置
102,612辅助变量生成装置
103,613两轮Feistel加密装置
104,614标签计算装置
105输出装置
20,62解码装置
201输入装置
621加密文本输入装置
202辅助变量生成装置
622解码辅助变量生成装置
203,623两轮Feistel解码装置
204,624解码检查标签计算装置
205,625确定装置
206输出装置

Claims (13)

1.一种认证加密设备,包括:
认证加密装置,所述认证加密装置用于对输入的明文或加密文本每两块地应用使用用于轮函数的指派有辅助变量的加密函数的两轮Feistel结构,以由此生成加密文本或解码的明文。
2.根据权利要求1所述的认证加密设备,
其中,所述认证加密装置包括加密装置,
所述加密装置包括:
明文输入装置,所述明文输入装置用于输入要被加密的明文和初始矢量;
辅助变量生成装置,所述辅助变量生成装置用于基于所述初始矢量和所述输入的明文的尺寸来生成对所述加密函数中的每一个给予的辅助变量;
两轮Feistel加密装置,所述两轮Feistel加密装置用于在将所述明文每两个块地划分成组块时,对每个明文组块应用两轮Feistel结构,以由此生成与所述明文组块相对应的加密文本组块;以及
标签计算装置,所述标签计算装置用于计算所述明文的校验和,并且对得到的校验和应用指派有辅助变量的加密函数,一由此生成认证标签,
假设初始矢量N、组块索引i、第i个明文组块MC[i]=(M[i_1],M[i_2])、与包括在所述明文组块MC[i]中的两个明文块相对应的一对辅助变量(N,Tw_i_1)和(N,Tw_i_2)、以及加密函数F_K(*,*),所述两轮Feistel加密装置找到第i个加密文本组块CC[i]=(C[i_1],C[i_2])为:
C[i_1]=F_K((N,Tw_i_1),M[i_1])xorM[i_2],
C[i_2]=F_K((N,Tw_i_2),C[i_1])xorM[i_1],并且
所述标签计算装置通过使用包括在每个明文组块中的明文块M[i_2]来计算明文的校验和,并且假设得到的校验和SUM、对用于生成认证标签的加密函数给出的辅助变量(N,Tw_T_1)、以及加密函数F_K(*,*),找到认证标签T为:
T=F_K((N,Tw_T_1),SUM)。
3.根据权利要求1所述的认证加密设备,
其中,所述认证加密装置包括解码装置,
所述解码装置包括:
加密文本输入装置,所述加密文本输入装置用于输入要解码的加密文本、初始矢量和认证标签;
解码辅助变量生成装置,所述解码辅助变量生成装置用于基于所述初始矢量和所输入的加密文本的尺寸来生成与加密中相同的辅助变量,所述辅助变量被给予所述加密函数中的每一个;
两轮Feistel解码装置,所述两轮Feistel解码装置用于在将加密文本每两块地划分为组块时对每个加密文本组块应用两轮Feistel结构,以由此生成与所述加密文本组块相对应的解码的明文组块;
解码检查标签计算装置,所述解码检查标签计算装置用于计算所解码的明文的校验和,并且对得到的校验和应用指派有辅助变量的加密函数,以由此生成解码检查认证标签;以及
确定装置,所述确定装置用于基于由所述解码检查标签计算装置生成的所述解码检查认证标签和所输入的认证标签来确定所述解码成功还是失败,
假设初始矢量N、组块索引i、第i个加密文本组块CC[i]=(C[i_1],C[i_2])、与包括在所述加密文本组块CC[i]中的两个加密文本块相对应的一对辅助变量(N,Tw_i_1)和(N,Tw_i_2)、以及加密函数F_K(*,*),所述两轮Feistel解码装置找到第i个解码的明文组块MC’[i]=(M’[i_1],M’[i_2])为:
M’[i_1]=F_K((N,Tw_i_2),C[i_1])xorC[i_2],
M’[i_2]=F_K((N,Tw_i_1),M’[i_1])xorC[i_1],并且
所述解码检查标签计算装置通过使用包括在每个解码的明文组块中的每个解码的明文块M’[i_2]来计算解码的明文的校验和,并且找到解码检查认证标签T’为:
T’=F_K((N,Tw_T_1),SUM’)
假设得到的校验和SUM’、对用于生成解码检查认证标签的加密函数给予的辅助变量(N,Tw_T_1)、以及加密函数F_K(*,*)。
4.根据权利要求2所述的认证加密设备,
其中,当输入的明文被划分为偶数个块并且最后的块的尺寸小于预先确定的块尺寸时,所述辅助变量生成装置生成用于认证标签的第二辅助变量作为对用于生成认证标签的加密函数给予的辅助变量,
所述加密装置包括:
第二两轮Feistel加密装置,所述第二两轮Feistel加密装置用于对包括最后的明文块的最后的明文组块应用预先确定的两轮Feistel结构,以由此生成包括最后的加密文本块的最后的加密文本组块;以及
第二标签计算装置,所述第二标签计算装置用于通过使用所输入的明文和来自所述第二两轮Feistel加密装置的输出来计算明文的校验和,并且对得到的校验和应用指派有辅助变量的加密函数,以由此生成认证标签,
假设所述最后的明文组块的索引m、所述最后的明文块M[m_2]、所述最后的明文组块MC[m]=(M[m_1],M[m_2])、与包括在所述最后的明文组块MC[m]中的两个明文块相对应的一对辅助变量(N,Tw_m_1)和(N,Tw_m_2)、加密函数F_K(*,*)、所述最后的明文块的尺寸s、块尺寸n、从s尺寸到n尺寸的填充处理pad_n()、以及从n尺寸到s尺寸的切除处理cut_s(),所述第二两轮Feistel加密装置发现包括具有s尺寸的所述最后的加密文本块C[m_2]的所述最后的加密文本组块CC[m]=(C[m_1],C[m_2])为:
C[m_2]=cut_s(Z)xorM[m_2],
C[m_1]=F_K((N,Tw_m_2),pad_n(C[m_2]))xorM[m_1]
其中,Z=F_K((N,Tw_m_1),M[m_1]),并且
所述第二标签计算装置通过使用包括在除了所述最后的明文组块的每个明文组块中的明文块M[i_2]、所述Z以及通过将C[m_2]填充为n尺寸所获得的C_n[m_2]来计算明文的校验和,并且找到认证标签T为:
T=F_K((N,Tw_T_2),SUM)
假设得到的校验和SUM、用于认证标签的所述第二辅助变量(N,Tw_T_2)以及加密函数F_K(*,*)。
5.根据权利要求3所述的认证加密设备,
其中,当输入的加密文本被划分为偶数个块且最后的块的尺寸小于预先确定的块尺寸时,所述解码辅助变量生成装置生成与加密中相同的用于认证标签的第二辅助变量作为对用于生成解码检查认证标签的加密函数给予的辅助变量,
所述解码装置包括:
第二两轮Feistel解码装置,所述第二两轮Feistel解码装置用于对包括最后的加密文本块的最后的加密文本组块应用预先确定的两轮Feistel结构,以由此生成包括所述最后的加密块的解码的明文块的最后的解码的明文组块;以及
第二解码检查标签计算装置,所述第二解码检查标签计算装置用于通过使用来自所述两轮Feistel解码装置的输出、来自所述第二两轮Feistel解码装置的输出、以及所述最后的加密文本块来计算解码的明文的校验和,并且对得到的校验和应用指派有辅助变量的加密函数,以由此生成解码检查认证标签,
假设所述最后的加密文本组块的索引m、所述最后的加密文本块C[m_2]、所述最后的加密文本组块CC[m]=(C[m_1],C[m_2])、与包括在所述最后的加密文本组块CC[m]中的两个加密文本块相对应的一对辅助变量(N,Tw_m_1)和(N,Tw_m_2)、加密函数F_K(*,*)、所述最后的加密文本块的尺寸s、块尺寸n、从s尺寸到n尺寸的填充处理pad_n()、以及从n尺寸到s尺寸的切除处理cut_s(),所述第二两轮Feistel解码装置找到包括具有s尺寸的所述最后的解码的明文块M’[m_2]的所述最后的解码的明文组块MC’[m]=(M’[m_1],M’[m_2])为:
M’[m_1]=F_K((N,Tw_m_2),pad_n(C[m_2]))xorC[m_1],
M’[m_2]=cut_s(Z’)xorC[m_2],
其中,Z’=F_K((N,Tw_m_1),M’[m_1]),并且
所述第二解码检查标签计算装置通过使用包括在除了所述最后的解码的明文组块的每个解码的明文组块中的解码的明文块M[i_2]、所述Z’和通过将M’[m_2]填充为n尺寸所获得的M_n’[m_2]来计算解码的明文的校验和,并且找到解码检查认证标签T’为:
T’=F_K((N,Tw_T_2),SUM’)
假设得到的校验和SUM’、用于认证标签的所述第二辅助变量(N,Tw_T_2)、以及加密函数F_K(*,*)。
6.根据权利要求2或权利要求4所述的认证加密设备,
其中,当所输入的明文被划分为奇数个块且最后的块的尺寸与预先确定的块尺寸相同时,所述辅助变量生成装置生成用于认证标签的第三辅助变量作为对用于生成认证标签的加密函数给予的辅助变量,并且当输入明文被划分成奇数个块且最后的块的尺寸小于预先确定的块尺寸时,所述辅助变量生成装置生成用于认证标签的第四辅助变量作为对用于生成认证标签的加密函数给予的辅助变量,
所述加密装置包括:
一轮Feistel加密装置,所述一轮Feistel加密装置用于对包括最后的明文块的最后的明文组块应用预先确定的一轮Feistel结构给,以由此生成包括最后的加密文本块的最后的加密文本组块;以及
第三标签计算装置,所述第三标签计算装置用于通过使用所输入的明文和来自所述一轮Feistel加密装置的输出来计算明文的校验和,并且对得到的校验和应用指派有辅助变量的加密函数,以由此生成认证标签,
假设所述最后的明文组块的索引m、所述最后的明文块M[m_1]、所述最后的明文组块MC[m]=(M[m_1])、与所述最后的明文块相对应的辅助变量(N,Tw_m_1)、加密函数F_K(*,*)、所述最后的明文块的尺寸s、块尺寸n、以及从n尺寸到s尺寸的切除处理cut_s(),所述一轮Feistel加密装置找到包括具有s尺寸的所述最后的加密文本块C[m_1]的所述最后的加密文本组块CC[m]=(C[m_1])为:
C[m_1]=cut_s(F_K((N,Tw_m_1),0^n))xorM[m_1]
其中,如果s=n,则cut_s()能够被忽略,并且
所述第三标签计算装置在s=n时通过使用包括在除了所述最后的明文组块的每个明文组块中的明文块M[i_2]以及所述C[m_1],来计算明文的校验和,找到认证标签T为:
T=F_K((N,Tw_T_3),SUM)
假设得到的校验和SUM、用于认证标签的所述第三辅助变量(N,Tw_T_3)以及加密函数F_K(*,*),
在s<n时通过使用包括在除了所述最后的明文组块的每个明文组块中的明文块M[i_2]以及通过将C[m_1]填充为n尺寸所获得的C_n[m_1],来计算明文的校验和,并且找到认证标签T为:
T=F_K((N,Tw_T_4),SUM)
假设得到的校验和SUM、用于认证标签的所述第四辅助变量(N,Tw_T_4)以及加密函数F_K(*,*)。
7.根据权利要求3或权利要求5所述的认证加密设备,
其中,当输入的加密文本被划分成奇数个块且最后的块的尺寸与预先确定的块尺寸相同时,所述辅助变量生成装置生成与加密中相同的用于认证标签的第三辅助变量作为对用于生成解码检查认证标签的加密函数给予的辅助变量,并且当输入的加密文本被划分成奇数个块且最后的块的尺寸小于预先确定的块尺寸时,所述辅助变量生成装置生成与在加密中相同的用于认证标签的第四辅助变量作为对用于生成解码检查认证标签的加密函数给予的辅助变量,
所述解码装置包括:
一轮Feistel解码装置,所述一轮Feistel解码装置用于对包括最后的加密文本块的最后的加密文本组块应用预先确定的一轮Feistel结构,以由此生成包括最后的解码的明文块的最后的明文组块;以及
第三解码检查标签计算装置,所述第三解码检查标签计算装置用于通过使用来自所述两轮Feistel解码装置的输出和来自所述一轮Feistel解码装置的输出来计算解码的明文的校验和,并且对得到的校验和应用指派有辅助变量的加密函数,以由此生成解码检查认证标签,
假设所述最后的加密文本组块的索引m、所述最后的加密文本块C[m_1]、所述最后的加密文本组块CC[m]=(C[m_1])、与所述最后的加密文本块相对应的辅助变量(N,Tw_m_1)、加密函数F_K(*,*)、所述最后的加密文本块的尺寸s、块尺寸n、以及从n尺寸到s尺寸的切除处理cut_s(),所述一轮Feistel解码装置找到包括具有s尺寸的所述最后的解码的明文块M’[m_1]的所述最后的解码的明文组块MC’[m]=(M’[m_1])为:
M’[m_1]=cut_s(F_K((N,Tw_m_1),0^n))xor[m_1]
其中,如果s=n,则cut_s()能够被忽略,并且
所述第三解码检查标签计算装置在s=n时通过使用包括在除了所述最后的解码的明文组块以外的每个解码的明文组块中的明文块M’[i_2]以及所述M’[m_1]来计算解码的明文的校验和,找到解码检查认证标签T’为:
T’=F_K((N,Tw_T_3),SUM’)
假设得到的校验和SUM’、用于认证标签的所述第三辅助变量(N,Tw_T_3)、以及加密函数F_K(*,*),
在s<n时通过使用包括在除了所述最后的解码的明文组块以外的每个解码的明文组块中的明文块M’[i_2]以及通过将所述M’[m_1]填充为n尺寸所获得的M_n’[m_1],来计算解码的明文的校验和,并且找到解码检查认证标签T’为:
T’=F_K((N,Tw_T_4),SUM’),
假设得到的校验和SUM’、用于认证标签的所述第四辅助变量(N,Tw_T_4)、以及加密函数F_K(*,*)。
8.根据权利要求1到7中任意一项所述的认证加密设备,
其中,加密函数是可调块加密,具有包括被称为Tweak的辅助变量的两个输入变量。
9.根据权利要求1到7中任意一项所述的认证加密设备,
其中,加密函数是键控散列函数,具有第一变量和第二变量的耦合输入。
10.一种加密设备,包括:
加密装置,所述加密装置用于对输入的明文每两块地应用使用用于轮函数的指派有辅助变量的加密函数的两轮Feistel结构,以由此生成加密文本。
11.一种解码设备,包括:
解码装置,所述解码装置用于对输入的加密文本每两块地应用使用指派有用于轮函数的辅助变量的加密函数的两轮Feistel结构,以由此生成解码的明文。
12.一种认证加密方法,其中,信息处理装置对输入的明文或加密文本每两块地应用使用用于轮函数的指派有辅助变量的加密函数的两轮Feistel结构,以由此生成加密文本或解码的明文。
13.一种用于认证加密的程序,用于使得计算机执行下述处理:
输入的明文或加密文本每两块地应用使用用于轮函数的指派有辅助变量的加密函数的两轮Feistel结构,以由此生成加密文本或解码的明文。
CN201480043829.8A 2013-08-02 2014-06-24 认证加密设备、认证加密方法以及用于认证加密的程序 Active CN105453482B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2013-161446 2013-08-02
JP2013161446 2013-08-02
PCT/JP2014/003382 WO2015015702A1 (ja) 2013-08-02 2014-06-24 認証暗号装置、認証暗号方法および認証暗号用プログラム

Publications (2)

Publication Number Publication Date
CN105453482A true CN105453482A (zh) 2016-03-30
CN105453482B CN105453482B (zh) 2019-06-21

Family

ID=52431268

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480043829.8A Active CN105453482B (zh) 2013-08-02 2014-06-24 认证加密设备、认证加密方法以及用于认证加密的程序

Country Status (9)

Country Link
US (1) US10341088B2 (zh)
EP (1) EP3029877B1 (zh)
JP (1) JP6519473B2 (zh)
KR (1) KR101809386B1 (zh)
CN (1) CN105453482B (zh)
AU (1) AU2014297854B2 (zh)
BR (1) BR112016001596B1 (zh)
RU (1) RU2647685C2 (zh)
WO (1) WO2015015702A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112866288A (zh) * 2021-03-01 2021-05-28 上海海事大学 一种双明文传输的数据对称加密方法
CN113596824A (zh) * 2021-07-30 2021-11-02 深圳供电局有限公司 一种5g安全协议中认证失败明文信息的加密方法

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014174044A1 (en) * 2013-04-24 2014-10-30 Nec Europe Ltd. Method and system for encrypting data
US10404449B2 (en) * 2014-11-24 2019-09-03 Nec Corporation Method for encrypting data for distributed storage
CN107005415B (zh) * 2014-12-03 2021-03-23 耐瑞唯信有限公司 用于加密/解密消息的块加密方法及设备
JP2017073716A (ja) * 2015-10-09 2017-04-13 日本電気株式会社 タグリスト生成装置、タグリスト検証装置、タグリスト更新装置、タグリスト生成方法及びプログラム
JP6386198B1 (ja) * 2017-02-21 2018-09-05 三菱電機株式会社 暗号化装置及び復号装置
WO2018193507A1 (ja) * 2017-04-17 2018-10-25 日本電気株式会社 認証タグ生成装置、認証タグ検証装置、方法及びプログラム
JP6881112B2 (ja) * 2017-07-10 2021-06-02 日本電信電話株式会社 暗号化データ生成装置、復号データ生成装置、追加データ付き認証暗号システム、その方法、及びプログラム
JP6881111B2 (ja) * 2017-07-10 2021-06-02 日本電信電話株式会社 暗号化データ生成装置、復号データ生成装置、追加データ付き認証暗号システム、その方法、及びプログラム
US11126718B2 (en) * 2017-07-12 2021-09-21 Acronis International Gmbh Method for decrypting data encrypted by ransomware
JP6735926B2 (ja) * 2017-09-01 2020-08-05 三菱電機株式会社 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム
CN108155986A (zh) * 2017-12-14 2018-06-12 晶晨半导体(上海)股份有限公司 一种基于可信执行环境的密钥烧录系统及方法
KR102438784B1 (ko) * 2018-01-05 2022-09-02 삼성전자주식회사 데이터를 난독화 및 복호화 하는 전자 장치 및 그의 제어 방법
WO2019142306A1 (ja) * 2018-01-19 2019-07-25 ルネサスエレクトロニクス株式会社 半導体装置、データ提供方法、データ復号方法、およびプログラム
US11463235B2 (en) 2018-02-21 2022-10-04 Nec Corporation Encryption device, encryption method, program, decryption device, and decryption method
RU2694336C1 (ru) * 2018-05-08 2019-07-11 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Способ аутентифицированного шифрования
WO2020065820A1 (ja) * 2018-09-27 2020-04-02 日本電気株式会社 Macタグリスト生成装置、macタグリスト検証装置、集約mac検証システム及び方法
US11728968B2 (en) 2018-11-07 2023-08-15 Nrc Corporation Authenticated encryption device, authenticated decryption device, authenticated encryption method, authenticated decryption method, authenticated encryption program, and authenticated decryption program
WO2021214923A1 (ja) * 2020-04-23 2021-10-28 日本電気株式会社 認証暗号化装置、認証復号装置、認証暗号システム、方法及びコンピュータ可読媒体

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5623549A (en) * 1995-01-30 1997-04-22 Ritter; Terry F. Cipher mechanisms with fencing and balanced block mixing
US6804355B1 (en) * 2000-01-06 2004-10-12 Intel Corporation Block cipher for small selectable block sizes
US7200227B2 (en) * 2001-07-30 2007-04-03 Phillip Rogaway Method and apparatus for facilitating efficient authenticated encryption
US20100027783A1 (en) * 2007-03-12 2010-02-04 Itt Manufacturing Enterprises, Inc. Precalculated encryption key

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002049310A (ja) * 2000-08-04 2002-02-15 Toshiba Corp 暗復号装置、認証装置及び記憶媒体
US20020078342A1 (en) * 2000-09-25 2002-06-20 Broadcom Corporation E-commerce security processor alignment logic
DE60128007T2 (de) * 2000-12-25 2007-12-27 Matsushita Electric Industrial Co., Ltd., Kadoma Vorrichtung und verfahren zur sicherheitsbearbeitung von kommunikationspaketen
US7376826B2 (en) * 2002-05-31 2008-05-20 Broadcom Corporation Methods and apparatus for performing encryption and authentication
US7796752B2 (en) * 2002-11-04 2010-09-14 Marvell International Ltd. Cipher implementation
JP4561252B2 (ja) * 2004-09-03 2010-10-13 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP2006253746A (ja) * 2005-03-08 2006-09-21 N-Crypt Inc データ処理装置、データ処理システム、及びデータ処理方法
US8687800B2 (en) * 2006-08-15 2014-04-01 Alcatel Lucent Encryption method for message authentication
US20090119510A1 (en) * 2007-11-06 2009-05-07 Men Long End-to-end network security with traffic visibility
JP5504592B2 (ja) * 2008-08-25 2014-05-28 ソニー株式会社 データ変換装置、およびデータ変換方法、並びにプログラム
EP2822215A1 (en) * 2012-03-02 2015-01-07 Sony Corporation Information processing device, information processing method, and programme
WO2014084886A1 (en) * 2012-11-29 2014-06-05 Blackberry Limited Authenticated encryption method using working blocks
TWI510046B (zh) * 2013-07-04 2015-11-21 Univ Nat Cheng Kung 認證式加解密方法
CN104683093B (zh) * 2013-11-27 2018-01-26 财团法人资讯工业策进会 兼具完整性验证的区块加密装置、区块加密方法、区块解密装置及区块解密方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5623549A (en) * 1995-01-30 1997-04-22 Ritter; Terry F. Cipher mechanisms with fencing and balanced block mixing
US6804355B1 (en) * 2000-01-06 2004-10-12 Intel Corporation Block cipher for small selectable block sizes
US7200227B2 (en) * 2001-07-30 2007-04-03 Phillip Rogaway Method and apparatus for facilitating efficient authenticated encryption
US20100027783A1 (en) * 2007-03-12 2010-02-04 Itt Manufacturing Enterprises, Inc. Precalculated encryption key

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ERIK ANDERSON等: ""Manticore and CS Mode:Parallelizable Encryption with Joint Cipher-State Authentication"", 《SANDIA REPORT》 *
MARC FISCHLIN等: ""用于哈希函数的鲁棒多属性组合器重构"", 《A PRELIMINARY VERSION APPEARS AT ICALP, LECTURE NOTES IN COMPUTER SCIENCE, SPRINGER-VERLAG》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112866288A (zh) * 2021-03-01 2021-05-28 上海海事大学 一种双明文传输的数据对称加密方法
CN112866288B (zh) * 2021-03-01 2022-09-06 上海海事大学 一种双明文传输的数据对称加密方法
CN113596824A (zh) * 2021-07-30 2021-11-02 深圳供电局有限公司 一种5g安全协议中认证失败明文信息的加密方法

Also Published As

Publication number Publication date
EP3029877A1 (en) 2016-06-08
BR112016001596B1 (pt) 2023-04-11
EP3029877B1 (en) 2018-04-11
BR112016001596A2 (zh) 2017-07-25
AU2014297854B2 (en) 2016-12-22
RU2016107391A (ru) 2017-09-07
RU2647685C2 (ru) 2018-03-16
EP3029877A4 (en) 2017-03-15
CN105453482B (zh) 2019-06-21
JPWO2015015702A1 (ja) 2017-03-02
KR101809386B1 (ko) 2017-12-14
JP6519473B2 (ja) 2019-06-05
KR20160027982A (ko) 2016-03-10
AU2014297854A1 (en) 2016-02-04
US10341088B2 (en) 2019-07-02
US20160173276A1 (en) 2016-06-16
WO2015015702A1 (ja) 2015-02-05

Similar Documents

Publication Publication Date Title
CN105453482A (zh) 认证加密设备、认证加密方法以及用于认证加密的程序
US10623176B2 (en) Authentication encryption method, authentication decryption method, and information-processing device
García-Martínez et al. Pseudo-random bit generator based on multi-modal maps
US8345861B2 (en) Sharing a secret using polynomial division over GF(Q)
KR101393806B1 (ko) 다단계 물리적 복제 불가 함수 시스템
CN105049400A (zh) 在白盒实现方案中拆分s盒以防止攻击
KR102154164B1 (ko) 의사 랜덤 시퀀스 생성 방법 및 데이터 스트림의 코딩 또는 디코딩 방법
JP6135804B1 (ja) 情報処理装置、情報処理方法及びプログラム
US11463235B2 (en) Encryption device, encryption method, program, decryption device, and decryption method
US20170272243A1 (en) Encryption apparatus, decryption apparatus, cryptography processing system, encryption method, decryption method, encryption program, and decryption program
CN110784306A (zh) Sm4算法白盒实现方法、装置、电子设备及计算机介质
JPWO2016067524A1 (ja) 認証付暗号化装置、認証付復号装置、認証付暗号システム、認証付暗号化方法、プログラム
US10097343B2 (en) Data processing apparatus and data processing method
JP6292195B2 (ja) 情報処理装置及び情報処理方法
EP2899713B1 (en) Hash value calculation device, hash value calculation method and hash value calculation program
JP6631989B2 (ja) 暗号化装置、制御方法、及びプログラム
JP6033504B1 (ja) メッセージ認証子生成装置
KR102452181B1 (ko) 근사 암호화된 암호문에 대한 정렬 장치 및 방법
KR102626974B1 (ko) 화이트박스 암호의 비밀키 보호를 위한 방법 및 시스템
Manankova et al. Modeling of the Modes of Operation of the AES Algorithm in the Cryptool 2 Environment
KR20220146363A (ko) 동형 암호문에 대해 정렬 장치 및 방법
Tsyhanenko et al. Mathematical model of the modified Niederreiter crypto-code structures
Lu et al. Improved Davies-Murphy’s Attack on DES Revisited
CN114254372A (zh) 数据加密处理方法、系统及电子设备
CN112003687A (zh) 一种白盒运算方法、装置、电子设备及计算机存储介质

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