資源描述:
《網(wǎng)絡(luò)安全實(shí)驗(yàn)——對(duì)稱加密算法.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、《網(wǎng)絡(luò)安全》實(shí)驗(yàn)指導(dǎo)書對(duì)稱加密算法一、實(shí)驗(yàn)?zāi)康?、熟悉和掌握對(duì)稱加密算法的原理及其一般過程;2、掌握對(duì)稱加密算法的基本方法:替代(substitute)與置換(transposition);3、掌握使用一定的編碼開發(fā)工具(對(duì)具體的開發(fā)平臺(tái)和工具不作要求)。二、實(shí)驗(yàn)內(nèi)容1、替代加密法1)編程實(shí)現(xiàn)課本習(xí)題2.1的線形替代加密方法的破解(提示:可使用窮舉法);(已知替代變換函數(shù)f(a)=akmod26,且9kmod26=15,試計(jì)算k)2)破解后,實(shí)現(xiàn)該方法的加密運(yùn)算(輸入明文,輸出密文)和解密運(yùn)算(輸入密文,
2、輸出明文)(解密運(yùn)算提示:設(shè)密鑰為k,密文為c,明文為m,則有m*kmod26=c,因?yàn)閙<26且唯一,同樣可使用窮舉法搜索出m);3)加密字符串“substitute”,輸出密文;4)(可選)推導(dǎo)解密密碼本,即明文與密文字母的一一對(duì)應(yīng)關(guān)系。2、置換加密法1)給定置換表“86427531”,編程實(shí)現(xiàn)基于該表的加密運(yùn)算;2)加密字符串“transposition”,輸出密文(提示:如字符串長度不是8的倍數(shù),則需在字符串結(jié)尾后填充空格,使得其總長度為8的倍數(shù));3)參照課本表2-1和表2-8的關(guān)系,推導(dǎo)逆置換
3、表,并編程實(shí)現(xiàn)相應(yīng)的解密運(yùn)算。三、程序清單1、初始并定義程序所用的主要的參數(shù)boolfound=false;//標(biāo)記k是否被求出boolff=false;//標(biāo)記密碼本是否被求出staticintCodeBook[26];//替代加密法的明文本staticcharCodeBookStr[26];//替代解密法的密碼本inttrsp[8]={7,5,3,1,6,4,2,0};//置換加密所用的數(shù)組intrev_trsp[8]={7,3,6,2,5,1,4,0};//置換解密所用的數(shù)組staticcharc[
4、26];//由明文轉(zhuǎn)的密文stringcc;//輸入的密文intk;stringaa;//輸入的明文2、替代加/解密算法1)計(jì)算kvoid_mod_k()//求出K{inti=1;while(!found){if(9*i%26==15){found=true;k=i;}i++;}cout<<"k="<5、ut<<"請(qǐng)先執(zhí)行上層的步驟1求出k"<6、c<<"";}cout<='1'
7、
8、aa.at(i)<='9'){cout<9、endl;return;}}if(!found){cout<10、ntlen)//窮舉法解碼{if(!found){cout<='1'
11、
12、cc.at(i)<='9'){cout<