上海交通大學考研複試模塊小結——密碼學

好久沒有寫博客了,本來說的是自從成績出來要好好準備複試,結果距離成績出來一個月了,複試一點動靜都沒有,那我還是一邊準備相關的專業課,一邊按專業的形式,把相關的專業課知識再過一遍,哎~真是太難了!我都快忘了我自己考過研了。好了,廢話不多說,下面開始進入正題!

信息安全

  • 信息安全技術是防範攻擊的一種有效的技術手段保證,也是維護信息安全的一項基本措施。

信息安全的四大基本屬性

  • 保密性:指信息不會泄露給未授權訪問的用戶、實體,或被非法利用。保密性實質上就是信息只給合法授權用戶使用,而限制其他人訪問。保密性按性質分又可分爲:
    • 傳輸保密性:對傳輸中的數據信息的保密,解決方法一般是加密傳輸。
    • 存儲保密性:在存儲數據時的數據保密,通常通過訪問控制來實現。
  • 完整性:指數據未經授權不能被改變的特性。即,就是保證計算機信息數據不會受外界事件干擾而被改變和丟失。
  • 可控性:指對想信息的傳播和內容具有可以控制的能力
  • 可用性:指可授權訪問實體的特性。即,當需要時能否正常存取和訪問信息。各種對網絡的破壞、身份否認、拒絕以及延遲使用都破壞了信息的可用性。

信息安全的主流技術

  • 現代密碼學和數據加密技術
  • 防火牆技術
  • 入侵偵測系統
  • 代理服務器技術
  • 身份認證
  • 安全掃描

密碼學的基本概念和原理

密碼技術通過信息的變換和編碼,將機密的敏感信息換成黑客難以讀懂的亂碼型文字,主要目的有兩個:
  • 使不知道如何解密的黑客不可能從其截獲的亂碼中得到任何有意義的信息。
  • 使黑客不可能僞造任何亂碼型的信息。
密碼學的兩個分支
  • 密碼編碼學:對信息編碼以實現信息隱蔽
  • 密碼分析學:研究分析破譯密碼的學問
密碼系統的5個基本要素
  • 明文:被隱藏的原始消息
  • 密文:被加密處理後的消息
  • 加密算法:對明文加密時採用的一組規則是加密算法
  • 解密算法:對密文進行解密時採用的一組規則稱爲解密算法
  • 密鑰:密鑰是密碼系統的關鍵,通常它的安全性決定着密碼系統的安全性
下面看一下這5個基本要素在一個密碼系統中的體現:

圖1
圖2

密碼體制的分類

  • 明文轉換成密文的操作類型
    • 替換:明文的每一個元素被映射到另外一個元素
    • 換位:明文的元素都被再排列

特點:所有的操作都可逆。大多數體制或稱爲乘積體制包含了多級替換和換位組合。

乘積密碼:實際上是換位密碼和替換密碼的有限次組合,屬於混合密碼。由於換位密碼是字符的一種線性變化,能擴散輸入和輸出的相關性,而替代密碼則能使輸入和輸出稱爲非線性。因此,成績密碼在相當程度上可以抵禦破譯者的攻擊。
  • 使用的密鑰數:
    • 如果發送者和接收者使用同一密鑰,該體制就是對稱、單鑰、祕密密鑰或者稱傳統加密
    • 如果發送者和接收者使用不同密鑰,該體制就是不對稱、雙鑰、或者說公鑰加密
  • 明文的處理方式
    • 分組密碼:一次處理一個輸入元素分組,產生與分組對應的一個輸出分組。
    • 流密碼:在運行過程中連續處理輸入元素,每次產生一個輸出元素。

