當前位置:首頁 » 密碼管理 » 分組密碼加密

分組密碼加密

發布時間: 2023-01-17 15:27:24

A. 04.現代常見分組加密演算法

1.Triple DES

2.IDEA

3.RC6

4.RC6

5.ASE

其實就是有3個密鑰k1,k2,k3,如果m表示明文,C表示密文,他們是這樣操作的:

DES1(m)=>C1

DES2(C1)=>C2

DES3(C3)=>C3

DES密鑰太短是其短板,3DES密鑰長度為k1+k2+k3 = 56*3 = 168bit

既然都Triple自然就有double,為什麼不用Double DES呢?

我們先來看下double des:

首先根據DESC密鑰太短的特點,的確是有了double desc,可用中間相遇攻擊破解(老師坑爹沒講什麼是中間相遇攻擊,日後補上),經過加密有2^64個可能的密文,密鑰長度為112bit(56+56),所以選擇密鑰的可能性達到2^112,於是對給定一個明文P加密成密文有2^112/2^64 = 2^48種可能,對於給定兩個明文密文對,虛警率降為2^(46-64)=2^-16,用中間相遇攻擊大概可用2^57 可暴力破解

那麼如何解決中間相遇攻擊呢?於是設計出了Triple des,它一共有四種模式:

1.DES-EEE3:3個不同的密鑰,順序用三次加密演算法

2.DES-EDE3:3個不同的密鑰, 加密-解密-加密

3.DES-EEE2:兩個不同的密鑰,k1,k2,k1,依次k1加密,k2加密,k1加密

4.DES-EDE2:兩個不同的密鑰,k1,k2,k1,依次k1加密,k2解密,k1加密

這里我們著重介紹第四種,DES-EDE2

同DES相比有如下特點:

1.3DES安全性高,密鑰長度大於DES

2.3DES可抵抗中間相遇攻擊

3.可向下兼容,我們設k2=k1,則密鑰均為k1,上圖中A過程加密後在B過程解密,最後在C過程又加密,相當於僅用k1加密一次,兼容了DES,解密同理

4.相比於DES效率低些

要求:1.效率比3DES高

            2.至少和3DES一樣安全,數據分組長度128bit

它有如下特點:

1.不屬於Feistel結構,屬於SP網路

2.加密,解密相似但不對稱

3.支持128/32=Nb數據塊大小

4.支持128/192/256(/32=Nk)密鑰長度

5.結構簡單速度快

什麼是Feistel結構?

    Feistel 的優點在於:由於它是對稱的密碼結構,所以對信息的加密和解密的過程就極為相似,甚至完全一樣。這就使得在實施的過程中,對編碼量和線路傳輸的要求就減少了幾乎一半

什麼是SP網路結構?

    在這種密碼的每一輪中,輪輸入首先被一個由子密鑰控制的可逆函數S作用,然後再對所得結果用置換(或可逆線性變換)P作用,S和P分別被稱為混亂層和擴散層,主要起混亂和擴散作用

通過置換和替換迭代加密(最後一輪沒有列混淆)

B. 分組密碼DES

DES是分組密碼,分組密碼將消息進行等長分組,使用同一密鑰對每個分組進行加密。

1.給定一個明文m,首先通過一個固定的初始置換ip得到m0,然後將m0分為左右兩部分,即m0=L0+R0,分別為m0的左右兩部分,均為32位。ip置換的作用是使打亂原來的順序。

2.使用密鑰對R0和L0進行16輪迭代運算,運算規則:

3.DES的核心是非線性函數f,函數的輸入有兩個變數,一個是32bit的Ri-1,另一個是48bit的ki-1,輸出的結果為32bit。

5.將上步得到的8個6bit的串,分別作為S盒的輸入,每個S盒都將6bit的消息映射成一個4bit的消息,X1X6轉換成十進制,對應表中的行號,X2X3X4X5轉換成十進制,對應於表中的列號,通過對比S盒返回一個數字,將數字轉換為四個二進製表示的數。

6.運行完8個S盒後,返回32bit的串,再將這32bit使用P置換,即可得到f函數的輸出。
7.最後一輪迭代,左右兩個32bit並不叫喚,再對R16L16進行ip逆置換,即可得到密文c。

C. 分組密碼加密模式選擇有哪些

