好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

密码学与网路安全5章高阶加密标准.ppt

32页
  • 卖家[上传人]:m****
  • 文档编号:588982075
  • 上传时间:2024-09-09
  • 文档格式:PPT
  • 文档大小:681.03KB
  • / 32 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 密碼學與網路安全密碼學與網路安全第第5章章 高階加密標準高階加密標準 AES的起源的起源ØØDES應只用在舊系統,新系統應改用3DES,但3DES的軟體實作效能低落ØØ為了要取代為了要取代DES/3DESDES/3DES,,NISTNIST在在19971997年徵求新的年徵求新的AESAES計畫書,並要求新標準的安全強度要等同或計畫書,並要求新標準的安全強度要等同或強過強過3DES3DES,而且也要大幅加強效能,而且也要大幅加強效能ØØNISTNIST是在是在20012001年年1111月完成整個評估,並且發表最月完成整個評估,並且發表最終的標準(終的標準(FIPS PUB 197FIPS PUB 197))ØØNISTNIST最終選擇最終選擇RijndaelRijndael作為作為AESAES演算法的建議規演算法的建議規格格ØØAESAES最終會取代最終會取代3DES3DES,但這個過程需要好幾年但這個過程需要好幾年在可預見的未來,在可預見的未來,NISTNIST預期預期3DES3DES仍會是美國政仍會是美國政府公認的演算法標準府公認的演算法標準 評選評選AESØØ安全性l l實際的安全性:以相同長度的金鑰及區塊,和實際的安全性:以相同長度的金鑰及區塊,和其他送交的演算法相互比較其他送交的演算法相互比較l l隨機性:隨機重排輸入區塊而讓演算法的輸出隨機性:隨機重排輸入區塊而讓演算法的輸出無法辨識的程度無法辨識的程度l l強固性:演算法安全性的數學基礎強固性:演算法安全性的數學基礎l l其他安全因素:在評選過程公開接受挑戰,包其他安全因素:在評選過程公開接受挑戰,包括任何能證明演算法實際的安全性並無提交者括任何能證明演算法實際的安全性並無提交者所宣稱的攻擊所宣稱的攻擊 評選評選AESØØ成本l l授權要求:讓全世界都能非獨佔、免權利金的授權要求:讓全世界都能非獨佔、免權利金的使用使用AESAES所指定的演算法所指定的演算法l l計算效率:計算效率的評估結果將同時適用於計算效率:計算效率的評估結果將同時適用於硬體和軟體的實作硬體和軟體的實作l l記憶體需求:評選過程也會考慮以硬體和軟體記憶體需求:評選過程也會考慮以硬體和軟體實作演算法所需要的記憶體實作演算法所需要的記憶體• •記憶體需求的考量因素包含硬體實作所需要的邏輯記憶體需求的考量因素包含硬體實作所需要的邏輯閘數量,以及軟體實作所需要的閘數量,以及軟體實作所需要的RAMRAM 評選評選AESØØ演算法和實作特性 l l彈性:演算法越彈性,就越能符合更多人的需彈性:演算法越彈性,就越能符合更多人的需求,但有些極端的功能並不實用求,但有些極端的功能並不實用l l硬體和軟體適用性:不應將演算法實作限制在硬體和軟體適用性:不應將演算法實作限制在硬體,如果可以有效的以韌體實作,就是演算硬體,如果可以有效的以韌體實作,就是演算法彈性的一大優點法彈性的一大優點l l簡易性:演算法應該以設計的簡易程度而評斷簡易性:演算法應該以設計的簡易程度而評斷其優劣其優劣 AES加密法加密法 - Rijndael ØØ由比利時的由比利時的 Rijmen-DaemenRijmen-Daemen 所設計所設計ØØ金鑰長度金鑰長度 128/192/256 128/192/256 位元,區塊長度位元,區塊長度 128 128 位元位元ØØ不採用菲仕托架構,不採用菲仕托架構,而是在每回合以取代和重排而是在每回合以取代和重排來平行處理整個資料區塊來平行處理整個資料區塊l l每回合的回合金鑰由每回合的回合金鑰由4 4個不同的字組(個不同的字組(128128位元)組成位元)組成l l有有4 4種不同的階段,其一是重排,其他則是取代種不同的階段,其一是重排,其他則是取代ØØ特性:特性:l l能抵抗所有已知的攻擊能抵抗所有已知的攻擊l l能在各種平台上快速執行,且程式碼小巧緊湊能在各種平台上快速執行,且程式碼小巧緊湊l l簡明易懂的設計簡明易懂的設計 圖解圖解AES的加密與解密過程的加密與解密過程 AES-128加解密加解密ØØAES-128AES-128金鑰安排把輸入的金鑰安排把輸入的128128位元金鑰擴展成位元金鑰擴展成1111組各組各128128位元的回合金鑰位元的回合金鑰(round key) (round key) ØØAESAES加解密時有四種基本運算加解密時有四種基本運算( (稱作層,稱作層,layer)layer)分別分別是是AddRoundKeyAddRoundKey、、SubBytesSubBytes、、ShiftRowsShiftRows、及、及MixColumnsMixColumns等四層等四層ØØ每次進行每次進行AddRoundKeyAddRoundKey都需用到回合金鑰,其餘都需用到回合金鑰,其餘運算層與回合金鑰無關。

      運算層與回合金鑰無關ØØ明文先用回合金鑰依序進行明文先用回合金鑰依序進行AddRoundKeyAddRoundKey、、SubBytesSubBytes、、ShiftRowsShiftRows,然後再做,然後再做MixColumnsMixColumns,,這四個運算稱為一個回合這四個運算稱為一個回合ØØ總共需重複做九個回合總共需重複做九個回合ØØ最後再進行最後再進行 AddRoundKeyAddRoundKey、、SubBytesSubBytes、、ShiftRowsShiftRows、及、及AddRoundKeyAddRoundKey即得到密文即得到密文 AES的資料結構的資料結構 位元組的取代位元組的取代ØØ位元組的正向取代方式位元組的正向取代方式稱為SubBytesØØ位元組的反向取代位元組的反向取代稱為InvSubBytesØØ稱為S-boxes的16 × 16 位元組矩陣,包含了所有8 位元數值(256個)ØØ每個位元組最左邊的4 個位元所形成的數值,會當成列編號,而最右邊的4 個位元所形成的數值,則當成行編號l l例如例如1616進位數值進位數值{95}{95}參照到參照到S-boxesS-boxes第第9 9列、第列、第5 5行的行的值值{2A}{2A}l l因此因此{95}{95}就對映到就對映到{2A}{2A} 位元組的取代位元組的取代 AES 位元組取代位元組取代(S-Box) y y0 01 12 23 34 45 56 67 78 89 9a ab bc cd de ef fx x0 063637c7c77777b7bf2f26b6b6f6fc5c53030010167672b2bfefed7d7abab76761 1caca8282c9c97d7dfafa59594747f0f0adadd4d4a2a2afaf9c9ca4a47272c0c02 2b7b7fdfd9393262636363f3ff7f7cccc3434a5a5e5e5f1f17171d8d8313115153 30404c7c72323c3c31818969605059a9a070712128080e2e2ebeb2727b2b275754 4090983832c2c1a1a1b1b6e6e5a5aa0a052523b3bd6d6b3b32929e3e32f2f84845 55353d1d10000eded2020fcfcb1b15b5b6a6acbcbbebe39394a4a4c4c5858cfcf6 6d0d0efefaaaafbfb43434d4d333385854545f9f902027f7f50503c3c9f9fa8a87 75151a3a340408f8f92929d9d3838f5f5bcbcb6b6dada21211010fffff3f3d2d28 8cdcd0c0c1313ecec5f5f979744441717c4c4a7a77e7e3d3d64645d5d191973739 9606081814f4fdcdc22222a2a909088884646eeeeb8b81414dede5e5e0b0bdbdba ae0e032323a3a0a0a4949060624245c5cc2c2d3d3acac626291919595e4e47979b be7e7c8c837376d6d8d8dd5d54e4ea9a96c6c5656f4f4eaea65657a7aaeae0808c cbaba787825252e2e1c1ca6a6b4b4c6c6e8e8dddd74741f1f4b4bbdbd8b8b8a8ad d70703e3eb5b5666648480303f6f60e0e616135355757b9b98686c1c11d1d9e9ee ee1e1f8f8989811116969d9d98e8e94949b9b1e1e8787e9e9cece55552828dfdff f8c8ca1a189890d0dbfbfe6e642426868414199992d2d0f0fb0b05454bbbb1616例如例如 S-Box({00})=63,,S-Box({f0})= 8c,,S-Box({ff})=16 列的移位列的移位ØØ列的正向移位列的正向移位稱為ShiftRowsl l第第1 1列並未改變列並未改變l l第第2 2列的每個元素向左循環位移列的每個元素向左循環位移1 1個位元組個位元組l l第第3 3列向左循環位移列向左循環位移2 2個位元組個位元組l l第第4 4列向左循環位移列向左循環位移3 3個位元組個位元組 ØØ列的反向移位列的反向移位稱為InvShiftRowsl l讓後三列以反方向循環位移讓後三列以反方向循環位移l l也就是第也就是第2 2列向右循環位移列向右循環位移l l個位元個位元 ØØ完整移位之後,一行裡的完整移位之後,一行裡的4 4位元組會分散到不同的位元組會分散到不同的四行四行 列的移位列的移位 行的混合行的混合ØØ行的正向混合行的正向混合稱為MixColumns,是在每一行個別運作ØØ每行裡的每個位元組會對映到新的數值,而此數值是行內所有4個位元組的函數ØØ乘積矩陣是以質數多項式m(x) =x8+x4+x3+x+1 在GF(28)執行 行的混合行的混合 AES之之MixColumns 0  c < 4 行的混合行的混合ØØ行的反向混合行的反向混合行的反向混合行的反向混合稱為稱為InvMixColumnsInvMixColumns,是以下列的矩陣乘法,是以下列的矩陣乘法定義:定義:ØØ解密需使用反向矩陣解密需使用反向矩陣ØØAESAES文件以其他方式描述文件以其他方式描述MixColumnsMixColumns的特徵的特徵l l定義定義MixColumnsMixColumns是考量狀態的每一行都是是考量狀態的每一行都是4 4個項目的多項式個項目的多項式l l其係數定義在其係數定義在 GF(2GF(28 8) ) l l每一行都會乘以固定的多項式每一行都會乘以固定的多項式a(a(x x) ),再取,再取 (x(x4 4+1)+1) 的同餘的同餘 新增回合金鑰新增回合金鑰 ØØ新增回合金鑰的正向轉換新增回合金鑰的正向轉換新增回合金鑰的正向轉換新增回合金鑰的正向轉換稱為稱為AddRoundKeyAddRoundKeyØØAddRoundKeyAddRoundKey (state, (state, w[roundw[round*4, round*4 +3]) *4, round*4 +3]) 是將是將1616位位元組的元組的statestate與與1616位元組位元組(4(4字組字組) )的回合金鑰中的每個對應的回合金鑰中的每個對應位元進行位元進行XORXOR運算,運算,並並將運算結果重新放於將運算結果重新放於statestateØØ狀態裡的狀態裡的128128個位元會和回合金鑰的個位元會和回合金鑰的128128個位元進行逐一個位元進行逐一位元的位元的XORXOR運算運算ØØ此運算能視為狀態裡某一行的此運算能視為狀態裡某一行的4 4個位元組,和回合金鑰裡個位元組,和回合金鑰裡一個字元組的交互運算一個字元組的交互運算l l也能視為位元組層級的運算也能視為位元組層級的運算ØØ新增回合金鑰的反向轉換,與新增回合金鑰的正向轉換相新增回合金鑰的反向轉換,與新增回合金鑰的正向轉換相同同l l因為因為XORXOR運算是其本身的反向運算運算是其本身的反向運算 新增回合金鑰新增回合金鑰 AES的加密回合的加密回合 AES的金鑰擴充的金鑰擴充ØØ將128位元 (4字組) 金鑰擴充成 44/52/60 字組的陣列ØØ金鑰擴充演算法的虛擬程式碼如下: AES SubWord(RotWord(temp)) ØØRotWordRotWord是將一個字組是將一個字組內內的四個位元組向前移動一的四個位元組向前移動一位元組,例如原先字組為位元組,例如原先字組為 [ [b b0 0, , b b1 1, , b b2 2, , b b3 3] ] 那麼經那麼經RotWordRotWord移動後即成為移動後即成為 [ [b b1 1, , b b2 2, , b b3 3, , b b0 0] ]。

      ØØSubWordSubWord則是將四個位元組各自進行則是將四個位元組各自進行S-BoxS-Box,例如,例如原先字組為原先字組為 [ [b b0 0, , b b1 1, , b b2 2, , b b3 3] ] 那麼經那麼經SubWordSubWord取代後取代後成為成為 [S-Box([S-Box(b b0 0), S-Box(), S-Box(b b1 1), S-Box(), S-Box(b b2 2), S-Box(), S-Box(b b3 3)] )]ØØRconRcon則為字組常數,第一位元組非零,則為字組常數,第一位元組非零,RconRcon [1] [1] ={01},{00},{00},{00})={01},{00},{00},{00}),,……,,RconRcon [10] = [10] = ({36},{00},{00},{00})({36},{00},{00},{00})i i1 12 23 34 45 56 67 78 89 91010RconRcon [ [i i] ] 第一個位第一個位元組元組( (十六進制十六進制) )010102020404080810102020404080801b1b3636 AES的金鑰擴充的金鑰擴充 AES-128第第2組回合金鑰的計算方式組回合金鑰的計算方式 Key [16] = Key [0] Key [16] = Key [0]  S- S-Box(KeyBox(Key [13]) [13])  {01}{01}Key [17] = Key [1] Key [17] = Key [1]  S- S-Box(KeyBox(Key [14]) [14]) Key [18] = Key [2] Key [18] = Key [2]  S- S-Box(KeyBox(Key [15]) [15]) Key [19] = Key [3] Key [19] = Key [3]  S- S-Box(KeyBox(Key [12]) [12])Key [20] = Key [4] Key [20] = Key [4]  Key [16] Key [16]Key [21] = Key [5] Key [21] = Key [5]  Key [17] Key [17]Key [22] = Key [6] Key [22] = Key [6]  Key [18] Key [18]Key [23] = Key [7] Key [23] = Key [7]  Key [19] Key [19]Key [24] = Key [8] Key [24] = Key [8]  Key [20] Key [20]Key [25] = Key [9] Key [25] = Key [9]  Key [21] Key [21]Key [26] = Key [10] Key [26] = Key [10]  Key [22] Key [22]Key [27] = Key [11] Key [27] = Key [11]  Key [23] Key [23]Key [28] = Key [12] Key [28] = Key [12]  Key [24] Key [24]Key [29] = Key [13] Key [29] = Key [13]  Key [25] Key [25]Key [30] = Key [14] Key [30] = Key [14]  Key [26] Key [26]Key [31] = Key [15] Key [31] = Key [15]  Key [27] Key [27] AES-128加密範例加密範例 ØØ明文為明文為( (十六進制十六進制) 32 43 f6 a8 88 5a 30 8d 31 ) 32 43 f6 a8 88 5a 30 8d 31 3131 98 a2 e0 37 07 34 98 a2 e0 37 07 34,,1616位元組金鑰為位元組金鑰為2b 7e 15 16 28 2b 7e 15 16 28 aeae d2 a6 d2 a6 abab f7 15 88 09 f7 15 88 09 cfcf 4f 3c 4f 3c,而計算得到的,而計算得到的1616位元組密文為位元組密文為39 25 39 25 84 1d 02 dc 09 84 1d 02 dc 09 fbfb dc 11 85 97 19 6a 0b 32 dc 11 85 97 19 6a 0b 32。

      金鑰擴充的基本原理金鑰擴充的基本原理ØØ設計的足以抵抗已知的攻擊ØØ採用的特定規範l l知道部分的加密金鑰或回合金鑰,也無法完全計知道部分的加密金鑰或回合金鑰,也無法完全計算出其他的回合金鑰位元算出其他的回合金鑰位元l l可反向的轉換可反向的轉換l l在不同處理器皆能維持速度在不同處理器皆能維持速度l l藉由回合常數排除對稱性藉由回合常數排除對稱性l l將加密金鑰的差異擴散到回合金鑰將加密金鑰的差異擴散到回合金鑰l l足夠的非線性足夠的非線性l l簡明易懂簡明易懂 AES解密解密ØØAESAES的解密與加密不完全相同的解密與加密不完全相同l l儘管加密和解密的金鑰排程形式相同,但是解密的轉儘管加密和解密的金鑰排程形式相同,但是解密的轉換順序卻與加密不同換順序卻與加密不同l l缺點是軟體或韌體模組需分別實作加密和解密功能缺點是軟體或韌體模組需分別實作加密和解密功能ØØ但還是有解密演算法與和加密演算法轉換順序相但還是有解密演算法與和加密演算法轉換順序相同的版本同的版本l l需要改變金鑰排程需要改變金鑰排程ØØ解密架構和加密架構要一致,必須交換解密回合解密架構和加密架構要一致,必須交換解密回合的前兩階段和後兩階段的前兩階段和後兩階段 AES解密解密 實作的觀點(實作的觀點( 8位元處理器位元處理器))ØØAES能夠很有效率的在8位元處理器實作l lAddRoundKeyAddRoundKey是逐一位元的是逐一位元的XORXOR運算運算l lShiftRowsShiftRows是簡單的位元組移位運算是簡單的位元組移位運算l lSubBytesSubBytes是位元組層級的運算,而且只需要是位元組層級的運算,而且只需要256256位元組的表格位元組的表格 l lMixColuITinsMixColuITins的轉換需要的轉換需要 GF(2GF(28 8) ) 的矩陣乘法的矩陣乘法l lMixColumnsMixColumns只要求乘以只要求乘以{02}{02}和和{03}{03},只需要簡,只需要簡單的移位、條件式單的移位、條件式XORXOR、以及、以及XORXOR運算運算 實作的觀點(實作的觀點( 32位元處理器位元處理器))ØØ如果運算單位是32位元字組,32位元處理器的實作就能更有效率l l重新定義步驟來使用重新定義步驟來使用3232位元字組位元字組l l事先計算事先計算256256字組的字組的4 4個表格個表格l l每回合的每一行只需要每回合的每一行只需要4 4個查表動作和個查表動作和4 4個個XORXOR運算運算l l儲存儲存4K4K位元組的表格位元組的表格ØØRijndael的開發人員相信,這簡潔效率的實作,是Rijndael被選為AES的最主要因素 總結總結ØØAES的:l l起源起源l l評選的標準評選的標準l l每一回合步驟的細節每一回合步驟的細節l l金鑰擴充金鑰擴充l l實作的觀點實作的觀點 。

      点击阅读更多内容
      相关文档
      2025国开山东开大《土质学与土力学》形成性考核123答案+终结性考核答案.docx 中学综合素质知识点梳理【中学教师资格证】.docx 2025国开山东开大《特许经营概论》形成性考核123答案+终结性考核答案.doc 2025年高考英语全国一卷真题(含答案).docx 2025国开山东《农民专业合作社创建与管理》形成性考核123答案+终结性考核答案.docx 2025国开山东开大《自然现象探秘》形成性考核123答案+终结性考核答案.docx 2025国开山东《消费心理学》形成性考核123答案+终结性考核答案.doc 2025国开山东《小微企业管理》形成性考核123答案+终结性考核答案.doc 2025国开山东开大《资本经营》形成性考核123答案+终结性考试答案.docx 2025国开山东《小学生心理健康教育》形考123答案+终结性考试答案.docx 2025国开《视频策划与制作》形考任务1-4答案.docx 2025国开《亲子关系与亲子沟通》形考任务234答案+期末大作业答案.docx 2025国开电大《煤矿地质》形成性考核123答案.docx 2025国开电大《冶金原理》形考任务1234答案.docx 2025国开《在线学习项目运营与管理》形考任务1234答案.doc 2025国开电大《在线教育的理论与实践》阶段测验1-4答案.docx 2024 年注册环保工程师《专业基础考试》真题及答案解析【完整版】.docx 环保工程师---2023 年注册环保工程师《专业基础考试》真题及答案解析【完整版】.docx 2025国开《液压与气压传动》形考任务一参考答案.docx 2025年春江苏开放大学教育研究方法060616计分:形成性作业2、3答案.docx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.