基于区块链和属性基加密的访问控制方法

文档序号:37176067发布日期:2024-03-01 12:28阅读:13来源:国知局
基于区块链和属性基加密的访问控制方法

本发明属于访问控制方法,具体涉及一种基于区块链和属性基加密的访问控制方法。


背景技术:

1、属性基加密(attribute-based encryption,abe)将密文、密钥与属性集合、访问结构相关联,当且仅当属性集合满足访问结构的时候,方能解密成功。在传统的公钥加密中,加密方需要为个用户加密数据次。而abe允许加密方根据目标用户的属性的加密数据,且对于个用户只需执行1次加密,无需关注接收者的身份,只有符合属性要求的用户才能解密密文,该特点使abe适用于云环境下数据共享等海量用户、多种访问权限的场景。

2、传统的abe算法使用一个中心化的属性机构,用户需要从该机构处获得属性密钥,但在实际情况下,设置一个管理全局属性的属性机构是不现实的,因此提出了多机构的属性基加密方案被(multi-authority attribute-based encryption,ma-abe)。ma-abe使用多个独立的属性机构,分别管理不同的属性集合。虽然ma-abe方案将单一属性机构拆分为多个机构,但每个机构在本质上仍然是中心化的,对容错能力提升有限。如果其中的某一属性机构出现崩溃错误,用户无法得到由该机构管理的属性密钥,系统的可用性仍然无法得到保证。此外,在敌手的攻击下,密钥颁发过程中的消息可能被篡改、伪造,产生拜占庭错误,也会破坏系统的可用性。因此,将传统abe算法用于访问控制系统,中心化的属性机构会成为该系统的性能瓶颈,影响系统的可用性、可扩展性。

3、针对传统属性基加密算法容错能力低、基于传统abe的访问控制系统中心化程度过高的问题,本方法提出基于委员会的属性基加密算法,并将其应用于去中心化的访问控制系统。首先,使用由多个节点组成的属性委员会代替单一的属性机构。每次为用户颁发密钥时,由领导者提出一个密钥,委员会内部对该密钥进行两轮投票,最终生成的密钥通过多于的节点的验证。用户在收到属性密钥后可以根据委员会对该密钥的签名验证该密钥,确保用户收到密钥的正确性,增强了容错能力。


技术实现思路

1、有鉴于此,本发明的目的在于提供一种基于区块链和属性基加密的访问控制方法,本发明实现基于委员会的属性基加密算法,将属性机构修改为由多个节点组成的委员会,并对委员会初始化、属性密钥颁发进行设计;委员会颁发密钥时,使用门限签名(threshold signature,ts)进行两轮投票,确保委员会可以容忍个拜占庭节点,保证颁发密钥的正确性。本发明应用基于委员会的属性基加密算法实现去中心化的访问控制,将基于委员会的属性基加密用于颁发用户属性密钥、加密对称密钥,实现云端数据的加密传输;将用户属性信息、密文的完整性证据等信息记录在区块链上,保证数据的完整性、不可篡改。

2、为达到上述目的,本发明提供如下技术方案:

3、一种基于区块链和属性基加密的访问控制方法,包括以下步骤:

4、s1:构建基于委员会的abe方法;

5、s2:初始化阶段:进行全局初始化和委员会初始化;

6、s3:用户注册阶段:用户构造注册请求,发送给委员会,注册请求中请求包含用户的属性集合和用户身份标识;委员会收到注册请求后,生成包含该注册请求的交易,运行共识算法,共识完成后将注册请求上链;

7、s4:密钥生成阶段:用户向委员会发出请求,委员会内部由领导者提议密钥,委员会成员验证该密钥进行两轮投票,每轮需要超过个节点验证通过,最终为用户颁发属性密钥,用户验证密钥对应的聚合签名;

8、s5:数据上传阶段:数据拥有者使用对称密钥加密原始消息,再使用访问矩阵、委员会的公钥加密该对称密钥,向委员会发送上传请求,将密文上传到服务器;

9、s6:用户访问阶段:用户上传访问请求,获得密文后使用访问矩阵对应的属性密钥解密,得到明文。

10、进一步,步骤s1所述基于委员会的abe方法包括以下步骤:

11、s11:全局初始化:输入安全参数,输出全局参数;

12、s12:委员会初始化:属性委员会包括个节点,维护属性集合,输入全局参数,输出私钥、公钥、节点进行门限签名的公私钥份额和委员会的总公钥;

13、s13:加密:输入消息、访问矩阵、与访问矩阵中属性对应的委员会的公钥,输出密文;

14、s14:密钥生成:输入用户属性、用户标识、私钥,输出属性密钥以及委员会对该密钥的聚合签名;由领导者生成密钥,委员会内每个节点进行验证,经过两轮投票后,超过的节点验证通过后将密钥颁发给用户;

15、s15:解密:输入密文、属性密钥集合,用户使用对应的访问策略解密,输出消息。

16、进一步,步骤s2具体包括以下步骤:

