加密装置、解密装置、加密方法、解密方法、加密程序和解密程序制造方法及图纸

技术编号:23903942 阅读:61 留言:0更新日期:2020-04-22 12:25
加密装置(10)按照每b比特对消息M进行分割,生成数据M[1],...,数据M[m]。加密装置(10)将n=b+c比特的数据S

Encryption device, decryption device, encryption method, decryption method, encryption program and decryption program

【技术实现步骤摘要】
【国外来华专利技术】加密装置、解密装置、加密方法、解密方法、加密程序和解密程序
本专利技术涉及使用块加密的认证加密算法。
技术介绍
认证加密算法是实现隐匿功能和篡改检测功能的加密算法。当使用认证加密算法时,能够在两者之间隐匿消息后进行通信,并且,接收者能够确认所发送的消息是否被篡改。认证加密算法具有加密函数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(AdvancedEncryptionStandard)等块加密的方法。块加密由加密函数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:FIPS197,AdvancedEncryptionStandard(AES).非专利文献2:NISTSpecialPublication800-38D,RecommendationforBlockCipherModesofOperation:Galois/CounterMode(GCM)andGMAC.非专利文献3:SubmittedtotheCAESARcompetition,TheJAMBULightweightAuthenticationEncryptionMode(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.一种加密装置,该加密装置具有:/n分割部,其按照每b比特对消息M进行分割,生成b比特的数据M[1],...,数据M[m];/n变量设定部,其将n=b+c比特的数据设定为变量S;/n函数计算部,其针对i=1,...,m的各整数i,按照升序,将所述变量S作为输入来计算块加密的加密函数E,利用计算该块加密的加密函数E而得到的数据对所述变量S进行更新,将更新后的所述变量S和对数据M[i]附加c比特的比特串而成的数据X[i]作为输入来计算异或,利用计算该异或而得到的数据对所述变量S进行更新,从更新后的所述变量S中提取b比特,生成数据C[i];/n密文生成部,其连结与i=1,...,m的各整数i有关的所述数据C[i],生成所述消息M的密文C;以及/n认证码生成部,其根据由所述函数计算部最后更新的所述变量S生成1以上的整数t比特的认证码T。/n

【技术特征摘要】
【国外来华专利技术】1.一种加密装置,该加密装置具有:
分割部,其按照每b比特对消息M进行分割,生成b比特的数据M[1],...,数据M[m];
变量设定部,其将n=b+c比特的数据设定为变量S;
函数计算部,其针对i=1,...,m的各整数i,按照升序,将所述变量S作为输入来计算块加密的加密函数E,利用计算该块加密的加密函数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。


2.根据权利要求1所述的加密装置,其中,
所述认证码生成部在所述消息M的长度是b比特的倍数的情况下,将所述变量S和常数const[2]作为输入来计算异或,利用计算该异或而得到的数据对所述变量S进行更新,在所述消息M的长度不是b比特的倍数的情况下,将所述变量S和与所述常数const[2]不同的常数const[3]作为输入来计算异或,利用计算该异或而得到的数据对所述变量S进行更新,将更新后的所述变量S作为输入来计算所述加密函数E,利用计算该加密函数E而得到的数据对所述变量S进行更新,从更新后的所述变量S中提取t比特,生成所述认证码T。


3.根据权利要求1或2所述的加密装置,其中,
所述变量设定部将n比特的数据S0和对初始参数N连结常数const[1]而成的数据Y作为输入来计算所述异或,将计算该异或而得到的数据设定为所述变量S。


4.根据权利要求3所述的加密装置,其中,
所述分割部按照每b’比特对公开数据A进行分割,生成b’比特的数据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。


5.根据权利要求1~4中的任意一项所述的加密装置,其中,
所述数据X[i]是在所述数据M[i]的低位附加c比特的比特串而成的,
所述数据C[i]是提取所述变量S的高位b比特而生成的。


6.一种解密装置,该解密装置具有:
分割部,其按照每b比特对密文C进行分割,生成b比特的数据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比特的比特串而成的数据X[i]作为输入来计算异或,利用计算该异或而得到的数据对所述变量S进行更新;
消息生成部,其针对i=1,...,m的各整数i,连结所述数据M[i],生成对所述密文C进行解密而成的消息M;以及
认证码生成部,其根据由所述函数计算部最后更新的所述变量S生成1以上的整数t比特的认证码T’。


7.根据权利要求6所述的解密装置,其中,
所述认证码生成部在所述密文C的长度是b比特的倍数的情况下,将所述变量S和常数const[2]作为输入来计算异或,利用计算该异或而得到的数据对所述变量S进行更新,在所述消息M的长度不是b比特的倍数的情况下,将所述变量S和与所述常数const[2]不同的常数const[3]作为输入来计算异或,利用计算该异或而得到的数据对所述变量S进行更新,将更新后的所述变量S作为输入来计算所述加密函数E,利用计算该加密函数E而得到的数据对所述变量S进行更新,从更新后的所述变量S中提取t比特,生成所述认证码T’。


8.根据权利要求6或7所述的解密装置,其中,
所述变量设定部将n比特的数据S0和对初始参数N连结常数const[1]而成的数据Y作为输入来计算所述异或,设定为所述变量S。


9.根据权利要求8所述的解密装置,其...

【专利技术属性】
技术研发人员:内藤祐介松井充铃木大辅
申请(专利权)人:三菱电机株式会社
类型:发明
国别省市:日本;JP

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1