Tải bản đầy đủ (.docx) (34 trang)

CẢI TIẾN AES SBOX VÀ PHÂN TÍCH HIỆU SUẤT CỦA SBOX ĐÃ CẢI TIẾN

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 (1.55 MB, 34 trang )

HỌC VIỆN KỸ THUẬT MẬT MÃ
KHOA AN TỒ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: Hồng Thu Phương
Sinh viên thực hiện:
xxxxxxx
xxxxxxx
xxxxxxx
xxxxxxx
xxxxxx
Lớp: xxxx
Khóa:

Hà Nội, tháng 9 năm 2021

LỜI MỞ ĐẦU
Từ khi con người có nhu cầu trao đổi thơng tin thì nhu cầu giữ bí mật, đảm
bảo tính riêng tư của những thơng tin đó cũng nảy sinh. Hình thức thơng tin trao đổi
phổ biến và sớm nhất là dưới dạng các văn bản. Để giữ bí mật người ta đã sớm nghĩ
ra cách che dấu nội dung các văn bản bằng cách biến dạng các văn bản đó để người


ngồ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 tốn mã


hóa”. Trải qua hàng nghìn năm, có rất nhiều thuật tốn đã được đưa ra nhằm mục
đích bảo mật thơng tin với độ an tồn cao. Và một trong số đó là thuật tố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 tố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 AES
S-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ơ Hồng Thu Phương đã chỉ bảo tận tình
và giúp đỡ chúng em trong suốt q trình làm bài tập lớn mơn học. Với sự hướng


dẫ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 !


MỤ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
2.2
2.3
2.4

. Đặt vấn đề...................................................................................................8
. Sơ đồ AES S-Box cải tiến............................................................................8
. Xây dựng AES S-Box nghịch đảo............................................................... 9
. 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
3.2

3.3
3.4

. Tính chất của biểu thức đại số của AES S-Box...........................................13
. Thuộc tính đại số của hàm boolean.............................................................14
. So sánh hiệu suất........................................................................................18
. Kết luận chương 3......................................................................................19

CHƯƠNG 4: XÂY DỰNG THUẬT TỐN MÃ HĨA VÀ GIẢI MÃ SỬ DỤNG
THUẬT TỐN AES BẰNG NGƠN NGỮ JAVA................................................20
4.1 . Thuật tốn AES .........................................................................................20
4.2 . Q 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 q trình mã hóa ......................................................................27
4.3.2. Code q 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
TÀI LIỆU THAM KHẢO

30


DANH MỤC CÁC HÌNH VẼ
Hình 4.1: Sơ đồ tổng qt q 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 tốn sinh khóa vịng trong AES ...........................................26

5


DANH 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
6


Kể 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 tố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 tốn mã hóa và giải mã sử dụng thuật tốn AES
bằng ngơn ngữ Java

CHƯƠNG 1: NGUN LÝ VÀ ĐẶC TÍNH CỦA AES S-BOX
7


1.1. Giới thiệu về AES S-Box
Thuật tố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ỗi
byte 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:
x = (x ′ )-1 =

(2). Thực hiện phép biến đổi affine (trên GF (2)). Phép biến đổi affine được xác
định:

hay

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
8






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 tố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
với


u(x) =
v(x) =



a(x) =

Phép biến đổi affine của AES S-box là L1F,63 vậy u(x) = (x4+ x3 + x2 + x + 1)
và v(x) = (x6 + x5 + x + 1). Ta đặt

9


thì 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
L (a) = F k a + F k−1 v + F k−2 v + · · · + F v + v. Đặt
H k−1 = F k−1 + F k−2 + · · · + F + E thì
L (a) = F k a + H k−1 v, với E là 1 ma trận 8 x 8
Định nghĩa 1.2. Nếu tồn tại số nguyên dương n thỏa mãn L = E thì Lu,v thỏa
mãn tính tuần hoàn. Nếu n là số nguyên dương nhỏ nhất thì chu kỳ của Lu,v là n
Phép biến đổi affine của AES S-box là Lu,v=L1F,63. Bởi vì L1F,63 thỏa mãn điều
kiện L(a) = a và L (a) a, i = 1,2, 3 nên chu kỳ biến đổi affine của AES S-Box là 4.
Theo nguyên tắc biến đổi AES S-Box, các nghiên cứu đã chỉ ra rằng với u,v bất kỳ
thuộc GF(28), phép biến đổi affine có 5 chu kỳ khác nhau: 1, 2, 4, 8, 16, tức là
khoảng thời gian lớn nhất lên đến 16. Ví dụ, các giai đoạn của L01,01, L01,02, L01,04,
L01,07,…, L04,04, L04,07, L04,08, L01,0B,…, L5B,5D,…, LFE,F8, LFE,FB, LFE,FD, LFE,FE là 16. Trong
khi 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 hồ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 hồn. Nếu n là số ngun 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 tốn lặp đi lặp lại
các khoảng thời gian của nó. Kết quả tính tố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.

