前向安全

2024-05-19

前向安全(共8篇)

前向安全 篇1

摘要:随着网络技术的不断发展, 前向安全数字签名引起了人们的广泛关注。本文以此为研究对象, 对前向安全数字签名的一般构建和解决方案进行研究。

关键词:前向安全,数字签名,方案

1997年Anderson提出了前向安全的概念, 前向安全思想的主要突破在于, 在密码学算法上设立了一种预防机制, 以减少由于密钥暴露而带来的危害。

一、前向安全数字签名的基本思想

把整个签名的有效时间分成T个时段, 在每个j (1≤j≤T) 时段内使用不同的签名密钥SKj产生签名, 在每个时段的最后, 签名者以一个单向的模式, 从当前时段j (1≤j≤T) 的密钥SKj得到一个新的下一个j+1 (1≤j+1≤T) 时段的密钥SKj+1, 并且安全地删除当前时段j (1≤j≤T) 的密钥SKj, 而用于验证的签名公钥PK在整个签名有效时间T内都保持不变。

二、前向安全数字签名的一般构建

前向安全数字签名方案的关键在于密钥进化和前向安全性, 这也是与一般的数字签名不同的特色所在。实际上, 这两点是相辅相成的。前者是后者的原因, 后者是前者的必然结论。前向安全数字签名方案的私钥随着时间的推移按时段不断进化更新, 而相应的公钥在整个签名周期内保持不变。

三、前向安全数字签名的几种解决方案

1、长公钥长秘密密钥方案:

系统建立时, 签名者重复执行密钥生成算法产生T个密钥对 ( (p1, s1) , (p2, s2) … (p T, s T) ) , 其中pi为签名的公开密钥, si为相应的签名秘密密钥 (i=1, 2, …, T) 。设密钥进化方案的公钥为PK= (p1, p2, …p T) 以及初始密钥SK0= (s0, s1, …, s T) , 其中s0为空串。当进入i时段, 签名者完全删除Ski-1, 则i时段的密钥为SKi= (s1, …, s T) , i时段消息m的签名为。对消息m的签名 (其中ξ=SGN (m, si) ) 的验证即检验VRFY (m, pi, ξ) =1是否成立。方案是前向安全的, 但是公钥和密钥的长度随着总时段数T线性地增长, 显然是不可取的。

2、短公钥长秘密密钥方案:

Anderson提出了以上方案的一个改进, 其结果为公钥很短, 但秘密密钥长度依然随着T线性增长。签名者同以上的方案一样首先产生T个密钥对 ( (p1, s1) , (p2, s2) , … (p T, s T) ) , 并产生一个附加的密钥对 (p, s) , 令σ=SGN (i||pi||s) (i=1, …, T) 即σ=SGN (i||pi) 是对时段i及第i个公钥pi的一个签名, 然后删除s。系统的公钥为p (短公钥) , 系统的初始密钥为SK0= (s0, σ0;si, σ1;…s T;σr) , 其中s0, σ0为空串。当进入i时段, 签名者完全删除si-1, σi-1, 则i时段的秘密密钥SKi= (si, σi;si+1, σi+1;…;s T, σT) , i时段消息m的签名为, 令ω=SGN (m, si) , 即消息m的签名为, 用si对应的公钥pi验证签名, 用p验证pi的签名σi, 要求检验VRFY (m, ω, pi) =1和VRFY (i||pi, p, σi) =1是否同时成立。这个方案和第一方案一样, 随着时间段的推移不断删除前一个阶段秘密密钥, 以此来获得前向安全性, 这类方案公钥的长度很小且与T无关, 但问题在于签名秘密密钥长度随总时段数T线性增长, 也是不可取的。

3、长签名方案:

通过使用证书链签名的公钥和私钥的长度都很短, 但是产生的签名却很长。签名者生成初始密钥对 (p0, s0) , 公钥p0, 密钥s0。在每个时段一个新密钥生成即刻删除旧密钥, 证书链被包含在签名中。具体地说:在1时段的开始, 签名者生成一个新的密钥对 (s1, p1) , 设σ1=SGN (1||p1||s0) , 然后删除s0, 第1时段的私钥为 (s1, p1, σ1) , 用s1对消息m的签名是<1, (SGN (m, s1) , p1, σ1) >, 令ω1=SGN (m, s1) , 即消息m的签名为, 用s1对应的公钥p1验证签名, 用p0验证p1的签名σ1, 为检验VRFY (m, ω1, p1) =1和VRFY (1||p1, p0, σ1) =1是否同时成立。重复以上过程, 当时段i≥2, 签名者拥有 ( (p1, σ1) , (p2, σ2) , … (pi-1, σi-1) ) 和前一个时段的密钥si-1, 生成一个新的密钥对 (pi, si) , 令σi=SGN (i||pi||si-1) 并删除si-1, 第i时段的私钥为 (si, pi, σi, pi-1, σi-1, …p1, σ1) 相当于一个证书链, 其作用是保证当前公钥pi的真实性。时段i消息m的签名为, 令ωi=SGN (m, si) , 即消息m的签名为, 用si对应的公钥pi验证签名, 用p0验证p1的签名σ1, 用p1验证p2的签名σ2, …, 用pi-1验证pi的签名σi, 检验VRFY (m, ωi, pi) =1, VRFY (1||p1, p0, σ1) =1, VRFY (1||p2, p1, σ2) =1, …, VRFY (1||pi, pi-1, σi) =1是否同时成立。此方案可得到前向安全性, 且签名的公钥和私钥的长度与总时段数T均无关。但是签名长度、验证时间随着T线性增长, 与T成正比, 也是不可取的。

随着网络和通信技术的飞速发展, 环保信息安全已经成为关系到国际民生的重大问题, 希望本文能为相关领域的研究提供借鉴。

参考文献

[1]阿力木江·艾沙:《一种强前向安全数字签名方案》[J].计算机工程与应用, 2008, (9) .[1]阿力木江·艾沙:《一种强前向安全数字签名方案》[J].计算机工程与应用, 2008, (9) .

[2]云翠兰:《基于前向安全签名体制的研究及其应用》[J].微计算机信息, 2008, (3) .[2]云翠兰:《基于前向安全签名体制的研究及其应用》[J].微计算机信息, 2008, (3) .

前向安全 篇2

辅助驾驶系统的种类达20多种,成立于2013年9月的前向启创是国内为数不多研发ADAS整体解决方案的公司,但也没有覆盖全部种类,主要提供车道偏离预警、前车避撞预警、疲劳驾驶监测、行人检测报警、限速标志识别等9种系统解决方案。前向启创曾在去年半年内完成2轮融资,投资方分别为上海浦软晨晖和亚太股份。

后装是切口

前向启创先进入的是汽车后装市场,第一代产品主要提供车道、车距、限速牌等预警功能,已与多家研发中控导航、车载导航和车载记录仪等设备的厂商进行大规模合作。创始人熊志亮称,将会陆续推出红外夜视、微光夜视应用以及对多目摄像头、全景停泊等功能的研发。

目前全球75%的ADAS市场份额被以色列服务商Mobileye占据,它是特斯拉、宝马、通用等高端汽车的提供商。Mobileye在国内前装市场份额则占到了80%~90%,几乎处于垄断地位。

造成这种现状的很大一个原因是国内相关技术研发目前尚处于初期,尽管有37家厂商在做ADAS,但核心功能集中在前车预警(FCW)、车道偏离预警(LDW)、行人检测预警(PCW)这三种,做整体ADAS解决方案的寥寥无几。另外,国内大多数厂商提供的前装服务主要还停留在控制模块服务上,即使是推整机也基本没有太多的定制化服务,无法将接口直接提供给车厂。

但这也是前向启创切入前装市场的一个机会。熊志亮说,后装进入市场之后快速积累了客户和测试数据,在软件、硬件包括模组和ADAS算法上也得到了很好的磨合,技术上以Mobileye作为对标公司,会逐渐在价格和定制化服务上实现超越。

接下来80%精力钻前装

“在国内,ADAS前装市场面临的挑战是全方位的,面临着技术困难、统一标准缺乏和推广瓶颈。”熊志亮说。

具体表现在:

第一,ADAS部分技术还有待突破,如车道偏移、盲区监测、疲劳监测等的算法。目前ADAS算法主要包括车道偏离、前车预警、机车监测、交通标识监测、疲劳监测、盲区监测等系统算法。这些算法中只有车道偏离、机车监测有国际标准。

第二,缺乏统一的ADAS标准,这令开发者和汽车厂商都难以确认产品的基本属性以及是否达标,无法按照统一标准验收。

第三,汽车厂商处于不完全开放状态,ADAS服务商很难直接推广,中间还隔了直接供应商。

熊志亮表示,基于这种状况,“开发者必须通过测试数据、测试环境、测试规范制定一定的标准,让车厂有正确的ADAS测试规范,然后去确认这个技术指标,验收这个产品”。

要在一个领域的初期去建立一套标准,并不是件容易的事。将ADAS、决策机构、执行机构、雷达传感器、车联网等体系融合起来,是一个浩大的工程,对公司团队成员素质、规格、资金的要求将非常高。

熊志亮表示:“(前向启创)前期会依靠亚太股份和供应商,先去搭建一个比较基础的测试体系标准,但这一过程中希望行业内在做同样事情的公司能一起将这个标准建立起来。”

下一步,进军半自动驾驶全套方案

AEB(自动制动系统)被称为智能驾驶的缩影,主要由测距模块、数据分析模块和执行机构模块组成,其中测距模块的核心包括微波雷达、激光雷达和视频系统等,它可以提供前方道路全面、准确、实时的图像与路况信息。

AEB系统采用雷达测出与前车或者障碍物的距离,然后利用数据分析模块将测出的距离与报警距离、安全距离进行比较,小于报警距离时就进行报警提示,而小于安全距离时,即使在驾驶员没来得及踩制动踏板的情况下,AEB系统也会启动,使汽车自动制动,从而为安全出行保驾护航。

目前,欧洲部分国家已经在重型商业用车生产中将AEB作为强制配置标准,预计5年内也会在普通车中强制推行这一标准。随着技术的成熟、法律法规的完善,欧洲国家汽车生产重心正从普通汽车向半自动驾驶汽车迁移。熊志亮称,受国内不断成熟的技术和国家政策的推动,这样的变化正同样发生在中国。

所以,前向启创未来几年的重点将投放在半自动驾驶领域,预计将于2018年初左右为车厂提供一整套包括ADAS算法、模块、AEB自动制动系统等一系列半自动驾驶方案,为新能源汽车、国内中低端自主品牌车型提供服务。熊志亮相信我国政府也会制定相关的基本规范、强制标准等,半自动驾驶产业会在2?3年内大面积铺开。

熊志亮在车载音频、视频、图像处理等方面有近10年的芯片研发经验,有6年ADAS算法研发经验。他曾带领团队参加2014年LINC汽车创业大赛,并在汽车技术类项目中脱颖而出,后得到亚太股份2900万元A轮融资,开始布局无人驾驶领域。

实用的前向安全门限重签名方案 篇3

1 前向安全的门限数字签名方案

1.1 初始化阶段

1.1.1 选择循环子群

密钥分发中心首先选择n=P1P2=(2qp1'+1)(2qp2'+1)和一个阶为q的循环子群,g∈QRn(即gq=1mod n),QRn为模n的平方剩余集合,且p1=p2=3mod 4,其中p1,p2,p1',p2',q都为安全的大素数,然后选择一对整数(e,d),分别作为基于合数n的RSA公私钥,h()为一个安全的单向散列函数。

1.1.2 系统选择t-1阶秘密多项式

最后,公布(n,q,g,h,Y)。

1.1.3 秘密分量的分发

设A={u1,u2,…,ul}是群组t个成员,其身份标示IDi。对每个群组成员,密钥分发中心通过秘密信道把σi发送给每个ui作为成员秘密分量。

1.1.4 密钥的更新

将群组签名整个有效期分为T个时间段,从第一个时间段开始,群组成员根据前一时间段的密钥计算出目前时间段的密钥。

式(1)中,σi,j表示成员ui的第j时间段密钥,σi,j-1表示成员ui的第j-1时间段密钥,初始密钥σi,j=σi;j=1,2,…,T。更新完成后,销毁前一周期密钥σi,j-1。

1.2门限重签名的产生

1.2.1 部分签名产生

设群组集合A中t各成员B={u1,u2,…,ut}相对消息M产生代表群组的门限重签名,B中成员一起执行下列操作:

每个ui(i=1,2,3,…,t)选择一个随机数βi,计算:

然后,每个ui把{P,si,zi}发送给群签名合成者。

1.2.2 门限重签名的产生

群组签名合成者计算:

最后,{j,P,Z,S}为消息M的门限签名,j为第j个签名时间段。

1.2.3 门限签名的验证

任何验证者都能通过计算下式验证{j,P,Z,S}就是消息M的门限重签名。

2 方案安全性分析

2.1{j,P,Z,S}是有效的前向安全门限签名

证明:为了证明{j,P,Z,S}是有效的前向安全门限签名,则需要证明式(6)成立。

根据式(3)、式(4)和式(5)得:

根据式(5)和上式得:

则{j,p,Z,S}是有效的前向安全门限签名。

2.2 方案具有前向安全的特性

方案的前向安全是基于强RSA假定。

强RSA假定已知n和,n为两个大素数的乘积,则找出一个,且满足y=xβmod n(β>1)是一个非常困难的问题。

如果攻击者已获得群组签名者ui的第j时间段密钥σi,j,企图通过n计算第j时间段密钥σi,j-1,这是一个强RSA假定问题,所以攻击者无法通过σij计算出σi,j-1,也就无法伪造第k周期签名(k

2.3 方案能抵抗伪造攻击

非法用户企图通过式(4)和式(5)求S',这将面临大整数分解和单向散列函数求逆的问题。少于t个合法的参与者不能代表群组进行有效签名,t个成员无法获得系统秘密参数,任何一组成员不可以假冒另一组成员对消息生成有效的门限签名,而事后不负任何责任。这是由Shamir的秘密共享方案的安全性来保证的。

2.4 方案具有实用性

方案将求(Lagrange相关系数)通过计完成,在不知道RSA秘密参数(p-1)(q-1)的情况系不用求逆计算,因为整除P,这样的设计将方案具有实用性。

3 结束语

就日前已有的前向安全门限数字签名存在理论错误的缺陷,提出一种新的实用的前向安全门限重数字签名方案。降低门限签名者密钥泄漏造成的损失,将群组成员密钥按时间段进行更新,群组公钥保持不变。即使第k时间段的签名密钥被泄露,攻击者无法推出第k-1时间段的签名密钥,也无法伪造第k时间段之前的签名。前向安全的门限签名为签名密钥提供了强大的保护,使签名密钥被泄露所造成的损失降到最小。基于强RSA的假设,证明方案可抵抗非法签名者的伪造攻击和具有前向安全性和实用性。

参考文献

[1] Desmedt Y,Frankel Y.Threshold cryptosystems.In:Brassard G,ed. Advances in Cryptology——CRYPTO' 89 Proceedings Lecture Notes in Computer Science 435 Berlin:Springer Verlag,1990:307-315

[2] Anderson R..Invited lecture.In:Proceedings of the 4th ACM Conference on Computer and Communications Security,Zurich,Switzerland, 1997:1-7

[3]于佳.标准模型下的前向安全多重签名:安全模型和构造.软件学报,2010;21(11):2910-2923

[4]张明武.密文匿名的高效前向安全短签密方案,北京邮电大学学报,2010;33(4):131-135

[5]米军利,张建中.前向安全的门限签名方案.计算机工程与应用,2009;45(1):124-125

[6]程曦,戚文峰.一种向前安全的门限代理签名方案.信息工程大学学报,2006;4(7):314-318

前向安全 篇4

代理签名是指原始签名者可以将他的签名权力授权给代理签名者,之后代理签名者就可以代表原始签名者进行签名,当验证者验证一个代理签名的同时,还需要验证原始签名者的授权协议。代理签名的思想最早出现于1991年,1993年Neuman讨论问题时也提到了代理签名的概念。1996年Mambo等[1]第一次系统地阐述了代理的概念,根据授权方式对代理签名作了分类,并给出了一个部分授权代理签名方案,为代理签名的研究奠定了基础。

前向安全的概念最早是由Anderson首先提出的[2],Bellare和Miner第一次给出了前向安全签名的正式定义,并基于A.Fiat和A.Shamir的签名方案[3]给出了两个前向签名方案[4]。其基本思想是把一对公钥和私钥的有效期分为若干个时间段,用于验证签名的公钥保持不变,而私钥是由单向函数和前一时间段的私钥产生。这样,每一时间段的签名私钥都互不相同,并且每一次签名后都把上一次的密钥删除,使得攻击者即使窃取到当前时间段的私钥也无法伪造过去时间段里的签名,从而减少密钥泄露带来的威胁。

目前提出的前向安全的签名方案主要分为两类:一类是通过修改一些特别的方案来得到的。如Bellare和Miner[5]的方案是基于大整数分解难题,它是根据Fiat-Shamir[6]方案构造的;Abdalla和Reyzin[7]的方案也是基于大整数分解难题,它是根据2t-th根的方案[8]构造的;王晓明等人的WCF方案[9]是基于强RSA假设的。第二类是提出一个一般模型,它可以把一般的签名方案转化成前向安全的签名方案。

双线性对对函数表现出良好的密码学特性,目前这方面已经引起的众多的关注。本文利用双线性对,构造了一种具有前向安全特性的代理签名方案。

2预备知识

2.1双线性对

双线性对是指两个循环群之间相对的线性映射关系。设G1是一个加法群,阶是大素数q。G2是一个乘法群,也以q为阶。双线性映射e:G1×G1→G2满足如下特性:

(2) 非退化性:存在P,Q∈G1,使得e(P,Q)≠1;

(3)可计算性:对所有的P,Q∈G1,存在一个有效的算法计算e(P,Q)。

2.2GDH群

假设G是一个椭圆曲线上的q阶的加法群,q为大素数。以下是几个基于G的困难问题:

(1)离散对数问题(DLP):给定G中两个元素P和Q,计算整数n,满足Q=nP。

(2)判定Diffie-Hellman问题(DDHP):对a,b,c∈Z*q,给定P,aP,bP,cP,判断c=abmodq是否成立。

(3)计算Diffie-Hellman问题(CDHP):对a,b,c∈Z*q,给定P,aP,bP,计算abP。

当群G上的DDHP是容易的,而CDHP是困难时,称群G为Gap Diffie-Hellman(GDH)群。这样的群可以在有限域的超椭圆曲线上找到。利用椭圆曲线上的Weil配对或Tate配对可以构造满足以上条件的双线性映射。

2.3前向安全的数字签名方案

一个前向安全数字签名方案是一个密钥进化数字签名方案。一个密钥进化数字签名方案非常相似于一个标准的数字签名方案。在一个标准的数字签名方案中,有密钥更新算法、签名算法和验证算法。在前向安全的数字签名方案的整个生命期中,公钥不改变,验证算法和标准签名方案的验证算法类似。

前向安全数字签名的形式化定义:

一个前向安全数字签名由四部分算法组成:FSIG=(FSIGkeygen, FSIGkeyupdate, FSIGsign, FSIGverify)。

(1)FSIGkeygen:密钥生成算法:输入一个安全参数k,时段总数T,输出初始公钥和私钥。

(2) FSIGkeyupdate密钥更新算法:输入当前时段的私钥SKi-1,返回下一时段的私钥。

(3)FSIGsign签名生成算法:输入一个当前时段j私钥SKj和要被签名的消息m,输出(j,sign),表示j时段消息m的签名。

(4)FSIGverify签名验证算法:输入公钥PK,消息m和签名(j,sign),如果(j,sign)是有效的签名,则返回1;否则返回0。

3基于双线性对的前向安全代理签名方案

3.1系统初始化:

给定安全参数k,G是一个以P为生成元的阶为素数q的GDH群,而I是阶为素数q的乘法群;e∶G×G→I是一个双线性对映射。选取hash函数H1∶{0,1}*→G,H2∶{0,1}*×G→Z*q,h∶{0,1}*→Z*q,并且输出公共系统参数{G,I,q,e,P}。

3.2密钥生成:

给定系统参数k,算法生成原始签名者A和代理签名者B的公私钥对。原始签名者A的公私钥对为(eA,dA),其中eA=dAP;代理签名者B的公私钥对为(eB,dB),其中eB=dBP。

3.3双线性配对代理签名权指定:

1.产生代理权:

原始签名者A首先生成一个授权委托证书mw,它详细描述了原始签名者对代理签名者的授权关系,包含A和B的身份信息、A对B的代理签名授权、代理签名时限等。然后A计算S′=dAH1(mw,IDA,IDB),并通过安全信道秘密地发送给代理签名者B。

2.验证代理权:

代理签名者B收到S′后,验证e(S′,P)=e(H1(mw,IDA,IDB),eA)是否成立,若成立,则接受此代理权,转到(3);否则,B拒绝接受代理权或者要求A重新传送新的S′。

3.代理密钥生成:

B接受代理权后,随即选取r0∈Z*q,计算R0=r0h(o)dundefined

S0=dundefined(S′+r0h(0)),(R0,S0)为代理签名者B的初始代理签名密钥。

4.代理密钥更新:

签名进入第时段,代理签名者B用i-1第时段的代理签名密钥(Ri-1,Si-1)计算第时段的代理签名私钥:

首先,代理签名者B随机选取ri∈Z*q,计算:

计算完成之后立即删除ri,Ri-1,Si-1;而(Ri,Si)即为代理签名者B在第i时段的代理签名密钥。

3.4代理签名生成:

代理签名者B利用第时段的代理签名密钥(Ri,Si)对消息的签名过程如下:

1.令T=Ri;

2.随机选取rp∈Z*q,计算U=rpeB,V=rpP+H2(m,U)S;

代理签名者B对消息的代理签名为(i,mW,T,U,V)。

3.5代理签名验证:

代理签名的接收者收到B对消息的代理签名(i,mw,T,U,V)后,验证:

e(V,eB)=e(U,P)e(H1H2,eA)e(H2T,eB)是否成立。方程中H1是H1(mw,IDA,IDB)的缩写,H2是H2(m,U)的缩写,在本章的以下部分都将沿用这个缩写。若成立则认可签名有效,否则认为无效。

3.6签名方案的正确性分析:

方案的正确性可由以下算式获得:

4方案的性能分析

4.1效率分析

Zhang等的基于双线性对的代理签名方案[10]是一个公认的比较好的方案,将本方案与之在效率上进行比较,得到如下结果(见表1)。可以看到,在代理签名生成阶段本方案比Zhang等的方案少了一个配对函数,多了一次群G中的乘法运算。而计算配对函数是最耗费时间的,与计算配对函数相比,计算群G中乘法运算的工作量要小的多,因此总的来说,本文的方案在效率上有了一定的提高。

4.2特性分析

本方案的安全性是基于GDH群中CDH问题难解的基础上的,满足代理签名的安全性质。

1.强不可伪造性:因为选取的G是GDH群,在G上的CDH问题是难解的,所以任何人在不知道原始签名者A私钥dA的情况下,不能够生成S′来伪造代理签名;同时,攻击者也不能冒充代理签名者B对消息m伪造代理签名,因为他没有原始签名者A给的S′,也就无法生成代理密钥(Ri,Si)。

2.可区分性:因为完整有效的代理签名中有授权证书mw,而且签名验证的过程中同时出现了原始签名者A的公钥eA、代理签名者B的公钥eB和证书mw,有效的区分了签名权和代理权。

3. 强不可抵赖性:对消息m完整有效的签名(i,mw,T,U,V)中包含了授权证书mw,并且在验证过程中用到mw、原始签名者和代理签名者的公钥,而代理签名者B不能更改mw,故代理签名者B一旦产生了代理签名,他就不能够否认所产生的签名,具有强抗抵赖性。

4. 身份证实性(可识别性):原始签名者A可以通过验证方程来确定代理签名者的身份是B,也就是说原始签名者可以根据此有效的代理签名确定出相应的代理签名者的身份,具有身份证实性。

5. 密钥依赖性:代理签名密钥(Ri,Si)是由原始签名者A的秘密密钥dA生成的S′产生的,所以方案具备了密钥依赖性。

6. 可注销性:授权委托证书mw指出签名的权限和时限,只允许代理签名者在一定时间内拥有代理签名的能力,代理密钥只在规定的时间内有效。

7. 可验证性:任何验证签名的人都可以验证代理签名是否有效,并且根据有效的代理签名中的授权证书mw能够确认原始签名者认同了这份签名消息。

8. 前向安全性:

在代理密钥更新过程中,代理签名者可以通过随机选取来进行代理密钥更新,这个随机数的选取不会受时间周期的影响,与总的时间周期无关,代理密钥可以不受时间周期数量的限制,无限的更新下去。也就是说,方案的安全参数与总的时间周期数量无关,可以在保证代理签名者私钥长度和公钥保持不变的条件下无限制的进行代理私钥更新。

假定攻击者获得了代理签名者B在第时段的代理签名密钥(Ri,Si),要想获得第j(j

5结束语

前向安全 篇5

关键词:盲签名,离散对数,二次剩余,前向安全,盲性

0引言

随着现代信息技术和计算机网络的广泛应用与普及,人们对信息的安全提出了越来越高的要求,其中数字签名就是一种实现网络信息安全的重要手段,它在保证传输信息的保密性、完整性和不可抵赖性,实现发送者的身份认证等方面都有着广泛的应用。

1982年,Chuam[1]首次提出盲签名的概念,实现了不可跟踪的支付系统,即电子现金。盲签名是一种特殊的数字签名技术,它可以使消息拥有者在不被签名者看到所签消息的具体内容的情况下获得合法签名。一种简单的实现方法是消息拥有者和签名者进行如下交互:消息拥有者先利用盲因子将消息盲化,签名者对盲化后的消息签名,消息拥有者施行脱盲变换,最终获得原始消息的签名。在盲签名产生过程中,签名者不知道所签消息的具体内容,也无法将自己保留的中间结果与最终公布的签名联系起来进而跟踪消息拥有者。这种特性称为盲性,它使得盲签名能有效地保护用户的隐私,被广泛应用到需要保护个人隐私的场合,例如电子现金、电子选举等领域。

一般来说,一个密码体制的安全性应该仅仅依赖于密钥的安全性,这就是著名的Kerckhoff原则。根据Kerckhoff原则,密钥的泄露会使整个密码体制立刻变得不再安全。1997年,Anderson[2]首次提出前向安全的概念,有效地减轻了密钥泄露所带来的安全隐患。1999年,Bellare和Miner首次给出了前向安全数字签名的正式定义[3]。随后,前向安全技术被大量运用到各种具有特殊性质的数字签名中。前向安全的基本思想是通过在公钥密码体制中引入密钥演化算法,使得私钥随着时段的推进而不断更新,而公钥保持不变。这样,即使对手拥有当前时段的密钥,也不能伪造之前各时段的数字签名,保证了之前各时段所产生的签名的合法性,减少了由密钥泄露所带来的损失。

将盲签名和前向安全特性相结合,就产生了前向安全盲签名。2003年,Duc等人[4]基于强RSA假设提出了第一个前向安全盲签名方案。2005年,Lai等人[5]基于Koyama主密钥方案[6]提出了一个新的前向安全盲签名方案,方案中,各个时段的密钥需要预先设置和存储,增加了存储开销和泄露风险。Chow等人[7] 运用树结构构造方法提出了一个基于双线性映射和GDH问题的前向安全盲签名方案,但结构设计过于复杂。

本文在基于离散对数和二次剩余计算难题提出了一个前向安全盲签名方案,并对新方案进行了安全和效率分析。分析表明,新方案满足不可伪造性、盲性和前向安全性,且具有较高的计算效率。

1预备知识

1.1前向安全盲签名

前向安全数字签名的基本思想是把签名的整个有效时间划分成若干个时段,在不同时段内使用不断更新的签名密钥生成签名,却保持验证公钥在整个有效时间内不变,同时要求由某一时段的密钥无法计算出之前各时段的密钥,也无法生成之前各时段的签名。在每个时段的最后一个签名产生以后,以一个单向模式产生下一时段的签名密钥,即从时段j-1的密钥SKj-1生成时段j的密钥SKj,并且删除SKj-1。

一个前向安全盲签名方案包括以下四个算法[4]:

(1) 密钥生成算法 是一个概率多项式时间算法。输入安全参数k和时间周期数T等,输出系统参数params、公钥PK和初始私钥SK0。

(2) 密钥更新算法 是一个确定性或概率算法。输入前一时段的密钥SKj-1,输出当前时段的私钥SKj

(3) 盲签名发布协议 是一个用户与签名者之间通过交互方式产生盲签名的协议。签名者是一个概率图灵机,使用当前时段的密钥SKj与用户进行交互,为用户提供消息M的盲签名。用户也是一个概率图灵机,输入消息M和公钥PK,并与签名者进行交互。在签名完成后,输出时段j、 消息M及签名sig(M)。(j,sig(M))即为最终盲签名。

(4) 签名验证算法 是一个确定性算法,输入公钥PK,消息M和签名(j,sig(M)),输出验证通过与否的0/1判断。用A4纸,页边距上下左右已经设置好,请不要改动。

1.2相关数学难题

(1) 离散对数难题

p是一个大素数,gZp*的生成元。给定yZp*,求解x(1<x<p-1),使y=gxmodp成立是困难的。

(2) 二次剩余计算难题

在不知道n的具体分解的情况下,求满足y=x2modnx是困难的。二次剩余计算难题等价于大数分解问题。

2方案描述

2.1密钥生成

系统选取大素数p(p≥2512);gZp*Zp*的生成元。选择安全的哈希函数H:{0,1}*→Zp*

将签名的整个有效时间划分为T 个时段:1,2,…,T,只有在T个时段内,签名者对消息的签名才是有效的。

随机选取初始私钥s0(1<s0<p-1),计算公钥Y = gs2T0,公开(H,p,g,T,Y)。

2.2密钥更新

签名者根据前一时段的密钥更新得到当前时段的密钥。设当前时段为j,签名者按以下步骤更新密钥:

1) 若j>T,则sj设为空串,算法终止;

2) 若1≤jT,则计算j周期的密钥sj=sj-12mod(p-1),并删除sj-1。

2.3盲签名发布

j时段,签名者和用户进行如下交互产生消息m的盲签名:

(1) 承诺(Promise)

签名者选择随机数k(1<k<p-1),计算R′=gkmodp,并将(R′,j)发送给用户;

(2) 盲化(Blind)

用户收到(R′,j)后,随机选择盲化因子α,β,γ (1<α,β,γ<p-1),计算:

R=RαgβYγmodp

e=H(Rmj)

e′=α-1(e-j-1γ)mod(p-1)

并发送e′给签名者。

(3) 签名(Sign)

签名者收到e′后,计算:

s′=k-jesj2Τ-jmod(p-1)

s′发送给用户。

(4) 去盲(Umblind)

用户收到s′后,计算:

s=αs′+βmod(p-1)

则消息m的签名为sig(m)=(j,R,s)。

2.4 签名验证

接收者收到盲签名(m,j,(R,s))后,首先判断盲签名是否在签名者的签名有效期内生成,即j是否小于等于T。若j>T则签名无效;若1≤jT,验证:

R=Yjegsmodp

其中e=H(Rmj),如果等式成立,签名sig(m)=(j,e,s)有效,否则,签名无效。

3安全性分析

3.1有效性

由于:

Yjegsmodp=Yjegαs′+βmodp=Yjegα(k-jes2T-jj)+βmod

p=Yje(gk)α(gsj2Τ-j)-αjegβmodp=YjeRαgβY-αjα-1(e-j-1γ)modp=YjeRαgβYγ-jemodp=RαgβYγmodp=Rmodp

说明盲签名(m,j,(R,s))是一个有效的签名。

3.2不可伪造性

定理1 在随机预言模型和离散对数问题困难的假设下,所提前向安全盲签名方案对自适应选择消息攻击是存在性不可伪造的。

证明 假设存在一个攻击者A以不可忽略的概率成功伪造部分盲签名,下面构造一个算法B解决离散对数问题。

对于给定的Zp*的生成元g和数yZp*,为了能够计算x(1<x<p-1)满足y=gxmodp,算法B模拟挑战者与攻击者A进行交互,回答攻击者AHZ随机预言询问和签名询问。具体交互过程如下:

系统设置:算法B生成系统公共参数params=(H,p,g,T,Y)发送给攻击者A,其中验证公钥设置为Y=y,即用x模拟s02Τ

H询问:A至多可以做qHH询问,B通过维护列表H-list响应AH询问。A关于(Ri,mi,ji)(1≤iqH)的每一次询问,B首先检查列表H-list:

1) 如果在列表H-list中已经存在项(Ri,mi,ji,ei),Bei返回给A作为(Ri,mi,ji)的H哈希值。

2) 否则,也就是A从来没做过(Ri,mi,ji)的H询问。这时,B随机选取eiRZq*,将(Ri,mi,ji,ei)添加到列表H-list,并将H(Ri,mi,ji)=ei返回给A

签名询问:A至多可以做qS次签名询问。关于A对消息m在时间段j的签名询问,B随机选取e,s(1<e,s<p-1),令R=Yjegsmodp,将(R,m,j,e)加到列表H-listBsig(m)=(j,R,s)返回给A

输出:如果算法B没有终止,则A在没有做过(m*,j*)的签名询问的条件下,以一个不可忽略的概率对输入消息(m*,j*)Z输出一个有效签名sig(m*)=(j*,R,s)。根据Forking引理[12],通过对A哈希重放,B可以获得对消息(m*,j*)Z的两个有效签名(m*,j*,k,R,e1,s1)和(m*,j*,k,R,e2,s2),其中e1≠e2。因为有效签名满足R=Yjegsmodp,其中e=H(Rmj),所以:

R=Yj*e1gs1modp,R=Yj*e2gs2modp

于是:

Yj*e1gs1=Yj*e2gs2modp

Y = gs0 2T带入,得:

gs0 2Tj*e1 + s1 = gs0 2Tj*e2 + s2 modp

s0 2Tj*e1 + s1 = s0 2Tj*e2 + s2 mod(p-1)

所以

s0 2T = (j*)-1(e1 -e2 )-1(s2 -s1 )mod(p-1)

最终,B可以输出x=s02ΤZ作为离散对数问题的解。

所以,在离散对数问题困难的假设下,所提前向安全盲签名方案对自适应选择消息攻击是存在性不可伪造的。

3.3盲性

首先,签名者在盲签名发布协议的执行过程中无法获得所签消息的任何相关信息。签名者在整个签名过程中只能获得数据(k,R′,e′,s′),其中R′,j由自己随机生成,s′是对e′的签名,而e′是用户经过盲化变换和哈希函数变换对原始消息m作用后的数据。在不知道盲化因子α,β,γ和哈希函数求逆困难的情况下,签名者得不到消息m的任何相关信息。

其次,在同一时段内,签名者无法将公布的签名与自己保留的中间结果建立联系,即签名者无法追踪消息的拥有者。事实上,给定一个有效签名(m,j,(e,s))和任一组第j时段的盲签名发布过程中签名者保留下来的中间变量(k,R′,e′,s′),签名者无法通过:

计算出3个随机数α,β,γ。因此,签名者无法确定公布的盲签名(m,j,(e,s))是由自己保留的哪一组中间结果(j,k,R′,e′,s′)生成的签名。

但是,前向安全盲签名方案的盲性也是有局限的。由于盲签名(m,j,(e,s))中含有时段编号j,如果恶意的签名者在每一时段只对一个消息签名,并记录下用户信息,则签名者就可以根据j追踪到消息的拥有者。

3.4前向安全性

在二次剩余求解困难的假设下,所提方案具有前向安全性。

假设攻击者获取了第j时段的密钥sj,试图通过等式sj=sj-12mod(p-1)获得前一时段的密钥sj-1不可行,因为在不知道p-1的分解的情况下求解二次剩余是困难的。由方案的不可伪造性,攻击者在不知道密钥sj-1的情况下试图直接伪造第j-1时段的盲签名也是不可行的。

4性能分析

TETITM分别表示一次模幂、模逆和模乘运算所需的时间。将新方案与Duc等人[4]方案、刘亚丽等人[8]方案和张席等人[9]方案在计算效率上进行比较,如表1所示,其中三个方案在密钥更新阶段计算量相同,都为TM,没有列出。可以看出本文方案比另三个方案减少模幂运算,计算效率更高。

5结语

基于离散对数和二次剩余计算难题设计了一个高效的前向安全盲签名方案,证明了其正确性并进行了安全和性能分析。新方案在随机预言机模型下是自适应选择消息攻击下存在不可伪造的,其安全性能够归约于离散对数困难假定;其前向安全性依赖于计算二次剩余的困难性。与目前已有的基于离散对数的前向安全盲签名方案相比,所提方案效率较高。

参考文献

[1]Chaum D.Blind signatures for untraceable payments[C]//Advancesin Cryptology-Crypto'82.New York:Plenum Press,1983:199-203.

[2]Anderson R.Two remarks on public-key cryptology[C]//Proceedingsof 4th ACM computer and Communications Security.New York:ACMPress,1997:151-160.

[3]Bellare M,Miner S.A Forward-Secure Digital Signature Scheme[C]//Advances in Cryptology-CRYPTO'99.LNCS 1666,Berlin:Springer-Verlag,1999:431-448.

[4]Duc D N,Cheon J H,Kim K.A Forward-secure Blind SignatureScheme Based on the Strong RSA assumption[C]//Proceedings of 5thInter-national Conference on Information and Communications Securi-ty.LNCS 2836,New York:Springer-Verlag,2003:11-21.

[5]Lai Y P,Chang C C.A Simple Forward Secure Blind SignatureScheme Based on Master Keys and Blind Signatures[C]//Proceedingsof 19th International Conference on Advanced Information Networkingand Applications(AINA'05).Washington DC:IEEE CS,2005:139-144.

[6]Koyama K.A Master Key for the RSA Public Key Cryptosys-tem[J].IEICE Transactions on Information and Systems,1982,J65-D(2):163-170.

[7]Chow S S M,Hui L C K,Yiu S M,et al.Forward-secure multisigna-ture and blind signature schemes[J].Applied Mathematics and Com-puta-tion,2005,168(2):895-908.

[8]刘亚丽,殷新春,孟纯煜.一种基于EIGamal体制的前向安全强盲签名方案[J].微电子学与计算机,2007,24(10):95-98.

前向安全 篇6

前向安全数字签名是信息安全风险控制的措施之一,也是目前密码学研究的热点。1997 年,Ross Anderson提出了前向安全的概念[1],解决了通常数字签名的一些缺陷:一旦密钥丢失(或被窃取),由这个密钥生成的以前所有签名都变得无效。前向安全方法的目标是如果在某一时间段签名密钥被盗取,攻击者虽然可以伪造此时段后的签名,但依然无法伪造密钥被盗取时段前的签名。其思想本质是数字签名安全的风险控制,即将签名密钥被盗后所造成的对系统安全的影响和损失尽可能减少到最小。

术语“前向安全”最先出于文献[2],此后,Ross Anderson提出了具有前向安全的数字签名思想[1]。继Ross Anderson之后,出现了多种前向安全数字签名方案[3,4],Bellare and Miner在文献[5]中通过扩展Goldwasser,Micali和Rivest[6]一般签名的安全性定义,给出了随机神预模型下前向安全数字签名的正式定义。并且他们提出了两个方案:一种是基于二叉树状证书链结构的一般签名方案;另一种是基于对Fiat-Shamir[7]签名方案的修改。在这些工作的基础上,前向安全数字签名方案得到了长足的发展,其发展基本上是沿着两个方向进行的:一个是修改特定的签名方案,如Fiat-Shamir签名方案[7];另一个是把一般的签名方案作为一个机密的“黑匣子”,这个方向的典型代表是Hugo Krawczyk提出的基于任意签名方案的前向安全数字签名方案[8]。前向安全数字签名方案的最新研究是由Tal Malkin、Daniele Micciancio和Sara Miner提出的具有无界时间段的前向安全数字签名方案[9]。

基于前向安全的思想,文献[10]提出了一种基于ElGamal体制的前向安全数字签名方案。本文对该方案进行了安全性分析,发现攻击者如果得到签名者某一签名时段的密钥,即可伪造任何签名时段的有效签名(包括此时段前的签名),从而得出方案[10]不具有前向安全性的结论。在分析的同时,构造了一种新的基于ElGamal体制的前向安全数字签名方案,新方案的特点是将签名密钥SKj转换为随机的实际签名密钥m,利用求离散对数的难题隐藏了签名密钥SKj 的信息,仅使用与当前密钥有关的信息进行签名,与后继密钥无关,不需要额外的存储空间,使窃密者没有任何可能由后继密钥伪造出前时段的签名信息,且验证的等式在ElGamal原等式的基础上构造,签名方案的前向安全性基于离散对数和模合数平方根问题的难解性。这是本方案和现有的众多前向安全数字签名方案不同的特色所在,具有一定的理论意义、较高的安全性和实用性。

1 前向安全数字签名的相关知识

1.1 基本思想

前向安全数字签名的基本思想就是把整个签名的有效时间分成若干个时段,在每个时段内使用不同的签名密钥产生签名,而验证签名的公钥在整个有效时间内都保持不变。在每个时段的最后签名以一个单向的模式,从当前时段的密钥得到一个新的下一个时段密钥,并且安全地删除不再使用的密钥。这个方法确保了密钥泄漏前所有签名的有效性,从而大大地减少了由于签名密钥泄露而对系统带来的影响。

1.2 一般构建

系统建立初期用户注册获得一个证书,得到公钥PK和相应的初始密钥SK0。将密钥的有效期分为T个时段,分别记为:1,2,3,…,T。在有效期内,公钥PK固定不变,密钥随时段不断地进化更新。记j时段的密钥为SKj。进入j时段时,首先计算SKj=f(SKj-1),这里f是一个单向函数,求出SKj后,立即删除SKj-1。这样当敌手在j时段攻破系统获得此时段的密钥SKj后,一定不能获得SKj-1,SKj-2,...,SK0,因为它们已被删除且用单向函数进化计算而得。

1.3 密钥进化算法

前向安全数字签名方案具有一个重要的环节——密钥进化。因此一个前向安全数字签名方案,是一个密钥进化数字签名方案。其密钥进化过程是由四个算法组成的四元组:FWSIG=(FWKG,FWUPD,FWSIGN,FWVER) ,其中:

(1) 公私钥产生算法FWKG:输入安全参数k (有时记为1k) 和时间段的总数T,输出一对初始公钥和密钥(PK,SK0)。

(2) 密钥更新算法FWUPD:输入当前时间段所保存的密钥SKj,由SKj得到下一个时间段的新密钥SKj + 1。

(3) 签名算法FWSIGN:输入当前时间段j的密钥SKj和签名消息M,输出最终签名结果<j,σ>,其中σ为在时间段jM的签名。

(4) 验证算法FWVER:输入初始公钥PK、消息M和时间段j的最终签名<j,σ>,若输出1,则<j,σ>是M的有效签名,否则为无效签名。

2 对文献[10]签名方案的安全性分析

具体签名方案请参见文献[10]。

在ElGamal签名方案[11]中,由于签名密钥的泄漏,致使攻击者可以伪造前面的签名或者签名者抵赖原来的签名。文献[10]的签名方案是基于ElGamal签名方案的一种改进,试图为签名加上一个“时间戳”,防止签名者对先前时间段签名的抵赖。但是通过分析可以得知,此方案不具有前向安全性:即若攻击者得到签名者第j (1≤jT)时段的签名密钥SKj,就可以伪造任一时段j′(1≤j′≤T)的有效签名(j′,r,δ)。

若攻击者获得了第j(1≤jT)时段的签名密钥SKj,由于(j,r,δ)可以从公用信道获取,所以攻击者可以获知rδ。签名方通过δ=(H(m)-SKj2Τ+1-jr)k-1mod(p-1)计算第j(1≤jT)时段的签名δ时,根据第j(1≤jT)时段的密钥更新算法,由SKj+1=SKj2mod(p-1)可以得到SKj2Τ+1-j=SK02Τ+1,因此实际签名密钥SKj2Τ+1-j为一个和时段j无关的常数,又由于H(m),r,k,p均和时段j无关,所以每一个不同的时段j(1≤j≤T)求出的签名δ也和时段j无关,故最终的签名(j,r,δ)中只有表示时段的标记j不同。因此攻击者一旦获得签名者某一签名时段j(1≤j≤T)的签名密钥SKj,将最终签名(j,r,δ)中的标记改为j′,即可成功地伪造任一签名时段j′(1≤j′≤T)的有效签名(j′,r,δ),同样j(1≤j≤T)时段前的签名也可以通过这种方法伪造出来,因此文献[10]的签名方案不具有前向安全性。

3 对文献[10]签名方案的改进

我们定义新的密钥生成算法、密钥进化算法、签名算法与验证算法对方案[10]进行了改进,通过分析可知,改进的新方案真正具有前向安全性。

3.1 密钥生成

(1) 选择一大素数p,g是GF(p)的生成元和随机数SK0(均小于p);

(2) 计算PK=SK0-2Τmod p;

(3) 公开p,g,T和PK。

3.2 密钥进化

若j=T+1,则SKj为空串;

