《RAS設(shè)計(jì)與實(shí)現(xiàn)》課程設(shè)計(jì)_第1頁
《RAS設(shè)計(jì)與實(shí)現(xiàn)》課程設(shè)計(jì)_第2頁
《RAS設(shè)計(jì)與實(shí)現(xiàn)》課程設(shè)計(jì)_第3頁
《RAS設(shè)計(jì)與實(shí)現(xiàn)》課程設(shè)計(jì)_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

《信息安全原理及應(yīng)用》課程設(shè)計(jì)報(bào)告RAS設(shè)計(jì)與實(shí)現(xiàn)姓名:班級:學(xué)號:指導(dǎo)教師:成績:完成時(shí)間:2010—12—22完成地點(diǎn):一、設(shè)計(jì)題目描述和要求通過課程設(shè)計(jì),加深對信息安全技術(shù)及其應(yīng)用的理論知識的理解,掌握一些非對稱密碼(RSA)的加密和解密算法,能夠單獨(dú)或合作完成一個(gè)加密和解密算法的過程并用軟件展示出來,完成課程設(shè)計(jì)報(bào)告。這次課程設(shè)計(jì)是以小組為單位進(jìn)行的,組長為馬廣耀,成員分別為朱忱忱、李佳佳、王露露、馬真、阮盈盈、彭麗梅、屈楊、李伯倫。我們組做的是非對稱密碼RSA的加密和解密算法。非對稱密碼(RSA)指的是用不同的密鑰來加密和解密,解決了對稱密碼系統(tǒng)中密鑰安全傳輸?shù)膯栴}。非對稱密碼具有更高的安全行,更加利于密鑰分發(fā)和管理。二、詳細(xì)設(shè)計(jì)1、RSA原理:密鑰產(chǎn)生:任意選擇不相等的兩個(gè)大質(zhì)數(shù)p和q,計(jì)算N=p*q。不大于N且與N互質(zhì)的整數(shù)個(gè)數(shù)為(p-1)*(q-1)(根據(jù)歐拉函數(shù))。選擇一個(gè)整數(shù)e小于而且與(p-1)(q-1)互質(zhì)。計(jì)算d:d=eA{-1}mod(p-1)(q-1)公鑰:{e,N}私鑰:{d,N}加密:消息M<N密文C=MA{e}modN解密:明文M=CAia6sy6gmodN2、C#代碼實(shí)例:usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceClassLibrary3publicclassClassi(staticvoidMain(string[]args)(Classicla=newClass1();doublep,q,e,d=1,m,n,t;Console.WriteLine(〃請輸入p的值");p=Convert.ToInt32(Console.ReadLine());if(cla.check(p))(Console.WriteLine(〃輸入的值符合要求");}else(do(Console.WriteLine("輸入的p值不符合要求請重新輸入");p=Convert.ToDouble(Console.ReadLine());}while(!cla.check(p));}Console.WriteLine(〃請輸入q的值");q=Convert.ToDouble(Console.ReadLine());if(cla.check(q))(Console.WriteLine(〃輸入的值符合要求");}else(do(Console.WriteLine("輸入的q值不符合要求請重新輸入");q=Convert.ToInt32(Console.ReadLine());}while(!cla.check(q));}n=p*q;t=(p-1)*(q-1);Console.WriteLine(〃請輸入t的值:〃+t);Console.WriteLine("請輸入e的值必須是素?cái)?shù)且小于t互為素?cái)?shù)");e=Convert.ToDouble(Console.ReadLine());while(t%e==0)(Console.WriteLine("輸入的e值不符合要求請重新輸入");e=Convert.ToInt32(Console.ReadLine());};intf=Convert.ToInt32(e);intw=Convert.ToInt32(t);intpd=0;while(pd!=1)(intkl=1;pd=0;if(t>e)(while(kl!=0)(kl=Convert.ToInt32(t%e);if(kl==0)(pd=Convert.ToInt32(e);}t=e;e=kl;}}else(while(kl!=0)(kl=Convert.ToInt32(t%e);if(kl==0)(pd=Convert.ToInt32(e);}t=e;e=kl;}}if(pd!=1)(Console.WriteLine("輸入的e值不符合要求請重新輸入");e=Convert.ToDouble(Console.ReadLine());f=Convert.ToInt32(e);t=Convert.ToInt32(w);}}e=f;t=w;while(e*d%t!=1)(d++;Console.WriteLine(〃輸如要加密的數(shù)字");m=Convert.ToDouble(Console.ReadLine());doublel=cla.gh(m,e,n);Console.WriteLine("加密后的數(shù)據(jù)為〃+Convert.ToString(l));Console.WriteLine(〃請輸入1開始解密");if(Convert.ToInt32(Console.ReadLine())==1)(doublej=cla.gh(l,d,n);Console.WriteLine(〃解密后的數(shù)據(jù)為"+Convert.ToString(j));}}〃檢查有沒有公因數(shù)publicboolcheck(doublel)(boolh=true;for(doublei=2;i<l;i++)(if(l%i==0)(h=false;break;}}returnh;}publicdoublegh(doublet,doublepj,doubleh)(intl=Convert.ToInt32(t);for(doublei=1.0;i<pj;i++)(l=Convert.ToInt32(l)*Convert.ToInt32(t);l=l%Convert.ToInt32(h);}returnl;}}}3)結(jié)果說明:輸入p=41,q=71,①(p*q)=2800,輸入e=71公鑰是(71,2911),私鑰是(631,2911)輸入明文M=321,使用公鑰加密密文為C=1457,使用私鑰解密得到明文。(如圖下圖所示)。

三、小結(jié)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論