一种位置隐私保护的实时疾控流调方法

文档序号:33002839发布日期:2023-01-18 01:49阅读:69来源:国知局
一种位置隐私保护的实时疾控流调方法

1.本发明属于流行病防控技术领域,具体涉及一种位置隐私保护的实时疾控流调方法。


背景技术:

2.目前,常用的密接筛查方式主要为分为健康码产品和蓝牙接触日志产品。
3.健康码产品是疫情期间,全国一体化政务服务平台开发的以大数据分析为基础,以小程序为载体的定位追踪应用程序,作为个人的电子通行证使用。用户通过填报个人信息健康状况、旅游史、居住地及是否接触过疑似或确诊病患等问题自动生成二维码,分红、黄、绿三种颜色,动态显示个人疫情风险等级。通过健康码颜色,可以实时表示用户健康状况,辅助疫情防控。健康码产品虽然在技术上已经十分成熟,但是仍然存在数据安全与隐私侵犯、密接筛查效率较低和无法做到精确的定位和筛查等问题。
4.蓝牙接触日志产品是通过用户设备蓝牙作为通信媒介,记录用户密切接触者的蓝牙标识信息以达到记录感染密切接触者的筛查方式。每台用户设备实时记录当前用户感染风险区域的蓝牙设备信息,当该用户感染病毒时,会将其设备内的接触信息上传至服务器,用来追踪和提醒密切接触者。通过蓝牙接触日志的方式,可以在用户信息不泄露的条件下,实现阳性感染者的密切接触者追踪。虽然利用蓝牙接触日志进行流调能够保护用户个人数据、具有高效便捷的优点,但由于使用期间需同时开启蓝牙和获取位置权限,不仅导致系统功耗较高,并且长时间开启蓝牙也存在隐私泄露的风险;此外,蓝牙日志产品无法动态调整时间阈值,在疫情防控进行调整时,无法动态地调整密接确定方式。


技术实现要素:

5.为了解决现有技术中存在的上述问题,本发明提供了一种位置隐私保护的实时疾控流调方法。本发明要解决的技术问题通过以下技术方案实现:
6.本发明提供一种位置隐私保护的实时疾控流调方法,应用于流调系统,所述流调系统包括:智能终端、云服务器和疾控流调组织;
7.所述实时疾控流调方法包括:
8.所述智能终端获取用户的当前位置信息及当前位置信息对应的四叉树节点信息后,对所述当前位置信息和所述四叉树节点信息进行加密,并将加密后的当前位置信息及加密后的四叉树节点信息上传至所述云服务器;
9.所述云服务器将加密后的四叉树节点信息发送至所述疾控流调组织后,所述疾控流调组织通过解密获得四叉树节点信息,并返回四叉树节点信息中各四叉树节点对应的混淆四叉树节点至所述云服务器;
10.所述云服务器将加密后的当前位置信息按照所述混淆四叉树节点存储入四叉树的存储节点;
11.当发现阳性病例时,所述疾控流调组织向所述云服务器发送包含第一身份标识的
查询请求,所述第一身份标识为所述阳性病例的身份标识;
12.所述云服务器根据所述第一身份标识,获取该阳性病例在t1~tn内各时刻下第一当前位置信息及对应的第一四叉树节点信息,并筛选出各时刻所在时间窗口内非阳性病例的第二当前位置信息及对应的第二四叉树信息;
13.所述云服务器根据第一当前位置信息和第二当前位置信息,确定t1~tn内的密切接触者。
14.在本发明的一个实施例中,所述智能终端获取用户的当前位置信息及当前位置信息对应的四叉树节点信息的步骤之前,还包括:
15.所述疾控流调组织接收所述智能终端发送的注册请求,所述注册请求包括用户名和密码;
16.当所述用户名和密码满足注册条件时,所述疾控流调组织向所述智能终端发送身份标识;
17.当所述疾控流调组织接收到来自所述智能终端的登陆请求时,向所述智能终端发送加密公钥。
18.在本发明的一个实施例中,所述智能终端包括数据获取模块、四叉树节点信息获取模块和数据加密模块;
19.所述智能终端获取用户的当前位置信息及当前位置信息对应的四叉树节点信息后,对所述当前位置信息和所述四叉树节点信息进行加密,并将加密后的当前位置信息及加密后的四叉树节点信息上传至所述云服务器的步骤,包括:
20.所述数据获取模块每间隔预设时间段获取一次用户的当前gps坐标及当前时刻ti,并将所述当前gps坐标转化为当前墨卡托平面坐标得到当前位置信息;
21.所述四叉树节点信息获取模块根据所述当前位置信息和预设感染风险距离d
danger
,计算点对应的四叉树节点位置和以点为中心、长度为2*d
danger
的正方形顶点对应的四叉树节点位置subtreesi=[subtree
i,1
,subtree
i,2
,subtree
i,3
,subtree
i,4
],得到四叉树节点信息。
[0022]
所述数据加密模块利用pshe加密算法和所述加密公钥,对所述当前位置信息和所述四叉树节点信息进行加密,并将加密后的当前位置信息及加密后的四叉树节点信息上传至所述云服务器。
[0023]
在本发明的一个实施例中,所述疾控流调组织包括解密模块;
[0024]
所述云服务器将加密后的四叉树节点信息发送至所述疾控流调组织后,所述疾控流调组织通过解密获得四叉树节点信息,并返回四叉树节点信息中各四叉树节点对应的混淆四叉树节点至所述云服务器的步骤,包括:
[0025]
所述云服务器将加密后的四叉树节点信息发送至所述疾控流调组织后,所述解密模块通过解密获得四叉树节点信息,并根据预设四叉树节点列表对所述四叉树节点信息进行映射,返回四叉树节点信息中各四叉树节点对应的混淆四叉树节点至所述云服务器;
[0026]
其中,所述预设四叉树节点列表根据所述云服务器中不同结构的四叉树生成。
[0027]
在本发明的一个实施例中,所述云服务器包括四叉树存取模块,所述第一当前位置信息包括阳性病例的第一当前墨卡托平面坐标,所述第二当前位置信息包括非阳性病例的第二当前墨卡托平面坐标;
[0028]
所述云服务器根据第一当前位置信息和第二当前位置信息,确定t1~tn内的密切接触者的步骤,包括:
[0029]
所述四叉树存取模块根据第一当前墨卡托平面坐标和第二当前墨卡托平面坐标,利用矩形快速安全搜索算法判断所述第二当前墨卡托平面坐标是否在矩形内;
[0030]
若否,则该非阳性病例不是密切接触者;若是,则进一步利用圆形快速安全搜索算法判断所述第二当前墨卡托平面坐标是否在圆形风险区内;
[0031]
若是,则所述非阳性病例是密切接触者;若否,则所述非阳性病例不是密切接触者。
[0032]
在本发明的一个实施例中,所述云服务器根据第一当前位置信息和第二当前位置信息,确定t1~tn内的密切接触者的步骤之后,还包括:
[0033]
将所有密切接触者的用户标识返回至所述疾控流调组织;
[0034]
所述疾控流调组织根据密切接触者的用户标识通知对应的智能终端。
[0035]
在本发明的一个实施例中,还包括:
[0036]
当出现环境阳性时,所述疾控流调组织根据预设待筛选区域绘制凸多边形及该凸多边形的外接矩形;
[0037]
获取所述凸多边形的顶点坐标集合以及所述外接矩形顶点所在的x轴、y 轴范围
[0038]
从所述四叉树中确定所述外接矩形顶点相交的第一节点,并确定所述第一节点对应的第一混淆节点;
[0039]
利用pshe加密算法对所述凸多边形的顶点坐标和points

rectangle
进行加密处理后,将加密后的凸多边形顶点坐标、加密后的points