分組密碼工作模式的應用背景:多次使用相同的密鑰對多個分組加密,會引發許多安全問題。為了應對不同場合,因而需要開發出不同的工作模式來增強密碼演算法的安全性。ECB特別適合數據較少的情況,對於很長的信息或者具有特定結構的信息,其大量重復的信息或固定的字元開頭將給密碼分析者提供大量的已知明密文對。若明文不是完整的分組,ECB需要進行填充。CBC(Cipher Block Chaining)由於加密演算法的每次輸入和本明文組沒有固定的關系,因此就算有重復的明文組,加密後也看不出來了。為了配合演算法的需要,有一個初始向量(IV)。與ECB一樣有填充機制以保證完整的分組。CFB(Cipher Feedback)和OFB,CTR模式一樣,均可將分組密碼當做流密碼(實際是將分組大小任意縮減)使用。

D. 關於分組密碼CBC模式與CTR模式的對比

在對稱分組密碼體制中 CBC模式(密文分組鏈接模式) CTR模式(計數器模式) 是安全性最高且最常用的兩種模式,在這兩種模式中前一分組會以不同的形式影響下一分組的加密過程,因此這兩種模式的安全性相對較高。

在項目研發過程中,需求是要在嵌入式節點間實現實時安全通信,而CTR模式能夠支持並行加解密過程計算,因而 在項目中選擇CTR模式的SM4對稱加密演算法。

以下對於分組密碼中CBC模式以及CTR模式的原理進行簡單介紹:

CBC模式的全稱是Cipher Block Chaining模式(密文分組鏈接模式),之所以叫這個名字,是因為密文分組像鏈條一樣相互連接在一起。首先將明文分組與前一個密文分組進行XOR運算,然後再進行加密。 註:對於第一個分組需要構造一個長度為分組長度的初始向量IV。

1)能夠隱蔽明文的數據模式,相同的明文對應的密文一般是不同的;

2)無法單獨對中間的明文分組進行加密。例如,如果要生成密文分組3,必須按序生成密文分組1和密文分組2。

CTR模式全稱counter模式(計數器模式)。CTR模式通過對逐次累加的計數器加密來生成密鑰分組與明文分組異或產生密文分組。

CTR模式的解密過程將明文分組與密文分組位置調換即可。

從原理圖中可以看出:

1)能夠隱蔽明文的數據模式,相同的明文對應的密文一般是不同的;

2)CTR模式中可以以任意順序對分組進行加密和解密,能夠以任意順序處理分組,意味著能夠實現並行計算。使用並行計算,CTR模式的加解密是非常快的。

E. 分組密碼的演算法要求

分組密碼演算法實際上就是密鑰控制下,通過某個置換來實現對明文分組的加密變換。為了保證密碼演算法的安全強度,對密碼演算法的要求如下。 加密速度慢,錯誤擴散和傳播。
分組密碼將定長的明文塊轉換成等長的密文,這一過程在秘鑰的控制之下。使用逆向變換和同一密鑰來實現解密。對於當前的許多分組密碼,分組大小是 64 位,但這很可能會增加。
明文消息通常要比特定的分組大小長得多,而且使用不同的技術或操作方式。這樣的方式示例有:電子編碼本(ECB)、密碼分組鏈接(CBC)或密碼反饋(CFB)。ECB 使用同一個密鑰簡單地將每個明文塊一個接一個地進行加密;在 CBC 方式中,每個明文塊在加密前先與前一密文塊進行「異或」運算,從而增加了復雜程度,可以使某些攻擊更難以實施。 「輸出反饋」方式(OFB)類似 CBC 方式,但是進行「異或」的量是獨立生成的。 CBC 受到廣泛使用,例如在 DES(qv)實現中,而且在有關密碼術的技術性方面的相應書籍中深入討論了各種方式。請注意:您自己建立的 密碼系統的普遍弱點就是以簡單的形式來使用某些公開的演算法,而不是以提供了額外保護的特定方式使用。
迭代的分組密碼是那些其加密過程有多次循環的密碼,因此提高了安全性。在每個循環中,可以通過使用特殊的函數從初始秘鑰派生出的子密鑰來應用適當的變換。該附加的計算需求必然會影響可以管理加密的速度,因此在安全性需要和執行速度之間存在著一種平衡。天下沒有免費的午餐,密碼術也是如此;與其它地方一樣,應用適當方法的技巧中有一部分是源於對需要進行的權衡以及它們與需求平衡的關系如何的理解。
分組密碼包括DES、IDEA、SAFER、Blowfish和 Skipjack — 最後一個是「美國國家安全局(US National Security Agency,NSA)」限制器晶元中使用的演算法。

F. 分組密碼的五種工作模式

常見的分組密碼工作模式有ECB、CBC、CFB、OFB、CTR五種,下面通過流程圖分別展示了5大模式的分組密碼工作加解密的流程。

