一种基于无证书的并行密钥隔离签密方法与流程

文档序号:17480738发布日期:2019-04-20 06:25阅读:376来源:国知局

本发明涉及信息安全和通信领域,具体涉及一种基于无证书的并行密钥隔离签密方法,该方法不仅能够实现在一个步骤内同时实现消息的保密和认证,还实现了抗密钥泄露功能,同时允许用户进行频繁的密钥更新,巩固系统的安全性。



背景技术:

随着互联网技术和通讯技术在金融、医疗、服务以及日常生活等领域的广泛使用,信息安全和隐私保护也成为了一个广受关注的问题。为了确保在通讯过程中信息的保密性和认证,一般通过对传输的消息进行加密操作实现信息的保密性,对传输的消息进行签名操作实现信息的认证。在1997年,zheng等人提出签密的概念,其核心思想是在一个合理的步骤内同时实现消息的保密性和认证功能,该理念解决了传统的“先签名后加密”方法需要的巨大的计算量和通信代价的问题。由于传统的签密方案是基于pki或基于身份构建的,基于pki的公钥密码系统需要昂贵的证书管理费用,而基于身份的公钥密码学虽然减轻了证书管理费用,但存在密钥托管问题。因此,结合了两种公钥密码系统的优点的基于无证书的签密方案提出,基于无证书的签密方法既减轻了证书管理费用,也避免了密钥托管问题,得以被广泛应用。然而,由于签密密码系统的安全性完全依赖于用户私钥的安全性,一旦用户私钥泄露,整个密码系统将不再安全。因此,抵抗密钥泄露对基于无证书的签密方案是一个极大的挑战。对此,现有技术中提出了一种密钥隔离的签密方案,该方案虽然能保证传输消息的保密性和认证,但需要昂贵的证书管理费用。此外,现有技术无法提供频繁的密钥更新,无法保障快速发展的互联网技术的信息安全。



技术实现要素:

本发明针对现有技术的弊端,提供一种高效安全的基于无证书并行密钥隔离签密方案,减轻了基于pki的密钥隔离签密方案需要昂贵的证书管理费用,也避免了基于身份的密钥隔离签密方案的密钥托管问题,同时提供频繁的密钥更新功能而不会增加密钥泄露的风险。

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

基于无证书的并行密钥隔离签密方法,所述的方法在签密用户和解签密用户之间引入两个不同且相互独立的协助器,这两个协助器帮助签密者和解签密者生成初始私钥,并能够互不影响地交替完成临时私钥的更新,即使签密者的临时私钥频繁更新也不会增大协助器密钥泄露的风险。签密者利用自己的私钥及解签密者的公钥对明文进行签密,生成签密文;解签密者接收到签密文后利用自己的私钥及签密者的公钥对签密文进行解签密,恢复出消息。本发明将并行的密钥隔离机制引入到无证书签密方案中,不仅节省了计算和通信成本,同时满足机密性、不可否认性、并行性和强密钥隔离等性质,还支持频繁的密钥更新而不会增加密钥泄露的风险。所述方法的具体步骤包括:

(1)系统建立setup:输入安全参数和总时间周期数,kgc运行该算法并生成系统公开参数和系统主密钥;

(2)部分私钥提取par-extract:输入系统主密钥、系统公开参数和用户身份,kgc运行该算法并生成用户的部分私钥,通过安全信道将部分私钥传送给用户;

(3)密钥生成key-gen:输入系统公开参数、用户身份和用户部分私钥,用户运行该算法并生成自己的初始私钥,公钥以及协助器的公私钥:

(4)协助器更新update:输入系统公开参数、协助器私钥和用户身份,时间周期t和第i个协助器密钥(i≡tmod2),用户运行该算法并计算协助器的更新密钥;

(5)用户密钥更新updateu:输入系统公开参数、协助器更新密钥和在t-1时间周期内用户的临时私钥,用户运行该算法并计算在时间周期t内用户的临时私钥;

(6)签密signcrypt:输入系统公开参数、签密用户的私钥、解签密用户的公钥以及明文消息,签密用户运行该算法并生成签密文发送给解签密用户;

(7)解签密de-signcrypt:输入系统公开参数、签密文、解签密用户的私钥和签密用户的公钥,解签密用户首先验证签密是否正确,然后执行解签密。

与现有技术相比,本发明的有益效果是技巧性地将并行的密钥隔离引入到无证书签密方法中,避免了证书管理和密钥托管,节省了计算和通信成本,同时满足机密性、不可否认性、并行性和强密钥隔离等性质,并且有效解决了频繁的密钥更新会增加密钥泄露风险的问题。

具体实施方式

下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

本发明所述方法由七个算法组成,具体构造过程如下:

(1)系统建立setup:输入安全参数l和总时间周期数n,构造一个素数阶q的加法循环群和一个素数阶q的乘法循环群其中q满足条件q>2160,定义一个双线性映射设p是的生成元;随机选取两个抗碰撞的密码哈希函数:kgc随机选取作为主密钥,计算主公钥ppub=sp;kgc秘密保留主公钥s,发布系统公开参数

(2)部分私钥提取par-extract:输入主密钥s、系统公开参数params和用户u的身份idu,kgc首先计算接着计算用户u的部分私钥du=squ,最后通过安全信道将部分私钥du传送给用户u;

(3)密钥生成key-gen:输入系统公开参数params、用户u的身份idu和部分私钥du,按如下方式生成用户u的初始私钥,公钥以及协助器的公私钥:

a)随机选取分别作为两个协助器的私钥,计算两个协助器的公钥

b)用户u随机选取作为用户u的秘密值,计算用户u的公钥pku=xup;

c)计算用户u的初始私钥其中0是时间周期;

(4)协助器更新update:输入系统公开参数params、协助器私钥hk和用户u的身份idu,时间周期t和第i个协助器密钥si(i≡tmod2),用户u计算协助器的更新密钥

(5)用户密钥更新updateu:输入系统公开参数params、协助器更新密钥ukt和在t-1时间周期内用户u的临时私钥sku,t-1,计算在时间周期t内用户u的临时私钥sku,t=sku,t-1+ukt;如果令l≡tmod2,l′≡(t-1)mod2,则用户u的临时私钥为:

(6)签密signcrypt:设签密人是alice,解签密人是bob,定义一个明文信息alice的公钥为pka,在时间周期t时的私钥为ska,t;bob的公钥为pkb,在时间周期t时的私钥为skb,t。具体的签密过程如下:alice随机选取计算r=rp,c=mw,s=h1(ska,t+rqa),发送签密文σa-b=(r,c,h1,s,ida)给bob;

(7)解签密de-signcrypt:bob接收到签密σa-b后,首先验证等式是否成立,如果不成立,bob拒绝解签密;否则bob计算m=cw-1恢复明文消息。

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