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 );
- CE
( 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
rõ
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