現(xiàn)代密碼學(xué)加密系統(tǒng)設(shè)計(jì)課程設(shè)計(jì)_第1頁(yè)
現(xiàn)代密碼學(xué)加密系統(tǒng)設(shè)計(jì)課程設(shè)計(jì)_第2頁(yè)
現(xiàn)代密碼學(xué)加密系統(tǒng)設(shè)計(jì)課程設(shè)計(jì)_第3頁(yè)
現(xiàn)代密碼學(xué)加密系統(tǒng)設(shè)計(jì)課程設(shè)計(jì)_第4頁(yè)
現(xiàn)代密碼學(xué)加密系統(tǒng)設(shè)計(jì)課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、現(xiàn)代密碼學(xué)課程作業(yè)題 目現(xiàn)在密碼學(xué)文件加密姓 名李豐學(xué) 號(hào)1009030212指 導(dǎo) 老 師戴祖旭指導(dǎo)教師職稱教授年級(jí)專業(yè)班級(jí)10信息與計(jì)算科學(xué)(2)班所 在 學(xué) 院理學(xué)院2013年 6 月 25日目錄摘要3前言41基礎(chǔ)介紹51.1背景介紹51.2需求分析51.3意義51.4文獻(xiàn)綜述52實(shí)現(xiàn)步驟72.1基本實(shí)現(xiàn)技術(shù)72.2操作步驟73應(yīng)用基本功能測(cè)試193.1單表加密測(cè)試。193.2單表解密測(cè)試193.3多表加密測(cè)試203.4多表解密測(cè)試213.5文件生成模塊測(cè)試214總結(jié)22摘要本實(shí)驗(yàn)設(shè)計(jì)是在matla軟件的gui程序平臺(tái)下設(shè)計(jì)的一個(gè)關(guān)于文件加密解密的小的應(yīng)用,文章根據(jù)實(shí)驗(yàn)項(xiàng)目的完成過(guò)程比較

2、詳細(xì)的介紹了項(xiàng)目的設(shè)計(jì)思想,設(shè)計(jì)方法和完成步驟,并給出了遇到的問(wèn)題的解決方法,最后給出了應(yīng)用的測(cè)試情況。關(guān)鍵詞:gui程序設(shè)計(jì),單表加密(解密),多表加密(解密)前言本文較為詳細(xì)的介紹了gui多表單表加密應(yīng)用的開發(fā)過(guò)程,全文分為三章。第一章主要介紹gui多表單表加密應(yīng)用的相關(guān)知識(shí),以及它所要實(shí)現(xiàn)的基本功能。并做了簡(jiǎn)要的需求分析,確定了該程序應(yīng)實(shí)現(xiàn)了一些基本功能。另外還簡(jiǎn)要的說(shuō)明了查閱的相關(guān)資料。第二章主要介紹了開發(fā)的具體過(guò)程,以程序的具體開發(fā)步驟為主線介紹了相關(guān)的操作和具體函數(shù)的書寫。第三章主要是對(duì)程序的設(shè)計(jì)進(jìn)行總結(jié)。1基礎(chǔ)介紹1.1背景介紹在現(xiàn)代密碼學(xué)的學(xué)習(xí)過(guò)程中我們接觸了許多實(shí)際的問(wèn)題,主

3、要學(xué)習(xí)了在密碼學(xué)的發(fā)展簡(jiǎn)史,古典密碼學(xué),分組密碼,公鑰密碼,序列密碼,數(shù)字簽名以及密碼協(xié)議。本設(shè)計(jì)是針對(duì)學(xué)習(xí)過(guò)的現(xiàn)代密碼學(xué)中的古典密碼學(xué)的理論來(lái)實(shí)現(xiàn)該課程中的一些相關(guān)的加密應(yīng)用。在本文中我們對(duì)古典密碼學(xué)中的兩個(gè)基本的加密方法單表加密解密和多表加密解密進(jìn)行g(shù)ui平臺(tái)下的應(yīng)用編程,實(shí)現(xiàn)相關(guān)的功能,以達(dá)到基本應(yīng)用的目的。1.2需求分析在gui單表多表加解密的應(yīng)用中,給出如下的具體應(yīng)用要求:實(shí)現(xiàn)對(duì)簡(jiǎn)單字符的單表多表加密解密;實(shí)現(xiàn)對(duì)文件的單表多表加密解密;能夠在應(yīng)用中自主創(chuàng)建加密或者是解密文件;對(duì)文件的加密和解密過(guò)程實(shí)施監(jiān)測(cè),讓使用者能夠了解加密和解密的進(jìn)程;提供基本的應(yīng)用使用幫助手冊(cè),給初次使用應(yīng)用者

