freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

aes算法的實現(xiàn)與分析課程設計word格式(編輯修改稿)

2025-01-11 13:06 本頁面
 

【文章內容簡介】 oundKey,接著進行 1?rN 次輪變換 Round,最后再使用一個輪變換 FinalRound。初始的密鑰加法和每個輪變換均以狀態(tài) State 和一個輪密鑰作為輸入。第 i 輪的輪密鑰記為 ExpandedKey[i],初始密鑰加法的輸入記為 ExpandedKey[0]。從 CipherKey導出 ExpandedKey的過程記為 KeyExpansion。Rijndael 的高級語言偽 C 符號描述見列表 。 列表 使用 Rijndael 進行加密的高級算法 Rijndael ( State, Cipherkey) { KeyExpansion ( CipherKey, ExpandedKey)。 AddRoundKey ( State,ExpandedKey[0])。 For (i=1。i rN 。i++) Round ( State,ExpandedKey[i] )。 FinalRound ( State, ExpandedKey[ rN ] )。 } 5. AES 算法的設計原理 GF( 82 )中乘法使用的多項式是 8 次不可約多項式列表中的第一個多項式。 ? ByteSubstitution(稱為 S 盒)在設計時考慮到抵抗差分密碼分析、線性密碼分析的要求,應滿足以下條件: (1) 可逆性; (2) 輸入比特的線性組合與輸出比特的組合之間的最大非平凡相關性的極小化; (3) 異或差分表中最大非平凡值的極小化; (4) GF( 82 )中代數表示的復雜性; (5) 描述的簡單性。 7 滿足前 3 條準則的 S 盒的 構造方法已被給出, AES 的作者從眾多候選構造中選擇將x 映射到它的逆的 S 盒。該映射過于簡單,為了抵抗插入攻擊,加入仿射變換: 1m o d)1)(()()( 84567267 ?????????? xxxxxxaxxxxxb 模數多項式 18?x 選擇為可能是最簡單的模數多項式??梢哉业狡渌?S 盒滿足以上準則。 ? MixColumn 變換符合以下準則: (1) 可逆性; (2) GF( 82 )中的線性性; (3) 適當的擴散性能; (4) 8 位處理器上實現(xiàn)速度快; (5) 對稱性; (6) 描述的簡單性。 選擇模數多項式 14?x 可滿足準則 6。準則 4 要求系數的值要小,故選 00、 0 02 、 03。 ? ByteRotation 符合以下準則: (1) 4 個位移量互不相同且 00?C ; (2) 能抵抗差分截斷攻擊; (3) 能抗 Square 攻擊; (4) 簡單。 從滿足準則 2 和準則 3 出發(fā), AES 的作者選取了最簡單的組合。 6. AES算法的框架描述 Rijndael算法是一個可變數據塊長和可變密鑰長的分組迭代加密算法,數據塊長和密鑰長可分別為 128, 192或 256比特,但為了滿足 AES的要求,分組長度為 128比特,密鑰長度為 128, 192或 256比特。 AES密碼算法采用的是代替一置換網絡 (SPN)結構,每一輪操作由 4層組成:第 1層 (字節(jié)替換 )為非線性層,用 S盒對每一輪中的單個字節(jié)分別進行替換;第 2層 (行移位 )和第 3層 (列混合 )是線性混合層,對當前的狀態(tài)陣按行移位,按列 8 混合;第 4層 (密鑰加層 )用子密鑰與當前狀態(tài)陣進行字節(jié)上的異或。 具體算法結構如圖 1所示。 圖 1中, (a)圖給出了算法的整體結構,輸入明文 x與子密鑰 I(0異或,然后經 過 r輪迭代最終生成密文 Y,其中第 1到 r一 1輪迭代結構為圖 (b),第 r輪與前面各輪稍微有點不同,缺少混合層。 7. AES加、解密的輸入 /輸出 Rijndael 的輸入 /輸出可看作 8 位字節(jié)的一維數組。對加密來說,其輸入是一個明文分組和一個密鑰,輸出是一個密文分組。對解密而言,輸入是一個密文分組和一個密鑰,而輸出是一個明文分組。 Rijndael 的輪變換及其每一步均作用在中間結果上,我們將該中間結果稱為狀態(tài)。狀態(tài)可以形象地表示為一個矩形的字節(jié)數組,該數組共有 4 行。狀態(tài)中的列數記為 bN ,它等于分組長度除以 明文 X r 輪迭代 密文 Y 子密鑰 0K (a)AES 算法框圖 (*)X 字節(jié)代替 BS 行移位 SR 列混合 MC rX 1?K (b)一輪 AES 結構 圖 1 AES 算法結構 9 143210 ?? bNPPPPP ? 其中, 0P 表示第一個字節(jié), 14 ??bNP表示明文分組的最后一個字節(jié)。類似地,將密文分組記為 143210 ?? bNCCCCC ? 將狀態(tài)記為 jia, , 40 ??i , bNj??0 這里, jia, 表示位于第 i 行第 i 列的字節(jié)。輸入字節(jié)依次映射到狀態(tài)字節(jié)?,1,31,21,11,00,30,20,10,0 aaaaaaaa 上。 當加密是,輸入是一個明文分組,映射是 jiji Pa 4, ?? , 40 ??i , bNj??0 當解密是,輸入是一個密文分組,映射是 jiji Ca 4, ?? , 40 ??i , bNj??0 在加密結束時,密文分組以相同 的順序從狀態(tài)字節(jié)中取出 4/,4mod iii aC ? , bNi 40 ?? 在解密結束時,明文分組按以下順序從狀態(tài)中得到 4/,4mod iii aP ? , bNi 40 ?? 類似地,密鑰被映射到兩維密碼密鑰上。密碼密鑰可以形象地表示為一個與狀態(tài)類似的矩形數組,該數組也有 4 行。密碼密鑰的列數記為 kN ,它等于密鑰長度除以 32。密鑰的各字節(jié)被依次映射 到密碼密鑰的各字節(jié)上: ?,2,01,31,21,11,00,30,20,10,0 kkkkkkkkk 。 如果將密鑰記為 143210 ?? kNzzzzz ? 那么 jiji zk 4, ?? , 40 ??i , kNj??0 狀態(tài)與密碼密鑰的表示以及明文 狀態(tài)與密鑰 密碼密鑰的映射,如圖所示 10 0P 4P 8P 12P 1P 5P 9P 13P 2P 6P 10P 14P 3P 7P 11P 15P 當 bN = kN =6 時狀態(tài)和密碼密鑰的大致分布 8. AES加密算法 實現(xiàn)的理論分析 AES 中的操作均是以字節(jié)作為基礎的,用到的變量也都是以字節(jié)為基礎。 State 可以用 44 的矩陣表示。 AES 算法結構對加密和解密的操作,算法由輪密鑰開始,并用Nr 表示對一個數據分組加密的輪數 (加密輪數與密鑰長度的關系如表 2 所示 )。 AES 算法的主循環(huán) State 矩陣執(zhí)行 1?rN 輪迭代運算,每輪都包括所有 4 個階段的代換,分別是在規(guī)范中被稱為 SubBytes(字節(jié)替換 )、 ShiftRows(行位移變換 )、 MixColumns(列混合變換 ) 和 AddRoundKey, (由于外部輸入的加密密鑰 K 長度有限 ,所以在算法中要用一個密鑰擴展程序 (Keyexpansion)把外部密鑰 K 擴展成更長的比特串,以生成各輪的加密和解密密鑰。 )最后執(zhí)行只包括 3 個階段 (省略 MixColumns 變換 )的最后一輪運算。 表 2 AES 參數 密鑰長度 (bits) 128 192 256 明文分組長度 (bits) 128 128 128 輪數 10 12 14 每輪密鑰長度 (bits) 128 128 128 擴展密鑰長度 (bytes) 176 206 240 輪的數目 的設定 當前的密碼分析研究表明,迭代型分組密碼抗擊密碼分析攻擊的能力隨輪數的增加而增加。 0k 4k 8k 12k 16k 20k 1k 5k 9k 13k 17k 21k 2k 6k 10k 14k 18k 22k 3k 7k 11k 15k 19k 23k 11 我們通過考慮抗擊捷徑攻擊來確定輪的數目,因為捷徑攻擊明顯比窮盡密鑰搜索攻擊更有效。在此基礎上,又增加了一個適當的安全余量。對分組長度和密鑰長度均是 128比特的 Rijndael,我們尚未發(fā)現(xiàn)能夠對具有六輪以上的簡化版本實施的捷徑攻擊,又增加 4 輪作 為安全余量。這是一個保守的做法,因為: (1) Rijndael 中兩輪即可提供以下意義上的 “全擴散 ”。每個狀態(tài)比特均依賴與兩輪之前的所有狀態(tài)比特,或者一個狀態(tài)比特的改變均可能對兩輪之后的半數狀態(tài)比特產生影響。在增加 4 輪可以看作是在密碼的開始和結束時增加了一個 “全擴散步驟 ”。 Rijndael 輪變換的高擴散性歸功于它在所有狀態(tài)比特上的均勻結構。對于所謂的 Feistel 密碼,沒輪僅對半數的狀態(tài)比特進行作用,三輪后才可以獲得全擴散。在實際中,這種密碼一般采用四輪或更多。 (2) 為了攻擊密碼的第 n+1 或 n+2 輪,相信密碼分析 ,差分 密碼分析和截短差分析攻擊通常采用一個直到 n 輪的傳播軌跡。滲透攻擊也是如此,它利用一個四輪的傳播結構來攻擊六輪。在這方面,我們增加四輪實際上使得找到一個傳播軌跡所遍歷的輪數增加一倍。 對于具有較長密鑰的 Rijndael 版本,密碼密鑰每增加 32 比特,倫德數目就增加一輪。原因如下: (1) 主要目的之一是是比窮舉密鑰搜索攻擊更有效的捷徑攻擊失效。因為窮舉密鑰搜索的工作量隨密鑰長度的增加而增加,而捷徑攻擊對具有更長密鑰的密碼的攻擊效率不高。 (2) (部分的)已知密鑰和相關密鑰攻擊利用了密碼密鑰中的比特信息,或者具有利用不 用密碼密鑰的能力。如果增加密碼密鑰的長度,密碼分析者的搜索范圍也將隨之增加。 關于具有更長密鑰的 Rijndael 的安全性研究文獻已經表明,這一策略帶來了足夠的安全余量 [31, 36, 62]。而對具有較長分組的 Rijndael 版本,分組長度每增加 32 比特,輪的數目就增加一輪。理由如下: (1) 如果密碼的分組長度大于 128 比特,就采用三輪來實現(xiàn)全擴散,這是因為輪變換的擴散能力將隨分組長度的增加而降低。 (2) 更大的分組長度將增加可能出現(xiàn)的模式的選取范圍,這些模式可用在某幾輪的輸入輸出上。這一附加的靈活性可使攻擊所必須 處理的范圍擴大一輪或者幾輪。 12 對于具有更大分組長度 256 比特的 Rijndael 版本,我們已經發(fā)現(xiàn),即使將攻擊的處理范圍擴大一輪也難以實現(xiàn)。因此,這是一個保守的余量。 表 列出了作為 bN 和 kN 函數的 tN 值。對于 AES bN 取固定值為 4;對于 128 比特的密鑰( kN =4), t N =10;對于 192 比特的密鑰( kN =6), t N =12;對于 256 比特的密鑰 kN =8, tN =14. 表 對不用的 bN ( bN =分組長度 /32)和 kN ( kN =分組長度 /32)輪的個數值 tN kN bN 4 5 6 7 8 4 10 11 12 13 14 5 11 11 12 13 14 6 12 12 12 13 14 7 13 13 13 13 14 8 14 14 14 14 14 輪變換 輪變換 Round 由 4 個變換組成,其中的每個變換稱為步驟,如列表 所示。該密碼的最后一輪 FinalRound 稍有不同,也如列表 所示。在這個列表中,變換( Round,SubBytes, ShiftRows,… )作用在指針( State, ExpndedKey[i])所指向的數組上。容易驗證:若將 Round 變換中的 MixColumns 步驟去掉,則它等價于 FinalRound 變換。這些步驟以及每一步所采用的設計準則將在下面的各節(jié)中詳細討論。除了具體到可不的準則以外,還采用了以下兩個通用的設計準則: 1. 可逆性。 Rijuael 輪變換的結構要求所有步驟都是可逆的。 2. 簡單性。我們更傾向于使用簡單的組件,而避免負責組 件。 列表 Rijufael 的輪變換 Round ( State, ExpandedKey[i]) 13 { SubBytes ( State )。 ShiftRows ( State )。 MixColumns ( State )。 AddRoundKey ( State , ExpandedKey[i] )。 } FinalRound ( State , ExpandedKey[ rN ] )。 { SubBytes ( States )。 ShiftRows( States )。 AddRoundKEY( States, ExpandedKey[ rN ] )。 } 密鑰擴展 (Key Expansion) 為了防止已有的密碼分析攻擊, AES 使用了與輪相關的輪常量 (Rcon[j],是一個字,這個字的右邊三個字節(jié)總為 0)防止不同輪中產生的輪密鑰的對稱性或相
點擊復制文檔內容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1