基于矩阵的后量子加密方法及装置与流程

文档序号:18639047发布日期:2019-09-11 22:44阅读:209来源:国知局
基于矩阵的后量子加密方法及装置与流程

本发明涉及加密算法,尤其涉及基于简单矩阵的后量子加密装置。



背景技术:

密码算法是用于加密和解密的数学函数,密码算法是密码协议的基础。现行的密码算法主要包括序列密码、分组密码、散列函数等,用于保证信息的安全,提供鉴别、完整性、抗抵赖等服务。密码算法可以分为对称密码算法和非对称密码算法,对称密码在加密和解密过程中使用同一个密钥,而非对称密码在加密过程中使用公钥,在解密过程中使用私钥,所以非对称密码又被称为公钥密码。

公钥密码主要有rsa、椭圆曲线密码等,但由于它们基于大整数分解或离散对数问题,存在被量子计算机攻击的弱点。抗量子计算攻击的公钥加密算法,如格密码、多变量密码等,它们的安全性建立在npc问题上,能够抵御量子计算机和传统计算机攻击,被认为是下一代公钥密码的候选算法,可以在云计算、大数据、物联网、区块链等新一代信息技术中广泛应用。

在多变量加密算法中,如hfe、pmi+等加密算法,它们的安全性基础是求解有限域上的多元多项式困难问题,在应用时存在加密速度慢等缺点。



技术实现要素:

本发明的目的是针对上述现有技术存在的加密装置安全性能不高的缺陷,提供一种基于矩阵的后量子加密方法及装置。

本发明的后量子加密方法包括步骤:

步骤1,获取明文pi,i=1,...,49;

步骤2,将任意两个明文进行乘法运算,形成明文矩阵wij=pi×pj,i,j=1,2,...,49;

步骤3,将密钥矩阵存储阵列中的各矩阵元素chij,h=1,2,...,98,i,j=1,2,...,49与明文矩阵wij中的对应的矩阵元素进行乘法运算,并存入密钥矩阵存储阵列中对应的位置;

步骤4,将密钥向量存储阵列中各向量的元素vhi,h=1,2,...,98,i=1,2,...,49与明文中各对应元素进行乘法运算,并存入密钥向量存储阵列中各向量的对应位置vhi=vhi×pi;

步骤5,将各密钥dh,h=1,2,...,98与对应密钥矩阵存储阵列的矩阵的所有元素chij,h=1,2,...,98,i,j=1,2,...,49以及密钥向量存储阵列的向量的所有元素vhi,h=1,2,...,98,i=1,2,...,49进行加法运算,并将相加结果以向量形式dh=dh+chij+vhi,h=1,2,...,98,,i,j=1,2,...,49存储为密文。

优选的,通过有限域乘法器来进行所述乘法运算,所述乘法运算使用基于复合有限域的查找表操作。

优选的,所述加法运算使用异或逻辑门进行运算。

优选的,所述明文乘法运算与密钥向量存储阵列的乘法运算并行运行。

本发明提出的后量子加密装置,其特征在于,采用如权利要求1至4任意一项所述的后量子加密方法进行加密。

优选的,本发明的后量子加密装置具体包括:明密文管理器,用于存储所述明文和密文;明文矩阵乘法器,用于执行所述任意两个明文的乘法运算。系数矩阵乘法器,用于执行所述密钥矩阵存储阵列与明文阵列的乘法运算;系数向量乘法器,用于执行所述密钥向量存储阵列与明文的乘法运算;多项式求值运算器,用于执行所述密钥与对应密钥矩阵存储阵列的矩阵的所有元素以及密钥向量存储阵列的向量的所有元素的加法运算;中央处理器,用于控制所述明密文管理器、明文矩阵乘法器、系数矩阵乘法器、系数向量乘法器以及多项式求值运算器的运行;存储器,用于所述中央处理器控制各部件运行时的临时存储。

优选的,所述明密文管理器、明文矩阵乘法器、系数矩阵乘法器、系数向量乘法器以及多项式求值运算器均包含对应的存储器。

优选的,后量子加密装置还包括:复合域乘法阵列,所述复合域乘法阵列包含有限域乘法器和乘法调度器,所述乘法调度器接收所述明文矩阵乘法器、系数矩阵乘法器、系数向量乘法器的控制指令对所述有限域乘法器进行调度执行乘法运算;复合域加法阵列,所述复合域加法阵列包括有限域加法器和加法调度器,所述加法调度器接收所述多项式求值运算器的指令对所述有限域加法器进行调度执行加法运算。