若1≤j≤T,则SKj=SKj-12mod (p-1)。其中j表示第j个时间段。

3.3 签名算法

(1) 签名方选择随机数k,计算r=gkmod p;

(2) 签名方选择随机数m,计算a=SKjgmmod p;

(3) 计算δ=(H(M)-2T-jmr)k-1mod(p-1)。其中M为签名消息。

(4) 发送(j,r,a,δ)给验证方。

3.4 验证算法

验证方验证:(PKa2T-j)rrδ=gH(M)mod p。

若等式成立,则认可签名(j,r,a,δ)有效。

否则,认为无效签名。

3.5 安全性分析

3.5.1 有效性

根据方案中的相关等式考察签名验证中的等式:

(PKa2T-j)rrδ=(SK0-2Τ(SKjgm)2T-j)r(gk)(H(M)-2T-jmr)k-1

=(SK0-2Τ(SK02jgm)2T-j)r(gk)(H(M)-2T-jmr)k-1=(SK0-2ΤSK02Τgm2T-j)rg(H(M)-2T-jmr)

=gmr2T-jgH(M)g-mr2T-j

=gH(M)mod p

由上式可以得出验证等式(PKa2T-j)rrδ=gH(M)mod p成立,因此本签名方案是正确的,(j,r,a,δ)为有效的前向安全签名。

3.5.2 前向安全性

在本方案中j(1≤jT)时段的签名密钥SKj在签名之初转换为实际签名密钥m,由信息a传到验证方证实,传给验证方的信息a是直接与j(1≤jT)时段密钥相关的信息,即使攻击者盗取了某一时段j(1≤jT)的密钥SKj,也只能通过密钥进化算法SKj=SKj-12mod(p-1)求出j+1时段的密钥SKj+1,进而伪造j+1时段的签名。由于采用的密钥进化算法SKj=SKj-12mod(p-1)是单向函数,若想通过此密钥进化算法求出j(1≤j≤T)时段之前的密钥是基于求合数模平方根的难题,其困难性等价于因子分解问题,因此无法伪造j(1≤j≤T)时段之前的签名。而且要通过信息a得到签名的重要参数m(即隐藏的密钥)是基于离散对数的难题,根本不可行,所以本签名方案具有真正的前向安全性。

在设计本方案时注意到,如果把SKj2j(0≤j≤T)带进签名将影响签名的前向安全性,正是因为方案[10]在签名中使用SKj2T+1-j造成了前向安全的失败,使得整个方案的实际签名密钥变为一个与时段j(1≤j≤T)无关的常数SK02Τ+1,导致密钥的进化没有任何意义。

4 结 论

介绍了前向安全数字签名的相关知识和研究现状,分析了文献[10]签名方案的安全性。通过分析显示,在方案[10]中,由于可以使用后继密钥的信息对当前时段的消息进行签名,尽管密钥演进采用的是单向函数求密钥的方法,基于求模合数平方根的难题,保证密钥是前向安全的,但是整个签名方案[10]却不具备前向安全性。

通过介绍可知,前向安全数字签名方案并不能避免密钥泄漏,但是它能够使密钥泄漏后的损失减小,是一种风险控制。构造一种实用的前向安全数字签名方案在当前来说是很困难的,怎样找到一种方法使公钥在保持不变的情况下改变密钥,是设计前向安全数字签名方案的关键。密钥的进化既要保证单向性,又要受控而使公钥便于验证,像Hash这样一般的单向函数是不行的,因为没有办法构造对应的公钥验证方法。目前使用最多的是基于模n平方根的难题作为单向函数,如何让密钥演进与签名结合起来是个较难解决的问题。在验证时既不能暴露密钥的信息,也不能使用密钥的SKj2j(0≤j≤T)信息用作验证,且需要与对应的签名方案结合。本文就如何将基于求合数模平方根难度的密钥演进与基于求离散对数难题的签名结合,给出了一种基于ElGamal体制的真正具有前向安全性的新的数字签名方案,是将当前签名密钥隐藏且仅使用与当前密钥有关的信息进行签名构造前向安全签名方案的一个有益尝试,具有一定的理论意义、较高的安全性和实用性,利用这一特点可以进一步设计前向安全代理签名、前向安全群签名、前向安全多重签名等一些具有实际应用价值的数字签名方案。下一步的研究将是如何设计效率更高的前向安全签名方案,并使得前向安全特性在选举投票、数字货币协议、电子支付系统等中得以更加广泛的应用。

摘要:对于前向安全数字签名方案,即使签名密钥在j时段被盗,窃密者也仅能伪造j时段后的有效签名,而j时段前的签名仍然有效。针对文献[10]提出的一种具有前向安全的数字签名方案进行了安全性分析,发现该方案存在安全隐患,不具有前向安全性:窃密者一旦盗取了j时段的密钥,即可伪造任一时段的有效签名。在文献[10]的基础上,提出了一种新的前向安全数字签名方案,并对该方案进行了详细的安全性分析。新方案的特点是将当前密钥隐藏在签名中,仅使用与当前密钥有关的信息对消息进行签名,与后继密钥无关,签名的前向安全性基于离散对数和模合数平方根问题的难解性。

关键词:ElGamal,前向安全数字签名

参考文献

[1]Anderson R.Invited Lecture.Fourth Annual Conference on Computer and Communications Security,ACM,1997.

[2]Gunther C G.An identity-based key-exchange protocol.In:Advances in Cryptology EUROCRYPT89,Lecture Notes in Compute Science[C].Springer-Verlag,1990:29-37.

[3]Itkis G,Reyzin L.Forward-secure signatures with optimal signing and verifying.Advances in Cryptology-CRYPTO2001,J.Kilian(Ed.),Lecture Notes in Comput.Sci.2139,Springer-Verlag,2001:332-354.

[4]Abdalla M,Reyzin L.A new forward-secure digital signature scheme.Advances in Cryptology-ASIACRYPT2000,T.Okamoto(Ed.),Lec-ture Notes in Comput.Sci.1976,Springer-Verlag,2000:116-129.

[5]Mihir Bellare,Sara KMiner.Aforward-secure digital signature scheme[C].In:Advances in Cryptology-CRYPTO’99,Lecture Notes in Com-pute Science,Spring-Verlag,1999,1666:431-448.

[6]Shafi Goldwasser,Silvio Micali,Ronald L Rivest.A digital signature scheme secure against adaptive chosen-message attacks[J].SIAM Journal on Computing,1988,17(2):281-308.

[7]Amos Fiat,Adi Shamir.Howto prove yourself:Practical solutions to i-dentification and signature problems[C].In:Advances in Cryptology-CRYPTO’86,Lecture Notes in Compute Science,Spring-Verlag,1987,263:186-194.

[8]Hugo Krawczyk.Simple forward-secure signatures from any signature scheme[C].In:Seventh ACMConference on Computer and Communi-cation Security,ACM,2000-11.

[9]Tal Malkin,Daniele Micciancio,Sara Miner.Efficient generic forward-secure signatures with an unbounded number of time periods[C].In:Advances in Cryptology,Proceedings of EUROCRYPT2002,Lecture Notes in Computer Science,Springer-Verlag,2002,2332:400-417.

[10]吴克力,王庆梅,刘凤玉.一种具有前向安全的数字签名方案[J].计算机工程,2003,29(8):122-123.

一个前向和后向安全的签密方案 篇7

签密首先由Zheng[1]提出的, 它是一种新的密码学组件, 可以在一个逻辑步骤内完成签名和加密。签密要比可验证加密 (先签名然后再加密) 计算量小、效率高。例如使用DSA签名方案、Elgamal加密方案的可验证加密 (签名然后再加密方案) 总共需要6个模指数运算, 而一般的签密方案只需要3个模指数运算。有鉴于此, 签密方案已经使用在电子商务中, 提供签名、保密以及非抵赖等服务。然而, 当签密者的密钥泄漏以后, 这些方案都不能提供任何保护。如何减少由于密钥泄漏所带来的对系统安全的影响, 一直是人们十分关注的问题。自从前向安全的理论[2]被提出以后, 它的公钥是固定的而密钥则是随时段的进化更新, 这样即使当前时段的密钥泄漏, 攻击者也不能伪造与过去时段有关的数字签名, 从而可以减少因签名密钥泄漏带来的损失。随后结合前向安全有很多前向安全的签密方案被提出, 但是很少有同时满足前向和后向安全的签密方案, 即某一时间段的密钥泄露后既不能伪造过去时段的签密也不能伪造之后时间段的签密。本文结合容忍入侵的同时具有前向安全和后向安全的密钥演化技术[3], 基于Schnorr签名体制[4], 提出一种同时满足前向和后向安全的签密方案。

1 密钥容侵的密钥演化技术

公钥和私钥的有效期分为若干时间段, 验证签名用的公钥一直保持不变, 私钥是利用单向函数和前一时间段的私钥演化生成的。主要思想是在密钥演化中加入后向的元素, 从而同时保证密钥的前向和后向安全性。使用两个安全参数, l和k。设H:{0, 1}*->{0, 1}l是一个安全hash函数。设e1, e2, …, eT是互素的数且都满足如下条件:2l (1+ (i-1) /T) ≤ei<2l (1+i/T) , 两两互素且都与n的欧拉函数互素。