4、提供參考。1.3功能模塊圖加密系統(tǒng)圖1.系統(tǒng)功能模塊圖1.4意義簡(jiǎn)單應(yīng)用程序的設(shè)計(jì)與開發(fā),是信息與計(jì)算科學(xué)專業(yè)學(xué)生必須掌握的一項(xiàng)技術(shù)。了解基本應(yīng)用的各個(gè)模塊之間的關(guān)系和功能,通過(guò)編程實(shí)現(xiàn)具體的應(yīng)用是本專業(yè)學(xué)生的基本素質(zhì)。通過(guò)具體的小的項(xiàng)目的實(shí)現(xiàn),了解各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)方法,以及各功能模塊之間的相互聯(lián)接方法,對(duì)于今后從事軟件設(shè)計(jì)與開發(fā),有重要的指導(dǎo)作用。1.5文獻(xiàn)綜述文獻(xiàn)【1】現(xiàn)代密碼學(xué) 陳魯生 沈世鎰 北京:科學(xué)出版社文獻(xiàn)【2】matlab與數(shù)學(xué)實(shí)驗(yàn) 江世宏 武漢工程大學(xué)文獻(xiàn)【3】 網(wǎng)絡(luò)文獻(xiàn)此處不予列出2實(shí)現(xiàn)步驟2.1基本實(shí)現(xiàn)技術(shù)在matlab的gui編程中有兩種方式來(lái)進(jìn)行程序設(shè)計(jì):直接用

5、m文件來(lái)編寫;通過(guò)gui向?qū)?lái)進(jìn)行編寫。方式的好處在于可以以最大的靈活度來(lái)實(shí)現(xiàn)應(yīng)用的設(shè)計(jì)和編寫,但是缺點(diǎn)就在于必須對(duì)于各種控件的屬性有比較好的了解。方式的優(yōu)點(diǎn)在于編寫者能夠?qū)⒏嗟木杏诔绦蚩丶捻憫?yīng)函數(shù)的編寫,而不是將更多的精力放在實(shí)現(xiàn)的界面的美化和排版之上,缺點(diǎn)在于響應(yīng)函數(shù)的控制范圍沒有前一種方式來(lái)的靈活。在本應(yīng)用中主要是用gui的向?qū)Ь幊虂?lái)實(shí)現(xiàn)應(yīng)用的絕大部分功能,在應(yīng)用的幫助手冊(cè)的編輯界面實(shí)現(xiàn)方式上則主要是采用方式來(lái)實(shí)現(xiàn)。2.2操作步驟2.2.1 首先打開gui編程向?qū)У慕缑?,建立空白的gui界面對(duì)話框,gui向?qū)Ы缑嫒缦拢簣D2.空白gui界面建立圖2.2.2 建立空白的gui界面對(duì)

6、話框之后,在該空白界面上添加一系列的程序控件,程序控件的添加主要分為5個(gè)大的模塊:1加密模塊控件;2解密模塊控件;3自主生成文件模塊;4加密形式模塊;5明文密文顯示框。各項(xiàng)控件添加完畢之后的效果截圖如下:圖3.系統(tǒng)界面控件添加效果圖2.2.3對(duì)空白的對(duì)話框界面進(jìn)行基本菜單的添加。在gui的向?qū)Ь幊讨腥绻x擇空白的對(duì)話框來(lái)建立應(yīng)用程序的基本框架時(shí),在對(duì)話框中是沒有給出基本菜單欄的,這里對(duì)本應(yīng)用中添加的菜單欄進(jìn)行簡(jiǎn)要的說(shuō)明。在控件添加界面的工具欄中有標(biāo)注為menu edito的工具(截圖如下紅圈內(nèi))圖4.界面編輯工具欄(紅色標(biāo)記為gui菜單編輯按鈕)點(diǎn)擊此按鈕出現(xiàn)對(duì)基本菜單欄的編輯對(duì)話框(截圖如下

7、):圖5.菜單編輯對(duì)話框上圖左側(cè)的紅圈表示一級(jí)菜單,藍(lán)圈表示二級(jí)菜單,右側(cè)的五角星標(biāo)注為為各級(jí)菜單的命名區(qū),紅色圈表示其快捷鍵設(shè)置,藍(lán)圈內(nèi)的view鍵是用于設(shè)置菜單的響應(yīng)函數(shù)的按鈕,紅色斜線部分標(biāo)注的為菜單欄的其他屬性設(shè)置界面的開啟按鈕。2.2.4 代碼編寫,代碼的編寫主要分為單表加密代碼,多表加密代碼,單表解密代碼和多表解密代碼,以上是解密加密的代碼概述。另外還包括加解密文件生成代碼,以及一些其他的輔助按鍵的響應(yīng)代碼。這里就單表加密代碼和解密代碼做簡(jiǎn)單的說(shuō)明:?jiǎn)伪淼闹饕龇◣煂?duì)英文的二十六個(gè)字母和一些常用的標(biāo)點(diǎn)符號(hào)進(jìn)行編碼,然后根據(jù)編碼通過(guò)模運(yùn)算來(lái)對(duì)明文實(shí)現(xiàn)移位,這里假設(shè)m為明文的編碼,n為

