[Math] 對稱加密與非對稱加密

密碼算法和協(xié)議,主要可以分為4個領域:
(1)對稱加密:用于加密任意大小的數(shù)據(jù)塊,或數(shù)據(jù)流的內容,包括消息、文件、加密密鑰和口令。
(2)非對稱加密:用于加密小的數(shù)據(jù)塊,如加密密鑰,或者數(shù)字簽名中使用的 Hash 函數(shù)值。
(3)數(shù)據(jù)完整性算法:用于保護數(shù)據(jù)塊(例如一條消息)的內容免于被修改。
(4)認證協(xié)議:有許多基于密碼算法的認證方案,用來認證實體的真實性。

對稱加密

對稱加密,也稱傳統(tǒng)加密,或單鑰加密,是20世紀70年代公鑰密碼產生之前唯一的加密類型。

對稱密碼是一種加解密使用相同密鑰的密碼體制,也稱為傳統(tǒng)密碼。
對稱密碼利用密鑰和加密算法,將明文變?yōu)槊芪?,運用相同的密鑰和解密算法,可以從密文恢復出明文。

分組密碼是一種加/解密方案,它將輸入的明文分組當做一個整體處理,輸出一個等長的密文分組。
許多分組密碼都采用 Feistel 結果,這樣的結構由許多相同的輪函數(shù)組成。
每一輪中,對輸入數(shù)據(jù)的一半進行代替,接著用一個置換來交換數(shù)據(jù)的兩個等分部分。
擴展初始的密鑰是的每一輪中使用不同的子密鑰。

DES(Data Encryption Standard,數(shù)據(jù)加密標準)一直是應用最為廣泛的加密算法,
它于1977年被美國國家標準局(NBS),及現(xiàn)在的國家標準和技術協(xié)會(NIST)采納為聯(lián)邦信息處理標準46(FIPS PUB 46)。
DES 體現(xiàn)了經(jīng)典的 Feistel 結構,使用64位的分組和56位的密鑰。
它將64位的輸入經(jīng)過一系列變換得到64位的輸出,解密則使用了相同的步驟和相同的密鑰。

56位密鑰共有2的56次方種可能,這個數(shù)字大概是7.2乘以10的16次方。
1998年7月,電子前哨基金會(EFF)宣布一臺造價不到25萬美元的特殊設計的機器,破譯了DES,
DES終于被清楚的證明是不安全的,這次攻擊所花的時間不到三天。
幸運的是,有大量DES的替代算法,最重要的有AES和3DES。

一個有限域就是有有限個元素的域。
可以證明有限域的階(元素的個數(shù))一定可以寫為素數(shù)的冪形式p的n次方,n為一個整數(shù),p為素數(shù)。
階為p的有限域,可以有模p算術來定義。
階為p的n次方(n>1)的有限域,可以有多項式算術來定義。

美國國家標準技術研究所(NIST)在2001年發(fā)布了AES(Advanced Encryption Standard,高級加密標準),
AES是一個對稱分組密碼算法,旨在取代DES稱為廣泛使用的標準。
其分組長度為128位,密鑰長度為128位,192位或256位。
AES未采用 Feistel 結構,每輪由4個單獨的運算組成:字節(jié)代替,置換,有限域上的算術運算,以及與密鑰的異或運算。

DES在窮舉攻擊之下相對比較脆弱,因此很多人在想辦法用某種算法替代它。
一種方案是設計全新的算法,例如AES。
還有一種方案,是對DES進行多次加密,且使用多個密鑰,例如三重DES(3DES)算法。

多重加密是將一個加密算法多次使用的技術。
在第一使用中,明文通過加密算法轉化為密文,然后將該密文作為輸入重新執(zhí)行加密算法。
三重DES,在三個階段使用DES算法,共用到兩組或三組密鑰。

流密碼是對稱密碼算法,從明文輸入流逐位或逐字節(jié)產生密文輸出。
使用最為廣泛的此類密碼是 RC4。
RC4 是 Ron Rivest 為 RSA 公司在1987年設計的一種流密碼。它是一個可變密鑰長度,面向字節(jié)操作的流密碼。
它被用于為網(wǎng)絡瀏覽器和服務器間通信而制定的 SSL/TLS(安全套接字協(xié)議/傳輸層安全協(xié)議)標準中,
它也應用于作為IEEE 802.11無線局域網(wǎng)標準一部分WEP(Wired Equivalent Privacy)協(xié)議和新的WiFi受保護訪問協(xié)議(WPA)中。

非對稱加密

公鑰密碼學的發(fā)展是整個密碼學發(fā)展歷史中最偉大的一次革命,也許可以說是唯一的一次革命。
公鑰密碼學與其前的密碼學完全不同。
首先,公鑰算法,是基于數(shù)學函數(shù)而不是基于代替和置換。
更重要的是,與只使用一個密鑰的對稱密碼不同,公鑰密碼是非對稱的,它使用兩個獨立的密鑰。

非對稱加密是一種密碼體制,其加密算法和解密算法使用不同的密鑰:一個是公鑰,另一個是私鑰。
非對稱密碼,也稱為公鑰密碼。
非對稱密碼使用兩個密鑰中的一個以及加密算法將明文轉換為密文。
用另一個密鑰以及解密算法,從密文恢復出明文。

應用最廣泛的公鑰密碼是RSA(Rivest-Shamir-Adleman)。
它是MIT的Ron Rivest,Adi Shamir和Len Adleman與1977年提出并與1978年首次發(fā)表的算法,是最早提出的成功的公鑰算法之一。
RSA是一種分組密碼,其明文和密文均是0至n-1之間的整數(shù),通常n的大小為1024位二進制數(shù),或309位十進制數(shù)。

Diffie-Hellman密鑰交換是一個簡單的公鑰算法,這個協(xié)議使得通信的雙方利用基于離散對數(shù)問題的公鑰算法建立密鑰。
許多商業(yè)商品都使用了這種密鑰交換技術。
該算法的目的是使兩個用戶能安全的交換密鑰,以便在后續(xù)的通信中用該密鑰對信息加密。
該算法本身只限于進行密鑰交換。

1984年,T.Elgamal提出了一種基于離散對數(shù)的公開密鑰體制,它與 Diffie-Hellman密鑰分配體制密切相關。
ElGamal密碼體系應用于一些技術標準中,如數(shù)字簽名標準(DSS)和S/MIME電子郵件標準。

大多數(shù)使用公鑰密碼學進行加密和數(shù)字簽名的產品和標準都使用RSA算法。
為了保證RSA使用的安全性,最近這些年來密鑰的位數(shù)一直在增加,這對使用RSA的應用是很重的負擔,
對進行大量安全交易的電子商務來說更是如此。

近來出現(xiàn)的一種具有強大競爭力的橢圓曲線密碼學(ECC)對RSA提出了挑戰(zhàn)。
與RSA相比,ECC的主要誘人之處在于,它可以使用比RSA短得多的密鑰得到相同的安全性,因此可以減少處理負荷。


參考

密碼編碼學與網(wǎng)絡安全

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容