具备匿名奖励分发和身份隐私保护的移动设备认证方法与流程

文档序号:17924062发布日期:2019-06-15 00:17阅读:222来源:国知局
具备匿名奖励分发和身份隐私保护的移动设备认证方法与流程

本发明涉及移动通信的技术领域,尤其涉及一种具备匿名奖励分发和身份隐私保护的移动设备认证方法,基于密码学方法、椭圆曲线加密和安全哈希函数实现奖励分发功能。



背景技术:

随着移动通信技术的迅速发展,各种基于移动互联网的应用越来越受到人们的青睐。其中,一种利用数量众多的普通用户所持的智能手机采集并上传数据,然后由后台服务器对数据进行进一步处理并生成新的服务的应用得到了快速的发展。这类应用也被称为群智感知应用。目前该技术已广泛应用于环境监测、交通流量与路况信息监测等领域。群智感知网络给复杂的泛在深度感知问题提供了一种全新的解决方案,拥有广泛的应用场景和广阔的应用前景。

然而,受限于数据采集者的数量不足以及所采集的数据质量参差不齐的影响,这类应用的发展受到了严重的影响。针对该问题,在该类应用中需要通过采用适当的激励方式,鼓励和刺激数据提供者参与到感知任务当中,并尽可能地提供高质量、高可靠性的感知数据。然而,由于无线网络的开放特性,用户所采集的数据在传递的过程中很容易被不法分子所截获,这些感知数据中可能包含采集者自己的位置等其他隐私信息,所以如果采集者对感知数据的接收者不信任,其也不愿意将这些感知数据传递给他。也就是说,感知数据的接收者也必须能被验证其合法性才能接收数据。再者,现有的许多针对该问题的奖励方法在实施的过程中,往往需要用户的真实个人信息才能完成奖励的兑换。而作为用户非常敏感的隐私信息,其往往不愿意将自己的个人信息泄露出去。所以,在需要用户参与采集数据的这类应用在实施的过程中面临一个难题:如何能够在保证数据采集者身份隐私不泄露的情况下实现数据采集者和数据处理服务器之间的双向认证,同时数据采集者能够获得奖励并能够进行兑换。这是目前这类应用能否成功实施的关键。

目前,已经有许多针对移动网络环境下的利用密码学技术实现的用户和服务器之间的匿名双向认证协议。这类协议一般的实现原理是利用一个公共的可信第三方的一些公开参数以及相关的秘密值,利用安全哈希函数以及伪随机数等方式生成某个用户所独有的认证凭证。同时,服务器也需要和可信第三方之间通过安全通信以生成服务器相关的一些认证凭证。在实际的认证过程中,用户和服务器会通过交换相关数据,用相关的密码学思想(常见的如diffie-hellman方法)使得用户和服务器可以利用自己所独有的认证凭证来验证对方的合法性。还有一些研究者将人体的指纹等生物信息数据经过某种特殊的单向映射将其转换成另一个数域上的数据,从而实现用户的匿名性和唯一性。然而,这种方法依赖于生物信息采集设备的精确性和可靠性,不容易在人们日常所持的智能手机等终端设备上实现。另外,还有一些研究者提出了基于用户地理位置的k-匿名数据采集算法。这类算法的核心思想是将用户的精确地理位置替换成包含有该用户在内的k个具有同等地位的用户的区域,从而实现用户身份的隐藏。

这类移动环境下的匿名双向认证协议虽然能够实现用户的身份隐私保护和双向认证,但是其无法描述该编号和具体的用户之间的关联。因此,这类方法大多都无法实现奖励的分发与兑换。



技术实现要素:

针对现有移动环境下的匿名双向认证协议无法描述编号和具体用户之间的关联,不能实现奖励分发和兑换的技术问题,本发明提出一种具备匿名奖励分发和身份隐私保护的移动设备认证方法,能够在实现匿名认证的同时,还能满足奖励的分发与兑换功能,适用于无线网络环境中匿名认证,为需要实施奖励或者激励的应用提供一种适用方法。

为了达到上述目的,本发明的技术方案是这样实现的:一种具备匿名奖励分发和身份隐私保护的移动设备认证方法,其步骤如下:

