天天看點

基于古典密碼算法、DES算法和RSA算法的密碼器制作

學資訊安全專業是必須要跟密碼打交道的,上周我們制作了基于古典密碼、DES算法和RSA算法的密碼器,說實話算法挺難的,做的時候是在老師提供的部分算法代碼的基礎上,又上網查了好多好多的資料,以及自學了微軟MFC的使用才做成的。

先簡單介紹一下古典密碼、DES和RSA。

古典密碼:

編碼方法包括置換和代換。把明文中的字母重新排列,字母本身不變,但其位置改變了,這樣編成的密碼稱為置換密碼。最簡單的置換密碼是把明文中的字母順序倒過來,然後截成固定長度的字母組作為密文。代換密碼則是将明文中的字元替代成其他字元。

DES:

DES全稱為Data Encryption Standard,即資料加密标準,是一種使用密鑰加密的塊算法,1977年被美國聯邦政府的國家标準局确定為聯邦資料處理标準(FIPS),并授權在非密級政府通信中使用,随後該算法在國際上廣泛流傳開來。

本次實驗中主要實作了cbc和ecb方法。

cbc方法我查資料的時候看到一篇不錯的部落格,放連結:DES-CBC

ecb比較簡單,放一個連結:DES-ECB

RSA:

RSA加密算法是一種非對稱加密算法。在公開密鑰加密和電子商業中RSA被廣泛使用。對極大整數做因數分解的難度決定了RSA算法的可靠性。換言之,對一極大整數做因數分解愈困難,RSA算法愈可靠。假如有人找到一種快速因數分解的算法的話,那麼用RSA加密的資訊的可靠性就肯定會極度下降。但找到這樣的算法的可能性是非常小的。今天隻有短的RSA鑰匙才可能被強力方式解破。到目前為止,世界上還沒有任何可靠的攻擊RSA算法的方式。隻要其鑰匙的長度足夠長,用RSA加密的資訊實際上是不能被解破的。

本實驗中實作RSA算法最困難的地方是大數生成,這部分我們找了網上一段不錯的代碼實作。

接下來放結果圖:

古典置換:

基于古典密碼算法、DES算法和RSA算法的密碼器制作

古典替代:

基于古典密碼算法、DES算法和RSA算法的密碼器制作

DES:

上半部分的文本加解密采用了cbc方法,下方檔案加解密采用了ecb方法。

檔案夾解密會将密文生成在一個新txt中,下方的框内顯示了它的路徑。

基于古典密碼算法、DES算法和RSA算法的密碼器制作

RSA:

基于古典密碼算法、DES算法和RSA算法的密碼器制作

之前沒有學過MFC,做課設的時候圖形界面是用easyx,但是用easyx做這麼一個界面有些過于繁瑣,是以對于MFC的應用我們也是邊學邊寫,但想要更熟練地應用這個技術還得再系統地學習一陣。總體來說收獲還是很大的。