当前位置:文档之家› 现代密码学 学习心得

现代密码学 学习心得

混合离散对数及安全认证摘要:近二十年来,电子认证成为一个重要的研究领域。

其第一个应用就是对数字文档进行数字签名,其后Chaum希望利用银行认证和用户的匿名性这一性质产生电子货币,于是他提出盲签名的概念。

对于所有的这些问题以及其他的在线认证,零知识证明理论成为一个非常强有力的工具。

虽然其具有很高的安全性,却导致高负荷运算。

最近发现信息不可分辨性是一个可以兼顾安全和效率的性质。

本文研究混合系数的离散对数问题,也即信息不可识别性。

我们提供一种新的认证,这种认证比因式分解有更好的安全性,而且从证明者角度看来有更高的效率。

我们也降低了对Schnorr方案变形的实际安全参数的Girault的证明的花销。

最后,基于信息不可识别性,我们得到一个安全性与因式分解相同的盲签名。

1.概述在密码学中,可证明为安全的方案是一直以来都在追求的一个重要目标。

然而,效率一直就是一个难以实现的属性。

即使在现在对于认证已经进行了广泛的研究,还是很少有方案能兼顾效率和安全性。

其原因就是零知识协议的广泛应用。

身份识别:关于识别方案的第一篇理论性的论文就是关于零知识的,零知识理论使得不用泄漏关于消息的任何信息,就可以证明自己知道这个消息。

然而这样一种能够抵抗主动攻击的属性,通常需要许多次迭代来得到较高的安全性,从而使得协议或者在计算方面,或者在通信量方面或者在两个方面效率都十分低下。

最近,poupard和stern提出了一个比较高效的方案,其安全性等价于离散对数问题。

然而,其约减的代价太高,使得其不适用于现实中的问题。

几年以前,fiege和shamir就定义了比零知识更弱的属性,即“信息隐藏”和“信息不可分辨”属性,它们对于安全的识别协议来说已经够用了。

说它们比零知识更弱是指它们可能会泄漏秘密消息的某些信息,但是还不足以找到消息。

具体一点来说,对于“信息隐藏”属性,如果一个攻击者能够通过一个一次主动攻击发现秘密消息,她不是通过与证明者的交互来发现它的。

而对于“信息不可分辨”属性,则意味着在攻击者方面看来,证据所用的私钥是不受约束的。

也就是说有许多的私钥对应于一个公钥,证据仅仅传递了有这样一个私钥被使用了这样一个信息,但是用的是哪个私钥,并没有在证据传递的信息中出现。

下面,我们集中考虑后一种属性,它能够提供一种三次传递识别方案并且对抗主动攻击。

Okamoto 描述了一些schnorr和guillou-quisquater识别方案的变种,是基于RSA假设和离散对数子群中的素数阶的。

随机oracle模型:最近几年,随机oracle模型极大的推动了研究的发展,它能够用来证明高效方案的安全性,为设计者提供了一个有价值的工具。

这个模型中理想化了一些具体的密码学模型,例如哈希函数被假设为真正的随机函数,有助于给某些加密方案和数字签名等提供安全性的证据。

尽管在最近的报告中对于随机oracle模型采取了谨慎的态度,但是它仍然被普遍认为非常的有效被广泛的应用着。

例如,在这个模型中被证明安全的OAPE加密方案就被集成进 VISA 和Master 信用卡系统的模块中。

有许多其他的方案在这个模型中的安全性也是有效的。

1.1相关的工作:前几年,Schnorr 提出了一个高效的基于素数阶子群离散对数问题的识别方案和签名方案的变种,这个著名的方案我们就不再介绍了。

这个以零知识闻名的方案为了抵抗主动攻击获得较高的安全性,使用了许多次固定长度的挑战应答交互。

这样,高的安全性就需要很大的通信量和很大的存储空间存储预计算量。

虽然没有提出安全的预处理方案,还是有许多应用中假定如果使用较大规模的挑战应答它的安全性与基本的三次通过协议相当。

其安全性依赖于未经证明的假设,即假设这个方案是“信息隐藏”的。

在定义了信息隐藏和信息不可分辨属性以后,brickell 和mccuely 提出了使用信息隐藏属性的schnorr 方案的一个变种。

接着,okamoto 提出了一个基于信息不可分辨属性的三次通过协议,可以证明其安全性可以抵挡主动攻击。

这些协议中有些是基于素数阶子群的离散对数问题,有的是基于RSA 假设。

但是所以这些方案都并不比原来的schnorr 方案更加有效。

在1991年,Grault 利用合数作为模代替素数,提出了schnorr 的一个变种,从证明者的角度来说提高了效率。

Poupard 和stern 给出了这个方案的统计意义上的零知识属性的证明,证实了这个方案的安全性等价于合数的离散对数问题。

然而,这个方案,对于高的安全性要求也需要许多次交互,而大的简化只能适用于大的不实用的数据。

最近他们改进了他们的简化,使其安全性仅仅等价于因数分解。

这是仍在进行的一项工作。

至于签名方案,由于在pointcheval-stern 和ohta-ocamoto 的论文中已经能够有效的将任何三次通过协议转化成签名方案,这样,对于识别协议的有效解决,对于签名协议也同样有效。

盲签名:在1982年,chau 就想要产生一种电子货币的属性,也就是具有匿名性。

他指出一种方法就是将电子货币的概念和盲签名结合起来。

