加密與解密算法研究論文
時間:2022-10-11 11:37:00
導語:加密與解密算法研究論文一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。
摘要:計算機信息的保密問題顯得越來越重要,無論是個人信息通信還是電子商務發展,都迫切需要保證Internet網上信息傳輸的安全,需要保證信息安全。其中,信息安全的核心是密碼技術。
關鍵詞:信息安全密碼技術方案論證應用
1.對稱密碼體制
對稱密碼體制是一種傳統密碼體制,也稱為私鑰密碼體制。在對稱加密系統中,加密和解密采用相同的密鑰。因為加解密密鑰相同,需要通信的雙方必須選擇和保存他們共同的密鑰,各方必須信任對方不會將密鑰泄密出去,這樣就可以實現數據的機密性和完整性。對于具有n個用戶的網絡,需要n(n-1)/2個密鑰,在用戶群不是很大的情況下,對稱加密系統是有效的。但是對于大型網絡,當用戶群很大,分布很廣時,密鑰的分配和保存就成了問題。
2.非對稱密碼體制
非對稱密碼體制也叫公鑰加密技術,該技術就是針對私鑰密碼體制的缺陷被提出來的。在公鑰加密系統中,加密和解密是相對獨立的,加密和解密會使用兩把不同的密鑰,加密密鑰向公眾公開,誰都可以使用,解密密鑰只有解密人自己知道,非法使用者根據公開的加密密鑰無法推算出解密密鑰,故其可稱為公鑰密碼體制。如果一個人選擇并公布了他的公鑰,另外任何人都可以用這一公鑰來加密傳送給那個人的消息。私鑰是秘密保存的,只有私鑰的所有者才能利用私鑰對密文進行解密。
3.目的和意義
(1)解決大規模網絡應用中密鑰的分發和管理問題
采用分組密碼、序列密碼等對稱密碼體制時,加解密雙方所用的密鑰都是秘密的,而且需要定期更換,新的密鑰總是要通過某種秘密渠道分配給使用方,在傳遞的過程中,稍有不慎,就容易泄露。公鑰密碼加密密鑰通常是公開的,而解密密鑰是秘密的,由用戶自己保存,不需要往返交換和傳遞,大大減少了密鑰泄露的危險性。同時,在網絡通信中使用對稱密碼體制時,網絡內任何兩個用戶都需要使用互不相同的密鑰,只有這樣,才能保證不被第三方竊聽,因而N個用戶就要使用N(N–1)/2個密鑰。采用公鑰密碼體制,N個用戶只需要產生N對密鑰。由此可見,只有公鑰密碼才能方便、可靠地解決大規模網絡應用中密鑰的分發和管理問題。
(2)實現網絡中的數字簽名機制
對稱密鑰技術由于其自身的局限性,無法提供網絡中的數字簽名。這是因為數字簽名是網絡中表征人或機構的真實性的重要手段,數字簽名的數據需要有惟一性、私有性,而對稱密鑰技術中的密鑰至少需要在交互雙方之間共享,因此,不滿足惟一性、私有性,無法用做網絡中的數字簽名。相比之下,公鑰密碼技術由于存在一對公鑰和私鑰,私鑰可以表征惟一性和私有性,而且經私鑰加密的數據只能用與之對應的公鑰來驗證,其他人無法仿冒,所以,可以用做網絡中的數字簽名服務。
二、方案論證
1.介紹RSA公鑰密碼體制
RSA是Rivest,Shamir,Adleman提出基于數論的非對稱密鑰體制。RSA是建立在大整數分解的困難上的,是一種分組密碼體制。RSA建立方法如下:首先隨機選兩個大素數p,q,計算n=p•q;計算歐拉函數φ(n)=(p-1)(q-1);任選一個整數e為公開加密密鑰,由e求出秘密解密密鑰加密/解密:將明文分成長度小于位的明文塊m,加密過程是:c=E(m,e)=modn解密過程是:m=D(c,d)=modn
2.RSA公鑰密碼體制的安全性分析
RSA的安全性依賴于大整數的因式分解問題。實際上,人們推測RSA的安全性依賴于大整數的因式分解問題,但誰也沒有在數學上證明從c和e計算m需要對n進行因式分解。可以想象可能會有完全不同的方式去分析RSA。然而,如果這種方法能讓密碼解析員推導出d,則它也可以用作大整數因式分解的新方法。最難以令人置信的是,有些RSA變體已經被證明與因式分解同樣困難。甚至從RSA加密的密文中恢復出某些特定的位也與解密整個消息同樣困難。
3.設計RSA系統的注意事項
(1)經過對RSA安全性的分析,可以得出使用RSA時應該注意的事項:
隨機選擇足夠大素數;在使用RSA的通信網絡協議中,不應該使用公共模;不要讓攻擊者得到原始的解密結果;解密密鑰d相對模數n來說不應過小;應該或者加密密鑰大;或者被加密的信息m總是大而且m不能是一些已知值的乘積,后面一種情況可以在加密前對m填充隨機值實現。相關的消息不能用同樣的密鑰加密,加密前對消息進行隨機值填充破壞消息之間的代數聯系及相關性,但是要注意填充算法的選擇;應該使獲得對任意值的原始簽名不可能。被簽名的消息應該與模數差不多大,而且不是一些已知值的乘積;
(2)RSA系統的參數選擇
RSA系統是第一個將安全性植基于因子分解的系統。很明顯地,在公開密鑰(e,N)中,若N能被因子分解,則在模N中所有元素價的最小公倍數(即所謂陷門)T=φ(N)=(p-1)(q-1)即無從隱藏。使得解密密鑰d不再是秘密,進而整個RSA系統即不安全。雖然迄今人們尚無法“證明”,破解RSA系統等于因子分解。但一般“相信”RSA系統的安全性,等價于因子分解。即:若能分解因子N,即攻破RSA系統;若能攻破RSA系統,即分解因子N(相信,但未證明)。因此,在使用RSA系統時,對于公開密鑰N的選擇非常重要。必須使得公開N后,任何人無法從N得到T。此外,對于公開密鑰e與解密密鑰d,亦需有所限制。否則在使用上可能會導致RSA系統被攻破,或應用在密碼協議上不安全。4.RSA公鑰密碼體制的應用
(1)數字簽名
長期以來的日常生活中,對于重要的文件,為了防止對文件的否認,偽造,篡改等等的破壞,傳統的方法是在文件上手寫簽名。但是在計算機系統中無法使用手寫簽名,而代之對應的數字簽名機制。數字簽名應該能實現手寫簽名的作用,其本質特征就是僅能利用簽名者的私有信息產生簽名。因此,當它被驗證時,它也能被信任的第三方(如法官)在任一時刻證明只有私有信息的唯一掌握者才能產生此簽名。其特點:簽名是可信的,簽名是不能偽造的,簽名是不可重用的,簽名后的文件是不能更改的,簽名是不能否認的。
三、過程論述
1.RSA算法工作原理
首先,找出三個數,p,q,r,其中p,q是兩個相異的質數,r是與(p-1)(q-1)互質的數......p,q,r這三個數便是privatekey接著,找出m,使得rm==1mod(p-1)(q-1).....這個m一定存在,因為r與(p-1)(q-1)互質,用輾轉相除法就可以得到了.....再來,計算n=pq.......m,n這兩個數便是publickey編碼過程是,若資料為a,將其看成是一個大整數,假設a=n的話,就將a表成s進位(s<=n,通常取s=2^t),則每一位數均小于n,然后分段編碼......接下來,計算b==a^mmodn,(0<=b若p,q是相異質數,rm==1mod(p-1)(q-1),a是任意一個正整數,b==a^mmodpq,c==b^rmodpq,則c==amodpq證明的過程,會用到費馬小定理,敘述如下:
m是任一質數,n是任一整數,則n^m==nmodm<證明>因為rm==1mod(p-1)(q-1),所以rm=k(p-1)(q-1)+1,其中k是整數因為在modulo中是preserve乘法的(x==ymodzandu==vmodz=>xu==yvmodz),所以
c==b^r==(a^m)^r==a^(rm)==a^(k(p-1)(q-1)+1)modpq
(1)如果a不是p的倍數,也不是q的倍數時:
則a^(p-1)==1modp(費馬小定理)=>a^(k(p-1)(q-1))==1modpa^(q-1)==1modq(費馬小定理)=>a^(k(p-1)(q-1))==1modq所以p,q均能整除a^(k(p-1)(q-1即a^(k(p-1)(q-1))==1modpq即a^(k(p-1)(q-1))==1modpq=>c==a^(k(p-1)(q-1)+1)==amodpq
(2)如果a是p的倍數,但不是q的倍數時:
則a^(q-1)==1modq(費馬小定理)=>a^(k(p-1)(q-1))==1modq
=>c==a^(k(p-1)(q-1)+1)==amodq=>q|c-a
因p|a=>c==a^(k(p-1)(q-1)+1)==0modp=>p|c-a
所以,pq|c-a=>c==amodpq
(3)如果a是q的倍數,但不是p的倍數時,證明同上
(4)如果a同時是p和q的倍數時:
則pq|a=>c==a^(k(p-1)(q-1)+1)==0modpq=>pq|c-a
=>c==amodpq
這個定理說明a經過編碼為b再經過解碼為c時,a==cmodn(n=pq)但我們在做編碼解碼時,限制0<=a
2.RSA的安全性
RSA的安全性依賴于大數分解,但是否等同于大數分解一直未能得到理論上的證明,因為沒有證明破解RSA就一定需要作大數分解。假設存在一種無須分解大數的算法,那它肯定可以修改成為大數分解算法。目前,RSA的一些變種算法已被證明等價于大數分解。不管怎樣,分解n是最顯然的攻擊方法。現在,人們已能分解多個十進制位的大素數。因此,模數n必須選大一些,因具體適用情況而定。
3.RSA的速度
由于進行的都是大數計算,使得RSA最快的情況也比DES慢上一倍,無論是軟件還是硬件實現,速度一直是RSA的缺陷。一般來說只用于少量數據加密。
參考文獻
[1]陳運.信息加密原理[M].成都:電子科技大學出版社,1990.
[2]張周.我國企業開始重視網絡安全[J].計算機世界A9版.2000,(3).
[3]張文政,孟慶志.通信保密技術[J].計算機應用.1998,(6):25~28.
[4]王勇.RSA公開密鑰密碼體制的密鑰生成研究
- 上一篇:連隊指導員就職演講稿
- 下一篇:工會主席就職演講稿