8、密文的編碼,密鑰的編碼為k,加密的模運(yùn)算公式就為,其中s表示所有明文空間的長(zhǎng)度,這樣就順利的實(shí)現(xiàn)加密的過(guò)程,其基本代碼如下:k=get(handles.radiobutton2,'value')if(k=1) filename,pathname=uigetfile( . '*.*','all files(*.*)',. ''); if isequal(filename,pathname,0,0) return else pic = fullfile(pathname,filename); fid=fopen(pic); a,cou

9、nt=fscanf(fid,'%c',inf); fclose(fid); end s=get(handles.edit2,'string'); if isempty(s) msgbox('the edit is empty,please enter again!','error'); return; end str='d:matlab7workmodern cryptographyencryptionwordtable1.xls' code,txt,raw=xlsread(str); s=double(s); b

10、=double(a); m,n=size(b); j=0; c=ones(1,n); hwait=waitbar(0,'please wait(1)>>>>>>>>'); for i=1:n if(b(i)>=13 & b(i)<=126) j=j+1; c(j)=b(i); end waitbar1(i,n,hwait); end close(hwait); m,n=size(code); hwait=waitbar(0,'please wait(2)>>>>>>&

11、gt;>'); for h=1:n if(s=code(2,h) s=code(1,h); end waitbar1(h,n,hwait); end close(hwait); for h=1:j for k=1:n if(c(h)=code(2,k) c(h)=code(1,k); end end end % % hwait=waitbar(0,'please wait(3)>>>>>>>>'); for h=1:j c(h)=mod(c(h)+s,29); waitbar1(h,j,hwait); end clo

12、se(hwait);% close(hwait); % hwait=waitbar(0,'please wait(4)>>>>>>>>'); for h=1:j for k=1:n if(c(h)=code(1,k) c(h)=code(2,k); end end waitbar1(h,j,hwait); end close(hwait)% close(hwait); c=char(c); set(handles.edit3,'string',c); str='d:matlab7workmodern cry

13、ptographyencryptionsinglesecretword.txt' fid=fopen(str,'wt'); fprintf(fid,'%s',c) fclose(fid)else a=get(handles.edit1,'string'); if isempty(a) msgbox('the edit is empty,please enter again!','error'); return; end s=get(handles.edit2,'string'); if is

14、empty(s) msgbox('the edit is empty,please enter again!','error'); return; end str='d:matlab7workmodern cryptographyencryptionwordtable1.xls' code,txt,raw=xlsread(str); s=double(s); b=double(a); m,n=size(b); j=0; c=ones(1,n); hwait=waitbar(0,'please wait(1)>>>>

15、>>>>'); for i=1:n if(b(i)>=13 & b(i)<=126) j=j+1; c(j)=b(i); end waitbar1(i,n,hwait); end close(hwait); m,n=size(code); hwait=waitbar(0,'please wait(2)>>>>>>>>'); for h=1:n if(s=code(2,h) s=code(1,h); end waitbar1(h,n,hwait); end close(hwait)

16、; for h=1:j for k=1:n if(c(h)=code(2,k) c(h)=code(1,k); end end end % % hwait=waitbar(0,'please wait(3)>>>>>>>>'); for h=1:j c(h)=mod(c(h)+s,29); waitbar1(h,j,hwait); end close(hwait)% close(hwait); % hwait=waitbar(0,'please wait(4)>>>>>>>>

17、'); for h=1:j for k=1:n if(c(h)=code(1,k) c(h)=code(2,k); end end waitbar1(h,j,hwait); end close(hwait)% close(hwait); c=char(c); set(handles.edit3,'string',c); str='d:matlab7workmodern cryptographyencryptionsinglesecretword.txt' fid=fopen(str,'wt'); fprintf(fid,'%s&#

18、39;,c) fclose(fid)end解密過(guò)程就是上述過(guò)程的逆過(guò)程,這里就不在贅述,單表解密基本代碼如下:k=get(handles.radiobutton2,'value');%提取加密形式指標(biāo)值if(k=1) filename,pathname=uigetfile( . '*.*','all files(*.*)',. ''); if isequal(filename,pathname,0,0) return else pic = fullfile(pathname,filename); fid=fopen(pic); a

19、,count=fscanf(fid,'%c',inf); fclose(fid); end%文件形式解密時(shí)打開解密文件 code,txt,raw=xlsread('d:matlab7workmodern cryptographyencryptionwordtable1.xls');%讀取解密對(duì)照表 set(handles.edit3,'string',a);%將密文顯示在密文編輯框中 s=get(handles.edit6,'string');%提取解密密鑰 if isempty(s)%解密密鑰測(cè)空 msgbox('the

20、 edit is empty,please enter again!','error'); return; end s=double(s); n=length(code); hwait=waitbar(0,'please wait(1)>>>>>>>>'); for h=1:n if(s=code(2,h) s=code(1,h); end waitbar1(h,n,hwait); end close(hwait); b=double(a); m,n=size(b); hwait=waitbar(0,

21、9;please wait(2)>>>>>>>'); for h=1:n for k=1:29 if(b(h)=code(2,k) b(h)=code(1,k); end end waitbar1(h,n,hwait); end close(hwait); % b=mod(b-s,29); hwait=waitbar(0,'please wait(3)>>>>>>>') for h=1:n for k=1:29 if(b(h)=code(1,k) b(h)=code(2,k); end

22、end waitbar1(h,n,hwait); end close(hwait); b=char(b); fid=fopen('d:matlab7workmodern cryptographyencryptionsingleproclaimedword.txt','wt'); fprintf(fid,'%s',b) fclose(fid) set(handles.edit1,'string',b);else code,txt,raw=xlsread('d:matlab7workmodern cryptographyenc

23、ryptionwordtable1.xls'); a=get(handles.edit3,'string'); s=get(handles.edit6,'string'); if isempty(s) msgbox('the edit is empty,please enter again!','error'); return; end s=double(s); n=length(code); hwait=waitbar(0,'please wait(1)>>>>>>>&g

24、t;'); for h=1:n if(s=code(2,h) s=code(1,h); end waitbar1(h,n,hwait); end close(hwait); b=double(a); m,n=size(b); hwait=waitbar(0,'please wait(2)>>>>>>>'); for h=1:n for k=1:29 if(b(h)=code(2,k) b(h)=code(1,k); end end waitbar1(h,n,hwait); end close(hwait); % b=mod(b-

25、s,29); hwait=waitbar(0,'please wait(3)>>>>>>>') for h=1:n for k=1:29 if(b(h)=code(1,k) b(h)=code(2,k); end end waitbar1(h,n,hwait); end close(hwait); b=char(b); fid=fopen('d:matlab7workmodern cryptographyencryptionsingleproclaimedword.txt','wt'); fprintf(

26、fid,'%s',b) fclose(fid) set(handles.edit1,'string',b);end3應(yīng)用基本功能測(cè)試3.1單表加密測(cè)試。加密選擇方式:文本文件加密方式,加密文本內(nèi)容:please turn down the light and go to sleep.密匙為s。加密過(guò)程截圖如下:圖6.單表文本加密測(cè)試圖加密后的密文為eawshwpijgcpvdlcpizwpa yzipscvpydpidphawwer,在加密完成的同時(shí)秘聞內(nèi)容就已經(jīng)以密文文件的形式保存在了相應(yīng)的文件路徑之下。3.2單表解密測(cè)試解密選擇方式:復(fù)雜文件解密。解密文件文本內(nèi)容eawshwpijgcpvdlcpizwpa yzipscvpy

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論