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

文档序号:17046365发布日期:2019-03-05 19:38阅读:来源:国知局

技术特征:

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

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

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

第二阶段:基于椭圆曲线密钥交换协议完成“双密钥”交换:

步骤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加密成密文C,接收方用户B使用对称密钥算法AES将接受的发送方用户A发来的密文C解密成明文M';

步骤6、发送方签名过程

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

步骤7、接收方验证过程

接收方用户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)-1modp;

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

步骤3、私钥更新

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

步骤4、ECC签名过程

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

1)发送方用户A任意选择随机数k,其中0<k<n,然后再计算kG=(x,y),r=xmodn,若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=x1modn,则进行下一步,否则拒绝签名;

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

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