密碼學算法及應用(一)

問題

       隨着互聯網和物聯網的發展,安全性問題也顯得尤爲重要,關於用戶信息泄露或者網站安全漏洞的報道也越來越多。

信息安全

  • 本地敏感信息的機密性

     -- 數據庫或文件中關鍵字段的加密

     -- 訪問授權限制

  • 網絡傳輸的安全性

     -- 身份的合法性

     -- 通信的機密性

     -- 信息的完整性


       要解決這些問題,需要計算機密碼學 + 授權限制 + 規章制度等各種措施去保障


       網絡傳輸過程環境更復雜,不可控性更大,所以 重點講網絡傳輸的安全性和怎樣使用密碼學算法解決此問題。

網絡傳輸的安全性

       互聯網中使用最廣泛的協議就是HTTP,而HTTP是不安全的存在的問題。

     -- 網站的合法性

     -- 客戶端的合法性

     -- 通信的機密性

     -- 信息的完整性

HTTPS就是來解決這些問題的


如何解決?

  • 網站的合法性 -- 證書
  • 客戶端的合法性 -- 證書
  • 通信的機密性 – 數據加密
  • 信息的完整性 – 消息認證碼


實現過程需要用到各種密碼學算法

密碼學算法分類

  • 消息編碼:如BASE64
  • 對稱加密:DES 3DESAES(最新標準)
  • 非對稱加密:RSADH祕鑰交換
  • 摘要算法:MD類、SHA類、MAC
  • 簽名算法:RSASignatureDSASignature

       

       其中籤名算法是非對稱加密和摘要算法的組合應用

學習的意義

      學會了這些算法,我們可以根據實際情況進行組合應用,來保證通信的安全性;不一定要全套都走HTTPS

BASE64編碼

        用來對二進制數據進行編碼,轉換成一個字符串;比如:二進制的祕鑰、圖片,或者url中傳的字符串(變成不易被識別的字符),你可以把它理解成一個公開了祕鑰的加密算法(祕鑰就是BASE64的編碼表)

算法    3*8 = 4*6     不夠的補0

         Base64編碼要求把38位字節(3*8=24)轉化爲46位的字節(4*6=24),之後在6位的前面補兩個0,形成8位一個字節的形式。 如果剩下的字符不足3個字節,則用0填充,完全的六位填充輸出字符使用'=',因此編碼後輸出的文本末尾可能會出現12'='

爲了保證所輸出的編碼位可讀字符,Base64制定了一個編碼表,以便進行統一轉換。編碼表的大小爲2^6=64,這也是Base64名稱的由來。

BASE64編碼表

  

example 

hello  --->  aGVsbG8=

1.  hello --> 01101000 01100101 01101100 01101100 01101111

2.  補全 01101000 01100101 01101100 01101100 01101111 00000000

3.  6bit作爲一個編碼單位

011010 000110 010101 101100 011011000110 111100 000000

   26           6               21       4427              6          60=

     a           GV        s             bG          8             =

加密通信模型


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章