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