密碼與加密技術實驗


一. 實驗目的:

學習常見的古典密碼學算法,現代對稱加密算法,非對稱加密算法加密解密消息,通過編程實現替代密碼算法和置換密碼算法,加深對古典密碼體制的了解;使用Cryptool軟件加深對於現代對稱加密算法,非對稱加密算法加密解密消息的理解;使用MD5加密和破解工具(MD5Verify、MD5Crack),掌握MD5算法的作用及安全性分析。

二. 實驗儀器設備及軟件: 

運行Windows或Linux操作系統的PC機,具有gcc(Linux)、VC(Windows)等C語言編譯環境;Cryptool軟件;MD5Verify、MD5Crack。

三. 實驗原理:

古典密碼算法曾被廣泛應用,大都比較簡單,使用手工和機械操作來實現加密和解密。它的主要應用對象是文字信息,利用密碼算法實現文字信息的加密和解密。下面介紹兩種常見的具有代表性的古典密碼算法,以幫助讀者對密碼算法建立一個初步的印象。

1.替代密碼

    替代密碼的原理是使用替代法進行加密,就是將明文由其它的字母、數字或符合所代替后形成密文。這里每個明文字母對應的密文字母可能是一個,也可能是多個。接收者對密文進行逆向替換即可得到明文。替代密碼有五種表現形式:

單表代替

    即簡單替代密碼或者稱為單字母代替,明文字母表中的一個字符對應密文字母表中的一個字符。這是所有加密中最簡單的方法。

多名碼代替

    就是將明文字母表中的字符映射為密文字母表中的多個字符。多名碼簡單代替早在1401年就由DuchyMantua公司使用。在英文中,元音字母出現頻率最高,降低對應密文字母出現頻率的一種方法就是使用多名碼,如e可能被密文5、13或25替代。

多音碼代替

就是將多個明文字符代替為一個密文字符。比如將字母“i” 和“j”對應為“K”,“v”和“w”代替為“L”最古老的這種多字母加密始見於1563年由波他的《密寫評價》(De furtiois literarum notis)一書。

多表代替

即由多個簡單代替組成,也就是使用了兩個或兩個以上的代替表。比如使用有5個簡單代替表的代替密碼,明文的第一個字母用第一個代替表,第二個字母用第二個表,第三個字母用第三個表,以此類推,循環使用這五張代替表。多表代替密碼由萊昂.巴蒂斯塔於1568年發明,著名的維吉尼亞密碼和博福特密碼均是多表代替密碼。

 

2.置換密碼

置換密碼算法的原理是不改變明文字符,而是按照某一規則重新排列消息中的比特或字符順序,實現明文信息的加密。置換密碼有時又稱為換位碼。  

3.DES

算法思想:DES算法將輸入的明文分為64位的數據分組,使用64位的密鑰進行變換,每個64位明文分組數據經過初始置換、16次迭代和逆初始置換3個主要階段,最后輸出得到64位密文

4.MD5

MD5是 Rivest 於1991年對MD4的改進版本。與MD4算法一樣,MD5 算法將輸入的信息進行分組,每組仍以512 位(64個 字節),順序處理完所有分組后輸出128 位散列值。在每一組消息的處理中,都要進行4 輪、每輪16 步、總計64 步的處理。其中,每步計算中含一次左循環移位,每一步結束時將計算結果進行一次右循環移位。

5.非對稱加密算法

  (1)乙方生成兩把密鑰(公鑰和私鑰)。公鑰是公開的,任何人都可以獲得,私鑰則是保密的。

  (2)甲方獲取乙方的公鑰,然后用它對信息加密。

  (3)乙方得到加密后的信息,用私鑰解密。

如果公鑰加密的信息只有私鑰解得開,那么只要私鑰不泄漏,通信就是安全的。

四. 實驗內容及步驟:

分析替代密碼算法和置換密碼算法的功能需求,詳細設計實現替代密碼算法和置換密碼算法的數據結構和流程,給出測試用例和測試步驟,得出測試和結論。替代密碼算法和置換密碼算法的實現程序必須提供加密和解密兩個接口:int encrypt()和int decrypt()。當加密或者解密成功時返回CRYPT_OK,失敗時返回CRYPT_ERROR。

1替代密碼:

根據實驗遠離部分對替代密碼算法的介紹,創建明文信息,並選擇一個密鑰k,編寫替代密碼算法的實現程序,實現加密和解密操作。替代密碼包括多種類型,如單表替代密碼、多明碼替代密碼、多字母替代密碼、多表替代密碼等。替代密碼算法的遠離是使用替代法進行加密,就是將明文的字符用其他字符替代后形成密文。例如字母a、b、c、d,用D、E、F、G做對應替換后形成密文。參考代碼:daihuan.c

運行程序,對於明文:hello to myself 進行加密,密鑰:5,觀察密文是什么。對於密文解密出明文是否是hello to myself。請截圖:

 

