基于数据混淆实现匿踪查询功能的系统及其方法——富数科技

2024-01-13 01:59

本文主要是介绍基于数据混淆实现匿踪查询功能的系统及其方法——富数科技,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、背景及场景

1、现有技术中,数据价值随着拥有者的增加而减少:

在数据共享应用中,数据累积是让企业不想分享他数据的重要原因。当一份数据
只有自己有时他的市场价值为n,当企业不论是收费或免费将数据提供给另一个人时,他的
价值就变成了n/2,随着知道此数据的人数越来越多,价值直线下降,最终会变成一个公开
数据。

2、 查询本身就是一种数据:
参与数据交换的双方都会存在这种担忧,数据输出者的担忧很直接,他提供了自
己的数据,由于数据的可复制性,对方即知道了此数据。同样对于查询方而言一样存在这种
数据泄漏,当查询方向输出方查询用户a的数据时,输出方即知道了a这个用户在查询方的
业务场景中,而累积此数据便可使此类数据产生价值

3、互联网贷款场景案例:
在信贷场景中,由于放贷公司数据不完整,所以会向第三方购需数据,比如有一家
公司x,向信贷企业提供黑名单服务,x公司有一个用户逾期的库,信贷公司y想在x公司查询
用户a是否在黑名单库中。当x收到y公司请求时,便知道用户a正在y公司申请贷款,如果有
很多信贷公司都通过y公司来查询用户是否在黑名单中,那么y公司便可以知道一个用户是
否存在多头借贷的风险。
4、用户特征数据共享场景案例:
一个手机APP会根据不同的用户来显示不同的产品或广告,通常一个APP只有用户
的部分数据,为了达到更加精准的消息推送,需要有更广泛的用户标签。在数据市场中有很
多提供用户画像的公司,这些公司的输入为用户标识如:手机号、身份证号、手机设备码等。
需求方输入用户标识,提供方根据这些信息从自已的库中找到信息,输出给需求方。由于提
供用户画像公司知道请求APP的性质,如为交友类、贷款类、旅游类等,所以数据的提供方在
提供给需求方数据的同时,也知道了这个用户正在使用什么APP,对此数据按用户进行聚合
可以衍生出用户的其他特征。

二、方案:

步骤:

(1)所述的查询模块生成混淆数据,并对查询数据和混淆数据进行哈希计算;
(1.1)所述的哈希单元对用户标识ID进行md5计算;
(1.2)所述的第一混淆单元随机生成若干个假用户标识ID的md5码;
(2)所述的查询模块隐藏若干位后数据,向数据输出服务模块发起查询;
(2.1)所述的第一混淆单元对其生成的假md5码和哈希单元计算后的md5码隐藏若
干位数据,仅保留预设位数的号码;
(2.2)所述的第一查询单元将所述的保留预设位数的md5码的号码发生至数据输
出服务模块;
(3)所述的数据输出服务模块向数据库查询匹配数据,生成混淆数据;
(3.1)所述的第二查询单元在数据库中匹配满足条件的预设位数的md5码,并保存
至数据存储单元;
(3.2)所述的第二混淆单元随机生成若干个假md5码;
(4)所述的数据输出服务模块对真假数据进行加密并返回至查询模块;
(4.1)所述的加密单元对第二查询单元匹配到的md5码和第二混淆单元生成的假
md5码添加随机数,并通过公钥进行加密;
(4.2)所述的数据输出服务模块将加密后的数据返回至查询模块;
(5)所述的验证单元通过数据输出服务模块提供的随机数和公钥进行加密,在返
回数据中查询是否存在加密后的字符串,如果是,则对方包含该用户的数据;否则,对方不包含该用户的数据。

举例:

场景假设为需求方通过身份证号来供方查询指定用户是否为黑名单用户。
[1] 供方对身份证号进行散列,散列的算法要保证低碰撞率(假设我们以md5方式进行
散列)。供方对身份证号进行散列后作为查询key进行存储;
[2] 需方现在查询a用户是否在供方黑名单库中,先将身份证号进行md5,然后再随机
生成若干个假的身份证号的md5(比如9个),对这10个md5值去掉后面若干位,如:只保留前
面的7位;
[3] 将10个只有7位md5码的号码发送给供方,供方在自己库中匹配前7位符合的用户,
比如取到8位;
[4] 供方再随机生成若干个假的md5码(如13个),共20个号码,对这20个完整号码添加
随机数后用公钥进行加密,返回给需方;
[5] 需方取用户a的md5码用供方提供的随机数和公钥加密,然后在20个号码中查询是
否存在加密后的字符串;如果存在,则说明对方有此用户的数据,反之没有。
[6] 将身份证号md5的目的是为了增加枚举的成本,如果只隐藏身份证号的若干位,那
么一方面号码本身有明确信息,如前有地区信息,出生信息等;另一方面可以对缺失位进行
小范围的枚举。如果用md5后枚举难度为36^25(只显示7位那md5被隐藏了25位,每位有36种
可能);
[7] 发送请求时加入假信息目的是为了即使对方有完整的库,且前7位只匹配到1位,
那么也无法判断这1位是否是需方真正要查的那一位;


 

这篇关于基于数据混淆实现匿踪查询功能的系统及其方法——富数科技的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/599880

相关文章

Python中edge-tts实现便捷语音合成

《Python中edge-tts实现便捷语音合成》edge-tts是一个功能强大的Python库,支持多种语言和声音选项,本文主要介绍了Python中edge-tts实现便捷语音合成,具有一定的参考价... 目录安装与环境设置文本转语音查找音色更改语音参数生成音频与字幕总结edge-tts 是一个功能强大的

Java实现按字节长度截取字符串

《Java实现按字节长度截取字符串》在Java中,由于字符串可能包含多字节字符,直接按字节长度截取可能会导致乱码或截取不准确的问题,下面我们就来看看几种按字节长度截取字符串的方法吧... 目录方法一:使用String的getBytes方法方法二:指定字符编码处理方法三:更精确的字符编码处理使用示例注意事项方

使用Python和PaddleOCR实现图文识别的代码和步骤

《使用Python和PaddleOCR实现图文识别的代码和步骤》在当今数字化时代,图文识别技术的应用越来越广泛,如文档数字化、信息提取等,PaddleOCR是百度开源的一款强大的OCR工具包,它集成了... 目录一、引言二、环境准备2.1 安装 python2.2 安装 PaddlePaddle2.3 安装

嵌入式Linux之使用设备树驱动GPIO的实现方式

《嵌入式Linux之使用设备树驱动GPIO的实现方式》:本文主要介绍嵌入式Linux之使用设备树驱动GPIO的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、设备树配置1.1 添加 pinctrl 节点1.2 添加 LED 设备节点二、编写驱动程序2.1

Android 实现一个隐私弹窗功能

《Android实现一个隐私弹窗功能》:本文主要介绍Android实现一个隐私弹窗功能,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 效果图如下:1. 设置同意、退出、点击用户协议、点击隐私协议的函数参数2. 《用户协议》、《隐私政策》设置成可点击的,且颜色要区分出来res/l

spring IOC的理解之原理和实现过程

《springIOC的理解之原理和实现过程》:本文主要介绍springIOC的理解之原理和实现过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、IoC 核心概念二、核心原理1. 容器架构2. 核心组件3. 工作流程三、关键实现机制1. Bean生命周期2.

Redis实现分布式锁全解析之从原理到实践过程

《Redis实现分布式锁全解析之从原理到实践过程》:本文主要介绍Redis实现分布式锁全解析之从原理到实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、背景介绍二、解决方案(一)使用 SETNX 命令(二)设置锁的过期时间(三)解决锁的误删问题(四)Re

nginx负载均衡及详细配置方法

《nginx负载均衡及详细配置方法》Nginx作为一种高效的Web服务器和反向代理服务器,广泛应用于网站的负载均衡中,:本文主要介绍nginx负载均衡及详细配置,需要的朋友可以参考下... 目录一、 nginx负载均衡策略1.1 基本负载均衡策略1.2 第三方策略1.3 策略对比二、 nginx配置2.1

Java调用Python的四种方法小结

《Java调用Python的四种方法小结》在现代开发中,结合不同编程语言的优势往往能达到事半功倍的效果,本文将详细介绍四种在Java中调用Python的方法,并推荐一种最常用且实用的方法,希望对大家有... 目录一、在Java类中直接执行python语句二、在Java中直接调用Python脚本三、使用Run

Java根据IP地址实现归属地获取

《Java根据IP地址实现归属地获取》Ip2region是一个离线IP地址定位库和IP定位数据管理框架,这篇文章主要为大家详细介绍了Java如何使用Ip2region实现根据IP地址获取归属地,感兴趣... 目录一、使用Ip2region离线获取1、Ip2region简介2、导包3、下编程载xdb文件4、J