在密碼學中,金鑰(key)是指某個用來完成加密、解密、完整性驗證等密碼學應用的秘密資訊。在對稱密碼學(或稱金鑰密碼學)中,加密和解密用的是同一個鑰匙,因此鑰匙需要保密。而在公鑰密碼學(或稱非對稱密碼學)中,加密和解密用的鑰匙不同:通常一個是公開的,稱為公鑰;另一個保密,稱為私鑰。
現實世界中的鑰匙通常是具有一定形狀的金屬片,鑰匙用來打開鎖。而密碼演算法中的「鑰匙」(金鑰)則用來「打開」密文。金鑰是一串非常大的數字。根據金鑰的使用方法,可將密碼分為對稱密碼(symmetric cryptography)和非對稱密碼(asymmetric cryptography)兩種。非對稱密碼通常又稱為公鑰密碼(pubilc-key cryptography)。[1]
金鑰分類及其關係
- 對稱密碼學的金鑰,和公鑰密碼學的金鑰:對稱密碼學是指在加密和解密時使用同一個金鑰的方式,對稱密碼又稱為共享金鑰(Pre-shared key,PSK)。公鑰密碼學是指在加密和解密時使用不同金鑰的方式。用於加密的金鑰稱為公鑰,意思就是可以公開的金鑰,用於解密的金鑰稱為私鑰,不能公開。公鑰和私鑰具有數學關係,稱為金鑰對(Keypair)。
- 訊息鑑別碼的金鑰和數位簽章的金鑰:在訊息鑑別碼中,訊息傳送方和接收方使用共享金鑰進行認證。在數位簽章中,簽章使用私鑰,而驗證使用公鑰。
- 用於確保機密性的金鑰和用於認證的金鑰:對稱密碼的金鑰和公鑰密碼的金鑰都是用於確保訊息的機密性。相對而言,訊息鑑別碼的金鑰和數位簽章的金鑰則是用於認證。
- 對談金鑰和主金鑰:每次通訊只使用一次的金鑰稱為對談金鑰(session key)。相對於對談金鑰,重複使用的金鑰稱為主金鑰(master key)。
- 用於加密內容的金鑰和用於加密金鑰的金鑰。
金鑰管理
- 生成金鑰:可以用亂數生成金鑰,也可以用口令生成金鑰。
- 配送金鑰:可採用事先共享金鑰、使用金鑰分配中心、使用公鑰密碼、使用Diffie-Hellman金鑰交換。
- 更新金鑰
- 儲存金鑰
- 作廢金鑰
金鑰與密碼
對於大多數電腦安全目的和大多數使用者而言,「金鑰」與「密碼」不是同義詞,儘管密碼實際上可以用作金鑰。金鑰和密碼之間的主要實際區別在於後者旨在由人類使用者生成,讀取,記憶和再現(儘管使用者可以將這些任務委託給密碼管理軟體)。相反,金鑰旨在供實現加密演算法的軟體使用,因此不需要人類可讀性等。實際上,在大多數情況下,大多數使用者甚至不會意識到他們日常使用的軟體的安全組件裡面含有金鑰。
如果密碼被用作加密金鑰,那麼在精心設計的密碼系統裡就不會是這樣使用的。這是因為密碼往往是人類可讀的,因此可能不是特別強。為了改善這缺點,一個好的加密系統不會使用密碼作為金鑰來執行主加密任務本身,而是充當金鑰衍生函式(KDF)的輸入。KDF使用密碼作為起點,然後從中生成實際的安全加密金鑰。在生成中可以使用各種方法,例如添加鹽 (密碼學)和金鑰延伸。
參考文獻
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.