物联网数据认证方法、装置、计算机设备及存储介质与流程

文档序号:21886195发布日期:2020-08-18 17:18阅读:199来源:国知局
物联网数据认证方法、装置、计算机设备及存储介质与流程

本发明涉及物联网,更具体地说是指物联网数据认证方法、装置、计算机设备及存储介质。



背景技术:

物联网是指利用传感器设备、无线传感器网络,借助人工智能的方法和数据挖掘等技术,而实现的一种新的数据服务机制。物联网以其普适性、高效性和实时性,在近年来在公共管理、工业生产和智慧生活等各个领域得到了广泛的部署和应用。例如,在城市交通管理领域,物联网可以帮助城市管理者更加清晰地了解各条主干道路上的车流量,从而制定更科学的交通政策和出勤预警,避免交通拥堵。在工业生产领域,在物联网的支持下,企业管理人员既可以实时掌握企业在原料采购、生产、运输、销售直至保费回收等各个环节中的当前状况,也可以根据数据服务商提供的处理后的数据制定最优的企业战略,有力地提升了企业的收益和管理效率。在日常生活中,各种穿戴式设备实时采集病人的健康数据,如心率、血压等,有助于医院医生及时了解病人当前的健康数据,不仅提高了治疗效率和突发疾病病人的生存率,也为居家治疗提供了可能。

尽管物联网技术存在上述的巨大优势,且具有广阔的应用前景。但物联网中的原始数据采集,非常依赖于感知层中的感知设备,包括传感器、智能终端、rfid扫码枪、监控摄像头等。在某些物联网应用中,用户往往也通过微型终端来接收数据,由于广泛部署或便携的需要和电力、空间体积等的限制,这些感知设备都存在计算能力弱的问题,也就是说,这些设备需要较多的时间去处理复杂计算。另一方面,传感器的大量广泛分布,使得对传感器的管理存在困难。在这种情况下,恶意的攻击者可能会冒充某个或多个传感器,向用户或数据服务商发送虚假数据,导致用户蒙受经济损失。

为解决上述的问题,近年来有一些学者尝试利用数字签名技术来实现数据认证,即要求每个数据发送方用自己的私有密钥签署所要发送的数据。数据接收方利用公钥验证该数据是否确实由发送方发出。除非恶意攻击者盗取了发送方的私有密钥,否则无法冒充发送方的身份。但现有的基于ecc(错误检查和纠正,errorcorrectingcode)的数字签名算法,均存在大量的复杂计算,造成了物联网中感知设备、微型接收设备有限的计算能力和数字签名算法对大量复杂计算的需求之间的冲突,增大了感知设备和接收设备计算量,增大了计算时间,且安全性能低。

因此,有必要设计一种新的认证方法,实现降低数据发送方和数据接收方的计算量,减小计算时间,具有更高的安全等级。



技术实现要素:

本发明的目的在于克服现有技术的缺陷,提供物联网数据认证方法、装置、计算机设备及存储介质。

为实现上述目的,本发明采用以下技术方案:物联网数据认证方法,包括:创建系统参数;

定义一个访问结构,并根据所述系统参数创建与所述访问结构相关的第二服务器的部分签名私钥以及所述访问结构下的用户签名私钥;

反馈与所述访问结构相关的第二服务器的部分签名私钥至第二服务器,其中,与所述访问结构相关的第二服务器的部分签名私钥用于触发第二服务器对数据发送方获取的初始数据以及属性集进行签名,以得到第一部分签名,并由第二服务器发送第一部分签名至数据发送方;

反馈所述访问结构下的用户签名私钥至数据发送方,其中,所述访问结构下的用户签名私钥用于触发数据发送方根据所述第一部分签名对获取的初始数据进行签名,以得到完整签名,并由数据发送方发送完整签名至数据接收方,当数据接收方对完整签名后,数据接收方进行转换后形成转换签名并发送至第二服务器进行验证,以得到验证结果,以供数据接收方根据验证结果进行初始数据处理。

其进一步技术方案为:所述创建系统参数,包括:

输入安全参数,生成两个素数阶的乘法循环群;

对需要传送的消息字符串从乘法循环群中选择对应的一组随机数,以得到第一随机数,并从乘法循环群中选取一个随机数,以得到第二随机数,根据第一随机数以及第二随机数定义一个散列函数;

构建属性全集,并对属性全集内的每个属性均从乘法循环群中选取对应的随机数,以得到第三随机数,设置外包计算的辅助属性,并对外包计算的辅助属性从乘法循环群中选取一个随机数,以得到第四随机数;

定义给一个阶数为乘法循环群的阶数减一的整数群,并从整数群中选取两个随机数,以得到第五随机数以及第六随机数,计算第五随机数以及第六随机数之和,以得到总和,计算乘法循环群的生成元的总和次幂与自然常数之积,以得到乘积;

整合所述乘法循环群、乘法循环群的生成元、自然常数、散列函数、乘积、第二随机数以及第四随机数,以得到系统参数。

其进一步技术方案为:两个素数阶的乘法循环群存在双线性映射关系。

其进一步技术方案为:所述定义一个访问结构,并根据所述系统参数创建与所述访问结构相关的第二服务器的部分签名私钥以及所述访问结构下的用户签名私钥,包括:

定义一个访问结构,并根据所述访问结构构建一个矩阵,对矩阵内的每一行数值选择一个与属性全集中的属性对应的标签函数;

从所述整数群内选择若干个随机数,以得到第七随机数,利用第七随机数定义一个向量,并根据所述向量、标签函数以及矩阵计算因子,以得到标签因子,并对矩阵的每一行数值从整数群内选取随机数,以得到第八随机数,对外包计算的辅助属性从整数群内选取一个随机数,以得到第九随机数;

