DH

https://en.wikipedia.org/wiki/Diffie–Hellman_key_exchange

Bob 心想一个数字 e
Alice 心想一个数字 d
Alice 和 Bob 共同选一个数字 m 和一个质数 n 这两个数字都可以告诉大家
Bob 告诉 Alice m ** e % n 的结果
Alice 告诉 Bob m ** d % n 的结果

Bob 拿到了 m ** d % n 再做 e 次方 m ** (d * e) % n
Alice 拿到了 m ** e % n 再做 d 次方 m ** (d * e) % n

对于窃听者来说,只能知道 m ** d 和 m ** e 和 m 和 n 无法知道 e d m ** (d * e)

这个例子利用了离散对数无法快速计算

一般的对数
a ** b == c
已知a和c求b

离散对数
a ** b % p = c
已知a和c和p求b

RSA

  1. DH
  2. RSA