Tải bản đầy đủ (.pdf) (59 trang)

XÂY DỰNG CHƯƠNG TRÌNH MÃ HÓA CÓ XÁC THỰC SỬ DỤNG THUẬT TOÁN AEGIS

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.14 MB, 59 trang )

ĐẠI HỌC BÁCH KHOA HÀ NỘI

LUẬN VĂN THẠC SĨ

XÂY DỰNG CHƯƠNG TRÌNH MÃ HĨA CĨ XÁC
THỰC SỬ DỤNG THUẬT TỐN AEGIS

Nguyen Thanh Long

Hà Nội - 2023

ii


MỤC LỤC

LỜI CẢM ƠN ............................ Lỗi! Thẻ đánh dấu không được xác định.
LỜI CAM ĐOAN ...................... Lỗi! Thẻ đánh dấu không được xác định.
MỤC LỤC .................................................................................................. iii
CÁC KÝ HIỆU, CHỮ VIẾT TẮT ............................................................... v
DANH MỤC BẢNG BIỂU ......................................................................... vi
DANH MỤC HÌNH VẼ ............................................................................. vii
LỜI MỞ ĐẦU .............................................................................................. 1
Chương 1
TỔNG QUAN VỀ MÃ HÓA CÓ XÁC THỰC
1.1. Hệ mật mã khối .................................................................................. 4
1.1.1. Định nghĩa về hệ mật mã khối ............................................................ 4
1.1.2. Phân loại mã khối ............................................................................... 4
1.2. Mã hóa có xác thực............................................................................. 6
1.2.1. Khái niệm mã hóa có xác thực ............................................................ 6
1.2.2. Các phương pháp mã hóa có xác thực .............................................. 11


1.2.3. Một số chế độ mã hóa có xác thực .................................................... 17
1.3.

Mã hóa có xác thực với dữ liệu liên kết ............................................ 20
Chương 2
THUẬT TỐN MÃ HĨA CĨ XÁC THỰC AEGIS

2.1. Thuật tốn mã hóa có xác thực AEGIS ................................................ 22
2.1.1. Giới thiệu về thuật toán AEGIS ........................................................ 22
2.1.2. Các ký hiệu....................................................................................... 22
2.1.3. AEGIS-128 ....................................................................................... 24
2.1.4. AEGIS-256 ....................................................................................... 27
2.1.5. AEGIS-128L. ................................................................................... 29
2.2. Sự an tồn của thuật tốn AEGIS ........................................................ 31
2.2.1. Mục tiêu an toàn của AEGIS ............................................................ 31
2.2.2. Một số đặc tính an tồn trong thiết kế của AEGIS ............................ 32

iii


Chương 3
XÂY DỰNG CHƯƠNG TRÌNH MÃ HĨA CĨ XÁC THỰC SỬ DỤNG
THUẬT TỐN AEGIS
3.1. Một số giải thuật chính trong chương trình mã hóa có xác thực ........... 36
3.1.1. Lưu đồ thuật tốn của q trình khởi tạo........................................... 37
3.1.2. Lưu đồ thuật tốn của q trình mã hóa ............................................ 39
3.1.3. Lưu đồ thuật tốn của q trình tạo thẻ xác thực............................... 41
3.1.4. Lưu đồ thuật tốn của q trình giải mã và xác thực ......................... 42
3.2. Kết quả xây dựng chương trình mã hóa có xác thực sử dụng thuật tốn
AEGIS .............................................................................................. 43

3.2.1. Kiểm tra tính đúng đắn của q trình thực thi thuật tốn AEGIS ...... 43
3.2.2. Kết quả thực thi chương trình mã hóa có xác thực sử dụng thuật toán
AEGIS .............................................................................................. 45
3.3. Đánh giá hiệu quả thực thi của chương trình mã hóa có xác thực ........ 46
KẾT LUẬN .................................................................................................. 0
TÀI LIỆU THAM KHẢO ............................................................................ 1

iv


CÁC KÝ HIỆU, CHỮ VIẾT TẮT
Viết tắt

Tiếng anh

Tiếng Việt

AE

Authenticated Encryption

Mã hóa có xác thực

AEAD

Authenticated Encryption with
Associated Data

Mã hóa có xác thực với
dữ liệu liên kết


CAESAR

Competition for Authenticated
Encryption: Security,

Cuộc thi mã hóa có xác
thực: an tồn, khả năng

Applicability, and Robustness

áp dụng và tính mạnh
mẽ

EtM

Encrypt then MAC

Mã hóa rồi xác thực

E&M

Encrypt and MAC

Mã hóa và xác thực

ICV

Integrity Check Vector


Véc-tơ kiểm tra tính
tồn vẹn

IND-CPA

IND-CCA

Indistinguishability under a

Khả năng không phân

Chonsen Plaintesxt Attack

biệt dưới tấn công lựa
chọn bản rõ

Indistinguishability under a
Chonsen Ciphertext Attack

Khả năng không phân
biệt dưới tấn cơng lựa
chọn bản mã

INT-CTXT

Intergrity of Ciphertext

Tính tồn vẹn của bản



INT-PTXT

Intergrity of Plaintext

Tính tồn vẹn của bản


MAC

Message Authentication Code

Mã xác thực thông báo

MtE

MAC then Encrypt

Xác thực rồi mã hóa

NIST
SE

National Institute of Standards and Viện tiêu chuẩn và cơng
Technology
nghệ quốc gia
Symmetric Encryption Schemes

Lược đồ mã hóa đối
xứng


SPN

Substitution-Permutation Network

v

Mạng thay thế và hoán
vị


DANH MỤC BẢNG BIỂU
Bảng 1. 1: Sự an toàn của các phương pháp mã hóa có xác thực .................. 16
Bảng 2. 1. Các tham số của thuật toán AEGIS.............................................. 31
Bảng 2. 2. Mục tiêu an tồn của thuật tốn AEGIS....................................... 31
Bảng 3. 1: Kết quả thực thi mã hóa của AEGIS, ACORN, AES-GCM-128.. 49
Bảng 3. 2: Kết quả thực thi giải mã của AEGIS, ACORN, AES-GCM-128 . 49

vi


DANH MỤC HÌNH VẼ
Hình 1.1: Mã khối .......................................................................................... 4
Hình 1.2: Sơ đồ mạng Feistel ......................................................................... 5
Hình 1.3: Mạng SPN ...................................................................................... 6
Hình 1.4: Mơ hình lược đồ mã hóa đối xứng .................................................. 8
Hình 1.5: Mã xác thực thơng báo ................................................................. 10
Hình 1.6: Véc-tơ kiểm tra tính tồn vẹn ....................................................... 11
Hình 1.7: Lược đồ mã hóa và xác thực ......................................................... 11
Hình 1.8: Lược đồ xác thực rồi mã hóa ........................................................ 13
Hình 1.9: Lược đồ mã hóa rồi xác thực ........................................................ 15

Hình 1.10: Chế độ IAPM.............................................................................. 17
Hình 1.11: Chế độ OCB ............................................................................... 18
Hình 1.12: Chế độ OMAC............................................................................ 19
Hình 1.13: Mã hóa có xác thực với dữ liệu liên kết ...................................... 21
Hình 2.1: Hàm cập nhật trạng thái của AEGIS-128 ...................................... 24
Hình 3.1: Sơ đồ cấu trúc chương trình mã hóa có xác thực........................... 36
Hình 3.2: Sơ đồ quá trình thực thi của thuật tốn AEGIS ............................. 37
Hình 3.3: Lưu đồ thuật tốn của q trình khởi tạo....................................... 38
Hình 3.4: Lưu đồ thuật tốn của q trình mã hóa ........................................ 40
Hình 3.5: Lưu đồ thuật tốn của q trình tạo thẻ xác thực ........................... 41
Hình 3.6: Giao diện chương trình mã hóa có xác thực .................................. 45
Hình 3.7: Kết quả sinh khóa thành cơng ....................................................... 45
Hình 3.8: Kết quả sinh véc-tơ khởi tạo thành cơng ....................................... 45
Hình 3.9: Kết quả mã hóa ............................................................................. 46
Hình 3.10: Kết quả giải mã thành cơng ........................................................ 46
Hình 3.11: Kết quả giải mã khơng thành cơng .............................................. 46
Hình 3.12: Kết quả mã hóa của thuật tốn ACORN ..................................... 47
Hình 3.13: Kết quả giải mã của thuật toán ACORN ..................................... 47
Hình 3.14: Kết quả mã hóa của thuật tốn AES-GCM-128 .......................... 48
Hình 3.15: Kết quả giải mã của thuật tốn AES-GCM-128 .......................... 48
Hình 3.16: So sánh thời gian thực hiện mã hóa của ba thuật tốn AEGIS,
ACORN, AES-GCM-128 ............................................................................. 50
Hình 3.17: So sánh thời gian thực hiện giải mã của ba thuật toán AEGIS,
ACORN, AES-GCM-128 ............................................................................. 50

vii


LỜI MỞ ĐẦU
1. Tính cấp thiết của đề tài nghiên cứu

Trong mơi trường cơng nghệ mạng máy tính hiện nay, các vấn đề về an
tồn thơng tin ngày càng trở nên cấp bách. Việc bảo đảm các thông tin chỉ có
thể được biết bởi những người có thẩm quyền là một yếu tố thiết yếu trong lĩnh
vực như an ninh, kinh tế, xã hội… Do vậy, vai trò của mật mã ngày càng trở
nên quan trọng trong việc đảm bảo các tính chất bí mật, xác thực và tồn vẹn
cho nội dung thơng tin.
Việc bảo đảm an tồn thơng tin thường địi hỏi đảm bảo cả tính bí mật
và xác thực. Có 2 cách tiếp cận để thực hiện điều này. Cách thứ nhất là mã hóa
thơng tin với các thuật tốn mã khối hoặc mã dịng để đảm bảo tính bí mật và
sử dụng các mã xác thực thơng báo MAC hoặc véc-tơ kiểm tra tính tồn vẹn
ICV để thực hiện xác thực. Ví dụ, ta có thể dùng mã khối AES ở chế độ CBC
để mã thông tin, sau đó dùng thuật tốn AES-CMAC (hoặc HMAC) để xác
thực. Cách tiếp cận này tương đối dễ tác động tới tính an tồn vì việc mã hóa
và xác thực có thể được phân tích gần như riêng biệt. Cách tiếp cận thứ hai là
xây dựng các thuật tốn mã hóa có xác thực nhằm kết hợp 2 q trình mã hóa
và xác thực trong một bước duy nhất, loại bỏ sự không cần thiết của một MAC
riêng biệt, cách tiếp cận này có lợi về hiệu suất trên các nền tảng tham chiếu
khác nhau như FPGA, vi điều khiển... Cách tiếp cận này đang là hướng đi mới
trong khoa học mật mã. Hiện nay, các nhà mật mã trên thế giới đang nghiên
cứu để phát triển các thuật toán mã hóa có xác thực. Viện tiêu chuẩn NIST đã
tổ chức cuộc thi CAESAR nhằm chọn ra chuẩn thuật toán mã hóa có xác thực.
Thuật tốn mã hóa có xác thực AEGIS là một ứng viên của cuộc thi này. AEGIS
là một trong 2 thuật tốn được chọn tại vịng cuối của cuộc thi CAESAR.
Xuất phát từ thực tiễn trên, em đã chọn đề tài “Xây dựng chương trình
mã hóa có xác thực sử dụng thuật toán AEGIS” làm đề tài đồ án tốt nghiệp
của mình. Việc nghiên cứu chi tiết về thuật tốn AEGIS và sự an tồn của nó
là cơ sở quan trọng để ứng dụng thuật toán này vào xây dựng chương trình mã
hóa có xác thực.
2. Tổng quan về tình hình nghiên cứu
Cuộc thi mật mã mới với tên gọi CAESAR được tổ chức nhằm tuyển

chọn các thuật tốn mã hóa có xác thực, đạt hiệu quả và độ an toàn cao nhất.

1


Cuộc thi CEASAR bắt đầu khởi động từ năm 2012, đến ngày 15/01/2013 cuộc
thi được chính thức thơng báo tại hội thảo Early Symmetric Crypto (Mondorfles - Bains, Luxemburg), cũng như thông báo rộng rãi trên các phương tiện
truyền thông. Một điểm thú vị là tên cuộc thi lần này trùng với tên hoàng đế La
Mã Julius Ceasar, người đã sáng chế ra mã pháp Ceasar - một trong các phương
pháp mã hóa đầu tiên của lồi người.
Kết thúc vịng 3, vào 03/2018, ban tổ chức đã thơng báo có 3 thuật tốn
tham gia được vào vịng 4 của cuộc thi CEASAR, trong đó có thuật tốn mã
hóa có xác thực AEGIS.
Ngày 20/3/2019, cuộc thi đã kết thúc với 2 thuật tốn được chọn là
ACORN và AEGIS.
Trong q trình thực hiện nghiên cứu, em đã tìm hiểu, xem xét kết quả
của một số nghiên cứu trước đó với mục đích phục vụ q trình hồn thiện
nghiên cứu của mình. Một số tài liệu chính đã nghiên cứu bao gồm:
- “Analysis of One-pass Block Cipher based authenticated encryption
schemes, 2015” của tác giả BinBin Di. Tài liệu này mô tả tổng quan về hệ mã
khối và đánh giá sự an toàn của các lược đồ mã hóa có xác thực dựa trên mã
khối.
- “Authenticated encryption: Relations among notions and analysis of
the generic composition paradigm, 2007” của tác giả Bellare và Namprempre.
Tài liệu này mơ tả cấu trúc chung của mã hóa có xác thực và đánh giá sự an
toàn của các phương thức trong mã hóa có xác thực.
- “AEGIS: A Fast Authenticated Encryption Algorithm (v1.1), 2016” của
tác giả Hongjun Wu và Bart Preneel. Tài liệu này mơ tả về thuật tốn AEGIS
gồm các hàm, các quá trình hoạt động và sự an tồn của AEGIS.
Ngồi ra em cịn tham khảo một số tài liệu khác có liên quan.

3. Mục tiêu nghiên cứu
Tìm hiểu về về mã hóa có xác thực, thuật tốn mã hóa có xác thực AEGIS
và xây dựng chương trình mã hóa có xác thực sử dụng thuật tốn AEGIS.
4. Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu: thuật tốn mã hóa có xác thực AEGIS.

2


- Phạm vi nghiên cứu: Đề tài nêu khái quát hệ mã khối, các vấn đề chung
về mã hóa có xác thực; thuật tốn mã hóa có xác thực AEGIS; xây dựng chương
trình mã hóa có xác thực sử dụng thuật toán AEGIS.
5. Phương pháp nghiên cứu
Đề tài sử dụng các phương pháp nghiên cứu như phương pháp thống kê,
phương pháp tổng hợp, phương pháp so sánh, phương pháp phân tích, kế thừa
một số kết quả nghiên cứu đã có, đồng thời thu thập thông tin, tài liệu để phục
vụ cho việc nghiên cứu.
6. Những đóng góp của đồ án
- Về lý thuyết: Đồ án trình bày các vấn đề về thuật tốn mã hóa có xác
thực như khái niệm, các phương pháp, một số chế độ mã hóa có xác thực và mã
hóa có xác thực với dữ liệu liên kết. Trình bày về các quá trình hoạt động, sự
an tồn của thuật tốn AEGIS.
- Về tính ứng dụng vào thực tiễn: Đồ án trình bày quá trình cài đặt thực
thi thuật tốn mã hóa có xác thực AEGIS, kiểm tra tính đúng đắn của q trình
cài đặt thuật tốn. Từ đó xây dựng chương trình mã hóa có xác thực sử dụng
thuật tốn AEGIS. Sau đó đánh giá hiệu suất thực thi của thuật toán AEGIS với
các thuật tốn mã hóa có xác thực khác.
7. Kết cấu của đồ án tốt nghiệp
Nội dung của đồ án tốt nghiệp gồm có 3 chương:
Chương 1: Tổng quan về mã hóa có xác thực

Chương này trình bày những kiến thức tổng quan về hệ mã khối và mã
hóa có xác thực bao gồm: tổng quan về hệ mã khối, khái niệm về mã hóa có
xác thực, các phương pháp mã hóa có xác thực, một số chế độ mã hóa có xác
thực và mã hóa có xác thực với dữ liệu liên kết.
Chương 2: Thuật toán mã hóa có xác thực AEGIS
Chương này trình bày về cấu trúc, quá trình hoạt động của các phiên bản
của thuật toán AEGIS và phân tích sự an tồn của thuật tốn AEGIS.
Chương 3: Xây dựng chương trình mã hóa có xác thực sử dụng thuật
toán AEGIS
Chương này trình bày về quá trình xây dựng module chương trình mã
hóa có xác thực sử dụng thuật tốn AEGIS. Kiểm tra tính đúng đắn của q
trình cài đặt thuật toán, đánh giá hiệu suất thực thi của thuật tốn AEGIS so với
hai thuật tốn mã hóa có xác thực khác là thuật toán ACORN và thuật toán
AES-GCM-128.
3


Chương 1
TỔNG QUAN VỀ MÃ HÓA CÓ XÁC THỰC
Chương này trình bày tổng quan về mã khối, mã hóa có xác thực và giới
thiệu về mã hóa có xác thực với dữ liệu liên kết.
1.1.

Hệ mật mã khối

1.1.1. Định nghĩa về hệ mật mã khối
Mã khối là một hàm mã hóa với bản rõ được chia thành các khối có độ
dài cố định và sau đó mã hóa các khối theo trình tự [4], như trong hình 1.1,
trong đó khối Pi là khối bản rõ thứ i của bản rõ; khối Ci là khối bản mã thứ i
của bản mã.

P1

K

E

P2

K

E

C1

C2

P3

K

E

C3

Hình 1.1: Mã khối
Mã khối được sử dụng để cung cấp tính bí mật và trong một số chế độ
có thể được sử dụng để tạo thành thuật toán MAC. Các q trình mã hóa và
giải mã diễn ra dưới tác động của khóa bí mật.
1.1.2. Phân loại mã khối
1.1.2.1. Mạng Feistel

Mạng Feistel là một mạng lặp lại phân chia khối bản rõ thành hai khối
có độ dài bằng nhau, với Li −1 (khối trái) và Ri −1 (khối phải), với i là vịng lặp [4].
Sau đó, hàm f được áp dụng cho khối phải Ri −1 và khóa vịng K i để tạo ra một
đầu ra; đầu ra của hàm f được XOR với khối trái Li −1 ; hai khối sau đó hốn đổi
để tạo ra Li trái và Ri phải mới (Hình 1.2). Qúa trình mã hóa là lặp lại một số
vòng cho mỗi khối. Việc giải mã chỉ đơn giản là đảo ngược lại quá trình mã
4


hóa. Chuẩn mã hóa dữ liệu (DES) là một ví dụ về mạng Feistel, có độ dài khối
là 64 bit và sử dụng độ dài khóa bí mật là 56 bit với 16 vòng.

Ri −1

L i −1

K

f

Li = Ri−1

Ri = Li−1  f (Ri−1, Ki )

Hình 1.2: Sơ đồ mạng Feistel
1.1.2.2. Mạng thay thế và hoán vị
Năm 1949, Shannon đưa ra ý tưởng mạng thay thế và hoán vị (SPN) là
sự kết hợp giữa phép thay thế và hoán vị với mục đích là cản trở việc thám mã
dựa vào các phân tích thống kê. Giả sử thám mã biết một số tính chất thống kê
của bản rõ như bảng phân bố tần suất của các chữ cái, bộ các chữ cái. Nếu các

đặc trưng thống kê này được phản ánh trong bản mã, thì thám mã sẽ có thể tìm
được khóa hoặc một phần khóa hoặc bản rõ. Với một bản mã lý tưởng đó thì
mọi đặc trưng thống kê đều độc lập với khóa bí mật được dùng, như vậy thám
mã sẽ khơng có cơ sở để tìm khóa.
Mạng SPN hoạt động trên tồn bộ trạng thái dữ liệu. Thực hiện chuyển đổi
trạng thái bằng cách sử dụng một lớp thay thế và theo sau là một lớp hoán vị.
Lớp thay thế: là một lớp phi tuyến gồm có các hộp-S với các hàm logic
vector thay thế cho một vector nhỏ (thường là  8 bít) của các bít đầu vào với
một vector nhỏ của các bít đầu ra khác (thường là  8 bít).
Lớp hốn vị: (P) là một sự chuyển đổi tuyến tính đến đầu ra của lớp thay
thế (gọi là lớp tuyến tính). Lớp tuyến tính đơn giản nhất là thực hiện hốn vị
bít cho các bít của trạng thái. Tuy nhiên có các lớp tuyến tính phức tạp thực
hiện phép nhân ma trận. Tại mỗi vịng, khóa vịng K (thu được từ khóa ban đầu
với một số thao tác đơn giản) được kết hợp bằng cách sử dụng một số thao tác
tính tốn đặc trưng, thường là phép cộng  (XOR).
5


Hình 1.3: Mạng SPN
1.2.

Mã hóa có xác thực

Các lược đồ mã hóa có xác thực AE bảo vệ cả tính bí mật và tính tồn
vẹn cho các thơng điệp được truyền qua mạng. Tính bí mật được đảm bảo bởi
thuật toán mã khối cơ bản. Các cơ chế MAC hoặc ICV được sử dụng để đảm
bảo tính tồn vẹn của thơng điệp.
1.2.1. Khái niệm mã hóa có xác thực
Mã hóa có xác thực là một dạng mã hóa đối xứng có mục tiêu bảo vệ
đồng thời cả tính bí mật, xác thực và toàn vẹn cho dữ liệu được truyền qua

mạng giữa hai bên liên lạc [3].
Mã hóa có xác thực được thiết kế xuất phát từ yêu cầu kết hợp giữa chế
độ bí mật và chế độ xác thực. Điều này đã gây được sự quan tâm của cộng đồng
khoa học mật mã thế giới. Đã có nhiều nghiên cứu dẫn đến sự ra đời một số chế
độ mã hóa có xác thực là: OCB, Key Wrap, CCM, EAX, và GCM. Các chế độ
này đã được chuẩn hóa trong ISO/IEC 19772:2009. Ngồi ra, mã hóa có xác
thực đã được đưa vào trong các giao thức ứng dụng thực tế như SSH, SSL,
IPSec.

6


Ngồi việc bảo vệ tính tồn vẹn và tính bí mật thơng tin, mã hóa có xác
thực có thể được dùng để chống lại các tấn công lựa chọn bản mã. Trong kiểu
tấn công này, mã thám sẽ cố gắng để đạt được một số lợi thế so với hệ mật (ví
dụ thơng tin về khóa bí mật) bằng cách chọn các bản mã, gửi nó tới người nhận
và phân tích kết quả giải mã. Các thuật tốn mã hóa có xác thực có thể nhận ra
các bản mã khơng phải từ đúng người gửi và từ chối các bản mã đó. Điều này
sẽ ngăn chặn các tấn cơng u cầu giải mã bất kỳ bản mã nào.
Trong lược đồ mã hóa có xác thực, người gửi mã hóa thơng báo với khóa
để cho ra bản mã và một thẻ xác thực. Quá trình giải mã được thực hiện bởi
người nhận có cùng khóa với người gửi dùng để giải mã bản mã cho ra thông
báo từ người gửi hoặc một cảnh báo chỉ ra rằng bản mã là không hợp lệ.
Một lược đồ mã hóa có xác thực có thể được tổng quát cấu trúc bằng việc
kết hợp một lược đồ mã hóa đối xứng SE để cung cấp bảo mật với một mã xác
thực thông báo - MAC hoặc Véc-tơ kiểm tra tính tồn vẹn - ICV để bảo đảm
tính tồn vẹn.
Lược đồ mã hóa đối xứng là bộ SE = (M,C ,K ,E ,D ) thỏa mãn các điều
kiện sau:
1. M là không gian thông báo bao gồm một tập hữu hạn các thơng báo

M có thể.
2.

C là không gian mã bao gồm một tập hữu hạn các bản mã C có thể.

3. K là khơng gian khóa bao gồm một tập hữu hạn các khóa K có thể.
4. Với mỗi khóa K  K có một quy tắc mã EK  E và một quy tắc giải
mã DK  D . Trong đó, mỗi EK : M → C và DK : C → M là các hàm mã hóa
đảm bảo DK ( EK (M )) = M với mọi thông báo M  M .
Trong các điều kiện trên thì điều kiện 4 là quan trọng nhất, điều kiện này
chỉ ra rằng, khi mã hóa một thông báo bằng hàm lập mã E K , thì ta có thể giải
mã nó bằng hàm giải mã DK . Đây là yêu cầu thông thường và bắt buộc của
lược đồ mã hóa đối xứng.

7


Theo mơ hình của lược đồ mã hóa đối xứng (hình 1.4), người gửi A tạo
một thơng báo M trong khơng gian thơng báo

M . Để mã hóa M, phải chọn

ngẫu nhiên một khóa K  K . Nếu khóa K đã được tạo bởi người gửi thì sau đó
khóa này phải được phân phối tới người nhận qua kênh an tồn. Nếu khóa K
được tạo bởi bên thứ ba tin cậy thì bên thứ ba này cũng phải phân phối tới cả
người gửi và người nhận qua kênh an tồn.
M’

Mã thám


Người gửi
A

M

Mã hóa
EK ( M ) = C

C

Kênh
truyền tin

K’

C

Giải mã

DK (C) = M

M

Người nhận
B

Kênh an tồn
K
Nguồn
khóa K


Hình 1.4: Mơ hình lược đồ mã hóa đối xứng
Với đầu vào là thơng báo M và khóa K, hàm lập mã EK tạo ra bản mã C
tương ứng: C = EK (M ) . Bản mã C được gửi tới cho người nhận B qua kênh
truyền tin (đây là kênh không an toàn).
Sau khi nhận được bản mã C từ kênh truyền tin, người nhận sẽ giải mã
bản mã C để khôi phục lại thông báo M qua hàm giải mã DK với khóa giải mã
K: M = DK (C ) .
Khi bản mã C được gửi cho người nhận B qua kênh truyền tin, do đây là
kênh khơng an tồn nên mã thám có thể chặn bắt được mà khơng có hạn chế.
Tuy nhiên, mã thám khơng biết khóa K nào trong khơng gian khóa đã được sử
dụng cũng như thơng báo M tương ứng với bản mã C đã bắt được. Vì vậy, mã
thám sẽ cố gắng để tìm ra thơng báo M hoặc khóa K hoặc cả thơng báo và khóa.
Với giả định là mã thám có hiểu biết đầy đủ về thuật toán mã và giải mã. Nếu
mã thám chỉ quan tâm đến một thông báo cụ thể thì mã thám sẽ chú trọng để
khám phá thơng báo M bằng cách tạo ra một giá trị ước lượng của thông báo

8


M’. Tuy nhiên, nếu mã thám quan tâm tới khả năng giải mã được các bản mã
tiếp theo mà cũng được mã bằng khóa K đã sử dụng, khi đó mã thám sẽ cố gắng
để khám phá khóa K bằng cách tạo ra một giá trị ước lượng của khóa K’.
Trong lược đồ mã hóa đối xứng, khóa mã và khóa giải mã là giống nhau
hoặc từ khóa này có thể tính tốn để tìm ra khóa kia và ngược lại. Vì vậy, thơng
thường chỉ phải phân phối khóa mã cho người gửi và người nhận. Hơn nữa,
khóa phải được giữ bí mật và chỉ được biết bởi người gửi và người nhận.
Mã xác thực thông báo là một cơ chế được sử dụng để xác thực tính tồn
vẹn của thông báo. Mã xác thực thông báo đảm bảo rằng dữ liệu nhận được là
chính xác như khi nó được gửi (tức là khơng bị sửa đổi, chèn, xóa hay phát lại).

Trong nhiều trường hợp, định danh của người gửi có thể được bảo vệ.
Lược đồ mã xác thực thơng báo MAC là bộ MA = (M , B ,K ,T ,V ) thỏa
mãn các điều kiện sau:
1.

M là không gian thông báo bao gồm một tập hợp các thông báo
M có thể.

2. B là khơng gian thẻ bao gồm tập hữu hạn các thẻ  có thể.
3. K là khơng gian khóa bao gồm một tập hữu hạn các khóa K có
thể.
4. Với mỗi khóa K  K có một quy tắc gắn thẻ T  T và một quy
tắc xác thực thẻ V  V . Trong đó, mỗi TK :

M →B

và VK :

M ,B → V là các hàm đảm bảo VK (K , M ,TK (M )) = v = 1 với
mọi thông báo M  M .
Để đảm bảo tính tồn vẹn cho thơng báo, người gửi sử dụng khóa bí mật
chung để tạo thẻ MAC tương ứng với thông báo, gắn thẻ MAC vào thông báo
và gửi cho người nhận. Thông thường độ dài thẻ nằm trong khoảng từ 32 đến
128 bit. Về phía bên nhận, bên nhận sẽ tính tốn thẻ xác thực MAC cho thông
báo đã nhận bằng cùng một hàm MAC và khóa bí mật, sau đó so sánh với giá
trị MAC nhận được từ bên gửi (Hình 1.5). Nếu chúng giống nhau, thì thơng
báo nhận được đảm bảo tính tồn vẹn. Ngược lại, thì thơng báo nhận được đã
bị thay đổi trong q trình gửi và thơng báo sẽ bị từ chối.

9



M
K

M

Thuật tốn
K
MAC

M

Thuật tốn
MAC

K

MAC
MAC

MAC

Người gửi

?
=

MAC


Người nhận

Hình 1.5: Mã xác thực thơng báo
Để một mã MAC được đánh giá là an toàn và hiệu quả, cần có tính chất
sau:
- Tính chất dễ tính tốn: với quy tắc gắn thẻ TK , một khóa bí mật K
và đầu vào M bất kì, TK (M ) là dễ tính tốn.
- Tính chất nén: với đầu vào M có độ dài tùy ý hữu hạn, qua quy tắc
gắn thẻ TK tạo thành một thẻ  có độ dài cố định.
- Tính chất kháng tính tốn: cho trước một hoặc nhiều cặp (Mi −  i )
, khơng thể tính tốn để tìm ra một cặp (M −  ) cho đầu vào mới

M  Mi .
Một cách tiếp cận khác để cung cấp sự đảm bảo tính tồn vẹn là kết hợp
một Véc-tơ kiểm tra tính tồn vẹn (ICV) vào cuối bản rõ trước khi khi mã hóa.
Để phương pháp này thành cơng thì phải phụ thuộc vào khả năng của mã khối
với bất kì sửa đổi nào trong bản mã thì sẽ làm ảnh hưởng đến các khối tiếp theo,
dẫn đến việc giải mã ICV bị ảnh hưởng. Khi bản mã được giải mã, người nhận
sẽ kiểm tra tính chính xác của ICV. Bất kì thay đổi nào đối với bản mã sẽ làm
quá trình giải mã các khối bản mã tiếp theo sẽ giải mã sai, dẫn đến việc giải mã
ICV khơng chính xác (Hình 1.6). Thơng báo có ICV khơng chính xác bị từ chối
bởi người nhận.

10


M

K


ICV

Y

E

ICV?

K

D

C

X

Người gửi

Kẻ tấn cơng

Người nhận

Hình 1.6: Véc-tơ kiểm tra tính tồn vẹn
Hiện nay, việc xây dựng các thuật tốn mã hóa có xác thực có sự an tồn
cao, khả năng triển khai dễ dàng trên nền tảng phần mềm cũng như phần cứng
đang là vấn đề được quan tâm của cộng đồng khoa học mật mã trên thế giới.
Xuất phát từ yêu cầu trên, Viện Tiêu chuẩn và Kỹ thuật NIST đã tổ chức cuộc
thi CAESAR – cuộc thi chọn ra chuẩn thuật tốn mã hóa có xác thực (tương tự
như cuộc thi chọn ra chuẩn mã hóa nâng cao AES). Cuộc thi CAESAR đã thu
hút sự tham gia của rất nhiều nhà mật mã trên thế giới. Đã có 57 ứng viên tham

gia vào cuộc thi này. Thuật toán mã hóa có xác thực AEGIS trình bày sau đây
là một ứng viên tại vòng chung kết của cuộc thi.
1.2.2. Các phương pháp mã hóa có xác thực
1.2.2.1. Mã hóa và xác thực (E&M)
Thơng báo M

Mã hóa
E

Khóa K

MAC

Thẻ xác thực

Bản mã C

Hình 1.7: Lược đồ mã hóa và xác thực

11


Lược đồ mã hóa có xác thực

AE = (K , E , D ) được xây dựng bằng cách

kết hợp lược đồ mã hóa đối xứng

SE với lược đồ mã hóa xác thực thơng báo


M A theo phương pháp mã hóa và xác thực (hình 1.7) như sau:
*. Thuật tốn tạo khóa K
$

- Ke ⎯⎯ K e ;
$

- Km ⎯⎯ K m ;
- Return Ke || Km .
*. Thuật toán mã hóa

E (Ke || Km , M )
- C '  E ( Ke , M );
-   T ( Km , M );
- C  C '||  ;
- Return C.

*. Thuật toán giải mã

D (Ke || Km , C)
- Phân tích C thành C '||  .
- M  D ( Ke , C ');
- v V

( Km , M , );

- Nếu v =1 thì return M, ngược lại return Fail.
Thẻ xác thực  được tạo ra từ thơng báo M. Thơng báo được mã hóa để tạo
ra bản mã C. Thẻ xác thực  và bản mã C được gửi cùng nhau tới nơi nhận. Tại nơi
nhận, người nhận sẽ giải mã bản mã để tìm ra thơng báo M. Sau đó xác minh thẻ 

với thông báo M vừa giải mã. Phương pháp này được sử dụng trong giao thức SSH.

12


1.2.2.2. Xác thực rồi mã hóa (MtE)
Thơng báo M

MAC

Khóa K

Thẻ xác thực

Thơng báo M

Mã hóa
E
Bản mã C

Hình 1.8: Lược đồ xác thực rồi mã hóa
Lược đồ mã hóa có xác thực AE = (K , E , D ) được xây dựng bằng cách
kết hợp lược đồ mã hóa đối xứng

SE

với lược đồ mã xác thực thông báo M A

bằng phương pháp xác thực rồi mã hóa như sau:
*. Thuật tốn tạo khóa K

$
- Ke ⎯
⎯Ke ;
$
- 𝐾𝑚 ⎯
⎯Km ;

- Return Ke || Km .
*. Thuật tốn mã hóa

E (Ke || Km , M )
-   T ( Km , M );
- C  E ( Ke , M ||  );
- Return C.

*. Thuật toán giải mã D ( Ke || Km , C)
- M '  D ( Ke , C);
- Phân tích M ' thành M ||  .
- v V

( Km , M , );

- Nếu v=1 thì trả về M, ngược lại trả về Fail.
Thẻ xác thực  được tạo ra dựa trên thông báo ban đầu, sau đó thực hiện
mã hóa cả thơng báo và thẻ xác thực này bằng một hàm mã hóa để tạo ra bản

13


mã. Bản mã (chứa cả thẻ xác thực  đã được mã hóa) được gửi tới nơi nhận.

Tại nơi nhận, việc giải mã và xác thực được thực hiện bằng cách giải mã để có
được thơng báo và thẻ xác thực, sau đó xác minh thẻ. Phương pháp này được
sử dụng trong giao thức bảo mật mạng SSL.
1.2.2.3. Mã hóa rồi xác thực (EtM)

= (K , E , D ) được xây dựng bằng cách
kết hợp lược đồ mã hóa đối xứng SE với lược đồ mã xác thực thông báo M A
Lược đồ mã hóa có xác thực AE

bằng phương pháp mã hóa rồi xác thực (Hình 1.4) như sau:
*. Thuật tốn tạo khóa K
$
- Ke ⎯
⎯Ke ;
$
- Km ⎯
⎯Km ;

- Return Ke || Km .
*. Thuật toán mã hóa

E (Ke || Km , M )
- C '  E ( Ke , M );
-  '  T ( Km , C ');
- C  C '||  ';
- Return C.

*. Thuật toán giải mã

D (Ke || Km , C)

- Phân tích C thành C '||  ' .
- v  V ( Km , C ', ');
- Nếu v=1 thì tiếp tục giải mã, ngược lại
return Fail.
- Return M  D ( Ke , C ') .

14


Thơng báo M

Mã hóa
E

Khóa K

MAC

Thẻ xác thực

Bản mã C

Hình 1.9: Lược đồ mã hóa rồi xác thực
Thơng báo M sẽ được mã hóa cho ra bản mã C’. Tiếp theo, thẻ xác thực
 được tạo ra từ bản mã C’. Bản mã và thẻ xác thực được gửi cùng nhau đến
nơi nhận để đảm bảo tính bí mật và xác thực. Việc giải mã và xác minh được
thực hiện bằng cách: đầu tiên xác minh thẻ, nếu thẻ  là chính xác sẽ tiếp tục
giải mã bản mã C’ để được thông báo là M, ngược lại dừng lại và thơng báo thẻ
khơng hợp lệ. Đây là phương pháp có thể đạt được sự an tồn cao nhất trong
mã hóa có xác thực. Việc xác minh thẻ có thể cho ta biết được tính tồn vẹn và

xác thực của bản mã mà không cần tới việc giải mã. Phương pháp này được sử
dụng trong giao thức bảo mật IPsec.
1.2.2.4. So sánh các phương pháp mã hóa có xác thực
*. Phương pháp mã hóa và xác thực
- Đảm bảo tính tồn vẹn của thơng báo.
- Khơng đảm bảo tính tồn vẹn trên các bản mã, vì thẻ xác thực
được tạo ra từ thơng báo.
- Nếu hệ mật có tính mềm dẻo (Melleable), nội dung của các bản
mã có thể thay đổi, nhưng khi giải mã, mã thám phải tìm ra thơng
báo là hợp lệ.
- Trên lý thuyết, việc tiết lộ thông tin về thơng báo trong thẻ xác
thực là có thể, nhưng điều này chỉ xảy ra với điều kiện là các thông
điệp rõ được lặp đi lặp lại và các dữ liệu được xác thực không bao
gồm một bộ đếm.

15


*. Phương pháp xác thực rồi mã hóa
- Đảm bảo tính tồn vẹn của thơng báo.
- Khơng đảm bảo tính tồn vẹn trên các bản mã, vì khơng thể biết
được liệu bản mã là giả mạo hay không cho đến khi thực hiện giải
mã.
- Nếu hệ mật có tính mềm dẻo, nó có thể tạo ra thơng báo hợp lệ với
một thẻ xác thực hợp lệ.
- Thẻ xác thực không thể cung cấp bất kỳ thông tin nào về thông
báo.
*. Phương pháp mã hóa rồi xác thực
- Đảm bảo tính tồn vẹn của thơng báo.
- Đảm bảo tính tồn vẹn của bản mã. Với thẻ xác thực, có thể suy

ra được liệu một bản mã là xác thực hoặc đã bị giả mạo.
- Nếu hệ mật có tính mềm dẻo, khơng cần phải q quan tâm vì thẻ
xác thực sẽ lọc ra các bản mã không hợp lệ này.
- Thẻ xác thực không cung cấp bất kỳ thông tin về thơng báo.
Tóm lại, mã hóa rồi xác thực là phương pháp lý tưởng nhất. Bất kỳ sự
sửa đổi bản mã mà có một thẻ xác thực khơng hợp lệ đều được lọc ra trước khi
giải mã. Thẻ xác thực không thể được sử dụng để suy ra bất cứ điều gì về thơng
báo. Cả 2 phương pháp mã hóa và xác thực và xác thực rồi mã hóa cung cấp
mức độ an tồn khác nhau, nhưng khơng phải là phương pháp hồn chỉnh như
mã hóa rồi xác thực.
Theo các chứng minh về sự an được trình bày trong tài liệu [3], có thể
đưa ra sự an tồn của các phương pháp mã hóa có xác thực như sau:
Bảng 1. 1: Sự an tồn của các phương pháp mã hóa có xác thực
Tính bí mật
INDINDPhương pháp
CPA
CCA
Mã hóa và xác Khơng
Khơng
thực
an tồn
an tồn
Xác thực rồi
Khơng
An tồn
mã hóa
an tồn
Mã hóa rồi
An tồn An tồn
xác thực


16

NMCPA
Khơng
an tồn
Khơng
an tồn

Tính tồn vẹn
INTINTPTXT
CTXT
Khơng
Khơng
an tồn
an tồn
Khơng
An tồn
an tồn

An toàn

An toàn

An toàn


Trong đó :
- IND-CPA: Khả năng khơng phân biệt dưới tấn công lựa chọn bản rõ.
- IND-CCA: Khả năng không phân biệt dưới tấn cơng lựa chọn bản

mã.
- NM-CPA: Tính không mềm dẻo dưới tấn công lựa chọn bản rõ.
- INT-PTXT: Tính tồn vẹn của bản rõ.
- INT-CTXT: Tính tồn vẹn của bản mã.
1.2.3. Một số chế độ mã hóa có xác thực
1.2.3.1. Chế độ IAPM
IAPM được coi là chế độ đầu tiên của mã hóa có xác thực và được phát
triển bởi Charanjit Jutla [4]. IAPM hoạt động dựa trên mã khối với yêu cầu 2
khóa K ' , K là độc lập và có cùng độ dài bit. Hình 1.10 mơ tả hoạt động của chế
độ IAPM. Một giá trị Nonce N được sử dụng để tạo ra các “offset” là chuỗi các
giá trị S0 , S1,

, SM . Các “offset” này sẽ được sử dụng cho quá trình mã hóa.

Q trình tạo ra các “offset” này sử dụng thuật tốn mã khối với khóa là K ' .
Thuật tốn mã hóa và giải mã IAPM thực hiện như sau:

Hình 1.10: Chế độ IAPM
 Q trình mã hóa và tạo thẻ xác thực:
Bước 1: Tạo Véc-tơ khởi tạo
- Mã hóa N với khóa K ' tạo giá trị

Vi = eK ' ( N + i + 1)

với 0  i  u + 1 .

- Sử dụng giá trị Vi tạo các véc-tơ ngẫu nhiên Si = Si −1  Vi với 0  i  u + 1
, S−1 = 0 .

17



Bước 2: Mã hóa/tạo thẻ xác thực
- Mã hóa từng khối thông báo: Ci = eK ( Pi  Si )  Si với 0  i  u .
Tạo thẻ xác thực T = eK ( Su +1  ( P1  ...  Pu ))  S0 .

-

- Đầu ra là bản mã xác thực C1 ,..., Cu T .
 Quá trình giải mã và xác thực thẻ:
- Tạo véc-tơ khởi tạo S i như bên gửi.
- Giải mã ra bản rõ P1 , P2 ,..., Pu từ bản mã qua hàm giải mã
Pi = d K (Ci  Si )  Si với 0  i  u .

- Tính thẻ

T ' = eK (Su +1  ( P1  ...  Pu )  S0

và so sánh với thẻ T nhận được

từ bên gửi. Nếu T ' = T thì thơng báo hợp lệ, ngược lại thơng báo
khơng hợp lệ.
1.2.3.2. Chế độ OCB
Chế độ mã hóa OCB được xây dựng dựa trên chế độ IAPM nhưng có
một số đặc điểm khác, được đề xuất bởi Rogaway, Bellare, Black và Krovetz
[4]. Chế độ OCB chỉ sử dụng một khóa duy nhất cho việc tính tốn “offset” và
q trình mã hóa thơng báo. Hình 2.11 mơ tả hoạt động của chế độ OCB.

Hình 1.11: Chế độ OCB
Trong đó:


L = eK (0n )

, S1 = L  W , Si = Si −1  L  ntz (i) với i  2

 Q trình mã hóa và tạo thẻ xác thực:
- Tính giá trị W = eK ( N  L) và S1 ,...,Su .
- Với 1  i  u −1 thự hiện mã hóa Ci = eK ( Pi  Si )  Si .

18


- Mặt nạ khối cuối cùng.

Zu = eK (len( Pu )  L  x −1  Su ) ,

trong đó x là một

hằng số trên GF (2n ) , Cu là Pu bit đầu của Z u XOR với Pu .
- Tạo thẻ xác thực T. T là  bit đầu của eK ( P1   Pu −1  Cu 0*  Zu  Su )
- Bản mã được tạo ra: C = C1 , C2 ,..., Cu T .
 Quá trình giải mã và xác thực thẻ:
- Tách bản mã thành C1...Cu và T .
- Tính giá trị khởi tạo W = eK ( N  L) và S1 ,..., Su .
- Giải mã các khối 1  i  u −1 : Pi = d K (Ci  Si )  Si .
- Đối với khối bản mã cuối cùng thì tính

Zu = eK (len(Cu )  L  x −1  Su ) ; Pu

là Cu bit đầu của Z u XOR với Cu .

- Xác

thực

thẻ.

Tính

T'

eK ( P1   Pu −1  Cu 0*  Zu  (Su ))





bit

đầu

tiên

của

nếu T = T ' thì P = P1 ,..., Pu , ngược lại

thông báo bị từ chối.
1.2.3.3. Chế độ OMAC
Chế độ OMAC hay còn gọi là CBC MAC một khóa, được đề xuất bởi
Iwata và Kurosawa, là một biến thể của CBC MAC [4]. Trong đó CBC-MAC

chỉ bảo mật cho các thơng báo có độ dài cố định, phải là bộ số của độ dài khối,
OMAC cung cấp bảo mật cho các thơng báo có độ dài thay đổi. OAMC chỉ
dùng một khóa so với CBC MAC. OMAC được xem là một biến thể thay thế
CBC MAC chỉ với một khóa. Hình 2.12 dưới đây là sơ đồ của OMAC.

Hình 1.12: Chế độ OMAC
 Quá trình mã hóa và tạo thẻ xác thực

19


×