从属性全集内剔除标签函数对应的属性,以得到中间属性;

根据乘法循环群的生成元、标签因子、第八随机数、第二随机数、第三随机数计算与中间属性相关的部分签名私钥,根据乘法循环群的生成元、第六随机数、第九随机数、第四随机数、第二随机数计算与外包计算的辅助属性相对应的部分签名私钥;

整合与中间属性相关的部分签名私钥、标签函数以及矩阵,以得到与所述访问结构相关的第二服务器的部分签名私钥,整合与外包计算的辅助属性相对应的部分签名私钥、标签函数以及矩阵,以得到所述访问结构下的用户签名私钥。

其进一步技术方案为:与所述访问结构相关的第二服务器的部分签名私钥用于触发第二服务器对数据发送方获取的初始数据以及属性集进行签名,以得到第一部分签名,并由第二服务器发送第一部分签名至数据发送方,包括:

由第二服务器定义一个集合,所述集合内的元素均满足标签函数属于属性集合,并求解∑k∈kwkφρ(k)=(1,0,...,0)关于wk的解,以得到第一数值,其中,φρ(k)为标签因子,k为集合,k为集合的元素;

由第二服务器从整数群中选取两个随机数,以得到第十随机数以及第十一随机数;

由第二服务器根据第十一随机数、第十随机数、第一数值、与中间属性相关的部分签名私钥、第三随机数以及第二随机数生成第一部分签名,并由第二服务器发送第一部分签名至数据发送方。

其进一步技术方案为:所述访问结构下的用户签名私钥用于触发数据发送方根据所述第一部分签名对获取的初始数据进行签名,以得到完整签名,并由数据发送方发送完整签名至数据接收方,当数据接收方对完整签名后,数据接收方进行转换后形成转换签名并发送至第二服务器进行验证,以得到验证结果,以供数据接收方根据验证结果进行初始数据处理,包括:

数据发送方从整数群内选取随机数,以得到第十二随机数以及第十三随机数;

数据发送方根据所述访问结构下的用户签名私钥、第十三随机数以及第十二随机数,对获取的初始数据进行签名,以得到完整签名,并由数据发送方发送完整签名至数据接收方;

当数据接收方对完整签名后,数据接收方设置转换密钥,利用转换密钥对完整签名进行转换后,形成转换签名;

数据接收方发送至第二服务器进行验证,以得到验证结果,以供数据接收方根据验证结果进行初始数据处理。

其进一步技术方案为:所述数据接收方发送至第二服务器进行验证,以得到验证结果,以供数据接收方根据验证结果进行初始数据处理,包括:

数据接收方计算中间签名;

数据接收方判断所述验证结果与所述中间签名是否一致;

若所述验证结果与所述中间签名一致,则数据接收方接收初始数据;

若所述验证结果与所述中间签名不一致,则数据接收方丢弃初始数据。

本发明还提供了物联网数据认证装置,包括:

参数创建单元,用于创建系统参数;

定义单元,用于定义一个访问结构,并根据所述系统参数创建与所述访问结构相关的第二服务器的部分签名私钥以及所述访问结构下的用户签名私钥;

第一反馈单元,用于反馈与所述访问结构相关的第二服务器的部分签名私钥至第二服务器,其中,与所述访问结构相关的第二服务器的部分签名私钥用于触发第二服务器对数据发送方获取的初始数据以及属性集进行签名,以得到第一部分签名,并由第二服务器发送第一部分签名至数据发送方;

第二反馈单元,用于反馈所述访问结构下的用户签名私钥至数据发送方,其中,所述访问结构下的用户签名私钥用于触发数据发送方根据所述第一部分签名对获取的初始数据进行签名,以得到完整签名,并由数据发送方发送完整签名至数据接收方,当数据接收方对完整签名后,数据接收方进行转换后形成转换签名并发送至第二服务器进行验证,以得到验证结果,以供数据接收方根据验证结果进行初始数据处理。

本发明还提供了一种计算机设备,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法。

本发明还提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现上述的方法。

本发明与现有技术相比的有益效果是:本发明通过对每个数据发送方设定一个描述性的属性集合,并基于属性进行需要发送数据的签名,基于椭圆曲线上的离散对数进行签名,具有更高的安全等级,由第二服务器进行签名处理,可降低数据发送方和数据接收方的计算量,减小计算时间,数据接收方仅能根据属性集合判断消息来自于一个符合条件的设备或用户,保护了数据发送方的身份隐私或感知设备的具体编号。

下面结合附图和具体实施例对本发明作进一步描述。

附图说明

为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的物联网数据认证方法的应用场景示意图;

图2为本发明实施例提供的物联网数据认证方法的流程示意图;

图3为本发明实施例提供的物联网数据认证方法的子流程示意图;

图4为本发明实施例提供的物联网数据认证方法的子流程示意图;

图5为本发明实施例提供的物联网数据认证装置的示意性框图;

图6为本发明实施例提供的物联网数据认证装置的参数创建单元的示意性框图;

图7为本发明实施例提供的物联网数据认证装置的定义单元的示意性框图;

图8为本发明实施例提供的计算机设备的示意性框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

