DH密鑰交換
密模運算
所謂幂模,就是先做一次幂運算,再做一次模運算。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5iNxkTM1QjYygTM4YmZmBDOxYzX4ADOwcTMyAzLcFTMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL2M3Lc9CX6MHc0RHaiojIsJye.png)
模運算有以下性質:
也就是說,先模再乘和先乘再模,隻要最後都模了同一個模數,結果都是一樣。
有了這個性質,我們首先得到幂模運算的這種兩次運算交換律。
單向性
已知 g 和 n 容易計算得到 y ,而已知 g 和 y 很難求得 x 。
舉個例子說明:
這個顯示結果的最後一列,也可以再次印證歐拉定理。
由于到目前位置都沒有一個很好的求解離散對數的算法,隻有正向一個一個的試 才能找到那個滿足條件的 x 。
由于幂模運算的單向性,離散對數和大整數素因子分解一樣都是一種陷門函數,是以同樣可以基于幂模運算設計一套公鑰密碼。
假設通信雙方Alice和Bob需要使用對稱密碼進行加密通信,對稱密碼所使用的密鑰我們通常稱為會話秘鑰,那麼可以用一下的DH密鑰交換過程在不安全的信道上實作會話密鑰的安全協商。