密碼學之RSA加密

2021-07-08 20:42:41 字數 1410 閱讀 4908

最近在學習網易公開課上可汗學院現代密碼學的課程,整理了一下自己的筆記3

rsa加密:非對稱金鑰,公開金鑰演算法

rsa加密利用了單向函式正向求解很簡單,反向求解很複雜的特性。

具體是利用了:

1.對兩個質數相乘容易,而將其合數分解很難的這個特點進行的加密演算法。 n=p1*p2,已知p1、p2求n簡單,已知n求p1、p2困難。

2.(m^e) mod n=c,已知m、e、n求c簡單,已知e、n、c求m很難。

rsa加密,實現了公開金鑰,就是a可以給所有人傳送鎖,其他人把要加密的資訊用這把鎖加密後傳送給a,a用自己的鑰匙開鎖就可以獲得加密的資訊了。反過來,a要傳送加密資訊給b,只要知道b的鎖就可以了,而這個鎖是公開的。

公開金鑰n、e的生成:隨機選取兩個質數p1、p2,n=p1*p2,再隨機選取乙個整數e,e與φ(n)互質。

加密過程:(m^e) mod n=c,其中m為原資訊,c為加密資訊,n、e為公開金鑰。

解密過程:(c^d) mod n=m,其中d為解密金鑰。

解密金鑰d的求解:

(c^d) mod n=(((m^e) mod n)^d) mod n=((m^e)^d) mod n=(m^ed) mod n=m ①

根據費馬定理(m^φ(n)) mod n≡1,又1^k≡1,所以(m^k*φ(n)) mod n≡1,兩邊同乘以m得m*((m^k*φ(n)) mod n)≡1*m,化簡(m^(k*φ(n)+1)) mod n≡m ②

由①、②得ed=(k*φ(n)+1),解得d=(k*φ(n)+1)/e。

費馬定理:若p是素數,a與p互素,則a^(p-1)≡1 (mod p)

過程如下:

a:有乙個公鑰n、e。例如:3127、3。

b:有乙個資訊m。例如:89。

c:偷聽者

a:第一步:隨機找兩個質數p1、p2,乙個奇數e。例如:53、59、3。

第二步:計算n=p1*p2得到n,計算尤拉函式φ(n)=(p1-1)*(p2-1)得到φ(n),計算鑰匙d=(k*φ(n)+1)/e得到d。例如:53*59=3127、(53-1)*(59-1)=3016、(k*φ(n)+1)/e=(2*3016+1)/3=2011。

第三步:傳送n、e給大家知道    //n、e就是公鑰也做鎖,d就是n、e的鑰匙。

c:獲得n、e

b:第一步:獲得n、e

第二步:加密資訊m,(m^e) mod n=c,獲得加密資訊c。例如:(89^3) mod 3127=1394。

第三步:傳送c給a

c:第一步:截獲加密資訊c

第二步:破解資訊c,此時c只有n、e、c,只有把n分解質因數才能破解,而此分解很困難特別是當n很大的時候。

a:第一步:收到加密資訊c

第二步:解密資訊c,(c^d) mod n=m,獲得資訊m。例如:(1394^2011) mod 3127=89。

完成

密碼學之RSA加密

最近在學習網易公開課上可汗學院現代密碼學的課程,整理了一下自己的筆記3 rsa加密 非對稱金鑰,公開金鑰演算法 rsa加密利用了單向函式正向求解很簡單,反向求解很複雜的特性。具體是利用了 1.對兩個質數相乘容易,而將其合數分解很難的這個特點進行的加密演算法。n p1 p2,已知p1 p2求n簡單,已...

密碼學演算法 RSA

rsa演算法安全瓶頸 rsa演算法的乘法同態特性 rsa第一次在r.l.rivest,a.shamir和l.adleman的1978年的 a method for obtaining digital signatures and public key cryptosystems 中,作為一種新的數字...

(1)密碼學之RSA演算法

開始前先講一下對稱加密演算法和公鑰加密演算法 我不喜歡叫非對稱加密演算法,這使我想起那個被問md5演算法屬於對稱還是非對稱的恐懼 對稱加密演算法 1 甲方選擇某一種加密規則,對資訊進行加密 2 乙方使用同一種規則,對資訊進行解密。公鑰加密演算法 1 乙方生成兩把金鑰 公鑰和私鑰 公鑰是公開的,任何人...