CN112039883A - 一种区块链的数据分享方法及装置 - Google Patents

一种区块链的数据分享方法及装置 Download PDF

Info

Publication number
CN112039883A
CN112039883A CN202010894274.5A CN202010894274A CN112039883A CN 112039883 A CN112039883 A CN 112039883A CN 202010894274 A CN202010894274 A CN 202010894274A CN 112039883 A CN112039883 A CN 112039883A
Authority
CN
China
Prior art keywords
information
key
initiator
dynamic
receiver
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
Application number
CN202010894274.5A
Other languages
English (en)
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.)
WeBank Co Ltd
Original Assignee
WeBank 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 WeBank Co Ltd filed Critical WeBank Co Ltd
Priority to CN202010894274.5A priority Critical patent/CN112039883A/zh
Publication of CN112039883A publication Critical patent/CN112039883A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • 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
    • H04L63/0435Network 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 wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • 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/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • 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/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Abstract

本发明公开了一种区块链的数据分享方法及装置,其中方法为:发起方根据共享动态信息生成动态对称密钥;所述共享动态信息为所述发起方和接收方按照预设方式约定的动态更新信息;所述共享动态信息包括:主密钥和多个子密钥;所述主密钥和所述多个子密钥中至少有一个密钥为动态更新的密钥;所述发起方根据所述动态对称密钥对共享数据进行加密,获得密文数据;所述发起方将所述密文数据发送至区块链。上述方法应用于金融科技(Fintech)时,可以兼顾安全性和性能。

Description

一种区块链的数据分享方法及装置
技术领域
本发明涉及金融科技(Fintech)领域中的区块链(blockchain)领域,尤其涉及一种区块链的数据分享方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Fintech)和区块链(blockchain)转变,但由于金融行业的安全性、实时性要求,也对技术提出的更高的要求。一个机构有把数据存储在区块链上供另一合作机构获取的需求,如果直接将明文放到区块链上,所有机构都可以直接看到。显然,这就需要一个合理的数据加密分享方案。
目前区块链上数据加密分享的总体思路分为两大类:(1)约定单一的密钥对数据加解密方式,这样一旦密钥被破解,则等于所有的密文形同虚设,不满足安全性要求;(2)多方密钥协商方式,每次使用密钥都需要多方加密协商,同步确认,当参与方较多时,协商过程会成为性能瓶颈,从而迟滞整个数据加密分享过程。因此,目前的加密分享方式难以兼顾安全性和性能,这是一个亟待解决的问题。
发明内容
本发明提供一种区块链的数据分享方法及装置,解决了现有技术中加密分享方式难以兼顾安全性和性能的问题。
第一方面,本发明提供一种区块链的数据分享方法,包括:发起方根据共享动态信息生成动态对称密钥;所述共享动态信息为所述发起方和接收方按照预设方式约定的动态更新信息;所述共享动态信息包括:主密钥和多个子密钥;所述主密钥和所述多个子密钥中至少有一个密钥为动态更新的密钥;所述发起方根据所述动态对称密钥对共享数据进行加密,获得密文数据;所述发起方将所述密文数据发送至区块链。
上述方式下,由于所述共享动态信息为所述发起方和接收方按照预设方式约定的动态更新信息,所述发起方在本地即可根据相同从共享动态信息生成相同的动态对称密钥,无需在对共享数据加密之前和接收方交互获得动态对称密钥,再者,所述共享动态信息包括:主密钥和多个子密钥,所述主密钥和所述多个子密钥中至少有一个密钥为动态更新的密钥,由于密钥有多个,且其中有动态更新的密钥,从而增加了动态对称密钥被破解的难度,进一步地,所述发起方根据所述动态对称密钥对共享数据进行加密,并将所述密文数据发送至区块链,用于所述接收方从所述区块链获取所述密文数据并解密,在分享数据的过程中,不需要和接收方通信交互,避免了交互动态对称密钥的性能瓶颈,即可通过包括多个密钥以及动态更新的共享动态密钥,在发起方本地生成所述共享动态密钥,保证了密文数据的安全性,从而兼顾了安全性和性能。
可选的,所述多个子密钥包括:多个混淆信息和轮换数;所述轮换数为动态变化的正整数;所述发起方根据共享动态信息生成动态对称密钥,包括:针对各片段信息中任一片段信息,所述发起方将所述片段信息通过第一预设函数迭代执行N次,得到所述片段信息的迭代结果;其中,N是至少根据所述轮换数确定的;所述各片段信息中任一片段信息为所述主密钥和所述多个混淆信息中的至少一项;根据所述各片段信息的迭代结果,生成所述动态对称密钥。
上述方法中,所述各片段信息中任一片段信息为所述主密钥和所述多个混淆信息中的至少一项,对于每个片段信息,所述发起方将所述片段信息通过第一预设函数迭代执行N次,而且具体N是至少根据所述轮换数确定的,所述轮换数为动态变化的正整数,因此,每个片段信息的迭代结果也是动态变化的,所以根据所述各片段信息的迭代结果生成的所述动态对称密钥更加难以破解。
可选的,所述多个混淆信息包括:发起方的混淆信息和至少一个接收方的混淆信息;所述发起方按照以下方式和任一接收方约定所述主密钥和所述多个混淆信息:所述发起方生成所述主密钥和所述发起方的混淆信息;所述发起方将所述主密钥和所述发起方的混淆信息发送至所述接收方;所述发起方获取所述至少一个接收方的混淆信息;其中,接收方的混淆信息是在接收方验证了所述发起方的混淆信息通过后发送的;所述发起方将所述至少一个接收方的混淆信息发送至所述接收方;所述发起方在确定所述接收方验证通过了所述至少一个接收方的混淆信息中所述接收方的混淆信息后,确定和所述接收方成功约定了所述主密钥和所述多个混淆信息。
上述方法中,所述多个混淆信息包括:发起方的混淆信息和至少一个接收方的混淆信息,所述发起方获取所述至少一个接收方的混淆信息,接收方的混淆信息是在接收方验证了所述发起方的混淆信息通过后发送的;所述发起方获取所述至少一个接收方的混淆信息后,通过验证相互的混淆信息来约定所述主密钥和所述多个混淆信息,从而增加了所述多个混淆信息的可靠性,进一步增加了所述动态对称密钥的安全性。
可选的,针对所述多个混淆信息中任一混淆信息,所述混淆信息均存在唯一映射的发起方或接收方;针对所述主密钥和所述多个子密钥中任一密钥,所述各片段信息中存在至少一个片段信息包含所述密钥。
上述方式下,每个混淆信息都和发起方或接收方唯一映射,从而每个混淆信息都受发起方或接收方的约束,而且对于任一密钥,所述各片段信息中存在至少一个片段信息包含所述密钥,也就是说,动态对称密钥生成时用到了所述主密钥和每个混淆信息,更加难以破解,生成的动态对称密钥也更加有安全性。
可选的,所述多个子密钥包括:密钥更新周期和动态时间戳;所述发起方根据共享动态信息生成动态对称密钥,包括:在任一密钥更新周期,所述发起方根据初始时间戳和所述密钥更新周期动态迭代,得到所述动态时间戳;所述发起方根据所述主密钥和所述多个子密钥,通过第二预设函数生成所述密钥更新周期的动态对称密钥;所述主密钥是前一密钥更新周期生成的动态对称密钥或原始静态密钥。
上述方式下,在任一密钥更新周期,所述发起方都会得到动态更新的所述动态时间戳,并可以进一步地通过第二预设函数生成所述密钥更新周期的动态对称密钥,从而通过加入动态时间戳,基于动态迭代,生成更难以破解的动态对称密钥。
可选的,所述多个子密钥还包括:加密凭证;所述发起方根据共享动态信息生成对称动态密钥之前,还包括:所述发起方生成初始随机值;所述发起方根据所述初始随机值、所述初始时间戳和所述密钥更新周期,生成所述加密凭证;所述发起方根据所述初始随机值、所述初始时间戳、所述密钥更新周期和所述加密凭证,生成所述原始静态密钥;所述发起方将所述加密凭证发送至所述接收方;所述发起方基于所述接收方验证通过所述加密凭证,确定和所述接收方约定了按照预设方式生成共享动态信息。
上述方式下,所述发起方生成所述加密凭证后,根据所述初始随机值、所述初始时间戳、所述密钥更新周期和所述加密凭证,生成所述原始静态密钥,并通过所述加密凭证确定和所述接收方约定了按照预设方式生成动态更新信息,从而通过可靠的方式和接收方约定共享动态信息,进而增加了动态对称密钥安全性。
可选的,所述密文数据包括周期内传输计数;所述周期内传输计数为单个密钥更新周期内所述发起方上传数据至区块链的次数;所述发起方将所述密文数据发送至区块链之后,还包括:所述发起方更新所述周期内传输计数;所述周期内传输计数的初始值为预设值;所述密文数据中的所述周期内传输计数的取值不为所述预设值时,用于触发所述接收方重新根据所述共享动态信息生成所述动态对称密钥。
上述方式下,所述密文数据包括周期内传输计数,所述发起方将所述密文数据发送至区块链之后,所述发起方更新所述周期内传输计数,从而可以根据所述周期内传输技术的变化,每次重新生成所述动态对称密钥,进一步增加了所述动态对称密钥破解的难度。
第二方面,本发明提供一种区块链的数据分享方法,包括:接收方从区块链获取发起方上传的密文数据;所述接收方根据共享动态信息生成动态对称密钥;所述共享动态信息为所述发起方和所述接收方按照预设方式约定的动态更新信息;所述共享动态信息包括:主密钥和多个子密钥;所述主密钥和所述多个子密钥中至少有一个密钥为动态更新的密钥;所述接收方根据所述动态对称密钥对所述密文数据解密,获得共享数据。
可选的,所述多个子密钥包括:多个混淆信息和轮换数;所述轮换数为动态变化的正整数;所述接收方根据共享动态信息生成动态对称密钥,包括:针对各片段信息中任一片段信息,所述接收方将所述片段信息通过第一预设函数迭代执行N次,得到所述片段信息的迭代结果;其中,N是至少根据所述轮换数确定的;所述各片段信息中任一片段信息为所述主密钥和所述多个混淆信息中的至少一项;根据所述各片段信息的迭代结果,生成所述动态对称密钥。
可选的,所述多个混淆信息包括:发起方的混淆信息和至少一个接收方的混淆信息;所述接收方为所述至少一个接收方的任一接收方;所述接收方按照以下方式和所述发起方约定所述主密钥和所述多个混淆信息:所述接收方获取来自所述发起方的混淆信息;所述接收方验证了所述发起方的混淆信息通过后,发送所述接收方的混淆信息至所述发送方;所述接收方获取来自所述发送方的所述至少一个接收方的混淆信息,在验证所述至少一个接收方的混淆信息中所述接收方的混淆信息后,确定和所述接收方成功约定了所述主密钥和所述多个混淆信息。
可选的,针对所述多个混淆信息中任一混淆信息,所述混淆信息均存在唯一映射的发起方或接收方;针对所述主密钥和所述多个子密钥中任一密钥,所述各片段信息中存在至少一个片段信息包含所述密钥。
可选的,所述多个子密钥包括:密钥更新周期和动态时间戳;所述接收方根据共享动态信息生成动态对称密钥,包括:在任一密钥更新周期,所述接收方根据初始时间戳和所述密钥更新周期动态迭代,得到所述动态时间戳;所述接收方根据所述主密钥和所述多个子密钥,通过第二预设函数生成所述密钥更新周期的动态对称密钥;所述主密钥是前一密钥更新周期生成的动态对称密钥或原始静态密钥。
可选的,所述多个子密钥还包括:加密凭证;所述加密凭证是所述发起方根据所述初始随机值、所述初始时间戳和所述密钥更新周期生成的;所述接收方根据共享动态信息生成动态对称密钥之前,还包括:所述接收方获取来自所述发起方的所述加密凭证;所述接收方在验证通过所述加密凭证后,确定和所述发起方约定了按照预设方式生成共享动态信息。
可选的,所述密文数据包括周期内传输计数;所述周期内传输计数为单个密钥更新周期内所述发起方上传数据至区块链的次数;所述接收方从区块链获取发起方上传的密文数据之后,还包括:所述接收方更新所述周期内传输计数;所述周期内传输计数的初始值为预设值;所述接收方若确定所述密文数据中的所述周期内传输计数的取值不为所述预设值,则重新根据所述共享动态信息生成所述动态对称密钥。
上述第二方面及第二方面各个可选方法的有益效果,可以参考上述第一方面及第一方面各个可选方法的有益效果,这里不再赘述。
第三方面,本发明提供一种区块链的数据分享装置,包括:生成模块,用于根据共享动态信息生成动态对称密钥;所述共享动态信息为发起方和接收方按照预设方式约定的动态更新信息;所述共享动态信息包括:主密钥和多个子密钥;所述主密钥和所述多个子密钥中至少有一个密钥为动态更新的密钥;加密模块,用于根据所述动态对称密钥对共享数据进行加密,获得密文数据;数据传输模块,用于将所述密文数据发送至区块链。
可选的,所述多个子密钥包括:多个混淆信息和轮换数;所述轮换数为动态变化的正整数;所述生成模块具体用于:针对各片段信息中任一片段信息,将所述片段信息通过第一预设函数迭代执行N次,得到所述片段信息的迭代结果;其中,N是至少根据所述轮换数确定的;所述各片段信息中任一片段信息为所述主密钥和所述多个混淆信息中的至少一项;根据所述各片段信息的迭代结果,生成所述动态对称密钥。
可选的,所述多个混淆信息包括:所述发起方的混淆信息和至少一个接收方的混淆信息;所述接收方为所述至少一个接收方中任一接收方;所述生成模块还用于:生成所述主密钥和所述发起方的混淆信息;所述数据传输模块还用于:将所述主密钥和所述发起方的混淆信息发送至所述接收方;获取所述至少一个接收方的混淆信息;其中,接收方的混淆信息是在接收方验证了所述发起方的混淆信息通过后发送的;将所述至少一个接收方的混淆信息发送至所述接收方;在确定所述接收方验证通过了所述至少一个接收方的混淆信息中所述接收方的混淆信息后,确定和所述接收方成功约定了所述主密钥和所述多个混淆信息。
可选的,针对所述多个混淆信息中任一混淆信息,所述混淆信息均存在唯一映射的发起方或接收方;针对所述主密钥和所述多个子密钥中任一密钥,所述各片段信息中存在至少一个片段信息包含所述密钥。
可选的,所述多个子密钥包括:密钥更新周期和动态时间戳;所述生成模块具体用于:在任一密钥更新周期,根据初始时间戳和所述密钥更新周期动态迭代,得到所述动态时间戳;根据所述主密钥和所述多个子密钥,通过第二预设函数生成所述密钥更新周期的动态对称密钥;所述主密钥是前一密钥更新周期生成的动态对称密钥或原始静态密钥。
可选的,所述多个子密钥还包括:加密凭证;所述生成模块还用于:生成初始随机值;根据所述初始随机值、所述初始时间戳和所述密钥更新周期,生成所述加密凭证;根据所述初始随机值、所述初始时间戳、所述密钥更新周期和所述加密凭证,生成所述原始静态密钥;所述数据传输模块还用于:将所述加密凭证发送至所述接收方;基于所述接收方验证通过所述加密凭证,确定和所述接收方约定了按照预设方式生成共享动态信息。
可选的,所述密文数据包括周期内传输计数;所述周期内传输计数为单个密钥更新周期内所述发起方上传数据至区块链的次数;所述生成模块还用于:更新所述周期内传输计数;所述周期内传输计数的初始值为预设值;所述密文数据中的所述周期内传输计数的取值不为所述预设值时,用于触发所述接收方重新根据所述共享动态信息生成所述动态对称密钥。
上述第三方面及第三方面各个可选装置的有益效果,可以参考上述第一方面及第一方面各个可选方法的有益效果,这里不再赘述。
第四方面,本发明提供一种区块链的数据分享装置,包括:数据传输模块,用于从区块链获取发起方上传的密文数据;生成模块,用于根据共享动态信息生成动态对称密钥;所述共享动态信息为发起方和接收方按照预设方式约定的动态更新信息;所述共享动态信息包括:主密钥和多个子密钥;所述主密钥和所述多个子密钥中至少有一个密钥为动态更新的密钥;解密模块,用于根据所述动态对称密钥对所述密文数据解密,获得共享数据。
可选的,所述多个子密钥包括:多个混淆信息和轮换数;所述轮换数为动态变化的正整数;所述生成模块具体用于:针对各片段信息中任一片段信息,将所述片段信息通过第一预设函数迭代执行N次,得到所述片段信息的迭代结果;其中,N是至少根据所述轮换数确定的;所述各片段信息中任一片段信息为所述主密钥和所述多个混淆信息中的至少一项;根据所述各片段信息的迭代结果,生成所述动态对称密钥。
可选的,所述多个混淆信息包括:发起方的混淆信息和至少一个接收方的混淆信息;所述接收方为所述至少一个接收方的任一接收方;所述数据传输模块还用于:获取来自所述发起方的混淆信息;验证了所述发起方的混淆信息通过后,发送所述接收方的混淆信息至所述发送方;获取来自所述发送方的所述至少一个接收方的混淆信息,在验证所述至少一个接收方的混淆信息中所述接收方的混淆信息后,确定和所述接收方成功约定了所述主密钥和所述多个混淆信息。
可选的,针对所述多个混淆信息中任一混淆信息,所述混淆信息均存在唯一映射的发起方或接收方;针对所述主密钥和所述多个子密钥中任一密钥,所述各片段信息中存在至少一个片段信息包含所述密钥。
可选的,所述多个子密钥包括:密钥更新周期和动态时间戳;所述生成模块具体用于:在任一密钥更新周期,根据初始时间戳和所述密钥更新周期动态迭代,得到所述动态时间戳;根据所述主密钥和所述多个子密钥,通过第二预设函数生成所述密钥更新周期的动态对称密钥;所述主密钥是前一密钥更新周期生成的动态对称密钥或原始静态密钥。
可选的,所述多个子密钥还包括:加密凭证;所述加密凭证是所述发起方根据所述初始随机值、所述初始时间戳和所述密钥更新周期生成的;所述获取模块还用于:获取来自所述发起方的所述加密凭证;在验证通过所述加密凭证后,确定和所述发起方约定了按照预设方式生成共享动态信息。
可选的,所述密文数据包括周期内传输计数;所述周期内传输计数为单个密钥更新周期内所述发起方上传数据至区块链的次数;所述生成模块还用于:更新所述周期内传输计数;所述周期内传输计数的初始值为预设值;若确定所述密文数据中的所述周期内传输计数的取值不为所述预设值,则重新根据所述共享动态信息生成所述动态对称密钥。
第五方面,本发明提供一种计算机设备,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面或第二方面及各个可选的方法。
第六方面,本发明提供一种存储介质,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面或第二方面及各个可选的方法。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为区块链的结构示意图;
图2为本发明实施例提供的一种区块链的数据分享方法对应的流程示意图;
图3为本发明实施例提供的一种区块链的数据分享方法中区块链的公私钥的示意图;
图4为本发明实施例提供的一种区块链的数据分享方法中通过预设方式约定共享动态信息的过程示意图;
图5为本发明实施例提供的一种区块链的数据分享装置的结构示意图;
图6为本发明实施例提供的另一种区块链的数据分享装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
下面首先列出本申请中出现的名词释义。
哈希算法(Hash):一类散列算法,用于给较长的数据生成摘要。本文中,Hash(x+y)意为:将x和y作为字符串拼接起来,再调用Hash算法生成摘要。
区块链:如图1所示,区块链是由一系列区块组成的一条链,每个块上除了记录本块的数据还会记录上一块的Hash值,通过这种方式组成一条链。区块链的核心理念有两个,一个是密码学技术,另一个是去中心化思想,基于这两个理念做到区块链上的历史信息无法被篡改。一个区块由块头和块体组成,其中块头定义包括该区块高度h,上一个区块的hash指prevHash等重要字段,而块体主要存储交易数据。
在金融机构(银行机构、保险机构或证券机构)在进行业务(如银行的贷款业务、存款业务等)运转过程中,一个机构有把数据存储在区块链上供另一合作机构获取的需求,如果直接将明文放到区块链上,所有机构都可以直接看到。显然,这就需要一个合理的数据加密分享方案。但是,目前的加密分享方式难以兼顾安全性和性能。这种情况不符合银行等金融机构的需求,无法保证金融机构各项业务的高效运转。为此,如图2所示,本申请实施例提供一种区块链的数据分享方法。
步骤201:发起方根据共享动态信息生成动态对称密钥。
步骤202:所述发起方根据所述动态对称密钥对共享数据进行加密,获得密文数据。
步骤203:所述发起方将所述密文数据发送至区块链。
步骤201~步骤203的方法中,所述共享动态信息为所述发起方和接收方按照预设方式约定的动态更新信息;所述共享动态信息包括:主密钥和多个子密钥;所述主密钥和所述多个子密钥中至少有一个密钥为动态更新的密钥。
步骤201~步骤203的方法中的区块链可以为多个机构组成的联盟链。如图3所示,每个机构(即每个参与方,可以为接收方或发起方)可以在本地生成一对公私钥,然后接入区块链,上传自己的明文公钥到链上,保证每个用户都能看到其他所有人的公钥。
应理解,步骤201~步骤203的方法,在接收方也有类似的步骤,步骤203之后,可以使得所述接收方从所述区块链获取所述密文数据,并根据所述共享动态信息生成所述动态对称密钥,并根据所述动态对称密钥对所述密文数据解密获得所述共享数据。
需要说明的是,共享动态信息中主密钥和多个子密钥的组成方式有多种,所述发起方和接收方约定所述共享动态信息的预设方式也可以有多种。因此,步骤201~步骤203的方法可以包括多类方法;下面以两类方法为例详细说明步骤203~步骤203的方法。第一类方法为基于混淆信息和轮换数的数据分享方法,第二类方法为基于密钥更新周期和动态时间戳的数据分享方法。
基于混淆信息和轮换数的数据分享方法可以如下:
一种可选实施方式(以下称为片段信息的实施方式)中,所述多个子密钥包括:多个混淆信息和轮换数;所述轮换数为动态变化的正整数;步骤201具体可以如下:
针对各片段信息中任一片段信息,所述发起方将所述片段信息通过第一预设函数迭代执行N次,得到所述片段信息的迭代结果;根据所述各片段信息的迭代结果,生成所述动态对称密钥。
其中,N是至少根据所述轮换数确定的;所述各片段信息中任一片段信息为所述主密钥和所述多个混淆信息中的至少一项。
举例来说,主密钥为M,共有K个混淆信息:S1、S2、S3…SK。那么各片段信息中任一片段信息可以从M和S1~SK中任意选取的至少一项。如片段信息1:M,S1;片段信息2:M,S2;片段信息3:S1,S2;片段信息4:M,S2,S3,具体如何选取各片段信息可以根据设定的规则,各片段信息的数目可以为一个或多个,在此不作限定。
第一预设函数迭代执行的N次,举例来说,轮换数为N0,N可以为N0,也可以是根据N0确定的正整数,如N0+1、N0-1或2*N0-1等,N还可以根据轮换数和具体的片段信息来确定。如对于S1,确定S1对应的N为N0+1;对于S2,确定S2对应的N为N0+2。具体的对应关系可以灵活设置,在此不做限定。
第一预设函数可以为第一预设哈希函数等函数,当第一预设函数为哈希函数时,由于哈希函数具有不可逆性,可以进一步增加动态对称密钥的破解难度。
上述实施方式中,根据所述各片段信息的迭代结果,生成所述动态对称密钥的一种实现方式可以为:
将所述各片段信息的哈希结果的级联结果,作为所述动态对称密钥。
基于片段信息的实施方式中,一种可选实施方式中,所述多个混淆信息包括:所述发起方的混淆信息和至少一个接收方的混淆信息;所述发起方按照以下方式和所述至少一个接收方中任一接收方约定所述主密钥和所述多个混淆信息:
所述发起方生成所述主密钥和所述发起方的混淆信息。
所述发起方将所述主密钥和所述发起方的混淆信息发送至所述接收方。
所述发起方获取所述至少一个接收方的混淆信息。
所述发起方将所述至少一个接收方的混淆信息发送至所述接收方。
所述发起方在确定所述接收方验证通过了所述至少一个接收方的混淆信息中所述接收方的混淆信息后,确定和所述接收方成功约定了所述主密钥和所述多个混淆信息。
其中,接收方的混淆信息是在接收方验证了所述发起方的混淆信息通过后发送的。
应理解,接收方侧对于约定所述主密钥和所述多个混淆信息也有类似的交互过程,在此不再赘述。
需要说明的是,发送方和接收方可以按照以下方式约定轮换数:
轮换数可以临时生成后,发送方通过上传至区块链分享给接收方(明文或者密文均可)。发送方可以通过交互与接收方约定一个初始的轮换数以及轮换数的更新规则。
基于片段信息的实施方式中,一种可选实施方式中,针对所述多个混淆信息中任一混淆信息,所述混淆信息均存在唯一映射的发起方或接收方;针对所述主密钥和所述多个子密钥中任一密钥,所述各片段信息中存在至少一个片段信息包含所述密钥。
具体来说,上述实施方式下,参与方共有:发起方、接收方1和接收方2。发起方拥有唯一映射的混淆信息:混淆信息1,接收方1拥有唯一映射的混淆信息:混淆信息2,接收方2拥有唯一映射的混淆信息:混淆信息3。
举例来说,主密钥为M,共有K个混淆信息:S1、S2、S3…SK。各片段信息中,必然有某个片段信息包含M、必然有某个片段信息S1直至SK,均有必然包含SK的片段信息。也就是说,所述各片段信息完全覆盖了所述主密钥和所述多个子密钥,没有遗漏的密钥。
下面基于上述实施方式,详细介绍基于混淆信息和轮换数的数据分享方法。
如图4所示,以多个机构为组,基于在区块链上的公钥,协商约定主密钥和所述多个子密钥的一种场景为例说明。不失一般性,假设三个机构A、B、C成组,每个机构都把数据加密后上传到链上,并通过链分享给组中的所有成员机构。假设机构A是组发起者。
步骤(1):机构A在本地生成一个随机字符串作为主密钥K0,长度自定。长度越长越难以破解;同时生成一个随机字符串SA作为机构A的混淆信息。
步骤(2):机构A将K0和SA拼接起来并序列化,使用机构A的私钥对主密钥K0生成签名,并从区块链上获取到并使用机构B和机构C的公钥,对此追加了签名的字符串整体进行加密,生成两组非对称加密的密文。机构A不限方式将这两组加密密文发给机构B和机构C。
步骤(3):机构B和机构C使用机构B和机构C自身的私钥解密,再使用机构A的公钥验证签名是否合法。若合法,机构B和机构C中任一机构,读取其中的K0和SA,并将其存入机构本地数据库中。
步骤(4):机构B和机构C在本地分别生成各机构的随机字符串SB和SC,作为机构B和C的混淆信息。
步骤(5):类似步骤(2),机构B和机构C各自将本机构的混淆信息序列化,各自使用本机构的私钥对序列化字符串生成签名,并从区块链上获取到机构A的公钥,对此追加了签名的字符串加密。机构B和机构C不限方式将自己的加密密文发给机构A。
步骤(6):类似步骤(3),机构A对来自机构B和机构C的密文各自使用私钥进行解密、并验证签名。若合法,读取其中的SB和SC,存入本地数据库中。
至此,组发起方,也即机构A,已经完成了来自机构B、C的主密钥、混淆信息的初始化和同步,但还需为机构B、C之间完成初始化。
步骤(7):类似步骤(2),机构A将SB和SC拼接起来并序列化,使用机构A的私钥生成签名并分别使用机构B、C的公钥加密,生成两组密文,并发送给机构B、C。
步骤(8):类似步骤(3),机构B、C使用自己的私钥解密及机构A公钥验证合法性,若合法,则机构B、C各自比对收到的混淆信息是否和步骤(4)中发送给机构A的混淆信息是否一致;若一致,则将机构B、C的混淆信息存入本地数据库中。
步骤(9):类似步骤(3),机构B、C向机构A返回同步完成。该步骤可以通过加密签名传输,也可以不加密签名传输。
在执行步骤(1)~步骤(9)过程后,可以进行选择性的轮换,约定轮换数,对数据加解密并上传到区块链智能合约里,供组内的其他机构解密。已经成功约定了主密钥和多个子密钥。进一步地,由于已经完成了同步,因此任何一个机构都可以向上链加密数据。按照数据上传方和数据使用方的角色划分来介绍数据如何上链,及组内成员如何解密数据。不失一般性,我们假设机构A为数据的上传方(加密方,对应发起方),机构C为数据的使用方(解密方,接收方),但是加密方也可以为接收方,解密方也可以为发起方。不限制数据为单向传输,任何一个机构上传数据到链上,可以被组内的其他任何机构所使用。
表1为链上数据格式样例:
Figure BDA0002657933060000151
表1
数据分享的过程如下:
SA作为数据的上传方;随机生成一个正整数N0,作为本次数据上链的轮换数。
SA从本地数据库里加载主密钥K0和本机构的混淆信息SA。
SA计算本次上链的动态对称密钥KN=Hash1(N0次Hash1(K0+SA)+N0-1次Hash1(K0+SA)+Hash1(SB+SC))。N0次Hash1(K0+SA)表示将K0+SA输入至Hash1,迭代执行N0次;N0-1次Hash1(K0+SA)类似,Hash1为第一预设函数。
更具体地,生成的KN对称密钥的具体步骤说明:
首先使用K0拼接本机构的混淆信息SA作为Hash1的原文,进行N-1次Hash1的迭代,作为第一哈希结果;对第一哈希结果、执行Hash1,作为第二哈希结果;将第一哈希结果和第二哈希结果拼接起来(即为级联结果)。
将其他所有机构的混淆信息拼接后(如按照字母序拼接),执行Hash1,得到第三哈希结果,对第三哈希结果再次执行Hash1,即为KN。
使用KN对共享数据进行加密,将加密后的密文数据上链。按照表1的格式,填入轮换数、上传机构名,及其他必要字段(如交易索引),并写入如上表格式所规定的链上智能合约中。
SC作为数据的使用方;从区块链智能合约里获取需要解密的共享数据,及轮换数、上传机构名。根据上传机构名,从本地数据库中获取SA。
计算本次上链的动态对称密钥KN=Hash1(N0次Hash1(K0+SA)+N0-1次Hash1(K0+SA)+Hash1(SB+SC))。N0次Hash1(K0+SA)表示将K0+SA输入至Hash1,迭代执行N0次;N0-1次Hash1(K0+SA)类似,Hash1为第一预设函数。
使用KN对共享数据进行解密。
综上所述,基于混淆信息和轮换数的数据分享方法中,在数据的加密过程中,只用到了本机构中存储的主密钥和多个子密钥;在数据解密过程中,由于组内主密钥和多个子密钥都已经预先同步完成,因此也不需要额外的同步过程,计算动态对称密钥的过程均为在机构本地计算。
基于混淆信息和轮换数的数据分享方法中,即便对动态对称密钥的破解均只能影响到单一的一次交易,动态对称密钥每次交易均不相同。再者,但使用哈希函数生成动态对称密钥时,动态对称密钥的生成是两轮Hash1,内轮为两次邻近的轮换数的拼接,外轮还要补充一轮Hash1。即使外轮Hash1被攻破,攻击者只能拿到三个hash1的拼接结果。由于混淆信息的存在,至多有一个未知的混淆信息,才有可能解出K0的值(数学证明略去)。在K0和混淆信息S没有被同时攻破的前提下,是无法通过交易数反推前后两次的动态对称密钥的。即使K0被泄露了,只要各机构的混淆信息S没有泄露,整个流程都是安全的。即使单个机构的K0和盐值S泄露了,那么也只是此机构所上传的数据不再安全了,不影响其他机构上传数据及解密。
上述方法是在应用程进行数据加密的,上述方法在应用层借鉴了数据隔离的思路强化了对称密钥加密机制。数据交换的双方首先将自身的公钥存到链上。首先,需要使用区块链共享数据的多方通过区块链协商一个共同的初始随机密钥及每方一个初始加密盐值。随后,每个机构基于此共同的初始随机密钥和初始盐值,生成一个轮换数,并对初始密钥和加密盐值,进行「轮换数」次轮换作为本次交易的对称密钥。最后,机构基于此对称密钥将数据进行加密并与交易数一起发送到区块链上。其他机构可以根据数据上传的发起方、交易数,仅凭本地计算就可以得到对称密钥用来解密。
基于密钥更新周期和动态时间戳的数据分享方法可以如下:
一种可选实施方式(以下称为动态时间戳的实施方式)中,所述多个子密钥包括:密钥更新周期和动态时间戳;步骤201具体可以如下:
在任一密钥更新周期,所述发起方根据初始时间戳和所述密钥更新周期动态迭代,得到所述动态时间戳;所述发起方根据所述主密钥和所述多个子密钥,通过第二预设函数生成所述密钥更新周期的动态对称密钥;所述主密钥是前一密钥更新周期生成的动态对称密钥或原始静态密钥。
举例来说,所述初始时间戳为T0,初试时间戳也可以取当前的块高,所述密钥更新周期为30s。第二预设函数可以为哈希函数。
基于动态时间戳的实施方式,一种可选实施方式中,所述多个子密钥还包括:加密凭证;步骤201之前,可以执行以下步骤:
所述发起方生成初始随机值。
所述发起方根据所述初始随机值、所述初始时间戳和所述密钥更新周期,生成所述加密凭证。
所述发起方根据所述初始随机值、所述初始时间戳、所述密钥更新周期和所述加密凭证,生成所述原始静态密钥。
所述发起方将所述加密凭证发送至所述接收方。
所述发起方基于所述接收方验证通过所述加密凭证,确定和所述接收方约定了按照预设方式生成共享动态信息。
应理解,上述步骤在所述接收方侧也有相应的类似步骤。
需要说明的是,所述发起方确定了所述接收方会基于所述加密凭证、所述初始随机值、所述初始时间戳和所述密钥更新周期,生成所述原始静态密钥,以及确定所述接收方从所述初始时间戳开始,将按照所述密钥更新周期,迭代更新所述动态时间戳,以及迭代更新所述主密钥,从而约定了所述主密钥和所述多个子密钥。
基于动态时间戳的实施方式,一种可选实施方式中,所述密文数据包括周期内传输计数;所述周期内传输计数为单个密钥更新周期内所述发起方上传数据至区块链的次数;步骤203之后,还可以执行如下步骤:
所述发起方更新所述周期内传输计数;所述周期内传输计数的初始值为预设值;所述密文数据中的所述周期内传输计数的取值不为所述预设值时,用于触发所述接收方重新根据所述共享动态信息生成所述动态对称密钥。
下面基于上述实施方式,详细介绍基于密钥更新周期和动态时间戳的数据分享方法。
发起方在本地生成一个初始随机值,长度自定(初始随机值越长越难以破解)。发起方使用发起方的私钥初始随机值生成签名,并使用接收方的公钥,根据密钥更新周期和初试时间戳对追加了签名的初始随机值整体进行加密,生成加密凭证。密钥更新周期,如30s,意味着不论是否有数据交换操作发生,每隔30s,会轮换一次公钥;同时预估并设置一个T0作为初始时间戳,可以设置为临近的时刻。如果发起方和接收方无法进行准确的时间同步,则可以通过当前的区块链块高作为初始时间戳的替代值。
发起方不限方式将加密凭证发给接收方,举例来说,通过区块链。接收方使用接收方的私钥解开凭证密文,再通过发起方的公钥,验证签名有效,如果验证通过,存储下初始随机值。
接收方确保双方的服务时间是同步的。接收方完成以上步骤后,使用和发送方相同的方式向发起方回复同步成功。
进一步地,接收方生成原始静态密钥=Hash2(初始随机值+T+Hash2(加密凭证按照Json格式的序列化)+初始时间戳)。Hash2表示第二预设哈希函数。以T为密钥更新周期维护一个列表,表键为“所有成功确认的数据发起方”,表值为生成的动态对称密钥、密钥更新周期T、动态时间戳、Hash2(加密凭证按照Json格式的序列化)。其中,轮换时间戳的初始值为数据发起方发来的T0;Tick项的作用是数据交换时用到,在初始化时和每次更新对称密钥时,重置为0。
周期任务作为一个内存服务持续运行。比对当前时间和T0的差,一旦过了T,就重新计算动态对称密钥=Hash(主密钥+T+Hash(凭证按照Json格式的序列化)+动态时间戳),更新此动态对称密钥,并将动态时间戳更新在表格里。
表2为一个范例:
Figure BDA0002657933060000191
表2
进一步地,发起方验证同步成功信息。
如果验证通过,则可以认为此初始随机值已经得到了发起方和接收方的确认,那么发起方使用上述生成动态对称密钥的计算方法和更新方式,在本地生成并轮换此动态对称密钥,并维护一个相同的表格内容项。按照以上方式,数据的发起方、接收方,在本地生成的对称密钥,应当是完全一致的;所共同维护的表格项,对应的值也应该是完全一致。
如果验证失败,或超过一个较长的时长阈值都没有收到这一同步信息,则发起方回到第1步,重启整个约定共享动态信息的流程。整个流程结束之后,则可认为在发起方和接收方之间协商建立了一条可信的加密数据通道,且加密密钥安全性通过密钥更新周期轮换。此后,交换的双方便可同时使用这条通道进行双向类型的数据传输。
在此基础上,为了进一步提高在密钥更新周期内的数据安全性,还可以引入了周期内传输计数(Tick参数),表示在一个T内,动态对称密钥需要在每次发送之后进行密钥更新周期内的更新,这是有别于密钥更新周期到期之后的轮换的。
作为数据发送方:
读取数据库,获取当前的动态对称密钥;使用动态对称密钥对需要传输的共享数据进行加密;读取数据库的Tick值并捎带至密文数据尾部;将密文数据通过任何方式发送给接收方;Tick值加1。
作为数据的接收方:
读取数据库,获取当前的动态对称密钥;读取密文尾部的Tick值;如果Tick值不为0,则重新迭代计算Tick次数的动态对称密钥=Hash 2(当前对称密钥+T+Hash2(凭证按照Json格式的序列化)+当前时间戳),作为动态对称密钥;由此可见,此时因为没有触发密钥更新周期轮换,因此动态时间戳不变;同时,数据发送方和接收方对Tick的计算是完全独立的,因此也是和对方解耦的。使用此动态对称密钥解密。
上述基于双方动态时间戳方案,在进行数据交换的开始阶段首先协商一个初始随机值,然后双方基于此初始随机值,在双方同步动态时间戳的前提下,通过相同的时间槽和数据交换的频率自动轮换生成动态对称密钥,并用此动态对称密钥进行共享数据加密再传输。在不可靠信道上,各交易对手方共用通信信道、并基于应用层对称加密、对称加密密钥轮换对共享数据进行处理是一类通用的解决方案。本发明设计上考虑了区块链的交易模式、数据特征,设计了适用区块链场景的对称加密密钥轮换机制。
需要说明的是,两类方案,效率和安全性的统一,数据交换过程中仅使用对称加密,保证效率;全程数据交换过程均不需要重新连接区块链节点或对手方进行任何形式的密钥重协商,一切轮换计算均为本地;最后,通过多个密钥,尽可能地降低了一旦密钥被攻破情况下的影响范围。
如图5所示,本发明提供一种区块链的数据分享装置,包括:生成模块501,用于根据共享动态信息生成动态对称密钥;所述共享动态信息为发起方和接收方按照预设方式约定的动态更新信息;所述共享动态信息包括:主密钥和多个子密钥;所述主密钥和所述多个子密钥中至少有一个密钥为动态更新的密钥;加密模块502,用于根据所述动态对称密钥对共享数据进行加密,获得密文数据;数据传输模块503,用于将所述密文数据发送至区块链。
可选的,所述多个子密钥包括:多个混淆信息和轮换数;所述轮换数为动态变化的正整数;所述生成模块501具体用于:针对各片段信息中任一片段信息,将所述片段信息通过第一预设函数迭代执行N次,得到所述片段信息的迭代结果;其中,N是至少根据所述轮换数确定的;所述各片段信息中任一片段信息为所述主密钥和所述多个混淆信息中的至少一项;根据所述各片段信息的迭代结果,生成所述动态对称密钥。
可选的,所述多个混淆信息包括:所述发起方的混淆信息和至少一个接收方的混淆信息;所述接收方为所述至少一个接收方中任一接收方;所述生成模块501还用于:生成所述主密钥和所述发起方的混淆信息;所述数据传输模块503还用于:将所述主密钥和所述发起方的混淆信息发送至所述接收方;获取所述至少一个接收方的混淆信息;其中,接收方的混淆信息是在接收方验证了所述发起方的混淆信息通过后发送的;将所述至少一个接收方的混淆信息发送至所述接收方;在确定所述接收方验证通过了所述至少一个接收方的混淆信息中所述接收方的混淆信息后,确定和所述接收方成功约定了所述主密钥和所述多个混淆信息。
可选的,针对所述多个混淆信息中任一混淆信息,所述混淆信息均存在唯一映射的发起方或接收方;针对所述主密钥和所述多个子密钥中任一密钥,所述各片段信息中存在至少一个片段信息包含所述密钥。
可选的,所述多个子密钥包括:密钥更新周期和动态时间戳;所述生成模块501具体用于:在任一密钥更新周期,根据初始时间戳和所述密钥更新周期动态迭代,得到所述动态时间戳;根据所述主密钥和所述多个子密钥,通过第二预设函数生成所述密钥更新周期的动态对称密钥;所述主密钥是前一密钥更新周期生成的动态对称密钥或原始静态密钥。
可选的,所述多个子密钥还包括:加密凭证;所述生成模块501还用于:生成初始随机值;根据所述初始随机值、所述初始时间戳和所述密钥更新周期,生成所述加密凭证;根据所述初始随机值、所述初始时间戳、所述密钥更新周期和所述加密凭证,生成所述原始静态密钥;所述数据传输模块503还用于:将所述加密凭证发送至所述接收方;基于所述接收方验证通过所述加密凭证,确定和所述接收方约定了按照预设方式生成共享动态信息。
可选的,所述密文数据包括周期内传输计数;所述周期内传输计数为单个密钥更新周期内所述发起方上传数据至区块链的次数;所述生成模块501还用于:更新所述周期内传输计数;所述周期内传输计数的初始值为预设值;所述密文数据中的所述周期内传输计数的取值不为所述预设值时,用于触发所述接收方重新根据所述共享动态信息生成所述动态对称密钥。
如图6所示,本发明提供一种区块链的数据分享装置,包括:数据传输模块501,用于从区块链获取发起方上传的密文数据;生成模块502,用于根据共享动态信息生成动态对称密钥;所述共享动态信息为发起方和接收方按照预设方式约定的动态更新信息;所述共享动态信息包括:主密钥和多个子密钥;所述主密钥和所述多个子密钥中至少有一个密钥为动态更新的密钥;解密模块503,用于根据所述动态对称密钥对所述密文数据解密,获得共享数据。
可选的,所述多个子密钥包括:多个混淆信息和轮换数;所述轮换数为动态变化的正整数;所述生成模块502具体用于:针对各片段信息中任一片段信息,将所述片段信息通过第一预设函数迭代执行N次,得到所述片段信息的迭代结果;其中,N是至少根据所述轮换数确定的;所述各片段信息中任一片段信息为所述主密钥和所述多个混淆信息中的至少一项;根据所述各片段信息的迭代结果,生成所述动态对称密钥。
可选的,所述多个混淆信息包括:发起方的混淆信息和至少一个接收方的混淆信息;所述接收方为所述至少一个接收方的任一接收方;所述数据传输模块501还用于:获取来自所述发起方的混淆信息;验证了所述发起方的混淆信息通过后,发送所述接收方的混淆信息至所述发送方;获取来自所述发送方的所述至少一个接收方的混淆信息,在验证所述至少一个接收方的混淆信息中所述接收方的混淆信息后,确定和所述接收方成功约定了所述主密钥和所述多个混淆信息。
可选的,针对所述多个混淆信息中任一混淆信息,所述混淆信息均存在唯一映射的发起方或接收方;针对所述主密钥和所述多个子密钥中任一密钥,所述各片段信息中存在至少一个片段信息包含所述密钥。
可选的,所述多个子密钥包括:密钥更新周期和动态时间戳;所述生成模块502具体用于:在任一密钥更新周期,根据初始时间戳和所述密钥更新周期动态迭代,得到所述动态时间戳;根据所述主密钥和所述多个子密钥,通过第二预设函数生成所述密钥更新周期的动态对称密钥;所述主密钥是前一密钥更新周期生成的动态对称密钥或原始静态密钥。
可选的,所述多个子密钥还包括:加密凭证;所述加密凭证是所述发起方根据所述初始随机值、所述初始时间戳和所述密钥更新周期生成的;所述获取模块还用于:获取来自所述发起方的所述加密凭证;在验证通过所述加密凭证后,确定和所述发起方约定了按照预设方式生成共享动态信息。
可选的,所述密文数据包括周期内传输计数;所述周期内传输计数为单个密钥更新周期内所述发起方上传数据至区块链的次数;所述生成模块502还用于:更新所述周期内传输计数;所述周期内传输计数的初始值为预设值;若确定所述密文数据中的所述周期内传输计数的取值不为所述预设值,则重新根据所述共享动态信息生成所述动态对称密钥。
基于同一发明构思,本发明实施例还提供了一种计算机设备,包括程序或指令,当所述程序或指令被执行时,如本发明实施例提供的区块链的数据分享方法及任一可选方法被执行。
基于同一发明构思,本发明实施例还提供了一种计算机可读存储介质,包括程序或指令,当所述程序或指令被执行时,如本发明实施例提供的区块链的数据分享方法及任一可选方法被执行。
本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (11)

1.一种区块链的数据分享方法,其特征在于,包括:
发起方根据共享动态信息生成动态对称密钥;所述共享动态信息为所述发起方和接收方按照预设方式约定的动态更新信息;所述共享动态信息包括:主密钥和多个子密钥;所述主密钥和所述多个子密钥中至少有一个密钥为动态更新的密钥;
所述发起方根据所述动态对称密钥对共享数据进行加密,获得密文数据;
所述发起方将所述密文数据发送至区块链。
2.如权利要求1所述的方法,其特征在于,所述多个子密钥包括:多个混淆信息和轮换数;所述轮换数为动态变化的正整数;
所述发起方根据共享动态信息生成动态对称密钥,包括:
针对各片段信息中任一片段信息,所述发起方将所述片段信息通过第一预设函数迭代执行N次,得到所述片段信息的迭代结果;其中,N是至少根据所述轮换数确定的;所述各片段信息中任一片段信息为所述主密钥和所述多个混淆信息中的至少一项;
根据所述各片段信息的迭代结果,生成所述动态对称密钥。
3.如权利要求2所述的方法,其特征在于,所述多个混淆信息包括:所述发起方的混淆信息和至少一个接收方的混淆信息;所述发起方按照以下方式和所述至少一个接收方中任一接收方约定所述主密钥和所述多个混淆信息:
所述发起方生成所述主密钥和所述发起方的混淆信息;
所述发起方将所述主密钥和所述发起方的混淆信息发送至所述接收方;
所述发起方获取所述至少一个接收方的混淆信息;其中,接收方的混淆信息是在接收方验证了所述发起方的混淆信息通过后发送的;
所述发起方将所述至少一个接收方的混淆信息发送至所述接收方;
所述发起方在确定所述接收方验证通过了所述至少一个接收方的混淆信息中所述接收方的混淆信息后,确定和所述接收方成功约定了所述主密钥和所述多个混淆信息。
4.如权利要求2或3所述的方法,其特征在于,针对所述多个混淆信息中任一混淆信息,所述混淆信息均存在唯一映射的发起方或接收方;针对所述主密钥和所述多个子密钥中任一密钥,所述各片段信息中存在至少一个片段信息包含所述密钥。
5.如权利要求1所述的方法,其特征在于,所述多个子密钥包括:密钥更新周期和动态时间戳;
所述发起方根据共享动态信息生成动态对称密钥,包括:
在任一密钥更新周期,所述发起方根据初始时间戳和所述密钥更新周期动态迭代,得到所述动态时间戳;
所述发起方根据所述主密钥和所述多个子密钥,通过第二预设函数生成所述密钥更新周期的动态对称密钥;所述主密钥是前一密钥更新周期生成的动态对称密钥或原始静态密钥。
6.如权利要求5所述的方法,其特征在于,所述多个子密钥还包括:加密凭证;所述发起方根据共享动态信息生成对称动态密钥之前,还包括:
所述发起方生成初始随机值;
所述发起方根据所述初始随机值、所述初始时间戳和所述密钥更新周期,生成所述加密凭证;
所述发起方根据所述初始随机值、所述初始时间戳、所述密钥更新周期和所述加密凭证,生成所述原始静态密钥;
所述发起方将所述加密凭证发送至所述接收方;
所述发起方基于所述接收方验证通过所述加密凭证,确定和所述接收方约定了按照预设方式生成共享动态信息。
7.如权利要求5或6所述的方法,其特征在于,所述密文数据包括周期内传输计数;所述周期内传输计数为单个密钥更新周期内所述发起方上传数据至区块链的次数;所述发起方将所述密文数据发送至区块链之后,还包括:
所述发起方更新所述周期内传输计数;所述周期内传输计数的初始值为预设值;所述密文数据中的所述周期内传输计数的取值不为所述预设值时,用于触发所述接收方重新根据所述共享动态信息生成所述动态对称密钥。
8.一种区块链的数据分享方法,其特征在于,包括:
接收方从区块链获取发起方上传的密文数据;
所述接收方根据共享动态信息生成动态对称密钥;所述共享动态信息为所述发起方和所述接收方按照预设方式约定的动态更新信息;所述共享动态信息包括:主密钥和多个子密钥;所述主密钥和所述多个子密钥中至少有一个密钥为动态更新的密钥;
所述接收方根据所述动态对称密钥对所述密文数据解密,获得共享数据。
9.一种区块链的数据分享装置,其特征在于,包括:
生成模块,用于根据共享动态信息生成动态对称密钥;所述共享动态信息为发起方和接收方按照预设方式约定的动态更新信息;所述共享动态信息包括:主密钥和多个子密钥;所述主密钥和所述多个子密钥中至少有一个密钥为动态更新的密钥;
加密模块,用于根据所述动态对称密钥对共享数据进行加密,获得密文数据;
发送模块,用于将所述密文数据发送至区块链。
10.一种计算机设备,其特征在于,包括程序或指令,当所述程序或指令被执行时,如权利要求1至7或8中任意一项所述的方法被执行。
11.一种计算机可读存储介质,其特征在于,包括程序或指令,当所述程序或指令被执行时,如权利要求1至7或8中任意一项所述的方法被执行。
CN202010894274.5A 2020-08-31 2020-08-31 一种区块链的数据分享方法及装置 Pending CN112039883A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010894274.5A CN112039883A (zh) 2020-08-31 2020-08-31 一种区块链的数据分享方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010894274.5A CN112039883A (zh) 2020-08-31 2020-08-31 一种区块链的数据分享方法及装置

