1. Trang chủ
  2. » Tất cả

Tiêu chuẩn mật mã hóa tiên tiến và ứng dụng

29 1 0

Đ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

Tiêu đề Tiêu Chuẩn Mật Mã Hóa Tiên Tiến Và Ứng Dụng
Tác giả Nhóm 3
Trường học Học Viện Công Nghệ Bưu Chính Viễn Thông
Chuyên ngành An Ninh Mạng Thông Tin
Thể loại Bài luận cuối kỳ
Định dạng
Số trang 29
Dung lượng 2,33 MB

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

Nội dung

Kể từ khi được công bố là một tiêu chuẩn, AES trở thành một trong những thuật toán mã hóa phổ biến nhất sử dụng khóa mã đối xứng để mã hóa và giải mã một số được giữ bí mật dùng cho quy

Trang 1

MÔN HỌC: AN NINH MẠNG THÔNG TIN

ĐỀ TÀI: TIÊU CHUẨN MẬT MÃ HÓA

TIÊN TIẾN VÀ ỨNG DỤNG

- -

BÀI TIỂU LUẬN CUỐI KÌ

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

KHOA VIỄN THÔNG

Trang 2

Bài thi cuối kì môn ANM

Trang 3

BẢNG PHÂN CÔNG CÔNG VIỆC NHÓM

Họ tên sinh viên Nội dung phụ trách Chi tiết công việc

Tổng quan về thuật toán AES

Độ an toàn của thuật toán AES

 Tìm hiểu, nghiên cứu và trình bày nội dung phần 1

và độ an toàn của AES

 Hoàn thành bản word bao gồm: Chỉnh sửa toàn diện, mục lục, làm danh mục hình vẽ - bảng

Sinh khóa trong AES Thuật toán mã hóa AES

 Tìm hiểu, nghiên cứu và trình bày nội dung phần 2: quá trình sinh khóa; nội dung về quá trình mã hóa AES

 Hoàn thành tài liệu tham khảo

Trang 4

Bài thi cuối kì môn ANM

MỤC LỤC

LỜI NÓI ĐẦU 8

I TỔNG QUAN HỆ MẬT MÃ AES 9

1.1 Định nghĩa 9

1.2 Đặc điểm thuật toán AES 9

a, Đặc trưng cơ bản 9

b, Cơ sở toán học 9

1.3 Cấu trúc thuật toán AES 10

II Sinh khóa trong AES (KeyExpansion) 11

2.1 Các quá trình trong sinh khóa: 12

RotWord() 12

SubBytes() 12

Rcon() 13

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

3.1 Thuật toán mã hóa AES 17

Phép SubBytes() 17

Phép ShifRows() 18

Phép biến đổi MixColumns() 19

Phép AddRoundKey() 20

3.2 Thuật toán giải mã 20

Phép biến đổi Add Round Key đảo 21

Phép biến đổi InvShiftRows 21

Phép biến đổi InvSubBytes 22

Phép biến đổi InvMixColumns 23

IV Ứng dụng thực tế của AES 24

4.1 Sử dụng cho công cụ lưu trữ và nén ( 7 Zip ) 24

Trang 5

4.2 Mã hóa ổ đĩa 25

4.3 Mạng riêng ảo VPN 26

V Kết Luận 28

Độ an toàn của thuật toán AES 28

VI Tài liệu tham khảo 28

LỜI CẢM ƠN 29

Trang 6

Bài thi cuối kì môn ANM

6

DANH MỤC CÁC BẢNG BIỂU VÀ HÌNH VẼ

A – HÌNH VẼ

Hình 1: Cấu trúc mã hóa chung của AES 11

Hình 2 : Sơ đồ qua trình sinh khóa mở rộng 12

hình 3: Minh họa quá trình sinh khóa trong AES - 128 13

hình 4:: Minh họa quá trình mã hóa mỗi word đầu tiên trong vòng lặp 14

hình 5:Minh họa quá trình sinh khóa trong AES – 192 15

hình 6: Minh họa quá trình sinh khóa trong AES – 256 15

Hình 7: Sơ đồ quá trình mã hóa và giải mã hóa 17

hình 8: S-box 18

hình 9: Minh họa phép biến đổi ShiftRows 18

hình 10: Minh họa dich vòng của ShiftRows 19

hình 11: Minh họa phép MixColumns: 19

hình 12: Minh họa phép AddRoundKey 20

hình 13: Ma trận khóa vòng thứ 10 và ma trận dữ liệu đã mã hóa 20

hình 14: Phép biến đổi Add Round Key 21

hình 15: : Phép biến đổi InvShiftRows 21

hình 16: Bảng S-box đảo của chuẩn AES 22

hình 17: Phép biến đổi InvSubBytes 22

hình 18: Ma trận chuyển đổi dùng trong InvMixColumns 23

hình 19: Phép biến đổi InvMixColumns 23

hình 20: 7 Zip sử dụng phương pháp mã hóa AES-256 24

hình 21: Thực hiện kết nối VPN sử dụng TunnelBear 26

Trang 7

B – BẢNG BIỂU

Bảng 1: Tổ hợp Khóa - Khối - Vòng 10 Bảng 2: bảng các giá trị RC[j] trong cơ số 16 13 bảng 3: So sánh quá trình sinh khóa giữa các loại khóa : AES – 128 , AES –

192 , AES – 256 16 bảng 4: Vòng lặp chính của AES 17

DANH MỤC THUẬT NGỮ VIẾT TẮT

VPN Virtual Private Network Mạng riêng ảo

Trang 8

Bài thi cuối kì môn ANM

LỜI NÓI ĐẦU

Trước khi đi sâu vào AES, chúng ta sẽ nói về cách AES đạt được tiêu chuẩn hóa

và nói ngắn gọn về tiền nhiệm của nó là DES hay tiêu chuẩn mã hóa dữ liệu Dựa trên

sự phát triển của họ trên một thuật toán nguyên mẫu do Horst Feistel thiết kế, IBM đã

phát triển thuật toán DES ban đầu vào đầu những năm 1970

Sau đó, mã hóa được đệ trình lên Văn phòng Tiêu chuẩn Quốc gia Sau đó hợp tác

với NSA đã sửa đổi thuật toán ban đầu rồi xuất bản nó thành tiêu chuẩn xử lý thông tin

liên bang vào năm 1977 DES đã trở thành thuật toán tiêu chuẩn được chính phủ Hoa

Kỳ sử dụng trong hơn hai thập kỷ, cho đến khi, vào tháng 1 năm 1999, Distribute.net và

Electronic Frontier Foundation đã hợp tác để phá khóa DES công khai trong vòng chưa

đầy 24 giờ Họ đã kết thúc thành công chỉ sau 22 giờ 15 phút, đưa điểm yếu của thuật

toán trở thành tiêu điểm cho tất cả mọi người xem

Trong suốt quá trình 5 năm, toàn bộ cộng đồng mật mã đã tập hợp lại với nhau để

thực hiện các bài kiểm tra chi tiết, các cuộc thảo luận và các cuộc tấn công giả nhằm tìm

ra các điểm yếu và lỗ hổng tiềm ẩn có thể ảnh hưởng đến bảo mật của từng mật mã Mặc

dù sức mạnh của mật mã cạnh tranh rõ ràng là vô cùng quan trọng, nhưng nó không phải

là yếu tố duy nhất được đánh giá Các yêu cầu về tốc độ, tính linh hoạt và tính toán cũng

được xem xét vì chính phủ cần một mã hóa dễ thực hiện, đáng tin cậy và nhanh chóng

Và trong khi có nhiều thuật toán khác hoạt động rất tốt (thực tế là nhiều thuật toán trong

số đó vẫn được sử dụng rộng rãi cho đến ngày nay), mật mã Rijndael cuối cùng đã giành

chiến thắng và được tuyên bố là một tiêu chuẩn liên bang Trên thực tế, sau khi tiêu

chuẩn hóa AES, mật mã tiếp tục tăng qua các cấp bậc, và vào năm 2003, NSA cho rằng

nó phù hợp để bảo vệ Thông tin tối mật

Trong mật mã học, mã hóa là phương pháp để biến thông tin từ định dạng bình

thường sang dạng thông tin không thể hiểu được nếu không có phương tiện giải mã Giải

mã là phương pháp để đưa từ dạng thông tin đã được mã hóa về dạng thông tin ban đầu,

quá trình ngược của mã hóa AES ( viết tắt của Advanced Encryption Standard – Thuật

toán mã hóa tiên tiến ) là một thuật toán mã khối lặp, khá an toàn và rất khó tấn công

được thiết kế bởi hai nhà mật mã người Bỉ (Joan Daemen và Vincent Rijmen)

Trang 9

I TỔNG QUAN HỆ MẬT MÃ AES

1.1 Định nghĩa

Tiêu chuẩn Advanced Encryption Standard (AES) – Tiêu chuẩn mã hóa tiên tiến

là một thuật toán tiêu chuẩn của chính phủ Hoa Kỳ nhằm mã hóa và giải mã dữ liệu do NIST ( National Institute Standards and Technology ) phát hành vào ngày 26/11/2001 AES là một thuật toán “mã hóa khối” (block cipher) ban đầu được tạo ra boiwr hai nhà mật mã học người Bỉ là Joan Daemen và Vincent Rijmen Kể từ khi được công bố

là một tiêu chuẩn, AES trở thành một trong những thuật toán mã hóa phổ biến nhất sử dụng khóa mã đối xứng để mã hóa và giải mã (một số được giữ bí mật dùng cho quy trình mở rộng khóa nhằm tạo ra một tập các khóa vòng) Ở Việt Nam, thuật toán AES

đã được công bố thành tiêu chuẩn quốc gia TCVN 7816:2007 năm 2007 về Thuật toán

mã hóa dữ liệu AES

1.2 Đặc điểm thuật toán AES

b, Cơ sở toán học

Cơ sở toán học của giải thuật mã hóa AES là phép cộng và phép nhân trên trường

GF ( 28 ) Phép cộng trên trường GF (28): chính là phép cộng XOR hay phép cộng theo modulo 2 giữa các bit tương ứng giữa 2 byte

Trang 10

Bài thi cuối kì môn ANM

 Đa thức tối giản m(x) = x8 + x4 + x3 + x + 1

Ví dụ: Thực hiện phép cộng và nhân hai số (57) và (83) GF(28)

1.3 Cấu trúc thuật toán AES

Đối với thuật toán AES, độ dài của khối đầu vào, khối đầu ra và trạng thái là 128 bít, số các cột (các từ có độ dài 32 bít) tạo nên trạng thái là Nb = 4 Trong thuật toán AES, độ dài khóa mã K có thể là 128, 192 hay 256 bít Độ dài khóa được biểu diễn bằng

Nk = 4, 6 hoặc 8 thể hiện số lượng các từ 32 bít (số cột) của khóa mã

Đối với thuật toán AES, số vòng được thay đổi trong quá trình thực hiện thuật toán phụ thuộc vào kích cỡ khóa Số vòng này được ký hiệu là Nr Nr = 10 khi Nk = 4, Nr =

12 khi Nk = 6 và Nr = 14 khi Nk = 8

Các tổ hợp khóa-khối-vòng phù hợp đối với tiêu chuẩn này thể hiện trong Bảng 1 Việc thực hiện cụ thể thuật toán có liên quan đến độ dài khóa, kích cỡ khối và số vòng

Độ dài khóa (Nk từ)

Độ dài khối (Nb từ)

