一种网络服务中保护用户访问隐私的票据生成方法
技术领域
本发明属于网络服务中的保护用户访问隐私的认证和识别技术领域,特别涉及一种网络服务中保护用户访问隐私的票据生成方法。
背景技术
二十一世纪是网络信息的时代,随着微电子、光电子、计算机、通信和信息服务业的发展,Internet为支撑平台的软件系统也飞速的发展起来,在以金融、通信为代表的各行各业中广泛应用。在计算机系统、Internet网络为国民经济增长发挥重要作用的同时,系统安全的问题及其重要性也日益凸显。在网络空间上接收服务活动,人们最担心的就是安全性问题。关键的安全性要求包括:参与活动各方的身份认证、会话的机密性、会话的完整性和不可否认性,其中身份认证是所有其他安全服务的前提和基础。
以云计算为重要支撑的云服务为信息服务注入了新的活力,也为信息用户带来了信息获取的极大便利。当前大多数保护用户隐私的访问控制机制采用诸如组签名或代理签名等方式提供用户的认证和隐私的保护,这种保护用户隐私的访问控制机制可防止非法用户窃取所需的服务,同时保护服务提供者的利益和消费者的访问隐私,然而,由于其并不能得知用户的身份信息,因此不能生成相关的服务票据。而对于在线服务系统来说,在进行供需服务信息匹配后,一般以传统纸面票据或电子票据的形式提供相应的服务凭证,投送给所服务的用户,然后通过票据对用户的身份进行认证。因此上述采用诸如组签名或代理签名等方式使得服务提供方无法通过服务凭证对用户进行身份认证,仅对用户的隐私和知情权提供了十分有限的安全性保障。
此外,利用可信的第三方将用户的身份信息与享受的服务类型相关联,生成相应的票据。可信第三方平台(简称服务器)是指独立于数据拥有者和数据使用者的可信服务提供方,如以淘宝、Amazon为代表的电子商务网站可以为交易双方提供网上交易、洽谈服务等。在票据生成过程中,需要将用户的身份信息、网上交易的类型和数量、购买者接收货物的地址(一般为家庭住址、或工作单位)等隐私信息显示在票据上。例如,艾滋病患者李三,网购HIV药品齐多夫定片,销售部的销售员知道购买治疗HIV药品齐多夫定片的人姓名李三,开具销售票据的操作员知道李三购买的药是治疗HIV药品齐多夫定片,进一步地凭该销售票据送货的送货员知道这个治疗HIV药品齐多夫定片的李三的具体住址或工作单位。在未经HIV患者允许的情况下传播其患病的信息,侵犯了HIV患者的隐私,损害HIV患者的利益。若用户的隐私信息不能得到恰当保护,将阻碍电子商务等第三方服务平台的发展。
在公开号为US2012072732A1的美国专利中公开了一种用于用户的匿名验证和分离识别的密码方法(Cryptographicmethodforanonymousauthenticationandseparateidentificationofauser)。该专利的系统由管理机构M、检查机构D、识别机构O和用户Ui四个实体组成。管理机构M负责设置系统参数、分配检查机构D的公钥/私钥对(chpk,chsk)、给识别机构O分配一个公钥/私钥对(x,y)和组G的公钥pkG,给用户Ui分配关于组G的私钥xi和证书Ci=(Ai,ei),并将(Ui,Ai,ei)发送给识别机构O。用户Ui的请求信息m=md||α||C||mf,由四部分组成:α表示服务类型,C为要求识别机构O在票据服务信息一栏开具的内容,md和mf分别表示服务信息m中除去α和C的前后两部分。用户通过向识别机构O隐藏请求信息中的服务类型α、指定为其开具服务信息为C的票据,使识别机构O只知道用户Ui的身份信息,而不知道用户Ui在交易中的真实服务类型;用户向检查机构D提交关于请求信息的组签名,获取相关的服务,使检查机构D只知道用户Ui在交易中的真实服务类型,而不知道用户Ui的真实身份信息;这样,在检查机构D和识别机构O不共谋的环境中,实现用户Ui的隐私保护。例如在该专利FIG.4A的实例中,用户Ui按如下步骤生成向检查机构D的发送信息:
Step331:将请求信息拆分成m=md||α||C||mf,然后随机选取ρ,β∈{0,1}λ,利用Chameleon哈希函数中的Proceed算法和Forge算法计算α′和ρ′,其中α′=Proceed(α,ρ,chpk),ρ′=Forge(chsk,(α,ρ,α'),β);
Step332:用户Ui的生成关于请求信息md||α′||C||mf的组签名σ=(sg,ρ),其中sg=(c,s1,s2,s3,s4,T1,T2,T3),c=H(g||h||y||a0||T1||T2||T3||d1||d2||d3||d4||m′),m'=H′(md||α′||C||mf);
Step335:用户Ui向检查机构D发送信息(m,σ,β,ρ')。
该发明中用户将m中的敏感信息α变成密文α′,由于Chameleon哈希函数中的Proceed算法α′=Proceed(α,ρ,chpk)输出的密文α′远远大于α,所以用户对m的密文的md||α′||C||mf进行签名后,仍向检查机构D传送m;检查机构D根据m,利用对应自身的公钥chpk,通过α计算出α′,得到用户的密文md||α′||C||mf;最后将密文和组签名发送给识别机构O,隐藏其请求中的敏感信息。但是由于用户向检查机构传送了未经加密处理的原服务请求信息m,使得识别机构O可追踪到用户Ui的发送信息(m,σ,β,ρ'),结合管理机构M给予的用户Ui证书信息(Ui,Ai,ei),将用户的身份信息Ui、真实服务类型α和票据服务信息一栏开具的内容C关联,造成用户交易中的隐私泄露。识别机构O的具体操作过程如下:识别机构O窃听检查机构D的接收信息,获取请求信息(m,σ,β,ρ'),利用自己的私钥x和组签名σ中的sg=(c,s1,s2,s3,s4,T1,T2,T3),可计算出,然后根据用户Ui的证书信息(Ui,Ai,ei),识别出这是来自用户Ui的请求信息;而请求信息m=md||α||C||mf中的α和C分别提供了其服务类型、要求识别机构O在票据服务信息一栏开具的内容的信息。这样,识别机构O将用户的身份信息Ui、服务类型α和票据服务信息一栏开具的内容C联系在一起,就能掌握用户的交易信息和个人偏好,获取其有关的隐私信息。
另外该发明中所采用的Chameleon哈希函数中的Proceed算法都含有模指数或更耗时的对(pairing)运算。一般地,Proceed(α,ρ,chpk)的输出长度比较大(例如,Proceed(α,ρ,chpk)=chpkαgρmodn,输出长度最大为log2n,且需要2次模指数运算),而表示服务类型的敏感数据α通常远小于n,该本明除了发送md||α||C||mf,还需要传送ρ∈{0,1}λ和组签名sg,其通信成本为λ+α+|md|+|C|+|mf|+|sg|,因此该发明的通信成本开销较大。
发明内容
本发明的目的在于克服现有技术的缺点与不足,提供一种网络服务中保护用户访问隐私的票据生成方法,该方法有效的保护了用户的访问隐私,能够防止出具票据的识别机构O追踪到有关用户的访问隐私。
本发明的目的通过下述技术方案实现:一种网络服务中保护用户访问隐私的票据生成方法,用于实现所述票据生成方法的票据生成系统中包括管理机构M、检查机构D、识别机构O和用户设备;所述管理机构M、检查机构D和识别机构O之间相互连接,所述用户设备相互连接,所述管理机构M、检查机构D和识别机构O分别通过网络与用户设备连接;所述票据生成方法包括以下步骤:
(1)票据生成系统初始化和组的构建:根据输入系统安全参数生成系统公共参数,构建识别结构O所管理的组,分别生成管理机构M、检查机构D和识别机构O所管理组的私钥/公钥对;
(2)用户的授权和撤销:用户Ui向管理机构M申请注册成为其中一个组的成员,然后自身构建一个组签名密钥xi,并从管理机构M中获取用户Ui关于组签名密钥xi的授权证书Ci;识别机构O创建和管理授权证书管理数据库;当管理机构M需要撤销用户Ui关于组签名密钥xi的授权证书Ci时,通知识别机构O;识别机构O收到通知后,将授权证书管理数据库中用户Ui对应的记录Ci删除,即撤销用户Ui的组成员资格;
(3)生成保护用户访问隐私的服务请求信息及其组签名:采用Diffie-Hellman密钥交换算法,建立用户Ui与检查机构D的共享对称密钥kD,然后采用对称密钥kD对用户Ui提出的服务请求信息m中的关键敏感数据进行加密,得到保护用户访问隐私的服务请求信息
利用识别机构O所管理且用户Ui所属组的公钥、用户Ui构建的组签名密钥xi及用户Ui关于组签名密钥xi的授权证书Ci,生成用户Ui保护用户访问隐私的服务请求信息的组签名sg;
用户Ui将保护用户访问隐私的服务请求信息及其组签名sg发送给识别机构O;
(4)用户服务请求的认证:识别机构O首先验证用户Ui所提出的保护用户访问隐私的服务请求信息的组签名sg是否正确,
若sg不正确,则表示用户Ui所提出的服务请求信息不合法,识别机构O丢弃该保护用户访问隐私的服务请求信息
若sg正确,则表示用户Ui所提出的保护用户访问隐私的服务请求信息是合法的,识别机构O利用其所管理且用户Ui所属组的私钥及用户Ui所提出的保护用户访问隐私的服务请求信息的组签名sg,得出用户Ui关于组签名密钥xi的授权证书Ci;
识别机构O搜索其授权证书管理数据库,若授权证书管理数据库中存在授权证书Ci,则用户Ui仍是识别机构所管理组的组成员,识别机构将用户Ui所提出的保护用户访问隐私的服务请求信息及其组签名sg发送给检查机构D;
否则表示用户Ui的组成员资格已被撤销,识别机构丢弃用户Ui所提出保护用户访问隐私的服务请求信息
(5)为用户提供服务:检查机构D接收到用户Ui所提出的保护用户访问隐私的服务请求信息及其组签名sg后,通过验证用户Ui所提出的保护用户访问隐私的服务请求信息的组签名sg是否正确来判断用户Ui所提出的保护用户访问隐私的服务请求信息的合法性,然后将是否为用户Ui提供了服务的结果反馈给识别机构O;
若sg不正确,则表示用户Ui所提出的保护用户访问隐私的服务请求信息不合法,检查机构D不向用户Ui提供相关的服务;
若sg正确,则表示用户Ui所提出的保护用户访问隐私的服务请求信息是合法的,检查机构D利用对称密钥kD对用户Ui所提出的保护用户访问隐私的服务请求信息进行解密,得到加密前的服务请求信息m;然后根据服务请求信息m向用户Ui提供相关的服务;
(6)服务票据的生成:识别机构O接收检查机构D反馈的服务结果,确认检查机构D是否已向用户Ui提供对应服务;
若是,则识别机构O根据用户Ui所提出的保护用户访问隐私的服务请求信息中的票据服务信息,生成服务票据;并将服务票据发送给用户Ui;
若否,则识别机构O不开具服务票据。
优选的,所述步骤(1)中系统初始化流程具体如下:
(1-1)输入系统安全参数ε、k、lp、λ,生成系统的公共参数pps={λ1,λ2,γ1,γ2,Λ,Γ,H′,H};其中ε>1,λ1>ε(λ2+k)+2,λ2>4lp,γ1>ε(γ2+k)+2,γ2>λ1+2, H':{0,1}*→{0,1}λ和H:{0,1}*→{0,1}k是两个抗碰撞的散列函数;
(1-2))生成管理机构M的私钥/公钥对为((p',q'),n):选取大素数其中p=2p′+1,q=2q′+1,p′和q′都是素数;将管理机构M的私钥定义为(p',q'),则其公钥为:n=pq;
(1-3)生成识别机构O所管理组的私钥/公钥对(x,pkG):随机选取参数a,a0,g,h∈QR(n),随机选取识别机构O的私钥x为,QR(n)表示关于模n的平方剩余类,将x作为识别机构O所管理组的私钥,通过私钥x得到识别机构O所管理组的公钥pkG:
pkG=(n,a0,a,y,g,h),y=gxmodn;
(1-4)生成检查机构D的私钥/公钥对(xD,yD):随机选取检查机构D的私钥xD为:;通过私钥xD得到其公钥yD为:
更进一步的,所述步骤(2)中用户Ui关于组签名密钥xi的授权证书的获取步骤如下:
(2-1)用户Ui向管理机构M申请加入识别机构O所管理组G的服务,管理机构M选取一个随机整数m′′∈(0,2k),并将m′′发送给用户Ui;用户Ui生成一个秘密的指数和一个随机整数;用户Ui随机选取整数,计算,ci=H'(n||g||h||C1||C′1||m′′),,得到指数的知识证明及知识证明对应的知识签名(ci,si);
其中指数的知识证明为:
(2-2)用户Ui将和指数的知识证明对应的知识签名(ci,si)发送给管理机构M;
(2-3)管理机构M认证用户Ui提交的知识签名(ci,si):首先管理机构M利用用户发送的C1和知识签名(ci,si)恢复出,得到,然后检查其接收到的si和ci是否满足下述条件:且ci=H'(n||g||h||C1||C′1||m′′);
若以上条件成立,则证明用户Ui知道指数,且是在开区间的值;
若以上条件不成立,则管理机构M要求用户Ui重新选取新的指数
(2-4)管理机构M检查C1是否满足:C1∈QR(n);若满足,管理机构M将随机选取αi,,并将αi和βi发送给用户Ui;
(2-5)用户Ui构造组签名密钥,通过组签名密钥xi得到 ,令 ,则
用户Ui根据其选取的和,利用αi和βi,得到整数和;又 ,从而得到 ;用户Ui随机选取整数 ,计算 ci′=H'(n||g||h||a||C2||C′2||y||y′||m′′),su=u′-ci′u,sv=v′-ci′v,sω=w′-ci′ω;得到秘密(u,v,ω)的知识证明及知识证明对应的知识签名Σ=(ci′,su,sv,sω);
其中(u,v,ω)的知识证明为:
SPK{(u,v,ω):
(2-6)用户Ui将、秘密(u,v,ω)的知识证明对应的知识签名Σ=(ci′,su,sv,sω)发送给管理机构M;
(2-7)管理机构M认证用户Ui提交的知识签名Σ=(ci′,su,sv,sω):首先管理机构M利用用户发送的C2和知识签名Σ=(ci′,su,sv,sω)恢复出C′2、y和y′: ,检查su、sv、sω和c′是否同时满足以下条件: ,且ci′=H'(n||g||h||a||C2||C′2||y||y′||m′′);
(2-8)若步骤(2-7)中的条件均成立,则证明用户从C1、αi和βi已正确地得到密钥xi;管理机构M检查C2是否满足:C2∈QR(n);若满足,则选取一个随机素数ei,ei∈Γ,通过ei得到modn;然后,管理机构M将用户Ui关于组签名密钥xi的授权证书Ci={ei,Ai}发送给用户Ui,同时将注册信息(Ui,ei,Ai)发送给组G的管理者识别机构O;
(2-9)用户Ui通过检查授权证书Ci的准确性,若该等式成立,则用户Ui将组签名密钥xi和授权证书Ci进行保存;在步骤(2-3)至(2-9)中的任意一次认证或检查失败,用户Ui与管理机构M重复步骤(2-1)至(2-9),直到用户Ui获得正确的授权证书Ci。
更进一步的,所述步骤(3)生成保护用户访问隐私的服务请求信息的步骤如下:
(3-1-1)用户Ui选取随机整数,根据检查机构D的公钥yD计算Diffie-Hellman密钥
用户Ui利用散列函数H′,生成长度为λ的对称密钥kD=H′(KD);
(3-1-2)用户Ui采用对称密钥kD=H′(KD)对其提出的服务请求信息m进行加密,得到保护用户访问隐私的请求信息;其中用户Ui所提出的服务请求信息m为:
m=md||α||mf||C,
其中α为用户Ui向检查机构D请求的服务类型,即用户服务请求的关键敏感数据,C为票据要求输出的信息,md和mf分别表示服务请求信息m中关键敏感数据α的前后两部分信息;
用户Ui利用kD密钥使用对称加密算法对服务类型α进行加密,得到密文Cα为:
得到保护用户访问隐私的请求信息为:
更进一步的,所述步骤(3)中用户Ui所提出的保护用户访问隐私的服务请求信息的组签名sg生成步骤如下:
(3-2-1)用户Ui利用识别机构O所管理组G的公钥pkG中的y=gxmodn、用户Ui的组签名密钥xi、管理机构M发送给它的授权证书Ci={ei,Ai}及步骤(3-1-1)随机选取的整数得到参数T1、T2和T3如下:
T1=Aiywmodn,T2=gwmodn和
(3-2-2)用户Ui随机选取整数r1、r2、r3和r4,其中r1、r2、r3和r4满足 和
(3-2-3)根据步骤(3-2-1)及(3-2-2)得到d1、d2、d3和d4如下:
和
(3-2-4)通过步骤(3-2-1)及(3-2-3)得到参数c为:
c=H(g||h||y||a0||a||T1||T2||T3||T4||d1||d2||d3||d4||m′);
其中符号||表示字符串的串接,
(3-2-5)通过步骤(3-2-4)得到参数s1、s2、s3和s4:
s3=r3-ceiw和s4=r4-cw;
(3-2-6)最后得到用户Ui组签名sg为:
sg=(c,s1,s2,s3,s4,T1,T2,T3)。
更进一步的,所述步骤(4)中识别机构O对组签名sg正确性的判断步骤如下:
(4-1)识别机构O将接收到的用户Ui所提出的保护用户访问隐私的服务请求信息的组签名sg拆分成:(c,s1,s2,s3,s4,T1,T2,T3);
(4-2)通过步骤(4-1)计算得到参数d′1、d′2、d′3和d′4如下:
和
(4-3)通过步骤(4-2)计算得到参数c′:
c′=H(g||h||y||a0||a||T1||T2||T3||T4||d′1||d′2||d′3||d′4||m′),其中
(4-4)判断步骤(4-3)中得到的参数c′和参数c是否相等、s1是否满足 s2是否满足 s3是否满足 以及s4是否满足
(4-5)若步骤(4-4)条件均成立,则用户Ui发送给识别机构O的组签名sg是正确的,即用户Ui所提出的保护用户访问隐私的服务请求信息是合法的,它来自识别机构O所管理组的一个授权用户;否则用户Ui发送给识别机构O的组签名sg是不正确的,即用户Ui所提出的服务请求信息不合法,识别机构O将丢弃该保护用户访问隐私的服务请求信息
更进一步的,所述步骤(4-4)的条件成立后,识别机构O根据用户Ui所提出的保护用户访问隐私的服务请求信息组签名sg中的分量T1和T2,利用用户Ui所属组G的私钥x得到:;然后依据Ai搜索组G的授权证书管理数据库,确认用户Ui是否为已撤销组的成员资格,
若数据库中存在授权证书Ci=(Ui,Ai,ei),则表明用户Ui认为组G的组成员,否则用户Ui的组成员资格已被撤销,识别机构O丢弃用户Ui所提出的保护用户访问隐私的服务请求信息
更进一步的,所述步骤(5)中检查机构D利用对称密钥kD对用户Ui所提出的保护用户访问隐私的服务请求信息进行解密的步骤如下:
(5-1)检查机构D根据用户Ui提出的保护用户访问隐私的服务请求信息得到其服务类型的密文Cα;
(5-2)检查机构D根据组签名sg中的T2,利用其私钥xD计算Diffie-Hellman密钥;然后使用KD和散列函数H′,生成长度为λ的对称密钥kD=H′(KD);
(5-3)利用对称密钥kD解密密文Cα,得到用户Ui提出的保护用户访问隐私的服务请求信息中的关键敏感数据α;然后利用关键敏感数据α代替中的Cα,得到用户Ui原来的服务请求信息m。
更进一步的,所述步骤(6)中识别机构O根据授权证书管理数据库中其搜索得到的授权证书Ci=(Ui,Ai,ei),获取用户的身份信息Ui;开具身份信息为Ui、服务信息为C的服务票据,同时将检查机构D的标识符、用户Ui服务请求信息中的服务类型密文Cα以及组签名sg分量T2写入到服务票据的附注中。
优选的,还包括票据信息和服务信息的稽查步骤,执法部门收集有违法嫌疑用户的服务票据,利用每张票据中的附注信息,要求执行相应服务认证的检查机构D恢复出真实服务请求中的关键敏感数据,为执法提供相关的证据。
本发明相对于现有技术具有如下的优点及效果:
(1)本发明方法中使用Diffie-Hellman密钥协商机制建立用户与检查机构D共享的对称加密密钥,然后使用对称加密密钥对用户提出的服务请求信息中的关键敏感数据进行加密,得到保护用户访问隐私的服务请求信息,将所得到的保护用户访问隐私的服务请求信息及其组签名发送给识别机构O,识别机构O不能根据其接收到的保护用户隐私的请求信息追踪用户所提出的服务类型等关键敏感数据,实现了用户请求信息中服务类型与用户身份的不可连接性,在票据生成过程中保护了用户的访问隐私。
由于识别机构O的识别结果只有其自身知道,不会告知检查机构D,识别机构O将保护用户访问隐私的请求信息及其组签名传送给检查机构D;检查机构D通过组签名认证用户请求的正确性,知道用户所属的组,但不知道用户是谁;然后检查机构D对正确的请求信息解密,得到用户的真实请求信息m,给用户提供服务,所以检查机构D知道用户需要什么,但不知道这个用户是谁;因此其对用户提供的是匿名服务,更好的保护了用户的隐私。
另外由于本发明方法中用户发送的服务请求信息是经过加密处理的,该经过加密处理的服务请求信息由识别机构O转发到检查机构D中的,因此检查机构D接收的服务请求信息也是经过加密处理后的,识别机构O不可能追踪到未经加密处理的服务请求信息。对具有窃听能力的识别机构O隐藏了用户的服务类型,增强了安全性能。
(2)本发明方法中服务请求信息所使用的检查机构D和用户的共享对称加密密钥kD是采用了Diffie-Hellman密钥协商机制建立的,因此识别机构O很难通过从组签名sg和检查机构D的公钥得出该密钥kD,从而对经过保护用户访问隐私的服务请求信息进行解密,Diffie-Hellman密钥协商机制进一步提高了保护用户访问隐私的服务请求信息在识别机构O中的安全性。
(3)组成员的撤销是组签名所面对的一个难处理的问题,而实际应用中通常需要面对这一情形,本发明方法保护用户访问隐私的服务请求信息及其组签名sg不是直接发送给检查机构D,而是先发送给识别机构O,识别机构O利用组签名sg得到用户的授权证书,确认用户的授权证书是否还在授权证书管理数据库中,以核实用户是否还为组的授权成员;若是,识别机构O才将用户提出的保护用户访问隐私的服务请求信息及其组签名发送给检查机构D,使得组的授权成员才能享受检查机构D提供的服务。当管理机构M需要撤销用户Ui的授权证书Ci时,通知识别机构O;识别机构O收到通知后,将授权证书管理数据库中用户Ui对应的记录Ci删除;因此本发明方法可以实现对组成员资格的审查及撤销操作,提高了系统的实用性。
(4)本发明方法使用Diffie-Hellman密钥协商机制和输出长度为λ的散列函数生成用户与检查机构D共享的对称加密密钥,使对称加密密文长度远小于Chameleon哈希函数中的Proceed算法的计算结果α′,且不用传输ρ′,减小了保护用户访问隐私的用户服务请求信息的长度,降低了通信开销成本。
(5)本发明提供了执法部门对保护用户访问隐私票据的稽查功能,可防止恶意用户使用网络进行犯罪行为,并为执法部门提供了一个相关的取证过程。
(6)本发明中组签名的密钥只有用户Ui知道,包括管理机构M在内其它任何实体均无法得知密钥xi。由于秘密指数是由用户Ui随机生成的,管理服务器M只知道(αi,βi),不能计算出xi。这样利用密钥xi生成的组签名只能来自用户Ui,即使管理机构M也不能冒充用户Ui进行签名。
附图说明
图1是实现本发明方法系统的结构示意图;
图2是实现本发明方法系统中管理机构M的结构组成框图;
图3是本发明方法的流程图;
图4是本发明方法初始化的流程图;
图5是本发明方法中授权证书获取流程图;
图6是本发明方法中保护用户访问隐私的服务请求信息及其组签名的生成流程图;
图7是本发明方法中组签名正确性判断及用户组成员资格判断流程图;
图8是本发明方法中检查机构D提供服务的流程图;
图9是本发明方法中保护用户隐私的服务票据生成的流程图;
图10是本发明方法服务票据和服务信息稽查的流程示意图;
图11-A是本发明方法中用户原服务请求信息中的药品订购单图;
图11-B是本发明方法中用户将关键敏感数据加密后生成保护用户访问隐私的请求信息的药品订购单图;
图11-C是本发明方法中用户将敏感信息加密成“保健药品”后生成有稽查附注信息的服务票据图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例
本实施例一种网络服务中保护用户访问隐私的票据生成方法,如图1所示,用于实现本实施例票据生成方法的票据生成系统中包括管理机构M1、检查机构D2、识别机构O3和用户设备4;管理机构M、检查机构D和识别机构O之间通过数据传输总线相互连接,用户设备通过数据线或网络相互连接,管理机构M、检查机构D和识别机构O分别通过网络与用户设备连接。
管理机构M:用于分配检查机构、识别机构的公钥/私钥对以及生成组的公钥,并且生成用户Ui关于组签名密钥的授权证书。
检查机构D:用于匿名认证用户服务请求的合法性,并对合法请求提供相应的服务。
识别机构O:用于确认发出服务请求信息的用户是否合法及是否具备当前的组成员资格,识别出用户的身份、并对检查机构已提供服务的用户按指定的票据服务信息内容开具相应的服务票据。
用户设备:利用所持有的授权证书,请求获取网上的有关服务,并要求开具指定票据服务信息内容的服务票据。
用户设备通过网络提交保护用户访问隐私的服务请求信息,识别机构认证其合法性和用户的组成员资格后,通过网络从检查机构D获取服务,随后从识别机构得到服务票据。
如图2所示,本实施例管理机构内部结构组成示意图,本实施例的管理机构M可以是一台个人计算机、膝上型电脑、服务器计算机、客户计算机、小型机、大型机或分布式计算机系统等。管理机构M为一个数据处理系统的结构,存在一个或多个处理器211(如CPU)、一个系统存储212(如只读存储器ROM、随机存储器RAM),一个外置存储器213和一条数据传送总线214。处理器211、系统存储212和外置存储器213通过数据传送总线214分别与显示控制器215和I/O控制器217将相连,显示控制器215和显示设备216相连,I/O控制器217分别与输入设备2171(如鼠标、键盘)、输出设备2172(如调制解调器、网络接口)和阅读器2173(如CD-ROM)等外围设备相连。
其中管理机构M外置存储器213中存放了系统初始化程序221、服务器公钥/私钥生成程序222、组的创建程序223、组成员授权证书生成程序224和通信程序225。这些程序通过一个处理器211执行它们的代码,导出需要的功能。在管理机构M上,处理器211分别在对应的系统初始化231、服务器公钥/私钥生成单元232、组的创建单元233、组成员授权证书生成生成单元234和通信处理单元235执行这些程序。
用户设备可以是个人计算机、膝上型电脑、游戏控制台、家庭娱乐系统、数字视频装置、服务器计算机、客户计算机、小型机、大型机或分布式计算机系统等。这些设备与管理机构有类似的结构。用户设备的外置存储器存放了待处理的服务请求信息,系统的公开参数、服务器公钥、组的授权证书、通信程序、签名密钥生成与认证程序、服务请求信息预处理程序、Diffie-Hellman密钥生成程序、对称加密程序和组签名生成程序。相应地,用户设备CPU分别在对应的通信单元、签名密钥生成与认证单元、服务请求信息预处理单元、Diffie-Hellman密钥生成单元、对称加密单元和组签名生成单元执行这些程序。为了安全起见,也可以将组的授权证书及其相关数据保存在防篡改的存储设备(如,智能卡)中,这时,需要在每个用户的外存储设备存放一个智能卡处理程序。
检查机构D具有与管理机构类似的结构。检查机构D的外置存储器存放了通信程序、组签名认证程序、Diffie-Hellman密钥生成程序、对称加密解密程序、用户请求服务调度程序和服务票据稽查程序。检查机构上的CPU分别在通信单元、组签名认证单元、Diffie-Hellman密钥生成单元、对称加密解密单元、用户请求服务调度单元和服务票据稽查单元执行这些程序。
识别机构O也具有与管理机构M类似的结构。识别机构的外置存储器存放了系统的公开参数、组成员的授权证书、待处理的服务请求信息、通信程序、组签名认证程序、票据生成程序、票据打印程序和和票据投递调度程序。识别机构上的CPU分别在通信单元、组签名认证单元、票据生成单元、票据打印单元和票据投递调度单元执行这些程序。
如图3所示为本实施例一种网络服务中保护用户访问隐私的票据生成方法的流程图,包括以下步骤:
(1)票据生成系统初始化和组的构建:根据输入系统安全参数生成系统公共参数,构建相关的组,分别生成管理机构M、检查机构D、识别机构O所管理组的私钥/公钥对;具体步骤如图4所示:
(1-1)输入系统安全参数ε、k、lp、λ,生成系统的公共参数pps={λ1,λ2,γ1,γ2,Λ,Γ,H′,H};其中ε>1,λ1>ε(λ2+k)+2,λ2>4lp,γ1>ε(γ2+k)+2,γ2>λ1+2, H′:{0,1}*→{0,1}λ和H:{0,1}*→{0,1}k是两个抗碰撞的散列函数;
(1-2))生成管理机构M的私钥/公钥对为((p',q'),n):选取大素数其中p=2p′+1,q=2q′+1,p′和q′都是素数;将管理机构M的私钥定义为(p',q'),则其公钥为:n=pq。
(1-3)生成识别机构O所管理组的私钥/公钥对(x,pkG):随机选取参数a,a0,g,h∈QR(n),随机选取识别机构O的私钥x为,QR(n)表示关于模n的平方剩余类,将x作为识别机构O所管理组的私钥,通过私钥x得到识别机构O所管理组的公钥pkG:
pkG=(n,a0,a,y,g,h),y=gxmodn。
(1-4)生成检查机构D的私钥/公钥对(xD,yD):随机选取检查机构D的私钥xD为:;通过私钥xD得到其公钥yD为:
(2)用户的授权和撤销:用户Ui向管理机构M申请注册成为其中一个组的成员,然后构建一个组签名密钥xi,并从管理机构M中获取用户Ui关于组签名密钥xi的授权证书Ci;识别机构O创建和管理授权证书管理数据库;当管理机构M需要撤销用户Ui关于组签名密钥xi的授权证书Ci时,通知识别机构O;识别机构O收到通知后,将授权证书管理数据库中用户Ui对应的记录Ci删除,即撤销用户Ui的组成员资格;其中用户Ui关于组签名密钥xi的授权证书Ci获取过程如图5所示:
(2-1)用户Ui向管理机构M申请加入识别机构O所管理组G的服务,管理机构M选取一个随机整数m′′∈(0,2k),并将m′′发送给用户Ui;用户Ui生成一个秘密的指数和一个随机整数;用户Ui随机选取整数,计算,ci=H'(n||g||h||C1||C′1||m′′),,得到指数的知识证明及知识证明对应的知识签名(ci,si);
其中指数的知识证明为:
(2-2)用户Ui将和指数的知识证明对应的知识签名(ci,si)发送给管理机构M。
(2-3)管理机构M认证用户Ui提交的知识签名(ci,si):首先管理机构M利用用户发送的C1和知识签名(ci,si)恢复出C′1,得到,然后检查其接收到的si和ci是否满足下述条件:且ci=H'(n||g||h||C1||C′1||m′′);
若以上条件成立,则证明用户Ui知道指数且是在开区间的值;
若以上条件不成立,则管理机构M要求用户Ui重新选取新的指数
(2-4)管理机构M检查C1是否满足:C1∈QR(n);若满足,管理机构M将随机选取,并将αi和βi发送给用户Ui。
(2-5)用户Ui构造组签名密钥 计算 令 ,则
用户Ui根据其选取的和利用αi和βi,得出整数和 ;又 ,从而得到 ;用户Ui随机选取整数 ,计算 ci′=H'(n||g||h||a||C2||C′2||y||y′||m′′),su=u′-ci′u,sv=v′-ci′v,sω=w′-ci′ω;得到秘密(u,v,ω)的知识证明及知识证明对应的知识签名Σ=(ci′,su,sv,sω);
其中(u,v,ω)的知识证明为
SPK{(u,v,ω):
(2-6)用户Ui将、秘密(u,v,ω)的知识证明对应的知识签名Σ=(ci′,su,sv,sω)发送给管理机构M。
(2-7)管理机构M认证用户Ui提交的知识签名Σ=(ci′,su,sv,sω):首先管理机构M利用用户发送的C2和知识签名Σ=(ci′,su,sv,sω)恢复出C′2、y和y′: 检查su、sv、sω和c′是否同时满足以下条件: ,且ci′=H'(n||g||h||a||C2||C′2||y||y′||m′′)。
(2-8)若步骤(2-7)中的条件均成立,则证明用户从C1、αi和βi已正确地计算出密钥xi;管理机构M检查C2是否满足:C2∈QR(n);若满足,则选取一个随机素数ei,ei∈Γ,通过ei得到然后,管理机构M将用户Ui关于组签名密钥xi的授权证书Ci={ei,Ai}发送给用户Ui,同时将注册信息(Ui,ei,Ai)发送给组G的管理者识别机构O。
(2-9)用户Ui通过检查授权证书Ci的准确性,若该等式成立,则用户Ui将组签名密钥xi和授权证书Ci进行保存;在步骤(2-3)至(2-9)中的任意一次认证或检查失败,用户Ui与管理机构M重复步骤(2-1)至(2-9),直到用户Ui获得组签名密钥xi的正确的授权证书Ci。
(3)生成保护用户访问隐私的服务请求信息及其组签名:采用Diffie-Hellman密钥交换算法,建立用户Ui与检查机构D的共享密钥KD,通过共享密钥KD得到用户Ui与检查机构D的共享对称密钥kD,然后采用共享对称密钥kD对用户Ui提出的服务请求信息m中的关键敏感数据进行加密,得到保护用户访问隐私的服务请求信息利用识别机构O所管理且用户Ui所属组的公钥及用户Ui的授权证书Ci,生成用户Ui服务请求信息的组签名sg;其中保护用户访问隐私的服务请求信息生成步骤如图6所示:
(3-1-1)用户Ui选取随机整数,根据检查机构D的公钥yD计算Diffie-Hellman密钥
用户Ui利用散列函数H′,生成长度为λ的对称密钥kD=H′(KD);
(3-1-2)用户Ui采用对称密钥kD=H′(KD)对其提出的服务请求信息m进行加密,得到保护用户访问隐私的请求信息;其中用户Ui所提出的服务请求信息m为:
m=md||α||mf||C,
其中α为用户Ui向检查机构D请求的服务类型,即用户服务请求的关键敏感数据,C为票据要求输出的信息,md和mf分别表示服务请求信息m中关键敏感数据α的前后两部分信息;
用户Ui选用对称加密算法AES(AdvancedEncryptionStandard、高级加密标准),利用密钥kD对服务类型α进行加密,得到密文Cα为:
得到保护用户访问隐私的请求信息的服务请求信息为:
组签名sg的生成步骤如图6中虚线框所示:
(3-2-1)用户Ui利用识别机构O所管理组G的公钥pkG中的y=gxmodn、用户Ui的组签名密钥xi、管理机构发送给它的授权证书Ci={ei,Ai}及步骤(3-1-1)随机选取的整数w得到参数T1、T2和T3如下:
T1=Aiywmodn,T2=gwmodn和
(3-2-2)用户Ui随机选取整数r1、r2、r3和r4,其中r1、r2、r3和r4满足 和
(3-2-3)根据步骤(3-2-1)及(3-2-2)得到d1、d2、d3和d4如下:
和
(3-2-4)通过上述步骤得到参数c为:
c=H(g||h||y||a0||a||T1||T2||T3||T4||d1||d2||d3||d4||m′);
其中符号||表示字符串的串接,
(3-2-5)通过上述步骤得到参数s1、s2、s3和s4:
s3=r3-ceiw和s4=r4-cw。
(3-2-6)最后得到用户Ui组签名sg为:
sg=(c,s1,s2,s3,s4,T1,T2,T3)。
用户Ui通过网络将保护用户访问隐私的服务请求信息及其组签名sg发送给识别机构O;
(4)用户服务请求的认证:识别机构O首先验证用户Ui所提出的保护用户访问隐私的服务请求信息的组签名sg是否正确,
若sg不正确,则表示用户Ui所提出的保护用户访问隐私的服务请求信息不合法,识别机构O丢弃该保护用户访问隐私的服务请求信息
若sg正确,则表示用户Ui所提出的保护用户访问隐私的服务请求信息是合法的,识别机构O利用其所管理且用户Ui所属组的私钥及组签名sg计算出用户Ui的授权证书Ci。
其中识别机构O对组签名sg正确性的判断步骤如图7中虚线框所示:
(4-1)识别机构O将接收到的用户Ui所提出的保护用户访问隐私的服务请求信息的组签名sg拆分成:(c,s1,s2,s3,s4,T1,T2,T3)。
(4-2)通过步骤(4-1)得到参数d′1、d′2、d′3和d′4如下:
和
(4-3)通过步骤(4-2)得到参数c′:
c′=H(g||h||y||a0||a||T1||T2||T3||T4||d′1||d′2||d′3||d′4||m′),其中
(4-4)判断步骤(4-3)中得到的参数c′和参数c是否相等、s1是否满足 s2是否满足 s3是否满足 以及s4是否满足
(4-5)若步骤(4-4)条件均成立,则用户Ui发送给识别机构O的组签名sg是正确的,否则用户Ui发送给识别机构O的组签名sg是不正确的。
如图7所示,在判断组签名sg正确后,识别机构O根据组签名sg中的分量T1和T2,利用用户Ui所属组G的私钥x得到:;然后依据Ai搜索组G的授权证书管理数据库,确认用户Ui的组成员资格是否已被撤销;
若数据库中存在授权证书Ci=(Ui,Ai,ei),则表明用户Ui仍为组G的组成员,否则用户Ui的组成员资格已被撤销,识别机构O丢弃用户Ui所提出的服务请求信息
(5)为用户提供服务:如图8所示,检查机构D接收到用户Ui的保护用户访问隐私的服务请求信息及其组签名sg后,通过验证用户Ui所提出的保护用户访问隐私的服务请求信息的组签名sg是否正确来判断用户Ui所提出的保护用户访问隐私的服务请求信息的合法性,然后将是否为用户Ui提供了服务的结果反馈给识别机构O;其中检查机构D对组签名sg的判断方法如步骤(4-1)至(4-4)所示,
若sg不正确,则表示用户Ui所提出的保护用户访问隐私的服务请求信息不合法,检查机构D不向用户Ui提供相关的服务;
若sg正确,则表示用户Ui所提出的保护用户访问隐私的服务请求信息是合法的,检查机构D利用对称密钥kD对用户Ui所提出的保护用户访问隐私的服务请求信息进行解密,得到加密前的服务请求信息m;然后根据服务请求信息m向用户Ui提供相关的服务。
其中检查机构D利用对称密钥kD对用户Ui所提出的保护用户访问隐私的服务请求信息进行解密的步骤如图8所示:
(5-1)检查机构D根据用户Ui提出的保护用户访问隐私的服务请求信息得到其服务类型的密文Cα。
(5-2)检查机构D根据组签名sg中的T2,利用其密钥xD计算Diffie-Hellman密钥;然后使用KD和散列函数,生成长度为λ的对称密钥kD=H′(KD)。
(5-3)利用对称密钥kD解密密文Cα,得到用户Ui提出的保护用户访问隐私的服务请求信息中的关键敏感数据α;然后利用关键敏感数据α代替中的Cα,得到用户Ui原来的服务请求信息m。
(6)服务票据的生成:如图9所示,识别机构O接收检查机构D反馈的服务结果,确认检查机构D是否已向用户Ui提供对应服务;
若是,则识别机构O根据授权证书管理数据库中搜索得到的授权证书Ci=(Ui,Ai,ei),获取用户的身份信息Ui,开具身份信息为Ui、服务信息为C的服务票据,同时将检查机构D的标识符、用户Ui所提出的保护用户访问隐私的服务请求信息中的服务类型密文Cα以及组签名sg分量T2写入到服务票据的附注中。并且通过可靠的渠道将服务票据发送给用户Ui。
若否,则识别机构O不开具服务票据。
(7)票据信息和服务信息的稽查:执法部门收集有违法嫌疑用户的服务票据,利用每张票据中的附注信息,要求执行相应服务认证的检查机构D恢复出真实服务请求中的关键敏感数据,为执法提供相关的证据。
收集有违法嫌疑的用户Ui的保护用户隐私的服务票据:执法部门向识别机构O出示法律部门的文书,要求识别机构O提供有违法嫌疑的用户Ui的服务票据;执法部门稽查的具体步骤如图10所示:
(7-1)执法部门根据收集的用户Ui的服务票据,按照附注中标注的服务执行者检查机构D的标识符分类。
(7-2)执法部门向检查机构D出示法律部门的文书,要求检查机构D显示有违法嫌疑用户的所有真实服务类型。
(7-3)检查机构D读取每张服务票据附注中的服务类型密文Cα和组签名分量T2。
(7-4)输入检查机构D私钥xD,计算得到对称加密使用的共享密钥
(7-5)利用密钥kD解密服务类型密文Cα,得到真实的服务类型α。
(7-6)标注每张用户Ui的服务票据对应的真实服务类型α,统计汇总交执法部门。
其中步骤(2-5)生成的组签名密钥,只有用户Ui知道,包括管理机构M在内其它任何实体均无法得知密钥xi。由于秘密指数是由用户Ui随机生成的,管理服务器M只知道(αi,βi),不能计算出xi。这样利用密钥xi生成的组签名只能来自用户Ui,即使管理机构M也不能冒充用户Ui进行签名。
如图11-A所示,用户李三提出的原服务请求信息中的药品订购单信息,从图11-A可以看出,原服务请求信息中包含用户不希望让其他人知道的关键敏感数据:齐多夫定片,安微贝克生物制药有限公司。即原服务请求信息m中的α为:齐多夫定片,安微贝克生物制药有限公司。
如图11-B所示为用户使用本实施例方法对关键敏感数据“齐多夫定片和安徽贝克生物制药有限公司”进行加密后得到保护用户访问隐私的请求信息中的药品订购单,即将原服务请求信息m中的关键敏感数据α“齐多夫定片、安微贝克生物制药有限公司”加密成Cα。从加密处理后的药品订购单中其他人无法得知服务请求信息中的关键敏感数据,很好的保护了用户的隐私。
图11-C所示为用户使用本实施例方法后所开具的包含有稽查附注信息的服务票据,该用户将药品“齐多夫定片”的服务票据输出内容指定为“保健药品”。即服务请求信息中票据要求输出的信息c为保健药品,使得其他人员无法通过服务票据内容得知用户实际所需要的服务请求信息。使得用户的隐私信息得到恰当的保护。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。