基于区块链的信息存储方法和装置、电子设备和存储介质转让专利

申请号 : CN202310388640.3

文献号 : CN116090020B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李刚武宁付海孙耀文杨屹

申请人 : 中国人民解放军海军潜艇学院

摘要 :

本发明实施例提供公开了一种基于区块链的信息存储方法和装置、电子设备和存储介质,本发明涉及数据存储、区块链技术领域。其中,方法包括:信息存储平台接收目标对象发送的身份信息存储请求,确定目标对象的目标公私密钥对,身份信息存储请求包括目标对象的身份信息;信息存储平台确定目标对象的存储信息和目标节点,存储信息包括身份信息;目标节点对存储信息进行存储;当目标节点完成对存储信息的存储,验证节点从目标节点中查询存储信息,得到查询结果;当查询结果指示大于预设数量的验证节点在目标节点中查询到存储信息,确定存储信息存储成功;当存储信息存储成功,信息存储平台将目标公私密钥对授权目标对象。

权利要求 :

1.一种基于区块链的信息存储方法,其特征在于,包括:

信息存储平台接收目标对象发送的身份信息存储请求,对所述身份信息进行哈希计算,得到所述身份信息的哈希值,根据所述身份信息的哈希值和预设密钥生成规则,生成所述目标对象的目标公私密钥对,其中,所述身份信息存储请求包括所述目标对象的身份信息;

所述信息存储平台确定所述目标对象的存储信息和根据所述身份信息和预设目标节点分配规则,确定用于存储所述存储信息的所述区块链网络中目标节点,其中,所述存储信息包括所述身份信息;

所述目标节点对所述存储信息进行存储;

响应于所述目标节点完成对所述存储信息的存储,所述区块链网络中验证节点从所述目标节点中查询所述存储信息,得到查询结果,其中,所述验证节点为所述区块链网络中除所述目标节点以外的节点;

响应于所述查询结果指示大于预设数量的所述验证节点在所述目标节点中查询到所述存储信息,确定所述存储信息存储成功;

响应于所述存储信息存储成功,所述信息存储平台将所述目标公私密钥对授权所述目标对象。

2.根据权利要求1所述的方法,其特征在于,所述目标节点对所述存储信息进行存储之前,还包括:所述信息存储平台利用第一公私密钥对中私钥对所述存储信息进行签名,得到签名存储信息;

所述目标节点利用所述第一公私密钥对中公钥对所述签名存储信息中的签名进行验证;

所述目标节点对所述存储信息进行存储,包括:

响应于所述签名存储信息中的签名通过所述第一公私密钥对中公钥的验证,所述目标节点利用第二公私密钥对中私钥对所述身份信息进行加密,得到加密身份信息,并对所述加密身份信息进行存储。

3.根据权利要求1所述的方法,其特征在于,所述身份信息存储请求还包括:所述目标对象的对象标识;所述方法还包括:所述信息存储平台根据所述身份信息和预设查询权限确定规则,确定所述目标对象的查询权限;

根据所述目标对象的查询权限和所述对象标识更新预设查询权限列表。

4.根据权利要求1所述的方法,其特征在于,还包括:

所述信息存储平台接收所述目标对象发送的身份信息查询请求,其中,所述身份信息查询请求包括:待查询的身份信息的信息标识和利用所述目标公私密钥对中私钥生成的签名;

所述信息存储平台利用所述目标公私密钥对中公钥对所述身份信息查询请求中的签名进行验证;

响应于所述身份信息查询请求中的签名通过验证,所述信息存储平台从存储所述信息标识对应的待查询的身份信息的目标节点获取查询信息,其中,所述查询信息包括加密身份信息和第二公私密钥对中公钥,所述加密身份信息由所述第二公私密钥中私钥对所述待查询的身份信息加密得到;

所述信息存储平台向所述目标对象发送所述查询信息。

5.根据权利要求4所述的方法,其特征在于,所述身份信息查询请求还包括:对象标识;

所述方法还包括:

所述信息存储平台根据所述对象标识和预设查询权限列表确定所述目标对象的查询权限;

响应于所述身份信息查询请求中的签名通过验证,所述信息存储平台从存储所述信息标识对应的待查询的身份信息的目标节点获取查询信息,包括:响应于所述目标对象的查询权限指示所述目标对象具有查询所述信息标识对应的待查询的身份信息的权限,且所述身份信息查询请求中的签名通过验证,所述信息存储平台从存储所述信息标识对应的待查询的身份信息的目标节点获取查询信息,并设置所述查询信息的使用权限。

6.一种基于区块链的信息存储装置,其特征在于,包括:

第一接收模块,用于信息存储平台接收目标对象发送的身份信息存储请求,对所述身份信息进行哈希计算,得到所述身份信息的哈希值,根据所述身份信息的哈希值和预设密钥生成规则,生成目标公私密钥对,其中,所述身份信息存储请求包括所述目标对象的身份信息;

