用于实现后量子密码Saber算法的处理器[发明专利]

(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 202111410431.1
(22)申请日 2021.11.25
(71)申请人 华中科技大学
地址 430074 湖北省武汉市洪山区珞喻路
1037号
(72)发明人 刘冬生 李翔 胡昂 李奥博 
杨朔 陆家昊 
(74)专利代理机构 深圳市温斯顿专利代理事务
所(普通合伙) 44686
代理人 徐员兰
(51)Int.Cl.
G06N  10/40(2022.01)
G06N  10/20(2022.01)
G06N  10/60(2022.01)
G06F  9/30(2006.01)
(54)发明名称
用于实现后量子密码Saber算法的处理器
(57)摘要
本发明实施例涉及信息安全技术领域,并公
开了一种用于实现后量子密码Saber算法的处理
器,该处理器由硬件实现,并且包括:存储模块
用于存储数据和指令,其中处理器使用自定义的
精简指令集,且存储模块中存储的指令为指令集
中的指令;功能模块,用于执行后量子密码Saber
算法涉及的操作,且功能模块包括以下子模块:
第三代安全散列算法SHA3子模块、二进制采样子
模块、多项式乘法器、加解密子模块、验证子模块
和数据位宽转换子模块;以及控制模块,用于根
据存储模块中存储的指令,控制功能模块中的各
子模块执行对应的操作,以实现后量子密码
Saber算法中的密钥生成、密钥封装和密钥解封
中的至少一个。本发明实施例,能够在实现高效
性的同时,
节约资源开销。权利要求书2页  说明书7页  附图3页CN 114154640 A 2022.03.08
C N  114154640
A
1.一种用于实现后量子密码Saber算法的处理器,所述处理器由硬件实现,其特征在于,所述处理器包括:
存储模块,用于存储数据和指令,其中所述处理器使用自定义的精简指令集,且所述存储模块中存储的指令为所述指令集中的指令;
功能模块,用于执行后量子密码Saber算法涉及的操作,且所述功能模块包括以下子模块:第三代安全散列算法SHA3子模块、二进制采样子模块、多项式乘法器、加解密子模块、验证子模块和数据位宽转换子模块;以及
控制模块,用于根据所述存储模块中存储的指令,控制所述功能模块中的各子模块执行对应的操作,以实现所述后量子密码Saber算法中的密钥生成、密钥封装和密钥解封中的至少一个。
2.根据权利要求1所述的处理器,其特征在于,所述自定义的精简指令集中各指令的长度和格式均相同,且每条指令包括:
控制部分,用于指示欲启动的子模块及该子模块的工作模式;
读地址部分,用于指示输入数据的存储地址;以及
写地址部分,用于指示输出数据的存储地址。
3.根据权利要求2所述的处理器,其特征在于,所述SHA3子模块和所述多项式乘法器均具有多个工作模式,所述控制部分包括:7位,其中所述7位中的其中2位用作所述SHA3子模块和所述多项式乘法器的启动标志位,剩余的5位用作剩余子模块的启动标志位和所述SHA3子模块和所述多项式乘法器的模式控制位。
4.根据权利要求2所述的处理器,其特征在于,所述读地址部分包括:第一读地址部分,用于指示第一输入数据的存储地址;以及第二读地址部分,用于指示第二输入数据的存储地址。
5.根据权利要求4所述的处理器,其特征在于,所述每条指令的长度均为37位,且所述控制部分由第0~6位实现,所述第一读地址部分由第7~16位实现,所述第二读地址部分由第17~26位实现,所述写地址部分由第27~36位实现。
6.根据权利要求1所述的处理器,其特征在于,所述SHA3子模块仅支持实现SHA3‑256函数、SHA3‑512函数和SHAKE128函数。
7.根据权利要求6所述的处理器,其特征在于,所述SHA3‑256函数、SHA3‑512函数和SHAKE128函数均基于轮函数而实现,且所述SHA3子模块采用展开系数为1,不插入流水线的方式来实现所述轮函数。
8.根据权利要求1至7中任一项所述的处理器,其特征在于,所述指令集由以下17条指令构成:
用于程序结束的指令;
用于启动二进制采样子模块的指令;
用于启动加密子模块的指令;
用于启动解密子模块的指令;
用于启动验证子模块的指令;
用于启动数据位宽转换子模块的指令;
用于启动多项式乘法器且指示执行一次A T·s中的多项式矢量乘法的指令;
用于启动多项式乘法器且指示执行一次A·s′中的多项式矢量乘法的指令;
用于启动多项式乘法器且指示执行一次b·s中的多项式矢量乘法的指令;
用于启动SHA3子模块且指示执行SHAKE128函数并输出256位消息的指令;
用于启动SHA3子模块且指示执行SHAKE128函数并输出29925位消息的指令;
用于启动SHA3子模块且指示执行SHAKE128函数并输出6144位消息的指令;
用于启动SHA3子模块且指示执行SHA3‑256函数并吸收8704位消息的指令;
用于启动SHA3子模块且指示执行SHA3‑256函数并吸收512位消息的指令;
用于启动SHA3子模块且指示执行SHA3‑256函数并吸收256位消息的指令;
用于启动SHA3子模块且指示执行SHA3‑256函数并吸收7936位消息的指令;以及
用于启动SHA3子模块且指示执行SHA3‑512函数的指令。
9.根据权利要求1所述的处理器,其特征在于,所述存储模块包括:程序存储器,连接至所述处理器的指令修改接口,所述处理器透过所述指令修改接口接收修改的指令并保存至所述程序存储器中。
10.根据权利要求1所述的处理器,其特征在于,所述存储模块包括:程序存储器和数据存储器;所述控制模块包括:
指令读取单元,用于从所述程序存储器中读取指令;以及
指令解析与总线管理单元,用于解析所述读取的指令,并基于解析的结果控制相应的子模块工作,并且控制仅当前工作的子模块能够使用所述数据存储器。
用于实现后量子密码Saber算法的处理器
技术领域
[0001]本发明涉及信息安全技术领域,尤其涉及一种用于实现后量子密码Saber算法的处理器。
背景技术
[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算法用硬件实现时,资源消耗也会成为一个重要问题,而现有对此则鲜有研究。
发明内容
[0006]有鉴于此,本发明的目的在于提供一种用于实现后量子密码Saber算法的处理器,能够在使用硬件实现后量子密码Saber算法的方案中,同时兼顾高效性和资源消耗的问题。[0007]为了实现上述发明目的,本发明实施例提供了一种用于实现后量子密码Saber算法的处理器,所述处理器由硬件实现,所述处理器包括:存储模块,用于存储数据和指令,其中所述处理器使用自定义的精简指令集,且所述存储模块中存储的指令为所述指令集中的指令;功能模块,用于执行后量子密码Saber算法中涉及的操作,且所述功能模块包括以下子模块:第三代安全散列算法SHA3子模块、二进制采样子模块、多项式乘法器、加解密子模块、验证子模块和数据位宽转换子模块;以及控制模块,用于根据所述存储模块中存储的指令,控制所述功能模块中的各子模块执行对应的操作,以实现所述后量子密码Saber算法中的密钥生成、密钥封装和密钥解封中的至少一个。
[0008]在一种实施方式中,所述自定义的精简指令集中各指令的长度和格式均相同,且
每条指令包括:控制部分,用于指示欲启动的子模块及该子模块的工作模式;读地址部分,用于指示输入数据的存储地址;以及写地址部分,用于指示输出数据的存储地址。[0009]在一种实施方式中,所述SHA3子模块和所述多项式乘法器均具有多个工作模式,所述控制部分包括:7位,其中所述7位中的其中2位用作所述SHA3子模块和所述多项式乘法器的启动标志位,剩余的5位用作剩余子模块的启动标志位和所述SHA3子模块和所述多项式乘法器的模式控制位。
[0010]在一种实施方式中,所述读地址部分包括:第一读地址部分,用于指示第一输入数据的存储地址;以及第二读地址部分,用于指示第二输入数据的存储地址。
[0011]在一种实施方式中,所述每条指令的长度均为37位,且所述控制部分由第0~6位实现,所述第一读地址部分由第7~16位实现,所述第二读地址部分由第17~26位实现,所述写地址部分由第27~36位实现。
[0012]在一种实施方式中,所述SHA3子模块仅支持实现SHA3‑256函数、SHA3‑512函数和SHAKE128函数。
[0013]在一种实施方式中,所述SHA3‑256函数、SHA3‑512函数和SHAKE128函数均基于轮函数而实现,且所述SHA3子模块采用展开系数为1,不插入流水线的方式来实现所述轮函数。
[0014]在一种实施方式中,所述指令集由以下17条指令构成:用于程序结束的指令;用于启动二进制采样子模块的指令;用于启动加密子模块的指令;用于启动解密子模块的指令;用于启动验证子模块的指令;用于启动数据位宽转换子模块的指令;用于启动多项式乘法器且指示执行一次A T·s中的多项式矢量乘法的指令;用于启动多项式乘法器且指示执行一次A·s′中的多项式矢量乘法的指令;用于启动多项式乘法器且指示执行一次b·s中的多项式矢量乘法的指令;用于启动SHA3子模块且指示执行SHAKE128函数并输出256位消息的指令;用于启动SHA3子模块且指示执行SHAKE128函数并输出29925位消息的指
令;用于启动SHA3子模块且指示执行SHAKE128函数并输出6144位消息的指令;用于启动SHA3子模块且指示执行SHA3‑256函数并吸收8704位消息的指令;用于启动SHA3子模块且指示执行SHA3‑256函数并吸收512位消息的指令;用于启动SHA3子模块且指示执行SHA3‑256函数并吸收256位消息的指令;用于启动SHA3子模块且指示执行SHA3‑256函数并吸收7936位消息的指令;以及用于启动SHA3子模块且指示执行SHA3‑512函数的指令。
[0015]在一种实施方式中,所述存储模块包括:程序存储器,连接至所述处理器的指令修改接口,所述处理器透过所述指令修改接口接收修改的指令并保存至所述程序存储器中。[0016]在一种实施方式中,所述存储模块包括:程序存储器和数据存储器;所述控制模块包括:指令读取单元,用于从所述程序存储器中读取指令;以及指令解析与总线管理单元,用于解析所述读取的指令,并基于解析的结果控制相应的子模块工作,并且控制仅当前工作的子模块能够使用所述数据存储器。
[0017]本发明的有益效果是:
[0018]本发明实施例的处理器,基于硬件而实现(硬件比软件更高效),因此天然具有高效性。同时,处理器使用自定义的精简指令集,由于自定义的精简指令是针对后量子密码Saber算法而开发,因此一方面具有高效性,另一方面可以减少控制逻辑,从而节约资源开销,因此可以同时兼顾高效性和节约资源。另外,通过分析后量子密码Saber算法中会涉及

本文发布于:2024-09-22 15:31:15,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/427513.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:模块   用于   指令   密码   量子   算法   实现   处理器
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议