[发明专利]基于FPGA的格基密钥封装算法OSKR的纯硬件实现结构在审
申请号: | 202210731721.4 | 申请日: | 2022-06-25 |
公开(公告)号: | CN115001693A | 公开(公告)日: | 2022-09-02 |
发明(设计)人: | 胡跃;赵旭阳;赵运磊 | 申请(专利权)人: | 复旦大学 |
主分类号: | H04L9/30 | 分类号: | H04L9/30;H04L9/08;H04L9/06;H04L9/40 |
代理公司: | 上海正旦专利代理有限公司 31200 | 代理人: | 陆飞;陆尤 |
地址: | 200433 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 fpga 密钥 封装 算法 oskr 硬件 实现 结构 | ||
1.一种基于FPGA平台的格基密钥封装算法OSKR的纯硬件实现结构,针对多项式维度n为512的这一组参数,其特征在于,包括:多项式运算模块、多项式采样模块、哈希模块、编解码模块和顶层控制模块;其中:
所述多项式运算模块,用于实现多项式的正向NTT运算、逆向NTT运算、点乘运算、压缩解压缩运算、Con/Rec运算;
所述多项式采样模块,用于实现中心二项采样生成噪声多项式向量ri/ei实现拒绝采样生成公钥多项式矩阵Aij;
所述哈希模块,用于实现多种SHA3实例,包括SHAKE256函数用于采样噪声多项式,SHAKE128函数用于采样公钥多项式,SHA3-512函数用于生成共享秘钥K;
所述编解码模块,用于实现模块之间传输数据位宽的转换操作;
所述顶层控制模块,通过状态机实现各模块的运行流程的控制操作,用于实现OSKR算法多项式维度N为512的这一组参数,并实现密钥生成和密钥解封操作。
2.根据权利要求1所述的格基密钥封装算法OSKR的纯硬件实现结构,其特征在于,所述多项式运算模块共有5个工作模式,控制信号sel由3个比特组成:正向NTT运算对应信号3’b000,逆向NTT运算对应信号3’b001,点乘运算分为四个步骤,分别对应信号3’b011、3’b100、3’b100、3’b000,压缩操作和Con运算对应信号3’b001,解压缩操作和Rec运算对应信号3’b000;
所述多项式运算模块设计为四倍并行结构,即每个时钟周期处理四对操作数;对于模数q为3329多项式维度n为512的情况,一次完整的NTT运算、逆向NTT运算、点乘运算均需要448个时钟周期;一次完整的压缩、解压缩、Con运算和Rec运算均需要128个时钟周期;
所述多项式运算模块,其中存储单元有两种:BRAM单元和FIFO单元;BRAM单元用于读取并存储各种运算的中间值,包括RAM0、RAM1、RAM2和RAM3四个BRAM存储单元;FIFO单元用于临时存储从采样模块传输进入多项式模块的噪声多项式ri、ei的系数和公钥多项式Aij的系数,并根据控制信号将FIFO单元内存储的多项式系数存入到BRAM单元中,进行多项式运算。
3.根据权利要求2所述的格基密钥封装算法OSKR的纯硬件实现结构,其特征在于,所述多项式采样模块包括两种功能:
(1)中心二项采样,用于生成噪音多项式向量ri、ei,模块输入的哈希结果位宽为32比特,每个时钟周期采样生成8个多项式系数;
(2)拒绝采样,用于生成公钥多项式矩阵Aij,模块输入的哈希结果位宽为32比特,每个时钟周期最多生成2个多项式系数。
4.根据权利要求3所述的格基密钥封装算法OSKR的纯硬件实现结构,其特征在于,所述哈希模块,其控制信号由四个比特构成:第4比特用于判断本次哈希运算是否需要多次运行,用于实现哈希密文和采样多项式矩阵A两种情况下的哈希运算;其余3位控制信号用于确定哈希实例;
所述哈希模块支持SHA3-512函数、SHAKE256函数、SHAKE128函数,且均由5个轮函数和控制逻辑组成。
5.根据权利要求4所述的格基密钥封装算法OSKR的纯硬件实现结构,其特征在于,所述编解码模块中,编码模块的编码过程用于将多项式运算模块的输出数据转化为统一的32比特位宽,进而送入哈希模块进行下一步的运算;解码模块将外部输入的位宽为32比特的数据根据参数du和dv转化为对应位宽的数据,进而送入多项式运算模块,进行下一步的运算。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于复旦大学,未经复旦大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210731721.4/1.html,转载请声明来源钻瓜专利网。