当前位置: 首页 > 专利查询>南京大学专利>正文

一种基于哈希后量子签名的密钥生成硬件加速架构及方法技术

技术编号:29593901 阅读:31 留言:0更新日期:2021-08-06 19:55
本申请涉及密钥生成技术领域,提供一种基于哈希后量子签名的密钥生成硬件加速架构及方法,所述密钥生成硬件加速架构基于LMS密钥生成过程中算法与参数集的特征,设计了一种高速且可伸缩的硬件加速架构。该架构被设计为适用LMS方案的所有参数集,且通过适度的并行设计,可以同时实现低延时与高硬件利用率,同时,该架构在不同的参数实现时保持一定的恒定功率,可一定程度上帮助抵御功率攻击。

【技术实现步骤摘要】
一种基于哈希后量子签名的密钥生成硬件加速架构及方法
本申请涉及密钥生成
,尤其涉及一种基于哈希后量子签名的密钥生成硬件加速架构及方法。
技术介绍
传统的签名算法(如RSA,DSA,ECDSA等算法),存在基于大整数因式分解困难与计算离散对数的困难。而随着量子计算领域快速发展,量子计算机的出现将会打破传统签名算法所提供的安全保障,所以,针对量子计算机的加密系统设计变得十分迫切,基于哈希的签名方案(Hash-basedSignature,HBS)是后量子加密方案中最有潜力的类别之一,其中主要的计算函数是哈希函数(Hash)如SHA2和SHA3。相较于其他的后量子加密方案,如基于格、基于同源、基于编码的加密方案,基于哈希的加密方案不需要额外的数学假设,且在计算效率上也常常优于其他类别。基于哈希的签名方案由二叉树(MerkleTree)与单次签名(OneTimeSignature,OTS)构成,在OTS中,一个私钥用于一条信息的签名,对应的公钥用于验证签名的正确性;二叉树的每个叶子节点都是一个OTS公钥的哈希值,内部节点是用对应的子节点计算出的哈希值,树的根节点用于构成HBS的公钥值。签名时,HBS的签名由一个OTS的叶子节点与该叶子节点到达根节点的路径节点构成。这些路径节点用于帮助签名的验证。雷顿-米卡利签名协议(Leighton-MicaliSignature,LMS)作为后量子签名标准备选方案之一,相较于其他备选方案,具有较小的密钥与密文尺寸,且不需要额外的数学假设。但是,LMS的缺陷在于密钥生成的效率与速度都很低,密钥生成过程是LMS方案中耗时最长的部分,其延时约等于签名与验证的延时之和,该缺陷构成了该方案应用于实际场景的瓶颈所在,因此提升其速度成为改进该算法性能的核心所在。因此,加速密钥生成过程将显著加速整个LMS签名协议,对将LMS推向实际应用具有重要意义。
技术实现思路
为了提高LMS签名的密钥生成速度,降低密钥生成的耗时,本申请实施例提供一种基于哈希后量子签名的密钥生成硬件加速架构及方法。本申请第一方面提供的一种基于哈希后量子签名的密钥生成硬件加速架构,所述密钥生成硬件加速架构包括:叶子节点生成单元和根节点生成单元;所述叶子节点生成模块包括OTS公钥模块、HASH_LS模块和第一HASH_X模块;OTS公钥模块,用于根据随机初始值I、OTS密钥子模块对应的索引值、固定参数0xff与OTS私钥迭代2w-1次,生成对应的OTS公钥的y序列;HASH_LS模块,用于接收OTS公钥模块输出的y序列,并将字节超过1088比特的y序列切割为1088比特长度的数据流,以及,用于根据初始值和多个1088比特长度的数据流,调用单向散列函数,完成哈希运算,获得OTS公钥值的K值;第一HASH_X模块,用于接收HASH_LS模块输出的OTS公钥值的K值,并通过OTS公钥值的K值以及输入的叶子节点索引值、随机初始值、和参数D_LEAF值,计算叶子节点值;根节点生成单元,用于接收第一HASH_X模块输出的叶子节点值,以及用于根据叶子节点值生成用于构成LMS公钥的根节点值。可选地,所述OTS公钥模块包括p组并行的OTS密钥子模块,p为y序列的最小迭代组数;所述OTS密钥子模块,用于根据随机初始值I以及OTS密钥子模块对应的索引值,生成OTS私钥值及LMS私钥值,还用于根据OTS密钥子模块对应的索引值、固定参数0xff与OTS私钥迭代2w-1次,生成对应的OTS公钥的y序列。可选地,所述OTS密钥子模块包括第一多路选择器、HASH_440模块和第一多路分配器;第一多路选择器,用于将随机初始值I和OTS密钥子模块对应的索引值输入HSAH_440模块;或者,用于将前一个OTS密钥、OTS密钥子模块对应的索引值和固定参数0xff输入HSAH_440模块;HSAH_440模块用于根据随机初始值I和OTS密钥子模块对应的索引值,生成第一个OTS密钥;或者,用于根据前一个OTS密钥、OTS密钥子模块对应的索引值和固定参数0xff,生成下一个OTS密钥;第一多路分配器,用于输出y序列,或者,用于将OTS密钥传输至多路选择器。可选地,所述HASH_LS模块包括PAD模块、缓存器模块、XOR模块和KECCAK模块;PAD模块,用于接收OTS公钥模块输出的y序列,并将字节不足1088比特的输入填充至1088比特,以及将字节超过1088比特的输入切割、填充成为以1088比特长度的数据为单位的数据流;缓存器模块,用于缓存经过PAD模块切割的数据流;XOR模块,用于对初始值和第一个1088比特长度的数据流进行异或运算,以及对上一轮KECCAK的哈希迭代结果与当前输入的1088比特长度数据流进行异或运算,并将异或运算结果输入KECCAK模块;KECCAK模块,用于调用单向散列函数,完成哈希迭代运算,获得哈希迭代结果以及OTS公钥值的K值。可选地,所述根节点生成单元包括第二多路分配器、寄存器、多路选择器、第二HASH_X模块和第三多路分配器;第二多路分配器,用于选择将得到的叶子节点存进寄存器或者输入到多路选择器中;寄存器,用以存储暂时没有兄弟节点的叶子节点和内部节点;以及,用于接收HASH_X模块输出的叶子节点值;多路选择器,用于选择当前叶子节点或者计算出的父节点进入第二HASH_X模块;第二HASH_X模块,用于计算当前节点及其兄弟节点的父节点,并将在寄存器中不存在兄弟节点的父节点,储存至寄存器;以及将在寄存器中存在兄弟节点的父节点作为新的当前节点,直到寄存器中不存在当前节点的兄弟节点,获得最终的根节点,所述当前节点为在寄存器中存在兄弟节点的叶子节点或存在兄弟节点的父节点;第三多路分配器,用于选择输出根节点,或者,将第二HASH_X模块计算出的中间节点返回至第二HASH_X模块的输入,计算下一层中间节点。本申请第二方面提供的一种基于哈希后量子签名的密钥生成方法,所述密钥生成方法采用本申请第一方面提供的一种基于哈希后量子签名的密钥生成硬件加速架构执行,包括:通过p组并行的OTS密钥子模块对随机初始值I、各组OTS密钥子模块对应的索引值、固定参数0xff进行2w-1次哈希的迭代计算,生成对应的OTS公钥的y序列;通过HASH_LS模块将字节超过1088比特的y序列切割为1088比特长度的数据流,并根据初始值和多个1088比特长度的数据流,调用单向散列函数,完成哈希运算,获得OTS公钥值的K值;通过第一HASH_X模块根据OTS公钥值的K值、r、I、和D_LEAF值,计算叶子节点值;通过根节点生成单元根据叶子节点值生成用于构成LMS公钥的根节点值。可选地,所述通过根节点生成单元根据叶子节点值生成用于构成LMS公钥的根节点值的步骤,具体为:判断叶子节点值对应的叶子节点是否存在兄弟节点,若不存在兄弟节点,则将所述叶子节点存储至寄存本文档来自技高网
...