盲签名需要涉及到银行和用户两个参与者。

用户想要得到一个经过银行签名的货币,但是在签名以后,银行无法追踪这个货币和签名。

后来就提出了基于RSA 和离散对数问题的签名方案。

但是这些方案都无法证明是安全的,而可以证明为安全的方案只有理论上的应用,没有什么实践价值。

一直到1996年盲签名才可以证明为安全的。

它们是基于okamoto 的信息不可分辨协议,可以证明碰撞是很难被计算出来的。

——代表系问题=离散对数:p h g s r f s r h g p mod ),(,,=。

一个碰撞泄漏了h 在基g 中的离散对数,即:p g h s r f s r f s s r r h g p h g p mod )','(),()/()(,,,,''--=⇒=——RSA 问题/因式分解:N s a s r f e r e a N mod ),(,,=选取适当参数,一个碰撞泄漏了a 模N 的e 阶根,即: N s s a s r f s r f r r e a N e a N mod )/()','(),(',,,,'=⇒=-对足够大的质数e ,则根据Bezout 等式可以解得a 模N 的e 阶根,否则,如果e 是一个合数而N 是一个Blum 整数,则我们可以得到N 的因式分解。

后来,另一个有名的信息不可识别性问题被用到模二次方根:N x x f N mod )(2= 对于任意的 2/0N x ≤≤ 满足 }{),gcd()()(的因子N y x N y f x f N N ∈-⇒=在这些论文中,盲签名方案被认为是可证明安全性的,可以抵御比较攻击。

这就意味着银行保证10美元给用户后,用户得到的不能多于10美元。

然而这些方案的主要缺点是计算量大。

至今,盲签名所面对的一个重要挑战是:从签名者角度看来,他们需要高效并且可证明是安全的签名,因为他们可能同时会签成千上万的签名。

1.2论文要点本文中,我们首次研究通过混合系数的离散对数所提供的信息不可识别性。

我们首先回顾Girault的方案,不幸的是相对Schnorr的方案,这个方案仅仅使用固定长度的挑战证明零知识,需要很多次的迭代才产生高安全性。

这里,我们使用信息不可识别性证明这个方案的安全性,即使它仅仅通过一次迭代。

对于先前的结果,在实用性方面有了很大提高。

更进一步,即使我们使用很小的密钥,我们也可以对一个有效的方案证明其安全性。

其后我们认为基于该问题的盲签名的安全证明和因式分解相同。

除了可证明安全性,新方案的主要特性是有效性,从银行角度看来,它仅仅需要一次乘法(不是模乘)。

2.离散对数问题feige和shamir已经证明,信息不可分辨属性对于识别协议来说已经足够提供用于抵抗主动攻击的安全性了。

Pointcheval和stern进一步证明了盲签名的这一属性还提供了抵抗并行攻击下的多次伪装攻击的安全性。

这是利用了函数f N,g(x)=g x mod N,其中N,g是选择好的。

下面我们定义一些有用的概念。

定义一(α-强素数)如果一个素数p=2r+1,其中r是一个大整数,其素数因子都大于α,则称p是α-强素数。

定义二(α-强RSA模数)如果N=pq,并且p和q都是α-强素数,N就被称为α强RSA模数。

定义三(不对称基)N=pq是一个RSA模数,在Z N*中的基g如果在Zp*和在Zq*中的Ord(g)的奇偶性不一样,就说它是不对称基。

也就是说,不对称基就是仅仅在Zp*和Zq*的两个子群其中之一的一个二次剩余。

定理四如果N=pq是一个任意的α-强RSA模数,对于某些α>2,g是一个阶大于α的在Z N*中的任意不对称基,那么定义为x->g x mod N的一个f N,g()的碰撞,可以将N分解。

证明:我们用2l标记在Z N*中g的阶。

可以认为这一阶就是偶数,因为它至少,并且恰在子群中的一个,例如Z p*中是偶数。

而且,l是奇数,并且大于α,因为l大于α/2>1,(p-1)/2和(q-1)/2的任何素数因子都是奇数,并且大于α。

因此,g2l=1mod p, g2l=1modq,但是g l=-1mod p,g l=1mod q..让我们假设我们有一个x<y的关于f N,g()的碰撞,也就是f N,g(x)=f N,g(y).如果我们定义L =y-x,那么2l/L。

通过分解出L的奇数部分,L=2a b,我们得到了l的倍数。

那么,g2b=1mod p,g2b=1mod q,但是g b=-1mod p,g b=1mod q.这样g b就是Z N*中的1的一个不可忽略的平方根:gcd(g b,n)∈{p,q}.这样我们就得到了一个难题,两个不同的解提供了模数N的因式分解。

3.密码协议中的应用:我们首先考虑识别协议,可以由此导出签名协议。

然后我们考虑一个盲签名方案。

3.1身份识别描述让我们先回忆一下girault的方案。

如下所示:N=pq是一个RSA模块,g是属于Z N*的一个高阶元素。

私钥:s属于{0,……….,s-1}公钥:v=g-s mod N。

随机数:r属于{0,。

,R-1}证明者验证者x=g r mod N―――――――――――――>←------------------------------------e∈{0,...2k-1}y=r+es -------------------------------------→x=g y v e mod N ——我们有两个安全参数k和k’,其中k代表了挑战的长度,k’代表了泄漏的信息。

还有私钥的一个范围。

接着,我们定义R=2k+k’S。

相关主题