第一确定模块,用于所述信息存储平台确定所述目标对象的存储信息和根据所述身份信息和预设目标节点分配规则,确定用于存储所述存储信息的所述区块链网络中目标节点,其中,所述存储信息包括所述身份信息;

存储模块,用于所述目标节点对所述存储信息进行存储;

第一验证模块,用于响应于所述目标节点完成对所述存储信息的存储,所述区块链网络中验证节点从所述目标节点中查询所述存储信息,得到查询结果,其中,所述验证节点为所述区块链网络中除所述目标节点以外的节点;

第二验证模块,用于响应于所述查询结果指示大于预设数量的所述验证节点在所述目标节点中查询到所述存储信息,确定所述存储信息存储成功;

授权模块,用于响应于所述存储信息存储成功,所述信息存储平台将所述目标公私密钥对授权所述目标对象。

7.一种电子设备,其特征在于,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述存储器中存储的计算机程序,且所述计算机程序被执行时,实现上述权利要求1‑5中任一所述的基于区块链的信息存储方法。

8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时,实现上述权利要求1‑5任一所述的基于区块链的信息存储方法。

说明书 :

基于区块链的信息存储方法和装置、电子设备和存储介质

技术领域

[0001] 本发明涉及数据存储技术、区块链技术,尤其是一种基于区块链的信息存储方法和装置、电子设备和存储介质。

背景技术

[0002] 在智慧校园的推动下,线上教学平台、教务系统和图书馆等机构采集并保存大量学生个人信息,高校利用这些信息分析学生的个性和学习偏好,为学生提供个性化推荐服务服务。信息化项目的发展为高校学习生活提供了便利,通过个人信息的分析可以帮助高校了解学生的日常学习需求,为教学制度的建立提供数据支持,有助于提升教学效果。高校信息系统中含有大量学生个人信息,其中包括隐私和敏感信息,例如手机号码、电子邮箱和家庭情况等。学生个人信息涵盖了生理、心理和社会等各个层面的信息。高校需要采取有效的措施对信息进行脱敏处理并将其安全存储在信息系统内。一旦学生个人信息泄露,信息遭到不法分子的窃取和非法利用,对学生个人和学校都会造成不良后果,从而引发一系列信息和财务安全问题。如何高效安全的对学生的个人信息进行存储是一个亟待解决的问题。

发明内容

