Tải bản đầy đủ (.doc) (29 trang)

TIỂU LUẬN MẬT MÃ AN TOÀN DỮ LIỆU HỆ MÃ HÓA AES (ADVANCED ENCRYPTION STANDARD)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (443.3 KB, 29 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

TIỂU LUẬN
MẬT MÃ & AN TOÀN DỮ
LIỆU
Đề tài: HỆ MÃ HÓA AES (ADVANCED ENCRYPTION
STANDARD)
PGS.TS Trịnh Nhật Tiến
Trần Phương Nam, K20
INT 6010 2
13025089
Hà Nội, 04/2014
MỤC LỤC

 !"#"$%&'
($)*+&,
-./$0&&1/$0/$2
33456/$78/4
$9
,:9;<=
>?;<=@
@ABC@
$$DED=F;GHI@
,DED=FEJ9@
DF=!EJ9FDI=KLMI9NOD'
@DEP9FQ9>R
@,*S9FO!;S9TIR
@*UGVWXR
@@UKYODMI38Z
@@,6[\Z


@@6[]Z
@@@6[]^_
@@'*I`DKLTT>abc_d_
'/TeD_
$$$/9NOD38f
,/9NOD=gI,h
,,F=89V"WXKcd,
,F=8i4OjKcd,'
,@F=^Ok9=Kcd,l
,'F=BB4O9BmXWcd,R
,l/9NODKEgIcmXW3^IKOd,Z
/9NOD=h
,F=$89V"WXKcdh
F=$8i4OjKcd,
@F=$^Ok9=Kcd,
'"n;oGBB4O9BmXWcd
$$$mnk9N
,59S9p;\BFEgI
/I=KLgI;\BFEgI!EP>ELFKLq
@/L>9gI@
'OF@
l*\IOFMI9NOD'
R*DD;\`eMI9NODl
DANH MỤC HÌNH , BẢNG BIỂU
r,8U;s9NOD,,
rDStVn;oMI8VO^B>Be=ITN,@
r@mnQ9Vn;oMIF=89V"WXKcd=TeD,@
r'\B9V8VO^KI9EPOD,'
rlmnQ9POD,'
rRIKBGq,l

rZ8kF=T\TeD,R
r_/F=BB4O9BmXWcd,Z
rfu9DTr3^IBmXW,_
r,hIF=$8i4OjKcd,
",u9>=vwKLxnyF9NzMI38'
"DF=!EJ9!DI=KLMI9NODR
"@"V<9B{D^]9'VZ
"'DTeDMI38f
"l*\BFEgI38f
LỜI MỞ ĐẦU
/T>;]WEv=DWP>IDT<!Eg;n|;pIOFVO
=Nvc$iOT=IO8X9TWd!}I>aIWH;nDVD
~=;=VOOv;>?TIO;oIW|z=\DIOFFVP=N
•ekFDVD>
*gB|9FEJ=O=\V`>;<VnT~kD>g;>?9W<9W
€;n>aNIWEv
•=N==gIv;;<‚g>atF>aN<9;>?
v;6>UDFW>a;>?KtBCTOPTGFQ9]K
>9zFk9=NTODE[KygEgI!eDU;>?VO=ƒ!
‚gz>a;>?|Q9Wp=g<^X=Fk9
KDT<=e=„MIvv!;ƒVkFKDT<MI
=e$XTX!FWFgp9v;>?k>9zT=DWPFt;
T=e$XTXFBO;g^9|9S9pIOFFVO=NvT
=DWPg<]kOe=vrIOFVO=NvT=DWPXOI
>P>KI9
"OvTOQ9DTrT9WpvT=ecXjOTE8X9TWd
"OL=DWP!F=e=DWP!E…K^]=NDOexV
OFc8WKX=8X9TWd
*<EyCDF;\DOeFW!>aIB•D>UTrg`
†Do!qL!=gI!VO=NOv

,
MÃ HÓA TIÊU CHUẨN TIÊN TIẾN
ADVANCED ENCRYPTION STANDARD
I. Giới thiệu
BIXB3TWO8IBITBc38d/99‡=gInkF=\9N
OD=gIEL;>?PMOIEˆDBCkF=99‡=gI~==
gIF=Bzk9BO/99‡FvQ9LIOImˆ
cIOIk$K9X8IBITBKIB/XOkOW‰$8/dDFFWRŠ,,Šhh,
F  ;>?  ;ƒ    TO  /9  9‡  ‹t  kJ  v      VI  ,fZ  cbXBXTIk
$iOT=IO6TOXKK8IBITB‰b$68,fZdKI9Q9DTrE[OBFl†=Tr
B9W!389]XO=Cl,@,TO9NDQ9kJvv
†=,ffRF9NOF=DWP†=,ffZ
/9NOD;>?nEnVYIF=N=>a"‚ŒOIIX=XFX
4•=X/9NOD;>?;ƒkFŽ4•BIXkŽEI=I9\nEn38
FOz†=,ffh!N|W9WUMI=gI38kFEP>EgIy!
gg<VGD=TO>UkISC99‡Q9LIOImˆ;E9
^]WB=\>UD=gI=9L•=\9NODgkF
4•BIXk;>?F;oFBIXB3TWO8IBITBIW38
/9NOD;>?BITVnEn8Q9ITXgT>;gMIIX=XF4•=X•
q8Q9ITXke;>?nEnBIT8ITEmD38KtBC=e
bXKXk!4•BIXkKtBC=eIWnODG38g<B{BF
L;\IOV~S=p=OƒS`FEv;q…p9V\
9‡=gI38O[^tkJDELBzk99gEP>,_VKt
BCDEgIg;\BF,_!,fOƒlRV=gI4•BIXk;>?nEn;<
g<kF=DEgIFELBzk9g;\BFkU!9W!E;>?
kF9‡BOMWVI99‡MIOIEˆ;>ITIFO†=hh,!g;>?Q9W
;G‚kF=ELBzk9,_VFDEgIg;\BF,_!,f!OƒlR
VcBO;gq;ƒOgD38,_!38,f!38lR>U`;\
BFEgIKtBCd
1. Ưu điểm

38;;>?PMOImˆ9WVLkFg;\IOFIO!F;>?KtBC
TOv=N

38KtBCVTIF[ngP|9Wn=eB•;n=`;\
]Dv`ekF=†;\IOFO9NOD
38g=vOD;U!|9T}T‘TF;U
2. Nhược điểm
|9T}ODMI38g=vODED;U/9W;p9FW>I
B•;n=L9W<=FO>=\KLF`9OT~K„g>ak?
BC;>?|9T}FWTO>UkI
3. Ứng dụng
IW!38;>?KtBCoVnTOFn;<VOBzk9YD
o`]F!FP!PM!>U=e;t!zEJ;t
gI38;>?`BCI;LS`FS=p=!‚W9
S9=\EvIk>9Tz…!kJ>Y;<KtBCO=gIznVG
S=IW…>o&8"ikIK!o;HI!’
gI38;>?KtBC>=\F=V†=
II. Các khái niệm và định nghĩa
1. Các khái niệm và ký hiệu
38 9‡=gIIO|
"n;oiiX 6[Vn;oVIOs==\[]
=\=ITNKI9;gkF=vw[\MI
=\XU
" \KL“]]”DT“hOƒ,
"kOE \BWDV“]eOF9!
O99!TeD cKIXd FD EgI Kt
BCeDqkƒc4O9BmXWdMI
=*\BFMIBWcELdkFKLk>?D
V=Fg`IDEL•g<;>?
^X=kF=\BWDVWX

