Giới thiệuTiêu chuẩn Advanced Encryption Standard AES - Tiêu chuẩn mã hóa tiêntiế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 Viện Tiêu chuẩn và C
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Hà Nội – 2024
I.Giới thiệu 3II.Quy trình mã hóa AES 4
Trang 2IV.Đánh giá giải thuật AES 23
V.Các dạng tấn công và cách phòng chống 24
1.Các dạng tấn công 24
Trang 3I Giới thiệu
Tiêu chuẩn Advanced Encryption Standard (AES) - Tiêu chuẩn mã hóa tiêntiế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 Viện Tiêu chuẩn và Công nghệ quốc gia Hoa Kỳ (National InstituteStandards and Technology– NIST) phát hành ngày 26/11/2001 và được đặc tảtrong Tiêu chuẩn Xử lý thông tin Liên bang 197 (Federal Information ProcessingStandard – FIPS 197) sau quá trình kéo dài 5 năm trình phê duyệt, AES tuân theomục 5131 trong Luật Cải cách quản lý công nghệ thông tin năm 1996 và Luật Antoàn máy tính năm 1997
AES là một thuật toán “mã hóa khối” (block cipher) ban đầu được tạo ra bởihai nhà mật mã học người Bỉ là Joan Daemen và Vincent Rijmen Kể từ khi đượccô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ệtNam, thuật toán AES đã được công bố thành tiêu chuẩn quốc gia TCVN7816:2007 năm 2007 về Thuật toán mã hóa dữ liệu AES
AES là phương pháp mã hoá theo khối, với khối dữ liệu vào có kích thước 128bit và khoá bí mật với kích thước có thể là 128, 192, hoặc 256 bit (là bội của 32 vàlớn nhất là 256 bit) AES được thiết kế dựa trên mạng hoán vị-thay thế(Substitution-permutation network) và nó có thể cho tốc độ thực thi cao khi cài đặttrên cả phần cứng và phần mềm Đặc biệt, giải thuật AES đã được tích hợp vàocác bộ vi xử lý gần đây của hãng Intel dưới dạng tập lệnh AES-NI, giúp tăng đángkể tốc độ thực thi các thao tác mã hoá và giải mã dựa trên AES.
AES vận hành dựa trên một ma trận vuông 4x4, được gọi là state (trạng thái).Ma trận này gồm 16 phần tử, mỗi phần tử là 1 byte dữ liệu State được khởi trị làkhối 128 bit bản rõ và qua quá trình biến đổi sẽ chứa khối 128 bit bản mã ở đầu ra.Như đã đề cập, AES hỗ trợ 3 kích thước khoá và kích thước của khoá quyết định
Trang 4số vòng lặp cần thực hiện để chuyển đổi bản rõ thành bản mã Số vòng lặp AEScần thực hiện theo kích thước khoá như sau:
10 vòng lặp với khoá 128 bit; 12 vòng lặp với khoá 192 bit; 14 vòng lặp với khoá 256 bit
Mỗi vòng bao gồm một số bước xử lý, trong đó có một bước phụ thuộc vào chínhkhoá mã hoá Một tập hợp các vòng đảo ngược được áp dụng để biến đổi bản mãtrở lại bản rõ ban đầu bằng cách sử dụng cùng một khoá mã hoá.
II Quy trình mã hóa AES
Bước 3: Các vòng lặp chính (Rounds): Có 4 hàm biến đổi dữ liệu được thực hiện trong mỗi vòng, bao gồm:
Trang 5+ SubBytes: Hàm thay thế phi tuyến tính, trong đó mỗi byte trong state được thaythế bằng một byte khác sử dụng bảng tham chiếu S-box.
+ ShiftRows: Hàm đổi chỗ, trong đó mỗi dòng trong state được dịch một số bước theo chu kỳ.
+ MixColumns: Trộn các cột trong state, kết hợp 4 bytes trong mỗi cột.+ AddRoundkey
Bước 4: Vòng cuối (Final Round): Tương tự các vòng lặp chính, nhưng chỉ thực hiện 3 hàm biến đổi dữ liệu, bao gồm:
+ SubBytes+ ShiftRows+ AddRoundkey
Trang 62 Chi tiết
2.1.Mở rộng khóa (Sinh khóa phụ)
2.1.1 Các bước sinh khoá phụ:
B1: Rotword: quay trái 8 bit
B2: Subbytes: đối chiếu trong bảng Sbox B3: Rcon: tính Rcon(i) trong đó
Rcon(i) = x(i-1) mod (x8+x4+x2+x +1)B4: Shiftrow
Lặp 10 vòng thì sinh ra 10 khoá con đối với khoá đầu vào là 128, 12 vòng đối với khoá đầu vào là 192, 14 vòng đối với khoá đầu vào 256
2.1.2 Rotword
Thực hiện hoán vị vòng một doubleword và trả kết quả về một doubleword
VD: Rotword (3c4fcf09) = 4fcf093c3c
Khoá chính (Đầu vào)
Khoá vòng (Đầu ra)
10 Khoá vòng
Trang 7cf093c
Trang 82.1.6 Ví dụ thực hiện sinh khoá:
Thực hiện Rotword W(i-1)
Tham chiếu trên bảng S-box
Trang 9W[i-1] XOR với Rcon[1] và W[i-4] thì ta được W[i]
W[i-4] XOR với W[i-1] ta vừa tính ở trên ta được W[i] tiếp theo và làm tiếp tục 2 lần nữa
Trang 10Và ta thu được Round key 1 chưa Shifrow
Sau khi shifrow ta được Round key 1a0 88 23 2a
a3 6c fa3
17 b1 39
Tương tự ta thu được 10 Round key
Trang 12Ví dụ:
2.2.3 Hàm MixColumns
Mỗi cột trong ma trận state được nhân với một đa thức c(x) = 3x3 + x2 + x + 2
1033 ].
Ta có thể biểu diễn kết quả 1 cột sau khi nhân như sau [CITATION Wik24 \l1033 ]:
ShiftRows
Trang 13Ví dụ với ma trận sau:
- Để biến đổi cột đầu tiên, ta thực hiện như sau:
- Các phần tử của kết quả của phép nhân ma trận trên là:
= 1011 0011+ Tương tự:
{03}*{bf} = 1101 1010{01}*{5d} = 0101 1101{01}*{30} = 0011 0000
Trang 14+ Thực hiện tính b0 bằng phép XOR:1 0 1 1 0 0 1 1
1 1 0 1 1 0 1 00 1 0 1 1 1 0 10 0 1 1 0 0 0 00 0 0 0 0 1 0 0
b0 = 0000 01002 = 0416
- Tương tự: b1 = 6616
b2 = 8116
b3 = e516
- Sau khi biến đổi cột đầu tiên ta được:
- Tương tự với các cột còn lại ta có kết quả là:
Trang 15Trong quá trình giải mã, ma trận ciphertext sẽ bị biến đổi bởi các hàm
AddRoundKey, InvSubBytes, InvShiftRows và InvMixColumns để tạo ra các dữ
liệu trung gian gọi là ma trận trạng thái Ma trận khóa mã sẽ bị biến đổi bởi chức
năng KeyExpansion như trong quá trình mã hóa Tuy nhiên, thứ tự sử dụng các khóa
vòng trong quá trình giải mã ngược với quá trình mã hóa, nghĩa là khóa vòng số 10 sẽđược sử dụng đầu tiên Tiếp theo đó là khóa vòng số 9, số 8, , cuối cùng là khóa mãgốc.
3 Các bước giải mã
AddRoundKey
Trang 16Quá trình giải mã được thực hiện qua 4 hàm cơ bản là AddRoundKey,
InvSubBytes, InvShiftRows, InvMixColumns.
Bước 1 Bước khởi tạo: Dữ liệu cần được mã hóa cipher_text kết hợp với khóa vòng thứ 10, round_key_10 bằng chức năng AddRoundKey
Bước 2 Bước lặp giải mã: kết quả bước 1 được sử dụng để thực hiện tuần tự các chức năng InvShiftRows, InvSubBytes, AddRoundKey và InvMixColumns Bước này được lặp lại 9 lần.
Bước 3 Bước tạo ngõ ra: Sau 9 lần lặp ở bước 2, kết quả được sử dụng để thực hiện tuần tự các chức năng InvShiftRows, InvSubBytes và AddRoundKey với khóa mã ban đầu để khôi phục lại plain_text.
4 Ví dụ chi tiết
Giả sử chuỗi dữ liệu cần giải mã 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:
cipher_text[127:0] = 69 c4 e0 d8 6a 7b 04 30 d8 cd b7 80 70 b4 c5 5a
Trang 18Hàng thứ ba quay hai byte và hàng thứ tư quay ba byte.
4.3.Hàm InvSubBytes
Nhiệm vụ của InvSubBytes là thực hiện thay thế từng byte của ma trận trạng thái, bằng một giá trị đã quy định trong chuẩn AES Bảng quy định giá trị thay thế cho InvSubBytes gọi là S-box đảo (Inverse S-box).
Trang 19Ví dụ, byte cần thay thế là Ha7 thì dò ở hàng “a” và cột 7 trong bảng S-box dảo sẽ được kết quả là H89
4.4.Hàm InvMixColumns
Trang 20InvMixColumns của quá trình giả mã là đảo của MixColumns trong quá trình mã hóa Từng cột của ma trận trạng thái sẽ được nhân với ma trận chuyển đổi sau đây.
Trang 21Tương tự với cách nhân của phần mã hóa, ta được một ma trận mới
IV Đánh giá giải thuật AES
Kể từ khi được công nhận là giải thuật mã hóa tiên tiến, AES ngày càng đượcxã hội chấp nhận Ban đầu AES chỉ được sử dụng để mã hóa các dữ liệu nhạycảm Về sau này, người ta đã dùng nó để mã hóa các thông tin bí mật Giải thuậtAES-192/256 được sử dụng để bảo vệ các thông tin mật và tối mật Nó được đưavào các tiêu chuẩn ISO, IETF, IEEE Cho đến nay, hàng trăm sản phẩm ứng dụngdựa theo tiêu chuẩn mã hóa AES đã được NIST cấp chứng chỉ Ở Việt Nam,Thông tư số 01/2011/TT-BTTTT ban hành ngày 04 tháng 01 năm 2011 của Bộthông tin truyền thông đã khuyến nghị sử dụng AES là giải thuật mã hóa sử dụngcho các thông tin, văn bản trong các cơ quan Nhà nước.
Trang 22Ưu điểm của AES:
Kỳ tuyên bố là có độ an toàn cao, được sử dụng làm tiêu chuẩn mã hóamới thay thế cho tiêu chuẩn DES đã lỗi thời AES được sử dụng để mãhóa các thông tin mật đến tuyệt mật
AES có cấu trúc đơn giản, rõ ràng và có mô tả toán học rất đơn giản.
Nhược điểm của AES:
công kênh bên” thì nó chưa thực sự an toàn.
dẫn tới một số mối nguy hiểm trong tương lai.
Giải thuật AES thực hiện hiệu quả cả bằng phần mềm và phần cứng Thôngthường với những ứng dụng không yêu cầu cao về hiệu năng và tốc độ thì AESđược thực hiện ở dạng phần mềm Với việc thực hiện trên phần mềm, thuật toánAES có thể được viết bằng nhiều ngôn ngữ lập trình phổ biến hiện nay như C/C++, VB.NET, Java, C# và có thể vận hành trên nhiều hệ điều hành như Windows,Linux… Khi thực hiện trên phần cứng, thuật toán AES hỗ trợ thực hiện trên haidòng thiết bị: dòng thiết bị thứ nhất dựa vào một hệ vi xử lý phụ kết hợp với hệ vixử lý của máy tính, dòng thiết bị thứ hai thường được thiết kế ở dạng thẻ thôngminh hoặc các thiết bị giao tiếp thông qua cổng USB.
V Các dạng tấn công và cách phòng chống
1 Các dạng tấn công
Side-channel attack (tấn công kênh bên):
Side Channels (Kênh bên) là các kênh đầu ra không mong muốn từ một hệ thống.Tấn công kênh bên (hay còn gọi là tấn công kênh kề) là loại tấn công dễ thực hiệntrong các loại tấn công mạnh chống lại quá trình triển khai mã hóa, và mục tiêu củaloại tấn công này là phân tích các nguyên tố, các giao thức, modul, và các thiết bịtrong mỗi hệ thống.
Phân loại :
- Tấn công thời gian:
o Kẻ tấn công đo thời gian thực hiện các hoạt động mật mã để suy rathông tin về khóa bí mật hoặc dữ liệu được mã hóa.
o Ví dụ: Kẻ tấn công có thể đo thời gian cần thiết để giải mã một đoạn vănbản bằng các khóa khác nhau để tìm ra khóa chính xác.
- Tấn công dựa vào lỗi:
o Kẻ tấn công cố ý gây lỗi cho thiết bị điện toán để thu thập thông tin vềkhóa bí mật hoặc dữ liệu được mã hóa.
Trang 23o Ví dụ: Kẻ tấn công có thể gây lỗi cho một chip xử lý để buộc nó tiết lộthông tin về khóa bí mật.
- Tấn công phân tích năng lượng:
o Kẻ tấn công đo mức tiêu thụ điện năng của thiết bị điện toán trong quátrình thực hiện các hoạt động mật mã để suy ra thông tin về khóa bí mậthoặc dữ liệu được mã hóa.
o Ví dụ: Kẻ tấn công có thể đo mức tiêu thụ điện năng của một chip xử lýđể phân biệt giữa các thao tác mã hóa với các thao tác khác.
- Tấn công phân tích điện từ:
o Kẻ tấn công thu thập các tín hiệu điện từ được phát ra từ thiết bị điệntoán trong quá trình thực hiện các hoạt động mật mã để suy ra thông tinvề khóa bí mật hoặc dữ liệu được mã hóa.
o Ví dụ: Kẻ tấn công có thể thu thập tín hiệu điện từ từ một card smartcardđể suy ra thông tin về khóa bí mật được lưu trữ trên card.
5 Cách phòng chống:
Phương pháp 1: Mã hóa cực mạnh
- Sử dụng các biện pháp để tăng tính bảo mật của thuật toán mã hóa AES:o Sử dụng khóa dài
o Cần bảo vệ khóa bí mật cẩn thận, tránh tiết lộ cho bất kỳ ai
o Sử dụng các kỹ thuật chống tấn công kênh bên: che chắn phần cứng,cân bằng tiêu thụ điện năng, sử dụng thuật toán mã hóa chống SCA
Phương pháp 2: Bảo vệ dữ liệu theo phương pháp vật lý
- Nếu một kẻ tấn công không thể tiếp cận vật lý với dữ liệu, dĩ nhiên khả năngđánh cắp khóa mã hóa sẽ khó khăn hơn Vì vậy, trước những cuộc tấn công qua âmthanh tiềm tàng, bạn có thể sử dụng các giải pháp bảo vệ vật lý như đặt laptop vàocác hộp cách ly âm thanh, không để ai lại gần máy tính khi đang giải mã dữ liệu hoặcsử dụng các nguồn âm thanh băng rộng tần số đủ cao để gây nhiễu.
Phương pháp 3: Kết hợp cả 2 cách trên
Trang 24VI Demo mã hóa và giải mã AES
VII Kết luận
Bảo mật thông tin là một vấn đề lớn được quan tâm không chỉ trong lĩnh vực quân sự mà còn trong lĩnh vực kinh doanh cũng như giữ bí mật các thông tin cá nhân Với
Trang 25sự phát triển mạnh mẽ về khoa học công nghệ và các hệ thống không dây thì vấn đề bảo mật ngày càng được chú trọng và phát triển Bảo đảm bí mật thông tin trở thành một vấn đề không thể thiếu khi nói đến giao dịch trên Internet.
Đối với người nghiên cứu về bảo mật thì quá trình chứng thực và trao đổi khóa trong mạng là vô cùng quan trọng Thông qua tìm hiểu cấu trúc khung của các bản tingiúp cho người làm bảo mật có thể phát hiện các tấn công từ bên ngoài hay là các sự cố xảy ra trong mạng Từ đó có thể đảm bảo cho hệ thống an toàn hơn.
Với các ưu điểm nổi bật, tiêu chuẩn mã hóa tiên tiến (AES) đã chứng tỏ đây chính là một tiêu chuẩn đáp ứng được các yêu cầu mật mã dữ liệu của thời đại mới Việc tấn công để phá thuật toán này chỉ được các nhà khoa học đưa ra trên lý thuyết và đang còn nhiều vấn đề gây tranh cãi Tuy hiện nay thuật toán AES được coi là an toàn nhưng với sự phát triển mạnh mẽ trong lĩnh vực công nghệ thông tin và viễn thông như hiện nay thì không có một thuật toán nào đảm bảo an toàn trong tương lai.Vì vậy vấn đề bảo mật còn rất nhiều điều cần phải tìm hiểu
Tài liệu tham khảo
[1] H X Dậu, An toàn và bảo mật hệ thống thông tin, Hà Nội, 2021 [2] Wikipedia, “Rijndael S-box,” 5 7 2023 [Trực tuyến] Available:
https://en.wikipedia.org/wiki/Rijndael_S-box [Đã truy cập 22 3 2024].[3] Wikipedia, “Rijndael MixColumns,” 6 2 2024 [Trực tuyến] Available:
https://en.wikipedia.org/wiki/Rijndael_MixColumns [Đã truy cập 22 3 2024].