CN114003938B - 一种基于多头联盟的安全隐匿数据查询方法 - Google Patents

一种基于多头联盟的安全隐匿数据查询方法 Download PDF

Info

Publication number
CN114003938B
CN114003938B CN202111329881.8A CN202111329881A CN114003938B CN 114003938 B CN114003938 B CN 114003938B CN 202111329881 A CN202111329881 A CN 202111329881A CN 114003938 B CN114003938 B CN 114003938B
Authority
CN
China
Prior art keywords
data
party
terminal
query
parameter
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
CN202111329881.8A
Other languages
English (en)
Other versions
CN114003938A (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.)
Lanxiang Zhilian Hangzhou Technology Co ltd
Original Assignee
Lanxiang Zhilian Hangzhou Technology 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 Lanxiang Zhilian Hangzhou Technology Co ltd filed Critical Lanxiang Zhilian Hangzhou Technology Co ltd
Priority to CN202111329881.8A priority Critical patent/CN114003938B/zh
Publication of CN114003938A publication Critical patent/CN114003938A/zh
Application granted granted Critical
Publication of CN114003938B publication Critical patent/CN114003938B/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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于多头联盟的安全隐匿数据查询方法。它包括以下步骤:预处理阶段:每个数据终端都作为一次查询方与其他每个作为数据方的数据终端分别配合进行一次预处理;在线处理阶段:查询方将加密的查询信息及解密密钥发送给协调终端,协调终端将加密的查询信息发送给数据方,数据方根据加密的查询信息找出对应的加密数据并发送给协调终端,协调终端使用每个解密密钥对每个数据方发送的加密数据进行解密,根据解密结果发送查询数据核验是否成功的信息到查询方。本发明能够使得多头联盟中的成员在相互数据不出库的情况下完成了数据的查询,保护每个成员的数据隐私,避免数据泄露。

Description