优选的,存储器包括ram和寄存器。所述存储器的存取单元为双字节,所述寄存器的存储空间是双字节。

本发明公开实施例提供的技术方案有以下有益效果:

本发明实施例提供的一种基于简单矩阵的后量子加密装置,能够进行公钥加密,输入需要加密的明文至本装置,经过计算后,输出相应的密文。本装置具有速度快、安全级别高、能够抵御量子计算机攻击等特点。

附图说明

图1示出了本发明的结构示意图。

具体实施方式

下面结合附图和实施例对发明进行详细的说明,且所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。

图1示出了本发明一个优选实施例的详细硬件框图。本发明的后量子加密装置,包括中央处理器、存储器、明密文管理器、复合域加法阵列、复合域乘法阵列、明文矩阵乘法器、系数矩阵乘法器、系数向量矩阵乘法器、多项式求值运算器、输入接口和输出接口等几大部件。

其中,中央处理器具体包括了加密处理器和接口控制器,是本装置的核心部件。中央处理器的接口控制器用于从后量子加密装置的输入端口接收明文,然后从输出端口输出密文。中央处理器的加密处理器,与本装置其他部件相连接,调度其他部件,完成加密过程。

存储器具体包括了ram和寄存器,是本装置的存储部件。存储器的寄存器,包括500-5000个寄存器,每个寄存器的存储空间是双字节,用于存储复合域加法阵列和复合域查表乘法阵列的结果。存储器的ram,包括100-500m字节存储空间,用于存储密钥常量存储器的密钥向量元素、密文存储器的密文元素、明文存储器的明文元素、密钥向量存储阵列的各向量元素、密钥矩阵存储阵列的各矩阵元素、矩阵存储器的各矩阵元素;ram存取单位是双字节,可同时读取两个单位的数据,或写两个单位的数据。

ram包含以下7个端口:

地址端口ra0和ra1:ram地址src.1和src.2,可同时读取两个地址的数据;

数据输入端口rd0和rd1:将rd0的数据写至地址ra0的ram以及将rd1的数据写至地址ra1的ram;

数据输出端口ro0和ro1:将地址ra0和ra1的ram数据读取至ro0和ro1;

使能信号端口re0和re1:re0=0时将地址ra0的ram数据读取至ro0,re0=1时将地址ra1的ram数据读取至ro1,re1=0时将rd0的数据写至地址ra0的ram,re1=1时将rd1的数据写至地址ra1的ram。

明密文管理器,包括密文存储器和明文存储器,是本装置的输入输出部件。明文存储器,用于存储明文pi,i=1,...,49,可以表示为p=p(p1,p2,...,p49),每个元素代表两个字节,是特定有限域gf(216)的元素,明文信息共98字节。密文存储器,用于存储密文qi,i=1,...,98,可以表示为q=q(q1,q2,...,q98),每个元素代表两个字节,是特定有限域gf(216)的元素,密文信息共196字节。

复合域加法阵列,包括并行运算的49个有限域加法器和49*n个加法调度器,是本装置的基础运算部件,n为大于等于1的自然数。

复合域查表乘法阵列,包括并行运算的49个有限域乘法器和49*n个乘法调度器,是本装置的基础运算部件,n为大于等于1的自然数;

明文矩阵乘法器,包括矩阵乘法电路和矩阵存储器,是本装置的逻辑运算部件。其中矩阵乘法电路对复合域查表阵列中的乘法调度器进行控制,使其调度49个有限域乘法器,用于完成任意两个明文元素的乘法wij=pi×pj,i,j=1,2,...,49,存储至矩阵存储器wij。明文矩阵乘法器的矩阵存储器,用于管理矩阵wij,i,j=1,2,...,49在ram中的存储和读取。

系数矩阵乘法器,包括系数矩阵乘法电路和密钥矩阵存储阵列,是本装置的逻辑运算部件。其中系数矩阵乘法电路对复合域查表阵列中的乘法调度器进行控制,使其调度49个有限域乘法器,用于将密钥矩阵存储阵列中各矩阵的元素chij,h=1,2,...,98,i,j=1,2,...,49与明文矩阵乘法器的矩阵存储器中矩阵对应元素wij相乘,并存入密钥矩阵存储阵列中各矩阵的对应位置chij=chij×wij。

