CHƯƠNG 1: TỔNG QUAN VỀ MÃ HÓA CÓ XÁC THỰC VÀ MẬT MÃ HẠNG NHẸ Chương này trình bày những kiến thức tổng quan về mã hóa có xác thực và mật mã hạng nhẹ bao gồm: các khái niệm và các phương pháp mã hóa có xác thực; các khái niệm, các nguyên thủy mật mã hạng nhẹ và mật mã khối hạng nhẹ. 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ẻ có mục tiêu là cung cấp cả quyền riêng 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 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ẻ, trong khi 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 quyền riêng tư, nhưng một lược đồ mã hóa có xác thực chỉ đơn giản là một lược đồ mã hóađối xứng đáp ứng các mục tiêu quyền riêng 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 cấu trúc bằng việc kết hợp một lược đồ mã hóa đối xứng (Symmetric Encryption scheme – SE) với mã một mã xác thực thông báo (Message Authentication Code - 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 bao gồm ba thuật toán. Thuật toán tạo khóa ngẫu nhiên K với ,E,D) mỗi khóa K K.
Thuật toán mã hóa E với quy tắc mã hóa EK E , thuật toá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 7 mã D với quy tắc giải mã DK D , thuật toá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 – Message Authentication Codes). Một mã xác thực thông báo MA = (K ,T ,tf bao gồm ba thuật toán.
) Thuật toán tạo khóa ngẫu nhiên K với mỗi khóa K K. Thuật toán gắn thẻ 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 tf với quy tắc xác thực thẻ V tf.
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ầu tf = (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ó tf (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 toán gắn thẻ là xác định, không trạng thái và tf (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 toá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 (National Institute of Standards and Technology) đã 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. Chế độ mã hóa có xác thực hạng nhẹ JAMBU trình bày sau đây là một ứng viên tại vòng chung kết của cuộc thi này. Các phương pháp mã hóa có xác thực 1.
Mã hóa và xác thực (E&M) 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 = (Ke với Lược đồ mã xác ,E,D) thực thông báo MA = (Km,T ,tf ) theo phương pháp mã hóa và xác thực như sau: 8 *. Thuật toá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 (K e,M ); - T (Km,M); - C C '|| ; - Return C. Thuật toán giải mã D (Ke || K m ,C) - Phân tích C thành C'|| .
- M D (K e,C '); - v tf (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 toàn vẹn của bản rõ.
Nó thừa hưởng tính toà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 toàn hay không không ảnh hưởng đến tính toàn vẹn của lược đồ mã hóa có xác thực. Thuật toán tạo khóa K $ - Ke ⎯ ⎯Ke ; $ - Km ⎯⎯ K m ; - Return Ke || Km. Thuật toán mã hóa E (Ke || K m,M) - T (Km,M ); - C E (K e,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 tf (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 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 toà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õ. Mã hóa rồi xác thực (EtM) Lược đồ mã hóa có xác thực AE = (K được xây dựng bằng ,E,D) cách kết hợp lược đồ mã hóa đối xứng SE = (Ke với lược đồ mã xác ,E,D) thực thông báo MA = (Km,T ,tf ) bằng phương pháp mã hóa rồi xác thực như sau: *.
Thuật toán tạo khóa K $ - Ke ⎯⎯ K e ; $ - Km ⎯⎯ K m ; - Return Ke || Km. Thuật toán mã hóa E (Ke || K m,M) - C' E (K e,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 tf (Km,C', '); - Nếu v=1 thì tiếp tục giải mã, ngược lại return Fail.
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à 11 thông báo thẻ không hợp lệ.
Đây là phương pháp có thể đạt được sự an toà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 toà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. 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 toàn vẹn của thông báo. - Không đảm bảo tính toà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 - Đảm bảo tính toàn vẹn của thông báo. - Không đảm bảo tính toà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 toàn vẹn của thông báo. - Đảm bảo tính toà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 quá 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.
12 - 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 toàn khác nhau, nhưng không phải là phương pháp hoàn chỉnh như mã hóa rồi xác thực. Theo các chứng minh về sự an toàn được trình bày trong tài liệu [3], có thể đưa ra sự an toàn của các phương pháp mã hóa có xác thực như sau: Bảng 1.