
密鑰管理廣義的含義不僅包括密鑰如何分發到用戶,也有密鑰的使用方法。狹義的含義不含用戶取得密鑰後的使用方法。它主要含以下幾個部分:
1.密鑰產生
如今針對密鑰有窮舉與字典兩種常見的攻擊方法。
窮舉攻擊法指的是嘗試一切可能的密鑰來找當前用的密鑰。若用一台每秒嘗試100萬次密鑰的計算機,只需36分鐘就可把由小寫字母與數字組成的6位長的全部密碼試一次。2013年9月,世界上最快的計算機每秒運算速度最快可達5.49億億次,且計算能力幾乎每18個月就加大一倍。
字典攻擊法指把人們最可能用的全部密碼匯集成一本密碼字典,攻擊時只嘗試該字典中的全部密碼。它常用於攻擊系統口令,是一種特殊的窮舉攻擊法。計算機上40%的口令可由該法破譯。
為防禦窮舉和字典攻擊法,密鑰長度應足夠長,且複雜度應足夠高,同時需防止存在弱密鑰。通常密鑰長度越大,對應的密鑰空間就越大,攻擊者用窮舉猜測密碼的就越困難。由自動處理設備生成的隨機比特串是好密鑰。對公鑰密碼算法來說,密鑰產生更困難,因為它必須滿足某些數學特徵。
2.密鑰傳
甲乙雙方需共享一個相同密鑰才可保密通信,通常由一方先產生密鑰,然後借安全方式傳給對方。
密鑰傳輸方式有多種形式,可以是人工面對面,也可選擇部寄或快遞,把密鑰副本交給對方。也可把密鑰分成很多不一樣的部分,然後用電話或顺利获得快遞等方式發出去。
X9.17標準描述了密鑰加密密鑰和數據密鑰。前者加密其他需分發的密鑰,通常是手工分發;而後者只加密信息流。
3.密鑰
有時密鑰在傳輸中會發生錯誤。可在密鑰後附一些檢錯和糾錯位來檢測,若發生錯誤可重傳密鑰。
甲收到乙的密鑰後,如何驗證該密鑰是乙的呢?常用的方法是乙選擇一段內容用該密鑰加密,然後發給甲,甲解密後若明文正確,則可確認是乙的密鑰。
4.密鑰更新
當密鑰要改變時,如何方便地取得新密鑰並不是容易的事,可基於舊密鑰產生新密鑰。若雙方事先共享同一密鑰並約定一致的計算方法,每次密鑰更新時計算一次共享密鑰或舊密鑰,就能得到新密鑰。
5.密鑰存儲
密鑰可記憶在大腦中,也可直接存儲到計算機硬盤、智能卡,還可把密鑰分成多個部分,分別存儲到不同位置,另外還可用其他密鑰加密保存。
6.密鑰備份
密鑰備份可用託管、分割、共享等方式。
密鑰託管是把密鑰交給第三方中心保管(如鎖在保險櫃裏或用主密鑰加密保存),一旦丟失(如遺忘或用戶意外死亡),按照一定的規章制度,可從該中心索取或恢復該密鑰。
密鑰分割是把密鑰分割成很多碎片,每個碎片本身並不代表什麼,但把它們放在一起,就能合成該密鑰。
密鑰共享是把密鑰分成n塊,知道任意m(m<n)或更多塊就能計算出該密鑰,但知道任意m-1或更少的塊都不能,該方法又叫做(m,n)門限(閾值)方案。
7.密鑰銷毀
若密鑰必須替換,舊密鑰就一定要銷毀。舊密鑰是有價值的,即使不再用,攻擊者有了它們也能讀到由它們加密的一些舊信息。
密鑰必須安全地銷毀。若寫在紙上,這張紙必須切碎或燒掉。若存儲在硬盤或內存中,位置必須用其他數據多次重寫。由於密鑰在計算機中很輕易被複製並存儲到多個地方,應編寫特殊的刪除程序,查看全部硬盤或內存,找出可能存在的密鑰副本,徹底刪除乾淨;同時要記住徹底刪除全部臨時或交換文件的內容。
8.密鑰有效期
加密密鑰不能無限期用,主要是因為密鑰使用時間越長,它泄露的機會就越大;若已泄露,那麼用越久損失就越大,花費精力破譯它的誘惑力就越大;對用同一密鑰加密的多個密文進行密碼分析通常較容易。
對任何密碼應用,須有一個策略能檢測密鑰的有效期。不同密鑰應有不一樣的有效期。有效期主要由數據的價值與給定時間裏加密數據的數量決定。數據價值越大,數量越多,所用密鑰的有效期就越短,更換越頻繁。
9.密鑰使用
安全得到密鑰後,就可用其保密通信了。通信時,可直接用該密鑰加解密數據,但該方式易造成密鑰泄露或被對方破解。為防止泄露或破解風險,保密通信時並不直接用共享密鑰,而是先基於該密鑰產生會話密鑰,然後再用會話密鑰對數據加解密。
