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

NCXD ma trận MDS dịch vòng cho mật mã hạng nhẹ

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 (485.49 KB, 76 trang )

BAN CƠ YẾU CHÍNH PHỦ
HỌC VIỆN KỸ THUẬT MẬT MÃ
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

ĐỒ ÁN TỐT NGHIỆP

NGHIÊN CỨU XÂY DỰNG CÁC MA TRẬN MDS
DỊCH VỊNG (CIRCULANT MDS MATRIX) CHO
MẬT MÃ HẠNG NHẸ
Ngành: An tồn thơng tin
Mã số: 7.48.02.02

Sinh viên thực hiện:
Hồng Như
Lớp: AT13A - MSV: AT130142
Người hướng dẫn:
TS. Trần Thị Lượng
Khoa An tồn thơng tin - Học viện Kỹ thuật mật mã

Hà Nội, 2022


BAN CƠ YẾU CHÍNH PHỦ
HỌC VIỆN KỸ THUẬT MẬT MÃ
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

ĐỒ ÁN TỐT NGHIỆP

NGHIÊN CỨU XÂY DỰNG CÁC MA TRẬN MDS
DỊCH VỊNG (CIRCULANT MDS MATRIX) CHO
MẬT MÃ HẠNG NHẸ


Ngành: An tồn thơng tin
Mã số: 7.48.02.02

Sinh viên thực hiện:
Hồng Như
Lớp: AT13A - MSV: AT130142
Người hướng dẫn:
TS. Trần Thị Lượng
Khoa An tồn thơng tin - Học viện Kỹ thuật mật mã

Hà Nội, 2022


MỤC LỤC

3


DANH MỤC TỪ VIẾT TẮT
MDS
DES
AES
ECC
SPN
ECB
CBC
CFB
OFB
CTR
Ubicomp

OS

Maximum Distance Separable
Data Encryption Standard
Advanced Encryption Standard
Elliptic-curve cryptography
Substitution Permutation Networks
Electronic Codebook
Cipher Block Chaining
Cipher Feedback
Output Feedback
Counter
Ubiquitous comptuting
Operating System

4


DANH MỤC HÌNH ẢNH

5


6


LỜI CẢM ƠN
Trong quá trình thực hiện đồ án tốt nghiệp này, tơi đã nhận được sự giúp
đỡ tận tình của cán bộ hướng dẫn là TS. Trần Thị Lượng – Giảng viên Khoa An
tồn thơng tin Học viện Kỹ thuật Mật mã, sự quan tâm sâu sát của cán bộ Hệ

quản lý học viên, sự động viên của người thân và bạn bè.
Xin cảm ơn tất cả mọi người đã tạo những điều kiện tốt nhất để tơi hồn
thành đồ án tốt nghiệp này!
SINH VIÊN THỰC HIỆN ĐỒ ÁN
Hoàng Như

7


LỜI NÓI ĐẦU
Ma trận phân tách khoảng cách tối đa (MDS Matrix) khơng chỉ có ứng
dụng trong lý thuyết mã hóa mà cịn có tầm quan trọng lớn trong việc thiết kế
mật mã khối và hàm băm. Ngoài ra, các ma trận MDS còn được sử dụng trong
mật mã hạng nhẹ. Có rất nhiều phương pháp xây dựng ma trận MDS đã được
nghiên cứu, trong phạm vi đồ án này em lựa chọn phương pháp xây dựng ma
trận MDS dịch vịng. Chính vì vậy nên em chọn đề tài nghiên cứu “ Xây dựng
ma trận MDS dịch vòng (Circulant MDS Matrix) cho mật mã hạng nhẹ”.
Đồ án bao gồm 3 chương:
Chương 1. Tổng quan về mã khối và mật mã hạng nhẹ
Chương này trình bày tổng quan về mã khối và mật mã hạng nhẹ.
Chương 2. Nghiên cứu về ma trận MDS và ma trận dịch vòng cho mật mã
hạng nhẹ
Chương này trình bày tổng quan về ma trận MDS và một số kết quả hữu
ích của ma trận dịch vòng.
Chương 3. Thực nghiệm xây dựng các ma trận dịch vịng MDS hiệu quả
Chương này trình bày q trình xây dựng các ma trận MDS và kết quả
thực nghiệm.
Do thời gian và trình độ có hạn nên đồ án của em khơng thể tránh khỏi
những thiếu sót. Em kính mong được q thầy cơ nhận xét và góp ý để đồ án
của em được hoàn thiện hơn.

