数字签名方法、设备和存储介质技术

技术编号:24102682 阅读:60 留言:0更新日期:2020-05-09 13:50
本申请实施例提供一种数字签名方法、设备和存储介质。在本申请实施例中,提供一种基于ElGamal算法生成数字签名的方案,在该方案中,第一通信和第二通信方利用第一椭圆曲线点和第二椭圆曲线点交互生成数字签名,可以检验通信双方是否都是可信的,极大地提高了通信的安全性;进一步,利用ElGamal算法生成签名,极大地提高了签名效率和性能。

Digital signature methods, devices and storage media

【技术实现步骤摘要】
数字签名方法、设备和存储介质
本申请涉及网络安全领域,尤其涉及一种数字签名方法、设备和存储介质。
技术介绍
随着智能终端的出现,数字签名技术和加解密技术已经成为保障网络安全的重要工具。数字签名技术能够保证交易数据的完整性和不可否认性。然而现有技术中,基于paillier的加密算法,由于Paillier加密是加法同态加密,效率低下。
技术实现思路
本申请的多个方面提供一种数字签名方法、设备及存储介质,用以保证交易数据的完整性和不可否认性。本申请实施例提供一种数字签名方法,适用第一通信方,包括:根据有限域上的椭圆曲线E(Fq)生成第一椭圆曲线点R1以及第一子私钥d1,并根据第一子私钥d1得到椭圆曲线上的两个点M1和M2;利用ElGamal算法对点M1和M2进行加密,得到第一点对(A,B)和第二点对(C,D);将第一点对(A,B)、第二点对(C,D)以及第一椭圆曲线点R1发送给第二通信方,以供第二通信方根据第一椭圆曲线点R1生成第一部分签名r;接收第二通信方返回的第三点对(P,Q)和根据椭圆曲线E(Fq)生成的第二椭圆曲线本文档来自技高网...

【技术保护点】
1.一种数字签名方法,适用第一通信方,其特征在于,所述方法包括:/n根据有限域上的椭圆曲线E(Fq)生成第一椭圆曲线点R1以及第一子私钥d1,并根据所述第一子私钥d1得到椭圆曲线上的两个点M1和M2;/n利用ElGamal算法对所述点M1和M2进行加密,得到第一点对(A,B)和第二点对(C,D);/n将所述第一点对(A,B)、第二点对(C,D)以及第一椭圆曲线点R1发送给第二通信方,以供所述第二通信方根据所述第一椭圆曲线点R1生成第一部分签名r;/n接收所述第二通信方返回的第三点对(P,Q)和根据所述椭圆曲线E(Fq)生成的第二椭圆曲线点R2;其中,所述第三点对(P,Q)是利用所述第一部分签名...

【技术特征摘要】
1.一种数字签名方法,适用第一通信方,其特征在于,所述方法包括:
根据有限域上的椭圆曲线E(Fq)生成第一椭圆曲线点R1以及第一子私钥d1,并根据所述第一子私钥d1得到椭圆曲线上的两个点M1和M2;
利用ElGamal算法对所述点M1和M2进行加密,得到第一点对(A,B)和第二点对(C,D);
将所述第一点对(A,B)、第二点对(C,D)以及第一椭圆曲线点R1发送给第二通信方,以供所述第二通信方根据所述第一椭圆曲线点R1生成第一部分签名r;
接收所述第二通信方返回的第三点对(P,Q)和根据所述椭圆曲线E(Fq)生成的第二椭圆曲线点R2;其中,所述第三点对(P,Q)是利用所述第一部分签名r对所述第一点对(A,B)和所述第二点对(C,D)进行加密得到的;
根据所述第二椭圆曲线点R2和所述第三点对(P,Q),得到所述第一部分签名r和第二部分签名s作为待签名消息的完整签名。


2.根据权利要求1所述的方法,其特征在于,根据所述第一子私钥d1得到椭圆曲线上的两个点M1和M2,包括:
根据所述第一子私钥d1的逆元d1-1,得到第一明文m1和第二明文m2;
将所述第一明文m1和所述第二明文m2编码成所述椭圆曲线E(Fq)上两个点M1和M2。


3.根据权利要求1所述的方法,其特征在于,利用ElGamal算法对点M1和M2进行加密,得到第一点对(A,B)和第二点对(C,D),包括:
产生位于(0,n)之间的随机数f1和f2,n是椭圆曲线E(Fq)上基点G的阶数,是正整数;
基于椭圆曲线E(Fq)支持的运算方式,利用所述随机数f1对所述点M1和所述基点G分别进行加密,得到所述第一点对(A,B);
基于椭圆曲线E(Fq)支持的运算方式,利用随机数f2对点M2和所述基点G分别进行加密,得到所述第二点对(C,D)。


4.根据权利要求3所述的方法,其特征在于,基于椭圆曲线E(Fq)支持的运算方式,利用所述随机数f1对所述点M1和所述基点G分别进行加密,得到所述第一点对(A,B),包括:
计算M1{+}f1{*}PK的结果作为所述第一点对中的A点,并计算f1{*}G的结果作为所述第一点对中的B点;
基于椭圆曲线E(Fq)支持的运算方式,利用所述随机数f2对所述点M2和所述基点G分别进行加密,得到第二点对(C,D),包括:
计算M2{+}f2{*}PK的结果作为所述第二点对中的C点,并计算f2{*}G的结果作为所述第二点对中的D点;
其中,{+}表示椭圆曲线点加运算;{*}表示椭圆曲线点乘运算,第一公钥PK是第一通信方使用的公钥。


5.根据权利要求1所述的方法,其特征在于,根据第二椭圆曲线点R2和第三点对(P,Q),得到所述第一部分签名r和第二部分签名s作为待签名消息的完整签名,包括:
根据所述第二椭圆曲线点R2,生成待签名消息的所述第一部分签名r;
利用ElGamal算法对所述第三点对(P,Q)进行解密,得到点M;
对所述点M进行解码得到解码消息s1,并利用所述解码消息s1减去所述第一部分签名r得到所述第二部分签名s。


6.根据权利要求5所述的方法,其特征在于,利用ElGamal算法对所述第三点对(P,Q)进行解密,得到点M,包括:
基于椭圆曲线E(Fq)支持的运算方式,利用第一私钥sk对所述第三点对(P,Q)进行解密得到所述点M;
其中,所述第一私钥sk是第一通信方使用的私钥。


7.根据权利要求6所述的方法,其特征在于,基于椭圆曲线E(Fq)支持的运算方式,利用第一私钥sk对所述第三点对(P,Q)进行解密得到点M,包括:
计算P{-}sk{*}Q的结果作为所述点M;
其中,{-}表示椭圆曲线点减运算;{*}表示椭圆曲线点乘运算。


8.一种数字签名方法,适用于第二通信方,其特征在于,包括:
根据有...

【专利技术属性】
技术研发人员:秦体红汪宗斌
申请(专利权)人:北京信安世纪科技股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1