密碼系統的分類

  • 對稱密碼體制和非對稱密碼體制

    • 對稱密碼體制:又稱單鑰密碼體制。它的特點是無論加密還是解密都使用同一個密鑰,所以該密碼體制的安全性取決於密鑰的安全性。常見的對稱加密算法有DES,3DES和AES
      優點:
      安全性高,加密速度快。
      缺點:
      一、是隨着網絡規模的擴大,密鑰的管理成爲一個難點。
      二、是無法解決消息確認問題。
      三、是缺乏自動檢測密鑰泄露的能力。
    • 非對稱加密體制,又稱雙鑰體制,加密密鑰和解密密鑰不同,此時不需要安全信道來傳送密鑰,而只需利用本地密鑰發生器產生解密密鑰,並以此來控制解密操作。常見的雙藥體制的加密算法有RSA。
      優點:
      一、由於雙鑰體制的加密和解密密鑰不同,且能公開加密密鑰,而僅需保密解密密鑰,所以雙鑰密碼易於進行密鑰管理。
      二、雙鑰體制可以提供身份認證和數字簽名等新功能。
      缺點:
      密碼算法比較複雜,加密解密速度慢。
  • 分組密碼體制和序列密碼體制

    • 分組密碼體制是利用一個時變變換對明文進行逐個位處理。其加密方式是首先將明文序列以固定長度進行分組,每一組的明文用相同的密鑰和加密函數進行運算。爲了減少存儲量和提高運算速度,密鑰的長度一般不大,因而加密函數的複雜性稱爲系統安全的關鍵。分組密碼設計的核心是構造既具有可逆性又具有很強的非線性的算法。加密函數重複地使用代替和置換兩種基本的加密變換。常見的分組加密算法有:DES,3DES和AES
      優點:
      一、明文信息具有良好的擴散性
      二、對插入的敏感性高
      三、不需要密鑰同步
      四、具有較強的適應性,適宜作爲加密標準
      缺點:
      一、加密速度慢
      二、錯誤易於擴散和傳播
    • 序列密碼體制的加密過程是把明文序列與等長的密鑰序列進行逐位模2加。解密過程是把密文序列與等長的密鑰序列進行逐位模2加
      序列密碼的安全性主要依賴於密鑰序列。
      優點:
      一、處理速度快,實時性好
      二、錯誤傳播範圍小
      三、不存在串破譯問題
      四、適用於軍事、外交等保密信道
      缺點:
      一、明文擴散性差
      二、插入信息的敏感性差
      三、需要密鑰同步
  • 確定型密碼體制和概率密碼他體制

    • 確定型密碼體制指的是當明文和密鑰確定後,密文的形式也就唯一確定。
    • 概率密碼體制指的是當明文和密鑰確定以後,密文的形式仍是不確定的,最後產生出來的密文通過客觀隨機因素從一個密文集合選出。如插入式密碼算法。
      概率密碼體制增加了破譯的難度,但可能會顯著增加密文的長度,從而增加加密和傳送的代價。
  • 單向函數密碼體制和雙向函數密碼體制

    • 單向密碼體制只適用於一些不需要解密的場合,它可容易地將明文加密成密文,但反之是很困難的甚至是不可能的。這種技術可用於將產生的密文當做對應明文的一個內容完整性證明。因爲明文內容改變之後相應的密文內容也會改變。比較知名的單項密碼函數是MD5,稱爲消息摘要算法或者雜湊函數算法。
    • 雙向密碼體制可進行可逆的加密、解密變換,絕大多數加密算法屬於這一類。

Feistel 密碼結構

對於很多對稱分組加密算法(包括DES),其結構由IBM的Horest Feistel在1973年首次詳細描述,加密算法的輸入長度是2w比特的明文分組及密鑰K。明文被分成兩半:L0和R0。這兩半數據通過n輪處理後合成密文分組。第i輪輸入爲Li-1和Ri-1,由前一輪產生,同時子密鑰Ki由密鑰K產生。通常,子密鑰Ki與密鑰K不同,子密鑰相互之間也各不相同,他們都是通過子密鑰產生算法生成的。
Feistel 密碼結構是所有對稱分組密碼都使用的更通用結構的一個特例。
對稱分組密碼的具體操作取決於以下參數和設計屬性
  • 分組大小:越大的分組意味着越高的安全性,但減小了加密解密的速率。128比特大小的分組是一個合理的折中並且幾乎是進來分組密碼設計的普遍選擇。
  • 密鑰大小:越長的密鑰意味着越高的安全性,但會減小加密解密的速率。現代算法最普遍的密鑰長度是128比特。
  • 迭代輪數:多輪處理能提供更好的安全性。迭代輪數的典型大小是16。
  • 子密鑰產生算法:此算法的複雜度越高,密碼破譯難度就越高。
  • 輪函數:越高的複雜度意味着對破譯越高的阻力。

三個常見的對稱分組加密算法的介紹

一、數據加密標準(Data Encryption Standard)

DES由原美國國家標準局(現美國國家標準與技術研究所,NIST)於1977年採用,是目前最廣泛使用的加密方案。這個算法本身被稱爲數據加密算法(DEA)。
採用DES算法加密的明文長度爲64比特,密鑰長度爲56比特,更長的明文被劃分爲64比特的分組來處理,採用16輪迭代。
DES在1998年7月被證明不安全,使用當前的技術,甚至不需要使用特殊的專用硬件即可破解DES。

二、三重DES

3DES使用3個密鑰並執行3次DES算法,其組合過程依照加密-解密-加密(EDE)的順序進行:

圖3

3DES加密過程中的第二步使用的解密沒有密碼方面的意義。它的唯一好處是讓3DES的使用者能夠解密原來單重DES使用者加密的數據。
通過3個不同的密鑰,3DES的有效密鑰長度爲168比特。3DES也允許使用兩個密鑰,即令K1=K3,這樣密鑰長度就是112比特。
FIPS 46-3包含了3DES的如下規定:
  • 3DES是FIPS批准的可選對稱加密算法。
  • 使用單個56比特密鑰的原始DES,只在以往系統的標準下允許,新設計必須支持3DES。
  • 鼓勵使用以往DES系統的政府機構轉換到3DES系統。
  • 預計3DES與高級加密標準AES將作爲FIPS批准的算法共存,並允許3DES逐步過渡到AES。
3DES是一個強大的算法,因爲底層密碼算法是DEA,DEA聲稱的對基於其算法的破譯的抵抗能力,3DES同樣也有。

三、高級加密標準AES

3DES算法的優點
  • 由於168比特的密鑰長度,它克服了DEA對付窮舉攻擊的不足。
  • 3DES的底層加密算法和DEA相同,而這個算法比任何其他算法都經過了更長時間、更詳細的審查,除窮舉方法以外沒有發現任何有效的基於此算法的攻擊。
3DES算法的缺點
  • 算法軟件運行相對較慢。
  • DEA和 3DES都使用64比特大小的分組。但是出於效率和安全原因,需要更大的分組。
AES使用的分組爲128比特,密鑰長度可以爲128、192或256比特,加密和解密算法的輸入都是一個128比特的分組。
值得指出的特點之一是該結構不是Feistel 結構。典型的Feistel 結構,數據分組的一半用來代替另一半,然後兩部分對換。AES沒有使用Feistel 結構,而是在每輪替換和移位時都並行處理整個數據分組。

最後一個小問題:爲什麼公鑰密碼能夠用作身份認證數字簽名?

  • 這是基於公鑰加密算法的特點所提供的功能。
  • 公鑰加密算法有兩個不同的密鑰,一個是公開密鑰,一個是私有密鑰。
  • 一個用作加密的時候,另一個用作解密。
  • 使用其中一個密鑰把明文加密後所得的密文,只能用相對應的另一個密鑰才能解密得到原來的明文
  • 雖然兩個密鑰在數學上相關,但如果知道其中一個,並不能憑此計算出另外一個。因此其中一個可以公開,稱爲公鑰,任意向外發布
  • 不公開的密鑰爲私鑰,必須用戶自行嚴格祕密保管,絕不透過任何途徑向任何人提供,也不會透露給通信的另一方,即使另一方被信任
  • 所以,它可提供身份認證數字簽名的功能。
最後還是歡迎各位小夥伴兒關注我的微信公衆號:蜂蜜橘子,裏面有我個人一些感興趣的文章,有趣的經歷,來公衆號找我玩呀!

圖4

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