1.2 對稱密碼:對稱加密概述
對稱加密(Symmetric Encryption)是密碼學的重要概念之一。對稱密碼在密碼學中有著舉足輕重的地位,本書中的大多數密碼算法或協議都用到對稱密碼。現在,我們借助將要介紹的第一個協議引入對稱加密這個新概念。想象這樣一個情景:Alice需要給住在城堡外的Bob寄送一封信件。如圖1.1所示,Alice要求她忠實的信使(Messenger)騎上他的駿馬,穿越前方危險的土地,向Bob傳遞重要消息。然而,Alice對信使很是懷疑;盡管這位忠實的信使為她效勞多年,但她仍希望此次傳遞的消息對包括信使在內的所有被動觀察者均保密。試想一下,這封信可能包含一些關于王國的流言蜚語。

圖1.1 Alice通過信使向Bob發送重要消息
Alice需要的是一個協議,它能模擬Alice親自將消息傳遞給Bob的過程。這是一個在現實中不可能解決的問題,除非我們采用密碼學(或隱形傳輸)技術。這就要用到密碼學家多年前發明的一種新型加密算法,常稱為對稱加密算法(Symmetric Encryption Algorithm)。
注意:
順便說一下,密碼學算法通常也被稱為密碼學原語。我們可以將密碼學原語視為密碼學中一種最小的算法構造,它通常與其他原語一起用于構造新的協議。“密碼學原語”一詞經常出現在相關文獻中,了解它有利于閱讀文獻,但它本身確實沒有特別的意義,僅僅是一個新的術語而已。
接下來,讓我們看看如何使用這個對稱加密算法向信使隱藏Alice的真實消息。現在,假設這個密碼學原語是一個提供了以下兩個函數的黑盒子(我們無法看到它的內部構造)。
● ENCRYPT;
● DECRYPT。
第一個函數ENCRYPT以密鑰(Secret Key)和消息(Message)為輸入,它輸出一系列看起來像是隨機選擇的數字,如果我們愿意的話,它也可以輸出像噪聲一樣的數據。我們把這個函數的輸出稱為加密消息。函數ENCRYPT的原理如圖1.2所示。

圖1.2 函數ENCRYPT以密鑰和消息為輸入,輸出一個加密后的消息(看起來像噪聲一樣的隨機數字序列)
第二個函數DECRYPT是第一個函數ENCRYPT的逆函數,它以ENCRYPT輸入的密鑰和輸出的加密消息為輸入,輸出原始消息。函數DECRYPT的原理如圖1.3所示。

圖1.3 函數DECRYPT以密鑰和加密消息為輸入,輸出原始消息
為了使用這個新的密碼學原語,Alice和Bob不得不在現實世界中先會面一次,商定他們將要使用的密鑰。之后,Alice可以使用商定的密鑰和函數ENCRYPT去保護她的消息。接著,她將加密的消息交給信使,并由信使轉交給Bob。Bob收到加密的消息后,使用與Alice相同的密鑰和函數DECRYPT恢復出原始消息。具體過程如圖1.4所示。

圖1.4 (1)Alice使用函數ENCRYPT和密鑰將消息轉變成像噪聲一樣的隨機數字序列;(2)她將加密的消息交給信使,信使無法獲知真實消息;(3)Bob一旦收到加密的消息,他就可以使用和Alice一樣的密鑰和DECRYPT函數恢復出原始內容
在該消息傳遞過程中,信使擁有的都是看起來隨機的消息,這不會對他獲得隱藏的消息提供任何有意義的幫助。借助密碼學技術,我們有效地將不安全的協議轉變為安全協議。新協議使得Alice可以在沒有任何人(除Bob外)知道消息內容的情況下向Bob傳遞一封機密信件。
在密碼學中,使一個協議變得安全的常見做法就是:使用密鑰將消息轉變成噪聲,使經過變換后的消息與隨機數字序列無法區分開來。在接下來的章節中,我們將通過學習更多的密碼算法來了解這個過程。
順便說一句,對稱加密是對稱密碼(Symmetric Cryptography)或密鑰密碼(Secret Key Cryptography)的一部分。此類密碼學原語的不同函數往往使用相同的密鑰。在后面的章節中,我們還會看到密鑰有時不止一個。
- INSTANT Metasploit Starter
- Web安全與攻防入門很輕松(實戰超值版)
- 網絡安全三十六計:人人該懂的防黑客技巧
- Digital Forensics with Kali Linux
- Kerberos域網絡安全從入門到精通
- 數據安全領域指南
- 安全防御入門手冊
- 網絡服務安全與監控
- Kali Linux高級滲透測試(原書第4版)
- 功能型密碼算法設計與分析
- 云計算安全技術與應用
- CPK通向賽博安全之路:理論與實踐CPK Solution to Cyber Security:Theory and Practice
- 計算機網絡安全與應用技術(第2版)
- 2023—2024年中國網絡安全發展藍皮書
- CCNA Security 210-260 Certification Guide