【技术实现步骤摘要】
【国外来华专利技术】加密装置、解密装置、加密方法、解密方法、加密程序和解密程序
本专利技术涉及使用块加密的认证加密算法。
技术介绍
认证加密算法是实现隐匿功能和篡改检测功能的加密算法。当使用认证加密算法时,能够在两者之间隐匿消息后进行通信,并且,接收者能够确认所发送的消息是否被篡改。认证加密算法具有加密函数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
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。