Document
拖动滑块完成拼图
个人中心

预订订单
商城订单
发布专利 发布成果 人才入驻 发布商标 发布需求

请提出您的宝贵建议,有机会获取IP积分或其他奖励

投诉建议

在线咨询

联系我们

龙图腾公众号
专利交易 积分商城 国际服务 IP管家助手 科技果 科技人才 商标交易 会员权益 需求市场 关于龙图腾 更多
 /  免费注册
到顶部 到底部
清空 搜索
当前位置 : 首页 > 专利喜报 > 合肥工业大学杜高明获国家专利权

合肥工业大学杜高明获国家专利权

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

龙图腾网获悉合肥工业大学申请的专利面向后量子加密Kyber方案的NTT多项式乘法器的硬件电路获国家发明授权专利权,本发明授权专利权由国家知识产权局授予,授权公告号为:CN117193715B

龙图腾网通过国家知识产权局官网在2026-03-17发布的发明授权授权公告中获悉:该发明授权的专利申请号/专利号为:202311158332.8,技术领域涉及:G06F7/72;该发明授权面向后量子加密Kyber方案的NTT多项式乘法器的硬件电路是由杜高明;何龙;徐志强;王晓蕾设计研发完成,并于2023-09-08向国家知识产权局提交的专利申请。

面向后量子加密Kyber方案的NTT多项式乘法器的硬件电路在说明书摘要公布了:本发明公开了一种面向后量子加密Kyber方案的NTT多项式乘法器的硬件电路,包括:状态机控制模块、索引生成模块、旋转因子地址生成模块、旋转因子ROM、存储映射模块、BANK选择模块、RAM组、蝶形输入选择模块、蝶形模块、蝶形输出选择模块;状态机控制模块实现状态转移和生成信号;索引生成模块生成一对索引;旋转因子地址生成模块生成相应的地址;旋转因子ROM寻址出数据;存储映射模块将索引映射成地址和BANK号;BANK选择模块对映射地址进行调整;RAM组寻址出数据;蝶形输入选择模块将数据放入输入端;蝶形模块进行数据的蝶形运算;蝶形输出选择模块将输出数据存回RAM组。本发明能提升多项式乘法器的性能,加快计算速度,尽量减少资源消耗,缩短时间周期。

本发明授权面向后量子加密Kyber方案的NTT多项式乘法器的硬件电路在权利要求书中公布了:1.一种面向后量子加密Kyber方案的NTT多项式乘法器的硬件电路,其特征在于,包括:状态机控制模块、索引生成模块、旋转因子地址生成模块、存储映射模块、BANK选择模块、RAM组、旋转因子ROM、蝶形输入选择模块、蝶形输出选择模块、蝶形模块,其中,所述蝶形模块包括:第一蝶形单元、第二蝶形单元;每个蝶形单元包括:模加模块、模减模块、模乘模块; 所述状态机控制模块根据外部的信号对当前状态进行转移,并生成转移后的状态、sel选择信号、阶段p、组数k和轮数m;所述状态包括:NTT状态、PWM0状态、PWM1状态和INTT状态; 所述索引生成模块根据转移后的状态以及sel选择信号、阶段p、组数k和轮数m生成一对索引i、j; 所述存储映射模块将一对索引i、j分别映射成一对地址a0、a1和一对BANK号b0、b1; 所述BANK选择模块根据一对BANK号b0、b1和一对地址a0、a1进行处理后,得到选择后的地址a0’、a1’; 若转移后的状态为NTT状态,则所述RAM组根据一对BANK号b0、b1和地址a0’、a1’寻址出对应的2d位的数据S2k+1S2k和2d位的数据S2l+1S2l;其中,d表示位宽; 所述蝶形输入选择模块将数据S2k+1S2k和数据S2l+1S2l拆分成4个d位的数据S2k+1,数据S2k,数据S2l+1,数据S2l,再将数据S2k+1和数据S2l+1放入第一蝶形单元,将数据S2k和数据S2l放入第二蝶形单元; 所述旋转因子地址生成模块根据阶段p和组数k生成相应的旋转因子地址; 所述旋转因子ROM根据旋转因子地址读出d位的旋转因子wi; 对于第一蝶形单元,第一模乘模块将d位的旋转因子wi与d位的数据S2l+1相乘,得到2d位的乘法结果X1=wi×S2l+1,通过查找表和巴雷特约减法对X1进行处理后获得模数为q以内的数据Y0;第一模加模块将d位的数据S2k+1和d位的数据Y0进行相加后,得到加法结果S2k+1+Y0,判断S2k+1+Y0是否超过q,若超过,则S2k+1+Y0减去q,否则,S2k+1+Y0保持不变,从而得到输出结果S’2k+1;第一模减模块将S2k+1与Y0进行相减后,得到减法结果S2k+1-Y0,并判断S2k+1-Y0是否小于0,若小于,则S2k+1-Y0加上q,否则,S2k+1-Y0保持不变,从而获得模数为q以内的输出结果S’2l+1; 对于第二蝶形单元,第二模乘模块将d位的旋转因子wi与d位的数据S2l相乘,得到2d位的乘法结果X0=wi×S2l,通过查找表和巴雷特约减法对X0进行处理后,获得模数为q以内的数据Y1;第二模加模块将d位的数据S2k和d位的乘法结果Y1进行相加后,得到加法结果S2k+Y1,判断S2k+Y1是否超过q,若超过,则S2k+Y1减去q,否则,S2k+Y1保持不变,从而得到输出结果S’2k;第二模减模块将S2k与Y1进行相减后,得到减法结果S2k-Y1,判断S2k-Y1是否小于0,若小于,则S2k-Y1加上q,否则,S2k-Y1保持不变,从而获得模数为q以内的输出结果S’2l; 所述蝶形输出选择模块将4个d位的输出结果S’2k+1,输出结果S’2k,输出结果S’2l+1,输出结果S’2l合并成2d位的数据S’2k+1S’2k和2d位的数据S’2l+1S’2l,并根据一对地址a0、a1和一对BANK号b0、b1,将两个2d位的数据S’2k+1’S’2k和数据S’2l+1S’2l存回至RAM组; 若转移后的状态为PWM0状态,则所述RAM组根据一对BANK号b0、b1和一对地址a0’、a1’寻址出对应的2d位的数据S2k+1S2k和2d位的数据A2k+1A2k; 所述蝶形输入选择模块将2d位的数据S2k+1S2k和2d位的数据A2k+1A2k拆分成4个d位的数据S2k+1,数据S2k,数据A2k+1,数据A2k,再将数据S2k+1,数据S2k,数据A2k+1放入第一蝶形单元,将数据A2k+1,数据A2k,数据S2k放入第二蝶形单元; 对于第一蝶形单元,第一模加模块将d位的数据S2k+1和d位的数据S2k进行相加后,得到加法结果S2k+1+S2k,判断S2k+1+S2k是否超过q,若超过,则S2k+1+S2k减去q,否则,S2k+1+S2k保持不变,从而得到模数为q以内的输出结果S’2k;第一模乘模块将d位的数据A2k+1与d位的数据S2k+1相乘,得到2d位的乘法结果X2=A2k+1×S2k+1,通过查找表和巴雷特约减法对X2进行处理,获得模数为q以内的输出结果M2k; 对于第二蝶形单元,第二模加模块将d位的数据A2k+1和d位的数据A2k进行相加后,得到加法结果A2k+1+A2k,判断A2k+1+A2k是否超过q,若超过,则A2k+1+A2k减去q,否则,A2k+1+A2k是保持不变,从而得到模数为q以内的输出结果S’2k+1;第二模乘模块将d位的数据A2k与d位的数据S2k相乘,得到2d位的乘法结果X3=A2k×S2k,通过查找表和巴雷特约减法对X3进行处理,获得模数为q以内的输出结果M2k+1; 所述蝶形输出选择模块将4个d位的输出结果S’2k+1,输出结果S’2k,输出结果M2k+1,输出结果M2k合并成2d位的数据S’2k+1S’2k和2d位的数据M2k+1M2k,并根据一对地址a0、a1和一对BANK号b0、b1将两个2d位的数据S’2k+1S’2k和数据M2k+1M2k存回至RAM组; 若转移后的状态为PWM1状态,则所述RAM组根据一对BANK号的b0、b1和地址a0’、a1’寻址出对应的2d位的数据S2k+1S2k和2d位的数据M2k+1M2k; 所述旋转因子地址生成模块根据阶段p和组数k生成相应的旋转因子地址; 所述旋转因子ROM根据旋转因子地址生成的地址读出d位的旋转因子wi; 所述蝶形输入选择模块将2d位的数据S2k+1S2k和2d位的数据M2k+1M2k拆分成4个d位的数据S2k+1,数据S2k,数据M2k+1,数据M2k,再将M2k,S2k,S2k+1放入第一蝶形单元,将M2k,M2k+1,w放入第二蝶形单元; 对于第一蝶形单元,第一模乘模块将d位的数据S2k+1与d位的数据S2k进行相乘后,得到2d位的相乘结果X=S2k+1×S2k,通过查找表和巴雷特约减法X进行处理,获得模数为q以内的输出结果p,第一模加模块将M2k与p进行相加后,得到加法结果M2k+p,判断M2k+p是否超过q,若超过,则M2k+p减去q,否则,M2k+p保持不变,从而得到模数为q以内的输出结果h2i+1 对于第二蝶形单元,第二模加模块将d位的数据M2k+1与d位的数据M2k进行相加,得到加法结果M2k+1+M2k,判断M2k+1+M2k是否超过q,若超过,则M2k+1+M减去q,否则,M2k+1+M保持不变,从而模数为q以内的输出结果r;第二模乘模块将d位的旋转因子w与d位的M2k+1进行相乘后,得到2d位的乘法结果X=w×M2k+1,通过查找表和巴雷特约减法X进行处理,获得模数为q以内的输出结果p;第二模减模块将r与p进行相减后,得减法结果r-p,判断r-p是否小于0,若小于,则r-p是加上q,否则,r-p是保持不变,从而得到模数为q以内的输出结果h2i 所述蝶形模块将p与p进行交互,得到第一蝶形单元输出结果h’2i+1=S2i×S2i+1-M2i+M2i+1,第二蝶形单元输出结果h’2i=M2i+M2i+1×wi; 所述蝶形输出选择模块将蝶形模块的d位的h’2i+1和d位的h’2i合并成一个2d位的数据h’2i+1h’2i,并根据一对地址a0、a1和一对BANK号b0、b1,将2d位的数据h’2i+1h’2i存回至RAM组; 若转移后的状态为INTT状态,则所述RAM组根据一对BANK号b0、b1和地址a0’、a1’寻址出对应的2d位的数据S2k+1S2k和2d位的数据S2l+1S2l; 所述蝶形输入选择模块将数据S2k+1S2k和数据S2l+1S2l拆分成4个d位的数据S2k+1,数据S2k,数据S2l+1,数据S2l,再将数据S2k+1,数据S2l+1放入第一蝶形单元,将数据S2k,数据S2l放入第二蝶形单元; 所述旋转因子地址生成模块根据阶段p和组数k生成相应的旋转因子地址; 所述旋转因子ROM根据旋转因子地址读出d位的旋转因子wi; 对于第一蝶形单元,第一模加模块将d位的数据S2k+1和d位的数据S2l+1进行相加后,得到加法结果S2k+1+S2l+1,若S2k+1+S2l+1为偶数,则得到结果S2k+1+S2l+12;若S2k+1+S2l+1为奇数,则判断S2k+1+S2l+1是否超过q,若超过q,则得到结果S2k+1+S2l+12-f,否则,得到结果S2k+1+S2l+12+e,从而获得模数为q以内的输出结果S’2k+1;第一模减模块将S2k+1与S2l+1进行相减后,得到减法结果S2k+1-S2l+1,判断S2k+1-S2l+1是否小于0,若小于,则S2k+1-S2l+1加上q,否则,S2k+1-S2l+1保持不变,从而获得模数为q以内的输出结果c2;若c2为奇数,则将c2除以2再加上e,即c22+e;若为偶数,则将c2除2,即c22,从而获得模数为q以内的输出结果c3;第一模乘模块将d位的旋转因子wi与d位的c3相乘后,得到2d位的乘法结果X6=wi×c3,记为,通过查找表和巴雷特约减法对X6进行处理后,获得模数为q以内的输出结果S’2l+1; 对于第二蝶形单元,第二模加模块将d位的S2k和d位的S2l进行相加后,得到加法结果S2k+S2l,若S2k+S2l为偶数,则得到结果S2k+S2l2;若S2k+S2l为奇数,则判断S2k+S2l是否超过q,若超过q,则得到结果S2k+S2l2-f,否则,得到结果S2k+S2l2+e,从而获得模数为q以内的输出结果S’2k+1;第二模减模块将d位的S2k与d位的S2l进行相减后,得到减法结果S2k-S2l,判断S2k-S2l是否小于0,若小于,则S2k-S2l加上q,否则,S2k-S2l保持不变,从而获得模数为q以内的输出结果c0;若为奇数,则将c0除以2再加上e,即c02+e;若为偶数,则将c0除以2,即c02,从而获得模数为q以内的输出结果c1;第二模乘模块将d位的旋转因子wi与d位的c1相乘,得到2d位的乘法结果X7=wi×c1,通过查找表和巴雷特约减法对X7进行处理后,获得模数为q以内的输出结果S’2l; 所述蝶形输出选择模块将4个d位的输出结果S’2k+1,S’2k,S’2l+1,S’2l合并成2d位的数据S’2k+1S’2k和2d位的数据S’2l+1S’2l,并根据一对地址a0、a1和一对BANK号b0、b1,将两个2d位的数据S’2k+1S’2k和S’2l+1S’2l存回至RAM组。

如需购买、转让、实施、许可或投资类似专利技术,可联系本专利的申请人或专利权人合肥工业大学,其通讯地址为:230009 安徽省合肥市包河区屯溪路193号;或者联系龙图腾网官方客服,联系龙图腾网可拨打电话0551-65771310或微信搜索“龙图腾网”。

以上内容由龙图腾AI智能生成。

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。