步骤一:任务发布与奖励分发中心对所使用的椭圆曲线、消息认证码算法、哈希函数和采集数据的价格等级表进行初始化;任务发布与奖励分发中心利用伪随机数算法生成自己的私钥和秘密值并进行保存,并利用椭圆曲线初始化自己的公钥;

步骤二:若干个应用服务器和数据采集者均在任务发布与奖励分发中心处进行注册;

步骤三:当应用服务器生成移动应用缺乏某个区域的某种类型数据时,向任务发布与奖励分发中心发送包含需要采集数据的种类、精度及位置的任务请求消息;任务发布与奖励分发中心验证应用服务器的合法性,然后向任务请求消息所指定的区域发布数据采集任务;

步骤四:当收到数据采集任务后,数据采集者按照任务请求消息的要求采集数据并将所采集的数据连同所生成的随机假名传递给应用服务器;

步骤五:应用服务器判定数据采集者是否为注册用户,如果是则接收该数据,然后根据数据采集者的随机假名计算感知数据的奖励凭证并将奖励凭证返回给相应的数据采集者;如果否,则返回步骤四;

步骤六:数据采集者收到奖励凭证后,利用奖励凭证和随机假名生成奖励兑换凭证并发送至任务发布与奖励分发中心;任务发布与奖励分发中心给数据采集者按照采集数据的价格等级表对奖励兑换凭证进行兑付。

所述利用椭圆曲线初始化公钥的方法是:

步骤s11:任务发布与奖励分发中心选择一个大的素数p,并选择由素数p构成的有限域gf(p)上的椭圆曲线ep(a,b):y12=x13+ax1+b且满足4a3+27b2≠0(modp),x1和y1表示椭圆曲线ep(a,b)的自变量和因变量;随后,任务发布与奖励分发中心在椭圆曲线ep(a,b)上选取一个阶为q的基点p;其中,a和b为有限域上的常数;

步骤s12:任务发布与奖励分发中心通过伪随机数算法生成随机数并将其作为自己的私钥;奖励分发中心利用私钥s计算其公钥ppub=s·p;其中,有限域随后,任务发布与奖励分发中心通过伪随机数算法再生成随机数并将秘密值x,y进行妥善保存。

所述消息认证算法为md5或sha-1的商用消息认证码算法;任务发布与奖励分发中心选择的哈希函数包括安全hash函数h(·)、hash函数h(·)和map-to-point哈希函数h1(·),且:其中,l为0,1字符串的长度;所述价格等级表为g={g1,g2,…,gn},g1,g2,…,gn表示n个价格等级;奖励分发中心将生成的参数{ep(a,b),p,ppub,h(·),h(·)}公开。

所述应用服务器的注册方法为:

步骤s1:应用服务器sj将其身份标识符sidj发送给任务发布与奖励分发中心;应用服务器sj利用伪随机数算法生成随机数并将其作为自己的私钥,同时利用私钥aj计算其公钥pj=aj·p;

步骤s2:任务发布与奖励分发中心收到应用服务器sj的身份标识符sidj后,计算h(sidj||y)以及其中,y表示任务发布与奖励分发中心对各个应用服务器进行认证所使用的秘密值;任务发布与奖励分发中心构建并通过安全通信信道将消息传递给应用服务器sj;

步骤s3:应用服务器sj收到消息后,将该消息和私钥aj进行保存,其中,mack(·)为消息认证码算法,k为密钥。

所述数据采集者的注册方法为:

步骤u1:数据采集者ui选取其标识符pidi及对应的口令pwi随后,数据采集者ui利用伪随机数算法生成随机数并利用随机数b计算中间变量数据采集者ui生成并将注册消息通过安全通道传递给任务发布与奖励分发中心进行注册;

步骤u2:当任务发布与奖励分发中心收到数据采集者ui的注册消息后,计算如下中间变量:ai=h(pidi||x),hai=h(ai),其中,x表示任务发布与奖励分发中心对各个数据采集者进行认证所使用的秘密值;随后,任务发布与奖励分发中心生成消息{vi,hai,bi},并将消息{vi,hai,bi}传递给数据采集者ui;

步骤u3:数据采集者ui收到消息{vi,hai,bi}后,数据采集者ui将消息{vi,hai,bi}中的参数和随机数b一起构成参数集{vi,hai,bi,b}并保存。

