本发明专利技术实施例公开了一种多项式乘法器及具有该乘法器的处理器。该多项式乘法器基于Karatsuba算法而设计并用于执行后量子密码中的多项式乘法操作。其包括:第一存储模块,用于存储系数b0至b255以及a0至a255;第一计算模块,用于计算
【技术实现步骤摘要】
多项式乘法器及具有该乘法器的处理器
[0001]本专利技术涉及信息安全
,尤其涉及一种多项式乘法器及具有该乘法器的处理器。
技术介绍
[0002]在信息安全
中,为了保证信息的安全性,发送端在信息发送前需要对信息进行加密,接收端在接收到信息之后,需要使用相应的密钥对信息进行解密。
[0003]随着技术的发展,密码技术正在由传统的基于公钥的密码技术向PQC(Post
‑
Quantum Cryptography,后量子密码)技术方向发展,所谓PQC技术是指可以抵抗量子计算机攻击的密码技术,因此也被称为“抗量子密码技术”。其中的“后”是指在大规模稳定的量子计算机出现后,现有的绝大多数公钥密码算法(诸如RSA、Diffie
‑
Hellman、椭圆曲线等)将会被攻破,只有能抵抗这种攻击的密码算法才能够在进入量子计算时代之后存活。
[0004]在PQC技术中,后量子密码Saber算法是其中一种,其具有公钥长度短和易于实现等优点,该算法是由Jan
‑
Pieter等人提出的基于MLWR(Machine Learning with Rounding)问题的密码学原语,其包含了公钥加密(Saber.PKE)和密钥封装(Saber.KEM)两种方案。其中,Saber.PKE是一种具有选择明文攻击下不可区分性(Indistinguishability under Chosen Plaintext Attack,IND
‑
CPA)的公钥加密方案。而Saber.KEM是一种具有选择密文攻击下不可区分性(Indistinguishability under Chosen Ciphertext Attack,IND
‑
CCA)的密钥交换机制。其中,Saber.PKE到Saber.KEM的转换通过Fujisaki
‑
Okamoto变换即可完成。
[0005]在针对后量子密码Saber算法的研究中,如何提高后量子密码Saber算法的效率,即高效性,是当前的主要研究方向,即当前研究主要关注于高效性问题上。其中一种方式是以硬件的方式来实现后量子密码Saber算法,例如设计协处理器来实现后量子密码Saber算法。在后量子密码Saber算法中,会涉及到多项式乘法运算,并且多项式乘法运算的效率高低是影响最终的协处理器的性能的关键因素,因此如何设计具有高运算性能的多项式乘法器是本领域技术人员需要着重考虑的问题。
技术实现思路
[0006]有鉴于此,本专利技术的目的在于提供一种多项式乘法器及具有该乘法器的处理器,其能够高效地实现后量子密码后量子密码Saber算法中的多项式乘法运算。
[0007]为了实现上述专利技术目的,本专利技术实施例提供了一种基于Karatsuba算法的多项式乘法器,用于执行后量子密码后量子密码Saber算法中的多项式乘法操作,包括:第一存储模块,用于存储第一多项式系数和第二多项式系数,其中所述第一多项式系数包括:第1至第256阶系数b0至b255,第二多项式系数包括:第1至第256阶系数a0至a255;第一计算模块,用于根据所述第一和第二多项式系数,计算
‑
B1、B0+B1、B0
‑
B1和A0+A1,其中,B0包括b0至b127,B1包括b128至b255,A0包括a0至a127,A1包括a128至a255;多项式乘法模块,包括:384
个并行的乘法单元,其中所述乘法单元每3个为一组,每组中的三个乘法单元分别用于计算:P1=
‑
B1*(A0+A1)、P2=(B0+B1)*A0和P3=(B0
‑
B1)*A1;第二计算模块,用于根据所述多项式乘法模块的结果,计算C0=P2+P1,C1=P3
‑
P1;以及第二存储模块,用于存储C0和C1,其中C0和C1为对所述第一和第二多项式系数执行多项式乘法操作所产生的结果数据。
[0008]在一种实施方式中,所述第一多项式系数中各系数的位宽为4位,所述第二多项式系数中各系数的位宽为13位,所述第一存储模块,具体用于从位宽为64位的存储器中读取所述第二多项式系数并缓存。
[0009]在一种实施方式中,所述第一存储模块,包括:第一寄存器,用于存储b0至b255;第二寄存器,用于存储a0至a127;以及第三寄存器,用于存储a128至a255。
[0010]在一种实施方式中,还包括:第一选择器和第二选择器,所述第一选择器和第二选择器分别与所述第二寄存器和第三寄存器连接,分别用于从所述第二寄存器和第三寄存器选择系数输出至所述第二计算模块。
[0011]在一种实施方式中,所述第二和第三寄存器均为676位。
[0012]在一种实施方式中,所述第一计算模块包括:第一加法器,用于计算B0+B1;第二加法器,用于计算A0+A1;第一减法器,用于计算
‑
B1;以及第二减法器,用于计算B0
‑
B1。
[0013]在一种实施方式中,所述第二计算模块包括:第一累加单元,用于计算C0=P2+P1;以及第二累加单元,用于计算C1=P3
‑
P1。
[0014]在一种实施方式中,所述第二存储模块包括:第四寄存器,用于存储C0;和第五寄存器,用于存储C1。
[0015]在一种实施方式中,所述多项式乘法模块由数字信号处理电路实现。
[0016]本专利技术实施例还提供了一种用于实现后量子密码Saber算法的处理器,所述处理器由硬件实现,所述处理器包括:存储模块;功能模块,用于执行后量子密码Saber算法涉及的操作,且所述功能模块包括以下子模块:第三代安全散列算法SHA3子模块、二进制采样子模块、多项式乘法器、加解密子模块、验证子模块和数据位宽转换子模块;以及控制模块,用于根据所述存储模块中存储的指令,控制所述功能模块中的各子模块执行对应的操作,以实现所述后量子密码Saber算法中的密钥生成、密钥封装和密钥解封中的至少一个;其中,所述多项式乘法器为上述的多项式乘法器。
[0017]本专利技术的有益效果是:
[0018]本专利技术实施例的多项式乘法器,其多项式乘法模块采用384个并行的乘法单元,因此利用该384个并行的乘法单元可以在128个周期完成256阶多项式乘法运算,从而提高了多项式乘法器的乘法效率。
附图说明
[0019]图1是本专利技术的用于实现后量子密码Saber算法的处理器的实施例的结构示意图;
[0020]图2是本专利技术的用于实现后量子密码Saber算法的处理器的另一实施例的结构示意图;
[0021]图3是本专利技术的用于实现后量子密码Saber算法的处理器的另一实施例的结构示意图;
[0022]图4是本专利技术实施例的指令的结构示意图;
[0023]图5是本专利技术的多项式乘法器的实施例的结构示意图;
[0024]图6是本专利技术的多项式乘法器的另一实施例的结构示意图本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于Karatsuba算法的多项式乘法器,用于执行后量子密码Saber算法中的多项式乘法操作,其特征在于,包括:第一存储模块,用于存储第一多项式系数和第二多项式系数,其中所述第一多项式系数包括:第1至第256阶系数b0至b255,第二多项式系数包括:第1至第256阶系数a0至a255;第一计算模块,用于根据所述第一和第二多项式系数,计算
‑
B1、B0+B1、B0
‑
B1和A0+A1,其中,B0包括b0至b127,B1包括b128至b255,A0包括a0至a127,A1包括a128至a255;多项式乘法模块,包括:384个并行的乘法单元,其中所述乘法单元每3个为一组,每组中的三个乘法单元分别用于计算:P1=
‑
B1*(A0+A1)、P2=(B0+B1)*A0和P3=(B0
‑
B1)*A1;第二计算模块,用于根据所述多项式乘法模块的结果,计算C0=P2+P1,C1=P3
‑
P1;以及第二存储模块,用于存储C0和C1,其中C0和C1为对所述第一和第二多项式系数执行多项式乘法操作所产生的结果数据。2.如权利要求1所述的多项式乘法器,其特征在于,所述第一多项式系数中各系数的位宽为4位,所述第二多项式系数中各系数的位宽为13位,所述第一存储模块,具体用于从位宽为64位的存储器中读取所述第二多项式系数并缓存。3.如权利要求2所述的多项式乘法器,其特征在于,所述第一存储模块,包括:第一寄存器,用于存储b0至b255;第二寄存器,用于存储a0至a127;以及第三寄存器,用于存储a128至a255。4.如权利要求3所述的多项式乘法器,其特...
【专利技术属性】
技术研发人员:刘冬生,李翔,胡昂,李奥博,杨朔,陆家昊,
申请(专利权)人:华中科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。