CN107465508A - 一种软硬件结合构造真随机数的方法、系统和设备 - Google Patents
一种软硬件结合构造真随机数的方法、系统和设备 Download PDFInfo
- Publication number
- CN107465508A CN107465508A CN201710667079.7A CN201710667079A CN107465508A CN 107465508 A CN107465508 A CN 107465508A CN 201710667079 A CN201710667079 A CN 201710667079A CN 107465508 A CN107465508 A CN 107465508A
- Authority
- CN
- China
- Prior art keywords
- random number
- soft
- hard
- interaction parameter
- generator
- 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.)
- Granted
Links
Classifications
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- 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/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
Abstract
本发明提供的一种软硬件结合构造随机数的方法、系统和设备,该方法包括:伪随机数发生器产生软随机数,真随机数发生器产生硬随机数;将所述软随机数和硬随机数构造出目标真随机数,使得软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数的运算结果等效,且目标真随机数不可逆向恢复不存储的技术方案,是基于等量代换的数学思想,使得完整的随机数不在软件或硬件任意一方合成,解决了随机数的安全性技术问题,结合软硬密码的技术特点,采用移动端纯软件,协同后台硬件的设计思路,以加密及签名的方式提供密码服务,既可满足认证安全要求,又可实现极简的客户体验,降低成本。
Description
技术领域
本发明涉及信息安全技术领域,尤其涉及一种软硬件结合构造真随机数的方法、系统和设备。
背景技术
随机数广泛应用于密钥生成、密码算法、安全协议等与信息安全密切相关的各个方面,而随机数发生器输出序列的不可预测性,则是信息安全的前提与基础。满足不可预测性的随机数发生器称之为真随机数发生器(TRNG,True Random Number Generator);不满足的称之为伪随机数发生器(RPNG,Pseudo Random Number Generator)。在当前的技术条件下,真随机数只能通过物理噪声源等硬件芯片产生(硬随机数);伪随机数通过计算机模拟产生(软随机数),虽然看似随机,实际上则是可预测的,针对软随机数的攻击包括利用时间戳等“随机种子”实现预测等。在已知签名(r,s)和随机数k的情况下,可以推导出数字证书私钥d,例如:d=((k+r)(s+r)-1-1)mod n。因此,信息安全领域普遍使用集成有真随机数发生器的硬件密码设备,例如密码卡、加密机、智能IC卡、智能密码钥匙(U盾)等,在硬件封装技术的保障下,安全的产生和使用随机数。
虽然硬件密码设备可确保真随机数的产生和安全使用,但其硬件成本问题以及使用不便的缺点一直饱受诟病,特别是在移动互联网迅猛发展的今天,终端用户需要使用方便且普遍适用的安全软件,既能满足安全性又不丧失便利性。
发明内容
针对背景技术中存在的技术问题,本发明提供了一种软硬件结合构造真随机数的方法、系统和设备,通过软硬件结合的方法解决软随机数的安全问题,满足随机数不可预测的安全要求,并提出一种无终端硬件介质的安全解决方案。
本发明一方面提供了一种软硬件结合构造真随机数的方法,该方法包括:
伪随机数发生器产生软随机数,真随机数发生器产生硬随机数;
将所述软随机数和硬随机数构造出目标真随机数,使得软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数的运算结果等效,且目标真随机数不可逆向恢复不存储。
进一步的,所述硬随机数包括至少一个真随机数,由密码设备产生和/或存储。
进一步的,将所述软随机数和硬随机数构造出目标真随机数,使得软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数的运算结果等效,包括:
基于等量代换的数学思想,将所述软随机数和硬随机数构造出目标真随机数,所述目标真随机数不在伪随机数发生器或真随机数发生器中进行合成计算,软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数计算签名结果或进行加密的运算结果等效。
进一步的,将所述软随机数和硬随机数构造出目标真随机数的构造方法包括但不限于:
软随机数和硬随机数通过乘法多项式构造出目标真随机数;或
软随机数和硬随机数通过加法多项式构造出目标真随机数。
进一步的,软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数进行加密的运算结果等效,具体步骤包括:
伪随机数发生器产生软随机数,基于所述软随机数产生软交互参数;将所述软交互参数发送至真随机数发生器;
真随机数发生器产生硬随机数,基于所述软交互参数、硬随机数产生硬交互参数,并将所述硬交互参数返回至伪随机数发生器;
伪随机数发生器基于所述软随机数、硬交互参数得到加密密文。
进一步的,所述软交互参数包括但不限于基于软随机数计算的椭圆曲线点和公钥;
所述硬交互参数包括但不限于基于软交互参数计算的两个椭圆曲线点。
进一步的,软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数计算签名结果的运算结果等效,具体步骤包括:
伪随机数发生器产生软随机数,基于所述软随机数产生第一软交互参数;将所述第一软交互参数发送至真随机数发生器;
真随机数发生器基于所述第一软交互参数产生硬随机数,基于所述第一软交互参数、硬随机数产生第一硬交互参数,并将所述第一硬交互参数返回至伪随机数发生器;
伪随机数发生器基于所述第一硬交互参数、软随机数及伪随机数发生器保存的部分私钥生成第二软交互参数,将所述第二软交互参数发送至真随机数发生器;
真随机数发生器使用所述第二软交互参数、真随机数发生器保存的部分私钥和/或硬随机数生成签名结果。
进一步的,所述第一软交互参数包括但不限于待签名消息的摘要和基于软随机数计算的椭圆曲线点。
进一步的,伪随机数发生器保存的部分私钥与真随机数发生器保存的部分私钥协同运算后产生电子签名。
本发明另一方面还提供了一种软硬件结合构造随机数的方法,该方法包括软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数进行加密的运算结果等效,具体步骤包括:
伪随机数发生器产生软随机数,基于所述软随机数产生软交互参数;将所述软交互参数发送至真随机数发生器;
接收真随机数发生器基于所述软交互参数、硬随机数产生的硬交互参数;并基于所述软随机数、硬交互参数得到加密密文。
本发明另一方面还提供了一种软硬件结合构造随机数的方法,该方法包括软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数进行加密的运算结果等效,具体步骤包括:
真随机数发生器接收伪随机数发生器基于软随机数产生的软交互参数后,产生硬随机数;
基于所述软交互参数、硬随机数产生硬交互参数,并将所述硬交互参数返回至伪随机数发生器,以便伪随机数发生器基于所述软随机数、硬交互参数得到加密密文。
本发明另一方面还提供了一种软硬件结合构造随机数的方法,该方法包括软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数计算签名结果的运算结果等效,具体步骤包括:
伪随机数发生器产生软随机数,基于所述软随机数产生第一软交互参数;将所述第一软交互参数发送至真随机数发生器;
基于真随机数发生器返回的基于第一软交互参数、硬随机数产生的第一硬交互参数、软随机数及伪随机数发生器保存的部分私钥生成第二软交互参数,将所述第二软交互参数发送至真随机数发生器,以便真随机数发生器使用所述第二软交互参数、真随机数发生器保存的部分私钥和/或硬随机数生成签名结果。
本发明另一方面还提供了一种软硬件结合构造随机数的方法,该方法包括软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数计算签名结果的运算结果等效,具体步骤包括:
真随机数发生器接收伪随机数发生器通过软随机数产生的第一软交互参数,基于所述第一软交互参数产生硬随机数;通过所述第一软交互参数、硬随机数产生第一硬交互参数,并将所述第一硬交互参数返回至伪随机数发生器;
通过接收所述伪随机数发生器发送的基于所述第一硬交互参数、软随机数及伪随机数发生器保存的部分私钥生成的第二软交互参数、真随机数发生器保存的部分私钥和/或硬随机数生成签名结果。
本发明另一方面还提供了一种软硬件结合构造真随机数的系统,包括:
产生模块,用于通过伪随机数发生器产生软随机数,真随机数发生器产生硬随机数;
构造模块,用于将所述软随机数和硬随机数构造出目标真随机数,使得软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数的运算结果等效,且目标真随机数不可逆向恢复不存储。
进一步的,所述硬随机数包括至少一个真随机数,由密码设备产生和/或存储。
进一步的,构造模块,包括:
构造单元,用于基于等量代换的数学思想,将所述软随机数和硬随机数构造出目标真随机数,所述目标真随机数不在伪随机数发生器或真随机数发生器中进行合成计算,软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数计算签名结果或进行加密的运算结果等效。
进一步的,构造单元,包括但不限于:
第一构造子单元,用于基于软随机数和硬随机数通过乘法多项式构造出目标真随机数;或
第二构造子单元,用于基于软随机数和硬随机数通过加法多项式构造出目标真随机数。
进一步的,构造单元,还包括:
伪随机数发生器第一加密构造单元,用于产生软随机数,基于所述软随机数产生软交互参数;将所述软交互参数发送至真随机数发生器;
真随机数发生器加密构造单元,用于产生硬随机数,基于所述软交互参数、硬随机数产生硬交互参数,并将所述硬交互参数返回至伪随机数发生器;
伪随机数发生器第二加密构造单元,用于基于所述软随机数、硬交互参数得到加密密文。
进一步的,所述软交互参数包括但不限于基于软随机数计算的椭圆曲线点和公钥;
所述硬交互参数包括但不限于基于软交互参数计算的两个椭圆曲线点。
进一步的,构造单元,还包括:
伪随机数发生器第一签名构造单元,用于产生软随机数,基于所述软随机数产生第一软交互参数;将所述第一软交互参数发送至真随机数发生器;
真随机数发生器第一签名构造单元,用于基于所述第一软交互参数产生硬随机数,基于所述第一软交互参数、硬随机数产生第一硬交互参数,并将所述第一硬交互参数返回至伪随机数发生器;
伪随机数发生器第二签名构造单元,用于基于所述第一硬交互参数、软随机数及伪随机数发生器保存的部分私钥生成第二软交互参数,将所述第二软交互参数发送至真随机数发生器;
真随机数发生器第二签名构造单元,用于使用所述第二软交互参数、真随机数发生器保存的部分私钥和/或硬随机数生成签名结果。
进一步的,所述第一软交互参数包括但不限于待签名消息的摘要和基于软随机数计算的椭圆曲线点。
进一步的,伪随机数发生器保存的部分私钥与真随机数发生器保存的部分私钥协同运算后产生电子签名。
本发明另一方面还提供了一种软硬件结合构造随机数的系统,包括软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数进行加密的运算结果等效,包括:
伪随机数发生器加密模块,用于产生软随机数,基于所述软随机数产生软交互参数;将所述软交互参数发送至真随机数发生器;接收真随机数发生器基于所述软交互参数、硬随机数产生的硬交互参数;并基于所述软随机数、硬交互参数得到加密密文。
本发明另一方面还提供了一种软硬件结合构造随机数的系统,包括软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数进行加密的运算结果等效,包括:
真随机数发生器加密模块,用于接收伪随机数发生器基于软随机数产生的软交互参数后,产生硬随机数;基于所述软交互参数、硬随机数产生硬交互参数,并将所述硬交互参数返回至伪随机数发生器,以便伪随机数发生器基于所述软随机数、硬交互参数得到加密密文。
本发明另一方面还提供了一种软硬件结合构造随机数的系统,包括软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数计算签名结果的运算结果等效,具体步骤包括:
伪随机数发生器签名模块,用于产生软随机数,基于所述软随机数产生第一软交互参数;将所述第一软交互参数发送至真随机数发生器;基于真随机数发生器返回的基于第一软交互参数、硬随机数产生的第一硬交互参数、软随机数及伪随机数发生器保存的部分私钥生成第二软交互参数,将所述第二软交互参数发送至真随机数发生器,以便真随机数发生器使用所述第二软交互参数、真随机数发生器保存的部分私钥和/或硬随机数生成签名结果。
本发明另一方面还提供了一种软硬件结合构造随机数的系统,包括软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数计算签名结果的运算结果等效,具体步骤包括:
真随机数发生器签名模块,用于接收伪随机数发生器通过软随机数产生的第一软交互参数,基于所述第一软交互参数产生硬随机数;通过所述第一软交互参数、硬随机数产生第一硬交互参数,并将所述第一硬交互参数返回至伪随机数发生器;通过接收所述伪随机数发生器发送的基于所述第一硬交互参数、软随机数及伪随机数发生器保存的部分私钥生成的第二软交互参数、真随机数发生器保存的部分私钥和/或硬随机数生成签名结果。
本发明另一方面还提供了一种软硬件结合构造随机数的设备,包括前述任一项所述的系统。
本发明提供的一种软硬件结合构造随机数的方法、系统和设备,通过伪随机数发生器产生软随机数,真随机数发生器产生硬随机数;将所述软随机数和硬随机数构造出目标真随机数,使得软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数的运算结果等效,且目标真随机数不可逆向恢复不存储的技术方案,基于等量代换的数学思想,使得完整的随机数不在软件或硬件任意一方合成,则完整的私钥在任何一方均未出现,通过软硬件结合的方法解决软随机数的安全问题,满足随机数不可预测的安全要求,该技术可以结合软、硬密码的技术特点,采用移动端纯软件,协同后台硬件的设计思路,以签名和加密的方式提供密码服务。从而既可满足认证安全要求,又可实现极简的客户体验,降低成本,普遍适用。
附图说明
图1为根据本发明的一种软硬件结合构造随机数的方法的实施例一的流程图;
图2为根据本发明的一种软硬件结合构造随机数的方法的实施例二的流程图;
图3为根据本发明的一种软硬件结合构造随机数的方法的实施例三的流程图;
图4为根据本发明的一种软硬件结合构造随机数的方法的实施例四的流程图;
图5为根据本发明的一种软硬件结合构造随机数的方法的实施例五的流程图;
图6根据本发明的一种软硬件结合构造随机数的系统的实施例六的结构框图;
图7根据本发明的一种软硬件结合构造随机数的系统的实施例七的结构框图;
图8根据本发明的一种软硬件结合构造随机数的系统的实施例八的结构框图;
图9根据本发明的一种软硬件结合构造随机数的系统的实施例九的结构框图;
图10根据本发明的一种软硬件结合构造随机数的系统的实施例十的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
为了便于理解,本发明实施例将伪随机数发生器用其下位概念客户端或软件代替,将真随机数发生器用服务器或服务器端代替。
以下,以具体的实施例结合附图对本发明的技术方案进行说明。
实施例一
参照图1,图1示出了本发明提供的一种软硬件结合构造随机数的方法的一实施例的流程图。包括:步骤S110和步骤S120。
在步骤S110中,伪随机数发生器产生软随机数,真随机数发生器产生硬随机数;
在步骤S120中,将所述软随机数和硬随机数构造出目标真随机数,使得软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数的运算结果等效,且目标真随机数不可逆向恢复不存储。
其中,构造目标真随机数根据客户端和服务端的约定进行构造,约定如何使用各自的随机数做运算,从而使得运算结果的合成与单独使用目标真随机数的效果一样。构造本身并不实现,也不在任何一端构造和存储。保证在协同签名过程中,完整密钥及完整的随机数均不出现。
所述硬随机数包括至少一个真随机数,由密码设备产生和存储。
所述密码设备包括但不限于能够提供真随机数的密码卡。
将所述软随机数和硬随机数构造出目标真随机数,使得软随机数与硬随机数运算的最终合成结果与目标真随机数的运算结果等效,包括:
基于等量代换的数学思想,将所述软随机数和硬随机数构造出目标真随机数,所述目标真随机数不在伪随机数发生器或真随机数发生器中进行合成计算,软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数计算签名结果或进行加密的运算结果等效。
软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数进行加密的运算结果等效,具体步骤包括:
伪随机数发生器产生软随机数,基于所述软随机数产生软交互参数;将所述软交互参数发送至真随机数发生器;
真随机数发生器产生硬随机数,基于所述软交互参数、硬随机数产生硬交互参数,并将所述硬交互参数返回至伪随机数发生器;
伪随机数发生器基于所述软随机数、硬交互参数得到加密密文。
所述软交互参数包括但不限于基于软随机数计算的椭圆曲线点和公钥;
所述硬交互参数包括但不限于基于软交互参数计算的两个椭圆曲线点。
软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数计算签名结果的运算结果等效,具体步骤包括:
伪随机数发生器产生软随机数,基于所述软随机数产生第一软交互参数;将所述第一软交互参数发送至真随机数发生器;
真随机数发生器基于所述第一软交互参数产生硬随机数,基于所述第一软交互参数、硬随机数产生第一硬交互参数,并将所述第一硬交互参数返回至伪随机数发生器;
伪随机数发生器基于所述第一硬交互参数、软随机数及伪随机数发生器保存的部分私钥生成第二软交互参数,将所述第二软交互参数发送至真随机数发生器;
真随机数发生器使用所述第二软交互参数、真随机数发生器保存的部分私钥和/或硬随机数生成签名结果。
其中,基于乘法多项式构造需要使用硬随机数;基于加法多项式构造不使用硬随机数。
所述第一软交互参数包括但不限于待签名消息的摘要和基于软随机数计算的椭圆曲线点。
伪随机数发生器保存的部分私钥与真随机数发生器保存的部分私钥协同运算后产生电子签名。
将所述软随机数和硬随机数构造出目标真随机数的构造方法包括但不限于:
软随机数和硬随机数通过乘法多项式构造出目标真随机数;或
软随机数和硬随机数通过加法多项式构造出目标真随机数。
其中,加密过程中,终端与服务器无明文消息交互,交互信息仅包括由随机数产生的椭圆曲线点,从而保障了随机数的机密性;在分布式算法的制约下,服务器不能单方伪造加密结果,终端对加密过程严格可控;签名过程中,终端与服务器无明文消息交互,交互信息仅包括由随机数产生的椭圆曲线点及中间签名结果,从而保障了随机数的机密性及用户交易隐私,在分布式算法的制约下,服务器不能单方伪造签名,终端对签名过程严格可控。
由SM2椭圆曲线公钥密码算法可见,加密过程的核心是随机产生椭圆曲线点R,该随机曲线点由随机数k及接收者B者的公开信息(PB)计算生成;如果随机数k是由伪随机数发生器所产生的,则随机数k可被预测;攻击者可通过预测随机数k,绕过必须由接受者私有密钥(PB)才能恢复随机曲线点R的限制;攻击者将解密过程的步骤替换为直接恢复随机曲线点R,R=[k]PB,从而实现机密信息的窃取。因此,需要从加密过程着手,解决软随机数k可被预测的安全问题。
为了解决上述加密随机数的问题,本发明采用部署服务器的方案为终端提供服务,终端软件与服务器通过分布式算法协同构造不可预测的随机数。终端无需单独集成硬件密码设备;服务器使用集约化部署的密码卡或加密机等硬件密码设备。随机数构造和使用方法可基于乘法、加法等多项式算法,通过分布式计算产生受加密终端控制的随机曲线点R,具体说明如下:
一具体实施例,基于加法多项式的随机数,构造原理:
构造目标真随机数k=k1+k2;软随机数k1与基点的运算结果是P1;硬随机数k2与基点的结果是P2;则合并运算结果后P=P1+P2=目标真随机数k与基地的运算结果。
加密过程如下:
终端C
C1:计算椭圆曲线点S=[h]PB,若S是无穷远点,则报错并退出;
C2:用伪随机数发生器产生随机数kp∈[1,n-1];
C3:计算椭圆曲线点Cp=[kp]G;
C4:将Cp、PB发送至数服务器;
服务器S
S5:用真随机数发生器产生随机数kt∈[1,n-1];
S6:计算椭圆曲线点C1=[kt]G+Cp,Rt=[kt]PB;
S7:将C1、Rt返回给终端;
终端C
C8:接收C1、Rt;
C9:计算椭圆曲线点R=[kp]PB+Rt=(x2,y2);
C10:计算t=KDF(x2||y2,klen),若t为全0比特串,则返回A1;
C11:计算C2=M⊕t;
C12:计算C3=Hash(x2||M||y2);
C13:输出密文C=C1||C3||C2。
另一具体实施例,基于乘法多项式的随机数,构造原理:
令:k=kp.kt,则:C1=[k]G=[kt][kp]G,R=[k]PB=[kp][kt]PB;
其中:kp是终端软件产生的软随机数,kt是硬件密码设备产生的硬随机数,k指目标真随机数;
加密过程如下:
终端C
C1:计算椭圆曲线点S=[h]PB,若S是无穷远点,则报错并退出;
C2:用伪随机数发生器产生随机数kp∈[1,n-1];
C3:计算椭圆曲线点Cp=[kp]G;
C4:将Cp、PB发送至服务器;
服务器S
S5:用真随机数发生器产生随机数kt∈[1,n-1];
S6:计算椭圆曲线点C1=[kt]Cp,Rt=[kt]PB;
S7:将C1、Rt返回给终端;
终端软件C
C8:接收C1、Rt;
C9:计算椭圆曲线点R=[kp]Rt=(x2,y2);
C10:计算t=KDF(x2||y2,klen),若t为全0比特串,则返回A1;
C11:计算C2=M⊕t;
C12:计算C3=Hash(x2||M||y2);
C13:输出密文C=C1||C3||C2。
本发明应用于加密的安全性体现在如下几个方面:
1)目标真随机数k由密码硬件设备参与产生,从而保证了随机数的不可预测性;
2)交互传输过程只包括软、硬随机数的运算结果(椭圆曲线点),而非随机数本身,从而保障了随机数的机密性;根据椭圆曲线离散对数分解问题(ECDLP)可知,随机数不可通过椭圆曲线点逆向恢复;
3)所被构造的目标随机数在所有环节均不落地出现,终端、服务器通过分布式算法实现的最终运算结果与直接使用目标真随机数的运算结果等效;
4)在分布式算法的制约下,由于服务器不具备独立产生有效运算结果(椭圆曲线点R)的条件,因此可确保终端对加密过程的控制;服务器不能伪造加密结果,也不具备解密的条件;
5)由于软硬随机数在每次加密过程均重新生成,从而可抵御重放等恶意攻击。
进一步的,为了防止攻击者在终端与服务器的通信链路上窃听中间结果Rt,或者通过仿冒服务器伪造返回信息,针对服务器的返回信息可结合签名、加密的保障机制,确保返回信息的可靠性和机密性。具体说明如下:
服务器S
使用终端公钥对返回信息加密,加密过程由真随机数发生器产生随机数;
使用服务器私钥对返回信息签名,签名过程由真随机数发生器产生随机数;
终端C
使用终端私钥解密获得服务器的返回信息;
使用服务器公钥证书验证返回信息的可靠性。
需要说明的是,由于使用私钥解密和使用公钥验证的算法过程均不涉及随机数的产生和使用,因而不会受到随机数攻击的威胁;与之相反,服务器可利用硬件密码设备确保公钥加密和私钥签名过程的安全性,有效抵御针对随机数预测的攻击。
伪随机数除了在加密应用中存在安全风险,在数字签名应用中同样不安全。由标准签名算法可知,在已知签名(r,s)和随机数k的情况下,可以推导出私钥d,推导公式如下:
d=((k+r)(s+r)-1-1)mod n;
针对此问题,本发明通过构造随机数的方法,由终端和服务器各自产生一个随机数,从而解决由于随机数暴露的所导致的私钥泄露问题。随机数构造和使用方法可基于乘法、加法等多项式算法,通过分布式计算产生可靠数字签名,具体说明如下:
设签名私钥(1+d)-1=(dc.ds)mod n,其中dc、ds分别为终端和服务器保存的密钥。当ds等于1时,即表示终端保存全部签名私钥的情况。(注释:可通过密钥动态更新达到终端、服务器分别保存部分签名私钥的效果)
一具体实施例:基于乘法多项式的随机数:
令:k=kp.kt,则:C1=[k]G=[kt][kp]G,R=[k]PB=[kp][kt]PB;
其中:kp是终端软件产生的软随机数,kt是硬件密码设备产生的硬随机数,k指目标真随机数,完整随机数在签名过程中可出现不可逆向恢复。
具体协同签名过程如下:
令:k=kc.ks,则:Q=[k]G=[ks][kc]G,k+r=kc.ks+r=ks(kc+r.(ks)-1)mod n
其中:kc是终端软件产生的软随机数,ks是硬件密码设备产生的硬随机数,k指目标真随机数;
签名过程如下:
终端C
[1]计算待签名消息的摘要e;
[2]产生随机数kc∈[1,n-1],计算随机椭圆曲线点Qc=[kc]G;
[3]将摘要e和随机椭圆曲线点Qc发送给服务器;
服务器S
[4]验证Qc是否是椭圆曲线上的点,若是则产生随机数ks∈[1,n-1],计算椭圆曲线点Q=(x1,y1)=[ks]Qc;计算r=(e+x1)mod n,若r=0或[r]G+Q=O(无穷远点),重新执行本步骤;
[5]计算中间签名ts=r.(ks)-1mod n;
[6]将中间签名ts发送给终端;
终端软件C
[7]计算中间签名tc=dc.(kc+ts);
[8]将中间签名tc发送给服务器;
服务器S
[9]计算s=(ds.ks.tc–r)mod n;若s=0或r+s=n重新发起签名过程,否则将(r,s)作为数字签名;
[10]将数字签名(r,s)发送给认证端验签。
另一具体实施例:基于加法多项式的随机数,构造原理如下:
令:k=kc+ks,则:Q=[k]G=[kc]G+[ks]G,k+r=(kc+ks+r)mod n;
其中:kc是终端软件产生的软随机数,ks是硬件密码设备产生的硬随机数,k指目标真随机数;
算法过程
终端C
[1]计算待签名消息的摘要e;
[2]产生随机数kc∈[1,n-1],计算随机椭圆曲线点Qc=[kc]G;
[3]将摘要e和随机椭圆曲线点Qc发送给服务器;
服务器S
[4]验证Qc是否是椭圆曲线上的点,若是则产生随机数ks∈[1,n-1],计算椭圆曲线点Q=(x1,y1)=Qc+[ks]G;计算r=(e+x1)mod n,若r=0或[r]G+Q=O(无穷远点),重新执行本步骤;
[5]计算中间签名ts=(ks+r)mod n;
[6]将中间签名ts发送给终端;
终端软件C
[7]计算中间签名tc=dc.(kc+ts)mod n;
[8]将中间签名tc发送给服务器;
服务器S
[9]计算s=(ds.tc–r)mod n;若s=0或r+s=n重新发起签名过程,否则将(r,s)作为数字签名;
[10]将数字签名(r,s)发送给认证端验签。
综上,本发明应用于签名的安全性体现在如下几个方面:
1)目标随机数k由密码硬件设备参与产生,从而保证了随机数的不可预测性;
2)交互传输过程只包括软、硬随机数的运算结果(椭圆曲线点及不可逆向恢复密钥的中间结果),从而保障了随机数的机密性;
3)所被构造的目标随机数在所有环节均不落地出现,终端、服务器通过分布式算法实现的最终运算结果与直接使用目标随机数的运算结果等效;
4)在分布式算法的制约下,由于服务器不具备独立产生数字签名的条件,因此可确保终端对签名过程的控制;服务器不能伪造数字签名;
5)由于软硬随机数在每次签名过程均重新生成,从而可抵御重放等恶意攻击。
本发明实施例一提供的一种软硬件结合构造随机数方法,通过伪随机数发生器产生软随机数,真随机数发生器产生硬随机数;将所述软随机数和硬随机数构造出目标真随机数,使得软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数的运算结果等效,且目标真随机数不可逆向恢复不存储的技术方案,达到以下有益效果:
1)终端无需连接或嵌入硬件密码设备,通过与服务器的分布式运算达到含有真随机数参与的目标结果,从而符合随机数不可预测的安全要求,有效提高了终端应用软件的安全水平;
2)通过软硬结合的技术手段,实现了终端去介质化的用户体验,在不牺牲安全性的前提下,提升了使用便利性;
3)可通过集约化硬件密码设备的部署,为用户提供安全服务,有效节约了硬件成本;
4)在分布式算法的制约下,终端对加密及签名过程严格可控,从而保障了用户隐私。
实施例二
参照图2,图2示出了本发明提供的一种软硬件结合构造随机数的方法的一实施例的流程图。包括:步骤S210和步骤S220。本实施例二基于实施例一的方案,具体阐述了伪随机数发生器侧,执行软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数进行加密的运算结果等效的交互过程和执行动作,具体算法可参考实施例一。
在步骤S210中,伪随机数发生器产生软随机数,基于所述软随机数产生软交互参数;将所述软交互参数发送至真随机数发生器;
在步骤S220中,接收真随机数发生器基于所述软交互参数、硬随机数产生的硬交互参数;并基于所述软随机数、硬交互参数得到加密密文。
由实施例一可知,软随机数和硬随机数构造出目标真随机数,随机数发生源与真随机数发生器交互的过程中,完整的目标真随机数(过程随机数)不出现,由服务端的软随机数和客户端的硬随机数协同运算的最终合成结果与目标真随机数的运算结果等效。交互的次数根据实际想得到的结果决定,不在本实施例中具体进行限制。
本发明实施例二提供的一种软硬件结合构造随机数方法,达到以下有益效果:
1)目标随机数k由密码硬件设备参与产生,从而保证了随机数的不可预测性;
2)交互传输过程只包括软、硬随机数的运算结果(椭圆曲线点),而非随机数本身,从而保障了随机数的机密性;根据椭圆曲线离散对数分解问题(ECDLP)可知,随机数不可通过椭圆曲线点逆向恢复;
3)所被构造的目标随机数在所有环节均不落地出现,终端、服务器通过分布式算法实现的最终运算结果与直接使用目标随机数的运算结果等效;
4)在分布式算法的制约下,由于服务器不具备独立产生有效运算结果(椭圆曲线点R)的条件,因此可确保终端对加密过程的控制;服务器不能伪造加密结果,也不具备解密的条件;
5)由于软硬随机数在每次加密过程均重新生成,从而可抵御重放等恶意攻击。
实施例三
参照图3,图3示出了本发明提供的一种软硬件结合构造随机数的方法的一实施例的流程图。包括:步骤S310和步骤S320。本实施例三基于实施例一的方案,具体阐述了真随机数发生器侧,执行软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数进行加密的运算结果等效的交互过程和执行动作,具体算法可参考实施例一。
在步骤S310中,真随机数发生器接收伪随机数发生器基于软随机数产生的软交互参数后,产生硬随机数;
在步骤S320中,基于所述软交互参数、硬随机数产生硬交互参数,并将所述硬交互参数返回至伪随机数发生器,以便伪随机数发生器基于所述软随机数、硬交互参数得到加密密文。
本发明实施例三提供的一种软硬件结合构造随机数方法,达到以下有益效果:
1)目标随机数k由密码硬件设备参与产生,从而保证了随机数的不可预测性;
2)交互传输过程只包括软、硬随机数的运算结果(椭圆曲线点),而非随机数本身,从而保障了随机数的机密性;根据椭圆曲线离散对数分解问题(ECDLP)可知,随机数不可通过椭圆曲线点逆向恢复;
3)所被构造的目标随机数在所有环节均不落地出现,终端、服务器通过分布式算法实现的最终运算结果与直接使用目标随机数的运算结果等效;
4)在分布式算法的制约下,由于服务器不具备独立产生有效运算结果(椭圆曲线点R)的条件,因此可确保终端对加密过程的控制;服务器不能伪造加密结果,也不具备解密的条件;
5)由于软硬随机数在每次加密过程均重新生成,从而可抵御重放等恶意攻击。
实施例四
参照图4,图4示出了本发明提供的一种软硬件结合构造随机数的方法的一实施例的流程图。包括:步骤S410和步骤S420。本实施例四基于实施例一的方案,具体阐述了伪随机数发生器侧,执行软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数计算签名结果的运算结果等效的交互过程和执行动作,具体算法可参考实施例一。
在步骤S410中,伪随机数发生器产生软随机数,基于所述软随机数产生第一软交互参数;将所述第一软交互参数发送至真随机数发生器;
在步骤S420中,基于真随机数发生器返回的基于第一软交互参数、硬随机数产生的第一硬交互参数、软随机数及伪随机数发生器保存的部分私钥生成第二软交互参数,将所述第二软交互参数发送至真随机数发生器,以便真随机数发生器使用所述第二软交互参数、真随机数发生器保存的部分私钥和/或硬随机数生成签名结果。
本发明实施例四提供的一种软硬件结合构造随机数方法,达到以下有益效果:
1)目标随机数k由密码硬件设备参与产生,从而保证了随机数的不可预测性;
2)交互传输过程只包括软、硬随机数的运算结果(椭圆曲线点及不可逆向恢复密钥的中间结果),从而保障了随机数的机密性;
3)所被构造的目标随机数在所有环节均不落地出现,终端、服务器通过分布式算法实现的最终运算结果与直接使用目标随机数的运算结果等效;
4)在分布式算法的制约下,由于服务器不具备独立产生数字签名的条件,因此可确保终端对签名过程的控制;服务器不能伪造数字签名;
5)由于软硬随机数在每次签名过程均重新生成,从而可抵御重放等恶意攻击。
实施例五
参照图5,图5示出了本发明提供的一种软硬件结合构造随机数的方法的一实施例的流程图。包括:步骤S510和步骤S520。本实施例五基于实施例一的方案,具体阐述了真随机数发生器侧,执行软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数计算签名结果的运算结果等效的交互过程和执行动作,具体算法可参考实施例一。
在步骤S510中,真随机数发生器接收伪随机数发生器通过软随机数产生的第一软交互参数,基于所述第一软交互参数产生硬随机数;通过所述第一软交互参数、硬随机数产生第一硬交互参数,并将所述第一硬交互参数返回至伪随机数发生器;
在步骤S520中,通过接收所述伪随机数发生器发送的基于所述第一硬交互参数、软随机数及伪随机数发生器保存的部分私钥生成的第二软交互参数、真随机数发生器保存的部分私钥和/或硬随机数生成签名结果。
本发明实施例五提供的一种软硬件结合构造随机数方法,达到以下有益效果:
1)目标随机数k由密码硬件设备参与产生,从而保证了随机数的不可预测性;
2)交互传输过程只包括软、硬随机数的运算结果(椭圆曲线点及不可逆向恢复密钥的中间结果),从而保障了随机数的机密性;
3)所被构造的目标随机数在所有环节均不落地出现,终端、服务器通过分布式算法实现的最终运算结果与直接使用目标随机数的运算结果等效;
4)在分布式算法的制约下,由于服务器不具备独立产生数字签名的条件,因此可确保终端对签名过程的控制;服务器不能伪造数字签名;
5)由于软硬随机数在每次签名过程均重新生成,从而可抵御重放等恶意攻击。
实施例六
参照图6,图6示出了本发明提供的一种软硬件结合构造随机数的系统600实施例的结构框图。包括:
产生模块61,用于通过伪随机数发生器产生软随机数,真随机数发生器产生硬随机数。
构造模块62,用于将所述软随机数和硬随机数构造出目标真随机数,使得软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数的运算结果等效,且目标真随机数不可逆向恢复不存储。
所述硬随机数包括至少一个真随机数,由密码设备产生和/或存储。
构造模块,包括:
构造单元,用于基于等量代换的数学思想,将所述软随机数和硬随机数构造出目标真随机数,所述目标真随机数不在伪随机数发生器或真随机数发生器中进行合成计算,软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数计算签名结果或进行加密的运算结果等效。
构造单元,包括但不限于:
第一构造子单元,用于基于软随机数和硬随机数通过乘法多项式构造出目标真随机数;或
第二构造子单元,用于基于软随机数和硬随机数通过加法多项式构造出目标真随机数。
构造单元,还包括:
伪随机数发生器第一加密构造单元,用于产生软随机数,基于所述软随机数产生软交互参数;将所述软交互参数发送至真随机数发生器;
真随机数发生器加密构造单元,用于产生硬随机数,基于所述软交互参数、硬随机数产生硬交互参数,并将所述硬交互参数返回至伪随机数发生器;
伪随机数发生器第二加密构造单元,用于基于所述软随机数、硬交互参数得到加密密文。
所述软交互参数包括但不限于基于软随机数计算的椭圆曲线点和公钥;
所述硬交互参数包括但不限于基于软交互参数计算的两个椭圆曲线点。
构造单元,还包括:
伪随机数发生器第一签名构造单元,用于产生软随机数,基于所述软随机数产生第一软交互参数;将所述第一软交互参数发送至真随机数发生器;
真随机数发生器第一签名构造单元,用于基于所述第一软交互参数产生硬随机数,基于所述第一软交互参数、硬随机数产生第一硬交互参数,并将所述第一硬交互参数返回至伪随机数发生器;
伪随机数发生器第二签名构造单元,用于基于所述第一硬交互参数、软随机数及伪随机数发生器保存的部分私钥生成第二软交互参数,将所述第二软交互参数发送至真随机数发生器;
真随机数发生器第二签名构造单元,用于使用所述第二软交互参数、真随机数发生器保存的部分私钥和/或硬随机数生成签名结果。
所述第一软交互参数包括但不限于待签名消息的摘要和基于软随机数计算的椭圆曲线点。
伪随机数发生器保存的部分私钥与真随机数发生器保存的部分私钥协同运算后产生电子签名。
具体实现的功能和处理方式参见方法实施例一至五描述的具体步骤。
由于本实施例六的系统所实现的处理及功能基本相应于前述图1-5所示的方法的实施例、原理和实例,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。
本发明实施例六提供的一种软硬件结合构造随机数系统,达到以下有益效果:
1)终端无需连接或嵌入硬件密码设备,通过与服务器的分布式运算达到含有真随机数参与的目标结果,从而符合随机数不可预测的安全要求,有效提高了终端应用软件的安全水平;
2)通过软硬结合的技术手段,实现了终端去介质化的用户体验,在不牺牲安全性的前提下,提升了使用便利性;
3)可通过集约化硬件密码设备的部署,为用户提供安全服务,有效节约了硬件成本;
4)在分布式算法的制约下,终端对加密及签名过程严格可控,从而保障了用户隐私。
实施例七
参照图7,图7示出了本发明提供的一种软硬件结合构造随机数的系统700实施例的结构框图。包括:
伪随机数发生器加密模块71,用于产生软随机数,基于所述软随机数产生软交互参数;将所述软交互参数发送至真随机数发生器;接收真随机数发生器基于所述软交互参数、硬随机数产生的硬交互参数;并基于所述软随机数、硬交互参数得到加密密文。
具体实现的功能和处理方式参见方法实施例一至五描述的具体步骤。
由于本实施例七的系统所实现的处理及功能基本相应于前述图1-5所示的方法的实施例、原理和实例,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。
本发明实施例七提供的一种软硬件结合构造随机数系统,达到以下有益效果:
1)目标随机数k由密码硬件设备参与产生,从而保证了随机数的不可预测性;
2)交互传输过程只包括软、硬随机数的运算结果(椭圆曲线点),而非随机数本身,从而保障了随机数的机密性;根据椭圆曲线离散对数分解问题(ECDLP)可知,随机数不可通过椭圆曲线点逆向恢复;
3)所被构造的目标随机数在所有环节均不落地出现,终端、服务器通过分布式算法实现的最终运算结果与直接使用目标随机数的运算结果等效;
4)在分布式算法的制约下,由于服务器不具备独立产生有效运算结果(椭圆曲线点R)的条件,因此可确保终端对加密过程的控制;服务器不能伪造加密结果,也不具备解密的条件;
5)由于软硬随机数在每次加密过程均重新生成,从而可抵御重放等恶意攻击。
实施例八
参照图8,图8示出了本发明提供的一种软硬件结合构造随机数的系统800实施例的结构框图。包括:
真随机数发生器加密模块81,用于接收伪随机数发生器基于软随机数产生的软交互参数后,产生硬随机数;基于所述软交互参数、硬随机数产生硬交互参数,并将所述硬交互参数返回至伪随机数发生器,以便伪随机数发生器基于所述软随机数、硬交互参数得到加密密文。
具体实现的功能和处理方式参见方法实施例一至五描述的具体步骤。
由于本实施例八的系统所实现的处理及功能基本相应于前述图1-5所示的方法的实施例、原理和实例,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。
本发明实施例八提供的一种软硬件结合构造随机数系统,达到以下有益效果:
1)目标随机数k由密码硬件设备参与产生,从而保证了随机数的不可预测性;
2)交互传输过程只包括软、硬随机数的运算结果(椭圆曲线点),而非随机数本身,从而保障了随机数的机密性;根据椭圆曲线离散对数分解问题(ECDLP)可知,随机数不可通过椭圆曲线点逆向恢复;
3)所被构造的目标随机数在所有环节均不落地出现,终端、服务器通过分布式算法实现的最终运算结果与直接使用目标随机数的运算结果等效;
4)在分布式算法的制约下,由于服务器不具备独立产生有效运算结果(椭圆曲线点R)的条件,因此可确保终端对加密过程的控制;服务器不能伪造加密结果,也不具备解密的条件;
5)由于软硬随机数在每次加密过程均重新生成,从而可抵御重放等恶意攻击。
实施例九
参照图9,图9示出了本发明提供的一种软硬件结合构造随机数的系统900实施例的结构框图。包括:
伪随机数发生器签名模块91,用于产生软随机数,基于所述软随机数产生第一软交互参数;将所述第一软交互参数发送至真随机数发生器;基于真随机数发生器返回的基于第一软交互参数、硬随机数产生的第一硬交互参数、软随机数及伪随机数发生器保存的部分私钥生成第二软交互参数,将所述第二软交互参数发送至真随机数发生器,以便真随机数发生器使用所述第二软交互参数、真随机数发生器保存的部分私钥和/或硬随机数生成签名结果。
具体实现的功能和处理方式参见方法实施例一至五描述的具体步骤。
由于本实施例九的系统所实现的处理及功能基本相应于前述图1-5所示的方法的实施例、原理和实例,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。
本发明实施例九提供的一种软硬件结合构造随机数系统,达到以下有益效果:
1)目标随机数k由密码硬件设备参与产生,从而保证了随机数的不可预测性;
2)交互传输过程只包括软、硬随机数的运算结果(椭圆曲线点及不可逆向恢复密钥的中间结果),从而保障了随机数的机密性;
3)所被构造的目标随机数在所有环节均不落地出现,终端、服务器通过分布式算法实现的最终运算结果与直接使用目标随机数的运算结果等效;
4)在分布式算法的制约下,由于服务器不具备独立产生数字签名的条件,因此可确保终端对签名过程的控制;服务器不能伪造数字签名;
5)由于软硬随机数在每次签名过程均重新生成,从而可抵御重放等恶意攻击。
实施例十
参照图10,图10示出了本发明提供的一种软硬件结合构造随机数的系统1000实施例的结构框图。包括:
真随机数发生器签名模块101,用于接收伪随机数发生器通过软随机数产生的第一软交互参数,基于所述第一软交互参数产生硬随机数;通过所述第一软交互参数、硬随机数产生第一硬交互参数,并将所述第一硬交互参数返回至伪随机数发生器;通过接收所述伪随机数发生器发送的基于所述第一硬交互参数、软随机数及伪随机数发生器保存的部分私钥生成的第二软交互参数、真随机数发生器保存的部分私钥和/或硬随机数生成签名结果。
具体实现的功能和处理方式参见方法实施例一至五描述的具体步骤。
由于本实施例十的系统所实现的处理及功能基本相应于前述图1-5所示的方法的实施例、原理和实例,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。
本发明实施例十提供的一种软硬件结合构造随机数系统,达到以下有益效果:
1)目标随机数k由密码硬件设备参与产生,从而保证了随机数的不可预测性;
2)交互传输过程只包括软、硬随机数的运算结果(椭圆曲线点及不可逆向恢复密钥的中间结果),从而保障了随机数的机密性;
3)所被构造的目标随机数在所有环节均不落地出现,终端、服务器通过分布式算法实现的最终运算结果与直接使用目标随机数的运算结果等效;
4)在分布式算法的制约下,由于服务器不具备独立产生数字签名的条件,因此可确保终端对签名过程的控制;服务器不能伪造数字签名;
5)由于软硬随机数在每次签名过程均重新生成,从而可抵御重放等恶意攻击。
实施例十一
本发明实施例十一提供的一种软硬件结合构造随机数的设备包括:
包括实施例六至十所述的系统600,700,800,900,1000。
本发明实施例十一提供的一种软硬件结合构造随机数设备,结合服务器所掌握的硬随机数和终端所掌握的软随机数,构造不可预测且不落地出现的目标随机数,使得终端、服务器通过分布式算法实现的最终运算结果与直接使用目标随机数的运算结果等效;加密过程中,终端与服务器无明文消息交互,交互信息仅包括由随机数产生的椭圆曲线点,从而保障了随机数的机密性;加密过程中,在分布式算法的制约下,服务器不能单方伪造加密结果,终端对加密过程严格可控;签名过程中,终端与服务器无明文消息交互,交互信息仅包括由随机数产生的椭圆曲线点及中间签名结果,从而保障了随机数的机密性及用户交易隐私;加密过程中,在分布式算法的制约下,服务器不能单方伪造签名,终端对签名过程严格可控。
本发明实施例十一具有以下优点:
1)终端无需连接或嵌入硬件密码设备,通过与服务器的分布式运算达到含有真随机数参与的目标结果,从而符合随机数不可预测的安全要求,有效提高了终端应用软件的安全水平;
2)通过软硬结合的技术手段,实现了终端去介质化的用户体验,在不牺牲安全性的前提下,提升了使用便利性;
3)企业可通过集约化硬件密码设备的部署,为用户提供安全服务,有效节约了硬件成本;
4)在分布式算法的制约下,终端对加密及签名过程严格可控,从而保障了用户隐私。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
需要指出,根据实施的需要,可将本申请中描述的各个步骤/部件拆分为更多步骤/部件,也可将两个或多个步骤/部件或者步骤/部件的部分操作组合成新的步骤/部件,以实现本发明的目的。
上述根据本发明的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的处理方法。此外,当通用计算机访问用于实现在此示出的处理的代码时,代码的执行将通用计算机转换为用于执行在此示出的处理的专用计算机。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (27)
1.一种软硬件结合构造真随机数的方法,其特征在于,该方法包括:
伪随机数发生器产生软随机数,真随机数发生器产生硬随机数;
将所述软随机数和硬随机数构造出所述目标真随机数,使得软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数的运算结果等效,且目标真随机数不可逆向恢复不存储。
2.如权利要求1所述的方法,其特征在于,所述硬随机数包括至少一个真随机数,由密码设备产生和/或存储。
3.如权利要求1-2之一所述的方法,其特征在于,将所述软随机数和硬随机数构造出目标真随机数,使得软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数的运算结果等效,包括:
基于等量代换的数学思想,将所述软随机数和硬随机数构造出目标真随机数,所述目标真随机数不在伪随机数发生器或真随机数发生器中进行合成计算,软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数计算签名结果或进行加密的运算结果等效。
4.如权利要求1-3之一所述的方法,其特征在于,将所述软随机数和硬随机数构造出目标真随机数的构造方法包括但不限于:
软随机数和硬随机数通过乘法多项式构造出目标真随机数;或
软随机数和硬随机数通过加法多项式构造出目标真随机数。
5.如权利要求3所述的方法,其特征在于,软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数进行加密的运算结果等效,具体步骤包括:
伪随机数发生器产生软随机数,基于所述软随机数产生软交互参数;将所述软交互参数发送至真随机数发生器;
真随机数发生器产生硬随机数,基于所述软交互参数、硬随机数产生硬交互参数,并将所述硬交互参数返回至伪随机数发生器;
伪随机数发生器基于所述软随机数、硬交互参数得到加密密文。
6.如权利要求5所述的方法,其特征在于,所述软交互参数包括但不限于基于软随机数计算的椭圆曲线点和公钥;
所述硬交互参数包括但不限于基于软交互参数计算的两个椭圆曲线点。
7.如权利要求3所述的方法,其特征在于,软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数计算签名结果的运算结果等效,具体步骤包括:
伪随机数发生器产生软随机数,基于所述软随机数产生第一软交互参数;将所述第一软交互参数发送至真随机数发生器;
真随机数发生器基于所述第一软交互参数产生硬随机数,基于所述第一软交互参数、硬随机数产生第一硬交互参数,并将所述第一硬交互参数返回至伪随机数发生器;
伪随机数发生器基于所述第一硬交互参数、软随机数及伪随机数发生器保存的部分私钥生成第二软交互参数,将所述第二软交互参数发送至真随机数发生器;
真随机数发生器使用所述第二软交互参数、真随机数发生器保存的部分私钥和/或硬随机数生成签名结果。
8.如权利要求7所述的方法,其特征在于,所述第一软交互参数包括但不限于待签名消息的摘要和基于软随机数计算的椭圆曲线点。
9.如权利要求7所述的方法,其特征在于,伪随机数发生器保存的部分私钥与真随机数发生器保存的部分私钥协同运算后产生电子签名。
10.一种软硬件结合构造随机数的方法,该方法包括软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数进行加密的运算结果等效,其特征在于,具体步骤包括:
伪随机数发生器产生软随机数,基于所述软随机数产生软交互参数;将所述软交互参数发送至真随机数发生器;
接收真随机数发生器基于所述软交互参数、硬随机数产生的硬交互参数;并基于所述软随机数、硬交互参数得到加密密文。
11.一种软硬件结合构造随机数的方法,该方法包括软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数进行加密的运算结果等效,其特征在于,具体步骤包括:
真随机数发生器接收伪随机数发生器基于软随机数产生的软交互参数后,产生硬随机数;
基于所述软交互参数、硬随机数产生硬交互参数,并将所述硬交互参数返回至伪随机数发生器,以便伪随机数发生器基于所述软随机数、硬交互参数得到加密密文。
12.一种软硬件结合构造随机数的方法,该方法包括软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数计算签名结果的运算结果等效,其特征在于,具体步骤包括:
伪随机数发生器产生软随机数,基于所述软随机数产生第一软交互参数;将所述第一软交互参数发送至真随机数发生器;
基于真随机数发生器返回的基于第一软交互参数、硬随机数产生的第一硬交互参数、软随机数及伪随机数发生器保存的部分私钥生成第二软交互参数,将所述第二软交互参数发送至真随机数发生器,以便真随机数发生器使用所述第二软交互参数、真随机数发生器保存的部分私钥和/或硬随机数生成签名结果。
13.一种软硬件结合构造随机数的方法,该方法包括软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数计算签名结果的运算结果等效,其特征在于,具体步骤包括:
真随机数发生器接收伪随机数发生器通过软随机数产生的第一软交互参数,基于所述第一软交互参数产生硬随机数;通过所述第一软交互参数、硬随机数产生第一硬交互参数,并将所述第一硬交互参数返回至伪随机数发生器;
通过接收所述伪随机数发生器发送的基于所述第一硬交互参数、软随机数及伪随机数发生器保存的部分私钥生成的第二软交互参数、真随机数发生器保存的部分私钥和/或硬随机数生成签名结果。
14.一种软硬件结合构造真随机数的系统,其特征在于,包括:
产生模块,用于通过伪随机数发生器产生软随机数,真随机数发生器产生硬随机数;
构造模块,用于将所述软随机数和硬随机数构造出目标真随机数,使得软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数的运算结果等效,且目标真随机数不可逆向恢复不存储。
15.如权利要求14所述的系统,其特征在于,所述硬随机数包括至少一个真随机数,由密码设备产生和/或存储。
16.如权利要求14-15之一所述的系统,其特征在于,构造模块,包括:
构造单元,用于基于等量代换的数学思想,将所述软随机数和硬随机数构造出目标真随机数,所述目标真随机数不在伪随机数发生器或真随机数发生器中进行合成计算,软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数计算签名结果或进行加密的运算结果等效。
17.如权利要求14-16之一所述的系统,其特征在于,构造单元,包括但不限于:
第一构造子单元,用于基于软随机数和硬随机数通过乘法多项式构造出目标真随机数;或
第二构造子单元,用于基于软随机数和硬随机数通过加法多项式构造出目标真随机数。
18.如权利要求17所述的系统,其特征在于,构造单元,还包括:
伪随机数发生器第一加密构造单元,用于产生软随机数,基于所述软随机数产生软交互参数;将所述软交互参数发送至真随机数发生器;
真随机数发生器加密构造单元,用于产生硬随机数,基于所述软交互参数、硬随机数产生硬交互参数,并将所述硬交互参数返回至伪随机数发生器;
伪随机数发生器第二加密构造单元,用于基于所述软随机数、硬交互参数得到加密密文。
19.如权利要求18所述的系统,其特征在于,所述软交互参数包括但不限于基于软随机数计算的椭圆曲线点和公钥;
所述硬交互参数包括但不限于基于软交互参数计算的两个椭圆曲线点。
20.如权利要求17所述的系统,其特征在于,构造单元,还包括:
伪随机数发生器第一签名构造单元,用于产生软随机数,基于所述软随机数产生第一软交互参数;将所述第一软交互参数发送至真随机数发生器;
真随机数发生器第一签名构造单元,用于基于所述第一软交互参数产生硬随机数,基于所述第一软交互参数、硬随机数产生第一硬交互参数,并将所述第一硬交互参数返回至伪随机数发生器;
伪随机数发生器第二签名构造单元,用于基于所述第一硬交互参数、软随机数及伪随机数发生器保存的部分私钥生成第二软交互参数,将所述第二软交互参数发送至真随机数发生器;
真随机数发生器第二签名构造单元,用于使用所述第二软交互参数、真随机数发生器保存的部分私钥和/或硬随机数生成签名结果。
21.如权利要求20所述的系统,其特征在于,所述第一软交互参数包括但不限于待签名消息的摘要和基于软随机数计算的椭圆曲线点。
22.如权利要求21所述的系统,其特征在于,伪随机数发生器保存的部分私钥与真随机数发生器保存的部分私钥协同运算后产生电子签名。
23.一种软硬件结合构造随机数的系统,包括软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数进行加密的运算结果等效,其特征在于,包括:
伪随机数发生器加密模块,用于产生软随机数,基于所述软随机数产生软交互参数;将所述软交互参数发送至真随机数发生器;接收真随机数发生器基于所述软交互参数、硬随机数产生的硬交互参数;并基于所述软随机数、硬交互参数得到加密密文。
24.一种软硬件结合构造随机数的系统,包括软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数进行加密的运算结果等效,其特征在于,包括:
真随机数发生器加密模块,用于接收伪随机数发生器基于软随机数产生的软交互参数后,产生硬随机数;基于所述软交互参数、硬随机数产生硬交互参数,并将所述硬交互参数返回至伪随机数发生器,以便伪随机数发生器基于所述软随机数、硬交互参数得到加密密文。
25.一种软硬件结合构造随机数的系统,包括软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数计算签名结果的运算结果等效,其特征在于,具体步骤包括:
伪随机数发生器签名模块,用于产生软随机数,基于所述软随机数产生第一软交互参数;将所述第一软交互参数发送至真随机数发生器;基于真随机数发生器返回的基于第一软交互参数、硬随机数产生的第一硬交互参数、软随机数及伪随机数发生器保存的部分私钥生成第二软交互参数,将所述第二软交互参数发送至真随机数发生器,以便真随机数发生器使用所述第二软交互参数、真随机数发生器保存的部分私钥和/或硬随机数生成签名结果。
26.一种软硬件结合构造随机数的系统,包括软随机数与硬随机数运算的最终合成结果与直接使用目标真随机数计算签名结果的运算结果等效,其特征在于,具体步骤包括:
真随机数发生器签名模块,用于接收伪随机数发生器通过软随机数产生的第一软交互参数,基于所述第一软交互参数产生硬随机数;通过所述第一软交互参数、硬随机数产生第一硬交互参数,并将所述第一硬交互参数返回至伪随机数发生器;通过接收所述伪随机数发生器发送的基于所述第一硬交互参数、软随机数及伪随机数发生器保存的部分私钥生成的第二软交互参数、真随机数发生器保存的部分私钥和/或硬随机数生成签名结果。
27.一种软硬件结合构造随机数的设备,包括如权利要求14-22,23,24,25,26任一项所述的系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710667079.7A CN107465508B (zh) | 2017-08-07 | 2017-08-07 | 一种软硬件结合构造真随机数的方法、系统和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710667079.7A CN107465508B (zh) | 2017-08-07 | 2017-08-07 | 一种软硬件结合构造真随机数的方法、系统和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107465508A true CN107465508A (zh) | 2017-12-12 |
CN107465508B CN107465508B (zh) | 2021-02-23 |
Family
ID=60548310
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710667079.7A Active CN107465508B (zh) | 2017-08-07 | 2017-08-07 | 一种软硬件结合构造真随机数的方法、系统和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107465508B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109801131A (zh) * | 2019-01-07 | 2019-05-24 | 上海京信信息科技有限公司 | 信用体系数据处理方法以及信用体系数据处理系统 |
US10776079B2 (en) | 2018-05-31 | 2020-09-15 | Winbond Electronics Corp. | True random number generation device and generation method thereof |
CN113630240A (zh) * | 2020-05-09 | 2021-11-09 | 成都天瑞芯安科技有限公司 | 拟态安全密码计算模型 |
CN113630240B (zh) * | 2020-05-09 | 2024-04-26 | 成都天瑞芯安科技有限公司 | 一种拟态安全密码计算系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317551A (zh) * | 2014-10-17 | 2015-01-28 | 北京德加才科技有限公司 | 一种超高安全的真随机数生成方法及真随机数生成系统 |
CN104468125A (zh) * | 2014-12-24 | 2015-03-25 | 江西倍康信息技术有限公司 | 基于国密算法的移动互联网信息通信加密方法 |
CN104636115A (zh) * | 2013-11-14 | 2015-05-20 | 国家电网公司 | 一种真随机数后处理装置及方法 |
CN106293617A (zh) * | 2016-08-12 | 2017-01-04 | 上海坚芯电子科技有限公司 | 真随机数发生器 |
CN106612176A (zh) * | 2016-12-16 | 2017-05-03 | 中国电子科技集团公司第三十研究所 | 一种基于量子真随机数协商密钥协商系统及协商方法 |
CN106612182A (zh) * | 2016-12-22 | 2017-05-03 | 中国电子科技集团公司第三十研究所 | 一种基于余数系统的sm2白盒数字签名实现方法 |
-
2017
- 2017-08-07 CN CN201710667079.7A patent/CN107465508B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104636115A (zh) * | 2013-11-14 | 2015-05-20 | 国家电网公司 | 一种真随机数后处理装置及方法 |
CN104317551A (zh) * | 2014-10-17 | 2015-01-28 | 北京德加才科技有限公司 | 一种超高安全的真随机数生成方法及真随机数生成系统 |
CN104468125A (zh) * | 2014-12-24 | 2015-03-25 | 江西倍康信息技术有限公司 | 基于国密算法的移动互联网信息通信加密方法 |
CN106293617A (zh) * | 2016-08-12 | 2017-01-04 | 上海坚芯电子科技有限公司 | 真随机数发生器 |
CN106612176A (zh) * | 2016-12-16 | 2017-05-03 | 中国电子科技集团公司第三十研究所 | 一种基于量子真随机数协商密钥协商系统及协商方法 |
CN106612182A (zh) * | 2016-12-22 | 2017-05-03 | 中国电子科技集团公司第三十研究所 | 一种基于余数系统的sm2白盒数字签名实现方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10776079B2 (en) | 2018-05-31 | 2020-09-15 | Winbond Electronics Corp. | True random number generation device and generation method thereof |
CN109801131A (zh) * | 2019-01-07 | 2019-05-24 | 上海京信信息科技有限公司 | 信用体系数据处理方法以及信用体系数据处理系统 |
CN113630240A (zh) * | 2020-05-09 | 2021-11-09 | 成都天瑞芯安科技有限公司 | 拟态安全密码计算模型 |
CN113630240B (zh) * | 2020-05-09 | 2024-04-26 | 成都天瑞芯安科技有限公司 | 一种拟态安全密码计算系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107465508B (zh) | 2021-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106961336B (zh) | 一种基于sm2算法的密钥分量托管方法和系统 | |
Almaiah et al. | A new hybrid text encryption approach over mobile ad hoc network | |
CN101977112B (zh) | 一种基于神经网络混沌吸引子的公钥密码加密和解密方法 | |
CN107147488A (zh) | 一种基于sm2加解密算法的签名验签系统和方法 | |
CN104270247B (zh) | 适用于量子密码系统的高效泛Hash函数认证方法 | |
CN110971390A (zh) | 一种用于智能合约隐私保护的全同态加密方法 | |
CN110120939B (zh) | 一种基于异构系统的可否认认证的加密方法和系统 | |
CN104135473B (zh) | 一种由密文策略的属性基加密实现身份基广播加密的方法 | |
CN107196926A (zh) | 一种云外包隐私集合比较方法与装置 | |
CN107425968A (zh) | 一种二进制域F2m下的SM2椭圆曲线公钥加密算法的实现系统 | |
CN107872322A (zh) | 基于同态加密的数字签名协同生成方法及系统 | |
CN107968710A (zh) | Sm9数字签名分离交互生成方法及系统 | |
CN107276752A (zh) | 对云支付限制密钥进行解密的方法、装置和系统 | |
US6640303B1 (en) | System and method for encryption using transparent keys | |
Gupta et al. | Single secret image sharing scheme using neural cryptography | |
CN103444128B (zh) | 密钥pv签名 | |
CN107241196A (zh) | 基于区块链技术的数字签名方法及系统 | |
CN110663215A (zh) | 在白盒场景中的椭圆曲线点乘设备和方法 | |
CN109543434A (zh) | 区块链信息加密方法、解密方法、存储方法及装置 | |
Nagaraj et al. | Image encryption using elliptic curve cryptograhy and matrix | |
CN105162589A (zh) | 一种基于格的可验证属性加密方法 | |
WO2013021360A1 (en) | Encryption and decryption method | |
US6111952A (en) | Asymmetrical cryptographic communication method and portable object therefore | |
WO2014030706A1 (ja) | 暗号化データベースシステム、クライアント装置およびサーバ、暗号化データ加算方法およびプログラム | |
CN105339995B (zh) | 解密装置、解密能力提供装置、其方法、以及记录介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210126 Address after: No.8 xiaoyunli, Chaoyang District, Beijing, 100016, 2011 Applicant after: Lv Wenhua Address before: 100081 room 1313, 13 / F, building 689, zone 1, 5 Zhongguancun South Street, Haidian District, Beijing Applicant before: BANKEYS TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
PP01 | Preservation of patent right |
Effective date of registration: 20230516 Granted publication date: 20210223 |
|
PP01 | Preservation of patent right |