對稱金鑰加密(或對稱加密)是指使用相同的金鑰進行加密和解密的一種密碼學方案。在過去的幾十年中,這種資訊加密的方式被廣泛應用於政府和軍隊中的機密通訊。如今,對稱金鑰演算法也廣泛應用於各種類型的電腦系統中,扮演了增強資料安全性的角色。
對稱加密方案依賴兩個或多個使用者之間共享的相同金鑰。相同的密鑰被用於對所謂的明文(表示正在編碼的訊息或資料段)進行加密和解密。加密過程大致概括如下:對明文(作為輸入)使用加密演算法進行加密,然後加密演算法會將明文產生密文(輸出)。
如果加密方案夠強大,則人們讀取或存取密文資訊的唯一方法是使用相應的加密金鑰對其進行解密。解密過程基本上就是將密文轉換回明文。
對稱加密系統的安全性是基於隨機猜測對應金鑰以破解它們的難度。例如,使用普通電腦硬體破解128位元的金鑰至少需要花費數十億年。加密金鑰的位數越長,破解它就越難。 256位元的密鑰通常被認為是安全度極高的,並且理論上可抵抗量子電腦的暴力攻擊。
目前使用的兩種最常見的對稱加密方案是基於區塊密碼和流密碼。分組密碼將資料分成預定大小的區塊,並使用相應的金鑰和加密演算法(例如,128位元明文被加密成128位元密文)對每個區塊進行加密。另一方面,流密碼不按塊加密明文數據,而是以1比特的流增量進行加密(即1比特明文一次加密成1比特密文)。
對稱加密是現代電腦系統中加密資料的兩種主要方法之一。而另一種就是所謂的非對稱加密,有時也稱為公鑰加密。上述兩種方法的主要差異在於非對稱加密系統使用兩個不同的金鑰進行加解密,不同於對稱加密中所使用的相同金鑰。在非對稱加密中,其中一個金鑰用於共享(公鑰),而另一個金鑰必須保密(私鑰)。
非對稱加密演算法使用兩個不同的金鑰也是其與對稱金鑰產生功能差異的原因。非對稱演算法比對稱演算法更複雜,運算速度更慢。因為非對稱加密中使用的公鑰和私鑰在某種程度上是算數相關的,所以金鑰本身也必須足夠長,以達到與對稱加密演算法(使用較短加密金鑰)相同的安全級別。
在許多現代電腦系統中採用對稱加密演算法來增強資料安全性和用戶隱私。在安全訊息傳遞應用程式和雲端儲存中廣泛使用的高級加密標準(AES)是對稱密碼的常見用例。
除軟體實現外,AES還可以直接在電腦硬體中實現。基於硬體的對稱加密方案通常利用AES 256,它是高級加密標準的特定變體,密鑰長度為256位元。
值得注意的是,比特幣的區塊鏈並沒有像大多數人所認為的那樣使用加密。與之相對的,它使用了一種稱為橢圓曲線數位簽章演算法(ECDSA)的特殊數位簽章演算法(DSA),該演算法在不使用加密演算法的情況下產生數位簽章。
一個常見的混淆點是ECDSA基於橢圓曲線加密(ECC),後者還可以應用於多種不同的任務,包括加密、數位簽章和偽隨機產生器。但是,ECDSA本身根本不能用於加密。
對稱加密演算法可以提供相對較高的安全級別,同時支援快速加密和解密訊息。對稱加密系統的相對便利性在邏輯上也是一種優勢,因為它們比非對稱系統消耗更少的運算資源。此外,對稱加密提供的安全性可以透過增加金鑰長度來實現。隨著對稱密鑰長度的增加,暴力攻擊破解加密的難度也呈指數級增長。
雖然對稱加密能夠提供許多優勢,但也存在一個嚴重的缺點:用於加密和解密資料的金鑰是相同的。當這些金鑰在不安全的網路連線中共用時,它們很容易被惡意的第三方攔截。如果未經授權的使用者獲得對特定金鑰的存取權限,則使用該金鑰加密資料安全性都會受到破壞。為了解決這個問題,許多Web協定使用對稱和非對稱加密的組合來建立安全連線。這種混合協定最常見的例子是傳輸層安全加密協定(TLS),該協定被用於保護現代互聯網上大部分的網路連線。
也應注意,由於實施的不當,所有類型的電腦加密都會受到漏洞影響。雖然足夠長的密鑰在數學上可使暴力攻擊失效,但程式設計師的錯誤配置,常常也會產生漏洞,為網路攻擊者開闢新的道路。
由於對稱加密的運算速度相對較快,易於使用且安全性較高,對稱加密被廣泛應用於互聯網流量防護和雲端伺服器上的資料保護等各種應用。而為了解決傳輸金鑰的安全問題,它經常與非對稱加密配合使用,但對稱加密方案仍然是現代電腦安全的關鍵組成部分。