系数向量乘法器,包括系数向量乘法电路和密钥向量存储阵列,是本装置的逻辑运算部件。其中系数向量乘法电路对复合域查表阵列中的乘法调度器进行控制,使其调度49个有限域乘法器。系数矩阵乘法器的密钥矩阵存储阵列,用于管理各矩阵的元素chij,h=1,2,...,98,i,j=1,2,...,49在ram中的存储和读取,用于将密钥向量存储阵列中各向量的元素vhi,h=1,2,...,98,i=1,2,...,49与明文中各对应元素相乘pi,并存入密钥向量存储阵列中各向量的对应位置vhi=vhi×pi。系数向量乘法器的密钥向量存储阵列,用于管理各向量的元素vhi,h=1,2,...,98,i=1,2,...,49在ram中的存储和读取。

多项式求值运算器,包括多项式求值电路和密钥常量存储器,是本装置的逻辑运算部件。多项式求值运算器的多项式求值电路,用于将密钥常量存储器中各密钥dh,h=1,2,...,98,与对应密钥矩阵存储阵列的矩阵的所有元素chij,h=1,2,...,98,i,j=1,2,...,49以及密钥向量存储阵列的向量的所有元素vhi,h=1,2,...,98,i=1,2,...,49相加,并将相对结果以向量形式dh=dh+chij+vhi,h=1,2,...,98,,i,j=1,2,...,49发送至明密文管理器。多项式求值运算器的密钥常量存储器,用于管理各密钥dh,h=1,2,...,98在ram中的存储和读取。

中央处理器的加密处理器调度其他部件完成加密过程具体包含了以下步骤:

(1)加密处理器从明密文管理器的明文存储器中获取明文信息pi,i=1,...,49;

(2)加密处理器将明文信息送入明文矩阵乘法器,明文矩阵乘法器的矩阵乘法电路完成任意两个明文元素的乘法wij=pi×pj,i,j=1,2,...,49,存储至矩阵存储器wij;

(3)加密处理器调用系数矩阵乘法器,系数矩阵乘法器的系数矩阵乘法电路将密钥矩阵存储阵列中各矩阵的元素chij,h=1,2,...,98,i,j=1,2,...,49与明文矩阵乘法器的矩阵存储器中矩阵对应元素wij相乘,并存入密钥矩阵存储阵列中各矩阵的对应位置chij=chij×wij;

(4)加密处理器调用系数向量乘法器,系数向量乘法器的系数向量乘法电路将密钥向量存储阵列中各向量的元素vhi,h=1,2,...,98,i=1,2,...,49与明文中各对应元素相乘pi,并存入密钥向量存储阵列中各向量的对应位置vhi=vhi×pi;

(5)加密处理器调用多项式求值运算器,多项式求值运算器将密钥常量存储器中各密钥dh,h=1,2,...,98,与对应密钥矩阵存储阵列的矩阵的所有元素chij,h=1,2,...,98,i,j=1,2,...,49以及密钥向量存储阵列的向量的所有元素vhi,h=1,2,...,98,i=1,2,...,49相加,并将相对结果以向量形式dh=dh+chij+vhi,h=1,2,...,98,,i,j=1,2,...,49发送至明密文管理器;

(6)加密处理器调用明密文管理器将该向量dh,h=1,2,...,98存储至密文存储器。

复合域加法阵列的有限域加法器,用于计算有限域gf(216)的两个元素的和,有限域gf(216)的元素可以表示为a(a16a15...a1)2,其中a16,a15,...,a1的值是0或1。有限域gf(216)的两个元素a(a16a15...a1)2和b(b16b15...b1)2的加法运算使用异或逻辑门,a(a16a15...a1)2+b(b16b15...b1)2=c(c16c15...c1)2,其中ci=ai+bi,i=1,2,...,16。所述复合域加法阵列的加法调度器,用于调度并行运行的49个有限域加法器,在一个周期内完成计算。例如在上述步骤(5)中,有限域加法器将各密钥(a(a16a15...a1)2)与对应的密钥矩阵存储阵列的矩阵的所有元素(b(b16b15...b1)2)相加。

复合域查表乘法阵列的有限域乘法器,用于计算有限域gf(216)的两个元素的乘积,有限域gf(216)的元素可以表示为a(a16a15...a1)2,其中a16,a15,...,a1的值是0或1。有限域gf(216)的两个元素a(a16a15...a1)2和b(b16b15...b1)2的乘法运算使用基于复合有限域gf((28)2)的查找表,a(ahal)8×b(bhbl)8=c(chcl)8,其中ah,al,bh,bl,ch,cl是gf(28)的元素。gf(28)的乘法基于查找表实现,在表中每一行中存储第一个运算数、第二个运算数以及运算结果。复合域查表乘法阵列的乘法调度器,用于调度并行运行的49个有限域乘法器,在一个周期内完成计算。

上述实施例仅用于说明本发明的具体实施方式。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和变化,这些变形和变化都应属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1