APP下载

一个前向安全代理盲签名的安全性分析与改进

2019-04-04廖小平

微型电脑应用 2019年3期
关键词:拥有者私钥公钥

廖小平

(四川文理学院 智能制造学院, 达州 635000)

0 引言

数字签名的概念首先由Diffie和Hellman[1]利用公钥密码的思想在1976年提出。随着研究的深入,许多具有特殊性质的数字签名方案相继被提出,如1983年,David Chaum提出盲签名[2]、1996年,Mambo提出代理签名[3],1997年,R.Anderson[4]提出前向安全的概念,近年来,将多种技术相结合设计新的具有特殊性质的数字签名方案越来越受到重视。肖红光[5]等人提出了首个前向安全代理盲签名方案,卢书一硕士论文[6]对肖红光的文章进行了分析。指出该方案签名不具有前向安全性,前向安全性只限于代理密钥,并给出了攻击者利用交互协议与代理签名人伪造签名的过程,然后给出了一个改进的方案(LSY方案),但经分析发现,LSY方案中存在公钥替换攻击缺陷,即签名方案中用到的公钥没有经过认证,可能是伪造的,存在公钥替换攻击。因此,必须对公钥进行认证,即确认所使用的公钥确实是通信方的而不是其他人的。目前,对公钥进行认证可以采用基于传统公钥证书的公钥密码体制,但此机制存在复杂的公钥证书管理问题,也可以利用基于身份密码体制[7],但此机制存在“密钥托管”问题,为了解决“复杂的公钥证书管理问题”和“密钥托管问题”,2003年,AI-Riyami等提出了无证书密码体制[8],相继设计了许多签名和加密方案[9-11],这种密码体制是通过某种方法来保障签名者公钥的真实性和有效性,并且用户的签名密钥是由用户和密钥生成中心共同生成,密钥生成中心不知道用户最后的签名私钥,也就无法伪造用户的授权以及签名。本文基于无证书密码体制提出一种改进方案,改进方案具有原方案安全性的同时也具有无证书密码体制的特点。

1 LSY方案的安全性分析

LSY方案请参见文献[6],此处对方案进行安全性分析。原始签名人A给代理签名人B授权的过程中,存在攻击者伪造原始签名人A的公钥通过验证,即任何攻击者都可以伪造原始签名人A的公钥,并且通过验证,具体攻击过程如下:

所以,任何攻击者都可以伪造原始签名人A的公钥发送给代理签名人B,并通过验证,因此,恶意的攻击者可以滥用授权信息给代理签名人B进行授权,并声称该授权是原始签名人A产生的,进而对原始签名人A进行诬陷,所以该方案存在公钥替换攻击问题。

2 方案的改进

2.1 初始化阶段

(1)选择一个正整数n,选择两个大素数p,q,GF(n)是一个有限域,g∈RZ是生成元,阶为q,并且满足gq≡1 modn, 选择x为系统主密钥,计算出系统主公钥:Ppub=gxmodn

(2)A为原始签名人,A的身份信息为IDA,计算:QA=H1(IDA),DA=xQA,则DA为A的部分私钥。B为代理签名人,B的身份信息为IDB,计算:QB=H1(IDB),DB=xQB,则DB为B的部分私钥。C为信息m的拥有者,C的身份信息为IDC,计算:QC=H1(IDC),DC=xQC,则DC为C的部分私钥。

(3)A任意选择xA为秘密值,计算出A的私钥:sA=xADA,A的公钥:yA=gsAmodn,B任意选择xB为秘密值,计算出B的私钥:sB=xBDB,B的公钥:yB=gsBmodn,C任意选择xC为秘密值,计算出C的私钥:sC=xCDC,C的公钥:yC=gsCmodn。

2.2 代理授权阶段

2.3 密钥更新阶段

2.4 前向安全代理盲签名的产生阶段

代理签名人B和信息拥有者C共同产生代理盲签名。

(1)信息盲化阶段

step 1: B任意选择kB∈RZ,计算:t=gσjkBmodp,然后通过安全信道将(mw,rA,t)发送给C。

(2)签名阶段

B接收到u′后,计算:s′=σju′+σjkBmodq,则消息m的盲签名为(s′,u′),将s′通过安全信道发送给C。

(3)脱盲阶段

C接收到s′后,计算:s=(s′+βsC) modq,则[j,m,mw,(r,s,u)]为代理签名人B代表原始签名人A对消息m的盲签名。

2.5 验证阶段

3 方案安全性分析

3.1 正确性

r′=gsyTmodp=gs′+βxCyTmodp

=gσju′+σjkB+βxCyT=gσju′+σjkB+βxCgσjmodp

=gσj(α-u)+σjkB+βxCgσjmodp

=gσjα-σju+σjkB+βxCgσjmodp

=gσjα-σju+σjkB+βxC+umodp

=gσjα+σjkB+βxCmodp

=gσjα+σjkB+βxCmodp

=gσjαgσjkBgβxCmodp

=yTtyCmodp

=r

3.2 不可伪造性分析

(1)代理授权安全性:

(2)用户签名密钥、公钥安全性:

原始签名人A的私钥:sA=xADA=xAxQA=xAxH1(IDA)中包含A任意选择的秘密值xA,系统主密钥x,即A的私钥是由密钥生成中心和用户任意选择的秘密值构成,密钥生成中心不知道A最后的签名密钥,也就无法伪造用户的签名以及授权,任何攻击者无法知道用户任意选择的秘密值也就无法伪造用户的签名密钥,同理,代理签名者B,信息拥有者C的密钥具有同样的不可伪造性,

综述所述,新方案中,原始签名者A,代理签名者B,信息拥有者C的签名密钥是安全的,又因为公钥是通过密钥生成的,所以攻击者无法伪造其公钥。

3.3 盲性分析

3.4 不可追踪性分析

3.5 前向安全性分析

3.6 不可否认性

(1)原始签名者A无法否认给代理签名者B的授权信息

(2)代理签名者B无法否认对信息m的签名

(3)信息拥有者C无法否认自己提供的信息

在脱盲阶段:s=(s′+βsC) modq中包含信息拥有者C的密钥sC,所以信息拥有者C无法否认自己提供的信息m

综上所述,原始签名者A无法否认为代理签名者B授过权,代理签名者B无法否认对信息m的代理签名,信息拥有者C无法否认提供的信息m。

4 总结

本文经安全分析,指出LSY方案存在公钥替换攻击问题,同时,基于无证书密码体制提出了一个改进方案,改进方案解决了公钥认证问题,经安全分析,该方案是正确的,不可伪造的,密钥更新和代理盲签名都具有前向安全性。

猜你喜欢

拥有者私钥公钥
比特币的安全性到底有多高
Spatially defined single-cell transcriptional profiling characterizes diverse chondrocyte subtypes and nucleus pulposus progenitors in human intervertebral discs
程序员把7500枚比特币扔掉损失巨大
神奇的公钥密码
一种基于虚拟私钥的OpenSSL与CSP交互方案
国密SM2密码算法的C语言实现
基于身份的聚合签名体制研究
一种公开密钥RSA算法的实现