所述步骤三中应用服务器发布数据采集任务的方法是:

步骤tr1:应用服务器sj生成时间戳ts并利用其私钥aj计算中间变量dj=h(aj·ppub)和应用服务器sj生成消息{tasks,sidj,pj,qj,ts},并将消息{tasks,sidj,pj,qj,ts}发送给任务发布与奖励分发中心;其中,tasks是数据采集任务,数据采集任务tasks包括采集数据的区域范围、数据种类和\或各种类型数据的精度范围;sidj和pj分别为应用服务器sj的身份标识符和公钥;

步骤tr2:任务发布与奖励分发中心收到应用服务器sj所发送的数据采集请求的消息{tasks,sidj,pj,qj,ts},任务发布与奖励分发中心计算中间变量并判断中间变量是否成立,如成立,任务发布与奖励分发中心认为应用服务器sj是一个合法的应用服务器,并计算中间变量sigj=s·h1(tasks||sidj||ts);任务发布与奖励分发中心生成数据采集任务消息{tasks,sidj,pj,sigj,ts}并将数据采集任务消息广播到数据采集任务tasks所指定的区域。

所述步骤四中数据采集者采集数据的方法是:

步骤tr3:数据采集者ui接收到数据采集任务消息{tasks,sidj,pj,sigj,ts}后,查看其设备是否具备数据采集任务所要求的数据,如果具备,数据采集者ui计算中间变量pexam=h1(tasks||sidj||ts)并判断等式是否成立,如果该等式成立,数据采集者ui按照数据采集任务tasks的要求采集数据;其中,ppub为任务发布与奖励分发中心的公钥;

步骤tr4:数据采集者ui的移动终端按照数据采集任务tasks的要求采集并生成符合要求的感知数据sdatai;数据采集者ui的移动终端生成时间戳ti并利用时间戳ti与其身份标识符pidi生成随机数mr;数据采集者ui利用随机数mr计算随机假名h(mr)以及中间变量h(mr·ppub);数据采集者ui计算如下中间变量:pm=mr·p,数据采集者ui生成消息{sidj,h(mr),pm,ri,cdatai,ti,ts}并将消息发送给应用服务器sj;同时,数据采集者ui将随机数mr进行保存;其中,bi是数据采集者ui注册时任务发布与奖励分发中心生成的中间变量,b是数据采集者生成的随机数pwi是数据采集者的口令。

所述步骤五中应用服务器计算奖励凭证的方法是:

步骤v1:应用服务器sj收到数据采集者ui发送的消息{sidj,h(mr),pm,ri,cdatai,ti,ts}后,通过tc1-ti≤δt来判断消息的新鲜性;如果满足消息的新鲜性要求,应用服务器sj从消息{sidj,h(mr),pm,ri,cdatai,ti,ts}中提取出加密后的感知数据cdatai、数据采集者ui的假名h(mr)以及中间变量pm;应用服务器sj将消息{sidj,h(mr),pm,ri,ti,ts}发送给任务发布与奖励分发中心;其中,tc1是应用服务器sj收到该条消息的时间,δt是所允许的最大时延;

步骤v2:任务发布与奖励分发中心收到消息{sidj,h(mr),pm,ri,ti,ts}后,通过不等式tc2-ti≤δt来判断消息的新鲜性,如果满足消息的新鲜性,任务发布与奖励分发中心计算结果并从计算结果w*中提取出与数据采集者ui相关的信息身份标识符pidi、中间变量以及中间变量ci;任务发布与奖励分发中心计算中间变量并判断等式是否成立,如果成立,任务发布与奖励分发中心计算中间变量并生成消息{h(mr),verj,ti,ts},任务发布与奖励分发中心将消息{h(mr),verj,ti,ts}传递给应用服务器sj;如果等式ci*=ci不成立,任务发布与奖励分发中心告知应用服务器sj该数据采集者ui为非法数据采集者;其中,tc2为任务发布与奖励分发中心接收到该消息的时间;

步骤v3:应用服务器sj收到消息{h(mr),ver,ti,ts}后,计算中间变量并判断等式ver*=ver是否成立,如果该等式成立,应用服务器sj利用自己的私钥aj和加密后的感知数据cdatai计算中间变量:并从中取出感知数据;应用服务器sj依据任务发布与奖励分发中心所提供的标准对采集数据的价格等级划分为等级gi;