rectangle
、预设开始时间t
start
、预设终止时间t
end
和第一混淆节点发送至所述云服务器;
[0040]
所述云服务器确定[t
start
,t
end
]内经过所述外接矩形的所有非阳性病例的身份标识;
[0041]
获取所述第一混淆节点对应的待筛选当前位置信息,所述待筛选位置信息包括待筛选当前坐标;
[0042]
所述云服务器利用矩形快速安全搜索算法,判断所述待筛选当前坐标是否在矩形内;若否,则待筛选当前坐标对应的非阳性病例不是密切接触者;若是,则进一步利用凸多边形内外点安全判别算法判断所述待筛选当前坐标是否在凸多边形内;
[0043]
若是,则所述非阳性病例是密切接触者;若否,则所述非阳性病例不是密切接触者。
[0044]
与现有技术相比,本发明的有益效果在于:
[0045]
本发明基于疾控流调组织、云服务器和智能终端三方架构实现流调,智能终端对用户的当前位置信息及当前位置信息对应的四叉树节点信息加密后上传到云服务器,所有筛查任务均在云服务器端完成,疾控流调组织对中间过程进行辅助,但是云服务器无法获取用户具体真实数据,不仅解决了健康码数据隐私安全问题,也有利于提高筛查效率。
[0046]
以下将结合附图及实施例对本发明做进一步详细说明。
附图说明
[0047]
图1是本发明实施例提供的位置隐私保护的实时疾控流调方法的一种流程图;
[0048]
图2是本发明实施例提供的流调系统的一种结构框图;
[0049]
图3是本发明实施例提供的位置隐私保护的实时疾控流调方法的一种示意图;
[0050]
图4是本发明实施例提供的位置隐私保护的实时疾控流调方法的另一种示意图;
[0051]
图5是本发明实施例提供的位置隐私保护的实时疾控流调方法的另一种示意图。
具体实施方式
[0052]
下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。
[0053]
图1是本发明实施例提供的位置隐私保护的实时疾控流调方法的一种流程图,图2是本发明实施例提供的流调系统的一种结构框图。如图1-2所示,本发明实施例提供一种位置隐私保护的实时疾控流调方法,应用于流调系统,流调系统包括:智能终端、云服务器和疾控流调组织;
[0054]
上述实时疾控流调方法包括:
[0055]
s1、智能终端获取用户的当前位置信息及当前位置信息对应的四叉树节点信息后,对当前位置信息和四叉树节点信息进行加密,并将加密后的当前位置信息及加密后的四叉树节点信息上传至云服务器;
[0056]
s2、云服务器将加密后的四叉树节点信息发送至疾控流调组织后,疾控流调组织通过解密获得四叉树节点信息,并返回四叉树节点信息中各四叉树节点对应的混淆四叉树节点至云服务器;
[0057]
s3、云服务器将加密后的当前位置信息按照混淆四叉树节点存储入四叉树的存储节点;
[0058]
s4、当发现阳性病例时,疾控流调组织向云服务器发送包含第一身份标识的查询请求,第一身份标识为阳性病例的身份标识;
[0059]
s5、云服务器根据第一身份标识,获取该阳性病例在t1~tn内各时刻下第一当前位置信息及对应的第一四叉树节点信息,并筛选出各时刻所在时间窗口内非阳性病例的第二当前位置信息及对应的第二四叉树信息;
[0060]
s6、云服务器根据第一当前位置信息和第二当前位置信息,确定t1~tn内的密切接触者。
[0061]
可选地,智能终端获取用户的当前位置信息及当前位置信息对应的四叉树节点信息的步骤之前,还包括:
[0062]
疾控流调组织接收智能终端发送的注册请求,注册请求包括用户名和密码;
[0063]
当用户名和密码满足注册条件时,疾控流调组织向智能终端发送身份标识;
[0064]
当疾控流调组织接收到来自智能终端的登陆请求时,向智能终端发送加密公钥。
[0065]
具体而言,在智能终端获取用户的当前位置信息及当前位置信息对应的四叉树节点信息的步骤之前,流调系统首先进行参数的初始化,所述参数包括:四叉树层数为d
tree