[0003] 本发明实施例提供了一种基于区块链的信息存储方法和装置、电子设备和存储介质,以解决上述技术问题。
[0004] 本发明实施例的一个方面,提供一种基于区块链的信息存储方法,包括:信息存储平台接收目标对象发送的身份信息存储请求,确定所述目标对象的目标公私密钥对,其中,所述身份信息存储请求包括所述目标对象的身份信息;所述信息存储平台确定所述目标对象的存储信息和用于存储所述存储信息的区块链网络中目标节点,其中,所述存储信息包括所述身份信息;所述目标节点对所述存储信息进行存储;响应于所述目标节点完成对所述存储信息的存储,所述区块链网络中验证节点从所述目标节点中查询所述存储信息,得到查询结果,其中,所述验证节点为所述区块链网络中除所述目标节点以外的节点;响应于所述查询结果指示大于预设数量的所述验证节点在所述目标节点中查询到所述存储信息,确定所述存储信息存储成功;响应于所述存储信息存储成功,所述信息存储平台将所述目标公私密钥对授权所述目标对象。
[0005] 可选地,在本发明上述任一实施例的方法中,所述确定所述目标对象的目标公私密钥对,包括:对所述身份信息进行哈希计算,得到所述身份信息的哈希值;根据所述身份信息的哈希值和预设密钥生成规则,生成所述目标公私密钥对。
[0006] 可选地,在本发明上述任一实施例的方法中,所述目标节点对所述存储信息进行存储之前,还包括:所述信息存储平台利用第一公私密钥对中私钥对所述存储信息进行签名,得到签名存储信息;所述目标节点利用所述第一公私密钥对中公钥对所述签名存储信息中的签名进行验证;所述目标节点对所述存储信息进行存储,包括:响应于所述签名存储信息中的签名通过所述第一公私密钥对中公钥的验证,所述目标节点利用第二公私密钥对中私钥对所述身份信息进行加密,得到加密身份信息,并对所述加密身份信息进行存储。
[0007] 可选地,在本发明上述任一实施例的方法中,所述身份信息存储请求还包括:所述目标对象的对象标识;所述方法还包括:所述信息存储平台根据所述身份信息和预设查询权限确定规则,确定所述目标对象的查询权限;根据所述目标对象的查询权限和所述对象标识更新预设查询权限列表。
[0008] 可选地,在本发明上述任一实施例的方法中,所述信息存储平台确定所述目标对象的存储信息和用于存储所述存储信息的区块链网络中目标节点,包括:所述信息存储平台根据所述身份信息和预设目标节点分配规则,确定用于存储所述存储信息的所述区块链网络中目标节点。
[0009] 可选地,在本发明上述任一实施例的方法中,还包括:所述信息存储平台接收所述目标对象发送的身份信息查询请求,其中,所述身份信息查询请求包括:待查询的身份信息的信息标识和利用所述目标公私密钥对中私钥生成的签名;所述信息存储平台利用所述目标公私密钥对中公钥对所述身份信息查询请求中的签名进行验证;响应于所述身份信息查询请求中的签名通过验证,所述信息存储平台从存储所述信息标识对应的待查询的身份信息的目标节点获取查询信息,其中,所述查询信息包括加密身份信息和所述第二公私密钥对中公钥,所述加密身份信息由所述第二公私密钥中私钥对所述待查询的身份信息加密得到;所述信息存储平台向所述目标对象发送所述查询信息。
[0010] 可选地,在本发明上述任一实施例的方法中,所述身份信息查询请求还包括:所述对象标识;所述方法还包括:所述信息存储平台根据所述对象标识和预设查询权限列表确定所述目标对象的查询权限;响应于所述身份信息查询请求中的签名通过验证,所述信息存储平台从存储所述信息标识对应的待查询的身份信息的目标节点获取查询信息,包括:响应于所述目标对象的查询权限指示所述目标对象具有查询所述信息标识对应的待查询的身份信息的权限,且所述身份信息查询请求中的签名通过验证,所述信息存储平台从存储所述信息标识对应的待查询的身份信息的目标节点获取查询信息,并对设置所述查询信息的使用权限。
[0011] 根据本发明实施例的另一个方面,提供了一种基于区块链的信息存储装置,包括:第一接收模块,用于信息存储平台接收目标对象发送的身份信息存储请求,确定所述目标对象的目标公私密钥对,其中,所述身份信息存储请求包括所述目标对象的身份信息;第一确定模块,用于所述信息存储平台确定所述目标对象的存储信息和用于存储所述存储信息的区块链网络中目标节点,其中,所述存储信息包括所述身份信息;存储模块,用于所述目标节点对所述存储信息进行存储;
[0012] 第一验证模块,用于响应于所述目标节点完成对所述存储信息的存储,所述区块链网络中验证节点从所述目标节点中查询所述存储信息,得到查询结果,其中,所述验证节点为所述区块链网络中除所述目标节点以外的节点;第二验证模块,用于响应于所述查询结果指示大于预设数量的所述验证节点在所述目标节点中查询到所述存储信息,确定所述存储信息存储成功;授权模块,用于响应于所述存储信息存储成功,所述信息存储平台将所述目标公私密钥对授权所述目标对象。
[0013] 根据本发明实施例的又一个方面,提供了一种电子设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述存储器中存储的计算机程序,且所述计算机程序被执行时,实现上述的基于区块链的信息存储方法。
[0014] 根据本发明实施例的在一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现上述的基于区块链的信息存储方法。
[0015] 本发明实施例提供了一种基于区块链的信息存储方法和装置、电子设备和存储介质。在本发明实施中,利用信息存储平台确定用于存储目标对象的身份信息的目标节点以及确定目标对象的目标公私密钥对,之后通过目标节点对目标对象的身份信息进行存储,实现了在保证学生信息安全存储的同时,以较小的空间和时间成本实现大数据量的数据存储,并降低了计算代价,提高高校信息管理的隐私保护性能。
[0016] 下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

[0017] 构成说明书的一部分的附图描述了本发明的实施例,并且连同描述一起用于解释本发明的原理。
[0018] 参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:
[0019] 图1为本发明实施例的基于区块链的信息存储方法的一个实施例的流程图;
[0020] 图2为本发明实施例的基于区块链的信息存储方法的另一个实施例的流程图;
[0021] 图3为本发明实施例的用户属性数量为10‑50的信息存储成本结果的示意图;
[0022] 图4为本发明实施例的用户属性数量为10‑50的信息存储时间的示意图;
[0023] 图5为本发明实施例的基于区块链的信息存储装置的一个实施例的结构示意图;
[0024] 图6为本发明电子设备一个应用实施例的结构示意图。

具体实施方式