一种基于多头联盟的安全隐匿数据查询方法
技术领域
本发明涉及数据查询技术领域,尤其涉及一种基于多头联盟的安全隐匿数据查询方法。
背景技术
多头借贷指同一借贷人在2家或者2家以上的金融机构提出借贷需求的行为。一般来说,当借贷人出现了多头借贷的情况,说明该借贷人资金需求出现了较大困难,有理由怀疑其还款能力。由于大多数现金贷平台及数据征信公司并不会让别人共享自己的数据,因此借贷者在多个平台重复借贷,出现以贷养贷的行为,从而使得个人债务越来越多。
金融机构的风控系统在预防多头借贷的时候一般都是通过征信渠道、数据公司、爬虫等方式或者借贷申请人的贷款信息来判断借贷申请人是否在多家申请过贷款,但是这种方式在目前隐私保护和征信管理办法下有以下几个缺点:
1、金融机构的数据都是一座座的数据孤岛,不会和其他的金融机构共享自己的数据以防自己的潜在客户被别人获取;
2、通过数据公司购买数据这种方式目前涉及到个人隐私数据的泄露,已经不可行;
3、目前查询是明文交互的,机构之间会有数据泄漏的问题。
发明内容
本发明为了解决上述技术问题,提供了一种基于多头联盟的安全隐匿数据查询方法,其能够使得多头联盟中的成员在相互数据不出库的情况下完成了数据的查询,保护每个成员的数据隐私,避免数据泄露。
为了解决上述问题,本发明采用以下技术方案予以实现:
本发明的一种基于多头联盟的安全隐匿数据查询方法,所述多头联盟包括2个以上数据终端,包括预处理阶段和在线处理阶段:
预处理阶段:协调终端预先加载所有数据终端的路由信息,协调终端转发数据终端之间的数据通信,每个数据终端作为查询方与其他每个数据终端作为数据方分别配合进行密钥的交换以及数据方数据的加密处理,每个作为数据方的数据终端将经过加密处理的自身数据发送给作为查询方的数据终端;
在线处理阶段:接收到查询请求的数据终端作为查询方根据作为数据方的每个数据终端发送的加密数据计算出对应的解密密钥,将加密的查询信息及解密密钥发送给协调终端,协调终端将加密的查询信息发送给作为数据方的每个数据终端,作为数据方的数据终端根据加密的查询信息找出对应的加密数据并发送给协调终端,协调终端使用每个解密密钥对每个数据方发送的加密数据进行解密,如果有一次解密成功,则协调终端发送查询数据核验成功的信息到查询方,如果没有一次解密成功,则协调终端发送查询数据核验失败的信息到查询方。
在本方案中,协调终端负责数据终端的消息路由和转发,不存储数据。数据终端维护自己的名单数据,数据对其他数据终端不可见;各个数据终端的数据查询系统是一致的,并在协调终端注册自己用于被发现的路由信息;每个数据终端在自身查询数据时作为查询方,被其他数据终端查询数据时作为数据方。
预处理阶段,每个数据终端都作为一次查询方与其他每个作为数据方的数据终端分别配合进行一次预处理。预处理阶段已经完成了大部分的计算和通信,大大提高了查询效率。整个查询过程中,数据方不知道查询数据的内容,查询方不知道验证成功的信息来自哪个数据方,协调终端既不知道查询数据的内容,也不知道数据方的数据内容,同时保护了查询方、数据方双方的数据安全。预处理阶段、在线处理阶段都是密文交互的,避免数据泄漏。
作为优选,所述预处理阶段的具体步骤如下:
M1:协调终端预先加载所有数据终端的路由信息;
M2:每个数据终端作为查询方与其他每个数据终端分别配合进行一次预处理,其他每个数据终端作为数据方,查询方与某个数据方配合进行一次预处理的步骤如下:
M21:数据方使用随机数a、随机数b以及secp256r1椭圆曲线的基点g生成secp256r1椭圆曲线的两个点p0、p1,公式如下:
p0 =g * a,p1 = g * b,数据方将p0、p1发送到协调终端,协调终端将p0、p1转发到查询方;
M22:查询方随机生成一个n位的二进制数C,根据p0、p1生成n个密钥KS和n个参数T,第i个密钥KSi的生成方法如下:
KSi= p0*RDi,RDi为第i个随机大数,1≤i≤n;
第i个参数Ti的生成方法如下:
如果二进制数C的第i位为1,则Ti= p1-g*RDi
如果二进制数C的第i位为0,则Ti= g*RDi
查询方将生成的n个参数T都通过协调终端转发到数据方;
M23:数据方根据接收到的n个参数T计算出n个密钥对KP,第i个密钥对KPi包括KPi0、KPi1,生成方法如下:
KPi0= Ti*a,
KPi1=p1*a-Ti*a,
其中,KPi0为第i个密钥对KPi的第0个密钥,KPi1为第i个密钥对KPi的第1个密钥;
M24:数据方对自身数据库内的所有数据D使用一致性hash算法进行分桶操作,存储桶总数为E,根据存储桶总数利用一致性hash算法计算出每个数据D应该存储的存储桶的编号,将每个数据D存储到对应编号的存储桶内,每个存储桶内存储的数据D小于或等于n个,对每个存储桶内的每个数据D进行处理,得到每个存储桶内的每个数据D对应的参数CM、参数U,编号为j的存储桶内的第i个数据Dji对应的参数CMji和参数Uji通过如下方法得到:
Fji= ENC(zero,KPi0),
CMji= Hash(Fji),
Uji= ENC(zero,KPi0)⊕ENC(zero,KPi1)⊕Dji
其中,ENC(zero, KPi0)表示使用第i个密钥对KPi的第0个密钥对空数据做加密,Hash(Fi)表示对参数Fi进行哈希处理,⊕为按位异或运算符;
数据方将每个存储桶的编号及其内每个数据D对应的参数U绑定后通过协调终端转发到查询方,将得到的每个存储桶内的每个数据D对应的参数CM存储;
M25:查询方根据每个存储桶内的每个数据D对应的参数U计算出加密串Q,编号为j的存储桶内的第i个数据Dji对应的参数Uji对应的加密串Qji的计算方法如下:
如果二进制数C的第i位为0,则Qji= ENC(zero, KSi),
如果二进制数C的第i位为1,则Qji= ENC(zero, KSi)⊕Uji
ENC(zero, KSi)表示使用第i个密钥KSi对空数据做加密,
查询方将计算出的加密串Q存储。
作为优选,所述在线处理阶段的具体步骤如下:
接收到查询请求的数据终端作为查询方进行数据查询,其他每个数据终端作为数据方,数据查询的步骤如下:
N1:查询方读取要查询的数据d,根据数据d、存储桶的总数E利用一致性hash算法计算出数值k,数值k为利用一致性hash算法计算出的数据d应该存储的存储桶的编号;
N2:查询方查询存储的与其他每个数据方对应的加密串Q,找出其他每个数据方的编号为k的存储桶对应的所有加密串Q,计算出其他每个数据方的编号为k的存储桶对应的所有加密串Q对应的所有参数SM,查询方将数值k以及计算出的与其他每个数据方对应的所有参数SM发送到协调终端;
N3:协调终端将数值k发送给每个数据方;
N4:每个数据方查找出编号为k的存储桶内的每个数据D对应的参数CM,对编号为k的存储桶内的每个数据D进行加密得到对应的加密串DEM,每个数据方将得到的所有加密串DEM发送给协调终端;
N5:协调终端依次使用每一个参数SM作为密钥对每个数据方发送的所有加密串DEM进行解密操作,如果有一次解密成功,则协调终端发送查询数据核验成功的信息到查询方,如果没有一次解密成功,则协调终端发送查询数据核验失败的信息到查询方。
预处理阶段,每个数据终端都作为一次查询方与其他每个作为数据方的数据终端分别配合进行一次预处理;在线处理阶段,查询方发起查询请求,计算出与查询数据对应的所有参数SM并连同数值k发送给协调终端,协调终端将数值k发送给其他所有作为数据方的数据终端,每个数据方计算出对应的所有加密串DEM发送到协调终端,协调终端利用每个参数SM作为密钥对所有加密串DEM进行解密,有一次解密成功则发送查询数据核验成功的信息到查询方,全部解密失败则协调终端发送查询数据核验失败的信息到查询方。
预处理阶段已经完成了大部分的计算和通信,过一致性hash数据分桶对数据进行预处理,保证实时接口请求小于50ms,大大提高了查询效率。整个查询过程中,数据方不知道查询数据的内容,查询方不知道验证成功的信息来自哪个数据方,协调终端既不知道查询数据的内容,也不知道数据方的数据内容,同时保护了查询方、数据方双方的数据安全。预处理阶段、在线处理阶段都是密文交互的,避免数据泄漏,通过椭圆曲线密钥生成和bit位选择来控制密钥,通过对称加密和位异或操作来保证数据安全传输。
一致性hash用来保证数据是均匀分布在每个存储桶里面,不会出现比如一个存储桶里面有3个数据,另外一个存储桶里面有100个数据的情况,并且一致性hash还是保序的算法,同一条数据调用多次会被分配到相同的桶里。
作为优选,所述数值k的计算公式如下:k= consistent_hash(d,E)。
作为优选,所述步骤N2中,计算出与某个数据方的编号为k的存储桶对应的第p个加密串Qkp对应的参数SMkp的方法如下:
SMkp= Hash(Qkp⊕(Cp&d)),Cp表示二进制数C的第p位的值。其他每个数据方的编号为k的存储桶对应的每个加密串Q都有一个对应的参数SM。
作为优选,所述步骤N4中,对编号为k的存储桶内的第i个数据Dki进行加密得到加密串DEMki的计算方法如下:
DEMki = ENC(Dki,CMki),
其中,ENC(Dki,CMki)表示使用编号为k的存储桶内的第i个数据Dki对应的参数CMki对数据Dki进行加密。
作为优选,所述步骤N5中,协调终端使用参数SMkp作为密钥对某个数据方发送的加密串DEMki进行解密操作的步骤如下:
RESki = DEC(SMkp,DEMki),
DEC(SMkp,DEMki)表示使用参数SMkp对加密串DEMki做解密;
根据解密结果RESki判断是否解密成功。
作为优选,所述路由信息包括数据终端的IP或域名。
作为优选,所述存储桶总数由多头联盟的所有数据终端预先约定好。
本发明的有益效果是:(1)能够使得多头联盟中的成员在相互数据不出库的情况下完成了数据的查询,保护每个成员的数据隐私,避免数据泄露。(2)高性能实时查询,通过一致性hash数据分桶方式对数据进行预处理,保证实时接口请求小于50ms。(3)高安全实时查询,通过椭圆曲线密钥生成和bit位选择来控制密钥,通过对称加密和位异或操作来保证数据安全传输。
附图说明
图1是多头联盟的结构示意图。
图中:1、数据终端,2、协调终端。
具体实施方式
下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
实施例:本实施例的一种基于多头联盟的安全隐匿数据查询方法,如图1所示,多头联盟包括2个以上数据终端1,包括预处理阶段和在线处理阶段:
预处理阶段:
M1:协调终端2预先加载所有数据终端1的路由信息,路由信息包括数据终端的IP或域名;
M2:每个数据终端作为查询方与其他每个数据终端分别配合进行一次预处理,其他每个数据终端作为数据方,查询方与某个数据方配合进行一次预处理的步骤如下:
M21:数据方使用随机数a、随机数b以及secp256r1椭圆曲线的基点g生成secp256r1椭圆曲线的两个点p0、p1(p0、p1是包含x,y坐标的点),公式如下:
p0 =g * a,p1 = g * b,数据方将p0、p1发送到协调终端,协调终端将p0、p1转发到查询方;
M22:查询方随机生成一个n位的二进制数C,根据p0、p1生成n个密钥KS和n个参数T,第i个密钥KSi的生成方法如下:
KSi= p0*RDi,RDi为第i个随机大数,1≤i≤n;
第i个参数Ti的生成方法如下:
如果二进制数C的第i位为1,则Ti= p1-g*RDi
如果二进制数C的第i位为0,则Ti= g*RDi
查询方将生成的n个参数T都通过协调终端转发到数据方;
M23:数据方根据接收到的n个参数T计算出n个密钥对KP,第i个密钥对KPi包括KPi0、KPi1,生成方法如下:
KPi0= Ti*a,
KPi1=p1*a-Ti*a,
其中,KPi0为第i个密钥对KPi的第0个密钥,KPi1为第i个密钥对KPi的第1个密钥;
M24:数据方对自身数据库内的所有数据D使用一致性hash算法进行分桶操作,存储桶总数为E,由多头联盟的所有数据终端预先约定好,根据存储桶总数利用一致性hash算法计算出每个数据D应该存储的存储桶的编号,将每个数据D存储到对应编号的存储桶内(将数据库内的所有数据D分配到E个存储桶内),每个存储桶内存储的数据D小于或等于n个,对每个存储桶内的每个数据D进行处理,得到每个存储桶内的每个数据D对应的参数CM、参数U,编号为j的存储桶内的第i个数据Dji对应的参数CMji和参数Uji通过如下方法得到:
Fji= ENC(zero,KPi0),
CMji= Hash(Fji),
Uji= ENC(zero,KPi0)⊕ENC(zero,KPi1)⊕Dji
其中,ENC(zero, KPi0)表示使用第i个密钥对KPi的第0个密钥对空数据(128个0)做国密Sm4加密,Hash(Fi)表示对参数Fi进行哈希处理(哈希处理实现使用国密Sm3实现),⊕为按位异或运算符;
数据方将每个存储桶的编号及其内每个数据D对应的参数U绑定后通过协调终端转发到查询方,将得到的每个存储桶内的每个数据D对应的参数CM存储到对应的存储桶内;
M25:查询方根据每个存储桶内的每个数据D对应的参数U计算出加密串Q,编号为j的存储桶内的第i个数据Dji对应的参数Uji对应的加密串Qji的计算方法如下:
如果二进制数C的第i位为0,则Qji= ENC(zero, KSi),
如果二进制数C的第i位为1,则Qji= ENC(zero, KSi)⊕Uji
ENC(zero, KSi)表示使用第i个密钥KSi对空数据做国密Sm4加密,
查询方将计算出的加密串Q存储;
在线理阶段:
接收到查询请求的数据终端作为查询方进行数据查询,其他每个数据终端作为数据方,数据查询的步骤如下:
N1:查询方读取要查询的数据d,根据数据d、存储桶的总数E利用一致性hash算法计算出数值k,数值k为利用一致性hash算法计算出的数据d应该存储的存储桶的编号,数值k的计算公式如下:k= consistent_hash(d,E);
N2:查询方查询存储的与其他每个数据方对应的加密串Q,找出其他每个数据方的编号为k的存储桶对应的所有加密串Q,计算出其他每个数据方的编号为k的存储桶对应的所有加密串Q对应的所有参数SM(每个数据方的编号为k的存储桶对应的每个加密串Q都有一个对应的参数SM),查询方将数值k以及计算出的与其他每个数据方对应的所有参数SM发送到协调终端;
计算出与某个数据方的编号为k的存储桶对应的第p个加密串Qkp对应的参数SMkp的方法如下:
SMkp= Hash(Qkp⊕(Cp&d)),Cp表示二进制数C的第p位的值;
N3:协调终端将数值k发送给每个数据方;
N4:每个数据方查找出编号为k的存储桶内的每个数据D对应的参数CM,对编号为k的存储桶内的每个数据D进行加密得到对应的加密串DEM,对编号为k的存储桶内的第i个数据Dki进行加密得到加密串DEMki的计算方法如下:
DEMki = ENC(Dki,CMki),
其中,ENC(Dki,CMki)表示使用编号为k的存储桶内的第i个数据Dki对应的参数CMki对数据Dki进行加密;
每个数据方将得到的所有加密串DEM发送给协调终端;
N5:协调终端依次使用每一个参数SM作为密钥对每个数据方发送的所有加密串DEM进行解密操作,如果有一次解密成功,则协调终端发送查询数据核验成功的信息到查询方,如果没有一次解密成功,则协调终端发送查询数据核验失败的信息到查询方;
协调终端使用参数SMkp作为密钥对某个数据方发送的加密串DEMki进行解密操作的步骤如下:
RESki = DEC(SMkp,DEMki),
DEC(SMkp,DEMki)表示使用参数SMkp对加密串DEMki做国密Sm4解密;
根据解密结果RESki判断是否解密成功,如果解密结果RESki是一堆乱码的串,则判断解密失败,否则判断解密成功。
在本方案中,协调终端负责数据终端的消息路由和转发,不存储数据。数据终端维护自己的名单数据,数据对其他数据终端不可见;各个数据终端的数据查询系统是一致的,并在协调终端注册自己用于被发现的路由信息;每个数据终端在自身查询数据时作为查询方,被其他数据终端查询数据时作为数据方。
预处理阶段,每个数据终端都作为一次查询方与其他每个作为数据方的数据终端分别配合进行一次预处理;在线处理阶段,查询方发起查询请求,计算出与查询数据对应的所有参数SM并连同数值k发送给协调终端,协调终端将数值k发送给其他所有作为数据方的数据终端,每个数据方计算出对应的所有加密串DEM发送到协调终端,协调终端利用每个参数SM作为密钥对所有加密串DEM进行解密,有一次解密成功则发送查询数据核验成功的信息到查询方,全部解密失败则协调终端发送查询数据核验失败的信息到查询方。
预处理阶段已经完成了大部分的计算和通信,过一致性hash数据分桶对数据进行预处理,保证实时接口请求小于50ms,大大提高了查询效率。整个查询过程中,数据方不知道查询数据的内容,查询方不知道验证成功的信息来自哪个数据方,协调终端既不知道查询数据的内容,也不知道数据方的数据内容,同时保护了查询方、数据方双方的数据安全。预处理阶段、在线处理阶段都是密文交互的,避免数据泄漏,通过椭圆曲线密钥生成和bit位选择来控制密钥,通过对称加密和位异或操作来保证数据安全传输。
一致性hash用来保证数据是均匀分布在每个存储桶里面,不会出现比如一个存储桶里面有3个数据,另外一个存储桶里面有100个数据的情况,并且一致性hash还是保序的算法,同一条数据调用多次会被分配到相同的桶里。
当数据终端为金融机构,数据D为贷款信息时,数据D中包含贷款时间戳(Timestamp格式),当解密成功时,解密结果RESki是贷款时间戳,协调终端发送查询数据核验成功的信息到查询方时还把该贷款时间戳发送给查询方,使得查询方能够知道查询目标的贷款时间,便于金融机构风控。
举例说明:
预处理阶段:
随机数a为:
110024555428437346447423970080824423491881674609162802727894000541543059435235;
随机数b为:
85303938677960333486350915497181941774546740599326905160845294003749532504866;
基点g为:
046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5;
p0为:
026998965245f5d4756cea2f3f57a15b2ab8e2442664a0b6ca3c6b086a26189638;
p1为:
03b9ed317f6166aae56df106741b39f552ecb043e8512a4e8c3fa9ad78cfa03db9;
二进制数C(128位)为:
00110111111011000110000010000001110011010011011010011010110001111010100101001000110001110101100000110111110010111011010010010110;
密钥KS(16进制格式)有128个,第114个密钥KS为:
da823af6e19946b80032de9837666d4c1927ae4b50f768027ac9976d90dbf727;
数据方A的第114个密钥对KP为:
da823af6e19946b80032de9837666d4c1927ae4b50f768027ac9976d90dbf727,
79b2d93063b39c27b100995f6b25446f0593e64ba524ec0b9bc9a05f281fe5d8;
数据方A的编号为1的存储桶的第114个数据D为:
bb9b5aaac118250025ecff509076b113;
对应的CM、U、Q分别为:
CM= f421ae1b4270a0089391eace89c6071b,
U=287bd49bca237d287645624eabdda760,
Q= bd82463fd3336493ec831777e1b141f6,
在线处理阶段:
查询数据bb9b5aaac118250025ecff509076b113,查询方计算出存储桶的编号为1,对应的SM为f421ae1b4270a0089391eace89c6071b,该SM与数据方A的编号为1的存储桶的第114个数据D对应的CM一样,所以数据方A的编号为1的存储桶的第114个数据D经过对应CM加密后能被该SM解密成功,协调终端发送查询数据核验成功的信息到查询方。

Claims (7)

1.一种基于多头联盟的安全隐匿数据查询方法,所述多头联盟包括2个以上数据终端,其特征在于,包括预处理阶段和在线处理阶段;
预处理阶段:协调终端预先加载所有数据终端的路由信息,协调终端转发数据终端之间的数据通信,每个数据终端作为查询方与其他每个数据终端作为数据方分别配合进行密钥的交换以及数据方数据的加密处理,每个作为数据方的数据终端将经过加密处理的自身数据发送给作为查询方的数据终端;
在线处理阶段:接收到查询请求的数据终端作为查询方根据作为数据方的每个数据终端发送的加密数据计算出对应的解密密钥,将加密的查询信息及解密密钥发送给协调终端,协调终端将加密的查询信息发送给作为数据方的每个数据终端,作为数据方的数据终端根据加密的查询信息找出对应的加密数据并发送给协调终端,协调终端使用每个解密密钥对每个数据方发送的加密数据进行解密,如果有一次解密成功,则协调终端发送查询数据核验成功的信息到查询方,如果没有一次解密成功,则协调终端发送查询数据核验失败的信息到查询方;
所述预处理阶段的具体步骤如下:
M1:协调终端预先加载所有数据终端的路由信息;
M2:每个数据终端作为查询方与其他每个数据终端分别配合进行一次预处理,其他每个数据终端作为数据方,查询方与某个数据方配合进行一次预处理的步骤如下:
M21:数据方使用随机数a、随机数b以及secp256r1椭圆曲线的基点g生成secp256r1椭圆曲线的两个点p0、p1,公式如下:
p0 =g * a,p1 = g * b,数据方将p0、p1发送到协调终端,协调终端将p0、p1转发到查询方;
M22:查询方随机生成一个n位的二进制数C,根据p0、p1生成n个密钥KS和n个参数T,第i个密钥KSi的生成方法如下:
KSi= p0*RDi,RDi为第i个随机大数,1≤i≤n;
第i个参数Ti的生成方法如下:
如果二进制数C的第i位为1,则Ti= p1-g*RDi
如果二进制数C的第i位为0,则Ti= g*RDi
查询方将生成的n个参数T都通过协调终端转发到数据方;
M23:数据方根据接收到的n个参数T计算出n个密钥对KP,第i个密钥对KPi包括KPi0、KPi1,生成方法如下:
KPi0= Ti*a,
KPi1=p1*a-Ti*a,
其中,KPi0为第i个密钥对KPi的第0个密钥,KPi1为第i个密钥对KPi的第1个密钥;
M24:数据方对自身数据库内的所有数据D使用一致性hash算法进行分桶操作,存储桶总数为E,根据存储桶总数利用一致性hash算法计算出每个数据D应该存储的存储桶的编号,将每个数据D存储到对应编号的存储桶内,每个存储桶内存储的数据D小于或等于n个,对每个存储桶内的每个数据D进行处理,得到每个存储桶内的每个数据D对应的参数CM、参数U,编号为j的存储桶内的第i个数据Dji对应的参数CMji和参数Uji通过如下方法得到:
Fji= ENC(zero,KPi0),
CMji= Hash(Fji),
Uji= ENC(zero,KPi0)⊕ENC(zero,KPi1)⊕Dji
其中,ENC(zero, KPi0)表示使用第i个密钥对KPi的第0个密钥对空数据做加密,Hash(Fi)表示对参数Fi进行哈希处理,⊕为按位异或运算符;
数据方将每个存储桶的编号及其内每个数据D对应的参数U绑定后通过协调终端转发到查询方,将得到的每个存储桶内的每个数据D对应的参数CM存储;
M25:查询方根据每个存储桶内的每个数据D对应的参数U计算出加密串Q,编号为j的存储桶内的第i个数据Dji对应的参数Uji对应的加密串Qji的计算方法如下:
如果二进制数C的第i位为0,则Qji= ENC(zero, KSi),
如果二进制数C的第i位为1,则Qji= ENC(zero, KSi)⊕Uji
ENC(zero, KSi)表示使用第i个密钥KSi对空数据做加密,
查询方将计算出的加密串Q存储;
所述在线处理阶段的具体步骤如下:
接收到查询请求的数据终端作为查询方进行数据查询,其他每个数据终端作为数据方,数据查询的步骤如下:
N1:查询方读取要查询的数据d,根据数据d、存储桶的总数E利用一致性hash算法计算出数值k,数值k为利用一致性hash算法计算出的数据d应该存储的存储桶的编号;
N2:查询方查询存储的与其他每个数据方对应的加密串Q,找出其他每个数据方的编号为k的存储桶对应的所有加密串Q,计算出其他每个数据方的编号为k的存储桶对应的所有加密串Q对应的所有参数SM,查询方将数值k以及计算出的与其他每个数据方对应的所有参数SM发送到协调终端;
N3:协调终端将数值k发送给每个数据方;
N4:每个数据方查找出编号为k的存储桶内的每个数据D对应的参数CM,对编号为k的存储桶内的每个数据D进行加密得到对应的加密串DEM,每个数据方将得到的所有加密串DEM发送给协调终端;
N5:协调终端依次使用每一个参数SM作为密钥对每个数据方发送的所有加密串DEM进行解密操作,如果有一次解密成功,则协调终端发送查询数据核验成功的信息到查询方,如果没有一次解密成功,则协调终端发送查询数据核验失败的信息到查询方。
2.根据权利要求1所述的一种基于多头联盟的安全隐匿数据查询方法,其特征在于,所述数值k的计算公式如下:k= consistent_hash(d,E)。
3.根据权利要求1所述的一种基于多头联盟的安全隐匿数据查询方法,其特征在于,所述步骤N2中,计算出与某个数据方的编号为k的存储桶对应的第p个加密串Qkp对应的参数SMkp的方法如下:
SMkp= Hash(Qkp⊕(Cp&d)),Cp表示二进制数C的第p位的值。
4.根据权利要求1所述的一种基于多头联盟的安全隐匿数据查询方法,其特征在于,所述步骤N4中,对编号为k的存储桶内的第i个数据Dki进行加密得到加密串DEMki的计算方法如下:
DEMki = ENC(Dki,CMki),
其中,ENC(Dki,CMki)表示使用编号为k的存储桶内的第i个数据Dki对应的参数CMki对数据Dki进行加密。
5.根据权利要求1所述的一种基于多头联盟的安全隐匿数据查询方法,其特征在于,所述步骤N5中,协调终端使用参数SMkp作为密钥对某个数据方发送的加密串DEMki进行解密操作的步骤如下:
RESki = DEC(SMkp,DEMki),
DEC(SMkp,DEMki)表示使用参数SMkp对加密串DEMki做解密;
根据解密结果RESki判断是否解密成功。
6.根据权利要求1所述的一种基于多头联盟的安全隐匿数据查询方法,其特征在于,所述路由信息包括数据终端的IP或域名。
7.根据权利要求1所述的一种基于多头联盟的安全隐匿数据查询方法,其特征在于,所述存储桶总数由多头联盟的所有数据终端预先约定好。
CN202111329881.8A 2021-11-11 2021-11-11 一种基于多头联盟的安全隐匿数据查询方法 Active CN114003938B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111329881.8A CN114003938B (zh) 2021-11-11 2021-11-11 一种基于多头联盟的安全隐匿数据查询方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111329881.8A CN114003938B (zh) 2021-11-11 2021-11-11 一种基于多头联盟的安全隐匿数据查询方法

