CN109787773A - 基于私钥池和Elgamal的抗量子计算签密方法和系统 - Google Patents

基于私钥池和Elgamal的抗量子计算签密方法和系统 Download PDF

Info

Publication number
CN109787773A
CN109787773A CN201910032270.3A CN201910032270A CN109787773A CN 109787773 A CN109787773 A CN 109787773A CN 201910032270 A CN201910032270 A CN 201910032270A CN 109787773 A CN109787773 A CN 109787773A
Authority
CN
China
Prior art keywords
key
label
pond
close
value
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
Application number
CN201910032270.3A
Other languages
English (en)
Other versions
CN109787773B (zh
Inventor
富尧
钟一民
汪仲祥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ruban Quantum Technology Co Ltd
Original Assignee
Ruban Quantum Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ruban Quantum Technology Co Ltd filed Critical Ruban Quantum Technology Co Ltd
Priority to CN201910032270.3A priority Critical patent/CN109787773B/zh
Publication of CN109787773A publication Critical patent/CN109787773A/zh
Application granted granted Critical
Publication of CN109787773B publication Critical patent/CN109787773B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明涉及基于私钥池和Elgamal的抗量子计算签密方法和系统,参与方配有密钥卡,密钥卡内存储有非对称密钥池、公钥指针随机数和私钥,密钥卡内还存储有k池和K池,其中k池中存储己方k值,K池存储所有参与方的K值,且同一方的k值与K值相关。本发明中使用密钥卡对密钥池和Elgamal算法对签密过程中的重要数据进行加密。密钥卡是独立的硬件隔离设备,被恶意软件或恶意操作窃取密钥可能性大大降低。由于量子计算机无法获得签密数据,或通过加密签密数据计算出用户私钥,因此该签密方案不容易被量子计算机破解。

Description

基于私钥池和Elgamal的抗量子计算签密方法和系统
技术领域
本发明涉及安通信领域,尤其是一种使用密钥卡技术手段实现抗量子计算的签密方法。
背景技术
密码学是信息安全学科的核心。密码学中用来提供信息安全服务的密码学原语称为密码系统(cryptosystem)。密码系统提供的基本安全服务有机密性(condentiality)、完整性(Integrity)、认证(Authentication)和不可否认性(Non—repudiation)。机密性是指信息只为授权用户使用,不能泄露给未授权的用户。完整性是指信息在传输或存储过程中,不能被偶然或蓄意地删除、修改、伪造、重放、插入等破坏和丢失的特性。认证是确保通信方身份是真实的。确认一个实体的身份称为实体认证,确认一个信息的来源称为消息认证。不可否认性是防止通信方对以前的许诺或者行为的否认。在密码学中,机密性可以通过一种基本的密码原语称为加密(Encryption)来取得。加密可以看成是一种变换,这种变换将可读的明文信息变换成不可读的密文信息。数字签名(Digital signature)也是一种基本的密码原语,它可以取得完整性、认证和不可否认性。数字签名可以看成是对数据所做的一种密码变换,这种密码变换可以使数据的接收者确认签名者的身份和数据的完整性。如果我们需要同时取得机密性、完整性、认证和不可否认性,一个传统的方法是先对消息进行签名,然后再进行加密,称为“先签名后加密”方法。这种方法的计算量和通信成本是加密和签名代价之和,效率较低。1997年,zheng提出了一种新的密码原语来同时取得这四种安全性质,他称这一密码原语为数字签密(Digital signcryption)。比起传统的“先签名后加密”,签密具有以下优点:1)签密在计算量和通信成本上都要低于传统的“先签名后加密”方法;2)签密允许并行计算一些昂贵的密码操作;3)合理设计的签密方案可以取得更高的安全水平;4)签密可以简化同时需要保密和认证的密码协议的设计。对于当前推荐的最小安全参数(模数=512比特),签密比使用基于离散对数困难问题的“先签名后加密”方法节省了58%的计算量和70%的通信成本。对于比较大的安全参数(模数=1536比特),签密比使用RSA密码体制的“先签名后加密”方法节省了50%的计算量和9l%的通信成本。成本上的节省随着安全参数的增大而增大。随着密码分析理论与技术的进步,将来我们的密码体制需要更大的安全参数,签密体制将更具有实际意义。基于以上原因,许多密码学研究者对签密的工作原理进行了深入研究,设计出了许多高效且安全的签密方案。
自zheng提出签密原语以来,签密已得到了广泛的应用,如电子支付、移动代理安全、密钥管理和Ad Hoc网络路由协议等。自1997年以来,几个有效的签密方案相继被提出。
根据公钥认证方法,我们可以将签密体制分为基于PKI的签密体制、基于身份的签密体制和无证书签密体制。如果一个签密方案与一个具有特殊性质的签名或者加密方案相结合,就可以设计出具有特殊性质的签密方案,比如签密与代理签名相结合,称为代理签密;签密与环签名相结合,称为环签密;签密与广播加密相结合,称为广播加密。如果一个签密是利用混合加密的思想来构造,我们称为混合签密。混合签密将整个算法分成了独立的两块,一块是签密密钥封装机制(Key Encapsulation Mechanism,KEM),另一块是数据封装机制(Data Encapsulation Mechanism,DEM)。这两块通过某种方式相结合就构造出完整的签密方案。因此,我们又可以将签密体制分为基本签密体制、具有特殊性质的签密体制和混合签密体制。
在密码学中,ElGamal加密算法是一个基于迪菲-赫尔曼密钥交换的非对称加密算法。它在1985年由塔希尔·盖莫尔提出。GnuPG和PGP等很多密码学系统中都应用到了ElGamal算法。ElGamal加密算法可以定义在任何循环群G上。它的安全性取决于G上的离散对数难题。
ElGamal加密系统通常应用在混合加密系统中。例如:用对称加密体制来加密消息,然后利用ElGamal加密算法传递密钥。这是因为在同等安全等级下,ElGamal加密算法作为一种非对称密码学系统,通常比对称加密体制要慢。对称加密算法的密钥和要传递的消息相比通常要短得多,所以相比之下使用ElGamal加密密钥然后用对称加密来加密任意长度的消息,这样要更快一些。
量子计算机在密码破解上有着巨大潜力。当今主流的非对称(公钥)加密算法,如RSA加密算法,大多数都是基于大整数的因式分解或者有限域上的离散对数的计算这两个数学难题。它们的破解难度也就依赖于解决这些问题的效率。传统计算机上,要求解这两个数学难题,花费时间为指数时间(即破解时间随着公钥长度的增长以指数级增长),这在实际应用中是无法接受的。而为量子计算机量身定做的秀尔算法可以在多项式时间内(即破解时间随着公钥长度的增长以k次方的速度增长,其中k为与公钥长度无关的常数)进行整数因式分解或者离散对数计算,从而为RSA、离散对数加密算法的破解提供可能。
现有技术存在的问题:现有技术中,由于量子计算机的强大计算能力可以计算破解签密,因此基于公私钥的签密方法并不够安全。
发明内容
本发明提供一种安全性更高的抗量子计算签密方法。
本发明基于私钥池和Elgamal的抗量子计算签密方法,参与方配有密钥卡,密钥卡内存储有非对称密钥池、公钥指针随机数和私钥,密钥卡内还存储有k池和K池,其中k池中存储己方k值,K池存储所有参与方的K值,且同一方的k值与K值相关;
所述抗量子计算签密方法包括在签密方:
获取验密方公钥指针随机数、并利用密钥卡内的非对称密钥池验密方的签密公钥和加密公钥;
利用随机数从k池中取k值,该k值结合验密方的签密公钥计算得到第一、第二中间参数;
利用第一中间参数加密原文得到密文;
利用哈希函数作用于原文和第二中间参数得到参数r;
利用验密方的加密公钥和k值生产共享密钥;
利用k值、参数r和签密方的签密私钥计算得到参数s,再利用共享密钥加密所述参数s得到参数se;
将所述随机数,所述密文,所述参数r以及所述参数se作为签密发送给验密方用以进行验密。
可选的,同一方的k值与K值符合如下关系:
Ki=geki mod qe;其中Ki为K值,ki为k值,ge、qe为Elgamal算法的系统参数。
3、如权利要求2所述的基于私钥池和Elgamal的抗量子计算签密方法,其特征在于,所述利用随机数从k池中取k值包括:
用指针函数作用于所述随机数得到k池指针;
利用所述k池指针在k池的相应位置获取k值。
可选的,利用k值结合验密方的签密公钥计算得到第一、第二中间参数,具体步骤包括:
依据公式ks=ybki mod ps计算ks的值,其中ki为k值,yb为验密方的签密公钥,ps为签密算法的系统参数;
将ks拆分得到所述第一、第二中间参数。
可选的,所述利用验密方的加密公钥和k值生产共享密钥包括:
ke=ebki mod qe;其中ke为共享密钥,ki为k值,eb为验密方的加密公钥,qe为Elgamal算法的系统参数。
可选的,所述利用k值、参数r和签密方的签密私钥计算得到参数s采用如下公式:
s=ki/(r+xa);其中ki为k值,xa为签密方的签密私钥,r为参数r。
可选的,所述利用k值、参数r和签密方的签密私钥计算得到参数s采用如下公式:
s=ki/(1+xa*r);其中ki为k值,xa为签密方的签密私钥,r为参数r。
可选的,所述抗量子计算签密方法还包括在验密方:
从签密方接收所述随机数,所述密文,所述参数r以及所述参数se;
利用所述随机数从k池中取K值,利用K值,验密方的加密私钥计算得到共享密钥;
利用共享密钥解密所述参数se得到参数s;
利用签密方的签密公钥ya、参数r、s参数和验密方的签密私钥计算得到第一、第二中间参数;
利用第一中间参数解密所述密文得到原文;
用哈希函数作用于所述原文和所述第二中间参数得到参数r;
将己方得到的参数r与来自签密方的参数r进行对比得到相应的验密结果。
可选的,所述利用签密方的签密公钥、参数r、参数s和验密方的签密私钥计算得到第一、第二中间参数包括:
利用公式ks=(ya*gsr)s*xb mod ps,或ks=(gs*yar)s*xb mod ps计算ks值;其中ya为签密方的签密公钥,gs、ps为签密算法的系统参数,r为参数r,xb为验密方的签密私钥,ya签密方的签密公钥,s为参数s;
将ks拆分得到所述第一、第二中间参数。
本发明还提供一种基于私钥池和Elgamal的抗量子计算签密系统,参与方配有密钥卡,密钥卡内存储有非对称密钥池、公钥指针随机数和私钥,密钥卡内还存储有k池和K池,其中k池中存储己方k值,K池存储所有参与方的K值,且同一方的k值与K值相关;
所述抗量子计算签密方法包括在签密方:
第一模块,用于获取验密方公钥指针随机数、并利用密钥卡内的非对称密钥池验密方的签密公钥和加密公钥;
第二模块,用于利用随机数从k池中取k值,该k值结合验密方的签密公钥计算得到第一、第二中间参数;利用第一中间参数加密原文得到密文;利用哈希函数作用于原文和第二中间参数得到参数r;
第三模块,用于利用验密方的加密公钥和k值生产共享密钥;利用k值、参数r和签密方的签密私钥计算得到参数s,再利用共享密钥加密所述参数s得到参数se;
第四模块,用于将所述随机数,所述密文,所述参数r以及所述参数se作为签密发送给验密方用以进行验密。
本发明还提供一种基于私钥池和Elgamal的抗量子计算签密系统,参与方配有密钥卡,密钥卡内存储有非对称密钥池、公钥指针随机数和私钥,密钥卡内还存储有k池和K池,其中k池中存储己方k值,K池存储所有参与方的K值,且同一方的k值与K值相关;
参与签密的签密方和验密方分别包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现所述的抗量子计算签密方法。
本发明中使用密钥卡对密钥池和Elgamal算法对签密过程中的重要数据进行加密。密钥卡是独立的硬件隔离设备,被恶意软件或恶意操作窃取密钥可能性大大降低。由于量子计算机无法获得签密数据,或通过加密签密数据计算出用户私钥,因此该签密方案不容易被量子计算机破解。
附图说明
图1为本发明中的密钥卡的内部结构图;
图2为本发明中密钥卡中的公钥与公钥指针随机数的关系图;
图3为本发明中密钥卡内存储K值和k值的方法图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了更好地描述和说明本申请的实施例,可参考一幅或多幅附图,但用于描述附图的附加细节或示例不应当被认为是对本申请的发明创造、目前所描述的实施例或优选方式中任何一者的范围的限制。
应该理解的是,除非本文中有明确的说明,各步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
本发明中的密钥卡中有非对称密钥池(公钥)、用户各自的公钥指针随机数和用户各自的私钥、K池和某一个号码的k池,其中k池也称为私钥池。
非对称密钥池(公钥)存储本组织所有用户的签名公钥,每一个用户拿到的密钥卡里还存有该用户的签名私钥和公钥指针随机数。并且本发明中还有Elgamal算法的加密公钥和各个用户自己公钥存储在公钥池的相同位置,有Elgamal算法的解密私钥和各个用户自己私钥存储在各自密钥卡的相同位置。
本发明中的签名公钥都不公开,公开使用的都是跟密钥卡内密钥池中存储的公钥之位置有关的公钥指针随机数。两者对应的方法是:对于某个用户,取一个公钥指针随机数ry,用一个公钥指针函数fpy作用于它,得到公钥指针py,再将py指向密钥卡内的非对称密钥池(公钥)得到一个位置,在该位置存入该用户的公钥y。Elgamal算法的加密公钥的存取方式与此相同,所以只要取到一个用户的公钥就可以取到相对应的Elgamal算法的加密公钥。将公开的公钥指针随机数ry作为抗量子计算公钥。因为非对称密钥池(公钥)在密钥卡内,想要得到真正原始的公钥,只有在密钥卡内把抗量子公钥和密钥池结合起来操作才可以得到原始公钥。
K池里存储有K值,k池里存储有k值。K池分为N个,从1号K池到N号K池,N的个数由颁发机构根据需要密钥卡的人数确定,N个号码的K池合起来统称为K池。k池也分为N个,也是从1号k池到N号k池,并且与K池一一对应,即相同号码的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=geki mod qe,算出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池内。
其中一实施例中,提供一种基于私钥池和Elgamal的抗量子计算签密方法,参与方配有密钥卡,密钥卡内存储有非对称密钥池、公钥指针随机数和私钥,密钥卡内还存储有k池和K池,其中k池中存储己方k值,K池存储所有参与方的K值,且同一方的k值与K值相关;
所述抗量子计算签密方法包括在签密方:
获取验密方公钥指针随机数、并利用密钥卡内的非对称密钥池验密方的签密公钥和加密公钥;
利用随机数从k池中取k值,该k值结合验密方的签密公钥计算得到第一、第二中间参数;
利用第一中间参数加密原文得到密文;
利用哈希函数作用于原文和第二中间参数得到参数r;
利用验密方的加密公钥和k值生产共享密钥;
利用k值、参数r和签密方的签密私钥计算得到参数s,再利用共享密钥加密所述参数s得到参数se;
将所述随机数,所述密文,所述参数r以及所述参数se作为签密发送给验密方用以进行验密。
利用k值结合验密方的签密公钥计算得到第一、第二中间参数,具体步骤包括:
依据公式ks=ybki mod ps计算ks的值,其中ki为k值,yb为验密方的签密公钥,ps为签密算法的系统参数;
将ks拆分得到所述第一、第二中间参数。
利用验密方的加密公钥和k值生产共享密钥包括:
ke=ebki mod qe;其中ke为共享密钥,ki为k值,eb为验密方的加密公钥,qe为Elgamal算法的系统参数。
可选的,所述利用k值、参数r和签密方的签密私钥计算得到参数s采用如下公式:s=ki/(r+xa)或s=ki/(1+xa*r);其中ki为k值,xa为签密方的签密私钥,r为参数r。
在验密方包括:
从签密方接收所述随机数,所述密文,所述参数r以及所述参数se;
利用所述随机数从k池中取K值,利用K值,验密方的加密私钥计算得到共享密钥;
利用共享密钥解密所述参数se得到参数s;
利用签密方的签密公钥ya、参数r、s参数和验密方的签密私钥计算得到第一、第二中间参数;
利用第一中间参数解密所述密文得到原文;
用哈希函数作用于所述原文和所述第二中间参数得到参数r;
将己方得到的参数r与来自签密方的参数r进行对比得到相应的验密结果。
可选的,所述利用签密方的签密公钥、参数r、参数s和验密方的签密私钥计算得到第一、第二中间参数包括:
利用公式ks=(ya*gsr)s*xb mod ps,或ks=(gs*yar)s*xb mod ps计算ks值;其中ya为签密方的签密公钥,gs、ps为签密算法的系统参数,r为参数r,xb为验密方的签密私钥,ya签密方的签密公钥,s为参数s;
将ks拆分得到所述第一、第二中间参数。
其中一实施例中,提供一种基于私钥池和Elgamal的抗量子计算签密方法,具体包括:
1.签密
1.1设签密方为A,验密方为B。
A拥有签密用的公私钥ya/xa和Elgamal算法的加解密公私钥ea/da,其中签密私钥xa以及加密私钥da存储在密钥卡中;签密公钥ya和加密公钥ea可以根据公钥指针随机数rya从密钥卡的非对称密钥池(公钥)中取出;
B拥有签密用的公私钥yb/xb和Elgamal算法的加解密公私钥eb/db,其中签密私钥xb以及加密私钥db存储在密钥卡中;签密公钥yb和加密公钥eb可以根据公钥指针随机数rya从密钥卡的非对称密钥池(公钥)中取出;
其中公私钥满足一个等式关系,即yb=gsxb mod ps,ya=gsxa mod ps,eb=gedbmod qs,ea=geda mod ps。其余用户的公私钥存储关系以此类推,所有公钥均存储与于非对称密钥池(公钥)内。
签密前A获取B的公钥指针随机数ryb,所以A可以从密钥卡的非对称密钥池(公钥)中获取B的yb和eb。
1.2A取随机数ri,依据该随机数ri从A的密钥卡中k池取出相应的k值即ki,根据签密密钥计算公式ks=ybki mod ps得到ks的值,然后用函数f1(例如将一个数按照1:1的长度分裂开为两段)作用于ks得到两个数k1和k2。k1和k2分别为所述第一、第二中间参数。
根据Elgamal密钥计算公式ke=ebki mod qe得到ke的值,这里ke为Elgamal算法中的共享密钥。
1.3设A要发送给B的原文为m,取哈希函数KH作用于原文m和k2得到参数r。
如果是选择使用SDSS1签密方案则使用函数fs1来作用于ki、r和A的私钥xa,具体公式为s=ki/(r+xa)从而算出参数s;
如果是选择使用SDSS2签密方案则使用函数fs2来作用于ki、r和A的私钥xa,具体公式为s=ki/(1+xa*r)从而算出参数s;
其中签密方案SDSS1和SDSS2可参考《Digital Signcryption or How to AchieveCost(Signature&Encryption)<<Cost(Signature)+Cost(Encryption)》。
根据Elgamal算法用共享密钥ke加密s,根据公式se=s*ke算出s的加密值即参数se的值。用k1来加密m得到密文c。
1.4将组合{ri,c,r,se}作为签密发送给B。
2.解签密
2.1B接收到A发送的签密{ri,c,r,se}。根据ri从密钥卡的K池中取出K值即Ki,根据Elgamal密钥计算公式ke=Kidb mod qe算出ke的值,再根据公式s=se*ke-1算出s的值。
2.2根据签密选择的签密方案SDSS1或者SDSS2来使用对应的函数fu1或者fu2来作用于ya、r、s和xb,具体公式为ks=(ya*gsr)s*xb mod ps(SDSS1情形)或者ks=(gs*yar)s*xbmod ps(SDSS2情形)可以得到ks,再用与签密者A相同的函数f1作用于ks得到k1和k2。
2.3用k1解密c得到原文m。
2.4取函数KH作用于原文m和k2,将得到的结果和签密组合里的r对比,如果相同则可以验证A的身份正确并且A传给B的原文m在传送过程中没有被修改。
在一个实施例中,提供了一种基于私钥池和Elgamal的抗量子计算签密系统,参与方配有密钥卡,密钥卡内存储有非对称密钥池、公钥指针随机数和私钥,密钥卡内还存储有k池和K池,其中k池中存储己方k值,K池存储所有参与方的K值,且同一方的k值与K值相关;
所述抗量子计算签密方法包括在签密方:
第一模块,用于获取验密方公钥指针随机数、并利用密钥卡内的非对称密钥池验密方的签密公钥和加密公钥;
第二模块,用于利用随机数从k池中取k值,该k值结合验密方的签密公钥计算得到第一、第二中间参数;利用第一中间参数加密原文得到密文;利用哈希函数作用于原文和第二中间参数得到参数r;
第三模块,用于利用验密方的加密公钥和k值生产共享密钥;利用k值、参数r和签密方的签密私钥计算得到参数s,再利用共享密钥加密所述参数s得到参数se;
第四模块,用于将所述随机数,所述密文,所述参数r以及所述参数se作为签密发送给验密方用以进行验密。
关于抗量子计算签密系统的具体限定可以参见上文中对于抗量子计算签密方法的限定,在此不再赘述。上述各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,即一种基于私钥池和Elgamal的抗量子计算签密系统,该计算机设备可以是终端,其内部结构可以包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现上述抗量子计算签密方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
其中一实施例中,提供一种基于私钥池和Elgamal的抗量子计算签密系统,参与方配有密钥卡,密钥卡内存储有非对称密钥池、公钥指针随机数和私钥,密钥卡内还存储有k池和K池,其中k池中存储己方k值,K池存储所有参与方的K值,且同一方的k值与K值相关;
参与签密的签密方和验密方分别包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现所述的抗量子计算签密方法。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明的保护范围应以所附权利要求为准。

