公開金鑰機制

2021-07-04 23:29:20 字數 1660 閱讀 1715

公開金鑰機制 演算法及公式 例子 轉

domino的安全機制中用到了公開金鑰機制。請你用5分鐘的時間看看我這個帖子,你就會明白公開金鑰機制的原理和使用方法。

幾個小數數學中的概念:

1、自然數(natural number),用以計量事物的件數或表示事物次序的數。即用數碼0,1,2,3,4,……所表示的數 。自然數由0開始 , 乙個接乙個,組成乙個無窮集合。

2、一整數被另一整數整除,後者即是前者的因數,如1,2,4都為8的因數。1,2,4被稱為8的因子。

3、在兩個或幾個數中,如果它們有相同的因數,那麼這個/些因數就叫做它們的公因數。而這些公因數中最大的那個稱為這些正整數的最大公因數。12和18的公因數有:1、2、3、6,而最大公因數就是6了!

4、質數,又稱素數,就是乙個正整數,除了本身和 1 以外並沒有任何其他因子。例如 2,3,5,7 是質數,而 4,6,8,9 則不是,後者稱為合成數。

5、互素,又稱互質。若n個整數a1,a2,…,an的最大公因數為1,就稱這n個整數互素。

****************************************====

1、找金鑰的過程

在自然數中找兩個大質數p和q,記n=pq,m=(p-1)(q-1)。

在0至m-1的自然數中找乙個e,但e要滿足1個條件:e與m互素。

再找乙個數d,d要滿足的條件是:ed-1除以m的餘數是0(即ed-1能夠被m除盡)。

那麼,數字對(e,n)就是公開金鑰,數字對(d,n)就是私有金鑰。

2、用公開金鑰機制加解密的演算法公式

注意:在使用公開金鑰加密時,明文分組的值要小於n。

假設明文的值是x,密文的值是y。則:

加密公式:密文y=x的e次方除以n的餘數

解密公式:明文x=y的d次方除以n的餘數

至於這兩個公式是怎麼成立的,你不用去管,自然是有大數學家證明過的。數學是自然科學的基礎,這句話沒錯吧!

3、舉例

(1)找兩個大質數p和q,假設為:p=7,q=17;

n=7*17=119;

m=(7-1)(17-1)=96

(2)從0至m-1(即0至95)的自然數中找乙個e,但e要與96互素。我們就找e=5;

(3)現在再找d,使5d-1能夠被96除盡。可以從1往大的數推算,可找到d=77。

因為5*77-1=384,384/96=4,餘數是0。

好了,公開金鑰就是(5,119),私有金鑰就是(77,119)。

注意:77這個數很關鍵呀,不能告訴任何人。

(你看它多放肆,它就料定你從5推算不出77來!其根本原因就是把119分解成兩個質數的乘積很困難。不過這兒還是不困難,因為119太小了)。

(4)加解密的過程。

在使用公開金鑰加密時,明文分組的值要小於n。

在本例中,n=119,由於2的7次方等於128,所以使用本例金鑰加密時,明文資料只能按照6位(bit)分組。2的6次方等於64。

假設明文的某個分組的值是8,即x=8。

加密後的密文y=x的e次方除以n的餘數=8的5次方除以96的餘數=32768/96的餘數=32,所以密文y=32。

得到密文值是32的人,使用私有金鑰解密:

解密後的明文x=y的d次方除以n的餘數=32的77次方除以96的餘數=8

五分鐘不到,你就明白了公開金鑰機制和使用方法了吧。

ok,發揮自己的想象力,去使用公開金鑰機制吧。

公開金鑰體系

公開金鑰體系 1.確認伺服器的身份?客戶機請求通訊並傳送一明文讓伺服器加密,伺服器用私鑰加密後將密文傳輸給客戶機,客戶機用公鑰對密文進行解密,如解密後的密文和明文不等,則確認不是伺服器。實際上伺服器並不對客戶機的明文直接加密,因為攻擊者可以將有規律的字串傳送給伺服器,如伺服器對其直接加密返回,會威脅...

使用公開金鑰機制進行會話金鑰

當我們在進行通訊的時候,常常需要在c s兩端分配乙個會話金鑰,然後利用對稱密碼演算法對通訊的資料加密,當然了,也可以使用非對稱加密演算法,但是非對稱加密會使加密速度降低了乙個數量級,因此並不適用。那麼如何安全的在不安全的通道中分發會話金鑰呢?有兩種方式,一種使用共享金鑰機制,這樣的協議很多,比如d ...

對稱金鑰系統和公開金鑰系統

為了安全性,在網際網路上傳輸的一些資訊需要加密,比如使用者登陸所使用的密碼。加密系統一般分為對稱金鑰系統 symmetric key system 和公開金鑰系統 public key system 在對稱金鑰系統中,用於加密和解密的金鑰是相同的並且是秘密的,只能為兩個人所知。對稱金鑰系統要求雙方共...