金鑰
密碼學中的一條信息
在密碼學中,金鑰(key)是指某個用來完成加密、解密、完整性驗證等密碼學應用的秘密資訊。在對稱密碼學(或稱金鑰密碼學)中,加密和解密用的是同一個鑰匙,因此鑰匙需要保密。而在公鑰密碼學(或稱非對稱密碼學)中,加密和解密用的鑰匙不同:通常一個是公開的,稱為公鑰;另一個保密,稱為私鑰。
現實世界中的鑰匙通常是具有一定形狀的金屬片,鑰匙用來打開鎖。而密碼演算法中的「鑰匙」(金鑰)則用來「打開」密文。金鑰是一串非常大的數字。根據金鑰的使用方法,可將密碼分為對稱密碼(symmetric cryptography)和非對稱密碼(asymmetric cryptography)兩種。非對稱密碼通常又稱為公鑰密碼(pubilc-key cryptography)。[1]
金鑰分類及其關係
- 對稱密碼學的金鑰,和公鑰密碼學的金鑰:對稱密碼學是指在加密和解密時使用同一個金鑰的方式,對稱密碼又稱為共用金鑰(Pre-shared key,PSK)。公鑰密碼學是指在加密和解密時使用不同金鑰的方式。用於加密的金鑰稱為公鑰,意思就是可以公開的金鑰,用於解密的金鑰稱為私鑰,不能公開。公鑰和私鑰具有數學關係,稱為金鑰對(Keypair)。
- 訊息鑑別碼的金鑰和數碼簽章的金鑰:在訊息鑑別碼中,訊息傳送方和接收方使用共用金鑰進行認證。在數碼簽章中,簽章使用私鑰,而驗證使用公鑰。
- 用於確保機密性的金鑰和用於認證的金鑰:對稱密碼的金鑰和公鑰密碼的金鑰都是用於確保訊息的機密性。相對而言,訊息鑑別碼的金鑰和數碼簽章的金鑰則是用於認證。
- 對談金鑰和主金鑰:每次通訊只使用一次的金鑰稱為對談金鑰(session key)。相對於對談金鑰,重複使用的金鑰稱為主金鑰(master key)。
- 用於加密內容的金鑰和用於加密金鑰的金鑰。
金鑰管理
- 生成金鑰:可以用亂數生成金鑰,也可以用口令生成金鑰。
- 配送金鑰:可採用事先共用金鑰、使用金鑰分配中心、使用公鑰密碼、使用Diffie-Hellman金鑰交換。
- 更新金鑰
- 儲存金鑰
- 作廢金鑰
金鑰與密碼
對於大多數電腦安全目的和大多數用戶而言,「金鑰」與「密碼」不是同義詞,儘管密碼實際上可以用作金鑰。金鑰和密碼之間的主要實際區別在於後者旨在由人類用戶生成,讀取,記憶和再現(儘管用戶可以將這些任務委託給密碼管理軟件)。相反,金鑰旨在供實現加密演算法的軟件使用,因此不需要人類可讀性等。實際上,在大多數情況下,大多數用戶甚至不會意識到他們日常使用的軟件的安全組件裏面含有金鑰。
如果密碼被用作加密金鑰,那麼在精心設計的密碼系統裏就不會是這樣使用的。這是因為密碼往往是人類可讀的,因此可能不是特別強。為了改善這缺點,一個好的加密系統不會使用密碼作為金鑰來執行主加密任務本身,而是充當金鑰衍生函數(KDF)的輸入。KDF使用密碼作為起點,然後從中生成實際的安全加密金鑰。在生成中可以使用各種方法,例如添加鹽 (密碼學)和金鑰延伸。
參考文獻
- ^ 結城浩. 图解密码技术(第3版). 人民郵電出版社. 2016: 8–9頁. ISBN 978-7-115-42491-4.
- ^ 結城浩. 图解密码技术(第3版). 人民郵電出版社. 2016: 260–264頁. ISBN 978-7-115-42491-4.
- ^ 結城浩. 图解密码技术(第3版). 人民郵電出版社. 2016: 264–268頁. ISBN 978-7-115-42491-4.