求个最接近真自动分析伪随机数软件的软件

[0001]本发明公开了真自动分析伪随机數软件生成方法属于计算机安全的技术领域。

[0002]现代计算机采用的是存储程序结构即冯-诺伊曼体系结构,冯-诺伊曼结构是一种确定性通鼡图灵机的实现该结构最主要的特征是将存储和程序分开,程序由CPU执行修改存储数据,从而完成各种计算任务.程序(即软件)可分解为┅条条CPU指令,其执行结果具有确定性这也正是确定性图灵机的特征。所以传统的纯软件方法无法产生真自动分析伪随机数软件,只能產生伪自动分析伪随机数软件

[0003]自动分析伪随机数软件广泛应用于科学计算如蒙特卡罗算法,计算机安全领域如各种加密算法中特别是加密算法对自动分析伪随机数软件的随机性,不可预测性和不可重放性都有很高的要求国外曾有安全公司描述了一种针对伪自动分析伪隨机数软件生成器的重放攻击,通过对一种扑克牌游戏的洗牌算法进行分析发现该洗牌算法采用的伪自动分析伪随机数软件生成器的种孓来自于系统时间,如果将作弊的计算机与游戏服务器的时间进行同步则破解该洗牌算法易如反掌。

[0004]基于以上现实,对安全性要求很高的程序更多的采用硬件真自动分析伪随机数软件生成器通过硬件产生真自动分析伪随机数软件,利用的是各种环境噪声通过硬件传感设备收集起来以供软件使用。硬件产生真自动分析伪随机数软件的研究热点主要集中在产生速度和序列均匀上其中速度是瓶颈,均匀性可以通过软件方法多次组合来弥补但是硬件毕竟是需要成本的,而且实施也比较麻烦对环境的要求也比较高。近期Intel的CPU中集成了一种嫃自动分析伪随机数软件生成器但是对原先的老计算机系统又无法产生作用。

[0005]本发明所要解决的技术问题是针对上述【背景技术】的不足提供了真自动分析伪随机数软件生成方法,通过计算机纯软件机制生成真自动分析伪随机数软件解决了软件伪自动分析伪随机数软件生成易于被攻破、硬件伪自动分析伪随机数软件生成器存在速度瓶颈以及成本消耗大的技术问题。

[0006]本发明为实现上述发明目的采用如下技术方案:

真自动分析伪随机数软件生成方法包括如下步骤:

A.将采用并行执行机制的干扰程序插入软件程序;

B.干扰程序被激活后与伪自动分析伪随机数软件生成程序重叠运行生成真自动分析伪随机数软件;

C.干扰程序退出运行。

[0007]作为所述真自动分析伪随机数软件生成方法的进一步优化方案步骤A中将所述干扰程序插入多个线程。

[0008]进一步的所述真自动分析伪随机数软件生成方法,步骤B中干扰程序在多线程时间片箌达时被激活步骤C中干扰程序在时间片满后退出运行。

[0009]作为所述真自动分析伪随机数软件生成方法的进一步优化方案步骤A中将所述干擾程序插入系统事件。

[0010]进一步的所述真自动分析伪随机数软件生成方法,步骤B中干扰程序在系统事件产生时被激活步骤C中干扰程序运荇设定时长后退出运行。

[0011 ] 更进一步的所述真自动分析伪随机数软件生成方法中,干扰程序与伪自动分析伪随机数软件生成程序相同

[0012]本發明采用上述技术方案,具有以下有益效果:通过在软件程序中插入采用并行执行机制的干扰程序灵活选取插入点和插入时机,重叠执行偽自动分析伪随机数软件生成程序和干扰程序通过纯软件机制生成的真自动分析伪随机数软件,具有随机性、不可预测性、良好的正态汾布性能够很好的对抗重放攻击,具备很好的安全性

[0013]图1为真自动分析伪随机数软件生成的示意图。

[0014]本发明所述真自动分析伪随机数软件生成方法如图1所示,包括如下步骤:

(1)编写一个干扰器软件程序该程序可以是一个特定代码的程序,或者直接就是采用系统原有的伪自動分析伪随机数软件生成器的代码;

(2)将该干扰器软件程序插入将要部署的计算机软件系统中可以将干扰器放入一个独立的线程或多个线程,也可以将其放入系统事件如系统空闲事件/用户交互事件等(如鼠标移动点击用户击键操作等)中,等待合适时机运行;

(3)干扰器在被激活時(多线程时间片到达或者系统事件产生)运行对原伪自动分析伪随机数软件生成器的数据进行破坏,然后在时间片满或者运行特定时间后退出

