1.一种基于区块链和用户信用度的数据共享访问控制方法,其特征在于,具体包括以下步骤:S1:用户A将个人信息上传到区块链上,进行注册,注册成功后智能合约自动初始化用户相关信用度指标值,即将各指标值设为0;
S2:用户A将使用对称密钥sm_key加密过后的数据D存储到IPFS星际文献系统上,将得到的数据索引ID、用用户A自己的公钥pkb_A加密过的对称密钥pkb_A(sm_key)和数据的信息上传到区块链上,上传成功后智能合约更新用户上传数据操作相关的信用度指标值,即在智能合约中使对应指标值自增1;
S3:用户A制定数据D的基于属性的访问控制策略;
S4:用户B申请获得数据D的解密密钥,智能合约中根据数据D的访问控制策略规则进行判断B是否拥有访问权限,未通过访问控制策略判断时更新用户信用度指标值,即未通过访问控制策略则将该次操作即为越权操作,并在智能合约中将进行越权操作的用户对应指标值自增1;然后进行用户信用度指标值和指标权重的运算,得到此时用户的信用度值,再将当次越权访问时间和最终用户信用度值存储到智能合约里的用户实时信用度数组中;
S5:通过访问控制策略判断的用户B通过智能合约创建数据D的访问申请消息;
S6:收到用户B的消息以后,用户A根据用户B当前的信用度值和申请信息,确认是否赋予用户B数据D的访问权限;
S7:若同意赋予用户B访问权限的用户A,使用代理重加密算法将数据D的对称加密密钥sm_key转为用户B的公钥pkb_B加密过后的对称密钥pkb_B(sm_key),通过智能合约创建应答消息,将解密密钥pkb_B(sm_key)和其他授权信息通过应答消息回复给用户B;
S8:用户B收到用户A的应答消息后,使用自己的私钥pkv_B进行解密,即可获得数据D的对称加密密钥sm_key,通过数据D的索引去IPFS星际文献系统中下载数据后进行解密即可获得原数据,同时合约中更新用户A的数据被他人成功访问操作,则在智能合约中使其对应指标值自增1。
2.根据权利要求1所述的一种基于区块链和用户信用度的数据共享访问控制方法,其特征在于,用户进行注册时上传的用户个人信息至少包括以太坊账户地址、公钥、姓名、身份ID、所属机构代码、所属项目组编号。
3.根据权利要求1所述的一种基于区块链和用户信用度的数据共享访问控制方法,其特征在于,用户信用度指标分两层,第一层包括功能指标F、可靠指标R、安全指标S,第二层中为每一个第一层中指标细化后的特性,其中功能指标F中至少包括用户上传数据数f1、数据相关证明数f2、上传数据被访问次数f3,可靠指标R至少包括上传数据错误数r1、修正他人错误数r2,安全指标S至少包括越权访问次数s1。
4.根据权利要求3所述的一种基于区块链和用户信用度的数据共享访问控制方法,其特征在于,进行用户信用度指标值和指标权重的运算,得到此时用户的信用度值的过程包括:步骤1:建立用户行为特征矩阵BC=[bcij]n×m;
步骤2:对矩阵BC做归一化处理,得到值在[0,1]范围内的特征矩阵E=[eij]n×m,其中n为指标个数,m为指标中行为特性个数的最大值;
步骤3:使用模糊层次分析法获得功能指标F的特性权重向量wF=[wf1,wf2,wf3],可靠指标R的特性权重向量wR=[wr1,wr2],安全指标S的特性权重向量wS=[ws1]和指标权重向量wI=[wF,wR,wS]。
步骤4:根据如下公式计算用户信用度值Credit:
其中,bcij表示;wf1为表示用户上传数据数f1的向量,wf2为表示数据相关证明数f2的向量,wf3为表示上传数据被访问次数f3的向量;wr1为上传数据错误数r1的向量,wr2为表示修正他人错误数r2的向量;ws1为表示越权访问次数s1的向量; 为第二层中分别属于wF、wR和wS中表示负面特性的权重; 表示第二层特性中的负面特性在第一层指标的指标权重;
Pt Ng
Cr 为正面信用度,Cr 为负面信用度。
5.根据权利要求4所述的一种基于区块链和用户信用度的数据共享访问控制方法,其Pt特征在于,正面信用度Cr 表示为:
Ng
负面信用度Cr 表示为:
其中, 为归一化后的正面用户行为特征值, 表示第二层特性中的正面特性在第一层指标的指标权重, 为第二层中分别属于wF、wR和wS中表示正面特性的权重,λ为用户越权访问行为系数; 为归一化后的正面用户行为特征值。
6.根据权利要求5所述的一种基于区块链和用户信用度的数据共享访问控制方法,其特征在于,用户越权访问行为系数λ表示为:其中,nij表示用户做出负面行为特征eij的次数;bnij表示当前负面行为发生时的区块号,bpre表示在本次负面行为eij的前一次负面行为所在的区块号。
7.根据权利要求4所述的一种基于区块链和用户信用度的数据共享访问控制方法,其特征在于,使用模糊层次分析法获得指标对应的特性权重的过程为:步骤1:功能指标相关特征归一化后的特征矩阵为EF=[e1,...,ev],v为该指标下特性的个数,将同一指标下的特性按重要性两两比较,获得初始判断矩阵EQ=[eqij]v×v:步骤2:将初始判断矩阵转化为模糊判断一致矩阵Q=[qij]v×v:
步骤3:根据模糊判断一致矩阵计算各个指标下各特性的权重,从而得到权重向量;
其中,eqij表示某一指标中第i个特性是否比第j个特性重要的参数,若第i个特性比第j个特性重要、则eqij=1,若第i个特性没有第j个特性重要、则eqij=0,否则eqij=0.5;qij表示某一指标中第i个特性与第j个特性之间的模糊化判断值。
8.根据权利要求7所述的一种基于区块链和用户信用度的数据共享访问控制方法,其特征在于,某一指标中第i个特性与第j个特性之间的模糊化判断值qij表示为:qij=(qi‑qj)/2v+0.5。
9.根据权利要求7所述的一种基于区块链和用户信用度的数据共享访问控制方法,其特征在于,指标n下的特性i的权重表示为: