密碼學簡介

原文鏈接:http://www.nature.com/nature/journal/v549/n7671/full/nature23461.html

當用戶訪問以https開頭的網站時,用戶的計算機(筆記本電腦,桌面設備,手機或其他設備)使用傳輸層安全(TLS)將其安全地連接到Web服務器。TLS結合了一系列加密操作,以確保沒有第三方可以理解發送的內容(機密性); 沒有第三方可以修改消息而不被檢測(完整性); 並且沒有第三方可以模仿一個通信方(真實性)。

調用Web服務器“Alice”和用戶的計算機“Bob”。Alice和Bob相互識別的是它們共享一個祕密值,一個“密鑰”。他們使用這個鍵執行“對稱”加密操作。我們稍後會回到關於他們如何知道祕密鑰匙的問題。

假設愛麗絲有一個消息m發送給Bob:一個網頁或一個文件。愛麗絲和鮑勃都知道加密密鑰enc。愛麗絲使用該密鑰enc來應用“對稱加密算法” 來加密消息m,產生密文c,Alice通過互聯網發送給Bob。Bob使用相同的密鑰enc應用匹配的對稱解密算法來解密密文c,獲得原始消息m

愛麗絲和鮑勃也都知道認證密鑰auth。愛麗絲使用這個密鑰auth應用密文c,產生一個認證標籤,Alice也通過互聯網向Bob發送證明她可以訪問該密鑰。Bob通過使用相同的密鑰應用相同的MAC來驗證計算。

對稱加密確保https中數據的機密性。它確保間諜不能看到消息的內容。驗證確保消息的真實性和完整性:它阻止間諜修改消息或替換不同的消息,假裝是愛麗絲。

https提供了幾種對稱加密算法和MAC的選擇。一些MAC是從“哈希函數”構建的。散列函數將任意長度的字符串映射到固定長度爲n的字符串:例如256位字符串。在本文中,我們僅考慮設計用於使計算上的以下操作的哈希函數:(1)給定h的圖像中的值z,找到預圖像,即,具有hm)=  z的字符串m ; (2)給出一個字符串mhm),找到第二個預先圖像,即一個字符串m '≠  mħ)=  ^ h '); 和(3)發現碰撞,即hm)=  hm ')的串m  ≠  m ' 。散列函數提供消息的緊湊指紋; 消息的一個小變化產生完全不同的指紋。該屬性用於MAC的構造。

到目前爲止的描述讓Alice和Bob到達擁有一個共享的對稱密鑰。https連接的這一部分使用“公鑰加密”。

在公開密鑰加密中,每一方都有兩個密鑰:一個公鑰和一個私鑰。私鑰只有派對才知道,而公鑰可以公開。給予愛麗絲的公共加密密鑰,任何人都可以加密對她的消息,而只有她擁有她用來解密的匹配私鑰。

在https方案中,Alice是一個Web服務器,而Bob是瀏覽器。Bob首先聯繫愛麗絲下載公鑰,然後對其加密一次性對稱密鑰,最後在通信的其餘部分使用對稱密鑰進行加密和認證,如上所述。Alice解密Bob的初始消息以獲取共享的對稱密鑰,然後也用於其餘的通信。

https中的另一個選擇是使用另一個公鑰函數“密鑰交換”,這個函數非常接近於目前爲止所描述的但使用不同的數學函數。Bob而不是Bob將對稱密鑰加密到Alice的公鑰,而Bob和Alice都進行了共同生成對稱密鑰的計算。

還有一個重要的問題:Bob知道Alice提供的公鑰真的屬於她嗎?在https的情況下,這是由瀏覽器下載和驗證“證書”來處理的。這裏使用的加密功能是公共密鑰“簽名”,其使用公鑰加密來驗證消息。

在簽名系統中,Sam使用他的私有簽名密鑰將簽名算法應用於消息m,產生簽名。每個人都可以通過使用Sam的公共簽名密鑰將驗證算法應用於m來驗證此簽名。在內部,這些算法通常將哈希函數應用於消息,以及涉及密鑰的其他數學運算。

像MAC一樣,簽名系統確保消息的真實性和完整性,但有兩個重要的區別。首先,簽名可以由任何使用公開密鑰的人進行驗證,而認證標籤則是在雙方共享auth之間。第二,只有Sam具有用於生成有效簽名的私鑰,而Alice到Bob的認證標籤可能是由Alice或Bob計算出來的。

在https中,山姆是互聯網安全研究小組等知名信託方,大家都知道山姆的公鑰。Sam簽名的消息是將Alice的身份與Alice的公鑰相關聯的證書。Bob驗證了Sam的簽名,然後可以自信地使用Alice的公鑰進行加密。


發佈了115 篇原創文章 · 獲贊 20 · 訪問量 28萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章