簡(jiǎn)述塊加密算法

我們都知道加密算法分為對(duì)稱加密和非對(duì)稱加密兩種,但是在對(duì)稱加密算法中,還分為塊加密和流加密。今天我們就來(lái)了解一下什么是塊加密算法?

塊加密算法的概念

塊加密,英文為Block Cyper,又被稱為分組加密,是一種常見的對(duì)稱加密。它并不是指某個(gè)算法,而是對(duì)稱加密算法中的一種加密方式。

塊加密算法是將固定長(zhǎng)度的數(shù)據(jù)塊或純文本數(shù)據(jù)(未加密)轉(zhuǎn)換成長(zhǎng)度相同的密碼塊(加密文本)數(shù)據(jù)。該轉(zhuǎn)換的前提是用戶提供密鑰。解密時(shí),要使用相同的密鑰對(duì)密碼塊數(shù)據(jù)進(jìn)行逆轉(zhuǎn)換。固定的長(zhǎng)度被稱作數(shù)據(jù)塊大小,大多數(shù)密碼塊的固定大小都是64位或128位。

由于塊加密的工作模式允許使用同一個(gè)分組密碼密鑰對(duì)多于一塊的數(shù)據(jù)進(jìn)行加密,并保證其安全性,一般來(lái)說(shuō)塊加密相比較流加密更安全一些。

塊加密

常見的塊加密算法

  • AES加密算法
  • DES系列加密算法
  • RC系列加密算法

塊加密算法的加密模式

1.ECB模式

這是最簡(jiǎn)單最普通的加密模式,就是加密完一輪數(shù)據(jù),接著加密下一輪數(shù)據(jù),不同輪次之間的數(shù)據(jù)間無(wú)任何關(guān)系。

塊加密算法

2.CBC模式

這種模式就是上面一輪加密的結(jié)果與下一輪的明文進(jìn)行異或,然后進(jìn)行加密。因?yàn)榈谝粋€(gè)明文分組沒有前面的密文與之異或,故需要一個(gè)初始向量IV。

塊加密算法

3.CFB

將數(shù)據(jù)進(jìn)行加密的結(jié)果與明文進(jìn)行異或得到密文,然后再將密文進(jìn)行加密再與明文異或得到下一個(gè)密文,依次類推。同理,在最開始的時(shí)候需要一個(gè)初始向量IV。

塊加密算法

4.OFB

將一個(gè)初始向量一直加密,每加密一次的結(jié)果與明文進(jìn)行異或得到密文。

塊加密算法

5.CTR

一直加密計(jì)數(shù)器,得到加密的結(jié)果與明文進(jìn)行異或得到密文。

塊加密算法

目前常用的對(duì)稱加密算法基本上都屬于塊加密算法,其中DES和3DES是使用最多的數(shù)據(jù)塊加密,AES則是更高級(jí)的塊加密法。

免責(zé)聲明:素材源于網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系刪稿。