日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

密码学101:密码

發布時間:2024/8/1 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 密码学101:密码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文是《圖解密碼技術》閱讀的總結性文章。

1.1 歷史上的密碼

現代的密碼通常用于計算機數據的加密,操作的是比特序列。但早在計算機誕生之前,加密技術就已經被使用了。歷史上使用過的密碼有這些:

  • 凱撒密碼:
    • 算法:通過將字母按照字母表順序進行平移的方式對文本進行加密;反平移解密
    • 密鑰:平移的位數
    • 缺點:可以通過暴力破解破譯
  • 簡單替換密碼:
    • 算法:通過一對一的字母替換表,將字母進行替換;反替換解密
    • 密鑰:26!
    • 特點:明文中字母的出現頻率與密文中的字母的出現頻率一致
    • 缺點:由于密鑰空間很大,很難暴力破解。但可以通過頻率分析的方式破譯
  • Enigma
    • 背景:由德國人Arthur Sherbius在20世紀初發明的機器,德語里為“謎”的意思
    • 加密:1. 使用每日密碼設置Enigma 2. 加密通信密碼,記下對應的密文 3. 根據通信密碼重新設置Enigma 4. 加密消息,記下對應的密文 5. 拼接
    • 解密:1. 分解密文 2. 使用每日密碼設置Enigma 3. 解密通信密碼 4.使用通信密碼重新設置Enigma 5. 解密消息
    • 特點:Enigma的設計不依賴于隱蔽式安全性(security by obscurity),即使拿到Enigma密碼機(密碼算法),只要不知道Enigma的設置(密鑰)就無法破解。
    • 缺點:通信密碼連續輸入兩次并加密;通信密碼人為選定;必須派發國防軍密碼本(每日密碼)

小結:研究上述歷史上的密碼可以看出,密碼算法和密鑰是分開的,解決了希望重復使用但重復使用會增加風險的問題。現代密碼算法中有一部分標準化的技術,將密碼算法作為共有財產被開發、研究和利用,但即便如此,密文的機密性也絲毫沒有降低,正是因為密碼算法和密鑰是分開的。密鑰才是密碼的精髓。

1.2 對稱密碼(共享密鑰密碼)——用相同的密鑰進行加密和解密

隨著計算機的誕生與發展,現代的密碼加密的內容從文本變成了由0和1排列而成的比特序列。兩個概念:

  • 編碼:將現實世界的東西映射為比特序列的操作
  • XOR:異或運算以下特性和加密解密步驟非常相似。明文A用密鑰B進行加密得到密文C,密文C用密鑰B解密得到明文A

??

實際上只要選擇一個合適的B,僅僅使用異或就可以實現一個高強度的密碼。對于密碼技術來說,“是否可以預測”非常重要,能夠產生不可預測的比特序列(隨機數),對密碼技術的貢獻是巨大的。

幾種加密技術:

  • 一次性密碼本
    • 原理:將明文與一串隨機的比特序列進行異或運算
    • 特點:由于無法判斷得到的是不是明文,所以一次性密碼本是無法破譯的
    • 缺點:密鑰配送、保存、重用、同步;需要生成大量的隨機數,不是通過計算機程序生成的偽隨機數,而必須是無重現性的真正隨機數
  • DES
    • 將64比特明文加密成64比特密文的對稱加密算法,密鑰長度為56比特,多出的7位用于錯誤校驗
    • 原理:16輪循環Feistel網絡
  • 三重DES
  • AES(Rijndael)
    • AES標準最終使用了Rijndael算法
    • 原理:通過替換、平移、矩陣運算、異或運算四個步驟進行加密;相反順序進行解密

小結:使用一種密鑰空間巨大且算法上沒有弱點的對稱密碼,就可以通過密文來確保明文的機密性。但使用對稱密鑰進行通信時,還會出現密鑰的配送問題。上述的這些算法,都只能將固定長度的分組進行加密,如果需要加密長文,需要對密碼算法通過一定的模式進行迭代。

1.3 公鑰密碼——用公鑰加密,用私鑰解密

使用對稱密碼進行通信時會出現密鑰的配送問題。如果有一種方式可以保證密鑰配送的絕對安全,那么為什么不用這種方式加密消息呢?為了解決密鑰問題,有以下幾種方案:

  • 事先共享密鑰
  • 密鑰分配中心:密鑰中心保存所有端的密鑰,密鑰中心生成臨時密鑰給予通信雙方進行通信
  • 使用Diffie-Hellman密鑰交換:僅傳輸一些信息然后自行生成密鑰
  • 公鑰密碼:接收方生成密鑰對,將公鑰派發給發送方用于消息加密,接收到密文后用私鑰解密

使用最廣泛的公鑰密碼算法——RSA

RSA可用于公鑰密碼和數字簽名。

RSA加密:E和N的組合就是公鑰

RSA解密:D和N的組合就是私鑰

生成密鑰對:求E、D和N這三個數就是生成密鑰對。計算過程(有時間補上)省略。

對RSA的攻擊

  • 通過密文求得明文:求離散對數的問題
  • 通過暴力破解找出D
  • 通過E和N求出D
  • 中間人攻擊:替換發送方的公鑰
  • 選擇密文攻擊:利用服務器的解密提示。由此產生了RSA-OAEP改良算法,填充了一些校驗信息,也支持改變密文的排列組合

小結:對稱密碼通過將明文轉換為復雜的形式來保證機密性,而公鑰密碼基于數學上困難的問題來保證機密性。但是,公鑰也存在缺點,比如無法防御中間人攻擊,運行速度遠低于對稱密鑰。

1.4 混合密碼系統——用對稱密碼提速,用公鑰密碼保護會話密鑰?

混合密碼系統組成機制:

  • 用對稱密鑰加密信息
  • 用為隨機數生成器生成對稱密碼加密中使用的會話密鑰
  • 用公鑰密碼加密會話密鑰
  • 從混合密碼系統外部賦予公鑰密碼加密時使用的密鑰

注意,混合密碼系統運用了偽隨機數生成器、對稱密鑰和公鑰密碼三種技術,其中每一種技術要素的強度都必須很高,以防止攻擊者集中攻擊其中薄弱環節。不僅強調單個技術要素的強度,技術要素之間的強度平衡也很重要。從長期運用的情況來看,公鑰密碼的強度應該高于對稱密鑰。

密碼技術的組合經常被用于構建一些實用的系統,如分組密碼模式,通過采用不同的分組密碼組合方式,構建具有不同特點的分組密碼模式。三重DES也是一種將三個DES組合在一起以增加密鑰長度的密碼技術。接下來的章節中,還會出現一些由多種技術組合而成的技術。

總結

以上是生活随笔為你收集整理的密码学101:密码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。