感染风险距离d
danger
等,并且云服务器、智能终端和疾控流调组织初始化四叉树结构;用户在智能终端注册时,可以输入自己的用户名、密码和确认密码,智能终端判断密码和确认密码是否相同,如果相同则向疾控流调组织发送注册请求,否则提示密码和确认密码不同,疾控流调组织接收到注册请求后,判断数据库内是否存在同名用户,如果存在,则返回用户名重复的提示,如果不存在,则将该用户名和经过pbkdf2:sha256算法处理后的密码哈希存入数据库,之后返回一个随机生成且未被使用的身份标识uuid,以便后续上传数据。
[0066]
进一步地,用户注册成功后,使用用户名和密码进行登录操作,智能终端将用户名和密码发送至疾控流调组织,疾控流调组织使用pbkdf2:sha256算法计算密码的哈希值,判断结果与用户名注册时的密码哈希值是否相同,如果相同,则登录成功;如果不同,则登录失败。登录成功后,智能终端向疾控流调组织请求分配公开密钥,疾控流调组织返回公开密钥e(0)1和e(0)2。
[0067]
可选地,智能终端包括数据获取模块、四叉树节点信息获取模块和数据加密模块;
[0068]
上述步骤s1中,智能终端获取用户的当前位置信息及当前位置信息对应的四叉树节点信息后,对当前位置信息和所述四叉树节点信息进行加密,并将加密后的当前位置信息及加密后的四叉树节点信息上传至所述云服务器的步骤,包括:
[0069]
s101、数据获取模块每间隔预设时间段获取一次用户的当前gps坐标及当前时刻ti,并将当前gps坐标转化为当前墨卡托平面坐标得到当前位置信息;
[0070]
s102、四叉树节点信息获取模块根据当前位置信息和预设感染风险距离d
danger
,计算点对应的四叉树节点位置和以点为中心、长度为2*d
danger
的正方形顶点对应的四叉树节点位置subtreesi=[subtree
i,1
,subtree
i,2
,subtree
i,3
,subtree
i,4
],得到四叉树节点信息。
[0071]
s103、数据加密模块利用pshe加密算法和加密公钥,对当前位置信息和四叉树节点信息进行加密,并将加密后的当前位置信息及加密后的四叉树节点信息上传至云服务器。
[0072]
具体地,在步骤s101中,智能终端每隔预设时间段获取一次当前 gps(wgs84)位置坐标和当前时刻ti,并利用wgs84_to_mercator 坐标转换算法将转化为墨卡托平面坐标然后将浮点型的墨卡托平面坐标转化为整型的墨卡托平面坐标,即当前墨卡托平面坐标得到当前位置信息。
[0073]
进一步地,智能终端利用存储于自身的四叉树结构将当前墨卡托平面坐标和预设感染风险距离d
danger
输入云服务器的四叉树存取模块中,计算对应的四叉树节点位置和以点为中心、长度为2*d
danger
的正方形顶点对应的四叉树节点位置,返回
对应的四叉树节点位置subtreei和正方形顶点对应的四叉树节点位置subtreesi;其中,subtreesi=[subtree
i,1
,subtree
i,2
,subtree
i,3
,subtree
i,4
]。
[0074]
智能终端利用pshe加密算法和加密公钥对subtreei和subtreesi进行处理后,分别得到e(subtreei)、e(subtreesi)和其中, e(subtreesi)=[e(subtree
i,1
),e(subtree
i,2
),e(subtree
i,3
),e(subtree
i,4
)]。
[0075]
智能终端将包含e(subtreei)、e(subtreesi)和的数据信息以json格式编码发送给云服务器,示例性地,数据信息如表1所示:
[0076]
表1
[0077][0078]
可选地,上述疾控流调组织包括解密模块;
[0079]
云服务器将加密后的四叉树节点信息发送至疾控流调组织后,疾控流调组织通过解密获得四叉树节点信息,并返回四叉树节点信息中各四叉树节点对应的混淆四叉树节点至所述云服务器的步骤,包括:
[0080]
云服务器将加密后的四叉树节点信息发送至疾控流调组织后,解密模块通过解密获得四叉树节点信息,并根据预设四叉树节点列表对四叉树节点信息进行映射,返回四叉树节点信息中各四叉树节点对应的混淆四叉树节点至所述云服务器;
[0081]
其中,预设四叉树节点列表根据云服务器中不同结构的四叉树生成。
[0082]
本实施例中,云服务器接收智能终端发送的数据信息后,取出e(subtreei) 和e(subtreesi),并将e(subtreei)和e(subtreesi)发送给疾控流调组织,疾控流调组织中的解密模块利用pshe解密算法解密,得到subtreei和subtreesi;接着,疾控流调组织将解密得到的subtreei和subtreesi按照四叉树节点列表映射,即将真实情况下的四叉树与服务器端的不同结构的四叉树进行映射,获得对应的混淆四叉树节点:subtree
′i和subtrees
′i,其中:
[0083]
subtrees
′i=[e(subtree

i,1
),e(subtree

i,2
),e(subtree

i,3
),e(subtree

i,4
)]。
[0084]
进一步地,疾控流调组织将subtree
′i和subtrees
′i返回给云服务器,云服务将数据信息存储于subtree
′i对应的云服务器存储节点。
[0085]
可选地,云服务器包括四叉树存取模块,第一当前位置信息包括阳性病例的第一当前墨卡托平面坐标,第二当前位置信息包括非阳性病例的第二当前墨卡托平面坐标;
[0086]
上述步骤s5中,云服务器根据第一当前位置信息和第二当前位置信息,确定t1~tn内的密切接触者的步骤,包括:
[0087]
s501、四叉树存取模块根据第一当前墨卡托平面坐标和第二当前墨卡托平面坐标,利用矩形快速安全搜索算法判断第二当前墨卡托平面坐标是否在矩形内;
[0088]
s502、若否,则该非阳性病例不是密切接触者;若是,则进一步利用圆形快速安全搜索算法判断第二当前墨卡托平面坐标是否在圆形风险区内;
[0089]
s503、若是,则非阳性病例是密切接触者;若否,则非阳性病例不是密切接触者。
[0090]
图3是本发明实施例提供的位置隐私保护的实时疾控流调方法的一种示意图。具体地,请参见图3,在对人员阳性传播的密接筛查过程中,疾控流调组织将阳性病例的uuid发送给云服务器,要求查询该用户在过去14天内的密切接触者,云服务器根据阳性病例的uuid筛选出其在过去14天内的第一当前位置信息track
ill
。示例性地,track
ill
如下表2所示:
[0091]
表2
[0092][0093]
其中,n表示阳性病例近14天内上传的第一当前位置信息总量;
[0094]
接着,从track
ill
的第一行开始,首先根据subtrees
′1使用四叉树存取模块获取待筛数据,然后根据时间t1从非阳性轨迹筛选出[t
1-period,t1+period] 时间段内的第二当前位置信息track
mayill
。应当理解,track
mayill
与track
ill
形式一致,四叉树存取模块利用矩形快速安全搜索算法,依次判断track
mayill
中每个第二当前墨卡托平面坐标(ex
mayill
,ey
mayill
)是否在矩形内;若否,则该非阳性病例不是密切接触者;若是,则进一步利用圆形快速安全搜索算法判断第二当前墨卡托平面坐标(ex
mayill
,ey
mayill
)是否在圆形风险区内;若是,则非阳性病例是密切接触者;若否,则非阳性病例不是密切接触者。
[0095]
从t1到tn不断推移,重复上述过程得到各个时刻的密切接触者后,将最终筛选得到的所有密切接触者的uuid返回给疾控流调组织,疾控流调组织根据密切接触者的用户标识通知对应的智能终端。
[0096]
进一步地,本实施例对矩形快速安全搜索算法和圆形快速安全搜索算法加以说明。
[0097]
具体地,在矩形搜索具体算法中,输入参数包括:矩形的中心点坐标为 (x0,y0),密文下为(e(x0),e(y0)),待筛选点的坐标为(x,y),密文下为 (e(x),e(y)),矩形的长为length,宽为width,根据长宽值可以获取到常量这些常量主要用于后期确定矩形坐标范围。
[0098]
在明文下,只要(x0,y0)和(x,y)满足以下条件即可判断为在矩形内:
[0099][0100][0101]
上述不等式也可以转化为:
[0102]
[0103][0104]
若输入满足上述条件,则返回true,否则返回false。
[0105]
密文下减法无法实现,但是可以转化为加法进行计算,即e(m1)+ e(-m2)=e(m
1-m2)。
[0106]
在密文下,需要满足以下条件:
[0107][0108][0109]
或者如下条件:
[0110][0111][0112]
若输入满足上述条件,则返回true,否则返回false。
[0113]
算法输出:
[0114]
如果(x,y)在以(x0,y0)为中心的矩形中,输出true;如果(x,y)不在以(x0,y0) 为中心的矩形中,输出false。
[0115]
对于圆形快速安全搜索具体算法,其输入包括圆心(x0,y0)、圆半径r和待判断点(x,y);
[0116]
在明文下,如果待判断点(x,y)在圆内或圆上,则满足以下条件,
[0117]
(x-x0)
·
(x-x0)+(y-y0)
·
(y-y0)≤r2[0118]
满足上述条件则点在圆内或圆上,输出true;否则,点在圆外,输出false。
[0119]
由于密文下只能做加法和乘法,故在密文下需满足以下条件:
[0120]
dec(e(x)
·
e(x)+e(y)
·
e(y)+e(x0)
·
e(x0)+e(y0)
·
e(y0))
[0121]
≤dec(r2+2*e(x0)*e(x)+2*e(y0)*e(y))
[0122]
如果满足上述条件,则点在圆内或圆上,输出true;如果不满足上述条件,则点在圆外,输出false。
[0123]
图4是本发明实施例提供的位置隐私保护的实时疾控流调方法的另一种示意图。如图4所示,当出现环境阳性时,疾控流调组织根据预设待筛选区域绘制凸多边形及该凸多边形的外接矩形;
[0124]
获取凸多边形的顶点坐标集合以及外接矩形顶点所在的x轴、y轴范围
[0125]
从四叉树中确定外接矩形顶点相交的第一节点,并确定第一节点对应的第一混淆节点;
[0126]
利用pshe加密算法对凸多边形的顶点坐标和points