【技术保护点】
1.一种基于哈希后量子签名的密钥生成硬件加速架构,其特征在于,所述密钥生成硬件加速架构包括:叶子节点生成单元和根节点生成单元;/n所述叶子节点生成模块包括OTS公钥模块、HASH_LS模块和第一HASH_X模块;/nOTS公钥模块,用于根据随机初始值I、OTS密钥子模块对应的索引值、固定参数0xff与OTS私钥迭代2

【技术特征摘要】
1.一种基于哈希后量子签名的密钥生成硬件加速架构,其特征在于,所述密钥生成硬件加速架构包括:叶子节点生成单元和根节点生成单元;
所述叶子节点生成模块包括OTS公钥模块、HASH_LS模块和第一HASH_X模块;
OTS公钥模块,用于根据随机初始值I、OTS密钥子模块对应的索引值、固定参数0xff与OTS私钥迭代2w-1次,生成对应的OTS公钥的y序列;
HASH_LS模块,用于接收OTS公钥模块输出的y序列,并将字节超过1088比特的y序列切割为1088比特长度的数据流,以及,用于根据初始值和多个1088比特长度的数据流,调用单向散列函数,完成哈希运算,获得OTS公钥值的K值;
第一HASH_X模块,用于接收HASH_LS模块输出的OTS公钥值的K值,并通过OTS公钥值的K值以及输入的叶子节点索引值、随机初始值、和参数D_LEAF值,计算叶子节点值;
根节点生成单元,用于接收第一HASH_X模块输出的叶子节点值,以及用于根据叶子节点值生成用于构成LMS公钥的根节点值。