Claims (10)

1.基于私钥池和Elgamal的抗量子计算签密方法,其特征在于,参与方配有密钥卡,密钥卡内存储有非对称密钥池、公钥指针随机数和私钥,密钥卡内还存储有k池和K池,其中k池中存储己方k值,K池存储所有参与方的K值,且同一方的k值与K值相关;
所述抗量子计算签密方法包括在签密方:
获取验密方公钥指针随机数、并利用密钥卡内的非对称密钥池验密方的签密公钥和加密公钥;
利用随机数从k池中取k值,该k值结合验密方的签密公钥计算得到第一、第二中间参数;
利用第一中间参数加密原文得到密文;
利用哈希函数作用于原文和第二中间参数得到参数r;
利用验密方的加密公钥和k值生产共享密钥;
利用k值、参数r和签密方的签密私钥计算得到参数s,再利用共享密钥加密所述参数s得到参数se;
将所述随机数,所述密文,所述参数r以及所述参数se作为签密发送给验密方用以进行验密。
2.如权利要求1所述的基于私钥池和Elgamal的抗量子计算签密方法,其特征在于,同一方的k值与K值符合如下关系:
Ki=gekimod qe;其中Ki为K值,ki为k值,ge、qe为Elgamal算法的系统参数。
3.如权利要求2所述的基于私钥池和Elgamal的抗量子计算签密方法,其特征在于,所述利用随机数从k池中取k值包括:
用指针函数作用于所述随机数得到k池指针;
利用所述k池指针在k池的相应位置获取k值。
利用k值结合验密方的签密公钥计算得到第一、第二中间参数,具体步骤包括:
依据公式ks=ybki mod ps计算ks的值,其中ki为k值,yb为验密方的签密公钥,ps为签密算法的系统参数;
将ks拆分得到所述第一、第二中间参数。
4.如权利要求3所述的基于私钥池和Elgamal的抗量子计算签密方法,其特征在于,所述利用验密方的加密公钥和k值生产共享密钥包括:
ke=ebki mod qe;其中ke为共享密钥,ki为k值,eb为验密方的加密公钥,qe为Elgamal算法的系统参数。
5.如权利要求4所述的基于私钥池和Elgamal的抗量子计算签密方法,其特征在于,所述利用k值、参数r和签密方的签密私钥计算得到参数s采用如下公式:
s=ki/(r+xa);其中ki为k值,xa为签密方的签密私钥,r为参数r。
6.如权利要求4所述的基于私钥池和Elgamal的抗量子计算签密方法,其特征在于,所述利用k值、参数r和签密方的签密私钥计算得到参数s采用如下公式:
s=ki/(1+xa*r);其中ki为k值,xa为签密方的签密私钥,r为参数r。
7.如权利要求5或6所述的基于私钥池和Elgamal的抗量子计算签密方法,其特征在于,所述抗量子计算签密方法还包括在验密方:
从签密方接收所述随机数,所述密文,所述参数r以及所述参数se;
利用所述随机数从k池中取K值,利用K值,验密方的加密私钥计算得到共享密钥;
利用共享密钥解密所述参数se得到参数s;
利用签密方的签密公钥ya、参数r、s参数和验密方的签密私钥计算得到第一、第二中间参数;
利用第一中间参数解密所述密文得到原文;
用哈希函数作用于所述原文和所述第二中间参数得到参数r;
将己方得到的参数r与来自签密方的参数r进行对比得到相应的验密结果。
8.如权利要求7所述的基于私钥池和Elgamal的抗量子计算签密方法,其特征在于,所述利用签密方的签密公钥、参数r、参数s和验密方的签密私钥计算得到第一、第二中间参数包括:
利用公式ks=(ya*gsr)s*xb mod ps,或ks=(gs*yar)s*xb mod ps计算ks值;其中ya为签密方的签密公钥,gs、ps为签密算法的系统参数,r为参数r,xb为验密方的签密私钥,ya签密方的签密公钥,s为参数s;
将ks拆分得到所述第一、第二中间参数。
9.基于私钥池和Elgamal的抗量子计算签密系统,其特征在于,参与方配有密钥卡,密钥卡内存储有非对称密钥池、公钥指针随机数和私钥,密钥卡内还存储有k池和K池,其中k池中存储己方k值,K池存储所有参与方的K值,且同一方的k值与K值相关;
所述抗量子计算签密方法包括在签密方:
第一模块,用于获取验密方公钥指针随机数、并利用密钥卡内的非对称密钥池验密方的签密公钥和加密公钥;
第二模块,用于利用随机数从k池中取k值,该k值结合验密方的签密公钥计算得到第一、第二中间参数;利用第一中间参数加密原文得到密文;利用哈希函数作用于原文和第二中间参数得到参数r;
第三模块,用于利用验密方的加密公钥和k值生产共享密钥;利用k值、参数r和签密方的签密私钥计算得到参数s,再利用共享密钥加密所述参数s得到参数se;
第四模块,用于将所述随机数,所述密文,所述参数r以及所述参数se作为签密发送给验密方用以进行验密。
10.基于私钥池和Elgamal的抗量子计算签密系统,其特征在于,参与方配有密钥卡,密钥卡内存储有非对称密钥池、公钥指针随机数和私钥,密钥卡内还存储有k池和K池,其中k池中存储己方k值,K池存储所有参与方的K值,且同一方的k值与K值相关;
参与签密的签密方和验密方分别包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现权利要求1~8任一项所述的抗量子计算签密方法。
CN201910032270.3A 2019-01-14 2019-01-14 基于私钥池和Elgamal的抗量子计算签密方法和系统 Active CN109787773B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910032270.3A CN109787773B (zh) 2019-01-14 2019-01-14 基于私钥池和Elgamal的抗量子计算签密方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910032270.3A CN109787773B (zh) 2019-01-14 2019-01-14 基于私钥池和Elgamal的抗量子计算签密方法和系统

