DH密钥交换
DH密钥交换是一种非对称加密算法。
它是基于一个很简单的想法——颜色。由两种颜色混合得到第三种混合色很容易,分离混合色很难。
交换过程如上图,其中黄(Y)是共享颜色,蓝(B)是“我”的私有颜色,“绿”是小明的私有颜色。最终结果BGY=GBY,两个人的密钥相同,建立通信成功。而窃听者小刚只能得到(BY)和(GY),即使将它们混合,也只能得到BGYY,很难将黄色从中分离。
如果我们要在计算机中实现,就必须使用数学方法。即单向函数——正向运算容易,逆向运算难。符合这种方法的是模运算。例如x % y = z,已知x,y求z容易;但已知y和z求x难。
在这里,我们使用a^x % b来表示,其中a、b公开(可随机选取),a相当于公有颜色,整个表达式做模运算是为了隐藏私有颜色(x)。最终再在交换的那两个数各自乘上“私有颜色”的次方,结果相等,建立通信。
具体过程如下:
RSA加密算法
如果说DH密钥交换有什么缺点的话,就是每次通