密碼學入門與實踐-2

公鑰加密

安全密鑰分發由公鑰密碼系統解決,因為它不需要您和室友之間進行安全的初始密鑰協商。

公鑰密碼系統也稱為非對稱密鑰加密 - 與對稱密鑰相反 - 使用一對密鑰(兩個獨立的密鑰):用於加密的公鑰和用於解密的私鑰(也稱為秘鑰)。由公鑰無法推導出私鑰。

密碼學入門與實踐-2

我們可以將非對稱密鑰密碼系統與電子郵件帳戶進行類比。任何人可以訪問您的電子郵件地址(例如,任何人都可以通過[email protected]向您發送電子郵件),但您是唯一擁有登錄密碼的人(這意味著只有您可以閱讀電子郵件的內容)。公鑰是您的電子郵件地址,私鑰是與您的電子郵件地址登錄的密碼。

它是如何運作的:

第1步:創建一對私鑰 - 公鑰(稍後我們將討論生成密鑰對)。

第2步:與朋友分享您的公鑰。

第3步:發件人使用您的公鑰加密明文(原始郵件+加密=密文)。

第4步:發件人向您發送密文。

第5步:使用您的私鑰解密密文(密文+解密=原始消息)。

優點:增加了便利性和安全性。

缺點:加密速度慢。所有公鑰 - 私鑰都容易受到暴力攻擊(這可以通過選擇加大密鑰大小來避免)。您無法驗證合作伙伴的身份(易受冒充)。

用法:由於增長密鑰大小會產生過大的加密消息輸出,因此加密和傳輸消息需要更長的時間。出於實踐目的,公共密鑰優先用於短消息加密,例如發送私鑰或數字證書,而不是加密長消息。不方便的是,較短的密鑰長度提供較低的安全性,但是在加密消息長度或傳輸時間方面,您是贏家。因此,密鑰應經常更換。

密碼學入門與實踐-2

RSA

RSA是以Rivest,Shamir和Adleman3人的首字母命名,是使用前一段中描述的Diffie-Hellman(密鑰交換算法)方法,是公鑰密碼系統的下一步。該算法基於大整數難以分解的事實。

我會在我假設你喜歡數學之前逐步解釋RSA算法:)

首先你應該知道mod(模運算)和互質整數。

歐拉定理(Euler’s theorem):

密碼學入門與實踐-2

其中phi(z)是歐拉函數( Euler's totient function),z是正整數。

簡而言之,歐拉函數將與z互質的個數記為phi(z)。如果z是素數,那麼phi(z)= z-1(*)。

例子:

密碼學入門與實踐-2

讓我們繼續歐拉定理:

密碼學入門與實踐-2

使用數學歸納法我們可以證明:

密碼學入門與實踐-2

這意味著數字x的指數冪為phi(z)+1時,結果是返回自身。

密碼學入門與實踐-2

從(*)方程和歐拉定理,我們得到

密碼學入門與實踐-2

到目前為止,我們對RSA一無所知。現在是時候把所有這些方程聯繫起來了。

我們假設兩個素數p,q。用p * q替換z。

密碼學入門與實踐-2

從等式(**)與K = 1和等式(***)我們得到:

密碼學入門與實踐-2

這意味著只有當我們可以分解p * q數時,我們才能找到(p-1)*(q-1)+1。將x視為消息。我們可以選擇一個隨機素數E(加密密鑰),它必須是(p-1)*(q-1)的互質。然後我們計算D(解密密鑰)為:

密碼學入門與實踐-2

其中D是mod的逆。

密碼學入門與實踐-2

現在我們可以使用RSA算法,因為我們有公鑰(E)和私鑰(D):

如果結果密文^ E

未完待續

密碼學入門與實踐-2

文章首發在微信公眾號:btc201800

知識星球ID:28018093

音頻發佈在喜馬拉雅上“區塊鏈雜談 (第2季)” http://xima.tv/Bjq4se

解讀區塊鏈白皮書 http://xima.tv/RNU1Q8

寧波格密鏈網絡科技有限公司,專注於區塊鏈上的密碼技術研發。


分享到:


相關文章: