對稱加密體系

尹成發表於2018-11-14

#簡介
加密解密的過程中使用同一個金鑰,也稱作單金鑰加密。
例如:
I love you 每個字母按字母表的順序想後移動一位變成J mpwf zpv,而J mpwf zpv按字母表的順序向前移動一位變成I love you,此時加密和解密的過程中1就充當了金鑰的角色。I love you稱之為明文,J mpwf zpv稱之為密文
#對稱加密的問題
金鑰的配送:接收者A收到了B發來的密文,A要想進行解密,就必須使用和B進行加密時相同的金鑰,因此B必須要把金鑰也送給A。但是這樣就產生了一個矛盾,如果有一種方法能將金鑰傳送出去,那豈不是可以使用同樣的方法來傳送明文。
#對稱加密例項
##DES

  • DES是1997年美國聯邦資訊處理標準中所採用的一種對稱密碼演算法,一直以來被美國以及其他國家的政府和銀行等廣泛採用。隨著計算機的快速發展,DES已經被暴力破解,1997年用時96天破譯金鑰,1998年41天破譯金鑰,到了1999年只用22小時15分鐘就可以破譯。
  • DES是一種將64位元的明文加密成64位元的密文的對稱密碼演算法,它的金鑰長度是56位元。儘管從規格上來說,DES的金鑰長度是64位元,但是由於每隔7位元會設定一個用於錯誤檢查的位元,因此實質上其金鑰長度是56位元。
  • DES以64位元的明文為一個單位來進行加密,每64位元為一個分組。
  • DES每次每次只能加密64位元的資料,如果要加密的明文比較長,就需要對DES加密進行迭代,而迭代的具體方案就稱為模式。
  • DES內部實現理論:在des中各個步驟稱為輪,整個加密過程進行16輪迴圈。

單輪加密:
這裡寫圖片描述

  • 子金鑰:中間的子金鑰指的是本輪加密使用的金鑰,每一輪都需要使用一個不同的子金鑰,由於它只在一輪中使用,只是一個區域性金鑰,所以稱之為子金鑰。
  • 輪函式:根據右側和子金鑰生成對左側進行加密的位元序列,它是密碼體系的核心。將輪函式的輸出於左側進行XOR運算,其結果就是加密後的左側。

兩輪加密金鑰相同:
這裡寫圖片描述
連續兩輪加密的金鑰如果相同,相當於加密之後又進行解密。
三輪加密和解密分別如下:
這裡寫圖片描述
這裡寫圖片描述
右半部分實際上沒有進行任何處理,這在加密演算法中看起來是一種浪費,但卻保證了可解密性,因為完全沒有進行任何處理的右半部分是解密過程所必須的資訊。由於加密和解密可以用完全相同的結構來實現,因此用於實現DES演算法的硬體裝置的設計也變得容易了。

##3DES
(1).三重DES是為了增強DES的強度,將DES重複3次所得到的一種密碼演算法。
(2).3DES加密機制:
這裡寫圖片描述
對上圖說明:

  • 明文經過三次DES處理才能變成最後的密文,由於DES金鑰的長度實質上是56位元,因此三重DES的金鑰長度就是56*3=168位元。
  • 三重DES並不是進行三次加密(加密->加密->加密),而是加密->解密->加密的過程,這種設計是為了讓3DES能夠相容普通的DES。當三重DES所有金鑰都相同時,三重DES也就等於普通的DES了,這是因為在前兩部加密->解密之後,得到的就是最初的明文,因此以前DES加密的密文,也就可以通過這種方式用三重DES來進行解密。

(3).三重DES解密機制
3DES的解密過程和加密過程正好相反,是以金鑰3,金鑰2,金鑰1的順序執行解密->加密->解密的過程。
這裡寫圖片描述

##AES
AES是取代其前任標準DES而成為新標準的一種對稱密碼演算法。其是通過公開競選而制定的,組織該勁炫活動的是美國的一家標準化機構。在評選AES的時候不僅僅考慮到了一種演算法是否存在弱點,演算法的速度,實現的容易行也都考慮在內了。

#模式
##ECB模式
ECB模式的全稱是Electronic CodeBook,也稱之為電子密碼本模式,在ECB模式中,將明文分組加密之後的結果將直接稱為密文分組。
這裡寫圖片描述

ECB模式是所有模式中最簡單的一種。ECB模式中,明文分組與密文分組是一一對應的關係,因此,如果明文中存在多個相同的明文分組,則這些明文分組最終將被轉換為相同的密文分組。這樣一來,只要觀察一下密文,就可以知道明文中存在怎樣的重複組合,並可以以此為線索破譯密碼,因此ECB模式是存在一定風險的。

##CBC模式
CBC模式的全稱是Cipher Block Chaining模式(密文分組連結模式),之所以叫這個名字,是因為密文分組是像鏈條一樣互相連結在一起的。在CBC模式中,首先將明文分組與前一個密文分組進行XOR運算,然後在進行加密。
這裡寫圖片描述

初始化向量:當加密第一個明文分組時,由於不存在“前一個密文分組”,因此需要實現準備一個長度為一個分組的位元序列來代替“前一個密文分組”,這個位元序列稱為初始化向量,通常縮寫為IV。
分析:

  1. 假設CBC模式加密的密文分組中有一個分組損壞了(列入由於硬碟故障導致密文分組的值發生了改變),只要密文分組的長度沒有發生變化,則解密時最多隻會有2個分組收到資料損壞的影響。

  2. 假設CBC模式的密文分組中有一些位元缺失了(例如通訊錯誤導致沒有收到某些位元等),那麼此時即便只確實一個位元,也會導致分組的長度發生改變,此後的分組發生錯位,這樣一來,缺失位元的位置止嘔的密文分組也就全部無法解密了。

##CFB模式
CFB模式的全稱是Cipher FeedBack模式(密文反饋模式)。在CFB模式中,前一個密文分組被送回到密碼演算法的輸入端。所謂反饋,這裡指的就是返回輸入端的意思。
這裡寫圖片描述

d. OFB模式
OFB模式的全稱是Output-Feedback模式(輸出反饋模式)。在OFB模式中,密碼演算法的輸出會反饋到密碼演算法的輸入中。
這裡寫圖片描述
這裡寫圖片描述

學院Go語言視訊主頁
https://edu.csdn.net/lecturer/1928

清華團隊帶你實戰區塊鏈開發
掃碼獲取海量視訊及原始碼 QQ群:721929980
在這裡插入圖片描述

相關文章