新四季網

加密技術解析(現代加密技術簡介)

2023-10-21 06:02:35



對稱加密算法 :

顧名思義,加密和解密過程的密鑰是相同的。 該類算法優點是加解密效率(速度快,空間佔用小)和加密強度都很高。 缺點是參與方需要提前持有密鑰,一旦有人洩露則系統安全性被破壞; 另外如何在不安全通 道中提前分發密鑰也是個問題,需要藉助額外的 Diffie–Hellman 協商協議或非對稱加密算法 來實現。 對稱密碼從實現原理上可以分為兩種:分組密碼和序列密碼。前者將明文切分為定長數據塊作為基本加密單位,應用最為廣泛。後者則每次只對一個字節或字符進行加密處理,且密碼不斷變化,只用在一些特定領域(如數字媒介的加密)。 對稱加密算法適用於大量數據的加解密過程;不能用於籤名場景;並且需要提前安 全地分發密鑰。


非對稱加密算法 :

非對稱加密是現代密碼學的偉大發明,它有效解決了對稱加密需要安全分發密鑰的問題。 顧名思義,非對稱加密中,加密密鑰和解密密鑰是不同的,分別被稱為公鑰(Public Key)和 私鑰(Private Key)。私鑰一般通過隨機數算法生成,公鑰可以根據私鑰生成。 其中,公鑰一般是公開的,他人可獲取的;私鑰則是個人持有並且要嚴密保護,不能被他人 獲取。 非對稱加密算法優點是公私鑰分開,無需安全通道來分發密鑰。缺點是處理速度(特別是生成密鑰和解密過程)往往比較慢,一般比對稱加解密算法慢 2~3 個數量級; 同時加密強度也往往不如對稱加密。 非對稱加密算法的安全性往往基於數學問題,包括大數質因子分解、離散對數、橢圓曲線等 經典數學難題。 非對稱加密中公鑰是公開的,因此任何人都可以利用它加密給定明文,獲取對應的密文,這就帶來選擇明文攻擊的風險。 為了規避這種風險,現代的非對稱加密算法(如 RSA、ECC)都引入了一定的保護機制:對 同樣的明文使用同樣密鑰進行多次加密,得到的結果完全不同,這就避免了選擇明文攻擊的 破壞。 在實現上可以有多種思路。一種是對明文先進行變形,添加隨機的字符串或標記,再對添加 後結果進行處理。另外一種是先用隨機生成的臨時密鑰對明文進行對稱加密,然後再將對稱 密鑰進行加密,即利用多層加密機制。

混合加密機制 :

混合加密機制同時結合了對稱加密和非對稱加密的優點。 該機制的主要過程為: 先用非對稱加密(計算複雜度較高)協商出一個臨時的對稱加密密鑰 (或稱會話密鑰),然後雙方再通過對稱加密算法(計算複雜度較低)對所傳遞的大量數據進行快速的加密處理。 典型的應用案例是網站中使用越來越普遍的通信協議 -- 安全超文本傳輸協議(Hyper Text Transfer Protocol Secure,HTTPS)。 與以明文方式傳輸數據的 HTTP 協議不同,HTTPS 在傳統的 HTTP 層和 TCP 層之間引入 Transport Layer Security/Secure Socket Layer(TLS/SSL)加密層來實現安全傳輸。 採用 HTTPS 建立安全連接(TLS 握手協商過程)的基本步驟如下:

客戶端瀏覽器發送握手信息到伺服器,包括隨機數R1、支持的加密算法套件(Cipher Suite)類型、協議版本、壓縮算法等。注意該過程傳輸為明文。 服務端返回信息,包括隨機數R2、選定加密算法套件、協議版本,以及伺服器證書。注意該過程為明文。 瀏覽器檢查帶有該網站公鑰的證書。該證書需要由第三方CA來籤發,瀏覽器和作業系統會預置權威CA的根證書。如果證書被篡改作假(中間人攻擊),很容易通過CA的證書驗證出來。如果證書沒問題,則客戶端用服務端證書中公鑰加密隨機數 R3(又叫 Pre-MasterSecret),發送給伺服器。此時,只有客戶端和伺服器都擁有 R1、R2 和 R3 信息,基於隨機數R1、R2 和 R3,雙方通過偽隨機數函數來生成共同的對稱會話密鑰 MasterSecret。 後續客戶端和服務端的通信都通過協商後的對稱加密(如AES)進行保護。