"WX \g=_V
XT /9NOD=gI
@
XTmXW mgIMI=!g<;>?V<9B{
B>Be=\=p9s='F
FE\
XTX^ "=
$XTKXXT /9NOD=
/MCKEgIcmXW3^IKOd /MC;>?KtBC;<KTIDEgI
KtBCeDqkƒMI9NOD=
gI!=xEgIPVI;S9
4O9BmXW FDDTGKTIxEgIPV~
DKtBCMCKEgIDEgI
FW ;>?  Kt  BC  e  D  q  kƒ MI
9NOD
/TeDc8IXd DDTG=gIT9Ig<V<9
B{B>Be=vw=p9s='
FFV\
8VO^ \Vn9Wn;>?KtBCTO
M9

KEgIFTODVn;oIW
nDVWX;<DIWn,,
;L=\DT“,VWX
–OTB \g=@Vg<;>?^X=>,
;U“POD;\kNOƒkF=\=
'VWX
",u9>=vwKLxnyF9NzMI38
2. Các hàm, ký hiệu và các tham s_ c`a thuật toán
DI=KL9NOD!DEJ9FDF=;>?KtBCTO=v9N

OD
/F= P
BB4O9BmXWcd F=Vn;o;>?KtBCTO9NOD=gI
F=TO;g[‹74VzI
TeDT9IcKIXdF=\EgIqkƒ
'
c4O9BmXWdmP>MI=\4O9BmXWV~
EP>MITeD!PBCV—';\BFMI
=\4O9BmXWK„kF,_VIW,RVWX
^Ok9=Kcd F=Vn;oTO9NOD=gIN|D
\MI=\TeDcKIXdFT\Bzk9MI
gcEvC9\k•I9d;<N;>?\=
8i4OjKcd F=KtBCTOQ9DTr=gI!^tkJDTe
DV~DBGqVIF9LMITeD
KLkSBGEDI9
89V"WXKcd F=Vn;oKtBCTOQ9DTr=gI!^tkJ
=\TeDV~DKtBC=\Vn
9WnDVWXc8VO^dIODT=˜VWX=\
D;\kN
$^Ok9=Kcd F=Vn;o;>?KtBCTO9NOD=!
kFF=>?MIF=^Ok9=Kcd
$8i4OjKcd F=Vn;o;>?KtBCTO9NOD=!
kFF=>?MIF=8i4OjKcd
$89V"WXKcd F=Vn;o;>?KtBCTO9NOD=!
kFF=>?MIF=89V"WXKcd
m mgI=gI
V 8Lk>?D\ckFDjOTB@VdeOF=\
TeD!V—'d
E 8Lk>?DjOTB@VIFEgI=gIm
cE—'!R!Oƒ_d

T 8Lk>?DqkƒMI9NOD!kF=\F=MI
EFVckFDDTGL;GdcT—,h!,Oƒ,'
>U`DDTGEDI9MIEd
4O™š jOTB~KLKtBCTODqkƒ
4O–OTBcd F=KtBCTOMCKEgIN=\jOTB
l
'VWXF=\ODGq
89V–OTBcd F=KtBCTOMCKEgIN=\jOTB
9'VWXFKtBC=\8VO^T=˜DTG'
VWXFW;<9;>?,jOTBO99
‹74 6[OTV9W;L

6[OTV9W;L

6[];I`cVN…U'dXO=OB9kOc^
'
›,d
œ 6[]TT>az9e
"DF=!EJ9!DI=KLMI9NOD
3. Các kí hiệu và qui ước
3.1 Đầu vào, đầu ra
*S9FOF;S9TIMI9‡=gIIO|;p9kFDBW,_V!qkFD
ELcVkOEd!;\BFMI=˜ELFWkFKLVBzk9=Fg`ImgIMI9‡
=gIIO|kF=\BWg;\BF,_!,fOƒlRV9‡=gIBzk9
IO|EvkF=DDTG;S9FO!;S9TIFEgIgD;v“BFED
c=ƒB•9NODUKYMIgO[;p9FWdDVMI;S9FO!;S9TIF
EgIMI“=;>?;DKLxh
3.2 Đơn vị byte
*U“UV;<^tkJTO38kF=vwVWX`kF=vwBW_V;>?^X=>kF
=\;L>?;UDDTG9!O99FEgIMI“=;>?^X=kF=\

=DVWXDDTG9!O99FEgIMI“=;>?EJ9VY
=IFV<9B{B>BeI

OƒI™šTO;gNDDT“TOD
EOKI9
n9;v“BFEgIV~,_Vh•ž,R•
n9;v“BFEgIV~,fVh•ž'•
n9;v“BFEgIV~lRVh•ž@•
R
/|DDT“"WXKtBCTO9]wODMI38;p9;>?V<9B{B>
Be=\BWDVhOƒ,XO;GBeŸVZ!VR!Vl!V'!V@!V!V,!Vh D
"WXFWKI9;>?<9kFDStTT>az9eV~DKtBCV<9
B{FBe;I`
V
Z
^
Z
›V
R
^
R
›V
l
^
l
›V
'
^
'
›V

@
^
@
›V

^

›V
,
^
,
›V
h
^
h
—

=
Z
hi
i
i
xb
•I”DT“Ÿh,,hhh,, >U;>UStTT>az9e^
R
›^
l
›^›,
*<9N!DDTG"WX;>?V<9B{KtBCDEJ9MIX^I!Kt
BC'VO=\EJFIEJO=\"WX>VKI9

"@"V<9B{D^]9'V
m;gD"WXc_VdK„;>?V<9B<V~IEJ!•I”Ÿh,,hhh,, K„
;>?V<9B{FŸR@ 
3.3. Cơ sở toán học của AES
38KtBCT>az9eIkOKbc
_
d;<D[OD[
\![Tx![]!F[IDStMIT>abc
_
d;>?^X=
>kFD;I`
3.3.1. Phép cộng
6[\Y;]W;>?<9kF[‹74TIV>U`TOVWXF
gEJ9kF⊕
3.3.2. Phép nhân
6[]TT>abc
_
d>U`[]v>aMII
;I`;X=Ik|WB>c=OB9kOdO=\;I`LVN_/TO9NOD
38!;I`L;>?kF
=c^d—^
_
›^
'
›^
@
›^

›^›,
Z

mnQ9N;>?MI[T}kF=\;I`gVN…U_g
<V<9B{;>?B>Be=\VWX
3.3.3. Phép nhân với x
6[];I`^cIWStŸhhhhhh,h  bc
_
ddg<;>?
Y=`;\VWXV~=\[BGTDFKI9;gn[
‹74DTGŸ,V n9V
Z
—,/IOD;>?EJ9kF^=Xcd6[]D
k•WxIMI^g<;>?V~DDBCp9kSIOD^=Xcd
mnQ9MI[]=\DTGV|Eˆ;>?^D;GV~[\cc⊕d
DEnQ9T9IFWkeI9
3.3.4. Đa thức với các hệ số trên trường GF(2
8
)
6[]MII;I`VN'DKLTbc
_
dIc^d ⊗ Vc^d;>?
^D;GV~'etBc^d
Bc^d—B
@

@
›B



›B
,

‹›Bh!TO;g
B
h
—cI
h
œV
h
d⊕cI
@
œV
,
d⊕cI

œV

d ⊕cI
,
œV
@
d
B
,
—cI
,
œV
h
d⊕cI
h
œV
,

d ⊕cI
@
œV

d ⊕cI

œV
@
d
B

—cI

œV
h
d ⊕cI
,
œV
,
d ⊕cI
h
œV

d ⊕cI
@
œV
@
d
B
@

—cI
@
œV
h
d ⊕cI

œV
,
d ⊕cI
,
œV

d ⊕cI
h
œV
@
d
4. Trạng thái
DTeDVTMI38;>?T=\=Ip9DVWX
;>?kFTeD\TeDs='FDVWX=˜FgVVWX
TO;gVkFEP>MIELIO@TeDEJ9kFKTO
;g=˜VWXMI=g‚KLFTF\chž—T!ž—'d
/ea;<=Vy;S99MI9NOD‰=VWXh!,!,l;>?OW
FO=TeDXOQ9Wy;>?=IV~r„
_
"'DTeDMI38
/TO;gDDTGMI=KF=O99;>?P>KI9
K™T!š—™T›'š=hž—T!ž'
O9™T›'š—K™!Tš=hž—T!ž'
"<9B{TeD

"L\MI=TeDMI9NODeOF'jOTB@Vjh!j,!j@
;>?V<9B{>KI9
jh—Kh!hK,!hK!hK@!hj,—Kh!,K,!,K!,K@!,
j—Kh!K,!K!K@!j@—Kh!@K,!@K!@K@!@
III. Thuật toán AES
*\BFMI9!O99FDTeDcKIXdMI9‡=gIIO|38kF
,_V>U`DT“MIV—'ckFKLk>?DjOTB@VF•kFKL
\MI=˜TeDdmgIMI38g;\BFkF,_!,fO†

lRV>U`
DDTGMIEkF'!R!O†

_F•kFKL\MIEgI=gI
/>U`;\BFMIEgIKtBCKLqkƒMI9NODTNDD
TG,hcE—'d!,cE—RdO†

,'cE—_d}Ig<=IQ9IV
KI9
Độ dài khóa
(Nk từ)
Độ dài kh_i
(Nb từ)
S_ vòng
(Nr)
AES-128 ' ' ,h
AES-196 R ' ,
AES-256 _ ' ,'
"l*\BFEgI38
f
Q9DTr=gIF=38KtBC=\F=kƒkFEn?MIVLF=

Vn;oc;U“^tkJkFVWXdKI9
 "n;oIWnVWXKtBC=\Vnc8VO^d
 GDFMI=TeDKLkSBGMI=˜FkFEDI9
 mn?Bzk9MI=˜\TO=TeDF\=\EgI4O9B
mXWFOTeD¡
1. Thuật toán mã hóa
"y;S99NODVT‘c9d;>?OWFO=TeDKtBCDQ9
>;>?=vTOST8I9E\EgI4O9BmXWEYeO=
TeD;>?Vn;oV~D=\F=qcTO9Bi9OdTkS
c,h!,!O†

,'C9\FO;\BFEgIdTO;gkS9L•ED
DkST>;g/TeDKI9kSkƒ9L•K„;>?9W<FO99MI
9NODXOQ9y;>?=vTOSKI9
F=q;>?I=KLgIKtBC=\cEXWKXB9kXdBWDEgI;>?V<9
B{>kF=\=,p9MIDjOTB'VWX;>?KTIxMCKEgI
cmXW3^IKOd;>?=vTOSKI9
}Ig<|W|Dq;p9DvLI9BI
T  '  F=  cXO  `    89V"WXKcd!  8i4OjKcd!  ^Ok9=Kcd  F
BB4O9BmXWcdTxq9L•V…Q9IF=^Ok9=Kcd
/9NOD;>?=vnQ9I;Oe=kKI9
Cipher(byte in[4*Nb], byte out[4*Nb], word w[Nb*(Nr+1)])
begin
byte state[4,Nb]
state = in
AddRoundKey(state, w[0, Nb-1]) // See Sec. 5.1.4
for round = 1 step 1 to Nr–1
SubBytes(state) // See Sec. 5.1.1
ShiftRows(state) // See Sec. 5.1.2
MixColumns(state) // See Sec. 5.1.3

,h
AddRoundKey(state, w[round*Nb, (round+1)*Nb-1)
end for
SubBytes(state)
ShiftRows(state)
AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1])
out = state
end
r,8U;s9NOD
,,
1.1. Hàm SubBytes()
F=89V"WXKcd[IWnDVWXMI=TeDV~DKt
BC=\Vn8VO^!VnFWkFEGF;>?^]WBV~D
En?IVn;oKI9
I ]G;OTT>az9ebc
_
d!StŸhh ;>?D^e
FPg
V ¢BCVn;oiiXKI9cTbcdd
,
V

£—V

⊕V
c›'d=OB_
⊕V
c›ld=OB_
⊕ V
c›Rd=OB_

⊕ V
c›Zd=OB_
⊕ 

!TO;gh_kFV`MI
VWXV>U`F

kFV`$MIVWXDTGŸR@ IWŸh,,hhh,,
DStVn;oIiiXMI8VO^g<;>?V<9BnB>Be=ITN>
KI9
rDStVn;oMI8VO^B>Be=ITN
rB>;]W=IEnQ9MIDBCF=Vn;o89V"WXKcd;L
=TeD
r@mnQ9Vn;oMIF=89V"WXKcd=TeD
/TO;g[\>[‹74rB>TrVFW\B9V
8VO^KI9EPOD
,@
r'\B9V8VO^KI9EPOD
PBC^[DTGŸfl !eV>,!DTGeBqf\lkFŸfl !KI9V>P
G;ODTGMIvFWkFŸ_ gBeG]kF,hhh,h,h/[
]=ITN
rlmnQ9POD
mnQ9B>BeNkC]kFŸ 
1.2. Hàm ShiftRows()
/TOF=FWDVWXTOVIF9LMI=TeDK„;>?BGq
KLkSBGcIWKLVWXVGBGdEDI9F;S9T—hEvVGBG
C<F=FWK„nFV>;oKI9
,'

T

—8
T!c›KicT!Vdd=OBV
cV—'dTO;gDTGBGKicT!VdC9\FOKLF
T>KI9
Kic,!'d—,!Kic!'d—!Kic@!'d—@
/IODFWK„9W<DVWXDGTP|UTODF!TOED
VWX||K„;>?9W<k;S9F/|D=vTg<=I
Q9Ir„KI9
rRIKBGq
1.3. Hàm MixColumns()
F=FWkF=TD\MI=TeD!gO=˜\MI=Te
D>kF=\;I`s='etD\K„;>?^X=>kFD;I`T
bc
_
dF;>?]T=OB9kO^
'
›,=\;I`L;GIc^d
Ic^d—Ÿh@ ^
@
›Ÿh ^

›Ÿh, ^›Ÿh
g<V<9B{V~[]=ITN
K£c^d—Ic^d⊗Kc^d— —
=h•žV—'
,l
mnQ9kFVLVWXTO=˜\K„;>?IWnXOv`KI9

h!
—cŸh œK

h!
d ⊕ cŸh@ œK
,!
d ⊕K
!
⊕K
@!

,!
—K
h!
⊕ cŸh œK
,!
d ⊕cŸh@ œK
!
d ⊕K
@!

!
—K
h!
⊕ K
,!
⊕cŸh œK
!
d ⊕cŸh@ œK
@!
d

@!

—cŸh@ œK
h!
d ⊕ K
,!
⊕K
!
⊕cŸh œK
@!
d
g<=IF=FWV~r„KI9
rZ8kF=T\TeD
1.4. Hàm AddRoundKey()
/TOF=FW!=\EgIqc4O9BmXWdK„;>?\FO=TeD
V~=\IOD‹74V˜EgIqs=VjOTB;>?KTIVYMC
KEgIDjOTBFWK„;>?\FO=˜\MI=TeD>KI9
™K£
h!
!K£
,!
!K£
!
!K£
@!
š—™K
h!
!K
,!
!K
!
!K

@!
š ™j
TO9B¤V›
šh••V—'
/TO;g™j

škFDjOTBMIEgIFTO9BkFkSkƒ>U`Q9W>
h•TO9B•V/TO9NOD=gI[\EgIqEYeO^WTI
,R
TO9B—h  T>  E  D  q  kƒ  MI  9N  OD  ;>?      F=
BB4O9BmXWcd;>?TO9NOD=gIE,•TO9B•V
    F= FW  g  < ;>? =  I  > TO r „!  TO ;g
k—TO9B¤V
*GI‚VWXTODjOTBMIBWEgI;>?=v>KI9
r_/F=BB4O9BmXWcd
1.5. Thuật toán sinh khóa (Key Expansion)
/9]wODKEgIMI38N=\EgI=gImKI9;g=\M
CKEgI;<K=\BWDEgIO=gI/MCFWK„Ko
KLV¤cT›,djOTB!MCKtBC=\NEYeOVjOTBF=˜=\kSkƒ
TOKLTkSK„SVjOTBMIBzk9EgIWEgIEnQ9kF=\=
9WnPDjOTB'VWX;>?EJ9kF™jšTO;ghž—žVcT›,d
,Z
rfu9DTr3^IBmXW
8=YT\EgIFBWEgI;>?=vQ9I;Oe=KI9
KeyExpansion(byte key[4*Nk], word w[Nb*(Nr+1)], Nk)
begin
word temp
i = 0
while (i < Nk)
w[i] = word(key[4*i], key[4*i+1], key[4*i+2],

key[4*i+3])
i = i+1
end while
i = Nk
while (i < Nb * (Nr+1))
temp = w[i-1]
if (i mod Nk = 0)
,_
temp = SubWord(RotWord(temp)) xor
Rcon[i/Nk]
else if (Nk > 6 and i mod Nk = 4)
temp = SubWord(temp)
end if
w[i] = w[i-Nk] xor temp
i = i + 1
end while
end
89V–OTBcdkF=\F=N=\9'VWXFDBCVn8VO^k9
;<N;>?=\jOTBO99F=4O–OTBcdN=\jOTB9™Ih!I,!I!
I@š=vODGqFTp™I,!I!I@!IhšDStMI=
~KL4O™š`IDDTG“];>?VY™^,!Ÿhh !Ÿhh !Ÿhh šTO;g^
,kF=•gIMI^c^;>?V<9B{B>BeŸh Tbc_dFVy;S9x
,d
/XO;Oe=T}Ign]”|WT~EjOTBMIEgIEnQ9K„
;>?;pVYEgI=gIDjOTBKI9;gj™šK„V~‹74jOTB;`
T>gj™,šj™EšDjOTBY“TPInOE=\Vn;oK„
;>?j™,šT>E[‹74V!KI9;gkF[‹74
=vw~KL4O™š"n;oFWs==\[BGqDVWXMI=vw
jOTBc4O–OTBcdd!KI9;gkFDBC=\VTIk|'VWXMIjOTB
c89V–OTBcdd

}JkFMC=YT\EgI;LDEgIg;\BFlRUEDKOM
CODEgIg;\BF,_Oƒ,fn9E—_F‰'kF=\V\KLMIE
r89V–OTBcdK„;>?DBCOj™,šT>E[‹74V
C;PMI3^IBEXWB•;<LkeEOjkIX^IIE
 "n=\KLVPMIEgIIWEgIO•Ev<PDVPqke
 mv<P>?Vn=\EgIO•Ev<PkeDEgI
OT>;g
,f
 /PE9nD=\VPMIEgIPD;\k|DVPMID
EgIO
2. Thuật toán giải mã
/9NOD=EDL9NOD=gIp=ƒ|9T}>'F=
U  V  Kt  BC  kF  D  F=  >?  MI  D  F=  TO  9N  OD    =
c$8i4OjKcd!$89V"WXKcd!$^Ok9=KcdFBB4O9BmXWcdd>;]W
kF;Oe=O9NOD=KI9
*Oe=O9NOD>KI9
InvCipher(byte in[4*Nb], byte out[4*Nb], word
w[Nb*(Nr+1)])
begin
byte state[4,Nb]
state = in
AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1]) // See
Sec. 5.1.4
for round = Nr-1 step -1 downto 1
InvShiftRows(state) // See Sec. 5.3.1
InvSubBytes(state) // See Sec. 5.3.2
AddRoundKey(state, w[round*Nb, (round+1)*Nb-1])
InvMixColumns(state) // See Sec. 5.3.3
end for
InvShiftRows(state)

InvSubBytes(state)
AddRoundKey(state, w[0, Nb-1])
out = state
end
2.1. Hàm InvSubBytes()
h
F=FWkFF=>?MIF=89V"WXKcd!F=KtBCG;OMIVn;o
iiXV~D]G;OTbc
_
d
2.2. Hàm InvShiftRows()
F=FWkFF=>?MIF=8i4OjKcdDVWXMIVIF9LMI=
TeDK„;>?BGqGTPBGEDI9F;S9EvVGBG!
VIF9LVGBG;VKicT!VdVWXTO;gDTGKicT!VdC9\
FOKLF
C<F=FWnF^tkJ>KI9

T!c›KicT!Vdd=OBV
—K
T!
hžTž'!h•žVcV—'d
r,hIF=$8i4OjKcd
2.3. Hàm InvMixColumns()
F=FWkFF=>?MIF=^Ok9=KcdF=FWkF=TD\MI
=TeD!O=˜\>=\;I`'etD\;>?^X=>kF
,

×