再次運行程序,從鍵盤輸入你的姓名拼音進行加密,密鑰:5,觀察密文是什么。對於密文解密出明文。請截圖:

 

2置換密碼:

根據實驗原理部分對置換密碼算法的介紹,自己創建明文信息,並選擇一個密鑰,編寫置換密碼算法的實現程序,實現加密和解密操作。

置換密碼算法的原理是不改變明文字符,只將字符在明文中的排列順序改變,從而實現明文信息的加密。置換密碼有時又稱為換位密碼。

矩陣換位法是實現置換密碼的一種常用方法。它將明文中的字母按照給的順序安排在一個矩陣中,然后用根據密鑰提供的順序重新組合矩陣中字母,從而形成密文。

 

參考代碼如:zhihuan.c

運行程序,對於明文attack begins at five進行加密,密鑰:ciper,附運行程序后的截圖:

 

3.使用Cryptool軟件

A)  設密鑰為3,明文為hello world,使用凱撒密碼算法計算密文,並對密文解密,。請截圖顯示你的程序運行結果

 

B)設密鑰為SECURITY,明文為NETWORK INFORMATION SECURITY,使用維吉尼亞算法計算密文,並對密文解密。請截圖顯示你的程序運行結果

 

C)設密鑰為CIPHER,明文為balloon book fill,使用Playfair算法計算密文,並對密文解密。請截圖顯示你的程序運行結果

 

D)拓展訓練:搜索相關資料,了解希爾密碼(Hill Password)、ROT-13(回轉13位,rotateby13places,有時中間加了個減號稱作ROT-13)兩種密碼的原理,使用Cryptool軟件進行加解密實驗

練習1:明文為:

How can you tell an extrovert from an

introvert at NSA?Va gur ryringbef,

gur rkgebireg ybbxf ng gur BGURE thl'f fubrf.

使用ROT-13算法計算密文,並對密文解密。請截圖顯示你的程序運行結果

 

練習2甲方收到乙方的一封密文信息,密文如下:

WOWUYSBACPGZSAVCOVKPEWCPADKPPABUJCQLYXQEZAACPP

 

 請截圖顯示你的程序運行結果

E) 使用Cryptool軟件,用DES算法加密,任選密鑰,任選一個文件加密(約30M),並對密文解密。

 

 

F)  使用Cryptool軟件,生成自己的公鑰私鑰對,用RSA算法加密明文NETWORK INFORMATION SECURITY,並用私鑰對其解密。再用RSA算法加密剛才DES算法中加密的文件,比較兩種算法的運算時間。

 

 

G)  使用Cryptool軟件,用MD5計算消息“請於明天上午10點發起總攻”的散列值;再計算“請於明天上午11點發起總攻”的散列值,比較其不同。

 

使用MD5加密和破解工具

i) 使用MD5Verify加密字符串和文件

ii) 使用MD5Crack破解MD5密文

 

五、實驗結果與分析:

1、你所知道的古典密碼算法還有那些?詳細說明具體的加密和解密過程。

古典密碼學可以分為代替密碼(也叫做移位密碼)和置換密碼(也叫做換位密碼)兩種,其中代替密碼典型的有Caesar密碼,仿射變換等,置換密碼有單表置換和多表置換等。

單表置換:意思是一個明文字母對應的密文字母是確定的。根據這個特點,利用頻率分析可以對這樣的密碼體制進行有效的攻擊。方法是在大量的書籍、報刊和文章中,統計各個字母出現的頻率。例如,e出現的次數最多,其次是t,a,o,I等等。破譯者通過對密文中各字母出現頻率的分析,結合自然語言的字母頻 率特征,就可以將該密碼體制破譯。鑒於單表置換密碼體制具有這樣的攻擊弱點,人們自然就會想辦法對其進行改進, 來彌補這個弱點,增加抗攻擊能力。法國密碼學家維吉尼亞於1586年提出一個種多表式 密碼,即一個明文字母可以表示成多個密文字母。其原理是這樣的:給出密鑰 K=k[1]k[2]…k[n],若明文為M=m[1]m[2]…m[n],則對應的密文為C=c[1]c[2]…c[n]。 其中C[i]=(m[i]+k[i]) mod 26。例如,若明文M為data security,密鑰k=best,將明 文分解為長為4的序列data security,對每4個字母,用k=best加密后得密文為 C=EELT TIUN SMLR 從中可以看出,當K為一個字母時,就是凱撒密碼。而且容易看出,K越長,保密程度就越高。顯然這樣的密碼體制比單表置換密碼體制具有更強的抗攻擊能力,而且其加密、解密均可用所謂的維吉尼亞方陣來進行,從而在操作上簡單易行。該密碼可用所謂的維吉尼亞方陣來進行,從而在操作上簡單易行。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM