密钥协商和加密方案之间的联系

Diffie-Hellman两方密钥协商和ElGamal加密

​ AB双方想要使用对称密码加密消息来进行秘密通信,但是传递加密的密钥是一个的问题,因为没有绝对安全的信道来传送密钥。如何在信息公开的情况下,让AB双方得到他们要用于加密的密钥而不让别人知道。公钥密码学给出了解决方案,公钥密码学的出现解决了密钥分配和数字签名(不可否认)问题。

​ Diffie-Hellman密钥协商,在完全公开的信道上,两人协商出了他们的加解密密钥(种子),而其他人不能通过信道上传递的信息(即他们的交互内容)获取到密钥的信息。

*note:一轮密钥协商,即是说双方可以通过自己的方式(不同的方式)计算得到同样的东西(密钥),这个密钥在密钥协商协议中被拿来做生成对称加密密钥的种子。但本质就是通过两种不同的方式计算能得到了同样的东西,它直接用来当作加密组件,便成了公钥加密方案。常见的三种加密方式\(\left\{\begin{matrix} M\oplus g^{xy} \\ M\cdot g^{xy}\\ E_{g^{xy}}(M) \end{matrix}\right.\)

在ElGamal中,加密过程本质是加密方(收到公钥\(y=g^x\),并添上自己的随机值\(k\)产生加密密钥\(g^{xk}\)然后进行加密\(C=M\cdot y^k\)。)和解密方(收到加密方对随机值\(k\)的承诺\(g^k\),并添上自己的私钥\(x\)产生协商密钥\(g^{kx}\)然后进行解密\(\frac{C}{(g^k)^x}\)。)对加密组件\((g^k)^x=g^{xk}=y^k\)的协商。

三方一轮密钥协商和2001-IBE加密

在发现了双线性群上的配对运算\(e\)之后,因为其非常好的双线性性质(提供了指数上的乘,但是“只有一次机会”,\(e(g^a,g^b)=e(g,g)^{ab})\)),使得密钥协商可以由两方提升为三方一轮,由原来的\((g^x)^y\),变为了\((e(g,g)^{ab})^c\)

这样一个三方的密钥协商,也就得到了配对版的ElGamal加密——2001年经典的IBE。(据说证明有问题?)加密方,解密方,私钥产生方KGC,三方来共同协商出加密组件。

加密方:拥有的是\(k\) 给出的是 \(g^k\)

*解密方:给出的是\(H(ID_A)\),拥有的是\(H(ID_A)^s=d_A\)(由KGC为他生成这个私钥。)

KGC:拥有的是\(s\) 给出的是\(g^s=P_{pub}\)

最终\(e(H(ID_A),P_{pub})^k=e(d_A,g_k)=e(H(ID_A),g^k)^s\),三方各自有个各自的计算方式,利用两外两方的公开信息和自己的秘密,做出协商密钥(即加密组件)\(e(H(ID_A),g)^{ks}\)。由于这里对于\(H(ID_A)\)不知其对\(g\)的显示表达,所以解密方与三方形式略有不同,它直接使用KGC给它的私钥 \(H(ID_A)^s\)

posted @ 2022-05-23 14:16  玩剑的Fiora  阅读(219)  评论(0)    收藏  举报