非對稱密鑰RSA加密算法及其密鑰產生
一、 RSA算法是第一個能同時用于加密和數字簽名的算法,也易于理解和操作。 RSA是被研究得最廣泛的公鑰算法,從提出到現在已近二十年,經歷了各種攻擊的考驗,逐漸為人們接受,普遍認為是目前最優秀的公鑰方案之一。RSA的安全性依賴于大數的因子分解,但并沒有從理論上證明破譯RSA的難度與大數分解難度等價。即RSA的重大缺陷是無法從理論上把握它的保密性能如何,而且密碼學界多數人士傾向于因子分解不是NPC問題。RSA的缺點主要有:A)產生密鑰很麻煩,受到素數產生技術的限制,因而難以做到一次一密。B)分組長度太大,為保證安全性,n 至少也要 600 bits以上,使運算代價很高,尤其是速度較慢,較對稱密碼算法慢幾個數量級;且隨著大數分解技術的發展,這個長度還在增加,不利于數據格式的標準化。目前,SET(Secure Electronic Transaction)協議中要求CA采用2048比特長的密鑰,其他實體使用1024比特的密鑰。
其中公鑰e和私鑰d的求解過程分兩步:
主站蜘蛛池模板:
务川|
游戏|
郯城县|
平塘县|
淮滨县|
文山县|
卓资县|
沾化县|
红安县|
安岳县|
荣昌县|
东辽县|
九台市|
怀远县|
许昌县|
鹤壁市|
永新县|
池州市|
宁都县|
兴和县|
苏尼特右旗|
灵石县|
芷江|
县级市|
嘉黎县|
抚州市|
陵川县|
大渡口区|
乐清市|
鸡泽县|
广丰县|
和静县|
遂昌县|
普定县|
河间市|
建德市|
黔西县|
绥阳县|
渭南市|
永靖县|
邯郸市|
(1):隨機選取兩個100位(指十進制)以上的素數p和q;
產生素數的方法:根據修改的歐拉定理,如p為素數,則對于X的所有整數值,應滿足:pow(X,(p一1))=1modP。
這是一個必要條件而非充分條件,不過,如果有5個以上的X值能滿足上述條件,則P可基本斷定為素數。圖1是產生素數的流程圖,該流程圖表示,如果X從1一5之間變化時,均能滿足上述條件,則P為素數,否則將P十1,重復計算,直到獲得素數為止。由此求得p和q,其乘積即為n。
評論