CN117313157A - 区块链上基于矩阵结构的康复数据属性成员可撤销方法 - Google Patents
区块链上基于矩阵结构的康复数据属性成员可撤销方法 Download PDFInfo
- Publication number
- CN117313157A CN117313157A CN202311345167.7A CN202311345167A CN117313157A CN 117313157 A CN117313157 A CN 117313157A CN 202311345167 A CN202311345167 A CN 202311345167A CN 117313157 A CN117313157 A CN 117313157A
- Authority
- CN
- China
- Prior art keywords
- data
- aes
- key
- attribute
- ciphertext
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 239000011159 matrix material Substances 0.000 title claims abstract description 33
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000011084 recovery Methods 0.000 title description 2
- 241000122205 Chamaeleonidae Species 0.000 claims abstract description 62
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 46
- 238000004364 calculation method Methods 0.000 claims description 15
- 238000012795 verification Methods 0.000 claims description 10
- 230000004048 modification Effects 0.000 claims description 8
- 238000012986 modification Methods 0.000 claims description 8
- 229940079593 drug Drugs 0.000 claims description 5
- 239000003814 drug Substances 0.000 claims description 5
- 125000004122 cyclic group Chemical group 0.000 claims description 4
- 230000006399 behavior Effects 0.000 claims description 2
- 229940073619 encare Drugs 0.000 claims description 2
- 238000006467 substitution reaction Methods 0.000 claims description 2
- 208000024891 symptom Diseases 0.000 claims description 2
- 238000002483 medication Methods 0.000 claims 1
- 238000007726 management method Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 208000027418 Wounds and injury Diseases 0.000 description 4
- 230000006378 damage Effects 0.000 description 4
- 208000014674 injury Diseases 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000036541 health Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 229910052500 inorganic mineral Inorganic materials 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000011707 mineral Substances 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000000554 physical therapy Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明采用基于密文策略的属性加密算法(Ciphertext‑Policy Attribute‑Based Encryption,CP‑ABE)、变色龙哈希函数(Chameleon Hash,CH)以及群签名(Group Signature,GS)算法,提出了一种区块链上基于矩阵结构的康复数据属性成员可撤销方法,该方法不仅灵活有效,而且能够实现成员的匿名以及区块链上的成员属性可撤销。若某些链上数据存在问题,可以通过群管理员将对应签名打开,追溯群成员的身份信息。与其他相关工作相比,本发明通过加入群签名算法,实现了区块链上成员的匿名以及身份可追溯。
Description
技术领域
本发明属于信息安全技术领域,尤其适用于修改更新用户在区块链上存储的医疗或体育康复数据,为一种区块链上基于矩阵结构的康复数据属性成员可撤销方法。
背景技术
随着社会信息化进程的推进和计算机应用技术的不断进步,计算机信息系统已经涵盖至人们生活的各个领域。通过互联网,人们在家即可获取各种类型的信息,例如完成公务,收发电子邮件、缴费、购物以及进行其它各种商务活动等而无需离开家门,互联网日益成为人们现代生活中必不可少的关键要素。信息作为一种资源和交流的载体,逐渐完成了从传统的纸质文件到现在不带任何纸质形式的交易的转变,互联网在社会现代化进程中做出了至关重要的贡献。随着互联网逐渐往个性化、开放化、社会化和国际化方向的发展,计算机和计算机网络已经深度融合到人们的生活与工作之中。但网络的便利性使人们能够轻松获取各种信息,却也使各种信息的安全面临着严峻的挑战,不同领域的数据隐私泄露对于人们的生命安全、财产安全和个人隐私安全带来了巨大的威胁。例如:信息可能会在不允许的条件下被复制和更改,可能会被非授权用户获取、使用,这些是面向用户个人的。如若是面向企业甚至政府部门,商业机密或国家机密信息遭到泄露或篡改,所造成的后果可能是无法想象的。所以,为了确保数据的准确性和可靠性,许多企业和机构开始使用区块链技术记录与更新他们的数据。
然而在存储与共享数据时,数据发布者希望能够以便捷的形式对原本的数据进行修改与更新,同时还能够保证这些数据的安全性与隐私性。体育康复是一种旨在帮助运动员恢复受伤后身体功能的综合性治疗方法。在体育比赛中,运动员经常会受伤,这对其竞技生涯和身体健康都有着极大的影响。因此,运动员在康复过程中需要得到全面、科学的治疗,以尽快回归赛场。体育康复领域的技术和方法不断创新,为运动员的康复提供了更多的可能性。但就体育康复中的隐私保护来说,运动员的健康数据往往包含许多敏感的信息,如姓名、年龄、咨询信息、医嘱、体育康复疗程、受伤程度、康复用药、预计康复所需时间等,且这些信息需要在运动员与医生之间共享互通,所以在用户体育康复治疗过程中,有必要对原始的数据进行保护,同时满足数据发布者与使用者想对数据进行更新操作的要求。
当用户将数据存储于区块链中时,需要考虑如何实现数据发布者对原始数据的更新操作,且在对数据进行发布与修改的过程中,如何在保证用户匿名的前提下,实现数据以及数据发布者身份的可追溯。
在基于区块链的成员属性可撤销方案中,数据发布者将上述包含自己各种敏感信息的数据(姓名、年龄、咨询信息、医嘱、体育康复疗程、受伤程度、康复用药、预计康复所需时间)以密文的形式存储于区块链上,将数据的访问权限分为多个组合,如所属医院、所属科室、所属医务人员等,其中每个组都由多个用户组成。当用户(数据使用者)需要对上述信息进行获取时,首先需要将自己所持有属性与数据发布者所设的访问策略相匹配,若匹配通过才可获取并解密密文。当数据发布者需要对属性集中的某个/些属性进行撤销时,可以通过变色龙随机数的计算者矿工,在不修改区块链上哈希值的前提下,完成对区块链上信息(数据密文,数据发布者签名以及矿工签名)的修改。此外,数据发布者是匿名的,只有通过群管理员,才能够对这些签名进行打开,继而追溯签名及消息的来源。
发明内容
为了克服上述现有技术的缺点,达到上述情景的需求,本发明的目的在于提供一种区块链上基于矩阵结构的康复数据属性成员可撤销方法。
为了实现上述目的,本发明采用的技术方案是:
数据发布者(Data Publisher,DP)使用对称密码AES对康复对象的康复数据(即基于密文策略的属性加密算法中的成员属性,也即病例信息,包括康复对象的病症、用药以及物理治疗方法)加密并签名,随后将加密签名后的数据整合发送至矿工(即变色龙随机数计算者,矿工完成区块上链操作,其中包括变色龙随机数的计算);矿工接收到消息后,对所述加密签名后的数据计算变色龙哈希函数值以及选取随机数,再将哈希值、随机数与自己的签名共同上传存储至区块链,数据使用者通过身份认证后从区块链查看存储的康复数据;
当需要对基于密文策略的属性加密算法(CP-ABE算法)中的成员属性进行撤销时,由数据发布者向矿工提出属性撤销申请,并发送修改后的密文,然后由矿工计算变色龙哈希函数的哈希值并完成对链上数据的修改,最终达成对成员属性撤销的目的。
本发明将CP-ABE算法、变色龙哈希函数与群签名算法相结合,首先,通过CP-ABE实现根据用户的类型进行分组管理,从而实现权限的分散管理;其次,通过变色龙哈希函数,可以实现CP-ABE属性成员的属性可撤销;最后,通过群签名可以实现属性用户的匿名以及签名的可追溯,确保了信息的不可否认性。本发明采用CP-ABE、变色龙哈希函数和群签名算法,具有灵活、细粒度访问控制等特点,可在解决互联网个人康复环境中的医疗数据管理方面起到基础性、启发性的作用。
本发明使用CP-ABE对用户数据进行安全保护,实现细粒度访问控制,并将密文存储于区块链中;
所有属性成员进入同一群组,将数据发布前,需要对该CP-ABE密文进行群签名,即以密签的形式确保对信息的不可否认性;
当需要对CP-ABE属性集中的某个/些属性进行撤销时,可以通过变色龙哈希函数,实现区块链上数据的可更新功能,进而实现CP-ABE的成员属性可撤销。此外,由于数据发布者以及变色龙随机数计算者的签名需要与原本的密文一起上传区块链存储,因此,当使用变色龙哈希函数进行区块链上数据更新时,也需要对签名进行更新。
本发明所述康复数据,一般是指医疗康复数据,当为后者时,所涉及的个人信息包括姓名、年龄、咨询信息、医嘱、康复疗程、受伤程度、康复用药、预计康复所需时间等;所述属性集中的属性为用户与医疗结构相关的数据,包括所属医院、所属科室、所属医务人员。
本发明所述将加密签名后的数据整合,方法如下:
1)、计算CPABE_Setup(1λ)→(pkCPABE,mskCPABE),得到公钥和主密钥mskCPABE=(β,gα);
2)、计算CPABE_Enc(k,pkCPABE,M)→C′,结合有l行和k列的访问控制矩阵M和需要加密的消息矩阵T=(k,ρ2,...,ρe),计算密文M·T=(s1,...,sd)T;计算私钥
3)、计算GS_Setup(1λ,n)→(pkGS,gskGM,skiGS(i∈[1,n])),选择素数令N′=max{(N)=RSA_Keygen(1λ;r)},RSA_Keygen(p,q)=(n,e,G,g,a,λ,ε),/>得到pkGS=(n,e),skGS=(n,d);
4)、计算GS_Sign(skGS,r,C,C′,M)→δ, g′=gr·ct,z′=g′y;
5)、将上述参数整理,得到签名为:δ=(Verf1,verf2,g',z');
其中,λ是正整数;g为生成元,是阶为p的双线性群,α,/>是两个随机指数;k是需要加密的AES密钥,ρi是一组随机数,r是/>的一个随机数,S为一组属性集,rj是为每个属性j∈S选的值,其中/>G=(g)是阶为n的循环群,p,q为两个大素数,e为随机选取的密钥,且e与(p-1)(q-1)互素;r是随机选取的一个证书,其中/>AES_Keygen为AES密钥生成算法,AES_Enc为AES加密算法,CPABE_Setup为CP-ABE初始化算法,CPABE_Enc为CP-ABE加密算法,GS_Setup(1λ,n)为群签名初始化算法,RSA_Keygen(p,q)为RSA密钥生成算法,GS_Sign为群签名的签名算法。
本发明所述加密签名后的数据计算变色龙哈希函数值以及选取随机数,由数据发布者计算修改访问结构后的CP-ABE密文,随后向矿工提出链上数据修改申请,并发送修改后的密文和签名,方法如下:
1)、计算CH_Keygen(1λ)→(pkCH,tkCH),其中pkCH=y=gxmodp,tkCH=x;
2)、计算CH_Hash(pkCH,(C,C′,M),δ)→(h,r),针对需要进行变色龙哈希值计算的消息和一个变色龙随机数/>计算变色龙哈希值为
3)、计算CH_Update(tkCH,(C,C′,M,δ),(C,C',M',δ'),h,r)→r',验证h1=h2时,计算变色龙随机数r2=[(m1-m2)/x]+r1 modp,/>
4)、返回(h1,r1),(h2,r2),h1=h2;
其中,p,q为两个足够大的素数,其中p,q满足p=kq+1,是一个阶为q的群,g是该群的生成元,x是陷门密钥;C,C'代表密文,δ代表签名,h1和h2是使用变色龙哈希函数对原始消息/>和需要替换的消息/>分别进行变色龙哈希计算后的变色龙哈希值;r1和r2是h1和h2所对应的变色龙随机数;CH_Keygen是变色龙密钥生成算法,CH_Hash是变色龙哈希算法,CH_Update是变色龙更新算法。
与其他相关工作相比,该方案的优势在于:
1)使用CP-ABE能够实现用户更灵活、更加细粒度的访问控制。
2)通过变色龙哈希函数,当数据发布者需要对属性集中的某个/些属性进行撤销时,能够在不修改区块链上哈希值得前提下,实现区块链上信息的修改。
3)通过群签名算法,令数据发布者与变色龙随机数计算者矿工对消息进行签名,确保了数据发布者与矿工对发布消息的不可否认性,同时还令数据发布者相较于其他群组用户是匿名的,只有群管理员能够通过签名对群成员身份进行追溯。
图1是本发明区块链上基于矩阵结构的属性成员可撤销方法的框架。
图2是本发明区块链上基于矩阵结构的属性成员可撤销方法中变色龙随机数计算者矿工对区块链上密文进行更新的框图。
具体实施方式
下面结合附图和实施例详细说明本发明的实施方式。
如图1所示,本发明提出了一种区块链上基于矩阵结构的康复数据属性成员可撤销方法,数据发布者将数据加密并对其签名,随后将消息整合发送至矿工(变色龙随机数计算者)处。矿工接收到消息后,首先需要对其计算变色龙哈希函数以及选取随机数,再将其与自己的签名共同上传存储至区块链上。但当出现需要对CP-ABE中的成员属性进行撤销时,则由数据发布者向矿工提出属性撤销申请并发送修改后的密文,接着,由算力强大的矿工计算变色龙哈希函数的哈希值并完成对链上信息的修改,最终达成对成员属性撤销的目的。
如图2所示,本发明中,当需要对基于密文策略的属性加密算法中的成员属性进行撤销时,首先由数据发布者对部分属性撤销后的属性矩阵进行更新,随后由其重新计算更新后的密文。因为签名是对CP-ABE加密后的密文进行签名,所以当密文需要更新时,签名也需要随之更新。所以除更新密文之外,还需要对更新后的密文重新签名,继而将更新后的密文与签名整合发送至矿工处。矿工在接收到数据发布者发送的申请后,首先会将其作为事务存放于Merkle树的叶子节点处,随后分别对其进行哈希运算,并对整合后的哈希值再次进行哈希运算,并将最终的值存放至Merkle树的根节点。其中,Merkle树的根节点信息存放于区块链的块头处,Merkle树存放于区块链的区块块体内。
首先介绍理解本发明所需具备的预备知识:
1、基于线性秘密分享矩阵的CP-ABE方案
使用线性秘密分享(Linear Sercet Sharing Scheme,LSSS)矩阵作为基于密文策略的属性加密算法(CP-ABE)中访问策略的访问控制矩阵M。其中,访问控制矩阵M的行为不同的参与者,列为不同的属性。
CP-ABE方案:CP-ABE方案一般包括初始化函数、加密函数、密钥生成函数和解密函数等4个函数,在CP-ABE中,将被嵌入密文一起发送存储的访问结构除却访问树的形式也被构造为访问矩阵。
2、变色龙哈希函数
变色龙哈希是一个包含陷门的加密哈希函数,在不知陷门信息的前提下,变色龙哈希函数与传统哈希函数类似,同样难以寻找到冲突,但若已知陷门信息,那么就能够更高效的找到该哈希函数的冲突。在我们的方案中,借助变色龙哈希函数设计方案,该函数包括以下内容:
初始化:假设p和q为足够大的质数,k为正常系数,其中p=kq+1。记符号g代表阶为q的中的一个元素;假设x代表私钥,其中/>假设y代表公钥,其中y=gxmodp(p,q,g是公钥的隐式部分)。
函数:记符号m代表消息,其中假设r为某一常数,代表随机数,其中记符号CH_Hashy(m,r)代表针对公钥y,消息m与随机数r的哈希值,其中定义哈希为:CH_Hashy(m,r)=gmyrmodp。
寻找碰撞:记符号m,m′,r为任意整数,其中m,m′,假设r′为某一整数,其中综合上述变量,使CH_Hashy(m,r)=CH_Hash(m′,r′)成立。由于CH_Hash(m,r)=gmyrmodp=gm+xrmodp,CH_Hash(m′,r′)=gm′yr′mod p=gm′+xr′modp,所以可以解得:r′=[(m-m′)/x]+rmodp。
3、知识签名
知识签名为签名者在利用数学知识、公共信息的同时,非交互且不泄露某个秘密的情况下,向他人证明自己知道这个秘密。常见的知识签名包括离散对数的知识签名、双离散对数的知识签名与离散对数的e次方根的知识签名三种。本发明用到了第3种,所以在此处着重对离散对数的e次方根的知识签名的证明过程进行介绍。
离散对数的知识签名:记符号α:y=gα代表针对元素α做y=gα计算,符号SKLOG[α:y=gα](m)代表离散对数的知识签名,是针对该问题提出的。假设x为某一常数,代表私钥,y代表公钥,g和n代表公开的系统参数,m是消息,其中y=gxmodn,需要向他人证明自己拥有私钥x。
双离散对数的知识签名:记符号β:代表针对元素β做/>计算。记符号代表双离散对数的知识签名是针对该问题提出的。假设x为某一常数,代表私钥,y代表公钥,g和n代表公开的系统参数,m是消息,其中,需要向他人证明自己拥有私钥x。
离散对数的e次方根的知识签名:记符号β:代表针对元素β做/>计算。记符号/>代表离散对数e次方根知识签名是针对该问题提出的。记符号c代表需要用于证明自己拥有私钥的参数,符号c[i]代表c化为二进制后的第i位。假设x为某一常数,代表私钥,y代表公钥,g和n代表公开的系统参数,m是消息,||代表级联。其中,/>当满足下式时即可证明自己拥有私钥x:
操作步骤为:首先随机选择k个数:r1,r2,...,rk。接着,根据公式计算:si=ri/βc[i],(c,s1,s2,...,sk)即为用户对密钥x的知识签名。
所以,若持有私钥x,就能够根据前边的步骤计算出(c,s1,s2,...,sk),否则,只能通过c=H(m||g||e||P1||P2||...||Pk)计算,这是不可行的。所以若签名者能够给出(c,s1,s2,...,sk),就能够证明其拥有私钥x。
4、群签名
群签名是一种有着高度安全性和灵活性的数字签名方案,目前已经有很多不同种类的算法被提出。基于RSA的群签名算法通常由以下4部分组成:
初始化:记符号G代表环的子群,符号n为循环群G=(g)的阶,符号(n,e)代表组管理员所计算的RSA公钥(n,e)。假设p是一个素数,其中n|(p-1)。记符号a是n的两个素因子的大乘阶模,λ为某一常数,代表密钥长度上限,ε是一个常数,其中ε>1。记符号pkGS代表群公钥,其中pkGS=(n,e,G,g,a,λ,ε)。
成员加入:记符号x代表密钥,其中x∈R{0,...,2λ-1}。记符号{x:y=axmodn}(m)代表针对密钥x做y=axmodn计算。记符号z代表成员密钥,其中z=gy。记符号CertA代表成员证书,其中CertA≡(y+1)1/emodn。在成员A加入群组后,选择其密钥并计算{x:y=axmodn}(m)与其成员密钥。A通过签名以y代表自己。随后将y,z发送至组管理员,并通过知识签名向其证明自己知晓y对a的离散对数。当群管理员知道对数后,将发送证书给A,其中证书为:CertA≡(y+1)1/emodn。
签名:假设r是一个随机数,其中记符号δA代表成员签名。当成员A计算g'=gr时,z′=g′y,/> 最终得到签名δA为δA=(g′,z′,Verf1,verf2)。
签名打开:需要链接两个签名(g′,z′,Verf1,verf2)与δA=(g”,z”,Verf1′,verf2′),即需要确定这两个签名是否来自同一群成员,则只能通过logg′z′=logg”z”。通常情况下,找到这个解是不可行的,因此群成员的签名具有匿名性与不可链接性。然而,群管理员知道logg'z′较少的值,即:群管理员知道群成员的成员密钥的离散对数,因此可以执行此测试。仅对于消息M的签名(g′,z′,Verf1,verf2),群管理员能够通过测试查找所有的群成员R(yP表示的成员R的成员密钥基于g的离散对数),直至最终找到发布该签名的群成员。若寻找失败,则返回⊥,表示查找失败。
基于以上预备知识,本发明的实施例中,执行过程如下:
1)加密并签名,实现用户隐私保护
(1.1)AES密钥生成:数据发布者根据密钥的长度lAES,使用AES的密钥生成函数,生成AES密钥,记为:AES_Keygen(lAES)→k。
(1.2)AES密文生成:将需要加密的用户隐私信息输入到AES的加密函数中,经过密钥扩展、字节代换、行移位、列混淆与轮密钥加步骤,将用户隐私信息(本实施例中即患者的病例数据)加密,记为:AES_Enc(k,m)→C。
其中,lAES为素数,表示AES密钥的长度;k为整数,表示生成后的AES密钥;C为整数,表示使用AES密钥对患者病历加密后的密文,AES_Keygen、AES_Enc分别为AES密钥生成算法和加密算法。
2)AES密钥管理
(2.1)函数初始化:通过初始化函数,生成公钥pkCPABE和主密钥mskCPABE用于CP-ABE的数据加密,CPABE_Setup(1λ)→(pkCPABE,mskCPABE)。
选择生成元为g,阶为p的双线性群两个随机指数α,/>
计算得到公钥主密钥mskCPABE=(β,gα)。
(2.2)灵活访问控制:数据发布者DP根据允许访问数据用户的属性,设置访问控制规则T,并将其转化为访问控制矩阵。
(2.3)AES密钥管理:数据发布者DP使用CP-ABE的加密函数,对AES的密钥进行加密管理,CPABE_Enc(k,pkCPABE,M)→C′。
数据加密:结合访问控制矩阵,针对需要加密的消息矩阵T=(k,ρ2,...,ρe),计算密文为M·T=(s1,...,sd)T。其中,k是需要加密的AES密钥,ρi是一组随机数。
密钥获取:选择一个随机数输入一组属性S,为每个属性j∈S选择计算密钥为/>
密文解密:存在目标矢量ε=(1,0,...,0)T∈Ze令MTλ=ε成立,通过这个式子求解得到λ的值,再解密消息m:C′T·λ=(M·ρ)·λ=ρT·(MT·λ)=ρT·ε=m。其中,M·ρ的值是加密后的消息密文C′。
3)成员匿名保护
(3.1)函数初始化:结合RSA算法,通过初始化函数,生成公钥pkGS、群管理员私钥gskGM和群成员私钥skiGS(i∈[1,n])用于群签名中成员的签名与他人对签名的验证,GS_Setup(1λ,n)→(pkGS,gskGM,skiGS(i∈[1,n]))。
选择素数令/>其中N′=max{(N)=RSA_Keygen(1λ;r)}。
RSA_Keygen(p,q)=(n,e,G,g,a,λ,ε),选择阶为n的循环群G=(g),两个大素数p,q,计算n=pq,随机选取密钥e,使e与(p-1)(q-1)互素,通过扩展欧几里得算法计算d=e- 1mod(p-1)(q-1)得到解密密钥d,返回pkGS=(n,e),skGS=(n,d)。
(3.2)矿工群组构建:将多个矿工组成群组,由可信第三方为他们分发证书Cert与签名私钥skiGS(i∈[1,n]))用于后续对需要上传至区块链的数据签名。
签名成员计算与z=gy,并将其发送至群管理员处。
通过证明自己确实持有/>中的skRSA。具体步骤见4.2.3中b知识签名的第(3)部分)
群管理员验证通过后,计算CertA≡(y+1)1/emodn并将其发送给需要签名的成员。
(3.3)群管理员选取:通过PoW共识机制,令矿工通过算力证明自己,最终选取算力最强的作为该群组的群管理员,并负责对数据发布者DP发送来的数据进行变色龙哈希值计算、打包上链以及后续的链上数据可编辑内容。
(3.4)矿工数据签名:矿工先将来自数据发布者DP的数据进行打包,然后使用群成员私钥和成员证书对其进行签名,用于未来可能的签名验证环节,如表4-2所示,基于算力证明的群签名生成,GS_Sign(skGS,r,C,C′,M)→δ,随机选择将(C,C′,M)整合为CT,
计算 g′=gr·ct,z′=g′y。
将上述参数整理,得到签名δ=(Verf1,verf2,g′,z′)。
(3.5)签名验证:通过群签名验证算法,其他用户能够通过使用群公钥对矿工的签名进行验证,若验证通过输出1,否则输出0。但是除了验证签名的正确性,其他用户是无法确认该签名具体来自哪一位矿工的,只能知道它所属的群组,GS_Verify(pkGS,(C,C′,M),δ)→(0,1)。
通过知识签名与 的正确性验证签名。若验证通过返回1,否则返回0。
(3.6)签名打开:若在某些特定的场景下,群管理员能够通过使用群管理员私钥gskGM对某个签名打开,追溯该签名的签名者身份,若找到签名成员,返回其身份标识i,否则返回⊥,GS_Open(δ,yi)→(ior⊥)。
4)链上数据可编辑
(4.1)函数初始化:通过初始化函数,生成变色龙哈希的公钥pkCH和用于寻找碰撞的陷门密钥tkCH,CH_Keygen(1λ)→(pkCH,tkCH)。
p,q为两个足够大的素数,其中p,q满足p=kq+1,是一个阶为q的群,g是该群的生成元。令陷门密钥tkCH=x,公钥pkCH表示为y=gxmodp。
(4.2)变色龙哈希值计算:输入需要上传至区块链存储的数据与随机选择的变色龙随机数,由矿工对其进行变色龙哈希值的计算,CH_Hash(pkCH,(C,C′,M),δ)→(h,r)。
输入公钥pkCH,需要上链的消息(C=AES_Enc(m),C′=CPABE_Enc(k)),签名δ,访问控制矩阵M,
针对需要进行变色龙哈希值计算的消息和一个变色龙随机数/>计算其变色龙哈希值为/>
返回(h1,r1)。
(4.3)链上数据更新:当需要对区块链中的数据进行编辑时,首先从数据发布者处接收需要替换的新的数据M′。其次,对此次的新的数据进行签名δ'。再次,下载原本上传的数据,将其中的访问控制数据进行替换,再对所有需要上链的数据计算变色龙哈希值h′。最后,若新的哈希值h'与前一次的哈希值h保持一致,那么就能够在不修改后一区块哈希值的前提下,对前一区块内的数据进行编辑更新,CH_Update(tkCH,(C,C',M,δ),(C,C',M',δ'),h,r)→r'。
针对需要替换消息m2,重新进行变色龙哈希值计算的消息和一个变色龙随机数/>其变色龙哈希值为
验证h1=h2,计算变色龙随机数r2=[(m1-m2)/x]+r1modp。
找到碰撞后,对区块链中的数据进行更新。
在图1所示的方案中,使用矩阵作为CP-ABE的访问控制结构,也因此,该方案具有高灵活性、可扩展性、高安全性、高效性以及可靠性。其次,通过引入变色龙哈希函数,根据其持有陷门密钥用户能够找到哈希冲突的特性,在不修改哈希值的先决条件下,完成对区块链上信息的修改,最终达成成员属性撤销的目的。最后,引入群签名算法,根据其群管理员以及签名匿名的设定,一方面实现对用户匿名的隐私保护,另一方面由群管理员通过对签名打开实现对成员信息的获取,实现了区块链上基于矩阵结构的成员属性可撤销方案。
由此可见,本发明中用户数据的安全性与隐私性得到了充分的保障。该方案不仅灵活有效,而且能够实现成员属性的撤销问题。此外,该方案在保证属性用户匿名的前提下,通过群管理员实现了成员签名的可追溯以及数据发布者对其发布信息的不可否认性。
Claims (7)
1.区块链上基于矩阵结构的康复数据属性成员可撤销方法,数据发布者使用对称密码AES对康复对象的康复数据加密并签名,随后将加密签名后的数据整合发送至矿工;矿工接收到消息后,对所述加密签名后的数据计算变色龙哈希函数值以及选取随机数,再将哈希值、随机数与自己的签名共同上传存储至区块链,数据使用者通过身份认证后从区块链查看存储的康复数据;
其特征在于:
当需要对基于密文策略的属性加密算法中的成员属性进行撤销时,由数据发布者向矿工提出属性撤销申请,并发送修改后的密文,然后由矿工计算变色龙哈希函数的哈希值并完成对链上数据的修改,最终达成对成员属性撤销的目的。
2.根据权利要求1所述区块链上基于矩阵结构的康复数据属性成员可撤销方法,其特征在于,当需要对基于密文策略的属性加密算法中的成员属性进行撤销时,首先由数据发布者对部分属性撤销后的属性矩阵进行更新,随后重新计算更新后的密文,并对更新后的密文重新签名;继而将更新后的密文与签名整合发送至矿工处;矿工接收到数据发布者发送的申请后,将其作为事务存放于Merkle树的叶子节点处,随后分别对其进行哈希运算,并对整合后的哈希值再次进行哈希运算,并将最终的值存放至Merkle树的根节点;其中,Merkle树的根节点信息存放于区块链的块头处,Merkle树存放于区块链的区块块体内。
3.根据权利要求1所述区块链上基于矩阵结构的康复数据属性成员可撤销方法,其特征在于,以线性秘密分享矩阵作为基于密文策略的属性加密算法中访问策略的访问控制矩阵M,其中,访问控制矩阵M的行为不同的参与者,列为不同的属性。
4.根据权利要求1所述区块链上基于矩阵结构的康复数据属性成员可撤销方法,其特征在于,所述加密并签名,方法如下:
AES密钥生成:数据发布者根据密钥的长度lAES,使用AES的密钥生成函数,生成AES密钥,记为:AES_Keygen(lAES)→k;
AES密文生成:将需要加密的患者病例输入到AES的加密函数中,经过密钥扩展、字节代换、行移位、列混淆与轮密钥加步骤,将患者的病例数据加密,记为:AES_Enc(k,m)→C;
其中,lAES为素数,表示AES密钥的长度;k为整数,表示生成后的AES密钥;C为整数,表示使用AES密钥对患者病历加密后的密文,AES_Keygen、AES_Enc分别为AES密钥生成算法和加密算法。
5.根据权利要求1所述区块链上基于矩阵结构的康复数据属性成员可撤销方法,其特征在于,所述将加密签名后的数据整合,方法如下:
1)、计算CPABE_Setup(1λ)→(pkCPABE,mskCPABE),得到公钥和主密钥mskCPABE=(β,gα);
2)、计算CPABE_Enc(k,pkCPABE,M)→C′,结合有l行和k列的访问控制矩阵M和需要加密的消息矩阵T=(k,ρ2,...,ρe),计算密文M·T=(s1,...,sd)T;计算私钥
3)、计算GS_Setup(1λ,n)→(pkGS,gskGM,skiGS(i∈[1,n])),选择素数令N'=max{(N)=RSA_Keygen(1λ;r)},RSA_Keygen(p,q)=(n,e,G,g,a,λ,ε),/>得到pkGS=(n,e),skGS=(n,d);
4)、计算GS_Sign(skGS,r,C,C',M)→δ, g'=gr·ct,z'=g′y;
5)、将上述参数整理,得到签名为:δ=(Verf1,verf2,g′,z′);
其中,λ是正整数;g为生成元,是阶为p的双线性群,/>是两个随机指数;k是需要加密的AES密钥,ρi是一组随机数,r是/>的一个随机数,S为一组属性集,rj是为每个属性j∈S选的值,其中/>G=(g)是阶为n的循环群,p,q为两个大素数,e为随机选取的密钥,且e与(p-1)(q-1)互素;r是随机选取的一个证书,其中/>AES_Keygen为AES密钥生成算法,AES_Enc为AES加密算法,CPABE_Setup为CP-ABE初始化算法,CPABE_Enc为CP-ABE加密算法,GS_Setup(1λ,n)为群签名初始化算法,RSA_Keygen(p,q)为RSA密钥生成算法,GS_Sign为群签名的签名算法。
6.根据权利要求1所述区块链上基于矩阵结构的康复数据属性成员可撤销方法,其特征在于,所述基于密文策略的属性加密算法中的成员属性包括康复对象的病征、用药以及物理治疗方法。
7.根据权利要求1所述区块链上基于矩阵结构的康复数据属性成员可撤销方法,其特征在于,所述加密签名后的数据计算变色龙哈希函数值以及选取随机数,由数据发布者计算修改访问结构后的CP-ABE密文,随后向矿工提出链上数据修改申请,并发送修改后的密文和签名,方法如下:
1)、计算CH_Keygen(1λ)→(pkCH,tkCH),其中pkCH=y=gxmodp,tkCH=x;
2)、计算CH_Hash(pkCH,(C,C′,M),δ)→(h,r),针对需要进行变色龙哈希值计算的消息和一个变色龙随机数/>计算变色龙哈希值为
3)、计算CH_Update(tkCH,(C,C′,M,δ),(C,C′,M′,δ′),h,r)→r′,验证h1=h2时,计算变色龙随机数r2=[(m1-m2)/x]+r1 modp,/>
4)、返回(h1,r1),(h2,r2),h1=h2;
其中,p,q为两个足够大的素数,其中p,q满足p=kq+1,是一个阶为q的群,g是该群的生成元,x是陷门密钥;C,C′代表密文,δ代表签名,h1和h2是使用变色龙哈希函数对原始消息/>和需要替换的消息/>分别进行变色龙哈希计算后的变色龙哈希值;r1和r2是h1和h2所对应的变色龙随机数;CH_Keygen是变色龙密钥生成算法,CH_Hash是变色龙哈希算法,CH_Update是变色龙更新算法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311345167.7A CN117313157A (zh) | 2023-10-17 | 2023-10-17 | 区块链上基于矩阵结构的康复数据属性成员可撤销方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311345167.7A CN117313157A (zh) | 2023-10-17 | 2023-10-17 | 区块链上基于矩阵结构的康复数据属性成员可撤销方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117313157A true CN117313157A (zh) | 2023-12-29 |
Family
ID=89280953
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311345167.7A Pending CN117313157A (zh) | 2023-10-17 | 2023-10-17 | 区块链上基于矩阵结构的康复数据属性成员可撤销方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117313157A (zh) |
-
2023
- 2023-10-17 CN CN202311345167.7A patent/CN117313157A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI712301B (zh) | 多方安全計算方法及裝置、電子設備 | |
Wang et al. | Cloud-assisted EHR sharing with security and privacy preservation via consortium blockchain | |
Shamshad et al. | A secure blockchain-based e-health records storage and sharing scheme | |
Raikwar et al. | SoK of used cryptography in blockchain | |
ES2687182T3 (es) | Determinar un secreto común para el intercambio seguro de información y claves criptográficas jerárquicas y deterministas | |
CN108885741B (zh) | 一种实现区块链上交换的令牌化方法及系统 | |
Barsoum et al. | On verifying dynamic multiple data copies over cloud servers | |
CN103414569B (zh) | 一种建立抗攻击的公钥密码的方法 | |
Belguith et al. | Accountable privacy preserving attribute based framework for authenticated encrypted access in clouds | |
CN109450645A (zh) | 一种基于零知识证明的可监管匿名认证方法 | |
CN111327419B (zh) | 基于秘密共享的抗量子计算区块链的方法及系统 | |
JP2022528925A (ja) | データを暗号化するためのコンピュータにより実施される方法及びシステム | |
CN108551435A (zh) | 一种具有匿名性的可验证加密群签名方法 | |
CN106664199A (zh) | 建立抗攻击的安全性公钥密码的方法 | |
Habib et al. | A Blockchain-based Technique to Prevent Grade Tampering: A University Perspective | |
CN105393488B (zh) | 建立抗量子计算攻击的公钥密码的方法 | |
Delgado-Segura et al. | Bitcoin private key locked transactions | |
Ren et al. | Privacy‐Preserving Redactable Blockchain for Internet of Things | |
CN117118600A (zh) | 一种基于格密码改进的区块链代理重加密方法及系统 | |
Xue et al. | Poly-ABE: A traceable and revocable fully hidden policy CP-ABE scheme for integrated demand response in multi-energy systems | |
Xu et al. | A decentralized pseudonym scheme for cloud-based eHealth systems | |
CN117313157A (zh) | 区块链上基于矩阵结构的康复数据属性成员可撤销方法 | |
KR20240045231A (ko) | 디지털 서명 셰어의 생성 | |
Bermejo Higuera et al. | Introduction to Cryptography in Blockchain | |
Ramesh et al. | HHDSSC: Harnessing healthcare data security in cloud using ciphertext policy attribute-based encryption |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |