一种基于区块链技术的隐私保护方法转让专利

申请号 : CN201610933515.6

文献号 : CN106534085B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 黄步添陈建海王云霄王从礼张维赛杨正清毛道明石太彬刘振广

申请人 : 杭州云象网络技术有限公司

摘要 :

本发明公开了一种基于区块链技术的隐私保护方法,其中区块链是由大量组织结构类似的区块首尾相连衔接而成,每一个独立区块都可以封装带时间戳的隐私数据,同时能完成分布式组网传播以及分布式节点的共识算法任务,实现了隐私数据高效的范式组织管理。与此同时,本发明在区块链中配合使用Elgamal这一非对称加密算法,由公钥和私钥密码分别对应数据的加密及解密过程,并且私钥的理论数量极大,基本不存在通过遍历全部私钥空间来窃取隐私数据的可能,可以保证隐私数据是密码学安全的;本发明区块链完整的组织结构及运作机制使得其在隐私保护领域有着广阔的应用前景。

权利要求 :

1.一种基于区块链技术的隐私保护方法,包括如下步骤:

(1)对隐私数据进行区块化封装;

(2)为存储原始数据的分布式节点设计共识算法,采用该共识算法对隐私数据所对应的原始数据进行匿名转换;所述共识算法的具体过程如下:

2.1输入原始数据T,设定参数τ和λ;

2.2初始化令参数gcnt=0,使输出的匿名数据T*置为空集;

2.3根据敏感属性类别或区间将原始数据T中的记录进行分组,属于同一类别或区间的记录归为一个堆,进而根据敏感值对每个堆中的记录继续分类,同一敏感值的记录归为一个族群;

2.4当原始数据T中存在不少于λ个非空堆且每个非空堆中存在不少于τ个非空族群时,将原始数据T中最大的λ个堆组成集合S,对于集合S中任一个堆,取其中最大的τ个族群组成子集L;对于子集L中任一个族群c,对应初始化记录子集QI为空集,从族群c中任意移除一条记录r后,更新QI=QI∪r,更新gcnt=gcnt+1;

2.5对于族群c,迭代更新QI直至族群c中只剩下最后一条记录r',将原始数据T中所有符合以下条件的记录子集QI组合成一个新的集合S';

条件:记录子集QI中包含有与记录r'相同敏感属性类别或区间的记录但不包含与记录r'相同敏感值的记录;

2.6对于子集L中第j个族群,若该族群记录子集QIj中的第i条记录ri满足以下条件,则将其置换后的结果 写入至匿名数据T*中;

其中:i∈{1,…,|QIj|},|QIj|为记录子集QIj中的记录条数且gcnt=|QIj|,A1~Ad对应为原始数据T中的第1~d个普通属性,AS为原始数据T中的敏感属性,ri·A1~ri·Ad对应为第1~d个普通属性中记录ri的敏感值, 对应为第1~d个普通属性中记录r'的敏感值,rF(i)为记录子集QIj中的第F(i)条记录,F(i)为置换函数,rF(i)·AS为敏感属性中记录rF(i)的敏感值,r'·AS为敏感属性中记录r'的敏感值,j为自然数且1≤j≤n,n为子集L中的族群数量,d为原始数据T中的普通属性数量;

所述置换函数F(i)的具体表达如下:

若gcnt为偶数,当1≤i≤gcnt/2,则F(i)=gcnt/2+i;当gcnt/2<i≤gcnt,则F(i)=i-gcnt/2;

若gcnt为奇数,当1≤i<(gcnt+1)/2,则F(i)=(gcnt+1)/2+i;当(gcnt+1)/2<i≤gcnt,则F(i)=i-(gcnt+1)/2;当i=(gcnt+1)/2,则F(i)=i;

(3)将众多封装有隐私数据的区块连接成区块链,实现隐私数据的有序范式组织管理;

(4)采用非对称加密算法对所述区块链进行加密保护。

2.根据权利要求1所述的隐私保护方法,其特征在于:所述步骤(1)中对隐私数据进行区块化封装所采用的区块结构由区块头和区块体组成,区块头是独立区块的基本信息栏,其内部封装有区块当前的版本号、上一个区块的地址、时间戳、当前区块的哈希值、随机数以及下一个区块地址;区块体内则封装了隐私数据及其变更记录并以Merkle树为组织形式,隐私数据变更记录通过Hash过程寻找Merkle树的根且所述根被记入区块头中。

3.根据权利要求2所述的隐私保护方法,其特征在于:所述隐私数据变更记录由Merkle树校验归纳,由该树的树支上任意一条变更记录可以寻得该树上其他所有的变更记录。

4.根据权利要求1所述的隐私保护方法,其特征在于:所述步骤(1)中,若同时存在多个需要封装的隐私数据,则比较隐私数据的密级,密级高的隐私数据优先封装以获得当前区块的记账权;若存在多个密级相同的隐私数据,则比较其数据量的大小,数据量大的隐私数据优先封装以获得当前区块的记账权。

5.根据权利要求1所述的隐私保护方法,其特征在于:所述步骤(3)中将每个区块按时间戳的先后顺序连接成区块链,若存在两个及两个以上时间戳相同的区块,则区块链出现相应的分支即支链,选取最长的区块链作为主链,后续独立区块优先连接至主链上。

6.根据权利要求1所述的隐私保护方法,其特征在于:所述步骤(4)中采用Elgamal非对称加密算法对区块链进行加密保护,由公钥和私钥分别对应数据的加密及解密过程;通过调用操作系统底层的随机数生成器生成位数为256位的随机数,进而通过哈希算法SHA256和Base58将该随机数转换成60个字符长度的私钥提供给用户;所述的公钥为通过采用Elgamal非对称加密算法生成55字符长度的随机数,再经过哈希算法SHA256、RIPEMD160以及Base58将该随机数转换得到字符长度为30的隐私数据地址。

说明书 :

一种基于区块链技术的隐私保护方法

技术领域

[0001] 本发明属于互联网隐私保护技术领域,具体涉及一种基于区块链技术的隐私保护方法。

背景技术

[0002] 一种崭新的、称为区块链的数据组织架构及运算方式正随数字加密货币的发明而蓬勃发展。区块链具有分布式、去中心化、数据集体维护共享、可编程、高安全性可靠性的诸多优点,除数字加密货币领域外,区块链技术也特别适合于数据加密存储、金融交易、物联网等领域。甚至,有学者预言区块链技术将是下一代互联网的基石,将引领未来互联网的发展。
[0003] 目前,区块链技术已经引起了以金融和互联网为代表的众多领域、各国政府以及资本市场的高度关注。目前,已逐步出现了将区块链技术应用于金融交易、电子政务等领域的有益探索,但其在隐私保护领域尚未有相关应用。随着网络黑客技术的发展,公众隐私面临极大威胁,区块链技术的出现为强化隐私数据保护带来了福音;如何促进区块链技术与隐私保护需求的相互融合是当下亟需解决的问题。

发明内容

[0004] 鉴于上述,本发明提供了一种基于区块链技术的隐私保护方法,能够在规范隐私数据组织方式的同时大幅提升隐私数据的安全性。
[0005] 一种基于区块链技术的隐私保护方法,包括如下步骤:
[0006] (1)对隐私数据进行区块化封装;
[0007] (2)为存储原始数据的分布式节点设计共识算法,采用该共识算法对隐私数据所对应的原始数据进行匿名转换;
[0008] (3)将众多封装有隐私数据的区块连接成区块链,实现隐私数据的有序范式组织管理;
[0009] (4)采用非对称加密算法对所述区块链进行加密保护。
[0010] 所述步骤(1)中对隐私数据进行区块化封装所采用的区块结构由区块头和区块体组成,区块头是独立区块的基本信息栏,其内部封装有区块当前的版本号、上一个区块的地址、时间戳、当前区块的哈希值、随机数以及下一个区块地址;区块体内则封装了隐私数据及其变更记录并以Merkle树为组织形式,隐私数据变更记录通过Hash过程寻找Merkle树的根且所述根被记入区块头中。哈希函数值实际上是隐私数据或隐私数据变更记录的密值,区块不直接保存原始数据。
[0011] 所述隐私数据变更记录由Merkle树校验归纳,由该树支上任意一条变更记录可以寻得该树上其他所有的变更记录。
[0012] 所述步骤(1)中,若同时存在多个需要封装的隐私数据,则比较隐私数据的密级,密级高的隐私数据优先封装以获得当前区块的记账权;若存在多个密级相同的隐私数据,则比较其数据量的大小,数据量大的隐私数据优先封装以获得当前区块的记账权。
[0013] 所述步骤(2)中共识算法的具体过程如下:
[0014] 2.1输入原始数据T,设定参数τ和λ;
[0015] 2.2初始化令参数gcnt=0,使输出的匿名数据T*置为空集;
[0016] 2.3根据敏感属性类别或区间将原始数据T中的记录进行分组,属于同一类别或区间的记录归为一个堆,进而根据敏感值对每个堆中的记录继续分类,同一敏感值的记录归为一个族群;
[0017] 2.4当原始数据T中存在不少于λ个非空堆且每个非空堆中存在不少于τ个非空族群时,将原始数据T中最大的λ个堆组成集合S,对于集合S中任一个堆,取其中最大的τ个族群组成子集L;对于子集L中任一个族群c,对应初始化记录子集QI为空集,从族群c中任意移除一条记录r后,更新QI=QI∪r,更新gcnt=gcnt+1;
[0018] 2.5对于族群c,迭代更新QI直至族群c中只剩下最后一条记录r',将原始数据T中所有符合以下条件的记录子集QI组合成一个新的集合S';
[0019] 条件:记录子集QI中包含有与记录r'相同敏感属性类别或区间的记录但不包含与记录r'相同敏感值的记录;
[0020] 2.6对于子集L中第j个族群,若该族群记录子集QIj中的第i条记录ri满足以下条件,则将其置换后的结果 写入至匿名数据T*中;
[0021] r'·A1=ri·A1,…,r'·Ad=ri·Ad,r'·AS=rF(i)·AS
[0022] 其中:i∈{1,…,|QIj|},|QIj|为记录子集QIj中的记录条数且gcnt=|QIj|,A1~Ad对应为原始数据T中的第1~d个普通属性,AS为原始数据T中的敏感属性,ri·A1~ri·Ad对应为第1~d个普通属性中记录ri的敏感值,r'·A1~r'·Ad对应为第1~d个普通属性中记录r'的敏感值,rF(i)为记录子集QIj中的第F(i)条记录,F(i)为置换函数,rF(i)·AS为敏感属性中记录rF(i)的敏感值,r'·AS为敏感属性中记录r'的敏感值,j为自然数且1≤j≤n,n为子集L中的族群数量,d为原始数据T中的普通属性数量。
[0023] 所述置换函数F(i)的具体表达如下:
[0024] 若gcnt为偶数,当1≤i≤gcnt/2,则F(i)=gcnt/2+i;当gcnt/2<i≤gcnt,则F(i)=i-gcnt/2;
[0025] 若gcnt为奇数,当1≤i<(gcnt+1)/2,则F(i)=(gcnt+1)/2+i;当(gcnt+1)/2<i≤gcnt,则F(i)=i-(gcnt+1)/2;当i=(gcnt+1)/2,则F(i)=i。
[0026] 所述步骤(3)中将每个区块按时间戳的先后顺序连接成区块链,若存在两个及两个以上时间戳相同的区块,则区块链出现相应的分支即支链,选取最长的区块链作为主链,后续独立区块优先连接至主链上;这样可以保证始终有一条最长的主链。
[0027] 所述步骤(4)中采用Elgamal非对称加密算法对区块链进行加密保护,由公钥和私钥分别对应数据的加密及解密过程;通过调用操作系统底层的随机数生成器生成位数为256位的随机数,进而通过哈希算法SHA256和Base58将该随机数转换成60个字符长度的私钥提供给用户;所述的公钥为通过采用Elgamal非对称加密算法生成55字符长度的随机数,再经过哈希算法SHA256、RIPEMD160以及Base58将该随机数转换得到字符长度为30的隐私数据地址。
[0028] 本发明能够实现区块链技术及隐私保护应用需求的有机结合,便于隐私数据的有序及范式管理,同时能够极大地避免隐私数据的非法窃取提升隐私保护的安全性。

附图说明

[0029] 图1为本发明方法中的区块结构示意图。
[0030] 图2为本发明方法中的区块链示意图。
[0031] 图3为本发明方法中区块链加密机制的示意图。
[0032] 图4为本发明方法中加密及解密的流程示意图。

具体实施方式

[0033] 为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的技术方案进行详细说明。
[0034] 本发明基于区块链技术的隐私保护方法,具体实施过程如下:
[0035] 首先将隐私数据封装到结构一致的独立区块中,如图1所示,区块头和区块体两部分组成一个独立的区块。其中,区块头是独立区块的基本信息栏,内部封装了区块版本号、上一个区块的地址、时间戳、当前区块哈希值、随机数、下一区块地址等基本信息;区块体则封装了隐私数据及其变更记录,以Merkle树为组织形式,数据变更记录通过哈希过程寻找Merkle树的根并写入区块头。哈希函数值实际上是隐私数据或隐私数据变更记录的密值,区块不直接保存原始数据。隐私数据变更记录交由Merkle树来校验归纳,由该树支上任意一条转让记录可以寻得该树上其他所有的变更记录。
[0036] 在有多条隐私数据需要封装时,相应的封装原则为:当前若同时存在多个需要封装的隐私数据,则比较隐私数据的密级,密级最高的隐私数据优先封装,即优先获得当前区块的记账权;若存在多个密级相同的隐私数据,则比较其数据量的大小,数据量大的优先获得当前区块的记账权。
[0037] 众多的数据存储节点需有一套共识算法以保证各节点的数据交互,为此按以下步骤制定共识算法:
[0038] a.输入原始数据T,设定参数τ和λ;假设数据T包含d个普通属性A1,…,Ad和一个敏感属性AS。
[0039] b.初始化令参数gcnt=0,使输出的匿名数据T*置为空集;
[0040] c.根据敏感属性类别或区间将原始数据T中的记录进行分组,属于同一类别或区间的记录归为一个堆,进而根据敏感值对每个堆中的记录继续分类,同一敏感值的记录归为一个族群;例如,“病(或者疾病)”为敏感属性类别或区间,“糖尿病”、“高血压”、“哮喘”等具体病症为“病(或者疾病)”这一敏感属性类别的敏感值。本发明隐私保护方法具体要保护哪些隐私信息(敏感属性类别)以及对应敏感属性类别下的哪些敏感值(如“流感”可能没必要作为敏感值)可事先根据需求来定义。
[0041] d.当原始数据T中存在不少于λ个非空堆且每个非空堆中存在不少于τ个非空族群时,将原始数据T中最大的λ个堆组成集合S,对于集合S中任一个堆,取其中最大的τ个族群组成子集L;对于子集L中任一个族群c,对应初始化记录子集QI为空集,从族群c中任意移除一条记录r后,更新QI=QI∪r,更新gcnt=gcnt+1;
[0042] e.对于族群c,迭代更新QI直至族群c中只剩下最后一条记录r',将原始数据T中所有符合以下条件的记录子集QI组合成一个新的集合S';
[0043] 条件:记录子集QI中包含有与记录r'相同敏感属性类别或区间的记录但不包含与记录r'相同敏感值的记录;
[0044] f.对于子集L中第j个族群,若该族群记录子集QIj中的第i条记录ri满足以下条件,则将其置换后的结果 写入至匿名数据T*中;
[0045] r'·A1=ri·A1,…,r'·Ad=ri·Ad,r'·AS=rF(i)·AS
[0046] 其中:i∈{1,…,|QIj|},|QIj|为记录子集QIj中的记录条数且gcnt=|QIj|,A1~Ad对应为原始数据T中的第1~d个普通属性,AS为原始数据T中的敏感属性,ri·A1~ri·Ad对应为第1~d个普通属性中记录ri的敏感值,r'·A1~r'·Ad对应为第1~d个普通属性中记录r'的敏感值,rF(i)为记录子集QIj中的第F(i)条记录,F(i)为置换函数,rF(i)·AS为敏感属性中记录rF(i)的敏感值,r'·AS为敏感属性中记录r'的敏感值,j为自然数且1≤j≤n,n为子集L中的族群数量,d为原始数据T中的普通属性数量;置换函数F(i)的具体表达如下:
[0047] 若gcnt为偶数,当1≤i≤gcnt/2,则F(i)=gcnt/2+i;当gcnt/2<i≤gcnt,则F(i)=i-gcnt/2;
[0048] 若gcnt为奇数,当1≤i<(gcnt+1)/2,则F(i)=(gcnt+1)/2+i;当(gcnt+1)/2<i≤gcnt,则F(i)=i-(gcnt+1)/2;当i=(gcnt+1)/2,则F(i)=i。
[0049] 根据上述共识算法,我们可以实现由表1至表2的数据转换。
[0050] 表1:原始数据T
[0051]年龄 性别 疾病
21 男 流感
23 男 哮喘
53 男 糖尿病
64 女 高血压
[0052] 表2:匿名数据T*
[0053]年龄 性别 疾病
[20,25] 男 流感
[20,25] 男 哮喘
[50,60] * 糖尿病
[60,70] * 高血压
[0054] 当隐私数据区块化封装完毕且各节点存在共识算法后需要将众多独立区块连接成链。区块链技术要求获取当前区块写入权限的节点必须在区块头中加盖时间戳,明确区块的写入时间,这自然地为众多分布式独立区块链接成区块链提供了方便。如图2所示,本实施方式中每个节点按照各区块链时间戳的时间先后链接成链,若存在两个及两个以上时间相同的区块,则区块链出现相应的分支,即支链。选取最长的区块链条作为主链,后续独立区块优先链接到主链,这样可以保证始终有一条最长的主链。
[0055] 最后,在区块链中配合使用Elgamal这一非对称加密算法,由公钥和私钥密码分别对应数据的加密及解密过程。相应的加密机制如图3所示,通过调用操作系统底层的随机数生成器生成位数为256位的私钥,私钥的理论数量可达极大的2256,基本不存在通过遍历全部私钥空间来窃取隐私数据的可能,可以保证隐私数据是密码学安全的。为便于识别,通过哈希算法SHA256和Base58转换成60个字符长度的私钥提供给用户;公钥是通过采用Elgamal非对称算法生成55字符长度随机数,再经过哈希算法SHA256、RIPEMD160以及Base58转换得到字符长度为30的隐私数据的地址。
[0056] 相应的隐私所有人加密与被授权人解密流程如图4所示,隐私数据的所有人通过身份验证下载获取公钥,进而加密隐私数据,加密成功后进行封装并发布相应密文;被授权人同样通过身份验证后选定隐私数据密文,输入相应的私钥进行解密,解密成功后获取得到隐私数据。
[0057] 上述对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。