Publications (2)

Publication Number Publication Date
CN109787773A true CN109787773A (zh) 2019-05-21
CN109787773B CN109787773B (zh) 2023-04-14

Family

ID=66500549

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910032270.3A Active CN109787773B (zh) 2019-01-14 2019-01-14 基于私钥池和Elgamal的抗量子计算签密方法和系统

Country Status (1)

Country Link
CN (1) CN109787773B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110517040A (zh) * 2019-07-02 2019-11-29 如般量子科技有限公司 基于群组非对称密钥池的抗量子计算区块链保密交易方法、系统和设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6396928B1 (en) * 1996-10-25 2002-05-28 Monash University Digital message encryption and authentication
CN108880799A (zh) * 2018-06-28 2018-11-23 如般量子科技有限公司 基于群组密钥池的多次身份认证系统和方法
CN109151053A (zh) * 2018-09-20 2019-01-04 如般量子科技有限公司 基于公共非对称密钥池的抗量子计算云存储方法和系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6396928B1 (en) * 1996-10-25 2002-05-28 Monash University Digital message encryption and authentication
CN108880799A (zh) * 2018-06-28 2018-11-23 如般量子科技有限公司 基于群组密钥池的多次身份认证系统和方法
CN109151053A (zh) * 2018-09-20 2019-01-04 如般量子科技有限公司 基于公共非对称密钥池的抗量子计算云存储方法和系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ZHENG Y: "Digital signcryption or how to achieve cost(signature & encryption) ? cost(signature) + cost(encryption)", 《SPRINGER》 *
李克洪: "《实用密码学与计算机数据安全》", 30 September 2001 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110517040A (zh) * 2019-07-02 2019-11-29 如般量子科技有限公司 基于群组非对称密钥池的抗量子计算区块链保密交易方法、系统和设备