Số vòng (Nr)

Trang 11

trong mỗi cột của mảng trạng thái, AddRoundKey() phép cộng khóa vòng và trạng thái Các phép biến đổi này (cũng như các phép nghịch đảo tương ứng của chúng) được mô

tả trong hình dưới đây

Hình 1: Cấu trúc mã hóa chung của AES

II Sinh khóa trong AES (KeyExpansion)

Thuật toán AES nhận một khóa mã K có độ dài là:128;192;256 Sau đó thực hiện phép mở rộng khóa để tạo ra các khóa con để đưa vào các vòng lặp Đây chính là quá trình mở rộng khóa

Quá trình sinh khóa gồm 4 bước :

 Rotword : Quay trái 8 bit các khóa vào

 SubBytes : Thay thế trạng thái của khóa vào thông qua bảng trạng thái S-box

 Rcon : Tính giá trị Rcon(i) Trong đó :

Rcon(i) = x(i-1) mod(x8+x4+x3+x+1)

 ShiftRow: Dịch vòng của khóa vào

Trang 12

Bài thi cuối kì môn ANM

Hình 2 : Sơ đồ qua trình sinh khóa mở rộng

Như trên sơ đồ trên đầu tiên (Cipher key) khóa vào để mã hóa có một khóa duy nhất sau đó thực hiện Rotword (quay trái 8 bit ) tiếp đến thay thế dựa vào bảng mã S-box Trộn với Rcon sau đó dịch vòng trong quá trình ShiftRow Được đầu ra (Subkeys/round key) đưa vào các khóa con Các bước này sẽ lặp lại 10 lần nếu như khóa đầu vào có độ dài là 128 (12 lần đối với khóa đầu vào là 192 , 14 lần đối với khóa đầu vào là 256)

2.1 Các quá trình trong sinh khóa:

Thực hiện biến đổi bằng cách tra các mã tương ứng tròn s-box

SubWord(X) = [Box(X[31-24]), Box(X[23-16]), Box(X[15-8]), Box(X[7-0])]

S-SubWord(73744765) = 8f92a04d

Trang 13

Rcon()

Rcon : Mảng chứa hằng số sử dụng trong các vòng lặp.Rcon[i] là một word (4 bytes) định nghĩa là Rcon[j] = (RC[j] , 0 , 0 , 0), với phép nhân sẽ được định nghĩa trên trường GF(28)

Các giá trị của RC[j] trong cơ số 16 là :

Bảng 2: bảng các giá trị RC[j] trong cơ số 16

j 1 2 3 4 5 6 7 8 9 10 11 12 13 14

RC[j] 01 02 04 08 10 20 40 80 1B 36 6c d8 ab 4d

Quá trình sinh khóa trong AES:

hình 3: Minh họa quá trình sinh khóa trong AES - 128.

Trang 14

Bài thi cuối kì môn ANM

Như dưới hình vẽ , mỗi một word w0, w1, w2, w3 đại diện cho 4 bytes đầu vào

Để tính ra các vòng lặp tiếp theo , ta cần tính toán các bytes đầu tiên của mỗi vòng lặp khóa Trong thuật toán mở rộng khóa mã 128 bit có đầu vào là 16 bytes của khóa mã ,

và sinh ra một mảng khóa vòng (Nr + 1)*4 = 44 (word) (Hay 176 bytes)

44 word này sử dụng cho các vòng mã hóa Từ 4 word đầu vào w0,w1,w2,w3 lặp

đi lặp lại nhiều lần và cuối cùng cho ra 4 word cuối cùng như trong hình vẽ

hình 4:: Minh họa quá trình mã hóa mỗi word đầu tiên trong vòng lặp

Quá trình mã hóa mỗi word đầu tiên trong vòng lặp:

Như trên hình ta có thể thấy , Từ khóa đầu vào ta sẽ lấy mảng khóa cuối cùng w3 thực hiện RotWord Sau đó sử dụng SubBytes với hàm bằng cách tra mã trong bảng S-box Được chuỗi mã sau S-box ta sẽ lấy khối khóa này thực hiện phép XOR với Rcon (RC[j], j=1) Ta thu được chuỗi mã w’ , tiếp đó thực hiện một lần nữa phép XOR với w0 ta thu được chuỗi mã w4 Tiếp theo đó , thực hiện phép XOR giữa w4 và w1 ra w5 ,…vv Thực hiện tương tự với mỗi chuỗi mã của đầu vòng lặp ta thu được 10 khóa con khác nhau

Tương tự với các độ dài khóa khác :

Trang 15

hình 5:Minh họa quá trình sinh khóa trong AES – 192

hình 6: Minh họa quá trình sinh khóa trong AES – 256.

Trang 16

Bài thi cuối kì môn ANM

bảng 3: So sánh quá trình sinh khóa giữa các loại khóa : AES – 128 , AES – 192 , AES – 256

Khóa 128 bit Khóa 192 bit Khóa 256 bit

Số từ word được tạo

ra:

4 x (N r +1)= 4 x (12+1) = 52 word

Số word được tạo ra:

4 x (N r + 1)=4x(14 + 1) = 60 word

Số từ sinh ra sau mỗi vòng lặp sinh khóa con: 4 word

Số từ sinh ra sau mỗi vòng lặp sinh khóa con: 6 word

Số từ sinh ra sau mỗi vòng lặp sinh khóa con: 8 word

Số vòng lặp:

⌈44⁄4⌉ = 11 (𝑣ò𝑛𝑔)

=>sử dụng đến Rcon[10], không thừa word nào

Số vòng lặp:

⌈52⁄6⌉ = 9 (𝑣ò𝑛𝑔)

=>sử dụng đến Rcon[8], thừa w 52 và

w 53

Số vòng lặp:

⌈60⁄8⌉ = 8 (𝑣ò𝑛𝑔)

=>sử dụng đến Rcon[7], thừa 4 word

từ w 60 đến w 63

Mục đích của việc thực hiện ExpandKey (Mở rộng/Sinh khóa):

 Tính bảo mật: Khi biết được một số bit của khóa hay khóa con thì việc tính các bit còn lại là bất khả thi Không thể tính ngược , truy ngược khi biết một khóa con thì cũng không thể tính được khóa con trước đó

 Tính khuếch tán: Một bit của khóa chính sẽ tác động lên tất cả các khóa con

Trang 17

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

3.1 Thuật toán mã hóa AES

Hình 7: Sơ đồ quá trình mã hóa và giải mã hóa

Thuật toán mã hóa AES được mô tả gồm các bước sau :

Với mỗi chuỗi đầu vào cho trước x, khởi tạo Mảng trạng thái (state) gọi là x và thực hiện phép toán AddRoundKey để thực hiện XOR khóa RoundKey với trạng thái x Nr-1 vòng lặp bao gồm các phép biến đổi :

bảng 4: Vòng lặp chính của AES

MÃ HÓA SubBytes() ShiftRows() MixColumns() AddRoundKey() Vòng lặp cuối bao gồm các phép biến đổi trên ngoài trừ không có MixColumns

Phép SubBytes()

Là phép thay thế phi tuyến tính , ở trong phép này mỗi byte được tác động đến độc lập với nhau trong các trạng thái hiện tại Phép SubBytes sẽ thay thế mỗi byte của mảng trạng thái (state) bằng 1 byte trong bảng S-box

Trang 18

Bài thi cuối kì môn ANM

hình 8: S-box

Ví dụ : SubBytes({90}) = {60} (tra ở hàng 9 cột 0)

Phép ShifRows()

hình 9: Minh họa phép biến đổi ShiftRows

Phép biến đổi dùng trong phép mã hóa áp dụng lên trạng thái bằng cách chuyển dịch vòng ba hàng cuối của trạng thái theo số lượng byte các offset khác nhau

