[发明专利]一种在嵌入式系统中生成大素数的方法有效
| 申请号: | 201110439890.2 | 申请日: | 2011-12-23 |
| 公开(公告)号: | CN102591618A | 公开(公告)日: | 2012-07-18 |
| 发明(设计)人: | 陆舟;于华章 | 申请(专利权)人: | 飞天诚信科技股份有限公司 |
| 主分类号: | G06F7/72 | 分类号: | G06F7/72 |
| 代理公司: | 暂无信息 | 代理人: | 暂无信息 |
| 地址: | 100085 北京市*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 嵌入式 系统 生成 素数 方法 | ||
技术领域
本发明涉及密码学领域,特别涉及一种在嵌入式系统中生成大素数的方法。
背景技术
在密码实现过程中,特别是公开密钥密码的实现过程中,需要嵌入式系统生成大素数供加密等过程使用,例如,RSA加密过程中的密钥参数需要使用嵌入式系统生成的大素数。
现有技术中,大素数的生成过程包括:首先生成长度足够的随机数;然后判断该随机数是否为素数;当确定该随机数不为素数时,则重新生成一组新随机数或对当前随机数进行适度变换,然后再次判断新随机数是否为素数,直到生成一个符合要求的随机数。
在上述生成大素数的过程中,发明人发现现有技术中至少存在如下问题:在大素数产生的过程中,需要对很多随机数进行素性检测以判断该随机数是否为素数,由于素性检测需要用到很消耗时间的模幂运算,且素性检测通过的概率并不高,大多数情况下需要寻找数百甚至上千次随机数后才能找到大素数,不适于运用在嵌入式系统中。
发明内容
鉴于现有技术的不足,为了有效的解决现有技术的不足,本发明提出了一种在嵌入式系统中生成大素数的方法。
本发明采用的技术方案如下:
一种在嵌入式系统中生成大素数的方法,应用于包括第一存储区和第二存储区的系统中,所述第一存储区存储有预设大小的标识组,所述标识组中的标识的序号为包括0在内的数值连续的整数,且不同的标识具有不同的序号;所述第二存储区包括多个存储单元,不同的存储单元中存储有不同的素数,所述方法包括以下步骤:
①、将所述第一存储区中存储的标识组中的全部标识置位;生成预定位数长度的随机数,将所述随机数存储到第三存储区,以所述第二存储区中的存储单元存储的数据为模数,对所述第三存储区存储的数据取模,得到取模值;根据所述取模值以及所述取模值对应的存储单元存储的数据,确定所述标识组中需要被复位的标识的序号,并对所述序号对应的标识进行复位;
②、判断所述标识组中是否存在置位的标识,如果存在,则执行步骤③;如果不存在,则返回步骤①;
③、根据所述随机数和所述标识组中置位的标识的序号确定待测数,对所述待测数进行素性检测,如果所述待测数通过素性检测,则将所述待测数作为大素数输出;如果所述标识组中所有置位的标识对应的待测数均未通过素性检测,则返回步骤①。
其中,所述根据所述取模值以及所述取模值对应的存储单元存储的数据,确定所述标识组中需要被复位的标识的序号,具体为:
当所述取模值为0时,将所述取模值与所述取模值对应的存储单元存储的数据的整数倍的和,作为所述需要被复位的标识的序号;
当所述取模值为奇数时,获取所述取模值对应的存储单元存储的数据与所述取模值之间的差,将所述差除以2得到的结果作为所述需要被复位的标识的序号;
当所述取模值为非零偶数时,获取所述当前取模值除以2得到的商,将所述当前素数与所述商的差作为所述需要被复位的标识的序号;
所述根据所述随机数和所述标识组中置位的标识的序号确定待测数,具体为:
将所述置位的标识的序号的2倍与所述随机数相加得到的结果,作为所述待测数。
或者,所述根据所述取模值以及所述取模值对应的存储单元存储的数据,确定所述标识组中需要被复位的标识的序号,具体为:
当所述取模值为0时,将所述取模值与所述取模值对应的存储单元存储的数据的整数倍的和,作为所述需要被复位的标识的序号;
当所述取模值为奇数时,获取所述取模值对应的存储单元存储的数据与所述取模值的和,将所述和除以2得到的商作为所述需要被复位的标识的序号;
当所述取模值为非零偶数时,将所述取模值除以2得到的商作为所述需要被复位的标识的序号;
所述根据所述随机数和所述标识组中置位的标识的序号确定待测数,具体为:
将所述随机数与所述置位的标识的序号的2倍的差,作为所述待测数。
其中,所述生成预定位数长度的随机数,包括:
生成预定位数长度的二进制数;
判断所述二进制数的最低位是否为1,如果所述最低位为1,则将所述二进制数作为所述随机数;如果所述最低位不为1,则将所述最低位置为1,并将所述二进制数作为所述随机数。
其中,所述生成预定位数长度的随机数,包括:
生成预定位数长度的二进制数;
判断所述二进制数的最高位是否为1,如果所述最高位为1,则将所述二进制数作为所述随机数;如果所述最高位不为1,则将所述最高位置为1,并将所述二进制数作为所述随机数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于飞天诚信科技股份有限公司,未经飞天诚信科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110439890.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种远程参与停车场车位统计的方法
- 下一篇:冰箱





