一个可公开验证且前向安全的签密方案
喻琇瑛12 何大可12
,
,
(1. 西南交通大学信息安全与国家计算网格实验室,成都 610031;2. 西南交通大学信息科
学与技术学院,成都 610031)
摘要:签密是实现认证加密的一种新的密码技术,其效率远远高于传统“先签
名再加密”认证加密方法。现有的签密方案往往不能像传统方法那样同时提供前向安全性和可公开验证性。本文对一个可公开验证的签密方案进行了改进, 提出一个同时具有公开验证性的和前向安全的签密方案。使攻击者不可能通过发送者私钥得到本次及以前通信者的秘密信息,实现了可公开验证性和前向安全性。 关键词:签密;前向安全;公开验证;
Abstract: Signcryption, as a new cryptographic technique, its efficiency is much higher than that of the traditional method “signature- then- encryption”. But signcryption schemes usually cannot provide both forward secrecy and public verifiability simultaneity as the traditional method does.An signcryption schemes is improved and as a result, a public verifiable signcryption schemes with forward secrecy is proposed. In the improved schemes, the attacks which obtain the sender’s private key can not get any secret information between these participates before this communication.By these methods the improved schemes achieve public verifiability and forward security simultaneity. Keywords: signcryption; forward secrecy; public verify;
1 引言
保密性与认证性是密码学中要研究的重要课题,数字签名和加密是密码学的两个基本而重要的功能,其中数字签名具有提供消息完整性、认证性和不可否认性的功能,而加密则可以提供消息的机密性。以往,签名和加密是分开应用的,然而随着信息传输的网络化,网上传输的信息往往同时需要认证和加密。
1997年,Y. L.Zheng提出一个新的认证加密方案,称为签密(signcryption),它能在一个逻辑步骤内同时完成数字签名和消息加密,实现保密和认证两项功能,这比传统的“先签名后加密”所需的计算代价与通信代价要小得多,大大减少了计算量与通信量[1,2],非常适合大量数据的认证安全传递。
签密的高效性使其得到了广泛的关注,近年来,有许多签密方案提出来。但是,一方面,由于被签密的消息在签名的同时也被加密,不能像一般签名那样被公开验证, 另一方面, 由于任何得到签密者密钥的人都可以解密本次及以前通信的签密密文恢复出消息,签密方案不具备前向安全性。因此,在文献[3]中指出,设计一个具有公开可验证性和前向安全性的签密方案是公开难题。
1998年,文献[ 4 ]以Zheng的签密方案为基础,提出了一种签名可公开验证
的签密方案-BD签密方案,但该方案依然存在效率和安全问题。为了进一步解决签密的公开验证难题,2000年,文献[6]基于BD方案和文献[5]中的认证加密方案提出了一种可公开验证的签密方案,简称Lee方案。文献[7]对Lee方案进行密码分析研究,发现了其中存在的安全问题,并给出了一个改进方案,简称Zhang方案。本文研究后,将指出该方案不满足前向安全性,因此,在此方案基础上,我们设计了一个具有公开可验证性和前向安全性的签密方案,其他任何人均可验证该签名的有效性。而且,即使签名者的签密私钥丢失,用此私钥签密过的任何消息均不会被指定接收者之外的其他人非法读解,从而保证的方案的前向安全性。
本文将首先介绍Lee方案,接着说明文献[7]在此基础上进行改进所得到的Zhang方案,最后在Zhang方案的基础上,给出一个新的可公开验证且满足前向安全的签密方案。
2 Lee方案
方案中系统参数p是一个大素数,q是p - 1的一个大的素因子,g?Z*p 是q阶元素, xa?Zq 和ya=gxamodp是Alice的公钥对,类似地,xb和yb是Bob的公钥对,hash是一个单向散列函数,‖表示级联。
设Alice要将需要认证加密的消息m?Z*p发送给Bob,那么,Alice随机选
kk取整数k?Zq*,计算K1?ha?sghmodp?,K2?hash?ybmodp?,
c??m||hash?m||K2??
K1K2modp,s??k?xac?modq,并将?c,s?发送给
Bob。
Bob 接收到?c,s?后,计算gkmodp =gsyacmodqmodp,K1?hash
?gm'kmodp?,K2?hash?gk?modp,m'=c/K1K2modp,并验证
xb??=m||hash?m||K2? 。
当出现纠纷时, Bob 将?K2,c,s?给第三方,第三方计算gkmodp
=gsyacmodqmodp,K1 =hash(gkmodp) ,m'=c/K1K2 modp,验证
m'=m||hash(m||K2) 。
3 Zhang方案
文献[7]对Lee方案进行分析后,指出其不满足不可伪造性,对原方案进行了修改。修改方案中的参数?Ek,Dk?是安全的对称加解密算法对,其余参数与Lee方案中的相同。
Alice随机选取整数k?Zq* ,计算K1?hash?gkmodp?,K2?hashybmodp
?k? ,c?E?m?,r?hash?KK21,cmodp?和s??k?xar?modq,并发
送?c,r,s?给Bob。
Bob收到?c,r,s?后,计算gkmodp?gsyarmodp,K1?hash?gkmodp?,
K2?hash??gk?xbmodp,恢复消息m?DK2?c?,并验证r?hash?K1,cmodp?。
?当出现纠纷,Alice否认自己的签密时,Bob将?c,r,s?给第三方验证。第三方计算K1?hash?gsyarmodp?,验证r?hash?K1,cmodp?即可。
4 本文方案
密钥安全是密码体制安全的关键,而窃取用户的密钥是非法攻击者可能采取的攻击方法之一。在Zhang方案中,如果敌手获取了xa,c,r,s,则通过
s??k?xar?modq,就可以计算出k,进而由K1?hash?gkmodp?,
K2?hash??gk?xbmodp得到K1和K2,从而解密出前面所有的密文。
?因此,该方案不具有前向安全性,本文所提出的改进方案如下。 方案中未提及的其他参数与Zhang方案相同。 Alice的签密过程:
*随机选取整数k?Zq ,计算K1?hash?gkmodp?,K2?hash?ybkmodp?,
c?EK2?m?,
K2R?gK2modp,
r?hashK1,g?K2,cmodp?和
s?k?xar?yb?modpmodq。Alice计算传递 ?c,r,R,s?给Bob。
?Bob解签密过程:
kK1?hash?gmodp?,Bob得到?c,r,R,s?后,计算gkmodp?gsyargRBodp,
xb
一个可公开验证且前向安全的签密方案