rectangke
进行加密处理后,将加密后的凸多边形顶点坐标、加密后的points

rectangle
、预设开始时间 t
start
、预设终止时间t
end
和第一混淆节点发送至云服务器;
[0127]
云服务器确定[t
start
,t
end
]内经过外接矩形的所有非阳性病例的身份标识;
[0128]
获取第一混淆节点对应的待筛选当前位置信息,待筛选位置信息包括待筛选当前坐标;
[0129]
云服务器利用矩形快速安全搜索算法,判断待筛选当前坐标是否在矩形内;若否,则待筛选当前坐标对应的非阳性病例不是密切接触者;若是,则进一步利用凸多边形内外点安全判别算法判断待筛选当前坐标是否在凸多边形内;
[0130]
若是,则非阳性病例是密切接触者;若否,则非阳性病例不是密切接触者。
[0131]
具体地,在对环境阳性传播的密接进行筛查时,疾控流调组织根据预设待筛选区域划定凸多边形,可以得到沿顺时针方向的凸多边形的点集合points,
[0132][0133]
根据points可以获取此凸多边形的外接矩形的x和y轴的范围 points
rectangle

[0134]
然后,利用wgs84_to_mercator坐标转换算法将points和points
rectangle
转化为墨卡托平面坐标points
mercator
和再将points
mercator
和内的浮点型数据全部转化为整型,得到points