Also Published As

Publication number Publication date
CN109787773B (zh) 2023-04-14

Similar Documents

Publication Publication Date Title
CN108418686A (zh) 一种多分布式的sm9解密方法与介质及密钥生成方法
CN109756329A (zh) 基于私钥池的抗量子计算共享密钥协商方法和系统
CN111314089A (zh) 一种基于sm2的两方协同签名方法及解密方法
CN113711564A (zh) 用于加密数据的计算机实现的方法和系统
CN101997683B (zh) 一种零知识证明的认证方法及认证装置
CN106127079A (zh) 一种数据共享方法及装置
EP3871365A1 (en) Computer implemented system and method for distributing shares of digitally signed data
WO2001084766A2 (en) System and method for encryption using transparent keys
CN109936456A (zh) 基于私钥池的抗量子计算数字签名方法和系统
CN109787758A (zh) 基于私钥池和Elgamal的抗量子计算MQV密钥协商方法和系统
CN109831305B (zh) 基于非对称密钥池的抗量子计算签密方法和系统
CN111030821B (zh) 一种基于双线性映射技术的联盟链的加密方法
Diffie et al. New Directions in cryptography (1976)
Almuzaini et al. Key aggregation cryptosystem and double encryption method for cloud-based intelligent machine learning techniques-based health monitoring systems
Yang Application of hybrid encryption algorithm in hardware encryption interface card
CN110048852B (zh) 基于非对称密钥池的量子通信服务站数字签密方法和系统
CN109787773A (zh) 基于私钥池和Elgamal的抗量子计算签密方法和系统
CN115834038A (zh) 基于国家商用密码算法的加密方法及装置
CN117795901A (zh) 生成数字签名份额
CN109787772B (zh) 基于对称密钥池的抗量子计算签密方法和系统
CN117917041A (zh) 生成共享加密密钥
CN107276759A (zh) 一种高效的门限加密方案
CN109951287A (zh) 基于私钥池的抗量子计算签密方法和系统
CN114189329B (zh) 一种公钥认证可否认加密方法及系统
Yadav et al. Hybrid cryptography approach to secure the data in computing environment

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