CN105162760B - 随机抽取方法、装置以及系统 - Google Patents
随机抽取方法、装置以及系统 Download PDFInfo
- Publication number
- CN105162760B CN105162760B CN201510452254.1A CN201510452254A CN105162760B CN 105162760 B CN105162760 B CN 105162760B CN 201510452254 A CN201510452254 A CN 201510452254A CN 105162760 B CN105162760 B CN 105162760B
- Authority
- CN
- China
- Prior art keywords
- random number
- electronic information
- digital signature
- information
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及通信技术领域,具体而言,涉及一种随机抽取方法、装置以及系统。包括:接收客户端所发送的服务请求;创建第一随机数,并计算所述第一随机数的特征值;将所述第一随机数的特征值回馈至客户端;当接收到客户端所发送的第一电子信息的数字签名信息时,将所述第一随机数与第一电子信息的数字签名信息合并为第二电子信息,并对所述第二电子信息进行数字签名;将第二电子信息的数字签名信息回馈客户端。本发明中,通过两次叠加的数字签名,使得在数据传输或者计算的节点上,对第一随机数和第二随机数进行篡改都是很难实现的,能够更大程度上保证最终的抽取结果不被人为干扰,从而降低由于人为因素对概率事件的公正性造成影响。
Description
技术领域
本发明涉及通信技术领域,具体而言,涉及一种随机抽取方法、装置以及系统。
背景技术
目前,在人类的社会活动中,有一些事件是基于纯概率的结果的,例如彩票中奖、商业促销的抽奖活动、供应资源短缺时的摇号分配(例如车牌摇号、购房摇号、升学时的电脑派位等)。
对于这类纯概率事件,参与者最希望的就是事件操作过程具有透明性和公正性。目前,为确保概率事件的公正性,可用的技术手段主要有两大类:(1)基于专用设备的现场摇号,比如福利彩票的每期公开摇奖。(2)基于软件技术的电子摇号,在网上可以搜索到很多款购房摇号的软件、面向单位抽奖活动的软件。这两种技术通常都需要第三方公证机构的参与,所谓的公证也往往流于形式,并不能从技术层面确保其公正性。不管是专用设备还是目前基于软件技术的电子摇号,其技术本身就决定了很容易会受到人为因素的干扰,从而造成不公正的问题产生,例如在设备上做某些手脚,使得某些号码更容易被抽中等。综上所述,现有的各种技术手段并不能从技术层面保证概率事件的公正性。
发明内容
有鉴于此,本发明实施例的目的在于提供一种随机抽取方法、装置以及系统,降低由于人为因素对概率事件的公正性造成影响。
第一方面,本发明实施例提供了一种随机抽取方法,包括:
接收客户端所发送的服务请求;
创建第一随机数,并计算所述第一随机数的特征值;
将所述第一随机数的特征值回馈至客户端;
当接收到客户端所发送的第一电子信息的数字签名信息时,将所述第一随机数与第一电子信息的数字签名信息合并为第二电子信息,并对所述第二电子信息进行数字签名,生成第二电子信息的数字签名信息;
将第二电子信息的数字签名信息回馈至客户端。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,所述计算所述第一随机数的特征值,包括:
为所述第一随机数绑定一个识别序列号;
根据所述第一随机数,计算所述第一随机数的MD5散列函数值,和/或,根据所述第一随机数,计算所述第一随机数的SHA散列函数值;
将所述第一随机数的识别序列号、所述第一随机数的MD5散列函数值、所述第一随机数的SHA散列函数值中的一种或者多种作为所述第一随机数的特征值。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,所述将所述第一随机数与所述第一电子信息的数字签名信息合并为第二电子信息,具体包括:
从所述第一电子信息的数字签名信息中获取票证识别码,并验证所述票证识别码是否已经被使用过;
如果验证的结果为否,则继续验证所述第一电子信息的数字签名信息的完整性以及不可否认性;
如果验证成功,再使用服务器本地存储的所述第一随机数重新计算所述第一随机数的MD5散列函数值、所述第一随机数的SHA 散列函数值,并分别与所述第一电子信息中包含的所述第一随机数的MD5散列函数值、所述第一随机数的SHA散列函数值进行比对;
如果比对成功,则将所述第一随机数与所述第一电子信息的数字签名信息合并为第二电子信息。
结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,所述将所述第二电子信息的数字签名信息回馈客户端之前,还包括:
将所述第一随机数、第一随机数的序列号从服务器本地删除;
和/或,
所述将第二电子信息的数字签名信息回馈客户端之前或者之后,还包括:
将所述票证识别码进行保存。
第二方面,本发明实施例还提供了另一种随机抽取方法,包括:
向服务器发送服务请求;
创建第二随机数,计算所述第二随机数的特征值;
当收到服务器所回馈的第一随机数的特征值时,将第一随机数的特征值与所述第二随机数的特征值合并为第一电子信息,并对所述第一电子信息进行数字签名,生成第一电子信息的数字签名信息;
将第一电子信息的数字签名信息发送至服务器;
当接收到服务器所回馈的第二电子信息的数字签名信息时,验证所述第一随机数和所述第二随机数是否已经处于不可变更的状态;
如果是,则从所述第二电子信息的数字签名信息中获取所述第一随机数,并根据所述第一随机数以及所述第二随机数,计算抽取结果。
结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,所述创建第二随机数,计算所述第二随机数的特征值包括:
获取用户所输入的多个随机整数;所述随机整数大于等于0,小于等于255;
获取用户所输入的票证识别码;
将多个所述随机整数按照输入的顺序,由十进制转换为二进制数值,所述二进制数值为第二随机数;
根据所述第二随机数,计算所述第二随机数的MD5散列函数值,和/或,根据所述第二随机数,计算所述第二随机数的SHA散列函数值;
将所述票证识别码、所述第二随机数的MD5散列函数值、所述第二随机数的SHA散列函数值中的一种或者多种作为所述第二随机数的特征值。
结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,所述验证所述第一随机数和所述第二随机数是否已经处于不可变更的状态,具体包括:
验证所述第二电子信息的数字签名信息的完整性和不可否认性;
验证第一电子信息的数字签名信息的完整性和不可否认性;
如果验证成功,重新计算所述第一随机数的MD5散列函数值、所述第一随机数的SHA散列函数值、所述第二随机数的MD5散列函数值、所述第二随随机数的SHA散列函数值中的一种或多种,并分别与所述第二电子信息中包含的所述第一随机数的MD5散列函数值、所述第一随机数的SHA散列函数值、所述第二随机数的MD5 散列函数值、所述第二随随机数的SHA散列函数值中的一种或多种进行比对;
如果比对结果均一致,则认为所述第一随机数和所述第二随机数处于不可变更的状态;
和/或,所述根据所述第一随机数以及所述第二随机数,计算抽取结果,具体包括:
将所述第一随机数以及所述第二随机数按照字节顺序连接,并对进行顺序连接后所形成的字节序列进行MD5散列函数值的计算,和/或对进行顺序连接后所形成的字节序列进行SHA散列函数值的计算;将计算的结果即作为抽取结果。
第三方面,本发明实施例还提供一种随机抽取装置,所述装置设置于服务器上;所述服务器只能够通过该装置与客户端进行通信,包括:
服务请求接收模块,用于接收客户端所发送的服务请求;
第一随机数创建模块,用于创建第一随机数,并计算所述第一随机数的特征值;
第一发送模块,用于根据所述服务请求,将所述第一随机数的特征值发送至客户端;
第一数字签名模块,用于接收到客户端所发送的第一电子信息的数字签名信息时,将所述第一随机数与第一电子信息的数字签名信息合并为第二电子信息,并对所述第二电子信息进行数字签名,生成第二电子信息的数字签名信息;
所述第一发送模块还用于将第二电子信息的数字签名信息发送客户端。
第四方面,本发明实施例还提供一种随机抽取装置,所述装置设置于客户端上,包括:
服务请求发送模块,用于向服务器发送服务请求;
第二随机数创建模块,用于创建第二随机数,计算所述第二随机数的特征值;
第二数字签名模块,用于收到服务器所发送的第一随机数的特征值时,将第一随机数的特征值与所述第二随机数的特征值合并为第一电子信息,并对所述第一电子信息进行数字签名,生成第一电子信息的数字签名信息;
第二发送模块,将第一电子信息的数字签名信息发送至服务器;
第二验证模块,用于当接收到服务器所发送的第二电子信息的数字签名信息时,验证所述第一随机数和所述第二随机数是否已经处于不可变更的状态;
结果计算模块,用于当验证结果为是时,从所述第二电子信息的数字签名信息中提取所述第一随机数,并根据所述第一随机数以及所述第二随机数,计算抽取结果。
第五方面,一种随机抽取系统,所述系统包括:客户端以及服务器;所述服务器只能够与所述客户端通信;
其中,所述客户端上设置有第四方面所述的装置,所述服务器上设置有第三方面所述的装置。
本发明实施例所提供的随机抽取方法、装置以及系统,服务器在创建了第一随机数之后,会计算第一随机数的特征值,并将第一随机数的特征值发送给客户端,而不会直接将第一随机数发送给客户端,因此此时,客户端是无法获知第一随机数的具体数值的。而当服务器收到第一电子信息的数字签名信息时,会将第一随机数与第一电子信息的数字签名信息合并为第二电子信息,并对第二电子信息进行数字签名,生成第二电子信息的数字签名信息,这就使得第一随机数和第二随机数在客户端和服务器分别进行了两次数字签名,通过两次叠加的数字签名,实现了第一随机数和第二随机数的不可否认和不可变更。而鉴于两次叠加的数字签名,在数据传输或者计算的节点上,对第一随机数和第二随机数进行篡改都是很难实现的,最终通过第一随机数和第二随机数所计算出来的抽取结果也具备唯一确定性,从而本发明所提供的随机抽取方法、装置以及系统,能够更大程度上保证最终的抽取结果不被人为干扰,从而降低由于人为因素对概率事件的公正性造成影响。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例所提供的一种随机抽取方法的流程图;
图2示出了本发明实施例所提供的一种实现计算第一随机数的特征值的方法的流程图;
图3示出了本发明实施例所提供的一种实现将第一随机数与第一电子信息的数字签名信息合并为第二电子信息的方法流程图;
图4示出了本发明实施例所提供的另一种随机抽取方法的流程图;
图5示出了本发明实施例所提供的另一种随机抽取方法的流程图;
图6示出了本发明实施例所提供的另一种应用本发明所提供的随机抽取方法进行摇号的方法的流程图;
图7示出了本发明实施例所提供的随机抽取装置的结构示意图;
图8示出了本发明实施例所提供的另一种随机抽取装置的结构示意图;
图9示出了本发明实施例所提供的一种随机抽取系统的结构示意图。
图示说明:
10-服务请求接收模块;20-第一随机数创建模块;30-第一发送模块;40-第一数字签名模块;50-服务请求发送模块;60-第二随机数创建模块;70-第二数字签名模块;80-第二发送模块;90-验证模块;100-结果计算模块;110-客户端;120-服务器。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
在需要通过随机抽取,获得纯概率结果的社会活动中,其所使用的技术手段,不管是基于专用设备的具体摇号抽取,还是基于软件技术的电子摇号抽取,其技术本本身决定了很容易受到人为因素的干扰,而造成不公正问题的产生,例如在设备上做某些手脚,使得某些号码更容易被抽取到。基于此,本申请提供的一种随机抽取方法、装置以及系统中,能够更大程度上保证最终的抽取结果不被人为干扰,从而降低由于人为因素对概率事件的公正性造成影响。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种随机抽取方法进行详细介绍,该方法主要应用于包括客户端和服务器的系统中。该方法能够广泛应用于彩票业、抽奖促销活动、车牌摇号、购房摇号、升学派位等众多需要进行随机抽取,以获得纯概率结果的领域。
参见图1所示,本发明实施例所提供的随机抽取方法包括:
S101:接收客户端所发送的服务请求;
在具体实现的时候,该服务请求是客户端在需要进行随机抽取的时候会向服务器进行发送的,而服务器只有在接收到客户端的服务请求的时候,才会进行下一步的动作,客户端的服务请求中,会包含客户端的识别标志、通信地址等信息,或者该客户端会预先向服务器登记其身份信息,只有登记过身份信息的客户端才能够给服务器发送服务请求。
S102:创建第一随机数,并计算所述第一随机数的特征值;
其中,第一随机数是服务器自动随机创建的,第一随机数Ks 是一个不少于16字节长度的二进制数,而在创建第一随机数Ks之后,服务器要根据第一随机数Ks,计算第一随机数Ks的特征值。
在具体实现时,可以采用图2所示的计算第一随机数的特征值的流程图:计算第一随机数的特征值的具体过程包括:
S201:为所述第一随机数绑定一个识别序列号;
在具体实现的时候,为第一随机数Ks所绑定的识别序列号 Ks.ID,为第一随机数绑定该识别序列号Ks.ID的目的,事实上,由于服务器是可以同时与多个客户端进行通信的,也可能会有多个客户端同时向服务器发起服务请求。当多个客户端同时,或者在某一时间段内向服务器发起服务请求的时候,服务器可能会在一定时间内创建多个第一随机数Ks。因此为每一个第一随机数Ks绑定一个识别序列号Ks.ID,既方便了服务器将第一随机数Ks和客户端对应起来,又能够方便在后续处理过程中能够通过该识别序列号Ks.ID,查找到与之对应的第一随机数Ks。
S202:根据所述第一随机数,计算所述第一随机数的MD5散列函数值,和/或,根据所述第一随机数,计算所述第一随机数的 SHA散列函数值;
在具体实现的时候,计算第一随机数的MD5(Message-Digest Algorithm 5,信息-摘要算法)散列函数值Ks.MD5,和/或计算第一随机数的SHA(Secure Hash Algorithm,安全哈希算法)散列函数值Ks.SHA。
其中,MD5能够将第一随机数通过其不可逆的字符串变换算法,产生唯一的MD5信息摘要。而对于长度小于2^64位的消息,SHA会产生一个160位的消息摘要。该算法的思想是接收一段明文,然后以一种不可逆的方式将它转换成一段密文,也可以简单的理解为取一串输入码,并把它们转化为长度较短、位数固定的输出序列即散列值的过程。
因而上述第一随机数的MD5散列函数值Ks.MD5以及第一随机数的SHA散列函数值Ks.SHA的计算是不可逆的,即如果要通过 Ks.MD5和Ks.SHA逆推第一随机数Ks是基本无法实现的。因此,在本实施例中,将第一随机数的识别序列号Ks.ID、第一随机数的 MD5散列函数值Ks.MD5、第一随机数的SHA散列函数值Ks.SHA 中的一种或者多种作为第一随机数的特征值,发送给客户端,客户端是无法从Ks.MD5或者Ks.SHA逆向计算出第一随机数Ks的。
当然,还可以单独计算Ks.MD5或者Ks.SHA,将两者中的一个以及第一随机数的识别序列号Ks.ID共同作为第一随机数Ks的特征值。
另外,还可以有其他的第一随机数特征值的计算方法,只要是在算法上不可逆,不能从最终计算得出的第一随机数的特征值逆推得出第一随机数即可。
S103:根据所述服务请求,将所述第一随机数的特征值回馈至客户端;
在具体实现的时候,由于在服务请求中,已经包含了客户端的识别标志、通信地址等信息,因此服务器将第一随机数的特征值根据这些信息发送至客户端。一般地,服务器会将Ks.ID、Ks.MD5、 Ks.SHA写入同一个文本文件,然后将该文本文件发送至客户端。另外需要注意的是,服务器还可以将Ks.ID、Ks.MD5、Ks.SHA以其他的形式发送至客户端,只要方便后续客户端能够针对写入 Ks.ID、Ks.MD5、Ks.SHA的文件进行数字签名便可以。
S104:当接收到客户端所发送的第一电子信息的数字签名信息时,将所述第一随机数与第一电子信息的数字签名信息合并为第二电子信息,并对所述第二电子信息进行数字签名,生成第二电子信息的数字签名信息;
具体实现的时候,第一电子信息是在客户端生成的。客户端在针对第一电子信息进行数字签名后,生成第一电子信息的数字签名信息,并将第一电子信息的数字签名信息发送至服务器。此时,第一电子信息包括:Ks.ID、Ks.MD5、Ks.SHA、Kc.MD5、Kc.SHA、Ticket.Mark;第一电子信息的数字签名信息包括:Ks.ID、Ks.MD5、 Ks.SHA、Kc.MD5、Kc.SHA、Ticket.Mark、Client.Signature(客户端签名),其中,Kc.MD5、Kc.SHA、Ticket.Mark、Client.Signature 的详细含义在下文图4所对应的实施例中有详细的叙述,因此在此不再赘述。当服务器接收到进行了数字签名后的第一电子信息后,将第一随机数与第一电子信息的数字签名信息合并为第二电子信息,生成第二电子信息的数字签名信息。
在具体实现时,可以采用图3所示的将第一随机数与第一电子信息的数字签名信息合并为第二电子信息的方法的流程图,具体过程包括:
S301:从所述第一电子信息的数字签名信息中获取票证识别码,并验证所述票证识别码是否已经被使用过;
在具体实现的时候,服务器会从第一电子信息的数字签名信息中获取票证识别码,如果该票证识别码已经进行过抽取服务,则该票证识别码会在服务器中有存储记录,如果在验证票证识别码是否已经使用过的过程中,验证的结果为是,即已经使用过,则证明该票证识别码已经抽取过,服务器将不会再进行下一步的动作。如果验证的结果为否,即没有使用过,则证明该票证识别码未抽取过,服务器才会再进行下一步的动作。
S302:如果验证的结果为否,则继续验证所述第一电子信息的数字签名信息的完整性以及不可否认性;
在具体实现的时候,验证第一电子信息的数字签名信息的完整性以及不可否认性都是根据客户端对第一电子信息的数字签名进行验证的,即,基于Client.Signature(客户端签名)验证第一电子信息的数字签名信息,具体的验证过程为数字签名的验证过程,在此不再赘述。
只有验证成功的时候,服务器才会认为该第一电子信息是客户端发送来的,而不是第三方假冒客户端的身份发送的第一电子信息。这样,在数据传递的过程中,降低了第一随机数和第二随机数被篡改的可能。
S303:如果验证成功,再使用服务器本地存储的所述第一随机数重新计算所述第一随机数的MD5散列函数值、所述第一随机数的SHA散列函数值,并分别与所述第一电子信息中包含的所述第一随机数的MD5散列函数值、所述第一随机数的SHA散列函数值进行比对;
上述比对过程即验证所述第一随机数的MD5散列函数值和/或所述第一随机数的SHA散列函数值与所述第一随机数的计算相符性;
在具体实现的时候,会从第一电子信息的数字签名信息中获取第一随机数的识别序列号Ks.ID,然后根据Ks.ID,检索与之对应的第一随机数Ks,然后使用Ks重新计算Ks.MD5和Ks.SHA,第一电子信息中的数字签名信息包含的Ks.MD5和Ks.SHA和重新计算出来的Ks.MD5和Ks.SHA应当是一致的。因此服务器会将重新计算出来的Ks.MD5和Ks.SHA与第一电子信息的数字签名信息中的 Ks.MD5和Ks.SHA进行比对,如果一致,则认为该行数字签名后的第一电子信息是客户端在接收到服务器所发送的第一随机数的特征值后的反馈。如果不一致,则认为客户端反馈错误或者有第三方假冒客户端向服务器发送信息,服务器服务终止。服务器只有在验证通过后,才会进行下一步的动作。
S304:如果比对成功,则将所述第一随机数与所述第一电子信息的数字签名信息合并为第二电子信息。
在具体实现的时候,将第一随机数与第一电子信息的数字签名信息合并为第二电子信息即为将第一随机数Ks与第一电子信息的数字签名信息写入同一文本文件。此时,该文本文件,即第二电子信息中应该包含:KS.ID,KS.MD5,KS.SHA,KC.MD5,KC.SHA,Ticket.Mark,Client.Signature,Ks。
S105:将第二电子信息的数字签名信息回馈至客户端。
在具体实现的时候,服务器对第二电子信息进行数字签名会生成一个数字签名值Server.Signature(服务端签名),同时,服务器还会获取签名时的TimeStamp(服务器上的当前时间戳),然后将 Server.Signature和TimeStamp与进行过签名的第一电子信息合并,即生成第二电子信息的数字签名信息,第二电子信息的数字签名信息包括:KS.ID,KS.MD5,KS.SHA,KC.MD5,KC.SHA,Ticket.Mark, Client.Signature,Ks、TimeStamp以及Server.Signature。
本发明所提供的随机抽取方法,服务器在创建了第一随机数之后,会计算第一随机数的特征值,并将第一随机数的特征值发送给客户端,而不会直接将第一随机数发送给客户端,因此此时,客户端是无法获知第一随机数的具体数值的。而当服务器收到第一电子信息的数字签名信息时,会将第一随机数与第一电子信息的数字签名信息合并为第二电子信息,并对第二电子信息进行数字签名,生成第二电子信息的数字签名信息,这就使得第一随机数和第二随机数在客户端和服务器分别进行了两次数字签名,通过两次叠加的数字签名,实现了第一随机数和第二随机数的不可否认和不可变更。而鉴于两次叠加的数字签名,在数据传输或者计算的节点上,对第一随机数和第二随机数进行篡改都是很难实现的,最终通过第一随机数和第二随机数所计算出来的抽取结果也具备唯一确定性,从而本发明所提供的随机抽取方法、装置以及系统,能够更大程度上保证最终的抽取结果不被人为干扰,从而降低由于人为因素对概率事件的公正性造成影响。
其中,需要注意的是,为了保证Ks不被非法获取,且只发送给相应的客户端,因此服务器在所述将第二电子信息的数字签名信息发送客户端之前就会将第一随机数、第一随机数的序列号在服务器本地删除。同时,所述将第二电子信息的数字签名信息发送客户端之前或者之后,将所述票证识别码进行保存,以确保票证识别码不可重复使用(即同一张票据只能进行一次抽取)。
参见图4所示,本发明实施例所提供的另一种随机抽取方法包括:
S401:向服务器发送服务请求;
S402:创建第二随机数,计算所述第二随机数的特征值;
在具体实现的时候,第二随机数是由用户通过客户端输入的。而计算第二随机数的特征值的方法类似于计算第一随机数的特征值的方法。
在具体实现时,可以采用图5所示的创建第二随机数,计算第二随机数的特征值的流程图,包括:
S501:获取用户所输入的多个随机整数;所述随机整数大于等于0,小于等于255;
一般地,第二随机数都是用户通过客户端的人机交互界面手工输入的。例如,客户端在人机交互界面上,向用户显示一个4*4的表格,用户需要再每一个空格中输入一个0~255范围内的任意整数,共需要输入16个随机整数。这16个随机整数按照用户输入的顺序或者预先设置的顺序(该顺序并不一定与用户输入顺序相同),转换为16字节长度的二进制数,该二进制数即为第二随机数Kc。另外,还可以有其他的输入方法,例如只向用户显示一个输入栏,用户每输入一个数字,确定后,再通过该输入栏输入新的随机整数。同时,也可以输入更多的随机整数,具体在这里不做限制。一般地,Kc 的取值范围为:0~2128-1。
S502:将多个所述随机整数按照预设的顺序,由十进制转换为二进制数值,所述二进制数值为第二随机数;
S503:获取用户所输入的票证识别码;
在具体实现的时候,该票证识别码Ticket.Mark可以是用户通过人机交互界面输入的,也可以是客户端通过网络,从其他应用服务器上自动获取的。该票证识别码用于标识该票证的唯一性,例如在购车摇号的时候,每个人都有一次机会进行抽取,该票证识别码即相当于抽取人的身份标志。进行过一次抽取的人,都会在服务器中进行身份记录,不再有下一次的抽取机会。
S504:根据所述第二随机数,计算所述第二随机数的MD5散列函数值,和/或,根据所述第二随机数,计算所述第二随机数的 SHA散列函数值;
具体的计算过程与服务器计算第一随机数的MD5散列函数值和/或计算第一随机数的SHA散列函数值类似,在此不再赘述。
将所述票证识别码Ticket.Mark、第二随机数的MD5散列函数值Kc.MD5、第二随机数的SHA散列函数值Kc.SHA中的一种或者多种作为第二随机数的特征值。
S403:当收到服务器所回馈的第一随机数的特征值时,将第一随机数的特征值与所述第二随机数的特征值合并为第一电子信息,并对所述第一电子信息进行数字签名,生成第一电子信息的数字签名信息;
在具体实现的时候,将第一随机数的特征值与第二随机数的特征值合并为第一电子信息,即将Ks.ID、Ks.MD5、Ks.SHA、Kc.MD5、 Kc.SHA、Ticket.Mark写入同一个文本文件。该文本文件即为第一电子信息。
然后针对第一电子信息进行数字签名,生成第一电子信息的数字签名信息。其中,数字签名技术为现有成熟技术,在此不予赘述。需要注意的是,在针对第一电子信息进行数字签名的时候,会生成一个客户端数字签名值Client.Signature(客户端签名),该签名值会随同第一电子信息发送至服务器。第一电子信息的数字签名信息包括: Ks.ID、Ks.MD5、Ks.SHA、Kc.MD5、Kc.SHA、Ticket.Mark、 Client.Signature。
S404:将第一电子信息的数字签名信息发送至服务器;
S405:当接收到服务器所回馈的第二电子信息的数字签名信息时,验证所述第一随机数和所述第二随机数是否已经处于不可变更的状态;
在具体实现的时候,要验证第一随机数和第二随机数是否已经处于不可变更的状态,客户端要先验证所述第二电子信息的数字签名信息的完整性和不可否认性;验证的时候是基于服务器端的在进行数字签名是所生成的Server.Signature,此验证即为验证服务器端发给客户端的进行签名的第二电子信息是否是完整的,同时,还要验证该进行签名的第二电子信息是否确实是服务器所发送的。
其次,客户端要验证第一电子信息的数字签名信息(此时,第一电子信息的数字签名信息并非是由客户端所产生的,而是从第二电子信息的数字签名信息中直接获取的)的完整性和不可否认性,验证的时候是基于客户端在进行数字签名时所生成的Client.Signature,此验证是为了验证服务器端所发给客户端的第二电子信息数字签名信息是否是对之前在S403中第一电子信息的数字签名信息的后续处理,如果验证失败,则可能有第三方冒充服务器的身份向客户端发送信息。
在验证了两次签名的不可否认性之后,客户端会重新计算所述第一随机数的MD5散列函数值、所述第一随机数的SHA散列函数值、所述第二随机数的MD5散列函数值,和/或所述第二随机数的 SHA散列函数值,并将计算的结果分别与所述第二电子信息中包含的所述第一随机数的MD5散列函数值、所述第一随机数的SHA散列函数值、所述第二随机数的MD5散列函数值,和/或所述第二随机数的SHA散列函数值进行一一比对;如果完全一致,则认为客户端以及服务器之间交互的信息是可信的,并没有被篡改。
S406:如果是,则从所述第二电子信息的数字签名信息中提取所述第一随机数,并根据所述第一随机数以及所述第二随机数,计算抽取结果。
在具体实现的时候,如果在上述S405中验证了第一随机数和第二随机数已经处于不可变更的状态后,客户端从第二电子信息中获取第一随机数,利用该第一随机数以及其自身保存的第二随机数,计算抽取结果LR。
抽取结果的计算方式可以是多种多样的,本发明实施例提供一种具体的计算方式:将所述第一随机数以及所述第二随机数按照字节顺序连接,并对进行顺序连接后所形成的字节序列进行MD5散列函数值的计算,和/或对进行顺序连接后所形成的字节序列进行SHA散列函数值的计算;计算的结果即为抽取结果LR。其中在将第一随机数Ks和第二随机数Kc按照字节顺序连接的时候,两者的前后顺序可以互换,不论哪种顺序均可以实现。
本发明所提供的随机抽取方法,通过客户端和服务器的两次数字签名,使得在任何传输或者计算节点上,Ks和Kc都很难被篡改,所得到的抽取结果LR在Ks和Kc已经确定的情况下,也是唯一确定的,同时,由于Ks本身是一个由服务端创建的随机数,因此LR 值具有随机性和不可预测性,同时由于LR是由Ks和Kc共同决定的结果,因此不管是服务器、客户端或者是其他第三方,都很难从技术层面对LR进行预先的操控或者是有价值的推测。
参见图6所示,本发明实施例还提供一种具体的应用本发明所提供的随机抽取方法进行摇号的方法,其中,服务器为专用的摇号服务器,客户端为摇号终端。包括:
S601:摇号终端向摇号服务器发出一个特定的服务请求,为 CreateKs请求。
S602:摇号服务器在接收到摇号终端的CreateKs请求后,创建第一随机数Ks,同时给Ks绑定一个识别序列号KS.ID。随后计算 Ks的MD5散列函数值KS.MD5,并计算Ks的SHA散列函数值 KS.SHA。Ks是一个不少于16字节长度的二进制数。
S603:摇号服务器将{KS.ID,KS.MD5,KS.SHA}以预设的格式回馈给摇号终端。
此处,预设的格式即将KS.ID,KS.MD5,KS.SHA写入同一个文本文件进行发送。
S604:摇号终端通过人机交互界面,获得实际用户的手工输入的第二随机数Kc,Kc的取值范围0~2128-1。
S605:摇号终端在获得用户输入的Kc值以后,计算Kc的MD5 散列函数值KC.MD5,再计算Kc的SHA散列函数值KC.SHA。
S606:摇号终端获得用户所输入的Ticket.Mark(票证识别码) 信息字段。
S607:摇号终端将{KS.ID,KS.MD5,KS.SHA,KC.MD5, KC.SHA,Ticket.Mark}按约定格式组合,并对这些信息进行数字签名,该数字签名值称为Client.Signature(客户端签名)。
S608:摇号终端将{KS.ID,KS.MD5,KS.SHA,KC.MD5, KC.SHA,Ticket.Mark,Client.Signature}按照预设的格式发送给摇号服务器。
S609:摇号服务器基于Ticket.Mark确认本次摇号服务的合法性。
具体地,每次成功的摇号服务完成后,相关的Ticket.Mark被存储在摇号服务器本地,如果通过数据检索确认Ticket.Mark被重复使用,本次服务终止。
S610:摇号服务器基于Client.Signature验证{KS.ID,KS.MD5, KS.SHA,KC.MD5,KC.SHA,Ticket.Mark}的完整性和不可否认性。
S611:摇号服务器通过KS.ID检索Ks,随后检查Ks与KS.MD5、 KS.SHA的计算相符性。
S612:摇号服务器将KS.ID,KS.MD5,KS.SHA,KC.MD5, KC.SHA,Ticket.Mark,Client.Signature,Ks,TimeStamp(服务器上的当前时间戳)合并,并对合并信息进行数字签名,数字签名值为 Server.Signature(服务端签名)。
S613:摇号服务器将本地保存的KS.ID、Ks进行销毁处理,确保Ks只能一次性导出。
S614:摇号服务器将Ticket.Mark存储于本地数据库中,确保 Ticket.Mark不可重复使用。
S615:摇号服务器将{KS.ID,KS.MD5,KS.SHA,KC.MD5, KC.SHA,Ticket.Mark,Client.Signature,Ks,TimeStamp, Server.Signature}按照预设格式回馈给摇号终端。
S616:摇号终端基于Server.Signature检查{KS.ID,KS.MD5, KS.SHA,KC.MD5,KC.SHA,Ticket.Mark,Client.Signature,Ks, TimeStamp}的完整性和不可否认性。
S617:摇号终端基于Client.Signature检查{KS.ID,KS.MD5, KS.SHA,KC.MD5,KC.SHA,Ticket.Mark}的完整性和不可否认性。
S618:摇号终端根据Ks重新计算Ks的MD5散列函数值 MD5(Ks),并与KS.MD5进行全等比较;
S619:摇号终端根据Ks重新计算Ks的SHA散列函数值计算 SHA(Ks),并与KS.SHA进行全等比较;
S620:摇号终端根据Kc重新计算Kc的MD5散列函数值计算 MD5(Kc),并与KC.MD5进行全等比较;
S621:摇号终端根据Kc重新计算Kc的SHA散列函数值计算 SHA(Kc),并与KC.SHA进行全等比较;
S622:摇号终端验证Ticket.Mark与具体应用服务是否具有约定的合法关联性;
S623:上述S616 ~S622 验证均通过,则摇号终端将Ks和Kc 按字节顺序连接,然后计算MD5散列函数值,LR为计算结果。即 LR=MD5(Ks—Kc)。
S624:摇号终端将LR和预先约定的中奖特征值进行比对计算,以确定是否中奖。
通过上述流程,可以看出,本发明所提供的随机抽取方法,通过客户端和服务器的双重数字签名,在任何传输或计算节点上,对 Ks和Kc进行篡改都难以实现,只要Ks和Kc确定了,得到的LR 值始终是相同的。此外,上述实施步骤也表明,LR值具有完全随机性和不可预测性,摇号服务器、摇号终端或者是其他第三方,都无法从技术层面对LR值进行预先的操控或者是有价值的推测,这也体现出本方法所具备的公正性,而且这种公正性是技术自证的,无需任何人为的公正机构或公正人员进行担保。
参见图7所示,本发明还提供一种随机抽取装置,该装置设置于服务器上,具体包括:
服务请求接收模块10,用于接收客户端所发送的服务请求;
第一随机数创建模块20,用于创建第一随机数,并计算所述第一随机数的特征值;
第一发送模块30,用于根据所述服务器请求,将所述第一随机数的特征值发送至客户端;
第一数字签名模块40,用于接收到客户端所发送的第一电子信息的数字签名信息时,将所述第一随机数与第一电子信息的数字签名信息合并为第二电子信息,并对所述第二电子信息进行数字签名,生成第二电子信息的数字签名信息;
所述第一发送模块30还用于将第二电子信息的数字签名信息发送客户端。
其中,服务请求接收模块10、第一随机数创建模块20、第一发送模块30以及第一数字签名模块40的具体功能和交互方式,可参见图1对应的实施例的记载,在此不再赘述。
参见图8所示,本发明实施例还提供另一种随机抽取装置,该装置设置于客户端上,具体包括:
服务请求发送模块50,用于向服务器发送服务请求;
第二随机数创建模块60,用于创建第二随机数,计算所述第二随机数的特征值;
第二数字签名模块70,用于收到服务器所发送的第一随机数的特征值时,将第一随机数的特征值与所述第二随机数的特征值合并为第一电子信息,并对所述第一电子信息进行数字签名,生成第一电子信息的数字签名信息;
第二发送模块80,将第一电子信息的数字签名信息发送至服务器;
验证模块90,用于当接收到服务器所发送的第二电子信息的数字签名信息时,验证所述第一随机数和所述第二随机数是否已经处于不可变更的状态;
结果计算模块100,用于当验证结果为是时,从所述第二电子信息中提取所述第一随机数,并根据所述第一随机数以及所述第二随机数,计算抽取结果。
其中,服务请求发送模块50、第二随机数创建模块60、第二数字签名模块70、第二发送模块80、验证模块90、计算模块100的具体功能和交互方式,可参见图4对应的实施例的记载,在此不再赘述。
参见图9所示,本发明又一实施例提供了一种随机抽取系统,所述系统包括:所述系统包括:客户端110以及服务器120;
其中,所述客户端上设置有图8对应的实施例所示的装置,所述服务器上设置有图7对应的实施例所示的装置。
另外,还可以将服务器分为前级服务器和后级服务器。其中,后级服务器仅与前级服务器通过内部网络连接。后级服务器用于创建和使用敏感数据,例如Ks和服务器在进行数字签名时所需要的私钥。
需要说明的是,本发明实施例中的后级服务器,可以实现为一种专用的硬件服务器。这种硬件服务器制成之后,是不可拆卸和不可维修的,如果发生故障,只能对服务器进行更换。这样,可以最大程度的保证后级服务器的运行安全性。
后级服务器在加电启动后,动态创建私钥SSK和公钥SPK,SPK 允许外部导出,导出SPK的主要目的是请求CA机构颁发服务器的数字证书;SSK没有任何导出方法,仅用于后级服务器对第二电子信息进行数字签名用;第二电子信息的数字签名信息是Ks的唯一导出途径,且每个Ks值仅允许导出一次,一旦导出即时销毁。后级服务器除了与前级服务器通过内部网络连接之外,不再有其他任何有线或无线的联网硬件和接口。后级服务器的硬件配置应提供足够高的运算能力,内存容量应尽可能大,磁盘存储器则使用高速小容量类型(如SD固态硬盘)。
前级服务器与公众网络连接,前级服务器用于数据库的访问(实现票证识别码的唯一性管理)、客户端数字签名的验证、客户端账号的管理等。前级服务器在软件配置方面,应有可靠的数据库支持,此外该服务器也上可以运行其他的网络服务(如HTTP,FTP,STMP,POP3等)。
所述后级服务器+前级服务器的分级实施方案,具有如下优点:后级服务器运行最小化的代码量,而且不需要永久性数据存储,可以实现无维护运行。前级服务器需要运行数据库访问模块、数字签名验证模块等较大量代码,实现无维护运行的技术难度很大。而通过所述的分级部署方案,前级服务器在进行系统维护、软件升级时,不会危害到后级服务器的安全性。
另外,根据本发明所提供的随机抽取方法、装置以及系统,本发明还提供一种随机抽取系统中,所需关键数据及其格式的具体实施方式:
(1)Ks:128字节长度的数值(1024位),可按从低地址到高地址的顺序转换为16进制可显示字符串,其显示字符串长度为256 个字符。是一个计算机自动创建的真随机数值。在本实施方案中,是由后级服务器创建的。
(2)Kc:16字节长度的数值(128位),可按从低地址到高地址的顺序转换为16进制可显示字符串,其显示字符串长度为32个字符。是一个允许用户任意干预的随机数值。
(3)LR:16字节长度的数值(128位),可按从低地址到高地址的顺序转换为16进制可显示字符串,其显示字符串长度为32个字符。是通过Ks、Kc和预设的算法计算出来的数值。
(4)KS.ID:4字节长度的无符号整数(32位),可转换为十进制的可显示字符串。
(5)KS.MD5:16字节长度的数值(128位),可按从低地址到高地址的顺序转换为16进制可显示字符串,其显示字符串长度为 32个字符。是Ks的MD5散列函数值。
(6)KS.SHA:20字节长度的数值(160位),可按从低地址到高地址的顺序转换为16进制可显示字符串,其显示字符串长度为 40个字符。是Ks的SHA散列函数值。
(7)KC.MD5:16字节长度的数值(128位),可按从低地址到高地址的顺序转换为16进制可显示字符串,其显示字符串长度为 32个字符。是Kc的MD5散列函数值。
(8)KC.SHA:20字节长度的数值(160位),可按从低地址到高地址的顺序转换为16进制可显示字符串,其显示字符串长度为 40个字符。是Kc的SHA散列函数值。
(9)Client.Signature:客户端数字签名,按X.509标准进行编码,本发明不做相关规定。
(10)Server.Signature:服务端数字签名,按X.509标准进行编码,本发明不做相关规定。
(11)TimeStamp:表示一个准确时间值的字符串,示例格式为“2015.06.1608:20:03”,长度固定为19个字符(含一个空格)。
(12)Ticket.Mark:表达一个可以检索、也可以无歧义显示的标识字符串,示例格式为:
“123456789abcdABCDEF@fulicaipiao.china”,该格式与大众熟知的Email地址格式非常相似。该字符串由1个“@”字符分割为2段,前段和后段均为长度不固定的字符串,最小长度为1个字符,最大长度为32个字符,字符集必须是{'0'-'9','a'-'z','A'-'Z','.'}(共63个许用ASCII字符);
上述后段字符串的含义是指某个应用实例,比如北京的车牌摇号即为一个应用实例,可以绑定一个字符串“qicheyaohao.bj”;比如中国福利彩票也是一个应用实例,可以绑定一个字符串“fulicaipiao.china”。
上述前段字符串的含义是指:在同一个应用实例中,一次独立的合法摇奖(摇号)行为。比如可以对应一张彩票上的序列号码,比如可以对应一次车牌摇号的请求序列号,比如可以对应一张发票上的序列号等等,这种对应关系由每个应用实例进行具体约定。本系统所要保证的是,每个Ticket.Mark标识字符串在给定的日期范围内,只允许进行一次摇号服务。
为了确保Ticket.Mark在数据库检索、打印和显示时不发生判别歧义,本系统约定:字符串中的英文字母不区分大小写。
(13)Client.Certificate:客户端数字证书(公钥),按X.509标准进行编码,本发明不做相关规定。
(14)Server.Certificate:服务端数字证书(公钥),按X.509标准进行编码,本发明不做相关规定。
(15)摇号服务器和摇号终端之间的数据交换格式约定为:
Name1=value1
Name2=value2
Name3=value3
上述交换数据,均为可显示的文本字符。每行表示一个独立的命名参数,“=”字符前面是参数名称,“=”字符后面是参数的具体内容。在同一个交换数据表中,参数名称必需具有唯一性。
(16)客户端发出第1次服务请求的数据:
Cmd=Create.KS
(17)服务器第1次回馈的数据:
KS.ID=nnnn
KS.MD5=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
KS.SHA=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
(18)客户端发出第2次服务请求的数据:
Cmd=Return.KS
KS.ID=nnnn
KS.MD5=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
KS.SHA=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
KC.MD5=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
KC.SHA=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Ticket.Mark=...@...
Client.Signature=...
Client.Certificate=...
(19)服务器第2次回馈的数据:
KS.ID=nnnn
KS.MD5=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
KS.SHA=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
KC.MD5=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
KC.SHA=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Ticket.Mark=...@...
Client.Signature=...
KS=x..x
TimeStamp=yyyy.mm.dd hh:mm:ss
Server.Signature=...
需要说明的是,以上关键数据及其格式的具体实施方式仅为本发明提供的一个实施例,其他能够实现本发明方法、装置以及系统的相关数据及其格式均应在本发明保护范围之内。
本发明实施例所提供的随机抽取方法、装置以及系统的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (8)
1.一种随机抽取方法,应用于包括服务器以及客户端的系统中,其中,其特征在于,所述方法包括:
接收客户端所发送的服务请求;
创建第一随机数,并计算所述第一随机数的特征值;
根据所述服务请求,将所述第一随机数的特征值回馈至客户端;
当接收到客户端所发送的第一电子信息的数字签名信息时,将所述第一随机数与所述第一电子信息的数字签名信息合并为第二电子信息,并对所述第二电子信息进行数字签名,生成第二电子信息的数字签名信息;
将所述第二电子信息的数字签名信息回馈至客户端;
所述计算所述第一随机数的特征值,包括:
为所述第一随机数绑定一个识别序列号;
根据所述第一随机数,计算所述第一随机数的MD5散列函数值,和/或,根据所述第一随机数,计算所述第一随机数的SHA散列函数值;
将所述第一随机数的识别序列号、所述第一随机数的MD5散列函数值、所述第一随机数的SHA散列函数值中的一种或多种作为所述第一随机数的特征值;
所述将所述第一随机数与所述第一电子信息的数字签名信息合并为第二电子信息具体包括:
从所述第一电子信息的数字签名信息中获取票证识别码,并验证所述票证识别码是否已经被使用过;
如果验证的结果为否,则继续验证所述第一电子信息的数字签名信息的完整性以及不可否认性;
如果验证成功,再使用服务器本地存储的所述第一随机数重新计算所述第一随机数的MD5散列函数值、所述第一随机数的SHA散列函数值,并分别与所述第一电子信息中包含的所述第一随机数的MD5散列函数值、所述第一随机数的SHA散列函数值进行比对;
如果比对成功,则将所述第一随机数与所述第一电子信息的数字签名信息合并为第二电子信息。
2.根据权利要求1所述的方法,其特征在于,所述将第二电子信息的数字签名信息回馈客户端之前,还包括:
将所述第一随机数、第一随机数的识别序列号从服务器本地删除;
和/或,
所述将第二电子信息的数字签名信息回馈客户端之前或者之后,还包括:
将所述票证识别码进行保存。
3.一种随机抽取方法,其特征在于,包括:
向服务器发送服务请求;
创建第二随机数,计算所述第二随机数的特征值;
当收到服务器所回馈的第一随机数的特征值时,将第一随机数的特征值与所述第二随机数的特征值合并为第一电子信息,并对所述第一电子信息进行数字签名,生成第一电子信息的数字签名信息;
将所述第一电子信息的数字签名信息发送至服务器;
当接收到服务器所回馈的第二电子信息的数字签名信息时,验证所述第一随机数和所述第二随机数是否已经处于不可变更的状态;
如果是,则从所述第二电子信息的数字签名信息中获取所述第一随机数,并根据所述第一随机数以及所述第二随机数,计算抽取结果。
4.根据权利要求3所述的方法,其特征在于,所述创建第二随机数,计算所述第二随机数的特征值,包括:
获取用户所输入的多个随机整数;所述随机整数大于等于0,小于等于255;
将多个所述随机整数按照预设的顺序,由十进制转换为二进制数值,所述二进制数值为第二随机数;
获取用户所输入的票证识别码;
根据所述第二随机数,计算所述第二随机数的MD5散列函数值,和/或,根据所述第二随机数,计算所述第二随机数的SHA散列函数值;
将所述票证识别码、所述第二随机数的MD5散列函数值、所述第二随机数的SHA散列函数值中的一种或者多种作为所述第二随机数的特征值。
5.根据权利要求4所述的方法,其特征在于,所述验证所述第一随机数和所述第二随机数是否已经处于不可变更的状态,具体包括:
验证所述第二电子信息的数字签名信息的完整性和不可否认性;
验证第一电子信息的数字签名信息的完整性和不可否认性;
如果验证成功,重新计算所述第一随机数的MD5散列函数值、所述第一随机数的SHA散列函数值、所述第二随机数的MD5散列函数值、所述第二随随机数的SHA散列函数值中的一种或多种,并分别与所述第二电子信息中包含的所述第一随机数的MD5散列函数值、所述第一随机数的SHA散列函数值、所述第二随机数的MD5散列函数值、所述第二随随机数的SHA散列函数值中的一种或多种进行比对;
如果比对结果均一致,则认为所述第一随机数和所述第二随机数处于不可变更的状态;
和/或,所述根据所述第一随机数以及所述第二随机数,计算抽取结果,具体包括:
将所述第一随机数以及所述第二随机数按照字节顺序连接,并对顺序连接后所形成的字节序列进行MD5散列函数值的计算,和/或对顺序连接后所形成的字节序列进行SHA散列函数值的计算;将计算的结果即作为抽取结果。
6.一种随机抽取装置,所述装置设置于服务器上;其特征在于,包括:
服务请求接收模块,用于接收客户端所发送的服务请求;
第一随机数创建模块,用于创建第一随机数,并计算所述第一随机数的特征值;
第一发送模块,用于根据所述服务请求,将所述第一随机数的特征值发送至客户端;
第一数字签名模块,用于接收到客户端所发送的第一电子信息的数字签名信息时,将所述第一随机数与第一电子信息的数字签名信息合并为第二电子信息,并对所述第二电子信息进行数字签名,生成第二电子信息的数字签名信息;
所述第一发送模块还用于将第二电子信息的数字签名信息发送至客户端;
所述第一随机数创建模块用于根据下述步骤计算所述第一随机数的特征值:
为所述第一随机数绑定一个识别序列号;
根据所述第一随机数,计算所述第一随机数的MD5散列函数值,和/或,根据所述第一随机数,计算所述第一随机数的SHA散列函数值;
将所述第一随机数的识别序列号、所述第一随机数的MD5散列函数值、所述第一随机数的SHA散列函数值中的一种或多种作为所述第一随机数的特征值;
所述第一数字签名模块用于根据下述步骤将所述第一随机数与所述第一电子信息的数字签名信息合并为第二电子信息:
从所述第一电子信息的数字签名信息中获取票证识别码,并验证所述票证识别码是否已经被使用过;
如果验证的结果为否,则继续验证所述第一电子信息的数字签名信息的完整性以及不可否认性;
如果验证成功,再使用服务器本地存储的所述第一随机数重新计算所述第一随机数的MD5散列函数值、所述第一随机数的SHA散列函数值,并分别与所述第一电子信息中包含的所述第一随机数的MD5散列函数值、所述第一随机数的SHA散列函数值进行比对;
如果比对成功,则将所述第一随机数与所述第一电子信息的数字签名信息合并为第二电子信息。
7.一种随机抽取装置,所述装置设置于客户端上,其特征在于,包括:
服务请求发送模块,用于向服务器发送服务请求;
第二随机数创建模块,用于创建第二随机数,计算所述第二随机数的特征值;
第二数字签名模块,用于收到服务器所发送的第一随机数的特征值时,将第一随机数的特征值与所述第二随机数的特征值合并为第一电子信息,并对所述第一电子信息进行数字签名,生成第一电子信息的数字签名信息;
第二发送模块,用于将第一电子信息的数字签名信息发送至服务器;
验证模块,用于当接收到服务器所发送的第二电子信息的数字签名信息时,验证所述第一随机数和所述第二随机数是否已经处于不可变更的状态;
结果计算模块,用于当验证结果为是时,从所述第二电子信息的数字签名信息中提取所述第一随机数,并根据所述第一随机数以及所述第二随机数,计算抽取结果。
8.一种随机抽取系统,其特征在于,所述系统包括:客户端以及服务器;
其中,所述客户端上设置有权利要求7所述的装置,所述服务器上设置有权利要求6所述的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510452254.1A CN105162760B (zh) | 2015-07-28 | 2015-07-28 | 随机抽取方法、装置以及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510452254.1A CN105162760B (zh) | 2015-07-28 | 2015-07-28 | 随机抽取方法、装置以及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105162760A CN105162760A (zh) | 2015-12-16 |
CN105162760B true CN105162760B (zh) | 2018-08-14 |
Family
ID=54803514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510452254.1A Active CN105162760B (zh) | 2015-07-28 | 2015-07-28 | 随机抽取方法、装置以及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105162760B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105825383B (zh) * | 2016-03-18 | 2019-08-13 | 桂林电子科技大学 | 双方参与的随机数生成和验证方法 |
CN105844763B (zh) * | 2016-05-06 | 2018-07-03 | 青岛果谱多维信息技术有限公司 | 一种房屋回迁安置抓阄选房系统 |
CN106980488A (zh) * | 2017-03-14 | 2017-07-25 | 腾讯科技(深圳)有限公司 | 随机数生成方法及装置 |
CN110971414B (zh) | 2017-11-10 | 2021-05-04 | 财付通支付科技有限公司 | 生成签名的方法、装置、终端及服务器 |
CN108829660B (zh) * | 2018-05-09 | 2021-08-31 | 电子科技大学 | 一种基于随机数分治递归的短文本签名生成方法 |
CN111882745B (zh) * | 2018-10-26 | 2022-12-20 | 创新先进技术有限公司 | 对象选取方法及装置、电子设备 |
CN110572477A (zh) * | 2019-09-26 | 2019-12-13 | 腾讯科技(深圳)有限公司 | 一种优先级评判方法及其相关设备 |
CN111597245B (zh) * | 2020-05-20 | 2023-09-29 | 政采云有限公司 | 一种数据抽取方法、装置及相关设备 |
CN111931158A (zh) * | 2020-08-10 | 2020-11-13 | 深圳大趋智能科技有限公司 | 一种双向认证方法、终端以及服务器 |
CN112530068B (zh) * | 2020-10-29 | 2023-09-22 | 重庆恢恢信息技术有限公司 | 一种通过物联网实现智慧建筑工地的人员识别方法 |
CN113407593A (zh) * | 2021-06-15 | 2021-09-17 | 北京天行汇通信息技术有限公司 | 数据抽检方法、装置、电子设备和可读存储介质 |
CN113672763B (zh) * | 2021-07-30 | 2023-10-10 | 北京奇艺世纪科技有限公司 | 视频数据抽取方法、装置、电子设备及存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1252198A (zh) * | 1997-12-24 | 2000-05-03 | 皇家菲利浦电子有限公司 | 联网环境中秘密的新随机数的管理与利用 |
CN1283827A (zh) * | 2000-08-18 | 2001-02-14 | 郝孟一 | 通用电子信息网络认证系统及方法 |
CN1601490A (zh) * | 2003-09-26 | 2005-03-30 | 刘任 | 信息安全认证及其加密装置的方法 |
CN102044106A (zh) * | 2009-10-23 | 2011-05-04 | 钟巨航 | 用于博彩系统的方法和装置 |
CN102194271A (zh) * | 2010-03-16 | 2011-09-21 | 李代甫 | 一种计算机选号的方法、装置及其应用 |
CN102298756A (zh) * | 2011-09-05 | 2011-12-28 | 中体彩科技发展有限公司 | 一种保证电脑彩票交易信息安全的方法 |
CN102315937A (zh) * | 2010-07-09 | 2012-01-11 | 塔塔咨询服务有限公司 | 无线通信装置和服务器之间数据的安全交易系统和方法 |
EP2472430A1 (en) * | 2006-12-01 | 2012-07-04 | David Irvine | Self encryption |
CN102708532A (zh) * | 2012-05-11 | 2012-10-03 | 深圳市永恒乐彩科技开发有限公司 | 一种彩票自动开奖系统及开奖方法 |
CN102780698A (zh) * | 2012-07-24 | 2012-11-14 | 南京邮电大学 | 物联网平台中用户终端安全通信的方法 |
CN103824246A (zh) * | 2014-03-10 | 2014-05-28 | 北京壹平台科技有限公司 | 一种电子即开型彩票数据的分配出票方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007221204A (ja) * | 2006-02-14 | 2007-08-30 | Oki Electric Ind Co Ltd | 無線lan送受信装置と無線lanにおける鍵配送方法 |
-
2015
- 2015-07-28 CN CN201510452254.1A patent/CN105162760B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1252198A (zh) * | 1997-12-24 | 2000-05-03 | 皇家菲利浦电子有限公司 | 联网环境中秘密的新随机数的管理与利用 |
CN1283827A (zh) * | 2000-08-18 | 2001-02-14 | 郝孟一 | 通用电子信息网络认证系统及方法 |
CN1601490A (zh) * | 2003-09-26 | 2005-03-30 | 刘任 | 信息安全认证及其加密装置的方法 |
EP2472430A1 (en) * | 2006-12-01 | 2012-07-04 | David Irvine | Self encryption |
CN102044106A (zh) * | 2009-10-23 | 2011-05-04 | 钟巨航 | 用于博彩系统的方法和装置 |
CN102194271A (zh) * | 2010-03-16 | 2011-09-21 | 李代甫 | 一种计算机选号的方法、装置及其应用 |
CN102315937A (zh) * | 2010-07-09 | 2012-01-11 | 塔塔咨询服务有限公司 | 无线通信装置和服务器之间数据的安全交易系统和方法 |
CN102298756A (zh) * | 2011-09-05 | 2011-12-28 | 中体彩科技发展有限公司 | 一种保证电脑彩票交易信息安全的方法 |
CN102708532A (zh) * | 2012-05-11 | 2012-10-03 | 深圳市永恒乐彩科技开发有限公司 | 一种彩票自动开奖系统及开奖方法 |
CN102780698A (zh) * | 2012-07-24 | 2012-11-14 | 南京邮电大学 | 物联网平台中用户终端安全通信的方法 |
CN103824246A (zh) * | 2014-03-10 | 2014-05-28 | 北京壹平台科技有限公司 | 一种电子即开型彩票数据的分配出票方法 |
Non-Patent Citations (2)
Title |
---|
基于双线性困难问题的电子彩票方案;刘忆宁等;《吉林大学学报》;20090930;第38卷(第5期);第1155-1159页 * |
基于可验证随机数的电子彩票方案;叶俊等;《计算机工程与应用》;20111231;第47卷(第33期);第71-73页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105162760A (zh) | 2015-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105162760B (zh) | 随机抽取方法、装置以及系统 | |
CN110708171B (zh) | 区块链共识投票方法、装置、设备以及存储介质 | |
CN116670673A (zh) | 从远程有限访问钱包转移加密货币 | |
CN102484638A (zh) | 经由多个中间客户端在线递送的身份数据的分层保护和验证 | |
CN108206831A (zh) | 电子印章的实现方法和服务器、客户端及可读存储介质 | |
CN111415254B (zh) | 基于区块链通证的ip衍生品数字资产化方法及系统 | |
CN115048664A (zh) | 基于固态硬盘的数据安全存储方法、装置、设备及介质 | |
CN106910066A (zh) | 一种基于区块链技术的支付加密存储系统及方法 | |
CN115840787B (zh) | 基于区块链的供应链数据共享方法、装置、设备及介质 | |
US11037147B2 (en) | Money transfer fraud prevention methods and systems | |
CN111538479A (zh) | 开标过程中的随机参数生成方法及装置 | |
CN113822675A (zh) | 基于区块链的报文处理方法、装置、设备及存储介质 | |
CN114124502A (zh) | 消息传输方法、装置、设备及介质 | |
CN106611134A (zh) | 一种云端数据完整性验证方法 | |
CN103270732A (zh) | 通信装置、提示装置以及信息记录介质 | |
JP2004072290A (ja) | 証明書管理環境の管理方法、プログラム及び装置 | |
CN108885667A (zh) | 安全风险管理系统、服务器、控制方法、以及非暂时性计算机可读介质 | |
CN108023732A (zh) | 一种数据保护方法、装置、设备和存储介质 | |
CN106533681A (zh) | 一种支持部分出示的属性证明方法与系统 | |
CN114697132B (zh) | 重复访问请求攻击拦截方法、装置、设备及存储介质 | |
US20200213095A1 (en) | Method and device for the computer aided processing of a random bit pattern | |
CN110086624A (zh) | 数字证书撤销信息验证方法、装置及系统 | |
CN113918517A (zh) | 多类型文件集中管理方法、装置、设备及存储介质 | |
CN113268514A (zh) | 多维数据统计方法、装置、电子设备及存储介质 | |
CN114125158A (zh) | 基于可信电话的防骚扰方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |