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

Nghiên Cứu Thuật Toán Mã Hóa Có Xác Thực DEOXYS-II (Luận Văn Thạc Sĩ)

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.51 MB, 66 trang )

Viện Công Nghệ Thông Tin Và Truyền
Thông
ĐẠI HỌC BÁCH KHOA HÀ NỘI

Luận Văn Thạc Sĩ

Nghiên Cứu Thuật Tốn Mã Hóa
Có Xác Thực DEOXYS-II
Nguyen Thanh Long

Ha Noi, 2023


LỜI MỞ ĐẦU
1. Tính cấp thiết của đề tài
Trong mơi trường mạng máy tính hiện nay, vấn đề bảo mật trong
truyền nhận thông tin là một yêu cầu rất quan trọng trong các lĩnh vực của đời
sống xã hội. Thông tin được truyền phải đảm bảo chỉ có thể được biết bởi
người có thẩm quyền và xác minh đúng người gửi, người nhận. Do vậy, ứng
dụng của các thuật toán mật mã càng trở nên quan trọng trong việc cung cấp
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.
Với các thuật tốn mã hóa thì mật mã khóa đối xứng thường được áp
dụng để cung cấp tính bí mật và tồn vẹn dữ liệu, sau đó sử dụng mã xác thực
thơng báo MAC để đem lại tính 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. Phương pháp này tác động tới tính an tồn vì q trình
mã hóa và xác thực có thể được phân tích gần như riêng biệt. Chính vì thế,
hướng đi mới là xây dựng các lược đồ mã hóa có xác thực (AE) và các lược
đồ mã hóa có xác thực với dữ liệu liên kết (AEAD). Dữ liệu liên kết này là
loại dữ liệu đi kèm nội dung thông báo sẽ khơng cần phải mã hóa nhưng sẽ
được xác thực trong khi truyền. Để đáp ứng yêu cầu trên, Viện tiêu chuẩn và


công nghệ quốc gia Hoa Kỳ NIST đã tổ chức cuộc thi về mã hóa có xác thực
CAESAR (Competition for Authenticated Encryption: Security,
Applicability, and Robustness) nhằm chọn ra thuật tốn mã hóa có xác thực
tốt nhất đảm bảo các tính năng an tồn, khả năng áp dụng và tính mạnh mẽ,
đồng thời có lợi thế hơn AES-GCM. Thuật tốn mã hóa có xác thực
DEOXYS-II là một trong 57 ứng viên của cuộc thi này và là một trong 15
thuật tốn được lựa chọn vào vịng 3 của cuộc thi.
Xuất phát từ các yêu cầu trên, em đã chọn đề tài “Nghiên cứu thuật
tốn mã hóa có xác thực DEOXYS-II” làm đồ án tốt nghiệp. Việc nghiên
cứu chi tiết về thuật toán DEOXYS-II và các đặc trưng an tồn của nó là cơ
sở quan trọng để ứng dụng thuật tốn này vào thực tế.
2. Tổng quan về tình hình nghiên cứu
Ngày 12/1/2013 cuộc thi CAESAR được khai mạc tại Luxembourg.
Cuộc thi đã gây được sự chú ý của cộng đồng khoa học mật mã thế giới. Các


nhà mật mã học đã gửi nhiều cơng trình nghiên cứu để tham gia cuộc thi.
Ngày 15/12/2017, kết quả của cuộc thi sẽ được cơng bố.
Thuật tốn DEOXYS - II của các tác giả Jérémy Jean, Ivica Nikolic và
Thomas Peyrin là một ứng viên tại vòng chung kết của cuộc thi CAESAR.
Thuật toán được giới thiệu lần đầu tiên vào 03/2014. Trong thời gian qua, các
nhà mật mã trên thế giới đã có nhiều cơng trình nghiên cứu về thuật tốn, sự
an tồn và các tấn cơng lên DEOXYS - II.
Trong quá trình thực hiện đồ án tốt nghiệp, 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 đồ án của mình. Một số tài liệu chính đã nghiên cứu bao gồm:
- “Authenticated encryption: Relations among notions and analysis of
the generic composition paradigm, 2007” của tác giả Bellare và Namprempre
[2]. 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 tồn của các phương thức trong mã hóa có xác thực.

- “DEOXYS v1.41, 2016” của nhóm tác giả J´er´emy Jean, Ivica
Nikoli´c, Thomas Peyrin, Yannick Seurin [14]. Tài liệu này mơ tả về thuật
tốn DEOXYS – II và sự an tồn của thuật tốn.
- “Counter-in-Tweak: Authenticated Encryption Modes for Tweakable
Block Ciphers, 2015” của hai tác giả Thomas Peyrin and Yannick Seurin [3].
Tài liệu này mô tả về chế độ hoạt động của hệ mã khối TBC.
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 thuật tốn mã hóa có xác thực DEOXYS-II.
- Cài đặt chương trình mơ phỏng thuật toán DEOXYS-II.
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 DEOXYS-II.
- Phạm vi nghiên cứu: đồ án nghiên cứu 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 DEOXYS-II; cài đặt mơ phỏng thuật
tốn mã hóa có xác thực DEOXYS-II.
5. Phương pháp nghiên cứu


- Nghiên cứu, tài liệu liên quan để thu thập thông tin về cơ sở lý thuyết
từ nhiều nguồn (tài liệu, sách giáo trình, Internet…).
- Tổng hợp các kết quả nghiên cứu để lựa chọn cách tiếp cận phù hợp
với nội dung 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ấu trúc chung của mã hóa có xác thực. Trình bày q
trình hoạt động, sự an tồn của thuật tốn DEOXYS-II.
- Về tính ứng dụng: Đồ án trình bày q trình cài đặt chương trình thực
thi thuật tốn mã hóa có xác thực DEOXYS-II.
6. Bố cục của đồ án
Nội dung đồ án tốt nghiệp gồm 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 về mã hóa có xác thực, mã hóa có xác thực với
dữ liệu liên kết, một số chế độ mã hóa có xác thực.
Chương 2: Thuật tốn mã hóa có xác thực DEOXYS-II.
Chương này trình bày cụ thể về các đặc điểm, mục tiêu an tồn, phân
tích tính an tồn, tính năng, hiệu suất… của thuật tốn mã hóa có xác thực
DEOXYS-II.
Chương 3: Cài đặt chương trình mơ phỏng thuật tốn mã hóa có
xác thực DEOXYS-II.
Trình bày q trình cài đặt chương trình thực thi thuật tốn mã hóa có
xác thực DEOXYS-II và hiệu suất thực thi của thuật toán.
Đồ án tốt nghiệp này được hoàn thành tại trường Học viện Kỹ thuật
mật mã. Có được kết quả này em một lần nữa chân thành cảm ơn thầy giáo
TS. Bùi Đức Trình và ThS. Đinh Tiến Thành là người đã trực tiếp hướng dẫn,
đưa ra những gợi ý có giá trị về mặt khoa học và thực tiễn, giúp em hoàn
thành bản đồ án và em xin gửi lời cảm ơn tới các thầy cô trong bộ môn đã
giúp đỡ em trong suốt thời gian em học tập tại trường cũng như trong quá
trình làm đồ án tốt nghiệp. Trong quá trình làm đồ án, mặc dù đã rất cố gắng


nhưng bản đồ án vẫn cịn một số sai sót rất mong các thầy cơ và bạn bè góp ý
kiến.


CHƯƠNG 1
TỔNG QUAN VỀ MÃ HÓA CÓ XÁC THỰC
Chương này của đồ án trình bày về khái niệm, cấu trúc chung của lược
đồ mã hóa có xác thực, giới thiệu về mã hóa có xác thực với dữ liệu liên kết
và phân tích một số chế độ mã hóa có xác thực.
1.1. Mã hóa có xác thực

1.1.1. Khái niệm mã hóa có xác thực
Thuật ngữ mã hóa có xác thực để chỉ một biến đổi dựa trên khóa chia sẻ
với mục tiêu là cung cấp cả tính bí mật và tính xác thực của dữ liệu được
đóng gói. Trong một lược đồ như vậy, người gửi sẽ sử dụng một hàm mã hóa
để biến đổi một bản rõ thành một bản mã với khóa đã chia sẻ, và người nhận
sẽ sử dụng hàm giải mã để biến đổi bản mã trở về bản rõ ban đầu với khóa đã
chia sẻ hoặc cho ra một kí hiệu đặc biệt cho biết bản mã không hợp lệ hoặc
không xác thực [2].
Mục tiêu của mã hóa đối xứng thường là cung cấp tính bí mật. Một
lược đồ mã hóa có xác thực đơn giản là một lược đồ mã hóa đối xứng đáp ứng
các mục tiêu về tính bí mật và xác thực.
Một lược đồ mã hóa có xác thực có thể được tổng quát bằng việc kết
hợp một lược đồ mã hóa đối xứng - SE với một mã xác thực thông báo –
MAC.
Cấu trúc của lược đồ mã hóa đối xứng: Một lược đồ mã hóa đối xứng

SE = (K , E , D ) bao gồm ba thuật toán. Thuật tốn tạo khóa ngẫu nhiên K với
mỗi khóa

K K . Thuật tốn mã hóa E với quy tắc mã hóa EK E , thuật tốn

này lấy một khóa K và một bản rõ M để tạo ra một bản mã C. Thuật toán giải
mã D với quy tắc giải mã

DK D , thuật tốn này lấy một khóa K và một bản

mã C để tạo lại một bản rõ tương ứng hoặc biểu tượng ⊥;

M  D (K , C) .


Cấu trúc của mã xác thực thông báo MAC: Một mã xác thực thông báo

MA = (K ,T ,V ) bao gồm ba thuật tốn. Thuật tốn tạo khóa ngẫu nhiên
với mỗi khóa

K K . Thuật tốn gắn thẻ

K

T với quy tắc gắn thẻ T T . Lấy

khóa K và một thông báo M để trả về một thẻ τ. Thuật toán xác minh V với


quy tắc xác thực thẻ V V . Lấy khóa K, một thông báo M, và một thẻ τ cho
M để trả về một giá trị v. Yêu cầuV

= ( K , M ,T (K,M)) = 1 với xác suất cho

tất cả M 0,1 * , trong đó xác suất vượt quá sự lựa chọn của K và giá trị T .
Đối với tất cả K, τ, có

V (K,M, ) = 0 nếu M = ⊥. Một lược đồ được gọi là

mã xác thực thơng báo (MAC) nếu thuật tốn gắn thẻ là xác định, không trạng
thái và

V (K,M, ) trả về 1 khi và chỉ khi  =T ( K , M ) .

Hiện nay việc xây dựng các thuật tốn, các chế độ mã hóa có xác thực

có sự an toà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 cộng đồng khoa học mật mã trên thế giới
quan tâm mạnh mẽ. 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, chế độ mã hóa có xác thực. Thuật tốn mã
hóa có xác thực DEOXYS-II trình bày ở chương 2 là một ứng viên tại vòng
chung kết của cuộc thi này.
1.1.2. Các phương pháp mã hóa có xác thực
1.1.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. 1. Lược đồ mã hóa và xác thực
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
thực thơng báo

MA = (K m ,T ,V )

sau:
*. Thuật tốn tạo khóa K

-

$
⎯Ke ;
Ke ⎯

SE = (K e ,E ,D )

với Lược đồ mã xác

theo phương pháp mã hóa và xác thực như


-

$
⎯Km ;
Km ⎯

- Return

Ke | | Km .

*. Thuật toán mã hóa

E (K

e

- C'E


( Ke , M );

- T

( Km , M );

-

| | Km , M )

C  C ' | | ;

- Return C.
*. Thuật toán giải mã D
- Phân tích C thành

( Ke | | Km , C)

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.
Phương pháp mã hóa và xác thực cung cấp tính tồn vẹn của bản rõ. Nó
thừa hưởng tính tồn vẹn của MAC một cách trực tiếp, khơng có sự suy giảm
về tính bí mật. Điều này độc lập với lược đồ mã hóa đối xứng: cho dù lược đồ
mã hóa an tồn hay khơng khơng ảnh hưởng đến tính tồn vẹn của lược đồ mã
hóa có xác thực.
1.1.2.2. Xác thực rồi mã hóa (MtE)


Thơng báo M

Khóa K

MAC

Thơng báo M

Thẻ xác thực

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


Hình 1. 2. 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
thơng báo

MA = (Km ,T ,V )

* Thuật tốn tạo khóa K
Ke

$
⎯
⎯Ke ;

-

Km

$
⎯
⎯Km ;

- Return

Ke | | Km .


* Thuật tốn mã hóa