2.根据权利要求1所述的一种基于哈希后量子签名的密钥生成硬件加速架构,其特征在于,所述OTS公钥模块包括p组并行的OTS密钥子模块,p为y序列的最小迭代组数;
所述OTS密钥子模块,用于根据随机初始值I以及OTS密钥子模块对应的索引值,生成OTS私钥值及LMS私钥值,还用于根据OTS密钥子模块对应的索引值、固定参数0xff与OTS私钥迭代2w-1次,生成对应的OTS公钥的y序列。


3.根据权利要求1所述的一种基于哈希后量子签名的密钥生成硬件加速架构,其特征在于,所述OTS密钥子模块包括第一多路选择器、HASH_440模块和第一多路分配器;
第一多路选择器,用于将随机初始值I和OTS密钥子模块对应的索引值输入HSAH_440模块;或者,用于将前一个OTS密钥、OTS密钥子模块对应的索引值和固定参数0xff输入HSAH_440模块;
HSAH_440模块,用于根据随机初始值I和OTS密钥子模块对应的索引值,生成第一个OTS密钥;或者,用于根据前一个OTS密钥、OTS密钥子模块对应的索引值和固定参数0xff,生成下一个OTS密钥;
第一多路分配器,用于输出y序列,或者,用于将OTS密钥传输至多路选择器。


4.根据权利要求1所述的一种基于哈希后量子签名的密钥生成硬件加速架构,其特征在于,所述HASH_LS模块包括PAD模块、缓存器模块、XOR模块和KECCAK模块;
PAD模块,用于接收OTS公钥模块输出的y序列,并将字节不足1088比特的输入填充至1088比特,以及将字节超过1088比特的输入切割、填充成为以1088比特长度的数据为单位的数据流;
缓存器模块,用于缓存经过PAD模块切割的数据流;
XOR模块,用于对初始值和第一个1088比特长度的数据流进行异或运算,以及对上...

【专利技术属性】
技术研发人员:王中风胡潇宋逸峰汪文浩田静
申请(专利权)人:南京大学
类型:发明
国别省市:江苏;32

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

1