應用篇 金鑰

2021-09-09 07:02:53 字數 3698 閱讀 9651

無論是對稱密碼、公鑰密碼還是訊息認證碼、數字簽名等密碼技術,都需要使用金鑰,那什麼是金鑰?

目錄

一、金鑰介紹

金鑰分類

1)根據用途分類:

2)通過使用次數分類:

3)根據加密物件分類:

二、金鑰的管理

1.金鑰的生成

1)使用隨機數生成金鑰

2)使用口令生成金鑰

2.配送金鑰

3.更新金鑰

4.儲存金鑰

5.作廢金鑰

三、簡單分析diffie-hellman金鑰交換

金鑰交換步驟

四、基於口令的密碼(pbe)

1.pbe加密過程

2.pbe解密過程

3.鹽的作用

4.生成口令的注意事項:

金鑰:是一種在明文轉密文或密文轉明文的演算法中輸入的引數

在金鑰中,數字本身大小並不重要,重要的是金鑰的空間大小(可能出現的金鑰總數量);因為金鑰空間越大,進行暴力破解就越困難。金鑰的空間大小是由金鑰長度決定的

對稱金鑰:加密和解密使用同乙個金鑰,由於需要收發雙方要共享金鑰,因此要對除傳送者和接收者之外的人保密

公鑰金鑰:加密和解密使用的是不同的金鑰,其中,公鑰加密,私鑰解密;公鑰可以公開,而私鑰只能自己持有

訊息認證碼:接收者和傳送和之間共享金鑰來認證,認證碼只能由持有合法金鑰的認得出;通常將訊息認證碼附在報文後面,可識別訊息是否被篡改或偽裝

訊息認證碼也是收發雙方的合法證明,因此需要對除收發雙方以外的人保密

數字簽名:和公鑰密碼相反,私鑰用於生成簽名,公鑰用於驗證簽名

對稱密碼和公鑰密碼是用於確保機密性的金鑰;訊息認證碼和數字簽名是用於認證的金鑰

主金鑰:一直重複使用的金鑰

cek(內容加密金鑰):加密的物件是使用者直接使用的資訊

kek(金鑰加密金鑰):用於加密金鑰

使用偽隨機數生成器來生成金鑰,需要注意:密碼學用途的偽隨機數生成器必須專門針對密碼學用途而設計(具備不可**的性質)

使用可記住的口令來生成金鑰(已經很少直接使用),現在都是將口令輸入單向雜湊函式得到的雜湊值作為金鑰使用

採用事先共享金鑰、金鑰分配中心、公共金鑰、diffie-hellman金鑰交換等方法

在使用共享金鑰進行同通訊時,定期改變金鑰(收發雙方使用同樣的方法同時更改)

在該金鑰需要重複使用時使用

為了使該金鑰保密,要使用另乙個金鑰對其進行加密行加密(kek);雖然完全解決檔案機密性問題,但可以減少要保管的金鑰數量(使用乙個金鑰同時加密多個金鑰,因此該金鑰的價值也就等於這多個金鑰)

在計算機上僅是刪除檔案是不夠的,因為現在有很多可以恢復誤刪檔案的軟體(刪除的檔案實際並沒有刪除,只是不顯示了而已);因此要作廢金鑰時,不僅僅刪除就可以,還需要將金鑰列入crl中

使用該演算法,通訊雙方僅交換一些公開資訊,就能生成共享金鑰(ipsec就使用了改良版的diffie-hellman),因此也稱為diffie-hellman金鑰協商

1)alice向bob傳送p和g這兩個質數

p必須非常大,g是p的生成元;p與g不需要保密,可有收發雙方任意一方生成

2)alice生成乙個隨機數a

a是乙個1~p-2之間的整數,只有alice知道

3)bob生成乙個隨機數b

同上,只有bob知道

4)alice將g^a mod p傳送給bob(可公開)

5)bob將g^b mod p 傳送給alice (可公開)

6)alice用bob傳送來的數計算共享金鑰(bob也用alice傳送過來的數計算金鑰)

alice的金鑰 =(g^b mod p)^a mod p = g^a×b mod p

bob的金鑰 = (g^a mod p)^b mod p = g^b×a mod p

由上得出alice的金鑰=bob的金鑰

在該交換金鑰中,最主要的是a和b,不能讓第三方知道

