CN113343286B - 一种数据加解密方法、数据上传端、数据接收端及*** - Google Patents
一种数据加解密方法、数据上传端、数据接收端及*** Download PDFInfo
- Publication number
- CN113343286B CN113343286B CN202110894013.8A CN202110894013A CN113343286B CN 113343286 B CN113343286 B CN 113343286B CN 202110894013 A CN202110894013 A CN 202110894013A CN 113343286 B CN113343286 B CN 113343286B
- Authority
- CN
- China
- Prior art keywords
- data
- ciphertext
- password
- plaintext
- bloom filter
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种数据加解密方法、数据上传端、数据接收端及***,方法包括加密方法与解密方法,加密方法包括:获取数据明文及AES密钥,结合AES密钥对数据明文进行加密,得数据密文;将数据密文编码得字符串密文并写入至区块链数据库中。解密方法包括:获取数据密文、解密口令及预设口令,将解密口令与预设口令进行认证;当认证通过,输出数据明文;当认证不通过,输出数据密文。上述数据加解密方法、数据上传端、数据接收端及***,通过口令认证的方式,不涉及密钥分配,对于不同组的数据可设置不同的布隆过滤器进行验证,实现数据的差异化验证,保证数据安全,解决了现有技术中的加密算法需要管理密钥,导致数据安全存在安全隐患的技术问题。
Description
技术领域
本发明涉及区块链技术领域,特别涉及一种数据加解密方法、数据上传端、数据接收端及***。
背景技术
信息安全是当今社会广泛关注的热点,其中隐私数据的保护又是重中之重。隐私数据不仅需要对于除数据拥有者的其他用户保密,还需对数据储存单位进行保密,密码学的发展为前者提供了技术支撑,而区块链技术的产生为后者扫除了障碍。
智能合约是区块链中关键的逻辑代码,运行在一个安全隔离的虚拟机中,是数据从客户端到数据库的中间层。智能合约本质上来说就是一串计算机自动执行的代码,按照预设的条件,当满足合约中的要求时将自动运行逻辑代码。早期智能合约并没有得到特别的重视,直到区块链技术的诞生,极大了推动了智能合约的发展,其不可篡改,去中心化的特性正是智能合约能够正确,安全运行的基石。自此,一系列结合智能合约的应用场景应运而生。
在基于区块链的农产品溯源***中,因为数据都保存在区块链中,导致所有隶属联盟链的组织都可以自由查看数据,而对于隐私数据,数据拥有者并不想公开,比如:对于生产商而言,涉及法人身份证号、联系电话、家庭住址等敏感数据就不想被公开,此时可以采用加密技术。
现有技术中,主要有两种类型的加密算法:对称加密和非对称加密,不管是哪种加密算法都面临着密钥管理的问题,一旦加密密钥丢失,数据的安全就受到威胁。因此,密钥的管理成为了制约信息发展安全的一大难题。
发明内容
基于此,本发明的目的是提供一种数据加解密方法、数据上传端、数据接收端及***,用于解决现有技术中的加密算法需要管理密钥,导致数据安全存在安全隐患的技术问题。
本发明一方面提供一种数据加密方法,所述方法包括:
获取数据明文,对所述数据明文进行序列化处理,得到字节流明文;
获取AES密钥,结合所述AES密钥对所述字节流明文进行AES算法加密,得到数据密文;
将所述数据密文进行编码得到字符串密文;
将所述字符串密文经数据上链写入至区块链数据库中。
本发明另一方面提供一种数据解密方法,所述方法包括:
获取区块链数据库发送的数据密文;
获取用户输入的解密口令,并从所述区块链数据库的布隆过滤器当中获取预设口令,将所述解密口令与所述预设口令进行认证,所述预设口令为所述数据密文上链前预存到布隆过滤器当中的口令;
当认证通过,则对所述数据密文进行AES算法解密,对AES算法解密后的数据密文进行逆序列化,得到与所述数据密文对应的数据明文,输出所述数据明文;
当认证不通过,则输出所述数据密文。
上述数据加解密方法,通过将数据明文结合AES密钥对数据明文进行序列化处理得到的字节流明文进行AES算法加密,得到的数据密文经数据上链至区块链数据库中,当需要访问数据时,从区块链数据库中获取数据密文,根据预设口令认证输入的解密口令是否通过,认证通过后对数据解密并输出与数据密文对应的数据明文,认证失败则输出数据密文,通过口令认证的方式,不涉及密钥的分配,避免因密钥丢失而威胁数据安全,对于不同组的数据可通过设置不同的布隆过滤器进行验证,实现数据的差异化验证,保证了数据安全,解决了现有技术中的加密算法需要管理密钥,导致数据安全存在安全隐患的技术问题。
另外,根据本申请上述的数据加解密方法,还可以具有如下附加的技术特征:
进一步地,所述获取AES密钥的步骤之前包括:
通过AES密钥生成算法生成所述AES密钥。
进一步地,所述AES密钥可重复对多组数据明文进行使用。
进一步地,所述将所述字符串密文经数据上链写入至区块链数据库中的步骤包括:
将所述字符串密文以k-v键值对方式写入至区块链数据库中。
进一步地,所述从所述区块链数据库的布隆过滤器当中获取预设口令的步骤之前包括:
将所述布隆过滤器设于所述区块链数据库中;
将所述预设口令储存于布隆过滤器中,当所述预设口令于所述布隆过滤器内的储存时长超过预设时长时,清空储存于所述布隆过滤器内的所述预设口令。
进一步地,所述布隆过滤器可同时容纳多个不同的预设口令。
本发明另一方面提供一种数据上传端,包括:
数据明文获取模块,用于获取数据明文,对所述数据明文进行序列化处理,得到字节流明文;
加密模块,用于获取AES密钥,结合所述AES密钥对所述字节流明文进行AES算法加密,得到数据密文;
编码模块,用于将所述数据密文进行编码得到字符串密文;
写入模块,用于将所述字符串密文经数据上链写入至区块链数据库中。
本发明另一方面还提供一种数据接收端,包括:
数据密文获取模块,用于获取区块链数据库发送的数据密文;
认证模块,用于获取用户输入的解密口令,并从所述区块链数据库的布隆过滤器当中获取预设口令,将所述解密口令与所述预设口令进行认证,所述预设口令为所述数据密文上链前预存到布隆过滤器当中的口令;
第一执行模块,当认证通过,则对所述数据密文进行AES算法解密,对AES算法解密后的数据密文进行逆序列化,得到与所述数据密文对应的数据明文,输出所述数据明文;
第二执行模块,当认证不通过,则输出所述数据密文。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实施例了解到。
附图说明
图1为本发明第一实施例中联盟链框架图;
图2为本发明第一实施例中智能合约设计图;
图3为本发明第一实施例中数据加密流程图;
图4为本发明第一实施例中聚合加密过程架构图;
图5为本发明第一实施例中数据解密流程图;
图6为本发明第一实施例中布隆过滤器设计图;
图7为本发明第一实施例中口令认证流程图;
图8为本发明第一实施例中数据输入-查询流程示意图。
图9为本发明实施例中第四实施例中数据加解密***架构图。
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的若干实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
联盟链是区块链的一种类型,在该链中各组织的节点是允许准入的。如图1所示,联盟链中各节点都在同一网络内,节点能够相互通信。智能合约运行在联盟链上,每个节点都安装了智能合约。本申请提出一种基于智能合约的聚合加密方法,聚合加密主要就是基于智能合约进行优化,在添加操作时,对数据进行加密,在查询数据时,进行口令认证,验证通过返回解密数据。区块链中使用了P2P技术,任意两个节点之间可以自由通信,每个节点都具备一份完整的数据库,通过共识机制实现了可用性与容错性,与传统中心化数据库不同,区块链这种链式结构具备去中心化,不可篡改,可追溯等优点,而智能合约运行在区块链中,可确保合约一旦运行不受外界干扰。根据这一特点,在智能合约上生成密钥并进行数据加密可消除密钥泄露的风险。
本研究将Hyperledger Fabric作为智能合约的区块链运行平台,在Fabric中智能合约也称作链码。Fabric中,链码运行在一个隔离,安全的容器内,当链码执行后,外部无法访问且链码不可更改,具体如图2所示。
实施例一
在本发明实施例中,请参阅图3,图3为本发明实施例中的数据加密方法的示意图,如图3所示,方法包括步骤S101至步骤S104:
S101、获取数据明文,对数据明文进行序列化处理,得到字节流明文。
首先将待加密数据进行序列化,此处的待加密数据即为数据明文,然后使用密钥生成算法生成的AES密钥对序列化后的数据进行AES加密,最后将加密后的数据以k-v键值对的方式保存到区块链世界状态中。
S102、获取AES密钥,结合AES密钥对字节流明文进行AES算法加密,得到数据密文。
在数据输入阶段,数据拥有者将待加密数据的口令上传至链码中,在链码内,数据进行加密,加密密钥在链码中根据算法生成,将加密后的数据以k-v键值对写入区块链世界状态,同时,将口令添加入布隆过滤器中;在数据查询阶段,首先根据k值获取加密数据,从数据拥有者中获取口令,使用口令通过认证,进行聚合解密,得到真实数据。
S103、将数据密文进行编码得到字符串密文。
S104、将字符串密文经数据上链写入至区块链数据库中。
具体的,将字符串密文经数据上链写入至区块链数据库中的步骤包括:
将字符串密文以k-v键值对方式写入至区块链数据库中。
本申请中的加密方法采用聚合加密方法,聚合加密是在智能合约上对数据进行总体加密的方法,根据任何类型数据都可以序列化为字节流这一特点,我们将数据转化为字节类型,通过AES进行加密。加密密钥在链码中生成,对任何人都不可见。如图4所示,先将Json对象采用Marshal函数进行序列化,之后采用AES对序列化后的字节进行加密,加密后的数据表现为乱码的形式,通过Base64编码转化为可见字符,最终保存在区块链中。
具体的,获取AES密钥的步骤之前包括:
通过AES密钥生成算法生成AES密钥。
在本申请中,AES密钥可重复对多组数据明文进行使用。
在本发明实施例中,请参阅图5,图5为本发明实施例中的数据解密方法的示意图,如图5所示,方法包括步骤S201至步骤S204:
S201、获取区块链数据库发送的数据密文。
在本实施例中,数据接收端向区块链数据库发送获取数据密文的请求,当区块链数据库接收到获取数据密文的请求时,向数据接收端发送数据密文。在一些可选实施例中,数据接收端可以为操作终端,例如电脑端、手机端等等。
根据查询数据的k值获取数据。此时,该数据为加密后的字符类型。根据k值从区块链世界状态中获取加密数据,然后从数据拥有者中获取口令,使用口令通过认证,之后进行AES解密,最后通过逆序列化获取解密后数据。
S202、获取用户输入的解密口令,并从区块链数据库的布隆过滤器当中获取预设口令,将解密口令与预设口令进行认证。
具体的,预设口令为数据密文上链前预存到布隆过滤器当中的口令。在本发明中,结合布隆过滤器周期性分发口令用于认证,不仅安全性高,也兼顾灵活性,口令存在有效期,通过对布隆过滤器的定时更新生成新的口令。
布隆过滤器是一种可以用于检测元素是否存在一个集合中的数据结构,由于所有元素都要经过Hash函数转换,而Hash碰撞的概率性事件的发生导致某一不存在的元素可能被检测为存在元素,也就是具有假阳性这一特点。为了降低假阳性的概率,如图6所示,在布隆过滤器中设置了一个计时器,当达到预设的时长,布隆过滤器将进行重置操作,清空所有的数据。因为口令作为存储元素,其数量是有限且较少的,本身发生误判的概率就低,加上计时器的设置,一方面使得认证准确率达到了可接受的范围,另一方面口令的更新保障了数据的安全性。
在本申请中,布隆过滤器可同时容纳多个不同的预设口令。
口令认证是通过输入相应的口令,认证通过后才具备相应的权限。如图7所示,口令认证在链码中实现,使用了布隆过滤器作为认证的功能,口令可以有多个,可以选择外部输入口令或者内部随机生成口令的方式,将口令输入布隆过滤器中完成绑定。在数据查询阶段,需要输入口令进行认证,如果通过返回解密的数据,否则返回加密的数据。
当认证通过,则执行步骤S203;
S203、对数据密文进行AES算法解密,对AES算法解密后的数据密文进行逆序列化,得到与数据密文对应的数据明文,输出数据明文。
当认证不通过,则执行步骤S204;
S204、输出数据密文。
在解密查询阶段,主要包括四个部分,第一部分为根据查询数据的K值(即Key值)获取数据,此时,该数据为加密后的字符类型。第二部分是口令认证过程,该过程使用了布隆过滤器,布隆过滤器主要有两大功能,一个是元素添加功能,一个是元素检测功能,在检测过程中,只有添加的元素返回值为TRUE,否则返回为FALSE,因此,根据这一特性实现了元素的过滤。通过输入的口令来判断是否通过,不通过直接返回密文数据,通过则进行下一部分。第三部分为Base64解码,此时的数据是Base64编码后的数据,Base64通用提供了一个相对应的解码函数,该函数可以将字符型的数据解码为二进制形式。第四部分为解密,该过程使用AES算法解密,使用加密时的密钥进行解密操作,就能获取数据的明文。至此,将明文数据返回就完成了查询过程。
在本实施例中,采用布隆过滤对口令进行认证,认证通过后对数据解密并输出数据明文,认证失败则输出数据密文。口令存在有效期,通过对布隆过滤器的定时更新生成新的口令。密钥可重复使用,因为不涉及密钥的分配,对于不同组的数据可通过设置不同的布隆过滤器进行验证,实现数据的差异化验证,增加数据的安全性。
具体的,在基于区块链的农产品溯源***中,因为数据都保存在区块链中,导致所有隶属联盟链的组织都可以自由查看数据,而对于隐私数据,数据拥有者并不想公开,此时可以采用加密技术。如:对于生产商而言,涉及法人身份证号、联系电话、家庭住址等敏感数据可以采用聚合加密并设置口令,当一些有资格的组织(如监管部门)需要查看该数据时,生产商可以将设置的口令发送给该组织,该组织经过口令认证后就可以查看原始数据,即数据明文,而没有口令的组织只能查看加密后的数据,即数据密文。
具体的,从区块链数据库的布隆过滤器当中获取预设口令的步骤之前包括:
将布隆过滤器设于区块链数据库中,再将预设口令储存于布隆过滤器中,当预设口令于布隆过滤器内的储存时长超过预设时长时,清空储存于布隆过滤器内的预设口令。
开始阶段,对布隆过滤器进行初始化操作得到一个空的布隆过滤器,然后,根据需求将口令添加入布隆过滤器中并设置一个计时器,之后,当计时器到期时,重新对布隆过滤进行初始化操作得到空布隆过滤,最后,不断重复添加元素和清空布隆过滤器的过程。
在本申请中,从布隆过滤器初始化开始计时的,具体实施时,可以设置一个期限,如一个月,一个月后布隆过滤器内所有的元素都清空,此时,之前发布的口令也就无效了,这样做既可以降低布隆过滤器的假阳性,也可以加强数据的安全性。具体的,可在智能合约内设置一循环计时函数,使其在智能合约内自动执行,从而计算预设口令于布隆过滤器内的储存时长是否超过预设时长。
如图8,为本发明的数据加解密方法中数据输入与数据查询的流程示意图,在链码中,我们将对数据进行聚合加密,密钥在链码中生成且不对外传输;当需要访问数据时,采用布隆过滤对口令进行认证,确保了加密密钥无需传输,对任何人均不可见,以此进一步加强了数据的安全。布隆过滤对口令认证通过后对数据解密并输出数据明文,认证失败则输出数据密文。口令存在有效期,通过对布隆过滤器的定时更新生成新的口令,避免用户一次知道口令,即可一直使用的情况,从而,进一步提高了数据的安全性。密钥可重复使用,因为不涉及密钥的分配,对于不同组的数据可通过设置不同的布隆过滤器进行验证,实现数据的差异化验证。口令有两种生成方式,一种是可进行手动输入,一种是链码中自动生成,口令的生成方法同时兼顾了安全性和灵活性。
综上,本发明上述实施例当中的数据加解密方法,通过将数据明文结合AES密钥对数据明文进行序列化处理得到的字节流明文进行AES算法加密,得到的数据密文经数据上链至区块链数据库中,当需要访问数据时,根据待查数据的k值从区块链数据库中获取数据密文,根据预设口令认证输入的解密口令是否通过,认证通过后对数据解密并输出与数据密文对应的数据明文,认证失败则输出数据密文,通过口令认证的方式,不涉及密钥的分配,避免因密钥丢失而威胁数据安全,对于不同组的数据可通过设置不同的布隆过滤器进行验证,实现数据的差异化验证,保证了数据安全,解决了现有技术中的加密算法需要管理密钥,导致数据安全存在安全隐患的技术问题。
实施例二
本申请实施例还提供的一种数据上传端,包括:
数据明文获取模块,用于获取数据明文,对数据明文进行序列化处理,得到字节流明文;
加密模块,用于获取AES密钥,结合AES密钥对字节流明文进行AES算法加密,得到数据密文;
编码模块,用于将数据密文进行编码得到字符串密文;
写入模块,用于将字符串密文经数据上链写入至区块链数据库中。
综上,本发明上述实施例当中的数据上传端,通过将数据明文结合AES密钥对数据明文进行序列化处理得到的字节流明文进行AES算法加密,得到的数据密文经数据上链至区块链数据库中,当需要访问数据时,根据待查数据的k值从区块链数据库中获取数据密文,根据预设口令认证输入的解密口令是否通过,认证通过后对数据解密并输出与数据密文对应的数据明文,认证失败则输出数据密文,通过口令认证的方式,不涉及密钥的分配,避免因密钥丢失而威胁数据安全,对于不同组的数据可通过设置不同的布隆过滤器进行验证,实现数据的差异化验证,保证了数据安全,解决了现有技术中的加密算法需要管理密钥,导致数据安全存在安全隐患的技术问题。
实施例三
本申请实施例另一方面提供一种数据接收端,包括:
数据密文获取模块,用于获取区块链数据库发送的数据密文;
认证模块,用于获取用户输入的解密口令,并从区块链数据库的布隆过滤器当中获取预设口令,将解密口令与预设口令进行认证,预设口令为数据密文上链前预存到布隆过滤器当中的口令;
第一执行模块,当认证通过,则对数据密文进行AES算法解密,对AES算法解密后的数据密文进行逆序列化,得到与数据密文对应的数据明文,输出数据明文;
第二执行模块,当认证不通过,则输出数据密文。
综上,本发明上述实施例当中的数据接收端,通过将数据明文结合AES密钥对数据明文进行序列化处理得到的字节流明文进行AES算法加密,得到的数据密文经数据上链至区块链数据库中,当需要访问数据时,根据待查数据的k值从区块链数据库中获取数据密文,根据预设口令认证输入的解密口令是否通过,认证通过后对数据解密并输出与数据密文对应的数据明文,认证失败则输出数据密文,通过口令认证的方式,不涉及密钥的分配,避免因密钥丢失而威胁数据安全,对于不同组的数据可通过设置不同的布隆过滤器进行验证,实现数据的差异化验证,保证了数据安全,解决了现有技术中的加密算法需要管理密钥,导致数据安全存在安全隐患的技术问题。
实施例四
请参阅图9,本申请另一方面还一种数据加解密***,包括数据上传端、数据接收端以及区块链数据库;
区块链数据库连接数据上传端与数据接收端,数据上传端用于对数据明文进行加密,数据接收端用于对数据密文进行解密,区块链数据库用于接收经数据上传端加密后的数据密文、并为数据接收端获取数据密文
综上,本发明上述实施例当中的数据加解密***,通过将数据明文结合AES密钥对数据明文进行序列化处理得到的字节流明文进行AES算法加密,得到的数据密文经数据上链至区块链数据库中,当需要访问数据时,根据待查数据的k值从区块链数据库中获取数据密文,根据预设口令认证输入的解密口令是否通过,认证通过后对数据解密并输出与数据密文对应的数据明文,认证失败则输出数据密文,通过口令认证的方式,不涉及密钥的分配,避免因密钥丢失而威胁数据安全,对于不同组的数据可通过设置不同的布隆过滤器进行验证,实现数据的差异化验证,保证了数据安全,解决了现有技术中的加密算法需要管理密钥,导致数据安全存在安全隐患的技术问题。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行***、装置或设备(如基于计算机的***、包括处理器的***或其他可以从指令执行***、装置或设备取指令并执行指令的***)使用,或结合这些指令执行***、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行***、装置或设备或结合这些指令执行***、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、 “示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
Claims (9)
1.一种数据解密方法,其特征在于,应用于数据接收端,所述方法包括:
获取区块链数据库发送的数据密文;
获取用户输入的解密口令,并从所述区块链数据库的布隆过滤器当中获取预设口令,所述布隆过滤器周期性分发所述预设口令,所述预设口令设于链码中,将所述解密口令与所述预设口令在所述链码中进行认证,无需密钥分配,不同数据设有不同布隆过滤器进行认证,所述预设口令为所述数据密文上链前预存到布隆过滤器当中的口令;
当认证通过,则对所述数据密文进行AES算法解密,对AES算法解密后的数据密文进行逆序列化,得到与所述数据密文对应的数据明文,输出所述数据明文;
当认证不通过,则输出所述数据密文。
2.根据权利要求1所述的数据解密方法,其特征在于,所述从所述区块链数据库的布隆过滤器当中获取预设口令的步骤之前包括:
将所述布隆过滤器设于所述区块链数据库中;
将所述预设口令储存于布隆过滤器中,当所述预设口令于所述布隆过滤器内的储存时长超过预设时长时,清空储存于所述布隆过滤器内的所述预设口令。
3.根据权利要求1所述的数据解密方法,其特征在于,所述布隆过滤器可同时容纳多个不同的预设口令。
4.一种数据加密方法,其特征在于,应用于数据上传端,所述方法包括:
获取数据明文,对所述数据明文进行序列化处理,得到字节流明文;
获取AES密钥,结合所述AES密钥对所述字节流明文进行AES算法加密,得到数据密文,所述AES密钥可重复使用,所述AES密钥在链码中生成且不对外传输,数据拥有者将待加密数据的口令上传至链码中,在链码内,对所述待加密数据进行数据加密,并将所述待加密数据的口令添加入布隆过滤器中,所述布隆过滤器周期性分发口令;
将所述数据密文进行编码得到字符串密文;
将所述字符串密文经数据上链写入至区块链数据库中。
5.根据权利要求4所述的数据加密方法,其特征在于,所述获取AES密钥的步骤之前包括:
通过AES密钥生成算法生成所述AES密钥。
6.根据权利要求4所述的数据加密方法,其特征在于,所述AES密钥可重复对多组数据明文进行使用。
7.根据权利要求4所述的数据加密方法,其特征在于,所述将所述字符串密文经数据上链写入至区块链数据库中的步骤包括:
将所述字符串密文以k-v键值对方式写入至区块链数据库中。
8.一种数据接收端,其特征在于,包括:
数据密文获取模块,用于获取区块链数据库发送的数据密文;
认证模块,用于获取用户输入的解密口令,并从所述区块链数据库的布隆过滤器当中获取预设口令,所述布隆过滤器周期性分发所述预设口令,所述预设口令设于链码中,将所述解密口令与所述预设口令在所述链码中进行认证,无需密钥分配,不同数据设有不同布隆过滤器进行认证,所述预设口令为所述数据密文上链前预存到布隆过滤器当中的口令;
第一执行模块,当认证通过,则对所述数据密文进行AES算法解密,对AES算法解密后的数据密文进行逆序列化,得到与所述数据密文对应的数据明文,输出所述数据明文;
第二执行模块,当认证不通过,则输出所述数据密文。
9.一种数据上传端,其特征在于,包括:
数据明文获取模块,用于获取数据明文,对所述数据明文进行序列化处理,得到字节流明文;
加密模块,用于获取AES密钥,结合所述AES密钥对所述字节流明文进行AES算法加密,得到数据密文,所述AES密钥可重复使用,所述AES密钥在链码中生成且不对外传输,数据拥有者将待加密数据的口令上传至链码中,在链码内,对所述待加密数据进行数据加密,并将所述待加密数据的口令添加入布隆过滤器中,所述布隆过滤器周期性分发口令;
编码模块,用于将所述数据密文进行编码得到字符串密文;
写入模块,用于将所述字符串密文经数据上链写入至区块链数据库中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110894013.8A CN113343286B (zh) | 2021-08-05 | 2021-08-05 | 一种数据加解密方法、数据上传端、数据接收端及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110894013.8A CN113343286B (zh) | 2021-08-05 | 2021-08-05 | 一种数据加解密方法、数据上传端、数据接收端及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113343286A CN113343286A (zh) | 2021-09-03 |
CN113343286B true CN113343286B (zh) | 2021-11-23 |
Family
ID=77480834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110894013.8A Active CN113343286B (zh) | 2021-08-05 | 2021-08-05 | 一种数据加解密方法、数据上传端、数据接收端及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113343286B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114125830B (zh) * | 2021-11-17 | 2024-05-07 | 浪潮卓数大数据产业发展有限公司 | 一种app数据的加密传输方法、设备及介质 |
CN115619947B (zh) * | 2022-12-19 | 2023-12-26 | 江西农业大学 | 一种基于区块链的三维建模协作方法及*** |
CN116155619B (zh) * | 2023-04-04 | 2023-07-07 | 江西农业大学 | 数据处理方法、数据请求端、数据拥有端及数据处理装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108615156A (zh) * | 2018-05-09 | 2018-10-02 | 上海魅联信息技术有限公司 | 一种基于区块链的数据结构 |
CN112131227A (zh) * | 2020-09-29 | 2020-12-25 | 深圳前海微众银行股份有限公司 | 一种基于联盟链的数据查询方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5701464A (en) * | 1995-09-15 | 1997-12-23 | Intel Corporation | Parameterized bloom filters |
US9218476B1 (en) * | 2012-11-07 | 2015-12-22 | Amazon Technologies, Inc. | Token based one-time password security |
CN106101093B (zh) * | 2016-06-08 | 2019-03-12 | 东南大学 | 基于Bloom Filter的智能电网属性访问控制方法 |
CN111614464B (zh) * | 2019-01-31 | 2023-09-29 | 创新先进技术有限公司 | 区块链中安全更新密钥的方法及节点、存储介质 |
CN111222157B (zh) * | 2019-10-30 | 2021-03-23 | 支付宝(杭州)信息技术有限公司 | 区块链隐私数据的查询方法及装置 |
CN111191286B (zh) * | 2019-12-28 | 2020-09-25 | 南京理工大学 | Hyperledger Fabric区块链隐私数据存储与访问***及其方法 |
-
2021
- 2021-08-05 CN CN202110894013.8A patent/CN113343286B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108615156A (zh) * | 2018-05-09 | 2018-10-02 | 上海魅联信息技术有限公司 | 一种基于区块链的数据结构 |
CN112131227A (zh) * | 2020-09-29 | 2020-12-25 | 深圳前海微众银行股份有限公司 | 一种基于联盟链的数据查询方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113343286A (zh) | 2021-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113343286B (zh) | 一种数据加解密方法、数据上传端、数据接收端及*** | |
CN108768988B (zh) | 区块链访问控制方法、设备及计算机可读存储介质 | |
CN101309278B (zh) | 一种在客户端保存加密数据的方法及*** | |
US8379866B2 (en) | Method of distributing encoding/decoding program and symmetric key in security domain environment and data divider and data injector therefor | |
US10650373B2 (en) | Method and apparatus for validating a transaction between a plurality of machines | |
CN101926188B (zh) | 对通信终端的安全策略分发 | |
CN102761870B (zh) | 一种终端身份验证和服务鉴权的方法、***和终端 | |
CN112989426B (zh) | 授权认证方法及装置、资源访问令牌的获取方法 | |
US7131001B1 (en) | Apparatus and method for secure filed upgradability with hard wired public key | |
CN114039790A (zh) | 一种基于区块链的细粒度云存储安全访问控制方法 | |
CN111294203B (zh) | 信息传输方法 | |
CN101145911A (zh) | 具有私密保护及口令找回功能的身份认证方法 | |
CN103905400A (zh) | 一种业务认证方法、装置及*** | |
CN116226926B (zh) | 一种基于区块链的数据安全交互方法、装置、设备和介质 | |
Han et al. | Access control mechanism for the Internet of Things based on blockchain and inner product encryption | |
CN109302442B (zh) | 一种数据存储证明方法及相关设备 | |
CA2981202C (en) | Hashed data retrieval method | |
Almuzaini et al. | Key Aggregation Cryptosystem and Double Encryption Method for Cloud‐Based Intelligent Machine Learning Techniques‐Based Health Monitoring Systems | |
CN111212026A (zh) | 基于区块链的数据处理方法、装置及计算机设备 | |
RU2698424C1 (ru) | Способ управления авторизацией | |
CN114741704A (zh) | 一种基于婚恋交友的隐私保护方法、装置、设备及介质 | |
CN104506320A (zh) | 一种身份认证的方法及*** | |
CN108768650A (zh) | 一种基于生物特征的短信验证*** | |
CN117040765A (zh) | 智能电网终端认证方法、装置、存储介质及计算机设备 | |
CN106656946B (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 |