生活随笔
收集整理的這篇文章主要介紹了
密码学入门1——凯撒密码和三重DES加解密
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
| 實驗目的 | 1、完成第一個入門加解密——凱撒密碼 2、完成當下較為流行的三重DES加解密技術 3、熟悉所學的實際運用方向 ? |
| 實驗準備 | 硬件:計算機或筆記本電腦 操作系統:Mac操作系統 IDE環境:Eclipse 程序語言:Java |
一、實驗基本思想 入門密碼實現——凱撒密碼 ? ? ·原理:明文中所有字母都在字母表上向后(或向前)按照一個固定數目進行偏移后被替換成密文。例如,當偏移量是3的時候,所有的字母A將被替換成D,B變成E,以此類推。 ·缺陷:密鑰空間過小,一共只有26位字母的選擇,也就是說,其輪換的變化一共也僅有26種。 ·捷徑攻擊:可以通過頻率分析的方法,根據統計每一個密文字母出現的頻次,再結合英文實際的字母出現頻次,可以大幅地提升破解推測速度。 ? ? 2、三重DES算法 在課程學習中我們知道,隨著美國國密標準DES日漸衰微,其密鑰空間過小的弊病使得窮舉式攻擊變得容易。故而在DES算法的基礎上進行改良的三重DES算法成為了較為優秀的選擇。三重DES算法的本質是將DES重復3次,從而大大提高密鑰空間,將原本56位的DES密鑰長度,提高到56*3=168比特的3DES密鑰長度。 tips:三重DES的本質是執行三次DES加密,那么就是【加密>加密>加密】嗎? 答案是否定的,三重加密的內在是【加密>解密>加密】。而且值得注意的是,這里的三次加密解密操作的密鑰都是不同的! | 二、實驗代碼 1、凱撒密碼 ? ? ? 2、三重DES算法 2.1密鑰生成和保存(對象序列和字節) ? ? ? 2.2對稱密鑰加密 ? 2.3 對稱密鑰解密 ? | 三、實驗結果 1、凱撒密碼 ? ? 在Run Configuration中設置我們的參數 “Hello World” 3 ? 運行后,輸出加密后的密文 ? 回到run configuration界面,這次我們輸入“密文” -3 ? 運行后,解密成功! ? ? 2、對稱密鑰加解密(以三重DES為例) 2.1 對象序列 編寫對稱加密代碼,運行后,在文件夾下生成一個key1.dat文件。 ? ? 2.2 字節方式 運行密鑰生成程序,我們可以看到密鑰的內容: ? 生成了一個新的文件:keykb1.dat ? 運行后,生成如下字節串。 ? ? 問題:未能打印解密的Hello?World 通過代碼對比軟件,分析發現是UTF8習慣寫成UTF-8了,訂正后錯誤解決。 ?? ?? ? | 四、實驗總結 ? 1、在進行實驗之前,再度回顧了關于對稱加密算法的基礎原理,發現又有了更為深刻的理解和認識。 ·例如在凱撒密碼中,我原本以為只是字符+偏移量就能簡單實現,但是卻忽略了26個字母在a之前和z之后的輪轉問題。 ·例如三重DES加密算法中,我們都知道本質是進行三次DES加密,但是三次加密不等于【加密>加密>加密】,而是【加密>解密>加密】。而且值得注意的是,這里的三次加密解密操作的密鑰都是不同的! ? ? 2、遇到問題是常見的,重要的是解決問題的方法。在沒有報錯卻無法正常運行的時候,我嘗試通過代碼比對工具,快速的找到了存在問題的地方,相較于過去一行一行的檢查,更為快速和精確的定位到了錯誤。 ? ? 3、最后說到對密碼學和信息安全的好奇與樂趣,莫過于一部叫做《沒有絕對安全的系統》這部電影,介紹了密碼破譯原理、社會工程學、香腸攻擊、午餐攻擊等多個有趣的內容,讓我第一次產生了對于黑客的好奇,也希望隨著后續學習的不斷深入,能夠揭開密碼攻防的神秘面紗。 最后以電影中的一句話作為結束吧。 ? ? ? ? ? ? ? ? ? ? ? ? ?“每個人都只想看到他想看到的,而人類才是系統中最大的漏洞。” ? ? |
|
總結
以上是生活随笔為你收集整理的密码学入门1——凯撒密码和三重DES加解密的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。