17、s21:全局初始化:在管理属性的所有节点中运行委员会选举算法,从中选举出委员会;在委员会内部运行领导者选举算法,选举出领导者;初始化hotstuff算法及其相关的密码学参数,在委员会内生成门限签名的公私钥份额和总公钥,由委员会维护区块链;调用,生成属性基加密算法的全局参数;初始化委员会管理的属性集合,根据现实情况为用户分配属性;

18、s22:委员会初始化:调用,得到属性基加密算法的对应于属性集合的私钥和公钥;将参数、集合、属性基加密算法的公钥和门限签名算法的总公钥构造为交易,运行hotstuff算法,在委员会节点之间对该参数达成共识,并得到共识结果,每个节点写入本地作为属性基加密算法、门限签名的全局参数。

19、进一步,步骤s3具体包括以下步骤:

20、s31:用户发送注册请求:待注册的用户自行调用密钥生成算法,生成公私钥对;用户将自己的公钥,自身的属性信息,全局标识符,时间戳,打包为注册请求;使用签名该请求得到,将请求发送到委员会;

21、s32:委员会记录注册请求:领导者收到后,使用的公钥验证用户签名,检查时间戳判断消息是否有效;查询链上存储的数据,验证该是否对应属性,以及该是否已被注册;领导者将请求构造为,运行hotstuff算法,领导者提议该请求,在委员会节点之间对该请求达成共识,并得到共识结果;具体过程为:节点收到提议后,首先根据用户在本地查找该用户是否具有对应属性,然后检查该用户是否已被注册;如果节点对的哈希值生成门限签名份额,发送给领导者;若验证不通过,则对空值签名,生成签名份额,发送给;领导者收集到至少个合法签名份额后,聚合得到对的完整签名作为准备证书,并向所有节点广播;节点收到后,验证该准备证书是否对应于,进行投票,生成门限签名份额,发送给领导者;若不同意,则对空值签名,生成签名份额,发送给;领导者收集到至少个合法签名份额后,聚合得到完整签名作为承诺证书,;将对的完整签名用表示,每个节点将写入本地区块链上。

22、进一步,步骤s4包括以下步骤:

23、s41:用户发送密钥请求:用户构造密钥请求,包含用户属性和gid,发送到委员会;

24、s42:委员会记录密钥请求:委员会收到请求后,生成包含该请求的交易,委员会运行共识算法,节点验证该请求中的用户属性后,将其上链;

25、s43:委员会生成密钥:领导者节点在查询到链上包含密钥请求的交易后,根据用户属性、用户生成密钥,在委员会内提出密钥,经过两轮投票后对密钥达成共识,向用户返回密钥和对应的聚合签名;

26、s44:用户验证密钥:用户收到密钥后,验证聚合后的签名;签名验证通过,则用户确认超过的委员会节点已验证该密钥。

27、进一步,步骤s5具体包括以下步骤:

28、s51:数据拥有者第一次加入系统时需要从链上获取当前委员会管理的属性集合,并生成公私钥对,提交公钥;

29、s52:数据拥有方加密:数据拥有者使用对称密钥加密原始文件,将对称密钥进行属性基加密,密文包括对称加密的密文和属性基加密的密文;

30、s53:数据拥有者上传密文:数据拥有者上传密文到云服务器,得到密文存储地址,计算密文的哈希值,构造上传请求,其中包含密文存储地址和密文的哈希值,向委员会发送该请求。云服务器收到上传的密文后,验证密文完整性;

31、s54:委员会记录上传请求:委员会收到数据拥有者发送的上传请求,生成包含上传请求的交易,运行共识算法,共识完成后上链;

32、s55:云服务器存储密文:云服务器查询到链上对应的上传请求后,云服务器将存储对应的密文。

33、进一步,步骤s6具体包括以下步骤:

34、s61:用户发送访问请求:用户从区块链上查询对应的上传记录,发送访问请求;

35、s62:委员会记录访问请求:委员会收到请求,生成包含该请求的交易,运行共识,共识结束后上链;

36、s63:云服务器发送密文:云服务器查询到链上存在对应的访问请求后向用户发送密文;

37、s64:用户解密密文:用户先根据密文哈希验证密文的完整性,然后使用属性密钥解密密文,得到对称密钥,最后解密得到原始数据。

38、本发明的有益效果在于:1)设计基于委员会的属性基加密算法,解决传统abe的中心化问题,更适合在分布式的场景中使用。2)使用委员会代替属性机构,在密钥生成时通过两轮投票,增强容错能力,确保委员会可以容忍1/3个拜占庭节点。3)应用基于委员会的属性基加密算法和区块链实现访问控制,解决传统访问控制系统中心化架构存在的单点故障、信任集中等问题。4)使用区块链存储访问控制系统中的各种记录,保证访问记录、完整性证据的不可篡改。

39、本发明的其他优点、目标和特征将在随后的说明书中进行阐述,并且在某种程度上对本领域技术人员而言是显而易见的,或者本领域技术人员可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。

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