和points

rectangle

[0135]
其中,
[0136]
疾控流调组织根据points

rectangle
判断凸多边形的外接矩形相交的四叉树子节点。此处可以利用四叉树高效存取模块判断
[0137][0138][0139]
四个点所在四叉树节点,因此可以得到pointtree。
[0140]
pointtree=[subtree1,subtree2,

,subtreen]
[0141]
pointtree内包含了与凸多边形外接矩形有交集的子树节点,因为凸多边形的外接矩形包含凸多边形,所以,此处pointtree可以表示凸多边形占据的四叉树节点;
[0142]
疾控流调组织对获取的真实情况下的四叉树节点pointtree映射,即将真实情况下的四叉树与服务器端的不同结构的四叉树进行映射,得到第一混淆节点 pointtree

;其
中,pointtree

=[subtree
′1,subtree
′2,

,subtree
′n]。
[0143]
疾控流调组织利用pshe加密算法,对points

和points

rectangle
内的数据进行加密,得到epoints

和epoints

rectangle

[0144][0145][0146]
疾控流调组织划定特定的时间范围[t
start
,t
end
],t
start
和t
end
为整数形式的时间戳;
[0147]
疾控流调组织将上述的数据整理成json格式的数据
[0148]
sdata={
[0149]
"start_time":t
start
,
[0150]
"end_time":t
end
,
[0151]
"subtree":pointtree

,
[0152]
"points":epoints

,
[0153]
"rectangle":epoints

rectangle
}
[0154]
然后将数据sdata发送给云服务器,查询[t
start
,t
end
]时间段内经过points包围的凸多边形区域的所有人的uuid。
[0155]
云服务器接收来自疾控流调组织的数据sdata,根据pointtree

利用四叉树存取模块,取出在poimttree

内的所有节点数据,然后根据时间段[t
start
,t
end
] 筛选出在这段时间内的所有数据track
healthy
;云服务器针对track
healthy
的每一行数据中的(e(xj),e(yj)),采用矩形快速安全搜索算法,判断点 (e(xj),e(yj))是否在矩形points
rectangle
内,得到矩形内的数据表 track
rectangle
;云服务器针对track
rectangle
中每一行数据中的(e(xm),e(ym)),采用凸多边形内外点安全判别算法,判断(e(xm),e(ym))是否在epoints

围成的凸多边形内,如果在其中,则是密切接触者。最后得到所有密切接触者的 uuid——uuids;
[0156]
uuids=[uuid1,uuid2,uuid3,

]
[0157]
云服务器将uuids返回给疾控流调组织。
[0158]
下面,本实施例对凸多边形内外点安全判别算法进行说明。
[0159]
应当理解,基于向量内积法的凸多边形内外点安全判别算法主要用于判断点是否处于任意指定的凸多边形内。
[0160]
具体地,给定一个点和一条直线,可通过内积判断该点在直线的哪一侧;若则o点在的右侧,若则o点在的左侧,若则o点在上。以此类推,点o如果在凸多边形内或其边上,则满足:
[0161]
[0162][0163][0164][0165][0166]
对于凸多边形内外点安全判别算法,其输入包括待判断点o(x0,yo)和凸多边形顺时针点集area==[a(x1,y1),b(x2,y2),c(x3,y3),

,e(xn,yn)],输出为 true或false,true表示点在凸多边形内或边上,false反之。
[0167]
为了便于说明,以凸多边形是五边形的情况为例,其顶点按照顺时针顺序依次为:a(xa,ya),b(xb,yb),c(xc,yc),d(xd,yd),e(xe,ye)。
[0168]
在明文下需要满足下述条件:
[0169][0170][0171][0172][0173][0174][0175][0176][0177][0178][0179]
在明密文下需要满足下述条件:
[0180][0181]
[0182]
计算方式同和通过同样方式可以推导出对应的密文下表达式。
[0183]
如果点o(x0,yo)在以点集area包围的凸多边形内,即满足上述条件,则返回true;否则,则返回false。
[0184]
此外,本发明提供的流调方法还可以对现有阳性患者进行关联度溯源。
[0185]
图5是本发明实施例提供的位置隐私保护的实时疾控流调方法的另一种示意图。具体而言,如图5所示,疾控流调组织将已知阳性病例的uuids= [uuid1,uuid2,uuid3,

,uuidn]发送给云服务器,云服务器获取uuids内所有阳性患者的轨迹数据track
ill
;依次选择其中每一位患者的轨迹tracki和其它患者的轨迹track-i
,然后针对tracki的每一行数据中的时间ti做时间维度上的筛选,获取[t
i-period,ti+period]时间段内的所有数据利用的每一行数据的坐标和tracki中的第一行数据中的(e(xi),e(yi))进行圆形快速安全搜索算法,判断的每一行数据的坐标点是否在以(e(xi),e(yi))为圆心、半径为d
danger
的圆内。如果是,则说明这两位阳性病例可能存在感染关联。否则,则筛选tracki的下一行数据,直到tracki的最后一行为止;
[0186]
重复上述步骤直到筛选完所有的阳性患者,得到所有阳性患者的关联网络的边,并将其返回给疾控流调组织,疾控流调组织根据关联网,可得到所有患者的感染关系关联图。
[0187]
需要说明的是,在利用矩形、圆形和凸多边形快速安全筛选算法进行判断时,解密模块还需进行解密。示例性地,在判断点是否在上述矩形/圆形/凸多边形内时,对于大小判断操作需要进行解密判断,因为只有疾控流调组织具有加密私钥,故只有它能解密,因此需要将对应的数据发送至疾控流调组织,在其进行解密判断后,才可返回数据间的大小关系。
[0188]
通过上述各实施例可知,本发明的有益效果在于:
[0189]
(1)本发明基于疾控流调组织、云服务器和智能终端三方架构实现流调,智能终端对用户的当前位置信息及当前位置信息对应的四叉树节点信息加密后上传到云服务器,所有筛查任务均在云服务器端完成,疾控流调组织对中间过程进行辅助,但是云服务器无法获取用户具体真实数据,不仅解决了健康码数据隐私安全问题,也有利于提高筛查效率。
[0190]
(2)本发明的筛选功能由云服务器和疾控流调组织协调完成,可以解决健康码筛查效率低的问题。
[0191]
(3)本发明的智能终端可以在任何具有信号的地方实现位置信息上传,不存在只限定于封闭区域的问题,解决了健康码无法做到精确定位和筛查的问题。
[0192]
(4)本发明的智能终端只需要开启位置权限,解决了蓝牙接触日志需要同时开启位置权限和蓝牙的问题和长期开启蓝牙带来的安全问题。
[0193]
(5)本发明基于密文位置信息,可以实现针对固定区域筛查经过的用户,解决了蓝牙接触日志无法实现筛查因环境阳性而感染的人员。
[0194]
(6)本发明中的云服务器存储用户实时密文位置信息,所以在筛选时可以动态调整筛选发现,解决了蓝牙接触日志的无法动态调整时间阈值问题和“时空感染者筛查”方式不精确的问题。
[0195]
在本发明的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗
示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
[0196]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。此外,本领域的技术人员可以将本说明书中描述的不同实施例或示例进行接合和组合。
[0197]
尽管在此结合各实施例对本技术进行了描述,然而,在实施所要求保护的本技术过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
[0198]
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1