公鑰加密 DES RSA

2022-07-26 07:24:11 字數 4129 閱讀 3716

雙方使用同一規則加密---------金鑰(對稱加密演算法

des)data encryption standard

雙方一起制定--------辦法:金鑰交換演算法,不用直接傳遞金鑰

------------------

私鑰(非對稱加密演算法

rsa)

三位數學家rivest、

shamir

和 adleman

除了1以外,沒有其他公因子

比如,15和

32沒有公因子:

任意兩個質數構成互質關係,比如13和61。

乙個數是質數,另乙個數只要不是前者的倍數,兩者就構成互質關係,比如3和10。

如果兩個數之中,較大的那個數是質數,則兩者構成互質關係,比如97和57。

1和任意乙個自然數是都是互質關係,比如1和

99。p是大於

1的整數,則p和

p-1構成互質關係,比如57和

56。6. p是大於

1的奇數,則p和

p-2構成互質關係,比如17和

15。任意正整數n,請問在

<= n 的正整數之中,有多少個與n構成互質關係?-----尤拉函式

φ(n) = n * (1 - 1/p1)*(1 - 1/p2)*(1 - 1/p3)*(1 - 1/p4)

φ(1323) = φ(3^3 * 7^2) = 1323 * (

1 - 1/3

)(1 - 1/7

)-----  a和b互質

------- a^φ(b) = 1 (mod b)  -----》 a的(

b的尤拉函式)

次方減一  :等於

:能整除b3和

7互質,而

7的尤拉函式

φ(7)等於6

,所以3的6

次方(729

)減去1

,可以被

7整除(

728/7=104

)如果兩個正整數a和

n互質,那麼一定可以找到整數

b,使得

ab-1 被n

整除,或者說ab被

n除的餘數是

1-------ab==1(mod n)

-------a*a^(φ(b) - 1) = 1 (mod b)

公鑰和私鑰

第一步,隨機選擇兩個不相等的質數p和

q-----------------61和

53第二步,計算p和

q的乘積

n------------------------------3233寫成二進位制是

110010100001

,一共有

12位,所以這個金鑰就是

12位實際應用中,

rsa金鑰一般是

1024

位,重要場合則為

2048

位n = p×q

第三步,計算n的尤拉函式

φ(n)-----------------φ(3233)等於

60×52

,即3120

φ(n) = (p-1)(q-1)

第四步,隨機選擇乙個整數e,條件是

1------------在1到

3120

之間,隨機選擇了

17,實際應用中,常常選擇65537

e ≡ range(1 ,  φ(n)) 

第五步,計算e對於

φ(n)

的模反元素

ded ≡ 1 (mod φ(n))------------------17x + 3120y = 1(二元一次方程

)第六步,將n和

e封裝成公鑰,n和

d封裝成私鑰

其中乙個解 (x,y)=(2753,-15),即

d=2753

n=3233,

e=17

,d=2753

,所以公鑰就是

(3233,17)

,私鑰就是(

3233, 2753

)質積,隨機,模反元素,

公鑰(質積,隨機

),私鑰

(質積,模反元素)

(1)ed≡1 (mod φ(n))

。只有知道e和

φ(n)

,才能算出d。

(2)φ(n)=(p-1)(q-1)

。只有知道p和

q,才能算出

φ(n)

。(3)

n=pq

。只有將

n因數分解,才能算出p和

q。---------n根號

233478071698956898786044169

84821269081770479498371376

85689124313889828837938780

02287614711652531743087737

814467999489

×36746043666799590428244633

79962795263227915816434308

76426760322838157396665112

79233373417143396810270092

798736308917

1 加密要用公鑰 (n,e)

資訊m必須是整數(字串可以取

ascii

值或unicode值),

且m必須小於

nme ≡ c (mod n)

愛麗絲的公鑰是 (3233, 17),鮑勃的

m假設是

6565 * 17 ≡ 2790 (mod 3233)

鮑勃就把2790發給了愛麗絲

2 解密要用私鑰(n,d)

用自己的私鑰(3233, 2753) 進行解密

cd ≡ m (mod n)

2790 * 2753 ≡ 65 (mod 3233)

如果要加密大於n的整數,該怎麼辦?有兩種解決方法:一種是把長資訊分割成若干段短訊息,每段分別加密;另一種是先選擇一種

"對稱性加密演算法

"(比如

des),用這種演算法的金鑰加密資訊,再用rsa公鑰加密

des金鑰。

最後,我們來證明,為什麼用私鑰解密,一定可以正確地得到m。也就是證明下面這個式子:

cd ≡ m (mod n)

因為,根據加密規則

me ≡ c (mod n)

於是,c可以寫成下面的形式:

c = me - kn

將c代入要我們要證明的那個解密規則:

(me - kn)d ≡ m (mod n)

它等同於求證

med ≡ m (mod n)

由於ed ≡ 1 (mod φ(n))

所以ed = hφ(n)+1

將ed代入:

mhφ(n)+1 ≡ m (mod n)

接下來,分成兩種情況證明上面這個式子。

(1)m與n

互質。根據尤拉定理,此時

mφ(n) ≡ 1 (mod n)

得到(mφ(n))h × m ≡ m (mod n)

原式得到證明。

(2)m與n

不是互質關係。

此時,由於n等於質數p和

q的乘積,所以

m必然等於kp或

kq。以 m = kp為例,考慮到這時k與

q必然互質,則根據尤拉定理,下面的式子成立:

(kp)q-1 ≡ 1 (mod q)

進一步得到

[(kp)q-1]h(p-1) × kp ≡ kp (mod q)

即(kp)ed ≡ kp (mod q)

將它改寫成下面的等式

(kp)ed = tq + kp

這時t必然能被

p整除,即

t=t'p

(kp)ed = t'pq + kp

因為 m=kp,

n=pq

,所以med ≡ m (mod n)

原式得到證明。

結果:加密:資訊*隨機

= 加密資訊

*尤拉函式

解密:加密資訊*模反

= 資訊

*尤拉函式

核心:隨機*模反

= 1*

尤拉函式

應用:1 分段加密

2 用des

加密資訊,用

rsa加密

des金鑰

基本公鑰加密

基本公鑰加密 基本的公鑰加密步驟是由 whitfield diffie 及 martin hellman 於 1976 提出的。數學觀念 質數 是只能被 1 以及自己整除的正整數 除了之後餘數為 0 前 8 個質數是 1 2 3 5 7 11 13 17 任何非質數的正整數都可以化為兩個以上質數的乘...

私鑰,公鑰,加密

在密碼學中,金鑰 key,又常稱金鑰 是指某個用來完成加密 解密 完整性驗證等密碼學應用的秘密資訊。在對稱密碼學中,加密和解密用的是同乙個鑰匙,因此鑰匙需要保密。而在非對稱密碼學中,加密和解密用的鑰匙不同 通常乙個是公開的,稱為公鑰 另乙個保密,稱為私鑰。這類演算法在加密和解密時使用相同的金鑰,或是...

公鑰的加密

對於加密,必須區分對稱加密和公鑰 私鑰加密。在對稱加密時,可以使用同乙個金鑰進行加密和解密。但公鑰 私鑰不是這樣的。如果使用乙個公鑰進行加密,就應使用相應的私鑰進行解密,而不是公鑰進行解密。同樣,如果使用乙個私鑰進行加密,就應使用對應的公鑰進行解密,而是不私鑰進行解密。公鑰 私鑰總是成對的建立的。公...