[发明专利]一种基于哈希后量子签名的密钥生成硬件加速架构及方法有效
申请号: | 202110511804.8 | 申请日: | 2021-05-11 |
公开(公告)号: | CN113225185B | 公开(公告)日: | 2022-05-17 |
发明(设计)人: | 王中风;胡潇;宋逸峰;汪文浩;田静 | 申请(专利权)人: | 南京大学 |
主分类号: | H04L9/08 | 分类号: | H04L9/08;H04L9/06;H04L9/00 |
代理公司: | 北京弘权知识产权代理有限公司 11363 | 代理人: | 逯长明;许伟群 |
地址: | 210023 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 哈希后 量子 签名 密钥 生成 硬件加速 架构 方法 | ||
1.一种基于哈希后量子签名的密钥生成硬件加速系统,其特征在于,所述密钥生成硬件加速系统包括:叶子节点生成单元和根节点生成单元;
所述叶子节点生成单元包括OTS公钥模块、HASH_LS模块和第一HASH_X模块;
所述OTS公钥模块包括p组并行的OTS密钥子模块,p为y序列的最小迭代组数;所述OTS密钥子模块,用于根据随机初始值I以及OTS密钥子模块对应的索引值,生成OTS私钥值及LMS私钥值,还用于根据OTS密钥子模块对应的索引值、固定参数0xff与OTS私钥迭代2w-1次,生成对应的OTS公钥的y序列,其中,w是密文长度与计算延时的折中;
HASH_LS模块,用于接收OTS公钥模块输出的y序列,并将字节超过1088比特的y序列切割为1088比特长度的数据流,以及,用于根据随机初始值I和多个1088比特长度的数据流,调用单向散列函数,完成哈希运算,获得OTS公钥值的K值;
第一HASH_X模块,用于接收HASH_LS模块输出的OTS公钥值的K值,并通过OTS公钥值的K值以及输入的叶子节点索引值r、随机初始值I、和参数D_LEAF值,计算叶子节点值,其中,D_LEAF=0x8282;
根节点生成单元,用于接收第一HASH_X模块输出的叶子节点值,以及用于根据叶子节点值生成用于构成LMS公钥的根节点值;
其中,所述根节点生成单元包括第二多路分配器、寄存器、多路选择器、第二HASH_X模块和第三多路分配器;
第二多路分配器,用于选择将得到的叶子节点存进寄存器或者输入到多路选择器中;
寄存器,用以存储暂时没有兄弟节点的叶子节点和内部节点;以及,用于接收HASH_X模块输出的叶子节点值;
多路选择器,用于选择当前叶子节点或者计算出的父节点进入第二HASH_X模块;
第二HASH_X模块,用于计算当前节点及其兄弟节点的父节点,并将在寄存器中不存在兄弟节点的父节点,储存至寄存器;以及将在寄存器中存在兄弟节点的父节点作为新的当前节点,直到寄存器中不存在当前节点的兄弟节点,获得最终的根节点,所述当前节点为在寄存器中存在兄弟节点的叶子节点或存在兄弟节点的父节点;
第三多路分配器,用于选择输出根节点,或者,将第二HASH_X模块计算出的中间节点返回至第二HASH_X模块的输入,计算下一层中间节点。
2.根据权利要求1所述的一种基于哈希后量子签名的密钥生成硬件加速系统,其特征在于,所述OTS密钥子模块包括第一多路选择器、HASH_440模块和第一多路分配器;
第一多路选择器,用于将随机初始值I和OTS密钥子模块对应的索引值输入HSAH_440模块;或者,用于将前一个OTS密钥、OTS密钥子模块对应的索引值和固定参数0xff输入HSAH_440模块;
HSAH_440模块,用于根据随机初始值I和OTS密钥子模块对应的索引值,生成第一个OTS密钥;或者,用于根据前一个OTS密钥、OTS密钥子模块对应的索引值和固定参数0xff,生成下一个OTS密钥;
第一多路分配器,用于输出y序列,或者,用于将OTS密钥传输至多路选择器。
3.根据权利要求1所述的一种基于哈希后量子签名的密钥生成硬件加速系统,其特征在于,所述HASH_LS模块包括PAD模块、缓存器模块、XOR模块和KECCAK模块;
PAD模块,用于接收OTS公钥模块输出的y序列,并将字节不足1088比特的输入填充至1088比特,以及将字节超过1088比特的输入切割、填充成为以1088比特长度的数据为单位的数据流;
缓存器模块,用于缓存经过PAD模块切割的数据流;
XOR模块,用于对随机初始值I和第一个1088比特长度的数据流进行异或运算,以及对上一轮KECCAK模块的哈希迭代结果与当前输入的1088比特长度数据流进行异或运算,并将异或运算结果输入KECCAK模块;
KECCAK模块,用于调用单向散列函数,完成哈希迭代运算,获得哈希迭代结果以及OTS公钥值的K值。
4.一种基于哈希后量子签名的密钥生成方法,其特征在于,所述密钥生成方法采用权利要求1-3任一项所述的一种基于哈希后量子签名的密钥生成硬件加速系统执行,包括:
通过p组并行的OTS密钥子模块对随机初始值I、各组OTS密钥子模块对应的索引值、固定参数0xff进行2w-1次哈希的迭代计算,生成对应的OTS公钥的y序列,其中,w是密文长度与计算延时的折中;
通过HASH_LS模块将字节超过1088比特的y序列切割为1088比特长度的数据流,并根据随机初始值I和多个1088比特长度的数据流,调用单向散列函数,完成哈希运算,获得OTS公钥值的K值;
通过第一HASH_X模块根据OTS公钥值的K值、叶子节点索引值r、随机初始值I、和D_LEAF值,计算叶子节点值,其中, D_LEAF=0x8282;
通过根节点生成单元根据叶子节点值生成用于构成LMS公钥的根节点值;
其中,所述通过根节点生成单元根据叶子节点值生成用于构成LMS公钥的根节点值的步骤,具体为:
判断叶子节点值对应的叶子节点是否存在兄弟节点,若不存在兄弟节点,则将所述叶子节点存储至寄存器,若寄存器中存在所述叶子节点的兄弟节点,则从寄存器中取出所述叶子节点 对应的兄弟节点的值;
并根据叶子节点及其兄弟节点,计算叶子节点和其兄弟节点的父节点;然后判断寄存器中是否父节点的兄弟节点,若不存在父节点的兄弟节点,则将父节点的值存储至寄存器;若存在所述父节点的兄弟节点,则从寄存器中取出父节点对应的兄弟节点的值,并计算父节点及其兄弟节点对应的父节点,直至得到最终的根节点。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110511804.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种物流大件沙发无损伤打包装置
- 下一篇:风轮及空调器