Blowfish演算法中的資料加密和解密是什麼?


Blowfish是一種對稱分組密碼演算法,由布魯斯·施奈爾於1993年12月發明。Blowfish演算法具有若干優點。它適用於硬體實現且效率高,並且無需許可證。Blowfish演算法的基本運算包括查表、加法和異或。表包含四個S盒和一個P陣列。

Blowfish是一種依賴於Feistel輪次的密碼,所使用的F函式的設計相當於簡化了DES中使用的原理,以在軟體中以更高的速度和效率支援相同的安全性。

Blowfish是一種64位的對稱分組密碼,需要一個長度可變的金鑰,從32位到448位(14位元組)。該演算法旨在有效且安全地將64位的明文加密成64位的密文。

為該演算法選擇的運算包括查表、模運算、加法和按位異或,以最大程度地減少在32位處理器上加密和解密資訊所需的時間。

與DES一樣,Blowfish包括一個用於加密和解密的16輪Feistel網路。但在Blowfish的每一輪中,資料左右32位都會發生變化,這與DES不同,DES僅更改右32位以發展成為下一輪的左32位。

Blowfish包括一個按位異或運算,在由F函式更改或傳播到右32位以進行下一輪之前,將其應用於左32位。

Blowfish還包括兩個異或運算,在16輪之後執行,以及一個交換運算。此操作不同於在DES中實現的置換函式。

加密過程 - 有兩種加密過程新聞,包括資訊影像作為明文和加密金鑰。在這種方法中,原始影像資料位元流被分成Blowfish演算法的塊長度。

影像標頭檔案不被授權加密,點陣圖畫素或陣列的開始緊接在檔案頭之後。陣列的位元組元件按從左到右的行順序儲存,每一行定義影像的一條掃描線,並且影像的行從上到下加密。

解密過程 - 加密影像從上到下被分成等效的Blowfish演算法塊長度。第一個塊輸入到解密函式,並且可以使用等效的加密金鑰來解密影像,但子金鑰的應用是反向的。解密過程隨著影像從上到下的不同塊而擴充套件。

Blowfish的基本演算法如下:

將x分成兩個32位半部分:xL、xR

然後,對於i = 1到16;

xL = xLXOR Pi

xR = F(xL) XOR xR

交換xL和xR

經過第16輪後,再次交換xL和xR以撤消最後一次交換。

然後,密文 = xL和xR的串聯,xR = xR XOR P17和xL = xL XOR P18

更新於: 2022年3月15日

1K+ 次檢視

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.