[0015]干扰器软件程序实际上是与宿主程序编译在一起,部署后的程序是二者的结合体干扰器程序与宿主程序共享内存,从而干扰器代碼能够无障碍的修改宿主程序所使用的伪随机序列生成代码(如C/C++语言的rand函数Pascal/Delphi语言的random函数)中所使用的种子或结果数据。如果宿主程序中的种孓数据不易取得可以直接定义一个新伪自动分析伪随机数软件函数取代原有函数供宿主程序调用,总之目的是给干扰器创造执行条件。干扰器可以直接采用不加锁多线程运行也可以在各种随机事件中激活,如用户鼠标移动事件用户键盘事件,网卡数据包监听事件等各种能够在不可预测时间激活的事件等等此处所提到的方法未能包含所有系统事件。本领域技术人员可以据此扩展更多的可能插入点插入点越多所造成的干扰越大,所生成的自动分析伪随机数软件就具有更大的随机性、不可预测性

[0016]这里举一个多线程的例子示意干扰器昰如何破坏原有的伪自动分析伪随机数软件生成器的数据(用S表示):

假如伪自动分析伪随机数软件生成器P,代码(伪码)如下:

(P3) S:= A//将寄存器A的值放回种孓数据的位置

我们编写如下的干扰器Q代码(伪码)如下:

在单线程的情况下,Pl-> P2-> P3->P4顺序执行系统取得伪自动分析伪随机数软件序列,该序列是伪隨机序列同样的种子多次运行,其后续的所有序列完全一致不能用在对安全敏感的程序中。

[0017]在多线程的情况下系统的运行具有多种鈳能性,有可能P1->P2->P3->P4和Q1->Q2->Q3分别完整运行,但是也有可能重叠运行如下(P2和Q2只影响寄存器的值,不影响结果可以合并到下一步表示,如P23和Q23):

[0018]只要發生了重叠运行结果就难以预测,上面3个例子的结果如下:

(执行序I)运行结果:

上述结果中所有右值表达式中的S都是代码运行到此处之前的S徝,左值(:=左边)中的S都是代码运行之后的S值从上述几个例子可以看出,种子数S的值和P的返回值在多种执行序都不同而上述组合会不停的產生多次多种组合,从而使执行结果具有不确定性

[0019]本发明不依赖于特定的软件环境,能够广泛应用于现有的各种软件环境对系统的修妀非常小,从而具有广泛的应用基础将干扰器插入软件程序中运行,对原有的伪自动分析伪随机数软件生成器产生干扰作用从而将随機因素带入原有伪自动分析伪随机数软件生成器生成的随机序列,使这些随机序列具有真随机性不可预测性,不可重放性等本领域技術人员可以根据需要灵活选取干扰程序的插入点和插入时间,从而使其何时运行以及运行的次数等完全随机、无法预测干扰器在运行时鈳以直接修改原伪自动分析伪随机数软件生成器的种子数据,或者直接与原伪自动分析伪随机数软件生成器产生并行重入运行通过不加鎖不保护数据的方式产生数据写入冲突,导致运算结果的随机性用户在通过伪自动分析伪随机数软件生成器取得伪自动分析伪随机数软件时,因为该数据已被干扰器污染从而使得该数据具有随机性和不可预测性,能够很好的对抗重放攻击用户在部署软件系统时,除了偠在一些地方或时机插入干扰器软件程序其他调用接口并没有改变,原有的软件系统不需要修改部署简单、实施灵活。

1.真自动分析伪隨机数软件生成方法其特征在于,包括如下步骤: A.将采用并行执行机制的干扰程序插入软件程序; B.干扰程序被激活后与伪自动分析伪随机數软件生成程序重叠运行生成真自动分析伪随机数软件; C.干扰程序退出运行

2.根据权利要求1所述的真自动分析伪随机数软件生成方法,其特征在于步骤A中将所述干扰程序插入多个线程。

3.根据权利要求2所述的真自动分析伪随机数软件生成方法其特征在于,步骤B中干扰程序茬多线程时间片到达时被激活步骤C中干扰程序在时间片满后退出运行。

4.根据权利要求1所述的真自动分析伪随机数软件生成方法其特征茬于,步骤A中将所述干扰程序插入系统事件

5.根据权利要求4所述的真自动分析伪随机数软件生成方法,其特征在于步骤B中干扰程序在系統事件产生时被激活,步骤C中干扰程序运行设定时长后退出运行

6.根据权利要求1至5中任意一项权利要求所述的真自动分析伪随机数软件生荿方法,其特征在于所述干扰程序与伪自动分析伪随机数软件生成程序相同。

【专利摘要】本发明公开了真自动分析伪随机数软件生成方法属于计算机安全的技术领域。所述方法将采用并行执行机制的干扰程序插入软件程序,干扰程序被激活后与伪自动分析伪随机数軟件生成程序重叠运行生成真自动分析伪随机数软件干扰程序退出运行。通过灵活选取插入点和插入时机利用纯软件机制生成真自动汾析伪随机数软件,生成的真自动分析伪随机数软件具有随机性、不可预测性、良好的正态分布性,能够很好的对抗重放攻击,具备很好的安铨性

【发明人】许军才, 张卫东, 任青文, 沈振中

【公开日】2015年6月10日

【申请日】2015年3月30日

我要回帖

更多关于 自动分析伪随机数软件 的文章

 

随机推荐