[0025] 现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
[0026] 以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
[0027] 对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
[0028] 应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
[0029] 本发明实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统、服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
[0030] 终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
[0031] 区块链(Block Chain)是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证数据不可篡改和不可伪造的分布式账本。区块链网络中的目标节点(Node),通常指的是区块链网络中的计算机,也就是说任何连接到区块链网络的计算机(包括手机,服务器等)都称为目标节点。
[0032] 图1示出本发明实施例中基于区块链的信息存储方法的流程示意图。本实施例可应用在电子设备上,如图1所示,本实施例的基于区块链的信息存储方法包括如下步骤:
[0033] 步骤S110,信息存储平台接收目标对象发送的身份信息存储请求,确定目标对象的目标公私密钥对。
[0034] 其中,该身份信息存储请求包括:该目标对象的身份信息。目标对象可以为个人、企业或学术机构等。例如,目标对象可以为学生、老师等。身份信息可以包括:目标对象的文本身份信息、图像身份信息等。例如,目标对象为学生,目标对象的文本身份信息可以包括:目标对象的学号、班级、专业、学年、学区、类型(类型:学生或老师)等,图像身份信息可以包括目标对象的照片等。
[0035] 在一种实施方式中,信息存储平台可以部署在计算机或服务器上。目标对象具有客户端,该客户端可以部署在计算机或服务器,且与信息存储平台连接,目标对象可以通过客户端向信息存储平台发送身份信息存储请求。
[0036] 可以将分配给目标对象的公私密钥对称为目标公私密钥对。目标公私密钥对包括公钥和私钥;目标公私密钥对中公钥用于对由目标公私密钥对中私钥生成的签名进行验证,目标公私密钥对中私钥用于对信息或文件等进行签名。在一种实施方式中,信息存储平台可以根据对称加密算法、非对称加密算法、国密SM2算法或RSA算法等生成目标公私密钥对。
[0037] 步骤S120,信息存储平台确定目标对象的存储信息和用于存储存储信息的区块链网络中目标节点。
[0038] 其中,该存储信息包括身份信息。将区块链网络中用于存储存储信息的节点称为目标节点。
[0039] 在一种实施方式中,可以根据目标对象的身份信息生成目标对象的存储信息。
[0040] 在一种实施方式中,信息存储平台与区块链网络中所有目标节点连接。在一个具体实施方式中,信息存储平台根据目标对象的身份信息和预设目标节点分配规则,确定用于存储目标对象的存储信息的区块链网络中目标节点。预设目标节点分配规则可以为任意可以实施的目标节点分配规则。例如,目标对象为学生时,预设目标节点分配规则包括:可以根据身份信息中目标对象的专业和预设专业与目标节点之间的对应的关系确定用于存储目标对象的存储信息的目标节点。
[0041] 步骤S130,目标节点对存储信息进行存储。
[0042] 在一种实施方式中,信息存储平台向目标节点发送存储信息,该目标节点对存储信息进行存储。
[0043] 步骤S140,响应于目标节点完成对存储信息的存储,区块链网络中验证节点从目标节点中查询存储信息,得到查询结果。
[0044] 其中,该验证节点为区块链网络中除目标节点以外的节点。在一种实施方式中,验证节点可以为多个。
[0045] 查询结果可以包括:在目标节点中查询到存储信息的验证节点的数量和未查询到存储信息的验证节点的数量。
[0046] 在一种实施方式,当目标节点完成对存储信息的存储时,可以根据预先设置的智能合约(Smart contract),区块链网络中的所有验证节点向目标节点发送用于查询存储信息的信息查询请求,用于目标节点向各验证节点反馈包括是否查询到存储信息的消息,根据各验证节点接收到的包括是否查询到存储信息的消息,生成查询结果。
[0047] 步骤S150,响应于查询结果指示大于预设数量的验证节点在目标节点中查询到存储信息,确定存储信息存储成功。
[0048] 其中,预设数量可以根据实际需求设置。在一种实施方式中,预设数量可以为验证节点的总数量的一半。
[0049] 在一种实施方式,当查询结果指示小于或等于预设数量的验证节点在目标节点中查询到存储信息,确定存储信息存储失败。
[0050] 步骤S160,响应于存储信息存储成功,信息存储平台将目标公私密钥对授权目标对象。
[0051] 其中,当存储信息存储成功,目标节点向信息存储平台反馈存储成功信息,信息存储平台将目标公私密钥对授权目标对象,并向目标对象发送目标公私密钥。
[0052] 本发明实施中,利用信息存储平台确定用于存储目标对象的身份信息的目标节点以及确定目标对象的目标公私密钥对,之后通过目标节点对目标对象的身份信息进行存储,实现了在保证学生信息安全存储的同时,以较小的空间和时间成本实现大数据量的数据存储,并降低了计算代价,提高高校信息管理的隐私保护性能。
[0053] 在一个可选实施例中,本发明实施例中步骤S110可以包括:对身份信息进行哈希计算,得到身份信息的哈希值;根据身份信息的哈希值和预设密钥生成规则,生成目标公私密钥对。
[0054] 在一种实施方式中,可以利用哈希算法对目标对象的身份信息进行哈希计算,得到身份信息的哈希值,之后可以根据身份信息的哈希值以及预设密钥生成规则中的式(1)~(4)确定目标公私密钥对。
[0055] K=xg(1),
[0056] z=(p,q)(2),
[0057] p=g(mod a)(3),
[0058] q=(H+px)(mod a)(4),
[0059] 其中,K为目标公私密钥对中公钥,z为公私密钥对中私钥,p,q分别为参数,H为身份信息的哈希值,x为伪随机整数,g为椭圆曲线域上素数为a的点。其中,随机选择有限域中的大素数 a,在[1,a‑1] 范围内选择伪随机整数,当 p,q中存在取值为0的情况时,返回重新选择椭圆曲线域上的素数。
[0060] 在一个可选实施例中,本发明实施例的方法还包括:信息存储平台利用第一公私密钥对中私钥对存储信息进行签名,得到签名存储信息;目标节点利用第一公私密钥对中公钥对签名存储信息中的签名进行验证。本发明实施例中的步骤S130还包括:响应于签名存储信息中的签名通过第一公私密钥对中公钥的验证,目标节点利用第二公私密钥对中私钥对身份信息进行加密,得到加密身份信息,并对加密身份信息进行存储。
[0061] 其中,可以将信息存储平台的公私密钥对称为第一公私密钥对。第一公私密钥对包括公钥和私钥;第一公私密钥对中公钥用于对由第一公私密钥对中私钥生成的签名进行验证,第一公私密钥对中私钥用于对信息或数据等进行签名。信息存储平台可以根据对称加密算法、非对称加密算法、国密SM2算法或RSA算法等生成第一公私密钥对,并将第一公私密钥对存储在信息存储平台。可以将目标节点的公私密钥对称为第二公私密钥对。第二公私密钥对包括公钥和私钥;第二公私密钥对中公钥用于对由第二公私密钥对中私钥加密的数据或信息进行解密,第二公私密钥对中私钥用于对信息或数据等进行加密。目标节点可以根据对称加密算法、非对称加密算法、国密SM2算法或RSA算法等生成第二公私密钥对,并将第二公私密钥对存储在目标节点。
[0062] 在一种实施方式中,在步骤S130之前,信息存储平台利用第一公私密钥对中私钥对存储信息进行签名,得到签名存储信息,并将签名存储信息发送目标节点;目标节点可以根据信息存储平台公布的第一公私密钥对中公钥的存储地址获取第一公私密钥对中公钥,或者从信息存储平台获取第一公私密钥对中公钥,之后目标节点利用第一公私密钥对中公钥对签名存储信息中的签名进行验证。步骤S130还包括:当签名存储信息中的签名通过第一公私密钥对中公钥的验证,目标节点利用第二公私密钥对中私钥对身份信息进行加密,得到加密身份信息,并对加密身份信息进行存储。当签名存储信息中的未签名通过第一公私密钥对中公钥的验证,确定存储信息存储失败。
[0063] 在一个可选实施例中,本发明实施例中,上述的身份信息存储请求还包括:目标对象的对象标识;本发明实施例的方法还包括:信息存储平台根据身份信息和预设查询权限确定规则,确定目标对象的查询权限;根据目标对象的查询权限和对象标识更新预设查询权限列表。
[0064] 其中,对象标识用于唯一标识目标对象,对象标识可以为任意标识,例如,对象标识可以目标对象的学号、目标对象登录信息存储平台的账号等。预设查询权限列表包括多个对象标识与查询权限的对应关系。
[0065] 在一种实施方式中,预设查询权限确定规则可以为任意可以实施的查询权限确定规则。示例性的,预设查询权限确定规则可以包括:类型与查询权限之间的对应关系,可以根据目标对象的类型(如,类型:学生或老师),在类型与查询权限之间的对应关系中查询目标对象的类型对应的查询权限,并将该查询权限确定为目标对象的查询权限。将目标对象的查询权限与对象标识绑定,以形成对象标识与查询权限的对应关系,之后将该对象标识与查询权限的对应关系更新到预设查询权限列表中。
[0066] 在一个可选实施例中,如图2所示,本发明实施例的方法还包括步骤:
[0067] 步骤S210,信息存储平台接收目标对象发送的身份信息查询请求。
[0068] 其中,该身份信息查询请求包括:待查询的身份信息的信息标识和利用目标公私密钥对中私钥生成的签名。信息标识用于唯一标识身份信息,该信息标识可以为任意标识,例如,信息标识可以为自定义代码等。
[0069] 在一种实施方式中,当信息存储平台接收到目标对象发送的身份信息存储请求后,信息标识可以为目标对象分配用于标识身份信息的信息标识,并利用该信息标识标识身份信息。同时信息存储平台还将目标节点与信息标识绑定,以建立目标节点与信息标识的对应关系,并将该目标节点与信息标识的对应关系更新到第一密文信息索引中,该第一密文信息索引包括多个目标节点与信息标识的对应关系。信息存储平台还将信息标识发送目标对象。
[0070] 在一种实施方式中,目标对象可以生成包括待查询的身份信息的信息标识的初始身份信息查询请求,并利用目标公私密钥对中私钥对初始身份信息查询请求进行签名,得到身份信息查询请求。
[0071] 步骤S220,信息存储平台利用目标公私密钥对中公钥对身份信息查询请求中的签名进行验证。
[0072] 其中,信息存储平台可以利用预先存储在信息存储平台中的目标对象的目标公私密钥对中公钥对身份信息查询请求中的签名进行验证。
[0073] 步骤S230,响应于身份信息查询请求中的签名通过验证,信息存储平台从存储信息标识对应的待查询的身份信息的目标节点获取查询信息。
[0074] 其中,该查询信息包括:加密身份信息和第二公私密钥对中公钥,该加密身份信息由第二公私密钥中私钥对待查询的身份信息加密得到。
[0075] 在一种实施方式中,当身份信息查询请求中的签名通过验证,信息存储平台生成信息查询请求,该信息查询请求可以为包括:签名信息标识和第一公私密钥对中公钥,签名信息标识由信息存储平台利用第一公私密钥对中私钥对信息标识签名得到。示例性的,信息查询请求可以为验证码的形式,如, M(K1,N)=H1(K1∣N),M为验证码,H1为信息查询请求,K1为第一公私密钥对中公钥,N为消息内容(签名信息标识)。
[0076] 信息存储平台可以根据第一密文信息索引和信息标识,确定存储信息标识对应的待查询的身份信息的目标节点,并将该信息查询请求发送该目标节点。目标节点利用第一公私密钥对中公钥对信息查询请求中的签名信息标识的签名进行验证,当签名通过验证,根据预设的第二密文信息索引确定信息标识对应的待查询的身份信息,之后利用第二公私密钥对中私钥对该待查询的身份信息进行加密,得到加密身份信息,并将该加密身份信息和第二公私密钥对中公钥发送信息存储平台。该第二密文信息索引包括多个信息标识与该信息标识所对应的身份信息的存储位置之间的对应关系。
[0077] 步骤S240,信息存储平台向目标对象发送查询信息。
[0078] 在一个可选实施例中,本发明实施例中的身份信息查询请求还包括:目标对象的对象标识。本发明实施例的方法还包括:信息存储平台根据对象标识和预设查询权限列表确定目标对象的查询权限;本发明实施例中的步骤S230还包括:响应于目标对象的查询权限指示目标对象具有查询信息标识对应的待查询的身份信息的权限,且身份信息查询请求中的签名通过验证,信息存储平台从存储信息标识对应的待查询的身份信息的目标节点获取查询信息,并对设置查询信息的使用权限。
[0079] 在一种实施方式中,在步骤S230之前还包括:信息存储平台根据对象标识和预设查询权限列表确定目标对象的查询权限。步骤S230还包括:当目标对象的查询权限指示目标对象具有查询信息标识对应的待查询的身份信息的权限,且身份信息查询请求中的签名通过验证时,信息存储平台从存储信息标识对应的待查询的身份信息的目标节点获取查询信息。当目标对象的查询权限指示目标对象不具有查询信息标识对应的待查询的身份信息的权限,和/或,身份信息查询请求中的签名未通过验证时,确定查询失败。
[0080] 在一种实施方式中,使用权限可以包括:使用位置和/或使用时长等。示例性的,信息存储平台可以将查询信息的使用权限设置为在制定的设备(使用位置)上使用,以使查询信息仅可以在使用权限规定的设备上使用。
[0081] 在一种实施方式中,可以对本发明实施例中的存储方法进行验证,具体为:
[0082] 1.1搭建实验测试环境
[0083] 为分析本发明实施例中的存储方法的性能,设计实验进行分析。选取腾讯云服务器作为存储层SQL的硬件区块链节点,云服务器为CentOS操作系统,框架结构满足学生信息联盟链的建立需求。实验测试的硬件环境为Intel i5‑6500,3.40 GHz,8 GB 内存的 Ubuntu 16.04 LTS 系统。将实验构建的5台服务器的IP地址设置到相同网段,完成授权和服务关联操作。网络内的密钥服务和证书认证等由Fabric提供,在云服务器环境中设置共识和存储节点群。根据Fabric项目的相关组件,设置各节点的身份标识和文件信息,存储环境内,各节点可以相互通信。采用MySql对采集得到的学生(目标对象)个人信息数据(身份信息)进行存储,利用区块链技术对数据安全进行防护。选取基于对称密钥加密算法、基于可撤销属性加密和基于云计算的高校学生个人信息安全存储方法为对照组,与设计方法的存储性能进行对比。
[0084] 1.2存储性能测试
[0085] 实验主要测试1000‑10000条学生个人信息的存储性能,其中涉及的用户属性数量为10‑50,从存储成本和存储时间两方面分析。其中,用户属性为学生不同纬度的个人信息,例如,用户属性可以为学生的姓名、性别、学号、专业等。首先对不同数据量条件下,统计各信息安全存储方法的成本开销。为避免计算结果受到用户属性的影响,将用户属性数量设置为20。1000‑10000条学生个人信息的存储成本结果如表1所示。
[0086] 表1 1000‑10000条信息存储成本(MB)。
[0087]
[0088] 根据表1的结果,随着信息数据量的增加,各方法存储所需消耗的成本呈增长的趋势。在数据量一致的前提下,本发明实施例的基于区块链的信息存储方法的消耗的成本低于三种对比方法。以处理5000条学生个人信息为例,本发明实施例的基于区块链的信息存储方法的存储成本为12.26 MB,比基于对称密钥机密算法、基于可撤销属性加密和基于云计算的方法降低了9.12 MB 、9.89 MB 和8.97 MB。设置需要存储的学生个人信息数据量保持在10000条,分析存储方法受属性数量的影响情况。用户属性数量为10‑50的信息存储成本结果如图3所示。根据图3所述,本发明实施例的基于区块链的信息存储方法在各个属性的信息存储中的成本最低。尤其在属性数量达到50时,本发明实施例的基于区块链的信息存储方法所需要的存储空间比对比方法降低了30‑50%,只需要消耗较小的成本既可以完成大容量的信息储存。因此,在存储成本方面,设计方法具有较高的效率。其中,图3和图4中,基于区块链的方法表示本发明实施例的基于区块链的信息存储方法,基于对称密钥加密的方法表示基于对称密钥加密算法的高校学生个人信息安全存储方法,基于可撤销属性加密的方法表示基于可撤销属性加密的高校学生个人信息安全存储方法,基于云计算的方法表示基于云计算的高校学生个人信息安全存储方法。其中,在图3中纵坐标表示存储成本(storage cost),单位可以为MB,横坐标坐标表示数据量(number of attributes), 单位可以为个。然后测试各信息安全存储方法的时间开销。与成本测试方法一致,将属性数量设置为20,统计1000‑10000条学生个人信息的存储时间。对比结果如表2所示。
[0089] 表2 1000‑10000条信息存储时间(ms)。
[0090]
[0091] 根据表2的结果,在待处理的信息量较少时,各方法的存储时间差距相对较小。随着写入信息数据量的增加,各方法存储所需消耗的时间呈增长的趋势。在数据量一致的前提下,本发明实施例的基于区块链的信息存储方法的消耗的成本低于三种对比方法。在存储10000条信息中,本发明实施例的基于区块链的信息存储方法的存储时间为198.54ms,比基于对称密钥机密算法、基于可撤销属性加密和基于云计算的方法降低了136.77 ms 、141.89 ms 和87.5 ms。在此基础上,分析不同用户属性数量条件下,各方法的存储10000条学生个人信息所需要的时间。对比结果如图4所示。其中,在图4中纵坐标表示存储时间(storage time),单位可以为ms,横坐标坐标表示数据量(number of attributes), 单位可以为个。
[0092] 根据图4的结果,本发明实施例的基于区块链的信息存储方法的时间最少,其计算的时间开销随属性增长的速率小于对比方法。在属性数量达到50时,本发明实施例的基于区块链的信息存储方法所需要的存储耗时比对比方法降低了40‑55%。综合上述测试结果,设计方法能够在保证学生信息安全存储的同时,以较小的空间成本实现大数据量的数据存储,并降低了计算代价。因此该方法加快完成数据校验过程,适合应用于高校学生个人信息存储场景中,有利于促进数据访问的时效性。
[0093] 图5示出本发明实施例中基于区块链的信息存储装置的框图。如图5所示,该实施例基于区块链的信息存储装置包括:
[0094] 第一接收模块310,用于信息存储平台接收目标对象发送的身份信息存储请求,确定所述目标对象的目标公私密钥对,其中,所述身份信息存储请求包括所述目标对象的身份信息;
[0095] 第一确定模块320,用于所述信息存储平台确定所述目标对象的存储信息和用于存储所述存储信息的区块链网络中目标节点,其中,所述存储信息包括所述身份信息;
[0096] 存储模块330,用于所述目标节点对所述存储信息进行存储;
[0097] 第一验证模块340,用于响应于所述目标节点完成对所述存储信息的存储,所述区块链网络中验证节点从所述目标节点中查询所述存储信息,得到查询结果,其中,所述验证节点为所述区块链网络中除所述目标节点以外的节点;
[0098] 第二验证模块350,用于响应于所述查询结果指示大于预设数量的所述验证节点在所述目标节点中查询到所述存储信息,确定所述存储信息存储成功;
[0099] 授权模块360,用于响应于所述存储信息存储成功,所述信息存储平台将所述目标公私密钥对授权所述目标对象。
[0100] 优选地,本发明实施中的所述第一接收模块310还用于:对所述身份信息进行哈希计算,得到所述身份信息的哈希值;根据所述身份信息的哈希值和预设密钥生成规则,生成所述目标公私密钥对。
[0101] 优选地,本发明实施中所述的装置还包括:
[0102] 签名模块,用于所述信息存储平台利用第一公私密钥对中私钥对所述存储信息进行签名,得到签名存储信息;
[0103] 第三验证模块,用于所述目标节点利用所述第一公私密钥对中公钥对所述签名存储信息中的签名进行验证;
[0104] 所述存储模块330还用于:响应于所述签名存储信息中的签名通过所述第一公私密钥对中公钥的验证,所述目标节点利用第二公私密钥对中私钥对所述身份信息进行加密,得到加密身份信息,并对所述加密身份信息进行存储。
[0105] 优选地,本发明实施中所述身份信息存储请求还包括:所述目标对象的对象标识;所述装置还包括:
[0106] 第二确定模块,用于所述信息存储平台根据所述身份信息和预设查询权限确定规则,确定所述目标对象的查询权限;
[0107] 更新模块,用于根据所述目标对象的查询权限和所述对象标识更新预设查询权限列表。
[0108] 优选地,本发明实施中的所述第一确定模块320还用于:所述信息存储平台根据所述身份信息和预设目标节点分配规则,确定用于存储所述存储信息的所述区块链网络中目标节点。
[0109] 优选地,本发明实施中的所述装置还包括:
[0110] 第二接收模块,用于所述信息存储平台接收所述目标对象发送的身份信息查询请求,其中,所述身份信息查询请求包括:待查询的身份信息的信息标识和利用所述目标公私密钥对中私钥生成的签名;
[0111] 第二验证模块,用于所述信息存储平台利用所述目标公私密钥对中公钥对所述身份信息查询请求中的签名进行验证;
[0112] 获取模块,用于响应于所述身份信息查询请求中的签名通过验证,所述信息存储平台从存储所述信息标识对应的待查询的身份信息的目标节点获取查询信息,其中,所述查询信息包括加密身份信息和所述第二公私密钥对中公钥,所述加密身份信息由所述第二公私密钥中私钥对所述待查询的身份信息加密得到;
[0113] 发送模块,用于所述信息存储平台向所述目标对象发送所述查询信息。
[0114] 优选地,本发明实施中的所述身份信息查询请求还包括:所述对象标识;所述装置还包括:
[0115] 第三确定模块,用于所述信息存储平台根据所述对象标识和预设查询权限列表确定所述目标对象的查询权限;
[0116] 所述获取模块还用于:响应于所述目标对象的查询权限指示所述目标对象具有查询所述信息标识对应的待查询的身份信息的权限,且所述身份信息查询请求中的签名通过验证,所述信息存储平台从存储所述信息标识对应的待查询的身份信息的目标节点获取查询信息,并对设置所述查询信息的使用权限。
[0117] 另外,本发明实施例还提供了一种电子设备,包括:
[0118] 存储器,用于存储计算机程序;
[0119] 处理器,用于执行所述存储器中存储的计算机程序,且所述计算机程序被执行时,实现本发明上述任一实施例所述的基于区块链的信息存储方法。
[0120] 图6为本发明电子设备一个应用实施例的结构示意图。下面,参考图6来描述根据本发明实施例的电子设备。该电子设备可以是第一设备和第二设备中的任一个或两者、或与它们独立的单机设备,该单机设备可以与第一设备和第二设备进行通信,以从它们接收所采集到的输入信号。
[0121] 如图6所示,电子设备包括一个或多个处理器和存储器。
[0122] 处理器可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备中的其他组件以执行期望的功能。
[0123] 存储器可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器可以运行所述程序指令,以实现上文所述的本发明的各个实施例的基于区块链的信息存储方法以及/或者其他期望的功能。
[0124] 在一个示例中,电子设备还可以包括:输入装置和输出装置,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
[0125] 此外,该输入装置还可以包括例如键盘、鼠标等等。
[0126] 该输出装置可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出装置可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
[0127] 当然,为了简化,图6中仅示出了该电子设备中与本发明有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备还可以包括任何其他适当的组件。
[0128] 除了上述方法和设备以外,本发明的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述部分中描述的根据本发明各种实施例的基于区块链的信息存储方法中的步骤。
[0129] 所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本发明实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
[0130] 此外,本发明的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述部分中描述的根据本发明各种实施例的基于区块链的信息存储方法中的步骤。
[0131] 所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD‑ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0132] 本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。