Em xin gửi lời cảm ơn trân trọng nhất tới giảng viên hướng dẫn, cơ Trần
Thị Lượng, người đã hướng dẫn và tận tình chỉ bảo để em có thể hồn thành đồ án
này. Em cũng xin tỏ lòng biết ơn sâu sắc tới các thầy cô giáo trong trường Học
viện Kỹ thuật Mật mã nói chung và Khoa An tồn thơng tin nói riêng.
Em xin chân thành cảm ơn!
Sinh viên thực hiện

8


CHƯƠNG 1. TỔNG QUAN VỀ MÃ KHỐI VÀ MẬT MÃ HẠNG NHẸ

1.1. Tìm hiểu về mã khối
1.1.1.

Giới thiệu về mã khối
Mã khối (Block cipher) là những thuật tốn mã hóa đối xứng hoạt động

trên những khối thơng tin có độ dài xác định (block) với những chuyển đổi xác
định. Trong kiểu mã hóa này các tham số quan trọng nhất là độ dài khối và độ
dài mã. Có hai yếu tố cần chú trọng để xây dựng mã khối an tồn đó là độ dài
khối và khơng gian khóa. Độ dài khối () phải đủ lớn để chống lại phương pháp
tấn công thống kê, tuy nhiên điều này dẫn đến thời gian mã hóa sẽ tăng lên. Cịn
về khơng gian khóa, tức độ dài khóa thì phải đủ lớn để chống lại phương pháp
tấn cơng vét cạn. Tuy nhiên khóa phải đủ ngắn để việc tạo khóa, phân phối khóa
được dễ dàng.
Q trình mã hóa khối bao gồm 2 thuật tốn là mã hóa - ký hiệu và giải
mã - ký hiệu . Cả hai thuật toán đều tác động lên một khối đầu vào sử dụng một
khóa để cho ra một khối đầu ra . Giải mã là hàm ngược của mã hóa. Với mỗi
khóa là một hốn vị (song ánh) của khối đầu vào. Mỗi khóa sẽ xác định một

hoán vị trong tổng sốkhả năng.
1.1.2. Các chế độ hoạt động của mã khối
1.1.2.1.

Chế độ sách mã điện tử (ECB)
Mẫu tin được chia thành các khối độc lập, sau đó mã từng khối. Mỗi khối

là giá trị cần thay thế nhưng dùng sách mã, do đó chế độ này có tên là quyển mã
điện tử. Mỗi khối được mã độc lập với các mã khác . Chế độ này được sử dụng
khi truyền an toàn theo từng giá trị riêng lẻ.

9


Mã hóa

Mã hóa

Mã hóa

……
Giải mã

Mã hóa

Hình 1.1. Sơ đồ mã hóa và giải mã chế độ ECB

Giải mã

Giải mã


Giải mã

Các khối như nhau (dưới cùng một khóa) sẽ cho các khối mã giống nhau.
Các khối được mã hóa độc lập với các khối khác, việc sắp xếp lại thứ tự các
khối mã cũng sẽ tương ứng với việc phải xếp lại các khối rõ – Sự phụ thuộc móc
xích. Một hoặc nhiều bit sai trong một khối đơn lẻ chỉ ảnh hưởng tới chính việc
giải mã khối đó – Tính lan sai. Ở chế độ này có thể xử lý các khối song song –
Khả năng xử lý song song.
1.1.2.2.

Chế độ xích mã khối (CBC)
Ở chế độ này các mẫu tin được chia thành các khối, nhưng chúng được

liên kết với nhau trong q trình mã hóa. Các khối được sắp xếp thành dãy, vì
vậy chế độ này có tên là chế độ liên kết khối mã. Tại chế độ này sẽ sử dụng
vector ban đầu để bắt đầu quá trình:

10


Hình 1.2. Sơ đồ mã hóa và giải mã chế độ CBC
Chế độ này sử dụng khi mã dữ liệu lớn, xác thực. Đối với các bản rõ
giống nhau thì kết quả các khối mã sẽ như nhau khi cùng bản rõ được mã hóa
dưới cùng một khóa và IV. Thay đổi IV, khóa hoặc khối rõ đầu tiên thì bản mã
kết qủa sẽ khác nhau. Cơ chế móc xích làm cho bản mã phụ thuộ vào và toàn
bộ các khối rõ trước đó. Hệ quả là việc sắp xếp lại các khối mã sẽ là ảnh hưởng
đến việc giải mã. Việc giải mã đúng là một khối mã đòi hỏi phải giải mã đúng
khối trước đó – Sự phụ thuộc móc xích. Nếu sai một bit trong khối mã sẽ ảnh
hưởng việc giải mã các khối và (từ chỗ phụ thuộc và và ) – Tính lan sai. Chế

