????????網(wǎng)絡(luò)安全是指在網(wǎng)絡(luò)領(lǐng)域、專業(yè)領(lǐng)域的網(wǎng)絡(luò)安全包括在基礎(chǔ)計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)設(shè)施中所做的規(guī)定,網(wǎng)絡(luò)管理員采取的策略來保護(hù)網(wǎng)絡(luò)及網(wǎng)絡(luò)可訪問資源免受未經(jīng)授權(quán)的訪問,以及對其有效性(或缺乏)的持續(xù)不斷的監(jiān)控和測量的結(jié)合。
1.?密碼學(xué)的簡介與概念
1.1 信息系統(tǒng)安全的挑戰(zhàn)
1.1.1 保密性
????????只有授權(quán)的人員才能訪問指定的信息。任何不希望的訪問都必須被阻止。在這里,訪問是指獲取信息的權(quán)限。
1.1.1.1 定義
????????國際標(biāo)準(zhǔn)化組織(ISO)在ISO-17799標(biāo)準(zhǔn)中定義保密性為“確保信息只能被授權(quán)訪問的人員訪問”。這里的訪問指的是獲取信息的能力。
1.1.1.2 相關(guān)攻擊
????????被動(dòng)攻擊:例如,竊聽(無意中監(jiān)聽通信)。
1.1.1.3?防御措施
????????加密:使用密碼學(xué)方法加密數(shù)據(jù),以防止未授權(quán)訪問。
????????IPSec(Internet Protocol Security):一種用于保護(hù)互聯(lián)網(wǎng)協(xié)議(IP)通信的網(wǎng)絡(luò)協(xié)議套件,確保數(shù)據(jù)傳輸?shù)陌踩浴?br>????????SSL(Secure Sockets Layer)和TLS(Transport Layer Security):這兩種技術(shù)都用于在計(jì)算機(jī)網(wǎng)絡(luò)中提供安全通信,常用于互聯(lián)網(wǎng)瀏覽器和服務(wù)器之間的安全連接。
1.1.2?可用性
????????系統(tǒng)必須在預(yù)定的使用時(shí)間內(nèi)無故障運(yùn)行,保證訪問已安裝服務(wù)和資源,并滿足預(yù)期的響應(yīng)時(shí)間。
1.1.2.1 定義
????????可用性是指一個(gè)系統(tǒng)或設(shè)備在任意給定時(shí)刻(隨機(jī)的)準(zhǔn)備好執(zhí)行其任務(wù)的程度。這是一種性能度量,通過將設(shè)備或系統(tǒng)實(shí)際運(yùn)行的時(shí)間除以希望它運(yùn)行的總時(shí)間來計(jì)算。
1.1.2.2 相關(guān)攻擊
????????服務(wù)拒絕攻擊(Denial of Service, DoS):這種攻擊旨在使目標(biāo)系統(tǒng)或網(wǎng)絡(luò)無法為用戶提供服務(wù)。
????????分布式拒絕服務(wù)攻擊(Distributed Denial of Service, DDoS):這是一種更復(fù)雜的攻擊,涉及多個(gè)攻擊來源,共同致力于使目標(biāo)系統(tǒng)或網(wǎng)絡(luò)癱瘓。
1.1.3?完整性
????????數(shù)據(jù)必須是預(yù)期的那樣,并且不應(yīng)意外或故意被篡改。
1.1.3.1 定義
????????數(shù)據(jù)完整性是指在處理、存儲(chǔ)或傳輸過程中,數(shù)據(jù)不會(huì)發(fā)生任何故意或意外的更改或破壞,并保持一種可用的格式。數(shù)據(jù)完整性包括四個(gè)要素:完整性、準(zhǔn)確性、精確性/真實(shí)性和有效性。
1.1.3.2 保證完整性的機(jī)制
????????哈希函數(shù):通過生成數(shù)據(jù)的獨(dú)特哈希值來檢測數(shù)據(jù)是否被更改。
????????數(shù)字簽名:用于驗(yàn)證數(shù)據(jù)的完整性和來源。
????????簡單示例:校驗(yàn)和(checksum)、用于數(shù)據(jù)包或幀頭部的CRC(循環(huán)冗余校驗(yàn))錯(cuò)誤檢測碼、消息認(rèn)證碼(MAC,Message Authentication Code)。
1.1.3.3 相關(guān)攻擊
????????下載惡意軟件代替預(yù)期程序。修改交易(如銀行交易)的金額等。
1.1.4?身份驗(yàn)證
????????用戶的識(shí)別對于管理對相關(guān)工作空間的訪問和維護(hù)交換關(guān)系中的信任至關(guān)重要。
1.1.4.1 定義????????
????????驗(yàn)證(Authenticity)是確定或確認(rèn)一個(gè)實(shí)體(或個(gè)人)的真實(shí)性的行為,即確保其身份與其所聲稱的相符。
1.1.4.2 相關(guān)攻擊
????????中間人攻擊(Man in the Middle):攻擊者在通信雙方之間秘密地?cái)r截和可能篡改信息。
????????偽裝(Masquerade):攻擊者假扮成另一實(shí)體以獲得非法訪問。
????????欺騙(Spoofing):攻擊者偽造數(shù)據(jù)或網(wǎng)絡(luò)身份,欺騙系統(tǒng)或用戶。
1.1.4.3 認(rèn)證機(jī)制
????????難以復(fù)制的物理工件,如簽名、指紋(生物特征識(shí)別)、水?。╓atermarking)。共享的秘密,如密碼。電子簽名以及密鑰認(rèn)證機(jī)制(如公鑰基礎(chǔ)設(shè)施PKI)的使用。
1.1.5?不可否認(rèn)性和歸責(zé)性
????????任何用戶都不應(yīng)能否認(rèn)他在其授權(quán)活動(dòng)范圍內(nèi)進(jìn)行的操作,且任何第三方都不應(yīng)能將其他用戶的行為歸于自己。
1.1.5.1 定義
????????不可否認(rèn)性是確保在爭議中的一方不能聲稱自己不是某個(gè)特定消息的來源。這種特性是為了防止一方事后否認(rèn)其曾進(jìn)行的行為或通信。
????????為了保證數(shù)據(jù)的來源,使用了數(shù)字證書,這些證書可以看作是數(shù)字身份證。認(rèn)證機(jī)構(gòu)(Certificate Authority, CA)證明了物理身份與數(shù)字實(shí)體之間的聯(lián)系。
????????數(shù)字證書創(chuàng)建的一個(gè)標(biāo)準(zhǔn)例子是X509,這是一種廣泛使用的數(shù)字證書標(biāo)準(zhǔn),用于在公開密鑰基礎(chǔ)設(shè)施(PKI)中管理公鑰的格式和管理。
1.2?安全三角形
????????圖中展示的是“安全三角形”,這是信息安全中一個(gè)常見的概念,用來解釋安全性、功能性和易用性三者之間的關(guān)系和平衡。三角形的三個(gè)頂點(diǎn)分別代表了這三個(gè)概念。
????????安全性(SECURITY):指的是保護(hù)信息不受未授權(quán)訪問或破壞的措施的強(qiáng)度。
????????功能性(Functionality):指系統(tǒng)或服務(wù)可以提供的功能范圍。
????????易用性(Ease of Use):指系統(tǒng)或服務(wù)的使用便利程度。
????????圖中的紅點(diǎn)表示了當(dāng)前的安全姿態(tài),它可能會(huì)根據(jù)需要在這三個(gè)要素之間移動(dòng)。例如,提高安全性可能會(huì)降低功能性和/或易用性。
????????下方的文字說明強(qiáng)調(diào)了在安全領(lǐng)域中,人們不能簡單地詢問“最好的防火墻是什么?”因?yàn)橛袃蓚€(gè)極端:絕對的安全性和絕對的可訪問性。一臺(tái)從網(wǎng)絡(luò)斷開連接、沒有電源供應(yīng)、鎖在保險(xiǎn)箱里并丟進(jìn)海底的計(jì)算機(jī)可能是最接近絕對安全的狀態(tài),但不幸的是,這種狀態(tài)下的設(shè)備并沒有太大的實(shí)用性。這段引述來自A.K.Sharma和C.S.Lamba的《網(wǎng)絡(luò)安全與網(wǎng)絡(luò)協(xié)議》。
1.3 密碼技術(shù)的歷史
1.3.1 兩種古代的密碼技術(shù)
1.3.1.1?斯基泰勒(Scytale)或普魯塔克棒? ? ? ??
????????這是一種古代的加密工具,由一根繞有條帶的棒子組成,條帶上寫有信息。當(dāng)條帶按照正確的方式繞在棒子上時(shí),可以讀取信息。若條帶不在棒子上,字母順序會(huì)變亂,因此信息就被加密了。不過,這種加密方式相對容易破解,因?yàn)樗皇呛唵蔚刂脫Q了消息中字母的順序。
1.3.1.2?凱撒密碼
????????這是一種特殊的單字母替代加密方法,通過將字母表中的每個(gè)字母移動(dòng)固定數(shù)目的位置來進(jìn)行加密。例如,當(dāng)位移量(k)是2時(shí),'A'會(huì)被替換成'C','B'會(huì)被替換成'D',以此類推。該公式為 c = m + k mod 26,其中 c 是加密后的字符,m 是原始字符,k 是位移量。凱撒密碼可以通過分析字母頻率來破解,因?yàn)橐恍┳帜福ㄈ缬⑽闹械?e'和't')在文本中出現(xiàn)的頻率較高。
????????字母頻率分布圖,這種分析有助于破解凱撒密碼等簡單的替代密碼,因?yàn)槟承┳帜福ㄈ缬⑽闹械?E')在大多數(shù)文本中出現(xiàn)的頻率比其他字母都要高。通過比較加密文本的字母頻率分布與已知的正常字母頻率分布,可以推斷出位移量,從而解密文本。
1.3.2?兩種中世紀(jì)的密碼技術(shù)
1.3.2.1?16世紀(jì):維吉尼亞密碼
????????這是一種多表代替加密方法,它使用一系列凱撒密碼基于一個(gè)密鑰進(jìn)行加密。該方法的公式為 c = (m + k) mod 26,其中 c 是加密后的字符,m 是原始字符,k 是密鑰字符對應(yīng)的位移。
????????例如,使用密鑰“LEROI”,加密表會(huì)根據(jù)密鑰字母循環(huán)進(jìn)行置換。
? ? ? ? 用密鑰“LEROI”加密“LETER”后得到的密文。
1.3.2.2 19世紀(jì):維吉尼亞密碼的密碼分析
????????在19世紀(jì),巴貝奇和卡西斯基(Babbage, Kasiski)等人開始分析維吉尼亞密碼,并在1920年使用“符合指數(shù)”(indice de co?ncidence)來確定密鑰的長度,之后對每次置換進(jìn)行密碼分析(類似于破解凱撒密碼)。
? ? ? ? 通過比較密文中字母的出現(xiàn)頻率和正常文本中的頻率來找出密鑰長度的方法。一旦密鑰長度確定,就可以將復(fù)雜的維吉尼亞密碼簡化為多個(gè)凱撒密碼進(jìn)行破解。
1.3.3 20世紀(jì)上半葉密碼學(xué)歷史的一部分
1.3.3.1?一戰(zhàn)時(shí)期:弗納姆密碼(Chiffre de Vernam,1917年,1926年發(fā)布)
????????這是一種基于“一次性密碼本”(one-time pad)的加密方法,公式為 c = m + k mod 26,其中 c 是加密字符,m 是原始字符,k 是密鑰字符。
????????在這種方法中,密鑰是隨機(jī)的并且和消息長度一樣,這種加密方式被認(rèn)為是無條件安全的,但前提是密鑰必須是真正隨機(jī)的、和消息一樣長,并且密鑰只能使用一次。
????????這種加密方法是維吉尼亞密碼的一個(gè)擴(kuò)展,但它使用的是隨機(jī)密鑰且密鑰沒有周期性。
????????克勞德·香農(nóng)(C. Shannon)在1949年證明了一次性密碼本是無條件安全的,但前提是只有當(dāng)密鑰真正隨機(jī)、和消息長度一樣,并且密鑰只使用一次時(shí)。
????????加密過程是將明文(clair)通過密碼(chiffre)轉(zhuǎn)化成密文(suite chiffrante),而解密過程則是相反,它將密文轉(zhuǎn)換回明文。
1.3.4?第二次世界大戰(zhàn)期間及其后密碼學(xué)重要?dú)v史事件的概述
1.3.4.1?二戰(zhàn)期間:恩尼格瑪機(jī)(Enigma Machine)
????????恩尼格瑪是德國人使用的一種電動(dòng)機(jī)械加密設(shè)備,基于轉(zhuǎn)子來加密通訊。
????????德國人使用恩尼格瑪發(fā)出的消息最終被英國密碼學(xué)家解密,這一成就部分基于波蘭密碼學(xué)家之前的工作,并且在解密過程中使用了早期的計(jì)算機(jī)。
1.3.4.2?1948-1949年:克勞德·香農(nóng)發(fā)展信息理論(Information Theory)
????????克勞德·香農(nóng)發(fā)展了信息理論,這為編碼和信息安全提供了理論框架。
????????他引入了關(guān)鍵概念,如密鑰的熵(Entropy of the Key)和獨(dú)特性距離(Unicity Distance),這些都是評估密碼強(qiáng)度和設(shè)計(jì)加密算法的重要工具。
????????香農(nóng)還強(qiáng)調(diào)了加密系統(tǒng)需要引入混淆(Confusion)和擴(kuò)散(Diffusion)的必要性,這些原則后來成為現(xiàn)代加密算法設(shè)計(jì)的基石。
1.4?密碼學(xué)的作用
1.4.1?加密消息(自古以來)
????????為了保密性:防止未授權(quán)的監(jiān)聽或竊聽。
1.4.2?簽名消息(自1978年以來)
????????認(rèn)證(Authenticity):確保消息的作者確實(shí)是他聲稱的那個(gè)人。
????????不可否認(rèn)性(Non-repudiation):消息的作者不能否認(rèn)他制作了這個(gè)消息。
????????完整性(Integrity):保證消息內(nèi)容的完整未被篡改。
1.4.3?對系統(tǒng)進(jìn)行身份驗(yàn)證(自1978年以來)
????????證明個(gè)人身份,通過證明擁有一個(gè)只有自己知道的秘密(如“密碼”),同時(shí)確保這個(gè)秘密在網(wǎng)絡(luò)上傳輸時(shí)不被泄露。
1.4.4?以及其他許多應(yīng)用(自1978年以來)
????????密鑰交換,多方計(jì)算,電子投票,無意識(shí)的信息傳輸?shù)取?/p>
1.5 密匙的概念
????????在密碼學(xué)中,“密鑰”的概念非常重要。密鑰是用來加密和解密信息的算法參數(shù)。在加密過程中,發(fā)送者(或稱為發(fā)信人)使用密鑰將明文消息(m)加密成密文(c),也稱為密碼文或加密文。而在解密過程中,接收者(或稱為收信人)使用解密密鑰將密文(c)還原為明文消息(m)。正確的解密密鑰必須被消息的預(yù)期接收者所知曉,但不應(yīng)該被攻擊者知道。
????????總結(jié)如下:
????????密碼學(xué):是指設(shè)計(jì)信息保護(hù)系統(tǒng)的科學(xué)。
????????密碼分析:是指攻擊這些信息保護(hù)系統(tǒng)的方法。
????????明文消息:是指原始的、未加密的信息。
????????密文消息(密碼文或加密文):是通過加密過程從明文消息轉(zhuǎn)化來的,只有通過正確的解密過程才能被讀懂。
????????因此,密鑰在密碼學(xué)中扮演了核心角色,它是確保信息安全傳輸?shù)幕A(chǔ)。加密密鑰和解密密鑰可以是相同的(對稱加密),也可以是不同的(非對稱加密)。在對稱加密中,同一密鑰既用于加密也用于解密。在非對稱加密中,使用一對密鑰,一個(gè)公開密鑰用于加密,一個(gè)私有密鑰用于解密。
1.6?克爾克霍夫斯原則
????????在密碼學(xué)中,克爾克霍夫斯原則(Kerckhoffs's principle)是一個(gè)基本原則,由荷蘭密碼學(xué)家奧古斯特·克爾克霍夫斯在1883年提出。該原則的核心觀點(diǎn)是:
? ? ? ? a. 算法公開原則:加密算法應(yīng)該被假定為已知于潛在的攻擊者。
? ? ? ? b. 算法強(qiáng)度:算法的安全性不應(yīng)依賴于其保密性,而應(yīng)該足夠強(qiáng)大,即使在攻擊者知道算法的情況下仍然保持安全。
? ? ? ? c. 密鑰的保密:數(shù)據(jù)的機(jī)密性最終依賴于解密密鑰的保密性。通常情況下,加密/解密算法是標(biāo)準(zhǔn)化的,而密鑰是保密的。
? ? ? ? d. 計(jì)算安全性:當(dāng)安全性不能是完美無條件的(這幾乎總是如此),它就是計(jì)算性的。這意味著,即使攻擊者知道了算法和密文,他們也無法在合理的時(shí)間內(nèi)計(jì)算出密鑰。
? ? ? ? e. 密鑰空間大?。嚎赡艿拿荑€數(shù)量必須足夠大,以防止攻擊者通過暴力搜索(brute force)或利用算法的漏洞來找到密鑰。這通常通過要求密鑰有足夠的長度來實(shí)現(xiàn)。
????????根據(jù)這些原則,一個(gè)加密系統(tǒng)的安全性主要取決于密鑰的秘密保持和密鑰空間的大小,而不是加密算法本身的秘密性。這就是為什么現(xiàn)代加密系統(tǒng),如SSL/TLS、AES和RSA等,都有公開可用的標(biāo)準(zhǔn)化算法,而密鑰則必須保密。
2. 加密系統(tǒng)
????????密碼學(xué)中有兩種基本類型的加密系統(tǒng):對稱加密和非對稱加密。
a.對稱加密(同密鑰加密或密鑰保密加密)
????????使用相同的密鑰(稱為秘密密鑰)來進(jìn)行加密和解密。
????????由于加密和解密使用相同的密鑰,因此密鑰必須在雙方之間安全地共享。
????????示例包括凱撒密碼、維吉尼亞密碼、弗納姆密碼、數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)、高級加密標(biāo)準(zhǔn)(AES)、以及其他許多歷史上的加密方案,所有這些都需要秘密密鑰才能進(jìn)行加密和解密。
????????歷史上,所有在1977年之前的加密方案都是對稱加密。
b.非對稱加密(公鑰加密或密鑰公開加密):
????????每個(gè)用戶有一對密鑰:一個(gè)公開密鑰和一個(gè)私有密鑰。
????????公開密鑰用于加密消息,私鑰用于解密消息。
????????公開密鑰可以公開分發(fā),而私鑰必須保密。
????????這種加密方式的示例包括RSA算法、El Gamal加密和橢圓曲線密碼學(xué)。
????????這類系統(tǒng)在1977年以前不存在,公鑰加密的概念是在1976年由惠特菲爾德·迪菲(Whitfield Diffie)和馬丁·赫爾曼(Martin Hellman)首次提出的。
????????兩種加密方式各有優(yōu)缺點(diǎn):對稱加密通常更快,適合大量數(shù)據(jù)的加密;非對稱加密雖然速度較慢,但它解決了密鑰分發(fā)的問題,因?yàn)樗试S任何人使用公鑰加密消息,只有持有對應(yīng)私鑰的人才能解密,這使得它非常適合用于數(shù)字簽名和加密初始通信階段的密鑰交換。
2.1 對稱密碼學(xué)
2.1.1?對稱密碼學(xué)在20世紀(jì)的發(fā)展關(guān)鍵點(diǎn)包括
2.1.1.1 1977年:DES的標(biāo)準(zhǔn)化
????????數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)是由美國國家標(biāo)準(zhǔn)技術(shù)研究所(NIST)標(biāo)準(zhǔn)化的加密算法,它是響應(yīng)公開征集加密算法的結(jié)果。
2.1.1.2?1987年:RC4的發(fā)明
????????RC4是由羅納德·李維斯特(Ronald Rivest)設(shè)計(jì)的流密碼,因其簡單和高速而廣泛用于軟件中。它被用在SSL/TLS協(xié)議中保護(hù)互聯(lián)網(wǎng)通信的安全,并在無線加密協(xié)議WEP中使用。
2.1.1.3?1999年:E0的使用
????????E0是藍(lán)牙設(shè)備中使用的流密碼,用于保護(hù)藍(lán)牙通信的安全。
2.1.1.4?1999年:A5的使用
????????A5是用于全球移動(dòng)通信系統(tǒng)(GSM)的一系列加密算法,保護(hù)移動(dòng)電話之間的通信。
2.1.1.5?2000年:AES的標(biāo)準(zhǔn)化
????????高級加密標(biāo)準(zhǔn)(AES)是DES的繼任者,同樣由NIST標(biāo)準(zhǔn)化,它是響應(yīng)公開征集新的加密算法的結(jié)果。AES現(xiàn)在是最廣泛使用的對稱加密標(biāo)準(zhǔn)之一。
????????這些發(fā)展反映了持續(xù)對新算法的需求以及對現(xiàn)有算法的性能進(jìn)行評估和比較的必要性。NIST和歐洲密碼學(xué)聯(lián)合網(wǎng)絡(luò)(ECRYPT)等機(jī)構(gòu)定期發(fā)布對新加密算法的征集和基準(zhǔn)測試,以保持加密技術(shù)的前沿狀態(tài)和高安全標(biāo)準(zhǔn)。
2.1.2?塊加密算法
????????塊加密算法是對稱加密中的一類,它將消息分割成固定大小的塊,然后對每個(gè)塊獨(dú)立進(jìn)行加密。比如AES(高級加密標(biāo)準(zhǔn))通常處理128位的數(shù)據(jù)塊。以下是塊加密算法的一些關(guān)鍵特征:
2.1.2.1 塊處理
????????如上所述,消息被分割成塊,并且每個(gè)塊單獨(dú)加密。如果消息不足一個(gè)完整的塊,它通常會(huì)被填充至完整塊的大小。
2.1.2.2?迭代結(jié)構(gòu)
????????加密過程包括多個(gè)循環(huán)或“輪”(rounds)的操作。每一輪都會(huì)對數(shù)據(jù)塊應(yīng)用一系列變換。更多的輪次通常意味著更強(qiáng)的安全性,但也會(huì)導(dǎo)致加密過程速度變慢。
2.1.2.3?簡單或表格化操作
????????使用簡單的數(shù)學(xué)和邏輯運(yùn)算,如異或(XOR)、置換(Permutations)、代換盒(S-boxes)等。這些操作在硬件和軟件中都可以高效地實(shí)現(xiàn)。
2.1.2.4?操作模式
????????由于塊加密算法只能加密固定大小的塊,因此需要一種模式來定義如何連續(xù)處理消息中的多個(gè)塊。
常見的操作模式包括:
????????ECB(電子密碼本模式,Electronic Codebook)
????????CBC(密碼塊鏈模式,Cipher Block Chaining)
????????OFB(輸出反饋模式,Output Feedback)
????????CTR(計(jì)數(shù)器模式,Counter)
????????其中,CBC模式是一種常用的操作模式,它通過將前一個(gè)塊的加密結(jié)果(或初始向量IV,對于第一個(gè)塊)與當(dāng)前塊進(jìn)行XOR運(yùn)算后再加密,從而實(shí)現(xiàn)塊之間的依賴。這種方法可以提高加密數(shù)據(jù)的安全性,因?yàn)樗_保了相同的明文塊不會(huì)生成相同的密文塊。
2.1.3 流加密算法
????????流加密算法是對稱加密的另一類,它以流的形式處理消息,通常是一個(gè)或幾個(gè)位(bit)一個(gè)接一個(gè)地加密。這種方法與塊加密算法不同,它適用于實(shí)時(shí)加密和設(shè)備資源受限的情況。以下是流加密算法的一些關(guān)鍵特征:
2.1.3.1 逐位處理
????????流加密算法逐個(gè)或逐小組位地處理消息,不需要將數(shù)據(jù)分割成塊。
2.1.3.2?近似于Vernam密碼的實(shí)現(xiàn)
????????Vernam密碼,也稱為一次性密碼本(OTP),提供了理論上的無條件安全,但它要求密鑰長度與消息長度相同,并且密鑰必須是完全隨機(jī)的且只能使用一次。
????????其他流加密算法通常使用偽隨機(jī)數(shù)生成器來生成密鑰流,這使得它們不具備Vernam密碼的無條件安全性,而是依賴于計(jì)算上的安全性。
2.1.3.3 較輕松的使用條件
????????與Vernam密碼相比,其他流加密算法通常對密鑰管理的要求更低,因?yàn)樗鼈儾灰竺荑€的長度與消息相同,且密鑰不必是真正的隨機(jī),這降低了使用難度。
2.1.3.4?基礎(chǔ)操作
????????流加密算法依賴于基礎(chǔ)而高速的操作,如異或(XOR)、移位(SHIFT)等,這些操作在硬件上非??焖?。
2.1.3.5 安全性問題
????????一些歷史上的流加密算法,如RC4、E0、A5,現(xiàn)在不再被視為足夠安全,因?yàn)樗鼈兇嬖谝阎娜觞c(diǎn)和漏洞。
????????雖然存在更安全的流加密系統(tǒng),但它們可能沒有得到像AES這樣的塊加密算法那樣的標(biāo)準(zhǔn)化。
????????流加密算法通常在需要高速加密和解密的場景中使用,例如在網(wǎng)絡(luò)傳輸和無線通信中。但是,由于它們的安全性可能不如塊加密算法,所以在選擇使用流加密算法時(shí)需要謹(jǐn)慎。
2.2?非對稱加密算法
????????非對稱加密,也稱為公鑰加密,是一種在1977年之后出現(xiàn)的加密體系,
2.2.1 發(fā)展里程碑
2.2.1.1 1977年:Diffie-Hellman密鑰交換協(xié)議
????????惠特菲爾德·迪菲(W. Diffie)和馬丁·赫爾曼(M. Hellman)發(fā)表了開創(chuàng)性的論文,首次提出了公鑰密碼學(xué)的概念,并提出了Diffie-Hellman密鑰交換協(xié)議。這種協(xié)議允許兩個(gè)或多個(gè)用戶在不安全的通道上建立共享的密鑰。
2.2.1.2?1978年:RSA加密算法
????????羅納德·李維斯特(R. Rivest)、阿迪·薩莫爾(A. Shamir)和倫納德·阿德曼(L. Adleman)發(fā)表了RSA加密算法,它基于大數(shù)分解的困難性。RSA算法成為了最廣泛使用的公鑰加密算法之一。
2.2.1.3?1978年:McEliece加密系統(tǒng)和Niederreiter加密系統(tǒng)
????????這兩個(gè)系統(tǒng)都基于糾錯(cuò)碼理論。McEliece系統(tǒng)一開始并沒有得到廣泛應(yīng)用,但隨著對量子計(jì)算抗性的關(guān)注,它得到了新的關(guān)注。
2.2.1.4?1985年:El Gamal加密算法
????????基于離散對數(shù)問題,El Gamal加密算法是一種基于密鑰協(xié)商協(xié)議的非對稱加密算法。
2.2.1.5?1987年:基于橢圓曲線的加密系統(tǒng)
????????橢圓曲線密碼學(xué)(ECC)提供了與RSA相似的安全性,但可以使用更小的密鑰大小,從而提高了效率。
2.2.1.6 1994年:OAEP(Optimal Asymmetric Encryption Padding)
????????這是一種用于RSA加密的填充方案,用于提高安全性并減少某些攻擊的風(fēng)險(xiǎn)。OAEP通過增加隨機(jī)性來確保RSA加密的安全性和實(shí)用性。
????????公鑰加密的出現(xiàn)解決了密鑰分發(fā)的難題,因?yàn)樗试S任何人使用公鑰來加密信息,但只有持有對應(yīng)的私鑰的人才能解密。這使得它非常適合用于數(shù)字簽名和在不安全通道上安全地交換密鑰。
2.2.2 非對稱加密算法的特性
????????公鑰密碼學(xué)的核心是一類特殊的數(shù)學(xué)函數(shù),稱為“帶陷阱的單向函數(shù)”。
2.2.2.1 特性
2.2.2.1.1?易于計(jì)算,難以逆向
????????這類函數(shù)可以在多項(xiàng)式時(shí)間內(nèi)容易地計(jì)算出結(jié)果,但要逆向計(jì)算(即根據(jù)輸出找到輸入)卻非常困難,除非知道某個(gè)特殊的秘密(即“陷阱”)。
2.2.2.1.2?知道陷阱的個(gè)體
????????持有密鑰對的個(gè)體(如公鑰和私鑰的持有者)知道這個(gè)陷阱,這使得他們能夠輕松逆向這個(gè)函數(shù),而其他人則幾乎不可能做到這一點(diǎn)。
2.2.2.1.3?典型示例
????????RSA算法的基礎(chǔ):大整數(shù)分解問題。RSA算法的安全性基于大數(shù)分解的困難性。例如,將兩個(gè)大的質(zhì)數(shù)??和 相乘得到()是容易的,但從 \( N \) 中分解出 \( p \) 和 \( q \) 卻極其困難。
????????El Gamal和Diffie-Hellman算法的基礎(chǔ):離散對數(shù)問題。在這種情況下,給定一個(gè)生成元和,找到指數(shù)是非常困難的,這里是的離散對數(shù)。
這些函數(shù)為公鑰加密提供了強(qiáng)大的安全基礎(chǔ),因?yàn)橹挥忻荑€的合法擁有者才能有效地執(zhí)行加密和解密操作,而對于沒有陷阱信息的攻擊者來說,破解這些加密幾乎是不可能的。這種安全性特性使得公鑰密碼學(xué)成為了當(dāng)代數(shù)字通信中不可或缺的一部分。
2.3 兩種方法的優(yōu)缺點(diǎn)分析
2.3.1 對稱加密的優(yōu)點(diǎn)和缺點(diǎn)
2.3.1.1 優(yōu)點(diǎn)
????????加解密速度快:由于基于簡單操作(如置換、替代、XOR、移位等),對稱加密適用于快速數(shù)據(jù)處理和硬件實(shí)現(xiàn)。
????????理論上的完美安全性:Vernam密碼(一次性密碼本)在理論上提供了完美安全性,前提是密鑰真正隨機(jī)、和消息一樣長,且只使用一次。
2.3.1.2 缺點(diǎn)
????????共享密鑰的需要:在對稱加密中,加密和解密使用同一密鑰,因此雙方必須安全地共享密鑰,這在實(shí)際應(yīng)用中可能很困難。
2.3.2 非對稱加密的優(yōu)點(diǎn)和缺點(diǎn)
2.3.2.1 優(yōu)點(diǎn)
????????無需共享密鑰:每個(gè)用戶有自己的公鑰和私鑰對。公鑰可以公開,而私鑰保密,從而消除了密鑰共享的問題。
????????更適合數(shù)字簽名和密鑰交換:由于其結(jié)構(gòu),非對稱加密非常適用于數(shù)字簽名和安全地在不安全的通道上交換密鑰。
2.3.2.2 缺點(diǎn)
????????處理速度慢:非對稱加密基于復(fù)雜的數(shù)學(xué)問題,因此加解密過程比對稱加密慢得多。
????????需要證書和公鑰基礎(chǔ)設(shè)施(PKI):為了防止中間人攻擊,公鑰必須通過可信的方式驗(yàn)證其真實(shí)性,通常通過PKI實(shí)現(xiàn)。
????????總的來說,對稱加密在處理大量數(shù)據(jù)時(shí)更高效,而非對稱加密則在密鑰管理和分發(fā)方面更為安全和靈活。在實(shí)際應(yīng)用中,兩者常常結(jié)合使用,例如在HTTPS協(xié)議中,使用非對稱加密交換對稱加密密鑰,然后使用對稱加密進(jìn)行數(shù)據(jù)傳輸。
2.4?混合加密方案
????????在實(shí)際應(yīng)用中,為了結(jié)合對稱加密和非對稱加密各自的優(yōu)勢,通常采用混合加密方案。這些方案可以通過以下兩種主要方式實(shí)現(xiàn):
2.4.1?密鑰交換協(xié)議(如Diffie-Hellman密鑰交換)
????????在這種方案中,通信雙方使用如Diffie-Hellman這樣的公鑰協(xié)議來安全地建立一個(gè)共享秘密。
????????一旦共享秘密建立,它就被用作對稱加密算法(如AES)的密鑰來加密和解密通信數(shù)據(jù)。
????????這種方法的優(yōu)點(diǎn)是結(jié)合了非對稱加密的安全密鑰交換能力和對稱加密的高效率。
2.4.2?混合加密系統(tǒng)(Hybrid Encryption)
????????在這種方案中,首先使用公鑰加密算法(如RSA)來加密對稱加密的密鑰,然后將其安全地發(fā)送給接收方。
????????接收方使用私鑰解密出對稱加密的密鑰,然后雙方使用這個(gè)對稱密鑰來加密和解密通信數(shù)據(jù)。
????????這種方法兼具公鑰加密的安全性和對稱加密的效率,適用于需要加密大量數(shù)據(jù)的場景。
????????這些混合方案利用了非對稱加密在安全密鑰分發(fā)方面的優(yōu)勢,同時(shí)又享受了對稱加密在速度和效率方面的優(yōu)勢。例如,這種混合方法廣泛用于HTTPS協(xié)議,其中非對稱加密用于初始握手階段的密鑰交換,而后續(xù)數(shù)據(jù)傳輸則使用對稱加密。這種方法既保證了密鑰交換的安全性,又保證了數(shù)據(jù)傳輸?shù)母咝省?/p>
2.5?密鑰長度
????????在對比對稱加密和非對稱加密時(shí),密鑰長度是一個(gè)重要的考慮因素。密鑰長度直接關(guān)系到加密系統(tǒng)的安全性,即防止最佳攻擊方法破解密鑰的成本。以下是兩種加密方法在密鑰長度方面的特點(diǎn):
2.5.1 對稱加密的密鑰長度
????????對稱加密通常使用較短的密鑰,因?yàn)槠浒踩曰诿荑€的秘密性和加密算法的強(qiáng)度。
????????通常,最低安全標(biāo)準(zhǔn)是128位密鑰長度,這提供了良好的安全水平。
2.5.2 非對稱加密的密鑰長度
????????非對稱加密需要更長的密鑰來提供與對稱加密相同的安全級別。這是因?yàn)榉菍ΨQ加密的安全性基于復(fù)雜的數(shù)學(xué)問題。
????????例如,對于RSA加密,推薦的密鑰長度是3072位。
????????在橢圓曲線密碼學(xué)(ECC)中,雖然密鑰長度通常比RSA短,但256位密鑰長度已被認(rèn)為是足夠安全的。
????????關(guān)于各種加密系統(tǒng)推薦的密鑰長度,可以訪問 [www.keylength.com](http://www.keylength.com/fr/5/)。這個(gè)網(wǎng)站匯集了多個(gè)系統(tǒng)的推薦密鑰長度,并根據(jù)所需的安全持續(xù)時(shí)間給出建議。例如,隨著計(jì)算能力的提升和新的攻擊技術(shù)的出現(xiàn),某個(gè)密鑰長度可能在未來幾年內(nèi)不再安全。因此,選擇合適的密鑰長度對于確保長期的安全性至關(guān)重要。
2.6?密碼分析
????????密碼分析是密碼學(xué)中的一個(gè)重要領(lǐng)域,它涉及研究如何在不知道密鑰的情況下破解加密代碼或解密消息。密碼分析的目標(biāo)是找到加密算法的弱點(diǎn)或漏洞,從而減少破解加密所需的工作量。以下是密碼分析的幾種常見方法:
2.6.1?暴力攻擊(Brute Force Attack)
????????這是最基本的攻擊方式,涉及嘗試所有可能的密鑰,直到找到正確的密鑰為止。
????????對于具有大量可能密鑰的加密系統(tǒng)(如長密鑰的系統(tǒng)),暴力攻擊在實(shí)際中是不可行的,因?yàn)樗钑r(shí)間和資源過于巨大。
2.6.2?利用算法的漏洞
????????密碼分析師會(huì)利用加密算法的特定弱點(diǎn)來減少攻擊所需的時(shí)間和資源。
????????這類攻擊比簡單的暴力攻擊更精細(xì)和高效。
2.6.3?密碼分析的具體方法
????????差分密碼分析(Differential Cryptanalysis):通過分析對于特定的輸入差異,密文的差異如何變化來推斷關(guān)于密鑰的信息。
????????線性密碼分析(Linear Cryptanalysis):試圖找到明文和密文之間的線性關(guān)系,以簡化密鑰的搜索。
????????對操作模式的攻擊:針對特定的加密模式(如ECB或CBC)的漏洞進(jìn)行攻擊。
????????量子密碼分析(Quantum Cryptanalysis):利用量子計(jì)算的潛力來解決傳統(tǒng)上難以破解的問題,如大整數(shù)的分解。
????????隨著計(jì)算技術(shù)的發(fā)展,特別是量子計(jì)算的興起,密碼分析的方法和效率也在不斷進(jìn)步。因此,加密算法需要不斷地更新和改進(jìn),以抵御新出現(xiàn)的威脅。
2.7 攻擊方法
????????在密碼分析中,根據(jù)可用信息和攻擊者的能力,有幾種不同類型的攻擊方法。了解這些方法有助于更好地理解加密系統(tǒng)的潛在弱點(diǎn)以及如何防御這些攻擊。以下是一些常見的攻擊類型:
2.7.1?僅密文攻擊(Ciphertext-Only Attack)
????????攻擊者只有加密的消息(密文),并嘗試從中推斷出原始消息(明文)。
????????這是最基礎(chǔ)的攻擊方式,也是最難的,因?yàn)槿狈︻~外信息。
2.7.2?已知明密文攻擊(Known Plaintext Attack)
????????攻擊者擁有一些明文消息及其對應(yīng)的密文。
????????這允許攻擊者分析明文和密文之間的關(guān)系,從而找到密鑰或算法的弱點(diǎn)。
????????例如,在線性密碼分析中就利用這種類型的攻擊。
2.7.3?選擇明文攻擊(Chosen Plaintext Attack)
????????攻擊者可以選擇特定的明文并獲取其密文。
????????這使攻擊者能夠設(shè)計(jì)特定的輸入來揭示加密算法的弱點(diǎn)。
????????差分密碼分析通常使用這種攻擊方式。
2.7.4?選擇密文攻擊(Chosen Ciphertext Attack)
????????攻擊者可以選擇特定的密文并獲取其明文。
????????這種攻擊在非對稱加密系統(tǒng)中更為常見,因?yàn)楣粽呖梢岳霉€來解密他們選擇的密文。了解這些攻擊類型對于設(shè)計(jì)和評估加密系統(tǒng)的安全性至關(guān)重要。它們還強(qiáng)調(diào)了為什么在實(shí)際應(yīng)用中,加密算法和密鑰管理策略需要不斷更新和改進(jìn),以應(yīng)對新的和不斷演化的威脅。
3. 公匙加密算法
3.1 RSA加密算法
????????RSA加密算法是一種非對稱加密算法,由羅納德·李維斯特(Rivest)、阿迪·薩莫爾(Shamir)和倫納德·阿德曼(Adleman)在1977年共同發(fā)明。它是最早的公鑰密碼系統(tǒng)之一,至今仍是最重要的公鑰加密技術(shù)之一。下面是RSA加密中密鑰的生成和運(yùn)作原理:
3.1.1 生成兩個(gè)大質(zhì)數(shù)和
????????在RSA中,選擇兩個(gè)大的質(zhì)數(shù)和是關(guān)鍵的第一步。
3.1.2?計(jì)算
????????是這兩個(gè)質(zhì)數(shù)的乘積,它用作RSA公鑰和私鑰的一部分。
3.1.3?計(jì)算歐拉函數(shù)
????????是小于或等于的正整數(shù)中與互質(zhì)的數(shù)的數(shù)量,對于質(zhì)數(shù)乘積,計(jì)算公式為
3.1.4?選擇公鑰指數(shù)? ? ??
????????是一個(gè)與互質(zhì)的正整數(shù)。通常,選擇為一個(gè)較小的質(zhì)數(shù),如 3 或 65537。
3.1.5 計(jì)算私鑰指數(shù)
????????是模的乘法逆元,即。
3.1.6?公鑰和私鑰
????????公鑰是,而私鑰是。和(及)必須保持私密,因?yàn)樗鼈兛梢杂脕砥平馑借€。
在您的例子中:
????????,因此。
???????。
????????如果,則可以通過計(jì)算找到使得。這里,。
????????RSA的安全性基于大數(shù)分解的困難性;知道但不知道和的情況下,很難計(jì)算出私鑰。
3.2 RSA加密算法的加密和解密過程
3.2.1?明文表示
????????在RSA中,需要加密的消息(明文)被轉(zhuǎn)換成一個(gè)整數(shù),其中滿足。這通常是通過某種形式的編碼完成的,如ASCII編碼。
3.2.2 加密過程
????????明文使用公鑰 進(jìn)行加密。加密過程是計(jì)算,其中是密文。
3.2.3 解密過程
????????解密是使用私鑰對密文進(jìn)行操作。解密過程是計(jì)算。由于是的模逆元,所以這會(huì)還原出原始的明文。
3.2.4 基于歐拉定理的正確性
????????RSA算法的正確性基于歐拉定理。根據(jù)這一定理,如果是一個(gè)正整數(shù),是一個(gè)與互質(zhì)的整數(shù),則。在RSA中,由于,這確保了。文章來源:http://www.zghlxwxcb.cn/news/detail-804937.html
????????這種機(jī)制使得只有知道正確私鑰的接收者才能解密由公鑰加密的消息,而加密過程本身可以由任何人使用公鑰來完成。這就是為什么RSA加密在數(shù)字通信和數(shù)據(jù)保護(hù)中廣泛應(yīng)用。文章來源地址http://www.zghlxwxcb.cn/news/detail-804937.html
到了這里,關(guān)于計(jì)算機(jī)網(wǎng)絡(luò)安全——密碼學(xué)入門的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!