CN116975125A - 数据统计方法、装置、***、存储介质和程序产品 - Google Patents

数据统计方法、装置、***、存储介质和程序产品 Download PDF

Info

Publication number
CN116975125A
CN116975125A CN202310974790.2A CN202310974790A CN116975125A CN 116975125 A CN116975125 A CN 116975125A CN 202310974790 A CN202310974790 A CN 202310974790A CN 116975125 A CN116975125 A CN 116975125A
Authority
CN
China
Prior art keywords
ciphertext
data
financial institutions
statistics
computing nodes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310974790.2A
Other languages
English (en)
Inventor
郑培钿
李平
周建平
蔡为彬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202310974790.2A priority Critical patent/CN116975125A/zh
Publication of CN116975125A publication Critical patent/CN116975125A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2462Approximate or statistical queries
    • 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
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/06Asset management; Financial planning or analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Finance (AREA)
  • Development Economics (AREA)
  • Software Systems (AREA)
  • Accounting & Taxation (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Fuzzy Systems (AREA)
  • Game Theory and Decision Science (AREA)
  • Human Resources & Organizations (AREA)
  • Operations Research (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • General Business, Economics & Management (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本公开提供了一种数据统计方法、装置、***、存储介质和程序产品,涉及信息安全技术领域。该数据统计方法包括:响应于数据统计请求,为N个金融机构分配M个计算节点;向每个金融机构发送第一指令,其中,向第n个金融机构发送的第一指令配置为:使第n个金融机构,向与其匹配的每个计算节点发送第一密文,第一密文包括:第n个金融机构基于统计请求提取目标数据后,对目标数据进行同态加密后得到的密文;获取M个第二密文,第m个第二密文包括:M个所述计算节点中,第m个计算节点对接收到的第一密文进行汇总后生成的密文;对接收到的第二密文进行汇总,以生成第三密文;对第三密文进行同态解密,以得到数据统计结果。

Description

数据统计方法、装置、***、存储介质和程序产品
技术领域
本公开涉及信息安全技术领域,具体地涉及一种数据统计方法、装置、***、存储介质和程序产品。
背景技术
目前,对客户在多家金融机构的资产进行联合统计时,需要把客户在各家金融机构的金融信息,通过明细的方式汇总到计算方进行联合统计。数据在传输过程中,在通道先加密,但是,加密后的数据到计算方还是需要解密。在这一过程中,计算方可获得各金融机构的客户明细,存在较高的数据泄露风险。
发明内容
鉴于上述问题,本公开提供了一种数据统计方法、装置、***、存储介质和程序产品。
根据本公开的第一个方面,提供了一种数据统计方法,应用于统计请求端,其中,所述数据统计方法包括:
响应于数据统计请求,为N个金融机构分配M个计算节点,其中,每个所述计算节点匹配多个所述金融机构,每个所述计算节点匹配的所述金融机构的数量小于N;
向所述N个金融机构中的每个金融机构发送第一指令,其中,向第n个金融机构发送的所述第一指令配置为:使第n个所述金融机构,向与其匹配的每个所述计算节点发送第一密文,所述第一密文包括:第n个所述金融机构基于所述统计请求提取目标数据后,对所述目标数据进行同态加密后得到的密文;
获取M个第二密文,其中,第m个第二密文包括:M个所述计算节点中,第m个所述计算节点对接收到的所述第一密文进行汇总后生成的密文;
对接收到的所述第二密文进行汇总,以生成第三密文;
对第三密文进行同态解密,以得到数据统计结果;
其中,n、m、M和N均为正整数,并且,n≤N,m≤M。
根据本公开的实施例,所述响应于数据统计请求,为N个金融机构分配M个计算节点,包括:
为每个所述金融机构匹配多个所述计算节点,其中,每个所述金融机构匹配的所述计算节点的数量小于M,对于任意两个所述计算节点,二者所匹配的所述金融机构存在部分重复。
根据本公开的实施例,所述对第三密文进行同态解密,以得到数据统计结果,包括:
对所述第三密文进行同态解密,以得到第一数值;
对所述第一数值进行去重处理,以得到所述数据统计结果;或者,
对所述第三密文进行去重处理,以得到第四密文;
对所述第四密文进行同态解密,以得到所述数据统计结果。
根据本公开的第二个方面,提供了一种数据统计方法,其中,应用于N个金融机构的至少一者中,所述数据统计方法,包括:
响应于第一指令,获取统计请求,其中,所述统计请求包括统计对象和待统计数据的数据属性;
获取M个计算节点中,与当前的所述金融机构匹配的计算节点;
从当前的所述金融机构管理的数据中,提取出与所述统计对象和所述数据属性相匹配的数据,以得到目标数据;
对所述目标数据进行同态加密,以得到第一密文;
向与当前的所述金融机构匹配的每个所述计算节点发送所述第一密文;
其中,M和N均为正整数。
根据本公开的实施例,对所述目标数据进行同态加密,以得到第一密文,包括:
根据所述统计对象,生成第一加密变量;
基于所述第一加密变量,对所述目标数据进行同态加密;或者,
获取当前随机生成的第二加密变量;
与其他的所述金融机构和统计请求端同步所述第二加密变量;
当同步成功时,基于所述第二加密变量,对所述目标数据进行同态加密。
根据本公开的第三个方面,提供了一种数据统计方法,其中,应用于M个计算节点的至少一者中,所述数据统计方法,包括:
获取N个金融机构中,与当前的所述计算节点匹配的金融机构;
获取多个第一密文,每一个所述第一密文包括:与当前的所述计算节点匹配的金融机构,基于统计请求提取目标数据后,对所述目标数据进行同态加密后得到的密文,其中,不同的所述第一密文由不同的所述金融机构生成;
对获取到的多个第一密文进行汇总,以生成第二密文;
将所述第二密文发送至统计请求端;
其中,M和N均为正整数。
根据本公开的实施例,对获取到的多个第一密文进行汇总,以生成第二密文,包括:
在获取到与当前的所述计算节点匹配的全部金融机构发送的第一密文时,对获取到的全部第一密文执行密文汇总操作,以生成第二密文;或者,
每获取一次所述第一密文时,执行一次密文汇总操作,其中,每次密文汇总操作均基于上一次密文汇总操作的结果和当前获取的第一密文执行。
根据本公开的第四个方面,提供了一种数据统计装置,应用于统计请求端,其中,所述数据统计装置包括:
节点分配模块,用于响应于数据统计请求,为N个金融机构分配M个计算节点,其中,每个所述计算节点匹配多个所述金融机构,每个所述计算节点匹配的所述金融机构的数量小于N;
第一发送模块,用于向所述N个金融机构中的每个金融机构发送第一指令,其中,向第n个金融机构发送的所述第一指令配置为:使第n个所述金融机构,向与其匹配的每个所述计算节点发送第一密文,所述第一密文包括:第n个所述金融机构基于所述统计请求提取目标数据后,对所述目标数据进行同态加密后得到的密文;
第一汇总模块,用于获取M个第二密文,其中,第m个第二密文包括:M个所述计算节点中,第m个所述计算节点对接收到的所述第一密文进行汇总后生成的密文,不同的第二密文由不同的所述计算节点生成;对接收到的所述第二密文进行汇总,以生成第三密文;
解密模块,用于对第三密文进行同态解密,以得到数据统计结果;
其中,n、m、M和N均为正整数,并且,n≤N,m≤M。
根据本公开的第五个方面,提供了一种数据统计装置,其中,应用于N个金融机构的至少一者中,所述数据统计装置,包括:
第一获取模块,用于响应于第一指令,获取统计请求,其中,所述统计请求包括统计对象和待统计数据的数据属性;
第二获取模块,用于获取M个计算节点中,与当前的所述金融机构匹配的计算节点;
第三获取模块,用于从当前的所述金融机构管理的数据中,提取出与所述统计对象和所述数据属性相匹配的数据,以得到目标数据;
加密模块,用于对所述目标数据进行同态加密,以得到第一密文;
第二发送模块,用于向与当前的所述金融机构匹配的每个所述计算节点发送所述第一密文;
其中,M和N均为正整数。
根据本公开的第六个方面,提供了一种数据统计装置,应用于M个计算节点的至少一者中,其中,所述数据统计装置,包括:
第四获取模块,用于获取N个金融机构中,与当前的所述计算节点匹配的金融机构;
第五获取模块,用于获取多个第一密文,每一个所述第一密文包括:与当前的所述计算节点匹配的金融机构,基于统计请求提取目标数据后,对所述目标数据进行同态加密后得到的密文,其中,不同的所述第一密文由不同的所述金融机构生成;
第二汇总模块,用于对获取到的多个第一密文进行汇总,以生成第二密文;
第三发送模块,用于将所述第二密文发送至统计请求端;
其中,M和N均为正整数。
根据本公开的第七个方面,提供了一种数据统计***,其中,所述数据统计***包括:统计请求端、M个计算节点和N个金融机构;
所述统计请求端用于:响应于数据统计请求,将M个计算节点分配给N个金融机构,其中,每个所述计算节点匹配多个所述金融机构,每个所述计算节点匹配的所述金融机构的数量小于N;以及,向所述N个金融机构中的每个发送第一指令;
第n个所述金融机构用于:在接收到所述第一指令时,从当前的所述金融机构管理的数据中,提取出与所述数据统计请求相匹配的数据,以得到目标数据;对所述目标数据进行同态加密,以得到第一密文;以及,向与第n个所述金融机构匹配的每个所述计算节点发送所述第一密文;
第m个所述计算节点用于:对获取到的第一密文进行汇总,以生成第二密文;以及,将所述第二密文发送至所述统计请求端;
所述统计请求端还用于:对接收到的所述第二密文进行汇总,以生成第三密文;以及,对第三密文进行同态解密,以得到数据统计结果;
其中,n、m、M和N均为正整数,并且,n≤N,m≤M。
根据本公开的第八个方面,提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述的数据统计方法。
根据本公开的第九个方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的数据统计方法。
上述一个或多个实施例具有如下优点或益效果:
在进行跨金融机构的数据统计时,均是基于密文进行运算的,M个金融机构各自管理的资产明细均不参与数据流转且与运算过程分离,降低由此导致的数据被窃取的风险。同时,本公开的实施例通过计算节点进行初次汇总,通过统计请求端进行二次汇总,在这一过程中,即使密文被截获,也无法获取用户的实际资产明细,进一步提高了数据安全性。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的一种数据统计方法、装置、***、存储介质和程序产品的应用场景图;
图2示意性示出了根据本公开实施例的数据统计方法的流程图之一;
图3示意性示出了根据本公开实施例的分配计算节点的流程图;
图4A和图4B示意性示出了根据本公开实施例的同态解密的流程图;
图5示意性示出了根据本公开实施例的数据统计方法的流程图之二;
图6A和图6B示意性示出了根据本公开实施例的同态加密的流程图;
图7示意性示出了根据本公开实施例的数据统计方法的流程图之三;
图8A和图8B示意性示出了根据本公开实施例的对第一密文进行汇总的流程图;
图9示意性示出了根据本公开实施例的统计请求端、金融机构和结算节点之间的交互图;
图10示意性示出了根据本公开实施例的数据统计装置的结构框图之一;
图11示意性示出了根据本公开实施例的数据统计装置的结构框图之二;
图12示意性示出了根据本公开实施例的数据统计装置的结构框图之三;
图13示意性示出了根据本公开实施例的适于实现数据统计方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。
需要说明的是,本公开的实施例提供的一种数据统计方法、装置、***、存储介质和程序产品涉及信息安全技术领域。本公开的实施例提供的一种数据统计方法、装置、***、存储介质和程序产品可应用于金融科技领域或者除金融科技领域之外的任意领域。本公开的实施例对一种数据统计方法、装置、***、存储介质和程序产品的应用领域不做限定。
在本公开的技术方案中,所涉及的用户信息(包括但不限于用户个人信息、用户图像信息、用户设备信息,例如位置信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、存储、使用、加工、传输、提供、公开和应用等处理,均遵守相关国家和地区的相关法律法规和标准,采取了必要保密措施,不违背公序良俗,并提供有相应的操作入口,供用户选择授权或者拒绝。
本公开的实施例提供了一种数据统计方法,应用于统计请求端,其中,数据统计方法包括:响应于数据统计请求,为N个金融机构分配M个计算节点,其中,每个计算节点匹配多个金融机构,每个计算节点匹配的金融机构的数量小于N;向N个金融机构中的每个金融机构发送第一指令,其中,向N个金融机构中的第n个金融机构发送的第一指令配置为:使第n个金融机构,向与其匹配的每个计算节点发送第一密文,第一密文包括:第n个金融机构基于统计请求提取目标数据后,对目标数据进行同态加密后得到的密文;获取M个第二密文,其中,至少一个第m个第二密文包括:M个计算节点中,至少一第m个计算节点对接收到的第一密文进行汇总后生成的密文,不同的第二密文由不同的计算节点生成;对接收到的第二密文进行汇总,以生成第三密文;对第三密文进行同态解密,以得到数据统计结果;其中,n、m、M和N均为正整数,并且,n≤N,m≤M。
在本公开的实施例中,在进行数据统计时,金融机构基于同态加密算法对待统计数据(也即目标数据)进行加密,以生成第一密文,第一密文在执行特定运算并解密后得到的结果,与待统计数据在执行同样的运算后得到的结果相同。第一密文发送至第三方的计算节点进行初次汇总,其中,计算节点基于部分金融机构的第一密文进行初次汇总,从而避免计算节点获取全量的第一密文。进而,计算节点将第二密文发送至统计请求端以进行二次汇总。此时,第二密文是基于几个第一密文汇总得到,以及,第二密文是基于哪些金融机构的第一密文汇总得到,对于统计请求端而言均是未知的。统计请求端在对第二密文进行汇总并进行同态解密后即可得到数据统计结果。
通过上述方式,在进行跨金融机构的数据统计时,均是基于密文进行运算的,M个金融机构各自管理的资产明细均不参与数据流转且与运算过程分离,降低由此导致的数据被窃取的风险。同时,本公开的实施例通过计算节点进行初次汇总,通过统计请求端进行二次汇总,在这一过程中,即使密文被截获,也无法获取用户的实际资产明细,进一步提高了数据安全性。
图1示意性示出了根据本公开实施例的一种数据统计方法、装置、***、存储介质和程序产品的应用场景图。
如图1所示,根据该实施例的应用场景100可以包括金融机构101~金融机构104、计算节点201~计算节点204和统计请求端301。网络用以在金融机构101~金融机构104、计算节点201~计算节点204和统计请求端301之间提供通信链路的介质。网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备通过网络与金融机构101~金融机构104、计算节点201~计算节点204和统计请求端301中的任意者交互,以接收或发送消息等。终端设备上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
金融机构101~金融机构104、计算节点201~计算节点204和统计请求端301中的任意者可以包括服务器,服务器可以是提供各种服务的服务器,例如对用户利用终端设备所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本公开的一些实施例所提供的数据统计方法一般可以应用于统计请求端301中,例如,由统计请求端301的服务器执行。相应地,与之对应的数据统计装置一般可以设置于统计请求端301的服务器中。本公开实施例所提供的数据统计方法也可以由不同于服务器且能够与终端设备和/或服务器通信的服务器或服务器集群执行。相应地,本公开实施例所提供的数据统计装置也可以设置于不同于服务器且能够与终端设备和/或服务器通信的服务器或服务器集群中。
本公开的另一些实施例所提供的数据统计方法一般可以应用于金融机构101~金融机构104中,例如,由金融机构101~金融机构104的服务器执行。相应地,与之对应的数据统计装置一般可以设置于金融机构101~金融机构104的服务器中。本公开实施例所提供的数据统计方法也可以由不同于服务器且能够与终端设备和/或服务器通信的服务器或服务器集群执行。相应地,本公开实施例所提供的数据统计装置也可以设置于不同于服务器且能够与终端设备和/或服务器通信的服务器或服务器集群中。
本公开的另一些实施例所提供的数据统计方法一般可以应用于计算节点201~计算节点204中,例如,由计算节点201~计算节点204的服务器执行。相应地,与之对应的数据统计装置一般可以设置于计算节点201~计算节点204的服务器中。本公开实施例所提供的数据统计方法也可以由不同于服务器且能够与终端设备和/或服务器通信的服务器或服务器集群执行。相应地,本公开实施例所提供的数据统计装置也可以设置于不同于服务器且能够与终端设备和/或服务器通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
以下将基于图1描述的场景,通过图2至图4B以及图9,首先对本公开实施例中应用于统计请求端301中的数据统计方法进行详细描述。
图2示意性示出了根据本公开实施例的数据统计方法的流程图之一,图9示意性示出了根据本公开实施例的统计请求端、金融机构和结算节点之间的交互图。
结合参照图2和图9,该实施例的数据统计方法包括步骤S210~步骤S250。
需要说明的是,虽然图2和图9中的各步骤按照箭头的指示依次显示,但是,这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,图中的至少部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替的执行。
在步骤S210,统计请求端响应于数据统计请求,为N个金融机构分配M个计算节点,其中,每个计算节点匹配多个金融机构,每个计算节点匹配的金融机构的数量小于N。M和N均为正整数。
在本公开实施例中,数据统计请求可以基于用户的操作发出,例如,用户A(例如某一金融机构)需要对用户B(例如个人或企业用户)进行风险评估,此时,用户A希望获取用户B在N个金融机构上的全量资产信息,此时,可以通过终端设备向统计请求端发送数据统计请求。
可选地,数据统计请求可以包括统计对象和待统计数据的数据属性,例如,统计对象可以包括用户B的账户标识,待统计数据的数据属性可以包括待统计数据的名称或业务代码等,例如,待统计数据的数据属性可以包括用户B的存款、理财和贷款等资产信息。
在本公开的实施例中,在进行数据统计时,可以从N个金融机构获取同一个统计对象的待统计数据,也即,获取同一统计对象跨金融机构的资产信息,进而,可以统计出统计对象在N个金融机构名下的总存款。
在本公开的实施例中,统计对象在每个金融机构中的待统计数据由该金融机构自行管理,也就是说,N个金融机构的待统计数据彼此独立。
在本公开的实施例中,统计请求端既可以集成在N个金融机构中的一者上,也可以独立部署,示例性地,统计请求端可以集成在N个金融机构中的每一者上,N个金融机构可以通过自身集成的统计请求端发起数据统计。示例性地,统计请求端独立部署,N个金融机构可以通过与统计请求端进行交互,以发起数据统计。
在本公开的实施例中,M个计算节点可以与N个金融机构独立部署,或者,M个计算节点与N个金融机构中的一者或多者集成部署。当M个计算节点独立部署时,M个计算节点相当于作为第三方参与数据统计,从而可以防止N个金融机构之间发生不必要的信息泄露。
在本公开的实施例中,对于每个金融机构,其可以匹配有多个计算节点,但匹配的计算节点应当小于计算节点的总数(也即M)。相应的,对于每个计算节点,其可以匹配有多个金融机构,但匹配的金融机构应当小于金融机构的总数(也即N)。这样一来,在后续步骤中,可以使得每个计算节点仅能接收到一部分金融机构的第一密文,从而防止某一计算节点获取全量的第一密文,而这有利于提高数据安全性。
在本公开的实施例中,为N个金融机构分配M个计算节点具体可以是指,为N个金融机构中的每个均分配计算节点,同时,使每个计算节点均匹配有金融机构。这样,在后续的步骤中,每个金融机构的待统计数据均可以发送(以密文形式传输)至某个计算节点中,而每个计算节点均可以接收来自某个金融机构的待统计数据(以密文形式传输)。
在步骤S220,统计请求端向N个金融机构中的每个金融机构发送第一指令,其中,向第n个金融机构发送的第一指令配置为:使第n个金融机构,向与其匹配的每个计算节点发送第一密文,第一密文包括:第n个金融机构基于统计请求提取目标数据后,对目标数据进行同态加密后得到的密文。其中,n为正整数,且n≤N。
在本公开的实施例中,统计请求端在发起数据统计时,向N个金融机构中的每个发出第一指令,N个金融机构中的每一者响应于第一指令,从各自管理的数据中,提取需要进行统计的数据,也即目标数据。例如,用户A想要统计用户B在M个金融机构下的总存款,那么,用户A向统计请求端发出数据统计请求,统计请求端则响应于数据统计请求,将M个计算节点分配给N个金融机构,以及,向每个金融机构发送第一指令。N个金融机构响应于第一指令,从各自管理的数据中查询用户B名下的待统计的数据,从而得到目标数据。
在本公开的实施例中,第n个金融机构可以是指N个金融机构中的任一者,也就是说,在本公开的实施例中,N个金融机构中的每一者,均可以执行上述的生成第一密文的步骤。
例如,数据统计请求可以包括统计对象和待统计数据的数据属性,统计对象例如为前文所述的用户B,待统计数据的数据属性例如为存款。那么,对于每个金融机构,其可以从自身管理的数据中,查询用户B名下存款,并提取出具体地数值(也即目标数据)进行同态加密。需要说明的是,若某个金融机构不存在用户B,或用户B在该金融机构下没有存款,此时,可以将目标数据置零,继而,再进行同态加密。
同态加密是指满足密文同态运算性质的加密算法,即数据经过同态加密之后,对密文进行特定的计算,得到的密文计算结果在进行对应的同态解密后的明文等同于对明文数据直接进行相同的计算。同态加密使得加密后的密文能够发给第三方(也即计算节点)进行计算,并且在计算前不需要解密,即:在密文上进行计算,实现数据的“可算不可见”。
在步骤S230,统计请求端获取M个第二密文,其中,第m个第二密文包括:M个计算节点中,第m个计算节点对接收到的第一密文进行汇总后生成的密文。不同的第二密文由不同的计算节点生成。m为正整数,并且,m≤M。
在步骤S240,统计请求端对接收到的第二密文进行汇总,以生成第三密文。
在本公开的实施例中,每个计算节点均可以生成第二密文,以进行初次汇总(例如对获取到的第一密文进行同态加密算法允许的加法运算)。之后,每个计算节点将生成的第二密文发送至统计请求端,在统计请求端进行二次汇总(例如对获取到的第二密文进行同态加密算法允许的加法运算),以生成第三密文。在本公开的实施例中,每个计算节点匹配的金融机构的数量小于N,因此,每个计算节点在计算第二密文时,均非基于全量的第一密文进行计算。在将第二密文发给统计请求端时,统计请求端仅得到了一个初次汇总结果,而不会获知汇总过程,这样,第二密文是基于几个第一密文汇总得到,以及,该第二密文是基于哪些金融机构的第一密文汇总得到,对于统计请求端而言均是未知的。
在步骤S250,统计请求端对第三密文进行同态解密,以得到数据统计结果。
在本公开的实施例中,不同的计算节点可以匹配不同的金融机构,从而使不同的计算节点可以基于不同的第一密文计算第二密文。这样,统计请求端将获取到的第二密文进行汇总后直接解密即可得到数据统计结果,例如,前文所述的用户B在M个金融机构的总存款。或者,不同的计算节点匹配的金融机构存在部分交叉。当不同的计算节点匹配的金融机构存在部分交叉时,不同的第二密文基于部分交叉的第一密文生成,这样,统计请求端将获取到的第二密文进行汇总后,需要对汇总结果进行进一步处理,以去除重复部分,从而得到数据统计结果。可选地,对汇总结果进行进一步处理可以在解密前进行,也可以在解密后进行,例如,具体可以根据采用的同态加密支持的运算方式确定,例如,当采用的同态加密仅支持加法运算时,可以在解密后进行去重;当采用的同态加密同时支持加法运算和除法运算时,可以通过除法运算,在解密前在进行去重。
在本公开的实施例中,在进行数据统计时,金融机构基于同态加密算法对待统计数据(也即目标数据)进行加密,以生成第一密文,第一密文在执行特定运算并解密后得到的结果,与待统计数据在执行同样的运算后得到的结果相同。第一密文发送至第三方的计算节点进行初次汇总,其中,计算节点基于部分金融机构的第一密文进行初次汇总,从而避免计算节点获取全量的第一密文。进而,计算节点将第二密文发送至统计请求端以进行二次汇总。此时,第二密文是基于几个第一密文汇总得到,以及,第二密文是基于哪些金融机构的第一密文汇总得到,对于统计请求端而言均是未知的。统计请求端在对第二密文进行汇总并进行同态解密后即可得到数据统计结果。
通过上述方式,在进行跨金融机构的数据统计时,均是基于密文进行运算的,M个金融机构各自管理的资产明细均不参与数据流转且与运算过程分离,降低由此导致的数据被窃取的风险。同时,本公开的实施例通过计算节点进行初次汇总,通过统计请求端进行二次汇总,在这一过程中,即使密文被截获,也无法获取用户的实际资产明细,进一步提高了数据安全性。
图3示意性示出了根据本公开实施例的分配计算节点的流程图。
参照图3,在一些具体实施例中,步骤S210包括步骤S211。
在步骤S211,统计请求端为每个金融机构匹配多个计算节点,其中,每个金融机构匹配的计算节点的数量小于M,对于任意两个计算节点,二者所匹配的金融机构存在部分重复。
示例性地,在本公开的实施例中设置4个金融机构和4个计算节点,4个金融机构分别是金融机构101~金融机构104,4个计算节点则分别是计算节点201~计算节点204。换句话说,在本公开的实施例中M=N=4。需要说明的是,此处的M和N的取值仅为示例性说明,而这并不构成对本公开实施例的限制,M和N的取值可以根据实际需要确定。
示例性地,为每个金融机构分配3个计算节点,且使每个计算节点匹配3个金融机构。示例性地,使金融机构101与计算节点201、计算节点202和计算节点203匹配;使金融机构102与计算节点202、计算节点203和计算节点204匹配;使金融机构103与计算节点203、计算节点204和计算节点201匹配;使金融机构104与计算节点204、计算节点201和计算节点202匹配。
换句话说,对于计算节点201,与其匹配的金融机构有金融机构101、金融机构103和金融机构104;对于计算节点202,与其匹配的金融机构有金融机构101、金融机构102和金融机构104;对于计算节点203,与其匹配的金融机构有金融机构101、金融机构102和金融机构103;对于计算节点204,与其匹配的金融机构有金融机构102、金融机构103和金融机构104。
这样一来,对于任意两个计算节点,均匹配有3个金融机构,其中,2个金融机构重复,1个金融机构不同,例如,对于计算节点201和计算节点202,二者均匹配有金融机构101和金融机构104,二者不同的是,计算节点201匹配有金融机构103,而计算节点202匹配有金融机构102。
通过这种方式,计算节点201、计算节点202、计算节点203和计算节点204均非基于全量第一密文进行初次汇总,并且,计算节点201、计算节点202、计算节点203和计算节点204在进行汇总时,部分第一密文存在重复。例如,计算节点201可以接受到来自金融机构101、金融机构103和金融机构104的第一密文,并基于该三个第一密文生成第二密文;计算节点202可以接受到来自金融机构101、金融机构102和金融机构104的第一密文,并基于该三个第一密文生成第二密文;计算节点203可以接受到来自金融机构101、金融机构102和金融机构103的第一密文,并基于该三个第一密文生成第二密文;计算节点204可以接受到来自金融机构102、金融机构103和金融机构104的第一密文,并基于该三个第一密文生成第二密文。计算节点201、计算节点202、计算节点203和计算节点204中的任意者在对3个第一密文进行汇总时,可以通过同态加密算法允许的加法进行。
这样一来,计算节点201、计算节点202、计算节点203和计算节点204生成的第二密文存在计算重复,例如,对于计算节点201、计算节点202和计算节点204生成的3个第二密文,均包含有金融机构104生成的第一密文。因此,在将第二密文发送至统计请求端进行二次汇总之后,需要进行去重处理。
示例性地,图4A和图4B示意性示出了根据本公开实施例的同态解密的流程图。
参照图4A,在一些具体实施例中,步骤S250包括步骤S251和步骤S252,或者,参照图4B,在一些具体实施例中,步骤S250包括步骤S253和步骤S254。
在步骤S251,统计请求端对第三密文进行同态解密,以得到第一数值。
在步骤S252,统计请求端对第一数值进行去重处理,以得到数据统计结果;
在步骤S253,统计请求端对第三密文进行去重处理,以得到第四密文。
在步骤S254,统计请求端对第四密文进行同态解密,以得到数据统计结果。
示例性地,统计请求端接收来自计算节点201、计算节点202、计算节点203和计算节点204这4个计算节点生成的4个第二密文,对于计算节点201、计算节点202和计算节点203生成的3个第二密文,3者均包含有金融机构101生成的第一密文,对于计算节点202、计算节点203和计算节点204生成的3个第二密文,3者均包含有金融机构102生成的第一密文,对于计算节点201、计算节点203和计算节点204生成的3个第二密文,3者均包含有金融机构103生成的第一密文,对于计算节点201、计算节点202和计算节点204生成的3个第二密文,3者均包含有金融机构104生成的第一密文。在对这4个第二密文进行汇总时,可以通过同态加密算法允许的加法进行。这样,相当于对12个第一密文进行了加和,也即,在第三密文中,每个金融机构的第一密文进行了3次累加。因此,在得到第三密文后,需要进行去重处理。
在本公开的实施例中,采用的同态加密算法可以仅支持加法运算,此时,可以通过步骤S251和步骤S252进行去重和解密,例如,在得到第一数值后,将第一数值与重复累加次数相除(该次数可以在分配计算节点时,预先进行配置)。在另一些具体实施例中,采用的同态加密算法可以同时支持加法运算和除法运算,此时,可以通过步骤S253和步骤S254进行去重和解密,例如,在得到第三密文后,将第三密文与重复累加次数相除(该次数可以在分配计算节点时,预先进行配置)。无论是通过步骤S251和步骤S252还是步骤S253和步骤S254,均可以得到同样的数据统计结果,例如,前文所述的用户B在M个金融机构中的总存款,而用户B在M个金融机构每个中的存款明细未参与数据流转和运算,从而降低被窃取的风险。
图5示意性示出了根据本公开实施例的数据统计方法的流程图之二。
参照图5,本公开的一些实施例还提供一种数据统计方法,其中,该实施例中的数据统计方法应用于N个金融机构的至少一者中,该实施例中的数据统计方法包括步骤S310至步骤S350。
在步骤S310,金融机构响应于第一指令,获取统计请求,其中,统计请求包括统计对象和待统计数据的数据属性。
在步骤S320,金融机构获取M个计算节点中,与当前的金融机构匹配的计算节点。
在步骤S330,金融机构从当前的金融机构管理的数据中,提取出与统计对象和数据属性相匹配的数据,以得到目标数据。
在步骤S340,金融机构对目标数据进行同态加密,以得到第一密文。
在步骤S350,金融机构向与当前的金融机构匹配的每个计算节点发送第一密文。
其中,M和N均为正整数。
在本公开实施例中,数据统计请求可以基于用户的操作发出,例如,用户A(例如某一金融机构)需要对用户B(例如个人或企业用户)进行风险评估,此时,用户A希望获取用户B在N个金融机构上的全量资产信息,此时,可以通过终端设备向统计请求端发送数据统计请求。
可选地,数据统计请求可以包括统计对象和待统计数据的数据属性,例如,统计对象可以包括用户B的账户标识,待统计数据的数据属性可以包括待统计数据的名称或业务代码等,例如,待统计数据的数据属性可以包括用户B的存款、理财和贷款等资产信息。
在本公开的实施例中,在进行数据统计时,可以从N个金融机构获取同一个统计对象的待统计数据,也即,获取同一统计对象跨金融机构的资产信息,进而,可以统计出统计对象在N个金融机构名下的总存款。
在本公开的实施例中,统计对象在每个金融机构中的待统计数据由该金融机构自行管理,也就是说,N个金融机构的待统计数据彼此独立。
在本公开的实施例中,统计请求端既可以集成在N个金融机构中的一者上,也可以独立部署,示例性地,统计请求端可以集成在N个金融机构中的每一者上,N个金融机构可以通过自身集成的统计请求端发起数据统计。示例性地,统计请求端独立部署,N个金融机构可以通过与统计请求端进行交互,以发起数据统计。
在本公开的实施例中,M个计算节点可以与N个金融机构独立部署,或者,M个计算节点与N个金融机构中的一者或多者集成部署。当M个计算节点独立部署时,M个计算节点相当于作为第三方参与数据统计,从而可以防止N个金融机构之间发生不必要的信息泄露。
在本公开的实施例中,对于每个金融机构,其可以匹配有多个计算节点,但匹配的计算节点应当小于计算节点的总数(也即M)。相应的,对于每个计算节点,其可以匹配有多个金融机构,但匹配的金融机构应当小于金融机构的总数(也即N)。这样一来,在后续步骤中,可以使得每个计算节点仅能接收到一部分金融机构的第一密文,从而防止某一计算节点获取全量的第一密文,而这有利于提高数据安全性。
在本公开的实施例中,为N个金融机构分配M个计算节点具体可以是指,为N个金融机构中的每个均分配计算节点,同时,使每个计算节点均匹配有金融机构。这样,在后续的步骤中,每个金融机构的待统计数据均可以发送(以密文形式传输)至某个计算节点中,而每个计算节点均可以接收来自某个金融机构的待统计数据(以密文形式传输)。
在本公开的实施例中,统计请求端在发起数据统计时,向N个金融机构中的每个发出第一指令,N个金融机构中的每一者响应于第一指令,从各自管理的数据中,提取需要进行统计的数据,也即目标数据。例如,用户A想要统计用户B在M个金融机构下的总存款,那么,用户A向统计请求端发出数据统计请求,统计请求端则响应于数据统计请求,将M个计算节点分配给N个金融机构,以及,向每个金融机构发送第一指令。N个金融机构响应于第一指令,从各自管理的数据中查询用户B名下的待统计的数据,从而得到目标数据。
在本公开的实施例中,第n个金融机构可以是指N个金融机构中的任一者,也就是说,在本公开的实施例中,N个金融机构中的每一者,均可以执行上述的生成第一密文的步骤。
例如,数据统计请求可以包括统计对象和待统计数据的数据属性,统计对象例如为前文所述的用户B,待统计数据的数据属性例如为存款。那么,对于每个金融机构,其可以从自身管理的数据中,查询用户B名下存款,并提取出具体地数值(也即目标数据)进行同态加密。需要说明的是,若某个金融机构不存在用户B,或用户B在该金融机构下没有存款,此时,可以将目标数据置零,继而,再进行同态加密。
同态加密是指满足密文同态运算性质的加密算法,即数据经过同态加密之后,对密文进行特定的计算,得到的密文计算结果在进行对应的同态解密后的明文等同于对明文数据直接进行相同的计算。同态加密使得加密后的密文能够发给第三方(也即计算节点)进行计算,并且在计算前不需要解密,即:在密文上进行计算,实现数据的“可算不可见”。
在本公开的实施例中,每个计算节点均可以生成第二密文,以进行初次汇总(例如对获取到的第一密文进行同态加密算法允许的加法运算)。之后,每个计算节点将生成的第二密文发送至统计请求端,在统计请求端进行二次汇总(例如对获取到的第二密文进行同态加密算法允许的加法运算),以生成第三密文。在本公开的实施例中,每个计算节点匹配的金融机构的数量小于N,因此,每个计算节点在计算第二密文时,均非基于全量的第一密文进行计算。在将第二密文发给统计请求端时,统计请求端仅得到了一个初次汇总结果,而不会获知汇总过程,这样,第二密文是基于几个第一密文汇总得到,以及,该第二密文是基于哪些金融机构的第一密文汇总得到,对于统计请求端而言均是未知的。
在本公开的实施例中,不同的计算节点可以匹配不同的金融机构,从而使不同的计算节点可以基于不同的第一密文计算第二密文。这样,统计请求端将获取到的第二密文进行汇总后直接解密即可得到数据统计结果,例如,前文所述的用户B在M个金融机构的总存款。或者,不同的计算节点匹配的金融机构存在部分交叉。当不同的计算节点匹配的金融机构存在部分交叉时,不同的第二密文基于部分交叉的第一密文生成,这样,统计请求端将获取到的第二密文进行汇总后,需要对汇总结果进行进一步处理,以去除重复部分,从而得到数据统计结果。可选地,对汇总结果进行进一步处理可以在解密前进行,也可以在解密后进行,例如,具体可以根据采用的同态加密支持的运算方式确定,例如,当采用的同态加密仅支持加法运算时,可以在解密后进行去重;当采用的同态加密同时支持加法运算和除法运算时,可以通过除法运算,在解密前在进行去重。
在本公开的实施例中,在进行数据统计时,金融机构基于同态加密算法对待统计数据(也即目标数据)进行加密,以生成第一密文,第一密文在执行特定运算并解密后得到的结果,与待统计数据在执行同样的运算后得到的结果相同。第一密文发送至第三方的计算节点进行初次汇总,其中,计算节点基于部分金融机构的第一密文进行初次汇总,从而避免计算节点获取全量的第一密文。进而,计算节点将第二密文发送至统计请求端以进行二次汇总。此时,第二密文是基于几个第一密文汇总得到,以及,第二密文是基于哪些金融机构的第一密文汇总得到,对于统计请求端而言均是未知的。统计请求端在对第二密文进行汇总并进行同态解密后即可得到数据统计结果。
图6A和图6B示意性示出了根据本公开实施例的同态加密的流程图。
参照图6A,在一些具体实施例中,步骤S340包括步骤S341~步骤S342。
在步骤S341,金融机构根据统计对象,生成第一加密变量。
在步骤S342,金融机构基于第一加密变量,对目标数据进行同态加密。
在本公开的实施例中,可以根据统计对象的唯一标识生成第一加密变量,例如,唯一标识可以包括统计对象的账号和客户编码等信息。进而,基于该唯一标识,生成第一加密变量。
在本公开的实施例中,由于统计对象的唯一标识是确定的,因此,在设置好同态加密规则之后,将唯一标识作为第一加密变量带入即可执行相同的同态加密算法,因此,N个金融机构基于上述的方式,针对同一个统计对象可以执行相同的同态加密算法,从而使得生成的第一密文能够有效加和。换句话说,对于同一个统计对象,N个金融机构基于相同的第一加密变量,执行相同的同态加密。对于不同的统计对象,N个金融机构则基于不同的第一加密变量,执行不同的同态加密。相应的,统计请求端可以基于该第一加密变量执行同态解密,从而获得最终的数据统计结果。
参照图6B,在另一些具体实施例中,步骤S340包括步骤S343~步骤S345。
在步骤S343,金融机构获取当前随机生成的第二加密变量。
在步骤S344,金融机构与其他的金融机构和统计请求端同步第二加密变量。
在步骤S345,当同步成功时,金融机构基于第二加密变量,对目标数据进行同态加密。否则,反馈同步失败。
在本公开的实施例中,在每次进行数据统计时,均由N个金融机构中的其中一者(或者,也可由统计请求端)生成第二加密变量,与前述实施例不同的是,第二加密变量随机生成,因此,在同一个数据统计过程,需要对第二加密变量进行同步,以使N个金融机构能够基于第二加密变量进行相同的同态加密。相应的,将第二加密变量同步给统计请求端后,统计请求端可以基于该第二加密变量执行相应的同态解密。
需要说明的是,本公开实施例的未详尽说明可以参见前述实施例,故在此不再赘述。
图7示意性示出了根据本公开实施例的数据统计方法的流程图之三。
参照图7,本公开的一些实施例还提供一种数据统计方法,其中,该实施例中的数据统计方法应用于M个计算节点的至少一者中,该实施例中的数据统计方法包括步骤S410至步骤S440。
在步骤S410,计算节点获取N个金融机构中,与当前的计算节点匹配的金融机构。
在步骤S420,计算节点获取多个第一密文,每一个第一密文包括:与当前的计算节点匹配的金融机构,基于统计请求提取目标数据后,对目标数据进行同态加密后得到的密文,其中,不同的第一密文由不同的金融机构生成。
在步骤S430,计算节点对获取到的多个第一密文进行汇总,以生成第二密文。
在步骤S440,计算节点将第二密文发送至统计请求端。
其中,M和N均为正整数。
在本公开实施例中,数据统计请求可以基于用户的操作发出,例如,用户A(例如某一金融机构)需要对用户B(例如个人或企业用户)进行风险评估,此时,用户A希望获取用户B在N个金融机构上的全量资产信息,此时,可以通过终端设备向统计请求端发送数据统计请求。
可选地,数据统计请求可以包括统计对象和待统计数据的数据属性,例如,统计对象可以包括用户B的账户标识,待统计数据的数据属性可以包括待统计数据的名称或业务代码等,例如,待统计数据的数据属性可以包括用户B的存款、理财和贷款等资产信息。
在本公开的实施例中,在进行数据统计时,可以从N个金融机构获取同一个统计对象的待统计数据,也即,获取同一统计对象跨金融机构的资产信息,进而,可以统计出统计对象在N个金融机构名下的总存款。
在本公开的实施例中,统计对象在每个金融机构中的待统计数据由该金融机构自行管理,也就是说,N个金融机构的待统计数据彼此独立。
在本公开的实施例中,统计请求端既可以集成在N个金融机构中的一者上,也可以独立部署,示例性地,统计请求端可以集成在N个金融机构中的每一者上,N个金融机构可以通过自身集成的统计请求端发起数据统计。示例性地,统计请求端独立部署,N个金融机构可以通过与统计请求端进行交互,以发起数据统计。
在本公开的实施例中,M个计算节点可以与N个金融机构独立部署,或者,M个计算节点与N个金融机构中的一者或多者集成部署。当M个计算节点独立部署时,M个计算节点相当于作为第三方参与数据统计,从而可以防止N个金融机构之间发生不必要的信息泄露。
在本公开的实施例中,对于每个金融机构,其可以匹配有多个计算节点,但匹配的计算节点应当小于计算节点的总数(也即M)。相应的,对于每个计算节点,其可以匹配有多个金融机构,但匹配的金融机构应当小于金融机构的总数(也即N)。这样一来,在后续步骤中,可以使得每个计算节点仅能接收到一部分金融机构的第一密文,从而防止某一计算节点获取全量的第一密文,而这有利于提高数据安全性。
在本公开的实施例中,为N个金融机构分配M个计算节点具体可以是指,为N个金融机构中的每个均分配计算节点,同时,使每个计算节点均匹配有金融机构。这样,在后续的步骤中,每个金融机构的待统计数据均可以发送(以密文形式传输)至某个计算节点中,而每个计算节点均可以接收来自某个金融机构的待统计数据(以密文形式传输)。
在本公开的实施例中,统计请求端在发起数据统计时,向N个金融机构中的每个发出第一指令,N个金融机构中的每一者响应于第一指令,从各自管理的数据中,提取需要进行统计的数据,也即目标数据。例如,用户A想要统计用户B在M个金融机构下的总存款,那么,用户A向统计请求端发出数据统计请求,统计请求端则响应于数据统计请求,将M个计算节点分配给N个金融机构,以及,向每个金融机构发送第一指令。N个金融机构响应于第一指令,从各自管理的数据中查询用户B名下的待统计的数据,从而得到目标数据。
在本公开的实施例中,第n个金融机构可以是指N个金融机构中的任一者,也就是说,在本公开的实施例中,N个金融机构中的每一者,均可以执行上述的生成第一密文的步骤。
例如,数据统计请求可以包括统计对象和待统计数据的数据属性,统计对象例如为前文所述的用户B,待统计数据的数据属性例如为存款。那么,对于每个金融机构,其可以从自身管理的数据中,查询用户B名下存款,并提取出具体地数值(也即目标数据)进行同态加密。需要说明的是,若某个金融机构不存在用户B,或用户B在该金融机构下没有存款,此时,可以将目标数据置零,继而,再进行同态加密。
同态加密是指满足密文同态运算性质的加密算法,即数据经过同态加密之后,对密文进行特定的计算,得到的密文计算结果在进行对应的同态解密后的明文等同于对明文数据直接进行相同的计算。同态加密使得加密后的密文能够发给第三方(也即计算节点)进行计算,并且在计算前不需要解密,即:在密文上进行计算,实现数据的“可算不可见”。
在本公开的实施例中,每个计算节点均可以生成第二密文,以进行初次汇总(例如对获取到的第一密文进行同态加密算法允许的加法运算)。之后,每个计算节点将生成的第二密文发送至统计请求端,在统计请求端进行二次汇总(例如对获取到的第二密文进行同态加密算法允许的加法运算),以生成第三密文。在本公开的实施例中,每个计算节点匹配的金融机构的数量小于N,因此,每个计算节点在计算第二密文时,均非基于全量的第一密文进行计算。在将第二密文发给统计请求端时,统计请求端仅得到了一个初次汇总结果,而不会获知汇总过程,这样,第二密文是基于几个第一密文汇总得到,以及,该第二密文是基于哪些金融机构的第一密文汇总得到,对于统计请求端而言均是未知的。
在本公开的实施例中,不同的计算节点可以匹配不同的金融机构,从而使不同的计算节点可以基于不同的第一密文计算第二密文。这样,统计请求端将获取到的第二密文进行汇总后直接解密即可得到数据统计结果,例如,前文所述的用户B在M个金融机构的总存款。或者,不同的计算节点匹配的金融机构存在部分交叉。当不同的计算节点匹配的金融机构存在部分交叉时,不同的第二密文基于部分交叉的第一密文生成,这样,统计请求端将获取到的第二密文进行汇总后,需要对汇总结果进行进一步处理,以去除重复部分,从而得到数据统计结果。可选地,对汇总结果进行进一步处理可以在解密前进行,也可以在解密后进行,例如,具体可以根据采用的同态加密支持的运算方式确定,例如,当采用的同态加密仅支持加法运算时,可以在解密后进行去重;当采用的同态加密同时支持加法运算和除法运算时,可以通过除法运算,在解密前在进行去重。
在本公开的实施例中,在进行数据统计时,金融机构基于同态加密算法对待统计数据(也即目标数据)进行加密,以生成第一密文,第一密文在执行特定运算并解密后得到的结果,与待统计数据在执行同样的运算后得到的结果相同。第一密文发送至第三方的计算节点进行初次汇总,其中,计算节点基于部分金融机构的第一密文进行初次汇总,从而避免计算节点获取全量的第一密文。进而,计算节点将第二密文发送至统计请求端以进行二次汇总。此时,第二密文是基于几个第一密文汇总得到,以及,第二密文是基于哪些金融机构的第一密文汇总得到,对于统计请求端而言均是未知的。统计请求端在对第二密文进行汇总并进行同态解密后即可得到数据统计结果。
图8A和图8B示意性示出了根据本公开实施例的对第一密文进行汇总的流程图。
参照图8A,在一些具体实施例中,步骤S430包括步骤S431。
在步骤S431,计算节点在获取到与当前的计算节点匹配的全部金融机构发送的第一密文时,对获取到的全部第一密文执行密文汇总操作,以生成第二密文。
在本公开的实施例中,计算节点在获取到初次汇总所需的第一密文之前,处于等待状态,直至获取到所需的第一密文之后,执行密文汇总操作。在本公开的实施例中,在统计请求端为金融机构分配计算节点时,可以告知计算节点与其相匹配的金融机构的数量,进而,计算节点可以在收到第一密文时,进行计数,在达到所需数量时,确定第一密文收集完成。或者,在统计请求端为金融机构分配计算节点时,可以告知计算节点与其相匹配的金融机构的标识,进而,计算节点可以在收到第一密文时,进行标识的识别,进而根据识别结果,确定是否收集到了所需的全部第一密文。例如,对于计算节点201,当其收到3个第一密文,或者,其通过标识识别,确认收集到来自金融机构101、金融机构103和金融机构104的第一密文后,确定收集完成,进而对当前获取到的全部第一密文执行密文汇总操作。
可选地,在任意计算节点中,在获取到所需的全部第一密文之后,对多个第一密文依次累加,以得到第二密文,例如,对于计算节点201,先将来自金融机构101和金融机构103的第一密文进行累加,再将该累加结果与来自金融机构104的第一密文进行累加,以得到第二密文。
参照图8B,在另一些具体实施例中,步骤S430包括步骤S432。
在步骤S432,计算节点每获取一次第一密文时,执行一次密文汇总操作,其中,每次密文汇总操作均基于上一次密文汇总操作的结果和当前获取的第一密文执行。
在本公开的实施例中,对于任意计算节点,在同一个数据统计过程中,每获取一次第一密文时,将当前获取到的第一密文与上一次密文汇总操作的结果进行累加,这样,当获取到最后一个需要的第一密文时,通过一次加法运算即可完成,相较于前述实施例,本实施例可以提升计算速度。
需要说明的是,本公开实施例的未详尽说明可以参见前述实施例,故在此不再赘述。
参照图9,本公开的一些实施例还提供一种数据统计方法,该实施例中的数据统计方法应用于数据统计***中,数据统计***包括统计请求端、N个金融机构和M各计算节点。该实施例中的数据统计方法包括步骤S510至步骤S560。
在步骤S510,统计请求端响应于数据统计请求,将M个计算节点分配给N个金融机构,其中,每个计算节点匹配多个金融机构,每个计算节点匹配的金融机构的数量小于N。
在步骤S520,统计请求端向N个金融机构中的每个发送第一指令。
在步骤S530,第n个金融机构在接收到第一指令时,从当前的金融机构管理的数据中,提取出与数据统计请求相匹配的数据,以得到目标数据。对目标数据进行同态加密,以得到第一密文。以及,向与第n个金融机构匹配的每个计算节点发送第一密文。
在步骤S540,第m个计算节点对获取到的第一密文进行汇总,以生成第二密文。以及,将第二密文发送至统计请求端。
在步骤S550,统计请求端对接收到的第二密文进行汇总,以生成第三密文。
在步骤S560,统计请求端对第三密文进行同态解密,以得到数据统计结果。
其中,n、m、M和N均为正整数,并且,n≤N,m≤M。
在本公开实施例中,数据统计请求可以基于用户的操作发出,例如,用户A(例如某一金融机构)需要对用户B(例如个人或企业用户)进行风险评估,此时,用户A希望获取用户B在N个金融机构上的全量资产信息,此时,可以通过终端设备向统计请求端发送数据统计请求。
可选地,数据统计请求可以包括统计对象和待统计数据的数据属性,例如,统计对象可以包括用户B的账户标识,待统计数据的数据属性可以包括待统计数据的名称或业务代码等,例如,待统计数据的数据属性可以包括用户B的存款、理财和贷款等资产信息。
在本公开的实施例中,在进行数据统计时,可以从N个金融机构获取同一个统计对象的待统计数据,也即,获取同一统计对象跨金融机构的资产信息,进而,可以统计出统计对象在N个金融机构名下的总存款。
在本公开的实施例中,统计对象在每个金融机构中的待统计数据由该金融机构自行管理,也就是说,N个金融机构的待统计数据彼此独立。
在本公开的实施例中,统计请求端既可以集成在N个金融机构中的一者上,也可以独立部署,示例性地,统计请求端可以集成在N个金融机构中的每一者上,N个金融机构可以通过自身集成的统计请求端发起数据统计。示例性地,统计请求端独立部署,N个金融机构可以通过与统计请求端进行交互,以发起数据统计。
在本公开的实施例中,M个计算节点可以与N个金融机构独立部署,或者,M个计算节点与N个金融机构中的一者或多者集成部署。当M个计算节点独立部署时,M个计算节点相当于作为第三方参与数据统计,从而可以防止N个金融机构之间发生不必要的信息泄露。
在本公开的实施例中,对于每个金融机构,其可以匹配有多个计算节点,但匹配的计算节点应当小于计算节点的总数(也即M)。相应的,对于每个计算节点,其可以匹配有多个金融机构,但匹配的金融机构应当小于金融机构的总数(也即N)。这样一来,在后续步骤中,可以使得每个计算节点仅能接收到一部分金融机构的第一密文,从而防止某一计算节点获取全量的第一密文,而这有利于提高数据安全性。
在本公开的实施例中,为N个金融机构分配M个计算节点具体可以是指,为N个金融机构中的每个均分配计算节点,同时,使每个计算节点均匹配有金融机构。这样,在后续的步骤中,每个金融机构的待统计数据均可以发送(以密文形式传输)至某个计算节点中,而每个计算节点均可以接收来自某个金融机构的待统计数据(以密文形式传输)。
在本公开的实施例中,统计请求端在发起数据统计时,向N个金融机构中的每个发出第一指令,N个金融机构中的每一者响应于第一指令,从各自管理的数据中,提取需要进行统计的数据,也即目标数据。例如,用户A想要统计用户B在M个金融机构下的总存款,那么,用户A向统计请求端发出数据统计请求,统计请求端则响应于数据统计请求,将M个计算节点分配给N个金融机构,以及,向每个金融机构发送第一指令。N个金融机构响应于第一指令,从各自管理的数据中查询用户B名下的待统计的数据,从而得到目标数据。
在本公开的实施例中,第n个金融机构可以是指N个金融机构中的任一者,也就是说,在本公开的实施例中,N个金融机构中的每一者,均可以执行上述的生成第一密文的步骤。
例如,数据统计请求可以包括统计对象和待统计数据的数据属性,统计对象例如为前文所述的用户B,待统计数据的数据属性例如为存款。那么,对于每个金融机构,其可以从自身管理的数据中,查询用户B名下存款,并提取出具体地数值(也即目标数据)进行同态加密。需要说明的是,若某个金融机构不存在用户B,或用户B在该金融机构下没有存款,此时,可以将目标数据置零,继而,再进行同态加密。
同态加密是指满足密文同态运算性质的加密算法,即数据经过同态加密之后,对密文进行特定的计算,得到的密文计算结果在进行对应的同态解密后的明文等同于对明文数据直接进行相同的计算。同态加密使得加密后的密文能够发给第三方(也即计算节点)进行计算,并且在计算前不需要解密,即:在密文上进行计算,实现数据的“可算不可见”。
在本公开的实施例中,每个计算节点均可以生成第二密文,以进行初次汇总(例如对获取到的第一密文进行同态加密算法允许的加法运算)。之后,每个计算节点将生成的第二密文发送至统计请求端,在统计请求端进行二次汇总(例如对获取到的第二密文进行同态加密算法允许的加法运算),以生成第三密文。在本公开的实施例中,每个计算节点匹配的金融机构的数量小于N,因此,每个计算节点在计算第二密文时,均非基于全量的第一密文进行计算。在将第二密文发给统计请求端时,统计请求端仅得到了一个初次汇总结果,而不会获知汇总过程,这样,第二密文是基于几个第一密文汇总得到,以及,该第二密文是基于哪些金融机构的第一密文汇总得到,对于统计请求端而言均是未知的。
在本公开的实施例中,不同的计算节点可以匹配不同的金融机构,从而使不同的计算节点可以基于不同的第一密文计算第二密文。这样,统计请求端将获取到的第二密文进行汇总后直接解密即可得到数据统计结果,例如,前文所述的用户B在M个金融机构的总存款。或者,不同的计算节点匹配的金融机构存在部分交叉。当不同的计算节点匹配的金融机构存在部分交叉时,不同的第二密文基于部分交叉的第一密文生成,这样,统计请求端将获取到的第二密文进行汇总后,需要对汇总结果进行进一步处理,以去除重复部分,从而得到数据统计结果。可选地,对汇总结果进行进一步处理可以在解密前进行,也可以在解密后进行,例如,具体可以根据采用的同态加密支持的运算方式确定,例如,当采用的同态加密仅支持加法运算时,可以在解密后进行去重;当采用的同态加密同时支持加法运算和除法运算时,可以通过除法运算,在解密前在进行去重。
在本公开的实施例中,在进行数据统计时,金融机构基于同态加密算法对待统计数据(也即目标数据)进行加密,以生成第一密文,第一密文在执行特定运算并解密后得到的结果,与待统计数据在执行同样的运算后得到的结果相同。第一密文发送至第三方的计算节点进行初次汇总,其中,计算节点基于部分金融机构的第一密文进行初次汇总,从而避免计算节点获取全量的第一密文。进而,计算节点将第二密文发送至统计请求端以进行二次汇总。此时,第二密文是基于几个第一密文汇总得到,以及,第二密文是基于哪些金融机构的第一密文汇总得到,对于统计请求端而言均是未知的。统计请求端在对第二密文进行汇总并进行同态解密后即可得到数据统计结果。
基于上述的应用于统计请求端的数据统计方法,本公开还提供了一种应用于统计请求端中的数据统计装置。以下将结合图10对该装置进行详细描述。
图10示意性示出了根据本公开实施例的数据统计装置的结构框图之一。
如图10所示,该实施例的数据统计装置1000包括节点分配模块1010、第一发送模块1020、第一汇总模块1030和解密模块1040。
节点分配模块1010用于响应于数据统计请求,为N个金融机构分配M个计算节点,其中,每个计算节点匹配多个金融机构,每个计算节点匹配的金融机构的数量小于N。在一实施例中,节点分配模块1010可以用于执行前文描述的步骤S210,在此不再赘述。
第一发送模块1020用于向N个金融机构中的每个金融机构发送第一指令,其中,向第n个金融机构发送的第一指令配置为:使第n个金融机构,向与其匹配的每个计算节点发送第一密文,第一密文包括:第n个金融机构基于统计请求提取目标数据后,对目标数据进行同态加密后得到的密文。在一实施例中,第一发送模块1020可以用于执行前文描述的步骤S220,在此不再赘述。
第一汇总模块1030用于获取M个第二密文,其中,第m个第二密文包括:M个计算节点中,第m个计算节点对接收到的第一密文进行汇总后生成的密文,不同的第二密文由不同的计算节点生成。对接收到的第二密文进行汇总,以生成第三密文。在一实施例中,第一汇总模块1030可以用于执行前文描述的步骤S230和步骤S240,在此不再赘述。
解密模块1040用于对第三密文进行同态解密,以得到数据统计结果。在一实施例中,解密模块1040可以用于执行前文描述的步骤S250,在此不再赘述。
其中,n、m、M和N均为正整数,并且,n≤N,m≤M。
通过上述方式,在进行跨金融机构的数据统计时,均是基于密文进行运算的,M个金融机构各自管理的资产明细均不参与数据流转且与运算过程分离,降低由此导致的数据被窃取的风险。同时,本公开的实施例通过计算节点进行初次汇总,通过统计请求端进行二次汇总,在这一过程中,即使密文被截获,也无法获取用户的实际资产明细,进一步提高了数据安全性。
根据本公开的实施例,节点分配模块1010、第一发送模块1020、第一汇总模块1030和解密模块1040中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,节点分配模块1010、第一发送模块1020、第一汇总模块1030和解密模块1040中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,节点分配模块1010、第一发送模块1020、第一汇总模块1030和解密模块1040中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
基于上述的应用于金融机构的数据统计方法,本公开还提供了一种应用于金融机构中的数据统计装置。以下将结合图11对该装置进行详细描述。
图11示意性示出了根据本公开实施例的数据统计装置的结构框图之二。
如图11所示,该实施例的数据统计装置1100包括第一获取模块1110、第二获取模块1120、第三获取模块1130、加密模块1140和第二发送模块1150。
第一获取模块1110用于响应于第一指令,获取统计请求,其中,统计请求包括统计对象和待统计数据的数据属性。在一实施例中,第一获取模块1110可以用于执行前文描述的步骤S310,在此不再赘述。
第二获取模块1120用于获取M个计算节点中,与当前的金融机构匹配的计算节点。在一实施例中,第二获取模块1120可以用于执行前文描述的步骤S320,在此不再赘述。
第三获取模块1130用于从当前的金融机构管理的数据中,提取出与统计对象和数据属性相匹配的数据,以得到目标数据。在一实施例中,第三获取模块1130可以用于执行前文描述的步骤S330,在此不再赘述。
加密模块1140用于对目标数据进行同态加密,以得到第一密文。在一实施例中,加密模块1140可以用于执行前文描述的步骤S340,在此不再赘述。
第二发送模块1150用于向与当前的金融机构匹配的每个计算节点发送第一密文。在一实施例中,第二发送模块1150可以用于执行前文描述的步骤S350,在此不再赘述。
其中,M和N均为正整数。
根据本公开的实施例,第一获取模块1110、第二获取模块1120、第三获取模块1130、加密模块1140和第二发送模块1150中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第一获取模块1110、第二获取模块1120、第三获取模块1130、加密模块1140和第二发送模块1150中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一获取模块1110、第二获取模块1120、第三获取模块1130、加密模块1140和第二发送模块1150中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
基于上述的应用于计算节点的数据统计方法,本公开还提供了一种应用于计算节点中的数据统计装置。以下将结合图12对该装置进行详细描述。
图12示意性示出了根据本公开实施例的数据统计装置的结构框图之三。
如图12所示,该实施例的数据统计装置1200包括:第四获取模块1210、第五获取模块1220、第二汇总模块1230和第三发送模块1240。
第四获取模块1210用于获取N个金融机构中,与当前的计算节点匹配的金融机构。在一实施例中,第四获取模块1210可以用于执行前文描述的步骤S410,在此不再赘述。
第五获取模块1220用于获取多个第一密文,每一个第一密文包括:与当前的计算节点匹配的金融机构,基于统计请求提取目标数据后,对目标数据进行同态加密后得到的密文,其中,不同的第一密文由不同的金融机构生成。在一实施例中,第五获取模块1220可以用于执行前文描述的步骤S420,在此不再赘述。
第二汇总模块1230用于对获取到的多个第一密文进行汇总,以生成第二密文。在一实施例中,第二汇总模块1230可以用于执行前文描述的步骤S430,在此不再赘述。
第三发送模块1240用于将第二密文发送至统计请求端。在一实施例中,第三发送模块1240可以用于执行前文描述的步骤S440,在此不再赘述。
其中,M和N均为正整数。
根据本公开的实施例,第四获取模块1210、第五获取模块1220、第二汇总模块1230和第三发送模块1240中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第四获取模块1210、第五获取模块1220、第二汇总模块1230和第三发送模块1240中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第四获取模块1210、第五获取模块1220、第二汇总模块1230和第三发送模块1240中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
基于上述的数据统计方法,本公开还提供了一种数据统计***。数据统计***包括:统计请求端、M个计算节点和N个金融机构。
统计请求端用于:响应于数据统计请求,将M个计算节点分配给N个金融机构,其中,每个计算节点匹配多个金融机构,每个计算节点匹配的金融机构的数量小于N。以及,向N个金融机构中的每个发送第一指令。
第n个所述金融机构用于:在接收到第一指令时,从当前的金融机构管理的数据中,提取出与数据统计请求相匹配的数据,以得到目标数据。对目标数据进行同态加密,以得到第一密文。以及,向与第n个金融机构匹配的每个计算节点发送第一密文。
第m个所述计算节点用于:对获取到的第一密文进行汇总,以生成第二密文。以及,将第二密文发送至第一数据统计装置。
统计请求端还用于:对接收到的第二密文进行汇总,以生成第三密文。以及,对第三密文进行同态解密,以得到数据统计结果。
其中,n、m、M和N均为正整数,并且,n≤N,m≤M。
图13示意性示出了根据本公开实施例的适于实现数据统计方法的电子设备的方框图。
如图13所示,根据本公开实施例的电子设备1300包括处理器1301,其可以根据存储在只读存储器(ROM)1302中的程序或者从存储部分1308加载到随机访问存储器(RAM)1303中的程序而执行各种适当的动作和处理。处理器1301例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器1301还可以包括用于缓存用途的板载存储器。处理器1301可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 1303中,存储有电子设备1300操作所需的各种程序和数据。处理器1301、ROM 1302以及RAM 1303通过总线1304彼此相连。处理器1301通过执行ROM 1302和/或RAM1303中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 1302和RAM 1303以外的一个或多个存储器中。处理器1301也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备1300还可以包括输入/输出(I/O)接口1305,输入/输出(I/O)接口1305也连接至总线1304。电子设备1300还可以包括连接至I/O接口1305的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1306;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1307;包括硬盘等的存储部分1308;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1309。通信部分1309经由诸如因特网的网络执行通信处理。驱动器1310也根据需要连接至I/O接口1305。可拆卸介质1311,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1310上,以便于从其上读出的计算机程序根据需要被安装入存储部分1308。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/***中所包含的;也可以是单独存在,而未装配入该设备/装置/***中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的数据统计方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 1302和/或RAM 1303和/或ROM 1302和RAM 1303以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机***中运行时,该程序代码用于使计算机***实现本公开实施例所提供的数据统计方法。
在该计算机程序被处理器1301执行时执行本公开实施例的***/装置中限定的上述功能。根据本公开的实施例,上文描述的***、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分1309被下载和安装,和/或从可拆卸介质1311被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分1309从网络上被下载和安装,和/或从可拆卸介质1311被安装。在该计算机程序被处理器1301执行时,执行本公开实施例的***中限定的上述功能。根据本公开的实施例,上文描述的***、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

Claims (13)

1.一种数据统计方法,应用于统计请求端,其特征在于,所述数据统计方法包括:
响应于数据统计请求,为N个金融机构分配M个计算节点,其中,每个所述计算节点匹配多个所述金融机构,每个所述计算节点匹配的所述金融机构的数量小于N;
向所述N个金融机构中的每个金融机构发送第一指令,其中,向第n个金融机构发送的所述第一指令配置为:使第n个所述金融机构,向与其匹配的每个所述计算节点发送第一密文,所述第一密文包括:第n个所述金融机构基于所述统计请求提取目标数据后,对所述目标数据进行同态加密后得到的密文;
获取M个第二密文,其中,第m个第二密文包括:M个所述计算节点中,第m个所述计算节点对接收到的所述第一密文进行汇总后生成的密文;
对接收到的所述第二密文进行汇总,以生成第三密文;
对第三密文进行同态解密,以得到数据统计结果;
其中,n、m、M和N均为正整数,并且,n≤N,m≤M。
2.根据权利要求1所述的数据统计方法,其特征在于,所述响应于数据统计请求,为N个金融机构分配M个计算节点,包括:
为每个所述金融机构匹配多个所述计算节点,其中,每个所述金融机构匹配的所述计算节点的数量小于M,对于任意两个所述计算节点,二者所匹配的所述金融机构存在部分重复。
3.根据权利要求2所述的数据统计方法,其特征在于,所述对第三密文进行同态解密,以得到数据统计结果,包括:
对所述第三密文进行同态解密,以得到第一数值;
对所述第一数值进行去重处理,以得到所述数据统计结果;或者,
对所述第三密文进行去重处理,以得到第四密文;
对所述第四密文进行同态解密,以得到所述数据统计结果。
4.一种数据统计方法,其特征在于,应用于N个金融机构的至少一者中,所述数据统计方法,包括:
响应于第一指令,获取统计请求,其中,所述统计请求包括统计对象和待统计数据的数据属性;
获取M个计算节点中,与当前的所述金融机构匹配的计算节点;
从当前的所述金融机构管理的数据中,提取出与所述统计对象和所述数据属性相匹配的数据,以得到目标数据;
对所述目标数据进行同态加密,以得到第一密文;
向与当前的所述金融机构匹配的每个所述计算节点发送所述第一密文;
其中,M和N均为正整数。
5.根据权利要求4所述的数据统计方法,其特征在于,所述对所述目标数据进行同态加密,以得到第一密文,包括:
根据所述统计对象,生成第一加密变量;
基于所述第一加密变量,对所述目标数据进行同态加密;或者,
获取当前随机生成的第二加密变量;
与其他的所述金融机构和统计请求端同步所述第二加密变量;
当同步成功时,基于所述第二加密变量,对所述目标数据进行同态加密。
6.一种数据统计方法,其特征在于,应用于M个计算节点的至少一者中,所述数据统计方法,包括:
获取N个金融机构中,与当前的所述计算节点匹配的金融机构;
获取多个第一密文,每一个所述第一密文包括:与当前的所述计算节点匹配的金融机构,基于统计请求提取目标数据后,对所述目标数据进行同态加密后得到的密文,其中,不同的所述第一密文由不同的所述金融机构生成;
对获取到的多个第一密文进行汇总,以生成第二密文;
将所述第二密文发送至统计请求端;
其中,M和N均为正整数。
7.根据权利要求6所述的数据统计方法,其特征在于,对获取到的多个第一密文进行汇总,以生成第二密文,包括:
在获取到与当前的所述计算节点匹配的全部金融机构发送的第一密文时,对获取到的全部第一密文执行密文汇总操作,以生成第二密文;或者,
每获取一次所述第一密文时,执行一次密文汇总操作,其中,每次密文汇总操作均基于上一次密文汇总操作的结果和当前获取的第一密文执行。
8.一种数据统计装置,应用于统计请求端,其特征在于,所述数据统计装置包括:
节点分配模块,用于响应于数据统计请求,为N个金融机构分配M个计算节点,其中,每个所述计算节点匹配多个所述金融机构,每个所述计算节点匹配的所述金融机构的数量小于N;
第一发送模块,用于向所述N个金融机构中的每个金融机构发送第一指令,其中,向第n个金融机构发送的所述第一指令配置为:使第n个所述金融机构,向与其匹配的每个所述计算节点发送第一密文,所述第一密文包括:第n个所述金融机构基于所述统计请求提取目标数据后,对所述目标数据进行同态加密后得到的密文;
第一汇总模块,用于获取M个第二密文,其中,第m个第二密文包括:M个所述计算节点中,第m个所述计算节点对接收到的所述第一密文进行汇总后生成的密文,不同的第二密文由不同的所述计算节点生成;对接收到的所述第二密文进行汇总,以生成第三密文;
解密模块,用于对第三密文进行同态解密,以得到数据统计结果;
其中,n、m、M和N均为正整数,并且,n≤N,m≤M。
9.一种数据统计装置,其特征在于,应用于N个金融机构的至少一者中,所述数据统计装置,包括:
第一获取模块,用于响应于第一指令,获取统计请求,其中,所述统计请求包括统计对象和待统计数据的数据属性;
第二获取模块,用于获取M个计算节点中,与当前的所述金融机构匹配的计算节点;
第三获取模块,用于从当前的所述金融机构管理的数据中,提取出与所述统计对象和所述数据属性相匹配的数据,以得到目标数据;
加密模块,用于对所述目标数据进行同态加密,以得到第一密文;
第二发送模块,用于向与当前的所述金融机构匹配的每个所述计算节点发送所述第一密文;
其中,M和N均为正整数。
10.一种数据统计装置,其特征在于,应用于M个计算节点的至少一者中,所述数据统计装置,包括:
第四获取模块,用于获取N个金融机构中,与当前的所述计算节点匹配的金融机构;
第五获取模块,用于获取多个第一密文,每一个所述第一密文包括:与当前的所述计算节点匹配的金融机构,基于统计请求提取目标数据后,对所述目标数据进行同态加密后得到的密文,其中,不同的所述第一密文由不同的所述金融机构生成;
第二汇总模块,用于对获取到的多个第一密文进行汇总,以生成第二密文;
第三发送模块,用于将所述第二密文发送至统计请求端;
其中,M和N均为正整数。
11.一种数据统计***,其特征在于,所述数据统计***包括:统计请求端、M个计算节点和N个金融机构;
所述统计请求端用于:响应于数据统计请求,将M个计算节点分配给N个金融机构,其中,每个所述计算节点匹配多个所述金融机构,每个所述计算节点匹配的所述金融机构的数量小于N;以及,向所述N个金融机构中的每个发送第一指令;
第n个所述金融机构用于:在接收到所述第一指令时,从当前的所述金融机构管理的数据中,提取出与所述数据统计请求相匹配的数据,以得到目标数据;对所述目标数据进行同态加密,以得到第一密文;以及,向与第n个所述金融机构匹配的每个所述计算节点发送所述第一密文;
第m个所述计算节点用于:对获取到的第一密文进行汇总,以生成第二密文;以及,将所述第二密文发送至所述统计请求端;
所述统计请求端还用于:对接收到的所述第二密文进行汇总,以生成第三密文;以及,对第三密文进行同态解密,以得到数据统计结果;
其中,n、m、M和N均为正整数,并且,n≤N,m≤M。
12.一种计算机可读存储介质,其特征在于,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~7中任一项所述的数据统计方法。
13.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1~7中任一项所述的数据统计方法。
CN202310974790.2A 2023-08-03 2023-08-03 数据统计方法、装置、***、存储介质和程序产品 Pending CN116975125A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310974790.2A CN116975125A (zh) 2023-08-03 2023-08-03 数据统计方法、装置、***、存储介质和程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310974790.2A CN116975125A (zh) 2023-08-03 2023-08-03 数据统计方法、装置、***、存储介质和程序产品

Publications (1)

Publication Number Publication Date
CN116975125A true CN116975125A (zh) 2023-10-31

Family

ID=88474739

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310974790.2A Pending CN116975125A (zh) 2023-08-03 2023-08-03 数据统计方法、装置、***、存储介质和程序产品

Country Status (1)

Country Link
CN (1) CN116975125A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117235801A (zh) * 2023-11-10 2023-12-15 北京天润基业科技发展股份有限公司 隐私数据的统计方法、电子设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117235801A (zh) * 2023-11-10 2023-12-15 北京天润基业科技发展股份有限公司 隐私数据的统计方法、电子设备及存储介质
CN117235801B (zh) * 2023-11-10 2024-02-09 北京天润基业科技发展股份有限公司 隐私数据的统计方法、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN110472428B (zh) 基于区块链的医疗数据共享方法及共享***
US10903976B2 (en) End-to-end secure operations using a query matrix
CN110245510B (zh) 用于预测信息的方法和装置
US20180212753A1 (en) End-To-End Secure Operations Using a Query Vector
US10091230B1 (en) Aggregating identity data from multiple sources for user controlled distribution to trusted risk engines
US9893896B1 (en) System and method for remote storage auditing
CN112131316B (zh) 应用于区块链***的数据处理方法及装置
WO2020224489A1 (zh) 基于区块链的银行数据共享方法及相关设备
US20230058013A1 (en) Providing access to encrypted insights using anonymous insight records
CN113498602B (zh) 防止欺诈的计算机实现的方法、存储介质、设备及***
Li et al. An efficient blind filter: Location privacy protection and the access control in FinTech
US20230421353A1 (en) Generating sequences of network data while preventing acquisition or manipulation of time data
CN116975125A (zh) 数据统计方法、装置、***、存储介质和程序产品
WO2022068234A1 (zh) 基于共享根密钥的加密方法、装置、设备及介质
CN112887087B (zh) 数据管理方法、装置、电子设备及可读存储介质
US11886414B2 (en) One-way hashing methodology for database records
US20220376928A1 (en) Preventing data manipulation using multiple aggregation servers
CN113436008A (zh) 贷款用途监控方法及装置、存储介质及电子设备
CN114600421B (zh) 用于安全标识检索的***和方法
CN115599959A (zh) 数据共享方法、装置、设备及存储介质
KR102123435B1 (ko) 멀티 클라이언트 환경에서 동치 질의를 지원하는 암호화 방법 및 이를 이용한 장치
Thiyagarajan et al. Ensuring Security for Data Storage in Cloud Computing using HECC-ElGamal Cryptosystem and GSO Optimization
CN115269880B (zh) 一种基于知识图谱的隐私计算审计方法和装置
CN114223175B (zh) 在防止获取或操控时间数据的同时生成网络数据的序列
CN116455618A (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