CN109687978A - 基于私钥池和Elgamal的抗量子计算代理数字签名方法和系统 - Google Patents
基于私钥池和Elgamal的抗量子计算代理数字签名方法和系统 Download PDFInfo
- Publication number
- CN109687978A CN109687978A CN201910034504.8A CN201910034504A CN109687978A CN 109687978 A CN109687978 A CN 109687978A CN 201910034504 A CN201910034504 A CN 201910034504A CN 109687978 A CN109687978 A CN 109687978A
- Authority
- CN
- China
- Prior art keywords
- key
- pond
- proxy
- random number
- parameter
- 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/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
-
- 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/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/76—Proxy, i.e. using intermediary entity to perform cryptographic operations
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种基于私钥池和Elgamal的抗量子计算代理数字签名方法和系统,包括在原始签名方进行的如下步骤:生成一个第一真随机数,基于第一真随机数在代理参数池中取出对应的代理参数;利用代理签名方的公钥指针随机数在所述非对称公钥密钥池中取出代理签名方的加密公钥;利用代理签名方的加密公钥和所述代理参数,计算得到第一共享密钥;利用原始签名方的签名私钥和所述代理参数运算得到第一代理私钥;利用第一共享密钥对第一代理私钥和原始签名方的公钥指针随机数进行加密,得到加密结果;将待签名的原文、所述第一真随机数、代理签名方的公钥指针随机数和加密结果发送给代理签名方,供代理签名方经签名后发送至验证方进行验证。
Description
技术领域
本发明涉及安全通信领域,尤其是基于私钥池和Elgamal的抗量子计算代理数字签名方法和系统。
背景技术
在现实世界里,人们经常需要将自己的某些权利委托给可靠的代理人,让代理人代表本人去行使这些权利。在这些可以委托的权利中包括人们的签名权。委托签名权的传统方法是使用印章,因为印章可以在人们之间灵活地传递。数字签名是手写签名的电子模拟,但是数字签名不能提供代理功能。
1996年,Mambo、Usuda和Okamoto提出了代理签名的概念,给出了解决这个问题的一种方法。代理签名方案应满足不可否认性、可验证性、不可伪造性、可区分性等六条性质。由于代理签名在实际应用中起着重要作用,所以代理签名一提出便受到广泛关注,国内外学者对其进行了深入的探讨与研究。迄今为止,人们已提出了多种代理签名方案。
首先,Mambo、Usuda和Okamoto提出了完全代理签名、部分代理签名和具有授权证书的代理签名。Zhang提出了具有授权证书的部分代理签名和门限代理签名。Sun、Lee和Hwang指出Zhang和Kim、Park和Won的门限代理签名方案是不安全的,并给出了一个改进方案。李继国、曹珍富进一步指出Sun、Lee和Hwang的方案不能抵抗公钥替换攻击,并给出了一个更安全的不可否认门限代理签名方案。后来,Sun提出了具有已知签名者的有效不可否认门限代理签名方案,具有一些较好的性质。但Hwang、Lin和Lu指出Sun的方案也是不安全的,并给出相应的改进。Sun和Chen以及Sun提出了具有跟踪接收者的时戳代理签名。
最近,伊丽江等与祁明、Harn分别提出了一个新的代理签名方案:代理多重签名。李继国等与王晓明、符方伟分别指出他们的方案是不安全的,并给出了相应的改进。不可否认性是代理签名的重要性质,现存的大部分代理签名方案不具有不可否认性。在实践中,不可否认性是非常重要的。例如,当签名滥用发生争议时,权威机构必须确定谁是代理签名的真正签名者。Mambo等和Kim等称他们的代理保护代理签名方案具有不可否认性,但Sun和Hsieh指出了他们的代理签名方案是不安全的,并给出了相应的改进。Lee,Hwang和Wang也指出Zhang的不可否认代理签名方案是不安全的。Hwang和Shi提出的方案能对原始签名者和代理签名者进行公平安全保护。李继国等对代理签名的不可否认性进行了较深入的研究。由此可见,关于不可否认代理签名方案尚待进一步研究。
到目前为止,国内外学者还没有对代理签名给出系统的分类。Lee、Kim和Kim根据不可否认性质把代理签名分为强代理签名和弱代理签名。强代理签名代表原始签名者和代理签名者的签名,而弱代理签名仅代表原始签名者的签名。根据是否指定代理签名者把代理签名分为指定代理签名和非指定代理签名。他们也考虑了自代理签名:原始签名者为他自己产生一个代理密钥对,即原始签名者和代理签名者是同一方。
Mambo、Usuda和Okamoto把代理签名分为三大类:完全代理签名、部分代理签名和具有证书的代理签名。
完全代理签名(full delegation)
在完全代理签名中,原始签名者直接把自己的签名密钥通过安全信道发送给代理签名者,他们能产生相同的签名。
由于代理签名者所产生的签名与原始签名者所产生的签名是不可区分的,所以不能制止可能的签名滥用。完全代理签名也不具有可识别性和不可否认性。在很多情况下,原始签名者过后不得不修改他的签名密钥,因此这种签名不适用于商业应用。
部分代理签名(partial delegation)
在部分代理签名中,原始签名者使用自己的签名密钥s产生代理签名密钥σ,并把σ以安全的方式发送给代理签名者。出于安全考虑,要求从代理签名密钥σ不能求出原始签名者的密钥s,使用这种方法有两种类型的方案:
代理非保护代理签名(proxy-unprotected proxy signature)
除了原始签名者,指定的代理签名者能够代替原始签名者产生有效代理签名。但是,没有指定为代理签名者的第三方不能产生有效代理签名。
代理保护代理签名(proxy-protected proxy signature)
只有指定的代理签名者能够代替原始签名者产生有效代理签名。但是,原始签名者和第三方都不能产生有效代理签名。
在部分代理签名中,代理签名者以σ为签名密钥按普通的签名方案产生代理签名,可以使用修改的验证方程来验证代理签名的有效性。因为在验证方程中有原始签名者的公钥,所以验证者能够确信代理签名是经原始签名者授权的。人们根据不同的需要提出了各种各样的部分代理签名。例如,门限代理签名、不可否认代理签名、多重代理签名、具有接收者的代理签名、具有时戳的代理签名和具有证书的部分代理签名,极大地丰富和发展了部分代理签名。
在密码学中,ElGamal加密算法是一个基于迪菲-赫尔曼密钥交换的非对称加密算法。它在1985年由塔希尔·盖莫尔提出。GnuPG和PGP等很多密码学系统中都应用到了ElGamal算法。ElGamal加密算法可以定义在任何循环群G上。它的安全性取决于G上的离散对数难题。
ElGamal加密系统通常应用在混合加密系统中。例如:用对称加密体制来加密消息,然后利用ElGamal加密算法传递密钥。这是因为在同等安全等级下,ElGamal加密算法作为一种非对称密码学系统,通常比对称加密体制要慢。对称加密算法的密钥和要传递的消息相比通常要短得多,所以相比之下使用ElGamal加密密钥然后用对称加密来加密任意长度的消息,这样要更快一些。
量子计算机在密码破解上有着巨大潜力。当今主流的非对称(公钥)加密算法,如RSA加密算法,大多数都是基于大整数的因式分解或者有限域上的离散对数的计算这两个数学难题。它们的破解难度也就依赖于解决这些问题的效率。传统计算机上,要求解这两个数学难题,花费时间为指数时间(即破解时间随着公钥长度的增长以指数级增长),这在实际应用中是无法接受的。而为量子计算机量身定做的秀尔算法可以在多项式时间内(即破解时间随着公钥长度的增长以k次方的速度增长,其中k为与公钥长度无关的常数)进行整数因式分解或者离散对数计算,从而为RSA、离散对数加密算法的破解提供可能。
现有技术存在的问题:
1.现有技术中,由于量子计算机能快速通过公钥得到对应的私钥,因此基于公私钥的数字签名方法容易被量子计算机破解。
2.现有技术中,基于公私钥的数字签名的输入和输出均可被敌方所知,在量子计算机存在的情况下,可能被推导出私钥,导致数字签名被量子计算机破解。
发明内容
基于此,有必要针对基于公私钥的数字签名方法容易被量子计算机破解问题,提供一种安全性更高的数字签名方法和系统。
一种基于私钥池和Elgamal的抗量子计算代理数字签名方法,各参与方均配置有密钥卡,所述密钥卡中存储有非对称公钥密钥池、公钥指针随机数、私钥和代理参数池;
所述非对称公钥密钥池中的同一位置存储有各参与方的签名公钥和加密公钥,私钥的同一位置存储有各参与方的签名私钥和加密私钥;
所述抗量子计算代理数字签名方法包括在原始签名方进行的如下步骤:
生成一个第一真随机数,基于第一真随机数在代理参数池中取出对应的代理参数;
利用代理签名方的公钥指针随机数在所述非对称公钥密钥池中取出代理签名方的加密公钥;
利用代理签名方的加密公钥和所述代理参数,计算得到第一共享密钥;
利用原始签名方的签名私钥和所述代理参数运算得到第一代理私钥;
利用第一共享密钥对第一代理私钥和原始签名方的公钥指针随机数进行加密,得到加密结果;
将待签名的原文、所述第一真随机数、代理签名方的公钥指针随机数和加密结果发送给代理签名方,供代理签名方经签名后发送至验证方进行验证。
以下还提供了若干可选方式,但并不作为对上述总体方案的额外限定,仅仅是进一步的增补或优选,在没有技术或逻辑矛盾的前提下,各可选方式可单独针对上述总体方案进行组合,还可以是多个可选方式之间进行组合。
可选地,所述代理参数池包括:预存第一代理参数的第一代理参数池、预存第二代理参数的第二代理参数池、以及预存第三代理参数的私钥池,所述第三代理参数与第一代理参数之间符合预设的换算关系,所述第三代理参数与第二代理参数之间符合预设的换算关系。
可选地,所述第一代理参数为Ki,所述第二代理参数为KEi,所述第三代理参数为ki,且满足Ki=gski mod ps,所述gs、ps为代理签名算法的系统参数;KEi=geki mod qe,所述ge、qe为Elgamal算法的系统参数。
可选地,所述参与方包括原始签名方、代理签名方和验证方;
各参与方的密钥卡中的第一代理参数池包括1~N号第一单元池,N为颁发的密钥卡总数,所述私钥池包括1~N号第二单元池,且第一单元池和第二单元池一一对应,每个参与方的密钥卡中配置一个所述第二单元池。
可选地,在所述代理参数池中预存代理参数的方法为:
在{1,…,Max-1}范围内随机取真随机数ki,Max为ps和qe中的最小值;
取随机数ri作为私钥池的指针随机数,用指针函数作用于随机数ri,得到指针kp,该指针kp指向私钥池中单元池的相应位置,在该位置存储对应的ki;
所述指针kp运算后得到指针Kp,该指针Kp指向第一代理参数池的相应位置,在该位置存储对应的Ki;
所述指针kp运算后得到指针KEp,该指针KEp指向第二代理参数池的相应位置,在该位置存储对应的KEi。
可选地,所述抗量子计算代理数字签名方法还包括在代理签名方进行的如下步骤:
接收原始签名方信息,并根据第一真随机数从代理参数池中取出相应的代理参数;
利用代理签名方的加密私钥和代理参数,解密得到共享密钥;
利用共享密钥解密得到代理私钥和原始签名方的公钥指针随机数;
利用代理私钥进行签名;
生成第二真随机数,基于第二真随机数在代理参数池中取出对应的代理参数;
利用验证方的公钥指针随机数在所述非对称公钥密钥池中取出验证方的加密公钥;
利用验证方的加密公钥和所述代理参数,计算得到第二共享密钥;
利用第二共享密钥加密签名、第一真随机数、原始签名方的公钥指针随机数、代理签名方的公钥指针随机数,得到加密结果;
将待签名的原文、第二真随机数、验证方的公钥指针随机数和加密结果发送给验证方进行验证。
可选地,所述抗量子计算代理数字签名方法还包括在代理签名方进行的如下步骤:
利用所述第一真随机数在所述非对称密钥池中取出原始签名方的签名公钥;
利用所述代理参数、签名公钥和所述第一代理私钥验证所述第一代理私钥的有效性;
在验证通过后再对所述原文进行签名。
可选地,所述抗量子计算代理数字签名方法还包括在验证方进行的如下步骤:
接收代理签名方的消息,并根据第二真随机数在代理参数池中取出对应的代理参数;
利用验证方的加密私钥和所述代理参数计算得到第二共享密钥;
利用第二共享密钥解密加密结果,得到签名、第一真随机数、原始签名方的公钥指针随机数、代理签名方的公钥指针随机数;
根据第一真随机数从代理参数池中取出对应的代理参数;
利用原始签名方的公钥指针随机数在非对称公钥密钥池中取出原始签名方的公钥;
利用原始签名方的公钥和所述代理参数计算得到验证公钥;
利用所述验证公钥、所述签名和所述原文进行验证。
本发明还提供了一种基于私钥池和Elgamal的抗量子计算代理数字签名系统,各参与方均配置有密钥卡,所述密钥卡中存储有非对称公钥密钥池、公钥指针随机数、私钥和代理参数池;
所述非对称公钥密钥池中的同一位置存储有各参与方的签名公钥和加密公钥,私钥的同一位置存储有各参与方的签名私钥和加密私钥;
所述抗量子计算代理数字签名方法包括设置在原始签名方的:
第一模块,用于生成一个第一真随机数,基于第一真随机数在代理参数池中取出对应的代理参数;
第二模块,用于利用代理签名方的公钥指针随机数在所述非对称公钥密钥池中取出代理签名方的加密公钥;
第三模块,用于利用代理签名方的加密公钥和所述代理参数,计算得到第一共享密钥;
第四模块,用于利用原始签名方的签名私钥和所述代理参数运算得到第一代理私钥;
第五模块,用于利用第一共享密钥对第一代理私钥和原始签名方的公钥指针随机数进行加密,得到加密结果;
第六模块,用于将待签名的原文、所述第一真随机数、代理签名方的公钥指针随机数和加密结果发送给代理签名方,供代理签名方经签名后发送至验证方进行验证。
本发明还提供了一种基于私钥池和Elgamal的抗量子计算代理数字签名系统,各参与方均配置有密钥卡,所述密钥卡中存储有非对称公钥密钥池、公钥指针随机数、私钥和代理参数池;
所述非对称公钥密钥池中的同一位置存储有各参与方的签名公钥和加密公钥,私钥的同一位置存储有各参与方的签名私钥和加密私钥;
各参与方包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现权利要求1~8任一项所述的基于私钥池和Elgamal的抗量子计算代理数字签名方法。
本发明中,使用密钥卡存储公钥、私钥、公钥指针随机数、K池、KE池和k池(私钥池),且对外发布的只是公钥的指针随机数,并不是原始的公钥本身。密钥卡是独立的硬件隔离设备,被恶意软件或恶意操作窃取密钥可能性大大降低。由于量子计算机无法得到明文公钥,于是也无法得到对应的私钥,因此该方案的代理数字签名不容易被量子计算机破解。
本发明中,基于公私钥的数字签名被用Elgamal算法得到的共享密钥进一步加密,形成加密的数字签名。即使在量子计算机存在的情况下,也难以被推导出私钥。因此该方案的代理数字签名不容易被量子计算机破解。
附图说明
图1为本发明中使用的密钥卡内部结构图;
图2为本发明中用户和密钥卡之间的关系图;
图3为本发明中的公钥与抗量子计算公钥的关系图;
图4为本发明中的K值与k值在密钥卡中存储的方式图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了更好地描述和说明本申请的实施例,可参考一幅或多幅附图,但用于描述附图的附加细节或示例不应当被认为是对本申请的发明创造、目前所描述的实施例或优选方式中任何一者的范围的限制。
应该理解的是,除非本文中有明确的说明,各步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
一种基于私钥池和Elgamal的抗量子计算代理数字签名方法,各参与方均配置有密钥卡,所述密钥卡中存储有非对称公钥密钥池、公钥指针随机数、私钥和代理参数池;
所述非对称公钥密钥池中的同一位置存储有各参与方的签名公钥和加密公钥,私钥的同一位置存储有各参与方的签名私钥和加密私钥;
所述抗量子计算代理数字签名方法包括在原始签名方进行的如下步骤:
生成一个第一真随机数,基于第一真随机数在代理参数池中取出对应的代理参数;
利用代理签名方的公钥指针随机数在所述非对称公钥密钥池中取出代理签名方的加密公钥;
利用代理签名方的加密公钥和所述代理参数,计算得到第一共享密钥;
利用原始签名方的签名私钥和所述代理参数运算得到第一代理私钥;
利用第一共享密钥对第一代理私钥和原始签名方的公钥指针随机数进行加密,得到加密结果;
将待签名的原文、所述第一真随机数、代理签名方的公钥指针随机数和加密结果发送给代理签名方,供代理签名方经签名后发送至验证方进行验证。
在其中一个实施例中,所述代理参数池包括:预存第一代理参数的第一代理参数池、预存第二代理参数的第二代理参数池、以及预存第三代理参数的私钥池,所述第三代理参数与第一代理参数之间符合预设的换算关系,所述第三代理参数与第二代理参数之间符合预设的换算关系。
在其中一个实施例中,所述第一代理参数为Ki,所述第二代理参数为KEi,所述第三代理参数为ki,且满足Ki=gski mod ps,所述gs、ps为代理签名算法的系统参数;KEi=geki mod qe,所述ge、qe为Elgamal算法的系统参数。
在其中一个实施例中,所述参与方包括原始签名方、代理签名方和验证方;
各参与方的密钥卡中的第一代理参数池包括1~N号第一单元池,N为颁发的密钥卡总数,所述私钥池包括1~N号第二单元池,且第一单元池和第二单元池一一对应,每个参与方的密钥卡中配置一个所述第二单元池。
在其中一个实施例中,在所述代理参数池中预存代理参数的方法为:
在{1,…,Max-1}范围内随机取真随机数ki,Max为ps和qe中的最小值;
取随机数ri作为私钥池的指针随机数,用指针函数作用于随机数ri,得到指针kp,该指针kp指向私钥池中单元池的相应位置,在该位置存储对应的ki;
所述指针kp运算后得到指针Kp,该指针Kp指向第一代理参数池的相应位置,在该位置存储对应的Ki;
所述指针kp运算后得到指针KEp,该指针KEp指向第二代理参数池的相应位置,在该位置存储对应的KEi。
在其中一个实施例中,所述抗量子计算代理数字签名方法还包括在代理签名方进行的如下步骤:
接收原始签名方信息,并根据第一真随机数从代理参数池中取出相应的代理参数;
利用代理签名方的加密私钥和代理参数,解密得到共享密钥;
利用共享密钥解密得到代理私钥和原始签名方的公钥指针随机数;
利用代理私钥进行签名;
生成第二真随机数,基于第二真随机数在代理参数池中取出对应的代理参数;
利用验证方的公钥指针随机数在所述非对称公钥密钥池中取出验证方的加密公钥;
利用验证方的加密公钥和所述代理参数,计算得到第二共享密钥;
利用第二共享密钥加密签名、第一真随机数、原始签名方的公钥指针随机数、代理签名方的公钥指针随机数,得到加密结果;
将待签名的原文、第二真随机数、验证方的公钥指针随机数和加密结果发送给验证方进行验证。
在其中一个实施例中,所述抗量子计算代理数字签名方法还包括在代理签名方进行的如下步骤:
利用所述第一真随机数在所述非对称密钥池中取出原始签名方的签名公钥;
利用所述代理参数、签名公钥和所述第一代理私钥验证所述第一代理私钥的有效性;
在验证通过后再对所述原文进行签名。
在其中一个实施例中,所述抗量子计算代理数字签名方法还包括在验证方进行的如下步骤:
接收代理签名方的消息,并根据第二真随机数在代理参数池中取出对应的代理参数;
利用验证方的加密私钥和所述代理参数计算得到第二共享密钥;
利用第二共享密钥解密加密结果,得到签名、第一真随机数、原始签名方的公钥指针随机数、代理签名方的公钥指针随机数;
根据第一真随机数从代理参数池中取出对应的代理参数;
利用原始签名方的公钥指针随机数在非对称公钥密钥池中取出原始签名方的公钥;
利用原始签名方的公钥和所述代理参数计算得到验证公钥;
利用所述验证公钥、所述签名和所述原文进行验证。
下面结合附图对本申请进行详细描述:
本发明中对原文进行普通的数字签名并验证的过程如下:
发送方将要签名的原文作单向散列函数运算得到消息摘要,用发送方私钥对消息摘要进行算法加密,将得到的数字签名和原文一起发送给接收方。接收方将获得原文和数字签名分开,同样对原文进行单向散列函数运算得到新的消息摘要;用对应的发送方的公钥对数字签名进行算法解密,得到原来的消息摘要并与新的消息摘要进行比较,如果完全一致则说明原文的发送方是可靠的,并且传输的过程原文没有被篡改。
本发明中的密钥卡中有非对称密钥池(公钥)(即非对称公钥密钥池)、用户各自的公钥指针随机数和用户各自的私钥、K池、KE池和某一个号码的k池,其中k池也称为私钥池。非对称密钥池(公钥)存储本组织所有用户的签名公钥,每一个用户拿到的密钥卡里还存有该用户的签名私钥和公钥指针随机数。
非对称密钥池(公钥)中的同一位置处存储有各个用户的签名公钥和Elgamal算法的加密公钥,KE池中的同一位置处存储有签名公钥和Elgamal算法的加密公钥的对应参数,K池中的同一位置处存储有签名公钥和Elgamal算法的加密公钥的对应参数,k池中的同一位置处存储有签名私钥和Elgamal算法的解密私钥。
本发明中的签名公钥和加密公钥都不公开,公开使用的都是跟密钥卡内密钥池中存储的公钥位置有关的公钥指针随机数。两者对应的方法是:对于某个用户,取一个公钥指针随机数rk,用一个公钥指针函数frkp作用于它,得到公钥指针rkp,再将rkp指向密钥卡内的非对称密钥池(公钥)得到一个位置,在该位置存入该用户的公钥krk。Elgamal算法的加密公钥的存取方式与此相同,且加密公钥和签名公钥的存储位置相同,所以只要取到一个用户的公钥指针随机数就可以取到相对应的Elgamal算法的加密公钥。将公开的公钥指针随机数rk作为抗量子计算公钥。因为非对称密钥池(公钥)在密钥卡内,想要得到真正原始的公钥,只有在密钥卡内把抗量子公钥和非对称公钥密钥池结合起来操作才可以得到原始公钥。
K池里存储有K值,KE池里存有KE值,k池里存储有k值。K池分为N个,从1号K池到N号K池,N的个数由颁发机构根据需要密钥卡的人数确定,N个号码的K池合起来统称为K池。k池也分为N个,也是从1号k池到N号k池,并且与K池一一对应,即相同号码的K池里存储的K值和k池里存储的k值相对应。
密钥卡里K池都包括由1号到N号,而k池则是N个k池中的某一个,我们称为n号k池(1<<=n<<=N)。K池和k池的大小按照号码依次为S1、S2、S3……SN。颁发机构取gs、ps为代理签名算法的系统参数,ge、qe为Elgamal算法的系统参数。用户利用真随机数发生器得到处于{1,…,Max-1}范围内的真随机数ki,其中Max是ps和qe两者中的最小值。
根据公式Ki=gski mod ps,算出Ki,得到一组(ki,Ki),将其分别存入K池和k池。存储方法如下:对某个密钥卡,取一个随机数ri作为k池指针随机数,用k池指针函数fp作用于ri,得到k池指针kp,用kp指向k池得到一个位置,在该位置存储对应的k值ki;让kp加上Ks(Ks为当前密钥卡中K池的起始位置,可为Ks1到KsN中的某一个)得到Kp,用Kp指向K池得到一个位置,在该位置存储对应的K值Ki。用这个方法可以将生成的所有K值都存在每个密钥卡的K池,将生成的所有k值分别存在不同密钥卡的k池内。KE值与K值相类似,也是与k值一一对应,只不过KE值对应的公式是KEi=geki mod qe,并且是存储在密钥卡的KE池里。也就是说,取一个随机数ri可以从密钥卡中得到一个k值、一个K值和一个KE值。
我们假定原始签名者A、代理签名者B和验证者C对应的公钥私钥分别为Va/Sa、Vb/Sb和Vc/Sc,对应的Elgamal算法的公钥和私钥为ea/da,eb/db,ec/dc。并且满足条件Va=gsSa mod ps,Vb=gsSb mod ps,Vc=gsSc mod ps,ea=geda mod qe,eb=gedb mod qe,ec=gedc mod qe。对应的公钥指针随机数分别为Pa、Pb和Pc,三个公钥指针随机数同时也作为A、B、C的ID来标识个人身份。A、B和C都从密钥卡颁发机构拿到属于自己的密钥卡,密钥卡内存有非对称密钥池(公钥池)、各自的公钥指针随机数和各自的私钥、K池、KE池和某一个号码的k池,其中k池也称为私钥池。其中根据随机取得的公钥指针随机数Pa/Pb/Pc,用具体实施方式中描述的存取公钥方法,在密钥卡内的非对称密钥池内存储了用户对应的公钥Va/Vb/Vc,同样位置也存储了用户对应的Elgamal算法的公钥ea/eb/ec。在密钥卡内的私钥区内分别存储了用户对应的私钥Sa/Sb/Sc,同样位置也分别存储了用户对应的Elgamal算法的私钥da/db/dc。公钥指针随机数Pa/Pb/Pc作为抗量子计算公钥对外公布。
1、A生成代理密钥并发送给B
A取真随机数ri,从密钥卡的k池中得到ki,从密钥卡的K池中得到Ki,并计算第一代理私钥σ:
σ=Sa+kiKimod ps
令ma=Pa||σ,A根据B的公钥指针随机数Pb从密钥卡中取出eb,用Elgamal算法计算sa=ebki mod qe,得到共享密钥sa,再用sa加密ma,计算ca=ma*sa得到ca。A将包括Pb、ri、ca在内的消息发送给B。其中,Pb表示该消息是发送给B的,需要用B的私钥解密;Pa表示该消息来自于A。
2、B生成signσ(m)并发送给C
B接收到来自A的消息后,根据得到的ri从密钥卡的K池中得到Ki,从密钥卡的KE池中得到KEi,再从自己的密钥卡中取出db,然后根据sa=KEidb mod qe得到sa,再根据ma=ca*sa-1得到ma,从而分别得到其中的Pa、σ。
B验证等式gsσ=VaKiKi mod ps是否成立。如果该等式成立,则(σ,Ki)是一个有效的代理密钥。否则,B拒绝接受该密钥,并要求A重新给他发送一个新的代理密钥,或者停止协议。
B代表A在文件m上签名时,使用σ代替Sa执行普通的签名运算,生成signσ(m)。令mb=Pa||Pb||ri||signσ(m),B取随机数rib,从密钥卡的k池中取出kib,B根据C的公钥指针随机数Pc从密钥卡中取出ec,用Elgamal算法计算sb=eckib mod qe,得到共享密钥sb,再用sb加密mb,计算cb=mb*sb得到cb。将包含Pc、m、rib和cb的消息发送给C。其中,Pc表示该消息是发送给C的,需要用C的私钥解密,Pa表示该签名权限来自于A,Pb表示该签名权限由B代理。
3、C验证签名
C接收到来自代理B的消息后,根据得到的rib从密钥卡的KE池中得到KEib,C从自己的密钥卡中取出dc,然后根据sb=KEibdc mod qe得到sb,再根据mb=cb*sb-1得到mb,从而分别得到其中的Pa、Pb、signσ(m)。C首先根据ri取得Ki。C计算Va’=VaKiK imod ps,然后用Va’(即验证公钥)代替Va,使用与验证普通签名相同的验证运算就可以验证代理签名的有效性。
即C将获得原文m和数字签名分开,同样对原文m进行单向散列函数运算得到新的消息摘要;用Va’对数字签名进行算法解密,得到原来的消息摘要并与新的消息摘要进行比较,如果完全一致则说明原文m的发送方是可靠的,并且传输的过程原文m没有被篡改。
其中一实施例中,提供一种基于私钥池和Elgamal的抗量子计算代理数字签名系统,各参与方均配置有密钥卡,所述密钥卡中存储有非对称公钥密钥池、公钥指针随机数、私钥和代理参数池;
所述非对称公钥密钥池中的同一位置存储有各参与方的签名公钥和加密公钥,私钥的同一位置存储有各参与方的签名私钥和加密私钥;
所述抗量子计算代理数字签名方法包括设置在原始签名方的:
第一模块,用于生成一个第一真随机数,基于第一真随机数在代理参数池中取出对应的代理参数;
第二模块,用于利用代理签名方的公钥指针随机数在所述非对称公钥密钥池中取出代理签名方的加密公钥;
第三模块,用于利用代理签名方的加密公钥和所述代理参数,计算得到第一共享密钥;
第四模块,用于利用原始签名方的签名私钥和所述代理参数运算得到第一代理私钥;
第五模块,用于利用第一共享密钥对第一代理私钥和原始签名方的公钥指针随机数进行加密,得到加密结果;
第六模块,用于将待签名的原文、所述第一真随机数、代理签名方的公钥指针随机数和加密结果发送给代理签名方,供代理签名方经签名后发送至验证方进行验证。
关于基于私钥池和Elgamal的抗量子计算代理数字签名系统的具体限定可以参见上文中对于基于私钥池和Elgamal的抗量子计算代理数字签名方法的限定,在此不再赘述。上述各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,即一种基于私钥池和Elgamal的抗量子计算代理数字签名系统,该计算机设备可以是终端,其内部结构可以包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现基于私钥池和Elgamal的抗量子计算代理数字签名方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
其中一实施例中,提供一种基于私钥池和Elgamal的抗量子计算代理数字签名系统,各参与方均配置有密钥卡,所述密钥卡中存储有非对称公钥密钥池、公钥指针随机数、私钥和代理参数池;
所述非对称公钥密钥池中的同一位置存储有各参与方的签名公钥和加密公钥,私钥的同一位置存储有各参与方的签名私钥和加密私钥;
各参与方包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现所述的基于私钥池和Elgamal的抗量子计算代理数字签名方法。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明的保护范围应以所附权利要求为准。
Claims (10)
1.基于私钥池和Elgamal的抗量子计算代理数字签名方法,其特征在于,各参与方均配置有密钥卡,所述密钥卡中存储有非对称公钥密钥池、公钥指针随机数、私钥和代理参数池;
所述非对称公钥密钥池中的同一位置存储有各参与方的签名公钥和加密公钥,私钥的同一位置存储有各参与方的签名私钥和加密私钥;
所述抗量子计算代理数字签名方法包括在原始签名方进行的如下步骤:
生成一个第一真随机数,基于第一真随机数在代理参数池中取出对应的代理参数;
利用代理签名方的公钥指针随机数在所述非对称公钥密钥池中取出代理签名方的加密公钥;
利用代理签名方的加密公钥和所述代理参数,计算得到第一共享密钥;
利用原始签名方的签名私钥和所述代理参数运算得到第一代理私钥;
利用第一共享密钥对第一代理私钥和原始签名方的公钥指针随机数进行加密,得到加密结果;
将待签名的原文、所述第一真随机数、代理签名方的公钥指针随机数和加密结果发送给代理签名方,供代理签名方经签名后发送至验证方进行验证。
2.如权利要求1所述的基于私钥池和Elgamal的抗量子计算代理数字签名方法,其特征在于,所述代理参数池包括:预存第一代理参数的第一代理参数池、预存第二代理参数的第二代理参数池、以及预存第三代理参数的私钥池,所述第三代理参数与第一代理参数之间符合预设的换算关系,所述第三代理参数与第二代理参数之间符合预设的换算关系。
3.如权利要求2所述的基于私钥池和Elgamal的抗量子计算代理数字签名方法,其特征在于,所述第一代理参数为Ki,所述第二代理参数为KEi,所述第三代理参数为ki,且满足Ki=gski mod ps,所述gs、ps为代理签名算法的系统参数;KEi=geki mod qe,所述ge、qe为Elgamal算法的系统参数。
4.如权利要求3所述的基于私钥池和Elgamal的抗量子计算代理数字签名方法,其特征在于,所述参与方包括原始签名方、代理签名方和验证方;
各参与方的密钥卡中的第一代理参数池包括1~N号第一单元池,N为颁发的密钥卡总数,所述私钥池包括1~N号第二单元池,且第一单元池和第二单元池一一对应,每个参与方的密钥卡中配置一个所述第二单元池。
5.如权利要求4所述的基于私钥池和Elgamal的抗量子计算代理数字签名方法,其特征在于,在所述代理参数池中预存代理参数的方法为:
在{1,…,Max-1}范围内随机取真随机数ki,Max为ps和qe中的最小值;
取随机数ri作为私钥池的指针随机数,用指针函数作用于随机数ri,得到指针kp,该指针kp指向私钥池中单元池的相应位置,在该位置存储对应的ki;
所述指针kp运算后得到指针Kp,该指针Kp指向第一代理参数池的相应位置,在该位置存储对应的Ki;
所述指针kp运算后得到指针KEp,该指针KEp指向第二代理参数池的相应位置,在该位置存储对应的KEi。
6.如权利要求5所述的基于私钥池和Elgamal的抗量子计算代理数字签名方法,其特征在于,所述抗量子计算代理数字签名方法还包括在代理签名方进行的如下步骤:
接收原始签名方信息,并根据第一真随机数从代理参数池中取出相应的代理参数;
利用代理签名方的加密私钥和代理参数,解密得到共享密钥;
利用共享密钥解密得到代理私钥和原始签名方的公钥指针随机数;
利用代理私钥进行签名;
生成第二真随机数,基于第二真随机数在代理参数池中取出对应的代理参数;
利用验证方的公钥指针随机数在所述非对称公钥密钥池中取出验证方的加密公钥;
利用验证方的加密公钥和所述代理参数,计算得到第二共享密钥;
利用第二共享密钥加密签名、第一真随机数、原始签名方的公钥指针随机数、代理签名方的公钥指针随机数,得到加密结果;
将待签名的原文、第二真随机数、验证方的公钥指针随机数和加密结果发送给验证方进行验证。
7.如权利要求6所述的基于私钥池和Elgamal的抗量子计算代理数字签名方法,其特征在于,所述抗量子计算代理数字签名方法还包括在代理签名方进行的如下步骤:
利用所述第一真随机数在所述非对称密钥池中取出原始签名方的签名公钥;
利用所述代理参数、签名公钥和所述第一代理私钥验证所述第一代理私钥的有效性;
在验证通过后再对所述原文进行签名。
8.如权利要求7所述的基于私钥池和Elgamal的抗量子计算代理数字签名方法,其特征在于,所述抗量子计算代理数字签名方法还包括在验证方进行的如下步骤:
接收代理签名方的消息,并根据第二真随机数在代理参数池中取出对应的代理参数;
利用验证方的加密私钥和所述代理参数计算得到第二共享密钥;
利用第二共享密钥解密加密结果,得到签名、第一真随机数、原始签名方的公钥指针随机数、代理签名方的公钥指针随机数;
根据第一真随机数从代理参数池中取出对应的代理参数;
利用原始签名方的公钥指针随机数在非对称公钥密钥池中取出原始签名方的公钥;
利用原始签名方的公钥和所述代理参数计算得到验证公钥;
利用所述验证公钥、所述签名和所述原文进行验证。
9.基于私钥池和Elgamal的抗量子计算代理数字签名系统,其特征在于,各参与方均配置有密钥卡,所述密钥卡中存储有非对称公钥密钥池、公钥指针随机数、私钥和代理参数池;
所述非对称公钥密钥池中的同一位置存储有各参与方的签名公钥和加密公钥,私钥的同一位置存储有各参与方的签名私钥和加密私钥;
所述抗量子计算代理数字签名方法包括设置在原始签名方的:
第一模块,用于生成一个第一真随机数,基于第一真随机数在代理参数池中取出对应的代理参数;
第二模块,用于利用代理签名方的公钥指针随机数在所述非对称公钥密钥池中取出代理签名方的加密公钥;
第三模块,用于利用代理签名方的加密公钥和所述代理参数,计算得到第一共享密钥;
第四模块,用于利用原始签名方的签名私钥和所述代理参数运算得到第一代理私钥;
第五模块,用于利用第一共享密钥对第一代理私钥和原始签名方的公钥指针随机数进行加密,得到加密结果;
第六模块,用于将待签名的原文、所述第一真随机数、代理签名方的公钥指针随机数和加密结果发送给代理签名方,供代理签名方经签名后发送至验证方进行验证。
10.基于私钥池和Elgamal的抗量子计算代理数字签名系统,其特征在于,各参与方均配置有密钥卡,所述密钥卡中存储有非对称公钥密钥池、公钥指针随机数、私钥和代理参数池;
所述非对称公钥密钥池中的同一位置存储有各参与方的签名公钥和加密公钥,私钥的同一位置存储有各参与方的签名私钥和加密私钥;
各参与方包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现权利要求1~8任一项所述的基于私钥池和Elgamal的抗量子计算代理数字签名方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910034504.8A CN109687978B (zh) | 2019-01-15 | 2019-01-15 | 基于私钥池和Elgamal的抗量子计算代理数字签名方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910034504.8A CN109687978B (zh) | 2019-01-15 | 2019-01-15 | 基于私钥池和Elgamal的抗量子计算代理数字签名方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109687978A true CN109687978A (zh) | 2019-04-26 |
CN109687978B CN109687978B (zh) | 2021-12-07 |
Family
ID=66193121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910034504.8A Active CN109687978B (zh) | 2019-01-15 | 2019-01-15 | 基于私钥池和Elgamal的抗量子计算代理数字签名方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109687978B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112291179A (zh) * | 2019-07-22 | 2021-01-29 | 科大国盾量子技术股份有限公司 | 一种实现设备认证的方法、系统及装置 |
CN112822026A (zh) * | 2021-04-22 | 2021-05-18 | 北京信安世纪科技股份有限公司 | 数字签名方法、装置及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102594824A (zh) * | 2012-02-21 | 2012-07-18 | 北京国泰信安科技有限公司 | 基于多重安全保护机制的电子文档安全分发方法 |
CN108985099A (zh) * | 2018-07-31 | 2018-12-11 | 如般量子科技有限公司 | 一种基于公共密钥池的代理云存储安全控制方法和系统 |
CN109151053A (zh) * | 2018-09-20 | 2019-01-04 | 如般量子科技有限公司 | 基于公共非对称密钥池的抗量子计算云存储方法和系统 |
-
2019
- 2019-01-15 CN CN201910034504.8A patent/CN109687978B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102594824A (zh) * | 2012-02-21 | 2012-07-18 | 北京国泰信安科技有限公司 | 基于多重安全保护机制的电子文档安全分发方法 |
CN108985099A (zh) * | 2018-07-31 | 2018-12-11 | 如般量子科技有限公司 | 一种基于公共密钥池的代理云存储安全控制方法和系统 |
CN109151053A (zh) * | 2018-09-20 | 2019-01-04 | 如般量子科技有限公司 | 基于公共非对称密钥池的抗量子计算云存储方法和系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112291179A (zh) * | 2019-07-22 | 2021-01-29 | 科大国盾量子技术股份有限公司 | 一种实现设备认证的方法、系统及装置 |
CN112291179B (zh) * | 2019-07-22 | 2022-04-12 | 科大国盾量子技术股份有限公司 | 一种实现设备认证的方法、系统及装置 |
CN112822026A (zh) * | 2021-04-22 | 2021-05-18 | 北京信安世纪科技股份有限公司 | 数字签名方法、装置及系统 |
CN112822026B (zh) * | 2021-04-22 | 2021-09-17 | 北京信安世纪科技股份有限公司 | 数字签名方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109687978B (zh) | 2021-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Menezes et al. | Handbook of applied cryptography | |
CN106357401B (zh) | 一种私钥存储及使用方法 | |
US7370202B2 (en) | Security device for cryptographic communications | |
CN109274503A (zh) | 分布式协同签名方法及分布式协同签名装置、软盾系统 | |
US20110173452A1 (en) | Method of generating compound type combined public key | |
CN105162589B (zh) | 一种基于格的可验证属性加密方法 | |
CN109889495B (zh) | 基于多个非对称密钥池的抗量子计算电子印章方法和系统 | |
CN108551435B (zh) | 一种具有匿名性的可验证加密群签名方法 | |
CN109728906A (zh) | 基于非对称密钥池的抗量子计算非对称加密方法和系统 | |
CN109936456B (zh) | 基于私钥池的抗量子计算数字签名方法和系统 | |
CN108494559B (zh) | 一种基于半可信第三方的电子合同签订方法 | |
CN112202544B (zh) | 一种基于Paillier同态加密算法的智能电网数据安全聚合方法 | |
WO2021073953A1 (en) | Digital signature generation using a cold wallet | |
CN109660338A (zh) | 基于对称密钥池的抗量子计算数字签名方法和抗量子计算数字签名系统 | |
CN110958219A (zh) | 一种面向医疗云共享数据的sm2代理重加密方法与装置 | |
CN109687977A (zh) | 基于多个密钥池的抗量子计算数字签名方法和抗量子计算数字签名系统 | |
CN109787758A (zh) | 基于私钥池和Elgamal的抗量子计算MQV密钥协商方法和系统 | |
CN109887150A (zh) | 支持投票系统的代理重签密方法 | |
CN109905229A (zh) | 基于群组非对称密钥池的抗量子计算Elgamal加解密方法和系统 | |
CN109728905A (zh) | 基于非对称密钥池的抗量子计算mqv密钥协商方法和系统 | |
CN101764694A (zh) | 用于保护数据的装置、方法和系统 | |
CN109687978A (zh) | 基于私钥池和Elgamal的抗量子计算代理数字签名方法和系统 | |
CN109586918A (zh) | 基于对称密钥池的抗量子计算的签章方法和签章系统 | |
CN109902483B (zh) | 基于多个密钥池的抗量子计算代理数字签名方法和系统 | |
CN109560926B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |