【技术实现步骤摘要】
【国外来华专利技术】随机数生成器
本公开涉及生成随机数。
技术介绍
在对大数据流进行分类,洗牌和/或采样以保持属于客户端的数据安全时,随机化算法通常依赖于伪随机数生成器(PRNG)。PRNG使用确定性算法从被称为种子的随机输入以非常快的速度生成伪随机数。当对手可以预测PRNG的行为时,依赖于PRNG的算法可能失去其性能保证。在提供对对手的抗攻击的同时,强PRNG通常遭受缓慢的应变方法时间。另一方面,快速PRNG通常容易预测,使得PRNG容易受到攻击者/对手的意外关联或利用的攻击。因此,当为随机化应用选择PRNG时,开发者常常不得不确定适当的安全/速度折衷。通常,开发者不知道随机化应用可能易受对手攻击,因此不愿牺牲安全的速度。审计成千上万的随机生成器使用来识别安全/速度折衷的任务是因为它昂贵而令人怯步。
技术实现思路
本公开的一个方面提供了一种用于生成伪随机数的方法。该方法包括通过数据处理硬件初始化具有包括内部位和外部位的2048位的状态的伪随机数生成器(PRNG)。内部位包括2048位的前128位,外部位包括2048位的剩余位。该方法还包括由数据处理硬件通过从密钥源检索高级加密标准(AES)轮密钥来置换PRNG的状态。该方法还包括通过使用AES轮密钥执行轮函数,来将PRNG的状态置换阈值次数。轮函数包括将具有16个128位的分支的Feistel网络中的奇数分支与Feistel网络中的对应的偶数相邻分支的函数进行异或运算。对于阈值次数,该方法还包括通过将每个128位的分支洗牌成规定的顺序来置换PRNG的状态。该方法还包 ...
【技术保护点】
1.一种用于生成随机数(202)的方法(300),其特征在于,所述方法(300)包括:/n由数据处理硬件(142)初始化伪随机数生成器(PRNG)(200),所述伪随机数生成器(PRNG)(200)具有包括内部位(210i)和外部位(210o)的2048位的状态,所述内部位(210i)包括所述2048位的前128位,所述外部位(210o)包括所述2048位的剩余位;/n由所述数据处理硬件(142)通过以下步骤来置换所述PRNG(200)的所述状态:/n从密钥源(190)检索高级加密标准(AES)轮密钥(192);以及/n针对阈值次数:/n使用所述AES轮密钥(192)来执行轮函数,所述轮函数包括将具有16个128位的分支(220)的Feistel网络中的奇数分支(220)与所述Feistel网络中的对应的偶数相邻分支(220)的函数进行异或运算;和/n将每个128位的分支(220)洗牌成规定的顺序;以及/n由所述数据处理硬件(142)执行置换后状态的所述内部位(210i)与先前状态的所述内部位(210i)的异或运算。/n
【技术特征摘要】
【国外来华专利技术】1.一种用于生成随机数(202)的方法(300),其特征在于,所述方法(300)包括:
由数据处理硬件(142)初始化伪随机数生成器(PRNG)(200),所述伪随机数生成器(PRNG)(200)具有包括内部位(210i)和外部位(210o)的2048位的状态,所述内部位(210i)包括所述2048位的前128位,所述外部位(210o)包括所述2048位的剩余位;
由所述数据处理硬件(142)通过以下步骤来置换所述PRNG(200)的所述状态:
从密钥源(190)检索高级加密标准(AES)轮密钥(192);以及
针对阈值次数:
使用所述AES轮密钥(192)来执行轮函数,所述轮函数包括将具有16个128位的分支(220)的Feistel网络中的奇数分支(220)与所述Feistel网络中的对应的偶数相邻分支(220)的函数进行异或运算;和
将每个128位的分支(220)洗牌成规定的顺序;以及
由所述数据处理硬件(142)执行置换后状态的所述内部位(210i)与先前状态的所述内部位(210i)的异或运算。
2.如权利要求1所述的方法(300),其特征在于,初始化所述PRNG(200)包括:
将所述PRNG(200)的状态设置为零;和
将所述外部位(210)设置为任意种子值。
3.如权利要求1所述的方法(300),其特征在于,初始化所述PRNG(200)包括将所述PRNG(200)的所述状态设置为先前状态。
4.如前述权利要求中任一项所述的方法(300),其特征在于,所述阈值次数包括至少17次。
5.如前述权利要求中任一项所述的方法(300),其特征在于,所述轮函数包括至少两轮AES。
6.如前述权利要求中任一项所述的方法(300),其特征在于,所述至少两轮AES中的每一轮使用与其它轮AES的所述AES轮密钥(192)不同的对应AES轮密钥(192)。
7.如前述权利要求中任一项所述的方法(300),其特征在于,将所述Feistel网络的所述奇数分支(220)与所述Feistel网络的对应的偶数相邻分支(220)的所述函数进行异或运算得到随机位(210),所述外部位(210o)包括所得到的所述随机位(210)。
8.如前述权利要求中任一项所述的方法(300),其特征在于,在执行所述轮函数并将每个分支(220)洗牌八次之后,将每个128位的分支(220)洗牌成所述规定的顺序实现了完全子分支扩散。
9.如前述权利要求中任一项所述的方法(300),其特征在于,所述规定的顺序包括{7,2,13,4,11,8,3,6,15,0,9,10,1,14,5,12}。
10.如前述权利要求中任一项所述的方法(300),其特征在于,还包括防止访问所述内部位(210i)并允许访问所述外部位(210o)。
11.一种系统(100),其特征在于,包括:
数据处理硬件(14...
【专利技术属性】
技术研发人员:扬·瓦森贝格,罗伯特·欧伯克,于尔基·阿拉库夹拉,伊曼纽尔·莫格纳特,
申请(专利权)人:谷歌有限责任公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。