密碼學入門1——凱撒密碼和三重DES加解密

實驗目的

1、完成第一個入門加解密——凱撒密碼

2、完成當下較為流行的三重DES加解密技術

3、熟悉所學的實際運用方向

?

實驗準備

硬件:計算機或筆記本電腦

操作系統:Mac操作系統

IDE環境:Eclipse

程序語言:Java

一、實驗基本思想

  1. 入門密碼實現——凱撒密碼

?

?

·原理:明文中所有字母都在字母表上向后(或向前)按照一個固定數目進行偏移后被替換成密文。例如,當偏移量是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、最后說到對密碼學和信息安全的好奇與樂趣,莫過于一部叫做《沒有絕對安全的系統》這部電影,介紹了密碼破譯原理、社會工程學、香腸攻擊、午餐攻擊等多個有趣的內容,讓我第一次產生了對于黑客的好奇,也希望隨著后續學習的不斷深入,能夠揭開密碼攻防的神秘面紗。

最后以電影中的一句話作為結束吧。

?

? ? ? ? ? ? ? ? ? ? ? ?“每個人都只想看到他想看到的而人類才是系統中最大的漏洞。”

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/257747.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/257747.shtml
英文地址,請注明出處:http://en.pswp.cn/news/257747.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

老李談JVM內存模型

老李談JVM內存模型 poptest是國內唯一一家培養測試開發工程師的培訓機構,以學員能勝任自動化測試,性能測試,測試工具開發等工作為目標。如果對課程感興趣,請大家咨詢qq:908821478,咨詢電話010-84505200。 J…

emqx 使用端口_數據傳輸、存儲、展現,EMQ X + TDengine 搭建 MQTT 物聯網數據可視化平臺...

物聯網數據采集涉及到大量設備接入、海量的時序數據傳輸,EMQ X 消息中間件與 TDengine 大數據平臺的組合技術棧完全能夠勝任場景中的海量時間序列監測數據的傳輸、存儲和計算。數據入庫后,往往需要其他方式如數據可視化系統將數據按照規則統計、展現出來…

站點CSS樣式不起作用,或僅僅有一部分起作用?隨手記

事件:網頁中使用了相同的樣式,下半部分正常顯示,上半部分樣式所有丟失不能顯示。解決:改動了相應的CSS樣式文件的編碼 這個是最沒有想到的解決的方法。怎樣調試:通過右鍵頁面查看編碼為UTF-8 或 GBK 看到樣式正常顯示&…

大數據--循序漸進的大數據(2)

一、Hdfs 架構 訪問 (1) ----nameNode(2) |||dataNode每隔一段時間secondaryNameNode會將fsimage和edits進行合并產生心得fsimage;1、Hdfs 適用場景數據密集型并行計算計算密集并行計算2、不適合的場景HDFS不合適大量小文件的儲存HDFS適用于高吞吐量,…

virtualbox 啟動時Kernel driver not installed (rc=-1908) 錯誤的解決方法

virtualbox 啟動時Kernel driver not installed (rc-1908) 錯誤的解決方法 網上的方法各種各樣,結果繞山繞水一點用沒有,就下面這句就行 sudo /Library/Application\ Support/VirtualBox/LaunchDaemons/VirtualBoxStartup.sh restart昨天更新了下系統&a…

ios開發之-繼承的實現運用

// // main.m // 繼承 ////#import <Foundation/Foundation.h> #import "Animal.h" #import "Cat.h" #import "Dog.h" #import "FeedMan.h"int main(int argc, const char * argv[]) {// Animal * animal [Animal new]; /…

查找字段 如何 過濾

dm.ADOTbBug 使用Filter 屬性的話&#xff0c;不能包括 查找字段。 方法1 在過濾事件里 使用查找字段。 http://www.itdelphi.com/delphibbs/doc/2001/558361.htm 方法2 就是使用查找字段對應的KeyFields 為字段名。 比如查找字段是 部門名稱&#xff0c;對應的數據集里KeyFiel…

python字符串去頭尾_帶你認識優秀的python代碼

有一串長的字符串names "LI XIA , ZHAO MING ,LAO WANG *,DA XIONG >,LI MEI MEI, CHANG JIANG,LI QIANG,ZHANG WU JI,ZHANG SAN FENG,DU GU QIU BAI,QIAO FENG"。要求&#xff1a;&#xff08;1&#xff09;過濾所有的名字&#xff0c;去掉每個名字左右的空格和…

python學習筆記之裝飾器、遞歸、算法(第四天)

參考老師的博客&#xff1a; 金角&#xff1a;http://www.cnblogs.com/alex3714/articles/5161349.html 銀角&#xff1a;http://www.cnblogs.com/wupeiqi/articles/4963027.html 一、冒泡算法實例&#xff1a; a [32,5,22,41,7,31,12,102,74,37,9,25] 1、方法1&#xff1a; c…