ECB(Electronic Codebook, 電子密碼本)模式是最簡單的加密模式,明文消息被分成固定大小的塊(分組),並且每個塊被單獨加密。
每個塊的加密和解密都是獨立的,且使用相同的方法進行加密,所以可以進行並行計算,但是這種方法一旦有一個塊被破解,使用相同的方法可以解密所有的明文數據,安全性比較差。
適用於數據較少的情形,加密前需要把明文數據填充到塊大小的整倍數。

CBC(Cipher Block Chaining, 密碼塊鏈)模式中每一個分組要先和前一個分組加密後的數據進行XOR異或操作,然後再進行加密。
這樣每個密文塊依賴該塊之前的所有明文塊,為了保持每條消息都具有唯一性,第一個數據塊進行加密之前需要用初始化向量IV進行異或操作。
CBC模式是一種最常用的加密模式,它主要缺點是加密是連續的,不能並行處理,並且與ECB一樣消息塊必須填充到塊大小的整倍數。

CFB(Cipher Feedback, 密碼反饋)模式和CBC模式比較相似,前一個分組的密文加密後和當前分組的明文XOR異或操作生成當前分組的密文。CFB模式的解密和CBC模式的加密在流程上其實是非常相似的。

OFB(Output Feedback, 輸出反饋)模式將分組密碼轉換為同步流密碼,也就是說可以根據明文長度先獨立生成相應長度的流密碼。通過流程圖可以看出,OFB和CFB非常相似,CFB是前一個分組的密文加密後XOR當前分組明文,OFB是前一個分組與前一個明文塊異或之前的流密碼XOR當前分組明文。由於異或操作的對稱性,OFB模式的解密和加密完全一樣的流程。

CTR(Counter, 計數器)模式與OFB模式一樣,計數器模式將分組密碼轉換為流密碼。它通過加密「計數器」的連續值來產生下一個密鑰流塊,

轉自 https://blog.csdn.net/shaosunrise/article/details/80035297

G. des加密演算法

des加密演算法如下:

一、DES加密演算法簡介

DES(Data Encryption Standard)是目前最為流行的加密演算法之一。DES是對稱的,也就是說它使用同一個密鑰來加密和解密數據。

DES還是一種分組加密演算法,該演算法每次處理固定長度的數據段,稱之為分組。DES分組的大小是64位,如果加密的數據長度不是64位的倍數,可以按照某種具體的規則來填充位。

從本質上來說,DES的安全性依賴於虛假表象,從密碼學的術語來講就是依賴於「混亂和擴散」的原則。混亂的目的是為隱藏任何明文同密文、或者密鑰之間的關系,而擴散的目的是使明文中的有效位和密鑰一起組成盡可能多的密文。兩者結合到一起就使得安全性變得相對較高。

DES演算法具體通過對明文進行一系列的排列和替換操作來將其加密。過程的關鍵就是從給定的初始密鑰中得到16個子密鑰的函數。要加密一組明文,每個子密鑰按照順序(1-16)以一系列的位操作施加於數據上,每個子密鑰一次,一共重復16次。每一次迭代稱之為一輪。要對密文進行解密可以採用同樣的步驟,只是子密鑰是按照逆向的順序(16-1)對密文進行處理。

H. 密碼技術(四、二)之分組模式(CBC模式)

 CBC模式是指將前一個密文分組與當前明文分組的內容混合起來進行加密,這樣就可以避免ECB模式的弱點。
 CBC模式的全稱Cipher Block Chaining 模式(密文分組組鏈接模式),之所以叫這個名字是因為密文分組是像鏈條一樣相互連接在一起。
 在CBC模式中,首先將明文分組與前一個密文分組進行XOR運算,然後再進行加密。

ECB模式 和 CBC模式比較

 當加密第一個明文分組是,由於不存在「前一個密文分組」,因此需要事先准備一個長度為一個分組的比特序列來替代「前一個密文分組」,這個比特序列稱為 初始化向量 ,通常縮寫為IV。每次加密時都會隨機產生一個不同的比特序列來作為初始化向量。

 明文分組在加密之前一定會與「前一個密文分組」進行XOR運算,因此即便明文分組1和2的值是相等的,密文分組1和2的值也不一定是相等的。這樣一來,ECB模式的缺陷在CBC模式中就不存在了。
 在CBC模式找那個,我們無法單獨對一個中間的明文分組進行加密。例如,如果要生成密文分組3,則至少需要湊齊明文分組1、2、3才行。
 假設CBC模式加密的密文分組中有一個分組損壞了。在這種情況下,只要密文分組的長度沒有發生編號,則解密時,最多隻會影響2個分組受到數據損壞的影響。
 假設CBC模式的密文分組中有一些比特缺失了,那麼此時即便只缺失了1比特,也會導緻密文分組的長度發生變化,此後的分組發生錯位,這樣一來,缺失比特的位置之後的密文分組也就全部無法解密了。

 假設主動攻擊者Mallory的目的是通過修改密文來操縱解密後的明文。如果Mallory能夠對初始化向量中的任意比特進行反轉,則明文分組中相應的比特也會被反轉。這是因為在CBC模式的解密過程中,第一個明文分組會和初始化向量進行XOR運算。

