[发明专利]一种基于FPGA的大素数暨大素数族的快速生成方法在审
| 申请号: | 201510394615.1 | 申请日: | 2015-07-08 |
| 公开(公告)号: | CN105071928A | 公开(公告)日: | 2015-11-18 |
| 发明(设计)人: | 路博超;刘诗章 | 申请(专利权)人: | 路博超;刘诗章 |
| 主分类号: | H04L9/08 | 分类号: | H04L9/08 |
| 代理公司: | 暂无信息 | 代理人: | 暂无信息 |
| 地址: | 300110 天津市南*** | 国省代码: | 天津;12 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 fpga 素数 快速 生成 方法 | ||
1.一种基于FPGA的大素数暨大素数族的快速生成方法,其特征在于,使用计算模块和存储模块组成大素数暨大素数族生成系统,实现大素数暨大素数族生成功能;其中,
所述大素数暨大素数族生成系统使用定点整数,不同模块使用不同的定点数位宽;
所述大素数暨大素数族生成系统在每次筛选计算过程中,先进行取余计算,再进行筛选计算;
所述大素数暨大素数族生成系统使用发明专利1(“一种适用于信息加密技术应用的素数族快速生成方法”:专利申请号:201110253413.7)中的方法,通过以一个因子作为标准生成的8个位置信息,筛选出范围内含该因子的合数。
2.根据权利要求1所述的基于FPGA的大素数暨大素数族生成方法,其特征是,所述大素数暨大素数族生成系统所使用的定点整数特点具体包括:
每一个模块的定点数位宽都可以依据模块功能和输入输出数据的特点进行单独配置。针对不同大小的素数需求,可调整定点数位宽以节省硬件资源。
3.根据权利要求1所述的基于FPGA的大素数暨大素数族生成方法,其特征是,所述大素数生成系统进行筛选过程的特点具体包括:
大素数暨大素数族生成系统在筛选出范围内所有包含同一因子的合数前,需进行以该因子为除数,初始位置为被除数的取余计算。
每一次的筛选过程分为两步,一步为取余过程,另一步为比较过程,通过取余模块和比较模块完成。两个模块工作同时进行,互不干扰。比较模块在取余模块计算过程中,同时也在对可能素数族区域进行筛选。
4.根据权利要求1所述的基于FPGA的大素数暨大素数族生成方法,其特征是,所述大素数生成系统使用专利1中的方法进行筛选过程的特点具体包括:
筛选过程通过比较模块进行,筛选过程中不进行任何加减乘除运算。
一个比较模块对应于8个可能素数族中的一个可能素数族ai(1≤i≤8),从指定范围内筛选出以ai中元素为因子的合数。比较模块以可能素数族ai中的一个元素y1作为标准,生成8个位置信息B=[b1b2b3b4b5b6b7b8]。比较模块可在任意时钟周期内,以可能素数族ai中的另一个元素y2作为标准,更新8个位置信息。通过将初始位置x取余运算后的结果与8个位置信息的比较,便可完成筛选过程。
5.根据权利要求1所述的基于FPGA的大素数暨大素数族生成方法,其特征是,包括以下步骤;
步骤1:计算初始位置x。若需获得接近e大小的素数,30(x-1)>e,x为满足条件的最小整数。建立从30(x-1)到30(x-1+n)之间的8个可能素数族M,计算FIFO模块中所有数值赋值为0;
步骤2:8个取余模块分别计算xmod31,xmod7,xmod11,xmod13,xmod17,xmod19,xmod23,xmod29,其中31、7、11、13、17、19、23、29这8个数对应于8个可能素数族的第一列中的8个数,即n=1列,为P1;
步骤3:等待8个取余模块完成第一次取余运算;
步骤4:8个取余模块将取余结果输出到对应的比较模块,然后分别计算xmod61,xmod37,xmod41,xmod43,xmod47,xmod49,xmod53,xmod59,对应于8个可能素数族中的第二列n=2,即P2。8个比较模块分别以P1中8个数为标准,生成位置信息。每个比较模块生成8个位置信息,为b1、b2、b3、b4、b5、b6、b7、b8,所有比较模块共生成8组位置信息,为B1、B2、B3、B4、B5、B6、B7、B8;
步骤5:在8个取余模块以8个可能素数族中的第二列n=2列的元素为除数,x为被除数进行计算时,比较模块进行筛选。若在第k个时钟周期,第一个比较模块接收到第一个取余模块xmod31的计算结果c1,此时第一个比较模块以31为标准生成了8个位置信息b1、b2、b3、b4、b5、b6、b7、b8。若c1=b1则输出结果的第一位为1,否则为0;若c1=b2则输出结果的第二位为1,否则为0,后依此类推,输出8位位置结果。同时,在第k个时钟周期,第二个比较模块接收到第二个取余模块xmod7的计算结果c2,此时第二个比较模块以7为标准生成了8个位置信息b1、b2、b3、b4、b5、b6、b7、b8。若c2=b1则输出结果的第一位为1,否则为0;若c2=b2则输出结果的第二位为1,否则为0,后依此类推,输出8位位置结果。后6个比较模块依此类推,8个比较模块在第k个时钟周期内共输出8个8位位置结果,将这8个结果按位进行或运算后作为计算模块的最终结果输出,与FIFO模块中第一个位置的数据按位进行或运算后,存入FIFO模块中的第一个位置;
步骤6:在第k+1个时钟周期内,在第一个比较模块中,对c1重新赋值,c1=c1+1。若c1>31,则c1=1。若c1=b1则输出结果的第一位为1,否则为0;若c1=b2则输出结果的第二位为1,否则为0,后依此类推,输出8位位置结果。后7个比较模块依此类推,8个比较模块共输出8个8位位置结果,将这8个结果按位进行或运算后作为计算模块的最终结果输出与FIFO模块中第二个位置的数据按位进行或运算后,存入FIFO模块中的第二个位置;
步骤7:在第k+2个时钟周期内,在第一个比较模块中,对c1重新赋值,c1=c1+1。若c1>31,则c1=1。若c1=b1则输出结果的第一位为1,否则为0;若c1=b2则输出结果的第二位为1,否则为0,后依此类推,输出8位位置结果。后7个比较模块依此类推,8个比较模块共输出8个8位位置结果,将这8个结果按位进行或运算后作为计算模块的最终结果输出,与FIFO模块中第三个位置的数据按位进行或运算后,存入FIFO模块中的第三个位置;
步骤8:取余模块完成xmod61,xmod37,xmod41,xmod43,xmod47,xmod49,xmod53,xmod59的计算后,结果送入比较模块,然后进行x与P3中8个数的取余计算。比较模块获得x与P2的取余计算结果后,以P2为标准生成位置信息,筛选出M中以P2中元素为因子的合数。后取余模块每完成以pi中的数为除数的取余运算后,便继续进行以pi+1中的数为除数的取余运算;而比较模块每获得一次取余模块的结果,便对M中的数进行一次筛选;
步骤9:等待m个时钟周期后,将FIFO模块中的结果输出,获得M中的所有素数的位置。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于路博超;刘诗章,未经路博超;刘诗章许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510394615.1/1.html,转载请声明来源钻瓜专利网。





