資源描述:
《rsa公鑰加密算法的設計與實現本科畢業(yè)論文》由會員上傳分享,免費在線閱讀,更多相關內容在學術論文-天天文庫。
1、RSA公鑰加密算法的設計與實現IVRSA公鑰加密算法的設計與實現【論文摘要】RSA公鑰加密算法是目前最有影響力的非對稱加密算法,為ISO的推薦的加密標準。而非對稱加密因其安全性、開放性以及在數字簽名技術中的重要性,在我們的生活中被使用得越加頻繁。RSA的安全性建立在大整數的分解困難上,其基本原理是初等數論中的歐拉定理。在工業(yè)實現上,為了保證加密的安全性,通常要求密鑰對大于1Kbits,然而計算機的整型變量為32bits,這構成一個矛盾。此外,RSA密鑰的生成需要產生隨機的大素數,這也是本文需要解決的問題?!娟P鍵詞】RSA;非對稱加密;素數Thedesignandimplementationo
2、fRSApublickeyencryptionalgorithm【ABSTRACT】RSApublickeyencryptionalgorithmsarethemostinfluentialdissymmetricalencryptionalgorithms,therecommendedencryptionstandardtoISO.Anddissymmetricalencryptionisusedmoreandmorefrequentlyinourlivesbecauseofitssecurity,opennessandtheimportanceindigitalsignaturetech
3、nology.RSA'ssecurityisbuiltonthedifficultiesofbigintegerfactorization,whosebasicprincipleistheEuler'stheoreminelementarynumbertheory.Inordertoensurethesecurityofencryption,whenitcomestoindustry,weoftenrequirethekeypairisgreaterthan1Kbits.However,theintegerclassofcomputersoccupies32bits,whichconstit
4、utesacontradiction.Inaddition,RSA'skey-generationneedsarandomlargeprimenumber,whichisalsoaproblemtobesolved.【Keywords】RSA;dissymmetricalencryption;primenumberIV目錄RSA公鑰加密算法的設計與實現IThedesignandimplementationofRSApublickeyencryptionalgorithmI目錄II一.前言2(一)引論2(二)背景知識21.密碼技術的發(fā)展22.密碼學的主要任務23.密碼系統的安全性24.對稱與非
5、對稱密碼的區(qū)別25.公鑰:RSA密碼體制2二、實驗部分2(一)實驗目的2(二)實驗環(huán)境2(三)實驗步驟21.大整數類22.快速模冪運算23.快速產生隨機素數24.擴展的歐幾里德算法2IV(四)代碼設計21.大整數類22.Rsa類23.關鍵代碼2三、結果與討論2(一)程序展示21.程序主界面22.RSA密鑰產生23.加密解密展示2(二)RSA分析21.RSA的安全性22.RSA效率2(三)小結2注釋2參考文獻2致謝2IV中山大學本科生畢業(yè)論文一.前言(一)引論從公元前5世紀,古希臘斯巴達人用木棍和帶子進行換位密碼,到現在的網上購物、網上銀行,密碼學在我們生活中占著越來越重要的地位。如同我們寄信
6、會把信紙放入信封并在封口簽名,以免他人獲知信件內容以及在投遞過程中被更改丟失原意,使用密碼是為了保證信息的秘密性、不可更改性等。密碼學真正得到革新,是在計算機的廣泛傳播之后。1977年,DES(theDataEncryptionStandard,數據加密標準)被美國政府正式采納(1)。同年,RSA公鑰加密算法由RonRivest、AdiShamirh和LenAdleman在美國麻省理工學院開發(fā),是目前最有影響力的公鑰加密算法,現已被ISO推薦為公鑰數據加密標準。(2)2005年電子簽名法的施行(3),是中國信息化進程發(fā)展的必然需求和有力保障,說明了密碼學被公眾相信、使用,并被立法支持。電子簽
7、名技術的實現需要用到非對稱算法和報文摘要,所以,RSA作為公鑰加密的標準算法,值得我去學習、研究和實現。RSA算法的數學基礎是初等數論中的歐拉定理,其安全性建立在大整數因子分解的困難性上。為了有效地實現RSA密碼體制,必須解決如下三個問題:(4)1.大整數類的實現:計算機中,通常的編程語言的長整型是64bits的,而計算安全的RSA要求密鑰長度長達1024bits或以上,故要設計出一個無限大(大于10000b