Publications (2)

Publication Number Publication Date
CN114003938A CN114003938A (zh) 2022-02-01
CN114003938B true CN114003938B (zh) 2022-05-31

Family

ID=79928560

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111329881.8A Active CN114003938B (zh) 2021-11-11 2021-11-11 一种基于多头联盟的安全隐匿数据查询方法

Country Status (1)

Country Link
CN (1) CN114003938B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103345526A (zh) * 2013-07-22 2013-10-09 武汉大学 一种云环境下高效的隐私保护密文查询方法
CN110855634A (zh) * 2019-10-24 2020-02-28 北京电信易通信息技术股份有限公司 基于安全网络下的跨网交换服务系统及方法
CN113255007A (zh) * 2021-06-25 2021-08-13 蓝象智联(杭州)科技有限公司 一种安全隐匿三要素查询方法
WO2021179743A1 (zh) * 2020-03-09 2021-09-16 支付宝(杭州)信息技术有限公司 区块链中账户隐私信息的查询方法及装置
CN113536379A (zh) * 2021-07-19 2021-10-22 建信金融科技有限责任公司 一种隐私数据的查询方法、装置及电子设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11669633B2 (en) * 2019-08-16 2023-06-06 International Business Machines Corporation Collaborative AI on transactional data with privacy guarantees
CN113255002B (zh) * 2021-06-09 2022-07-15 北京航空航天大学 一种保护多方隐私的联邦k近邻查询方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103345526A (zh) * 2013-07-22 2013-10-09 武汉大学 一种云环境下高效的隐私保护密文查询方法
CN110855634A (zh) * 2019-10-24 2020-02-28 北京电信易通信息技术股份有限公司 基于安全网络下的跨网交换服务系统及方法
WO2021179743A1 (zh) * 2020-03-09 2021-09-16 支付宝(杭州)信息技术有限公司 区块链中账户隐私信息的查询方法及装置
CN113255007A (zh) * 2021-06-25 2021-08-13 蓝象智联(杭州)科技有限公司 一种安全隐匿三要素查询方法
CN113536379A (zh) * 2021-07-19 2021-10-22 建信金融科技有限责任公司 一种隐私数据的查询方法、装置及电子设备

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Privacy-Preserving Data Sharing Scheme with FL via MPC in Financial Permissioned Blockchain;Jingwei Liu et al.;《 ICC 2021 - IEEE International Conference on Communications》;20210806;全文 *
基于安全多方计算技术构建金融风控多头联盟;蓝象智联(杭州)科技有限公司;《https://zhuanlan.zhihu.com/p/401671458》;20210820;全文 *
多方计算在个人征信领域中的应用;陈琨等;《征信》;20210621;第39卷(第5期);全文 *