请参阅图1和图2,图1为本发明实施例提供的物联网数据认证方法的应用场景示意图。图2为本发明实施例提供的物联网数据认证方法的示意性流程图。该物联网数据认证方法应用于服务器中。该服务器用于管理属性,并根据访问控制结构所对应的属性集为数据发送方计算生成相应的签名私钥;该服务器与数据发送方、数据接收方以及第二服务器,其中,数据发送方可包括传感器、移动终端、rfid扫码枪或者终端等,数据发送方自动读取,或由用户手动在移动终端中输入数据,经签名后发送给数据接收方;数据接收方是终端,既可以是微型用户终端,也可以是数据服务提供商的接收设备,数据接收方接收来自数据发送方的数据,并验证数据的签名是否有效;第二服务器拥有强大的计算能力,能够帮助感知设备和接收设备完成数字签名生成和验证过程中的复杂运算。

图2是本发明实施例提供的物联网数据认证方法的流程示意图。如图2所示,该方法包括以下步骤s110至s140。

s110、创建系统参数。

在本实施例中,系统参数包括主密钥以及公钥。

在一实施例中,请参阅图3,上述的步骤s110可包括步骤s111~s115。

s111、输入安全参数,生成两个素数阶的乘法循环群。

在本实施例中,安全参数是指用于定义系统的安全系数;乘法循环群是指素数阶的放次幂的循环群。

另外,在本实施例中,两个素数阶的乘法循环群存在双线性映射关系。

具体地,输入安全参数λ,服务器生成两个素数p阶乘法循环群g,gt,设g是乘法循环群g的生成元,并定义双线性映射e:g×g→gt。

s112、对需要传送的消息字符串从乘法循环群中选择对应的一组随机数,以得到第一随机数,并从乘法循环群中选取一个随机数,以得到第二随机数,根据第一随机数以及第二随机数定义一个散列函数。

在本实施例中,设需要传送的消息字符串m长度为nm位,对于消息字符串m中的每一位,从乘法循环群g中选择对应的一组随机数即第一随机数,另从乘法循环群群g中选取一个第二随机数r0,随后定义一个散列函数其中mj表示消息字符串m中的第j个字节。

s113、构建属性全集,并对属性全集内的每个属性均从乘法循环群中选取对应的随机数,以得到第三随机数,设置外包计算的辅助属性,并对外包计算的辅助属性从乘法循环群中选取一个随机数,以得到第四随机数。

用一个数字作为一个属性的代号,所以设属性全集为u={1,2,...,l},对于其中的每个属性i,都从乘法循环群g中选取一个对应的第三随机数ri;随后,设置θ作为一个用于外包计算的辅助属性,该辅助属性并非一个真实的属性,其作用是作为外包计算的辅助参数,在不向服务器泄露用户的属性的同时也能完成外包计算,也就是用于在外包计算的同时防止外部服务器直接获取用户属性的特殊辅助参数。对于该辅助属性θ,同样从乘法循环群g中选取一个第四随机数rθ。

s114、定义给一个阶数为乘法循环群的阶数减一的整数群,并从整数群中选取两个随机数,以得到第五随机数以及第六随机数,计算第五随机数以及第六随机数之和,以得到总和,计算乘法循环群的生成元的总和次幂与自然常数之积,以得到乘积。

具体地,定义zp为一个阶为p-1的整数群,并从整数群zp中选取两个随机数α1,α2,其中,α1为第五随机数,α2为第六随机数,计算总和α=α1+α2以及乘积z=e(g,g)α

s115、整合所述乘法循环群、乘法循环群的生成元、自然常数、散列函数、乘积、第二随机数以及第四随机数,以得到系统参数。

在本实施例中,系统参数集合mpk=(g,gt,g,e,f,z,r0,{ri}i∈u∪θ),而系统主密钥msk=α被秘密持有。

上述的系统参数将属性考虑在内,利用基于属性签名的技术,使得数据接收方仅能根据属性集判断消息来自于一个符合条件的设备或用户,保护了数据发送方的身份隐私或感知设备的具体编号。

s120、定义一个访问结构,并根据所述系统参数创建与所述访问结构相关的第二服务器的部分签名私钥以及所述访问结构下的用户签名私钥。

在本实施例中,与所述访问结构相关的第二服务器的部分签名私钥是指用于触发第二服务器对数据发送方获取的初始数据以及属性集进行签名,以得到第一部分签名,并由第二服务器发送第一部分签名至数据发送方的私钥;

所述访问结构下的用户签名私钥是指用于触发数据发送方根据所述第一部分签名对获取的初始数据进行签名。

在一实施例中,请参阅图4,上述的步骤s120可包括步骤s121~s125。

s121、定义一个访问结构,并根据所述访问结构构建一个矩阵,对矩阵内的每一行数值选择一个与属性全集中的属性对应的标签函数。

具体地,定义φ为一个访问结构,访问结构φ是一个函数,它以一组用户属性作为输入,随后输出持有这些属性的用户是否具有访问资质的判定。服务器首先根据访问结构φ构造一个大小为nr×nc的矩阵m,nr、nc为常数,对于矩阵m的每一行k∈[1,nr],选择一个标签函数ρ(k),使得标签函数ρ(k)对应于属性全集u中的一个属性。

s122、从所述整数群内选择若干个随机数,以得到第七随机数,利用第七随机数定义一个向量,并根据所述向量、标签函数以及矩阵计算因子,以得到标签因子,并对矩阵的每一行数值从整数群内选取随机数,以得到第八随机数,对外包计算的辅助属性从整数群内选取一个随机数,以得到第九随机数。

具体地,首先从整数群zp中选择nc个第七随机数,分别为这些第七随机数用于秘密的分散和恢复。用一组第七随机数定义一个向量为每个标签函数ρ(k)计算标签因子其中对应着矩阵m的第k行。对于矩阵m的每一行k,从整数群zp中选取第八随机数xk,同时对于外包计算的辅助属性θ,同样从整数群zp中选取一个第九随机数xθ。

