CN115039374A - 加密装置、解密装置、加密方法、解密方法、加密程序和解密程序 - Google Patents
加密装置、解密装置、加密方法、解密方法、加密程序和解密程序 Download PDFInfo
- Publication number
- CN115039374A CN115039374A CN202080094939.2A CN202080094939A CN115039374A CN 115039374 A CN115039374 A CN 115039374A CN 202080094939 A CN202080094939 A CN 202080094939A CN 115039374 A CN115039374 A CN 115039374A
- Authority
- CN
- China
- Prior art keywords
- value
- bit
- encryption
- integer
- bits
- 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.)
- Pending
Links
Images
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
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
分割部(22)按照每b比特从开头起对明文M进行分割,生成b比特的值M1,...,Mm‑1和1比特以上且b比特以下的值Mm。S1计算部(241)将b比特的值H1设为值M0,针对i=1,...,m的各整数i,按照升序,将值Mi‑1作为加密函数E的输入来计算值S1(i),根据值S1(i)和值Mi计算值Ci。S2计算部(242)将r比特的值H2设为值S2(0),针对i=1,...,m的各整数i,按照升序,根据值S1(i)和值S2(i‑1)计算值S2(i)。密文生成部(243)根据与i=1,...,m的各整数i有关的值Ci生成密文C。认证符生成部(25)使用值S1(m)和值S2(m)生成b+r比特的认证符T。
Description
技术领域
本发明涉及使用块加密的认证加密算法。
背景技术
认证加密算法是实现隐匿功能和篡改检测功能的加密算法。在使用认证加密算法时,能够在两者之间隐匿消息后进行通信,并且,接收者能够确认发送的消息是否被篡改。
认证加密算法具有加密函数Enc和解密函数Dec这2个算法。
加密函数Enc是将秘密密钥K、随机数N、公开数据A和明文M作为输入而输出密文C和篡改检测用的认证符T的函数。另外,随机数N按照每次加密而使用不同的值,只要不变更秘密密钥K,就不使用相同的值。
解密函数Dec将秘密密钥K、随机数N、公开数据A、密文C和篡改检测用的认证符T’作为输入,在输入值未被篡改的情况下输出明文M,在被篡改的情况下输出表示被伪造的值。此后,将表示被伪造的值表示为⊥。
设发送者Alice和接收者Bob使用认证加密算法进行通信。秘密密钥K事先由发送者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。
另外,公开数据A是可以公开的值。也可以没有公开数据A。此外,发送者Alice按照每次加密使用不同的值作为随机数N,不使用相同的值。
关于认证加密的安全性,存在非专利文献1中规定的隐匿性和完整性。
隐匿性是定义了不会从密文泄露明文的安全性。在与隐匿性有关的安全性游戏中,攻击者访问认证加密方式的加密函数Enc和输出随机数的Oracle中的任意一方,识别访问了哪一方。将攻击者正确识别的概率称作识别概率。识别概率越低,则隐匿性的安全性越高。
完整性是定义了无法篡改公开数据或密文的安全性。在与完整性有关的安全性游戏中,攻击者访问认证加密方式的加密函数Enc和解密函数Dec,对解密函数Dec输入伪造的公开数据、密文和认证符,以篡改检查合格为目标。将该篡改检查合格的概率称作伪造概率。伪造概率越低,则完整性的安全性越高。
作为认证加密算法的结构方法,存在使用Tweakable块加密的方法。
Tweakable块加密由加密函数E和解密函数D构成。加密函数E是将密钥K、Tweak值TW和b比特的明文块M作为输入而输出b比特的密文块C的函数。将其写作C=E(K,TW,M)。Tweakable块加密的解密函数D是将密钥K、Tweak值TW和b比特的密文块C作为输入而输出b比特的明文块M的函数。将其写作M=D(K,TW,C)。
将明文块M和密文块C的大小b称作块大小。在固定密钥K和Tweak值TW时,Tweakable块加密的加密函数E和解密函数D成为b比特的置换函数。通常,使用秘密的值作为密钥K,使用被公开的值作为Tweak值TW。将Tweak值的集合设为TWset,将密钥的集合设为Kset。即,从TWset中选择Tweak值TW,从Kset中选择密钥K。
在非专利文献2、3中记载有具体的Tweakable块加密的算法。
Tweakable块加密的TWset、Kset和块大小b的具体值的例子记载于非专利文献2。非专利文献2中记载的SKINNY-128-384是块大小为128比特、Tweak值的长度和密钥长度的合计为384比特的Tweakable块加密。因此,在将Tweak值的长度设为256比特的情况下,块大小b=128,Kset={0,1}128,TWset={0,1}256。
在使用Tweakable块加密构成认证加密的情况下,加密函数Enc使用Tweakable块加密的加密函数E构成,解密函数Dec使用Tweakable块加密的加密函数E或解密函数D构成。
在使用Tweakable块加密设计认证加密的情况下,在证明认证加密的安全性时,如非专利文献4中定义的那样,将Tweakable块加密置换成Tweakable随机置换。
作为此前提出的使用Tweakable块加密的认证加密中安全性最高的认证加密,存在非专利文献4记载的ΘCB、非专利文献5记载的PFB和非专利文献6记载的Romulus。
关于隐匿性,针对这些方式的识别概率为0。关于完整性,相对于针对认证加密的解密函数Dec的访问次数qD,伪造概率为qD/2b。
这些认证加密在qD成为2b之前,伪造概率小于1。因此,在qD成为2b之前,能够确保认证加密的安全性。比特安全性是对概率成为1的情况下的qD应用log2而得到的值。因此,这些认证加密的比特安全性为b比特(=log22b)。
现有技术文献
非专利文献
非专利文献1:Tetsu Iwata,Keisuke Ohashi,and KazuhikoMinematsu.Breaking and Repairing GCM Security Proofs.CRYPTO 2012,Proceedings.pages 31-49.Lecture Notes in Computer Science volume7417.Springer.2012.
非专利文献2:Christof Beierle,Jeremy Jean,Stefan Kolbl,Gregor Leander,Amir Moradi,Thomas Peyrin,Yu Sasaki,Pascal Sasdrich,and Siang Meng Sim.TheSKINNY Family of Block Ciphers and Its Low-Latency Variant MANTIS.CRYPTO2016,Proceedings,Part II.pages 123-153.Lecture Notes in Computer Sciencevolume 9815.Springer.2016.
非专利文献3:Jeremy Jean,Ivica Nikolic,and Thomas Peyrin.Tweaks andKeys for Block Ciphers:The TWEAKEY Framework.ASIACRYPT 2014,Proceedings,PartII.pages 274-288.Lecture Notes in Computer Science volume 8874.Springer.2014.
非专利文献4:Ted Krovetz and Phillip Rogaway.The Software Performanceof Authenticated-Encryption Modes.FSE 2011.pages 306-327.Lecture Notes inComputer Science volume 6733.Springer.2011.
非专利文献5:Yusuke Naito and Takeshi Sugawara.LightweightAuthenticated Encryption Mode of Operation for Tweakable Block Ciphers.IACRTrans.Cryptogr.Hardw.Embed.Syst.2020volume 1.pages 66-94.
非专利文献6:Tetsu Iwata,Mustafa Khairallah,Kazuhiko Minematsu,andThomas Peyrin.Duel of the Titans:The Romulus and Remus Families ofLightweight AEAD Algorithms.IACR Cryptology ePrint Archive 2019/992.
发明内容
发明要解决的课题
非专利文献4~6中的任意一方记载的使用Tweakable块加密的认证加密也是在解密函数Dec侧对b比特的值进行更新的结构。但是,通过利用b比特的值的冲突,认证加密的完整性被破坏。b比特的值的冲突是指,相对于针对认证加密的2个不同的输入,b比特的值相同。
b比特的值如2b那样。因此,通过进行2b次的解密函数Dec的运算,能够破坏完整性。即,现有技术的结构的比特安全性的理论极限是b比特。
在认证加密中,为了确保安全性,在识别概率或伪造概率成为1之前对认证加密的密钥进行更新。另一方面,密钥更新花费劳力时间和成本,因此,优选1个密钥的寿命长即更新频度少的认证加密。识别概率和伪造概率小即比特安全性高的认证加密更能够减少密钥更新的频度。
本发明的目的在于,能够实现比特安全性高的认证加密。
用于解决课题的手段
本发明的加密装置具有:取得部,其取得明文M;分割部,其按照每b比特从开头起对由所述取得部取得的所述明文M进行分割,生成b比特的值M1,...,Mm-1和1比特以上且b比特以下的值Mm,其中,所述b比特是块加密的加密函数E的块大小;S1计算部,其将b比特的值H1设为值M0,针对i=1,...,m的各整数i,按照升序,将值Mi-1作为所述加密函数E的输入来计算值S1(i),根据所述值S1(i)和值Mi计算值Ci;S2计算部,其将r比特的值H2设为值S2(0),针对i=1,...,m的各整数i,按照升序,根据由所述S1计算部计算出的值S1(i)和值S2(i-1)计算值S2(i);密文生成部,其根据与i=1,...,m的各整数i有关的值Ci生成密文C;以及认证符生成部,其使用值S1(m)和值S2(m)生成b+r比特的认证符T。
发明效果
在本发明中,使用加密函数E对b比特的值S1进行更新,并且,使用加密函数E的输出对r比特的值进行更新。由此,能够成为在解密时对b+r比特的值进行更新的结构,能够实现b+r比特的比特安全性。
附图说明
图1是实施方式1的加密装置10的结构图。
图2是实施方式1的解密装置30的结构图。
图3是示出实施方式1的加密装置10的整体动作的流程图。
图4是示出实施方式1的公开数据处理的流程图。
图5是实施方式1的公开数据处理的说明图。
图6是示出实施方式1的加密处理的流程图。
图7是实施方式1的加密处理的说明图。
图8是示出实施方式1的认证符生成处理的流程图。
图9是实施方式1的认证符生成处理的说明图。
图10是示出实施方式1的解密装置30的整体动作的流程图。
图11是示出实施方式1的解密处理的流程图。
图12是实施方式1的解密处理的说明图。
图13是变形例1的认证符生成处理的说明图。
图14是变形例2的加密装置10的结构图。
图15是变形例2的解密装置30的结构图。
具体实施方式
实施方式1
***结构的说明***
参照图1对实施方式1的加密装置10的结构进行说明。
加密装置10具有处理器11、内存12、存储器13和通信接口14这样的硬件。处理器11经由信号线与其他硬件连接,对这些其他硬件进行控制。
加密装置10具有取得部21、分割部22、公开数据处理部23、加密部24、认证符生成部25和输出部26作为功能结构要素。公开数据处理部23具有H1计算部231和H2计算部232。加密部24具有S1计算部241、S2计算部242和密文生成部243。加密装置10的各功能结构要素的功能通过软件实现。
在存储器13中存储有实现加密装置10的各功能结构要素的功能的程序。该程序由处理器11读入到内存12,由处理器11来执行。由此,实现加密装置10的各功能结构要素的功能。
参照图2对实施方式1的解密装置30的结构进行说明。
解密装置30具有处理器31、内存32、存储器33和通信接口34这样的硬件。处理器31经由信号线与其他硬件连接,对这些其他硬件进行控制。
解密装置30具有取得部41、分割部42、公开数据处理部43、解密部44、认证符生成部45和输出部46作为功能结构要素。公开数据处理部43具有H1计算部431和H2计算部432。解密部44具有S1计算部441、S2计算部442和明文生成部443。解密装置30的各功能结构要素的功能通过软件实现。
在存储器33中存储有实现解密装置30的各功能结构要素的功能的程序。该程序由处理器31读入到内存32,由处理器31来执行。由此,实现解密装置30的各功能结构要素的功能。
处理器11、31是进行处理的IC(Integrated Circuit:集成电路)。作为具体例,处理器11、31是CPU(Central Processing Unit:中央处理单元)、DSP(Digital SignalProcessor:数字信号处理器)、GPU(Graphics Processing Unit:图形处理单元)。
内存12、32是暂时存储数据的存储装置。作为具体例,内存12、32是SRAM(StaticRandom Access Memory:静态随机存取内存)、DRAM(Dynamic Random Access Memory:动态随机存取内存)。
存储器13、33是保管数据的存储装置。作为具体例,存储器13、33是HDD(Hard DiskDrive:硬盘驱动器)。此外,存储器13、33也可以是SD(Secure Digital:安全数字)存储卡、CF(CompactFlash、注册商标)、NAND闪存、软盘、光盘、高密度盘、蓝光(注册商标)盘、DVD(Digital Versatile Disk:数字多功能盘)这样的移动存储介质。
通信接口14、34是用于与外部的装置进行通信的接口。作为具体例,通信接口14、34是Ethernet(注册商标)、USB(Universal Serial Bus:通用串行总线)、HDMI(注册商标、High-Definition Multimedia Interface:高清晰度多媒体接口)的端口。
***动作的说明***
参照图3~图12对实施方式1的加密装置10和解密装置20的动作进行说明。
实施方式1的加密装置10的动作步骤相当于实施方式1的加密方法。此外,实现实施方式1的加密装置10的动作的程序相当于实施方式1的加密程序。
实施方式1的解密装置20的动作步骤相当于实施方式1的解密方法。此外,实现实施方式1的解密装置20的动作的程序相当于实施方式1的解密程序。
**以下的说明中的定义**
将随机数N的值的集合设为Nset。
将明文M、密文C和公开数据A的最大块数设为L。块数是按照每b比特对明文M、密文C或公开数据A的比特串进行分割而出现的b比特块的数量。b比特是加密装置10和解密装置20使用的Tweakable块加密中的块大小。
即,在将明文M、密文C和公开数据A的最大比特长度设为L*时,L是L*/b以上的最小的整数。
将const设为固定值,设为Nset中包含的某个值。const可以是Nset的任意的值。将const1设为b比特的固定值,将const2设为r比特的固定值。const1可以是b比特的任意的值,const2可以是r比特的任意的值。r是1以上的整数。
将每个比特的异或的运算符表示为xor。针对比特串X,将X的比特长度表示为|X|。
将pad设为如下函数:将b比特以下的比特长度的输入值作为输入,对位于输入值之后的值的比特进行比特结合而生成b比特的值,输出生成的b比特的值。
例如,被输入了b-1比特以下的值X的情况下的pad的输出pad(X)是在值X之后对1进行比特结合,然后以比特长度成为b的方式对0的比特串进行比特结合而得到的值。此外,例如,被输入了b比特的值Y的情况下的pad的输出pad(Y)是Y。
在将i设为b以下的整数时,trunc[i]是将b比特的值作为输入而输出被输入的b比特中的事先决定的i比特的值的函数。
例如,trunc[i]是输出被输入的b比特中的最上位i比特的函数。此外,例如,trunc[i]是输出被输入的b比特中的最下位i比特的函数。
将加密装置10和解密装置30使用的Tweakable块加密的Tweak的集合设为TW=Nset×{1,2,...,L}×{1,2,...,16}。1,2,...,L是不同的整数值。1,2,...,L是不同的整数值即可,不限于1,2,...,L的整数值。同样,1,2,...,16是不同的整数值。1,2,...,16是不同的整数值即可,不限于1,2,...,16的整数值。
在TW是t比特的空间{0,1}t的情况下,Nset×{1,2,...,L}×{1,2,...,16}只要能够一对一地分配给t比特的空间即可,其方法是任意的。例如,针对整数n,在Nset={0,1}n的情况下,如果使用t比特的开头n比特作为Nset,使用接下来的log2L比特作为{1,2,...,L},使用最后的4比特作为{1,2,...,16},则能够实现Tweak空间。其中,tweak长度t≥n+log2L+4。
将Tweak值TW表示为(x,y,z)。这里,x是从Nset中选择出的值。y是从{1,2,...,L}中选择出的值。z是从{1,2,...,16}中选择出的值。
**加密装置10的动作**
作为以下的说明的前提,设加密装置10和解密装置30共享密钥K。
参照图3对实施方式1的加密装置10的整体动作进行说明。
(步骤S11:取得处理)
取得部21取得公开数据A和明文M。具体而言,取得部21取得利用者操作经由通信接口14连接的输入装置而被输入的公开数据A和明文M。
另外,公开数据A可能未被输入。该情况下,取得部21仅取得明文M。
(步骤S12:分割处理)
分割部22按照每b比特从开头起对在步骤S11中取得的公开数据A进行分割,生成b比特的值A1,...,Aa-1和1比特以上且b比特以下的值Aa和。因此,在对值A1,...,Aa进行比特结合时,成为公开数据A。
此外,分割部22按照每b比特从开头起对在步骤S11中取得的明文M进行分割,生成b比特的值M1,...,Mm-1和1比特以上且b比特以下的值Mm和。因此,在对值M1,...,Mm进行比特结合时,成为明文M。
另外,在步骤S11中未取得公开数据A的情况下,分割部22仅生成值M1,...,Mm。
(步骤S13:公开数据处理)
公开数据处理部23使用在步骤S12中生成的值A1,...,Aa生成值H1和值H2。公开数据处理在后面详细叙述。
(步骤S14:加密处理)
加密部24使用在步骤S12中生成的值M1,...,Mm以及在步骤S13中生成的值H1和值H2生成值S1(m)和值S2(m)以及密文C。加密处理在后面详细叙述。
(步骤S15:认证符生成处理)
认证符生成部25使用在步骤S14中生成的值S1(m)和值S2(m)生成篡改检测用的认证符T。认证符生成处理在后面详细叙述。
(步骤S16:输出处理)
输出部26输出在步骤S14中生成的密文C和在步骤S15中生成的认证符T。具体而言,输出部26将密文C和认证符T经由通信接口14发送到解密装置30。
参照图4和图5对实施方式1的公开数据处理(图3的步骤S13)进行说明。
(步骤S131:初始设定处理)
公开数据处理部23将b比特的固定值const1设定为值H1(0)。此外,公开数据处理部23将r比特的固定值const2设定为值H2(0)。
(步骤S132:第1计算处理)
H1计算部231和H2计算部232针对i=1,...,a-1的各整数i,按照升序进行以下的(1)(2)的计算。
(1)H1计算部231将密钥K、Tweak值(const,i,1)、计算值Ai和值H1(i-1)的异或而得到的值A’i作为Tweakable块加密的加密函数E的输入来计算值H1(i)。即,H1计算部231针对i=1,...,a-1的各整数i,按照升序计算H1(i)=E(K,(const,i,1),Ai xor H1(i-1))。
(2)H2计算部232根据由H1计算部231计算出的值H1(i)和值H2(i-1)计算值H2(i)。具体而言,H2计算部232计算值H2(i-1)和使用函数trunc[r]从值H1(i)中提取出的r比特的异或,生成值H2(i)。即,H2计算部232计算H2(i)=H2(i-1)xor trunc[r](H1(i))。
(步骤S133:第2计算处理)
H1计算部231使用函数pad,根据值Aa生成b比特的值pad(Aa)。H1计算部231将密钥K、Tweak值(const,a,1)、计算值pad(Aa)和值H1(a-1)的异或而得到的值A’a作为Tweakable块加密的加密函数E的输入来计算值H1(a)。H1计算部231将值H1(a)设定为值H1。即,H1计算部231计算H1=H1(a)=E(K,(const,a,1),pad(Aa)xor H1(a-1))。
与步骤S132同样,H2计算部232计算值H2(a-1)和使用函数trunc[r]从值H1(a)中提取出的r比特的异或,生成值H2(a)。即,H2计算部232计算H2(a)=H2(a-1)xor trunc[r](H1(a))。
在图3的步骤S11中未取得公开数据A的情况下,代替图4和图5所示的处理,公开数据处理部23将固定值const1设定为值H,将固定值const2设定为值H2。
参照图6和图7对实施方式1的加密处理(图3的步骤S14)进行说明。
(步骤S141:初始设定处理)
加密部24将在图4的步骤S133中生成的b比特的值H1设定为值M0。此外,加密部24将在图4的步骤S133中生成的r比特的值H2设定为值S2(0)。
(步骤S142:变量设定处理)
加密部24根据公开数据A,对变量x设定以下的值。
在图3的步骤S11中未取得公开数据A的情况下,加密部24对变量x设定2。
在图3的步骤S11中取得公开数据A且|A|mod b=0的情况下,加密部24对变量x设定7。
在图3的步骤S11中取得公开数据A且|A|mod b≠0的情况下,加密部24对变量x设定12。
(步骤S143:第1计算处理)
S1计算部241和S2计算部242针对i=1,...,m-1的各整数i,按照升序进行以下的(1)(2)的处理。
(1)S1计算部241将密钥K、Tweak值(N,i,x)、值Mi-1作为加密函数E的输入来计算值S1(i),根据值S1(i)和值Mi计算值Ci。具体而言,S1计算部241计算值S1(i)和值Mi的异或,生成值Ci。即,S1计算部241计算S1(i)=E(K,(N,i,x),Mi-1)和Ci=S1(i)xor Mi。
(2)S2计算部242根据由S1计算部241计算出的值S1(i)和值S2(i-1)计算值S2(i)。具体而言,S2计算部242计算值S2(i-1)和使用函数trunc[r]从值S1(i)中提取出的r比特的异或,计算值S2(i)。即,S2计算部242计算S2(i)=S2(i-1)xor trunc[r](S1(i))。
(步骤S144:第2计算处理)
S1计算部241将密钥K、Tweak值(N,m,x)、值Mm-1作为加密函数E的输入来计算值S1(m),根据值S1(m)和值Mm计算值Cm。具体而言,S1计算部241计算使用函数trunc[|Mm|]从值S1(m)中提取出的|Mm|比特和值Mm的异或,生成值Cm。即,S1计算部241计算S1(m)=E(K,(N,m,x),Mm-1)和Cm=trunc[|Mm|](S1(m))xor Mm。
与步骤S143同样,S2计算部242计算值S2(m-1)和使用函数trunc[r]从值S1(m)中提取出的r比特的异或,计算值S2(m)。即,S2计算部242计算S2(m)=S2(m-1)xor trunc[r](S1(m))。
(步骤S145:第3计算处理)
S1计算部241使用函数pad,根据在步骤S144中计算出的值Cm生成b比特的值pad(Cm)。S1计算部241计算在步骤S144中计算出的值S1(m)和值pad(Cm)的异或,对值S1(m)进行更新。即,S1计算部241计算S1(m)=S1(m)xor pad(Cm)。
(步骤S146:密文生成处理)
密文生成部243对与i=1,...,m的各整数i有关的值Ci进行比特结合,生成密文C。即,密文生成部243计算C=C1||C2||…Cm。另外,||表示比特结合。
参照图8和图9对实施方式1的认证符生成处理(图3的步骤S15)进行说明。
(步骤S151:变量设定处理)
认证符生成部25根据公开数据A和明文M,对变量y和变量z设定以下的值。
在图3的步骤S11中未取得公开数据A且|M|mod b=0的情况下,认证符生成部25对变量y设定3,对变量z设定4。
在图3的步骤S11中未取得公开数据A且|M|mod b≠0的情况下,认证符生成部25对变量y设定5,对变量z设定6。
在图3的步骤S11中取得公开数据A且|A|mod b=0且|M|mod b=0的情况下,认证符生成部25对变量y设定8,对变量z设定9。
在图3的步骤S11中取得公开数据A且|A|mod b=0且|M|mod b≠0的情况下,认证符生成部25对变量y设定10,对变量z设定11。
在图3的步骤S11中取得公开数据A且|A|mod b≠0且|M|mod b=0的情况下,认证符生成部25对变量y设定13,对变量z设定14。
在图3的步骤S11中取得公开数据A且|A|mod b≠0且|M|mod b≠0的情况下,认证符生成部25对变量y设定15,对变量z设定16。
(步骤S152:第1计算处理)
认证符生成部25将密钥K、Tweak值(N,m,y)、在图6的步骤S145中更新后的值S1(m)作为加密函数E的输入来计算值S1(m+1)。即,认证符生成部25计算S1(m+1)=E(K,(N,m,y),S1(m))。
认证符生成部25根据值S1(m+1)和值S2(m)计算值S2(m+1)。具体而言,计算值S2(m)和使用函数trunc[r]从值S1(m+1)中提取出的r比特的异或,计算值S2(m+1)。即,认证符生成部25计算S2(m+1)=S2(m)xor trunc[r](S1(m+1))。
(步骤S153:第2计算处理)
认证符生成部25将密钥K、Tweak值(N,m,z)、在步骤S152中计算出的值S1(m+1)作为加密函数E的输入来计算S1(m+2)。即,认证符生成部25计算S1(m+2)=E(K,(N,m,z),S1(m+1))。
(步骤S154:第3计算处理)
认证符生成部25对在步骤S153中计算出的值S1(m+2)和在步骤S152中计算出的值S2(m+1)进行比特结合,生成b+r比特的认证符T。即,认证符生成部25计算T=S1(m+2)||S2(m+1)。
参照图10对实施方式1的解密装置30的整体动作进行说明。
(步骤S21:取得处理)
取得部41取得公开数据A、密文C和认证符T’。
具体而言,取得部41取得利用者操作经由通信接口34连接的输入装置而被输入的公开数据A。此外,取得部41经由通信接口34取得在图3的步骤S16中发送的密文C,并且取得在图3的步骤S16中发送的认证符T作为认证符T’。
另外,公开数据A可能未被输入。该情况下,取得部41仅取得密文C和认证符T。另外,在图3的步骤S11中未输入公开数据A的情况下,在步骤S21中也未输入公开数据A。另一方面,在图3的步骤S11中输入了公开数据A的情况下,在步骤S21中也输入公开数据A。
(步骤S22:分割处理)
分割部42按照每b比特从开头起对在步骤S21中取得的公开数据A进行分割,生成b比特的值A1,...,Aa-1和1比特以上且b比特以下的值Aa和。因此,在对值A1,...,Aa进行比特结合时,成为公开数据A。
此外,分割部42按照每b比特从开头起对在步骤S21中取得的密文C进行分割,生成b比特的值C1,...,Cm-1和1比特以上且b比特以下的值Cm和。因此,在对值C1,...,Cm进行比特结合时,成为明文C。
另外,在步骤S21中未取得公开数据A的情况下,分割部42仅生成值C1,...,Cm。
(步骤S23:公开数据处理)
与图3的步骤S13同样,公开数据处理部43使用在步骤S22中生成的值A1,...,Aa生成值H1和值H2。即,公开数据处理部43通过参照图4和图5说明的方法生成值H1和值H2。
(步骤S24:解密处理)
解密部44使用在步骤S22中生成的值C1,...,Cm以及在步骤S23中生成的值H1和值H2生成值S1(m)和值S2(m)以及明文M。解密处理在后面详细叙述。
(步骤S25:认证符生成处理)
与图3的步骤S15同样,认证符生成部45使用在步骤S24中生成的值S1(m)和值S2(m)生成篡改检测用的认证符T。即,认证符生成部45通过参照图8和图9说明的方法生成认证符T。
(步骤S26:篡改判定处理)
认证符生成部25判定在步骤S25中生成的认证符T和在步骤S21中取得的认证符T’是否一致。
认证符生成部25在一致的情况下,判定为未被篡改,使处理进入步骤S27。另一方面,认证符生成部25在不一致的情况下,判定为被篡改,使处理进入步骤S28。
(步骤S27:第1输出处理)
输出部26输出在步骤S24中生成的明文M。具体而言,输出部26将明文M经由通信接口14发送到利用者的终端等。
(步骤S28:第2输出处理)
输出部26输出表示被伪造的值⊥。
参照图11和图12对实施方式1的解密处理(图10的步骤S24)进行说明。
步骤S241~步骤S242的处理与图6的步骤S141~步骤S142的处理相同。此外,步骤S245的处理与图6的步骤S145的处理相同。
(步骤S243:第1计算处理)
S1计算部441和S2计算部442针对i=1,...,m-1的各整数i,按照升序进行以下的(1)(2)的处理。
(1)与图6的步骤S143同样,S1计算部441将密钥K、Tweak值(N,i,x)、值Mi-1作为加密函数E的输入来计算值S1(i)。此外,S1计算部441根据值S1(i)和值Ci计算值Mi。具体而言,S1计算部441计算值S1(i)和值Ci的异或,生成值Mi。即,S1计算部241计算S1(i)=E(K,(N,i,x),Mi-1)和Mi=S1(i)xor Ci。
(2)与图6的步骤S143同样,S2计算部442根据由S1计算部441计算出的值S1(i)和值S2(i-1)计算值S2(i)。具体而言,S2计算部442计算值S2(i-1)和使用函数trunc[r]从值S1(i)中提取出的r比特的异或,计算值S2(i)。即,S2计算部442计算S2(i)=S2(i-1)xor trunc[r](S1(i))。
(步骤S244:第2计算处理)
与图6的步骤S144同样,S1计算部441将密钥K、Tweak值(N,m,x)、值Mm-1作为加密函数E的输入来计算值S1(m)。此外,S1计算部441根据值S1(m)和值Cm计算值Mm。具体而言,S1计算部441计算使用函数trunc[|Mm|]从值S1(m)中提取出的|Cm|比特和值Cm的异或,生成值Mm。即,S1计算部441计算S1(m)=E(K,(N,m,x),Mm-1)和Mm=trunc[|Cm|](S1(m))xor Cm。
与图6的步骤S144同样,S2计算部442计算值S2(m-1)和使用函数trunc[r]从值S1(m)中提取出的r比特的异或,计算值S2(m)。即,S2计算部242计算S2(m)=S2(m-1)xor trunc[r](S1(m))。
(步骤S246:明文生成处理)
明文生成部443对与i=1,...,m的各整数i有关的值Mi进行比特结合,生成明文M。即,明文生成部443计算M=M1||M2||…Mm。
***实施方式1的效果***
如上所述,实施方式1的加密装置10使用加密函数E对b比特的值S1进行更新,并且,使用加密函数E的输出对r比特的值进行更新。由此,解密装置30成为在解密时对b+r比特的值进行更新的结构。其结果是,能够实现b+r比特的比特安全性。
***其他结构***
<变形例1>
在实施方式1中,在图8的步骤S153中仅计算值S1(m+2)。但是,也可以在值S1(m+2)的基础上还计算值S2(m+2)。具体而言,如图13所示,认证符生成部25计算值S2(m+1)和使用函数trunc[r]从值S1(m+2)中提取出的r比特的异或,计算值S2(m+2)。即,认证符生成部25计算S2(m+2)=S2(m+1)xor trunc[r](S1(m+2))。
该情况下,在图8的步骤S154中,认证符生成部25对值S1(m+2)和值S2(m+2)进行比特结合,生成认证符T。即,认证符生成部25计算T=S1(m+2)||S2(m+2)。
<变形例2>
在实施方式1中,各功能结构要素通过软件实现。但是,作为变形例2,各功能结构要素也可以通过硬件实现。关于该变形例2,对与实施方式1不同之处进行说明。
参照图14对变形例2的加密装置10的结构进行说明。
在各功能结构要素通过硬件实现的情况下,加密装置10代替处理器11、内存12和存储器13而具有电子电路15。电子电路15是实现各功能结构要素、内存12和存储器13的功能的专用电路。
参照图15对变形例2的解密装置30的结构进行说明。
在各功能结构要素通过硬件实现的情况下,加密装置10代替处理器31、内存32和存储器33而具有电子电路35。电子电路35是实现各功能结构要素、内存32和存储器33的功能的专用电路。
作为电子电路15、35,假设单一电路、复合电路、程序化的处理器、并行程序化的处理器、逻辑IC、GA(Gate Array:门阵列)、ASIC(Application Specific IntegratedCircuit:专用集成电路)、FPGA(Field-Programmable Gate Array:现场可编程门阵列)。
可以通过1个电子电路15、35实现各功能结构要素,也可以使多个电子电路15、35分散实现各功能结构要素。
<变形例3>
作为变形例3,也可以是一部分的各功能结构要素通过硬件实现,其他的各功能结构要素通过软件实现。
将处理器11、31、内存12、32、存储器13、33和电子电路15、35称作处理电路。即,各功能结构要素的功能通过处理电路实现。
标号说明
10:加密装置;11:处理器;12:内存;13:存储器;14:通信接口;15:电子电路;21:取得部;22:分割部;23:公开数据处理部;231:H1计算部;232:H2计算部;24:加密部;241:S1计算部;242:S2计算部;243:密文生成部;25:认证符生成部;26:输出部;30:解密装置;31:处理器;32:内存;33:存储器;34:通信接口;35:电子电路;41:取得部;42:分割部;43:公开数据处理部;431:H1计算部;432:H2计算部;44:解密部;441:S1计算部;442:S2计算部;443:明文生成部;45:认证符生成部;46:输出部。
Claims (16)
1.一种加密装置,该加密装置具有:
取得部,其取得明文M;
分割部,其按照每b比特从开头起对由所述取得部取得的所述明文M进行分割,生成b比特的值M1,...,Mm-1和1比特以上且b比特以下的值Mm,其中,所述b比特是块加密的加密函数E的块大小;
S1计算部,其将b比特的值H1设为值M0,针对i=1,...,m的各整数i,按照升序,将值Mi-1作为所述加密函数E的输入来计算值S1(i),根据所述值S1(i)和值Mi计算值Ci;
S2计算部,其将r比特的值H2设为值S2(0),针对i=1,...,m的各整数i,按照升序,根据由所述S1计算部计算出的值S1(i)和值S2(i-1)计算值S2(i);
密文生成部,其根据与i=1,...,m的各整数i有关的值Ci生成密文C;以及
认证符生成部,其使用值S1(m)和值S2(m)生成b+r比特的认证符T。
2.根据权利要求1所述的加密装置,其中,
所述S2计算部计算所述值S1(i)中的r比特和所述值S2(i-1)的异或,生成所述值S2(i)。
3.根据权利要求1或2所述的加密装置,其中,
所述S1计算部针对i=1,...,m的各整数i,计算所述值S1(i)和所述值Mi的异或,生成所述值Ci,
所述密文生成部对与i=1,...,m的各整数i有关的所述值Ci进行比特结合,生成所述密文C。
4.根据权利要求1~3中的任意一项所述的加密装置,其中,
所述认证符生成部针对i=m+1,m+2的各整数i,按照升序,将值S1(i-1)作为所述加密函数E的输入来计算值S1(i),并且,针对i=m+1,m+2中的至少包含m+1的整数i,计算值S1(i)中的r比特和值S2(i-1)的异或而计算值S2(i),对值S1(m+2)和值S2(m+1)或值S2(m+2)进行比特结合,生成所述认证符T。
5.根据权利要求1~4中的任意一项所述的加密装置,其中,
所述取得部取得公开数据A,
所述分割部按照每b比特从开头起对所述公开数据A进行分割,生成b比特的值A1,...,Aa-1和1比特以上且b比特以下的值Aa,
所述加密装置还具有:
H1计算部,其将b比特的固定值const1设为值H1(0),针对i=1,...,a的各整数i,按照升序,将计算值Ai和值H1(i-1)的异或而得到的值A’i作为所述加密函数E的输入来计算值H1(i),将值H1(a)设定为所述值H1;以及
H2计算部,其将r比特的固定值const2设为值H2(0),针对i=1,...,a的各整数i,按照升序,根据由所述H1计算部计算出的值H1(i)和值H2(i-1)计算值H2(i),将值H2(a)设定为所述值H2。
6.根据权利要求1~5中的任意一项所述的加密装置,其中,
所述块加密是Tweakable块加密,
所述S1计算部针对i=1,...,m的各整数i,将分别不同的Tweak值作为所述加密函数E的输入来计算所述值S1(i)。
7.一种解密装置,该解密装置具有:
取得部,其取得密文C和认证符T’;
分割部,其按照每b比特从开头起对由所述取得部取得的所述密文C进行分割,生成b比特的值C1,...,Cm-1和1比特以上且b比特以下的值Cm,其中,所述b比特是块加密的加密函数E的块大小;
S1计算部,其将b比特的值H1设为值M0,针对i=1,...,m的各整数i,按照升序,将值Mi-1作为所述加密函数E的输入来计算值S1(i),根据所述值S1(i)和值Ci计算值Mi;
S2计算部,其将r比特的值H2设为值S2(0),针对i=1,...,m的各整数i,按照升序,根据由所述S1计算部计算出的值S1(i)和值S2(i-1)计算值S2(i);
明文生成部,其根据与i=1,...,m的各整数i有关的值Mi生成明文M;以及
认证符生成部,其使用值S1(m)和值S2(m)生成b+r比特的认证符T,判定所述认证符T和所述认证符T’是否一致。
8.根据权利要求7所述的解密装置,其中,
所述S2计算部计算所述值S1(i)中的r比特和所述值S2(i-1)的异或,生成所述值S2(i)。
9.根据权利要求7或8所述的解密装置,其中,
所述S1计算部针对i=1,...,m的各整数i,计算所述值S1(i)和所述值Ci的异或,生成所述值Mi,
所述密文生成部对与i=1,...,m的各整数i有关的所述值Mi进行比特结合,生成所述明文M。
10.根据权利要求7~9中的任意一项所述的解密装置,其中,
所述认证符生成部针对i=m+1,m+2的各整数i,按照升序,将值S1(i-1)作为所述加密函数E的输入来计算值S1(i),并且,针对i=m+1,m+2中的至少包含m+1的整数i,计算值S1(i)中的r比特和值S2(i-1)的异或而计算值S2(i),对值S1(m+2)和值S2(m+1)或值S2(m+2)进行比特结合,生成所述认证符T。
11.根据权利要求7~10中的任意一项所述的解密装置,其中,
所述取得部取得公开数据A,
所述分割部按照每b比特从开头起对所述公开数据A进行分割,生成b比特的值A1,...,Aa-1和1比特以上且b比特以下的值Aa,
所述加密装置还具有:
H1计算部,其将b比特的固定值const1设为值H1(0),针对i=1,...,a的各整数i,按照升序,将计算值Ai和值H1(i-1)的异或而得到的值A’i作为所述加密函数E的输入来计算值H1(i),将值H1(a)设定为所述值H1;以及
H2计算部,其将r比特的固定值const2设为值H2(0),针对i=1,...,a的各整数i,按照升序,根据由所述H1计算部计算出的值H1(i)和值H2(i-1)计算值H2(i),将值H2(a)设定为所述值H2。
12.根据权利要求7~10中的任意一项所述的解密装置,其中,
所述块加密是Tweakable块加密,
所述S1计算部针对i=1,...,m的各整数i,将分别不同的Tweak值作为所述加密函数E的输入来计算所述值S1(i)。
13.一种加密方法,其中,
取得部取得明文M,
分割部按照每b比特从开头起对所述明文M进行分割,生成b比特的值M1,...,Mm-1和1比特以上且b比特以下的值Mm,其中,所述b比特是块加密的加密函数E的块大小,
S1计算部将b比特的值H1设为值M0,针对i=1,...,m的各整数i,按照升序,将值Mi-1作为所述加密函数E的输入来计算值S1(i),根据所述值S1(i)和值Mi计算值Ci,
S2计算部将r比特的值H2设为值S2(0),针对i=1,...,m的各整数i,按照升序,根据值S1(i)和值S2(i-1)计算值S2(i),
密文生成部根据与i=1,...,m的各整数i有关的值Ci生成密文C,
认证符生成部使用值S1(m)和值S2(m)生成b+r比特的认证符T。
14.一种解密方法,其中,
取得部取得密文C和认证符T’,
分割部按照每b比特从开头起对所述密文C进行分割,生成b比特的值C1,...,Cm-1和1比特以上且b比特以下的值Cm,其中,所述b比特是块加密的加密函数E的块大小,
S1计算部将b比特的值H1设为值M0,针对i=1,...,m的各整数i,按照升序,将值Mi-1作为所述加密函数E的输入来计算值S1(i),根据所述值S1(i)和值Ci计算值Mi,
S2计算部将r比特的值H2设为值S2(0),针对i=1,...,m的各整数i,按照升序,根据值S1(i)和值S2(i-1)计算值S2(i),
明文生成部根据与i=1,...,m的各整数i有关的值Mi生成明文M,
认证符生成部使用值S1(m)和值S2(m)生成b+r比特的认证符T,判定所述认证符T和所述认证符T’是否一致。
15.一种加密程序,该加密程序使计算机作为加密装置发挥功能,该加密装置进行以下处理:
取得处理,取得明文M;
分割处理,按照每b比特从开头起对通过所述取得处理取得的所述明文M进行分割,生成b比特的值M1,...,Mm-1和1比特以上且b比特以下的值Mm,其中,所述b比特是块加密的加密函数E的块大小;
S1计算处理,将b比特的值H1设为值M0,针对i=1,...,m的各整数i,按照升序,将值Mi-1作为所述加密函数E的输入来计算值S1(i),根据所述值S1(i)和值Mi计算值Ci;
S2计算处理,将r比特的值H2设为值S2(0),针对i=1,...,m的各整数i,按照升序,根据通过所述S1计算处理计算出的值S1(i)和值S2(i-1)计算值S2(i);
密文生成处理,根据与i=1,...,m的各整数i有关的值Ci生成密文C;以及
认证符生成处理,使用值S1(m)和值S2(m)生成b+r比特的认证符T。
16.一种解密程序,该解密程序使计算机作为解密装置发挥功能,该解密装置进行以下处理:
取得处理,取得密文C和认证符T’;
分割处理,按照每b比特从开头起对通过所述取得处理取得的所述密文C进行分割,生成b比特的值C1,...,Cm-1和1比特以上且b比特以下的值Cm,其中,所述b比特是块加密的加密函数E的块大小;
S1计算处理,将b比特的值H1设为值M0,针对i=1,...,m的各整数i,按照升序,将值Mi-1作为所述加密函数E的输入来计算值S1(i),根据所述值S1(i)和值Ci计算值Mi;
S2计算处理,将r比特的值H2设为值S2(0),针对i=1,...,m的各整数i,按照升序,根据通过所述S1计算处理计算出的值S1(i)和值S2(i-1)计算值S2(i);
明文生成处理,根据与i=1,...,m的各整数i有关的值Mi生成明文M;以及
认证符生成处理,使用值S1(m)和值S2(m)生成b+r比特的认证符T,判定所述认证符T和所述认证符T’是否一致。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2020/004526 WO2021157003A1 (ja) | 2020-02-06 | 2020-02-06 | 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115039374A true CN115039374A (zh) | 2022-09-09 |
Family
ID=77200820
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080094939.2A Pending CN115039374A (zh) | 2020-02-06 | 2020-02-06 | 加密装置、解密装置、加密方法、解密方法、加密程序和解密程序 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11876888B2 (zh) |
EP (1) | EP4064607B1 (zh) |
JP (1) | JP7012920B2 (zh) |
CN (1) | CN115039374A (zh) |
WO (1) | WO2021157003A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023095249A1 (ja) * | 2021-11-25 | 2023-06-01 | 日本電気株式会社 | 認証暗号化装置、認証復号装置、認証暗号システム、方法及びコンピュータ可読媒体 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000286836A (ja) | 1999-03-30 | 2000-10-13 | Fujitsu Ltd | 認証装置および記録媒体 |
JP3864675B2 (ja) | 2000-03-09 | 2007-01-10 | 株式会社日立製作所 | 共通鍵暗号装置 |
JP4752239B2 (ja) | 2000-03-09 | 2011-08-17 | 株式会社日立製作所 | 共通鍵暗号方法及び装置 |
US7200227B2 (en) * | 2001-07-30 | 2007-04-03 | Phillip Rogaway | Method and apparatus for facilitating efficient authenticated encryption |
US7725719B2 (en) | 2005-11-08 | 2010-05-25 | International Business Machines Corporation | Method and system for generating ciphertext and message authentication codes utilizing shared hardware |
EP1995710A1 (en) * | 2006-03-14 | 2008-11-26 | NEC Corporation | Information processing system, information processing method, and information processing program |
JP4810289B2 (ja) | 2006-04-17 | 2011-11-09 | ルネサスエレクトロニクス株式会社 | メッセージ認証子生成装置、メッセージ認証子検証装置、及びメッセージ認証システム |
JP4758824B2 (ja) | 2006-05-23 | 2011-08-31 | 日本電信電話株式会社 | 暗号化装置、復号装置、暗号化方法、復号方法、それらの方法を用いたプログラム、および記録媒体 |
US8189770B2 (en) | 2006-08-10 | 2012-05-29 | Nec Corporation | Tweakable block encryption apparatus, method, and program |
US8577032B2 (en) | 2007-08-06 | 2013-11-05 | Nec Corporation | Common key block encryption device, common key block encryption method, and program |
KR101612518B1 (ko) * | 2009-11-26 | 2016-04-15 | 삼성전자주식회사 | 병렬 처리 가능한 암복호화기 및 그것의 암복호 방법 |
WO2011105367A1 (ja) * | 2010-02-24 | 2011-09-01 | 日本電気株式会社 | ブロック暗号化装置、ブロック復号装置、ブロック暗号化方法、ブロック復号方法及びプログラム |
JP5402832B2 (ja) | 2010-05-27 | 2014-01-29 | 株式会社Jvcケンウッド | 視点変換装置及び視点変換方法 |
JP6305642B2 (ja) * | 2015-09-28 | 2018-04-04 | 三菱電機株式会社 | メッセージ認証子生成装置、メッセージ認証子生成方法及びメッセージ認証子生成プログラム |
EP3584989B1 (en) * | 2018-06-18 | 2023-09-27 | Secure-IC SAS | Tweakable block ciphers for secure data encryption |
-
2020
- 2020-02-06 JP JP2021568934A patent/JP7012920B2/ja active Active
- 2020-02-06 EP EP20917991.0A patent/EP4064607B1/en active Active
- 2020-02-06 CN CN202080094939.2A patent/CN115039374A/zh active Pending
- 2020-02-06 WO PCT/JP2020/004526 patent/WO2021157003A1/ja unknown
-
2022
- 2022-06-15 US US17/841,080 patent/US11876888B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP4064607A1 (en) | 2022-09-28 |
JPWO2021157003A1 (zh) | 2021-08-12 |
EP4064607B1 (en) | 2023-10-18 |
US11876888B2 (en) | 2024-01-16 |
EP4064607A4 (en) | 2022-12-07 |
WO2021157003A1 (ja) | 2021-08-12 |
US20220321322A1 (en) | 2022-10-06 |
JP7012920B2 (ja) | 2022-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8300828B2 (en) | System and method for a derivation function for key per page | |
JP6735926B2 (ja) | 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム | |
US11349668B2 (en) | Encryption device and decryption device | |
CN112740618A (zh) | 签名装置、验证装置、签名系统、签名方法、签名程序、验证方法以及验证程序 | |
US11876888B2 (en) | Encryption device, decryption device, encryption method, decryption method, and computer readable medium | |
US11177936B2 (en) | Message authenticator generation apparatus | |
JP6797337B2 (ja) | メッセージ認証装置、メッセージ認証方法及びメッセージ認証プログラム | |
JP6631989B2 (ja) | 暗号化装置、制御方法、及びプログラム | |
JP6830867B2 (ja) | 追加データ付き認証暗号システム、復号装置、追加データ付き認証暗号方法、およびプログラム | |
WO2020095382A1 (ja) | 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法、認証暗号化プログラムおよび認証復号プログラム | |
JP6033504B1 (ja) | メッセージ認証子生成装置 | |
US20230388103A1 (en) | Encryption device, decryption device, encryption method, decryption method, and computer readable medium | |
WO2023053458A1 (ja) | ハッシュ値計算装置、ハッシュ値計算方法及びハッシュ値計算プログラム | |
JP6732698B2 (ja) | 追加データ付き認証暗号システム、暗号化装置、復号装置、追加データ付き認証暗号方法、およびプログラム | |
CN113853764A (zh) | 重加密装置、重加密方法、重加密程序和加密系统 |
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 |