一种基于零知识证明的移动设备数据采集方法及系统
文献发布时间:2023-06-19 12:24:27
技术领域
本发明涉及数据安全技术领域,特别是涉及一种基于零知识证明的移动设备数据采集方法及系统。
背景技术
随着物联网中隐私保护技术的发展,身份认证和隐私数据成为保护物联网安全的一道重要屏障。身份认证作为一种确认身份、授权的方式,被广泛应用于通信、金融等方面。通过身份认证,可以确认用户是否拥有某种资源的访问权限或使用权限。一种常用的身份认证方法是利用一个在线的身份提供者或证书发行者,用户每次进行身份验证时,发行人为用户身份的各种属性提供证明,但要求发行人时刻在线,增加了系统的负担。另外一种典型方法是用户通过离线的证书授权中心(certificate authority,简称CA)预先得到关于各种属性的数字证书,然后直接向验证者出示数字证书,整个认证过程无需CA的参与。数字证书使用密码学技术,产生标识各方用户身份信息的一串数字,通过公开算法在互联网上提供验证用户身份的方式,数字证书由CA颁发,任何人可在网上验证数字证书的有效性。
采用匿名身份认证技术可以解决用户身份隐私泄露的问题,但是大多数方案未考虑利用身份信息对数据在边缘网关进行分析处理问题。同时,因物联网中移动终端节点一般通过边缘网关将数据传输到中心服务器处,但是边缘网关同时常常部署在不安全的物理环境中,为半可信节点,因此,数据传输存在不安全问题。
发明内容
本发明的目的是提供一种基于零知识证明的移动设备数据采集方法及系统,提高了数据传输的安全性。
为实现上述目的,本发明提供了如下方案:
一种基于零知识证明的移动设备数据采集方法,包括:
通过移动终端节点生成公钥和私钥,并将公钥和所述移动终端节点的属性发送到证书授权中心;
所述证书授权中心将向所述移动终端节点颁发公钥证书;
当中心服务器接收到所述移动终端节点的公钥证书时,使所述中心服务器向所述证书授权中心验证所述移动终端节点的属性,并为所述移动终端节点制定访问控制策略;
将所述访问控制策略发送到边缘网关;
通过中心服务器为边缘网关生成证明密钥和验证密钥,并将所述证明密钥通过广播的方式发送到移动终端节点;
通过移动终端节点采集数据;所述移动终端节点采集的数据的属性与所述移动终端节点的属性对应;
根据所述采集数据的类型从设定的属性集合中提取数据属性,提取的数据属性构成当前访问属性集合;
对所述当前访问属性集合中各属性进行编码,获得编码属性集合;
根据所述编码属性集合、所述证明密钥和所述访问控制策略生成零知识证明;
通过边缘网关利用所述验证密钥判断所述零知识证明是否有效;
若无效,则停止所述移动终端节点进行数据上传;
若有效,则使所述移动终端节点对采集数据进行同态加密;
通过边缘网关并将同态加密后的数据根据隐藏属性进行聚合后上传到所述中心服务器;所述隐藏属性通过所述零知识证明确定。
可选地,所述通过边缘网关并将同态加密后的数据根据隐藏属性进行聚合后上传到所述中心服务器,具体包括:
将所述边缘网关接收到的多个零知识证明中的最大零知识证明值和最小零知识证明值做差,获得最大差值;
根据所述最大差值、最大零知识证明值和最小零知识证明值确定多个参考基值,各所述参考基值对应设置一个差异阈值;
依次将多个零知识证明与各所述参考基值进行比较,若零知识证明与参考基值的差值在与参考基值对应的差异阈值范围内,则将该零知识证明对应的移动终端节点同态加密后的数据归类于该参考基值,直到所有移动终端节点同态加密后的数据均进行归类;
将归类后的同态加密数据上传到所述中心服务器。
可选地,所述通过中心服务器为边缘网关生成证明密钥和验证密钥,并将所述证明密钥通过广播的方式发送到移动终端节点,具体包括:
根据R1CS电路库自动生成电路参数,电路参数包括k、N、M、A、B、C和D,其中,k表示输出参数的长度,N表示R1CS电路输入线的个数,M表示电路的门个数,A、B和C均为(N+1)×M的矩阵,A表示第一系数矩阵,B表示第二系数矩阵,C表示第三系数矩阵,D表示电路参数;
生成第一随机数、第二随机数、第三随机数和第四随机数;
根据电路参数、所述第一随机数、所述第二随机数、第三随机数和第四随机数计算第一中间编码参数、第二中间编码参数和第三中间编码参数;所述第一中间编码参数表示为K
根据所述第一随机数、所述第二随机数、所述第三随机数、所述第四随机数、所述第一中间编码参数、所述第二中间编码参数和所述第三中间编码参数确定所述证明密钥和所述验证密钥,所述证明密钥表示为
可选地,所述根据所述编码属性集合、所述证明密钥和所述访问控制策略生成零知识证明,具体包括:
根据所述第一随机数、所述第二随机数、所述第三随机数、所述第四随机数、所述第一中间编码参数、所述第二中间编码参数、所述第三中间编码参数、所述证明密钥、所述访问控制策略和所述编码属性集合生成零知识证明,所述零知识证明表示为π={[
其中,
可选地,通过边缘网关利用所述验证密钥判断所述零知识证明是否有效,具体包括:
通过判断公式e([
本发明公开了一种基于零知识证明的移动设备数据采集系统,包括:中心服务器、边缘网关、移动终端节点和证书授权中心;所述中心服务器与多个所述边缘网关连接;
所述移动终端节点用于生成一对密钥,所述移动终端节点生成的密钥包括公钥和私钥,所述移动终端节点用于将生成的公钥和所述移动终端节点的属性发送到所述证书授权中心,所述证书授权中心根据接收到的所述移动终端节点的公钥和所述移动终端节点的属性向所述移动终端节点颁发公钥证书;所述公钥证书包括属性和公钥;
所述中心服务器用于当接收到所述移动终端节点的公钥证书时,向所述证书授权中心验证所述移动终端节点的属性,并为所述移动终端节点制定访问控制策略;所述证书授权中心将所述移动终端节点的访问控制策略发送到所述中心服务器和所述边缘网关;所述中心服务器还用于生成证明密钥和验证密钥,并将所述证明密钥通过广播的方式发送到移动终端节点;
所述移动终端节点用于采集数据,所述移动终端节点采集的数据的属性与所述移动终端节点的属性对应;所述移动终端节点根据所述采集数据的类型从设定的属性集合中提取数据属性,提取的数据属性构成当前访问属性集合;所述移动终端节点对所述当前访问属性集合中各属性进行编码,获得编码属性集合;所述移动终端节点根据所述编码属性集合、所述证明密钥和所述访问控制策略生成零知识证明,并将生成的零知识证明发送到所述边缘网关;所述移动终端节点还用于将采集的数据进行同态加密;
所述边缘网关利用所述验证密钥对接收到的零知识证明进行验证,若验证有效,则将所述移动终端节点同态加密后的数据根据隐藏属性进行聚合后上传到所述中心服务器;所述隐藏属性通过所述零知识证明确定。
可选地,所述边缘网关还用于将所述边缘网关接收到的多个零知识证明中的最大零知识证明值和最小零知识证明值做差,获得最大差值;根据所述最大差值、最大零知识证明值和最小零知识证明值确定多个参考基值,各所述参考基值对应设置一个差异阈值;依次将多个零知识证明与各所述参考基值进行比较,若零知识证明与参考基值的差值在与参考基值对应的差异阈值范围内,则将该零知识证明对应的移动终端节点同态加密后的数据归类于该参考基值,直到所有移动终端节点同态加密后的数据均进行归类;将归类后的同态加密数据上传到所述中心服务器。
可选地,所述移动终端节点在进入所述边缘网关的通信范围内时,所述移动终端节点利用所述移动终端节点的私钥对不带属性信息的证书进行签名,将签名后的证书发送到所述边缘网关,所述边缘网关接收到所述移动终端节点签名后的证书后验证所述移动终端节点采集的数据是否能够传输到所述中心服务器。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明采用同态加密技术,实现数据从移动终端节点到中心服务器之间的安全传输,确保半可信的边缘网关不能分析和窃取移动终端节点的数据内容,利用移动终端节点构造的零知识证明,对数据类型进行聚类,对不同类型的同态加密数据进行全同态分析处理,提高相同类型数据的聚合效果,可以有效地降低网关到中央服务器之间的数据传输量,提高边缘网关的利用率,提升物联网的整体性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一种基于零知识证明的移动设备数据采集方法流程示意图一;
图2为本发明一种基于零知识证明的移动设备数据采集方法流程示意图二;
图3为本发明一种基于零知识证明的移动设备数据采集系统结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1为本发明一种基于零知识证明的移动设备数据采集方法流程示意图一,图2为本发明一种基于零知识证明的移动设备数据采集方法流程示意图二,如图1-2所示,一种基于零知识证明的移动设备数据采集方法包括以下步骤:
步骤101:通过移动终端节点生成公钥和私钥,并将公钥和移动终端节点的属性发送到证书授权中心;
步骤102:证书授权中心将向移动终端节点颁发公钥证书;
步骤103:当中心服务器接收到移动终端节点的公钥证书时,使中心服务器向证书授权中心验证移动终端节点的属性,并为移动终端节点制定访问控制策略;
步骤104:将访问控制策略发送到边缘网关;
步骤105:通过中心服务器为边缘网关生成证明密钥和验证密钥,并将证明密钥通过广播的方式发送到移动终端节点;
步骤106:通过移动终端节点采集数据;移动终端节点采集的数据的属性与移动终端节点的属性对应;
步骤107:根据采集数据的类型从设定的属性集合中提取数据属性,提取的数据属性构成当前访问属性集合;
步骤108:对当前访问属性集合中各属性进行编码,获得编码属性集合;
步骤109:根据编码属性集合、证明密钥和访问控制策略生成零知识证明;
步骤110:通过边缘网关利用验证密钥判断零知识证明是否有效;
若无效,则执行步骤111。
步骤111:停止移动终端节点进行数据上传。具体为停止零知识证明对应的移动终端节点进行数据上传。
若有效,则执行步骤112。
步骤112:使移动终端节点对采集数据进行同态加密;
步骤113:通过边缘网关并将同态加密后的数据根据隐藏属性进行聚合后上传到中心服务器;隐藏属性通过零知识证明确定。边缘网关接收多个移动终端节点的同态加密数据。
其中,步骤113具体包括:
将边缘网关接收到的多个零知识证明中的最大零知识证明值和最小零知识证明值做差,获得最大差值;
根据最大差值、最大零知识证明值和最小零知识证明值确定多个参考基值,各参考基值对应设置一个差异阈值;
依次将多个零知识证明与各参考基值进行比较,若零知识证明与参考基值的差值在与参考基值对应的差异阈值范围内,则将该零知识证明对应的移动终端节点同态加密后的数据归类于该参考基值,直到所有移动终端节点同态加密后的数据均进行归类;
将归类后的同态加密数据上传到中心服务器。
其中,步骤105具体包括:
根据R1CS电路库自动生成电路参数,电路参数包括k、N、M、A、B、C和D,其中,k表示输出参数的长度,N表示R1CS电路输入线的个数,M表示电路的门个数,A、B和C均为(N+1)×M的矩阵,A表示第一系数矩阵,B表示第二系数矩阵,C表示第三系数矩阵,D表示电路参数;
生成第一随机数、第二随机数、第三随机数和第四随机数;
根据电路参数、第一随机数、第二随机数、第三随机数和第四随机数计算第一中间编码参数、第二中间编码参数和第三中间编码参数;第一中间编码参数表示为K
根据第一随机数、第二随机数、第三随机数、第四随机数、第一中间编码参数、第二中间编码参数和第三中间编码参数确定证明密钥和验证密钥,证明密钥表示为
其中,步骤109具体包括:
根据第一随机数、第二随机数、第三随机数、第四随机数、第一中间编码参数、第二中间编码参数、第三中间编码参数、证明密钥、访问控制策略和编码属性集合生成零知识证明,零知识证明表示为π={[
[
[
[
其中,[x*]
其中,步骤110具体包括:
通过判断公式e([
若e([
如图3所示,本发明还公开了一种基于零知识证明的移动设备数据采集系统,包括:中心服务器、边缘网关、移动终端节点和证书授权中心(CA);中心服务器与多个边缘网关连接。
中心服务器与多个半可信的边缘网关连接,每个边缘网关与多个移动节点连接。边缘服务器处于分布式的存在于环境中,不能保证所有的物理位置安全,同时需要和众多的移动终端节点连接,所以边缘网关更容易受到网络攻击和物理攻击,上述因素导致了变为网关时半可信或者不可信的。
将移动终端节点的属性用零知识证明隐藏,不可信的边缘网关不能获取移动终端节点的属性,可以根据零知识证明验证移动终端节点的访问权限。同时,移动终端节点将采集的数据进行同态加密,上传到边缘网关。边缘网关根据移动终端节点的隐藏属性对加密数据进行聚合处理。其中,属性是移动终端节点自身的性质,数据是移动终端节点采集的数据。
移动终端节点用于生成一对密钥,移动终端节点生成的密钥包括公钥和私钥,移动终端节点用于将生成的公钥和移动终端节点的属性发送到证书授权中心,证书授权中心根据接收到的移动终端节点的公钥和移动终端节点的属性向移动终端节点颁发公钥证书;公钥证书包括属性和公钥。
中心服务器用于当接收到移动终端节点的公钥证书时,向证书授权中心验证移动终端节点的属性,并为移动终端节点制定访问控制策略;证书授权中心将移动终端节点的访问控制策略发送到中心服务器和边缘网关;中心服务器还用于生成证明密钥和验证密钥,并将证明密钥通过广播的方式发送到移动终端节点。
移动终端节点用于采集数据,移动终端节点采集的数据的属性与移动终端节点的属性对应;移动终端节点根据采集数据的类型从设定的属性集合中提取数据属性,提取的数据属性构成当前访问属性集合;移动终端节点对当前访问属性集合中各属性进行编码,获得编码属性集合;移动终端节点根据编码属性集合、证明密钥和访问控制策略生成零知识证明,并将生成的零知识证明发送到边缘网关;移动终端节点还用于将采集的数据进行同态加密;
边缘网关利用验证密钥对接收到的零知识证明进行验证,若验证有效,则将移动终端节点同态加密后的数据根据隐藏属性进行聚合后上传到中心服务器;隐藏属性通过零知识证明确定。
边缘网关还用于将边缘网关接收到的多个零知识证明中的最大零知识证明值和最小零知识证明值做差,获得最大差值;根据最大差值、最大零知识证明值和最小零知识证明值确定多个参考基值,各参考基值对应设置一个差异阈值;依次将多个零知识证明与各参考基值进行比较,若零知识证明与参考基值的差值在与参考基值对应的差异阈值范围内,则将该零知识证明对应的移动终端节点同态加密后的数据归类于该参考基值,直到所有移动终端节点同态加密后的数据均进行归类;将归类后的同态加密数据上传到中心服务器。
移动终端节点在进入边缘网关的通信范围内时,移动终端节点利用移动终端节点的私钥对不带属性信息的证书进行签名(移动终端节点在使用证书的时候可以去掉证书中附加的属性信息),将签名后的证书发送到边缘网关,边缘网关接收到移动终端节点签名后的证书后验证移动终端节点采集的数据是否能够传输到中心服务器。
在网络中,移动终端节点是可以移动的,在不同时刻可能与不同的边缘网关相连接。每个移动终端节点具有不同的属性,所有对整个网络具有不同的访问权限。针对移动终端节点具有不同的属性信息,其自身利用传感器采集的数据也是不同的。移动终端节点采集的数据类型与属性具有对应关系。边缘网关的位置是固定不动,在不同时刻,所接入的移动终端节点不同。移动终端节点在离开当前边缘网关的通信范围时,断开通信连接。移动终端节点进入到一个边缘网关的通信范围时,进行身份验证,保证通信的合法性。边缘网关负责将移动终端节点发送来的数据根据隐藏属性进行相同属性进行分类聚合处理,然后发送给中心服务器。中心服务器最终对所有采集数据进行最终分析处理,并存储。
移动终端节点在接入边缘网关时,利用自身私钥对不带属性信息的证书进行签名,将签名后的证书发送给边缘网关。边缘网关验证证书的合法性,证明移动终端节点具有接入系统的能力。然后进行零知识证明过程,验证移动终端节点的访问权限。零知识证明是对半可信的边缘网关隐藏移动终端节点具体的属性信息。边缘网关不能获取移动终端节点的具体的属性信息,进而不能判断移动终端节点在执行什么样的任务。同时边缘网关可以根据构造的零知识证明验证移动终端节点的属性集合满足边缘网关的访问控制结构,允许移动终端节点采集的数据上传到中心服务器。同时如果移动终端节点的属性集合不满足缘网关的访问控制结构,证明移动终端节点无接入边缘网关的权限,属于非合法节点。
零知识证明的具体过程如下:
1、初始化节点:可信的中心服务器为边缘网关和网关通信访问的节点生成必备的公共参数:证明密钥pk和验证密钥vk,并将证明密钥pk广播给移动终端节点,方便以后零知识证明使用。如果移动终端节点是在公共参数生成后加入边缘网关,那么移动终端节点主动从边缘网关获取公共参数。公共参数具有周期性,当周期时间到时,更新公共参数。提高系统安全性。
生成零知识证明的证明密钥和验证密钥:函数为:
首先生成R1CS电路参数,根据R1CS电路库自动生成:Ф={k,N,M,A,B,C,D},k表示输出参数的长度,N表示R1CS电路输入线的个数,N与A、B和C相关,M表示电路的门个数,A、B和C均为(N+1)×M的矩阵,A、B和C表示电路的输入的三个系数矩阵,D表示电路参数。
生成随机数α、β、γ和δ。
根据电路参数计算:K
K
其中,α、β、γ和δ为随机数。因此对应的证明密钥和验证密钥:
2、证明阶段:移动终端节点采集数据M,根据当前时刻采集数据M的类型,提取属性集合中对应的属性,称之为当前访问属性集合
生成零知识证明的证明:
z=1||
[
[
[
[
π={[
3、验证阶段:边缘网关根据访问策略
验证零知识证明中证明是否有效:
判断e([
当移动终端节点的访问权限验证通过后,对自身采集的数据进行同态加密。
同态加密能够保证在不解密的前提下可以对密文数据直接进行运算,同时运算结构解密后与明文上进行相同运算得到的结果相同。即对于任意操作
其中操作
同态加密公钥采用中心服务器的公钥。将同态加密后的数据传输到边缘网关。
边缘网关收集当前时刻其通信范围内所有移动终端节点上传的数据。此时用零知识证明中隐藏的属性集合作为数据分类的标准。然后边缘网关可以根据隐藏的属性对具有相同属性的加密数据进行分类,边缘网关对当前时刻所有加密数据对应的属性零知识证明进行聚合处理,具有相似属性集合的同态加密数据进行同态运算,得到聚合结果。首先度量有序属性零知识证明的最大差异。然后确定多个参考零知识证明基值和零知识证明的差异阈值。将每一个有序属性零知识证明分别与参考知识证明基值进行比较,如果小于零知识证明的差异阈值,将移动终端节点采集的数据归入此分类。如果大于零知识证明的差异阈值,则继续比较。直到将当前所有移动终端节点的数据进行聚类,然后对每个类别的数据进行数据分析处理,其处理过程遵循全同态原则。聚类分析是把大量的无序离散的数据点的集合分成若干类,使得同一类中的数据点达到最大程度的相似,不同类之间的数据点达到最大程度的不同。
将处理后的加密数据上传到中心服务器,中心服务器用自身的私钥进行解密,得到处理后的数据。其相当于明文数据的处理结果。整个过程中,边缘网关不能获取移动终端节点的属性集合,但是能够证明移动终端节点具有访问边缘网关的权限。同时,移动终端节点采集的数据采用加密方式,边缘网关只具有同态计算能力,无法获取数据的明文信息。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
- 一种基于零知识证明的移动设备数据采集方法及系统
- 一种虚拟移动设备的数据采集方法及系统