Là phép hoán vị các ma trận state theo cách thức sau:

 Hàng đầu không thay đổi

 Hàng hai dịch vòng trái 1- byte

 Hàng ba dịch vòng trái 2-byte

 Hàng tư dịch vòng trái 3-byte

Trang 19

hình 10: Minh họa dich vòng của ShiftRows

Phép biến đổi MixColumns()

Phép biến đổi MixColumns thực hiện biến đổi từng cột một trong ma trận trạng thái (state) bằng một phép nhân đa thức Mỗi cột trong ma trận trạng thái được biểu diễn cho một đa thức a(x) trong trường GF(28) Phép biến đổi MixColumns được thực hiện bằng cách nhân mỗi cột với một ma trận trong trường hữu hạn sự chuyển đổi này cùng với ShiftRows đảm bảo tính làm rối (confusion) của mã hóa

hình 11: Minh họa phép MixColumns:

Trong thao tác MixColumns

S’(x) = a(x) ⨁ S(x)

a(x) = 3x3 + x2 + x + 2

Trang 20

Bài thi cuối kì môn ANM

Phép AddRoundKey()

hình 12: Minh họa phép AddRoundKey

Mỗi trạng thái trong ma trận (state) được thực hiện phép XOR với khóa vòng Quá trình AES kết hợp 11 khóa vòng từ khóa mật mã đến đầu bộ mã hóa Việc kết hợp với khóa bí mật sẽ tạo ra tính làm rối (hashing)

3.2 Thuật toán giải mã

Giải mã là quá trình để có được dữ liệu gốc từ dữ liệu đã được mã hóa Quá trình này dựa trên khóa nhận được từ dữ liệu của bên gửi AES là hệ mã đối xứng nên các bước của quá trình giải mã chính là các bước ngược lại với các bước của quá trình mã hóa, cả bên gửi và bên nhận đều có chìa khóa để mã hóa và giải mã dữ liệu Vòng cuối cùng của một giai đoạn giải mã bao gồm ba giai đoạn như InvShiftRows, InvSubBytes

và AddRoundKey như trên hình

Quá trình giải mã AES-128 với (Nk =4, Nr = 10) sẽ được giải thích trên một ví dụ

cụ thể Giả sử chuỗi dữ liệu cần mã hóa cipher_text[127:0] và khóa vòng cuối cùng lấy

từ quá trình mã hóa round_key_10[127:0] có giá trị như sau:

o cipher_text[127:0] = 69 c4 e0 d8 6a 7b 04 30 d8 cd b7 80 70 b4 c5 5a

o round_key_10[127:0] = 13 11 1d 7f e3 94 4a 17 f3 07 a7 8b 4d 2b 30 c5

Dữ liệu và khóa mã được sắp xếp dưới dạng ma trận với mỗi phần tử là một byte

hình 13: Ma trận khóa vòng thứ 10 và ma trận dữ liệu đã mã hóa

Trang 21

Phép biến đổi Add Round Key đảo

Chức năng AddRoundKey đảo trong quá trình giải mã cũng chính là chức năng Add Round Key trong quá trình mã hóa nên gọi chung là Add Round Key

hình 14: Phép biến đổi Add Round Key

Phép biến đổi InvShiftRows

InvShiftRows là đảo của chức năng ShiftRows InvShiftRows thực hiện quay phải từng hàng của ma trận trạng thái, sinh ra từ bước trước đó, theo byte với hệ số quay tăng dần từ 0 đến 3 Hàng đầu tiên có hệ số quay là 0 thì các byte được giữ nguyên vị trí Hàng thứ hai có hệ số quay là 1 thì các được quay một byte Hàng thứ ba quay hai byte

và hàng thứ tư quay ba byte

hình 15: : Phép biến đổi InvShiftRows

Ngày đăng: 26/02/2023, 16:34

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w