CN111052670B - 加密装置、解密装置、加密方法、解密方法和计算机能读取的存储介质 - Google Patents
加密装置、解密装置、加密方法、解密方法和计算机能读取的存储介质 Download PDFInfo
- Publication number
- CN111052670B CN111052670B CN201780094168.5A CN201780094168A CN111052670B CN 111052670 B CN111052670 B CN 111052670B CN 201780094168 A CN201780094168 A CN 201780094168A CN 111052670 B CN111052670 B CN 111052670B
- Authority
- CN
- China
- Prior art keywords
- variable
- data
- bits
- updated
- encryption
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/122—Hardware reduction or efficient architectures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/20—Manipulating the length of blocks of bits, e.g. padding or block truncation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
加密装置(10)按照每b比特对消息M进行分割,生成数据M[1],...,数据M[m]。加密装置(10)将n=b+c比特的数据S0设定为变量S,针对i=1,...,m的各整数i,按照升序,将变量S作为输入来计算块加密E,对变量S进行更新,将更新后的变量S和对数据M[i]附加c比特的比特串而成的数据X[i]作为输入来计算异或,对变量S进行更新,从更新后的变量S中提取b比特,生成数据C[i]。加密装置(10)连结与i=1,...,m的各整数i有关的数据C[i],生成消息M的密文C。加密装置(10)从变量S中提取1以上的整数t比特作为认证码T。
Description
技术领域
本发明涉及使用块加密的认证加密算法。
背景技术
认证加密算法是实现隐匿功能和篡改检测功能的加密算法。当使用认证加密算法时,能够在两者之间隐匿消息后进行通信,并且,接收者能够确认所发送的消息是否被篡改。
认证加密算法具有加密函数Enc和解密函数Dec这2个算法。
加密函数Enc是如下函数:将秘密密钥K、初始参数N、公开数据A和消息m作为输入,输出密文C和篡改检测用的认证码T。另外,初始参数N按照每次加密而使用不同的值。
解密函数Dec是如下函数:将秘密密钥K、初始参数N、公开数据A、密文C和篡改检测用的认证码T作为输入,在密文C等未被篡改的情况下输出消息m,在密文C等被篡改的情况下不输出消息m。
设发送者Alice和接收者Bob使用认证加密算法进行通信。该情况下,发送者Alice根据秘密密钥K、初始参数N、公开数据A和消息m,使用加密函数Enc计算密文C和篡改检测用的认证码T。然后,发送者Alice向接收者Bob发送初始参数N、公开数据A、密文C和篡改检测用的认证码T。接收者Bob将秘密密钥K、初始参数N、公开数据A、密文C和篡改检测用的认证码T设为解密函数Dec的输入。解密函数Dec在初始参数N、公开数据A、密文C和篡改检测用的认证码T均未被篡改的情况下输出消息m。
另外,秘密密钥K事前由Alice和Bob共享。此外,公开数据A是可以公开的值。也可以没有公开数据A。
作为认证加密算法的结构方法,存在非专利文献1记载的使用AES(AdvancedEncryption Standard)等块加密的方法。
块加密由加密函数E和解密函数D构成。加密函数E是如下函数:将密钥K和n比特的消息m作为输入,输出n比特的密文c。将其写作c=EK(m)。解密函数D是如下函数:将密钥K和n比特的密文c作为输入,输出n比特的消息m。将其写作m=DK(c)。
块加密的消息m和密文c的大小n被称作块大小。在固定密钥K时,块加密的加密函数E和解密函数D成为n比特的置换函数。块大小n是由块加密定义的参数,在AES的情况下n=128。
认证加密的加密函数Enc使用块加密的加密函数E构成。此外,认证加密的解密函数Dec使用块加密的加密函数E或解密函数D构成。
在认证加密的解密函数Dec使用块加密的解密函数D构成的情况下,在认证加密中使用块加密的加密函数E和解密函数D双方。在认证加密中使用块加密的加密函数E和解密函数D双方的情况下,需要安装加密函数E和解密函数D双方。例如,在利用软件安装的情况下,需要加密函数E和解密函数D双方的程序,在利用硬件安装的情况下,需要加密函数E和解密函数D双方的电路等。
另一方面,在认证加密的解密函数Dec使用块加密的加密函数E的情况下,在认证加密中仅使用块加密的加密函数E。在认证加密中仅使用块加密的加密函数E的情况下,不需要安装解密函数D。因此,软件或硬件的大小较小。将软件的大小和硬件的大小称作安装大小。
作为能够仅利用块加密的加密函数E来安装的认证加密算法,存在非专利文献2记载的AES-GCM。AES-GCM使用计数器模式实现认证加密的加密函数Enc和解密函数Dec,以实现隐匿功能。此外,AES-GCM使用伽罗瓦体GF(2n)上的乘法,以实现篡改检测功能。在作为隐匿功能的算法的计数器模式中,除了块加密的加密函数E以外,还使用异或XOR运算。
由此,在AES-GCM中,除了加密函数E以外,还需要安装伽罗瓦体GF(2n)上的乘法和异或。
在非专利文献3中记载有仅由加密函数E和异或XOR构成的认证加密算法JAMBU。JAMBU不需要伽罗瓦体GF(2n)上的乘法,因此,与AES-GCM相比,安装大小较小。
在认证加密算法JAMBU的加密函数Enc或解密函数Dec中,一边使用块加密的加密函数E对3n/2比特的内部变量进行更新,一边进行加密。
现有技术文献
非专利文献
非专利文献1:FIPS 197,Advanced Encryption Standard(AES).
非专利文献2:NIST Special Publication 800-38D,Recommendation for BlockCipher Modes of Operation:Galois/Counter Mode(GCM)and GMAC.
非专利文献3:Submitted to the CAESAR competition,The JAMBU LightweightAuthentication Encryption Mode(v2.1).
发明内容
发明要解决的课题
除了安装大小以外,执行认证加密算法时使用的内部变量的大小也很重要。当成为嵌入设备这样的低价设备时,RAM大小和ROM大小较小。这样,在安装环境受到限制的情况下,期望安装大小和内部变量大小尽可能较小。内部变量是由块加密E更新的值。例如,JAMBU的内部变量大小为3n/2比特。此外,AES-GCM的内部变量大小需要为2n比特以上。
本发明的目的在于,实现能够减小安装大小和内部变量大小的认证加密算法。
用于解决课题的手段
本发明的加密装置具有:分割部,其按照每b比特对消息M进行分割,生成b比特的数据M[1],...,数据M[m];函数计算部,其将n=b+c比特的数据S0设定为变量S,针对i=1,...,m的各整数i,按照升序,利用将所述变量S作为输入来计算块加密E而得到的数据对所述变量S进行更新,利用将更新后的所述变量S和对数据M[i]附加c比特的比特串而成的数据X[i]作为输入来计算异或而得到的数据对所述变量S进行更新,从更新后的所述变量S中提取b比特,生成数据C[i];密文生成部,其连结与i=1,...,m的各整数i有关的所述数据C[i],生成所述消息M的密文C;以及认证码生成部,其从由所述函数计算部最后更新的所述变量S中提取1以上的整数t比特作为认证码T。
发明效果
在本发明中,能够由块加密的加密函数E和异或XOR构成认证加密算法。此外,作为内部变量的变量S的大小为n比特。因此,能够使安装大小与认证加密算法JAMBU相同,并且使内部变量的大小小于认证加密算法JAMBU。
附图说明
图1是实施方式1的加密装置10的结构图。
图2是实施方式1的解密装置20的结构图。
图3是示出实施方式1的加密装置10的动作的流程图。
图4是实施方式1的加密装置10的动作的说明图。
图5是示出实施方式1的解密装置20的动作的流程图。
图6是实施方式1的解密装置20的动作的说明图。
图7是变形例1的加密装置10的结构图。
图8是变形例1的解密装置20的结构图。
图9是实施方式2的加密装置10的结构图。
图10是实施方式2的解密装置20的结构图。
图11是示出实施方式2的加密装置10和解密装置20的动作的流程图。
图12是实施方式2的加密装置10和解密装置20的动作的说明图。
具体实施方式
实施方式1
在实施方式1中,对使用块大小n的块加密的加密函数E构成的认证加密算法进行说明。
***变量和记法的说明***
对以下的说明中的变量和记法进行说明。
整数b、整数c、整数b”和整数c”满足c=n-b、c”=n-b”的关系。此外,整数t满足t≦n的关系。
设整数x的y比特表现为str[y](x)。例如,str[4](2)=0010。设n比特的比特串z的高位w比特为msb[w](z),低位w比特为Lsb[w](z)。设比特串w的比特长度为Len(w)。
const[1]、const[2]和const[3]是非零的整数,是全部不同的值。
***结构的说明***
参照图1对实施方式1的加密装置10的结构进行说明。
加密装置10具有处理器11、内存12、存储器13和通信接口14这样的硬件。处理器11经由信号线而与其他硬件连接,对这些其他硬件进行控制。
作为功能结构要素,加密装置10具有受理部111、分割部112、变量设定部113、函数计算部114、认证码生成部115、密文生成部116和输出部117。加密装置10的各功能结构要素的功能通过软件实现。
在存储器13中存储有实现加密装置10的各功能结构要素的功能的程序。该程序由处理器11读入到内存12,由处理器11执行。由此,实现加密装置10的各功能结构要素的功能。
参照图2对实施方式1的解密装置20的结构进行说明。
解密装置20具有处理器21、内存22、存储器23和通信接口24这样的硬件。处理器21经由信号线而与其他硬件连接,对这些其他硬件进行控制。
作为功能结构要素,解密装置20具有受理部211、分割部212、变量设定部213、函数计算部214、认证码生成部215、消息生成部216和输出部217。解密装置20的各功能结构要素的功能通过软件实现。
在存储器23中存储有实现解密装置20的各功能结构要素的功能的程序。该程序由处理器21读入到内存22,由处理器21执行。由此,实现解密装置20的各功能结构要素的功能。
处理器11、21是进行处理的IC(Integrated Circuit:集成电路)。作为具体例,处理器11、21是CPU(Central Processing Unit:中央处理单元)、DSP(Digital SignalProcessor:数字信号处理器)、GPU(Graphics Processing Unit:图形处理单元)。
内存12、22是暂时存储数据的存储装置。作为具体例,内存12、22是SRAM(StaticRandom Access Memory:静态随机存取存储器)、DRAM(Dynamic Random Access Memoryy:动态随机存取存储器)。
存储器13、23是保管数据的存储装置。作为具体例,存储器13、23是HDD(Hard DiskDrive:硬盘驱动器)。此外,存储器13、23也可以是SD(Secure Digital:安全数字)存储卡、CF(CompactFlash、注册商标)、NAND闪存、软盘、光盘、高密度盘、蓝光(注册商标)盘、DVD(Digital Versatile Disk:数字多功能盘)这样的移动存储介质。
通信接口14、24是用于与外部装置进行通信的接口。作为具体例,通信接口14、24是Ethernet(注册商标)、USB(Universal Serial Bus:通用串行总线)、HDMI(注册商标、High-Definition Multimedia Interface:高清晰度多媒体接口)的端口。
***动作的说明***
参照图3~图6对实施方式1的加密装置10和解密装置20的动作进行说明。
实施方式1的加密装置10的动作相当于实施方式1的加密方法。此外,实施方式1的加密装置10的动作相当于实施方式1的加密程序的处理。
实施方式1的解密装置20的动作相当于实施方式1的解密方法。此外,实施方式1的解密装置20的动作相当于实施方式1的解密程序的处理。
参照图3和图4对实施方式1的加密装置10的动作进行说明。
(步骤S11:受理处理)
受理部111受理作为加密对象的消息M的输入。
具体而言,受理部111经由通信接口14接收由利用者对输入装置进行操作而输入的消息M。
(步骤S12:分割处理)
分割部112判定在步骤S11中受理的消息M的长度Len(M)是否是b比特的倍数。在长度Len(M)不是b比特的倍数的情况下,在消息M的后面附加1,进而在后面附加0的比特串,生成数据M*,以使长度Len(M)成为b比特的倍数。另一方面,在长度Len(M)是b比特的倍数的情况下,将消息M作为数据M*进行处理。
分割部112从开头起按照每b比特对数据M*进行分割,生成数据M[1],...,数据M[m]。“m”是1以上的整数。
(步骤S13:变量设定处理)
变量设定部113将n比特的数据S0和对b”比特的初始参数N连结c”比特的常数const[1]而成的数据Y作为输入来计算异或,将计算该异或而得到的数据设定为加密装置10的内部的变量S。即,变量设定部113计算S=S0 XOR(N||const[1])。
在实施方式1中,数据S0是固定数据IV。加密装置10的内部的变量S是加密装置10的内存12中存储的变量。
(步骤S14:函数计算处理)
函数计算部114针对i=1,...,m的各整数i,按照升序执行以下的处理A~处理C。
(处理A)
函数计算部114将变量S和密钥K作为输入来计算块加密的加密函数E,将计算该块加密的加密函数E而得到的数据设定为变量S,由此对变量S进行更新。这里,密钥K事前在加密装置10与解密装置20之间共享。
即,函数计算部114计算S=EK(S)。
(处理B)
函数计算部114将在处理A中更新后的变量S和对数据M[i]附加c比特的比特串而成的数据X[i]作为输入来计算异或,将计算该异或而得到的数据设定为变量S,由此对变量S进行更新。这里,函数计算部114使用在数据M[i]的后面附加c比特0而成的数据X[i]。
即,函数计算部114计算S=S XOR(M[i]||0c)。
(处理C)
函数计算部114从在处理B中更新后的变量S中提取b比特,生成数据C[i]。这里,函数计算部114提取变量S的高位b比特,生成数据C[i]。
即,函数计算部114计算C[i]=msb[b](S)。
(步骤S15:认证码生成处理)
认证码生成部115在消息M的长度是b比特的倍数的情况下,将在步骤S14中计算出的变量S和常数const[2]作为输入来计算异或,将计算该异或而得到的数据设定为变量S,由此对变量S进行更新。这里,认证码生成部115将变量S和在表现c比特的常数const[2]的比特串的前面附加b比特0而成的数据作为输入来计算异或。即,认证码生成部115计算S=SXOR(0b||str[c](const[2]))。
另一方面,认证码生成部115在消息M的长度不是b比特的倍数的情况下,将在步骤S14中计算出的变量S和常数const[3]作为输入来计算异或,将计算该异或而得到的数据设定为变量S,由此对变量S进行更新。这里,认证码生成部115将变量S和在表现c比特的常数const[3]的比特串的前面附加b比特0而成的数据作为输入来计算异或。即,认证码生成部115计算S=S XOR(0b||str[c](const[3]))。
认证码生成部115将更新后的变量S作为输入来计算加密函数E,将计算该加密函数E而得到的数据设定为变量S,由此对变量S进行更新。即,认证码生成部115计算S=EK(S)。
然后,认证码生成部115从更新后的变量S中提取t比特作为认证码T。这里,认证码生成部115从变量S中提取高位t比特,生成认证码T。即,认证码生成部115计算T=msb[t](S)。
(步骤S16:密文生成处理)
密文生成部116连结在步骤S14中计算出的与i=1,...,m的各整数i有关的数据C[i]。密文生成部116从连结后的数据中仅提取高位的消息M的长度Len(M)比特,生成对消息M进行加密而成的密文C。
即,密文生成部116计算C=msb[Len(M)](C[1]||...||C[m-1]||C[m])。
(步骤S17:输出处理)
输出部117输出在步骤S15中计算出的认证码T和在步骤S16中生成的密文C。
具体而言,输出部117经由通信接口14向解密装置20发送认证码T和密文C。
参照图5和图6对实施方式1的解密装置20的动作进行说明。
(步骤S21:受理处理)
受理部211受理认证码T和密文C的输入。
具体而言,受理部111经由通信接口24接收由加密装置10发送的认证码T和密文C。
(步骤S22:分割处理)
分割部212从开头起按照每b比特对在步骤S21中受理的密文C进行分割,生成数据C[1],...,数据C[m]。
在密文C的长度Len(C)不是b比特的倍数的情况下,数据C[m]的长度Len(C[m])比b比特短,在长度Len(C)是b比特的倍数的情况下,长度Len(C[m])成为b比特。
(步骤S23:变量设定处理)
变量设定部213将n比特的数据S0和对b”比特的初始参数N连结c”比特的常数const[1]而成的数据Y作为输入来计算异或,将计算该异或而得到的数据设定为解密装置20的内部的变量S。即,变量设定部213计算S=S0 XOR(N||const[1])。
在实施方式1中,数据S0是固定值IV。这里设定的数据S0是与在图3的步骤S13中设定的数据S0相同的数据。解密装置20的内部的变量S是解密装置20的内存22中存储的变量。
(步骤S24:函数计算处理)
函数计算部214针对i=1,...,m-1的各整数i,按照升序执行以下的处理A’~处理C’。然后,函数计算部214执行处理D’~处理E’。
(处理A’)
函数计算部214将变量S和密钥K作为输入来计算块加密的加密函数E,将计算该块加密的加密函数E而得到的数据设定为变量S,由此对变量S进行更新。这里,密钥K事前在加密装置10与解密装置20之间共享。
即,函数计算部214计算S=EK(S)。
(处理B’)
函数计算部214将从在处理A’中更新后的变量S中提取出的b比特和数据C[i]作为输入来计算异或,计算数据M[i]。这里,函数计算部214提取在处理A’中更新后的变量S的高位b比特,将提取出的数据和数据C[i]作为输入来计算异或。
即,函数计算部214计算M[i]=C[i]XOR msb[b](S)。
(处理C’)
函数计算部214将在处理A’中更新后的变量S和对数据M[i]附加c比特的比特串而成的数据X[i]作为输入来计算异或,将计算该异或而得到的数据设定为变量S,由此对变量S进行更新。这里,函数计算部214使用在数据M[i]的后面附加c比特0而成的数据X[i]。
即,函数计算部214计算S=S XOR(M[i]||0c)。
(处理D’)
函数计算部214将从在处理C’中更新后的变量S的开头提取出的长度Len(C[m])比特和数据C[m]作为输入来计算异或,计算数据M[m]。
即,函数计算部214计算M[m]=C[m]XOR msb[Len(C[m])](S)。
(处理E’)
函数计算部214在处理D’中生成的数据M[m]的长度Len(M[m])比b比特短的情况下,在数据M[m]的后面附加1,进而在后面附加0的比特串,生成数据M*[m],以使长度Len(M[m])成为b比特。另一方面,在长度Len(M[m])为b比特的情况下,将数据M[m]作为数据M*[m]进行处理。
然后,函数计算部214将在处理C’中更新后的变量S和对数据M*[m]附加c比特的比特串而成的数据X[m]作为输入来计算异或,将计算该异或而得到的数据设定为变量S,由此对变量S进行更新。这里,函数计算部214使用在数据M*[m]的后面附加c比特0而成的数据X[m]。
即,函数计算部214计算S=S XOR(M*[m]||0c)。
(步骤S25:认证码生成处理)
认证码生成部215在密文C的长度是b比特的倍数的情况下,将在步骤S24中计算出的变量S和常数const[2]作为输入来计算异或,将计算该异或而得到的数据设定为变量S,由此对变量S进行更新。这里,认证码生成部215将变量S和在表现c比特的常数const[2]的比特串的前面附加b比特0而成的数据作为输入来计算异或。即,认证码生成部215计算S=SXOR(0b||str[c](const[2]))。
另一方面,认证码生成部215在密文C的长度不是b比特的倍数的情况下,将在步骤S24中计算出的变量S和常数const[3]作为输入来计算异或,将计算该异或而得到的数据设定为变量S,由此对变量S进行更新。这里,认证码生成部215将变量S和在表现c比特的常数const[3]的比特串的前面附加b比特0而成的数据作为输入来计算异或。即,认证码生成部215计算S=S XOR(0b||str[c](const[3]))。
认证码生成部215将更新后的变量S作为输入来计算加密函数E,将计算该加密函数E而得到的数据设定为变量S,由此对变量S进行更新。即,认证码生成部215计算S=EK(S)。
然后,认证码生成部215从更新后的变量S中提取t比特作为认证码T’。这里,认证码生成部215从变量S中提取高位t比特,生成认证码T’。即,认证码生成部215计算T’=msb[t](S)。
(步骤S26:消息生成处理)
消息生成部216连结在步骤S24中计算出的与i=1,...,m的各整数i有关的数据M[i]。密文生成部116从连结后的数据中仅提取高位的密文C的长度Len(C)比特,生成对密文C进行解密而成的消息M。
即,密文生成部116计算M=msb[Len(C)](M[1]||...||M[m-1]||M[m])。
(步骤S27:输出处理)
当在步骤S21中受理的认证码T和在步骤S25中计算出的认证码T’一致的情况下,输出部217输出在步骤S26中生成的消息M。具体而言,输出部217经由通信接口24向显示装置等发送消息M。
另一方面,当在步骤S21中受理的认证码T和在步骤S25中计算出的认证码T’不一致的情况下,输出部217输出表示认证码T和认证码T’不一致的消息。
***实施方式1的效果***
如上所述,实施方式1的加密装置10和解密装置20不使用块加密的解密函数,就能够由块加密的加密函数E和异或XOR构成认证加密算法。此外,作为内部变量的变量S的大小为n比特。因此,能够使安装大小与认证加密算法JAMBU相同,并且使内部变量的大小小于认证加密算法JAMBU。
***其他结构***
<变形例1>
在实施方式1中,加密装置10和解密装置20的各功能结构要素的功能通过软件实现。但是,作为变形例1,加密装置10和解密装置20的各功能结构要素的功能也可以通过硬件实现。关于该变形例1,对与实施方式1不同之处进行说明。
参照图7对变形例1的加密装置10的结构进行说明。
在各功能结构要素的功能通过硬件实现的情况下,加密装置10具有电子电路15以代替处理器11、内存12和存储器13。电子电路15是实现加密装置10的各部的功能以及内存12和存储器13的功能的专用电子电路。
参照图8对变形例1的解密装置20的结构进行说明。
在各功能结构要素的功能通过硬件实现的情况下,解密装置20具有电子电路25以代替处理器21、内存22和存储器23。电子电路25是实现解密装置20的各部的功能以及内存22和存储器23的功能的专用电子电路。
假设电子电路15、25为单一电路、复合电路、程序化的处理器、并行程序化的处理器、逻辑IC、GA(Gate Array:门阵列)、ASIC(Application Specific Integrated Circuit:面向特定用途的集成电路)、FPGA(Field-Programmable Gate Array:现场可编程门阵列)。
可以利用1个电子电路15实现加密装置10的各部的功能,也可以使多个电子电路15分散实现加密装置10的各部的功能。同样,可以利用1个电子电路25实现解密装置20的各部的功能,也可以使多个电子电路25分散实现解密装置20的各部的功能。
<变形例2>
作为变形例2,也可以一部分功能通过硬件实现,其他功能通过软件实现。即,也可以是,加密装置10的各功能结构要素中的一部分功能通过硬件实现,其他功能通过软件实现。同样,关于解密装置20,也可以是,各功能结构要素中的一部分功能通过硬件实现,其他功能通过软件实现。
将处理器11、21、内存12、22、存储器13、23和电子电路15、25称作处理电路。即,加密装置10和解密装置20的各部的功能通过处理电路实现。
实施方式2
在实施方式2中,具有公开数据A这点与实施方式1不同。在实施方式2中,对该不同之处进行说明,省略相同之处的说明。
***变量和记法的说明***
整数b’和整数c’满足c’=n-b’的关系。
const[4]和const[5]是不同的值。此外,const[4]和const[5]是与const[1]不同的值。
***结构的说明***
参照图9对实施方式2的加密装置10的结构进行说明。
关于加密装置10,作为功能结构要素,具有事前计算部118这点与图1所示的加密装置10不同。与其他功能结构要素同样,事前计算部118通过软件或硬件实现。
参照图10对实施方式2的解密装置20的结构进行说明。
关于解密装置20,作为功能结构要素,具有事前计算部218这点与图2所示的解密装置20不同。与其他功能结构要素同样,事前计算部218通过软件或硬件实现。
***动作的说明***
参照图11~图12对实施方式2的加密装置10和解密装置20的动作进行说明。
实施方式2的加密装置10的动作相当于实施方式2的加密方法。此外,实施方式2的加密装置10的动作相当于实施方式2的加密程序的处理。
实施方式2的解密装置20的动作相当于实施方式2的解密方法。此外,实施方式2的解密装置20的动作相当于实施方式2的解密程序的处理。
参照图11和图12对实施方式2的加密装置10和解密装置20的动作进行说明。
加密装置10在执行了图11所示的处理后,执行图3所示的处理。具体而言,加密装置10将在图11的处理E”中计算出的变量S设为图3的步骤S13中的数据S0,执行图3所示的处理。
同样,解密装置20在执行了图11所示的处理后,执行图5所示的处理。具体而言,解密装置20将在图11的处理E”中计算出的变量S设为图5的步骤S23中的数据S0,执行图5所示的处理。
在以下的说明中,对加密装置10执行图11所示的处理的情况进行说明。在解密装置20执行图11所示的处理的情况下,将受理部111、分割部112、事前计算部118和通信接口14改写成受理部211、分割部212、事前计算部218和通信接口24即可。
(步骤S31:受理处理)
受理部111受理公开数据A的输入。
具体而言,受理部111经由通信接口14接收由利用者对输入装置进行操作而输入的公开数据A。受理部111也可以从外部的服务器等取得公开数据A。
(步骤S32:分割处理)
分割部112判定在步骤S31中受理的公开数据A的长度Len(A)是否是b’比特的倍数。在长度Len(A)不是b’比特的倍数的情况下,在公开数据A的后面附加1,进而在后面附加0的比特串,生成数据A*,以使长度Len(A)成为b’比特的倍数。另一方面,在长度Len(A)是b’比特的倍数的情况下,将公开数据A作为数据A*进行处理。
分割部112按照每b’比特对在步骤S32中生成的数据A*进行分割,生成b’比特的数据A[1],...,数据A[a]。“a”是1以上的整数。
(步骤S33:变量设定处理)
变量设定部113将n比特的固定数据IV设定为加密装置10的内部的变量S。固定数据IV是低位c’比特与const[1]、const[2]、const[3]、const[4]和const[5]不同的数据。
(步骤S34:事前计算处理)
事前计算部118针对i=1,...,a-1的各整数i,按照升序执行以下的处理A”~处理B”。然后,执行处理C”~处理E”。
(处理A”)
事前计算部118将变量S和对数据A[i]附加c’比特的比特串而成的数据X*[i]作为输入来计算异或,将计算该异或而得到的数据设定为变量S,由此对变量S进行更新。这里,事前计算部118使用在数据A[i]的后面附加c’比特0而成的数据X*[i]。
即,事前计算部118计算S=S XOR(A[i]||0c’)。
(处理B”)
事前计算部118将在处理A”中更新后的变量S和密钥K作为输入来计算加密函数E,将计算该加密函数E而得到的数据设定为变量S,由此对变量S进行更新。
即,事前计算部118计算S=EK(S)。
(处理C”)
事前计算部118将变量S和对数据A[a]附加c’比特的比特串而成的数据X*[a]作为输入来计算异或,将计算该异或而得到的数据设定为变量S,由此对变量S进行更新。这里,事前计算部118使用在数据A[a]的后面附加c’比特0而成的数据X*[a]。
即,事前计算部118计算S=S XOR(A[a]||0c’)。
(处理D”)
事前计算部118在公开数据A的长度是b’比特的倍数的情况下,将在处理B”中计算出的变量S和常数const[4]作为输入来计算异或,将计算该异或而得到的数据设定为变量S,由此对变量S进行更新。这里,事前计算部118将变量S和在表现c’比特的常数const[4]的比特串的前面附加b’比特0而成的数据作为输入来计算异或。即,事前计算部118计算S=SXOR(0b’||str[c’](const[4]))。
另一方面,事前计算部118在公开数据A的长度不是b’比特的倍数的情况下,将在处理B”中计算出的变量S和常数const[5]作为输入来计算异或,将计算该异或而得到的数据设定为变量S,由此对变量S进行更新。这里,事前计算部118将变量S和在表现c’比特的常数const[5]的比特串的前面附加b’比特0而成的数据作为输入来计算异或。即,事前计算部118计算S=S XOR(0b’||str[c’](const[5]))。
(处理E”)
事前计算部118将在处理D”中更新后的变量S作为输入来计算加密函数E,将计算该加密函数E而得到的数据设定为变量S,由此对变量S进行更新。即,事前计算部118计算S=EK(S)。
***实施方式2的效果***
如上所述,实施方式2的加密装置10和解密装置20在具有公开数据A的情况下,也不使用块加密的解密函数,就能够由块加密的加密函数E和异或XOR构成认证加密算法。此外,作为内部变量的变量S的大小为n比特。因此,能够使安装大小与认证加密算法JAMBU相同,并且使内部变量的大小小于认证加密算法JAMBU。
对固定数据IV、const[1]、const[2]、const[3]、const[4]和const[5]的例子进行说明。例如,固定数据IV=0n、const[1]=3、const[2]=1、const[3]=2、const[4]=1、const[5]=2。该情况下,整数c’≧3且整数c”≧3即可。
整数c的值考虑安全性来决定。在实施方式1、2中说明的认证加密算法在加密函数Enc中调出的块加密的加密函数E的次数超过2n/2次、或解密函数Dec中验证失败时调出的块加密的加密函数E的次数超过2c之前,能够确保安全性。在调出的块加密的加密函数E的次数超过这些次数的情况下,为了确保安全性,需要更换密钥K。
例如,在将解密函数Dec中验证失败时调出的块加密的加密函数E的次数限制为216的情况下,整数c的最小值成为16。
标号说明
10:加密装置;11:处理器;12:内存;13:存储器;14:通信接口;15:电子电路;111:受理部;112:分割部;113:变量设定部;114:函数计算部;115:认证码生成部;116:密文生成部;117:输出部;118:事前计算部;20:解密装置;21:处理器;22:内存;23:存储器;24:通信接口;25:电子电路;211:受理部;212:分割部;213:变量设定部;214:函数计算部;215:认证码生成部;216:消息生成部;217:输出部;218:事前计算部。
Claims (13)
1.一种加密装置,该加密装置具有:
分割部,其按照每b比特对消息M进行分割,生成数据M[1],...,数据M[m];
变量设定部,其将n=b+c比特的数据设定为变量S;
函数计算部,其针对i=1,...,m的各整数i,按照升序,将所述变量S作为输入来计算块加密的加密函数E,利用计算该块加密的加密函数E而得到的数据对所述变量S进行更新,将更新后的所述变量S和对数据M[i]附加c比特0的比特串而成的数据X[i]作为输入来计算异或,利用计算该异或而得到的数据对所述变量S进行更新,从更新后的所述变量S中提取b比特,生成数据C[i];
密文生成部,其连结与i=1,...,m的各整数i有关的所述数据C[i],生成所述消息M的密文C;以及
认证码生成部,其根据由所述函数计算部最后更新的所述变量S生成1以上的整数t比特的认证码T,
所述认证码生成部在所述消息M的长度是b比特的倍数的情况下,将所述变量S和常数const[2]作为输入来计算异或,利用计算该异或而得到的数据对所述变量S进行更新,在所述消息M的长度不是b比特的倍数的情况下,将所述变量S和与所述常数const[2]不同的常数const[3]作为输入来计算异或,利用计算该异或而得到的数据对所述变量S进行更新,将更新后的所述变量S作为输入来计算所述加密函数E,利用计算该加密函数E而得到的数据对所述变量S进行更新,从更新后的所述变量S中提取t比特,生成所述认证码T。
2.根据权利要求1所述的加密装置,其中,
所述变量设定部将n比特的数据S0和对初始参数N连结常数const[1]而成的数据Y作为输入来计算异或,将计算该异或而得到的数据设定为所述变量S。
3.根据权利要求2所述的加密装置,其中,
所述分割部按照每b’比特对公开数据A进行分割,生成数据A[1],...,数据A[a],
所述变量设定部将n比特的固定数据IV设定为所述变量S,
所述加密装置还具有事前计算部,该事前计算部针对i=1,...,a的各整数i,按照升序,将所述变量S和对数据A[i]附加c’=n-b’比特的比特串而成的数据X*[i]作为输入来计算异或,利用计算该异或而得到的数据对变量S进行更新,将更新后的所述变量S作为输入来计算所述加密函数E,利用计算该加密函数E而得到的数据对所述变量S进行更新,
所述变量设定部将由所述事前计算部更新后的所述变量S设为所述数据S0。
4.根据权利要求1~3中的任意一项所述的加密装置,其中,
所述数据X[i]是在所述数据M[i]的低位附加c比特的比特串而成的,
所述数据C[i]是提取所述变量S的高位b比特而生成的。
5.一种解密装置,该解密装置具有:
分割部,其按照每b比特对密文C进行分割,生成数据C[1],...,数据C[m];
变量设定部,其将n=b+c比特的数据设定为变量S;
函数计算部,其针对i=1,...,m的各整数i,按照升序,将所述变量S作为输入来计算块加密的加密函数E,利用计算该块加密的加密函数E而得到的数据对所述变量S进行更新,将从更新后的所述变量S中提取出的b比特和数据C[i]作为输入来计算异或,计算数据M[i],将更新后的所述变量S和对所述数据M[i]附加c比特0的比特串而成的数据X[i]作为输入来计算异或,利用计算该异或而得到的数据对所述变量S进行更新;
消息生成部,其针对i=1,...,m的各整数i,连结所述数据M[i],生成对所述密文C进行解密而成的消息M;以及
认证码生成部,其根据由所述函数计算部最后更新的所述变量S生成1以上的整数t比特的认证码T’,
所述认证码生成部在所述密文C的长度是b比特的倍数的情况下,将所述变量S和常数const[2]作为输入来计算异或,利用计算该异或而得到的数据对所述变量S进行更新,在所述消息M的长度不是b比特的倍数的情况下,将所述变量S和与所述常数const[2]不同的常数const[3]作为输入来计算异或,利用计算该异或而得到的数据对所述变量S进行更新,将更新后的所述变量S作为输入来计算所述加密函数E,利用计算该加密函数E而得到的数据对所述变量S进行更新,从更新后的所述变量S中提取t比特,生成所述认证码T’。
6.根据权利要求5所述的解密装置,其中,
所述变量设定部将n比特的数据S0和对初始参数N连结常数const[1]而成的数据Y作为输入来计算异或,设定为所述变量S。
7.根据权利要求6所述的解密装置,其中,
所述分割部按照每b’比特对公开数据A进行分割,生成数据A[1],...,数据A[a],
所述变量设定部将n比特的固定数据IV设定为所述变量S,
所述解密装置还具有事前计算部,该事前计算部针对i=1,...,a的各整数i,按照升序,将所述变量S和对数据A[i]附加c’=n-b’比特的比特串而成的数据X*[i]作为输入来计算异或,利用计算该异或而得到的数据对变量S进行更新,将更新后的所述变量S作为输入来计算所述加密函数E,利用计算该加密函数E而得到的数据对所述变量S进行更新,
所述变量设定部将由所述事前计算部更新后的所述变量S设为所述数据S0。
8.根据权利要求5~7中的任意一项所述的解密装置,其中,
所述数据X[i]是在所述数据M[i]的低位附加c比特的比特串而成的,
所述数据C[i]是提取所述变量S的高位b比特而生成的。
9.根据权利要求5~8中的任意一项所述的解密装置,其中,
所述认证码生成部判定所述认证码T’和与所述消息M对应的认证码T是否一致。
10.一种加密方法,其中,
按照每b比特对消息M进行分割,生成数据M[1],...,数据M[m],
进行将n=b+c比特的数据设定为变量S的变量设定,
针对i=1,...,m的各整数i,按照升序,将所述变量S作为输入来计算块加密的加密函数E,利用计算该块加密的加密函数E而得到的数据对所述变量S进行更新,将更新后的所述变量S和对数据M[i]附加c比特0的比特串而成的数据X[i]作为输入来计算异或,利用计算该异或而得到的数据对所述变量S进行更新,从更新后的所述变量S中提取b比特,生成数据C[i],
连结与i=1,...,m的各整数i有关的所述数据C[i],生成所述消息M的密文C,
在所述消息M的长度是b比特的倍数的情况下,将最后更新的所述变量S和常数const[2]作为输入来计算异或,利用计算该异或而得到的数据对所述变量S进行更新,在所述消息M的长度不是b比特的倍数的情况下,将最后更新的所述变量S和与所述常数const[2]不同的常数const[3]作为输入来计算异或,利用计算该异或而得到的数据对所述变量S进行更新,将更新后的所述变量S作为输入来计算所述加密函数E,利用计算该加密函数E而得到的数据对所述变量S进行更新,从更新后的所述变量S中提取1以上的整数t比特,生成认证码T。
11.一种解密方法,其中,
按照每b比特对密文C进行分割,生成数据C[1],...,数据C[m],
将n=b+c比特的数据设定为变量S,
针对i=1,...,m的各整数i,按照升序,将所述变量S作为输入来计算块加密的加密函数E,利用计算该块加密的加密函数E而得到的数据对所述变量S进行更新,将从更新后的所述变量S中提取出的b比特和数据C[i]作为输入来计算异或,计算数据M[i],将更新后的所述变量S和对所述数据M[i]附加c比特0的比特串而成的数据X[i]作为输入来计算异或,利用计算该异或而得到的数据对所述变量S进行更新,
针对i=1,...,m的各整数i,连结所述数据M[i],生成对所述密文C进行解密而成的消息M,
在所述密文C的长度是b比特的倍数的情况下,将最后更新的所述变量S和常数const[2]作为输入来计算异或,利用计算该异或而得到的数据对所述变量S进行更新,在所述消息M的长度不是b比特的倍数的情况下,将最后更新的所述变量S和与所述常数const[2]不同的常数const[3]作为输入来计算异或,利用计算该异或而得到的数据对所述变量S进行更新,将更新后的所述变量S作为输入来计算所述加密函数E,利用计算该加密函数E而得到的数据对所述变量S进行更新,从更新后的所述变量S中提取t比特,生成1以上的整数t比特的认证码T’。
12.一种存储有加密程序的计算机能读取的存储介质,该加密程序使计算机执行以下处理:
分割处理,按照每b比特对消息M进行分割,生成数据M[1],...,数据M[m];
变量设定处理,将n=b+c比特的数据设定为变量S;
函数计算处理,针对i=1,...,m的各整数i,按照升序,将所述变量S作为输入来计算块加密的加密函数E,利用计算该块加密的加密函数E而得到的数据对所述变量S进行更新,将更新后的所述变量S和对数据M[i]附加c比特0的比特串而成的数据X[i]作为输入来计算异或,利用计算该异或而得到的数据对所述变量S进行更新,从更新后的所述变量S中提取b比特,生成数据C[i];
密文生成处理,连结与i=1,...,m的各整数i有关的所述数据C[i],生成所述消息M的密文C;以及
认证码生成处理,根据通过所述函数计算处理最后更新的所述变量S生成1以上的整数t比特的认证码T,
在所述认证码生成处理中,在所述消息M的长度是b比特的倍数的情况下,将所述变量S和常数const[2]作为输入来计算异或,利用计算该异或而得到的数据对所述变量S进行更新,在所述消息M的长度不是b比特的倍数的情况下,将所述变量S和与所述常数const[2]不同的常数const[3]作为输入来计算异或,利用计算该异或而得到的数据对所述变量S进行更新,将更新后的所述变量S作为输入来计算所述加密函数E,利用计算该加密函数E而得到的数据对所述变量S进行更新,从更新后的所述变量S中提取t比特,生成所述认证码T。
13.一种存储有解密程序的计算机能读取的存储介质,该解密程序使计算机执行以下处理:
分割处理,按照每b比特对密文C进行分割,生成数据C[1],...,数据C[m];
变量设定处理,将n=b+c比特的数据设定为变量S;
函数计算处理,针对i=1,...,m的各整数i,按照升序,将所述变量S作为输入来计算块加密的加密函数E,利用计算该块加密的加密函数E而得到的数据对所述变量S进行更新,将从更新后的所述变量S中提取出的b比特和数据C[i]作为输入来计算异或,计算数据M[i],将更新后的所述变量S和对所述数据M[i]附加c比特0的比特串而成的数据X[i]作为输入来计算异或,利用计算该异或而得到的数据对所述变量S进行更新;
消息生成处理,针对i=1,...,m的各整数i,连结所述数据M[i],生成对所述密文C进行解密而成的消息M;以及
认证码生成处理,根据通过所述函数计算处理最后更新的所述变量S生成1以上的整数t比特的认证码T’,
在所述认证码生成处理中,在所述密文C的长度是b比特的倍数的情况下,将所述变量S和常数const[2]作为输入来计算异或,利用计算该异或而得到的数据对所述变量S进行更新,在所述消息M的长度不是b比特的倍数的情况下,将所述变量S和与所述常数const[2]不同的常数const[3]作为输入来计算异或,利用计算该异或而得到的数据对所述变量S进行更新,将更新后的所述变量S作为输入来计算所述加密函数E,利用计算该加密函数E而得到的数据对所述变量S进行更新,从更新后的所述变量S中提取t比特,生成所述认证码T’。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2017/031639 WO2019043921A1 (ja) | 2017-09-01 | 2017-09-01 | 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN111052670A CN111052670A (zh) | 2020-04-21 |
| CN111052670B true CN111052670B (zh) | 2024-02-09 |
Family
ID=65527314
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201780094168.5A Active CN111052670B (zh) | 2017-09-01 | 2017-09-01 | 加密装置、解密装置、加密方法、解密方法和计算机能读取的存储介质 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US11438137B2 (zh) |
| EP (1) | EP3661115B1 (zh) |
| JP (1) | JP6735926B2 (zh) |
| CN (1) | CN111052670B (zh) |
| WO (1) | WO2019043921A1 (zh) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2019043921A1 (ja) * | 2017-09-01 | 2019-03-07 | 三菱電機株式会社 | 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム |
| CN112468993B (zh) * | 2020-09-25 | 2023-07-04 | 中信科智联科技有限公司 | 消息发送方法、接收方法、装置及设备 |
| DE112021007029B4 (de) * | 2021-04-09 | 2024-11-28 | Mitsubishi Electric Corporation | Verschlüsselungseinrichtung, entschlüsselungseinrichtung, verschlüsselungsverfahren, verschlüsselungsprogramm, entschlüsselungsverfahren, und entschlüsselungsprogramm |
| US20240235811A1 (en) * | 2021-05-12 | 2024-07-11 | Nec Corporation | Authenticated encryption apparatus, authenticated decryption apparatus, authenticated encryption system, method, and computer readable medium |
| CN116865949B (zh) * | 2023-08-01 | 2024-04-26 | 重庆明东新科技有限公司 | Aes密钥生成方法、改进aes的数据加密方法及汽车安防系统 |
| US12476809B2 (en) * | 2023-12-15 | 2025-11-18 | Zkrypto Inc. | Method of encryption based on identification using Pedersen commitment and method of decryption corresponding the same |
Citations (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH1039752A (ja) * | 1996-07-18 | 1998-02-13 | Nippon Telegr & Teleph Corp <Ntt> | 公開鍵暗号による通信および認証方法、ならびにそれらの装置 |
| CN1343411A (zh) * | 2000-01-14 | 2002-04-03 | 三菱电机株式会社 | 加密装置和加密方法及解密装置和解密方法以及用于记录程序的计算机可读取记录媒体 |
| JP2003333036A (ja) * | 2002-05-09 | 2003-11-21 | Nippon Telegr & Teleph Corp <Ntt> | メッセージ認証装置、メッセージ認証方法とメッセージ認証プログラムおよび該プログラムを記録したコンピュータ読取り可能な記録媒体 |
| JP2007034212A (ja) * | 2005-07-29 | 2007-02-08 | Nippon Telegr & Teleph Corp <Ntt> | ブロック暗号装置、ブロック復号装置、それらの方法及びプログラム |
| WO2008105343A1 (ja) * | 2007-02-28 | 2008-09-04 | Nec Corporation | メッセージ認証装置 |
| JP2008301152A (ja) * | 2007-05-31 | 2008-12-11 | Sony Corp | 復号装置および方法、並びにプログラム |
| JP2009005163A (ja) * | 2007-06-22 | 2009-01-08 | Nippon Telegr & Teleph Corp <Ntt> | メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、プログラム、および記録媒体 |
| JP2009188794A (ja) * | 2008-02-07 | 2009-08-20 | Nippon Telegr & Teleph Corp <Ntt> | メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、プログラム、および記録媒体 |
| CN101741560A (zh) * | 2008-11-14 | 2010-06-16 | 北京石油化工学院 | 基于整数非线性映射的散列函数构造方法 |
| WO2011155039A1 (ja) * | 2010-06-10 | 2011-12-15 | 三菱電機株式会社 | メッセージ認証コード演算装置、メッセージ認証コード演算方法およびメッセージ認証コード演算プログラム |
| WO2015186829A1 (ja) * | 2014-06-05 | 2015-12-10 | Kddi株式会社 | 送信ノード、受信ノード、通信ネットワークシステム、メッセージ作成方法およびコンピュータプログラム |
| JP2016157053A (ja) * | 2015-02-26 | 2016-09-01 | 日本電信電話株式会社 | 暗号化システム、暗号化装置、復号装置、暗号化方法 |
| JP2016157055A (ja) * | 2015-02-26 | 2016-09-01 | 日本電信電話株式会社 | 暗号化システム、認証システム、暗号化装置、復号装置、認証子生成装置、検証装置、暗号化方法、認証方法 |
Family Cites Families (81)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| AUPO323496A0 (en) * | 1996-10-25 | 1996-11-21 | Monash University | Digital message encryption and authentication |
| US6570989B1 (en) * | 1998-04-27 | 2003-05-27 | Matsushita Electric Industrial Co., Ltd. | Cryptographic processing apparatus, cryptographic processing method, and storage medium storing cryptographic processing program for realizing high-speed cryptographic processing without impairing security |
| US6832316B1 (en) * | 1999-12-22 | 2004-12-14 | Intertrust Technologies, Corp. | Systems and methods for protecting data secrecy and integrity |
| US7046802B2 (en) * | 2000-10-12 | 2006-05-16 | Rogaway Phillip W | Method and apparatus for facilitating efficient authenticated encryption |
| FR2826811B1 (fr) * | 2001-06-27 | 2003-11-07 | France Telecom | Procede d'authentification cryptographique |
| US7200227B2 (en) * | 2001-07-30 | 2007-04-03 | Phillip Rogaway | Method and apparatus for facilitating efficient authenticated encryption |
| GB2374260B (en) * | 2001-10-12 | 2003-08-13 | F Secure Oyj | Data encryption |
| US20060195402A1 (en) * | 2002-02-27 | 2006-08-31 | Imagineer Software, Inc. | Secure data transmission using undiscoverable or black data |
| US7305084B2 (en) * | 2002-07-24 | 2007-12-04 | Qualcomm Incorporated | Fast encryption and authentication for data processing systems |
| JP4553565B2 (ja) * | 2002-08-26 | 2010-09-29 | パナソニック株式会社 | 電子バリューの認証方式と認証システムと装置 |
| JP2004126323A (ja) * | 2002-10-04 | 2004-04-22 | Sony Corp | ブロック暗号方法、ブロック暗号回路、暗号装置、ブロック復号方法、ブロック復号回路および復号装置 |
| US7657757B2 (en) * | 2003-04-30 | 2010-02-02 | Freescale Semiconductor, Inc. | Semiconductor device and method utilizing variable mode control with block ciphers |
| JP2004363739A (ja) * | 2003-06-03 | 2004-12-24 | Hitachi Ltd | 改竄検知可能な、共通鍵暗号の暗号化装置または復号化装置 |
| JP2006039206A (ja) | 2004-07-27 | 2006-02-09 | Canon Inc | 暗号化装置および復号化装置 |
| US7418100B2 (en) * | 2004-10-20 | 2008-08-26 | Cisco Technology, Inc. | Enciphering method |
| WO2006130991A1 (en) * | 2005-06-10 | 2006-12-14 | Davies Traverse A | Method of and system for encryption and authentication |
| US8509427B2 (en) * | 2005-08-01 | 2013-08-13 | Eric Myron Smith | Hybrid mode cryptographic method and system with message authentication |
| JP4735644B2 (ja) | 2005-11-04 | 2011-07-27 | 日本電気株式会社 | メッセージ認証装置、メッセージ認証方法、メッセージ認証プログラムとその記録媒体 |
| US8121284B2 (en) | 2006-03-14 | 2012-02-21 | Nec Corporation | Information processing system, information processing method, and information processing program |
| US7565539B2 (en) * | 2006-07-03 | 2009-07-21 | Viasat Inc. | Method and apparatus for secure communications |
| JP5182091B2 (ja) * | 2006-08-10 | 2013-04-10 | 日本電気株式会社 | 調整機能付きブロック暗号装置と方法とプログラム |
| US8185744B2 (en) * | 2006-09-08 | 2012-05-22 | Certicom Corp. | Aggregate signature schemes |
| GB2443244A (en) * | 2006-10-05 | 2008-04-30 | Hewlett Packard Development Co | Authenticated Encryption Method and Apparatus |
| US8090098B2 (en) * | 2006-11-13 | 2012-01-03 | Electronics And Telecommunications Research Institute | Method of generating message authentication code using stream cipher and authentication/encryption and authentication/decryption methods using stream cipher |
| US20080172562A1 (en) * | 2007-01-12 | 2008-07-17 | Christian Cachin | Encryption and authentication of data and for decryption and verification of authenticity of data |
| US8131998B2 (en) * | 2007-03-05 | 2012-03-06 | George Mason Intellectual Properties, Inc. | Transparent authentication of continuous data streams |
| US9209967B2 (en) * | 2007-03-12 | 2015-12-08 | Exelis, Inc. | Precalculated encryption key |
| TWI341096B (en) * | 2007-04-03 | 2011-04-21 | Ind Tech Res Inst | Method and system for calculating crc |
| KR101520617B1 (ko) * | 2007-04-17 | 2015-05-15 | 삼성전자주식회사 | 메시지의 무결성 유지를 위한 메시지 암호화 방법 및 장치,메시지의 무결성 유지를 위한 메시지 복호화 방법 및 장치 |
| US7827408B1 (en) * | 2007-07-10 | 2010-11-02 | The United States Of America As Represented By The Director Of The National Security Agency | Device for and method of authenticated cryptography |
| GB2457670B (en) * | 2008-02-20 | 2012-01-04 | Hewlett Packard Development Co | Data transfer device |
| JP5156540B2 (ja) * | 2008-08-22 | 2013-03-06 | 株式会社日立製作所 | ハッシュ値生成装置 |
| JPWO2010024003A1 (ja) * | 2008-08-29 | 2012-01-26 | 日本電気株式会社 | 倍ブロック長ブロック暗号化装置、復号装置、暗号化方法及び復号方法、及びそのプログラム |
| US8582771B2 (en) * | 2008-09-10 | 2013-11-12 | Lg Electronics Inc. | Method for selectively encrypting control signal |
| US8788830B2 (en) * | 2008-10-02 | 2014-07-22 | Ricoh Co., Ltd. | Method and apparatus for logging based identification |
| US8218759B2 (en) * | 2009-04-17 | 2012-07-10 | Oracle America, Inc. | System and method for encrypting data |
| WO2010132895A1 (en) * | 2009-05-15 | 2010-11-18 | Eric Myron Smith | System for encrypting and decrypting a plaintext message with authentication |
| US20100303229A1 (en) * | 2009-05-27 | 2010-12-02 | Unruh Gregory | Modified counter mode encryption |
| US8577024B2 (en) * | 2009-07-28 | 2013-11-05 | Vixs Systems, Inc | Concealing plain text in scrambled blocks |
| EP2290872B1 (en) * | 2009-08-27 | 2014-06-18 | Nxp B.V. | Device for generating a message authentication code for authenticating a message |
| WO2011068996A1 (en) * | 2009-12-04 | 2011-06-09 | Cryptography Research, Inc. | Verifiable, leak-resistant encryption and decryption |
| CA2697687C (en) * | 2010-03-24 | 2014-02-18 | Diversinet Corp. | Method and system for secure communication using hash-based message authentication codes |
| US20110255689A1 (en) * | 2010-04-15 | 2011-10-20 | Lsi Corporation | Multiple-mode cryptographic module usable with memory controllers |
| EP2442483A3 (en) * | 2010-10-15 | 2012-08-15 | Certicom Corp. | Elliptic curve Pinstov Vanstone signature scheme with authenticated message recovery |
| WO2012049630A1 (en) * | 2010-10-15 | 2012-04-19 | Certicom Corp. | Authenticated encryption for digital signatures with message recovery |
| US20140317407A1 (en) * | 2011-10-31 | 2014-10-23 | Nec Corporation | Incremental mac tag generation device, method, and program, and message authentication device |
| US9166793B2 (en) * | 2011-12-05 | 2015-10-20 | University Of Washington | Efficient authentication for mobile and pervasive computing |
| EP2798773B1 (en) * | 2011-12-28 | 2020-08-26 | BlackBerry Limited | Generating digital signatures |
| WO2014058971A1 (en) * | 2012-10-09 | 2014-04-17 | Huawei Technologies Co., Ltd. | Authenticated encryption support in iso/iec 23009-4 |
| WO2014084886A1 (en) * | 2012-11-29 | 2014-06-05 | Blackberry Limited | Authenticated encryption method using working blocks |
| US8971528B2 (en) * | 2013-01-29 | 2015-03-03 | Certicom Corp. | Modified elliptic curve signature algorithm for message recovery |
| US9787475B2 (en) * | 2013-03-04 | 2017-10-10 | Nec Corporation | Device, method, and program for message authentication tag generation |
| RU2647685C2 (ru) | 2013-08-02 | 2018-03-16 | Нек Корпорейшн | Устройство аутентифицированного шифрования, способ аутентифицированного шифрования и программа для аутентифицированного шифрования |
| CN104683093B (zh) * | 2013-11-27 | 2018-01-26 | 财团法人资讯工业策进会 | 兼具完整性验证的区块加密装置、区块加密方法、区块解密装置及区块解密方法 |
| US9496897B1 (en) * | 2014-03-31 | 2016-11-15 | EMC IP Holding Company LLC | Methods and apparatus for generating authenticated error correcting codes |
| US9537657B1 (en) * | 2014-05-29 | 2017-01-03 | Amazon Technologies, Inc. | Multipart authenticated encryption |
| EP2966802A1 (en) * | 2014-07-07 | 2016-01-13 | Thomson Licensing | Method for ciphering and deciphering digital data, based on an identity, in a multi-authorities context |
| US9438416B2 (en) * | 2014-07-18 | 2016-09-06 | Harris Corporation | Customizable encryption algorithm based on a sponge construction with authenticated and non-authenticated modes of operation |
| US10623176B2 (en) * | 2014-08-20 | 2020-04-14 | Nec Corporation | Authentication encryption method, authentication decryption method, and information-processing device |
| JP6557727B2 (ja) * | 2014-12-03 | 2019-08-07 | ナグラビジョン エス アー | メッセージを暗号化/復号化するためのブロック暗号方法及びこの方法を実施するための暗号装置 |
| JP6289680B2 (ja) * | 2015-01-19 | 2018-03-07 | 三菱電機株式会社 | パケット送信装置、パケット受信装置、パケット送信プログラムおよびパケット受信プログラム |
| US9880960B1 (en) * | 2015-06-19 | 2018-01-30 | Amazon Technologies, Inc. | Configurable sponge function engine |
| US10313129B2 (en) * | 2015-06-26 | 2019-06-04 | Intel Corporation | Keyed-hash message authentication code processors, methods, systems, and instructions |
| US9773432B2 (en) * | 2015-06-27 | 2017-09-26 | Intel Corporation | Lightweight cryptographic engine |
| US10326589B2 (en) * | 2015-09-28 | 2019-06-18 | Mitsubishi Electric Corporation | Message authenticator generating apparatus, message authenticator generating method, and computer readable recording medium |
| US9929863B2 (en) * | 2015-10-30 | 2018-03-27 | Palo Alto Research Center Incorporated | System and method for efficient and semantically secure symmetric encryption over channels with limited bandwidth |
| JP6260064B2 (ja) * | 2016-03-14 | 2018-01-17 | Kddi株式会社 | 通信ネットワークシステム及び車両 |
| US10140458B2 (en) * | 2016-04-07 | 2018-11-27 | Intel Corporation | Parallelized authentication encoding |
| US11153068B2 (en) * | 2016-05-23 | 2021-10-19 | Sony Corporation | Encryption device, encryption method, decryption device and decryption method |
| US10552620B2 (en) * | 2016-06-20 | 2020-02-04 | Intel Corporation | Technologies for trusted I/O protection of I/O data with header information |
| US9800403B1 (en) * | 2016-09-30 | 2017-10-24 | International Business Machines Corporation | Message processing using extended output functions |
| US9680653B1 (en) * | 2016-10-13 | 2017-06-13 | International Business Machines Corporation | Cipher message with authentication instruction |
| JP6693574B2 (ja) * | 2016-12-15 | 2020-05-13 | 日本電気株式会社 | メッセージ認証システム、装置及びメッセージ検証方法 |
| US11309994B2 (en) * | 2016-12-21 | 2022-04-19 | Infinera Corporation | Highly parallel and scalable cyclic redundancy check |
| US20180253559A1 (en) * | 2017-03-01 | 2018-09-06 | Intel Corporation | Secured lossless data compression using encrypted headers |
| US11010485B1 (en) * | 2017-03-02 | 2021-05-18 | Apple Inc. | Cloud messaging system |
| US10484352B2 (en) * | 2017-03-31 | 2019-11-19 | Microsoft Technology Licensing, Llc | Data operations using a proxy encryption key |
| US10560269B2 (en) * | 2017-04-05 | 2020-02-11 | Trellisware Technologies, Inc. | Methods and systems for improved authenticated encryption in counter-based cipher systems |
| US10268832B1 (en) * | 2017-06-26 | 2019-04-23 | Amazon Technologies, Inc. | Streaming authenticated encryption |
| WO2019043921A1 (ja) * | 2017-09-01 | 2019-03-07 | 三菱電機株式会社 | 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム |
| US11218291B2 (en) * | 2018-02-26 | 2022-01-04 | Stmicroelectronics (Rousset) Sas | Method and circuit for performing a substitution operation |
-
2017
- 2017-09-01 WO PCT/JP2017/031639 patent/WO2019043921A1/ja not_active Ceased
- 2017-09-01 US US16/630,741 patent/US11438137B2/en active Active
- 2017-09-01 JP JP2019538890A patent/JP6735926B2/ja active Active
- 2017-09-01 CN CN201780094168.5A patent/CN111052670B/zh active Active
- 2017-09-01 EP EP17923165.9A patent/EP3661115B1/en active Active
Patent Citations (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH1039752A (ja) * | 1996-07-18 | 1998-02-13 | Nippon Telegr & Teleph Corp <Ntt> | 公開鍵暗号による通信および認証方法、ならびにそれらの装置 |
| CN1343411A (zh) * | 2000-01-14 | 2002-04-03 | 三菱电机株式会社 | 加密装置和加密方法及解密装置和解密方法以及用于记录程序的计算机可读取记录媒体 |
| JP2003333036A (ja) * | 2002-05-09 | 2003-11-21 | Nippon Telegr & Teleph Corp <Ntt> | メッセージ認証装置、メッセージ認証方法とメッセージ認証プログラムおよび該プログラムを記録したコンピュータ読取り可能な記録媒体 |
| JP2007034212A (ja) * | 2005-07-29 | 2007-02-08 | Nippon Telegr & Teleph Corp <Ntt> | ブロック暗号装置、ブロック復号装置、それらの方法及びプログラム |
| WO2008105343A1 (ja) * | 2007-02-28 | 2008-09-04 | Nec Corporation | メッセージ認証装置 |
| JP2008301152A (ja) * | 2007-05-31 | 2008-12-11 | Sony Corp | 復号装置および方法、並びにプログラム |
| JP2009005163A (ja) * | 2007-06-22 | 2009-01-08 | Nippon Telegr & Teleph Corp <Ntt> | メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、プログラム、および記録媒体 |
| JP2009188794A (ja) * | 2008-02-07 | 2009-08-20 | Nippon Telegr & Teleph Corp <Ntt> | メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、プログラム、および記録媒体 |
| CN101741560A (zh) * | 2008-11-14 | 2010-06-16 | 北京石油化工学院 | 基于整数非线性映射的散列函数构造方法 |
| WO2011155039A1 (ja) * | 2010-06-10 | 2011-12-15 | 三菱電機株式会社 | メッセージ認証コード演算装置、メッセージ認証コード演算方法およびメッセージ認証コード演算プログラム |
| WO2015186829A1 (ja) * | 2014-06-05 | 2015-12-10 | Kddi株式会社 | 送信ノード、受信ノード、通信ネットワークシステム、メッセージ作成方法およびコンピュータプログラム |
| JP2016157053A (ja) * | 2015-02-26 | 2016-09-01 | 日本電信電話株式会社 | 暗号化システム、暗号化装置、復号装置、暗号化方法 |
| JP2016157055A (ja) * | 2015-02-26 | 2016-09-01 | 日本電信電話株式会社 | 暗号化システム、認証システム、暗号化装置、復号装置、認証子生成装置、検証装置、暗号化方法、認証方法 |
Non-Patent Citations (6)
| Title |
|---|
| ASCON V1.2 submission to the CAESAR competition;Dobraunig;《https://competitions.cr.yp.to/ceaser-submissions.html》;全文 * |
| Can we use the sponge construct to efficiently authenticate any cipher;ROSE,E;《https://crypto.stackexchange.com/questions/33396/can-we-use-the-sponge-construct-to-efficiently-authenticate-any-cipher》;全文 * |
| How to Incorporate Associated Data in Sponge-Based Authenticated Encryption;Yu Sasaki;《Lecture notes in Computer Science》;第353-370页 * |
| Is a strong block cipher suable as s strong sponge function;MEACHAM,J;《https://crypto.stackexchange.com/questions/20718/is-a-strong-block-cipher-usable-as-a-strong-sponge-function》;全文 * |
| Sequential Hashing with Minimum Padding;Shoichi Hirose;《信学技报》;第116卷(第116期);第27-32页 * |
| The JAMBU ligthweight authentication encryption mode;WU,H HUANG,T;《https://competitions.cr.yp.to/ceaser-submission.html》;第1-19页 * |
Also Published As
| Publication number | Publication date |
|---|---|
| EP3661115A1 (en) | 2020-06-03 |
| JP6735926B2 (ja) | 2020-08-05 |
| JPWO2019043921A1 (ja) | 2020-04-16 |
| EP3661115B1 (en) | 2024-01-17 |
| US20200186328A1 (en) | 2020-06-11 |
| EP3661115A4 (en) | 2020-06-03 |
| CN111052670A (zh) | 2020-04-21 |
| US11438137B2 (en) | 2022-09-06 |
| WO2019043921A1 (ja) | 2019-03-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN111052670B (zh) | 加密装置、解密装置、加密方法、解密方法和计算机能读取的存储介质 | |
| CN111656733B (zh) | 密钥消息验证码的白盒计算 | |
| CN108141352B (zh) | 密码设备、方法、装置和计算机可读介质和编码设备、方法、装置和计算机可读介质 | |
| CN112640359B (zh) | 消息认证装置、消息认证方法及计算机可读取的存储介质 | |
| CN112740618A (zh) | 签名装置、验证装置、签名系统、签名方法、签名程序、验证方法以及验证程序 | |
| US11876888B2 (en) | Encryption device, decryption device, encryption method, decryption method, and computer readable medium | |
| CN114826562B (zh) | 一种数据加密方法、装置、电子设备及存储介质 | |
| JP6881111B2 (ja) | 暗号化データ生成装置、復号データ生成装置、追加データ付き認証暗号システム、その方法、及びプログラム | |
| US12328397B2 (en) | Memory processing apparatus, memory verification apparatus, memory updating apparatus, memory protection system, method, and computer readable medium | |
| JP6033504B1 (ja) | メッセージ認証子生成装置 | |
| JP7573788B1 (ja) | 認証暗号装置、認証暗号方法及び認証暗号プログラム | |
| US11177936B2 (en) | Message authenticator generation apparatus | |
| JP6830867B2 (ja) | 追加データ付き認証暗号システム、復号装置、追加データ付き認証暗号方法、およびプログラム | |
| JP6732698B2 (ja) | 追加データ付き認証暗号システム、暗号化装置、復号装置、追加データ付き認証暗号方法、およびプログラム | |
| JP5268413B2 (ja) | 開示制限処理装置及びデータ処理システム及びプログラム | |
| JP6723958B2 (ja) | 暗号化データ生成装置、復号データ生成装置、追加データ付き認証暗号システム、その方法、及びプログラム | |
| JP6830868B2 (ja) | 追加データ付き認証暗号システム、復号装置、追加データ付き認証暗号方法、およびプログラム | |
| JP2019015919A (ja) | 暗号化データ生成装置、復号データ生成装置、追加データ付き認証暗号システム、その方法、及びプログラム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |