主权项 |
一种双方参与的随机数生成和验证方法,所述方法包括随机数生成阶段和验证随机数阶段;所述随机数生成阶段包括如下步骤:(1)随机数使用方与随机数生成方首先建立通信;(2)随机数使用方选择一个任意参数p生成一个随机数r<sub>1</sub>=MD5(p),并将r<sub>1</sub>发送给随机数生成方;(3)随机数生成方接收随机数使用方发送的随机数r<sub>1</sub>;(4)随机数生成方生成唯一的序列号s,保存与该序列号对应的时间t;(5)随机数生成方将r<sub>1</sub>、s、t作为参数生成随机数r<sub>2</sub>,即:r<sub>2</sub>=MD5(r<sub>1</sub>,s,t);(6)随机数生成方根据(r<sub>1</sub>,r<sub>2</sub>)生成最终的随机数R=h(r<sub>1</sub>,r<sub>2</sub>)modm+1;(7)随机数生成方发送R和t给随机数使用方;所述验证随机数阶段包括如下步骤:(a)随机数使用方接收随机数生成方发送的R和t;(b)若随机数使用方对R产生质疑则向随机数生成方发送t请求验证;(c)随机数生成方根据随机数使用方的验证请求在数据库中查找与t对应的序列号s并发送给随机数使用方;(d)随机数使用方接收随机数生成方发送的序列号s计算出r<sub>2</sub>=MD5(r<sub>1</sub>,s,t)和R'=h(r<sub>1</sub>,r<sub>2</sub>)modm+1,判断R'=R是否成立,对R进行验证。 |