Tải bản đầy đủ (.ppt) (17 trang)

HỆ MÃ HÓA TIÊU CHUẨN TIÊN TIẾN Advanced Encryption Standard AES

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 (122.77 KB, 17 trang )

HỆ MÃ HÓA TIÊU CHUẨN
TIÊN TIẾN
Advanced Encryption Standard - AES
Học viên: Trần Phương Nam
Giảng viên: PGS.TS Trịnh Nhật Tiến
Nội Dung

Sự ra đời của hệ mã hóa AES?

Hệ mã hóa AES và Quy trình mã hóa

Thuật toán mã hóa và giải mã AES

Thuật toán sinh khóa AES

Độ an toàn của hệ mã hóa AES

Demo chương trình
Sự ra đời của hệ mã hóa AES?

Thuật toán mã hóa khối đối xứng

Được công bố năm 2001

Dùng để thay thế cho hệ mã hóa DES và 3DES
DES: dễ bị tấn công
3DES: chậm
Hệ mã hóa AES

Khối dữ liệu đầu vào có kích thước là 128 bit


Kích thước của khóa tùy thuộc vào từng trường
hợp cụ thể có thể 128, 192 or 256 bits
Key size (words/bytes/bits) 4/16/128 6/24/192 8/32/256
Number of rounds 10 12 14
Expanded key size (words/byte) 44/176 52/208 60/240
Hệ mã hóa AES

Khóa nhận được như mảng đầu vào gồm 4 hàng và Nk cột

Nk = 4,6, hoặc 8, là biểu diễn độ dài của khóa

Khóa đầu vào được mở rộng thành một mảng các từ 32
bits

4 từ khác nhau như một khóa của mỗi vòng
k0 k4 k8 k12
k1
k2
k3
k5
k6
k7
k9
k10
k11
k13
k14
k15
w0 w1 w2
……

w42 w43
Hệ mã hóa AES

Độ dài khối đầu vào là128

Sao chép trạng thái của mảng với Nb cột (Nb=4)

in0 in4 in8 in12
in1
in2
in3
in5
in6
in7
in9
in10
in11
in13
in14
in15
S00 S01 S02 S03
S10
S20
S30
S11
S21
S31
S12
S22
S32

S13
S23
S33
o0 o4 o8 o12
o1
o2
o3
o5
o6
o7
o9
o10
o11
o13
o14
o15
Input
State array
Output
Hệ mã hóa AES

Số vòng được thay đổi phụ thuộc vào kích thước của khóa
– ký hiệu Nr

Mỗi vòng là sự lặp lại các chức năng mà thực hiện chuyển
đổi trên mạng trạng thái

Gồm 4 chức năng chính: một hàm hoán vị, 3 hàm thay thế.
Substitute bytes, Shift rows, Mix columns, Add round key
Thuật toán mã hóa AES


AddRoundKey() – thực hiện phép XOR bit giữa trạng
thái trung gian (state) và một khóa vòng lặp (Round
Key)

MixColumns() – nhận tất cả các cột của một trạng thái
(state) và trộn với dữ liệu của nó (không phụ thuộc lẫn
nhau) để nhận được cột mới.

ShiftRows() – xử lý các trạng thái bằng cách dịch vòng
ba hàng cuối của trạng thái với số lần dịch khác nhau

SubBytes() – xử lý một trạng thái bằng cách sử dụng
một bảng thế phi tuyến các byte (S-box) thao tác trên
mỗi byte một cách độc lập
Thuật toán mã hóa AES
Add round key
Substitute bytes
Shift rows
Mix columns
Add Round key
Substitute bytes
Shift rows
Mix columns
Add round key
Substitute bytes
Shift rows
Add round key
plaintext
Cipher text

key
W[4,7] W[36,39] W[40,43]
R
o
u
n
d

1
R
o
u
n
d

9
Thuật toán mã hóa AES
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])
for round=1 to Nr-1
SubBytes(state)
ShiftRows(state)
MixColumns(state)
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
Thuật toán mã hóa AES

Chỉ hàm Add round key tạo ra sự sử dụng các khóa

Ba hàm còn lại được sử dụng phương thức “mập mờ” và
“khuếch tán”

Vòng cuối cùng chỉ bao gồm thực hiện ba giai đoạn.
Thuật toán giải mã AES

InvSubBytes(): là nghịch đảo của phép thay thế
theo SubBytes().

InvShiftRows(): là phép biến đổi ngược của
ShiftRows()

InvMixColumns(): là phép biến đổi ngược của
MixColumns()

AddRoundKey(): là phép biến đổi thuận nghịch vì
nó chỉ áp dụng một phép toán XOR
Thuật toán giải mã AES
Add round key
Inv. Shift rows
Inv. Sub bytes
Add round key
Inv. Mix Columns

Inv. Shift rows
Inv. Sub bytes
Add round key
Inv. Mix columns
Inv. Shift rows
Inv. Sub bytes
Add round key
ciphertext
plaintext
key
W[36,39] W[4,7] W[0,3]
R
o
u
n
d

1
R
o
u
n
d

9
Thuật toán giải mã AES
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)
for round=1 to Nr-1
InvShiftRows(state)
InvSubBytes(state)
AddRoundKey(state, w[round*Nb, round+1)*Nb-1])
InvMixColumns(state)
end for
InvShiftRows(state)
InvSubBytes(state)
AddRoundKey(state, w[0, Nb-1])
Out = state
end
Thuật toán giải mã AES

Thuật toán giải mã sử dụng chìa khóa mở rộng
theo thứ tự ngược

Các chức năng trong giải mã là hình thức đảo
ngược các chức năng

Thuật toán giải mã không giống với thuật toán mã
hóa

Vòng cuối chỉ thực hiện 3 giai đoạn
Độ an toàn của thuật toán

Thiết kế và độ dài khóa của thuật toán AES (128, 192 và
256 bít) là đủ an toàn.

Sự phức tạp của biểu thức S-box cùng với hiệu ứng khuếch

tán giúp cho thuật toán không thể bị phân tích bằng
phương pháp nội suy.

DEMO CHƯƠNG TRÌNH

×