买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明公布】一种用于Kyber算法的高效Hash计算单元_宁波大学_202311338987.3 

申请/专利权人:宁波大学

申请日:2023-10-17

公开(公告)日:2024-01-26

公开(公告)号:CN117454996A

主分类号:G06N10/20

分类号:G06N10/20;G06N10/60;G06N10/40

优先权:

专利状态码:在审-实质审查的生效

法律状态:2024.02.13#实质审查的生效;2024.01.26#公开

摘要:本发明公开了一种用于Kyber算法的高效Hash计算单元,包括数据交互单元、Keccak‑1600模块、第一数据选择器、拒绝采样模块和中心二项分布采样模块,数据交互单元既能接收外部数据,也能接收Keccak‑1600模块发送的采集完成信号和Keccak‑1600计算完成信号,并向Keccak‑1600模块输出保存完成信号,由此实现了将Keccak‑1600计算与吸收、挤出和抽样操作并行执行,同时,数据交互单元保存Keccak‑1600模块的输出数据,向拒绝采样模块和中心二项分布采样模块输出其所需数据,拒绝采样模块和中心二项分布采样模块可以和Keccak‑1600模块并行计算,且拒绝采样模块引入拯救数据和模约简计算;优点是能够降低硬件资源消耗,计算速度快,计算效率较高,且拒绝采用率较低,并且能够降低伪随机数资源浪费率。

主权项:1.一种用于Kyber算法的高效Hash计算单元,其特征在于包括数据交互单元、Keccak-1600模块、第一数据选择器M1、拒绝采样模块和中心二项分布采样模块;所述的数据交互单元具有四种工作模式:SHAKE-128模式、SHAKE-256模式、SHA3-256模式以及SHA3-512模式,所述的数据交互单元具有四种输出方式:Hash值输出方式、拒绝采样输出方式、η等于2的中心二项分布采样输出方式以及η等于3的中心二项分布采样输出方式;所述的数据交互单元的工作模式和输出方式均根据Kyber算法计算需求进行设定;所述的数据交互单元输入位宽为64位,当所述的数据交互单元的输出方式被设定为Hash值输出方式时,其工作模式被设定为SHA3-256模式或者SHA3-512模式,输出位宽为64位;当所述的数据交互单元的输出方式被设定为拒绝采样输出方式时,其工作模式被设定为SHAKE-128模式,输出位宽为72位;当所述的数据交互单元的输出方式被设定为η等于2的中心二项分布采样输出方式时,其工作模式被设定为SHAKE-256模式,输出位宽为144位;当所述的数据交互单元的输出方式被设定为η等于3的中心二项分布采样输出方式时,其工作模式被设定为SHAKE-256模式,输出位宽为144位;所述的数据交互单元具有吸收阶段和挤出阶段;当所述的数据交互单元工作时,所述的数据交互单元先进入吸收阶段,在所述的数据交互单元进入吸收阶段时,外部数据输出至所述的数据交互单元处,所述的数据交互单元开始接收外部数据,所述的数据交互单元每接收到r位数据,就保存接收到的r位数据,完成一个数据吸收过程,所述的数据交互单元每完成一个数据吸收过程,就发送一个表示数据保存完成信号给所述的Keccak-1600模块,通知所述的Keccak-1600模块来采集当前数据吸收过程保存的r位数据,当所述的Keccak-1600模块采集完成当前数据吸收过程保存的r位数据后,所述的数据交互单元先将当前数据吸收过程保存的r位数据清空,然后进入下一个数据吸收过程,周而复始,直至外部数据的最后一位被接收到,此时所述的数据交互单元处于最后一个数据吸收过程,如果最后一个数据吸收过程接收的数据位数小于r,则对接收的数据进行高位补零填充为r位数据进行保存,填充规则为首先在最后输入的数据后添加一位1再添加若干位0最后再添加1使总的数据长度为r,如果等于r,则直接保存,完成最后一个数据吸收过程,并发送一个表示数据保存完成信号给所述的Keccak-1600模块,通知所述的Keccak-1600模块来采集最后一个数据吸收过程保存的r位数据,当所述的Keccak-1600模块采集完成最后一个数据吸收过程保存的r位数据后,所述的数据交互单元先将最后一个数据吸收过程保存的r位数据清空,然后进入挤出阶段;其中,当所述的数据交互单元的工作模式为SHAKE-128模式时,r=1344,当所述的数据交互单元的工作模式为SHAKE-256模式时,r=1088,当所述的数据交互单元的工作模式为SHA3-256模式时,r=1088,当所述的数据交互单元的工作模式为SHA3-512模式时,r=576;所述的Keccak-1600模块具有前期工作阶段和后期工作阶段,在前期工作阶段,所述的Keccak-1600模块会接收到所述的数据交互单元所发送的数据保存完成信号,所述的Keccak-1600模块每收到一个数据保存完成信号,就能够从所述的数据交互单元处采集得到一个r位数据,所述的Keccak-1600模块每从所述的数据交互单元处采集得到一个r位数据时,就会向所述的数据交互单元发送一个采集完成信号,以使所述的数据交互单元能够开始清空其内存储的r位数据,同时,将当前采集的r位数据作为输入数据,进行一次计算,所述的Keccak-1600模块每完成一次计算,就会像所述的数据交互单元输出一个Keccak-1600计算完成信号,同时判断是否收到下一个数据保存完成信号,如果收到,则再次从所述的数据交互单元处采集得到一个r位数据,周而复始,直至采集得到最后一个r位数据并完成一次计算,此时所述的Keccak-1600模块进入后期工作阶段;其中,所述的Keccak-1600模块将当前采集的r位数据作为输入数据,进行一次计算的具体过程为:将当前采集到的r位数据与其内寄存数据进行异或吸收,随后通过Keccak-1600运算将r位数据进行置换并更新其内寄存数据;当所述的Keccak-1600模块进入后期工作阶段时,所述的Keccak-1600模块先将当前寄存数据作为运算数据传输给所述的数据交互单元,然后开始周期性的对其内寄存数据进行Keccak-1600运算以更新其内寄存数据,且每完成一个周期的Keccak-1600运算,就将当前更新的寄存数据再次作为运算数据传输至所述的数据交互单元,并向所述的数据交互单元输出一个keccak-1600计算完成信号,直到所述的Keccak-1600模块输出的运算数据的数量满足Kyber算法所需求的数量后,所述的Keccak-1600模块停止工作;在所述的数据交互单元进入挤出阶段后,每收到所述的Keccak-1600模块输出至其处的一个运算数据,所述的数据交互单元就按照当前设定的输出方式进行运算数据输出,具体为:如果所述的数据交互单元当前被设定为Hash值输出方式,且所述的数据交互单元的工作模式为SHA3-256模式,此时所述的数据交互单元将当前接收到的运算数据从低位到高位,以每个周期64位数据的速度直接输出,输出累计256位数据时停止输出;如果所述的数据交互单元当前被设定为Hash值输出方式,且所述的数据交互单元的工作模式为SHA3-512模式,此时所述的数据交互单元将当前接收到的运算数据从低位到高位,以每个周期64位数据的速度直接输出,输出累计512位数据时停止输出;如果所述的数据交互单元当前被设定为拒绝采样输出方式,则所述的数据交互单元的工作模式为SHAKE-128模式,此时所述的数据交互单元接收到的运算数据为1344位数据,所述的数据交互单元通过所述的第一数据选择器M1选择所述的拒绝采样模块,将当前收到的1344位数据划分成两部分,其中从低位开始1152位数据作为待采样数据,待采样数据从低位到高位以每个周期72位数据的速度输出至所述的拒绝采样模块,从高位开始的192位数据作为拯救数据,拯救数据根据所述的拒绝采样模块的需求输出;如果所述的数据交互单元当前被设定为η等于2的中心二项分布采样输出方式,则所述的数据交互单元的工作模式为SHAKE-256模式,此时所述的数据交互单元接收到的运算数据为1088位数据,所述的数据交互单元通过所述的第一数据选择器M1选择所述的中心二项分布采样模块,将当前收到的1088位数据以从低位到高位以每个周期48位数据的速度输出至所述的中心二项分布采样模块;如果所述的数据交互单元当前被设定为η等于3的中心二项分布采样输出方式,则所述的数据交互单元的工作模式为SHAKE-256模式,此时所述的数据交互单元接收到的运算数据为1088位数据,所述的数据交互单元通过所述的第一数据选择器M1选择所述的中心二项分布采样模块,将当前收到的1088位数据以从低位到高位以每个周期72位的速度输出至所述的中心二项分布采样模块;当所述的数据交互单元将其内待采样数据从低位到高位以每个周期72位数据的速度输出至所述的拒绝采样模块时,所述的拒绝采样模块每收到所述的数据交互单元输出至其处的一个72位数据,就将该72位数据按照输入的顺序以12位数据为一组分为6组,然后分别对每组数据进行两次比较计算,其中第一次比较计算过程为:将12位数据与Kyber算法的模数qq=3329比较,如果该组12位数据大于等于q,则第一次比较失败,立刻向所述的数据交互单元请求四位数据作为其拯救数据,此时所述的数据交互单元将其内当前拯救数据从低位到高位开始的四位数据输出至所述的拒绝采样模块,并清除该四位数据,更新其内拯救数据,当所述的拒绝采样模块收到四位数据时,先将收到的四位数据补充到该组12位数据的高位,得到16位数据,然后对该16位数据进行模约简计算,计算得到12位余数和5位商;如果该组12位数据小于q,则第一次比较成功,先直接在该组12位数据高位补零,得到16位数据,然后对该16位数据进行模约简计算,计算得到12位余数和5位商;第二次比较计算过程为:将第一次比较计算得到的5位商与19进行比较,如果5位商小于19,则第二次比较成功,将第一次比较计算得到的12位余数作为有效的拒绝采样结果输出,如果5位商大于等于19,则第二次比较失败,此时将0作为无效的拒绝采样结果输出;直至所述的拒绝采样模块输出的有效的拒绝采样结果达到256个时,所述的拒绝采样模块停止工作;当所述的数据交互单元将其内运算数据从低位到高位以每个周期48位数据的速度输出至所述的中心二项分布采样模块时,所述的中心二项分布采样模块进入η等于2的中心二项分布采样模式,所述的中心二项分布采样模块每收到所述的数据交互单元输出至其处的一个48位数据,就按照所接收48位数据的顺序从低位到高位每4位数据一组分成12组,对每组数据分别进行中心二项分布采样计算,得到每组数据对应的η等于2的12位中心二项分布采样结果输出,直至输出的12位中心二项分布采样结果的数量满足Kyber算法需求;当所述的数据交互单元将其内运算数据从低位到高位以每个周期72位数据的速度输出至所述的中心二项分布采样模块时,所述的中心二项分布采样模块进入η等于3的中心二项分布采样模式,所述的中心二项分布采样模块每收到所述的数据交互单元输出至其处的一个72位数据,就按照所接收的72位数据的顺序从低位到高位每6位数据一组分成12组,对每组数据分别进行中心二项分布采样计算,得到每组数据对应的η等于3的12位中心二项分布采样结果输出,直至输出的12位中心二项分布采样结果的数量满足Kyber算法需求。

全文数据:

权利要求:

百度查询: 宁波大学 一种用于Kyber算法的高效Hash计算单元

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