1.1 生成公钥PK和私钥SK1及私钥演化方法的基本思想

将签名时间平均分为T个时间段.第i时间段的私钥Si由两部分的乘积组成, 设为S1i和S2i, 即Si=S1i*S2i (i∈[1, T]) .随机选择两个整数t11, t2T∈Zn*, 分别由:

产生一系列的t1, i和t2, i, 再由t1, i和t2, i生成S1i和S2i如下:

应用 (2) 递推得到:

特别地有:。

这一系列值t2i就是本文所谓密钥更新时加入的后向安全的元素, 由于要保证后向的密钥的不可计算性, 在生成密钥时从t2, 1开始使用。S1=S11*S21mod n, S1就是第一时间段的私钥。令V=V1V2, 则公钥PK= (v, n) , 私钥SK1= (1, T, n, S1, t11, ej, seed) 。其中seed是生成ej的种子, 这样就不需要存储所有的ej了, 每次更新密钥时用seed计算出各个ej值。t2T要保存在安全的地方, 在每次密钥更新时用来计算j (当前时刻的下一时刻) 时刻的t2j, t11在初始密钥产生后即删除。私钥的演化:

其中f2, 0=1。容易验证这样得到的密钥使得等式V1=1/S1iei和V2=1/S2iei成立, 即使得V=V1V2=1/S1iei*S2iei。

2 功能定义

由于本文只对提出的方案进行了安全性分析, 所以这里并不形式化的给出该方案的安全定义, 而只给出功能定义。

公钥和私钥的有效期分为若干时间段, 验证签密用的公钥一直保持不变, 私钥是利用单向函数和前一时间段的私钥演化生成的。

前向和后向安全的签密方案是如下的四元算法。

FBSC= (FBSC.key, FBSC.upd, FBSC.sc, FBSC.ver)

FBSC.key——密钥生成算法, 是一个随机算法, 输入一个安全参数k∈N和时间段总数T, 输出初始的私钥和公钥对 (SK1, PK) 。

