對稱加密體系
#簡介
加密解密的過程中使用同一個金鑰,也稱作單金鑰加密。
例如:
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。
分析:
-
假設CBC模式加密的密文分組中有一個分組損壞了(列入由於硬碟故障導致密文分組的值發生了改變),只要密文分組的長度沒有發生變化,則解密時最多隻會有2個分組收到資料損壞的影響。
-
假設CBC模式的密文分組中有一些位元缺失了(例如通訊錯誤導致沒有收到某些位元等),那麼此時即便只確實一個位元,也會導致分組的長度發生改變,此後的分組發生錯位,這樣一來,缺失位元的位置止嘔的密文分組也就全部無法解密了。
##CFB模式
CFB模式的全稱是Cipher FeedBack模式(密文反饋模式)。在CFB模式中,前一個密文分組被送回到密碼演算法的輸入端。所謂反饋,這裡指的就是返回輸入端的意思。
d. OFB模式
OFB模式的全稱是Output-Feedback模式(輸出反饋模式)。在OFB模式中,密碼演算法的輸出會反饋到密碼演算法的輸入中。
學院Go語言視訊主頁
https://edu.csdn.net/lecturer/1928
清華團隊帶你實戰區塊鏈開發
掃碼獲取海量視訊及原始碼 QQ群:721929980
相關文章
- 非對稱加密體系加密
- 對稱加密與非對稱加密加密
- 資料加密(對稱加密和非對稱加密)加密
- 編碼與加密(對稱加密與非對稱加密)加密
- 對稱加密、非對稱加密、RSA(總結)加密
- Linux系統中對稱加密和非對稱加密區別是什麼?Linux加密
- https中的對稱加密和非對稱加密HTTP加密
- 對稱加密和非對稱加密(一)初步理解加密
- 加密原理詳解:對稱式加密VS非對稱式加密加密
- 非對稱加密與 jwt加密JWT
- RSA 非對稱加密&解密加密解密
- Linux SSH是什麼?對稱加密和非對稱加密有何區別?Linux加密
- 聊聊對稱/非對稱加密在HTTPS中的應用加密HTTP
- 密碼學之對稱加密密碼學加密
- 對稱、非對稱的加密技術是如何對網站資料進行雙重加密?加密網站
- 非對稱加密--RSA原理淺析加密
- 對稱與非對稱密碼體制密碼
- 非對稱加密和數字證書加密
- 非對稱加密技術:共享祕鑰加密
- 非對稱加密和證書總結加密
- 非對稱加密演算法的思考加密演算法
- golang 中,非對稱加密的實現Golang加密
- golang 密碼學-1. 對稱加密Golang密碼學加密
- 理解區塊鏈的非對稱加密區塊鏈加密
- 前後端(PHP)使用AES對稱加密後端PHP加密
- 應用加密1;非對稱加密演算法揭祕加密演算法
- 前後端資料加密傳輸 RSA非對稱加密後端加密
- 對稱加密、非對稱加密、RSA、訊息摘要、數字簽名、數字證書與HTTPS簡介加密HTTP
- 第四篇:非對稱加密及RSA加密演算法加密演算法
- 非對稱加密中,加解密和簽名加密解密
- golang 密碼學-2. 非對稱加密Golang密碼學加密
- golang 中,對稱加密的程式碼實現Golang加密
- RSA非對稱加密演算法淺析加密演算法
- 【Java小工匠聊密碼學】–對稱加密–概述Java密碼學加密
- 資料加密 第四篇:對稱金鑰加密
- 非對稱加密演算法-RSA演算法加密演算法
- PHP 和 Web 端對稱加密傳輸|JSEncrypt|CryptoJSPHPWeb加密JS
- 資料加密 第五篇:非對稱金鑰加密