基于配对的密码学
一般来说,密码体制提供的安全服务应该保证信息的机密性、完整性、真实性和不可抵赖性。机密性是指信息只能给授权的用户使用,非法用户即便窃取信息,也不能恢复原文;完整性是指信息在传输过程中,没有被纂改;真实性是指信息的发送方的身份是真实的,而非假冒的;不可抵赖性是指信息发送者对已经发送的信息,不可否认。信息的机密性,可以通过加密的方式保障,加密将信息进行了一种变换,将可读的原文信息变成了不可读的乱码,也就是密文,然后传输密文,这样,授权用户有密钥可以恢复明文,而非法用户即便窃取密文,但是没有密钥,无法恢复原文。而信息的完整性、真实性和不可抵赖性一般通过数字签名来实现。数字签名也是对数据进行了变换,但是与加密变换不同的是,数字签名是用仅仅只有发送者自己才有的私钥作为密钥对信息进行变换,接收者用发送者的公钥进行对签名进行验证,验证通过,则可以肯定信息是完整的、真实的和不可抵赖的。因此,设计任何一种加密方法,都必须保证能满足这四点要求。
配对,比较常用的是椭圆曲线上的Tate配对和Weil配对,它们的作用就是根据加法群G1中的一个元素的和加法群G2中的一个元素,进行高效的映射,生成乘法群G中的一个元素。这样可以实现乘法的同态隐藏以及从交互式协议向非交互式协议的转换,那么这两点在密码体制中有什么意义呢?意义是非凡的。乘法同态隐藏可以用于密码中的信息解密或者数字签名中的验证。举个例子来说,我们知道,在椭圆曲线上,已知g和g*x的值,要计算x的值非常困难,这样就可以将x作为私钥。然后定义映射E_1(x) := x*g, E_2(x) : = x*h, E(x) := x * g, 给定隐藏数E_1(x), E_2(y),我们可以计算出E(xy)。 也就是说,如果我们有x 和y的隐藏数,我们就可以计算出xy的隐藏数。但是反过来,如果我们有x, y, z的隐藏数,我们无法得到xyz。
一般来说,抽象意义的双线性配对描述为:满足以下三个性质的一个映射e:G1×G1àGT,其中G1是由生成元P生成的循环加法群,GT为同阶的循环乘法群,a,b为ZP*中的元素。
(1)双线性性:对于任意的P,Q∈G1和a,b∈ZP*,e(aP,bQ)=e(P,Q)ab成立P,Q。
(2)非退化性:存在P,Q∈G1,使得e(P,Q)≠