一种融合指纹、ECDH和ECC的强前向安全数字签名方法与流程

文档序号:17046365发布日期:2019-03-05 19:38阅读:671来源:国知局
一种融合指纹、ECDH和ECC的强前向安全数字签名方法与流程

本发明涉及信息安全技术领域,具体涉及一种融合指纹、ECDH和ECC的强前向安全数字签名方法。



背景技术:

当前网络购物、网络消费、无纸办公等电子商务活动成为主流生活和工作方式,使人们足不出户便知天下事成为现实。但是,人们在享用‘互联网+’便利的同时,其电子商务中的安全成为关注的焦点问题。如何在网络中构建一个合理、安全、有效的身份验证平台,防范网络上的黑客冒充合法用户接受或发送数据、信息发送方抵赖发送过数据和信息接收方伪造篡改数据等威胁安全的行为的发生,已成为人们关注的热点。

数字签名技术是解决上述问题的有效方法,其中以指纹生物特征为代表的数字签名方法是安全高效方法之一。

针对基于指纹特征的数字签名方法,国内外研究机构已开展了诸多的研究,并研发了多款基于指纹签名的安全产品,从应用效果来看,仍存在如下问题:

(1)采用外部引入的密钥与生物特征相结合的方式,当黑客窃取了外部引入的密钥,将会严重威胁系统的安全性。

(2)目前很多在数字签名方法广泛应用的“安全”技术逐渐暴露出诸多的缺陷,如受到高速计算机的挑战,RSA算法的安全技术——大素数因子分解难题,将在未来10年内无法保证其安全性。

(3)由于操作系统仍存在安全漏洞和人为泄露等原因造成签名密钥丢失,存在签名者此前所有的签名都存在信息泄漏的可能性等。

针对上述问题,信息安全领域的有关学者提出了“前向安全数字签名”方案,历经多年发展,已有很多前向安全数字签名方案相继问世,但仍存在签名速度慢、算法可靠性低、无法保证签名后向安全性、不具备抗伪造性等问题。



技术实现要素:

为了解决上述现有技术的缺点,本发明的目的在于提供一种融合指纹、ECDH和ECC的强前向安全数字签名方法,不仅有效抵御了黑客伪造性攻击,而且在降低了密钥泄露的风险同时,很好的解决了数字签名的高效性和可靠性。

为了达到上述目的,本发明采用的技术方案如下:

一种融合指纹、ECDH和ECC的强前向安全数字签名方法,包括三个阶段:

第一阶段:通过指纹图像处理生成用于数字签名的密钥阶段:

步骤1:发送方用户A和接收方用户B各自的指纹秘钥R生成包括:指纹特征提取,指纹特征变换,指纹密钥生成与恢复,生成密钥R;

第二阶段:基于椭圆曲线密钥交换协议(Elliptic Curve Diffie-Hellman,ECDH)的完成“双密钥”交换:

步骤2:获取秘钥,发送方用户A的指纹私钥R记为Kapri,接收方用户B的指纹私钥R记为Kbpri;

步骤3:计算公钥,根据Pa=Kapri·G和Pb=Kbpri·G计算出公钥;

步骤4:交换秘钥,根据ECDH工作过程,数字签名双方发送方用户A和接收方用户B分别根据K=Kapri·Pb和K=Kbpri·Pa计算出共享秘钥K作为双方通信的密钥;

第三阶段:采用对称密钥算法AES、Hash函数、ECC技术实现强前向安全数字签名与验证阶段:

步骤5、AES加解密过程

发送方用户A使用对称密钥算法AES将待传输的原始明文M加密成密文,接收方用户B使用对称密钥算法AES将接受的发送方用户A发来的密文C解密成明C文M';

步骤6、发送方用户A签名过程:

发送方用户A通过使用Hash函数计算明文M的Hash值作为明文的消息摘要,使用自身的指纹密钥Kapri通过ECC强前向安全数字签名方法对消息摘要签名,生成数字签名数据;同时,发送方用户A将密文C和数字签名数据发送给接收方用户B;

步骤7、接收方用户B验证过程

接收方用户B在接收到发送方用户A发来的数据后,使用通过公共途径获取的发送方用户A的公钥对数字签名进行解密计算;同时利用密钥K对密文C解密,并将解密后的明文M'再经Hash函数运算,进而又得到一消息摘要;最后把该消息摘要与通过ECC强前向安全数字签名方法解密后得到的摘要对比,如果结果相等,则证明该签名确实是发送方用户A发送的,否则视为无效;

所述的ECC强前向安全数字签名方法步骤如下:

步骤1、ECC参数选择

选择一个安全的椭圆曲线上的有理点G(x,y),并作为基点,根据n×G=O,求得该基点G的素数阶n;并且选择一个单向安全的Hash函数h(x);

步骤2、发送方用户A初始密钥对生成

1)将整个签名密钥的有效期分为T个时段,选取一个大素数p和两个随机数SK0和Z',其中1<SK0<p,1<Z'<p;

2)计算

3)计算:

ZT=Z'n mod p

4)随机选择整数w,0<w<n,计算Y=(Z'w)-1mod p;

5)公开该方法的公钥<p,T,PK,w,Y>,对初始密钥SK0和Z'也应分别保密;

步骤3、私钥更新

在私钥更新阶段,系统进入i时段时(1≤i≤T),签名方使用其所拥有的i-1时段的密钥SKi-1计算出SKi=SKi-1nmod p,同时删除系统内第i-1时段的密钥SKi-1,保存新生成的密钥SKi。另一方面使用Zi作为i时段签名方的第二密钥;

步骤4、ECC签名过程

在第i时间段对明文m的签名算法描述如下:

1)发送方用户A任意选择随机数k,其中0<k<n,然后再计算kG=(x,y),r=x mod n,若r=0,则返回1),重新选择k,执行该步骤;

2)计算消息在此时刻的哈希值e=h(m||r||i),再计算与签名相关联的时间因子Ri=(rSKi)-1G;

3)计算双密钥:

4)计算因子

5)最后以<i,r,Ri,S1,S2,vi>作为消息m的签名连同消息发给接收方用户B;

步骤5、ECC签名验证过程

在第i时间段对m签名的验证算法描述如下:

1)收到<i,r,Ri,S1,S2,vi>后,先检验i≤T是否成立,若成立再进行下面验证计算,否则拒绝签名;

2)接收方用户B计算e=h(m||r||i);

3)验证计算:若X=0,则拒绝签名;再计算若r=x1mod n,则进行下一步,否则拒绝签名;

4)计算计算验证viG=uiPK是否成立,若成立则接受该签名,否则拒绝签名。

本发明具有如下有益效果:

1、本发明提出的基于ECC的强前向安全数字签名的方法,通过用户双方密钥在签名周期内不断演进,使得计算出的秘钥也不断更换,很好地解决了数字签名的高效性和安全性。

2、本发明提出的基于ECC的强前向安全数字签名的方法,使得黑客即便得到某一时段的两个密钥也无法伪造除该时段以外其它任意时段的有效签名,确保了数字签名的前向安全性和后向安全性,不仅有效抵御了伪造性攻击,而且也降低了密钥泄露的风险。

3、本发明为电子政务、电子商务、电子金融、电子银行交易等领域提供了一种安全可靠的强前向安全数字签名方法,具有重要的理论与实用价值,并具有广阔的应用前景。

附图说明

图1为本发明方法的基于ECC的强前向数字签名方法架构。

具体实施方式

下面结合附图对本发明进行详细说明:

一种融合指纹、ECDH和ECC的强前向安全数字签名方法,包括三个阶段:

第一阶段:通过指纹图像处理生成用于数字签名的密钥阶段:

步骤1:发送方用户A和接收方用户B各自的指纹秘钥R生成包括:指纹特征提取,指纹特征变换,指纹密钥生成与恢复,生成密钥R;

第二阶段:基于椭圆曲线密钥交换协议(Elliptic Curve Diffie-Hellman,ECDH)的完成“双密钥”交换:

