首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

用新的高級加密標準(AES)保護資料安全(二):S-box、金鑰調度表、State 狀態矩陣、AddRoundKey、SubBytes、ShiftRows 核心操作詳解

     編輯:關於C語言

建構時初始化兩大表

S-box (Sbox) 前 5x5 矩陣

S-box (Sbox):16x16 替換表,SubBytes、KeyExpansion 使用。

金鑰調度表 Key Schedule

金鑰調度表 w[]:4 x Nb*(Nr+1) 位元組矩陣。前 Nk 列為種子金鑰,餘由 KeyExpansion 生成。Nk 為以 32-bit 字計的金鑰長度。

State 狀態矩陣

State 矩陣

加密輸入 16 位元組複製至 4x4 State[r,c] 矩陣(r=0..3, c=0..3)。

AddRoundKey:輪金鑰 XOR

預處理與各輪皆執行。State[r,c] XOR w[c,r](注意索引轉置)。例:

State[0,2]=0x88, w[2,0]=0x08 → 0x88 ^ 0x08 = 0x80
二進位:10001000 ^ 00001000 = 10000000

SubBytes:S-box 位元組替換

State[0,1]=0x40 → x=4, y=0 → Sbox[4,0] 為新值。每位元組獨立查表替換。

ShiftRows:行左循環移位

Row 0 不動,Row 1 左移 1,Row 2 左移 2,Row 3 左移 3。視覺化見圖 6。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved