最近了解了RSA算法的安全性的基本原理,簡單記錄一下方便以后回顧(不包含數學公式的推導以及產生大質數和求模反元素的具體算法)。
RSA加密解密的數學公式:
c=m^e%n
m=c^d%n
需要的數學條件:
滿足如下數學條件后就可以保證上面兩個公式成立(具體推導略去,純數學上的證明)
1.φ(n)是n的歐拉函數(任意給定正整數n,求在小于等于n的正整數中,有多少個與n互質的正整數)
2.e是一個小于φ(n)且與n互質的正整數
3.d是e對于φ(n)的模反元素 (ed%φ(n)==1)
RSA的使用:
1.生成兩個大質數p和q
2.通過將兩個大的質數相乘得到n作為安全系數:
n=p*q,順便得到φ(n)=φ(p*q)=(p-1)(q-1) 。因為因式分解的難度,只要n比較大,這個p和q以及φ(n)外界很難破解.
3.隨機選取e作為公鑰(通常是65537)
4.求一個d作為私鑰(使用擴展歐幾里得算法求e對于φ(n)的模反元素,顯然φ(n)對于求私鑰是必要的)
5.使用c=m^e%n對m進行加密以得到密文c,用m=c^d%n解密
或使用m=c^d%n對c進行數字簽名,用c=m^e%n來驗證簽名
RSA安全性的保證:
加密或驗證簽名所需要的公鑰和安全系數n都是公開的,而解密或數字簽名所必須的私鑰是非公開的,想要求得私鑰d(ed%φ(n)==1) 就必須得知φ(n)=φ(p*q)=(p-1)(q-1)。
而p和q是很難通過對n進行因式分解得到的,也就很難破解RSA。
(總結)RSA涉及的算法
1.產生兩個大質數的方法(準備安全系數)
2.擴展歐幾里得算法求私鑰的算法
擴展歐幾里得算法是根據兩個整數a,b求出三個整數x,y,d,其中d為a和b的大公約數,ax+by=d
私鑰d是公鑰e對于n的歐拉函數φ(n)的模反元素(ed%φ(n)==1)
ed%φ(n)==1 得到ed-kφ(n)=1 (e和φ(n)互質,所以1是e和φ(n)的大公約數)。
于是把e和φ(n)作為擴展歐幾里得算法的輸入,d和-k就成為一組輸出,求得了一個可能為負值的d。在d上增加φ(n)使其為正,也是可以保證ed-kφ(n)=1 (相應把k變化即可)。
擴展歐幾里得算法,一方面要求a和b的大公約數,(被除數和除數的大公約數,等于除數和余數的大公約數,如此遞歸下去,直到得到的余數為0,則上一步的除數為大公約數),一方面要求x和y。因為每次遞歸時ax+by=bx'+(a%b)y',新舊xy存在關聯關系,是可以和最小公約數一起遞歸求解的
(每次遞歸后,x=y;y=t-a/b*y;)。直到遞歸到余數為0時,此時ax+by=d中b為0,a為d,可令x為1,y為0,遞歸終止。
3.加密解密
c=m^e%n
m=c^d%n
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
新聞標題:RSA的安全性---學習筆記(不包含數學關系的推導)-創新互聯
文章分享:http://vcdvsql.cn/article26/dehpcg.html
成都網站建設公司_創新互聯,為您提供微信公眾號、網站導航、全網營銷推廣、品牌網站設計、移動網站建設、網站策劃
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