这是最新的一期密码学52件事.我们基于前几周介绍一种"对"的概念.
对的定义
给定三个循环群G1,G2,G3,它们的基为q,生成器分别为g1,g2,g3.我们说一个函数e:G1×G2→G3是一个密码对如果下面的等式都成立.
[双线性]∀A,B∈G1,C,D∈G2:e(A+B,C)=e(A,C)⋅e(B,C),同时e(A,C+D)=e(A,C)⋅e(A,D)\forall A,B \in G_1,C,D \in G_2:e(A+B,C)=e(A,C) \cdot e(B,C) ,同时e(A,C+D)=e(A,C) \cdot e(A,D)∀A,B∈G1,C,D∈G2:e(A+B,C)=e(A,C)⋅e(B,C),同时e(A,C+D)=e(A,C)⋅e(A,D)
[退化性]e(g1,g2)≠1
[有效性]e是能有效的计算出来
对的类型
下面有三种对密码的类型:
- 类型1 G1=G2
- 类型2 G1≠G2但是存在一个有效的可计算同构从G2到G1,同时存在一个映射从g2到g1
- 类型3 G1≠G2但是不存在一个有效的计算同构
后面两个是非对称的"对",而第一种是对称的"对".
对上的警惕
似乎我总是设置一个警惕部分在我的每篇博客中,但是这些是重要的,我觉得应该被包括.在类型1(和类型2相似)的对(不意味着类型3安全),DDH问题(给定g,gx,gy,gz有z=x⋅y)是容易的检查是否e(gx,gy)=e(gz,g)g,g^x,g^y,g^z 有z = x \cdot y)是容易的检查是否e(g^{x} , g^y)=e(g^z,g)g,gx,gy,gz有z=x⋅y)是容易的检查是否e(gx,gy)=e(gz,g).另外一个事情就是当用"对"做任何事情的都是都要小心.
对的使用
"对"有一个广泛的应用,包括密码学,基于身份的加密,基于属性的加密和泄露弹性密码学.
对密码的实例
我们知道如何实例化配对的唯一方法是通过椭圆曲线(参见52件事系列的最后几个博客),这也是椭圆曲线在密码学中如此受欢迎的另一个原因。近年来,多线性映射出现在不同群体的文献中。然而,那是另一个时代的故事了……
原文链接:http://bristolcrypto.blogspot.com/2015/01/52-things-number-14-what-is.html
转载链接:https://www.cnblogs.com/zhuowangy2k/p/12242704.html