发明名称 可信平台远程证明的匿名认证算法
摘要 本发明提供一种可信平台远程证明的匿名认证算法,采用本发明所述方法,匿名性好,并且既验证了发送方的身份信息,又保障了发送方的隐私信息,而且采用的幂指计算,其计算次数为常数,减少了加密、解密运算的次数,不会随着签名环的规模增大影响方案效率,具有相对来说可信平台能够接受的算法复杂度,综上,基本可以满足可信平台之间直接、匿名的身份验证。
申请公布号 CN102291396B 申请公布日期 2014.01.29
申请号 CN201110218652.9 申请日期 2011.08.01
申请人 杭州信雅达数码科技有限公司 发明人 李海建;程宏峰
分类号 H04L29/06(2006.01)I;H04L9/32(2006.01)I;H04L9/30(2006.01)I 主分类号 H04L29/06(2006.01)I
代理机构 杭州华知专利事务所 33235 代理人 张德宝
主权项 1.一种可信平台远程证明的匿名认证算法,其特征在于:它包括以下步骤: (1)、参数初始化:涉及验证双方的可信平台选择两个互异的大素数PR<sub>1</sub>、PR<sub>2</sub>,设定参数n<sub>A</sub>=PR<sub>1</sub>PR<sub>2</sub>,e<sub>A</sub>=(PR<sub>1</sub>-1)(PR<sub>2</sub>-1),设定公共参数g<sub>A</sub>,g<sub>A</sub>为不超过n<sub>A</sub>的正整数,同时通过可信平台的密钥生成器及参数e<sub>A</sub>生成公私钥对(e<sub>A</sub>,d<sub>A</sub>),其中e<sub>A</sub>为私钥,d<sub>A</sub>为生成的公钥,设定安全单向累加器H,随机序列X(x<sub>1</sub>,x<sub>2</sub>…x<sub>s-1</sub>,x<sub>s+1</sub>…,x<sub>t</sub>),其中x<sub>1</sub>,x<sub>2</sub>…x<sub>s-1</sub>,x<sub>s+1</sub>…-,x<sub>t</sub>为数值或字符,抗碰撞散列函数h; (2)、发送方平台选择任意t-1个可信平台的公钥,与自身的公钥p<sub>s</sub>构成公钥序列{p<sub>1</sub>,p<sub>2</sub>……-,p<sub>t</sub>},其中t为匿名等级参数,由发送方平台自行设定t的值; (3)、选择抗碰撞散列函数h,令h={0,1}<sup>*</sup>→{0,1}<sup>l</sup>,l=rd,其中r为指定散列化后的比特数,d为块长,l为序列长度,计算y<sub>i</sub>=h(x<sub>i</sub>),i≠s,得出序列Y1(y<sub>1</sub>,y<sub>2</sub>…y<sub>s-1</sub>,y<sub>s+1</sub>…,y<sub>t</sub>); (4)、将序列Y1中的y<sub>i</sub>按每d位一组,划分为r组,得y<sub>i1</sub>,y<sub>i2</sub>…y<sub>ir</sub>,逐个计算<img file="FDA0000371766750000013.GIF" wi="44" he="56" /><img file="FDA0000371766750000014.GIF" wi="436" he="74" />,上述公式是指将y<sub>ij</sub>与值为0、长度为d的比特块做异或运算,若其结果不为零,则将之置为1,反之则为0,重新计算<img file="FDA0000371766750000011.GIF" wi="956" he="168" />获得散列后位长为r的序列Y2(y<sub>1</sub>,y<sub>2</sub>…y<sub>s-1</sub>,y<sub>s+1</sub>…,y<sub>t</sub>),<img file="FDA0000371766750000012.GIF" wi="53" he="60" />为逐比特异或运算;(5)、发送方平台由密钥生成器生成一个身份验证密钥,记为δ,并选择一个私有信息s<sub>A</sub>,计算y<sub>A</sub>=(g<sub>A</sub><sup>-δ</sup>),x<sub>A</sub>=(g<sub>A</sub><sup>sA</sup>)<sup>δ</sup>,则待发送的签名信息m=(n<sub>A</sub>,e<sub>A</sub>,y<sub>A</sub>,x<sub>A</sub>); (6)、选择一个环签名函数,并将序列Y2带入环签名方程c<sub>k</sub>(y<sub>1</sub>,……,y<sub>n</sub>,m)=v,v为数字签名,k为对称加密算法,k=H(p<sub>1</sub>,p<sub>2</sub>,…p<sub>t</sub>),其对应的验证方程σ=vf(p1,p2,…pt;m,v); (7)、发送方平台发送验证方程σ、数字签名v和签名信息m=(n<sub>A</sub>,e<sub>A</sub>,y<sub>A</sub>, x<sub>A</sub>)到验证方平台,开始验证; (8)、验证方平台在接收到发送方平台发送的签名信息m和验证方程σ、数字签名v之后,首先验证身份的合法性,若身份非法,则拒绝请求,若合法,则进行下一步骤; (9)、验证方平台随机选择一个私有信息s<sub>B</sub>,并计算k<sub>1</sub>=(x<sub>A</sub>)<sup>sB</sup>modn<sub>A</sub>,同时返回e<sub>A</sub>(s<sub>B</sub>)给发送方平台; (10)、发送方平台在接收到验证方平台的返回信息之后,计k<sub>2</sub>=(δd<sub>A</sub>(e<sub>A</sub>(s<sub>B</sub>))+s<sub>A</sub>))<sup>sB</sup>并返回计算结果k<sub>2</sub>给验证方平台; (11)、验证方平台接收到发送方平台返回的k<sub>2</sub>,计算k<sub>3</sub>=(g<sub>A</sub><sup>k2</sup>y<sub>A</sub><sup>sB</sup>)<sup>sB</sup>modn<sub>A</sub>与k<sub>1</sub>比较,y<sub>A</sub>=(g<sub>A</sub><sup>-δ</sup>),如果k<sub>1</sub>=k<sub>3</sub>,则表明发送方平台拥有可信平台模块的密钥,反之则判定发送方平台无法提供由可信平台模块产生的身份认证密钥。 
地址 310053 浙江省杭州市滨江区江南大道3888号信雅达科技大厦