步骤v4:应用服务器sj计算中间变量km=aj·ppub,依据采集数据的等级gi及数据采集者ui的假名h(mr)并利用中间变量km作为密钥计算感知数据的兑奖凭证tokeni=mackm(gi,h(mr),h(sidj||y),ti);应用服务器sj生成消息{h(mr),tokeni,sidj,gi,ti,pj},并将消息{h(mr),tokeni,sidj,gi,ti,pj}通过通信信道传递给假名为h(mr)的数据采集者ui。

所述步骤六中对奖励兑换凭证进行奖励兑付的方法是:

步骤61:数据采集者ui收到消息{h(mr),tokeni,sidj,gi,ti,pj}后,提取出消息中的奖励兑换凭证tokeni并将其与应对的随机数mr、时间戳ti以及目的应用服务器sj的身份标识符sidj及其公钥pj组成一个兑换令牌<mr,tokeni,gi,sidj,pj,ti>;数据采集者ui保存兑换令牌<mr,tokeni,gi,sidj,pj,ti>;

步骤62:数据采集者ui将保存的兑换令牌<mr,tokeni,gi,sidj,pj,ti>通过通信信道传递给任务发布与奖励分发中心;

步骤63:任务发布与奖励分发中心收到兑换令牌<mr,tokeni,gi,sidj,pj,ti>后,计算中间变量km=s·pj以及h(mr);任务发布与奖励分发中心计算中间变量tokeni*=mackm(gi,h(mr),h(sidj||y),ti),并将中间变量tokeni*与兑换令牌中的奖励兑换凭证tokeni进行比较,如果相等,则任务发布与奖励分发中心按照价格等级表g所规定的价格对兑换令牌进行兑付。

所述身份标识符sidj是应用服务器利用服务器机器生产厂商所提供的序列号或网卡的mac地址;所述标识符pidi是数据采集者ui的手机号码、口令pwi是数据采集者ui的移动终端的产品序列号;任务发布与奖励分发中心中维护一个令牌兑付表plt用以保存兑付过的令牌信息,每次数据采集者兑付奖励时,任务发布与奖励分发中心查询一下令牌兑付表plt,如果已经兑付过,则不再进行兑付。

本发明的有益效果:利用单向hash函数和伪随机数生成算法生成数据采集者的临时身份标识符作为其假名,利用消息验证码算法生成具体的数据采集者的奖励;利用奖励兑换中心所掌握的具体应用服务器的核心验证消息验证兑换凭证的有效性进而进行兑换。本发明利用了随机假名和单向hash函数完成奖励的生成并成功保护了数据采集者的身份隐私;能够验证数据采集者身份,同时还能够保证所上传的采集到的数据的机密性,能有效提高用户利用移动设备采集相关感知数据的积极性;非常适用于当下那些需要通过激励来获取普通用户所采集到的数据的移动应用场景,在需要利用移动设备采集相关数据的应用领域具有较大的应用价值。

附图说明

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

图1为本发明的系统模型图。

图2为本发明的注册阶段流程图,其中,(a)为应用服务器注册,(b)为数据采集者注册。

图3为本发明的认证与奖励分发阶段流程图。

具体实施方式

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

一种具备匿名奖励分发和身份隐私保护的移动设备认证方法,主要包括:a.对应用场景进行定义,包括具体的系统架构模型、系统的初始化以及数据采集者和应用服务器的注册;b.数据采集任务的发布以及感知数据的采集、奖励的生成以及分发的方法;c.对奖励凭证进行验证并兑换的方法。系统架构模型主要包括数据采集者:u={ui|i=1,2,…,m},一组应用服务器:s={sj|j=1,2,…,n}以及任务发布与奖励分发中心(taskreleasecenter)trc,其中,m为数据采集者的数量,n为应用服务器的数量。本发明所使用的系统架构与数据采集流程图如图1所示,包括以下几个主要的阶段:系统的初始化阶段、注册阶段、数据采集任务的发布与数据上传阶段、认证与奖励分发阶段、奖励凭证兑换阶段。具体详述如下:

表1本发明所使用的符号释义

(一)系统的初始化阶段

在该阶段,任务发布与奖励分发中心trc需要对系统所使用的各种加密算法进行选择,需要对其参数进行初始化设置。

步骤i1:任务发布与奖励分发中心trc选择一个大的素数p(需达到商用安全级别);并选择一个构建在有该素数构成的有限域gf(p)上的椭圆曲线ep(a,b):y12=x13+ax1+b且满足4a3+27b2≠0(modp),x1和y1分别表示椭圆曲线ep(a,b)的自变量和因变量。随后,任务发布与奖励分发中心trc在椭圆曲线ep(a,b)上选取一个阶为q的基点p。椭圆曲线ep(a,b)应具备足够的安全性,以保证不被敌手采用暴力破解攻破。

步骤i2:任务发布与奖励分发中心trc通过常用的伪随机数算法生成随机数并将其作为自己的私钥。随后,任务发布与奖励分发中心trc利用私钥s计算对应的公钥ppub=s·p。随后,任务发布与奖励分发中心trc利用伪随机数算法生成并选择两个随机数并将其作为自己的秘密值进行妥善保存。常用的伪随机数算法通常选用目前比较流行的梅森旋转算法(mersennetwister)。该算法在1997年由松本真和西村拓士开发,其主要基于有限二进制字段上的矩阵线性递归,可以弥补古典随机数发生算法的很多缺陷。

步骤i3:任务发布与奖励分发中心trc选择一个适当的消息认证码算法mack(·),其中,k为密钥。消息认证码算法mack(·)可以选用目前比较成熟的如md5或者sha-1等商用消息认证码算法。随后,任务发布与奖励分发中心trc选择两个安全hash函数h(·)以及h(·),其中,l为该0,1字符串的长度。最后,任务发布与奖励分发中心trc选择一个安全的map-to-point哈希函数h1(·),且

步骤i4:任务发布与奖励分发中心trc根据需要设定所采集数据的价格等级表g={g1,g2,…,gn}。价格等级表g为后续奖励兑付阶段的进行提供依据。价格等级表g中等级主要依据所采集数据的种类、采集时间、地点、精度等相关因素决定。例如,同一种类的数据精度高的自然比精度低的价格高。在同一地点,凌晨时分所采集的数据一定比白天所采集的数据价格高。该部分的具体规则和实施方案需要各应用服务提供商根据自己的需要来制定。本发明假定已经在任务发布与奖励分发中心trc制定好价格等级表,在后续的步骤中直接使用价格等级表g。

步骤i5:任务发布与奖励分发中心trc将前面所生成的参数{ep(a,b),p,ppub,h(·),h(·)}公开,并将其私钥s以及秘密值x和y进行妥善保存,以防泄露。

(二)系统的注册阶段

在本发明中,任何想要参与到移动应用系统的通信实体,包括提供移动应用的应用服务器和参与数据采集的用户都需要在任务发布与奖励分发中心trc处进行注册。注册阶段流程图如图2所示,现分别介绍应用服务器和参与数据采集的用户即数据采集者的注册流程。

应用服务器的注册:

步骤s1:应用服务器sj将自己的身份标识符sidj发送给任务发布与奖励分发中心trc。为了保证身份标识符的唯一性,应用服务器可以利用服务器机器生产厂商所提供的序列号或者网卡的mac地址等来构建自己的身份标识符。另外,应用服务器利用伪随机数算法生成随机数并将其作为自己的私钥,同时利用私钥aj计算其对应的公钥pj=aj·p。

步骤s2:任务发布与奖励分发中心trc收到应用服务器sj的身份标识符sidj后,trc计算h(sidj||y)以及其中,y表示任务发布与奖励分发中心对各个应用服务器进行认证所使用的秘密值。随后,任务发布与奖励分发中心trc构建消息并将其通过安全通信信道传递给应用服务器。

步骤s3:当收到消息后,应用服务器sj将该消息连同自己的私钥aj一起进行妥善保存并防止泄露。

数据采集者的注册:

步骤u1:数据采集者ui选取自己的标识符pidi以及对应的口令pwi。为了保证标识符的唯一性,数据采集者应尽量选取具备唯一性的手机号码以及产品序列号等来构建。随后,数据采集者ui利用伪随机数算法生成一随机数并利用随机数b计算接下来,数据采集者ui生成注册消息并将其通过安全通道传递给任务发布与奖励分发中心trc进行注册。

步骤u2:当任务发布与奖励分发中心trc收到数据采集者ui的注册请求消息后,首先进行计算如下中间变量:

ai=h(pidi||x),

hai=h(ai),

其中,x表示任务发布与奖励分发中心对各个数据采集者进行认证所使用的秘密值。随后,任务发布与奖励分发中心trc生成消息{vi,hai,bi}并将其通过安全的方式传递给数据采集者ui。

步骤u3:当数据采集者ui收到消息{vi,hai,bi}后,该数据采集者将消息中的参数连同前面所生成的随机数b一起构成参数集{vi,hai,bi,b}并将其妥善保存以防泄漏。

(三)数据采集任务的发布与感知数据的上传阶段

当应用服务器需要某个区域的某一种或几种数据时,其必须向任务发布与奖励分发中心trc申请进行数据采集任务的发布。该阶段的详细工作流程详述如下:

步骤tr1:首先,应用服务器sj生成时间戳ts并利用其私钥aj计算中间变量dj=h(aj·ppub)和然后,应用服务器sj生成消息{tasks,sidj,pj,qj,ts}并将该消息发送给任务发布与奖励分发中心trc以请求发布数据采集任务。其中,tasks指的是数据采集任务,这里面包括应用服务器sj对所采集数据的具体要求,例如所采集数据的区域范围、所需要的数据种类、各种类型数据所需要的精度范围等等。sidj和pj分别为应用服务器sj的身份标识符和公钥。

步骤tr2:当收到应用服务器sj所发送的数据采集请求后,任务发布与奖励分发中心trc先需要验证应用服务器sj的身份标识符sidj合法性。首先,任务发布与奖励分发中心trc计算中间变量并判断中间变量是否成立。如不成则终止认证过程;如成立,任务发布与奖励分发中心trc认为应用服务器sj是一个合法的应用服务器并计算中间变量:sigj=s·h1(tasks||sidj||ts)。随后,任务发布与奖励分发中心trc生成数据采集任务消息{tasks,sidj,pj,sigj,ts}并将该数据采集任务消息广播到数据采集任务tasks所指定的区域用以提醒数据采集者采集相关的数据。

步骤tr3:当接收到该数据采集任务消息后,数据采集者ui首先查看自己的设备能否提供该数据采集任务所要求的数据(本部分由移动端软件自动执行检查)。如果其设备具备数据采集能力,则数据采集者ui计算中间变量pexam=h1(tasks||sidj||ts)并判断等式是否成立。其中,ppub为任务发布与奖励分发中心trc的公钥。如不成则返回;如果该等式成立,则数据采集者ui认为该采集任务由任务发布与奖励分发中心trc所发布,其可以按照数据采集任务tasks的要求来采集相关的数据。

步骤tr4:数据采集者ui的移动终端按照数据采集任务tasks的要求采集并生成符合要求的感知数据sdatai。随后,数据采集者ui的移动终端生成时间戳ti并利用该时间戳ti与自己的身份标识符pidi生成随机数mr。随后,数据采集者ui利用该随机数mr计算随机假名h(mr)以及中间变量h(mr·ppub)。随后,数据采集者ui进行计算如下中间变量:

pm=mr·p,

随后,数据采集者ui生成消息{sidj,h(mr),pm,ri,cdatai,ti,ts}并将该带有加密后的感知数据的消息发送给应用服务器sj的身份标识符sidj。同时,数据采集者ui将生成的随机数mr进行妥善保存以防泄露。

(四)采集数据的验证与奖励分发阶段

步骤v1:当收到数据采集者ui所发送过来的消息后,应用服务器sj首先通过tc1-ti≤δt来判断消息{sidj,h(mr),pm,ri,cdatai,ti,ts}的新鲜性。其中,tc1是应用服务器sj收到该条消息的时间,δt是系统所允许的最大时延。如果不满足,则直接丢弃该消息;如果该消息满足新鲜性要求,则应用服务器sj从该消息中提取出加密后的感知数据cdatai、数据采集者ui的假名h(mr)以及中间变量pm。随后,应用服务器sj将消息{sidj,h(mr),pm,ri,ti,ts}发送给任务发布与奖励分发中心trc以验证该数据采集者身份的合法性。

步骤v2:在收到消息{sidj,h(mr),pm,ri,ti,ts}后,任务发布与奖励分发中心trc首先通过不等式tc2-ti≤δt来判断该消息的新鲜性,其中,tc2为任务发布与奖励分发中心trc接收到该消息的时间。如果不满足则通知应用服务器丢弃该消息;如果该消息满足新鲜性要求,则任务发布与奖励分发中心trc计算结果并从计算结果w*中提取出与数据采集者ui相关的信息身份标识符pidi、中间变量以及中间变量ci。

随后,任务发布与奖励分发中心trc计算中间变量并判断等式是否成立。如果成立,则任务发布与奖励分发中心trc认为该数据采集者ui为合法用户。随后,任务发布与奖励分发中心trc计算中间变量并生成消息{h(mr),verj,ti,ts}。随后任务发布与奖励分发中心trc将该消息传递给应用服务器sj。如果上式ci*=ci不成立,则任务发布与奖励分发中心trc将告知应用服务器该数据采集者ui为非法数据采集者。

步骤v3:当收到消息{h(mr),ver,ti,ts}后,应用服务器sj需要利用该消息来验证数据采集者ui的合法性。首先,应用服务器sj计算中间变量并判断等式ver*=ver是否满足。如果等式不成立,则终止该认证过程;如果该等式成立则应用服务器sj认为假名为h(mr)的数据采集者ui为合法用户。随后,应用服务器sj利用自己的私钥aj对加密后的感知数据cdatai进行计算中间变量:并从中取出感知数据。随后,应用服务器sj依据任务发布与奖励分发中心trc所提供的标准对该采集数据进行价格等级划分。此处假定其得到的等级为gi∈g。

步骤v4:首先,应用服务器sj计算中间变量km=aj·ppub。随后,依据该采集数据的等级gi以及该数据采集者的假名h(mr),并利用中间变量km作为密钥来计算该条感知数据的兑奖凭证tokeni=mackm(gi,h(mr),h(sidj||y),ti)。随后,应用服务器sj生成消息{h(mr),tokeni,sidj,gi,ti,pj}并将其通过普通通信信道传递给假名为h(mr)的数据采集者ui。

步骤v5:当收到上述消息{h(mr),tokeni,sidj,gi,ti,pj}后,数据采集者ui提取出该消息中的奖励兑换凭证tokeni并将其与应对的随机数mr、时间戳ti以及目的应用服务器sj的身份标识符sidj及其公钥pj组成一个兑换令牌<mr,tokeni,gi,sidj,pj,ti>。数据采集者ui需要将该兑换令牌进行妥善保管以防泄漏或者被盗。验证阶段的数据流程图如图3所示。

(五)奖励兑付阶段

数据采集者ui可以随时拿着自己的兑换令牌进行奖励的兑付。该阶段的流程图如图3所示。令牌兑付的步骤详述如下:

步骤p1:数据采集者ui将自己所保存的兑换令牌<mr,tokeni,gi,sidj,pj,ti>通过安全通信信道传递给任务发布与奖励分发中心trc。

步骤p2:任务发布与奖励分发中心trc在收到兑换令牌<mr,tokeni,gi,sidj,pj,ti>后,首先计算中间变量km=s·pj以及h(mr)。随后,任务发布与奖励分发中心trc计算中间变量tokeni*=mackm(gi,h(mr),h(sidj||y),ti)并将其与兑换令牌中的奖励兑换凭证tokeni进行比较。如果它们相等,则任务发布与奖励分发中心trc按照价格等级表g所规定的价格对该令牌进行兑付。

如果数据采集者ui有多个和上述类似的兑换令牌,其可以采用上述步骤对所持有的兑换令牌进行逐一兑付。另外,任务发布与奖励分发中心trc还需要维护一个令牌兑付表plt用以保存以兑付过的令牌信息。每次有数据采集者过来兑付奖励的时候,任务发布与奖励分发中心trc首先查询一下令牌兑付表plt。如果已经兑付过,则不再进行兑付。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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