RSA加密演算法

2021-08-19 14:09:17 字數 1071 閱讀 1107

在講解rsa加密演算法之前先了解一下對稱加密。

對稱加密:假設a要傳遞資訊「m」給b。

首先a對「m」進行加密:m+e=c,這裡的「m」指「明文」、「e」指「金鑰」、「c」指「密文」。

然後b得到密文「c」就需要進行解密:c-e=m。這樣b就可以得到a傳遞過來的資訊。

可是金鑰「e」的傳輸就成了問題,竊聽者完全可以竊聽到金鑰使用同樣的演算法進行解密。於是就誕生了非對稱加密。

非對稱加密:

假設a要傳遞資訊「m」給b。

首先b找出公鑰「e」和私鑰「d」,然後將公鑰「e」傳輸給a。

之後a使用公鑰「e」對資訊「m」進行加密:e+m=c。

b得到密文「c」就需要進行解密,但這裡的解密金鑰是私鑰「d」。簡單來說就是密文「c」只有通過私鑰「d」才能得到原來的資訊「m」。那麼解密就是:c-d=m。

了解非對稱加密之後我們就可以去**如何尋求乙個公鑰與私鑰。就是說如何去找到一把鎖和一把鑰匙,並且它們之間需要有關聯。下面就開始講解這次的主角rsa加密演算法。

rsa加密演算法:

假設a要傳遞資訊「m」給b。那麼b就需要找到公鑰和私鑰。

第一步:找出兩個質數(只有1和本身兩個公約數的數):p、q

第二步:把p*q得到n:n=p*q

第三步:x=(p-1)*(q-1) 這一步的作用在下面說講到

第四步:找出公鑰「e」,「e」必須是大於1且小於x的整數,同時「e」與「x」需要互質(兩個數除1之外沒有共同的公約數)

第五步:找出私鑰「d」,「d」可以通過下面的公式求出:(e*d)/x餘數為1

加密:m的e次冪除以n求餘c

解密:c的d次冪除以n的餘數必然是m

通過上述方法就可以完成一次資訊的傳輸,那麼再看看它的安全性:

已知公開的資訊為:n、e、c

而解密需要:n、d、c

如果竊聽者解密就必然要知道私鑰「d」,想要知道私鑰「d」需要通過「(e*d)/x餘數為1」這段公式求得。而x為不公開的,那麼想要知道x又必須又必須通過「x=(p-1)*(q-1)」求得。再往後,想要知道p、q又必須通過「n=p*q」公式求得。最關鍵的一步來了,對這種大數字的質數分解目前人類還沒有辦法辦到。

RSA加密演算法

素數是這樣的整數,它除了能表示為它自己和1的乘積以外,不能表示為任何其它兩個整數的乘積。例如,15 3 5,所以15不是素數 又如,12 6 2 4 3,所以12也不是素數。另一方面,13除了等於13 1以外,不能表示為其它任何兩個整數的乘積,所以13是乙個素數。素數也稱為 質數 二 什麼是 互質數...

RSA加密演算法

演算法的描述 1.選取兩個素數p,q 2.計算n p q,fn p 1 q 1 3.選擇乙個整數e,使得e與fn的最大公約數為1,e將會用於對資料進行加密。4.計算出乙個整數d,使得d e除fn的餘數為1。d用於對密文進行解密,還原出明文。5.假設明文為m,密文為c。如果需要對原文進行加密,則進行如...

RSA加密演算法

一 rsa是公鑰加密演算法之一,該演算法的數學基礎是 1 初等數論的euler定理,即 若整數a與整數n互素,則a n 1 mod n 其中,n 為尤拉函式。2 大整數分解很困難,即給定乙個大整數n,將其分解為n p q,兩個素數乘積十分困難。二 rsa基本原理 1 金鑰的生成。選擇大素數p,q,計...