學習目標:
安全加密演算法體系—注重思想,不關注具體演算法
- 對稱加密
- 非對稱加密
- 單項散列加密
學習內容:
在互聯網上,我們通過網路互相傳遞資訊,那么在傳遞資訊的程序中,我們的資料真的是安全的嗎?我們在通過網路傳遞訊息時,我們的訊息是否會被人監聽,是否會被人攔截并篡改,我們都不得而知,那么我們是否能夠某種加密方式能夠保障我們的資料可以安全的傳遞給對方
首先先來了解一下對稱加密:
相傳古羅馬皇帝凱撒在打仗時曾經使用過以下方法加密軍事情報
倘若我的軍事情報內容是“attack”,那么我為了安全起見將內容加密,加密過后變成了“dwwdfn”,敵軍就算得到了這個情報,也不知道這個是什么意思,因為他們不知道如何將這串字串解密,但是自己人很快就可以將已經加密的情報還原成“attack”,具體程序如下:

上述例子我們 很容易肉眼可以觀察出key=3,func1的作用是將原文每個字符都向后移動3位,func2的作用是將輸入的字串每個字符都向前移動3位,這樣就實作了簡單的加密和解密,在加密和解密的程序中,我們使用的key都等于3,,在這種情況下,加密的密鑰和解密的密鑰相同,我們稱其為對稱加密,很好理解地,如果加密使用的key=3,解密使用的key=4,相信是不能將密文還原回去的,我們這邊暫且將{func1,func2}叫為“凱撒演算法”,發送方和接受方事先商定好使用該演算法進行通信,即加密使用func1,解密使用func2,
對稱加密問題:
那么對稱加密有什么缺點嗎?放在現在互聯網的環境來講,缺點主要有兩個,第一:在互聯網上面密鑰如何傳給對方,發送方總不可能大老遠坐車把密鑰給接受方送過去吧,如果在網路上傳輸密鑰,很有可能會被人截獲,那么我們發的資訊被別人也可以閱讀,第二:如何確保發送方的身份呢,萬一是別人冒充發送方給你發送的訊息,你也無法辨認這個發送方地真實身份,
針對對稱加密問題:引入非對稱加密
非對稱加密特點:發送方和接受方都有自己的公鑰和私鑰,同一個人的公鑰只能是自己的私鑰解開,同一個人的私鑰只能是自己的公鑰解開
考慮以下兩種情況:
1.發送方使用自己的私鑰加密明文,接著發送給接受方,
該情況下:資訊所有人都可以接受,因為所有人都可以拿著發送方的公鑰來進行解密,這樣操作,是不能保證資料安全性的,但是非常重要的一點是,這樣可以驗證發送方的身份,理由:發送方的私鑰只能由發送方的公鑰解,如果解密成功,就說明資訊是發送方的私鑰加密的,并且發送方的私鑰在理論上只有發送方擁有,那就說明這個資訊的的確確是是發送方送來的,這起到了身份驗證的作用(數字簽名)
2,明文使用接受方的公鑰加密,接受方使用自己的私鑰解密,
該情況下:只有接受方可以解密密文,這起到了資料加密的效果
現在模擬A和B通信,設A的公私鑰分別為public_A,private_A,B的公私鑰分別為public_B,private_B,待發送的內容為message

非對稱演算法問題
非對稱演算法雖然安全,但是演算法時間成本太大 ,特別針對大檔案解密,解密非常吃力,上述的例子中還使用了兩次的公私鑰加解密,實為不妥當;另外網路中可能由于傳輸不穩定,導致檔案部分損壞也是有可能的,那么資料又是有問題的,
針對上述問題,配合單向散列(hash)來解決時間問題及檔案損壞問題
單向散列特點:
1.任意長度輸入,固定長度輸出
2.雪崩效應(修改一點點,輸出的結果【叫做摘要】會發生巨大的改變);資料一樣,hash結果一樣
3.只能加密,不能解密
最終A,B雙方傳輸程序如下圖,綜合使用對稱加密,非對稱加密,以及單向散列加密

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/164935.html
標籤:其他