FBSC.upd——密钥更新算法, 输入私钥SKj (i

FBSC.sc——签密算法, 输入当前j (j≤T) 时间段的私钥SK1和待签消息M, 输出对消息M的签密 (j, signcryp) 。

FBSC.ver——解签密算法, 输入公钥PK和消息M以及待验证的对消息m的签密 (j, signcryp) , 如果签密 (j, signcryp) 是对M的有效签密则输出1并回复消息M, 否则输出0。并要求在时间段j对于任意消息m的签密的验证都要满足等式:FBSIG.ver (PK, m, FB-SC.sc (SKj;m) ) =1。

本方案采用复杂性假设是强RSA假设[5]:对于两个安全素数 (形式为2q+1的素数, q也是素数) 的乘积n和一个α∈Zn*, 要找到β∈Zn*和r, 使得βr=αmod n (1

3 前向和后向安全的签密方案

3.1 系统参数

设n=p1p2, 其中p1和p2为[k/2]-1bit的素数, 满足2q1+1和2q2+1也是素数。q是大素数, 满足q=gcd (p1-1, p2-1) , g是一个阶为q的元素 (gq≡1mod n) 。签密方案中的验证方的私钥为xb∈Zq*, 公钥为yb=gxbmod n, (E, D) 为安全的对称加、解密算法, H为单向Hash函数, H:{0, 1}*->{0, 1}l, l为本方案的一个安全参数。另一个安全参数是k。签密者的公钥有效期分为T个时间段。签密者的公钥和私钥的生成算法以及私钥更新算法同前向和后向安全的签名算法 (FBSIG) 。签密者用于签密的公钥为PK= (n, V, T) , 私钥为Sj= (j, T, n, Sj, t1, j+1ej, seed) , (1≤j≤T) 。这里, 公钥和私钥之间满足关系式sjej*V=1mod n。

3.2 签密算法 (FBSC.sc)

签密者在时段j随机选择0<α, β

R= (gα) eimodn, Z=gβSjmodn, K= (yb) Rmod n, 用K加密消息m, 得到密文c=EK (m) , μ=H (j, R, Z, c, m) , S= (α-βμ) mod q。签密者把 (j, c, s, Zμ, ej) 作为对消息m的签密, 发送给验证者。

3.3 解签密算法

验证者收到 (j, c, s, Z, μ, ej) 后, 做如下计算:

R' (gej) s (ZejV) μmod n, K' (gR') xbmod n, 用K解密消息m'=DK (c) , 并计算μ'=H (j, R', Z, c, m') 。如果μ'=μ则接收签密, 否则拒绝。

4 正确性验证

对签密的验证主要是看μ’是否等于μ。下面我们来验证本方案的正确性。由解签密算法可知, , 将签密算法中的代入上式可得:

由 (5) 、 (6) 和 (7) 式可得μ'=μ。即验证了该方案的正确性。

5 安全性分析

本方案的安全性同我们提出的签名方案一样是基于强RSA困难问题的。并且在密钥更新中我们采用了同时具有前向安全和后向安全的容忍入侵的密钥更新方法。所以无论敌手得到哪个时段的私钥, 都无法计算得到之前或者之后时段的私钥, 因而该方案同时满足前向和后向安全性。下面我们启发式方法来分析该签密方案的不可伪造性和保密性。

首先, 敌手在不知道签密密钥的情况下, 若敌手通过随机选择α和β构造出R (gα) eimod n和K= (yb) R, 得到c=EK (m) , 他却无法构造, 若也随机选择, 他也无法通过Z=gβSjmod n计算出Sj (这是一个离散对数问题) , 只要不知道Sj, 他所构造的签密就无法通过验证, 因为在验证的时候要用到签密者公钥和私钥的关系, 即计算R'= (gej) s (ZejV) μmod n。因此, 本方案满足不可伪造性。

其次, 由于 (E, D) 为安全的对称加、解密算法, 只有得到加密密钥K= (yb) R才能由密文恢复出明文。因而, 在敌手不知道签密密钥的情况下, 敌手无法计算出R的值, 因而不可能知道加密密钥K。所以只有签密者和验证者可以恢复出明文。所以本方案满足保密性。

6 小结

本文结合了容忍入侵的密钥演化的技术, 提出了一个同时具有前向和后向安全的签密方案, 并且分析了该方案的不可伪造性和保密性。该方案简洁明了, 虽然用到了四次模指数运算, 但是效率还是比先签名再加密的方法效率高。

摘要:签密能够在一个合理的逻辑步骤内同时完成数字签名和公钥加密两项功能, 而其所花费的代价, 包括计算时间和消息扩展率两方面, 要远远低于传统的先签名后加密的方法, 因而它是实现既保密又认证地传输及存储消息的较为理想的方法。该文利用容忍入侵的密钥演化技术, 提出了一个同时具有前向和后向安全的签密方案, 并对该方案进行了安全性分析和性能分析。

关键词:前向安全,后向安全,签密,密钥演化,容忍入侵

参考文献

[1]Zheng Y.Digital signcryption or how to achieve cost (signature&encryption) <<cost (signature) +cost (encryption) in CRYPTO'97, LNCS1294[M].Springer-Verlag, 1997:165-179.

[2]Anderson R.Two remarks on public key cryptology[C].Fourth Annual Conference on Computer and Communications Security, ACM, 1997.

[3]李成, 何明星.一个前向和后向安全的数字签名方案[J].武汉大学学报:理学版, 2008, 54 (5) :557-560.

[4]SCHNORR C P.Efficient signature generation by smart cards[J].Journal of Cryptology, 1991, 4 (3) :161-174.

前向安全 篇8

文献[1]提出了代理签名的概念。在一个代理签名方案中, 一个被指定的代理签名人可以代表原始签名人生成有效的代理签名。由于代理签名体制在许多领域都有着重要应用, 人们提出了许多代理签名方案[2,3,4]。

但是传统的代理签名算法存在严重的安全隐患:一旦签名密钥泄露, 代理签名密钥所产生的所有代理签名将变成无效。为了解决这个问题, 人们提出了很多方法来降低系统密钥在传输中泄漏的几率。常见的方法就是密钥的分布式共享[5], 例如门限签名方案[6,7,8,9]。密钥共享体制把密钥分解成多个子密钥, 供多个秘密共享参与者共享密钥, 密钥的安全性得到了一定的提高。但实际上, 对于一些应用时间比较长的数字签名方案, 攻击者还是有足够的时间逐一攻破, 使被攻破的子密钥的数量达到其门限数, 从而攻破密钥。基于此, 文献[10]提出了前向安全的概念。前向安全就是把整个有效时间分成若干个周期, 在每个周期内使用不同的签名密钥产生签名, 而验证签名的公钥在整个有效时间内都保持不变。即使当前周期的签名密钥被泄露, 也并不影响此周期前签名的有效性。前向安全数字签名的核心是数字签名安全的风险控制[11,12], 即将签名密钥泄露后造成的损失尽可能降到最小。

目前提出的各种代理签名方案几乎都是基于离散对数问题的[13]。鉴于RSA在理论及应用中的重要性, 本文提出了一种新的基于RSA的前向安全代理签名方案, 改善了代理签名的安全性。该方案具有无需以安全方式传送代理密钥的特点。

1 相关知识

1.1 前向安全数字签名的数学描述

设签名密钥为SK0, 公钥为PK, 将PK的有效时间分为若干时间段, 如1, 2, …, T。在整个有效期内公钥PK保持不变, 但签名密钥随时间段逐步进化更新, 即SKi=f (SKi-1) 。其中, f为一个单向函数, 即根据i时间段的签名密钥SKi求第i-1时间段的签名密钥SKi-1, 在计算上是困难的。且签名人在第i时间段开始, 获得新的签名密钥SKi后, 就从他的机器中删除SKi-1。这样, 即使攻击者在第i时间段内入侵用户的机器, 他也只能得到SKi而得不到以前的签名密钥SKi-1, SKi-2, …, SK0。

定义 如果存在一个单向签名密钥更新算法KeyUd, 使得签名人可以在第i时间段将签名密钥由SKi-1更新为SKi=KeyUd (SKi-1) , 并在不同的时间段内使用不同的签名密钥SKi生成签名Sign (SKi, m) (m是信息) , 而任何签名验证人都可以用一个不变的公钥PK以及时间段的编号i进行验证, 即Sign (SKi, m) 满足等式Ver[PK, i, Sign (SKi, m) , m]=True, 则这个数字签名为一个前向安全的数字签名。

1.2 RSA数字签名方案

RSA数字签名方案包括系统初始化过程、签名过程和验证过程, 叙述如下:

(1) 系统初始化过程 签名人任意选取两个大素数pq , 计算n = pq , ϕ (n) = (p-1) (q-1) , 随机选择整数e<ϕ (n) , 满足gcd (e, ϕ (n) ) =1;计算d, 满足ed≡1 modϕ (n) , pq和ϕ (n) 保密, 公钥为 (n, e) , 私钥为d

(2) 签名过程 对于消息m, 计算smd mod n , 则签名为 (m, s) 。签名人将其发送给签名接收者。

(3) 验证过程 接收者收到签名后利用签名人的公钥, 计算m′≡semod n, 验证m=m′是否成立。如果成立, 则签名正确, 否则签名不正确。

2 基于RSA密码体制的前向安全代理签名方案

我们基于RSA签名算法构造出一个新的前向安全的代理签名方案。在整个方案中假设RSA模数是安全的。整个代理签名体制由以下五个过程组成:

2.1 系统建立

设A为原始签名者, B为代理签名者。在系统建立过程中, 原始签名者和代理签名者分别产生各自的公钥和私钥。 A任意选取两个大素数pAqA , 产生安全RSA模:NA=pA·qA, 选择公钥eA, 满足gcd ( eA, ϕ (NA) ) =1, 计算私钥dA满足dA·eA≡1 modϕ (NA) , 则原始签名者A的公钥为 (NA, eA) , 私钥为dA, pAqA和ϕ (NA) 保密。同理, 我们可以得到代理签名者B的公钥为 (NB, eB) , 私钥为dB, pBqB和ϕ (NB) 保密。

gz*NB的一个生成元。将签名密钥的有效期分为T个阶段, h (·) 是一个公开的安全哈希函数。

2.2 授权过程

mw为原始签名者的授权证书, 其中包括原始签名者和代理签名者的身份信息、代理权限、代理时限等信息。

2.2.1 代理签名公钥的产生

原始签名者A与代理签名者B共同执行下列步骤生成代理签名公钥ep

(1) A随机选取候选公钥ep, 并公开。

(2) B计算c=ϕ (NB) + epk′, 其中k′是随机数, B将c发送给A。

(3) A收到c后, 先利用欧几里德算法计算最大公因数gcd (ep, c) , 如果gcd (ep, c) =1, 则接受ep为代理签名公钥;否则, 返回步 (1) 。

通过以上步骤, 在A不知道ϕ (NB) 的情况下, 产生了一个与ϕ (NB) 互素的ep, 从而作为代理签名公钥。

2.2.2 代理签名私钥的产生

原始签名者A对代理签名公钥与授权证书签名, 该签名消息记为σ, 计算σh (mwep) dAmodNA, 传送 (mw, σ) 给B。

B验证h (mwep) ≡σeAmodNA是否成立。如果不成立, 则要求A重新发送或者终止协议;如果等式成立, 则接受A的委托, 同时计算代理签名私钥dp0, 满足:

2.3 代理签名私钥的更新

签名进入第j (1≤jT) 时段, B计算dpjdpj-12ϕmodNB, 并立刻删除dpj-1。其中, j表示第j时间段, dpj表示第j时间段的代理签名私钥。

2.4 代理签名的产生

代理签名者B利用第j (1≤jT) 时段的代理私钥dpj对消息m进行签名。B随机选取kz*NB, 计算rgk mod NB, Rre2jpeBmodNB, u=h (jmgTR) , sk-udpjmodϕ (NB) 。然后B把对消息m的签名 (j, R, u, s) 发送给接收者。

2.5 代理签名的验证

(1) 签名验证者首先判断代理签名权是否在有效期内, 即 jT是否成立。如果不成立, 则为无效签名, 否则进行下面计算。

(2) 验证者验证h (mwep) ≡σeAmodNA是否成立。

(3) 验证人计算R′≡[ (gs) e2jpgu]eBmodNB, u′=h (jmgTR′) 。如果u=u′, 则签名为有效签名;否则签名无效。签名体制的正确性可由以下算式证明:

3 方案安全性分析

(1) 该方案中原始签名者A和代理签名者B密钥的建立是基于著名的RSA体制, 即基于大数分解困难性的。为保证其安全性, 密钥至少采用1024bit。

(2) 该方案具有强不可伪造性。

原始签名者A 不能伪造有效代理签名。 因为A不知道pBqB, 所以求不出ϕ (NB) , 因此求不出代理签名者B的代理私钥dp0, 无法伪造代理签名。

攻击者不能伪造有效代理签名。j时段的签名为 (j, R, u, s) , 由签名公式可知, 攻击者要想伪造 j时段的签名 (j, R′, u′, s′) , 必须得到代理签名者B的代理私钥dpj和ϕ (NB) , 然而这相当于求解大数分解难题, 根本不可行。

(3) 该方案具有前向安全性。

若攻击者企图通过代理签名者第j时段的代理私钥dpj求解dpj-1, 这相当于求解模合数的平方根计算困难性问题。因此dpj的进化具有前向安全性。

在签名过程中, 即使攻击者获得了第j时段的代理私钥dpj, 也只能通过密钥进化算法求出j+1时段的私钥dpj+1, 进而伪造j+1时段的签名而无法伪造j时段之前的签名。假设j时段的私钥dpj泄露, 攻击者伪造i (i < j) 时段的签名记为 (j, R′, u′, s′) , 因为在签名s′≡k′-udpimodϕ (NB) 中, dpidpi , 故无法通过验证。

因此, 即使攻击者获得第j时段的代理私钥dpj, 他也无法求出j时段以前的代理私钥dpi (i < j) , 或伪造j时段以前的代理签名, 即本方案代理私钥dpj的进化和j时段的签名均具有前向安全性。

(4) 与现有的基于离散对数的代理签名相比, 该方案在委托代理签名私钥时不需要安全的通道进行传送。代理签名者通过计算epdp0≡1modϕ (NB) 得到代理签名私钥dp0 (见2.2.2节) 。因为代理签名者B必须使用ϕ (NB) 才能计算出正确的代理签名私钥dp0, 而其他任何人要得到ϕ (NB) 相当于求解大数分解困难问题, 所以任何攻击者都不能计算出正确的代理签名私钥。没有正确的代理签名私钥, 也就无法产生能通过代理签名验证式的代理签名。因此本方案能抵抗假冒代理签名人事件的发生, 而且不需要安全通道传送代理签名私钥。

(5) 该方案满足代理签名的其他基本性质。

① 可区分性 签名验证的过程中同时出现了原始签名者A的公钥eA、代理签名者B的公钥eB和证书mw, 有效地区分了签名权和代理权。

② 不可抵赖性 在消息的有效签名中包含了授权证书mw, 并且在验证过程中用到mw、原始签名者A和代理签名者B的公钥, 而代理签名者B不能更改mw, 故代理签名者B一旦产生了代理签名, 他就不能够否认所产生的签名。

③ 可验证性 任何验证签名人都可以验证代理签名是否有效, 并且根据有效的代理签名中的授权证书能够确认原始签名者认同了这份签名消息。

4 结 论

本文在代理签名方案的基础上, 将RSA密码体制和前向安全的理论有机地结合起来, 实现了前向安全代理签名的功能。在该方案中, 用于签名的私有密钥随时间的推移不断更新, 而用于验证签名的公钥始终保持不变, 即使当前签名密钥泄漏, 攻击者也无法伪造出先前阶段的签名密钥, 最大限度地减少了密钥泄漏所造成的危害, 提高了系统的安全性。该代理签名方案基于著名的RSA体制, 实现容易, 效率较高。

摘要:结合RSA密码体制和前向安全理论, 提出一种基于RSA的前向安全代理签名方案。新方案不仅满足代理签名的基本性质, 而且具有前向安全性, 实现了即使代理签名人的代理签名密钥泄露, 以前所产生的代理签名仍然有效。该方案具有无需以安全方式传送代理密钥的特点。

上一篇:百姓富下一篇:韩国游客