對稱密碼 分組密碼 AES

2022-09-08 08:42:09 字數 3236 閱讀 9457

aes產生背景:

des的安全性和應用前景受到挑戰,因此需要設計乙個高保密性能的、演算法公開的、全球免費使用的分組密碼演算法,用於保護敏感資訊,並希望以此新演算法取代des演算法,稱為新一代資料加密標準,取名為高階資料加密標準(aes)

aes演算法並不是乙個具體的演算法,而是乙個演算法的標準,它的要求和評估準則:

1.aes基本要求:比des快且比des安全,分組長度為128位元,金鑰長度為128/192/256。

2.安全性評估:演算法輸出的隨機性好,抗密碼分析能力強,並且有可靠的數學基礎。

3.成本估計準則:許可成本低,在各種平台上的計算高效率和較小的記憶體空間需求。

4.演算法和實現特性準則:靈活性、硬體和軟體使用性、演算法的簡明性。具體體現為:演算法處理的金鑰和分組長度必須具備靈活的支援範圍;演算法在許多不同型別的環境下能夠安全和有效地實現;可以作為序列密碼、雜湊演算法實現;必須能夠用軟體和硬體兩種方法實現,並且有利於有效的韌體實現;演算法設計相對簡單。

2023年4月15日美國國家標準技術研究所發起徵集aes演算法的活動.並專門成立了aes工作組織,並在 2023年9月12日在聯邦登記處公布了徵集aes候選演算法的通告。

2023年10月2日正式公布比利時rijmen 和daemen設計的rijndael算成為aes演算法。

rijndael優點:

nist發表了一篇長達116頁的報含,總結了選擇rijndael為aes的理由:

無論使用反饋模式還無反饋模式,在廣泛的計算環境的硬體和軟體實現件能都始終有著優秀的表現;

它的金鑰建立時間極短,且靈敏性良好;

極低的記憶體需求使它非常適合於在儲存器受限的環境中使用;

運算易於抵抗強力和時間選擇攻擊;

演算法的內部迴圈結構將會從指令級並行處理中獲得潛在的益處。

加密的模型:

組合起來就是乙個aes塊

aes中塊長度, 金鑰長度和輪數關係

nb、nk:塊長度(以word為單位,乙個word 32位注意上面的圖)

nr:輪數

子金鑰矩陣長度:nb*(nr+1)

加密的偽**:

subbytes步驟中有乙個稱為s-box的表:

根據計算的結果將結果替換成s-box中相應的的值,比如計算出,x=5,y=3,對應的是,用替換

對每一列進行和金鑰對應列的異或運算

解密過程基本上相當於加密逆過程:

偽**如下:

s-box相應變化:

本文只是對aes進行了簡單的介紹,根據aes的詳細介紹檔案來編寫的。水平有限,解釋的不清楚。

如果想對aes有更系統詳細的了解,建議閱讀該文件

最後,附上j**a裡使用aes的小例子:

public

class

encryptaes

/*** 對字串加密

* *

@param

str

* @return

* @throws

invalidkeyexception

* @throws

illegalblocksizeexception

* @throws

badpaddingexception

*/public

byte encrytor(string str) throws

invalidkeyexception,

illegalblocksizeexception, badpaddingexception

/*** 對字串解密

* *

@param

buff

* @return

* @throws

invalidkeyexception

* @throws

illegalblocksizeexception

* @throws

badpaddingexception

*/public

byte decryptor(byte buff) throws

invalidkeyexception,

illegalblocksizeexception, badpaddingexception

/***

@param

args

* @throws

nosuchpaddingexception

* @throws

nosuchalgorithmexception

* @throws

badpaddingexception

* @throws

illegalblocksizeexception

* @throws

invalidkeyexception

*/public

static

void main(string args) throws

exception

}

密碼篇 對稱加密 AES

目錄 aes介紹 rijndael加密中的一輪 rijndael解密中的一輪 對三種對稱密碼的使用 rijndael於2000年被選為新一代的標準密碼演算法 aes 在aes規格中,金鑰長度為128 192 256位元三種 rijndael使用的是spn結構 rijndael中存在反向運算 不像fe...

對稱密碼 之 分組密碼的多重加密

des在窮舉攻擊下相對脆弱,使用des進行多次加密且使用多個金鑰的方式是能夠保護已有軟硬體的投資的較好方式。本文從簡單的雙重金鑰開始,直到最廣泛應用的三重des 3des 演算法。雙重des 給定明文p及金鑰k1,k2,密文c的生成如下 c e k2,e k1,p 解密時逆序使用這兩個金鑰 p e ...

AES密碼演算法

此演算法,是以金鑰128位為例,輸入輸出都是十六進製制。測試資料 明文 32 43 f6 a8 88 5a 30 8d 31 31 98 a2 e0 37 07 34 金鑰 2b 7e 15 16 28 ae d2 a6 ab f7 15 88 09 cf 4f 3c 密文 39 25 84 1d ...