độ CBC là kiểu tự đồng bộ theo nghĩa nếu một sai số (bao gồm các việc mất một
hoặc nhiều hơn các khối đầu vào) xuất hiện trong khối nhưng không có ở trong
và thì sẽ giải mã chính xác tới khối .
1.1.2.3.

Chế độ phản hồi đầu ra (CFB)
Chế độ CFB sẽ coi bản tin như các dòng bit, bổ sung vào đầu ra của mã

khối. Kết quả phản hồi trở lại cho giai đoạn tiếp theo, vì vậy chế độ này có tên là
phản hồi mã. Nói cung cho phép số bit phản hồi là 1, 8, 64 hoặc tùy ý (ký hiệu
tương ứng là CFB1, CFB8, CFB64,…). Thường hiệu quả sử dụng cả 64 bit.

11


Hình 1.3. Sơ đồ mã hóa và giải mã chế độ CFB
Chế độ này sử dụng cho mã dữ liệu dòng, xác thực. Đối với các bản rõ
giống nhau, cũng giống như chế độ CBC, sự thay đổi làm cho cùng một bản rõ
đầu vào như nhau sẽ được mã hóa thành các bản mã khác nhau. Vector IV khơng
cần phải giữ bí mật (mặc dù trong ứng dụng thì nên dùng khó đốn để an tồn).
Tương tự như chế độ CBC, cơ chế móc xích làm cho khối mã y j phụ thuộc vào
cả xj và các khối rõ trước đó, hệ quả là việc thay đổi thứ tự của các khối mã sẽ
ảnh hưởng tới việc giải mã – Sự phụ thuộc móc xích. Một hoặc nhiều hơn bit sai
trong một khối mã đơn lẻ sẽ ảnh hưởng việc giải mã ngay tại đó và ảnh hưởng
tới việc giải mã các khối tiếp theo. Thám mã đối phương cũng có thể dự đốn sự
thay đổi bit trong xj bằng cách thay đổi các bit tương ứng của y j – Tính lan sai.
Chế độ CFB là tự đồng bộ tương tự như CBC, nhưng địi hỏi phải có các khối
mã để khắc phục – Khắc phục sai.
1.1.2.4.


Chế độ phản hồi đầu ra (OFB)
Ở chế độ này mẩu tin được xem như dòng bit. Đầu ra của mã được bổ

sung cho mẩu tin. Đầu ra do đó là phản hồi, do đó có tên là chế độ phản hồi đầu
ra. Phản hồi ngược là độc lập đối với bản tin. Có thể tính trước:

12


Giải mã

Hình 1.4. Sơ đồ mã hóa và giải mã chế độ OFB
Chế độ này được dùng cho mã dòng trên các kênh âm thanh. Đối với các
bản rõ giống nhau, cũng giống như CBC, CFB sự thay đổi làm cho một bản rõ
đầu vào như nhau sẽ được mã hóa thành các bản mã khác nhau. Dịng khóa là
độc lập với bản rõ. Một hay nhiều hơn bit sau trong kí tự mã bất kỳ sẽ chỉ ảnh
hưởng việc giải mã ngay tại kí tự đó, chính xác là ảnh hưởng tới vị trí bit sai làm
cho bit bản rõ được giải ra sẽ là bit phần bì của bit rõ đúng. Chề độ OFB khắc
phục các bit mã sai, nhưng không thể tự đồng bộ sau khi đã mất các bit mã,
chúng sẽ làm lệch đi dịng khóa để giải mã.
1.1.2.5.

Chế độ CTR
Mỗi bộ đếm bằng với khối văn bản gốc. Mỗi khối nhận được một bộ đếm

và một khóa để tạo khối đầu ra. Đầu ra được XOR với khối bản rõ tương ứng để
tạo bản mã.

CTR được đánh giá là hiệu quả cao, có thể thực hiện mã hóa hoặc giải mã
song song, có thể thực hiện giải thuật mã hóa trước nếu cần. Có thể xử lý bất kỳ

