資源描述:
《編寫古典加解密算法》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。
1、編寫古典加解密算法西安交通大學計算機教學實驗中心1實驗簡要介紹使用凱撒和維吉尼亞加密算法編程實現將明文轉換成密文。使用凱撒和維吉尼亞解密算法編程實現將密文轉換成明文。2實驗目的理解網絡安全、加密/解密的概念掌握幾個典型古典加解密算法的應用3實驗設備及軟件所需設備一臺計算機實驗所需軟件及工具編程工具不限4實驗原理單表代換密碼對于一個給定的加密密鑰,明文信息空間中的每一個元素將被代換為密文消息空間中的唯一元素。凱撒密碼加密算法Ek(m)=m+k=cmodN解密算法D(c)=c-k=mmodN其中N=26
2、,k=35實驗原理多表代換密碼以一系列(兩個以上)代換表一次對明文消息空間中的明文消息元素進行代換的加密方法。維吉尼亞密碼加密算法Eki(mi)=mi+ki=cimodN加密算法Dki(ci)=ci-ki=mimodN其中ki屬于K是密鑰,mi屬于M是明文,ci屬于C是密文。6實驗內容說明使用凱撒加密算法編程實現將明文轉換成密文使用凱撒解密算法編程實現將密文轉換成明文使用維吉尼亞加密算法編程實現將明文轉換成密文使用維吉尼亞解密算法編程實現將密文轉換成明文7實驗步驟使用凱撒加密算法編程實現將明文轉換成
3、密文,如下圖所示。要求:鍵入的明文允許任意字母,允許大小寫混用,長度不限。8實驗提示用c語言實現加密的部分代碼,僅供參考:intt=int(str[i]-‘a’);//計算該字母在字母表中的序號t=(t+3)%26;//用該字母后3個序號的字母str[i]=(char)(t+‘a’);//將該序號轉換成字母注意:該部分程序只是對小寫字母的轉換。大寫字母的轉換請自行設計其算法。9實驗步驟使用凱撒解密算法編程實現將密文轉換成明文,如下圖所示。要求:密文由用戶指定,可以出現大小寫字母,長度不限。10實驗提
4、示用c語言實現解密的部分代碼intt=int(str[i]-‘a’);//計算該字母在字母表中的序號t=(t-3+26)%26;//用該字母前3個序號的字母str[i]=(char)(t+'a');//將該序號轉換成字母注意:該部分程序只是對小寫字母的轉換,大寫字母的轉換請自行設計其算法。11實驗步驟使用維吉尼亞加密算法編程實現將明文轉換成密文,如下圖所示。要求:明文由用戶指定,可以出現大小寫字母,長度不限。密鑰長度為5,數值由用戶指定。12實驗提示用c語言實現加密的部分代碼intt=int(str
5、[i]-‘a’);//計算該字母在字母表中的序號t=(t+key[j])%26;//用該字母后key[j]個序號的字母if(++j==5){j=0;}//5個密鑰循環(huán)使用str[i]=(char)(t+‘a’);//將該序號轉換成字母注意:該部分程序只是對小寫字母的轉換;Key[5]中連續(xù)存放了5個密鑰。13實驗步驟使用維吉尼亞解密算法編程實現將密文轉換成明文,如下圖所示。要求:密文由用戶指定,可以出現大小寫字母,長度不限。密鑰長度為5,數值由用戶指定。14實驗提示用c語言實現解密的部分代碼intt
6、=int(str[i]-‘a’);//計算該字母在字母表中的序號t=(t-key[j]+26)%26;//用該字母前key[j]個序號的字母if(++j==5){j=0;}//5個密鑰循環(huán)使用str[i]=(char)(t+‘a’);//將該序號轉換成字母注意:該部分程序只是對小寫字母的轉換;Key[j]中連續(xù)存放了5個密鑰。15實驗習題寫出下面加密算法對應的解密算法,并寫出明文“IAMAHACKER”對應的密文,分析該加密算法的安全性:將明文的每個字母轉換為對應的7比特ASCII碼;在每個字母對應
7、的7比特ASCII碼的最左邊添加比特0;對每個8比特表示的字母,將其前4個比特和后4個比特交換;寫下每4個比特對應的十六進制值。16實驗報告要求編程實現凱撒加解密算法。在維吉尼亞密碼基礎上,將密鑰的個數改為由用戶指定,編程實現加解密算法。完成實驗習題。17