為了保障前向安全性(Perfect Forward Secrecy),TLS對每個會話連接都可以生成不同的密鑰,避免某個會話密鑰洩露後對其它會話連接產生安全威脅。需要注意,選用合適的加密算法套件對於TLS的安全性十分重要。要合理選擇安全強度高的算法組合,如 ECDHE-RSA 和 ECDHE- ECDSA 等,而不要使用安全性較差的 DES/3DES 等。


加密算法套件包括一組算法,包括交換、認證、加密、校驗等:

密鑰交換算法: 負責協商對稱密鑰,常見類型包括RSA、DH、ECDH、ECDHE等; 證書籤名算法: 負責驗證身份,常見類型包括SA、DSA、ECDSA等; 加密數據算法: 對建立連接的通信內容進行對稱加密,常見類型包括AES等; 消息認證信息碼(MAC)算法: 創建報文摘要,驗證消息的完整性,常見類型包括SHA等。


Diffie–Hellman 密鑰交換協議

A 和 B 兩個人協商密鑰,先公開商定 p,g;A 自行選取私密的整數 x,計算 X=g^x mod p,發送 X 給 B; B 自行選取私密的整數 y,計算 Y=g^y mod p,發送 Y 給 A; A 根據 x 和 Y,求解共同密鑰 Z_A=Y^x mod p;B 根據 X 和 y,求解共同密鑰 Z_B=X^y mod p。

Z = Z_A = A_B,因為在 mod p 的前提下,Y^x =(g^y)^x =g^(xy) = (g^x)^y=X^y。而信道監聽者在已知 p,g,X,Y 的前提下,無法求得 Z。


消息認證碼(Hash-based Message Authentication Code,HMAC)

利用對稱加密算法的認證機制,典型的 HMAC生成算法包括 K,H,M三個參數。K 為提前共享的對稱密鑰,H為提前商定的 Hash 算法(如 SHA-256),M為要傳輸的消息內容。三個參數缺失了任何一個,都無法得到正確的 HMAC 值。


數字籤名(Digital Signature)

A先對要發送內容正文執行哈希運算得到消息摘要;然後A用自己的私鑰對消息摘要加密,生成數字籤名;對要發送的內容正文使用B的公鑰進行加密,並把數字籤名加在要發送的內容正文後面,一起發送給B;B收到後用A的公鑰對數字籤名解密,成功則代表收到的內容確實來自A;B對收到的內容正文通過自己的私鑰解密後,執行哈希運算得到摘要;B會對比數字籤名的Hash值和自己運算得到的Hash值,一致則說明內容未被篡改。


消息摘要(Message Digest):

消息摘要可以通過Hash算法將消息映射到一個固定長度的字符串。值唯一的意思是不同的消息轉換的摘要是不同的,並且能夠確保唯一。該過程不可逆,即不能通過摘要反推明文。常用的消息摘要算法有MD5、SHA1、SHA256、SHA512等。


數字證書

數字證書可以分為加密數字證書(Encryption Certificate)和籤名驗 證數字證書(Signature Certificate)。前者往往用於保護用於加密用途的公鑰; 後者則保護用於籤名用途的公鑰。兩種類型的公鑰也可以同時放在同一證書中。 一般情況下,證書需要由證書認證機構(Certification Authority,CA)來進行籤發和背書。權 威的商業證書認證機構包括 DigiCert、GlobalSign、VeriSign 等。用戶也可以自行搭建本地 CA 系統,在私有網絡中進行使用。


PKI(Public Key Infrastructure)體系

解決證書生命周期相關的認證和管理問題。 一般情況下,PKI 至少包括如下核心組件:

CA(Certification Authority): 負責證書的頒發和吊銷(Revoke),接收來自RA的請求,是最核心的部分;RA(Registration Authority): 對用戶身份進行驗證,校驗數據合法性,負責登記,審核過了就發給 CA; 證書資料庫: 存放證書,多採用X.500 系列標準格式。可以配合LDAP錄服務管理用戶信息。


證書的籤發

CA 對用戶籤發證書實際上是對某個用戶公鑰,使用 CA 的私鑰對其進行籤名。 用戶證書的籤發可以有兩種方式。可以由用戶自己生成公鑰和私鑰,然後 CA 來對公鑰內容進 行籤名(只有用戶持有私鑰);也可以由 CA 直接來生成證書(內含公鑰)和對應的私鑰發給 用戶(用戶和 CA 均持有私鑰)。 前者情況下,用戶一般會首先自行生成一個私鑰和證書申請文件(Certificate Signing Request,即 csr 文件),該文件中包括了用戶對應的公鑰和一些基本信息,CA 只需要對證書請求文件進行籤名。例如用openssl 來生成csr文件和對應的私鑰文件:openssl req -new -keyout private.key -out for_request.csr , 查看csr文件內容:$ openssl req -in for_request.csr -noout -text


默克爾樹(又叫哈希樹)

是一種典型的二叉樹結構,由一個根節點、一組中間節點和一組葉節點組成,最下面的葉節點包含存儲數據或其哈希值,非葉子節點(包括中間節點和根節點)都是它的兩個孩子節點內容的哈希值。它具有:證明某個集合中存在或不存在某個元素 ,快速比較大量數據 ,快速定位修改 ,零知識證明等特點。


布隆過濾器(Bloom Filter)

是一種基於 Hash 的高效查找 結構,能夠快速(常數時間內)回答「某個元素是否在一個集合內」的問題。


同態加密

具有同態性質的加密函數是指兩個明文a、b滿足Dec(En(a)⊙En(b))=a⊕b的加密函數,其中En是加密運算,Dec是解密運算,⊙、⊕分別對應明文和密文域上的運算。當⊕代表加法時,稱該加密為加同態加密:當⊕代表乘法時,稱該加密為乘同態加密。全同態加密是指同時滿足加同態和乘同態性質,可以進行任意多次加和乘運算的加密函數。用數學公式來表達,即Dec(f(En(m1),En(m2),…,En(mk)))=f(m1,m2,…,mk),或寫成:f(En(m1),En(m2),…,En(mk))=En(f(m1,m2,…,mk)),如果f是任意函數,稱為全同態加密。


函數加密

同態加密保護的是數據本身,而函數加密顧名思義保護的是處理函數本身,即讓第三方看不 到處理過程的前提下,對數據進行處理。 該問題已被證明不存在對多個通用函數的任意多密鑰的方案,目前僅能做到對某個特定函數 的一個密鑰的方案。

,
同类文章
葬禮的夢想

葬禮的夢想

夢見葬禮,我得到了這個夢想,五個要素的五個要素,水火只好,主要名字在外面,職業生涯良好,一切都應該對待他人治療誠意,由於小,吉利的冬天夢想,秋天的夢是不吉利的
找到手機是什麼意思?

找到手機是什麼意思?

找到手機是什麼意思?五次選舉的五個要素是兩名士兵的跡象。與他溝通很好。這是非常財富,它擅長運作,職業是仙人的標誌。單身男人有這個夢想,主要生活可以有人幫忙
我不怎麼想?

我不怎麼想?

我做了什麼意味著看到米飯烹飪?我得到了這個夢想,五線的主要土壤,但是Tu Ke水是錢的跡象,職業生涯更加真誠。他真誠地誠實。這是豐富的,這是夏瑞的巨星
夢想你的意思是什麼?

夢想你的意思是什麼?

你是什​​麼意思夢想的夢想?夢想,主要木材的五個要素,水的跡象,主營業務,主營業務,案子應該抓住魅力,不能疏忽,春天夢想的吉利夢想夏天的夢想不幸。詢問學者夢想
拯救夢想

拯救夢想

拯救夢想什麼意思?你夢想著拯救人嗎?拯救人們的夢想有一個現實,也有夢想的主觀想像力,請參閱週宮官方網站拯救人民夢想的詳細解釋。夢想著敵人被拯救出來
2022愛方向和生日是在[質量個性]中

2022愛方向和生日是在[質量個性]中

[救生員]有人說,在出生88天之前,胎兒已經知道哪天的出生,如何有優質的個性,將走在什麼樣的愛情之旅,將與生活生活有什么生活。今天
夢想切割剪裁

夢想切割剪裁

夢想切割剪裁什麼意思?你夢想切你的手是好的嗎?夢想切割手工切割手有一個真正的影響和反應,也有夢想的主觀想像力。請參閱官方網站夢想的細節,以削減手
夢想著親人死了

夢想著親人死了

夢想著親人死了什麼意思?你夢想夢想你的親人死嗎?夢想有一個現實的影響和反應,還有夢想的主觀想像力,請參閱夢想世界夢想死亡的親屬的詳細解釋
夢想搶劫

夢想搶劫

夢想搶劫什麼意思?你夢想搶劫嗎?夢想著搶劫有一個現實的影響和反應,也有夢想的主觀想像力,請參閱週恭吉夢官方網站的詳細解釋。夢想搶劫
夢想缺乏缺乏紊亂

夢想缺乏缺乏紊亂

夢想缺乏缺乏紊亂什麼意思?你夢想缺乏異常藥物嗎?夢想缺乏現實世界的影響和現實,還有夢想的主觀想像,請看官方網站的夢想組織缺乏異常藥物。我覺得有些東西缺失了