RSA加密演算法是一種非對稱加密演算法,在1977年由Ron Rivest、Adi Shamir以及Leonard Adleman在MIT所提出。RSA是取自三名教授的姓氏開頭字母縮寫,據說當時他們三位的實驗室即以RSA的順序相鄰。
RSA產生密鑰的過程是這樣的:
1.隨意選擇兩個大的質數p和q,p不等於q,計算N=pq。
2.選擇一個大於1小於(p-1)(q-1)的自然數e,e必須與(p-1)(q-1)互質。
3.用以下這個公式計算d:d× e ≡ 1 (mod (p-1)(q-1))
4.將p和q的記錄銷毀。
其中e是公鑰,d是私鑰。d是秘密的,而N是公眾都知道的。
note:x ≡ y (mod z) 表示x與y同餘z,亦即x/z的餘數=y/z的餘數
ex:101 ≡ 11(mod 10)
RSA在今日仍為一種相當可靠的演算法,但它的可靠性是建立在「要找出大數的兩個質數因子是非常困難的」的狀態之上, 若能夠得到p和q的話,就能夠輕易的破解RSA加密。
為了提高可靠度,在生成金鑰時有一些應注意的地方,譬如p應該要大於2q,以及e不該等於2等。
RSA金鑰有多種長度,長度越長破解所需的時間也就越長。Peter Shor在1994年證明量子電腦可以在多項式時間內進行因式分解。若量子電腦實現,RSA的安全性將會面臨極大的挑戰。
RSA 實驗室提供八組數字供人挑戰破解,依照長度的不同 ,獎金由10000美元至200000美元不等,長度最短的兩組數字已被破解。
相關連結:
RSA Laboratories - The RSA Challenge Numbers
參考資料:
Wikipedia contributors, "RSA加密演算法," Wikipedia, , http://zh.wikipedia.org/w/index.php?title=RSA%E5%8A%A0%E5%AF%86%E6%BC%94%E7%AE%97%E6%B3%95&oldid=5360056 (accessed 11月 7, 2007).
RSA產生密鑰的過程是這樣的:
1.隨意選擇兩個大的質數p和q,p不等於q,計算N=pq。
2.選擇一個大於1小於(p-1)(q-1)的自然數e,e必須與(p-1)(q-1)互質。
3.用以下這個公式計算d:d× e ≡ 1 (mod (p-1)(q-1))
4.將p和q的記錄銷毀。
其中e是公鑰,d是私鑰。d是秘密的,而N是公眾都知道的。
note:x ≡ y (mod z) 表示x與y同餘z,亦即x/z的餘數=y/z的餘數
ex:101 ≡ 11(mod 10)
RSA在今日仍為一種相當可靠的演算法,但它的可靠性是建立在「要找出大數的兩個質數因子是非常困難的」的狀態之上, 若能夠得到p和q的話,就能夠輕易的破解RSA加密。
為了提高可靠度,在生成金鑰時有一些應注意的地方,譬如p應該要大於2q,以及e不該等於2等。
RSA金鑰有多種長度,長度越長破解所需的時間也就越長。Peter Shor在1994年證明量子電腦可以在多項式時間內進行因式分解。若量子電腦實現,RSA的安全性將會面臨極大的挑戰。
RSA 實驗室提供八組數字供人挑戰破解,依照長度的不同 ,獎金由10000美元至200000美元不等,長度最短的兩組數字已被破解。
相關連結:
RSA Laboratories - The RSA Challenge Numbers
參考資料:
Wikipedia contributors, "RSA加密演算法," Wikipedia, , http://zh.wikipedia.org/w/index.php?title=RSA%E5%8A%A0%E5%AF%86%E6%BC%94%E7%AE%97%E6%B3%95&oldid=5360056 (accessed 11月 7, 2007).
留言