10


Bảng 1: Các khoảng thời gian lặp lại của AES S-Box
1.5. Kết luận chương 1.
Với sự hợp thành của 2 phép biến đổi: lấy nghịch đảo nhân đầu vào trên
GF(2 ) và thực hiện phép biến đổi affine trên GF(2), S-Box đóng góp rất nhiều vào
bảo mật của AES nói chung. S-Box chống lại phân tích mật mã tuyến tính ở chỗ
khơng có sự tương quan nào giữa đầu ra và đầu vào. S-Box cũng chống lại phân
tích mật mã khác biệt ở chỗ dường như khơng có mối tương quan giữa cách đầu vào
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.
8


CHƯƠNG 2: SƠ ĐỒ AES S-BOX CẢI TIẾN
11


2.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:

12


Bướ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:

13


Bướ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(2 8) .Bằng việc lựa chọn
mộ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ặp
khoả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ớn
nhấ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
14


Bảng 4: Hệ số của biểu thức đại số của nghịch đảo AES được cải thiện
2.4. Kết luận chương 2
Dựa trên điểm yếu về độ phức tạp của biểu thức đại số của AES S-Box, bằng
việc tiến hành những thí nghiệm và mô phỏng, một phương án cải tiến đã được đề
ra đó là chọn phép biến đổi affine với chu kỳ đạt cực đại L5B, 5D thay cho phép biến
đổi cũ L1F,63 và thêm một phép biến đổi affine. Kết quả sau khi cải tiến cho thấy các
hệ số của biểu thức đại số hộp S đã được cải thiện (từ 9 số hạng lên 255 số hạng),
nhờ vậy độ bảo mật của AES được tăng lên. Tuy nhiên, sự cải tiến này không chỉ
đơn thuần là làm tăng số số hạng trong biểu thức đại số của S-Box, chúng ta sẽ tìm
hiểu kỹ hơn về hiệu suất hộp S mới ở chương sau.


15


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
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 tồ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ảng
cách của nó tới SAC là 408.
16


Theo 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ải
tiến có một mối quan hệ:

.
Cụ thể, biểu thức đại số của AES S-Box được cải tiến như sau: (sau khi cải
tiến thì từ 9 số hạng đã tăng lên 255 số hạng)


Rõ ràng là số lượng số hạng trong biểu thức đại số hộp S được cải thiện lên
tới 255, lớn hơn nhiều so với 9 số hạng của biểu thức đại số ban đầu. Vì vậy, độ
phức tạp của biểu thức đại số của AES S-Box được tăng lên.
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ác
phươ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
phương trình thưa thớt và các phương trình được xác định quá mức. Bằng cách áp
17


dụ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ống
lạ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ản
trở của tấn công đại số (RAA) được biểu thị bởi Γ và được định nghĩa như sau:
Đối với hộp AES S, t =
81, r = 23, n = 8,
22.9
chúng ta có thể thu được Γ ≈ 2 . Jung tuyên bố cần Γ phải lớn hơn 232 đối với bản
mã an tồ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à

18


Rõ ràng F (x) thỏa mãn SAC khi DSAC (F) = 0. AES S-Box không thỏa mãn
SAC. Bảng 5 cho thấy SAC của hàm AES S-box F(x)=(f1(x), …, f8(x)). Chúng ta
có thể lấy DSAC (AES S-Box) = 432 theo như định nghĩa 4.4
SAC của AES S-Box cải tiến được trình bày trong Bảng 6. Chúng ta có thể
lấy DSAC (AES S-Box cải tiến) = 372 từ định nghĩa 4.4.

Mặc dù mỗi chức năng bit đầu ra của hộp AES S cải tiến không thể đáp ứng
SAC, nhưng số lượng các bit đầu ra được thay đổi rất gần với 2n-1 = 128, nghĩa là,
xác suất xấp xỉ 1/2. Khi một bit đầu vào được đảo ngược, bit đầu ra tương ứng của
nó sẽ nghịch đảo với xác suất xấp xỉ 1/2

Bảng 5: SAC của AES S-Box

Bảng 6: SAC của AES S-Box cải tiến
Định nghĩa 3.5: Giả sử F(x)=(f1(x), …, fn(x)) là một hàm boolean nhiều đầu
ra, phi tuyến tính được ký hiệu là N (F) và đc định nghĩa là

trong đó Ln [X] là tập hợp tất cả các hàm tuyến tính từ GF (2)n đến GF (2)n
Khả năng chống lại phân tích mật mã tuyến tính được đo bằng N (F) và các
hàm có cực đại N (F) được cho là cực đại phi tuyến tính. Tuy nhiên, các sự biểu
19


diễn khác sẽ trở nên yếu đi khi N (F) đạt mức tối đa. Chúng ta thu được từ định
nghĩa 4.5 rằng cả AES S-Box và AES S-Box cải tiến đều có N (F) = 112. N (F) của
hàm phi tuyến hoàn hảo là N (F) = 2n-1 – 2n/2 -1 =120. AES S-Box và AES S-Box cải
tiến không phải là hàm phi tuyến tính hồn hảo, nhưng N (AES S-box) và N (AES
S-box cải tiến) rất gần với N (F) của hàm phi tuyến hoàn hảo.
Khả năng chống lại phân tích mật mã tuyến tính của AES Sbox cải tiến
và chưa cải tiến là tương đối hoàn hảo
Định nghĩa 3.6: Giả sử F(x) = (f1(x), …, fn(x)) từ GF (2n) đến GF (2n) là một
hàm boolean nhiều đầu ra, nếu tồn tại a thuộc GF (2n), thỏa mãn F(x) +F(x+) =
const, cấu trúc tuyến tính của F (x) được xác định là .
Định lý 3.2: AES S-Box khơng có cấu trúc tuyến tính khác khơng.
Bằng chứng: Giả sử ngược lại, AES S-box có cấu trúc tuyến tính khác
khơng (tồn tại khác 0).

Trong trường hợp này, cho c khác 0 thỏa mãn
trong đó là hằng số. Rõ ràng ngay lập tức
Cho x=0, ta thu được β = La × c-1, do vậy, chúng ta có
Bởi vì det(La) khác 0, trong đó det biểu thị việc lấy biểu thức ma trận, do đó

Tuy nhiên, theo nguyên tắc của phép nhân nghịch đảo, rõ ràng là

Do đó tồn tại mâu thuẫn giữa
Chính vì vậy, AES S-Box khơng có cấu trúc tuyến tính khác không.
Định lý 3.3: AES S-box đã được cải tiến có cấu trúc tuyến tính khác 0
Chứng minh: vì AES S-box đã cải tiến
Giả sử Ngược lại , Hộp AES S-Box đã được cải tiến có cấu trúc tuyến tính
khác 0 . Trong trường hợp c khác 0, thỏa mãn:
với β là hằng số. rõ ràng rằng
20


Lb×(Lb×(x+c)+’5D′ ) -1+Lb×(Lb×x+ ‘5D′ ) -1 = β.
Khi x=0, chúng ta có thể lấy
vì thế , chúng ta có
Lb × ( ‘5D′ ) -1.
Khi det(Lb) khác 0, chúng ta sẽ có

nó rõ ràng rằng

Đặt t = Lb*x, p=Lb*c+ ‘5D’, q=’5D’, chúng ta sẽ có

Tuy nhiên , theo nguyên tắc lấy phép nhân nghịch đảo, rõ ràng là:

Khi đó tồn tại một mâu thuẫn giữa


Vì thế AES S-box đã được cải tiến có cấu trúc tuyến tính khác 0.
3.3. So sánh hiệu suất.
Để so sánh, các tính năng mật mã của hộp AES S-Box và AES-Box sau khi
cải tiến được kiểm tra bằng các thí nghiệm và mơ phỏng . Các đặc tính liên quan
của hộp S cũng được thí nghiệm . Bảng so sánh hiệu suất được thể hiện trong bảng
7