根據g^a mod p 求a的有效演算法還未出現,該問題可稱為有限群的離散對數問題

生成元:群中元素可以由最小數目個群元的乘積生成,這組群元稱為該群的生成元,生成元的數目為有限群的秩

生成元的乘方結果與1~p-1的數字一一對應

根據口令生成金鑰並使用該金鑰進行加密,其中加密與解密使用同乙個金鑰

pbe演算法在加密過程中並不是直接使用口令來加密,而是加密的金鑰由口令生成,這個功能由pbe演算法中的kdf函式完成。kdf函式的實現過程為:將使用者輸入的口令首先通過「鹽」(salt)的擾亂產生準金鑰,再將準金鑰經過雜湊函式多次迭代後生成最終加密金鑰,金鑰生成後,pbe演算法再選用對稱加密演算法對資料進行加密,可以選擇des、3des、rc5等對稱加密演算法

1)生成kek

使用偽隨機數生成器生成稱為「鹽」(salt)的隨機數,將鹽和alice的口令一同輸入到單向雜湊函式,得到的雜湊值就是金鑰加密金鑰(kek)

鹽:一種抵禦字典攻擊的防禦機制

2)生成會話金鑰並加密

繼續使用偽隨機數生成器生成會話金鑰(cek,用於加密訊息),將(1)生成的kek加密cek,並將鹽和加密過的cek儲存在的安全地方,並丟棄kek(使用鹽和口令就可以重建)

3)加密訊息

使用(2)中生成的會話金鑰加密訊息

最後pbe的輸出為:鹽、kek加密後的cek,cek加密後的訊息

1)重建kek

將鹽和口令一同輸入單向雜湊函式得出雜湊值就是kek

2)解密會話金鑰 

將kek加密過的cek使用(1)得到的kek進行解密,可得到cek

3)解密訊息

使用(2)得到的cek解密被加密的訊息

字典攻擊:是一種使用預先準備好的候選金鑰列表,在需要破解密碼時,使用該列表逐條對應進行匹配,可縮短大量時間的一種攻擊方式

在生成金鑰時,沒有加鹽的話;攻擊者會在事先生成大量的候選金鑰,進行匹配;如果在生成金鑰時加鹽,鹽的長度越大,候選金鑰的數量就越多(金鑰空間越大);只要攻擊者沒有獲得鹽,就無法生成金鑰

1)只使用自己知道的資訊

2)將多個不同口令分開使用

很多人無論qq也好、**也好、電子郵箱也好都是用同乙個密碼,這會造成當密碼被破解時,與自己相關的應用都會受到損害

;也不要使用隻變了一部分的密碼(www123、www124、www125之類的)因為只要破解出乙個,其他也很輕鬆被推測出來

3)密碼的侷限性

隨著計算機的發展,其計算速度越來越快;因此使用暴力破解的速度也就越來越快

關於卡片的主控金鑰和應用主控金鑰

1.什麼叫卡片的個人化?構建ic卡應用系統過程中,如何定義卡中的資料資訊 相對邏輯加密卡 或卡中的應用型別及其資料資訊 相對cpu卡 及將資料資訊寫入卡中,以便應用於系統中進行交易 是乙個重要環節。這一環節在業界通常稱為卡片個人化。2.進行大批量和小批量個人化的條件?卡片個人化既可以在專門的裝置機器...

金鑰加密法(指標應用)

題目描述 有一種方式是使用金鑰進行加密的方法,就是對明文的每個字元使用金鑰上對應的密碼進行加密,最終得到密文 例如明文是abcde,金鑰是234,那麼加密方法就是a對應金鑰的2,也就是a偏移2位轉化為c 明文b對應金鑰的3,就是b偏移3位轉化為e,同理c偏移4位轉化為g。這時候金鑰已經使用完,那麼又...

金鑰加密法(指標應用)

有一種方式是使用金鑰進行加密的方法,就是對明文的每個字元使用金鑰上對應的密碼進行加密,最終得到密文 例如明文是abcde,金鑰是234,那麼加密方法就是a對應金鑰的2,也就是a偏移2位轉化為c 明文b對應金鑰的3,就是b偏移3位轉化為e,同理c偏移4位轉化為g。這時候金鑰已經使用完,那麼又重頭開始使...