[go: up one dir, main page]

CN111475828B - 区块链账本数据的加密方法及装置、解密方法及装置 - Google Patents

区块链账本数据的加密方法及装置、解密方法及装置 Download PDF

Info

Publication number
CN111475828B
CN111475828B CN202010405906.7A CN202010405906A CN111475828B CN 111475828 B CN111475828 B CN 111475828B CN 202010405906 A CN202010405906 A CN 202010405906A CN 111475828 B CN111475828 B CN 111475828B
Authority
CN
China
Prior art keywords
field
data
sensitive
encrypted
value
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
CN202010405906.7A
Other languages
English (en)
Other versions
CN111475828A (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.)
Hangzhou Fengshun Science And Technology Information Service Co ltd
Original Assignee
Hangzhou Fengshun Science And Technology Information Service 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 Hangzhou Fengshun Science And Technology Information Service Co ltd filed Critical Hangzhou Fengshun Science And Technology Information Service Co ltd
Priority to CN202010405906.7A priority Critical patent/CN111475828B/zh
Publication of CN111475828A publication Critical patent/CN111475828A/zh
Application granted granted Critical
Publication of CN111475828B publication Critical patent/CN111475828B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Power Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种区块链账本数据的加密方法及装置、解密方法及装置,加密方法包括:识别账本数据中是否含有敏感字段;根据敏感字段的明文字段值生成密文Hash摘要;通过智能合约将Hash摘要与指定隐私区域的唯一标识打包生成加密编码串;以加密编码串为键、明文字段值为值生成加密键值对保存在指定隐私区域;以加密编码串替代明文字段值为敏感字段加密;解密方法包括:识别账本数据是否含有敏感字段;识别敏感字段的字段值是否为加密编码串;通过智能合约在指定隐私区域中检索明文字段值;以明文字段值替换加密编码串;并公开了相应的装置。本发明摆脱了对密钥加密的依赖,使用户体验更顺畅;杜绝了敏感数据被篡改可能性,提升了区块链敏感数据安全性。

Description

区块链账本数据的加密方法及装置、解密方法及装置
技术领域
本发明涉及区块链技术领域,尤其涉及一种区块链账本数据的加密方法及装置、解密方法及装置。
背景技术
目前,联盟区块链的各联盟方,能实现在各自节点上公平记账、数据共享,区块链的数据安全机制能保障联盟成员以外的成员无法获取联盟链上的数据。但是实际应用当中,联盟区块链的数据往往会存在一些敏感字段,这些敏感字段需要对某一或多个联盟方成员保密,敏感字段之外的其他数据则可以共享。比如某一采购服务,采购价格、采购人等敏感信息,对于客户方、服务承接的平台可以开放,但对于由平台选定的实际服务提供方则可能需要保密;除敏感信息外,采购类型、采购要求等则需要向实际服务提供方开放。
通过智能合约对区块链账本中敏感数据加密,目前行业通用一般采用如下两种处理方法:
一种是把敏感数据从原始区块链账本中剔除,合并所有敏感字段形成一个完全加密的账本。拆分账本数据,对敏感数据统一加密存储的方法,使得敏感数据脱离原始账本,割裂了原始账本数据的完整性,从而导致账本数据无法明确反映应用场景诉求。在数据权限方要使用账本数据时,需要修复原始场景账本完整性,这种修复工作增加系统设计阶段的复杂性,同时增加系统运行阶段的工作量。
另一种是使用对称或非对账公私钥,利用公钥对敏感数据加密,然后统一加密管理私钥。使用“对称或非对称密钥”加密敏感数据的方法,能保障原始账本的数据关系完整性,但密钥的管理极为重要。如果密钥对不能动态更新而长期不变,将面临极大的私钥泄露风险;如果支持动态的密钥更新,则需要解决密钥安全存储(特别是私钥)、密钥更新策略、加解密精准匹配等问题。私钥的存储安全可以借助区块链隔离存储技术,比如通道隔离、隐私区域等,但是不但增多的密钥管理工作对智能合约而言是一项繁重的工作。
发明内容
本发明提出一种区块链账本数据的加密方法及装置、解密方法及装置以解决上述技术问题。
为了达到上述目的,本发明所采用的技术方案为:
根据本发明实施例的第一方面,提供了一种区块链账本数据的加密方法,用于数据提交方待提交区块链的账本数据,包括如下步骤:
步骤101,识别账本数据中是否含有敏感字段;
步骤102,若账本数据中含有敏感字段,根据敏感字段的明文字段值生成密文的Hash摘要;
步骤103,通过智能合约获取指定隐私区域的唯一标识,将Hash摘要与指定隐私区域的唯一标识打包,生成加密编码串;
步骤104,以加密编码串为键、明文字段值为值生成加密键值对,保存在指定隐私区域;
步骤105,以加密编码串替代明文字段值为敏感字段加密,提交账本数据上链。
作为优选,所述步骤101中,所述识别账本数据中是否含有敏感字段的方法是待识别字段的字段名前后是否含有标识符,所述标识符用于标识该字段为敏感字段。
作为优选,所述步骤101中,若账本数据中未含有敏感字段,则终止对账本数据的处理,直接提交上链。
作为优选,所述步骤102中,根据明文的敏感字段生成密文的Hash摘要采用的算法为MD5、SHA1或SHA512;所述步骤103中,将Hash摘要与指定隐私区域的唯一标识打包生成加密编码串采用的算法为Base64或Base62。
根据本发明实施例的第二方面,提供了一种区块链账本敏感数据的加密装置,用于数据提交方待提交区块链的账本数据,包括:
第一识别模块,用于识别账本数据中是否含有敏感字段;
Hash摘要模块,用于若账本数据中含有敏感字段,根据敏感字段的明文字段值生成密文的Hash摘要;
编码模块,用于通过智能合约获取指定隐私区域的唯一标识,将Hash摘要与指定隐私区域的唯一标识打包,生成加密编码串;
隔离模块,用于以加密编码串为键、明文字段值为值生成键值对,保存在指定隐私区域;
加密模块,用于以加密编码串替代明文字段值为敏感字段加密,提交账本数据上链。
根据本发明实施例的第三方面,提供了一种区块链账本数据的解密方法,用于数据接收方解密于区块链上得到的账本数据,包括如下步骤:
步骤301,识别账本数据是否含有敏感字段;
步骤302,若账本数据中含有敏感字段,识别敏感字段的字段值是否为加密编码串;
步骤303,若敏感字段的字段值为加密编码串,通过智能合约在指定隐私区域中检索并找到相应的加密键值对,获取加密编码串对应敏感字段的明文字段值,所述加密键值对中以加密编码串为键、明文字段值为值;
步骤305,以明文字段值替换加密编码串,获得敏感字段解密的账本数据。
作为优选,所述步骤301中,所述识别账本数据中是否含有敏感字段的方法是待识别字段的字段名前后是否含有标识符,所述标识符用于标识该字段为敏感字段;所述步骤305最终获得敏感字段解密的账本数据时去除标识符。
作为优选,所述步骤303中包括如下步骤:
步骤3031,判断数据接收方是否具有指定隐私区域的访问权限,若没有则终止解密;
步骤3032,通过智能合约在指定隐私区域中检索并找到相应的加密键值对,获取加密编码串对应敏感字段的明文字段值,所述加密键值对中以加密编码串为键、明文字段值为值。
作为优选,所述步骤303和步骤305之间还包括:
步骤304,对明文字段值进行校验;所述步骤304包括如下步骤:
步骤3041,获取明文字段值后缓存;
步骤3042,对加密编码字符串反编码,获得反编码的Hash摘要和时间戳;
步骤3043,对缓存的明文字段值采用数据提交方加密时使用的Hash摘要算法生成待校验的Hash摘要;
步骤3044,将反编码的Hash摘要与待校验的Hash摘要比较,若一致则进入步骤305,若不一致则判定为检校失败异常,终止解密。
根据本发明实施例的第四方面,提供了一种区块链账本数据的解密装置,用于数据接收方解密于区块链上得到的账本数据,包括:
第二识别模块,用于识别账本数据是否含有敏感字段;
第三识别模块,用于若账本数据中含有敏感字段,识别敏感字段的字段值是否为加密编码串;
检索模块,用于若敏感字段的字段值为加密编码串,通过智能合约在指定隐私区域中检索并找到相应的加密键值对,获取加密编码串对应敏感字段的明文字段值,所述加密键值对中以加密编码串为键、明文字段值为值;
解密模块,用于以明文字段值替换加密编码串,获得敏感字段解密的账本数据。
与现有技术相比较,本发明能够自动识别敏感数据而自行加密与解密,无需额外操作辅助。对敏感数据有阅读权限的成员,可以实现无感加密流程的使用体验;对于无权限的成员,获取的账本数据,一律对敏感信息加密,且密文不可逆推原始敏感信息。本发明在不降低加密安全的前提下,摆脱了对密钥加密的依赖,大大简化智能合约的逻辑复杂性,使得用户体验更加顺畅;将敏感数据的摘要作为密文存储到区块链账本上,由各联盟方成员共同监管,杜绝了敏感数据被篡改可能性,大大提升了区块链敏感数据安全性。
附图说明
图1为本发明区块链账本数据的加密方法的一种流程图;
图2为本发明区块链账本数据的加密装置的一种结构框图;
图3为本发明区块链账本数据的解密方法的一种流程图;
图4为本发明区块链账本数据的解密装置的一种结构框图;
图5为本发明区块链账本数据的解密装置中检索模块的一种结构框图;
图6为本发明区块链账本数据的解密装置中校验模块的一种结构框图。
图中,201-第一识别模块,202-Hash摘要模块,203-编码模块,204-隔离模块,205-加密模块,401-第二识别模块,402-第三识别模块,403-检索模块,404-校验模块,405-解密模块,4031-权限判断子模块,4032-检索子模块,4041-缓存子模块,4042-反编码子模块,4043- Hash摘要子模块,4044-校验子模块。
具体实施方式
以下将结合附图所示的具体实施方式对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。
在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
如图1所示,一种区块链账本数据的加密方法,用于数据提交方待提交区块链的账本数据,包括如下步骤:
步骤101,识别账本数据中是否含有敏感字段。
其中,所述识别账本数据中是否含有敏感字段的方法是待识别字段的字段名前后是否含有标识符,所述标识符用于标识该字段为敏感字段。
标识符为预先设置的字符,可以是根据一定规则设置好的字符,比如:特殊符号替换,如“*”、“#”、“%”等等;可以是随机数值;可以是某种有数值对应关系的函数等等。
例如以下账本数据:
{"id":"123","age":"20","sex":"man","*account":"13093402989348655232"}。
该实施例1中,字段account前用标识符“*”修饰,则区块链在提交该账本数据入链时,需要对account字段值加密处理,而其他字段不需要特殊处理。
利用对敏感标识符的约定,实现智能合约对敏感数据的自动识别,从而只针对敏感数据加密,符合业务场景需求。如此,则不需要像传统通用的做法那样增加额外的通讯协议说明账本中哪些字段为敏感数据,从而避免了不必要的工作量。
步骤102,若账本数据中含有敏感字段,根据敏感字段的明文字段值生成密文的Hash摘要。若账本数据中未含有敏感字段,则终止对账本数据的处理,直接提交上链。
这里,生成密文的Hash摘要采用的算法可以为MD5、SHA1或SHA512等。成熟通用的Hash摘要算法都是不可逆的可靠算法,不仅限于上述的三种主流算法。
虽然Hash摘要传统实现中仅当作数据检校的工具,但是摘要Hash不可逆、重合度很低,且对原始数据有很强的身份证实意义,故而本发明将Hash摘要简单改造,解决了Hash碰撞问题后,赋予Hash数据包以关键索引的职能,同时也赋予了敏感字段密文的职能。符合Hash摘要特性的复用机制,简化了流程变量,使智能合约处理逻辑严谨可靠。
以下以SHA1算法为例对实施例1中的敏感字段account进行哈希摘要算法处理:
md5 = hashlib.sha1()
md5.update(bytes(‘13093402989348655232', encoding='utf-8'))
data = md5.hexdigest()
这里,data即敏感字段account进行哈希摘要算法处理后得到的摘要,数值为:0DCD85B96E3A9F644CB3F086738FFCEB4C3E872E。
步骤103,通过智能合约获取指定隐私区域的唯一标识,将Hash摘要与指定隐私区域的唯一标识打包,生成加密编码串。
指定隐私区域为区块链系统指定的用于存储加密账本数据的隔离存储区,可以为数据提供方或数据接收方的隐私数据隔离区域,也可以新建于区块链公共区内的临时数据区。因为隐私区域的标识id若重复会导致创建隐私区域失败,所以隐私区域的唯一标识具有不重复性,所以当前对摘要打包后的json对象字符串不会发生碰撞。
Hash摘要存在碰撞的几率,但是结合隐私区域的唯一标识就可以解决碰撞问题。本发明抛弃传统的加密因子对摘要再加密的复杂算法,而是用字符串尾随拼接的方式,在通过Base64等算法进行加密编码,同样可以实现了生成场景下唯一性字符串。以上简单可靠的数据打包方式,使得解密时的工作可以达到快捷而高效。
当然,将Hash摘要与指定隐私区域的唯一标识打包数据的加密可以不采用Base64算法,而采用Base62等其他算法,具体可视系统运行环境选择。
实施例1中,智能合约获取系统指定隐私区域的唯一标识,假若值为:zoneId =63370738175000000。将Hash摘要与指定隐私区域的唯一标识zoneId打包为json对象:
["0DCD85B96E3A9F644CB3F086738FFCEB4C3E872E","63370738175000000"]。
对实施例1产生的json对象通过Base64算法进行加密编码,编码后的加密编码串为:
WyIwRENEODVCOTZFM0E5RjY0NENCM0YwODY3MzhGRkNFQjRDM0U4NzJFIiwiMTU4Njk0NTgwNCJd。
该加密编码串应用范围内具有唯一性,可用作区块链K-V存储模式的键。
步骤104,以加密编码串为键、明文字段值为值生成加密键值对,保存在指定隐私区域。
不同的区块链平台可能有不同的实现数据隔离区的机制,比如通道隔离、隐私数据区等。以超级账本(fabric hyperledger)的隐私数据区为例,某一区块链联盟方可以在联盟通道内创建属于自己的隐私区域,该隐私区域可以动态授权给联盟链内其他联盟方,授权后的联盟方成员也可读取隐私区块内数据。
这里以K-V模式隔离存储敏感数据,其中加密编码串为键(Key),明文字段值为值(V),实施例1中:
Key =
WyIwRENEODVCOTZFM0E5RjY0NENCM0YwODY3MzhGRkNFQjRDM0U4NzJFIiwiMTU4Njk0NTgwNCJd。
V = 13093402989348655232。
步骤105,以加密编码串替代明文字段值为敏感字段加密,提交账本数据上链。
因为敏感字段的明文字段值已采用区块链隔离机制保存,用加密编码串替代敏感数据值更新账本,即实现了账本敏感数据的加密,同时账本保留了敏感数据的明文地址唯一索引,从而保障了账本数据关系的完整性。实施例1所得加密的账本数据如下:
{"id":"123","age":"20","sex":"man","*account":" WyIwRENEODVCOTZFM0E5RjY0NENCM0YwODY3MzhGRkNFQjRDM0U4NzJFIiwiMTU4Njk0NTgwNCJd "}。
提交账本上链后,则对于其他联盟方成员,看到的是敏感数据的Hash摘要,敏感数据既实现了加密,又保障了数据的不可篡改性。因为数据提交方未必是数据所有权方,该Hash摘要在解密流程中将用作敏感数据的检核,规避敏感数据所有权方篡改敏感数据值。
综上,本发明未采用任何对称密钥或非对称密钥,而是以脱密钥的方式实现敏感数据加密,实现了对敏感数据的保护,并且敏感数据的加密强度与传统的非对称加密方式相当。采用对称或非对称加密方式同样存在需要安全存储私钥的问题,也需要用到区块链隔离存储的技术手段。在同等数据安全条件下,不依靠密钥对实现敏感数据加密,则规避了密钥对动态生成、密钥生产策略、加解密钥匹配等一系列问题,大大优化了智能合约执行力。
基于上述加密方法,如图2所示,本发明还提供了一种区块链账本敏感数据的加密装置,用于数据提交方待提交区块链的账本数据,包括:
第一识别模块201,用于识别账本数据中是否含有敏感字段;
Hash摘要模块202,用于若账本数据中含有敏感字段,根据敏感字段的明文字段值生成密文的Hash摘要;
编码模块203,用于通过智能合约获取指定隐私区域的唯一标识,将Hash摘要与指定隐私区域的唯一标识打包,生成加密编码串;
隔离模块204,用于以加密编码串为键、明文字段值为值生成键值对,保存在指定隐私区域;
加密模块205,用于以加密编码串替代明文字段值为敏感字段加密,提交账本数据上链。
其中,第一识别模块201中,所述识别账本数据中是否含有敏感字段的方法是待识别字段的字段名前后是否含有标识符,所述标识符用于标识该字段为敏感字段;若账本数据中未含有敏感字段,则终止对账本数据的处理,直接提交上链。Hash摘要模块202中,根据明文的敏感字段生成密文的Hash摘要采用的算法为MD5、SHA1或SHA512等。编码模块203中,将Hash摘要与指定隐私区域的唯一标识打包生成加密编码串采用的算法为Base64或Base62等。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
对应上述的区块链账本数据的加密方法,本发明还公开了相应的解密方法。
如图3所示,一种区块链账本数据的解密方法,用于数据接收方解密于区块链上得到的账本数据,包括如下步骤:
步骤301,识别账本数据是否含有敏感字段。
其中,所述识别账本数据中是否含有敏感字段的方法是待识别字段的字段名前后是否含有标识符,所述标识符用于标识该字段为敏感字段。
本发明通过账本数据自身标识识别解密诉求,而不依赖其他额外的协议描述,降低了智能合约解密模块与其他功能模块的耦合度。
如实施例1所得加密的账本数据中,字段account前用标识符“*”修饰,为敏感字段。
步骤302,若账本数据中含有敏感字段,识别敏感字段的字段值是否为加密编码串。
实施例1所得加密的账本数据中,解析识别得到加密字符串:
WyIwRENEODVCOTZFM0E5RjY0NENCM0YwODY3MzhGRkNFQjRDM0U4NzJFIiwiMTU4Njk0NTgwNCJd。
步骤303,若敏感字段的字段值为加密编码串,通过智能合约在指定隐私区域中检索并找到相应的加密键值对,获取加密编码串对应敏感字段的明文字段值,所述加密键值对中以加密编码串为键、明文字段值为值。
步骤305,以明文字段值替换加密编码串,获得敏感字段解密的账本数据。最终获得敏感字段解密的账本数据时,敏感字段字段名前后去除所有标识符。
实施例1中,解密替换后账本数据如下:
{"id":"123","age":"20","sex":"man","account":"13093402989348655232"}。
具体的,所述步骤303中可以包括如下步骤:
步骤3031,判断数据接收方是否具有指定隐私区域的访问权限,若没有则终止解密;
步骤3032,通过智能合约在指定隐私区域中检索并找到相应的加密键值对,获取加密编码串对应敏感字段的明文字段值,所述加密键值对中以加密编码串为键、明文字段值为值。
在检索之前,先对数据接收方是否具有指定隐私区域的访问权限进行检查,有相应权限才可进行加密键值对的检索。指定隐私区域的访问权限还可以分等级,具体根据实际需要进行设置。
为了确保准确性,所述步骤303和步骤305之间还可以包括:
步骤304,对明文字段值进行校验。
具体的,所述步骤304可以包括如下步骤:
步骤3041,获取明文字段值后缓存;
步骤3042,对加密编码字符串反编码,获得反编码的Hash摘要和指定隐私区域的唯一标识;
步骤3043,对缓存的明文字段值采用数据提交方加密时使用的Hash摘要算法生成待校验的Hash摘要;
步骤3044,将反编码的Hash摘要与待校验的Hash摘要比较,若一致则进入步骤305,若不一致则判定为检校失败异常,终止解密。
因为敏感数据的特性,决定了由少数联盟方直接管理。有权限方获取到敏感数据明文后,智能合约利用区块链账本上“各方监管的Hash摘要”来验证敏感数据明文是否被篡改。如果对敏感数据值有任何更改,智能合约会返回异常,并在区块链上留下存证。
基于上述解密方法,如图4所示,本发明还提供了一种区块链账本数据的解密装置,用于数据接收方解密于区块链上得到的账本数据,包括:
第二识别模块401,用于识别账本数据是否含有敏感字段;
第三识别模块402,用于若账本数据中含有敏感字段,识别敏感字段的字段值是否为加密编码串;
检索模块403,用于若敏感字段的字段值为加密编码串,通过智能合约在指定隐私区域中检索并找到相应的加密键值对,获取加密编码串对应敏感字段的明文字段值,所述加密键值对中以加密编码串为键、明文字段值为值;
解密模块405,用于以明文字段值替换加密编码串,获得敏感字段解密的账本数据。
第二识别模块401中,所述识别账本数据中是否含有敏感字段的方法是待识别字段的字段名前后是否含有标识符,所述标识符用于标识该字段为敏感字段;解密模块405中,最终获得敏感字段解密的账本数据时去除标识符。
如图5所示,检索模块403包括:
权限判断子模块4031,用于判断数据接收方是否具有指定隐私区域的访问权限,若没有则终止解密;
检索子模块4032,用于通过智能合约在指定隐私区域中检索并找到相应的加密键值对,获取加密编码串对应敏感字段的明文字段值,所述加密键值对中以加密编码串为键、明文字段值为值。
此外,检索模块403和解密模块405之间还可以包括:
校验模块404,用于对明文字段值进行校验。
具体的,如图6所示,校验模块404可以包括:
缓存子模块4041,用于获取明文字段值后缓存;
反编码子模块4042,用于对加密编码字符串反编码,获得反编码的Hash摘要和指定隐私区域的唯一标识;
Hash摘要子模块4043,用于对缓存的明文字段值采用数据提交方加密时使用的Hash摘要算法生成待校验的Hash摘要;
校验子模块4044,用于将反编码的Hash摘要与待校验的Hash摘要比较,若一致则进入步骤305,若不一致则判定为检校失败异常,终止解密。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由本申请的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

Claims (10)

1.一种区块链账本数据的加密方法,其特征在于,用于数据提交方待提交区块链的账本数据,包括如下步骤:
步骤101,识别账本数据中是否含有敏感字段;
步骤102,若账本数据中含有敏感字段,根据敏感字段的明文字段值生成Hash摘要;
步骤103,通过智能合约获取指定隐私区域的唯一标识,将Hash摘要与指定隐私区域的唯一标识打包,生成加密编码串;
步骤104,以加密编码串为键、明文字段值为值生成键值对,保存在指定隐私区域;
步骤105,以加密编码串替代明文字段值为敏感字段加密,提交账本数据上链。
2.根据权利要求1所述的方法,其特征在于,所述步骤101中,所述识别账本数据中是否含有敏感字段的方法是待识别字段的字段名前或后是否含有标识符,所述标识符用于标识该字段为敏感字段。
3.根据权利要求1所述的方法,其特征在于,所述步骤101中,若账本数据中未含有敏感字段,则终止对账本数据的处理,直接提交上链。
4.根据权利要求1至3任意一项所述的方法,其特征在于,所述步骤102中,根据明文的敏感字段生成Hash摘要采用的算法为MD5、SHA1或SHA512;所述步骤103中,将Hash摘要与指定隐私区域的唯一标识打包生成加密编码串采用的算法为Base64或Base62。
5.一种区块链账本数据的加密装置,其特征在于,用于数据提交方待提交区块链的账本数据,包括:
第一识别模块,用于识别账本数据中是否含有敏感字段;
Hash摘要模块,用于若账本数据中含有敏感字段,根据敏感字段的明文字段值生成Hash摘要;
编码模块,用于通过智能合约获取指定隐私区域的唯一标识,将Hash摘要与指定隐私区域的唯一标识打包,生成加密编码串;
隔离模块,用于以加密编码串为键、明文字段值为值生成键值对,保存在指定隐私区域;
加密模块,用于以加密编码串替代明文字段值为敏感字段加密,提交账本数据上链。
6.一种区块链账本数据的解密方法,用于数据接收方解密于区块链上得到的账本数据,所述账本数据基于权利要求1至4任意一项所述区块链账本数据的加密方法加密,其特征在于,包括如下步骤:
步骤301,识别账本数据是否含有敏感字段;
步骤302,若账本数据中含有敏感字段,识别敏感字段的字段值是否为加密编码串;
步骤303,若敏感字段的字段值为加密编码串,通过智能合约在指定隐私区域中检索并找到相应的键值对,获取加密编码串对应敏感字段的明文字段值,所述键值对中以加密编码串为键、明文字段值为值;
步骤305,以明文字段值替换加密编码串,获得敏感字段解密的账本数据。
7.根据权利要求6所述的方法,其特征在于,所述步骤301中,所述识别账本数据中是否含有敏感字段的方法是待识别字段的字段名前或后是否含有标识符,所述标识符用于标识该字段为敏感字段;所述步骤305最终获得敏感字段解密的账本数据时去除标识符。
8.根据权利要求6所述的方法,其特征在于,所述步骤303中包括如下步骤:
步骤3031,判断数据接收方是否具有指定隐私区域的访问权限,若没有则终止解密;
步骤3032,通过智能合约在指定隐私区域中检索并找到相应的键值对,获取加密编码串对应敏感字段的明文字段值,所述键值对中以加密编码串为键、明文字段值为值。
9.根据权利要求6至8任意一项所述的方法,其特征在于,所述步骤303和步骤305之间还包括:
步骤304,对明文字段值进行校验;所述步骤304包括如下步骤:
步骤3041,获取明文字段值后缓存;
步骤3042,对加密编码字符串反编码,获得反编码的Hash摘要和指定隐私区域的唯一标识;
步骤3043,对缓存的明文字段值采用数据提交方加密时使用的Hash摘要算法生成待校验的Hash摘要;
步骤3044,将反编码的Hash摘要与待校验的Hash摘要比较,若一致则进入步骤305,若不一致则判定为检校失败异常,终止解密。
10.一种区块链账本数据的解密装置,用于数据接收方解密于区块链上得到的账本数据,所述账本数据基于权利要求1至4任意一项所述区块链账本数据的加密方法加密,其特征在于,包括:
第二识别模块,用于识别账本数据是否含有敏感字段;
第三识别模块,用于若账本数据中含有敏感字段,识别敏感字段的字段值是否为加密编码串;
检索模块,用于若敏感字段的字段值为加密编码串,通过智能合约在指定隐私区域中检索并找到相应的键值对,获取加密编码串对应敏感字段的明文字段值,所述键值对中以加密编码串为键、明文字段值为值;
解密模块,用于以明文字段值替换加密编码串,获得敏感字段解密的账本数据。
CN202010405906.7A 2020-05-14 2020-05-14 区块链账本数据的加密方法及装置、解密方法及装置 Active CN111475828B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010405906.7A CN111475828B (zh) 2020-05-14 2020-05-14 区块链账本数据的加密方法及装置、解密方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010405906.7A CN111475828B (zh) 2020-05-14 2020-05-14 区块链账本数据的加密方法及装置、解密方法及装置

Publications (2)

Publication Number Publication Date
CN111475828A CN111475828A (zh) 2020-07-31
CN111475828B true CN111475828B (zh) 2022-05-13

Family

ID=71759880

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010405906.7A Active CN111475828B (zh) 2020-05-14 2020-05-14 区块链账本数据的加密方法及装置、解密方法及装置

Country Status (1)

Country Link
CN (1) CN111475828B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112016113B (zh) * 2020-09-28 2024-04-16 同盾控股有限公司 数据加解密方法、装置及系统
CN112487446A (zh) * 2020-11-26 2021-03-12 南京纯白矩阵科技有限公司 一种区块链加密算法热插拔的方法
CN113408259B (zh) * 2021-06-09 2024-05-07 微易签(杭州)科技有限公司 一种基于区块链填写文件的方法、系统、装置和存储介质
CN113610642A (zh) * 2021-08-05 2021-11-05 北京百度网讯科技有限公司 基于区块链的数据处理方法、装置及电子设备
IT202100031529A1 (it) * 2021-12-16 2023-06-16 X Consulting S R L Metodo di gestione di un database clienti di una piattaforma per l’erogazione di servizi e relativa piattaforma
CN114785496B (zh) * 2022-04-19 2025-02-28 支付宝(杭州)信息技术有限公司 共享隐私数据、接收隐私数据的方法、装置及系统
CN115099817B (zh) * 2022-06-17 2023-03-24 北京中科深智科技有限公司 一种高效的区块链交易验证与查询方法及系统

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104281794A (zh) * 2014-09-23 2015-01-14 北京奇艺世纪科技有限公司 一种密码存储及验证的方法和装置
CN104468113A (zh) * 2013-09-16 2015-03-25 安讯士有限公司 用户凭证的分布
CN107592298A (zh) * 2017-08-11 2018-01-16 中国科学院大学 一种基于单服务器模型的序列比较算法安全外包方法、用户终端和服务器
CN108768990A (zh) * 2018-05-18 2018-11-06 浙江工商大学 一种基于区块链的可搜索加密方法
CN109040341A (zh) * 2018-08-27 2018-12-18 深圳前海益链网络科技有限公司 智能合约地址生成方法、装置、计算机设备及可读存储介质
CN109741803A (zh) * 2019-01-14 2019-05-10 南京大学 基于区块链的医疗数据安全协作系统
CN109766342A (zh) * 2018-12-28 2019-05-17 国云科技股份有限公司 一种基于区块链的数据存储与查询方法
CN109858904A (zh) * 2017-11-30 2019-06-07 国付宝信息科技有限公司 基于区块链的数据处理方法和装置
CN109949035A (zh) * 2019-03-15 2019-06-28 智链万源(北京)数字科技有限公司 区块链数据隐私控制方法、装置及系统
CN110008733A (zh) * 2019-01-31 2019-07-12 阿里巴巴集团控股有限公司 一种对写入块链的交易进行隐匿的方法及装置
CN110020554A (zh) * 2019-04-19 2019-07-16 腾讯科技(深圳)有限公司 基于区块链的信息处理方法、装置和计算机可读存储介质
CN110059495A (zh) * 2018-12-14 2019-07-26 阿里巴巴集团控股有限公司 数据共享方法、装置及系统、电子设备
CN110287724A (zh) * 2019-05-23 2019-09-27 顺丰科技有限公司 数据存储及验证方法和装置
CN110310176A (zh) * 2019-06-26 2019-10-08 上海迪维欧电子设备有限公司 一种基于区块链网络的数据加密方法及装置
CN111079198A (zh) * 2020-03-10 2020-04-28 广州电力交易中心有限责任公司 一种基于电力交易的数据发布方法及系统
WO2020083822A1 (en) * 2018-10-25 2020-04-30 Sony Corporation Privacy-preserving mobility as a service supported by blockchain

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101593196B (zh) * 2008-05-30 2013-09-25 日电(中国)有限公司 用于快速密文检索的方法、装置和系统
EP3633915B1 (en) * 2018-10-01 2023-05-10 Schneider Electric Industries SAS Secure storage of data in a blockchain

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104468113A (zh) * 2013-09-16 2015-03-25 安讯士有限公司 用户凭证的分布
CN104281794A (zh) * 2014-09-23 2015-01-14 北京奇艺世纪科技有限公司 一种密码存储及验证的方法和装置
CN107592298A (zh) * 2017-08-11 2018-01-16 中国科学院大学 一种基于单服务器模型的序列比较算法安全外包方法、用户终端和服务器
CN109858904A (zh) * 2017-11-30 2019-06-07 国付宝信息科技有限公司 基于区块链的数据处理方法和装置
CN108768990A (zh) * 2018-05-18 2018-11-06 浙江工商大学 一种基于区块链的可搜索加密方法
CN109040341A (zh) * 2018-08-27 2018-12-18 深圳前海益链网络科技有限公司 智能合约地址生成方法、装置、计算机设备及可读存储介质
WO2020083822A1 (en) * 2018-10-25 2020-04-30 Sony Corporation Privacy-preserving mobility as a service supported by blockchain
CN110059495A (zh) * 2018-12-14 2019-07-26 阿里巴巴集团控股有限公司 数据共享方法、装置及系统、电子设备
CN109766342A (zh) * 2018-12-28 2019-05-17 国云科技股份有限公司 一种基于区块链的数据存储与查询方法
CN109741803A (zh) * 2019-01-14 2019-05-10 南京大学 基于区块链的医疗数据安全协作系统
CN110008733A (zh) * 2019-01-31 2019-07-12 阿里巴巴集团控股有限公司 一种对写入块链的交易进行隐匿的方法及装置
CN109949035A (zh) * 2019-03-15 2019-06-28 智链万源(北京)数字科技有限公司 区块链数据隐私控制方法、装置及系统
CN110020554A (zh) * 2019-04-19 2019-07-16 腾讯科技(深圳)有限公司 基于区块链的信息处理方法、装置和计算机可读存储介质
CN110287724A (zh) * 2019-05-23 2019-09-27 顺丰科技有限公司 数据存储及验证方法和装置
CN110310176A (zh) * 2019-06-26 2019-10-08 上海迪维欧电子设备有限公司 一种基于区块链网络的数据加密方法及装置
CN111079198A (zh) * 2020-03-10 2020-04-28 广州电力交易中心有限责任公司 一种基于电力交易的数据发布方法及系统

Also Published As

Publication number Publication date
CN111475828A (zh) 2020-07-31

Similar Documents

Publication Publication Date Title
CN111475828B (zh) 区块链账本数据的加密方法及装置、解密方法及装置
US10305875B1 (en) Hybrid blockchain
US10296248B2 (en) Turn-control rewritable blockchain
CN111130757A (zh) 一种基于区块链的多云cp-abe访问控制方法
CN108615154B (zh) 一种基于硬件加密保护的区块链数字签名系统及使用流程
CN114629713B (zh) 身份验证方法、装置及系统
CN111340483A (zh) 一种基于区块链的数据管理方法及相关设备
CA2981202A1 (en) Hashed data retrieval method
CN112398818B (zh) 一种软件激活方法及其相关装置
CN114154179A (zh) 区块链密钥托管方法、系统、终端设备及存储介质
CN115208630A (zh) 基于区块链的数据获取方法、系统及区块链系统
CN117938546B (zh) 一种电子账号的验证及数据访问方法
AU2021101878A4 (en) Computerized design model for encryption in blockchain transaction systems
US20250045744A1 (en) Platform controlled wallets in blockchain systems
CN109672522A (zh) 一种密钥查询方法及云平台
CA2586248C (en) Privacy identifier remediation
CN119628882A (zh) 一种基于区块链的网站数据安全防护系统
CN117078273A (zh) 基于可信分布式存储技术的物品防伪信息保真方法及系统
CN119129000A (zh) 数字摘要生成方法及相关装置

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
GR01 Patent grant
GR01 Patent grant