HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA AN TOÀN THÔNG TIN BÀI TẬP LỚN MÔN HỌC NHẬP MÔN MẬT MÃ HỌC CẢI TIẾN AES SBOX VÀ PHÂN TÍCH HIỆU SUẤT CỦA SBOX ĐÃ CẢI TIẾN Giảng viên hướng dẫn Hoàng Thu Phương Sinh viên th.
Trang 1HỌC VIỆN KỸ THUẬT MẬT MÃ
KHOA AN TOÀN THÔNG TIN
BÀI TẬP LỚN MÔN HỌC NHẬP MÔN MẬT MÃ HỌC CẢI TIẾN AES SBOX VÀ PHÂN TÍCH HIỆU SUẤT CỦA SBOX ĐÃ CẢI TIẾN
Giảng viên hướng dẫn: Hoàng Thu Phương
Sinh viên thực hiện:
xxxxxxx xxxxxxx xxxxxxx xxxxxxx xxxxxx Lớp: xxxx
Trang 2ngoài đọc nhưng không hiểu được đồng thời cũng có cách khôi phục lại nguyên dạng ban đầu để người nhận tin vẫn hiểu được Theo cách gọi ngày nay thì giao
thức chuyển đổi văn bản gốc thành văn bản mã hóa được gọi là các “thuật toán mã hóa” Trải qua hàng nghìn năm, có rất nhiều thuật toán đã được đưa ra nhằm mục
đích bảo mật thông tin với độ an toàn cao Và một trong số đó là thuật toán mã khối đối xứng khóa riêng AES (Advanced Encryption Standard) được Viện Tiêu chuẩn
và Công nghệ Hoa Kỳ (NIST) chọn làm chuẩn mã hóa từ tháng 10 năm 2000 AES
là thuật toán mã hóa rất phổ biến, dùng cho nhiều mục đích và được chính phủ Mỹ
sử dụng để bảo vệ các thông tin tuyệt mật
S-Box là thành phần phi tuyến được sử dụng trong việc xây dựng mật mã AES Là thành phần phi tuyến phần duy nhất có vai trò che dấu mối quan hệ giữa khóa và bản mã, S-Box đóng góp rất nhiều vào bảo mật của AES nói chung Một số nghiên cứu đã chỉ ra những yếu điểm về độ phức tạp và bảo mật của AES S-box, những yếu điểm này có thể bị lợi dụng để thực hiện các cuộc tấn công Mặc dù cho đến hiện nay vẫn chưa có cuộc tấn công nào thành công vào AES đầy đủ nhưng những yếu điểm trên của S-Box vẫn cần được quan tâm Vấn đề đặt ra bây giờ là tìm cách cải tiến AES S-Box nhằm hạn chế những yếu điểm đó Phiên bản cải tiến phải đảm bảo khắc phục được những hạn chế của S-Box, có hiệu suất cao hơn và dễdàng áp dụng cho AES
Để tìm hiểu sâu hơn về những yếu điểm của AES S-Box; cách xây dựng AESS-Box cải tiến cũng như hiệu suất của S-Box đã cải tiến so với S-Box chưa cải tiến, chúng em đã lựa chọn đề tài “Cải tiến AES S-Box và phân tích hiệu suất của S-Box
đã cải tiến”
LỜI CẢM ƠN
Chúng em xin chân thành cảm ơn cô Hoàng Thu Phương đã chỉ bảo tận tình
và giúp đỡ chúng em trong suốt quá trình làm bài tập lớn môn học Với sự hướng
Trang 3dẫn của cô, nhóm chúng em đã có những định hướng tốt trong việc triển khai và thực hiện các yêu cầu của bài tập lớn môn học
Mặc dù chúng em đã cố gắng hoàn thành bài tập lớn trong phạm vi và khả năng có thể, tuy nhiên sẽ không tránh khỏi những thiếu sót Chúng em mong nhận được sự cảm thông và chỉ bảo của cô
Một lần nữa chúng em xin chân thành cảm ơn !
Trang 4MỤC LỤC
DANH MỤC CÁC HÌNH VẼ 1
DANH MỤC CÁC BẢNG 2
MỞ ĐẦU 3
CHƯƠNG 1: NGUYÊN LÝ VÀ ĐẶC TÍNH CỦA AES S-BOX 4
1.1 Giới thiệu về AES S-Box 4
1.2 Nguyên lý cấu tạo của AES S-Box 4
1.3 Các tính chất của phép biến đổi affine 5
1.4 Các thuộc tính lặp lại của AES S-box 6
1.5 Kết luận chương 1 7
CHƯƠNG 2: SƠ ĐỒ AES S-BOX CẢI TIẾN 8
2.1 Đặt vấn đề 8
2.2 Sơ đồ AES S-Box cải tiến 8
2.3 Xây dựng AES S-Box nghịch đảo 9
2.4 Kết luận chương 2 11
CHƯƠNG 3: PHÂN TÍCH HIỆU SUẤT CÚA AES S-BOX ĐÃ CẢI TIẾN VÀ THỰC HIỆN SO SÁNH VỚI S-BOX CHƯA CẢI TIẾN 13
3.1 Tính chất của biểu thức đại số của AES S-Box 13
3.2 Thuộc tính đại số của hàm boolean 14
3.3 So sánh hiệu suất 18
3.4 Kết luận chương 3 19
CHƯƠNG 4: XÂY DỰNG THUẬT TOÁN MÃ HÓA VÀ GIẢI MÃ SỬ DỤNG THUẬT TOÁN AES BẰNG NGÔN NGỮ JAVA 20
4.1 Thuật toán AES 20
4.2 Quá trình mã hóa 20
4.2.1. SubBytes 21
4.2.2. ShiftRows 22
4.2.3. MixColumns 23
4.2.4. AddRoundKey 24
4.3 Code thực hiện mã hóa và giải mã 27
4.3.1. Code quá trình mã hóa 27
4.3.2. Code quá trình giải mã 27
4.3.3. Kết quả thực hiện chương trình 28
4.4 Kết luận chương 4 28
KẾT LUẬN 29
Trang 5DANH MỤC CÁC HÌNH VẼ
Hình 4.1: Sơ đồ tổng quát quá trình mã hóa AES 20
Hình 4.2: AES S-Box cải tiến 22
Hình 4.3: ShiftRows trong AES 23
Hình 4.4: Mô tả phép biến đổi MixColumns trong AES 24
Hình 4.5: AddRoundKey trong AES 25
Hình 4.6: Mô tả thuật toán sinh khóa vòng trong AES 26
Trang 6DANH MỤC CÁC BẢNG
Bảng 1: Các khoảng thời gian lặp lại của AES S-Box 7
Bảng 2: AES S-Box cải tiến 9
Bảng 3: Các hệ số của biểu thức đại số của AES S-Box cải tiến 11
Bảng 4: Hệ số của biểu thức đại số của nghịch đảo AES được cải thiện 11
Bảng 5: SAC của AES S-Box 15
Bảng 6: SAC của AES S-Box cải tiến 16
Bảng 7: So sánh các thuộc tính mật mã của S-Box đã cải tiến và chưa cải tiến 18
MỞ ĐẦU
Trang 7Kể từ khi thuật toán Rijndael được NIST chọn làm tiêu chuẩn mã hóa nâng cao (AES) vào ngày 2 tháng 10 năm 2000 đã thu hút nhiều sự chú ý, nhiều phương pháp tấn công vào AES đã được đề xuất, nhưng cho đến hiện nay vẫn chưa có cuộc tấn công nào thành công.
Trong AES, S-Box là hoạt động phi tuyến tính duy nhất đóng vai trò quan trọng trong việc chống lại các tấn công khác nhau như phân tích mật mã tuyến tính
và phân tích mật mã khác biệt AES S-Box bao gồm 2 phép biến đổi: lấy giá trị nghịch đảo của x trong GF(28) và áp dụng 1 phép biến đổi affine trên GF(2) Từ đó một vài yếu điểm của AES S-Box đã được chỉ ra Những điểm yếu này gây nghi ngờ về khả năng bảo mật của AES S-Box Vì vậy, AES S-Box cần được cải tiến Phương pháp cải tiến được đưa ra đó là sửa đổi phép biến đổi affine và thêm một phép biến đổi affine Kết quả mô phỏng cho thấy AES S-Box cải tiến tốt hơn AES S-Box chưa cải tiến về các đặc tính mật mã Chúng em cũng đã áp dụng xây dựng một chương trình mã hóa và giải mã sử dụng thuật toán AES Ở những chương sau của bài tập lớn, chúng em sẽ trình bày kỹ hơn về các vấn đề trên Cụ thể bài tập lớn gồm phần mở đầu, kết luận và 4 chương với các nội dung chính sau:
+ Chương 1: Nguyên lý và đặc tính của AES S-Box
+ Chương 2: Sơ đồ AES S-Box cải tiến
+ Chương 3: Phân tích hiệu suất của AES S-Box cải tiến và thực hiện so sánh với S-Box chưa cải tiến
+ Chương 4: Xây dựng thuật toán mã hóa và giải mã sử dụng thuật toán AESbằng ngôn ngữ Java
CHƯƠNG 1: NGUYÊN LÝ VÀ ĐẶC TÍNH CỦA AES S-BOX
Trang 81.1 Giới thiệu về AES S-Box
Thuật toán mã hóa AES sử dụng 2 loại S-Box 8 bit cố định đó là S-Box S(x)
để mã hóa và S-Box nghịch đảo S’(x) để giải mã Nội dung chương 1 sẽ trình bày chi tiết nguyên tắc cấu tạo của AES S-Box; phân tích các đặc tính của affine chuyểnđổi và chu kỳ lặp lại của AES S-Box
1.2 Nguyên lý cấu tạo của AES S-Box
Phép biến đổi S-Box là một phép toán con byte phi tuyến, hoạt động trên mỗibyte trạng thái một cách độc lập Bảng thay thế (hoặc S-Bx) không thể đảo ngược
và được cấu tạo bởi sự hợp thành của hai phép biến đổi:
(1) Lấy nghịch đảo (x’)-1 trong trường GF(28) (x ′ )- 1 được định nghĩa bởi:
trong đó, mỗi bit sẽ được tính theo công thức:
với i nằm trong đoạn từ 0 đến 7
Trang 9• yi là bit thứ i của byte cần chuyển đổi
• xi là bit thứ i của byte kết quả sau khi chuyển đổi
• ci là bit thứ i của byte có giá trị là H63 = B01100011
Cụ thể, biểu thức tính toán affine cho từng bit (chú ý, “+” là phép XOR)
Từ mô tả trên, chúng ta có thể suy ra biểu thức toán học của AES S-Box:
các hệ số và số mũ trong công thức trên đều trong hệ thập lục phân
1.3 Các tính chất của phép biến đổi affine
Bây giờ chúng ta phân tích các thuộc tính (tính chất) của chuyển đổi affine của AES S-Box
Định nghĩa 1.1 Phép biến đổi affine trên GF(28) L u,v(a(x)) : a(x) → b(x) được ký hiệu bởi L u,v(a) và được định nghĩa là L u,v(a(x)) : a(x) → b(x) = u(x)a(x) + v(x) mod x8 + 1
Trang 10thì phép biến đổi affine có thể được ký hiệu bằng L u,v(a) = F a + v Ta có
(a) = L u,v(L (a)) hay
L01,07,…, L04,04, L04,07, L04,08, L01,0B,…, L5B,5D,…, LFE,F8, LFE,FB, LFE,FD, LFE,FE là 16 Trongkhi AES S-Box chọn biến đổi affine với giai đoạn 4 !!
1.4 Tính chất lặp lại của AES S-box
Một định nghĩa có liên quan đã được đưa ra là tính tuần hoàn
Định nghĩa 1.3 Gọi S(x) biểu thị hàm S-Box, nếu tồn tại 1 số nguyên dương
n thỏa mãn Sn(x) = x thì S(x) thỏa mãn tính tuần hoàn Nếu n là số nguyên dương nhỏ nhất thì n là chu kỳ của S(x)
Với mọi x thuộc GF(28), xét phương trình Sn(x) = x và tính toán lặp đi lặp lại các khoảng thời gian của nó Kết quả tính toán được thể hiện trong Bảng 1 Rõ ràng
là AES S-Box có các giai đoạn lặp lại bao gồm 87, 81, 59, 27 và 2 Năm giai đoạn này thỏa mãn 87 + 81 + 59 + 27 + 2 = 256, do đó không có sự giao nhau giữa các quỹ đạo chu kỳ Tổng không gian của S-Box là 256, trong khi khoảng thời gian lặp lại của tất cả các phần tử nhỏ hơn 88 Hơn nữa, có quỹ đạo lặp lại với chu kỳ 2, vì vậy hộp S của AES có chu kỳ ngắn và phân phối không tốt, có thể để lại một số
lacuna (lỗ hổng) cho AES
Trang 11Bảng 1: Các khoảng thời gian lặp lại của AES S-Box
thay đổi và đầu ra thay đổi như thế nào Cuối cùng, S-Box đặc biệt ở chỗ không
có điểm cố định, tức là không có trường hợp đầu vào bằng đầu ra Tuy nhiên một số
nghiên cứu đã chỉ những điểm yếu của S-Box Chu kỳ của AES S-Box ngắn và phân phối không tốt, có thể để lại một số lỗ hổng cho AES Những điểm yếu này có thể cải thiện Các cải tiến AES S-Box được chúng em trình bày chi tiết ở chương sau
CHƯƠNG 2: SƠ ĐỒ AES S-BOX CẢI TIẾN
Trang 122.1 Đặt vấn đề
Kể từ khi toàn bộ sự chuyển đổi của AES S box là S-box(x) = La x x-1 +‘63’, không cần quan tâm đến việc chọn đa thức bất khả quy và ma trận chuyển đổi affine, biểu thức đại số của AES S-box chỉ liên quan đến 9 số hạng:
Với độ phức tạp thấp như vậy, khả năng bảo mật của AES S-box bị nghi ngờ
Để loại bỏ lỗ hổng của biểu thức đại số đơn giản, cần phải cải thiện AES S-box
Để có được một hộp S tốt hơn, rất nhiều thí nghiệm và mô phỏng đã được thực hiện Các kết quả sau đây thu được từ mô phỏng:
• Biểu thức đại số đơn giản của AES S-box có liên quan đến thứ tự biếnđổi của phép lấy số nhân nghịch đảo và áp dụng phép biến đổi affine (thứ tự cũ: nghịch đảo trước, biến đổi affine sau)
• Khoảng thời gian chuyển đổi affine ngắn có liên quan đến chuyển đổi affine đã chọn
• Và các khoảng thời gian lặp lại ngắn cũng có liên quan đến phép biến đổi affine đã chọn (phép biến đổi affine đã chọn: L1F, 63 (a(x))
Vì vậy, các thuộc tính mật mã của S-box có thể được cải thiện
2.2 Sơ đồ AES S-Box cải tiến
Phương pháp được đưa ra đó là sửa đổi phép biến đổi affine và thêm một phép biến đổi affine Nhưng chúng ta có thể không đạt được mục đích là các biểu thức đại số của cả S-box và Inverse S-box liên quan đến nhiều thuật ngữ hơn chỉ bằng cách áp dụng phép biến đổi affine chỉ một lần Hướng đến những vấn đề trên một sơ đồ AES S-box cải tiến đã được đề xuất Phép biến đổi affine mới là L5B, 5D đểthay thế cho phép biến đổi ban đầu
AES S-box mới được xây dựng theo ba bước sau:
Bước 1: Áp dụng phép biến đổi affine L5B, 5D, L5B, 5D được ký hiệu như sau:
Bước 2: Lấy nghịch đảo nhân:
Trang 13Bước 3: Áp dụng lại phép biến đổi affine:
Với mọi phép biến đổi affine Lu,v , trong đó u GF (28) / {0} , v GF (28) , tồn tại một phép biến đổi affine nghịch đảo Lu,v-1 = Lu’,v’ sao cho Lu’,v’ (Lu,v (x)) = x , x GF(28) Đối với phép biến đổi affine L5B, 5D đã chọn ở trên, phép biến đổi affine nghịch đảo là L0E, 25 L5B, 5D và L0E, 25 có mối quan hệ:
Bảng 2: AES S-Box cải tiến
2.3 Xây dựng AES S-Box nghịch đảo
S-Box nghịch đảo được xây dựng theo 3 bước sau:
Bước 1: Áp dụng biến đổi L0E,25 L0E, 25 được tính như sau:
Trang 14Bước 2: Lấy nghịch đảo nhân:
Bước 3: Áp dụng phép biến đổi affine L0E, 25 :
Kết quả mô phỏng của AES S-Box cải tiến được đưa ra trong Bảng 2-4 Bảng 2 hiển thị AES S-Box cải tiến Bảng 3 cho thấy các hệ số của biểu thức đại số của AES S-Box cải tiến Các hệ số của biểu thức đại số của AES S-Box nghịch đảo được hiển thị trong Bảng 4
Chọn 1 phép biến đổi affine mới L5B, 5D trong sơ đồ AES S-Box được cải thiện vì L5B, 5D thỏa mãn điều kiện và Vì vậy mà chu kì biến đổi của affine của AES S-Box đạt hiệu quả nhiều nhất là 16 Với mọi x GF(28) hãy xem chu kì lặp lại của nó được xác định bởi định nghĩa 1.3 Quan sát chỉ ra rằng:
S256(x) = x và Si(x) ≠ x, I = 1,2,…,255 với mọi x GF(28) Bằng việc lựa chọnmột phép biến đổi affine mới và áp dụng phép biến đổi affine 2 lần, phép lặpkhoảng thời gian của AES S-Box cải tiến được tăng lên 256 (Hộp S-Box cũ lặp lớnnhất là 87)
Bảng 3: Các hệ số của biểu thức đại số của AES S-Box cải tiến
Trang 15Bảng 4: Hệ số của biểu thức đại số của nghịch đảo AES được cải thiện
Trang 16CHƯƠNG 3: PHÂN TÍCH HIỆU SUẤT CÚA AES S-BOX ĐÃ CẢI TIẾN VÀ THỰC HIỆN SO SÁNH VỚI S-BOX CHƯA CẢI TIẾN
Trong chương này, chúng em sẽ trình bày chi tiết và phân tích hiệu suất của AES S-Box đã cải tiến
3.1 Tính chất của biểu thức đại số của AES S-Box
Mặc dù AES S-Box được coi là an toàn vì đó là phép biến đổi phi tuyến tính,nhưng biểu thức đại số của AES S-Box chỉ liên quan đến 9 số hạng và được coi là quá đơn giản Biểu thức đại số của AES S-Box:
Dựa vào biểu thức đại số đơn giản của AES S-Box, J M Liu đã đề xuất một cải tiến S-Box bằng cách trao đổi thứ tự lấy phép nhân nghịch đảo và áp dụng phép biến đổi affine Biểu thức đại số của S-Box cải tiến bao gồm 255 số hạng và khoảngcách của nó tới SAC là 408
Trang 17Theo như sơ đồ cải tiến AES S-Box (đã trình bày trong chương 2), có thể thấy trong cả hai quy trình xây dựng AES S-Box cải tiến và S-Box nghịch đảo đều
có một phép biến đổi affine trước khi thực hiện phép nhân nghịch đảo Bằng các thí nghiệm và mô phỏng, chúng ta thu được các biểu thức đại số của AES S-box cải tiến và AES nghịch đảo S-box cải tiến (Bảng 3 và Bảng 4)
Dữ liệu C(mn) trong Bảng 3 và các hệ số của biểu thức đại số AES S-Box cảitiến có một mối quan hệ:
Tương tự, giá trị C’(mn) trong Bảng 4 và các hệ số của biểu thức đại số AES S-Box cải tiến có một mối quan hệ:
Biểu thức đại số của AES S-Box nghịch đảo:
Rõ ràng ta thấy số lượng số hạng trong biểu thức đại số của AES S-Box nghịch đảo được cải thiện biểu thức lên tới 253 Vì vậy, độ phức tạp của biểu thức đại số hộp S nghịch đảo được tăng lên
Sơ đồ cải tiến giải quyết vấn đề rằng các biểu thức đại số của AES S-Box
và hộp S nghịch đảo quá đơn giản, chỉ có 9 số hạng được tham gia
Nhiều cuộc tấn công đại số (ví dụ: tấn công XL, tấn công XSL và tấn công
cơ sở Grobner) dựa vào sự thưa thớt của các phương trình và cấu trúc cụ thể của cácphương trình đó Kể từ khi biểu thức đại số của AES S-Box và AES S-Box nghịch đảo được cải tiến và liên quan đến 255 thuật ngữ, chúng ta có thể tránh được các
Trang 18dụng các cải tiến AES S-box thành AES, khả năng chống lại cuộc tấn công đại số sẽđược tăng lên rất nhiều.
3.2 Thuộc tính đại số của hàm boolean
Một S-Box với các đặc tính mã khóa tốt có thể đảm bảo bản mã có thể chốnglại nhiều phương pháp phá mã khác nhau, vì vậy bất kỳ thiếu sót nào của S-Box sẽ làm suy yếu tính bảo mật của bản mã AES S-Box là một hàm boolean 8 × 8, và 8 hàm boolean này điều kiện và ảnh hưởng lẫn nhau Ngay cả khi 8 hàm này có một
số thuộc tính đồng thời, hàm boolean S-Box có thể không có các thuộc tính tương
tự Do đó, cần phân tích các tính chất đại số của hàm S-Box
Định nghĩa 3.1: Cho phương trình theo r của số hạng t trong GF (28) Sự cảntrở của tấn công đại số (RAA) được biểu thị bởi Γ và được định nghĩa như sau:
chúng ta có thể thu được Γ ≈ 222.9 Jung tuyên bố cần Γ phải lớn hơn 232 đối với bản
mã an toàn Trong khi AES S-box có Γ = 222.9, nó có thể là một điểm yếu của AES
Lưu ý rằng số liệu này phụ thuộc chủ yếu vào việc lấy phép nhân nghịch đảo Đối với AES S-Box cải tiến, chúng ta có thể nhận được Γ ≈ 222.9
Định nghĩa 3.2: Cho F(x)=(f1(x), …, fn(x)) từ GF (2)n đến GF (2)n là một hàm boolean nhiều đầu ra, tính đồng nhất vi phân được ký hiệu là δ (F) và được định nghĩa là
Định lý 3.1: AES S-box có δ (F) = 4
Khả năng chống lại sự phá mã vi sai được đo bằng δ (F) Biết rằng giá trị tối
thiểu của δ (F) là 1 Tương tự, AES S-box cải tiến có δ (F) = 4, vì vậy AES S-box cải tiến có khả năng chắc chắn chống lại sự tấn công vi sai.
Định nghĩa 3.3: Giả sử F(x)=(f1(x), …, fn(x)) là một hàm boolean nhiều đầu
ra ∀α = (αn, αn-1, …, α1) thì F(x) thỏa mãn Strict Avalanche Criterion (SAC)
Định nghĩa 3.4: Giả sử F(x)=(f1(x), …, fn(x)) là một hàm boolean nhiều đầu
ra, khoảng cách đến SAC được biểu thị bằng DSAC(F) và đc định nghĩa là