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