更加安全的金鑰生成方法diffie-hellman
之前我們談到了金鑰配送的問題,這個世界是如此的危險, 一不小心通訊線路就會被監聽,那麼我們怎麼在這種不安全的線路中傳遞金鑰呢?
這裡我們介紹一下diffie-hellman金鑰交換演算法。這個演算法是由whitfield diffie和martin hellman在2023年共同發明的一種演算法。
通過這個演算法,雙方只需要交換某些共同的資訊就可以生成出共享的金鑰。是不是很神奇?
我們看下具體的步驟:
上面的圖就是diffie-hellman金鑰交換演算法,假如x要向y傳送訊息,如果採用上面的演算法,那麼需要如下幾個步驟:
生成兩個共享的質數 g 和p,並將這兩個數在x和y中共享。
p是乙個非常大的質數,而g是p的生成元(生成元的乘方結果和1~p-1中的數字是一一對應的)。
這兩個數g和p不需要保密。被竊取也沒關係。
x生成乙個隨機數a,這個隨機數只能x知道。a是乙個1~p-2中的乙個整數。
y生成乙個隨機數b,這個隨機數只能y知道。b是乙個1~p-2中的乙個整數。
x將ga mod p的結果發給y,這個結果不用保密
y將gb mod p的結果發給x,這個結果不用保密
x使用步驟5的結果和隨機數a計算最終的共享金鑰(gb mod p)a mod p = ga*b mod p
y使用步驟4的結果和隨機數b計算最終的共享金鑰(ga mod p)b mod p = ga*b mod p
我們可以看到6和7算出來的最終的金鑰是一樣的。
接下來,我們**下diffie-hellman演算法的安全性:
在該演算法中,暴露在外部的變數是p,g,ga mod p和gb mod p 這4個變數。
根據這四個變數來生成最終的ga*b mod p是非常困難的。
這個問題涉及到了離散對數問題,要解決是非常困難的。所以,我們可以相信diffie-hellman演算法是非常安全的。
github,SSH金鑰生成方法
如何用git來生成ssh 用cd ssh來檢測是否生成過ssh,如果沒有會出現command not find的提示,那麼就需要去生成乙個,具體怎麼做,按照下面步驟來 在git命令列中輸入ssh keygen t rsa c 郵箱位址 這個郵箱是你自己的qq郵箱就好,目的就是為了通知你 2.然後會有...
關於RSA金鑰生成方法
隨機金鑰生成 隨機生成金鑰 protected static map initkey throws exception 根據資訊生成 固定金鑰 因為在初始化keypairgen時候,需要傳入乙個隨機數,如果不傳底層應該預設了隨機,如果有第二個引數應該根據這個引數生成金鑰!只是猜測,但是如果第二個引數...
陣列的生成方法
1 1.由列表生成 2np.array list output array list 34 2.陣列的基本操作 56 import numpy as np78 10種陣列初始化方法 9 1 建立乙個長度為10的陣列,陣列的值都是0 10 np.zeros 10,dtype int 1112 2 建立...