E (K

e

-  T

( Km , M );

- CE

( Ke , M | |  );

| | Km , 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
- v

V (Km , M , );

với lược đồ xác thực

bằng phương pháp xác thực rồi mã hóa như


sau:

-

SE = (K e ,E ,D )

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 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, quá trình 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.
Phương pháp xác thực rồi mã hóa cung cấp tính tồn vẹn của bản rõ và

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


1.1.2.3. Mã hóa rồi xác thực (EtM)
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. 3. Lược đồ mã hóa rồi xác thực
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

MA = (Km ,T ,V )

thực thông báo

SE = (K e ,E ,D )


với lược đồ mã xác

bằng phương pháp mã hóa rồi xác thực

như sau:
* Thuật tốn tạo khóa K
-

Ke

$
⎯
⎯Ke ;

-

Km

$
⎯
⎯Km ;

- Return

Ke | | Km .

* Thuật tốn mã hóa
- C'E
-  'T
-


E (K

e

| | Km , M )

( Ke , M );

( Km , C ');

C  C ' | |  ';

- Return C.
* Thuật toán giải mã D

( Ke | | Km , C)

- Phân tích C thành
- v

C ' | | ' .

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 ') .




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. Quá trình giải mã và xác thực

đượ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 giải mã. Phương pháp
này được sử dụng trong giao thức bảo mật IPsec.
1.1.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 (E&M)
- Đả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.
* Phương pháp xác thực rồi mã hóa (MtE)
- Đả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 (EtM)


- Đả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 gì về thơng

báo.
Như vậy, có thể thấy phương pháp mã hóa rồi xác thực (EtM) là
phương pháp lý tưởng nhất. Bất kỳ sự sửa đổi bản mã nào 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 tồn đượ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ư Bảng 1.1
Bảng 1. 1. Sự an toàn của phương pháp mã hóa có xác thực
Tính bí mật

Tính tồn vẹn

IND-

IND-

NM-

INT-

INT-

CPA

CCA

CPA

PTXT

CTXT

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


Khơng
an tồn

Khơng
an tồn

Khơng
an tồn

An tồn

Khơng
an tồn

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

An tồn

Khơng

Khơng

an tồn

an tồn

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

An tồn


An tồn

An tồn

Phương pháp

An tồn
An tồn

Khơng
an tồn
An tồ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.1.3. Mã hóa có xác thực với dữ liệu liên kết
Mã hóa có xác thực với dữ liệu liên kết AEAD là một lược đồ mã hố
cung cấp cả tính bí mật và tính xác thực [9, 11]. Là phần mở rộng của mã hóa
có xác thực với phần dữ liệu liên kết không được mã hóa mà chỉ có chức năng
bảo tồn tính tồn vẹn và xác thực của thông báo nhằm ngăn chặn các gói tin giả
mạo.
Dữ liệu liên kết thơng thường chứa các thông tin như sau:
- Định danh phiên liên lạc hoặc liên kết bảo mật.
- Địa chỉ nguồn và địa chỉ đích của thơng báo.

- Số thứ tự và các thơng tin khác được gắn thêm.
Thơng tin này có thể được truyền đi dưới dạng rõ, nhưng nội dung của
nó vẫn phải được đảm bảo toàn vẹn.
Dữ liệu đầu vào của lược đồ AEAD bao gồm thông báo là phần thông
tin cần gửi, phần thông tin này yêu cầu phải được đảm bảo bí mật và xác
thực; phần dữ liệu liên kết – Associated Data cần được xác thực; giá trị Nonce
ngẫu nhiên, nó thường là duy nhất đối với mỗi thơng báo, nó có thể tùy biến
gửi hoặc khơng khi truyền bản mã từ nơi gửi đến nơi nhận; phần cuối cùng là
khóa bí mật. Khóa bí mật khơng truyền cùng với bản mã, nó được phân phối
trước tới người sử dụng.
Thơng báo M được mã hóa qua lược đồ AEAD tạo bản mã xác thực
gồm một bản mã C và một thẻ xác thực  . Phần dữ liệu liên kết AD được
gửi cùng với bản mã xác thực trên được truyền dưới dạng rõ. Ba phần
( AD || C ||  )

được truyền tới người nhận B. B sẽ tiến hành giải mã thơng báo,

xác thực với khóa bí mật được phân phối trước. Kết quả thu được là M’. Nếu
q trình xác thực được thơng qua thì M’ được chấp nhận là gửi từ chính
người gửi A, ngược lại nếu xác thực thất bại thì xác định thông báo không
phải được gửi từ A.


Chi tiết lược đồ mã hóa có xác thực với dữ liệu liên kết được thể hiện
trong Hình 1.4

Người gửi A
Dữ liệu liên kết

Truyền



Giá trị
Nonce

Thơng báo

Khóa bí mật

Lược đồ mã hóa
AEAD

Bản mã

Thẻ xác thực

Lược đồ giải mã
AEAD

Thơng báo

Hoặc Giải mã thất bại

Người nhận B
Hình 1. 4. Mã hóa có xác thực với dữ liệu liên kết
1.2. Một số chế độ mã hóa có xác thực
1.2.1. Chế độ OCB
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 [4]. Tính tồn vẹn của thơng báo được xác
thực qua thẻ xác thực  . Một giá trị Nonce N duy nhất được sử dụng cho mỗi

thông báo. Với mỗi giá trị N, một mã khối được sử dụng để tạo ra giá trị trung
gian

R = EK ( N  L)

trong đó L = EK (0n ) . Thông báo M được chia thành m


khối M1, M 2 , , M m . Sử dụng mã Gray  , L, R để tính các “offset”

Zi =  i  L  R với 1  i  m . Thuật toán của chế độ OCB thực hiện như sau:
M1

M m −1

M2

Mm
Checksum

len

N



L




Z1



Z2



Z m −1



L  x −1



Zm



Xm
EK

R

EK



EK


Z1

C1


C2

…..

Z2

EK

EK



Z m −1

Cm −1



EK

Ym

Cm


Lấy t bit



Hình 1. 5. Chế độ OCB
*. Thuật tốn mã hóa:
- Đầu vào: Giá trị Nonce N, Khóa K, Thơng báo M được chia thành m
phần:

M1, M 2 , , M m .

- Đầu ra: Bản mã xác thực.
- Thuật toán:
L  EK (0n );

R  EK ( N  L);

Zi   i  L  R;
for 1  i  m − 1 do Ci  EK (M i  Zi )  Zi ;
for 1  i  m do

X m  len( M m )  L  x − 1  Z m ;

Ym  EK ( X m );
Cm  Ym  M m ;
Checksum  M1   M m−1  Cm  Ym ;

 = EK ( C h ecks u m  Z m ) ; (lấy  bit đầu tiên)



Return C  ( N C1,

, Cm  ) .

*. Thuật tốn giải mã:
- Đầu vào: khóa K, Bản mã xác thực C.
- Đầu ra: Thơng báo M.
- Thuật tốn: Chia C thành các phần

N ;C1, , Cm;

L  EK (0n );

R  EK ( N  L);
for 1  i  m do Zi   i  L  R;
for 1  i  m − 1 do M i = EK− 1 (Ci  Zi )  Zi ;

X m  len(Cm )  L  x − 1  Z m ;

Ym  EK ( X m );

M m  Ym  Cm ;
Checksum  M1   M m−1  Cm  Ym ;
 = EK ( Checksum  Z m ) ; (lấy  bit đầu tiên)
If    ' return True
else return False.
1.2.2. Chế độ OCB3
Tổng quát: Mã khối là một thuật tốn xác định E:
trong đó


K

K

× {0,1}𝑛 → {0,1}𝑛

là tập hợp hữu hạn và n ≥ 1 là một số, không gian khóa và độ dài

khối. Với yêu cầu 𝐸𝐾 (·) = E(K, ·) là một hoán vị cho tất cả K ∈

K . Đặt D =

𝐸 −1 là ánh xạ từ  × {0,1}𝑛 đến {0,1}𝑛 được xác định bởi DK(Y) = D(K, Y) là
điểm X duy nhất sao cho EK(X) = Y [10, 12].
Một lược đồ mã hóa xác thực (dựa trên nonce, với dữ liệu được liên
kết) bao gồm một bộ ba П =

(K , ,D ) . Khơng gian khóa K

đặc biệt, khơng trống. Thuật tốn mã hóa



là một tập hợp

lấy một khóa K ∈ K , một nonce

N ∈ N ⊆ {0,1}, một bản rõ M ∈ M ⊆ {0,1} và dữ liệu liên kết A ∈ A 
{0,1}*. Nó trả về, một bản mã C = ℇ𝑁,𝐴
𝐾 (M)




C  {0,1}* hoặc giá trị phân

biệt không hợp lệ. Các bộ N, M , C và A được gọi là không gian nonce,
không gian thông báo, không gian bản mã và không gian AD của П. Thuật


toán giải mã D lấy một bộ (K, N, A, C) ∈ K × N × A × C và trả về không hợp
𝑁,𝐴

𝑁,𝐴

lệ hoặc một chuỗi M = D 𝐾 (C) ∈ M ⊆ {0,1}*. Với yêu cầu D 𝐾 (C) = M
cho bất kỳ chuỗi C = ℇ𝑁,𝐴
𝐾 (M) và
cấp đầu vào bên ngồi



và D trả lại khơng hợp lệ nếu được cung

K × N × A × M hoặc K

× N × A × C tương ứng.

𝑁,𝐴

Với yêu cầu |ℇ𝑁,𝐴

𝐾 (M)| = |ℇ𝐾 (𝑀 )| khi mã hóa là chuỗi và |M| = |M′|. Nếu

giá trị này luôn là |M| + τ, τ độ dài thẻ của lược đồ.
Định nghĩa OCB3: Một mã khối E:

K

× {0,1}128 → {0, 1}128 và độ dài

thẻ τ ∈ [0...128] [12]. Trong Hình 1.6, định nghĩa phép mã hóa E và thẻ xác
thực τ, lược đồ AE П = OCB3 [E, τ] = (K ,

 , D ). Không gian nonce N là tập

hợp của tất cả các chuỗi nhị phân nhỏ hơn 128 bit. Không gian thông báo M
và không gian dữ liệu liên kết A đều là các chuỗi nhị phân. Không gian bản
mã C là tập hợp của tất cả các chuỗi có độ dài ít nhất là τ bit. Hình 1.6 dưới
đây cài đặt thủ tục bằng cách chạy ngầm hoặc chạy trước khi gọi đến



hoặc

D . Các biến mà nó xác định được hiểu là tổng quát. Trong định nghĩa giao
thức, viết ntz (i) cho số lượng các số 0 ở cuối trong biểu diễn nhị phân của số
nguyên dương i (ví dụ: ntz (1) = ntz (3) = 0, ntz (4) = 2), msb (X) cho bit đầu
tiên (bit có trọng số cao nhất) của X, A ∧ B cho bitwise-and của A và B, và
A≪i cho sự dịch chuyển của A bởi i bit bên trái (duy trì độ dài chuỗi, các bit
ngồi cùng bên trái mất đi, các bit 0 nhập vào bên phải). Tại các dịng 111 và
311 cuả hình 1.6, Bottom là một số thay vì một chuỗi.

Hình 1.6 đưa ra thuật tốn OCB3 [E, τ]. E: K × {0,1}128 → {0,1}n là
một mật mã khối và τ ∈ [0..128] là độ dài thẻ. Các thuật toán



và D được

gọi với các đối số K ∈ K , N ∈ N ∈ {0,1}≤127 và M, C ∈ {0,1}*.
Hình 1.7 dưới đây, mã khối E:

K

× {0,1}128 → {0,1}128 và τ ∈

[0...128]. Ở hình trên cùng: Thơng báo M có khối cuối cùng đầy đủ (|M4| = n)
(Checksum = M1  M 2  M 3  M 4 ). Ở hình giữa: Thơng báo M có khối cuối


cùng khơng đủ n bít, 1 ≤ |M| < n (Checksum = M1  M 2  M 3  M *10* ). Ở hình
dưới cùng: Một AD gồm ba khối: đầy đủ (trái) hoặc hai khối đầy đủ và một
khối khơng đầy đủ (phải). Ở cả 3 hình: Các offset (giá trị  ) được cập nhật
và sử dụng. Offset thiết lập các hàm khởi tạo và cập nhật (init, Inci, Inc$, Inc*)
trả về chuỗi n-bit. Mỗi mức tăng là một phép xor với một số giá trị được tính
tốn trước, giá trị K phụ thuộc.


Hình 1. 6. Thuật tốn OCB3


⃪Init(N)

⃪Inc2(

⃪Inc1(

⃪Inc3(

)

)

⃪Inc4(

)

⃪Inc5(

)

)

M1

M2

M3

M4

EK


EK

EK

EK

Checksum

EK
Final

Auth

Tag

C1

C2

C3

C4

T

⃪Inc*(

⃪Inc5(

⃪Init(N)

⃪Inc2(

⃪Inc1(
)

)

⃪Inc3(
)

)

)

M1

M2

M3

M* 0*

EK

EK

EK

EK


Checksum

EK
Final

pad

Auth

Tag

C1

C2

C*

C3

⃪Init(N)
⃪Inc1(

T

⃪Init(N)
)

⃪Inc2(

)


⃪Inc3(

)

⃪Inc1(

)

⃪Inc2(

)

⃪Inc3(

A1

A2

A3

A1

A2

A3 10*

EK

EK


EK

EK

EK

EK

Auth

Hình 1. 7. Minh họa của OCB3

)

Auth


1.2.3. Chế độ SCT
0

Inc

Inc

Inc

Inc

N


N

A1

A2

𝐸𝐾2

𝐸𝐾2

𝐸𝐾2

𝐸𝐾2

EWPC
A3

10*

2/3

𝐸𝐾

Auth

1

Inc


Inc

Inc

Inc

M1

M2

M3

M4

M5

𝐸𝐾4

𝐸𝐾4

𝐸𝐾4

𝐸𝐾4

𝐸𝐾

10*

4/5


Auth

0

Conv

IV

Inc

Inc

Tag

Inc

Inc

CTRT

N

N

N

N

N


𝐸𝐾1

𝐸𝐾1

𝐸𝐾1

𝐸𝐾1

𝐸𝐾1

M1

M2

C1

M3

C2

𝐸𝐾4

M5

M4

C3

Hình 1. 8. Chế độ SCT


C4

C5


* Chế độ mã hóa CTRT [3]:
Hầu hết các lược đồ mã hóa hiện tại là dựa trên Nonce hoặc dựa trên
IV, tức là sử dụng một giá trị được cung cấp bên ngồi mà khơng lặp lại
(nonce) hoặc được chọn thống nhất một cách ngẫu nhiên (IV). Ở phần này
trình bày về lược đồ mã hóa kết hợp cả Nonce và IV (gọi tắt là nivE).
Về mặt cú pháp, sơ đồ nivE là một bộ Π = ( K , N, IV , M , Enc, Dec)

K , N, IV và M là các tập hợp không rỗng và Enc và Dec là các
thuật toán xác định. Thuật toán mã hóa Enc lấy đầu vào là khóa K ∈ K ,
trong đó

nonce N ∈ N, giá trị khởi tạo IV ∈ I V và thông báo M ∈ M và xuất ra chuỗi
nhị phân C ∈ {0,1}* (giả sử rằng Enc trả về ⊥ nếu một trong các đầu vào
khơng nằm trong tập dự định). Thuật tốn giải mã Dec nhận đầu vào là khóa
K∈

K , nonce N ∈ N, giá trị khởi tạo IV ∈ IV và chuỗi nhị phân C ∈ {0,1}*

và xuất ra thông báo M ∈ M hoặc một ký hiệu đặc biệt. Điều đó được thể hiện
như sau:
Dec(K, N, IV,Enc(K, N, IV, M)) = M
Cho tất cả các bộ dữ liệu (K, N, IV, M) ∈ K × N × IV × M .
Biểu thị Enc$ là thuật toán xác suất lấy đầu vào (K, N, M) ∈ K × N × M
bên trong tạo ra một IV ⃪$ I V ngẫu nhiên thống nhất, tính tốn C = Enc (K,
N, IV, M) và đầu ra (IV, C) ∈ I V × {0,1}*. Biểu thị EncK (N, IV, M) cho

Enc(K, N, IV, M) và Enc𝐾$ (N, M) cho Enc$ (K, N, M).
Thuật toán của chế độ CTRT, sử dụng mật mã khối với tham số TBC E
 ( K , τ’, X) với τ’ = {1} × τ và X = {0,1}𝑛
1. Algorithm CTRT[E]. EncK (N, IV, M)
2. l: = |M|/n
3. Parse M as 𝑀1||…||𝑀𝑙 , with |𝑀1|=…=|𝑀𝑙−1| = n và 1 ≤ |𝑀𝑙 | ≤ n.
4. for i = 1 to l do
5. 𝐶𝑖 := 𝑀𝑖 ⊕ 𝐸𝐾1,𝐼𝑉 (N)
6. IV := Inc(IV)
7. return 𝐶1||𝐶2||…𝐶𝑙
* Mã xác thực thông báo PWC và EPWC [3]:
Trong phần này, trình bày hai chế độ liên quan xác thực thơng báo,
PWC và EPWC (PWC được mã hóa). Đặt
là một hệ mã khối với khơng gian khóa

K và τ là hai không gian và đặt E

K , không gian Tweak τ’ = {2, ..., 5}


× τ và miền X = {0,1}𝑛 . Inc là một hốn vị tuần hồn của τ. Từ hệ mã khối E,
xây dựng hai hàm tạo khóa dựa trên Nonce, PWC[E] và EPWC[E], cả hai đều
có khơng gian khóa K , không gian N = X = {0,1}𝑛 , miền D = A × M , trong
đó A = M = {0,1}*, và phạm vi γ = X = {0,1}n, như được minh họa trên
Hình 1.8 (đối với PWC, chỉ cần bỏ qua khối cuối cùng 𝐸𝐾4,0).
Thuật toán của hai chế độ PWC và EPWC, sử dụng hệ mã khối với
tham số TBC E  ( K , τ’, X) với τ’= {2, ..., 5} × τ và X = {0,1}𝑛 . S-hộp chỉ áp
dụng cho EPWC. Để đơn giản, xác định τ với {0, ..., | τ| - 1} và Inci (0) với i.
1. Algorithm PWC[E]K(N, A, M)
2. 𝑙𝑎 := |A|/n

3. 𝑙𝑚 := |M|/n
4. Parce A as A1 || ...|| Al , with | A1 |= ... =| Al −1 |= n,1 | Al | n
a

a

a

5. Parce M as M1 || ...|| Ml , with | M1 |= ... =| Ml

m −1

m

6. Auth := 𝐸𝐾2,0(N) ⊕ 𝐸𝐾2,1(N)
7. if 𝑙𝑎 > 0 then
8. for i = 1 to 𝑙𝑎 -1 do
9. Auth := Auth ⊕ 𝐸𝐾2,𝑖+1(Ai)
10. if | Al | = n then
a

2,𝑙𝑎 +1

11. Auth := Auth ⊕ 𝐸𝐾

(Ala)

12. else
3,𝑙𝑎 +1


13. Auth := Auth ⊕ 𝐸𝐾

(Ala10*)

14. if 𝑙𝑚 > 0 then
15. for i = 0 to 𝑙𝑚 – 1 do
16. Auth := Auth ⊕ 𝐸𝐾4,𝑖 (Mi)
17. if |𝑀𝑙𝑚 | = n then
4,𝑙𝑚

18. Auth := Auth 𝐸𝐾

(𝑀𝑙𝑚 )

19. else
5,𝑙𝑚

20. Auth := Auth ⊕ 𝐸𝐾
21. tag := 𝐸𝐾4,0(Auth)
22. return tag

(𝑀𝑙𝑚 10*)

|= n,1 | Mlm | n


Cấu trúc NSIV [3]: Trong phần này, mô tả một phương thức chung có
tên NSIV, trong đó định nghĩa một lược đồ nAE từ một hàm khóa dựa trên
Nonce và một lược đồ nivE. Kết quả xây dựng NSIV từ một sửa đổi nhỏ
(nhưng quan trọng từ quan điểm bảo mật) đến cấu trúc SIV (chung). Mặc dù

trong SIV, phần mã hóa hồn tồn dựa trên vector khởi tạo IV, NSIV dựa trên
kết hợp IV và Nonce trên lược đồ mã hóa nivE, nonce được sử dụng làm đầu
vào cho cả hàm tạo khóa và lược đồ nivE. Đây là sự thay đổi duy nhất với
SIV, trong đó nonce chỉ được cung cấp làm đầu vào cho hàm tạo khóa.
F là hàm tạo khóa dựa trên Nonce với khơng gian khóa K 1, khơng gian
Nonce N, miền

D

= A × M và phạm vi γ và Π = ( K 2, N, IV , M , Enc,

Dec) một sơ đồ nivE. Hàm chuyển đổi Conv: γ → IV . Lược đồ nAE NSIV
[F,П] = ( K , N, A , M , Enc, Dec) với khơng gian khóa

K = K 1 × K 2 như

được đưa ra dưới đây.
1. Algorithm NSIV[F, П]. 𝐸𝑛𝑐𝐾1 ,𝐾2 (N, A, M)
2. tag := 𝐹𝐾1 (N, A, M)
3. IV := Conv(tag)
4. C := П. 𝐸𝑛𝑐𝐾2 (N, IV, M)
5. return (C, tag)
6.
7. Algorithm NSIV[F, П]. 𝐷𝑒𝑐 𝐾1 ,𝐾2 (N, A, C, tag)
8. IV := Conv(tag)
9. M := П. 𝐷𝑒𝑐𝐾2 (N, IV, C)
10. tag’ := 𝐹𝐾1 (N, A, M)
11. tag’ = tag then return M else return ⊥
N


A

M

Conv

𝐹𝐾1

IV

tag

Hình 1. 9. Cấu trúc NSIV

П,𝐸𝑛𝑐𝐾2

C


×