[密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第17篇]述和比较DES和AES的轮结构
這是一系列博客文章中最新的一篇,該文章列舉了“每個博士生在做密碼學時應該知道的52件事”:一系列問題的匯編是為了讓博士生們在第一年結束時知道些什么。這周,我們描述和比較DES和AES輪結構。
DES和AES都是迭代分組密碼的例子.分組密碼通過重復使用一個簡單的輪函數來得到它的安全性.輪函數得到一個n-bit的輸入和返回一個n-bit的輸出,其中n是密碼塊的大小.輪數r可以是可變的也可以是固定的.一般來說輪數的增加會增強塊密碼的安全水平.Round函數每輪使用的密鑰都是從主密鑰k獲得的,使用密鑰調度算法將k生成多個k分別使用在不同的輪.解密過程就試每輪的密鑰都是可逆的,解密只需要反過來使用.在DES中,函數需要是不可逆的,但是整個函數是可逆的.對于AES(Rijndael)來說,不僅僅整個函數都是可逆的,每輪函數也都是可逆的.
DES
- SubBytes字節替換:在Rijndael中有兩種類型的S-Boxes :一種用于加密回合,另一種用于解密回合,加解密互為你操作。對于加密S-Box盒,依次取每個字節s = [s7,…,s0]中的每一位,并作為狀態矩陣F28的元素。S-Box的數學描述可以分為兩步:
- ShiftRows行移位變換:AES中的ShiftRows操作對狀態矩陣執行循環移位。每一行被不同的偏移量[1]移動。ShiftRows操作的逆操作只是一個類似的方向相反移動。ShiftRows操作確保狀態矩陣的列在許多輪中相互交互。
- MixColumns列混淆變換:MixColumns操作確保狀態矩陣中的行在若干輪中相互“交互”;結合ShiftRows操作,它確保輸出狀態的每個字節依賴于輸入狀態[1]的每個字節。
- AddRoundKeyj加輪密鑰:輪密鑰的添加特別簡單。一種是用輪密鑰一個字節一個字節地與狀態矩陣進行異或操作。這個運算的逆顯然是相同的運算。
假設要加密的報文塊輸入到狀態矩陣S中,輸出加密塊由狀態矩陣S給出。
AES密鑰表使用一個輪常數,我們表示為:
我們將輪密鑰標記為(W4i, W4i+1, W4i+2, W4i+3),其中i是輪數。初始的主密鑰首先被分成四個32bit的woed(k0、k1、k2、k3)。然后按下面的算法計算輪密鑰,其中RotBytes是將word向左旋轉一個字節的函數,SubBytes將Rijndael加密S-Box應用于word[1]中的每個byte。
References: [1] http://www.cs.bris.ac.uk/~nigel/Crypto_Book/
原文鏈接:http://bristolcrypto.blogspot.com/2015/01/52-things-number-17-describe-and.html
轉載鏈接:
https://www.cnblogs.com/zhuowangy2k/p/12245480.html
總結
以上是生活随笔為你收集整理的[密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第17篇]述和比较DES和AES的轮结构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS Appstore 版本更新
- 下一篇: Unity开发 罗技方向盘 G29 白