《數(shù)據(jù)安全》課程設(shè)計(jì)指導(dǎo)書_第1頁
《數(shù)據(jù)安全》課程設(shè)計(jì)指導(dǎo)書_第2頁
《數(shù)據(jù)安全》課程設(shè)計(jì)指導(dǎo)書_第3頁
《數(shù)據(jù)安全》課程設(shè)計(jì)指導(dǎo)書_第4頁
《數(shù)據(jù)安全》課程設(shè)計(jì)指導(dǎo)書_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

本課程是信息安全專業(yè)所開設(shè)的一門基礎(chǔ)性的實(shí)踐課程,主要是數(shù)據(jù)安全原理和技術(shù)在實(shí)踐開發(fā)中的具體應(yīng)用。本課程的任務(wù)是:通過本課程的學(xué)習(xí)實(shí)踐,使用學(xué)生進(jìn)一步理解數(shù)據(jù)安設(shè)計(jì)和測試方法,面向?qū)ο蟮姆治龊驮O(shè)計(jì)方法的具體應(yīng)用,熟悉一些數(shù)據(jù)安全軟件開發(fā)流程。任選下列一項(xiàng)目(或者集成其中的數(shù)項(xiàng))進(jìn)行,查閱相關(guān)文獻(xiàn)、了解相關(guān)的系統(tǒng),要求完成系統(tǒng)需求規(guī)約文檔、系統(tǒng)分析模型文檔、系統(tǒng)設(shè)計(jì)模型文檔、系統(tǒng)測試設(shè)計(jì)文檔、系統(tǒng)編碼5.數(shù)據(jù)備份與恢復(fù)軟件(學(xué)生可自選課題,但需由教師認(rèn)可)三.任務(wù)完成形式最終必須向指導(dǎo)老師提交完整的電子版程序源代碼、可執(zhí)行程序、數(shù)據(jù)文件以及使用說明文件等。源代碼文件要特別注意編程規(guī)范、代碼風(fēng)格,關(guān)鍵代碼需有合理的注釋,不含任何無用代碼;數(shù)據(jù)文件內(nèi)要求有一定數(shù)量的“真實(shí)”數(shù)據(jù)(如對(duì)于記錄2.課程設(shè)計(jì)報(bào)告(詳細(xì)要求請(qǐng)參考附錄二)課程設(shè)計(jì)報(bào)告總體上主要包括以下幾個(gè)部分:4)軟件安裝、使用或者配置說明),注釋,關(guān)鍵代碼必須有合理注釋以及相應(yīng)的說明。3.課程設(shè)計(jì)中必須按指導(dǎo)書要求,綜合應(yīng)用所學(xué)的數(shù)據(jù)安全知識(shí)解決實(shí)際問題,有必要的理論分析,設(shè)計(jì)要有合理的依據(jù)。獨(dú)立完成課程設(shè)計(jì),不得抄襲他人。即使是同類的題目,可以分在一組互相交流,但是也不能抄襲,不能雷同,必須有差異,學(xué)生最終提交的電子文檔(包括源代碼)會(huì)經(jīng)過各種方式的比較的。6.設(shè)計(jì)時(shí)適當(dāng)考慮程序的可維護(hù)性與可擴(kuò)充性,另外集成一些常用的功能,軟件有適當(dāng)7.積極交流與討論(通過同學(xué)、網(wǎng)絡(luò)等途徑)、善于查閱資料、分析與借鑒他人編寫的8.軟件設(shè)計(jì)好以后,鼓勵(lì)遵循開放源代碼的思想,將代碼和系統(tǒng)在網(wǎng)絡(luò)上公開,接受專10.及時(shí)與老師交流,以了解自己的設(shè)計(jì)是否符合要求,遇到的各種問題及時(shí)聯(lián)系,11.學(xué)會(huì)搜索網(wǎng)上已有的類似軟件,進(jìn)行分析、比較、集成和創(chuàng)新。12.學(xué)生應(yīng)當(dāng)既把設(shè)計(jì)當(dāng)作一個(gè)任務(wù),又要注意更要掌握方法,鍛煉多方面的能力,特別是在有限的時(shí)間和有限的條件下摸索的能力。五.工作階段與考核方法只有程序驗(yàn)收通過后,才能按以下方法核定本次課程設(shè)計(jì)的總成績,因未能獨(dú)立完成設(shè)計(jì)(尤其是抄襲)或概念不清的同學(xué),總成績將核定為不及格??偝煽冇梢韵聨讉€(gè)2.工作量(代碼量、功能多少、難度、經(jīng)歷的曲折)5.代碼書寫規(guī)范性(包括注釋的質(zhì)量、詳盡程度和明晰性)6.程序界面、新技術(shù)引用、易用性7.課程設(shè)計(jì)報(bào)告(敘述、書寫規(guī)范、字?jǐn)?shù))8.動(dòng)手能力、分析問題解決問題能力9.答辯的情況(答辯時(shí)會(huì)問關(guān)于系統(tǒng)實(shí)現(xiàn)和本作品相關(guān)的理論知識(shí)的問題)10.在資源共享和互助協(xié)作方面的貢獻(xiàn)及其體現(xiàn)的能力六.任務(wù)具體要求任務(wù):設(shè)計(jì)一個(gè)文件加密系統(tǒng),可以對(duì)不同的文件進(jìn)行加密解密。(5)對(duì)密鑰可以進(jìn)行備份,比如用口令字進(jìn)行加密備份。防止非授權(quán)的的訪問和應(yīng)用,或保存證據(jù)。4.可以對(duì)受保護(hù)的內(nèi)容進(jìn)行加密,在通過認(rèn)證,輸入密碼后才能解密。5.可增加其他的比如做閱讀、訪問次數(shù)限制的功能。6.可以采用數(shù)字水印和信息隱藏技術(shù)保護(hù)。是簽名得到的最后的簽名值,以防止重放攻擊;說明:功能各方面越完善越好任務(wù):制作一個(gè)可以備份磁盤數(shù)據(jù)、恢復(fù)丟失數(shù)據(jù)的軟件。隨著軟件產(chǎn)品的功能增加和版本的提高,代碼越來越復(fù)雜,源文件也越來越多,對(duì)于軟件開發(fā)人員來說,除了保證程序運(yùn)行的正確性和提高代碼的運(yùn)行效率之外,規(guī)范風(fēng)格的編碼會(huì)對(duì)軟件的升級(jí)、修改、維護(hù)帶來極大的方便性,也保證程序員不會(huì)陷入“代碼泥潭”中無法自拔。開發(fā)一個(gè)成熟的軟件產(chǎn)品,除了有詳細(xì)豐富的開發(fā)文檔之外,必須在編寫代碼的時(shí)候就有條不以下的編碼規(guī)范包含了程序排版、注釋、命名、可讀性、變量、程序效率、質(zhì)量保證、代碼編譯、代碼測試和版本控制等注意事項(xiàng)。2.相對(duì)獨(dú)立的程序塊與塊之間加空行3.較長的語句、表達(dá)式等要分成多行書寫。4.劃分出的新行要進(jìn)行適應(yīng)的縮進(jìn),使排版整齊,語句可讀。5.長表達(dá)式要在低優(yōu)先級(jí)操作符處劃分新行,操作符放在新行之首。6.循環(huán)、判斷等語句中若有較長的表達(dá)式或語句,則要進(jìn)行適應(yīng)的劃分。7.若函數(shù)或過程中的參數(shù)較長,則要進(jìn)行適當(dāng)?shù)膭澐帧?.不允許把多個(gè)短語句寫在一行中,即一行只寫一條語句。9.函數(shù)或過程的開始、結(jié)構(gòu)的定義及循環(huán)、判斷等語句中的代碼都要采用縮進(jìn)風(fēng)格。10.C/C++語言是用大括號(hào)‘{’和‘}’界定一段程序塊的,編寫程序塊時(shí)‘{’和‘}’二、注釋2.邊寫代碼邊注釋,修改代碼同時(shí)修改相應(yīng)的注釋,以保證注釋與代碼的一致性。3.在必要的地方注釋,注釋量要適中。注釋的內(nèi)容要清楚、明了,含義準(zhǔn)確,防止注釋二義性。保持注釋與其描述的代碼相鄰,即注釋的就近原則。4.對(duì)代碼的注釋應(yīng)放在其上方相鄰位置,不可放在下面。5.對(duì)數(shù)據(jù)結(jié)構(gòu)的注釋應(yīng)放在其上方相鄰位置,不可放在下面;對(duì)結(jié)構(gòu)中的每個(gè)域的注釋應(yīng)放在此域的右方;同一結(jié)構(gòu)中不同域的注釋要對(duì)齊。6.變量、常量的注釋應(yīng)放在其上方相鄰位置或右方。7.全局變量要有較詳細(xì)的注釋,包括對(duì)其功能、取值范圍、哪些函數(shù)或過程存取它以及存8.在每個(gè)源文件的頭部要有必要的注釋信息,包括:文件名;版本號(hào);作者;生成日期;主要函數(shù)或過程清單及本文件歷史修改記錄等。9.在每個(gè)函數(shù)或過程的前面要有必要的注釋信息,包括:函數(shù)或過程名稱;功能描述;輸入、輸出及返回值說明;調(diào)用關(guān)系及被調(diào)用關(guān)系說明等。三、命名2.較長的單詞可取單詞的頭幾發(fā)符的優(yōu)先級(jí),并用括號(hào)明確表達(dá)式的操作順序,避免使用3.使用匈牙利表示法1.避免使用不易理解的數(shù)字,用有意義的標(biāo)識(shí)來替代。2.不要使用難懂的技巧性很高的語句。3.源程序中關(guān)系較為緊密的代碼應(yīng)盡可能相鄰。五、變量2.構(gòu)造僅有一個(gè)模塊或函數(shù)可以修改、創(chuàng)建,而其余有關(guān)模塊或函數(shù)只訪問的公共變量,防止多個(gè)不同模塊或函數(shù)都可以修改、創(chuàng)建同一公共變量的現(xiàn)象。3.仔細(xì)定義并明確公共變量的含義、作用、取值范圍及公共變量間的關(guān)系。4.明確公共變量與操作此公共變量的函數(shù)或過程的關(guān)系,如訪問、修改及創(chuàng)建等。5.當(dāng)向公共變量傳遞數(shù)據(jù)時(shí),要十分小心,防止賦與不合理的值或越界等現(xiàn)象發(fā)生。7.仔細(xì)設(shè)計(jì)結(jié)構(gòu)中元素的布局與排列順序,使結(jié)構(gòu)容易理解、節(jié)省占用空間,并減少引起8.結(jié)構(gòu)的設(shè)計(jì)要盡量考慮向前兼容和以后的版本升級(jí),并為某些未來可能的應(yīng)用保留余地9.留心具體語言及編譯器處理不同數(shù)據(jù)類型的原則及有關(guān)細(xì)節(jié)。10.嚴(yán)禁使用未經(jīng)初始化的變量。聲明變量的同時(shí)對(duì)變量進(jìn)行初始化。六、函數(shù)、過程2.一個(gè)函數(shù)最好僅完成一件功能。4.函數(shù)的功能應(yīng)該是可以預(yù)測的,也就是只要輸入數(shù)據(jù)相同就應(yīng)產(chǎn)生同樣的輸出。5.盡量不要編寫依賴于其他函數(shù)內(nèi)部實(shí)現(xiàn)的函數(shù)。6.避免設(shè)計(jì)多參數(shù)函數(shù),不使用的參數(shù)從接口中去掉。7.用注釋詳細(xì)說明每個(gè)參數(shù)的作用、取值范圍及參數(shù)間的關(guān)系。9.檢查函數(shù)所有非參數(shù)輸入的有效性,如數(shù)據(jù)文件、公共變量等。11.避免使用無意義或含義不清的動(dòng)詞為函數(shù)命名12.函數(shù)的返回值要清楚、明了,讓使用者不容易忽視錯(cuò)誤情況。13.明確函數(shù)功能,精確(而不是近似)地實(shí)現(xiàn)函數(shù)設(shè)15.編寫可重入函數(shù)時(shí),若使用全局變量,則應(yīng)通過關(guān)中斷、信號(hào)量(即P、V操作)等手七、可測性1.在編寫代碼之前,應(yīng)預(yù)先設(shè)計(jì)好程序調(diào)試與測試的方法和手段,并設(shè)計(jì)好各種調(diào)測開關(guān)及相應(yīng)測試代碼如打印函數(shù)等。2.在進(jìn)行集成測試/系統(tǒng)聯(lián)調(diào)之前,要構(gòu)造好測試環(huán)境、測試項(xiàng)目及測試用例,同時(shí)仔細(xì)分析并優(yōu)化測試用例,以提高測試效率。八、程序效率2.在保證軟件系統(tǒng)的正確性、穩(wěn)定性、可讀性及可測性的前提下,提高代碼效率。3.不能一味地追求代碼效率,而對(duì)軟件的正確性、穩(wěn)定性、可讀性及可測性造成影響。4.編程時(shí),要隨時(shí)留心代碼效率;優(yōu)化代碼時(shí),要考慮周全。5.要仔細(xì)地構(gòu)造或直接用匯編編寫調(diào)用頻繁或性能要求極高的函數(shù)。6.通過對(duì)系統(tǒng)數(shù)據(jù)結(jié)構(gòu)劃分與組織的改進(jìn),以及對(duì)程序算法的優(yōu)化來提高空間效率。7.在多重循環(huán)中,應(yīng)將最忙的循環(huán)放在最內(nèi)層。9.避免循環(huán)體內(nèi)含判斷語句,應(yīng)將循環(huán)語句置于判斷語句的代碼塊之中。10.盡量用乘法或其它方法代替除法,特別是浮點(diǎn)運(yùn)算中的除法。九、質(zhì)量保證(1)正確性,指程序要實(shí)現(xiàn)設(shè)計(jì)要求的功能。(2)穩(wěn)定性、安全性,指程序穩(wěn)定、可靠、安全。(3)可測試性,指程序要具有良好的可測試性。(4)規(guī)范/可讀性,指程序書寫風(fēng)格、命名規(guī)則等要5.過程/函數(shù)中申請(qǐng)的(為打開文件而使用的)文件句柄,在過程/函數(shù)退出前要關(guān)閉。7.時(shí)刻注意表達(dá)式是否會(huì)上溢、下溢。8.認(rèn)真處理程序所能遇到的各種出錯(cuò)情況。9.系統(tǒng)運(yùn)行之初,要初始化有關(guān)變量及運(yùn)行環(huán)境,防止未經(jīng)初始化的變量被引用。10.系統(tǒng)運(yùn)行之初,要對(duì)加載到系統(tǒng)中的數(shù)據(jù)進(jìn)行一致性檢查。14.要時(shí)刻注意易混淆的操作符。當(dāng)編完程序后,應(yīng)從頭至尾檢查一遍這些操作符。15.不使用與硬件或操作系統(tǒng)關(guān)系很大的語句,而使用建議的標(biāo)準(zhǔn)語句。16.建議:使用第三方提供的軟件開發(fā)工具包或控件時(shí),要注意以下幾點(diǎn):(1)充分了解應(yīng)用接口、使用環(huán)境及使用時(shí)注意事項(xiàng)。(3)除非必要,不要使用不熟悉的第三方工具包與控件。十、代碼編譯1.編寫代碼時(shí)要注意隨時(shí)保存,并定期備份,防止由于斷電、硬盤損壞等原因造成代碼丟2.同一項(xiàng)目組內(nèi),最好使用相同的編輯器,并使用相同的設(shè)置選項(xiàng)。3.合理地設(shè)計(jì)軟件系統(tǒng)目錄,方便開發(fā)人員使用。4.打開編譯器的所有告警開關(guān)對(duì)程序進(jìn)行編譯。5.在同一項(xiàng)目組或產(chǎn)品組中,要統(tǒng)一編譯開關(guān)選項(xiàng)。十一、代碼測試、維護(hù)2.單元測試開始要跟蹤每一條語句,并觀察數(shù)據(jù)流及變量的變化。3.清理、整理或優(yōu)化后的代碼要經(jīng)過審查及測試。4.代碼版本升級(jí)要經(jīng)過嚴(yán)格測試?!墩n程設(shè)計(jì)說明書》其它格式規(guī)定一、紙張和頁面要求二、裝訂頁碼順序三、章節(jié)序號(hào)五、目錄六、正文正文的頁數(shù)不少于10頁(不包括封面、目錄、參考文獻(xiàn)等),正文漢字?jǐn)?shù)不少于8000。正文的章節(jié)目序號(hào)按照正式出版物的慣例,章節(jié)目序號(hào)的層次順序依次規(guī)定如下:1、1.1、1.1.1、(1)①(1)前言。概述所作題目的意義、本人所做的工作、及系統(tǒng)的主要功能;(2)系統(tǒng)分析。分析和描述所設(shè)計(jì)系統(tǒng)的基本要求與內(nèi)容;(3)功能設(shè)計(jì)。描述及繪制出系統(tǒng)的功能結(jié)構(gòu)框圖;(6)結(jié)論。完成情況、有待改進(jìn)之處、特殊說明、心得體會(huì)等。正文的主要內(nèi)容必須是對(duì)自己所作的設(shè)計(jì)工作的描述,不得大量抄錄對(duì)特定軟件技術(shù)的說正文字體用小四,宋體。各級(jí)標(biāo)題參考附錄的畢業(yè)設(shè)計(jì)的范文。七、參考文獻(xiàn)幾種主要參考文獻(xiàn)著錄表的格式為:⑵期刊:[序號(hào)]著者.篇名[J].刊名,年,卷號(hào)(期號(hào)起~止頁碼.⑶論文集:[序號(hào)]著者.篇名[A]編者.論文集名[C].出版地:出版者,出版者.出版年:起~止頁碼.⑷學(xué)位論文:[序號(hào)]著者.題名[D].保存地:保存單位,授予年.[4]王健.建筑物防火系統(tǒng)可靠性分析[D].天津:天津大學(xué),1997.[5]姚光起.一種癢化鋯材料的制備方法[P].中國專利1980-07-03.(以上,序號(hào)用中擴(kuò)號(hào),與文字之間空兩格。如果需要兩行的,第二行文字要位于序號(hào)的附錄三信息安全編程指南對(duì)于這里的大部分題目都已足夠。注意讀代碼是非常重要的。2.學(xué)會(huì)尋找相關(guān)的類庫、函數(shù)、接口、第三方代碼以及openSSL之類的開源產(chǎn)品等,比如過程,包括指導(dǎo)書提出的許多要求均已經(jīng)集成。推薦的相關(guān)的書籍有:NET安全編程3.瞄準(zhǔn)有商業(yè)應(yīng)用或者應(yīng)用潛力的產(chǎn)品,這可能會(huì)完全改變一個(gè)人的前途,可以多關(guān)注一下baidu,騰訊,支付寶等IT業(yè)巨頭的老板的發(fā)家史,注意只有做第一,才能搶占先機(jī)。信息安全蘊(yùn)含著巨大的商機(jī)尚未得到開發(fā),正等待著第一個(gè)發(fā)現(xiàn)這些商機(jī)的人,這需要有創(chuàng)新4.學(xué)會(huì)調(diào)試,學(xué)會(huì)通過各種方法驗(yàn)證比較發(fā)現(xiàn)程序中的錯(cuò)誤。調(diào)試要認(rèn)真,嚴(yán)謹(jǐn)?shù)厝フ业藉e(cuò)5.編程過程中出現(xiàn)各種各樣的錯(cuò)誤種類繁多,有些是已有理論教學(xué)無法講到的,甚至完全不可預(yù)料,前所未見,除了學(xué)會(huì)自己去發(fā)現(xiàn)外,多請(qǐng)教老師和學(xué)生,也要學(xué)會(huì)在網(wǎng)絡(luò)上,比如csdn等地方尋求幫助,也可以在搜索引擎上尋找是否有類似的問題發(fā)生。6.多登陸論壇參與討論,多加入各種群交流學(xué)習(xí)。而且非常通俗,詳盡,有些網(wǎng)友對(duì)操作或問題的描述非常細(xì)致清楚,這是書籍教材無法比8.編程的學(xué)習(xí)和實(shí)踐應(yīng)該緊密結(jié)合,不可能等完全學(xué)會(huì)了再去編程,首先掌握基本的方法和理論,然后一邊學(xué)習(xí)一邊編程,現(xiàn)學(xué)現(xiàn)用,要用的時(shí)候去查手冊(cè)和資料,無需死記硬背。9.理論課的學(xué)習(xí)與實(shí)踐各自有其側(cè)重點(diǎn),有時(shí)候是脫節(jié)的,比如密鑰的處理就需要很多額外的知識(shí),這些知識(shí)需要自己臨時(shí)去掌握,臨時(shí)想辦法,有時(shí)候辦法是很多的。而且在國內(nèi)也是屬于較新的專業(yè),許多資源需要積累,同學(xué)們有好的資源和想法也可以交流共享。希望大家注重創(chuàng)新和實(shí)用性,要有創(chuàng)業(yè)精神,只有設(shè)計(jì)開發(fā)有應(yīng)用潛力的作品,才能推廣信息安全技術(shù)的應(yīng)用。信息安全技術(shù)只有得到了廣泛的應(yīng)用,學(xué)生的就業(yè)前景才更加廣闊。附錄四信息安全和編程網(wǎng)站首推搜索引擎,要學(xué)會(huì)用搜索引擎。校園網(wǎng)圖書館的電子資源:搜索信息安全相關(guān)的設(shè)計(jì)與實(shí)現(xiàn)、開發(fā),編程實(shí)現(xiàn)等論文??囱┱搲戒浳逯匾膮⒖嘉墨I(xiàn)供電子文檔-英文版)機(jī)安全與維護(hù)篇3.唐正軍著。黑客入侵防護(hù)系統(tǒng)源代碼分析,機(jī)械工業(yè)出版社(學(xué)校圖書館有)5.(德)威爾森巴赫著,密碼編碼學(xué)-加密方法的c與c++實(shí)現(xiàn)(第7.程序員密碼學(xué)(提供電子文檔-英文版)9.劉文濤,網(wǎng)絡(luò)安全編程技術(shù)與實(shí)例(信息科程和網(wǎng)絡(luò)編程推薦,網(wǎng)上可以下載電子文檔。17.注意更好的參考文獻(xiàn)在網(wǎng)絡(luò),還有許多網(wǎng)絡(luò)空間,納米盤、趣盤、iask等都提供了豐富的資源下載,比圖書館的書更容易獲取,電子文檔處理起來更方便。附錄六提交材料的要求1.采用統(tǒng)一設(shè)計(jì)報(bào)告用紙與封面,打印前先檢查好,驗(yàn)收的時(shí)候需要檢查文檔。3.寫作內(nèi)容強(qiáng)調(diào)自己的創(chuàng)新與特色;如果得到了其他的同學(xué)的幫助,增加謝辭部分,謝辭位于參考文獻(xiàn)之前,寫明得到哪個(gè)同學(xué)幫助以及具體的幫助內(nèi)容。4.要有充分的代碼注釋,否則視為抄襲,文檔應(yīng)當(dāng)盡量詳盡,包括理論依據(jù)、理由等等。5.必須有目錄頁和參考文獻(xiàn)說明6.應(yīng)當(dāng)提交源代碼和報(bào)告,源代碼為電子版,報(bào)告同時(shí)提供電子版和打印稿。為了便于各種雷同比較、字?jǐn)?shù)統(tǒng)計(jì)、打分、錯(cuò)誤修訂等工作,所有提交的資料均必須同時(shí)提交電子版。附錄七驗(yàn)收與答辯3.驗(yàn)收的時(shí)候同時(shí)檢查課程設(shè)計(jì)說明書的電子版。4.強(qiáng)調(diào)自己做的內(nèi)容、采用的技術(shù),背景等相對(duì)簡略。5.提前驗(yàn)收同等條件相對(duì)分?jǐn)?shù)會(huì)高Steganography(密寫術(shù)、隱寫術(shù))是一門關(guān)于信息隱藏的技巧與科學(xué),所謂信息隱藏內(nèi)容?,F(xiàn)代的密寫技術(shù)主要是依靠在圖像、音頻、視頻等大容量的文件中隱藏信息[1]。還有一下信道主要采用數(shù)字簽名等來實(shí)現(xiàn)消息隱匿[2],但是閾下信道可以被封閉,并且利用數(shù)字簽名傳輸?shù)拈撓孪⑼芏???梢姡壳暗男畔㈦[藏技術(shù)要么需要依靠大文件作為載體,要么只大很多,信道利用率不高。一旦被禁止發(fā)送圖片音頻、視頻等大容量的文件,不允許進(jìn)行數(shù)字簽名的情況下,秘密消息的隱匿就無法實(shí)現(xiàn),而信息隱藏和閾下信道問題往往是針對(duì)被監(jiān)視的囚犯之類的背景的,監(jiān)管人完全可以禁止任何可能隱匿消息的行為。本文在提出的低密鑰可信度密碼體制的基礎(chǔ)上提出一類新的密寫方法。關(guān)鍵詞替換的密寫原理筆者曾經(jīng)設(shè)計(jì)并且軟件實(shí)現(xiàn)了針對(duì)軟磨硬泡攻擊的加密方法,該加密方法采用類似選擇題的方法進(jìn)行加密[3]:該加密方法配備一個(gè)關(guān)鍵詞數(shù)據(jù)庫,每個(gè)關(guān)鍵詞和它相類似、相反的詞構(gòu)成一組,比如,晴、雨、雪等構(gòu)成一組,今天則和明天、后天、昨天等構(gòu)成一個(gè)組,好比選擇在實(shí)際實(shí)現(xiàn)的時(shí)候,這個(gè)標(biāo)志應(yīng)該是明文文本中不出現(xiàn)的。而(和)分別代表一個(gè)標(biāo)號(hào)的起始和結(jié)束標(biāo)志,同樣這個(gè)標(biāo)志應(yīng)該是明文文本中不出現(xiàn)的,這是為了保證可靠地解密。標(biāo)號(hào)類似選該算法的特點(diǎn)是,可以很容易找到偽密鑰,并且應(yīng)用偽密鑰得到的明文可能和原文的意義是相近、相反的,因而更能夠采用偽密鑰去誤導(dǎo)攻擊者。而傳統(tǒng)的算法由于偽密鑰很難尋找,面對(duì)軟磨硬泡之類的攻擊就存在隱患,因?yàn)閭鹘y(tǒng)算法很難找到偽密鑰,因此,如果持有人給出可以得到有意義明文的密鑰,這使得攻擊者會(huì)很相信密鑰是正確的,因此傳統(tǒng)的算法的密鑰可信度高,而上面的原理設(shè)計(jì)的算法很容易找到偽密鑰,因而,該算法的密鑰可信度低??梢圆捎妙愃频姆椒ㄟM(jìn)行密寫,但是為了防止對(duì)方看出密寫的存在,偽裝文本中應(yīng)該不出現(xiàn)前面提到的各種用于解密的標(biāo)志,也不對(duì)關(guān)鍵詞進(jìn)行擴(kuò)充,而是直接將敏感的關(guān)鍵詞用其他的關(guān)鍵詞代替。密寫的時(shí)候,針對(duì)文本中的關(guān)鍵詞,進(jìn)行識(shí)別,然后根據(jù)雙方事先共享的密鑰結(jié)合文本中的那個(gè)關(guān)鍵詞在數(shù)據(jù)庫中對(duì)應(yīng)的標(biāo)號(hào)進(jìn)行計(jì)算,根據(jù)計(jì)算結(jié)果對(duì)應(yīng)的標(biāo)號(hào)來確定替換的關(guān)鍵詞。這樣原來的今天是晴天,就可能被替換為明天不是晴天之類的偽裝文本,而且具基于關(guān)鍵詞替換的密寫方法設(shè)計(jì)由于該密寫方法直接對(duì)文本內(nèi)容進(jìn)行替換,因此,對(duì)于文檔的密寫需要先打開文檔,比如行保存,而提取隱秘信息的過程類似。打開文檔打開文檔讀取文本關(guān)鍵詞替換保存文檔這里我們不考慮對(duì)文檔的打開、讀取和保存,直接設(shè)計(jì)對(duì)于文本內(nèi)容的密寫方法。對(duì)文本對(duì)文本進(jìn)行逐一掃描,根據(jù)關(guān)鍵詞數(shù)據(jù)庫來發(fā)現(xiàn)文本中的關(guān)鍵詞,如果是,將關(guān)鍵詞在數(shù)據(jù)庫中對(duì)應(yīng)的一組關(guān)鍵詞的數(shù)目n,以及這個(gè)關(guān)鍵詞在數(shù)據(jù)庫中對(duì)應(yīng)的標(biāo)號(hào)a讀出來,至于替換成同一組的哪個(gè)關(guān)鍵詞,根據(jù)密鑰來確定。假設(shè)雙方都共享了密鑰k,可以用流密碼算法來對(duì)關(guān)鍵詞進(jìn)行替換。假設(shè)數(shù)據(jù)庫中所有的關(guān)鍵詞組的最大數(shù)目不超過2m,則每一次遇到一個(gè)關(guān)找出對(duì)應(yīng)的標(biāo)號(hào)的詞,對(duì)文本內(nèi)容進(jìn)行替換,然后繼續(xù)掃描并且替換。原文的提取也相對(duì)簡單,凡是在未遇到關(guān)鍵詞的時(shí)候都是直接采用同樣的文本內(nèi)容,遇到關(guān)鍵詞以后,就依次根據(jù)密鑰進(jìn)行替換,這個(gè)替換和密寫時(shí)的替換是相反的。由于雙方密鑰一樣,采用流密碼算法每一次得到的對(duì)應(yīng)的段是一樣的值,對(duì)于第s次對(duì)應(yīng)因此就可以提取原文。為了保證同步,無論是在密寫和信息提取的過程中對(duì)于關(guān)鍵詞的替換是按照詞在文本中的得出密鑰,雖然其中的標(biāo)號(hào)運(yùn)算也采用了模運(yùn)算,但是流密碼算法能夠防止?jié)撛诘墓鬧4]。提取信息的可逆性條件在上述的密寫方法中,如果關(guān)鍵詞有包含關(guān)系,比如關(guān)鍵詞數(shù)據(jù)庫中有中華,也有中華人民共和國。此外,如果一個(gè)關(guān)鍵詞出現(xiàn)在數(shù)據(jù)庫的兩組關(guān)鍵詞中,比如,班長可以和團(tuán)支書、生活委員、學(xué)習(xí)委員等構(gòu)成一組,也可以和團(tuán)長、排長等構(gòu)成一組,則加密和解密也會(huì)遇到歧義而無法得到確定的結(jié)果的問題。如果出現(xiàn)以上情況,則可能需要對(duì)算法進(jìn)行改進(jìn)。在此算法中,在設(shè)計(jì)關(guān)鍵詞數(shù)據(jù)庫時(shí),每一個(gè)關(guān)鍵詞只在關(guān)鍵詞數(shù)據(jù)庫中出現(xiàn)一次,即不出現(xiàn)在兩組關(guān)鍵詞中,此外關(guān)鍵詞之間互相不存在包含關(guān)系。信息密寫與加密不一樣,為了保留偽裝的文本不露破綻,相比以前采用的加密算法在密文中采用了各種標(biāo)記,可以將沒有被替換的和已經(jīng)被替換的進(jìn)行有效的區(qū)分,從而防止解密出現(xiàn)錯(cuò)誤,而密寫方法去掉了這些標(biāo)記,帶來的隱患在于:可能沒有被替換的部分和替換的部分在交界的地方交叉組成一個(gè)新的關(guān)鍵詞,這會(huì)導(dǎo)致提取出來的文本與原文不一致。這種情況比較少見,但是,可以認(rèn)為是關(guān)鍵詞交叉導(dǎo)致的,如果關(guān)鍵詞沒有交叉的,則不可能出現(xiàn)這樣的情況。對(duì)于這個(gè)問題,可以采用多種方法來解決:第一,由于這種情況比較罕見,所以,可以不對(duì)關(guān)鍵詞做更多的限定,而是在密寫后,發(fā)送者對(duì)原文進(jìn)行提取,比較原文和提取的文本是否一致,如果一致才發(fā)給接收者,否則,進(jìn)行改進(jìn)或者放棄。第二,可以在提取原文時(shí)對(duì)關(guān)鍵詞同時(shí)給出兩種提取結(jié)果,進(jìn)行分析確定哪個(gè)是原文。第三,可以對(duì)關(guān)鍵詞進(jìn)行限定,不允許交叉的情況出現(xiàn),這種情況對(duì)于英文之類的關(guān)鍵詞以單詞為主的語言更加有效,對(duì)于中文則會(huì)大大限制關(guān)鍵詞的數(shù)目,導(dǎo)致密寫在一定程度上失效。第四,可以利用語言本身蘊(yùn)含的冗余來消除這種歧義,比如可以利用空格、同義詞、同義將出現(xiàn)這種交叉的情況根據(jù)冗余數(shù)據(jù)進(jìn)行編碼來向接收者指明到底哪個(gè)是關(guān)鍵詞,但是,比較繁瑣。第五,以上都是假定接收雙方只是在事先共享密鑰,事后不共享密鑰的情況,在許多情況下,接收雙方不僅事先共享了一定的密鑰,發(fā)送完密寫的消息后也可以發(fā)送另外的密鑰供對(duì)方有效解密,則此時(shí)可以用事后發(fā)送的密鑰來編碼相關(guān)的歧義的信息,保證對(duì)方得到正確的原根據(jù)的原理,在偽裝文本的未替換段顯然沒有完整的關(guān)鍵詞,而前面給定的限制條件規(guī)定關(guān)鍵詞之間不互相包含,而上面一段考慮到偽裝文本的未替換段與被替換的關(guān)鍵詞的交叉部分出現(xiàn)的關(guān)鍵詞的情況被避免或者進(jìn)行有效處理,因此,不會(huì)再出現(xiàn)其他的關(guān)鍵詞誤判的情況,也可以保證本密寫方法的可逆性。本方法在不同場合的應(yīng)用本密寫方法適用于閾下信道的情形,當(dāng)兩個(gè)囚犯試圖進(jìn)行通信,又不希望可以看到他們通信內(nèi)容的管理員看到真正的內(nèi)容的時(shí)候,可以采用這種密寫方法進(jìn)行替代,而且管理員看到的消息可能是相反、相近的,更符合語境,更容易誤導(dǎo)對(duì)方。針對(duì)閾下信道中的簽名,本方法可除了直接用該方法外誤導(dǎo)對(duì)方外,本密寫方法可以加上一個(gè)外層的傳統(tǒng)的對(duì)稱加密,因?yàn)樵谝恍﹫龊蠈?duì)手更相信發(fā)送者會(huì)對(duì)重要的涉密信息進(jìn)行加密,加密反而容易讓對(duì)方相信,此時(shí)可以用故意泄漏等一些方法讓對(duì)方獲取外層的密鑰,誘使對(duì)方解密而誤導(dǎo)對(duì)方。在軟磨硬泡攻擊中,密鑰持有人可以只交出外層的密鑰來,對(duì)方會(huì)誤以為是明文。比如,在網(wǎng)絡(luò)中,根據(jù)網(wǎng)絡(luò)協(xié)議和系統(tǒng)的通信機(jī)制,對(duì)相應(yīng)的關(guān)鍵詞進(jìn)行有效的代替,比如可以將url、ip地址、命令、文件名等等進(jìn)行替換。這樣經(jīng)過密寫修改的機(jī)制和協(xié)議,可以被操作,這樣可以有兩種用途:第一,如果通信雙方都進(jìn)行相應(yīng)的密寫和提取,則可以防止網(wǎng)絡(luò)上的監(jiān)聽,而且可以誤導(dǎo)監(jiān)聽者。第二,網(wǎng)絡(luò)上的主動(dòng)攻擊者可以利用該密寫方法對(duì)網(wǎng)絡(luò)上的數(shù)據(jù)進(jìn)行篡改,而且接收者很難發(fā)現(xiàn)數(shù)據(jù)是錯(cuò)誤的,篡改的數(shù)據(jù)可能導(dǎo)致錯(cuò)誤的操作而帶來危害。本方法的優(yōu)缺點(diǎn)分析攻擊。在此分析中密碼分析者威脅、勒索,或者折磨某人,直到他給出密鑰為止,類似的還有行賄購買密鑰攻擊。這些是非常有效的攻擊,并且經(jīng)常是破譯算法的最好途徑。不僅僅是在密鑰持有人在控制的情況下,有時(shí)候,密鑰持有人礙于情面、權(quán)威和利益,也不得不給希望得到密鑰的人一個(gè)密鑰。一般現(xiàn)代的密碼算法,能夠解密得到有意義明文的偽密鑰很少,而且,很難找到偽密鑰。隨著密文的增加,偽密鑰的數(shù)量會(huì)逐步減少[5]。密碼算法多以比特作為運(yùn)算的單元,經(jīng)過復(fù)雜的運(yùn)算后很難找到偽密鑰。這就意味著在面對(duì)軟磨硬泡攻擊的時(shí)候,密鑰持有人如果隨便給出一個(gè)密鑰,絕大多數(shù)情況下,得到的明文是沒有意義的,這樣密碼分析者顯然很容易發(fā)現(xiàn)是錯(cuò)誤的密鑰。假如抵擋不住軟磨硬泡攻擊,則密鑰持有人不得不交出真正的密鑰來。本密寫方法最大的意義在于,它的密寫數(shù)據(jù)是有意義的,與通信的語境相關(guān),并且可能與原來的意義相反,因而容易被認(rèn)為是明文,并且具有誤導(dǎo)性。本方法中,用正確的密鑰提取的消息是原文,而用錯(cuò)誤密鑰提取的消息也是有意義的,偽裝文本也是有意義的,很容易誤導(dǎo)對(duì)方,即使對(duì)方知道可能被誤導(dǎo),他也不能斷定哪個(gè)密鑰是正確的,因?yàn)殄e(cuò)誤密鑰也可以得出有本方法的原文(隱秘文本)和偽裝文本(載體)的長度平均而言是一樣的。此外,其他的密寫方法和閾下信道是可以被禁止和封閉的,比如禁止發(fā)生圖像、視頻、音頻文件,封閉閾禁止采用數(shù)字簽名等都能有效防止隱秘消息的發(fā)送。當(dāng)然算法也有局限性,比如關(guān)鍵詞的誤判,替換的詞可能與原詞一樣,泄漏一定信息,運(yùn)算復(fù)雜等等,可以在本算法基礎(chǔ)上進(jìn)行改進(jìn),比如替換的詞可以在改進(jìn)后與原來的詞保持不一致,但是,這在分析者知道密寫方法以及數(shù)據(jù)庫的情況下是泄漏一定信息的,他們可以得出該載體中出現(xiàn)的關(guān)鍵詞必然不同于原文。鑒于該方法有一定的局限性,也可以和傳統(tǒng)的加密算法本文提出了一種基于關(guān)鍵詞替換的密寫方法,主要是將文本中敏感的關(guān)鍵詞進(jìn)行替換,并且對(duì)其可逆性的保證條件進(jìn)行了分析和確定。該方法有著較為廣泛的應(yīng)用價(jià)值,本文僅僅是拋磚引玉,采用類似的關(guān)鍵詞替換方法,可以設(shè)計(jì)許多相關(guān)的改進(jìn)的密寫和加密算法,使之適應(yīng)不同的條件,并且可以減少對(duì)于關(guān)鍵詞的限制。當(dāng)然這個(gè)方法當(dāng)作密寫,廣義的閾下信道都是可以的,也可以作為加密算法來使用。由于沒有采用標(biāo)記,本密寫方法依然具有一定的局限性,受到語言、關(guān)鍵詞的各種限制,既可以誤導(dǎo)對(duì)方,也可能泄漏一定的信息,可以采取各種措施加以改進(jìn)?;趦?nèi)容加密的密碼算法摘要:本文針對(duì)軟磨硬泡攻擊和唯密文攻擊等攻擊,提出密鑰可信性的概念,并且設(shè)計(jì)了一種密鑰可信度低的密碼體制,應(yīng)用該算法模型加密可以很容易得到偽密鑰,從而可以誤導(dǎo)和迷惑密碼系統(tǒng)的安全性可以分為計(jì)算安全性(又稱為實(shí)際保密性)和無條件安全性(又稱為完已經(jīng)越來越顯得重要?,F(xiàn)在經(jīng)常討論的密碼攻擊有已知條件有唯密文攻擊、已知明文攻擊、選擇明文攻擊和選擇密文攻擊。其中唯密文攻擊最為困難,具有足夠的計(jì)算能力就可以有效實(shí)施唯密文攻擊。唯密文攻擊中偽密鑰的數(shù)目影響了密碼體制的安全性制對(duì)于唯密文攻擊越安全。即使在有限計(jì)算能力情況下,密碼分析者也可以利用部分的窮舉攻擊等攻擊方法以某種概率成功攻破密碼體制。本文在考慮現(xiàn)有攻擊基礎(chǔ)上提出一種新的以語義并且經(jīng)常是破譯算法的最好途徑。常見的密碼分析已知明文攻擊、選擇明文和選擇密文攻擊都需要非常巨大的資源而且必須擁有一些難于獲取的已知信息,往往在現(xiàn)實(shí)上不可能實(shí)現(xiàn),但是軟磨硬泡攻擊卻非常容易實(shí)現(xiàn)??箵糗浤ビ才莨舨]有最好途徑,只能給一個(gè)偽密鑰或者讓由于加密中運(yùn)用了大量的混淆擴(kuò)散和加上語義信息的高度冗余,現(xiàn)代密碼體制中的分組密碼或者流密碼體制中若采用錯(cuò)誤密鑰進(jìn)行解密的時(shí)候往往得到的是沒有意義的亂碼,可以被排除。雖然大量的密鑰中存在偽密鑰,可以解密出有意義的偽“明文”來,但是密碼分析者對(duì)于大部分偽明文可能根據(jù)已經(jīng)知道的信息和接受發(fā)送雙方的情況來判斷它們不是真正的明文。實(shí)際上能夠讓密碼分析者考慮的偽密鑰非常少。這導(dǎo)致密碼分析者非常相信能夠解密得到有實(shí)際意義和符合通信語境的“明文”的密鑰,實(shí)際上一個(gè)密鑰如果符合上述條件,它是真正密鑰的概率非常大。在軟磨硬泡攻擊情形下,給出的密鑰對(duì)于密碼分析者具有可信性,因?yàn)槊荑€持有者想要偽造一個(gè)符合通信語境,可以被密碼分析者信賴的偽密鑰非常困難,而且在被劫持等情形中,很短時(shí)間內(nèi)沒有計(jì)算設(shè)備的情況下他無法計(jì)算出來。為了能夠很容易找到偽密鑰,并且能夠有意誤導(dǎo)密碼分析者,有必要加密時(shí)對(duì)于文件內(nèi)容予以識(shí)別并且以語言的字、詞等結(jié)構(gòu)為在一般的特別是現(xiàn)代密碼分析中,普遍認(rèn)定密鑰是唯一需要保密的信息,也就是說密碼系的一個(gè)基本假設(shè),這個(gè)假設(shè)就是秘密必須全寓于密鑰中,且Kerckhoffs假設(shè)密碼分析者已有密碼算法及其實(shí)現(xiàn)的全部詳細(xì)資料。密碼分析也普遍以密鑰未知情況下推算密鑰、解密出明文、獲取密鑰和明文信息等為目標(biāo),而密碼算法設(shè)計(jì)正是在充分考慮已有的密碼分析的基礎(chǔ)上進(jìn)行的,但是這些具有很高安全性的算法對(duì)于軟磨硬泡這樣的攻擊根本沒有辦法。在密碼系統(tǒng)中密鑰是一個(gè)關(guān)鍵,而且密鑰的截獲就意味著它加密的所有密文都被攻破,在這里另辟蹊徑,研究如何使得密碼體制可以很容易地利用可以信賴的偽密鑰來誤導(dǎo)密碼分析者,同時(shí),即使密碼分析者知道可能被誤導(dǎo)的問題,他也不能夠再相信軟磨硬泡的攻擊或者行賄獲取密鑰的可靠性。此外即使他具有巨大的計(jì)算能力可以得到的有實(shí)際意義和符合語境的明文,由于這樣的明文非常多而且意義相似或者相反,他也將很迷惑而不能決定是否是真正明文。在此給出密鑰可信度的概念,它是衡量一個(gè)密碼系統(tǒng)中在軟磨硬泡等攻擊中密鑰可能泄漏語言的冗余度、偽密鑰數(shù)量及其比例、密碼體制的明文遍歷率、語義遍歷程度和相關(guān)概率、偽明文消息集合與先驗(yàn)消息集合的一致度等。加密解密方式、語言特點(diǎn)和語境(密碼分析者的先驗(yàn)信息)等也同密鑰可信度密切相關(guān)。實(shí)際中的可信度還與現(xiàn)實(shí)中的可以運(yùn)用的計(jì)算能力以及時(shí)間限制有關(guān)系。密鑰可信度越低,密碼體制的安全性越高。密鑰可信度和新加密方式的提出并不違背密碼學(xué)的思想,并不是一種鉆牛角尖,在現(xiàn)代密碼學(xué)中的一些分析如選擇明文分析等等都是以密碼機(jī)被繳獲并且密鑰來不及銷毀等特殊情況為背景的,而且一些密碼分析方法需要很多的明文密文對(duì),它們的背景也主要針對(duì)這樣的情形。實(shí)際上密鑰持有者被截獲和被收買的可能性遠(yuǎn)遠(yuǎn)大于密碼機(jī)被繳獲且密鑰沒有被銷毀的情況,而且密鑰被截獲后明文就輕易被解密,而密碼機(jī)被繳獲的情形下還需要具有足夠的計(jì)算能力以此外,在密鑰的分配和管理等環(huán)節(jié)中往往也難于保證密鑰的安全,在加密、解密等情況下如果磁盤等媒體中的密鑰信息沒有被多次覆蓋而導(dǎo)致密鑰信息的存留也可能導(dǎo)致密鑰泄漏。如果能夠用偽密鑰作為誘餌,則可以誤導(dǎo)密碼分析者。即使密碼分析者知道可能是偽密鑰,他也迷惑于不知道密鑰的真?zhèn)危砸膊恢澜饷苊魑牡恼鎮(zhèn)?。由此可見?duì)于密鑰可信度以及相應(yīng)的密碼體制研究與設(shè)計(jì)具有重大意義。在此給出密鑰可信度的概念,它是衡量一個(gè)密碼系統(tǒng)中在軟磨硬泡等攻擊中密鑰可能泄漏語言的冗余度、偽密鑰數(shù)量、偽明文消息集合與先驗(yàn)消息集合的一致度等。加密解密方式、語言特點(diǎn)和語境(密碼分析者的先驗(yàn)信息)等同密鑰可信度密切相關(guān)。實(shí)際中的可信度還與現(xiàn)實(shí)中的可以運(yùn)用的計(jì)算能力以及時(shí)間限制有關(guān)系。密鑰可信度越低,密碼體制的安全性越高。在文獻(xiàn)中[1]中,提出了采用類似完形選擇題加密方式,加密時(shí)候把關(guān)鍵詞替換成為一個(gè)擴(kuò)充項(xiàng),擴(kuò)充項(xiàng)把許多相近、相對(duì)的關(guān)鍵詞放在一起,用標(biāo)號(hào)加以標(biāo)記,正確的選擇項(xiàng)給予正確的標(biāo)號(hào),解密時(shí)進(jìn)行運(yùn)算判斷哪個(gè)選擇項(xiàng)是真正的關(guān)鍵詞。顯然這樣的加密具有上述的迷惑和誤導(dǎo)作用,并且很容易尋找到偽密鑰,具有密鑰可信度低的優(yōu)點(diǎn)。密鑰可信度和新加密方式的提出并不違背密碼學(xué)的思想,并不是一種鉆牛角尖,在現(xiàn)代密碼學(xué)中的一些分析如選擇明文分析等等都是以密碼機(jī)被繳獲并且密鑰來不及銷毀為背景的,而且一些密碼分析方法需要很多的明文密文對(duì),它們的背景也主要針對(duì)這樣的情形。實(shí)際上密鑰持有者被截獲和被收買的可能性遠(yuǎn)遠(yuǎn)大于密碼機(jī)被繳獲且密鑰沒有被銷毀的情況,而且密鑰被截獲后明文就輕易被解密,而密碼機(jī)被繳獲的情形下還需要具有足夠的計(jì)算能力以及運(yùn)用密碼分析方法。此外,在密鑰的分配和管理等環(huán)節(jié)中往往也難于保證密鑰的安全,在加密、解密等情況下如果磁盤等媒體中的密鑰信息沒有被多次覆蓋而導(dǎo)致密鑰信息的存留也可能導(dǎo)致密鑰泄他也迷惑于不知道密鑰的真?zhèn)?,所以也不知道解密明文的真?zhèn)?。由此可見?duì)于密鑰可信度以及相應(yīng)的密碼體制研究與設(shè)計(jì)具有重大意義。2.基于迷惑與誤導(dǎo)的加密(內(nèi)層加密)在進(jìn)行本層加密時(shí),對(duì)句子語法結(jié)構(gòu)、語義等進(jìn)行分析,找到數(shù)據(jù)庫中已定義的關(guān)鍵詞,象編完形填空中的選擇題一樣,根據(jù)數(shù)據(jù)庫的設(shè)置把和這些關(guān)鍵詞類似的詞嵌入到該詞的前后,并且對(duì)于每個(gè)“選項(xiàng)”根據(jù)子密鑰打上不同標(biāo)號(hào),如對(duì)于“是”可以增加不是、可能是、很可能是、不大可能是等等選項(xiàng)并加上標(biāo)號(hào)(可以認(rèn)為標(biāo)號(hào)是類似于選擇題中A、B、C、D這樣的選項(xiàng)標(biāo)識(shí)如果子密鑰不同,解密時(shí)候就會(huì)根據(jù)子密鑰與標(biāo)號(hào)的關(guān)系選擇一個(gè)正確的關(guān)鍵詞,考慮到序列安全性需要應(yīng)用密碼算法或者類似函數(shù)來生成。根據(jù)上述方法進(jìn)行的加密我們稱為基于迷惑與誤導(dǎo)的加密,考慮到明文消息的存在形式可能是輸入的消息,也可能是一種格式的文檔,如文本文檔和word文檔。首先,如果如果是關(guān)鍵詞就在輸出時(shí)進(jìn)行一個(gè)擴(kuò)充項(xiàng)的替換,并且跳過關(guān)鍵詞,繼續(xù)掃描后邊的字;如果不構(gòu)成關(guān)鍵詞就直接輸出,并且掃描下一個(gè)字。=由于自然語言處理的復(fù)雜性,為了簡化加密過程,采用比較簡單的關(guān)鍵詞判定規(guī)則。關(guān)鍵詞的判斷方法如下:對(duì)于掃描的字,首先判斷關(guān)鍵詞數(shù)據(jù)庫中是否有這個(gè)字為首的關(guān)鍵詞,其中分兩種情形:第一,若關(guān)鍵詞數(shù)據(jù)庫中沒有這個(gè)字為首的關(guān)鍵詞,就判定該字不會(huì)構(gòu)成關(guān)鍵詞,就把這個(gè)字作為加密變換的輸出,并且繼續(xù)掃描下邊一個(gè)字;第二,若有這個(gè)字為首的關(guān)鍵詞,把這個(gè)字和它后邊的幾個(gè)字一起讀出來,查詢這個(gè)字以及后邊的幾個(gè)字是否構(gòu)成對(duì)應(yīng)在數(shù)據(jù)庫中的關(guān)鍵詞,也分為兩種情形:其一,若沒有,就判定為不構(gòu)成關(guān)鍵詞,把該字作為加將關(guān)鍵詞的判定規(guī)則存放在一個(gè)關(guān)鍵詞判定規(guī)則數(shù)據(jù)庫中,實(shí)際應(yīng)用中可以將此數(shù)據(jù)庫和關(guān)鍵詞數(shù)據(jù)庫合并起來,會(huì)減少系統(tǒng)復(fù)雜性。在此設(shè)計(jì)的判定規(guī)則是比較關(guān)鍵詞前后的字詞,符合一定規(guī)則可以判定不是關(guān)鍵詞或者必須符合一定規(guī)則才能作為關(guān)鍵詞,如當(dāng)“中華”后邊存在“人民共和國”則中華就不是關(guān)鍵詞,可以把“中華人民共和國”作為關(guān)鍵詞,所以當(dāng)以一個(gè)字為首的詞構(gòu)成兩個(gè)以上的關(guān)鍵詞的時(shí)候,一般需要以較長的關(guān)鍵詞為真正關(guān)鍵詞,但是實(shí)際中有可能存在極少數(shù)需要根據(jù)上下文判定哪個(gè)是關(guān)鍵詞的情況在此忽略,再如當(dāng)“是”后邊存為密文,然后掃描下一個(gè)字;如果是真正的關(guān)鍵詞,輸出就不是關(guān)鍵詞本身而要進(jìn)行一個(gè)關(guān)鍵詞對(duì)應(yīng)的擴(kuò)充項(xiàng)(擴(kuò)充項(xiàng)的標(biāo)號(hào)需要根據(jù)密鑰進(jìn)行運(yùn)算),由于自然語言的復(fù)雜性,處理過程中不可避免存在誤判的可能,這導(dǎo)致了有些密鑰可以通過分析被排除,且一些信息被泄漏,但是由于密鑰量非常大,排除一部分依然是可以保證存在有意義的偽密鑰的。如果有產(chǎn)生足夠長的真隨機(jī)數(shù)并且具有進(jìn)行保密傳送的條件可以采取一次達(dá)到預(yù)定的誤導(dǎo)作用。本文主要是針對(duì)中文而言,對(duì)于英文等外語需要根據(jù)其特點(diǎn)來設(shè)計(jì)判定方式和規(guī)則,方法類似但是需要有變動(dòng)。掃描的字是否在關(guān)鍵詞數(shù)據(jù)庫中存在否輸出上該字作為密文并掃描下一個(gè)字是庫中是一個(gè)關(guān)鍵詞否判斷關(guān)鍵詞是否符合真正意義的關(guān)鍵詞的否輸出上該字作為密文并掃描下一個(gè)字選擇長的詞作為真正把它作為真正關(guān)鍵詞為了便于解密,需要對(duì)于擴(kuò)充項(xiàng)、選擇項(xiàng)和標(biāo)號(hào)加以標(biāo)記和區(qū)分,可選擇4個(gè)在中文中不出現(xiàn)的符號(hào)分別作為擴(kuò)充項(xiàng)的起始標(biāo)記和結(jié)束標(biāo)記、選擇項(xiàng)標(biāo)號(hào)的起始標(biāo)記和結(jié)束標(biāo)記。擴(kuò)充項(xiàng)的處理過程如下:當(dāng)遇到某個(gè)關(guān)鍵詞如“今天”并且在數(shù)據(jù)庫中查實(shí)它是關(guān)鍵詞,那么就根據(jù)數(shù)據(jù)庫的數(shù)據(jù),將與之相關(guān)的明天、今天、后天、昨天、前天等作為一個(gè)擴(kuò)充項(xiàng),為了便于解密,需要對(duì)于擴(kuò)充項(xiàng)和每一個(gè)其中的關(guān)鍵詞用標(biāo)號(hào)加以標(biāo)記,進(jìn)行標(biāo)記后形成一個(gè)完整的擴(kuò)()給出答案的序列,就可以恢復(fù)正確的答案。在數(shù)據(jù)庫中,對(duì)于正確的關(guān)鍵詞今天,已經(jīng)定義了需要根據(jù)密鑰進(jìn)行重新標(biāo)記,然后在將擴(kuò)充項(xiàng)填充到原來正確關(guān)鍵詞的位置。在擴(kuò)充項(xiàng)中為了便于解密還要在關(guān)鍵詞的前后增加相應(yīng)的起始標(biāo)記,所有的起始標(biāo)記都是一致的,而且起始標(biāo)記可以采用明文中不出現(xiàn)的符號(hào)。如采用在明文中可能出現(xiàn)的符號(hào),則需要進(jìn)行一定的處理。擴(kuò)充項(xiàng)的結(jié)構(gòu)如下:擴(kuò)充項(xiàng)起始標(biāo)記+第一個(gè)選擇項(xiàng)標(biāo)號(hào)起始標(biāo)記+第一個(gè)選擇項(xiàng)標(biāo)號(hào)+第一個(gè)選擇項(xiàng)標(biāo)號(hào)結(jié)束標(biāo)記+第一個(gè)選擇項(xiàng)選擇項(xiàng)+第二個(gè)選擇項(xiàng)標(biāo)號(hào)起始標(biāo)記+第二個(gè)選擇項(xiàng)標(biāo)號(hào)+第二個(gè)選擇項(xiàng)標(biāo)號(hào)結(jié)束標(biāo)記+第二個(gè)選擇項(xiàng)選擇項(xiàng)+…+擴(kuò)充項(xiàng)結(jié)束標(biāo)記(其中+僅僅表數(shù)據(jù)庫中,相關(guān)的一些關(guān)鍵詞互相對(duì)其中的一個(gè)關(guān)鍵詞進(jìn)行擴(kuò)充,他們的按照一個(gè)固定的順序排列,根據(jù)它們的總數(shù)目進(jìn)行標(biāo)號(hào):數(shù)目為N的一組用0至N-1的標(biāo)號(hào)進(jìn)行標(biāo)記。比如對(duì)于明天、今天、后天、昨天和前天這幾個(gè)關(guān)鍵詞,首先確定一個(gè)順序,可以依次是明天、今標(biāo)記前天。如當(dāng)今天作為關(guān)鍵詞的時(shí)候,將這些標(biāo)號(hào)相應(yīng)為了讓正確項(xiàng)與密鑰相關(guān),在加密時(shí)候?qū)U(kuò)充項(xiàng)的選擇項(xiàng)(關(guān)鍵詞)的標(biāo)號(hào)進(jìn)行處理。為可以根據(jù)流密碼和分組密碼生成的偽隨機(jī)數(shù)據(jù)序列將根據(jù)一定長度進(jìn)行截取,把數(shù)據(jù)序列劃分為數(shù)據(jù)段組成的序列。明文中有許多關(guān)鍵詞,加密時(shí)根據(jù)擴(kuò)充項(xiàng)中所有組中關(guān)鍵詞(選擇項(xiàng))最多的一組的關(guān)鍵詞數(shù)目來確定一個(gè)對(duì)于密鑰流的截取長度。在進(jìn)行加密的時(shí)候,遇到第一個(gè)關(guān)鍵詞的時(shí)候,利用密鑰流的第一個(gè)截取下來的密鑰流數(shù)據(jù)段(比如為137假設(shè)這個(gè)關(guān)鍵詞對(duì)應(yīng)的擴(kuò)充項(xiàng)中選擇項(xiàng)的數(shù)目為n,對(duì)于截取的數(shù)據(jù)段作取模n的運(yùn)算,比如一個(gè)擴(kuò)充項(xiàng)有5前天。遇到第二個(gè)關(guān)鍵詞時(shí)候,將用第二個(gè)數(shù)據(jù)段來進(jìn)行處理,依此類推。解密時(shí)每遇到一個(gè)擴(kuò)充項(xiàng)的標(biāo)記,就計(jì)算出密鑰流序列中相應(yīng)的數(shù)據(jù)段,進(jìn)行取模運(yùn)算,得到的數(shù)據(jù)用來依次比較在選擇起始標(biāo)記之間的每一個(gè)標(biāo)號(hào)數(shù)據(jù),直到找到相同的標(biāo)號(hào)數(shù)據(jù)。將他后邊的選擇項(xiàng)剝離出來作為該段對(duì)應(yīng)的明文,其他的選擇項(xiàng)以及所有的標(biāo)記則去掉。流密碼的產(chǎn)生方式可以采用流密碼算法,由于分組密碼具有良好的偽隨機(jī)性,也可以采用分組密碼算法來實(shí)現(xiàn),如密碼反饋模式可以實(shí)現(xiàn)自同步流密碼,輸出反饋模式可以將分組密碼用于同步流密碼等。為了方便程序中實(shí)現(xiàn),我們采用簡化的密碼分組鏈接模式。在密碼分組鏈接(CBC)模式中,明文被加密之前要與前面的密文進(jìn)行異或運(yùn)算。第一個(gè)分組明文被加密后,其結(jié)果也被存在反饋寄存器中,在下一明文分組加密之前,它將與反饋寄存器進(jìn)行異或作為下一次加密的輸入,其結(jié)果又被存進(jìn)反饋寄存器,再與下一分組明文進(jìn)行異或,如此這般直到消息結(jié)束。每一分組的加密都依賴于所有前面的分組。為了方便程序中實(shí)現(xiàn),在這里采用的是簡

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論