DH密鑰交換
密模運算
所謂冪模,就是先做一次冪運算,再做一次模運算。
模運算有以下性質:
也就是說,先模再乘和先乘再模,只要最后都模了同一個模數,結果都是一樣。
有了這個性質,我們首先得到冪模運算的這種兩次運算交換律。
單向性
已知 g 和 n 容易計算得到 y ,而已知 g 和 y 很難求得 x 。
舉個例子說明:
這個顯示結果的最后一列,也可以再次印證歐拉定理。
由於到目前位置都沒有一個很好的求解離散對數的算法,只有正向一個一個的試 才能找到那個滿足條件的 x 。
DH密鑰交換
由於冪模運算的單向性,離散對數和大整數素因子分解一樣都是一種陷門函數,所以同樣可以基於冪模運算設計一套公鑰密碼。
假設通信雙方Alice和Bob需要使用對稱密碼進行加密通信,對稱密碼所使用的密鑰我們通常稱為會話秘鑰,那么可以用一下的DH密鑰交換過程在不安全的信道上實現會話密鑰的安全協商。
這個過程看起來好復雜,不是說好了要協商會話密鑰的嗎?這個 ka 和 kb 能確保一樣嗎?咱們可以來證明一下。
所以,他們協商出的會話密鑰一定是相同的。