步骤2:获取秘钥,发送方用户A的指纹私钥R记为Kapri,接收方用户B的指纹私钥R记为Kbpri;

步骤3:计算公钥,根据Pa=Kapri·G和Pb=Kbpri·G计算出公钥;

步骤4:交换秘钥,根据ECDH工作过程,数字签名双方发送方用户A和接收方用户B分别根据K=Kapri·Pb和K=Kbpri·Pa计算出共享秘钥K作为双方通信的密钥;

第三阶段:采用对称密钥算法AES、Hash函数、ECC技术实现强前向安全数字签名与验证阶段:

步骤5、AES加解密过程

发送方用户A使用对称密钥算法AES将待传输的原始明文M加密成密文,接收方用户B使用对称密钥算法AES将接受的发送方用户A发来的密文C解密成明C文M';

步骤6、发送方用户A签名过程:

发送方用户A通过使用Hash函数计算明文M的Hash值作为明文的消息摘要,使用自身的指纹密钥Kapri通过ECC强前向安全数字签名方法对消息摘要签名,生成数字签名数据;同时,发送方用户A将密文C和数字签名数据发送给接收方用户B;

步骤7、接收方用户B验证过程

接收方用户B在接收到发送方用户A发来的数据后,使用通过公共途径获取的发送方用户A的公钥对数字签名进行解密计算;同时利用密钥K对密文C解密,并将解密后的明文M'再经Hash函数运算,进而又得到一消息摘要;最后把该消息摘要与通过ECC强前向安全数字签名方法解密后得到的摘要对比,如果结果相等,则证明该签名确实是发送方用户A发送的,否则视为无效;

所述的ECC强前向安全数字签名方法步骤如下:

步骤1、ECC参数选择

选择一个安全的椭圆曲线上的有理点G(x,y),并作为基点,根据n×G=O,求得该基点G的素数阶n;并且选择一个单向安全的Hash函数h(x);

步骤2、发送方用户A初始密钥对生成

1)将整个签名密钥的有效期分为T个时段,选取一个大素数p和两个随机数SK0和Z',其中1<SK0<p,1<Z'<p;

2)计算

3)计算:

ZT=Z'n mod p

4)随机选择整数w,0<w<n,计算Y=(Z'w)-1mod p;

5)公开该方法的公钥<p,T,PK,w,Y>,对初始密钥SK0和Z'也应分别保密;

步骤3、私钥更新

在私钥更新阶段,系统进入i时段时(1≤i≤T),签名方使用其所拥有的i-1时段的密钥SKi-1计算出SKi=SKi-1nmod p,同时删除系统内第i-1时段的密钥SKi-1,保存新生成的密钥SKi。另一方面使用Zi作为i时段签名方的第二密钥;

步骤4、ECC签名过程

在第i时间段对明文m的签名算法描述如下:

1)发送方用户A任意选择随机数k,其中0<k<n,然后再计算kG=(x,y),r=x mod n,若r=0,则返回1),重新选择k,执行该步骤;

2)计算消息在此时刻的哈希值e=h(m||r||i),再计算与签名相关联的时间因子Ri=(rSKi)-1G;

3)计算双密钥:

4)计算因子

5)最后以<i,r,Ri,S1,S2,vi>作为消息m的签名连同消息发给接收方用户B;

步骤5、ECC签名验证过程

在第i时间段对m签名的验证算法描述如下:

1)收到<i,r,Ri,S1,S2,vi>后,先检验i≤T是否成立,若成立再进行下面验证计算,否则拒绝签名;

2)接收方用户B计算e=h(m||r||i);

3)验证计算:若X=0,则拒绝签名;再计算若r=x1mod n,则进行下一步,否则拒绝签名;

4)计算计算验证viG=uiPK是否成立,若成立则接受该签名,否则拒绝签名。

本发明的工作原理:

通过指纹密钥生成,椭圆曲线密钥交换协议(ECDH),ECC的强前向的数字签名过程三个过程,使得用户双方密钥在签名周期内不断演进,使计算出的密钥也不断更换,从而很好的解决了数字签名的高效性和安全性。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1