s123、从属性全集内剔除标签函数对应的属性,以得到中间属性。

在本实施例中,中间属性是指属性全集内没有与标签函数对应的属性。

s124、根据乘法循环群的生成元、标签因子、第八随机数、第二随机数、第三随机数计算与中间属性相关的部分签名私钥,根据乘法循环群的生成元、第六随机数、第九随机数、第四随机数、第二随机数计算与外包计算的辅助属性相对应的部分签名私钥。

具体地,对于除标签函数ρ(k)对应的属性外属性全集u中的所有属性i,服务器做如下计算来生成与这些属性相关的部分签名私钥:

其中,dk、dk′、d″k是指除标签函数ρ(k)对应的属性外属性全集u中的所有属性i相关的部分签名私钥;r0为第二随机数;rρ(k)为与标签函数相关的随机数;xk为第八随机数;φρ(k)为标签因子;g是乘法循环群g的生成元;ri为第三随机数;u为属性集合;ρ(k)为标签函数。

对于与外包计算的辅助属性θ,服务器计算与之相对应的部分签名私钥dθ以及d′θ,其中,g是乘法循环群g的生成元;r0为第二随机数;rθ为第四随机数,xθ为第九随机数。

s125、整合与中间属性相关的部分签名私钥、标签函数以及矩阵,以得到与所述访问结构相关的第二服务器的部分签名私钥,整合与外包计算的辅助属性相对应的部分签名私钥、标签函数以及矩阵,以得到所述访问结构下的用户签名私钥。

具体地,与访问结构φ相关的第二服务器的部分签名私钥psk(m,ρ)为其中,dk、dk′、d″k是指除标签函数ρ(k)对应的属性外属性全集u中的所有属性i相关的部分签名私钥;m为矩阵;k表示矩阵m的第k行,(m,ρ)是访问结构的实例化,标签函数ρ(k)对应于矩阵m的第k行。

访问结构φ下用户的签名私钥sk(m,ρ)为:sk(m,ρ)={dθ,d′θ,(m,ρ)}。dθ以及d′θ分别为与外包计算的辅助属性θ相对应的部分签名私钥;m为矩阵。

s130、反馈与所述访问结构相关的第二服务器的部分签名私钥至第二服务器,其中,与所述访问结构相关的第二服务器的部分签名私钥用于触发第二服务器对数据发送方获取的初始数据以及属性集进行签名,以得到第一部分签名,并由第二服务器发送第一部分签名至数据发送方。

在一实施例中,上述的步骤s130中对于第二服务器而言,可进行以下具体步骤:

由第二服务器定义一个集合,所述集合内的元素均满足标签函数属于属性集合,并求解∑k∈kwkφρ(k)=(1,0,...,0)关于wk的解,以得到第一数值,其中,φρ(k)为标签因子,k为集合,k为集合的元素;

由第二服务器从整数群中选取两个随机数,以得到第十随机数以及第十一随机数;

由第二服务器根据第十一随机数、第十随机数、第一数值、与中间属性相关的部分签名私钥、第三随机数以及第二随机数生成第一部分签名,并由第二服务器发送第一部分签名至数据发送方。

具体地,第二服务器计算生成关于数据发送方获取到的需要发送给数据接收方的数据m和属性集s的部分签名,其中s为某一数据发送方的属性集,且满足访问结构φ。第二服务器帮助数据发送方做复杂运算的过程,定义k为所有满足等式ρ(k)∈s的k的集合,其中,ρ(k)为标签函数,s为某一数据发送方的属性集;k为k的组成元素。并求使得等式∑k∈kwkφρ(k)=(1,0,...,0)成立的一组解{wk},φρ(k)为标签因子;从整数群zp中选取两个随机数μ,η,其中,μ为第十随机数,η为第十一随机数,第二服务器做以下的计算来生成部分签名δ′0、δ′2以及δ′1;其中,δ′2=gη,其中,k为k的组成元素,dk、dk′、d″k是指除标签函数ρ(k)对应的属性外属性全集u中的所有属性i相关的部分签名私钥;i为属性;s为某一数据发送方的属性集,ρ(k)为标签函数,r0为第二随机数,μ为第十随机数,f(m||φ)为散列函数,m为数据,φ为访问结构,η为第十一随机数,g是乘法循环群g的生成元。

第二服务器输出并向数据发送方发送第一部分签名δ′=(δ′0,δ′1,δ′2,m,φ),δ′0、δ′2以及δ′1为部分签名,m为数据,φ为访问结构。

s140、反馈所述访问结构下的用户签名私钥至数据发送方,其中,所述访问结构下的用户签名私钥用于触发数据发送方根据所述第一部分签名对获取的初始数据进行签名,以得到完整签名,并由数据发送方发送完整签名至数据接收方,当数据接收方对完整签名后,数据接收方进行转换后形成转换签名并发送至第二服务器进行验证,以得到验证结果,以供数据接收方根据验证结果进行初始数据处理。

在一实施例中,所述访问结构下的用户签名私钥用于触发数据发送方根据所述第一部分签名对获取的初始数据进行签名,以得到完整签名,并由数据发送方发送完整签名至数据接收方,当数据接收方对完整签名后,数据接收方进行转换后形成转换签名并发送至第二服务器进行验证,以得到验证结果,以供数据接收方根据验证结果进行初始数据处理,可包括:

数据发送方从整数群内选取随机数,以得到第十二随机数以及第十三随机数;

数据发送方根据所述访问结构下的用户签名私钥、第十三随机数以及第十二随机数,对获取的初始数据进行签名,以得到完整签名,并由数据发送方发送完整签名至数据接收方;

当数据接收方对完整签名后,数据接收方设置转换密钥,利用转换密钥对完整签名进行转换后,形成转换签名;

数据接收方发送至第二服务器进行验证,以得到验证结果,以供数据接收方根据验证结果进行初始数据处理。

具体地,数据接收方发送至第二服务器进行验证,以得到验证结果,以供数据接收方根据验证结果进行初始数据处理,可包括:

数据接收方计算中间签名;

数据接收方判断所述验证结果与所述中间签名是否一致;

若所述验证结果与所述中间签名一致,则数据接收方接收初始数据;

若所述验证结果与所述中间签名不一致,则数据接收方丢弃初始数据。

具体地,数据发送方在收到外部服务器发来的部分签名后,数据发送方只需要做少量运算即可生成关于数据m的完整签名。数据发送方从整数群zp中选取随机数x′θ以及η′,x′θ为第十二随机数,η′为第十三随机数,随后计算签名δ0、δ1以及δ2如下:以及δ2=δ′2·gη′,其中,δ′0、δ′1以及δ′2为第一部分签名的组成元素,f(m||φ)为散列函数,g是乘法循环群g的生成元,x′θ为第十二随机数,η′为第十三随机数,dθ以及d′θ分别为与外包计算的辅助属性θ相对应的部分签名私钥,m为数据,φ为访问结构,wθ为辅助解。数据发送方生成关于数据m的完整签名δ=(δ0,δ1,δ2,m,φ),并该完整签名其发送给数据接收方。

数据接收方在收到数据m及完整签名δ后,需要将完整签名δ发送给第二服务器进行预处理,但第二服务器不能直接获取签名,因此数据接收方需要对完整签名δ进行转换,转换签名的具体计算过程如下:数据接收方从整数群zp中选取随机数t,随后设置转换密钥tk为tk=t,并计算转换签名:其中,δ0以及δ1为完整签名的组成元素。数据接收方定义转换签名为并将其发送给第二服务器。

当收到转换签名后,第二服务器做签名验证的预处理计算。第二服务器将完成大部分本该由数据发送方执行的运算,具体过程如下。

第二服务器计算验证结果,即第二中间签名其中,为转换签名的组成元素,g是乘法循环群g的生成元,r0为第二随机数,s为某一数据发送方的属性集,θ为外包计算的辅助属性;i为属性,ri为第三随机数。第二服务器将第二中间签名k1发送给数据接收方。

当数据接收方接收到第二中间签名k1后,数据接收方验证关于数据m的有效性。由于大多数复杂计算已经外包给了第二服务器,因此只需要进行少量计算。

数据接收方计算接收端的中间签名k2=e(δ2t,f(m||φ))·zt,其中,f(m||φ)为散列函数,m为数据,φ为访问结构,t为转换密钥;δ2为完整签名的组成元素,z为乘积。

数据接收方检查第二中间签名k1、中间签名k2是否相等,也就是验证等式k1=k2是否成立。如果成立,则签名有效,数据接收方接收数据m,否则,签名无效,数据接收方将数据m丢弃。

签名方法基于椭圆曲线上的离散对数问题,具有更高的安全等级。

上述的物联网数据认证方法可以紧密结合当前的各种物联网应用的建设和部署中,包括智慧城市、智慧医疗、工业物联网等的,给这些以数据为核心的物联网应用提供可靠、快速且低资源消耗的数据认证服务,能够能将物联网中的数字签名和验证中的复杂运算安全外包给计算能力强大的第二服务器。不仅如此,为每一个数据发送方设定一个描述性的属性集,数据接收方可以通过设定属性控制结构,实现对数据发送方或数据用户自身的身份的匿名保护。

上述的物联网数据认证方法,通过对每个数据发送方设定一个描述性的属性集合,并基于属性进行需要发送数据的签名,基于椭圆曲线上的离散对数进行签名,具有更高的安全等级,由第二服务器进行签名处理,可降低数据发送方和数据接收方的计算量,减小计算时间,数据接收方仅能根据属性集合判断消息来自于一个符合条件的设备或用户,保护了数据发送方的身份隐私或感知设备的具体编号。

图5是本发明实施例提供的一种物联网数据认证装置300的示意性框图。如图5所示,对应于以上物联网数据认证方法,本发明还提供一种物联网数据认证装置300。该物联网数据认证装置300包括用于执行上述物联网数据认证方法的单元,该装置可以被配置于服务器中。具体地,请参阅图5,该物联网数据认证装置300包括参数创建单元301、定义单元302、第一反馈单元303以及第二反馈单元304。

参数创建单元301,用于创建系统参数;定义单元302,用于定义一个访问结构,并根据所述系统参数创建与所述访问结构相关的第二服务器的部分签名私钥以及所述访问结构下的用户签名私钥;第一反馈单元303,用于反馈与所述访问结构相关的第二服务器的部分签名私钥至第二服务器,其中,与所述访问结构相关的第二服务器的部分签名私钥用于触发第二服务器对数据发送方获取的初始数据以及属性集进行签名,以得到第一部分签名,并由第二服务器发送第一部分签名至数据发送方;第二反馈单元304,用于反馈所述访问结构下的用户签名私钥至数据发送方,其中,所述访问结构下的用户签名私钥用于触发数据发送方根据所述第一部分签名对获取的初始数据进行签名,以得到完整签名,并由数据发送方发送完整签名至数据接收方,当数据接收方对完整签名后,数据接收方进行转换后形成转换签名并发送至第二服务器进行验证,以得到验证结果,以供数据接收方根据验证结果进行初始数据处理。

在一实施例中,如图6所示,所述参数创建单元301包括安全参数输入子单元3011、函数定义子单元3012、全集构建子单元3013、计算子单元3014以及参数整合子单元3015。

安全参数输入子单元3011,用于输入安全参数,生成两个素数阶的乘法循环群函数定义子单元3012,用于对需要传送的消息字符串从乘法循环群中选择对应的一组随机数,以得到第一随机数,并从乘法循环群中选取一个随机数,以得到第二随机数,根据第一随机数以及第二随机数定义一个散列函数;全集构建子单元3013,用于构建属性全集,并对属性全集内的每个属性均从乘法循环群中选取对应的随机数,以得到第三随机数,设置外包计算的辅助属性,并对外包计算的辅助属性从乘法循环群中选取一个随机数,以得到第四随机数;计算子单元3014,用于定义给一个阶数为乘法循环群的阶数减一的整数群,并从整数群中选取两个随机数,以得到第五随机数以及第六随机数,计算第五随机数以及第六随机数之和,以得到总和,计算乘法循环群的生成元的总和次幂与自然常数之积,以得到乘积;参数整合子单元3015,用于整合所述乘法循环群、乘法循环群的生成元、自然常数、散列函数、乘积、第二随机数以及第四随机数,以得到系统参数。

在一实施例中,如图7所示,所述定义单元302包括结构定义子单元3021、因子计算子单元3022、筛选子单元3023、私钥计算子单元3024以及私钥整合子单元3025。

结构定义子单元3021,用于定义一个访问结构,并根据所述访问结构构建一个矩阵,对矩阵内的每一行数值选择一个与属性全集中的属性对应的标签函数;因子计算子单元3022,用于从所述整数群内选择若干个随机数,以得到第七随机数,利用第六随机数定义一个向量,并根据所述向量、标签函数以及矩阵计算因子,以得到标签因子,并对矩阵的每一行数值从整数群内选取随机数,以得到第八随机数,对外包计算的辅助属性从整数群内选取一个随机数,以得到第九随机数;筛选子单元3023,用于从属性全集内剔除标签函数对应的属性,以得到中间属性;私钥计算子单元3024,用于根据乘法循环群的生成元、标签因子、第八随机数、第二随机数、第三随机数计算与中间属性相关的部分签名私钥,根据乘法循环群的生成元、第六随机数、第九随机数、第四随机数、第二随机数计算与外包计算的辅助属性相对应的部分签名私钥;私钥整合子单元3025,用于整合与中间属性相关的部分签名私钥、标签函数以及矩阵,以得到与所述访问结构相关的第二服务器的部分签名私钥,整合与外包计算的辅助属性相对应的部分签名私钥、标签函数以及矩阵,以得到所述访问结构下的用户签名私钥。

具体地,上述的第一反馈单元303,用于由第二服务器定义一个集合,所述集合内的元素均满足标签函数属于属性集合,并求解∑k∈kwkφρ(k)=(1,0,...,0)关于wk的解,以得到第一数值,其中,φρ(k)为标签因子,k为集合,k为集合的元素;由第二服务器从整数群中选取两个随机数,以得到第十随机数以及第十一随机数;由第二服务器根据第十一随机数、第十随机数、第一数值、与中间属性相关的部分签名私钥、第三随机数以及第二随机数生成第一部分签名,并由第二服务器发送第一部分签名至数据发送方。

所述第二反馈单元304,用于数据发送方从整数群内选取随机数,以得到第十二随机数以及第十三随机数;数据发送方根据所述访问结构下的用户签名私钥、第十三随机数以及第十二随机数,对获取的初始数据进行签名,以得到完整签名,并由数据发送方发送完整签名至数据接收方;当数据接收方对完整签名后,数据接收方设置转换密钥,利用转换密钥对完整签名进行转换后,形成转换签名;数据接收方发送至第二服务器进行验证,以得到验证结果,以供数据接收方根据验证结果进行初始数据处理。具体地,数据接收方计算中间签名;据接收方判断所述验证结果与所述中间签名是否一致;若所述验证结果与所述中间签名一致,则数据接收方接收初始数据;若所述验证结果与所述中间签名不一致,则数据接收方丢弃初始数据。

需要说明的是,所属领域的技术人员可以清楚地了解到,上述物联网数据认证装置300和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。

上述物联网数据认证装置300可以实现为一种计算机程序的形式,该计算机程序可以在如图8所示的计算机设备上运行。

请参阅图8,图8是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备500服务器,其中,服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。

参阅图8,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。

该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032包括程序指令,该程序指令被执行时,可使得处理器502执行一种物联网数据认证方法。

该处理器502用于提供计算和控制能力,以支撑整个计算机设备500的运行。

该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种物联网数据认证方法。

该网络接口505用于与其它设备进行网络通信。本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下步骤:

创建系统参数;定义一个访问结构,并根据所述系统参数创建与所述访问结构相关的第二服务器的部分签名私钥以及所述访问结构下的用户签名私钥;反馈与所述访问结构相关的第二服务器的部分签名私钥至第二服务器,其中,与所述访问结构相关的第二服务器的部分签名私钥用于触发第二服务器对数据发送方获取的初始数据以及属性集进行签名,以得到第一部分签名,并由第二服务器发送第一部分签名至数据发送方;反馈所述访问结构下的用户签名私钥至数据发送方,其中,所述访问结构下的用户签名私钥用于触发数据发送方根据所述第一部分签名对获取的初始数据进行签名,以得到完整签名,并由数据发送方发送完整签名至数据接收方,当数据接收方对完整签名后,数据接收方进行转换后形成转换签名并发送至第二服务器进行验证,以得到验证结果,以供数据接收方根据验证结果进行初始数据处理。

在一实施例中,处理器502在实现所述创建系统参数步骤时,具体实现如下步骤:

输入安全参数,生成两个素数阶的乘法循环群;对需要传送的消息字符串从乘法循环群中选择对应的一组随机数,以得到第一随机数,并从乘法循环群中选取一个随机数,以得到第二随机数,根据第一随机数以及第二随机数定义一个散列函数;构建属性全集,并对属性全集内的每个属性均从乘法循环群中选取对应的随机数,以得到第三随机数,设置外包计算的辅助属性,并对外包计算的辅助属性从乘法循环群中选取一个随机数,以得到第四随机数;定义给一个阶数为乘法循环群的阶数减一的整数群,并从整数群中选取两个随机数,以得到第五随机数以及第六随机数,计算第五随机数以及第六随机数之和,以得到总和,计算乘法循环群的生成元的总和次幂与自然常数之积,以得到乘积;整合所述乘法循环群、乘法循环群的生成元、自然常数、散列函数、乘积、第二随机数以及第四随机数,以得到系统参数。

其中,两个素数阶的乘法循环群存在双线性映射关系。

在一实施例中,处理器502在实现所述定义一个访问结构,并根据所述系统参数创建与所述访问结构相关的第二服务器的部分签名私钥以及所述访问结构下的用户签名私钥步骤时,具体实现如下步骤:

定义一个访问结构,并根据所述访问结构构建一个矩阵,对矩阵内的每一行数值选择一个与属性全集中的属性对应的标签函数;从所述整数群内选择若干个随机数,以得到第七随机数,利用第七随机数定义一个向量,并根据所述向量、标签函数以及矩阵计算因子,以得到标签因子,并对矩阵的每一行数值从整数群内选取随机数,以得到第八随机数,对外包计算的辅助属性从整数群内选取一个随机数,以得到第九随机数;从属性全集内剔除标签函数对应的属性,以得到中间属性;根据乘法循环群的生成元、标签因子、第八随机数、第二随机数、第三随机数计算与中间属性相关的部分签名私钥,根据乘法循环群的生成元、第六随机数、第九随机数、第四随机数、第二随机数计算与外包计算的辅助属性相对应的部分签名私钥;整合与中间属性相关的部分签名私钥、标签函数以及矩阵,以得到与所述访问结构相关的第二服务器的部分签名私钥,整合与外包计算的辅助属性相对应的部分签名私钥、标签函数以及矩阵,以得到所述访问结构下的用户签名私钥。

在一实施例中,处理器502在实现所述与所述访问结构相关的第二服务器的部分签名私钥用于触发第二服务器对数据发送方获取的初始数据以及属性集进行签名,以得到第一部分签名,并由第二服务器发送第一部分签名至数据发送方步骤时,具体实现如下步骤:

由第二服务器定义一个集合,所述集合内的元素均满足标签函数属于属性集合,并求解∑k∈kwkφρ(k)=(1,0,...,0)关于wk的解,以得到第一数值,其中,φρ(k)为标签因子,k为集合,k为集合的元素;由第二服务器从整数群中选取两个随机数,以得到第十随机数以及第十一随机数;由第二服务器根据第十一随机数、第十随机数、第一数值、与中间属性相关的部分签名私钥、第三随机数以及第二随机数生成第一部分签名,并由第二服务器发送第一部分签名至数据发送方。

在一实施例中,处理器502在实现所述访问结构下的用户签名私钥用于触发数据发送方根据所述第一部分签名对获取的初始数据进行签名,以得到完整签名,并由数据发送方发送完整签名至数据接收方,当数据接收方对完整签名后,数据接收方进行转换后形成转换签名并发送至第二服务器进行验证,以得到验证结果,以供数据接收方根据验证结果进行初始数据处理步骤时,具体实现如下步骤:

数据发送方从整数群内选取随机数,以得到第十二随机数以及第十三随机数;数据发送方根据所述访问结构下的用户签名私钥、第十三随机数以及第十二随机数,对获取的初始数据进行签名,以得到完整签名,并由数据发送方发送完整签名至数据接收方;当数据接收方对完整签名后,数据接收方设置转换密钥,利用转换密钥对完整签名进行转换后,形成转换签名;数据接收方发送至第二服务器进行验证,以得到验证结果,以供数据接收方根据验证结果进行初始数据处理。

在一实施例中,处理器502在实现所述数据接收方发送至第二服务器进行验证,以得到验证结果,以供数据接收方根据验证结果进行初始数据处理步骤时,具体实现如下步骤:

数据接收方计算中间签名;数据接收方判断所述验证结果与所述中间签名是否一致;若所述验证结果与所述中间签名一致,则数据接收方接收初始数据;若所述验证结果与所述中间签名不一致,则数据接收方丢弃初始数据。

应当理解,在本申请实施例中,处理器502可以是中央处理单元(centralprocessingunit,cpu),该处理器502还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程序指令,计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该程序指令被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。

因此,本发明还提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序,其中该计算机程序被处理器执行时使处理器执行如下步骤:

创建系统参数;定义一个访问结构,并根据所述系统参数创建与所述访问结构相关的第二服务器的部分签名私钥以及所述访问结构下的用户签名私钥;反馈与所述访问结构相关的第二服务器的部分签名私钥至第二服务器,其中,与所述访问结构相关的第二服务器的部分签名私钥用于触发第二服务器对数据发送方获取的初始数据以及属性集进行签名,以得到第一部分签名,并由第二服务器发送第一部分签名至数据发送方;反馈所述访问结构下的用户签名私钥至数据发送方,其中,所述访问结构下的用户签名私钥用于触发数据发送方根据所述第一部分签名对获取的初始数据进行签名,以得到完整签名,并由数据发送方发送完整签名至数据接收方,当数据接收方对完整签名后,数据接收方进行转换后形成转换签名并发送至第二服务器进行验证,以得到验证结果,以供数据接收方根据验证结果进行初始数据处理。

在一实施例中,所述处理器在执行所述计算机程序而实现所述创建系统参数步骤时,具体实现如下步骤:

输入安全参数,生成两个素数阶的乘法循环群;对需要传送的消息字符串从乘法循环群中选择对应的一组随机数,以得到第一随机数,并从乘法循环群中选取一个随机数,以得到第二随机数,根据第一随机数以及第二随机数定义一个散列函数;构建属性全集,并对属性全集内的每个属性均从乘法循环群中选取对应的随机数,以得到第三随机数,设置外包计算的辅助属性,并对外包计算的辅助属性从乘法循环群中选取一个随机数,以得到第四随机数;定义给一个阶数为乘法循环群的阶数减一的整数群,并从整数群中选取两个随机数,以得到第五随机数以及第六随机数,计算第五随机数以及第六随机数之和,以得到总和,计算乘法循环群的生成元的总和次幂与自然常数之积,以得到乘积;整合所述乘法循环群、乘法循环群的生成元、自然常数、散列函数、乘积、第二随机数以及第四随机数,以得到系统参数。

其中,两个素数阶的乘法循环群存在双线性映射关系。

在一实施例中,所述处理器在执行所述计算机程序而实现所述定义一个访问结构,并根据所述系统参数创建与所述访问结构相关的第二服务器的部分签名私钥以及所述访问结构下的用户签名私钥步骤时,具体实现如下步骤:

定义一个访问结构,并根据所述访问结构构建一个矩阵,对矩阵内的每一行数值选择一个与属性全集中的属性对应的标签函数;从所述整数群内选择若干个随机数,以得到第七随机数,利用第七随机数定义一个向量,并根据所述向量、标签函数以及矩阵计算因子,以得到标签因子,并对矩阵的每一行数值从整数群内选取随机数,以得到第八随机数,对外包计算的辅助属性从整数群内选取一个随机数,以得到第九随机数;从属性全集内剔除标签函数对应的属性,以得到中间属性;根据乘法循环群的生成元、标签因子、第八随机数、第二随机数、第三随机数计算与中间属性相关的部分签名私钥,根据乘法循环群的生成元、第六随机数、第九随机数、第四随机数、第二随机数计算与外包计算的辅助属性相对应的部分签名私钥;整合与中间属性相关的部分签名私钥、标签函数以及矩阵,以得到与所述访问结构相关的第二服务器的部分签名私钥,整合与外包计算的辅助属性相对应的部分签名私钥、标签函数以及矩阵,以得到所述访问结构下的用户签名私钥。

在一实施例中,所述处理器在执行所述计算机程序而实现所述与所述访问结构相关的第二服务器的部分签名私钥用于触发第二服务器对数据发送方获取的初始数据以及属性集进行签名,以得到第一部分签名,并由第二服务器发送第一部分签名至数据发送方步骤时,具体实现如下步骤:

由第二服务器定义一个集合,所述集合内的元素均满足标签函数属于属性集合,并求解∑k∈kwkφρ(k)=(1,0,...,0)关于wk的解,以得到第一数值,其中,φρ(k)为标签因子,k为集合,k为集合的元素;由第二服务器从整数群中选取两个随机数,以得到第十随机数以及第十一随机数;由第二服务器根据第十一随机数、第十随机数、第一数值、与中间属性相关的部分签名私钥、第三随机数以及第二随机数生成第一部分签名,并由第二服务器发送第一部分签名至数据发送方。

在一实施例中,所述处理器在执行所述计算机程序而实现所述访问结构下的用户签名私钥用于触发数据发送方根据所述第一部分签名对获取的初始数据进行签名,以得到完整签名,并由数据发送方发送完整签名至数据接收方,当数据接收方对完整签名后,数据接收方进行转换后形成转换签名并发送至第二服务器进行验证,以得到验证结果,以供数据接收方根据验证结果进行初始数据处理步骤时,具体实现如下步骤:

数据发送方从整数群内选取随机数,以得到第十二随机数以及第十三随机数;数据发送方根据所述访问结构下的用户签名私钥、第十三随机数以及第十二随机数,对获取的初始数据进行签名,以得到完整签名,并由数据发送方发送完整签名至数据接收方;当数据接收方对完整签名后,数据接收方设置转换密钥,利用转换密钥对完整签名进行转换后,形成转换签名;数据接收方发送至第二服务器进行验证,以得到验证结果,以供数据接收方根据验证结果进行初始数据处理。

在一实施例中,所述处理器在执行所述计算机程序而实现所述数据接收方发送至第二服务器进行验证,以得到验证结果,以供数据接收方根据验证结果进行初始数据处理步骤时,具体实现如下步骤:

数据接收方计算中间签名;数据接收方判断所述验证结果与所述中间签名是否一致;若所述验证结果与所述中间签名一致,则数据接收方接收初始数据;若所述验证结果与所述中间签名不一致,则数据接收方丢弃初始数据。

所述存储介质可以是u盘、移动硬盘、只读存储器(read-onlymemory,rom)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。

该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1