1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

17 1,6K 10

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 245,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

HỆ MÃ HÓA TIÊU CHUẨN TIÊN TIẾN Advanced Encryption Standard AES 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

Trang 1

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

Trang 2

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

Trang 3

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

Trang 4

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

Expanded key size (words/byte) 44/176 52/208 60/240

Trang 5

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

Trang 6

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

Trang 7

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

Trang 8

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

Trang 9

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

Trang 10

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

Trang 11

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.

Trang 12

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

Trang 13

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

Trang 14

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

Trang 15

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

Trang 16

Độ 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.

Trang 17

• DEMO CHƯƠNG TRÌNH

Ngày đăng: 25/10/2014, 22:06

TỪ KHÓA LIÊN QUAN

w