khối nào trước các khối khác. An ninh khơng kém gì các phương thức khác. Đơn
giản, chỉ cần cài đặt giải thuật mã hóa, khơng cần đến giải thuật giải mã. Không
sử dụng lại cùng giá trị khóa và biến đếm (tương tự OFB).
13


1.1.3. Nguyên lý thiết kế mã khối

Theo Shannon có 2 nguyên tắc cơ sở để độ bảo mật cao đó là việc tạo ra
tính xáo trộn (confussion) và tính khuếch tán (diffusion). Tính xáo trộn chính là
sự phụ thuộc vào bản mã đối với bản rõ phải thực sự phức tạp để gây rắc rối,
cảm giác xáo trộn đối với kẻ thám mã có ý định phân tích tìm quy luật để phá
mã. Quan hệ của mã – tin là phi tuyến. Cịn tính khuếch tán thì làm khuếch tán
những mẩu văn bản mang đặc tính thống kê (gây ra do dư thừa ngơn ngữ) lẫn
vào tồn bộ văn bản. Nhờ đó gây khó khăn cho kẻ phá hoại trong việc dò mã
trên cơ sở thống kê các mẫu lặp lại cao. Sự thay đổi 1 bit trong khối bản rõ phải
dẫn tới sự thay đổi hoàn toàn trong khối mã tạo ra. Hiểu một cách đơn giản thì
tính xáo trộn được thực hiện bằng phép thế cịn tính khuếch tán được thực hiện
bằng phép đổi chỗ hoán vị.
1.1.4. Một số thuật toán mã khối
1.1.4.1.

Thuật toán DES (Data Encryption Standard)
Thuật toán mã khối DES (Data Encryption Standard) là một thuật tốn mã

khối với kích thước khối 64 bít và kích thước khóa 56 bít, được cơng bố chính
thức bởi Tổ chức Tiêu chuẩn xử lý thông tin liên bang Hoa Kỳ (FIPS) vào tháng
11/1976 và được xuất bản trong tài liệu FIPS PUB 46 (01/1977). Thuật toán
DES đã trải quả nhiều lần cập nhật: năm 1988 (FIPS-46-1), 1993 (FIPS-46-2),
1998 (FIPS-46-3). Tiền thân của thuật toán DES là thuật toán Lucifer, một thuật

toán do IBM phát triển. Cuối năm 1976, DES được chọn làm chuẩn mã hóa dữ
liệu của Hoa Kỳ, sau đó được sử dụng rộng rãi trên tồn thế giới trong lĩnh vực
an tồn, bảo mật thơng tin trên mơi trường số.
Thuật tốn DES được thiết kế để mã hóa và giải mã các khối dữ liệu 64
bít với một khóa có độ dài 64 bít. Việc giải mã phải được thực hiện bởi một khóa
tương ứng như trong q trình mã hóa, mỗi khóa gồm 64 bít, trong đó 56 bít
được sử dụng để thực hiện mã hóa/giải mã trong thuật tốn, 8 bít cịn lại được
dùng để kiểm tra hoặc phát hiện lỗi.
Qúa trình mã hóa của DES được mơ tả trong hình phía dưới. Theo hình
1.5, ta thấy mã hóa DES được thực hiện qua 16 vịng. Thơng tin đầu vào là 64
14


bít, sẽ được chia thành 2 khối (block) trái (L) và phải (R). Sau đó từ khóa (56
bít) người ta tạo ra các khóa con (subkey) 48 bít gọi là . Hàm ở trên thực chất là
một hàm hoán vị.
Trong q trình mã hóa, dữ liệu đầu vào phải thực hiện q trình hốn vị
đầu (initial permutation) và hốn vị cuối (final permutation) sau vịng thứ 16.
Việc thực hiện hốn vị phục vụ cho q trình đưa thơng tin vào và lấy thông tin
ra từ các khối phần cứng, tạo điều kiện cho việc cài đặt phần cứng. Hàm cơ sở
cho phép đảm bảo tính bảo mật trong thuật tốn DES này.

Hình 1.5. Qúa trình mã hóa của DES
15


Việc thực hiện nhiều lần các bước lặp với tác dụng của là nhằm tăng cường tính
phi tuyến và tính khuếch tán đã có trong hàm Cấu trúc của vịng lặp DES thực
hiện theo cơng thức sau: . Trong đó là nửa trái và nửa phải lấy được của phép
biến đổi vịng lặp thứ .

DES có hai dạng biến thể là biến thể bội hai và biến thể bội ba. Đối với
biến thể bội hai có hàm mã hóa và giải mã như sau:
Hàm mã hóa
Hàm giải mã

Hình 1.6. Sơ đồ DES bội hai
Có sự lựa chọn cho khóa và sự lựa chọn cho khóa . Bởi vậy có sự lựa chọn cho
cặp khóa Cịn đối với DES biến thể bội ba thì hàm mã hóa và giải mã được biểu
diễn như sau:
Hàm mã hóa
Hàm giải mã

Hình 1.7. Sơ đồ DES bội ba
Với TDES việc tìm khóa vét cạn u cầu khoảng 2 112 phép tính TDES, bởi vậy
thực tế khó có thể thám mã thành cơng.
16


Thuật tốn AES

1.1.4.2.

Về mặt lý thuyết thì vẫn có những tấn cơng có thể bẻ khóa được DES, cho
nên rõ ràng cần phát triển giải pháp thay thế nó. Do đó mà Viện chuẩn quốc gia
Hoa Kỳ US NIST ra lời kêu gọi tìm kiếm chuẩn mã mới vào năm 1997. Sau đó
có 15 đề cử được chấp nhận vào tháng 6 năm 1998. Và được rút gọn còn 5 ứng
cử viên vào tháng 6 năm 1999. Đến tháng 10 năm 2000, mã Rijndael được chọn
làm chuẩn mã nâng cao và được xuất bản là chuẩn FIPS PUB 197 vào tháng 11
năm 2001.
Vậy dựa theo những yếu điểm của DES thì yêu cầu đối với AES phải là

mã khối đối xứng khóa riêng. Kích thước khối dữ liệu là 128 bit và độ dài khóa
tùy biến (có thể là 128, 192 hoặc 256 bit). Yêu cầu bắt buộc phải mạnh và nhanh
hơn Triple DES. Mã mới có cơ sở lý thuyết mạnh đề thời gian sống của chuẩn
khoảng 20-30 năm (cộng thêm thời gian lưu trữ). Khi đưa ra thành chuẩn thì
phải có cung cấp chi tiết thiết kế và đặc tả đầy đủ. Đảm bảo rằng chuẩn mã mới
cài đặt hiệu quả trên cả C và Java.
Trong AES các phép toán cộng và nhân được thực hiện trên các byte trong
trường hữu hạn


Phép cộng:






Trong đó:

Phép nhân: được thực hiện trên bằng cách nhân hai đa thức rút gọn
theo modulo của một đa thức bất khả quy . Trong AES đa thức bất khả
quy này là:

Vậy chuẩn mã nâng cao AES – Rijndael có những đặc trưng như là có 128 hoặc
192 hoặc 256 bit khóa và 128 bit khối dữ liệu. Dữ liệu được chia thành 4 nhóm –
4 byte, thực hiện các thao tác trên cả khối cho mỗi vòng. AES được thiết kế để
chống lại những tấn công đã biết và làm tăng tốc độ nén mã trên nhiều CPU. Có
10 hoặc 12 hoặc 14 vịng lặp tương ứng kích thước khóa (128,192, và 256),
trong đó mỗi vòng bao gồm: Phép thế byte (dùng một S box cho từng byte), dịch
17



hàng (hốn vị byte giữa nhóm/cột), trộn cột (sử dụng nhân ma trận của các cột),
cộng khóa vịng (XOR trạng thái dữ liệu với khóa vịng).
1.2.
1.2.1.

Tìm hiểu về mật mã hạng nhẹ
Giới thiệu về tính tốn khắp nơi (Ubiquitous comptuting)
Cùng với sự phát triển của khoa học cơng nghệ thì Ubiquitous computing

(viết tắt là Ubicomp) đã được ứng dụng rất rộng rãi trong xã hội hiện đại. Đây là
động lực cho sự phát triển của các thuật toán mật mã hạng nhẹ (lightweight
cryptography).
Ubicomp được hiểu là tính tốn được thực hiện mọi lúc, mọi nơi. Đặc
trưng của nó chính là nằm ở chỗ ubicomp có thể thực hiện tính tốn bởi một
thiết bị nào đó ở vị trí bất kỳ với bất kỳ định dạng nào. Có nhiều loại có thể thực
hiện việc tính tốn này như các loại máy tính xách tay, máy tính bảng (tabet),
thiết bị đầu cuối (terminal) hoặc điện thoại.
Công nghệ nền tảng hỗ trợ ubicomp bao gồm: Internet, phần mềm trung
gian (advanced middleway), hệ điều hành (OS), mã di động, cảm biến, vi xử lý,
các giao tiếp với người dùng và giao tiếp vào/ra mới, các mạng, các giao thức di
động, vị trí và định vị.
Hiện nay, công nghệ ubicomp được mở rộng thành nhiều chủ đề nghiên
cứu như tính tốn phân tán (distributed computing), tính tốn di động (mobile
computing), tính tốn theo ngữ cảnh (context-aware computing), các mạng cảm
biến (sensor networks), tương tác con người – máy tính (human – computer
interaction), và trí tuệ nhân tạo (artificial intelligence).
Tính đến thời điểm hiện tại thì có rất nhiều các thiết bị Ubicomp có cấu
hình cao (có lõi vi xử lý kép hoặc lõi tứ thậm chí là đã lên đến 16 lõi 32 luồng –

chip AMD Ryzen 9 5950X) giúp xử lý những thuật toán mật mã truyền thống
khơng mấy khó khăn. Tuy nhiên đối với các thiết bị như thẻ thông minh (smart
card), các thiết bị di động, thiết bị truyền tin sóng ngắn, bộ đàm, … đều sử dụng
các bộ vi điều khiển hoặc vi xử lý có khả năng tính tốn thấp, phục vụ cho
những cơng việc hay bài tốn chun dụng, đơn giản, đơn giản vì chúng có giá

18


thành sản xuất và tiêu thụ năng lượng thấp. Vì vậy có vấn đề phát sinh ở đây là
về bảo mật đối với các thiết bị có tài nguyên hạn chế.
1.2.2.

Mật mã hạng nhẹ
Giải pháp cho vấn đề nêu trên là thiết kế các thuật toán mật mã hạng nhẹ.

Lĩnh vực mật mã hạng nhẹ là một lĩnh vực hẹp liên quan tới công nghệ điện tử,
mật mã và khoa học máy tính và tập trung vào thiết kế, cài đặt hiệu quả các thủy
nguyên và giao thức mật mã. Vì có nhiều ràng buộc chặt chẽ mà mơ hình tấn
công mạnh – đặc biệt là các tấn công vật lý – nên nhu cầu về các giải pháp bảo
mật hạng nhẹ mà phù hợp cho lược đồ Ubicomp ngày càng được quan tâm.

Hình 1.8. Sự thỏa hiệp trong thiết kế mật mã hạng nhẹ
Để đảm bảo tính hiệu quả của các thuật toán mật mã hạng nhẹ cần phải
cân bằng giữa độ an toàn, giá thành và hiệu suất. Tức là cần có sự thỏa hiệp giữa
ba yếu tố này, nói cách khác chính là tùy thuộc vào mục đích sử dụng cuối cùng
mà chấp nhận giảm yêu cầu về tiêu chí độ an tồn hay hiệu suất hoặc giá thành.
Với các mã khối, độ dài khóa đưa ra sự thỏa hiệp giữa hiệu suất và độ an tồn.
Thơng thường, ta có thể tối ưu hóa được hai tiêu chí bất kỳ trong ba tiêu chí trên,
nhưng việc tối ưu hóa cả ba mục tiêu là việc vơ cùng khó. Bên cạnh đó, cài đặt

bằng phần cứng có hiệu suất cao cũng cần tính tới giải pháp để tránh các tấn
công kênh kề. Điều này thường dẫn tới các yêu cầu về diện tích cao, đồng nghĩa
với giá thành cao. Mặt khác, ta cũng có thể thiết kế các mã pháp an tồn và có
cài đặt phần cứng thấp nhưng hiệu suất sẽ rất thấp.

19


Nói chung là có ba cách tiếp cận để đưa ra một thủy nguyên mật mã cho
các ứng dụng hạng nhẹ. Thứ nhất là tối ưu hóa các cài đặt cho thuật tốn được
tin cậy và đã được chuẩn hóa (như AES, ECC,..). Thứ hai là thay đổi một chút
với một mã pháp được được tin cậy và đã được nghiên cứu. Và cuối cùng là
thiết kế các mã pháp với mục tiêu chi phí cài đặt phần cứng thấp.

20


CHƯƠNG 2. NGHIÊN CỨU VỀ MA TRẬN MDS VÀ MA TRẬN DỊCH
VÒNG CHO MẬT MÃ HẠNG NHẸ
2.1. Ma trận MDS (Maximum Distance Separable Matrix)
2.1.1. Một số lý thuyết về trường hữu hạn

Phép tốn đa thức thơng thường

2.1.1.1.

Trong đại số, một đa thức bậc được định nghĩa như sau :
Trong đó và là các hệ số. Và các phép cộng, trừ, nhân đa thức được định nghĩa
như sau :
Cho






Phép cộng:
Phép nhân: , với
Phép trừ:
Phép chia: Trong 3 phép toán trên, ta giả định , nếu và nếu . Phép chia
đa thức cho cũng tương tự như phép chia trên số nguyên, gồm một đa
thức thương và một đa thức dư có bậc nhỏ hơn .

Ví dụ: , thì :




2.1.1.2.

, đa thức phần thương là và đa thức phần dư
Đa thức định nghĩa trên tập

Trong phần này ta xem xét tập các đa thức có hệ số thuộc trường .
Cho





Phép cộng:

Phép trừ:
Phép nhân:
Phép chia: có đa thức thương là và đa thức dư là

Trong đó các phép tốn được định nghĩa trong tập
Ví dụ: Xét trường
21


,




2.1.1.3.

, và
Phép modulo đa thức

Tương tự như phép chia modulo trong tập số nguyên, một phép chia
modulo đa thức trong tập các hàm đa thức như sau:
Gỉa sử có hai đa thức và được định nghĩa trên trường thì phép chia modulo của
cho là: là phần dư của phép chia .
Ví dụ : Thuật tốn AES sử dụng đa thức được định nghĩa trên trường . Cũng
trên xét đa thức: .
Ta có :
Trường hữu hạn

2.1.1.4.


Tương tự như việc xây dựng dùng phép modulo với , là số nguyên tố.
Trong phần này ta sẽ xây dựng một tập các đa thức dùng phép modulo đa thức.
Chọn một đa thức là đa thức tối giản trên có bậc là . Tập bao gồm các đa
thức trên có bậc nhỏ hơn . Như vậy các đa thức thuộc có dạng :
Tập có phần tử.
Ví dụ: tập có 9 phần tử
Ta định nghĩa lại phép cộng và phép nhân đa thức như sau:



Phép cộng: tương tự như phép cộng trên
Phép nhân: tương tự như phép nhân trên và kết quả cuối cùng được
modulo với để bậc của kết quả nhỏ hơn .

Vì là đa thức tối giản nên tương tự như số học modulo, các phần tử trong tồn
tại phần tử nghịch đảo của phép nhân:
Do tồn tại phần tử nghịch đảo, nên ta có thể thực hiện được phép chia trong tập
như sau:

22


Lúc này thỏa mãn các tính chất của một trường hữu hạn và ta ký hiệu
trường hữu hạn này là (Cũng theo tên nhà bác học Galois). Trong mã hóa,
chúng ta chỉ quan tâm đến tức là trường đa thức hữu hạn trên trường .
Tính tốn trong

2.1.1.5.

Với việc biểu diễn một hàm đa thức thành một số nguyên n bit. Ta có thể

thực hiện phép cộng và phép nhân đa thức như sau:
1)

2)

Phép cộng:
Cho hai đa thức và
Phép cộng chính là phép hay dãy bit và .
Phép nhân: Liên quan đến phép modulo đa thức tối giản

Chúng ta sẽ xem xét phép nhân hai đa thức trong trường dùng đa thức
nguyên tố (dùng trong mã AES). Từ đó có thể tổng quát hóa cho trường bất kỳ.
Trước hết ta nhận xét rằng:
Vì )
Một đa thức trong có dạng:

Suy ra:
Nếu thì:

Nếu thì:

Nếu viết theo dãy bit thì điều đó nghĩa là:

Áp dụng lặp lại như vậy để tính với k bất kỳ, và từ đó tính được
Ví dụ: Tính
Phép nhân trên viết theo bit là

23



Vì vậy mà:

2.1.2.

Vậy
Tổng quan về ma trận MDS
Gọi là trường hữu hạn của 2 phần tử và là trường hữu hạn của phần tử.

Các phần tử của trường có thể được biểu diễn dưới dạng các đa thức có bậc nhỏ
hơn phần tử trên . Ví dụ, gọi thì có thể được biểu diễn như sau , với và là gốc
đa thức sinh của , hay nói cách khác thì chính là phần tử ngun thủy. Ngồi
cách biểu diễn đa thức ra thì cịn một cách biểu diễn khác là biểu diễn dưới dạng
các chữ số thập lục phân. Ở đây các chữ số thập lục phân dùng để biểu diễn hệ
số của các đa thức. Ví dụ: .
Ma trận MDS cung cấp các đặc tính khuếch tán có những ứng dụng hữu
ích trong mật mã. Ý tưởng này xuất phát từ lý thuyết mã hóa, đặc biệt là từ mã
phân tách khoảng cách tối đa (MDS). Dựa theo lý thuyết mã hóa, ta phát biểu
được một định lý quan trọng.
Định lý 1. Nếu C là một mã thì Trong đó là độ dài từ mã, là độ dài bản rõ cần
mã và là khoảng cách của mã C. Những mã mà thì được gọi là mã phân tách
khoảng cách tối đa, hoặc gọi ngắn gọn mà mã MDS. Dưới đây là những cách mô
tả khác của ma trận MDS (Nhận xét 1 và Nhận xét 2)
Nhận xét 1. Ma trận vuông A là một ma trận MDS khi và chỉ khi mọi ma trận
vng con của A đều có định thức .
Các thuộc tính MDS của một ma trận MDS A là bất biến với các phép toán
hàng cơ sở (hoặc cột cơ sở). Sự bất biến của các phép toán này bao gồm các
hoán vị của hàng (hoặc cột), nhân một hàng (hoặc cột) của một ma trận với một

24



phần tử vơ hướng khác khơng. Thuộc tính MDS cũng bất biến với chuyển vị của
ma trận. Từ những cơ sở trên mà ta suy ra được:
Nhận xét 2. Nếu A là một ma trận MDS trên thì A’ thu được bằng cách nhân
một hàng (hoặc cột) của A với c bất kỳ hoặc hoán vị các hàng (hoặc các cột) thì
ma trận A’ cũng là ma trận MDS. Ngồi ra nếu A là ma trận MDS thì cũng là ma
trận MDS. Và nếu A là một ma trận MDS trên thì c.A cũng là ma trận MDS với
c bất kỳ .
Hiện nay, nhiều mã khối sử dụng ma trận MDS như là một cách để kết
hợp đặc tính khuếch tán. Nói chung là cần hai mơ-đun khác nhau cho việc mã
hóa và giải mã. Các nhà nghiên cứu đã tìm ra một lớp SPN đặc biệt chỉ cần sử
dụng một mạng cho cả mã hóa và giải mã. Ý tưởng là dùng các ma trận MDS tự
nghịch đảo để kết hợp khuếch tán.
2.1.3. Vai trò của ma trận MDS
Các mã MDS đã được nghiên cứu từ lâu trong lý thuyết mã sửa sai và có
ứng dụng khơng chỉ trong lý thuyết mã mà cịn có vai trị quan trọng trong thiết
kế mã khối và các hàm băm. Nếu là mã tuyến tính với tham số , trong đó là độ
dài từ mã, là độ dài bản rõ cần mã và là khoảng cách tối thiểu của mã thì người
ta thấy rằng các tham số này sẽ thỏa mãn bất đẳng thức . Đó là giới hạn
Singleton. Mã MDS là mã tuyến tính , trong đó . Nghĩa là nó tối ưu về khoảng
cách mã. Ngoài ra, mã Reed - Solomon là trường hợp đặc biệt của mã MDS.
Serge Vaudenay là người đầu tiên giới thiệu các ma trận MDS đưa vào sử
dụng cho mã khối trong FSE’94. Số nhánh của tầng khuếch tán trong mã khối
cấu trúc SPN được coi như một tiêu chuẩn để thiết kế tầng khuếch tán. Đối với
mã khối, độ an toàn chống lại các tấn cơng mạnh (như tấn cơng tuyến tính, tấn
cơng lượng sai) phụ thuộc vào số nhánh của tầng khuếch tán. Số nhánh càng lớn
thì độ an tồn càng cao. Điều đáng nói ở đây là, số nhánh của tầng khuếch tán ,
trong đó là số đầu vào của tầng khuếch tán. Số nhánh này đạt giá trị lớn nhất
nếu ma trận MDS được dùng trong tầng khuếch tán. Điều thú vị là, nếu số nhánh
tuyến tính đạt giá trị lớn nhất thì số nhánh lượng sai cũng đồng thời đạt giá trị

lớn nhất.
25


×