1.一种供应链密态数据高效溯源方法,其特征在于,所述方法包括:
采用区块链技术,将各个供应商节点建立为供应链系统;密钥生成机构对所述供应链系统初始化后,生成并分发密钥给各个供应商节点;所述各个供应商节点至少包括数据请求者节点和数据持有者节点;
数据持有者节点对供应商数据进行初始加密,将初始加密后的数据密文存储至IPFS文件系统中,并将IPFS文件系统地址和数据索引进行区块链上链;在本地生成代理重加密密钥和访问列表;所述访问列表包括数据索引、密文地址以及拥有访问权限的数据请求者节点集合;
数据请求者节点向代理服务器发起溯源请求;代理服务器根据公钥查找访问列表,验证所述数据请求者节点是否具有访问权限,若通过身份验证,则根据数据索引查询得到对应数据的IPFS文件系统密文地址,再根据密文地址去获取对应数据密文,并将对应数据密文采用代理重加密密钥进行代理重加密,完成后将代理重加密密文转发给数据请求者节点,并将此次数据流转的全流程历史记录进行上链。
2.根据权利要求1所述的一种供应链密态数据高效溯源方法,其特征在于,所述密钥生成机构对所述供应链系统初始化包括密钥生成中心生成安全参数λ后,得到系统公开参数pp,表示为pp={N,G1,G2,P,H1,H2,hid};其中,密钥生成中心随机生成元素G1、G2,G1、G2皆为素数阶N的乘法循环群,G1=
,P表示乘法循环群G1的生成元,双线性对e:G1×G1→G2,选择哈希函数组H1、H2,其中,H1表示第一哈希函数,H2表示第二哈希函数,系统主公钥为Ppub_e=keP ,系统主私钥ke∈(0,N‑1];hid为一个字节表示的私钥生成函数识别符,并由密钥生成中心进行分发。
3.根据权利要求1所述的一种供应链密态数据高效溯源方法,其特征在于,所述生成并分发密钥给各个供应商节点包括密钥生成机构令某供应商节点的标识表示为IDA,密钥生成机构在有限域FN上计算t=H1(IDA||hid,N),若t=0则重新产生加密主私钥;若t≠0则继ke续计算得出供应商节点的私钥deA=t ;密钥生成机构分发密钥对(IDA,deA)给相应的供应商节点;其中,H1表示第一哈希函数,hid为一个字节表示的私钥生成函数识别符;N表示素数阶的大小;ke∈(0,N‑1]为系统主私钥。
4.根据权利要求1所述的一种供应链密态数据高效溯源方法,其特征在于,所述数据持有者节点对供应商数据进行初始加密包括:根据素数阶N的大小,生成随机数r∈[1,N‑1];
根据系统主公钥Ppub‑e、数据持有者节点的公钥IDB、私钥生成函数识别符hid和素数阶N的大小,计算第一中间参数g=e(Ppub‑e,H1(IDB||hid,N));
r
根据所述第一中间参数g和所述随机数r,计算第二中间参数ω=g=e(Ppub‑e,H1(IDB||r ke·rhid,N)) =e(P,H1(IDB||hid,N)) ;
根据所述随机数r和乘法循环群G1的生成元P,计算第一初始密文C1=rP;
根据所述第二中间参数ω和供应链数据的比特串M,计算第二初始密文C2=M·ω;
根据所述第二中间参数的哈希值,计算第三初始密文C3=MAC(ω);
根据第一初始密文C1、第二初始密文C2和第三初始密文C3,输出初始加密后的数据密文C=C1||C2||C3;
其中,e(·)表示双线性映射;H1表示第一哈希函数;ke∈(0,N‑1]为系统主私钥;MAC表示消息认证码的哈希函数。
5.根据权利要求1所述的一种供应链密态数据高效溯源方法,其特征在于,所述在本地生成代理重加密密钥包括:采用数据请求者节点的标识IDC对明文数据X加密,分别得到第一中间密文R1、第二中间密文R2和第三中间密文R3;计算Encrypt(IDC,X)=(R1,R2,R3);
ke ‑1
根据用IDC进行加密的明文数据X,计算得到第四中间密文R4=H2(X)·[H1(IDB||hid,N) ] ;
根据第一中间密文R1、第二中间密文R2、第三中间密文R3以及第四中间密文,输出本地生成代理重加密密钥rkB→C=(R1,R2,R3,R4);
其中,H2表示第二哈希函数,H2(Z,N)表示输入字符串Z∈G2输出一个整数h2∈G2,hid为一个字节表示的私钥生成函数识别符;N表示素数阶的大小;ke∈(0,N‑1]为系统主私钥。
6.根据权利要求1所述的一种供应链密态数据高效溯源方法,其特征在于,所述将对应数据密文采用代理重加密密钥进行代理重加密包括:ReEncrypt(IDC,X,C)→CB→C
CB→C=
其中,ReEncrypt(IDC,X,C)表示代理重加密函数,IDC表示数据请求者节点的标识;X表示用IDC进行加密的明文数据,C表示初始加密的数据密文;CB→C表示代理重加密密文;C1表示第一初始密文、C2表示第二初始密文,C3表示第三初始密文;R1表示第一中间密文,R2表示第二中间密文,R3表示第三中间密文;R4表示第四中间密文;e(·)表示双线性映射函数。
7.根据权利要求1所述的一种供应链密态数据高效溯源方法,其特征在于,所述方法还包括对代理重加密密文解密,验证第一初始密文C1是否属于乘法循环群G1,若不属于则解密失败,否则继续解密;
利用第一中间密文R1、第二中间密文R2、第三中间密文R3,解密得到用IDC进行加密的明文数据X;
根据第一初始密文C1、数据持有者节点的私钥deB和乘法循环群G1的生成元P,计算ω'=e(C1,deBP)=e(C1,H1(IDB||hid,N)·ke);
根据第一初始密文C1、第二初始密文C2和用数据请求者节点标识IDC进行加密的明文数据,计算M'=C2'/e(C1,H2(X));
其中,IDC表示数据请求者节点的标识,ω'表示第二中间参数的解密结果;deB表示供应商节点的私钥;C2'=C2·e(C1,R4),R4表示第四中间密文;M'表示比特串的解密结果;H1表示第一哈希函数,hid为一个字节表示的私钥生成函数识别符;N表示素数阶的大小;ke∈(0,N‑1]为系统主私钥;H2表示第二哈希函数。
8.一种供应链密态数据高效溯源系统,其特征在于,所述系统包括密钥生成机构、供应商节点、代理服务器、区块链和IPFS文件系统;所述供应商节点至少包括数据请求者节点和数据持有者节点;
所述密钥生成机构,用于对所述供应链系统初始化后,分发密钥给各个供应商节点;
所述数据请求者节点为要求数据追溯的供应商节点;用于在区块链中查找对应数据的索引,获取其在IPFS文件系统中的密文地址,将该密文地址发送给代理服务器;数据请求者节点收到代理服务器代理重加密后的密文后,进行本地解密;
所述数据持有者节点为提供数据追溯服务的供应商节点;用于在本地生成代理重加密密钥以及访问列表,并将其发送给代理服务器;
所述代理服务器用于存储各个供应商节点发送来的代理重加密密钥和访问列表;在接收到数据追溯请求时,代理服务器对数据请求者的身份进行审核,如果未通过访问列表中的审核,则拒绝数据追溯请求;如果通过,则获取IPFS文件系统中对应的存储位置的文件并进行代理重加密,将代理重加密密文发送给数据请求者节点;
所述区块链用于存储密文数据在IPFS文件系统中的存储位置以及所有数据流转记录;
所述IPFS文件系统用于存储实际业务数据的密文,并向数据持有者节点返回文件地址。