APP下载

数字签名技术及基于身份的代理签名方案研究

2010-03-22付海辰

唐山师范学院学报 2010年2期
关键词:签名者密码学数字签名

付海辰

(唐山学院 计算机科学与技术系,河北 唐山 063000)

1 数字签名技术的研究现状

所谓数字签名,ISO对其的定义为:附加在数据单元上的一些数据,或是对数据单元所做的密码变换,这种数据或变换允许数据单元的接收者用以确认数据单元来源和数据单元的完整性,并保护数据,防止被人(如接收者)伪造。

1976年Diffie和Hellman发表了著名的“密码学的新方向”(New Directions in Cryptography),提出了公钥密码系统(Public Key CryPtosystem)的概念,为信息安全提供了新的理论和技术基础,开始了密码学的一个新时代。虽然Deffie和 Hellrnan在文章中给出了用公钥密码体制实现数字签名的方法,但并没有给出具体的数字签名方案。第一个数字签名方案是两年后Rivest、Shamir和Adleman给出的基于分解大整数因子困难性的著名的RSA算法。此后的时间里,新的数字签名方案不断涌现,包括著名的ELGarmal数字签名方案、Schnorr数字签名方案等。

1982年,Chaum引入盲签名(Blind signature)概念;1989年,Chaum和 Antwerpe首次提出不可否认签名(Undeniable signature)概念。但在普通数字签名方案中,无论是签名者还是验证者都只有一个用户参加,这在实际应用中具有很大的局限性,在 1991年,群签名(Group signature)的概念被Chaum和Vanheyst提出。1995年,Mambo等人引入了代理签名(Proxy signature)的概念。

2 基于身份的代理签名方案

代理签名方案是建立在身份数字签名技术和代理签名技术相结合的基础上的[2]。要理解基于身份的代理签名,首先必须明确一些基本概念。

2.1 基于身份的数字签名技术

一般数字签名方案包括三个过程:系统的初始化过程、签名的产生过程和签名的验证过程。在系统的初始化过程中要产生数字签名方案中用到的所有参数,包括公开和秘密参数。在签名产生的过程中用户利用给定的算法对消息 m产生签名 SIG(m),这种签名过程可以公开也可以不公开。在签名的验证过程中,验证者利用公开验证方法对给定消息的签名进行验证,得出签名的有效性。

基于身份的数字签名的实现离不开基于身份的密码学算法。它大致包括基于身份的加密机制、基于身份数字签名机制以及基于身份的签密机制等。双线性对(Bilinear Pairing)最初是用于计算椭圆曲线上的离散对数,现在在基于身份的密码体制和密钥协商协议方面崭露头角。双线性对是一种映射,可以将椭圆曲线群中的元素映射到一般的有限域中,且具有双线性、非退化性等特殊性质。双线性映射是当前基于身份密码技术的研究热点,双线性映射在密码学中的应用主要包括三方密钥共享协议、基于身份的密钥共享协议以及基于身份的密码系统。

本文选取比较有代表性的Hess的基于身份的签名方案来分析。

(1)系统建立:TA选择随机整数t∈Z*q,计算QTA=tP,公开参数QTA,并保留t为私有;

(2)私钥提取:当签名用户申请与自身身份相对应的私钥时,同样由可信中心TA执行私钥提取算法,为其生成私有密钥。用ID表示签名用户的身份,TA利用哈希函数以及秘密值t计算签名者的私钥SID=tH(ID),并通过安全信道传递给签名用户;

(3)签名:签名者选择群中的随机元素P1∈G*以及随机整数k∈Z*q,并执行以下签名算法,生成签名二元组(u,v):

r=e( P1,P)K

v=h (m,r)

u=vSID+K P1

(4)验证:验证者利用原始消息m和签名(u,v)计算以下验证等式:

r=e (u,P)·e(H(ID),-QTA)V

当且仅当v=h(m,,r)时,接受签名;否则,拒绝接受。

各国学者对基于身份的数字签名做了很多研究,也取得了很多成果。但基于身份的签名仍存在很多的问题。例如密钥托管问题(Key Eserow Problem):由于密钥产生中心PKG(Private Key Generation)知道所有用户的私钥,这对签名的不可否认性构成极大的威胁。如效率问题:椭圆曲线上的双线性映射(双线性对)是构造基于身份的密码系统的有力工具,但它的计算效率很低,这是基于双线性对的密码系统的共同缺点。因此,在此基础上提出了基于身份的高效代理签名方案,以提高安全性和计算效率作为着眼点。

2.2 基于身份的代理签名方案

代理签名技术最早由Mambo、Usuda和Okamoto在1996年提出。一个代理签名方案中包括三方面参与实体:原始签名者、代理签名者以及验证者。它的主要思想是当原始签名者(授权人)由于某种原因不能行使签名权利时,可以授权给指定的代理者(代理人)代替自己行使签名权。一个代理签名方案必须满足以下几个基本条件:可验证性、强不可伪造性、可区分性、不可否认性和强可辨别性。

基于身份的代理签名方案包括系统的建立、授权、代理签名和签名验证四个部分。

(1)系统建立

双线性对算法:e: G1*G2→G2,其中G1,G2 为阶为q的群(q为大素数);

三个Hash函数:H1:{0,l}* X g→Z*q;H2:{0,l}* →G1;H3:{0,l}*→Z*q;

TA选择主密钥:,s∈Z*q,并计算全局公钥Ppub=sP,其中P是群G1中的生成元。

原始签名人A和代理签名人B向可信机构申请与其身份IDA、IDB相对应的私钥,可信机构TA在验证用户身份后,通过安全信道将私钥DIDA和DIDB分别发送给A和B。

(2)授权阶段

原始签名人A随机选择整数rA∈Z*q,计算对代理人B的授权签名二元组(UA,VA):

UA=rA QIDA

hA =H1(IDB,UA)

VA =(rA+ hA)DIDA

然后将二元组(UA,VA)发送给B,B计算hA =H1(IDB,UA),验证等式

e(P,VA)=e(Ppub,UA) e Ppub,UA)

是否成立,若成立,则是合法授权。从代理授权验证等式的展开很明显看出,该代理授权是正确的。

B接着计算代理签名私钥Sp= QIDB+ VA(3)代理签名

B随机选择rB∈Z*q,计算 R=rB P

S=r-1Bb(H3(M)P+Sp)

代理人B对消息M生成的代理签名为三元组(R,S,UA)(4)签名验证

接收方计算验证等式是否成立,若成立,则是B代表A产生的合法代理签名。

基于身份的代理签名方案,不仅具有良好的安全性,而且由于在授权签名和代理签名阶段均减少了双线性对的计算次数,所以实现效率也有较大提高。并且,与普通的数字签名方案相比,基于身份的代理签名方案扩展了以往的网上交流的模式,具有一定的现实意义。

猜你喜欢

签名者密码学数字签名
浅析计算机安全防护中数字签名技术的应用
图灵奖获得者、美国国家工程院院士马丁·爱德华·海尔曼:我们正处于密钥学革命前夕
劳动者代签名 用人单位应否支付双倍工资
密码学课程教学中的“破”与“立”
基于变形ElGamal签名体制的强盲签名方案
基于数字签名的QR码水印认证系统
数字签名简述
应用型本科高校密码学课程教学方法探究
掌握方法用好数字签名
密钥可更新的ElGamal有序多重数字签名方案