21


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
- Như có thể thấy từ bảng 7, DSAC của hộp AES S-box sau khi cải tiến giảm
từ 432 tới 372. Tức là AES S-box có hiệu suất SAC tốt hơn AES S-box và hộp S[7].
- Số số hạng trong biểu thức đại số của AES S-box tăng từ 9 đến 255, và Sbox nghịch đảo dạng biểu thức đại số của AES đã cải thiện có số số hạng gần bằng
với S-box nghịch đảo của AES. Nó rất có thể tránh lỗ hổng chỉ 9 thuật ngữ không
chỉ ở dạng đa thức AES S-box mà còn trong dạng đa thức S-box nghịch đảo của [7].
- Thời gian chuyển đổi Affine tăng từ 4 đến 16, vì vậy AES S-box sau khi
cải tiến có hiệu suất tốt hơn trong việc chuyển đổi affine hơn AES S-box và S-box
- Thời gian lặp lại của S-box của AES đã cải tiến tăng lên 256, trong khi
khoảng thời gian lặp lại của S-box của AES và S-box[7] nhỏ hơn 88
Tóm lại S-box của AES đã cải thiện có các đặc tính mật mã tốt hơn.
3.4. Kết luận chương 3
Với AES S-Box được đề xuất, tốc độ mã hóa dữ liệu được tăng lên trong thời
gian ngắn hơn. Nhưng trái lại, AES cải tiến cần nhiều thời gian hơn để mã hóa.
Trong đó, các mật mã khối 128 bit được ghép nối để tăng hiệu xuất của AES. Ngồi
ra, tính bảo mật của AES được cải thiện bằng cách tăng cường trong ma trận chính
của ứng dụng mở rộng thế nên AES có thể được sử dụng để giao tiếp an tồn như
mã hóa hình ảnh, mạng ATM và lưu trữ an toàn chẳng hạn như tài liệu mật, tài liệu
chính phủ và thiết bị lưu trữ cá nhân.


22


CHƯƠNG 4: XÂY DỰNG THUẬT TỐN MÃ HĨA AES VỚI SBOX ĐÃ CẢI TIẾN SỬ DỤNG NGÔN NGỮ C/JAVA
4.1. Thuật toán AES
AES là một biến thể của phương pháp Rijndael, làm việc với kích thước khối
cố định là 128 bit và kích thước khóa là 128, 192 hoặc 256 bit.
Độ dài của khóa quyết định AES có bao nhiêu vịng lặp, cụ thể:




10 vịng với khóa 128 bit.
12 vịng với khóa 192 bit.
14 vịng với khóa 256 bit.

4.2. Q trình mã hóa
Mỗi vịng của thuật tốn AES bao gồm 4 bước:





Cộng khóa vịng – AddRoundKey
Phép thế byte – SubBytes
Phép dịch hàng – ShiftRows
Trộn cột – MixColumns
23



Tại vịng cuối thì khơng thực hiện phép trộn cột (MixColumns). Kết quả của
mỗi vòng là một được gọi là state. Kết quả này sẽ trở thành đầu vào của vịng tiếp
theo.

Hình 4.1: Sơ đồ tổng qt q trình mã hóa AES
Đoạn mã giả cho q trình mã hóa tổng quát
Cipher (byte in[4, Nb]
byte out[4, Nb]
word w[Nb, (Nr + 1)]
Begin
byte state[4, Nb]
state = in
AddRoundKey (state,w)
for round = 1 to Nr - 1
SubBytes (state)
// Xem phần 4.2.1
ShiftRows (state)
// Xem phần 4.2.2
MixColumns (state)
// Xem phần 4.2.3
AddRoundKey (state, w + round * Nb) // Xem phần 4.2.4
end for
SubBytes (state)
ShiftRows (state)
MixColumns (state)
AddRoundKey (state, w + Nr * Nb)
out = state
24



End

Trong đoạn mã trên, mảng w[] chứa khóa con tạo thành từ phép mở rộng
khóa (AddRoundKey) với các word hàng đầu tiên là khóa mẹ; mảng in[] và out[]
lần lượt chứa dữ liệu vào và kết quả ra của thuật tốn mã hóa; Nr = Số vịng của
AES; giá trị Nb = Độ dài khóa / 32. Ví dụ:
Khóa 128 bit => Nb = 4, khối đầu vào và ra là các khối 4*4 bytes, 1 word
gồm 4 bytes (32 bit) * 10 vịng
Khóa 192 bit => Nb = 6, khối đầu vào và ra là các khối 4*6 bytes, 1 word
gồm 6 bytes (48 bit) * 12 vòng
4.2.1. SubBytes
Các byte được thế thông qua bảng tra S-Box đã cải tiến. Các xây dựng và
đặc tính của S-Box này đã được nhắc đến ở các chương trước

Hình 4.2: AES S-Box cải tiến
Đoạn mã giả cho phép biến đổi SubByte
SubBytes (byte state[4, Nb])
Begin
for r = 0 to 3
for c = 0 to Nb - 1
state [r,c] = SBox[state[r, c]]
// Giá trị tại hàng r, cột c của state được thay thế bằng 1 giá
trị tương ứng trong S-Box
end for
25


×