CN111784337B - 权限验证方法及系统 - Google Patents
权限验证方法及系统 Download PDFInfo
- Publication number
- CN111784337B CN111784337B CN201910273140.9A CN201910273140A CN111784337B CN 111784337 B CN111784337 B CN 111784337B CN 201910273140 A CN201910273140 A CN 201910273140A CN 111784337 B CN111784337 B CN 111784337B
- Authority
- CN
- China
- Prior art keywords
- query
- verification
- request
- data
- target user
- 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
- 238000012795 verification Methods 0.000 title claims abstract description 358
- 238000000034 method Methods 0.000 title claims abstract description 123
- 230000000977 initiatory effect Effects 0.000 claims abstract description 16
- 230000009471 action Effects 0.000 claims abstract description 15
- 238000012545 processing Methods 0.000 claims description 69
- 230000008569 process Effects 0.000 claims description 47
- 238000003860 storage Methods 0.000 claims description 32
- 238000004891 communication Methods 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 description 28
- 230000004044 response Effects 0.000 description 21
- 238000004422 calculation algorithm Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 15
- 238000011156 evaluation Methods 0.000 description 12
- 239000003999 initiator Substances 0.000 description 8
- 239000011159 matrix material Substances 0.000 description 6
- 239000003795 chemical substances by application Substances 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 238000010200 validation analysis Methods 0.000 description 5
- 238000013475 authorization Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 4
- 230000004927 fusion Effects 0.000 description 3
- 238000012797 qualification Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001010 compromised effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012854 evaluation process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 229920000433 Lyocell Polymers 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- CLOMYZFHNHFSIQ-UHFFFAOYSA-N clonixin Chemical compound CC1=C(Cl)C=CC=C1NC1=NC=CC=C1C(O)=O CLOMYZFHNHFSIQ-UHFFFAOYSA-N 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000010972 statistical evaluation Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
- G06Q20/4014—Identity check for transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/03—Credit; Loans; Processing thereof
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Development Economics (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供一种权限验证方法及系统。所述权限验证方法执行于第一验证系统,包括:接收第二验证系统发送的验证请求;其中所述验证请求包含用于从一用户群组中获取目标用户的查询结果的、且经第一种加密处理的查询请求;其中,所述验证请求用于验证发起所述验证请求的行为是一目标用户授权的;所述查询请求的维度为至少一维;基于所述验证请求并利用至少一种证明信息执行验证操作。本申请基于验证请求利用至少一种证明信息执行验证操作,用于证明发起验证请求的行为是经目标用户授权的。
Description
技术领域
本申请涉及安全数据处理技术领域,特别是涉及一种权限验证方法及系统。
背景技术
商业信贷、个人信息征信等数据查询系统,甚至涉及订房、行业监管等包含敏感数据、商业机密的数据查询系统均需要提供数据安全保障,以减少甚至避免敏感数据泄露。例如,避免利用数据查询来泄密社交网站中的敏感数据。又如,避免利用代理平台进行数据查询由代理平台泄密敏感数据。为此,持有敏感数据的企业、事业单位通过限制权限的方式来限制相关数据库的使用。然而,现如今存在大量不同规模的向客户提供贷款的公司。这些贷款公司包括商业银行、小额贷款公司、信托公司等。有时候,因为单个贷款方可能无法提供足够的贷款给借款方,借款方可能从多个贷款方借钱。这使得贷款方在做出贷款决定之前,贷款方可能想要查询借款方的贷款信息以评估他的信用。例如,贷款方在向其借钱之前可能想知道借款方是否从其他贷款方借了太多钱。
在现实环境中,不诚实的查询方可能会欺骗他人并违反隐私和授权。查询方可能会进行无效查询和未经授权的查询。
发明内容
鉴于以上所述现有技术的缺点,本申请的目的在于提供一种权限验证方法及系统,用于解决现有技术中网络操作中权限验证出现的漏洞。
为实现上述目的及其他相关目的,本申请的第一方面提供一种权限验证方法,执行于第一验证系统,包括:接收第二验证系统发送的验证请求;其中所述验证请求包含用于从一用户群组中获取目标用户的查询结果的、且经第一种加密处理的查询请求;其中,所述验证请求用于验证发起所述验证请求的行为是一目标用户授权的;所述查询请求的维度为至少一维;基于所述验证请求并利用至少一种证明信息执行验证操作。
在本申请的第一方面的某些实施方式中,所述基于验证请求并利用至少一种证明信息执行验证操作的步骤包括以下步骤:利用来自目标用户的第一证明信息,验证所述第二验证系统所提交的验证请求中目标用户的身份;利用来自所述第二验证系统的第二证明信息,验证所述第二验证系统所提交的验证请求是否得到所述目标用户的授权。
在本申请的第一方面的某些实施方式中,所述利用来自目标用户的第一证明信息,验证第二验证系统所提交的验证请求中目标用户的身份的步骤包括:向所述目标用户发送用于验证其身份认证的第一随机数;接收目标用户反馈的第二随机数及其第一证明信息;其中,所述第二随机数是基于第一随机数生成的;基于所述第一证明信息和第二随机数验证目标用户的身份。
在本申请的第一方面的某些实施方式中,所述第一证明信息包含一组用于证明所述目标用户的身份的值序列。
在本申请的第一方面的某些实施方式中,所述利用来自第二验证系统的第二证明信息,验证第二验证系统所提交的查询业务是否得到所述目标用户的授权的步骤包括:基于与所述用户群组中每个用户之间单独共享的密钥及第一随机数,为每一用户生成第三随机数,得到对应用户群组的随机数集;基于查询请求的维度所构建的空间,将所述随机数集中各第三随机数与表示该空间的位置进行对应;将所述查询请求每个维度上子查询请求中的各子查询元素和随机数集中对应的第三随机数进行计算,并得到对应维度的待验证数据集;将所得到的各维度的待验证数据集及所述随机数集发送第二验证系统,并获取所反馈的第二证明信息;基于所述第二证明信息验证所述第二验证系统所提交的验证请求是得到所述目标用户的授权。
在本申请的第一方面的某些实施方式中,所述第二证明信息包括用于证明所述验证请求是得到所述目标用户的授权的值序列。
在本申请的第一方面的某些实施方式中,所述基于验证请求并利用至少一种证明信息执行验证操作的步骤还包括:利用来自所述第二验证系统的第三证明信息,验证所述第二验证系统所提交的经第一种加密处理的查询请求的格式合法性。
在本申请的第一方面的某些实施方式中,所述利用来自所述第二验证系统的第三证明信息,验证第二验证系统所提交的经第一种加密处理的查询请求的格式合法性的步骤包括:获取用于证明所述查询请求在各维度上的格式合法性的第三证明信息;其中,所述第三证明信息是基于所述查询请求而生成的;基于所述第三证明信息验证所述查询请求的格式合法性。
在本申请的第一方面的某些实施方式中,所述第三证明信息包括用于证明所述查询请求与且仅与一个用户相关的值序列。
在本申请的第一方面的某些实施方式中,所述第一种加密处理是基于同态加密而设置的。
本申请的第二方面还提供一种权限验证方法,执行于第二验证系统,包括:基于一验证需求向第一验证系统发送一验证请求;其中所述验证请求包含经第一种加密处理的查询请求;其中,所述查询请求用于从一用户群组中获取目标用户的查询结果,所述验证请求用于验证发起所述验证请求的行为是一目标用户授权的;所述查询请求的维度为至少一维;基于所述验证请求并生成至少一种证明信息,以供所述第一验证系统证明发起所述验证请求的行为是一目标用户授权的。
在本申请的第二方面的某些实施方式中,所述基于验证请求并生成至少一种证明信息的步骤包括:基于所述第一验证系统所提供的与所述查询请求的维度相关的待验证数据集生成第二证明信息,并将所述第二证明信息发送给第一权限验证系统;其中,所述第二证明信息用于证明所述验证请求是得到所述目标用户的授权的。
在本申请的第二方面的某些实施方式中,所述基于第一验证系统所提供的与所述查询请求的维度相关的待验证数据集生成第二证明信息的步骤包括:获取所述待验证数据及一随机数集;其中,所述随机数集是基于第一验证系统与目标用户所在用户群组中每个用户之间单独共享的密钥及第一随机数而生成的;所述待验证数据是基于所述查询请求所构建的空间,将随机数集中对应到该空间各位置的第三随机数与所述查询请求每个维度上子查询请求中的各子查询元素进行计算得到的;基于所述待验证数据及所述随机数集得到第二证明信息。
在本申请的第二方面的某些实施方式中,所述基于验证请求并生成至少一种证明信息的步骤包括:基于所述查询请求生成第三证明信息,并发送给第一验证系统,以验证所述经第一种加密处理的查询请求的格式合法性。
在本申请的第二方面的某些实施方式中,所述基于查询请求生成第三证明信息的步骤包括:基于所述查询请求在各维度上的格式,生成用于证明所述格式合法性的第三证明信息。
在本申请的第二方面的某些实施方式中,所述第三证明信息包括用于证明所述查询请求与且仅与一个用户相关的值序列。
在本申请的第二方面的某些实施方式中,所述第一种加密处理是基于同态加密而设置的。
本申请的第三方面还提供一种第一验证系统,包括:第一通信模块,用于接收第二验证系统发送的验证请求;其中所述验证请求包含用于从一用户群组中获取目标用户的查询结果的、且经第一种加密处理的查询请求;其中,所述验证请求用于验证发起所述验证请求的行为是一目标用户授权的;所述查询请求的维度为至少一维;验证模块,用于基于所述验证请求并利用至少一种证明信息执行验证操作。
在本申请的第三方面的某些实施方式中,所述验证模块用于执行以下步骤:利用来自目标用户的第一证明信息,验证所述第二验证系统所提交的验证请求中目标用户的身份;利用来自所述第二验证系统的第二证明信息,验证所述第二验证系统所提交的验证请求是否得到所述目标用户的授权。
在本申请的第三方面的某些实施方式中,所述验证模块用于执行以下步骤:向所述目标用户发送用于验证其身份认证的第一随机数;接收目标用户反馈的第二随机数及其第一证明信息;其中,所述第二随机数是基于第一随机数生成的;基于所述第一证明信息和第二随机数验证目标用户的身份。
在本申请的第三方面的某些实施方式中,所述第一证明信息包含一组用于证明所述目标用户的身份的值序列。
在本申请的第三方面的某些实施方式中,所述验证模块用于执行以下步骤:基于与所述用户群组中每个用户之间单独共享的密钥及第一随机数,为每一用户生成第三随机数,得到对应用户群组的随机数集;基于查询请求的维度所构建的空间,将所述随机数集中各第三随机数与表示该空间的位置进行对应;将所述查询请求每个维度上子查询请求中的各子查询元素和随机数集中对应的第三随机数进行计算,并得到对应维度的待验证数据集;将所得到的各维度的待验证数据集及所述随机数集发送第二验证系统,并获取所反馈的第二证明信息;基于所述第二证明信息验证所述第二验证系统所提交的验证请求是得到所述目标用户的授权。
在本申请的第三方面的某些实施方式中,所述第二证明信息包括用于证明所述验证请求是得到所述目标用户的授权的值序列。
在本申请的第三方面的某些实施方式中,所述验证模块还用于执行以下步骤:利用来自所述第二验证系统的第三证明信息,验证所述第二验证系统所提交的经第一种加密处理的查询请求的格式合法性。
在本申请的第三方面的某些实施方式中,所述验证模块用于执行以下步骤:获取用于证明所述查询请求在各维度上的格式合法性的第三证明信息;其中,所述第三证明信息是基于所述查询请求而生成的;基于所述第三证明信息验证所述查询请求的格式合法性。
在本申请的第三方面的某些实施方式中,所述第三证明信息包括用于证明所述查询请求与且仅与一个用户相关的值序列。
在本申请的第三方面的某些实施方式中,所述第一种加密处理是基于同态加密而设置的。
本申请的第四方面还提供一种第二验证系统,包括:第二通信模块,用于基于一验证需求向第一验证系统发送一验证请求;其中所述验证请求包含经第一种加密处理的查询请求;其中,所述查询请求用于从一用户群组中获取目标用户的查询结果,所述验证请求用于验证发起所述验证请求的行为是一目标用户授权的;所述查询请求的维度为至少一维;配合验证模块,用于基于所述验证请求并生成至少一种证明信息,以供所述第一验证系统证明发起所述验证请求的行为是一目标用户授权的。
在本申请的第四方面的某些实施方式中,所述配合验证模块用于执行以下步骤:基于所述第一验证系统所提供的与所述查询请求的维度相关的待验证数据集生成第二证明信息,并将所述第二证明信息发送给第一权限验证系统;其中,所述第二证明信息用于证明所述验证请求是得到所述目标用户的授权的。
在本申请的第四方面的某些实施方式中,所述验证模块用于执行以下步骤:获取所述待验证数据及一随机数集;其中,所述随机数集是基于第一验证系统与目标用户所在用户群组中每个用户之间单独共享的密钥及第一随机数而生成的;所述待验证数据是基于所述查询请求所构建的空间,将随机数集中对应到该空间各位置的第三随机数与所述查询请求每个维度上子查询请求中的各子查询元素进行计算得到的;基于所述待验证数据及一随机数集得到第二证明信息。
在本申请的第四方面的某些实施方式中,所述配合验证模块包括用于基于所述查询请求生成第三证明信息,并发送给第一验证系统,以验证所述经第一种加密处理的查询请求的格式合法性。
在本申请的第四方面的某些实施方式中,所述验证模块用于基于所述查询请求在各维度上的格式,生成用于证明所述格式合法性的第三证明信息。
在本申请的第四方面的某些实施方式中,所述第三证明信息包括用于证明所述查询请求与且仅与一个用户相关的值序列。
在本申请的第四方面的某些实施方式中,所述第一种加密处理是基于同态加密而设置的。
本申请的第五方面还提供一种权限验证系统,包括:如前述中任一所述的第一验证系统;如前述中任一所述的第二验证系统;第三验证系统,用于配合所述第一验证系统提供用于验证发起所述验证请求的行为中的目标用户身份的证明信息。
本申请的第六方面还提供一种第一计算机系统,包括:存储装置,用于存储至少一个程序;接口装置,用于与至少一个第二计算机系统通信;处理装置,用于调用所述至少一个程序并协调所述存储装置和接口装置执行如第一方面中任一所述的权限验证方法。
本申请的第七方面还提供一种第二计算机系统,包括:存储装置,用于存储至少一个程序;接口装置,用于与第一计算机系统通信;处理装置,用于调用所述至少一个程序并协调所述存储装置和接口装置执行如第二方面中任一所述的权限验证方法。
本申请的第八方面还提供一种计算机可读存储介质,其特征在于,存储有权限验证计算机程序,所述权限验证计算机程序被执行时实现如第一方面中任一项所述的权限验证方法或者如第二方面中任一项所述的权限验证方法。
如上所述,本申请的权限验证方法及系统,具有以下有益效果:基于验证请求利用至少一种证明信息执行验证操作,用于证明发起验证请求的行为是经目标用户授权的。另外,还可以验证目标用户身份的合法性,以及查询请求格式的正确性,进而解决现有技术中网络操作中权限验证出现的漏洞。
附图说明
图1显示为本申请数据查询系统在一实施方式中的硬件系统的结构示意图。
图2显示为本申请数据查询方法在一实施方式中的流程图。
图3显示为一种维度为2维的查询请求的示例。
图4显示为图3所示查询请求与查询结果集的对应关系示意图。
图5显示为将图4所述子查询请求元素与查询结果进行运算后的对应关系示意图。
图6显示为一种维度为3维的查询请求的示例。
图7显示为查询数据集对应到图6所示的空间P1中各空间位置的对应关系。
图8显示为将图7所述子查询请求元素与查询结果进行运算后的对应关系示意图。
图9显示为将图8所述子查询请求元素与查询结果进行运算后的对应关系示意图。
图10显示为查询请求为3×4数组所查询到的查询结果集中所有项都是非空的。。
图11显示为查询请求为3×4数组所查询到的查询结果集中第3列仅包含a23。
图12显示为查询请求为3×4数组所查询到的查询结果集。
图13显示为查询请求为3×4数组所查询到的查询结果集。
图14显示为查询请求为3×4数组所查询到的查询结果集。
图15显示为本申请权限验证方法的流程图。
图16显示为2维且构成(3×4)矩阵查询请求与随机数集之间运算关系。
图17显示为本申请的数据查询系统的软件架构示意图。
图18显示为本申请的权限验证系统的软件架构示意图。
本申请中所涉及公式的参数表
具体实施方式
以下由特定的具体实施例说明本申请的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本申请的其他优点及功效。
虽然在一些实例中术语第一、第二等在本文中用来描述各种元件,但是这些元件不应当被这些术语限制。这些术语仅用来将一个元件与另一个元件进行区分。例如,第一数据查询系统可以被称作第二数据查询系统,并且类似地,第二数据查询系统可以被称作第一数据查询系统,而不脱离各种所描述的实施例的范围,但是除非上下文以其他方式明确指出,否则它们不是同一个数据查询系统。相似的情况还包括第一种加密处理与第二种加密处理等。
再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、步骤、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、步骤、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和;A和C;B和C;A、和C”。仅当元件、功能、步骤或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
在一些涉及敏感数据的查询应用中,如信贷应用、使用个人信息进行网络业务查询等应用,对敏感数据的保护需要提供这些数据的数据源、中间平台、数据使用方等多方协同执行;甚至用户自己提供的敏感数据也是需要保护的。其中,所述敏感数据包括但不限于:个人/企业身份信息、个人/企业账户信息、个人体貌特征信息、个人/企业消费信息(如账单)、个人/企业因使用软件的行为而产生的信息(如移动路线、浏览时长等)、企业收集到的具有商业价值的评价信息、以及企业根据至少上述各信息进行分析后得到的信息等。
为使得涉及敏感数据的各计算机设备在保护敏感数据的基础上实现对敏感数据的处理,在一些实施方式中,将敏感数据进行加密处理,然而,在各计算机进行数据处理时,仍需获得明文。为此,本申请提供一种在多方设备无法获知敏感数据的情况下,实现对敏感数据的读取、交互、应用处理等。
其中,在一些场景下,如互联网业务中订单查询等,其构成所述多方设备之间进行数据安全读取、交互和应用的系统包括:第二计算机系统、数据源(又叫第三计算机系统)。其中,通过执行本申请所提供的方法,第二计算机系统可直接向数据源进行安全的数据查询,并获得查询结果。在又一些场景下,如受目标用户委托查询一贷款机构的借贷信息等,其构成所述多方设备之间进行数据安全读取、交互和应用的系统包括:第二计算机系统、数据源(又叫第三计算机系统)、和用户设备。其中,通过执行本申请所提供的方法,基于目标用户所使用的用户设备和第二计算机系统的权限认证配合,数据源可为第二计算机系统提供安全的数据查询,使得第二计算机系统获得相应的查询结果。在再一些场景下,如受目标用户委托查询多家贷款机构的借贷信息等,其构成所述多方设备之间进行数据安全读取、交互和应用的系统包括:第一计算机系统、第二计算机系统、数据源(又叫第三计算机系统)、和用户设备。其中,通过执行本申请所提供的方法,基于目标用户所使用的用户设备和第二计算机系统的权限认证配合,第一计算机系统向至少一个数据源进行安全的数据查询,并获得各数据源的查询结果。
基于上述各示例举例,基于各计算机系统在多方安全数据处理过程中的执行过程,提供至少一种数据查询方法、权限验证方法等。在一些场景下,相应的数据查询方法和权限验证方法由多方计算机系统执行,并构成对数据进行安全地传输和处理的过程。例如,在多方借贷的借贷调查应用中,参与权限认证和数据查询的多方计算机系统可包含:申请借款的目标用户所持有用户设备、第一计算机系统、第二计算机系统和第三计算机系统。在又一些场景下,相应数据查询方法和权限验证方法可单独执行,分别用于实现安全的数据查询,以及权限验证。在一些具体场景下,在第三计算机系统所提供的数据库中查询不包含明文的敏感数据的某一订单信息,利用本申请所提供的一种数据查询方法,第三计算机系统借助于描述订单信息在订单信息集中的位置等信息,来取得所查询的某一订单信息。上述订单信息还可以是贷款信息、消费信息、个人身份信息等等。在又一些具体场景下,在第二计算机系统向第三计算机系统提供查询业务以期望获得查询结果并对查询结果进行后续处理的过程中,作为面向多个第三计算机系统和多个第二计算机系统的代理平台,第一计算机系统可不仅为双方提供数据转发,还提供包含查询结果融合处理,转发,权限验证等。例如,第一计算机系统为用于借贷业务的查询代理平台,第二计算机系统为用于查询借款人(又称目标用户)贷款信息的查询方,第三计算机系统为贷款机构的数据库,则第二计算机系统基于借款人的申请发起不包含关于借款人的敏感数据的查询业务至第一计算机系统,所述计算机系统执行权限验证,并在权限验证通过后将查询业务转发至至少一个第三计算机系统,所述第三计算机系统在不知道借款人敏感数据的情况下,得到对应查询业务的贷款信息,并返回给第一计算机系统;第一计算机系统同样在未予得到敏感数据的情况下,将各第三计算机系统所反馈的查询结果进行融合处理,并反馈给第二计算机系统以供其进行借款人与贷款机构之间查询结果的一致性评估,以及贷款资质评估处理等。基于上述示例可见,在一些其他示例中,所述第一计算机系统中的部分可与第三计算机系统集成在一起,例如,将权限验证和数据转发集成在第三计算机系统中。又如,第三计算机系统中的部分可集成在第一计算机系统中。在又一些其他示例中,所述第一计算机系统中的部分可与第二计算机系统集成在一起,例如,将一致性验证等集成在第二计算机系统中。又如,第二计算机系统中的部分可集成在第一计算机系统中。再另一些其他示例中,所述第一计算机系统可集成第二计算机系统和/或第三计算机系统的部分工作,以提高信息安全性。基于上述贷款信息的查询过程,执行类似查询过程的还可以包含查询身份信息、消费信息、订单信息等。
为便于描述基于一业务需求而发起的数据查询过程、权限验证过程、查询结果一致性检验过程、使用查询结果的评估过程等,现以藉由目标用户所使用的用户设备、查询方所使用的第二计算机系统、中间平台所使用的第一计算机系统、贷款方所使用的数据源(又叫第三计算机系统)所构成的硬件系统的工作过程来描述上述各过程。请参阅图1,其显示为本申请一数据查询系统在一实施方式中的硬件系统的结构示意图。
需要说明的是,依据图1所示的硬件系统而执行的各过程仅为举例,在不同应用场景下,其可单独执行或与基于实际设计需要而与其他执行过程配合执行。例如,上述权限验证过程可单独用于在不提供敏感数据的情况下执行网络业务的权限验证。又如,对查询结果一致性的检验过程可单独用于如电子合同、代理业务等多方参与的一致性校验场景。再如,上述结合数据查询过程和查询结果的评估过程可根据实际业务逻辑需求而确定。其中,所述业务逻辑需求包括但不限于:订单自动处理需求、基于用户消费能力进行定制服务的定价需求等。
还需要说明的是,上述提及的用户设备、第二计算机系统、第一计算机系统、数据源等均为包含存储装置、处理装置、接口装置等的电子设备。其中,根据实际性能需求,所述电子设备包括但不限于为执行上述各方法而配置的专用芯片、FPGA等。
其中,所述电子设备可为单台计算机设备、或基于云架构的服务系统等。其中,所述单台计算机设备可以是自主配置的可执行本申请各方法的计算机设备,其可位于私有机房或位于公共机房中的某个被租用的机位中。所述云架构的服务系统包括公共云(PublicCloud)服务端与私有云(Private Cloud)服务端,其中,所述公共或私有云服务端包括Software-as-a-Service(软件即服务,简称SaaS)、Platform-as-a-Service(平台即服务,简称PaaS)及Infrastructure-as-a-Service(基础设施即服务,简称IaaS)等。所述私有云服务端例如阿里云计算服务平台、亚马逊(Amazon)云计算服务平台、百度云计算平台、腾讯云计算平台等等。
根据实际运行上述各方法的硬件装置,构成所述电子设备的各装置可位于单台服务器上,或位于多台服务器中并通过各服务器之间的数据通信协同完成。
为此,所述接口装置与处理装置数据连接,其可以通过总线连接,或通过通信网络进行数据传递。为此,所述接口装置包括但不限于网卡、移动网络接入模块、通过总线与处理装置相连的总线接口等。例如,对应第二计算机系统的接口装置与所述第一计算机系统的接口装置、用户设备的接口装置等通信连接。各所述接口装置通过互联网、移动网络、及局域网络进行数据通信。
所述存储装置用于存储可执行上述任一种或多种方法的至少一个程序。对应同一电子设备的所述存储装置可与处理装置位于同一实体服务器上,或位于不同实体服务器中并通过各服务器的接口装置将程序传递给运行所述程序的处理装置。所述存储装置可包括高速随机存取存储器,并且还可包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。在某些实施例中,存储器还可以包括远离一个或多个处理器的存储器,例如经由RF电路或外部端口以及通信网络(未示出)访问的网络附加存储器,其中所述通信网络可以是因特网、一个或多个内部网、局域网(LAN)、广域网(WLAN)、存储局域网(SAN)等,或其适当组合。所述存储装置还包括存储器控制器,其可控制设备的诸如CPU和外设接口之类的其他组件对存储器的访问。其中,存储在存储装置中的软件组件包括操作系统、通信模块(或指令集)、文本输入模块(或指令集)、以及应用(或指令集)。
所述处理装置可操作地与存储装置耦接。更具体地,处理装置可执行在存储器和/或非易失性存储设备中存储的程序以在任务平台中执行操作。如此,处理装置可包括一个或多个通用微处理器、一个或多个专用处理器(ASIC)、一个或多个现场可编程逻辑阵列(FPGA)、或它们的任何组合。其中,所述处理装置所包含的多个CPU可位于同一实体服务器中或分散在多个实体服务器中,并借助于接口装置实现数据通信,以协同地执行各方法的各步骤。
请参阅图2,其显示为数据查询方法在一实施方式中的流程图。其中,所述数据查询方法中涉及第二计算机系统执行的步骤、第一计算机系统执行的步骤、以及第三计算机系统所执行的步骤。其中,所述第一计算机系统中配置有第一数据查询系统,所述第二计算机系统中配置有第二数据查询系统,以及所述第三计算机系统中配置有第三数据查询系统,上述各数据查询系统为运行于相应计算机系统中的软件系统。
根据前述各场景示例,执行所述方法相关步骤的计算机系统还可以是其他能够执行相关步骤的计算机系统,而非限制在本实施方式所示的计算机系统;相应的,各软件系统可拆分或合并地配置在执行相应步骤的实体计算机系统中,在此不再一一举例。
在步骤S110中,第二数据查询系统基于一目标用户的查询需求,发送至少一个查询业务。
其中,所述目标用户为敏感数据的提供者,其可以为个人、企业等。例如,目标用户为申请贷款的借款人。第二数据查询系统旨在利用图1示例的硬件系统所构建的网络架构,在不提供所述目标用户的敏感数据的情况下,获得对应目标用户的查询结果,进而利用查询结果进行对应查询需求的评价。在此,所述查询需求为目标用户通过线下、或异步方式申请而产生的。其中,所述查询需求包括:出于贷款目而产生的贷款额度评估需求等,出于合约目的而产生的个人征信评估需求等。
为此,第二数据查询系统基于查询需求产生至少一个查询业务。其中,所述查询业务与为描述查询需求的数学计算相关。例如,在贷款额度的查询需求中,为确定可向目标用户发放在区间[a1,a2]万元范围内的贷款,需构建包含各贷款机构的贷款余额与目标用户可贷款金额进行比较等数学计算。对应地,查询业务包含:查询目标用户在多个贷款机构中的贷款余额的查询业务。又如,仍以贷款的查询需求为例,所述查询需求包含贷款次数的统计,为确定目标用户的历史贷款次数,需构建包含各贷款机构的贷款次数汇总的数学计算。对应地,查询业务包含:查询目标用户在多个贷款机构中的贷款次数的查询业务。
其中,所述查询业务包含待查询信息和经第一种加密处理的查询请求。其中,所述待查询信息是指为执行数学计算而需从数据源获取的与查询结果类型相关的信息。所述待查询信息举例包括:贷款次数、贷款余额、贷款余额均值与方差、个人失信次数、退款次数、退货理由统计值等。
另外,为去除关于目标用户的敏感数据,所述查询业务中还设置有对应于目标用户的查询请求。所述查询请求用于表示该目标用户在一用户群组中的位置。其中,所述用户群组至少在第二数据查询系统和第三数据查询系统中为统一设置的。换言之,第二数据查询系统和第三数据查询系统预先配置有用户群组中各用户信息的顺序。其中,在一些示例中,预设地将注册用户划分为相同大小的多个用户群组,只要分组规模足够大,这种分组方式就可以实现隐秘敏感数据的目的,这种设计是效率和隐私之间的权衡。例如,假设有N个注册用户,这些用户被分成几个组,每个组的大小为Ng。对于身份为u的注册用户,第一数据查询系统可为用户分配唯一元组(gidu,pidu),并分享给其他数据查询系统。其中gidu是组id,pidu是用户在组中的位置。很明显和0≤pidu<Ng。
在一些具体示例中,所述用户群组可为默认群组,例如,用户群组为第二数据查询系统中所注册的所有用户,并通过同步或异步更新至第三数据查询系统。在又一些具体示例中,第二数据查询系统将所注册的用户分成多个用户群组,并通过同步或异步更新至第三数据查询系统,第二数据查询系统和第三数据查询系统基于每个用户群组的编号(如gid)来区分各用户群组。为此,在用户群组为多个的情况下,所述查询业务还包含目标用户所在的用户群组信息。
其中,同一用户群组中各用户信息的顺序在第二数据查询系统和第三数据查询系统中是一致的。或者,同一用户群组中各用户信息的顺序在第二数据查询系统和第三数据查询系统中是具有对应关系的。在一些更具体示例中,该对应关系配置在第一数据查询系统侧,由第一数据查询系统按照所述对应关系,将第二数据查询系统所提供的用户群组中各用户的顺序转换成对应某一第三数据查询系统所需的用户群组中各用户的顺序。
其中,所述查询请求用于在一用户群组中获取目标用户对应所述待查询信息的查询结果。其中,所述查询请求包含至少一维子查询请求,其中,每一维子查询请求包含多个子查询元素。用户群组中用户的位置可对应于查询请求中各子查询元素在相应维度上的位置。在此,为去除目标用户的敏感数据,以0和1表示用户群组中非目标用户和目标用户为例,用户群组中包含12个用户,其中第4个为所述目标用户,则查询请求的明文可表示成{0,0,0,1,0,0,0,0,0,0,0,0},利用第一种加密处理,将所述查询请求的明文进行加密后得到一维子查询请求表示为:{E(0),E(0),E(0),E(1),E(0),E(0),E(0),E(0),E(0),E(0),E(0),E(0)};或者将所述查询请求的明文进行加密后得到二维子查询请求表示为:{{E(0),E(1),E(0),E(0)},{E(1),E(0),E(0)}}。其中,各维度子查询请求中的E(0)和E(1)为子查询元素。
在此,以获取查询结果为目的而对经第一种加密处理后的查询请求进行的第一数学计算,具有等价于对查询请求的明文进行第二种数学计算的效果,以使得参与数据查询的各数据查询系统可藉由经第一种加密处理的查询请求得到对应目标用户的查询结果。在一些示例中,所述第一种加密处理是基于同态加密而设置的。例如,所述第一种加密处理方式是基于公式而设置的,前述示例中的E(0)和E(1)对应于此处x1,x2为0和1的情况;r为一种随机数;g和n为第一种加密处理方式的公钥;其中,该示例中的第一种加密处理方式具有加法同态:E(x1)E(x2)=E(x1+x2)和乘法同态: 的特性,由此可见,利用经第一种加密处理的查询请求进行乘法计算等同于明文的加法计算,利用经第一种加密处理的查询请求进行指数乘法计算等同于明文的乘法计算。需要说明的是,所述第一种加密方式并非限于该公式所提供的同态加密算法,其他具有同态性质的加密算法也适用于此。
基于上述示例所描述的查询请求可知,所述查询请求可由一维数组表示。若用户群组中用户数量过多,所述查询请求的数量也很庞大,这不利于数据通信。为此,在一些其他示例中,所述用户群组中用户的位置被一种多维的查询请求描述。例如,用户群组包含12个用户,其中目标用户为第四个,利用二维查询请求(4×3)描述用户群组中第四个目标用户(第二行第一列)的方式举例为{{q(0),q(1),q(0),q(0)},{q(1),q(0),q(0)}},由此可见,12个一维查询请求被转换成用7个二维查询请求描述。藉由上述二维示例推广之,根据数据传输量最小化,将所述查询请求设置成多维子查询请求。例如,用户群组中用户数量为1000,则查询请求的维度设为三维(10×10×10),共30个查询元素描述即可。
在此,为了利用第一种加密处理的运算方式进行数据查询,所述查询请求可标记用户群组中一个或多个目标用户。其中,为利用查询请求所构建的多维空间进行快速计算,所述查询请求中仅标记对应该空间中一个位置的用户为目标用户,即在所述查询请求所构建的多维空间中对应一个空间位置的各维度的子查询元素为经第一种加密处理的数值1,以及对应其余各空间位置的各维度的子查询元素为经第一种加密处理的数值0。
在一些示例中,第二数据查询系统将所生成的至少一个查询业务发送给第三数据查询系统,以获得目标用户在第三数据查询系统的查询结果。在又一些示例中,所述第二数据查询系统将所生成的至少一个查询业务发送给第一数据查询系统,所述第一数据查询系统可基于预设的多个数据源转发所述查询业务,或者根据所述查询业务中指定的至少一个数据源转发所述查询业务,并获得多个数据源中的第三数据查询系统所反馈的对应目标用户的查询结果。
以所述第一数据查询系统接收所述查询业务为例,在步骤S210中,第一数据查询系统接收所述第二数据查询系统所发送的至少一个查询业务,并转发给包含相应数据源的第三数据查询系统,以供第三数据查询系统执行步骤S320。
以所述第三数据查询系统接收所述查询业务为例,在步骤S310中,第三数据查询系统接收所述第二数据查询系统所发送的至少一个查询业务,并执行步骤S320。
在步骤S320中,所述第三数据查询系统依据所述待查询信息得到目标用户所在用户群组的查询数据集。
在此,所述第三数据查询系统根据用户群组的gid和待查询信息,从数据库中读取对应整个用户群组的查询数据集。在一些示例中,所述待查询信息对应于数据库中的数据项,本步骤包括依据数据库中与所述待查询信息相对应的数据项,读取所述数据库中对应所述用户群组的第一查询数据集,并将所述第一查询数据集作为所述查询数据集。例如,所述待查询信息为贷款余额,所述第三数据查询系统的数据库中包含贷款余额的数据项,则第三数据查询系统读取所述数据库中对应用户群组的查询数据集。
在又一些示例中,第三数据查询系统需根据待查询信息确定数据库中对应的数据项,并依据所述待查询信息中对所述数据项的预处理方式,将所述第一查询数据集进行预处理得到第二查询数据集,并将其作为依据所述待查询信息和用户群组而得到的查询数据集。例如,所述待查询信息为是否有贷款,第三数据查询系统先按照贷款余额的数据项读取用户群组的第一查询数据集,并按照贷款余额大于0表示有贷款为条件进行预处理,得到用户群组中有贷款第二查询数据集。再如,所述待查询信息为贷款余额的平方,第三数据查询系统先按照贷款余额的数据项读取用户群组的第一查询数据集,并按照贷款余额的平方的公式进行预处理,得到用户群组中贷款余额的平方的第二查询数据集。
在另一些示例中,本步骤包括将所述查询数据集中各查询数据进行第二种加密处理的步骤,并将经第二种加密处理的查询数据集作为供后续处理的查询数据集。在一些具体示例中,根据待查询信息的描述,所述第三数据查询系统将从数据库中所读取的各查询数据的明文进行第二种加密处理,由此得到所述查询数据明文的承诺值,并由所述承诺值构成查询数据集。在又一些具体示例中,根据待查询信息的描述,所述第三数据查询系统将从数据库中所读取的各查询数据的明文进行预处理,并将预处理后的查询数据明文进行第二种加密处理,由此得到预处理后的查询数据明文的承诺值,并由所述承诺值构成查询数据集。为便于第二数据查询系统对所述承诺值进行计算,以获得等效对承诺值所对应的查询数据明文进行计算的数据处理需求,所述第二种加密处理也为一种同态加密方式。
例如,一种基于同态加密的第二种加密方式为:给定两个大质数p和q使得q|p-1,假设Gq是Zp的q阶子群。令g和h是Gq的两个随机生成元,并将承诺函数记为F(x,r)=gxhrmodp,其中x∈Zq是承诺值,r是在Zq中随机选取的承诺随机数。其中可将F(x)作为F(x,r)的简写。在此,所得到的承诺函数F是加法同态:给定两个承诺c1=F(x1,r1)和c2=F(x2,r2),可以得到即c1c2是x1+x2的承诺。承诺中的随机数掩盖了被承诺值,因此x的承诺没有显示关于x值的任何信息。
在步骤S330中,第三数据查询系统依据所述经第一种加密处理的查询请求,从所述查询数据集中取得对应所述目标用户的查询结果并予以反馈。
在此,所述第三数据查询系统依据第一种加密处理所对应的运算方式以及各维度的查询请求,将所述经第一种加密处理的查询请求与查询数据集进行运算处理,由此提取出对应目标用户的查询结果。
在此,根据实际查询数据集中各查询数据可能部分或全部为空、部分或全部为0、或部分或全部为不等于0的数值(或字符串等)等情况,在根据查询请求的维度提取目标用户的查询结果前,对查询数据集是否为空进行判断。
在一些示例中,第三数据查询系统所查询到的用户群组的查询数据集为空。例如,用户群组中所有用户均未在第三数据查询系统所在贷款机构记录有贷款余额。在一些具体示例中,所述第三数据查询系统将空值(null)作为对应目标用户的查询结果反馈给第二数据查询系统,或者借由第一数据查询系统将该空值反馈给第二数据查询系统。在又一些具体示例中,为避免出现明文的查询结果,所述步骤S330包括:将对应空的预设数值作为对应所述目标用户的查询结果;利用所述经第一种加密处理的查询请求,将预设数值进行预设次数的第一种加密处理,得到对应所述目标用户的查询结果。
例如,预设空值对应将数值0进行第一种加密处理后得到的数值,将该数值作为对应所述目标用户的查询结果。又如,预设空值对应将数值0进行第一种加密处理后得到的数值(如E(0))作为对应所述目标用户的查询结果;又如,根据查询请求的维度数d,预设空值对应将数值0进行d次第一种加密处理后得到的数值(如Ed(0))作为对应所述目标用户的查询结果。
在又一示例中,当所述查询数据集中包含至少一个查询数据时,所述步骤S330包括:基于所述第一种加密处理方式所对应的运算方式,将所述经第一种加密处理的查询请求与所述查询数据集进行计算处理。
在此,所述第三数据查询系统在基于查询请求的维度所构建的空间下,利用查询请求提取查询数据集中对应目标用户的查询数据。
以所述查询请求的维度为一维为例,所述第三数据查询系统按照公式将查询请求中的各子查询元素与所对应的查询数据进行指数计算,其中,xi为子查询元素的明文,ai为对应于xi的查询数据的明文或承诺值。当子查询元素的明文为0时,对应的子查询元素为E(0),按照上述公式得到E(0×ai),即E(0);当子查询元素的明文为1时,对应的子查询元素为为E(1),按照上述公式得到E(1×ai),即E(ai)。所述第三数据查询系统反馈经一次第一种加密处理的查询数据∏E(xiai)=E(ai)。其中,所述查询数据为数据库中所存放的查询数据明文或承诺值。
以所述查询请求的维度为多维为例,所述步骤S330包括:基于第i维子查询请求和剩余维度的子查询请求所构建的空间,将所述查询数据集中各查询数据与表示该空间的位置进行对应;利用所述运算方式,将所述空间中对应第i维上各子查询元素与相应的查询数据进行计算,得到在第i维投影的新的查询数据集;利用(i+1)维子查询请求和剩余维度的子查询请求所构建的新的空间,以及新的查询数据集,重复上述过程,直至遍历所有维度,得到对应目标用户的查询结果;其中,0<i≤d,d为维度总数。
其中,所述空间用于辅助说明子查询元素与查询数据集中各查询数据之间的对应关系,其可能以计算机执行过程中所开辟的内存的形式表现,或者基于计算机程序指令提供逻辑上的映射关系。在一些具体示例中,所述基于第i维子查询请求和剩余维度的子查询请求所构建的空间,将所述多维子查询请求沿i维展开构建空间矩阵,并按照查询数据集中各查询数据的顺序编号将各查询数据对应到空间矩阵中。在另一些具体示例中,利用公式得到查询数据集在所述空间中的位置:
row_len=m*/mi;
及
其中,mi为基于查询请求集中第i维度中子查询元素的数量而确定的所述空间在第i维度的长度;m*为所述空间的容量;row_len为剩余维度的容量;为第j个查询数据在查询数据集中的顺序编号;r和c分别为是第j个查询数据在所述空间中的位置。
利用上述任一种所构建的空间而确定的子查询元素与查询数据的对应关系,第三数据查询系统执行以下运算:利用运算方式中的第一运算项,将所述空间中第r行的各非空查询数据与第i维的第r个子查询元素分别进行计算,得到对应第r行的各计算结果;以及利用运算方式中的第二运算项,将所述空间中各第c列计算结果进行聚合处理,得到新的查询结果集;其中,r和c表示查询数据在空间中的位置。其中,利用第一种加密处理的运算特性,如前述一种同态加密处理所产生的E(x)E(y)=E(x+y),E(x)y=E(xy)的运算特性,执行上述计算,得到新的查询结果集。
利用第(i+1)维子查询请求和剩余维度的子查询请求所构建的新的空间,以及新的查询数据集,重复上述过程,直至遍历所有维度,得到对应目标用户的查询结果。
以一个组中有Ng个注册用户,且并非所有人都会从同一个贷款方借钱,特别是一些小额贷款方为例,由于每个贷款方Si只需要存储其自己的借款方的信息,其借款方信息的数组可能非常稀疏。例如,如果只有1/10的人从贷款方借钱,大多数贷款方数组的稀疏性(即空项的比例)将超过0.9。利用稀疏性来加速PIR过程,即在生成结果时跳过空项。
具体来说,对于具有m个项的稀疏查询结果集A,假设m’个项非空(这表示m=Ng,并且组中只有m′个用户从贷款方借款。将A表示为{ind1:a1,ind2:a2,…,indm′:am′},其中每个(indj:aj)(1≤j≤m′)是索引与值组成的对。每个indj对应一个pid,每个aj对应一些xib的承诺。本步骤以递归方式执行提取过程并利用数组的稀疏性来提高性能。直观地说,对于大小为m*的数组A*,如果想要提取位置ind的项,可以先将每个row_len项聚合成一个组,并将该数组视为row_len×(m*/row_len)矩阵。接下来将A*[ind]的坐标计算为(r,c)并提取第r行。然后递归地应用此过程以提取所提取行的第c项。跳过空项以减少计算开销最后,算法返回所提取项。计算复杂度与非空项的数量(即从该贷款方借入资金的注册用户的数量)成比例。
基于上述示例的算法描述如下:
Input:The query ,the query dimension d,and the sparse array/dataset
A={ind1:a1,ind2:a2,...,indm′:am′}.
Output:The cipertext of the queried item.
以查询请求的维度为二维举例,请参阅图3,其显示为查询请求的维度为2维的示例,其中查询请求为:q={{q11,q12,q13},{q21,q22,q23,q24}},其中,qij为第i维和第j个子查询元素,各子查询元素对应为经第一种加密处理的0或1,换言之,各qij为q={{q11,q12,q13},{q21,q22,q23,q24}}={{E(0),E(1),E(0)},{E(0),E(0),E(1),E(0)}}。第一维子查询请求{q11,q12,q13}和剩余维度(即第二维)的子查询请求{q21,q22,q23,q24}所构建的空间P1即图3所示;第三数据查询系统将查询数据集{NA,x2,NA,x4,x5,NA,NA,x8,x9,x10,NA,NA},按照所述空间P1所提供的空间位置,将查询数据集中各数值按照预设顺序依次对应到各空间位置中,NA表示查询查询数据为空,请参阅图4,其显示为图3所示查询请求与查询结果集的对应关系示意图,其中,q11子查询元素对应数组{NA,x2,NA,x4};q12子查询元素对应数组{x5,NA,NA,x8};q13子查询元素对应数组{x9,x10,NA,NA}。其中,根据查询请求q中表示数字1的子查询元素q12和q23在空间中的位置,对应于目标用户的查询数据为查询数据集中第7个数据NA。
按照公式E y=E(xy),将各子查询元素与对应的数组中的数值进行计算,其中,对于标记为空(NA)的查询数据,第三数据查询系统跳过处理,得到如图5所示的计算结果,以及按照公式E(x)E(y)=E(x+y)沿第一维方向对各计算结果进行聚合处理,得到新的查询数据集为(E(a21),E(0),NA,E(a24)),其中,a21对应于x5,a24对应于x8。
按照查询请求q中第二维子查询请求{q21,q22,q23,q24}所构建的一维空间,将新的查询数据集(E(a21),E(0),NA,E(a24))重复上述过程,得到对应目标用户的查询结果为E(0)。
以查询请求的维度为三维举例,请参阅图6,其显示为查询请求的维度为3维的示例,其中查询请求为:q={{q11,q12,q13,q14},{q21,q22,q23},{q31,q32}},其中,qij为第i维和第j个子查询元素,各子查询元素对应为经第一种加密处理的0或1,换言之:
q={{q11,q12,q13,q14},{q21,q22,q23},{q31,q32}}={{E(0),E(0),E(1),E(0)},{E(0),E(1),E(0)},{E(1),E(0)}}
其中,第一维子查询请求{q11,q12,q13,q14}和剩余维度(即第二维和第三维)的子查询请求{q21,q22,q23},{q31,q32}所构建的空间P1即图6所示;第三数据查询系统将查询数据集{NA,x2,NA,x4,NA,NA,NA,NA,NA,NA,NA,NA,x13,x14,x15,NA,NA,NA,NA,NA,NA,NA,NA,NA},按照所述空间P1所提供的空间位置,将查询数据集中各数值按照预设顺序依次对应到各空间位置中,请参阅图7,其显示为查询数据集对应到图6所示的空间P1中各空间位置的对应关系,即q11子查询元素对应数组{NA,x2,NA,x4,NA,NA};q12子查询元素对应数组{NA,NA,NA,NA,NA,NA};q13子查询元素对应数组{x13,x14,x15,NA,NA,NA};q14子查询元素对应数组{NA,NA,NA,NA,NA,NA}。其中,根据查询请求q中表示数字1子查询元素q13、q22和q31在空间中的位置,对应于目标用户的查询数据为查询数据集中第15个数据x15。
按照公式E(x)y=E(xy),将各子查询元素与对应的数组中的数值进行计算,其中,对于标记为空(NA)的查询数据,第三数据查询系统跳过处理,得到如图8所示的计算结果,以及按照公式E(x)E(y)=E(x+y)沿第一维方向对各计算结果进行聚合处理,得到新的查询数据集为(E(a31),E(a32),E(a33),E(0),NA,NA),其中,a31对应于x13,a32对应于x14,a33对应于x15。
按照查询请求q中第二维子查询请求{q21,q22,q23}和剩余子查询请求{q31,q32}所构建的二维空间,将新的查询数据集(E(a31),E(a32),E(a33),E(0),NA,NA)重复上述过程,得到新的查询数据集为(E(E(a33)),E(E(0)))。
按照公式E(x)y=E(xy),将各子查询元素与对应的数组中的数值进行计算,其中,对于标记为空(NA)的查询数据,第三数据查询系统跳过处理,得到如图9所示的计算结果,以及按照公式E(x)E(y)=E(x+y)沿第二维方向对各计算结果进行聚合处理,得到对应于目标用户的查询结果E(E(E(a33)))。上述目标用户的查询结果为经三次第一种加密处理的查询数据x15。
基于上述示例并推广至更高维度的查询请求,所述查询结果为基于所述查询请求的维度而得到的至少一种查询结果之一。换言之,基于第三数据查询系统中所得到的查询结果集中包含某一维度上为空的可能,而产生查询结果具有基于维度而得到的多种查询结果之一。另外,若目标用户在第三数据查询系统中的查询数据为空(NA),则根据实际设计需要,可得到与维度无关的查询结果,或者与所述维度相关的查询结果。
在一些场景下,当第三数据查询系统跳过数组中的空项时,第二数据查询系统可以通过比较查询中的随机数和结果密文来推断出有关数组的额外信息。请参阅图10和图11所示出的3×4数组为例,其中图10所有项都是非空的,而在图11中第3列仅包含所查询项a23。对于图10,当第三数据查询系统提取第二行时,其中xij=0或1,获得 然而,对于图11,当第三数据查询系统提取第二行时,获得 因此,第二数据查询系统接收到E(E(a23))之后,首先解密最外面的加密并获得E(a23)。然后通过比较和接收方可以推断出第3列是否包含其他非空项。
在另一些场景下,第二数据查询系统可以通过检查解密是否返回0推断出额外信息。例如,图12的查询返回E(E(0))。这是因为a23是空的并且被跳过。类似地,图13的查询返回E(01),其中01是其长度等于密文长度的0字符串(例如,对于具有1024位私钥的Paillier为2048位)。图14显示了一个完全空的数组,我们将0设置为输出(算法1中的第19行)。格式上,对于用于提取项e的d维查询,针对算法1的结果存在d+2个可能性:0,E(0d-1),E2(0d-2),....,Ed-i(0i),....,Ed-1(01),Ed(0),Ed(e),其中Ei(·)=E(Ei-1(·))和0i是与E(0i-1)长度相同的0字符串。虽然这些密文具有相同的长度,但是可以解密它们并发现它们的类型。因此,不同类型的数组导致不同类型的输出,这显示了数组的额外信息。当第二数据查询系统从第三数据查询系统获得响应,最多执行d次解密以获得明文。在解密期间,第二数据查询系统可能会碰到密文或0字符串。由上可见,所述第三数据查询系统还表示目标用户的待查询信息的经至少一次第一种加密处理的查询数据。
为防止目标用户,以及用户群组中其他用户的查询结果被反推并泄露,在执行上述迭代过程中,所述第三数据查询系统还执行以下步骤:将新的查询结果集中的各查询结果加入第一噪声数据,利用第(i+1)维子查询请求和剩余维度的子查询请求所构建的新的空间,以及加入第一噪声数据的新的查询数据集,重复各过程。其中,所述第一噪声数据可为将数值0经第一种加密处理后得到的数据。例如,利用公式E(x)E(y)=E(x+y)将查询数据集中的各查询结果E(E(a33))与E(0)相乘得到包含第一噪声数据的查询结果,即E(E(a33))E(0)=E(E(a33)+0)。
在又一些具体示例中,为避免第一数据查询系统获得目标用户在第三数据查询系统中具有空的查询结果;其中,表示为空的数值可为数字0。
在步骤S340中,第三数据查询系统依据所得到的查询业务,将所得到的对应目标用户的查询结果予以反馈。
在一些示例中,所述第三数据查询系统将查询结果反馈给第一数据查询系统。在又一些示例中,所述第三数据查询系统将查询结果反馈给第二数据查询系统。
需要说明的是,上述第三数据查询系统所提供的数据查询方式不限于针对贷款应用的查询方式。所述目标用户、用户群组、及各自对应的查询数据(集)应适配于相应应用场景而做适应性调整。在更普适的针对数据库查询的一些描述中,所述目标用户可对应于目标对象,用户群组可对应于对象群组。其中,所述目标对象对应于数据库中可的第一数据项,查询结果为数据库中与第一数据项基于索引而设置的关联关系的第二数据项、或基于第二数据项而进行预处理后的数据。所述对象群组可视为一查询范围,其还可以举例为时间范围、索引范围、条件范围等。例如,在政府监管企业生产的产能指标评估、环境指标评估等查询业务中,利用所述数据查询方式可在不泄漏生产经营状况的情况下获取企业自有的生产指标数据库中生产指标信息,以供评估。又如,在电影票房统计时,利用所述数据查询方式可在不泄露影院运营状况的情况下,获取针对某个影片实际售票情况,以供统计。再如,在多电商平台选址仓库时,利用所述数据查询方式可在不泄漏各电商平台订单信息的情况下,获取针对消费区域的数据,以供统计等。由此可见,在不限制查询业务产生、查询结果的后续处理的情况下,所述第三数据查询系统所提供的数据查询方式中所提供的术语(如目标用户、用户群组等)应被宽泛理解。
其中,以所述第三数据查询系统将查询结果反馈给第一数据查询系统为例,第一数据查询系统获取来自至少一个第三数据查询系统(即数据源)所提供的查询结果:
在步骤S220中,第一数据查询系统依据所述查询业务,融合从至少一个第三数据查询系统获取的对应所述目标用户和待查询信息的查询结果并反馈给所述第二数据查询系统。
在此,所述第一数据查询系统依据查询业务收集各第三数据查询系统所反馈的查询结果,并融合在一起以便向第二数据查询系统提供完整的查询结果。对应地,所述第二查询系统执行步骤S120,依据每个所述查询业务,获取对应目标用户的查询结果。
在一些示例中,为了确认汇总自各数据源的查询结果与目标用户所提供的校验数据具有一致性,所述第一数据查询系统还执行以下步骤:产生第二噪声数据;将来自各数据源的各查询结果和第二噪声数据进行打乱,得到打乱结果;从目标用户获取基于所述查询业务产生的校验数据及一随机数;基于所述随机数与第二噪声数据得到验证数据;将打乱结果、校验数据、和验证数据发送给第二数据查询系统。其中,第二噪声数据可为一种随机数,例如,该第二噪声数据为数值0或数值0的承诺值经至少一次第一种加密处理后得到的。
在此,一方面,所述第一数据查询系统根据差分隐私技术对所融合的查询结果与第二噪声数据进行打乱处理。另一方面,第一数据查询系统获取目标用户所提供的对应于待查询信息的校验数据。该校验数据为各数据源的查询结果的汇总,例如,为各数据源的查询数据明文的汇总的承诺值。第一数据查询系统将所收集的打乱结果、校验数据、和验证数据发送给第二数据查询系统。
仍以贷款场景为例,其中,第三数据查询系统可视为贷款方,第一数据查询系统可视为代理方,以及第二数据查询系统可视为查询方。在第三数据查询系统将查询结果发送到第一数据查询系统之后,第一数据查询系统生成噪声PIR响应(即第二噪声数据)以使发起方无法区分出第二数据查询系统发送了何种类型的输出。除0外,其他可能输出长度相等。为了防止第一数据查询系统从输出中学习到额外信息,当输出为0时,第三数据查询系统用Ed(0)替换输出。然后第一数据查询系统生成第二噪声数据。0字符串的密文,即E(0d-1),E2(0d-2),....,Ed-i(0i),....,Ed-1(01),Ed(0),可以由第一数据查询系统使用第二数据查询系统的公钥直接生成。但是为了隐藏承诺密文的数量,即Ed(e),其中e是承诺,第一数据查询系统生成0的承诺,即F(0),然后将其加密为Ed(F(0))。由于第二数据查询系统无法区分0的承诺与其他承诺,只要噪声生成算法实现了强大的隐私,无法判断承诺是来自第一数据查询系统还是第三数据查询系统。同时,由于第二噪声数据是0或F(0)的密文,因而不会影响一致性检查的结果。具体来说,第一数据查询系统添加拉普拉斯噪声以实现差分隐私[31]。对于i=1,2,....,d,如果格式为Ed-i(0i),则响应的类型为type i响应。此外,如果响应是承诺的密文Ed(F(x)),则响应的类型为type 0响应。
假设第一数据查询系统收集ni个来自贷款方的type i(i=0,1,...,d)响应。如果第一数据查询系统生成个type i噪声响应,其中,对于每个i,并将其与来自贷款方的响应混合,则第一数据查询系统使每个第三数据查询系统到第二数据查询系统的响应的类型实现(ε,δ)差分隐私,其中且
上述描述过程表明:如果第一数据查询系统添加了适当的噪声量,第二数据查询系统就无法推断每个第三数据查询系统发送的响应类型。注意,上述定理仅考虑第二数据查询系统查询目标用户信息一次的情况。然而,有时候,第二数据查询系统可以多次查询特定目标用户的信息(例如,目标用户可以多次向发起方借钱)。为了在这种情况下仍然实现(ε,δ)差分隐私,可将隐私预算ε和δ分割到每次。具体是,第一数据查询系统将预算平均分配到k次查询,使得每个查询单独实现(ε/k,δ/k)差分隐私。
第二数据查询系统在接收到上述打乱结果、校验数据、和验证数据后,执行步骤S130,对所获取的各查询结果及所述目标用户所提供的校验数据进行一致性校验。
在此,第二数据查询系统从打乱数据中提取各查询结果,并根据预设的密文运算或明文运算计算各查询结果的汇总,并与校验数据进行比较,以确定二者具有/不具有一致性。例如,校验数据和查询结果均为经第二种加密处理方式而生成的,利用第二种加密处理所对应的运算方式,进行可等效明文一致性校验的密文运算,得到各查询结果的汇总;再根据第二种加密处理所对应的运算方式将校验数据和所述汇总是否一致进行一致性校验。
在一些示例中,所述第二数据查询系统从所述打乱结果中所提取的各查询结果为经d次第一种加密处理后的查询结果,故所述第二数据查询系统还进行解密处理得到查询数据;以及基于所述验证数据验证所得到的各查询数据和校验数据一致。
在此,第二数据查询系统根据所生成的查询请求的维度,将各查询结果进行d次解密处理,得到各数据源所反馈的查询数据,再根据第二种加密处理所对应的运算方式,将校验数据和所述汇总进行计算,若所得到的计算结果与验证数据一致,则说明校验数据和所述汇总具有一致性,反之,则不具有一致性。
以贷款场景示例描述一致性校验的过程:
对于每个查询结果,代理方(第一数据查询系统)生成个typei的噪声响应,其中 同时,代理方采样随机整数,并生成n0个承诺F(0,r1),F(0,r2)……F(0,rn)。然后代理方计算并加密承诺以获得type0的n0响应。最后,代理方将这些响应与从贷款方(第三数据查询系统)收集的响应(第一噪声数据)混合在一起。
对于每个Si(第三数据查询系统),借款方b(目标用户)计算此外,借款方生成其借款总额的承诺cb=F(∑xib,rB)。然后借款方将△rB=rB-∑ri发送给代理方,以及将cb通过代理方发送给发起方(第二数据查询系统)。
代理方对响应进行打乱并计算△r=△rB-rF,然后将响应和Δr发送给发起方。
发起方初始化空集C并解密响应。如果响应类型为type 0响应,则发起方向C添加包含在响应中的承诺。最后,如果cb=h△r,代理方计算并且进行检查。
当第二数据查询系统确定一致性时,所述第二数据查询系统还执行步骤S140,即当符合所述一致性时基于所述各查询结果进行对应所述查询需求的评估计算。
在此根据前述提及的查询需求,在一些示例中,所述查询需求包含以下至少一种:查询并汇总目标用户基于求和运算或统计而产生的需求。例如,查询目标用户的贷款次数、查询目标用户的贷款余额,所述第二数据查询系统可基于所得到查询结果的汇总对目标用户所申请的贷款资质进行评估。例如,基于所述汇总确定贷款次数超出预设贷款次数阈值,则评估该目标用户不具有继续贷款的资质。又如,基于所述汇总确定贷款余额小于预设贷款余额阈值,则评估该目标用户可申请贷款。
在又一些示例中,所述查询需求所涉及的查询结果有被第一数据查询系统或第二数据查询系统泄露的风险。比如,为评估查询目标用户的贷款余额是否在预设区间内的查询需求,第二数据查询系统还需要获取各数据源的查询结果的总和。为防止上述示例中所提及的查询结果的总和,并推广至其他查询数据的汇总有被第二数据查询系统反推出明文的可能性,所述步骤S140包括:基于所述查询需求获取目标用户提供的待评估数据,以及对应所述待评估数据的证明信息;基于所述证明信息验证所获取的查询结果中的查询数据和待评估数据之间符合预设对应关系;以及在验证通过后,基于所获取的各查询结果和待评估数据进行对应所述查询需求的评估计算。
在此,第二数据查询系统根据查询需求,向目标用户获取用于评估计算的待评估数据,以及对应所述待评估数据的证明信息。其中,所述证明信息为基于待评估数据和所述汇总而生成的值序列,例如利用零知识证明算法来生成所述证明信息。所述第二数据查询系统基于零知识证明所构建的验证计算,确定目标用户所提供的待评估数据与查询结果的汇总具有预知的对应关系,故,目标用户所提供的待评估数据是可信的。例如,根据查询需求执行方差计算,如其中,是基于经一致性确认的查询结果的汇总而得到的,(∑xi)2为需从目标用户侧获取的待评估数据(亦为承诺值)。第二数据查询系统分别在由承诺F(xi)和构成的两个数据集上得到两个承诺值分别记为F0=F(∑xi),其中,在计算中的F0计算平方时需要知道∑xi,本步骤取而代之,采用令目标用户发送对总余额平方的承诺F2=F((∑xi)2),及其证明信息,如一种基于零知识证明算法而得到的值序列等。通过验证该证明信息,证明F2承诺的确实是F0承诺的平方,则包含方差的评估计算中,该方差可以计算为利用所得到的方差,可进行对目标用户的例如贷款波动的统计评估。
上述藉由证明信息来获取目标用户所提供的待评估数据的方式,还可用在比较目标用户的贷款余额是否在预设区间内,进而评估该目标用户后续贷款额度的评判。基于上述贷款示例而推广至更宽泛的场景,上述查询需求还可以是以下至少一种:查询并汇总目标用户的查询数据是否在预设区间内、查询并汇总目标用户的查询数据的波动。
总结上述各评估方案,第二数据查询系统可以获得下述格式的查询结果:
其中θ是公共参数,t是仅第二数据查询系统知道的私有输入,b是不应向第三数据查询系统披露的借款方身份(即目标用户),xib是目标用户b和各第三数据查询系统Si的私有数据,f是目标用户和第二数据查询系统协同执行的函数。例如,在贷款堆叠问题中,xib是Si借给目标用户b的借款金额,t可以是发起方针对目标用户的私有阈值,f是返回t和的比较结果的函数。
基于上述各示例的描述,所述第一数据查询系统、第二数据查询系统和第三数据查询系统所构成的数据查询系统提供了安全的数据查询、一致性评估和基于查询结果的业务评估的处理过程。需要说明的是,上述各示例仅为示例性的描述了各数据查询系统的数据处理过程,根据实际应用场景,第一数据查询系统中的部分功能可集成在第二数据查询系统中,或集成在第三数据查询系统中。类似地,第二数据查询系统中的部分功能也可以集成在第一数据查询系统中。
在又一些实施方式中,对于金融、个人征信等应用来说,数据安全至关重要,上述数据查询系统在执行数据查询前,还需要执行对基于查询需求而产生的查询业务进行验证。在一些示例中,该查询业务可仅作为验证请求用于执行上述验证操作。在又一些示例中,该查询业务可在验证通过后直接继续查询操作,由此减少因验证而产生的多次数据通信。
在此,前述提及的查询业务来用来作为所述验证操作的一种验证请求,在一些场景下,所述验证操作可基于专用于验证的验证请求而被触发。其中,所述验证请求包含经第一种加密处理的查询请求;其中,所述查询请求用于从一用户群组中获取目标用户的查询结果,所述验证请求用于验证发起所述验证请求的行为是一目标用户授权的;所述查询请求的维度为至少一维。
请参阅图15,其显示为一种权限验证方法的流程图。在此,所述权限验证方法主要由第二验证系统发起,并由第一验证系统验证,其中,在执行验证过程期间,至少第一验证系统和第二验证系统基于本申请所提供的验证方法而执行数据交互。以前述数据查询系统为例,其中,第二数据查询系统可视为第二验证系统,第一数据查询系统可视为第一验证系统。为此,在集成有数据查询和权限验证的计算机系统中,技术人员可将第一数据查询系统描述成包含第一验证系统的软件系统,或将第一验证系统描述成包含第一数据查询系统的软件系统。类似地,技术人员可将第二数据查询系统描述成包含第二验证系统的软件系统,或将第二验证系统描述成包含第二数据查询系统的软件系统,在此不做限定。为简化描述,以下不再对第二验证系统和第二数据查询系统的对应关系做举例说明,同样的,也不再对第一验证系统和第一数据查询系统的对应关系做举例说明。
在步骤S111中,第二验证系统基于一验证需求向第一验证系统发送一验证请求;其中所述验证请求包含经第一种加密处理的查询请求;其中,所述查询请求用于从一用户群组中获取目标用户的查询结果,所述验证请求用于验证发起所述验证请求的行为是一目标用户授权的;所述查询请求的维度为至少一维。
其中,所述验证需求可为专用于验证而产生的,例如,为验证向第二数据查询系统申请开通查询业务而产生的验证需求。所述验证需求还可以是基于查询需求而产生的,例如,由目标用户线下提起贷款申请,接收贷款申请的一方基于该贷款申请产生查询需求,该查询需求本身表示验证需求或包含验证需求。为简化描述,以下不再对验证需求和查询需求的对应关系做举例说明,同样的,也不再对验证请求统和查询请求的对应关系做举例说明。
其中,所述验证请求中所包含的各信息可与前述提及的查询业务中所包含的各信息相同或相似,在此不再详述。类似地,所述步骤S111与前述示例中描述的步骤S110的执行过程相同或相似,在此不再详述。
第一验证系统接收到上述验证请求后,执行步骤S230,即对第二验证系统所提供的验证请求进行验证。其中,第二数据查询系统在执行所述验证步骤并通过验证后,执行前述步骤S210中转发查询业务的步骤,反之,则不予转发。
其中,根据对验证请求安全性的设计需要,所述第一验证系统可以在不知道目标用户的敏感数据的情况下,执行以下至少一种验证:验证目标用户的身份,验证所述查询业务是经由目标用户授权,以及验证所述查询请求的格式合法。基于所述查询请求并利用至少一种证明信息执行验证操作。
为避免上述各验证操作中所涉及的敏感数据被泄露,所述验证操作基于所述验证请求并利用至少一种证明信息执行验证操作。其中,根据待验证的目的,相应的证明信息可来自于目标用户、和/或第二验证系统;第一验证系统利用所持有的数据和所获取的证明信息来验证上述任一种或多种信息的真实性。其中,相应的证明信息可基于零知识证明而生成。
为此,本申请提供基于下述协议示例为基础而构建的关于身份认证和授权等多种实施例:
a)第一验证系统生成随机数re并发送给第三验证系统;
b)当接收到re,第三验证系统b计算使用第二验证系统的公钥pkl=(n,g),第三验证系统将y加密为c=gyrn,其中然后第三验证系统向第一验证系统发送c,以及向第一验证系统证明他知道c中的明文(即y)的零知识证明;
c)对于组gidb中的每个用户u,第一验证系统计算并将yu发送给发起方;
d)第二验证系统生成PIR查询q并向第一验证系统发送查询和证明该查询具有正确格式的零知识证明。
e)第二验证系统计算使用q,r和yu,发起方生成零知识证明,该零知识证明用于证明对于每个i∈{1,2,...d},密文c加密与由维度i的子查询产生的密文中之一相同的数。然后,第二验证系统将该证明发送给第一验证系统;
f)最后,根据来自第三验证系统和第二验证系统的证明,第一验证系统验证以下信息:1)第三验证系统真的知道c中加密的明文;2)第二验证系统的查询的格式正确;3)对于每个i∈{1,2,...,d},密文c加密与由维度i的子查询产生的密文之一相同的数。
以上各参数还将出现在下述示例的描述中。
在一些示例中,所述步骤S230包括:验证所述第二验证系统所提交的查询业务中目标用户的身份。
在此,为避免泄露该目标用户的敏感数据,如身份信息等,所述第一验证系统利用来自目标用户的第一证明信息,验证所述第二验证系统所提交的验证请求中目标用户的身份。
例如,假设第二验证系统在未经目标用户许可的情况下想要查询目标用户的贷款信息。第二验证系统首先找到冒充目标用户的伪装者。当第二验证系统匿名与第一验证系统通信时,没有参与者(第二验证系统除外)知道匿名通道另一侧的参与者的真实身份。然后第二验证系统发送查询以获取目标用户的贷款信息。
在此,为确定目标用户的身份认证合法,用户群组中的各用户均为在此预先注册的成员,或者用户群组中各用户可在一公证(或可信任)的第三方注册。例如,在第一验证系统中实名注册的用户。又如各验证系统统一接入公安部身份证数据系统。
第一验证系统可基于用户群组向群组中各用户发送第一随机数,以获取目标用户反馈的第二随机数及其第一证明信息。其中,所述第一随机数可以是第一验证系统随机生成的,或者第一随机数为第一验证系统基于与各用户单独共享的密钥而生成的,其可用于验证群组中各用户的身份。目标用户所使用的用户设备中配置有用于配合所述第一验证系统进行身份验证的第三验证系统,所述第三验证系统通过解密所述第一随机数可确认密钥正确性,并基于第一随机数生成第二随机数和第一证明信息。其中,所述第一证明信息为第三验证系统基于零知识证明算法生成的一组用于证明所述目标用户身份的值序列。所述第一验证系统利用零知识证明算法并基于所述第一证明信息和第二随机数验证第一证明信息确实能够证明目标用户的身份为所述用户群组中的一员,由此通过了对目标用户的身份验证。该身份验证能够证明目标用户的身份信息并非伪造用户。
例如,第一验证系统向用户群组中各用户发送基于所共享的密钥、随机数和日期参与计算的第一随机数re,其中目标用户所持有的第三验证系统基于所述第一随机数re得到一伪随机数y,并加密后记为第二随机数c,同时,第三验证系统还生成用于验证y=yb的第一证明信息,并将第二随机数c和第一证明信息zkp1发送给第一验证系统,第一验证系统基于c和第一证明信息zkp1验证zkp1和c之间具有预设的对应关系。例如,所述对应关系表示为:其中,a、z1和z2为zkp1中的值,g和n为公钥中的参数。
在又一些示例中,所述步骤S230同时还包括:验证所述第二验证系统所提交的验证请求是否得到所述目标用户的授权。本步骤旨在确认目标用户确实授权第二验证系统发起验证请求,而非被伪造的验证请求。在此,为验证该授权,第一验证系统和第二验证系统协同执行,以供第一验证系统完成验证。在一示例中,本步骤包括利用来自所述第二验证系统的第二证明信息,验证所述第二验证系统所提交的验证请求是否得到所述目标用户的授权。
在此,所述第一验证系统和第二验证系统协同执行以下各步骤,以实现第一验证系统对所述验证请求是否得目标用户的授权进行验证。其中,本步骤包括第二验证系统基于所述第一验证系统所提供的与所述查询请求的维度相关的待验证数据集生成第二证明信息,并将所述第二证明信息发送给第一权限验证系统;其中,所述第二证明信息用于证明所述验证请求是得到所述目标用户的授权的。
具体地,在步骤S231中,第一验证系统基于与所述用户群组中每个用户之间单独共享的密钥及第一随机数,为每一用户生成第三随机数,得到对应用户群组的随机数集。其中,所述随机数集举例为对各密钥和第一随机数进行加密而得到的。例如,第一验证系统利用公式得到对应每个用户的一伪随机数yu,并将该伪随机数加密得到对应各用户的加密数据(又称为第三随机数)cu,其中,re为第一随机数,date为计算时的日期,为一种加密算法,y为对应各用户所持有的明文yb的密文,第一验证系统对用户群组中各用户yu进行加密得到加密数据cu,并得到随机数集{cu}。
在步骤S232中,第一验证系统基于查询请求的维度所构建的空间,将所述随机数集中各第三随机数与表示该空间的位置进行对应;并将所述查询请求每个维度上的各子查询元素和随机数集中对应的随机数进行计算,得到对应维度的待验证数据集。请参阅图16,其显示为查询请求q为2维且构成(3×4)矩阵,将随机数集{cu}中的各第三随机数cu对应到该(3×4)矩阵所形成的空间位置上,并将对应第一维度所在列上各子查询元素q1j分别与同列中的各第三随机数进行指数乘积并汇聚得到第一维度所在列上子查询元素对应数值1的第三随机数的加密值以及将对应第二维度所在列上各子查询元素q2j分别与同列中的各第三随机数进行指数乘积并汇聚得到第一维度所在列上子查询元素对应数值1的第三随机数的加密值其中,1≤j≤k。基于上述示例并推广至更高维度的计算,所述第一验证系统得到所构成的待验证数据集,其中1≤i≤d,d为查询请求的维度数。
在步骤S233中,第一验证系统将所得到的各维度的待验证数据集及所述随机数集{cu}发送第二验证系统。
在步骤S131中,所述第二验证系统基于与所述查询请求的维度相关的待验证数据集和所述随机数集生成第二证明信息,并将所述第二证明信息发送给第一验证系统;其中,所述第二证明信息用于证明所述验证请求是得到所述目标用户的授权的值序列。
例如,c* ik是第i维元素与沿第i列进行指数乘积运算的结果,如果第i维的第ib个元素为E(1),则其中,
第二验证系统已知所有r,及c对应的r。令目标用户所在的位置pid对应ibkb,则其明文满足对于ik≠ibkb:
第二验证系统随机生成个ek和zk,计算对于ik=ibkb, 生成第二证明信息包括:ab=ωn,ω∈R2len<min(p,q),其中,p和q为质数;
在步骤S234中,第一验证系统获取所反馈的第二证明信息zkp2为{ab,eb,zb};以及基于所述第二证明信息验证所述第二验证系统所提交的验证请求是得到所述目标用户的授权。其中,所述第二证明信息可由第二验证系统基于零知识证明算法得到,且包括用于证明所述验证请求是得到所述目标用户的授权的值序列。
例如,第一验证系统验证ZKP2=(ak,ek,zk)满足:及 其中k表示目标用户在第i维中的位置。其中,当通过第二证明信息证明和c对应同一个明文时,验证所述查询业务得到目标用户授权且目标用户的身份认证通过。
在再一些示例中,特别针对多维的查询请求,由于在数据源侧进行目标用户的查询结果数据提取时,采用逐维“折叠”地进行运算以得到对应目标用户的查询结果,因此,在基于该种数据查询方式中,需要针对单一目标用户进行数据查询。所述步骤S230还包括验证所述第二数据查询系统所提交的经第一种加密处理的查询请求的格式合法性。其中,本步骤旨在验证查询请求的格式是否符合对单一目标用户进行查询请求的格式。换言之,按照预设的查询请求的维度,确定各维度查询请求中仅包含一个值为1的子查询元素E(1),以及各维度值为1的子查询元素E(1)对应空间中同一个位置。为此,所述步骤S230包括:利用来自所述第二验证系统的第三证明信息,验证所述第二验证系统所提交的经第一种加密处理的查询请求的格式合法性。
其中,所述第一验证系统和第二验证系统协同执行格式验证。具体地,第二验证系统执行步骤S132,即基于所述查询请求在各维度上的格式,生成用于证明所述格式合法性的第三证明信息。其中,第二验证系统在发出验证请求时还发送用于证明所述验证请求中查询请求格式合法性的第三证明信息。其中,所述第二验证系统基于零知识证明算法生成所述第三证明信息。所述第三证明信息包括用于证明所述查询请求与且仅与一个用户相关的值序列。
例如,第二验证系统提供用于证明查询请求中包含的各子查询元素仅由0和1明文加密的值序列。当子查询元素qij为明文1的加密时,利用公式计算qij的明文为1的值序列{(a1,e1,z1),(a2,e2,z2)};其中,a2=vnmod n2;e=h(a1,a2,qij,date),e2=e-e1;当子查询元素qij为明文0的加密时,利用公式互换上述得到{(a1,e1,z1),(a2,e2,z2)}的值序列的公式,即a1=vnmod n2;e=h(a1,a2,qij,date),e1=e-e2;由此得到证明qij对应明文0的值序列{(a1,e1,z1),(a2,e2,z2)}。
第二验证系统还提供用于证明目标用户只有一个的值序列。例如,第二验证系统提供用于证明的明文就是1,其值序列pi=(a,e,z);其中,得到该值序列的公式包括:a=vnmod n2;e=h(a,qi,date);
第二验证系统将所得到的证明qij对应明文0的值序列{(a1,e1,z1),(a2,e2,z2)};证明qij对应明文1的值序列{(a1,e1,z1),(a2,e2,z2)};以及证明目标用户只有一个的值序列(a,e,z)发送给第一验证系统。
第一验证系统执行步骤S230中的以下步骤:利用来自所述第二验证系统的第三证明信息,验证所述第二验证系统所提交的经第一种加密处理的查询请求的格式合法性。
在此,所述第一验证系统获取用于证明所述查询请求在各维度上的格式合法性的第三证明信息;以及基于所述第三证明信息验证所述查询请求的格式合法性。其中,所述第三证明信息是基于所述查询请求而生成的。
继续上述步骤S132的示例,第一验证系统通过执行以下公式:而且来验证qij中所对应的明文仅包含0和1;以及通过行以下公式:zn=a(g-1qi)emod n2来验证查询请求中的明文1对应于同一个目标用户。
在一些示例中,当上述各验证均通过后,第二数据查询系统执行步骤S210中转发查询业务至第三数据查询系统,以供第三数据查询系统执行步骤S310-S340,并反馈目标用户的查询结果;以及所述第一数据查询系统继续执行步骤S220,以及第二数据查询系统执行步骤S120-S140。以上各步骤的示例与前述对应步骤的示例相同或相似,在此不再详述。
基于上述各示例的描述,本申请所提供的架构、查询方法、权限验证方法中的部分或全部,可在数据安全基础上实现数据传输、查询以及权限验证,并实现了基于密文运算得到对应明文运算的数据处理结果的目的。
在此,需要说明的是,上述各示例中所使用的部分类型的随机数可为一种伪随机数,其由给定随机数种子,以及伪随机函数而生成的,伪随机数可以是一种将字符串作为输入并输出看起来随机的值的确定性函数。其中,上述伪随机函数举例为PRFs(x)表示使用s作为种子、x作为输入的PRF函数。所述部分类型的随机数包含目标用户侧(如借款方)和第三数据查询系统(如贷款方)使用PRFs产生承诺随机数。
请参阅图17,其显示为本申请的数据查询系统的软件架构示意图。其中,所述数据查询系统包括第一数据查询系统、第二数据查询系统和第三数据查询系统。
所述第一数据查询系统包括:第一通信模块和查询融合模块。所述第二数据查询系统包括:第二通信模块、数据处理模块、校验模块和评估模块。第三数据查询模块包括:第三通信模块,数据集查询模块和查询结果生成模块。
其中,所述第二通信模块用于执行步骤S110;第一通信模块用于执行前述步骤S210;第三通信模块用于执行前述步骤S310;数据集查询模块用于执行前述步骤S320;查询结果生成模块用于执行前述步骤S330;查询融合模块用于执行前述步骤S220;校验模块用于执行步骤S120;校验模块用于执行步骤S130;评估模块用于执行步骤S140。
以上各模块对应于所述数据查询方法各步骤,其执行过程与相应步骤对应,在此不再详述。
请参阅图18,其显示为本申请的权限验证系统的软件架构示意图。其中,所述权限验证系统包括第一验证系统、第二系统和第三验证系统。其中,按照前述示例,第一验证系统可结合于第一数据查询系统,第二验证系统可结合于第二数据查询系统,第三验证系统可结合于目标用户所持有的用户设备。
其中,所述第一验证系统包括第三通信模块和验证模块;第二验证系统包括:第四通信模块和配合验证模块。第三验证系统用于配合所述第一验证提供用于验证发起所述验证请求的行为中的目标用户身份的证明信息。
其中,所述第四通信模块用于执行前述步骤S111;第三通信模块用于对应获取验证请求。第三验证系统、验证模块和配合验证模块协调执行前述步骤S230中所提及的各步骤。
以上各模块对应于所述权限验证方法各步骤,其执行过程与相应步骤对应,在此不再详述。
此外,本申请所提及的验证系统和数据查询系统配合执行,以用于对第二数据查询系统发起查询业务的行为进行验证,并在验证通过后继续数据查询方法;为此,所述第三通信模块和第一通信模块可为同一通信模块,以及第二通信模块和第四通信模块可为同一通信模块。
本申请还提供一种计算机可读写存储介质,存储有数据查询计算机程序,所述数据查询计算机程序被执行时实现上述实施例关于图2中所述的数据查询方法。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
于本申请提供的实施例中,所述计算机可读写存储介质可以包括只读存储器、随机存取存储器、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁存储设备、闪存、U盘、移动硬盘、或者能够用于存储具有指令或数据结构形式的期望的程序代码并能够由计算机进行存取的任何其它介质。另外,任何连接都可以适当地称为计算机可读介质。例如,如果指令是使用同轴电缆、光纤光缆、双绞线、数字订户线(DSL)或者诸如红外线、无线电和微波之类的无线技术,从网站、服务器或其它远程源发送的,则所述同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线电和微波之类的无线技术包括在所述介质的定义中。然而,应当理解的是,计算机可读写存储介质和数据存储介质不包括连接、载波、信号或者其它暂时性介质,而是旨在针对于非暂时性、有形的存储介质。如申请中所使用的磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中,磁盘通常磁性地复制数据,而光盘则用激光来光学地复制数据。
在一个或多个示例性方面,本申请所述在地图上定位设备的计算机程序或多设备之间协同操作的计算机程序所描述的功能可以用硬件、软件、固件或者其任意组合的方式来实现。当用软件实现时,可以将这些功能作为一个或多个指令或代码存储或传送到计算机可读介质上。本申请所公开的方法或算法的步骤可以用处理器可执行软件模块来体现,其中处理器可执行软件模块可以位于有形、非临时性计算机可读写存储介质上。有形、非临时性计算机可读写存储介质可以是计算机能够存取的任何可用介质。
本申请上述的附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这根据所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以通过执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以通过专用硬件与计算机指令的组合来实现。
综上所述,本申请的数据查询和计算方法及系统、及存储介质通过采用经加密处理的查询请求,可以防止泄露目标用户的敏感信息,以及通过采用加密处理的查询结果,可以有效防止泄露查询结果。由此实现在查询业务及查询结果转发方(如第一数据查询系统)、和查询结果提供方(如数据源)均无法获知目标用户和查询结果时,实现使用敏感数据进行分享、融合和评估等应用。
上述实施例仅例示性说明本申请的原理及其功效,而非用于限制本申请。任何熟悉此技术的人士皆可在不违背本申请的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本申请所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本申请的权利要求所涵盖。
Claims (30)
1.一种权限验证方法,执行于第一验证系统,其特征在于,包括:
接收第二验证系统发送的验证请求;其中所述验证请求包含用于从一用户群组中获取目标用户的查询结果的、且经第一种加密处理的查询请求;其中,所述验证请求用于验证发起所述验证请求的行为是一目标用户授权的;所述查询请求的维度为至少一维;
基于所述验证请求并利用至少一种证明信息执行验证操作:
利用来自目标用户的第一证明信息,验证所述第二验证系统所提交的验证请求中目标用户的身份:
向所述目标用户发送用于验证其身份认证的第一随机数;
接收目标用户反馈的第二随机数及其第一证明信息;其中,所述第二随机数是基于第一随机数生成的;
基于所述第一证明信息和第二随机数验证目标用户的身份;
利用来自所述第二验证系统的第二证明信息,验证所述第二验证系统所提交的验证请求是否得到所述目标用户的授权。
2.根据权利要求1所述的权限验证方法,其特征在于,所述第一证明信息包含一组用于证明所述目标用户的身份的值序列。
3.根据权利要求1所述的权限验证方法,其特征在于,所述利用来自第二验证系统的第二证明信息,验证第二验证系统所提交的验证请求是否得到所述目标用户的授权的步骤包括:
基于与所述用户群组中每个用户之间单独共享的密钥及第一随机数,为每一用户生成第三随机数,得到对应用户群组的随机数集;
基于查询请求的维度所构建的空间,将所述随机数集中各第三随机数与表示该空间的位置进行对应;
将所述查询请求每个维度上子查询请求中的各子查询元素和随机数集中对应的第三随机数进行计算,并得到对应维度的待验证数据集;
将所得到的各维度的待验证数据集及所述随机数集发送第二验证系统,并获取所反馈的第二证明信息;
基于所述第二证明信息验证所述第二验证系统所提交的验证请求是得到所述目标用户的授权。
4.根据权利要求3所述的权限验证方法,其特征在于,所述第二证明信息包括用于证明所述验证请求是得到所述目标用户的授权的值序列。
5.根据权利要求1所述的权限验证方法,其特征在于,所述基于验证请求并利用至少一种证明信息执行验证操作的步骤还包括:
利用来自所述第二验证系统的第三证明信息,验证所述第二验证系统所提交的经第一种加密处理的查询请求的格式合法性。
6.根据权利要求5所述的权限验证方法,其特征在于,所述利用来自所述第二验证系统的第三证明信息,验证第二验证系统所提交的经第一种加密处理的查询请求的格式合法性的步骤包括:
获取用于证明所述查询请求在各维度上的格式合法性的第三证明信息;其中,所述第三证明信息是基于所述查询请求而生成的;
基于所述第三证明信息验证所述查询请求的格式合法性。
7.根据权利要求6所述的权限验证方法,其特征在于,所述第三证明信息包括用于证明所述查询请求与且仅与一个用户相关的值序列。
8.根据权利要求1所述的权限验证方法,其特征在于,所述第一种加密处理是基于同态加密而设置的。
9.一种权限验证方法,执行于第二验证系统,其特征在于,包括:
基于一验证需求向第一验证系统发送一验证请求;其中所述验证请求包含经第一种加密处理的查询请求;其中,所述查询请求用于从一用户群组中获取目标用户的查询结果,所述验证请求用于验证发起所述验证请求的行为是一目标用户授权的;所述查询请求的维度为至少一维;
基于所述第一验证系统所提供的与所述查询请求的维度相关的待验证数据集生成第二证明信息:
获取所述待验证数据集及一随机数集;其中,所述随机数集是基于第一验证系统与目标用户所在用户群组中每个用户之间单独共享的密钥及第一随机数而生成的;所述待验证数据集是基于所述查询请求所构建的空间,将随机数集中对应到该空间各位置的第三随机数与所述查询请求每个维度上子查询请求中的各子查询元素进行计算得到的;
基于所述待验证数据集及所述随机数集得到第二证明信息;
将所述第二证明信息发送给第一权限验证系统;以供所述第一验证系统证明发起所述验证请求的行为是一目标用户授权的;其中,所述第二证明信息用于证明所述验证请求是得到所述目标用户的授权的。
10.根据权利要求9所述的权限验证方法,其特征在于,还包括基于所述查询请求生成第三证明信息,并发送给第一验证系统,以验证所述经第一种加密处理的查询请求的格式合法性的步骤。
11.根据权利要求10所述的权限验证方法,其特征在于,所述基于查询请求生成第三证明信息的步骤包括:
基于所述查询请求在各维度上的格式,生成用于证明所述格式合法性的第三证明信息。
12.根据权利要求11所述的权限验证方法,其特征在于,所述第三证明信息包括用于证明所述查询请求与且仅与一个用户相关的值序列。
13.根据权利要求9所述的权限验证方法,其特征在于,所述第一种加密处理是基于同态加密而设置的。
14.一种第一验证系统,其特征在于,包括:
第一通信模块,用于接收第二验证系统发送的验证请求;其中所述验证请求包含用于从一用户群组中获取目标用户的查询结果的、且经第一种加密处理的查询请求;其中,所述验证请求用于验证发起所述验证请求的行为是一目标用户授权的;所述查询请求的维度为至少一维;
验证模块,用于基于所述验证请求并利用至少一种证明信息执行验证操作;所述验证模块用于执行以下步骤:
利用来自目标用户的第一证明信息,验证所述第二验证系统所提交的验证请求中目标用户的身份:
向所述目标用户发送用于验证其身份认证的第一随机数;
接收目标用户反馈的第二随机数及其第一证明信息;其中,所述第二随机数是基于第一随机数生成的;
基于所述第一证明信息和第二随机数验证目标用户的身份;
利用来自所述第二验证系统的第二证明信息,验证所述第二验证系统所提交的验证请求是否得到所述目标用户的授权。
15.根据权利要求14所述的第一验证系统,其特征在于,所述第一证明信息包含一组用于证明所述目标用户的身份的值序列。
16.根据权利要求14所述的第一验证系统,其特征在于,所述利用来自所述第二验证系统的第二证明信息,验证所述第二验证系统所提交的验证请求是否得到所述目标用户的授权的步骤包括:
基于与所述用户群组中每个用户之间单独共享的密钥及第一随机数,为每一用户生成第三随机数,得到对应用户群组的随机数集;
基于查询请求的维度所构建的空间,将所述随机数集中各第三随机数与表示该空间的位置进行对应;
将所述查询请求每个维度上子查询请求中的各子查询元素和随机数集中对应的第三随机数进行计算,并得到对应维度的待验证数据集;
将所得到的各维度的待验证数据集及所述随机数集发送第二验证系统,并获取所反馈的第二证明信息;
基于所述第二证明信息验证所述第二验证系统所提交的验证请求是得到所述目标用户的授权。
17.根据权利要求16所述的第一验证系统,其特征在于,所述第二证明信息包括用于证明所述验证请求是得到所述目标用户的授权的值序列。
18.根据权利要求14所述的第一验证系统,其特征在于,所述验证模块还用于执行以下步骤:
利用来自所述第二验证系统的第三证明信息,验证所述第二验证系统所提交的经第一种加密处理的查询请求的格式合法性。
19.根据权利要求18所述的第一验证系统,其特征在于,所述验证模块利用来自所述第二验证系统的第三证明信息,验证所述第二验证系统所提交的经第一种加密处理的查询请求的格式合法性的步骤为:
获取用于证明所述查询请求在各维度上的格式合法性的第三证明信息;其中,所述第三证明信息是基于所述查询请求而生成的;
基于所述第三证明信息验证所述查询请求的格式合法性。
20.根据权利要求19所述的第一验证系统,其特征在于,所述第三证明信息包括用于证明所述查询请求与且仅与一个用户相关的值序列。
21.根据权利要求14所述的第一验证系统,其特征在于,所述第一种加密处理是基于同态加密而设置的。
22.一种第二验证系统,其特征在于,包括:
第二通信模块,用于基于一验证需求向第一验证系统发送一验证请求;其中所述验证请求包含经第一种加密处理的查询请求;其中,所述查询请求用于从一用户群组中获取目标用户的查询结果,所述验证请求用于验证发起所述验证请求的行为是一目标用户授权的;所述查询请求的维度为至少一维;
配合验证模块,用于基于所述验证请求并生成至少一种证明信息,以供所述第一验证系统证明发起所述验证请求的行为是一目标用户授权的;所述配合验证模块用于执行以下步骤:
基于所述第一验证系统所提供的与所述查询请求的维度相关的待验证数据集生成第二证明信息;
获取所述待验证数据集及一随机数集;其中,所述随机数集是基于第一验证系统与目标用户所在用户群组中每个用户之间单独共享的密钥及第一随机数而生成的;所述待验证数据集是基于所述查询请求所构建的空间,将随机数集中对应到该空间各位置的第三随机数与所述查询请求每个维度上子查询请求中的各子查询元素进行计算得到的;
基于所述待验证数据集及一随机数集得到第二证明信息;
将所述第二证明信息发送给第一权限验证系统;其中,所述第二证明信息用于证明所述验证请求是得到所述目标用户的授权的。
23.根据权利要求22所述的第二验证系统,其特征在于,所述配合验证模块用于基于所述验证请求并生成至少一种证明信息还包括用于基于所述查询请求生成第三证明信息,并发送给第一验证系统,以验证所述经第一种加密处理的查询请求的格式合法性。
24.根据权利要求23所述的第二验证系统,其特征在于,所述配合验证模块用于基于所述查询请求在各维度上的格式,生成用于证明所述格式合法性的第三证明信息,并发送给第一验证系统,以验证所述经第一种加密处理的查询请求的格式合法性。
25.根据权利要求24所述的第二验证系统,其特征在于,所述第三证明信息包括用于证明所述查询请求与且仅与一个用户相关的值序列。
26.根据权利要求22所述的第二验证系统,其特征在于,所述第一种加密处理是基于同态加密而设置的。
27.一种权限验证系统,其特征在于,包括:
如权利要求14-21中任一所述的第一验证系统;
如权利要求22-26中任一所述的第二验证系统;
第三验证系统,用于配合所述第一验证系统提供用于验证发起所述验证请求的行为中的目标用户身份的证明信息。
28.一种第一计算机系统,其特征在于,包括:
存储装置,用于存储至少一个程序;
接口装置,用于与至少一个第二计算机系统通信;
处理装置,用于调用所述至少一个程序并协调所述存储装置和接口装置执行如权利要求1-8中任一所述的权限验证方法。
29.一种第二计算机系统,其特征在于,包括:
存储装置,用于存储至少一个程序;
接口装置,用于与第一计算机系统通信;
处理装置,用于调用所述至少一个程序并协调所述存储装置和接口装置执行如权利要求9-13中任一所述的权限验证方法。
30.一种计算机可读存储介质,其特征在于,存储有权限验证计算机程序,所述权限验证计算机程序被执行时实现如权利要求1-8中任一项所述的权限验证方法或者如权利要求9-13中任一项所述的权限验证方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910273140.9A CN111784337B (zh) | 2019-04-04 | 2019-04-04 | 权限验证方法及系统 |
PCT/CN2020/083174 WO2020200306A1 (zh) | 2019-04-04 | 2020-04-03 | 数据查询和计算方法及系统、及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910273140.9A CN111784337B (zh) | 2019-04-04 | 2019-04-04 | 权限验证方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111784337A CN111784337A (zh) | 2020-10-16 |
CN111784337B true CN111784337B (zh) | 2023-08-22 |
Family
ID=72755469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910273140.9A Active CN111784337B (zh) | 2019-04-04 | 2019-04-04 | 权限验证方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111784337B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240111842A1 (en) * | 2020-12-24 | 2024-04-04 | Boe Technology Group Co., Ltd. | License authentication method and apparatus, electronic device, system, and storage medium |
CN112949377B (zh) * | 2020-12-25 | 2024-08-02 | 深圳市鹰硕技术有限公司 | 一种基于笔顺、ocr和人工智能的权限管理方法及系统 |
CN113344551B (zh) * | 2021-07-05 | 2024-02-09 | 招商局金融科技有限公司 | 基于零知识证明技术的多头授信方法、装置、设备及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0661846A1 (fr) * | 1993-12-30 | 1995-07-05 | Jacques Stern | Procédé d'authentification d'au moins un dispositif d'identification par un dispositif de vérification utilisant un protocole à apport nul de connaissance |
GB201321393D0 (en) * | 2013-12-04 | 2014-01-15 | Mastercard International Inc | Pre-transaction data exchange |
CN106296154A (zh) * | 2015-06-11 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 事务处理方法和系统 |
CN107547525A (zh) * | 2017-08-14 | 2018-01-05 | 复旦大学 | 一种大数据查询处理的隐私保护方法 |
CN107679064A (zh) * | 2017-07-31 | 2018-02-09 | 平安科技(深圳)有限公司 | 数据查询方法、装置及计算机可读存储介质 |
CN108449336A (zh) * | 2018-03-16 | 2018-08-24 | 浙江创邻科技有限公司 | 基于区块链的数据追溯与强加密方法、装置、介质及系统 |
CN108572968A (zh) * | 2017-03-09 | 2018-09-25 | 腾讯科技(深圳)有限公司 | 一种数据查询方法、装置、服务器以及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017184840A1 (en) * | 2016-04-21 | 2017-10-26 | Mastercard International Incorporated | Method and system for contactless transactions without user credentials |
US10812252B2 (en) * | 2017-01-09 | 2020-10-20 | Microsoft Technology Licensing, Llc | String matching in encrypted data |
-
2019
- 2019-04-04 CN CN201910273140.9A patent/CN111784337B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0661846A1 (fr) * | 1993-12-30 | 1995-07-05 | Jacques Stern | Procédé d'authentification d'au moins un dispositif d'identification par un dispositif de vérification utilisant un protocole à apport nul de connaissance |
GB201321393D0 (en) * | 2013-12-04 | 2014-01-15 | Mastercard International Inc | Pre-transaction data exchange |
CN106296154A (zh) * | 2015-06-11 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 事务处理方法和系统 |
CN108572968A (zh) * | 2017-03-09 | 2018-09-25 | 腾讯科技(深圳)有限公司 | 一种数据查询方法、装置、服务器以及系统 |
CN107679064A (zh) * | 2017-07-31 | 2018-02-09 | 平安科技(深圳)有限公司 | 数据查询方法、装置及计算机可读存储介质 |
CN107547525A (zh) * | 2017-08-14 | 2018-01-05 | 复旦大学 | 一种大数据查询处理的隐私保护方法 |
CN108449336A (zh) * | 2018-03-16 | 2018-08-24 | 浙江创邻科技有限公司 | 基于区块链的数据追溯与强加密方法、装置、介质及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111784337A (zh) | 2020-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yu et al. | A blockchain-based shamir’s threshold cryptography scheme for data protection in industrial internet of things settings | |
Xu et al. | Hybridalpha: An efficient approach for privacy-preserving federated learning | |
US11689371B2 (en) | Techniques for securing digital signatures using multi-party computation | |
CN110419053B (zh) | 用于信息保护的系统和方法 | |
CN109544129B (zh) | 区块链交易方法及装置、电子设备 | |
CN111784337B (zh) | 权限验证方法及系统 | |
CN110719176A (zh) | 基于区块链的物流隐私保护方法、系统和可读存储介质 | |
CN111783108B (zh) | 数据查询和计算方法及系统、及存储介质 | |
CN111783109B (zh) | 数据查询方法、系统及存储介质 | |
JP7555349B2 (ja) | ネットワーク上の複数のノード間でクエリの匿名検証を提供するシステムおよび方法 | |
CN107851169B (zh) | 计算系统、计算装置、其方法及记录介质 | |
US11265166B2 (en) | Distributed machine learning via secure multi-party computation and ensemble learning | |
Papadimitriou et al. | DStress: Efficient differentially private computations on distributed data | |
Cha et al. | Blockchain based sensitive data management by using key escrow encryption system from the perspective of supply chain | |
US11856099B2 (en) | Cryptographic pseudonym mapping method, computer system, computer program and computer-readable medium | |
CN111783136A (zh) | 一种数据保护方法、装置、设备和存储介质 | |
CN115913513B (zh) | 支持隐私保护的分布式可信数据交易方法、系统及装置 | |
Huynh et al. | A reliability guaranteed solution for data storing and sharing | |
Li et al. | PriExpress: Privacy-preserving express delivery with fine-grained attribute-based access control | |
CN114144783B (zh) | 密码假名映射方法、计算机系统、计算机程序和计算机可读介质 | |
CN116596658A (zh) | 一种计算可控的多方安全信用评估方法及装置 | |
CN114066449A (zh) | 多中心协同监管的区块链用户身份匿名和追踪方法及系统 | |
WO2020200306A1 (zh) | 数据查询和计算方法及系统、及存储介质 | |
Davidow et al. | Privacy-Preserving Payment System With Verifiable Local Differential Privacy | |
Yu et al. | A novel fair and verifiable data trading scheme |
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 |