您好,登錄后才能下訂單哦!
RSA是(Rivest Shamir and Adleman)的縮寫,Ron Rivest, AdiShamir 和Leonard Adleman這仨哥們挺NB的,20多年前創造了這個算法,現在也已經廣泛使用了。
這是一種公鑰的加密算法,加密和解密是互逆的。如果用公鑰加密,私鑰解密,可實現保密通信;如果用私鑰加密,公鑰解密,可實現數字簽名。下面說一下算法:
1、首先選擇兩個大素數p和q
都要大于10^100,因為小素數很容分解
2、令n=p*q和z=(p-1)*(q-1)
這部沒什么可解釋的
3、選擇d,要求d與z互質。
只要是互質數都行
4、選擇e,要求e*d=1 (mod z)
一說這個mod就煩人了,這里的mod的意思是數學符號,并非編程的mod,好比a=b (mod c),意思是a和b除以c后,余數相同。
5、明文P被分為k位的塊,k要滿足2^k<n的最大整數,于是0<=p<n。
這不沒什么可說的。
下面是加密和解密過程,先說公鑰加密,私鑰解密的過程:
1、公鑰加密用到e,n這兩個數。C=P^e (mod n)
C是加密后的密文,P是明文,e和n就是算出來的數字了,但是這里的mod是電腦編程里的運算符,意思是取余數。
解密用到d,n,P=C^d (mod n)
這樣明文P就出來了。
2、私鑰用到d,n這兩個數。C=P^d (mod n)
解密用到e,n這兩個數。P=C^e (mod n)
可以代兩個簡單的2位素數來試試,不過你會發現,p和q很容易就被推算出來了,所以為什么說要大素數的原因就在這里。因為安全性是基于大素數分解的困難性,如果***者要分解200位的數,需要40億年;500位的數,需要10^25年。這就是為什么RSA的重大缺陷是無法從理論上把握它的保密性能如何。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。