這樣,Mallory 就可以對初始化向量進行攻擊,但是想要對密文分組也進行同樣的攻擊就非常困難了。

填充提示攻擊 (Padding Oracle Attack)是一種利用分組密碼中的填充部分來進行攻擊的方法。在分組密碼中,當明文長度不為分組長度的整數倍時,需要在最後一個分組填充一些數據使其湊滿一個分組的長度。在填充提示攻擊中,攻擊者會反復發送一段密文,每次發送時都對填充的數據進行少許改變。由於接收者在無法正確解密時會返回一個錯誤消息,攻擊者通過這一錯誤消息就可以獲得一部分與明文相關的信息。這一攻擊方式並不僅限於CBC模式,而是適用於所有需要進行分組填充的模式。2014年對SSL3.0造成重大影響的POODLE攻擊實際上就是一種填充攻擊。要防禦這種攻擊,需要對密文進行認證,確保這段密文的確是由合法的發送者在制定明文內容的前提下生成的。

 初始化向量必須使用不可預測的隨機數。然後在SSL/TSL1.0的版本協議中,初始向量並沒有使用不可預測的隨機數,而是使用了上一次CBC模式加密時的最後一個分組。為了防禦攻擊者對此進行攻擊,TSL1.1以上的版本中改為了必須顯式得傳送初始化向量。

 確保互聯網安全的通信協議之一SSL/TSL,就是使用CBC模式來確保通信的機密性的,如使用CBC模式三重DES的3DES_EDE_CBC以及CBC模式256比特AES的AES_256_CBC等。

分組密碼中海油一種模式叫作CTS模式(Cipher Text Stealing模式)。在分組密碼中,當明文長度不能被分組長度整除時,最後一個分組就需要進行填充。CTS模式是使用最後一個分組的其哪一個密文分組數據來講信息填充的,它通常和ECB模式以及CBC模式配合使用。根據最後一個分組的發送順序不同,CTS模式有幾種不同的變體(CBC-CS1、CBC-CS2、CBC-CS3)。

該系列的主要內容來自《圖解密碼技術第三版》
我只是知識的搬運工
文章中的插圖來源於原著

I. 分組密碼加密模式選擇有哪些

分組密碼工作模式的應用背景:多次使用相同的密鑰對多個分組加密,會引發許多安全問題。為了應對不同場合,因而需要開發出不同的工作模式來增強密碼演算法的安全性。ECB特別適合數據較少的情況,對於很長的信息或者具有特定結構的信息,其大量重復的信息或固定的字元開頭將給密碼分析者提供大量的已知明密文對。若明文不是完整的分組,ECB需要進行填充。CBC(Cipher Block Chaining)由於加密演算法的每次輸入和本明文組沒有固定的關系,因此就算有重復的明文組,加密後也看不出來了。為了配合演算法的需要,有一個初始向量(IV)。與ECB一樣有填充機制以保證完整的分組。CFB(Cipher Feedback)和OFB,CTR模式一樣,均可將分組密碼當做流密碼(實際是將分組大小任意縮減)使用。

J. 請簡述什麼是序列密碼與分組密碼,它們的區別是什麼

序列密碼(Stream Cipher):
又稱流密碼,將明文消息按字元逐位進行加密。
分組密碼(Block Cipher):
在分組密碼中將明文消息分組(每組有多個字元),逐組進行加密。

熱點內容
下列存儲類 發布:2025-08-25 07:43:53 瀏覽:902
jquery上傳顯示圖片 發布:2025-08-25 07:42:15 瀏覽:31
編程貓用的 發布:2025-08-25 07:41:35 瀏覽:937
國際版如何連伺服器 發布:2025-08-25 07:38:54 瀏覽:205
源碼iostat 發布:2025-08-25 07:35:32 瀏覽:611
如何查詢別的伺服器地址 發布:2025-08-25 07:30:39 瀏覽:748
伺服器ip加埠打不開網頁 發布:2025-08-25 07:30:37 瀏覽:828
char的預編譯命令 發布:2025-08-25 07:29:55 瀏覽:766
山東棗庄雲伺服器購買 發布:2025-08-25 07:14:23 瀏覽:738
屬於哪一種緩存機制 發布:2025-08-25 07:10:44 瀏覽:616