日本无码免费高清在线|成人日本在线观看高清|A级片免费视频操逼欧美|全裸美女搞黄色大片网站|免费成人a片视频|久久无码福利成人激情久久|国产视频一二国产在线v|av女主播在线观看|五月激情影音先锋|亚洲一区天堂av

  • 手機站
  • 小程序

    汽車測試網(wǎng)

  • 公眾號
    • 汽車測試網(wǎng)

    • 在線課堂

    • 電車測試

一文搞懂對稱密碼體制的各種概念

2024-07-31 09:03:07·  來源:汽車MCU軟件設計  
 

 目錄

1. 對稱密碼體制

2. 分組密碼工作模式

2.1 ECB

2.2 CBC

2.3 CFB

2.4 OFB

2.5 CTR

2.6 XTS

3. DES/3DES

4. AES

5. SM4


1. 對稱密碼體制


對稱密碼體制是一種發(fā)送方和接收方都使用相同密鑰對數(shù)據(jù)進行加解密的方法。它只提供保密性,不提供真實性。由于對稱分組加密以固定長度分組(DES固定64位分組,AES固定128位分組),但保密傳輸?shù)南?nèi)容不一定剛好是一個分組,對于長報文還需要劃分為多個分組,因此為應對不同應用場景,分組密碼還提供了各種工作模式。


2. 分組密碼工作模式


2.1 ECB

ECB(Electronic Code Book)是分組密碼最簡單的操作模式。每個數(shù)據(jù)分組(下文稱數(shù)據(jù)塊)都以相同的方式加密。


圖片

圖 1 ECB模式


由于每個數(shù)據(jù)塊相互獨立,因此可并行計算,提高效率,但相同的明文塊始終會輸出相同的密文塊,難以抵抗統(tǒng)計分析攻擊。因此只建議用在密鑰保護等小數(shù)據(jù)量的安全保護。


2.2 CBC


CBC(Cipher Block Chaining):為了克服 EBC 的缺點,引入初始向量 IV,可以防止同樣的明文塊始終加密成同樣的密文塊。


IV 作為初始化變量,參與第一個明文塊的異或,后續(xù)的每一個明文塊和它前一個明文塊所加密出的密文塊相異或。


圖片

圖 2 CBC 模式


2.3 CFB


CFB(Cipher Feedback)可以實現(xiàn)對明文進行逐比特加密。


該模式需要初始IV作為初始輸入數(shù)據(jù)塊,在標準中,CFB模式還需要提供一個整數(shù)s,用于表示每個明文\密文塊包含s位,s取指包括1、8、64、128。在本文中,s= 128。


加密時,第一個輸入數(shù)據(jù)塊為IV,經(jīng)由加密計算出第一個輸出數(shù)據(jù)塊,然后取該塊的最高s 位與明文的最高s位進行異或,得到流密文塊;剩余的block size(128位) - s位的數(shù)據(jù)作為高位與密文塊s位數(shù)據(jù)進行拼接,作為下一個輸入數(shù)據(jù)塊,依次類推。因此該模式被稱為密文反饋模式。


在本文中,s= 128,因此該數(shù)據(jù)塊所有位將參與異或,得到的密文塊繼續(xù)作為下個輸入數(shù)據(jù)庫。


圖片

圖 3 CFB模式


2.4 OFB


OFB(Output Feedback)與CFB模式類似,OFB是將IV加密后的數(shù)據(jù)直接作為下一個輸入數(shù)據(jù)塊,明文與該數(shù)據(jù)塊異或后得到密文塊。


二者區(qū)別僅僅在于密碼算法的輸入。


CFB模式中,密碼算法的輸入是前一個密文分組反饋到密碼算法中,因此就叫“密文反饋模式”。


OFB模式中,密碼算法的輸入是密碼算法的前一個輸出反饋給密碼算法,因此叫“輸出反饋模式”。


圖片

圖 4 OFB模式


2.5 CTR


CTR(Counter)模式,每個數(shù)據(jù)塊對應一個逐次累加的計數(shù)器,通過對計數(shù)器進行加密來得到輸出塊,最終與明文進行異或,得到密文塊。


圖片

圖 5 CTR模式


CTR模式能夠?qū)Χ鄩K報文加解密進行并行處理,提升了處理效率;在該模式下,進行異或之前所有操作不依賴明文或者密文,因此可以進行預處理,極大提高吞吐量,針對實時性和速度要求較高的場景。


2.6 XTS


XTS(XEX encryption mode with tweak and ciphertext stealing)主要用于磁盤加密,引入可調(diào)整的分組密碼概念,除了密鑰和明文作為輸入外,新增另一個輸入tweak,通過改變tweak值來改變密文。

圖片

圖 6 XTS模式encrypt過程


從圖5可以看到,XTS與上述其他模式相比,最明顯特征為有兩個密鑰,Key1、Key2,其中Key2用于對tweak(上圖i)進行加密,Key1用于分組加密,具體步驟如下:

  1. Tweak(上圖i)使用密鑰K2進行AES加密,然后與有限域數(shù)αj進行乘運算,得到T
  2. T跟明文塊P進行異或得到PP
  3. PP再使用K1進行AES加密得到CC
  4. CC再和T異或得到最終的密文C

解密同理,如下圖所示:


圖片

圖 7 XTS Decrypt過程


值得注意的是,當最后一個密文塊不足128bit時,就需要進行數(shù)據(jù)竊取和補充,如下圖所示:


圖片

圖 8 XTS-AES encryption of last two blocks when last block is 1 to 127 bits


偽代碼邏輯如下:


圖片


將明文劃分為m+1塊,P = P0|...|Pm-1|Pm,前m-2塊正常加密,最后兩塊處理分為兩種情況:


1. 當最后一塊數(shù)據(jù)分組Pm長度為0時,Cm為空,Cm-1正常計算即可;


2. 當0 < Cm長度< 128時,首先需要計算出Pm-1的密文CC,然后取出CC中前b(Pm長度)作為最后一塊Cm;取CC中128-b位作為CP與最后一塊明文Pm拼接得到PP,計算得到Cm-1


3. DES/3DES


DES(Data Encryption Standard)起源于1973年美國國家標準局NBS(現(xiàn)國家標準與技術(shù)研究所NIST)征求國家密碼標準方案,最終于1977年確定為聯(lián)邦信息處理標準(FIPS-46),DES處理明文分組長度為64位,密鑰長度盡管有64位,但實際使用只有56位,其余8位可做奇偶校驗位或者隨機處理。


隨著計算機處理能力提高,56位密鑰不再被認為是安全可靠(1999年EFT在一次會議中破解了一個DES密鑰),因此3DES作為替代者出現(xiàn)。所謂3DES即三重DES,常見有如下幾種使用策略:

  1. DES-EEE3策略:使用三個不同密鑰,順序使用三次DES加密;
  2. DES-EEE2策略:順序使用三次DES加密,其中第一次和第三次密鑰相同
  3. DES-EDE3策略:使用三個不同密鑰,順序進行加密-解密-加密算法。


可以看到,在3DES下,密鑰增加到112位或者168位,有效防御蠻力攻擊;但從實現(xiàn)角度來看,處理速度進一步變慢,同時明文分組長度仍為64位,就效率而言,與密鑰長度增長不匹配。


4. AES


Advanced Encryption Standard (AES)作為DES的替代者,由NIST于1997年進行征集,并在1999年公布了5個候選算法:MARS、RC6、Rijindael、SERPENT和Twofish。最終根據(jù)安全性、性能、大小、實現(xiàn)難易性選定了Rijindael(音譯”Rain Doll”)算法作AES算法,并于2001年由NIST正式發(fā)布,即FIPS PUB 197。Rijindael算法作為DES的另一種替代方案,要求分組長度固定為128位,密鑰長度可為128、192或者256位,對應加密輪數(shù)為10、12、14輪;總結(jié)如下:表 1 AES密鑰、分組和輪數(shù)關(guān)系


標準變體 密鑰長度(bits) 分組大小(bits) 加解密輪數(shù)
AES-128 128 128 10
AES-192 192 128 12
AES-256 256 128 14


該算法也是目前常用的對稱加密算法。


5. SM4


國家標準《信息安全技術(shù) SM4分組密碼算法》 由TC260(全國網(wǎng)絡安全標準化技術(shù)委員會)歸口 ,主管部門為國家標準化管理委員會。該算法分組長度為128位、密鑰長度為128位,加密算法與密鑰擴展算法均采用非線性迭代結(jié)構(gòu),運算輪數(shù)為32輪。數(shù)據(jù)加密和解密算法結(jié)構(gòu)相同,解密輪密鑰是加密輪密鑰的逆序。

分享到:
 
反對 0 舉報 0 收藏 0 評論 0
滬ICP備11026917號-25