數字信號處理筆記1-信號與常見操作

年輕人&#xff0c;你對數學一無所知&#xff0c;你只是習慣了而已。 —馮諾伊曼 前言 本學期開始跟著實驗室學習計算機視覺領域&#xff0c;而一個重要的基礎知識就是《數字圖像處理》&#xff0c;而數字信號處理作為一個大類&#xff0c;可以將數字圖像處理理解為數字信號處…

[linux驅動]linux驅動模塊

一&#xff0c;內核模塊的概念 經常在內核驅動代碼看到類似fs_init()等驅動初始化函數&#xff0c;那么這個和module_init()函數的差別在哪里&#xff0c;宏定義__define_initcall(level,fn)對于內核的初始化很重要&#xff0c;他指示編譯器在編譯的時候&#xff0c;將一系列初…

看我如何基于PythonFacepp打造智能監控系統

由于種種原因&#xff0c;最近想親自做一個基于python&facepp打造的智能監控系統。 000&#xff1a;萌芽 1&#xff1a;暑假在家很無聊 想出去玩&#xff0c;找不到人。玩個lol&#xff08;已卸載&#xff09;&#xff0c;老是坑人。實在是無聊至極&#xff0c;不過&#x…

c++ 遍歷所有點且距離最短_編程小白暑期進階筆記41-C語言數據結構與算法圖遍歷的應用...

基于廣度優先遍歷算法的應用思考題&#xff1a;&#xff08;思考題答案&#xff1a;BFS(廣度優先遍歷)在一般的帶權圖中是不能解決最短路問題&#xff0c;了解BFS的都知道&#xff0c;BFS是根據節點到源節點之間的節點數遍歷的&#xff0c;也就是先訪問離源節點節點數最少的點。…

underscorejs-groupBy學習

2.18 groupBy 2.18.1 語法 _.groupBy(list, iteratee, [context]) 2.18.2 說明 把list分為多個集合&#xff0c;iterator為分組的依據,返回值為Object list可以是數組、對象、字符串或arguments等iteratee為分組的依據.iterator的參數(value, key, list)iterator如果是function…

關于@WebServlet(“LoginServlet“)404 報錯的解決辦法 “請求的資源[/test/LoginServlet] 不可用”

關于WebServlet&#xff08;“LoginServlet”&#xff09;404 報錯的解決辦法 “請求的資源[/test/LoginServlet] 不可用” *一切事物的開頭總是困難這句話&#xff0c;在任何一種科學上都是適用的。 * ——馬克思 一個困擾了我n天的問題&#xff0c;終于終于還是解決了&#…

ASP.NET MVC+EF框架+EasyUI實現權限管理系列(14)-主框架搭建

ASP.NET MVCEF框架EasyUI實現權限管理系列(14)-主框架搭建 原文:ASP.NET MVCEF框架EasyUI實現權限管理系列(14)-主框架搭建ASP.NET MVCEF框架EasyUI實現權限管系列 (開篇) (1):框架搭建 (2):數據庫訪問層的設計Demo (3):面向接口編程 (4 ):業務邏輯層的封裝 (5):前臺…

常用事務代碼 sap_SAP_PS_事務代碼

[轉]SAP PS常用事務代碼T-CODESAP項目系統(Project System&#xff0c;以下簡稱PS)模塊作為傳統的非常規模塊(除FI、CO、MM、PP、SD之外的模塊)之一&#xff0c;在最近幾年在國內也得到的較為廣泛的應用,與PS應用火熱場景相對應的是PS內外部顧問的極度缺乏。這種缺乏一方面表現…

Java 冒泡排序的實現

實現原理&#xff1a; 比較相鄰的元素。如果第一個比第二個大&#xff0c;就交換他們兩個。 對每一對相鄰元素作同樣的工作&#xff0c;從開始第一對到結尾的最后一對。在這一點&#xff0c;最后的元素應該會是最大的數。 針對所有的元素重復以上的步驟&#xff0c;除了最后一個…

CLion for mac安裝配置

前言 本文詳細多圖介紹 IntelliJ IDEA For Mac的激活教程&#xff0c;相當于永久激活 文件包百度云下載&#xff1a;(通過與熊論道網站解密&#xff09; 熊曰&#xff1a;呋溫捕嘿誘襲氏樣溫住既非破哮誒襲非捕溫肉性盜森魚非襲啽蜜呦訴嘿溫類盜山寶住出森非喜誘捕發嗥既肉嗅…

solr后臺界面介紹——(十一)

1.加一個collection的方法 復制solr-home下的collection1&#xff0c;修改名字為collection2。并且修改collection2文件夾中配置文件core.properties中的名字為collection2&#xff0c;重啟服務器。 2.后臺界面介紹 Dashboard 儀表盤&#xff0c;顯示了該Solr實例開始啟動運行的…