[发明专利]产生伪随机数的方法无效
申请号: | 200680038731.9 | 申请日: | 2006-10-10 |
公开(公告)号: | CN101292223A | 公开(公告)日: | 2008-10-22 |
发明(设计)人: | 海克·诺伊曼;斯特芬·塑尔策;马蒂亚斯·弗格尔 | 申请(专利权)人: | NXP股份有限公司 |
主分类号: | G06F7/58 | 分类号: | G06F7/58 |
代理公司: | 北京天昊联合知识产权代理有限公司 | 代理人: | 陈源;张天舒 |
地址: | 荷兰艾*** | 国省代码: | 荷兰;NL |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 产生 随机数 方法 | ||
技术领域
本发明涉及通过单向函数的迭代应用产生伪随机数的方法,其中单向函数根据起始值和密钥产生伪随机数,并且其中迭代从随机起始值和随机密钥开始,并且本发明还涉及包括相应的程序代码的数据载体。
背景技术
用于产生伪随机数的一种已知思想包括利用可靠的单向函数f(k,s)的伪随机数发生器,其中k是加密密钥,s是随机选择的起始值。根据预定分配来选择这种密钥k,并且在伪随机数发生器产生伪随机数期间使用该密钥k。密钥k在整个产生过程中都保持相同。一旦选择了起始值s,则根据以下规则迭代地产生伪随机数Xi:
x1=f(k,s)
xi=f(k,xi-1)其中i>1
典型地,按照这种方式产生的伪随机数的长度是有限的。一旦达到预定极限,伪随机数发生器就会重新初始化,而起始值s被重新选择。密钥k继续保持相同。
这种实现方式的一个缺点就是,知道加密密钥k的攻击者将可能计算出从最近的初始化到下一次初始化之间的所有的伪随机数。因此,这一特性极大地限制了该类伪随机数发生器。
从WO 2005/029315A1可以进一步得知,一旦伪随机数发生器初始化,除了新的起始值s之外,还使用了新的加密密钥k。此外,在计算各个伪随机数时,该加密密钥k每次是由起始值s重新计算出的。该方法的缺点是每种情况下的下一起始值s+1在随机数的计算期间均被存储在非易失存储器中。因此,例如,如果攻击者能从非易失存储器中读取各个下一起始值s+1甚至操纵它,那么攻击者会危及伪随机数发生器的内部状态。
发明内容
本发明的目的是提供一种产生伪随机数的方法,其至少部分地避免了上述缺点。通过权利要求1中的方法和权利要求9中的数据载体实现了该目的。从属权利要求中定义了其它有利的进展。
本发明提供了一种通过迭代方式产生伪随机数的方法,其至少包括应用于单向函数的两个迭代步骤,其中,所述单向函数根据起始值和密钥产生伪随机数的一部分,并且其中,迭代采用随机起始值和随机密钥进行初始化,并且其中,在每个迭代步骤中,用于迭代步骤的起始值和密钥都是由利用了所述单向函数的先前迭代步骤中所确定的伪随机数的所述部分确定的。
用于迭代步骤的起始值和密钥由先前迭代步骤的伪随机数的一部分直接产生。起始值和密钥并没有被立即存储起来。因此,攻击者不可能读取或者改变这些值。
在进一步的实施例中,在利用了所述单向函数的各个先前迭代步骤中确定的伪随机数的所述部分被分成两个部分,其中一个部分被用于确定用于迭代步骤的起始值和密钥,并且另一部分是先前迭代步骤的伪随机数的一部分。
一种产生伪随机数的方法包括以下步骤:
-第一步骤,定义随机起始值和随机密钥;
-第二步骤,利用所述单向函数,根据起始值和密钥,确定伪随机数的一部分,其中,在第一迭代步骤中,起始值对应于来自第一步骤的随机起始值,而密钥对应于来自第一步骤的随机密钥;
-第三步骤,将在第二步骤中确定的伪随机数的所述部分分成两个部分;
-第四步骤,由在第三步骤中确定的两个部分中的一个部分确定新的起始值和新的密钥,其中在第三步骤中确定的两个部分中的另一个部分是伪随机数的一部分;
-第二步骤至第四步骤的重复,直到达到预定次数的重复。
在第四步骤中,在第三步骤中确定的两个部分中的一个部分被分成两个子部分,其中新的起始值由第一子部分组成,新的密钥由第二子部分组成。新的起始值还可以由第二子部分组成,而新的密钥还可以由第一子部分组成。
在进一步的实施例中,在每种情况下,仅仅利用所确定的子部分的随机选择部分来确定起始值和密钥。
所确定的子部分的所选部分随着每个迭代步骤而改变,这具有特别的优势。不再可能由密钥和起始值进行随机选择部分的反算。
在第四步骤中,仅仅在第三步骤中确定的两个部分中的另一部分的随机选择部分被用作伪随机数的一部分。同样,在这种情况下,不再可能由伪随机数的部分进行随机选择部分的反算。
本发明还提供一种在多个步骤中产生组合的伪随机数的方法,其中,一个步骤执行产生伪随机数的方法,并且其中每个步骤都采用新的随机起始值和新的随机密钥进行初始化。
一旦到达预定极限,就通过产生伪随机数的方法的重复应用来扩展将要产生的伪随机数。
本发明还提供一种数据载体,其包括程序代码,该程序代码用于产生与根据本发明的方法一致的伪随机数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于NXP股份有限公司,未经NXP股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200680038731.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:消除信号路径中的时间延迟
- 下一篇:消除信号路径中的时间延迟