Publications (1)

Publication Number Publication Date
CN112039883A true CN112039883A (zh) 2020-12-04

Family

ID=73586564

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010894274.5A Pending CN112039883A (zh) 2020-08-31 2020-08-31 一种区块链的数据分享方法及装置

Country Status (1)

Country Link
CN (1) CN112039883A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112953902A (zh) * 2021-01-26 2021-06-11 湖南北斗微芯数据科技有限公司 一种工业物联网数据加密通信系统及方法
CN114338047A (zh) * 2022-03-08 2022-04-12 科大天工智能装备技术(天津)有限公司 基于国密的区块链工业数据加密方法、装置及存储介质
WO2023030316A1 (zh) * 2021-08-31 2023-03-09 蔡利锋 密钥生成和分发方法、密钥生成装置、密钥管理系统
CN115941182A (zh) * 2023-02-21 2023-04-07 浙江国利信安科技有限公司 用于网络密钥更新的方法、计算设备和存储介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112953902A (zh) * 2021-01-26 2021-06-11 湖南北斗微芯数据科技有限公司 一种工业物联网数据加密通信系统及方法
WO2023030316A1 (zh) * 2021-08-31 2023-03-09 蔡利锋 密钥生成和分发方法、密钥生成装置、密钥管理系统
CN114338047A (zh) * 2022-03-08 2022-04-12 科大天工智能装备技术(天津)有限公司 基于国密的区块链工业数据加密方法、装置及存储介质
CN115941182A (zh) * 2023-02-21 2023-04-07 浙江国利信安科技有限公司 用于网络密钥更新的方法、计算设备和存储介质
CN115941182B (zh) * 2023-02-21 2024-01-30 浙江国利信安科技有限公司 用于网络密钥更新的方法、计算设备和存储介质

Similar Documents

Publication Publication Date Title
US11936774B2 (en) Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
CN113424185B (zh) 快速不经意传输
CN108352015B (zh) 用于基于区块链的系统结合钱包管理系统的安全多方防遗失存储和加密密钥转移
WO2020108019A1 (zh) 一种基于联盟链的数据传递方法及装置
CN108199835B (zh) 一种多方联合私钥解密方法
US5907618A (en) Method and apparatus for verifiably providing key recovery information in a cryptographic system
US9246674B2 (en) Generation of cryptographic keys
JP7190481B2 (ja) 複数のストレージノードにわたる大きいブロックチェーンのセキュアな記憶を可能にする、コンピュータにより実現されるシステム及び方法
CN108418686A (zh) 一种多分布式的sm9解密方法与介质及密钥生成方法
CN112039883A (zh) 一种区块链的数据分享方法及装置
TWI760546B (zh) 用於高安全性高速資料加密及傳輸的電腦實施系統與方法
US20240097894A1 (en) Threshold key exchange
JP2022540653A (ja) データ保護及び回復システム及び方法
WO2022185328A1 (en) System and method for identity-based key agreement for secure communication
CN113746829B (zh) 多源数据的关联方法、装置、设备及存储介质
Hussain et al. Blockchain Architecture, Components and Considerations
Hussain et al. Blockchain basic architecture components and considerations
KR20220142254A (ko) 블룸 필터를 이용한 블록체인에서의 다중 서명 지갑 시스템
TECH ENHANCED SECURITY ALGORITHM FOR WIRELESS NETWORK-^ M.

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