Also Published As

Publication number Publication date
CN114003938A (zh) 2022-02-01

Similar Documents

Publication Publication Date Title
US20230208627A1 (en) Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
CN106549749B (zh) 一种基于加法同态加密的区块链隐私保护方法
CA2289452C (en) Initial secret key establishment including facilities for verification of identity
US6240187B1 (en) Key replacement in a public key cryptosystem
CN106961336A (zh) 一种基于sm2算法的密钥分量托管方法和系统
KR20180116278A (ko) 안전한 정보 교환과 계층 구조적이고 결정론적인 암호키를 위한 공통 비밀 결정
CN110289968B (zh) 私钥恢复、协同地址的创建、签名方法及装置、存储介质
CN112367170B (zh) 基于多方安全计算的数据隐匿查询安全共享系统及方法
NO20093259A1 (no) Kryptering
CN108768647B (zh) 一种区块链的随机数产生方法
CN112511304A (zh) 一种基于混合加密算法的电力数据隐私通信方法
CN113674077A (zh) 消费信贷风险防范方法、系统、设备及存储介质
CN115276947B (zh) 隐私数据处理方法、装置、系统及存储介质
CN107070896B (zh) 一种安全高效的区块链网络客户化登录方法及安全加固系统
CN113393225A (zh) 数字货币加密支付方法及系统
CN109547461A (zh) 基于p2p对称密钥池的抗量子计算区块链保密交易系统和方法
CN114363013B (zh) 监管友好的区块链内容隐私保护系统、消息发送以及查询方法
CN112580071B (zh) 一种数据处理方法及装置
Saranya et al. A survey on mobile payment request verification over cloud using key distribution
CN114003938B (zh) 一种基于多头联盟的安全隐匿数据查询方法
CN116707778A (zh) 数据混合加密传输方法、装置和电子设备
TWI430643B (zh) Secure key recovery system and method
CN115204876A (zh) 一种用于移动支付的量子安全u盾设备及方法
CN114565382A (zh) 一种交易账户匿名支付方法及系统
CN111010386B (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