CN115208656B - 一种基于区块链和权限管理的供应链数据共享方法及系统 - Google Patents

一种基于区块链和权限管理的供应链数据共享方法及系统 Download PDF

Info

Publication number
CN115208656B
CN115208656B CN202210814802.0A CN202210814802A CN115208656B CN 115208656 B CN115208656 B CN 115208656B CN 202210814802 A CN202210814802 A CN 202210814802A CN 115208656 B CN115208656 B CN 115208656B
Authority
CN
China
Prior art keywords
data
key
message
blockchain
sharing
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.)
Active
Application number
CN202210814802.0A
Other languages
English (en)
Other versions
CN115208656A (zh
Inventor
唐飞
甘宁
阳祥贵
王金洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Langchao Gongchuang Shandong Supply Chain Technology Co ltd
Yami Technology Guangzhou Co ltd
Original Assignee
Langchao Gongchuang Shandong Supply Chain Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Langchao Gongchuang Shandong Supply Chain Technology Co ltd filed Critical Langchao Gongchuang Shandong Supply Chain Technology Co ltd
Priority to CN202210814802.0A priority Critical patent/CN115208656B/zh
Publication of CN115208656A publication Critical patent/CN115208656A/zh
Application granted granted Critical
Publication of CN115208656B publication Critical patent/CN115208656B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本发明属于数据共享领域,具体涉及一种基于区块链和权限管理的供应链数据共享方法及系统,该方法包括:配置系统;数据拥有者根据配置的系统参数对数据进行加密,并上传区块链;数据拥有者对发送数据共享请求的数据拥有者进行权限管理验证,若验证成功,则向数据请求者发送共享数据,否则请求失败;权限管理验证包括系统验证数据请求者的身份,若认证成功,则数据请求者验证数据共享凭证中的合作内容;数据拥有者根据合作内容确定请求者的访问权限,根据权限范围和截取规则对数据进行截取;否则请求失败;本发明在数据共享过程中,通过权限管理的方式对数据请求者的权限进行验证,从而保证了共享数据传输的安全性。

Description

一种基于区块链和权限管理的供应链数据共享方法及系统
技术领域
本发明属于数据共享领域,具体涉及一种基于区块链和权限管理的供应链数据共享方法及系统。
背景技术
随着科学技术的不断发展,数字化转型已经成为国家战略;在数字化转型、在数据驱动型经济背景下,国家发展战略制定、企业的决策以及行业行情分析等都需要基于数据才能完成,数据成为不可或缺的重要资源,各行各业甚至于各个国家都陷入了一场前所未有的数据资源争夺战。在数据被广为收集、大量传播、不断复用的现实情况下,数据安全问题、隐私数据保护、数据有效性及可用性以及数据共享监管等问题成为大众关注的焦点,并且数据作为一种在社会生产的诸多方面发挥着重要作用的新型生产要素,因数据孤岛现象极大地束缚了其应有价值的体现。
发明内容
针对以上现有技术存在的问题,本发明提出了一种基于区块链和权限管理的供应链数据共享方法,该方法包括:
S1:系统初始化,并生成系统主公私钥;
S2:数据拥有者设置截取规则;根据截取规则对拥有的消息进行划分,得到子消息;获取签名密钥,根据签名密钥采用可截取签名算法对子消息签名;数据拥有者向区块链申请密钥,采用申请的密钥对签名的子消息进行加密;将加密后的子消息分布式存储在区块链上,并获取对应的存储地址;
S3:数据请求者向数据拥有者发送数据共享请求、数据共享凭证以及访问权限;
S4:系统和数据拥有者分别对数据请求者的访问权限进行检测,若检测失败,则数据共享失败,否则根据数据共享凭证和截取规则确定数据共享内容,并将数据共享内容发送给数据请求者,生成数据共享日志;数据共享内容包括:请求消息的可截取签名、截取规则以及数据请求者权限所对应的子消息地址集合;
S5:数据请求者校验可截取签名有效性,若验证失败,则数据共享失败,若验证成功,则向区块链提交数据共享日志,得到用于解密的密钥;
S6:数据请求者根据子消息地址集合获取对应的子消息密文,并采用解密密钥对子消息密文进行解密,采用截取规则对解密后的子消息进行恢复,得到共享消息;
S7:数据请求者对共享的消息进行截取转发。
一种基于SM9和区块链的供应链数据共享系统,该系统用于执行上述基于区块链和权限管理的供应链数据共享方法,该系统包括:程序加载模块、初始化模块、数据分享模块、数据预处理模块、数据共享模块、仲裁模块;
所述程序加载模块用于对系统相关的初始程序进行配置加载;
所述初始化模块用于初始化系统,初始化系统包括初始化系统密钥、区块链节点密钥、选定可验证秘密共享多项式、选定共识算法以及部署智能合约;
所述数据分享模块用于各个用户参与节点向系统或数据库申请并获取所需数据,并将获取数据的用户参与节点作为数据拥有者;
所述数据预处理模块用于对数据拥者的数据进行预处理,该预处理包括数据拥有者对拥有的数据进行划分,采用基于SM9的无证书可截取签名机制对划分的数据消息进行签名,采用密钥对签名后的子消息进行加密,并将加密后的子消息存储到分布式数据库中,并获取相应的存储地址;
所述数据共享模块用于数据请求者向数据拥有者之间的数据共享,利用区块链对数据请求日志进行存储;在数据共享过程中,数据拥有者需要对数据请求者进行权限验证,若验证成功,数据拥有着通过数据共享模块将数据请求者所请求的数据发送给数据请求者;
所述仲裁模块用于对有问题数据对应的数据拥有者进行检测。
本发明的有益效果:
本发明采用基于SM9的无证书可截取签名方案,解决密钥托管问题,将用户秘密值证明存储到区块链中利用区块链不可篡改的特点,解决了无证书密码原假设中的公钥替换攻击问题,增强签名方案的不可伪造性与不可抵赖性;同时,使用可截取签名可以更加细粒度的控制数据的共享,降低数据泄露的风险;通过两两交互、上链数据共享记录、验证访问凭证的方式控制数据共享行为,增强数据共享的安全性,提高数据共享系统的可靠性;另外,通过区块链节点分布式生成加密密钥,有助于解决密钥托管问题以及单点故障问题,而且可以通过将数据共享操作记录上链,便于追溯问题方,实现有效监管。
附图说明
图1为本发明的无证书可截取签名的流程图;
图2为本发明的基于区块链和权限管理的供应链数据共享方法流程图;
图3为本发明的基于区块链和权限管理的供应链数据共享方法的网络结构图;
图4为本发明的基于SM9和区块链的供应链数据共享系统结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一种基于区块链和权限管理的供应链数据共享方法的具体实施方式,该方法包括:
S1:系统初始化,并生成系统主公私钥;
S2:数据拥有者设置截取规则;根据截取规则对拥有的消息进行划分,得到子消息;获取签名密钥,根据签名密钥采用可截取签名算法对子消息签名;数据拥有者向区块链申请密钥,采用申请的密钥对签名的子消息进行加密;将加密后的子消息分布式存储在区块链上,并获取对应的存储地址;
S3:数据请求者向数据拥有者发送数据共享请求、数据共享凭证以及访问权限;
S4:系统和数据拥有者分别对数据请求者的访问权限进行检测,若检测失败,则数据共享失败,否则根据数据共享凭证和截取规则确定数据共享内容,并将数据共享内容发送给数据请求者,生成数据共享日志;数据共享内容包括:请求消息的可截取签名、截取规则以及数据请求者权限所对应的子消息地址集合;
S5:数据请求者校验可截取签名有效性,若验证失败,则数据共享失败,若验证成功,则向区块链提交数据共享日志,得到用于解密的密钥;
S6:数据请求者根据子消息地址集合获取对应的子消息密文,并采用解密密钥对子消息密文进行解密,采用截取规则对解密后的子消息进行恢复,得到共享消息;
S7:数据请求者对共享的消息进行截取转发。
一种基于区块链和权限管理的供应链数据共享方法的另一种实现方式,如图2所示,该方法包括:
系统初始化阶段,初始化系统参数及配置。
数据预处理阶段,数据拥有者划分数据消息,生成可截取签名,加密数据消息分希式存储并获得存储地址。
数据共享阶段,数据请求者发起请求,数据拥有者回复请求,并返回签名、地址。数据请求者上链请求记录获取解密密钥。
数据转发阶段,和数据请求阶段流程一致。数据拥有者角色换成已经获得数据的数据请求者即跋据转发者,进行数据共享。
仲裁阶段,当出现纠纷或者其他问题时,数据请求者区块链监管节点发起仲裁请求,可以通过区块链记录追溯数据共享,查找问题方。
系统初始化包括:系统参数配置、群组划分、分布式数据库技术选择以及数据预处理。初始化数据过程中用到的密钥对以及对应消息字段格式,为数据共享做好准备工作。
加密消息的密钥生成与恢复密钥过程采用秘密共享策略,由区块链节点负责生成。对应的过程包括:秘密共享策略包括秘密分发阶段和秘密重构阶段;秘密分发阶段包括节点计算秘密数据份额,对各个份额进行标记,将计算的输入与输出值以键值对形式存储到本地数据库;秘密重构阶段包括参与节点根据各个秘密数据份额的标记以及重构策略对秘密数据进行恢复,得到完整的秘密数据。
数据预处理阶段,数据拥有者划分数据消息,生成可截取签名,加密数据消息分希式存储并获得存储地址。数据拥有者需要完成数据共享的准备工作,需要对数据进行处理之后再共享;先是将数据划分,并为划分的数据生成一个可截取签名,再向区块链申请密钥然后加密划分的数据并将密文分布式存储,获得存储地址。
数据拥有者向区块链申请密钥的过程包括:数据拥有者向区块链节点发送密钥请求,区块链节点根据密钥请求采用可验证密钥共享策略生成数据拥有者的对称密钥;采用可验证密钥共享策略生成对称密钥的过程包括:
步骤1:区块链中节点i选择一个随机数ci,并计算将该计算结果发送给其他节点,其他节点亦如此选随机数并发送给除自己以外的节点;最终,每个节点都能收到n-1个Ci,根据Ci计算中间参数/>并将Q上传到系统公开;其中,n表示区块链节点数量,R表示群G的生成元,i表示节点编号且i∈[1,2,…,n];
步骤2:节点随机选择两个中的t-1次多项式fi(x)和fi′(x);其中,多项式的表达式为:
fi(x)=ai0+ai1x+ai2x2+…+ai(t-1)xt-1,i={1,2,…,n}
fi′(x)=bi0+bi1x+bi2x2+…+bi(t-1)xt-1,i={1,2,…,n}
步骤3:节点根据多项式fi(x)和fi′(x)中的系数计算并广播计算结果Bik;其中,Bik、/>都是G中的元素,/>是计算Bik的中间参数,Bik是用于验证密钥份额的中间参数。
步骤4:数据拥有者A向区块链发起密钥请求,并提交参数IDA||T;其中,IDA||T表示数据拥有者A身份标识符与消息编号的连接。
步骤5:节点以IDA||T作为之前选取的多项式的输入,根据IDA||T和多项式fi(x)和fi′(x)计算数据拥有者A的密钥请求的两个函数值siA和s′iA,将函数值siA和s′iA发给数据拥有者A;其中,siA和s′iA的计算表达式为:
siA=fi(IDA||T)mod p
s′iA=fi′(IDA||T)mod p
其中,IDA表示数据拥有者A的身份信息,T表示待加密的消息编号,mod p表示模数为素数p的模运算。
步骤6:数据拥有者A根据函数值siA和s′iA,验证是否成立,若成立,则A接受来自于区块链节点i的密钥份额;反之,A要求节点i重新生成并发送密钥份额;其中,siA表示密钥份额,s′iA表示用于校验密钥份额的第二秘密值,aik和bik分别表示多项式fi(x)和fi′(x)的系数,i表示节点编号且i∈[1,2,…,n],k表示多项式系数下标且k∈[0,1,2,…,t-1],R、Q、Bik都是校验密钥份额所需的中间参数。
步骤7:数据拥有者A收到t份正确验证的密钥份额siA后即可恢复出用于加密消息的对称密钥s。
数据拥有者向区块链获取密钥需要提供消息编号和可截取签名,区块链节点验证签名有效之后,计算密钥份额返回给数据拥有者,并将消息编号与密钥份额以键值对形式存储到本地数据库。数据拥有者获取足够的密钥份额后合成加密密钥。
数据共享阶段,数据请求者发起请求;数据拥有者回复请求,并返回签名、需要分享的部分消息对应的地址;数据请求者上链请求记录获取解密密钥,通过地址下载密文解密得到共享数据消息明文。
数据请求者发送请求包括:为了进行数据共享,数据请求者需要发送数据共享请求给数据拥有者,特别的,数据请求中需要有数据访问凭证(比如属性、合同的相关证明等),并对数据请求签名附带时间戳发给数据拥有者。
数据拥有者验证请求包括:数据拥有者验证数据请求者的签名及凭证之后,返回回复消息,回复消息包括对数据请求的批复、共享数据的可截取签名、共享数据消息的密文存储地址以及共享数据消息的截取规则。
数据请求者上链数据共享记录以及获取消息过程:数据请求者收到数据拥有者发的消息之后,先验证签名者公钥有效性,再验证签名正确性,然后根据获得的地址去分布式数据库获取消息密文,接着将数据请求消息及其签名上链,区块链节点返回给数据请求者解密密钥,从而数据请求者即可获得需要的数据消息明文。
一种基于SM9的无证书可截取签名机制,如图1所示,该机制包括:初始化算法、设置秘密值、广播用户秘密值证明、部分私钥生成、完整私钥生成、签名算法、截取算法以及验证算法。具体过程包括:
初始化算法:给定安全参数λ,KGC首先选择一个双线性群BP=(G1,G2,GT,e,N),N>2λ。并选择群G1和群G2的生成元P1和P2。三个密码杂凑函数H1:{0,1}*→{0,1}k,/>表示与N互素且小于N的正整数集合。。KGC选择随机数ks∈[1,N-1]作为系统主私钥,计算群G2中的元素Ppub=[ks]P2作为系统主公钥,计算g=e(P1,PA),接着选择用一个字节表示的签名私钥生成函数识别符hid。系统公开参数
pp={BP,P1,P2,Ppub,H1,H2,H3,hid}。
设置秘密值:用户A选择随机数ka∈[1,N-1]作为用户秘密值证明,计算PA=[ka]P2,将PA发给区块链主节点。
广播用户秘密值证明:区块链主节点校验用户A身份,并将用户标识符IDA和PA共识记录。
部分私钥生成:区块链智能合约提醒KGC有新用户申请密钥,KGC根据用户标识符IDA和用户秘密值证明PA,计算t1=H1(IDA||hid,N)+ks,为用户A生成部分私钥发给A。
完整私钥生成:用户A生成完整私钥dsA=[ka]DA
签名算法:给定消息M,用户A对其进行签名。其具体的步骤包括:
步骤1:将消息M划分为n个子消息,设定截取规则CEAS,随机选取CEAS标记T。并计算hi=H2(mi||i||CEAS||T),然后计算这n个子消息哈希值的连接另外,签名者计算关于h1个哈希值hi的默克尔根root,并将root上链。
截取规则包括:标记划分后的子消息下标,得到标签集{1,2,...,n};根据子消息之间的关联性对标签集中的标签进行关联;关联性包括子消息的上下文关联含义、内容顺序以及消息类型;采用截取规则对信息进行恢复时根据标签的关联性进行子消息恢复,得到恢复后的消息。
步骤2:计算g=e(P1,PA),g表示循环群GT的一个元素,e表示双线性运算,P1表示G1的生成元,PA表示用户秘密值证明。
步骤3:随机选择r∈[1,N-1],计算w=gr;其中w表示中间参数。
步骤4:根据中间参数w计算其中,h表示哈希值。
步骤5:计算哈希值和随机选择的参数r计算l=(r-h)mod N,若l=0则返回步骤2,否则执行步骤6。其中,l表示中间参数。
步骤6:计算S=[l]dsA
根据上述步骤输出签名,其签名的表达式为:σ=(h,S,CEAS,T)。
一种截取算法的具体实施方式,包括:截取者B收到签名之后,先校验消息完整性,然后根据验签过程对接收到的全签名进行验证,若验证通过,则进行后续的截取过程,否则验证失败拒绝截取。根据消息M和截取规则CEAS,选定截取规则中某个元素X∈CEAS,根据X选定截取子集CI(M),满足对于消息不属于截取子集的,计算hi=H2(mi||i||CEAS||T);输出截取签名/>
验证算法:验证者C收到截取签名之后,首先判断CI(M)是否为合法截取子集,再根据i∈CI(M)计算获取到的子消息哈希值hi=H2(mi||i||CEAS||T),然后结合收到的计算默克尔根root′,校验与发布的root是否相同,即校验消息完整性。若消息完整,计算/>
对签名进行验证的过程包括:
步骤1:对可截取签名的h和S进行验证,即判断h∈[1,N-1]、S∈G1是否成立,若成立,则执行步骤2,否则可截取签名无效;其中,N表示一个大素数,G1表示一个循环群;
步骤2:根据循环群的生成元计算g=e(P1,PA);其中,g表示循环群GT的一个元素,e表示双线性运算,P1表示G1的生成元,PA表示用户秘密值证明;
步骤3:根据g和哈希值h计算t=gh;其中,t表示中间参数;
步骤4:根据系统主公钥、签名私钥生成函数识别符、用户的身份信息意以及循环群G2的生成元计算P=[H1(IDA||hid,N)]P1+Ppub;其中,H1表示密码杂凑函数,IDA表示数据拥有者的身份信息,hid表示签名私钥生成函数识别符,P2表示G2的生成元,Ppub表示系统主公钥,P表示中间参数;
步骤5:根据P和S计算u=(S,P),其中,u表示中间参数;
步骤6:根据u和t计算w=u·t,其中w表示中间参数;
步骤7:根据w计算其中,/>表示n个子消息的哈希值连接;
步骤8:将计算出的h′与可截取签名中的哈希值h进行对比,若相等,则可截取签名有效,否则可截取签名无效。
数据转发阶段,和数据请求阶段流程一致。数据拥有者角色换成已经获得数据的数据请求者即数据转发者,进行数据共享。即是说,当数据请求者获得数据之后,对于其获得的数据消息来说,其角色可以变成数据转发者,数据转发者的权限只有其所拥有的数据本身,可以选择所拥有的消息中的一部分分享给向其发出共享该数据请求的数据请求者。具体的,数据请求者发起请求;数据转发者回复请求,并返回截取签名、所分享的部分消息对应的地址;数据请求者上链请求记录获取解密密钥,通过地址下载密文解密得到共享数据消息明文。
仲裁阶段,当出现纠纷或者其他问题时,数据请求者或者数据拥有者向区块链监管节点发起仲裁请求,可以通过区块链记录追溯共享过程中的问题方,协助请求仲裁者解决问题。
本发明适用于具有层级性质的实体间的数据共享与转发,以供应链中工艺文件共享为例。供应链核心企业对工艺文件签名发布之后,需要按照供应商的访问权限截取之后共享给可以直接交互的供应商,但很可能无法发给供应商的供应商,因为核心企业与很多下下级供应商是没有交互的。而供应商收到文件后,也可以截取转发给下级供应商,收到截取消息和截取签名的供应商还能校验消息来源与真实有效性。具体的步骤包括:
S1:初始化。部署分布式数据库IPFS,由供应链企业节点构成区块链。
S11:系统初始化,系统公私钥,公共参数等;区块链系统参数初始化,节点公私钥配置及其他参数配置。
S12:签名者密钥生成。签名者A选定秘密值ka∈[1,N-1]及其证明PA=[ka]P2,用户A将PA发给联盟主节点,共识记录;智能合约将PA发给KGC,KGC生成部分私钥DA=[H1(IDA||hid,N)+ks]-1P1;用户A计算完整私钥dsA=[ka]DA
S13:数据共享参与方参数配置,包括数据共享参与方公私钥对等参数配置。
S2:数据预处理。数据拥有者对数据进行预处理,如图3中步骤①和②。
S21:数据拥有者A将需要分享的数据消息划分M={m1,m2,…mn}。设置截取规则CEAS,选取随机数T作为CEAS的标记同时也作为消息编号,计算并根据hi=H2(mi||i||CEAS||T)计算关于这n个哈希值hi的默克尔根root,然后为消息生成一个可截取签名σ并向主节点提交消息Begin=(root,σ,PA,IDA)。其中,σ=(h,S,CEAS,T),σ是签名者用私钥dsA对/>的签名。
S22:区块链节点收到Begin消息后,验证签名有效性以及签名正确性,若通过验证返回为消息生成的加密密钥份额zi并发给A,并以键值对形式存储(T,root,zi)。
S23:数据拥有者A先恢复密钥z加密mi得到ci,再将n个密文分布式存储并获得存储地址集合ADDR={addr1,addr2,…,addrn},其中addri为一个哈希值表示mi在IPFS中的存储地址。
S3:数据共享。数据请求者向数据拥有者发起请求,并从区块链获取密钥、从IPFS获取密文。如图3中步骤③、④和⑤。
S31:数据请求者一级供应商通过安全信道向核心企业发送数据共享请求消息,Request=(proof,δB(proof))。其中,proof是数据共享凭证,比如合同的证明;δB(proof)是一级供应商对凭证的签名。
S32:数据拥有者A收到Request之后先验证签名正确性,再校验凭证有效性,并根据凭证决定数据共享的范围,并结合截取规则确定截取子集CI(M′)。根据截取子集用M′={m′1,m′2,…,m′n}替代M={m1,m2,…mn},其中,若i∈CI(M′)则令m′i=mi,表示一级供应商有权限获得该子消息;否则,令m′i=H2(mi||i||CEAS||T),表示一级供应商没有权限获取该子消息;为截取后的子消息集合M′的生成截取签名同时用ADDR′={addr′1,addr′2,…,addr′l}记录对应的地址集合,其中l是一级供应商有权获取的子消息个数。然后核心企业A(即数据拥有者)回复一级供应商B(即数据请求者)
S33:一级供应商收到Reply消息后,验证签名公钥有效性以及签名正确性,若通过验证,向区块链提交
S34:区块链节点用PA验证签名即验证A是否同意共享请求;再验证δB(timestamp)来对B进行身份认证。若都通过验证,将数据共享记录消息Record共识上链,并返回给B对应消息M的解密密钥份额zi
S35:一级供应商B根据ADDR′的记录去IPFS对应地址下载密文,并用区块链返回的密钥份额合成解密密钥z,解密密文获得消息明文,根据截取子集CI(M′)中子消息的顺序恢复出可以访问的文件消息。
S4:数据转发。如图3所示,当数据请求者获得数据之后,其角色可以转变为数据转发者,别的数据请求者可以向数据转发者发送数据共享请求。
S41:数据请求者二级供应商C通过安全信道向数据转发者一级供应商发送数据共享请求消息,Request=(proof′,δC(proof′))。其中,proof′是数据共享凭证如合同的证明;δC(proof′)是一级供应商对凭证的签名。
S42:一级供应商收到Request之后先验证签名正确性,再校验凭证有效性,并根据凭证决定数据共享的范围CI(M″)。根据共享范围M″={m″1,m″2,…,m″n}替代M′={m′1,m′2,…,m′n},其中,若i∈CI(M″)则m″i=m′i,表示二级供应商有权限获得该子消息;否则,m″i=H2(m′i||i||CEAS||T),表示二级供应商没有权限获取该子消息;为截取后子消息M″的生成截取签名同时生成对应的地址集合ADDR″={addr″1,addr″2,…,addr″b},其中b是二级供应商有权获取的子消息个数。然后一级供应商回复
S43:二级供应商收到Reply消息后,验证签名公钥有效性以及签名正确性,若通过验证,向区块链提交
S44:区块链节点用PB验证签名即验证B是否同意共享请求;再验证δC(timestamp)来对C进行身份认证。若都通过验证,将数据共享记录消息Record共识上链,并返回给C对应消息M的解密密钥份额zi
S45:二级供应商C用ADDR″去IPFS对应地址下载密文,并用区块链返回的密钥份额合成解密密钥z,解密密文获得消息明文,根据截取子集CI(M″)中子消息的顺序恢复出可以访问的文件消息。
S5:仲裁。当数据共享出现纠纷或者问题时,数据请求者或者数据拥有者区块链监管节点发起仲裁请求,可通过区块链记录追溯数据共享,查找问题方。
S51:数据请求者二级供应商C若是对获得的工艺文件有疑问,可能是不符合生产实际、不符合通用性要求以及其他可能造成经济损失的疑点。二级供应商C可以向区块链提交追溯请求,包含问题证明比如质检报告、测试报告、国标文件对比等,
Trace=(M,T,ProblemProof,timestamp,δC(ProblemProof||timestamp))。
S52:区块链节点验证签名即验证来自于C以及验证问题凭证,且当超过2/3的节点同意问题追溯时,根据T找到对应数据共享操作记录,根据记录追溯,查找问题方。
一种基于SM9和区块链的供应链数据共享系统,如图4所示,该系统包括:程序加载模块、初始化模块、数据分享模块、数据预处理模块、数据共享模块、仲裁模块;
所述程序加载模块用于对系统相关的初始程序进行配置加载;
所述初始化模块用于初始化系统,初始化系统包括初始化系统密钥、区块链节点密钥、选定可验证秘密共享多项式、选定共识算法以及部署智能合约;
所述数据分享模块用于各个用户参与节点向系统或数据库申请并获取所需数据,并将获取数据的用户参与节点作为数据拥有者;
所述数据预处理模块用于对数据拥者的数据进行预处理,该预处理包括数据拥有者对拥有的数据进行划分,采用基于SM9的无证书可截取签名机制对划分的数据消息进行签名,采用密钥对签名后的子消息进行加密,并将加密后的子消息存储到分布式数据库中,并获取相应的存储地址;
所述数据共享模块用于数据请求者向数据拥有者之间的数据共享,利用区块链对数据请求日志进行存储;在数据共享过程中,数据拥有者需要对数据请求者进行权限验证,若验证成功,数据拥有着通过数据共享模块将数据请求者所请求的数据发送给数据请求者;
所述仲裁模块用于对有问题数据对应的数据拥有者进行检测。
本发明系统的具体实施方式与方法的具体实施方式相同。
以上所举实施例,对本发明的目的、技术方案和优点进行了进一步的详细说明,所应理解的是,以上所举实施例仅为本发明的优选实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内对本发明所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (5)

1.一种基于区块链和权限管理的供应链数据共享方法,其特征在于,该方法包括:
S1:系统初始化,并生成系统主公私钥;
系统初始化包括:向系统输入安全参数λ,生成系统主私钥ks和系统公开参数pp={BP,P1,P2,Ppub,H1,H2,H3,hid};对区块链参数进行初始化以及部署智能合约;其中BP=(G1,G2,GT,e,N)表示双线性群,e表示双线性运算e:G1×G2→GT,N为一个大素数,G1、G2和GT均表示循环群,P1表示群G1的生成元,P2表示群G2的生成元,Ppub=[ks]P2表示系统主公钥,H1、H2、H3分别表示三个密码杂凑函数H1:H2:{0,1}*→{0,1}k,H3:hid表示签名私钥生成函数识别符,/>表示与N互素且小于N的正整数集合,k为正整数表示密码杂凑函数H3的哈希值长度;
数据拥有者获取签名密钥的过程包括:
步骤1:用户A选择随机数ka∈[1,N-1]作为用户秘密值证明,计算PA=[ka]P2,将PA发给区块链主节点;区块链主节点校验用户A身份,并将用户标识符IDA和PA共识记录;其中,PA表示用户秘密值证明;
步骤2:区块链通过智能合约向密钥生成中心KGC发送有新用户申请密钥消息,KGC根据用户标识符IDA和用户秘密值证明PA,为用户A生成部分私钥DA=[H1(IDA||hid,N)+ks]-1P1并秘密发给A;其中ks表示KGC的私钥,亦即系统主私钥;
步骤3:用户A采用部分私钥DA和用户秘密值证明PA生成完整私钥dsA=[ka]DA
S2:数据拥有者设置截取规则;根据截取规则对拥有的消息进行划分,得到子消息;获取签名密钥,根据签名密钥采用可截取签名算法对子消息签名;数据拥有者向区块链申请密钥,采用申请的密钥对签名的子消息进行加密;将加密后的子消息分布式存储在区块链上,并获取对应的存储地址;
数据拥有者向区块链申请密钥的过程包括:数据拥有者向区块链节点发送密钥请求,区块链节点根据密钥请求采用可验证密钥共享策略生成数据拥有者的对称密钥;采用可验证密钥共享策略生成对称密钥的过程包括:
步骤1:区块链中节点i选择一个随机数ci,并计算将该计算结果发送给其他节点,每个节点接收到n-1个Ci,根据Ci计算中间参数/>并将Q上传到系统公开;
步骤2:节点随机选择两个中的t-1次多项式fi(x)和fi′(x);
步骤3:节点根据多项式fi(x)和fi′(x)中的系数计算并广播计算结果Bik
步骤4:数据拥有者A向区块链发起密钥请求,并提交参数IDA||T;
步骤5:节点根据IDA||T和多项式fi(x)和fi′(x)计算数据拥有者A的密钥请求的两个函数值siA和siA,将函数值siA和siA发给数据拥有者A;
步骤6:数据拥有者A根据函数值siA和siA,验证是否成立,若成立,则A接受来自于区块链节点i的密钥份额;反之,A要求节点i重新生成并发送密钥份额;
步骤7:数据拥有者A收到t份正确验证的密钥份额siA后恢复出用于加密消息的对称密钥s;
其中,n表示区块链节点数量,R表示群G的生成元,Ci、Q、和Bik都是群G中的元素,siA表示密钥份额,siA表示用于校验密钥份额的第二秘密值,aik和bik分别表示多项式fi(x)和fi′(x)的系数,i表示节点编号且i∈[1,2,…,n],k表示多项式系数下标且k∈[0,1,2,…,t-1],/>表示与p互素且小于p的正整数集合;siA、R、Q、Bik都是校验密钥份额所需的中间参数;
截取规则包括:对划分后的子消息进行标记下标,得到标签集{1,2,…,n};根据子消息之间的关联性对标签集中的标签进行关联;关联性包括子消息的上下文关联含义、内容顺序以及消息类型;采用截取规则对信息进行恢复时根据标签的关联性进行子消息恢复,得到恢复后的消息;
S3:数据请求者向数据拥有者发送数据共享请求、数据共享凭证以及访问权限;
S4:系统和数据拥有者分别对数据请求者的访问权限进行检测,若检测失败,则数据共享失败,否则根据数据共享凭证和截取规则确定数据共享内容,并将数据共享内容发送给数据请求者,生成数据共享日志;数据共享内容包括:请求消息的可截取签名、截取规则以及数据请求者权限所对应的子消息地址集合;
S5:数据请求者校验可截取签名有效性,若验证失败,则数据共享失败,若验证成功,则向区块链提交数据共享日志,得到用于解密的密钥;
S6:数据请求者根据子消息地址集合获取对应的子消息密文,并采用解密密钥对子消息密文进行解密,采用截取规则对解密后的子消息进行恢复,得到共享消息;
S7:数据请求者对共享的消息进行截取转发。
2.根据权利要求1所述的一种基于区块链和权限管理的供应链数据共享方法,其特征在于,系统和数据拥有者分别对数据请求者的访问权限进行检测包括:系统对数据请求者进行身份认证,若数据请求者未在系统中进行身份认证,若身份认证失败,则该数据请求者请求失败,若身份认证成功,则系统为数据请求者分配通信通道,数据请求根据分配后的通信信道将数据共享凭证发送给数据拥有者;数据拥有者根据数据共享凭证,确认和数据请求者之间是否存在合作关系,若存在,则查询对应合同获取合作内容;数据拥有者根据合作内容确定请求者对数据的访问权限,根据权限范围和截取规则对数据进行截取,截取出数据请求者能访问的内容,便于进行后续数据共享流程;否则请求失败。
3.根据权利要求1所述的一种基于区块链和权限管理的供应链数据共享方法,其特征在于,可截取签名包括:其中,h表示一个哈希值,S为循环群G1中的元素表示签名的一部分,CEAS表示截取规则,T为一个随机数表示CEAS标记,CI(M)表示截取子集,/>表示下标不在截取子集中的子消息的哈希值;数据请求者校验可截取签名有效性的过程包括:
步骤1:对可截取签名的h和S进行验证,即判断h∈[1,N-1]、S∈G1是否成立,若成立,则执行步骤2,否则可截取签名无效;其中,N表示一个大素数,G1表示一个循环群;
步骤2:根据循环群的生成元计算g=e(P1,PA);其中,g表示循环群GT的一个元素,e表示双线性运算,P1表示G1的生成元,PA表示用户秘密值证明;
步骤3:根据g和哈希值h计算t=gh;其中,t表示中间参数;
步骤4:根据系统主公钥、签名私钥生成函数识别符、用户的身份信息意以及循环群G2的生成元计算P=[H1(IDA||hid,N)]P1+Ppub;其中,H1表示密码杂凑函数,IDA表示数据拥有者的身份信息,hid表示签名私钥生成函数识别符,P2表示G2的生成元,Ppub表示系统主公钥,P表示中间参数;
步骤5:根据P和S计算u=(S,P),其中,u表示中间参数;
步骤6:根据u和t计算w=u·t,其中w表示中间参数;
步骤7:根据w计算其中,/>表示n个子消息的哈希值连接;
步骤8:将计算出的h′与可截取签名中的哈希值h进行对比,若相等,则可截取签名有效,否则可截取签名无效。
4.根据权利要求1所述的一种基于区块链和权限管理的供应链数据共享方法,其特征在于,数据请求者对共享的消息进行转发的过程与数据拥有者的数据共享方法相同。
5.一种基于SM9和区块链的供应链数据共享系统,该系统用于执行权利要求1所述的基于区块链和权限管理的供应链数据共享方法,其特征在于,该系统包括:程序加载模块、初始化模块、数据分享模块、数据预处理模块、数据共享模块、仲裁模块;
所述程序加载模块用于对系统相关的初始程序进行配置加载;
所述初始化模块用于初始化系统,初始化系统包括初始化系统密钥、区块链节点密钥、选定可验证秘密共享多项式、选定共识算法以及部署智能合约;
所述数据分享模块用于各个用户参与节点向系统或数据库申请并获取所需数据,并将获取数据的用户参与节点作为数据拥有者;
所述数据预处理模块用于对数据拥者的数据进行预处理,该预处理包括数据拥有者对拥有的数据进行划分,采用基于SM9的无证书可截取签名机制对划分的数据消息进行签名,采用密钥对签名后的子消息进行加密,并将加密后的子消息存储到分布式数据库中,并获取相应的存储地址;
所述数据共享模块用于数据请求者向数据拥有者之间的数据共享,利用区块链对数据请求日志进行存储;在数据共享过程中,数据拥有者需要对数据请求者进行权限验证,若验证成功,数据拥有着通过数据共享模块将数据请求者所请求的数据发送给数据请求者;
所述仲裁模块用于对有问题数据对应的数据拥有者进行检测。
CN202210814802.0A 2022-07-12 2022-07-12 一种基于区块链和权限管理的供应链数据共享方法及系统 Active CN115208656B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210814802.0A CN115208656B (zh) 2022-07-12 2022-07-12 一种基于区块链和权限管理的供应链数据共享方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210814802.0A CN115208656B (zh) 2022-07-12 2022-07-12 一种基于区块链和权限管理的供应链数据共享方法及系统

Publications (2)

Publication Number Publication Date
CN115208656A CN115208656A (zh) 2022-10-18
CN115208656B true CN115208656B (zh) 2023-07-25

Family

ID=83580868

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210814802.0A Active CN115208656B (zh) 2022-07-12 2022-07-12 一种基于区块链和权限管理的供应链数据共享方法及系统

Country Status (1)

Country Link
CN (1) CN115208656B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117749527B (zh) * 2024-02-08 2024-05-07 云南蓝队云计算有限公司 基于大数据分析和云计算的安全防护方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112019591A (zh) * 2020-07-09 2020-12-01 南京邮电大学 一种基于区块链的云数据共享方法
CN112511599A (zh) * 2020-11-10 2021-03-16 南京莱斯信息技术股份有限公司 一种基于区块链的人防数据共享系统及方法
EP3872670A1 (en) * 2020-02-26 2021-09-01 Baidu Online Network Technology (Beijing) Co., Ltd. Method and apparatus for sharing data based on blockchain network, device, and medium
CN113364576A (zh) * 2021-05-28 2021-09-07 湘潭大学 一种基于区块链的数据加密存证与共享方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110059495B (zh) * 2018-12-14 2020-11-17 创新先进技术有限公司 数据共享方法、装置及系统、电子设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3872670A1 (en) * 2020-02-26 2021-09-01 Baidu Online Network Technology (Beijing) Co., Ltd. Method and apparatus for sharing data based on blockchain network, device, and medium
CN112019591A (zh) * 2020-07-09 2020-12-01 南京邮电大学 一种基于区块链的云数据共享方法
CN112511599A (zh) * 2020-11-10 2021-03-16 南京莱斯信息技术股份有限公司 一种基于区块链的人防数据共享系统及方法
CN113364576A (zh) * 2021-05-28 2021-09-07 湘潭大学 一种基于区块链的数据加密存证与共享方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Equipment data sharing method based on block chain;Shaofeng Lin;《IEEEXplore》;全文 *
基于区块链与代理重加密的数据共享方案;李莉;曾庆贤;文义红;王士成;;信息网络安全(第08期);全文 *
基于区块链的数据管理方案;周艺华;李洪明;;信息安全研究(第01期);全文 *

Also Published As

Publication number Publication date
CN115208656A (zh) 2022-10-18

Similar Documents

Publication Publication Date Title
US9800416B2 (en) Distributed validation of digitally signed electronic documents
CN113014392B (zh) 基于区块链的数字证书管理方法及系统、设备、存储介质
CN111372243A (zh) 基于雾联盟链的安全分布式聚合与访问系统及方法
CN106790261B (zh) 分布式文件系统及用于其中节点间认证通信的方法
CN108769020B (zh) 一种隐私保护的身份属性证明系统及方法
CN110365469B (zh) 一种支持数据隐私保护的云存储中数据完整性验证方法
US11764977B2 (en) Private key security in the cloud
CN113761582A (zh) 基于群签名的可监管区块链交易隐私保护方法及系统
Win et al. Privacy enabled digital rights management without trusted third party assumption
TW202318833A (zh) 臨界簽章方案
CN115208656B (zh) 一种基于区块链和权限管理的供应链数据共享方法及系统
CN115834067A (zh) 一种边云协同场景中密文数据共享方法
CN110519040B (zh) 基于身份的抗量子计算数字签名方法和系统
Zhang et al. Data security in cloud storage
CN111314059B (zh) 账户权限代理的处理方法、装置、设备及可读存储介质
CN114362958B (zh) 一种基于区块链的智能家居数据安全存储审计方法及系统
CN112950356B (zh) 基于数字身份的个人贷款处理方法及系统、设备、介质
Hakeem et al. Authentication and encryption protocol with revocation and reputation management for enhancing 5G-V2X security
CN111585756B (zh) 一种适用于多副本-多云情形下的无证书云审计方法
CN114866244A (zh) 基于密文分组链接加密的可控匿名认证方法、系统及装置
GB2609906A (en) Generating digital signature shares
Priyadarshini et al. Digital signature and its pivotal role in affording security services
CN115604030B (zh) 数据共享方法、装置、电子设备和存储介质
CN113055392B (zh) 一种基于区块链的统一身份认证方法
US11770263B1 (en) Systems and methods for enforcing cryptographically secure actions in public, non-permissioned blockchains using bifurcated self-executing programs comprising shared digital signature requirements

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
TA01 Transfer of patent application right

Effective date of registration: 20230629

Address after: Room 801, 85 Kefeng Road, Huangpu District, Guangzhou City, Guangdong Province

Applicant after: Yami Technology (Guangzhou) Co.,Ltd.

Address before: 400065 Chongwen Road, Nanshan Street, Nanan District, Chongqing

Applicant before: CHONGQING University OF POSTS AND TELECOMMUNICATIONS

Effective date of registration: 20230629

Address after: Room 1701, Building 1, No. 19 Qinling Road, Laoshan District, Qingdao, Shandong Province, 266000

Applicant after: Langchao Gongchuang (Shandong) Supply Chain Technology Co.,Ltd.

Address before: Room 801, 85 Kefeng Road, Huangpu District, Guangzhou City, Guangdong Province

Applicant before: Yami Technology (Guangzhou) Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant