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

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

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Nghiên Cứu Thuật Toán Mã Hóa Có Xác Thực Norx (Luận Văn Thạc Sĩ) Để bảo mật dữ liệu trên đường truyền ta có các tiêu chuẩn, giao thức đã được biết đến như IEEE 802.11i, IPsec ESP và IKEv2, NIST SP 800-38D, ANSI C12.22 và ISO/IEC 19772:2009. Với các thuật toá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à toà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 toán AES-CMAC (hoặc HMAC) để xác thực. Phương pháp này tác động tới tính an toàn vì quá 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 (National Institute of Standards and Technology) đã 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 toán mã hóa có xác thực tốt nhất đảm bảo các tính năng an toà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 toán mã hóa có xác thực NORX là một trong 57 ứng viên của cuộc thi này và là một trong 15 thuật toán được lựa chọn vào vòng 3 của cuộc thi. . 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ó 57 thuật toán của các nhà mật mã học được gửi đến tham gia cuộc thi. Thuật toán NORX của của nhóm tác giả Jean-Philippe Aumasson, Philipp Jovanovic, Samuel Neves là một ứng viên tại vòng ba 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 nghiên cứu về thuật toán, sự an toàn và các tấn công lên NORX. Trong quá trình thực hiện đồ án tốt nghiệp, em đã tìm hiểu, xem xét một số tài liệu đã được công bố trước đó để phục vụ quá trình hoàn thiện đồ án của mình. Tài liệu chính đã nghiên cứu bao gồm: - “NORX v3.0, 2016”, của các tác giả Jean-Philippe Aumasson, Philipp Jovanovic, Samuel Neves. Tài liệu này mô tả về thuật toán NORX gồm các hàm, các quá trình hoạt động và phân tích sự an toàn của NORX. - “Distinguishing Attack on NORX Permutation, 2018” của tác giả Tao Huang và Hongjun Wu. Tài liệu này tóm tắt kết quả một số tấn công lên phiên bản cũ của NORX và trình bày một tấn công phân biệt trên hoán vị nhân của NORXv3.0. - “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. Ngoà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 toán mã hóa có xác thực NORX. - Cài đặt chương trình mô phỏng thuật toán mã hóa có xác thực NORX. 4. Đối tượng và phạm vi nghiên cứu - Đối tượng nghiên cứu: thuật toán mã hóa có xác thực NORX. - Phạm vi nghiên cứu: đề tài nêu khái quát về hệ mã dòng, các vấn đề chung về mã hóa có xác thực; thuật toán mã hóa có xác thực NORX; cài đặt chương trình mã hóa có xác thực NORX. 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 tổng hợp, phương pháp so sánh, phương pháp phân tích và 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 quá trình 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 toá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 về các quá trình hoạt động, sự an toàn của thuật toán NORX. - Về tính ứng dụng: Đồ án trình bày quá trình cài đặt chương trình thực thi thuật toán mã hóa có xác thực NORX. 7. Kết cấu của đồ án tốt nghiệp Nội dung đồ án tốt nghiệp gồm 3 chương: Chương 1: Tổng quan về hệ mật mã dòng 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ã dòng và mã hóa có xác thực bao gồm: tổng quan về hệ mã dòng, khái niệm về mã hóa có xác thực, cấu trúc chung của 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 NORX. Chương này trình bày về cấu trúc, tham số các tính năng của thuật toán mã hóa có xác thực NORX, các hàm sử dụng trong thuật toán NORX, quá trình mã hóa, giải mã của thuật toán. Dựa trên cấu trúc đó để phân tích sự an toàn của thuật toán. Bên cạnh đó giới thiệu một số tấn công lên thuật toán NORX. Chương 3: Cài đặt chương trình mô phỏng thuật toán mã hóa có xác thực NORX. Trình bày quá trình cài đặt chương trình thực thi thuật toán mã hóa có xác thực NORX. Kiểm tra tính đúng đắn của quá trình cài đặt thuật toán. CHƯƠNG 1: TỔNG QUAN VỀ HỆ MẬT MÃ DÒNG VÀ MÃ HÓA CÓ XÁC THỰC 4 1.1. Hệ mật mã dòng 4 1.1.1. Định nghĩa về hệ mật mã dòng 4 1.1.2. Một số đặc điểm của hệ mã dòng 5 1.1.3. Phân loại mã dòng 6 1.2. Mã hóa có xác thực 7 1.2.1. Khái niệm 7 1.2.2. Cấu trúc chung của lược đồ mã hóa có xác thực 11 1.2.3. Mã hóa có xác thực với dữ liệu liên kết 17 CHƯƠNG 2: THUẬT TOÁN MÃ HÓA CÓ XÁC THỰC NORX 19 2.1 Thuật toán mã hóa có xác thực NORX 19 2.1.1. Các ký hiệu 19 2.1.2. Giới thiệu về NORX 20 2.1.3. Kiến trúc tổng quan 22 2.1.4. Các hàm được sử dụng trong thuật toán NORX 23 2.2. Quá trình thực hiện của thuật toán NORX 27 2.2.1. Cấu trúc mức cao 27 2.2.2 Cấu trúc mức thấp 28 2.3. Sự an toàn của thuật toán NORX 35 2.3.1. Mục tiêu an toàn 35 2.3.2. Một số đặc tính an toàn trong thiết kế của NORX 37 2.3.3. Một số tấn công lên thuật toán NORX 42 CHƯƠNG 3: CÀI ĐẶT CHƯƠNG TRÌNH MÔ PHỎNG THUẬT TOÁN MÃ HÓA CÓ XÁC THỰC NORX 47 3.1. Cài đặt thuận toán NORX 47 3.1.1. Cài đặt quá trình khởi tạo 49 3.1.2. Cài đặt quá trình xử lý dữ liệu liên kết header 51 3.1.3. Cài đặt quá trình mã hóa 52 3.1.4. Cài đặt quá trình xử lý dữ liệu trailer 58 3.1.5. Cài đặt quá trình tạo thẻ xác thực 58 3.1.6. Cài đặt quá trình giải mã và xác thực 59 3.2 Kết quả quá trình cài đặt thuật toán NORX 60 3.2.1. Kiểm tra tính đúng đắn của quá trình cài đặt 60 3.2.2. Kết quả thực hiện thuật toán NORX 64

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 NORX Nguyen Thanh Long Ha Noi, 2023 ii MỤC LỤC LỜI CẢM ƠN i LỜI CAM ĐOAN ii 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 CHƯƠNG 1: TỔNG QUAN VỀ HỆ MẬT MÃ DỊNG VÀ MÃ HĨA CĨ XÁC THỰC 1.1 Hệ mật mã dòng 1.1.1 Định nghĩa hệ mật mã dòng 1.1.2 Một số đặc điểm hệ mã dòng 1.1.3 Phân loại mã dòng 1.2 Mã hóa có xác thực 1.2.1 Khái niệm 1.2.2 Cấu trúc chung lược đồ mã hóa có xác thực 11 1.2.3 Mã hóa có xác thực với liệu liên kết 17 CHƯƠNG 2: THUẬT TỐN MÃ HĨA CĨ XÁC THỰC NORX 19 2.1 Thuật tốn mã hóa có xác thực NORX 19 2.1.1 Các ký hiệu 19 2.1.2 Giới thiệu NORX 20 2.1.3 Kiến trúc tổng quan 22 2.1.4 Các hàm sử dụng thuật toán NORX 23 2.2 Q trình thực thuật tốn NORX 27 2.2.1 Cấu trúc mức cao 27 2.2.2 Cấu trúc mức thấp 28 2.3 Sự an tồn thuật tốn NORX 35 iii 2.3.1 Mục tiêu an toàn 35 2.3.2 Một số đặc tính an toàn thiết kế NORX 37 2.3.3 Một số cơng lên thuật tốn NORX 42 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 NORX 47 3.1 Cài đặt thuận toán NORX 47 3.1.1 Cài đặt trình khởi tạo 49 3.1.2 Cài đặt trình xử lý liệu liên kết header 51 3.1.3 Cài đặt q trình mã hóa 52 3.1.4 Cài đặt trình xử lý liệu trailer 58 3.1.5 Cài đặt trình tạo thẻ xác thực 58 3.1.6 Cài đặt trình giải mã xác thực 59 3.2 Kết trình cài đặt thuật toán NORX 60 3.2.1 Kiểm tra tính đắn q trình cài đặt 60 3.2.2 Kết thực thuật toán NORX 64 KẾT LUẬN 67 TÀI LIỆU THAM KHẢO 68 iv CÁC KÝ HIỆU, CHỮ VIẾT TẮT Viết tắt AE AEAD Tiếng Anh Mã hóa có xác thực Authenticated Encryption Authenticated Encryption Mã hóa có xác thực với liệu liên kết with Associated Data for Cuộc thi mã hóa có xác thực: Competition CAESAR Tiếng Việt Authenticated Encryption: an toàn, khả áp dụng Security, Applicability, and tính mạnh mẽ Robustness E&M Encrypt and MAC Mã hóa mã xác thực EtM Encrypt then MAC Mã hóa xác thực Indistinguishability under a Khả không phân biệt Chosen Plaintext Attack công lựa chọn rõ Indistinguishability under a Khả không phân biệt Chosen Ciphertext Attack công lựa chọn mã IND-CPA IND-CCA INT-CTXT Integrity of Ciphertext Tính tồn vẹn mã INT-PTXT Integrity of Plaintext Tính tồn vẹn rõ MAC MtE NIST NM-CPA SE Message Authentication Mã xác thực thông báo Code Xác thực mã hóa MAC then Encrypt National Institute of Viện tiêu chuẩn công nghệ Standards and Technology quốc gia Non-malleability under a Tính khơng mềm dẻo Chosen Plaintext Attack Symmetric Schemes công lựa chọn rõ Encryption Lược đồ mã hóa đối xứng LỜI MỞ ĐẦU Tính cấp thiết đề tài Trong mơi trường mạng máy tính nay, vấn đề bảo mật truyền nhận thông tin yêu cầu quan trọng lĩnh vực đời sống xã hội Thông tin truyền phải đảm bảo biết người có thẩm quyền xác minh người gửi, người nhận Do vậy, ứng dụng giao thức bảo mật hay thuật toán mật mã trở nên quan trọng việc cung cấp tính chất bí mật, xác thực tồn vẹn cho nội dung thơng tin Để bảo mật liệu đường truyền ta có tiêu chuẩn, giao thức biết đến IEEE 802.11i, IPsec ESP IKEv2, NIST SP 800-38D, ANSI C12.22 ISO/IEC 19772:2009 Với thuật tốn mã hóa mật mã khóa đối xứng thường áp dụng để cung cấp tính bí mật tồn vẹn 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 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 tác động tới tính an tồn q trình mã hóa xác thực phân tích gần riêng biệt Chính thế, hướng xây dựng lược đồ mã hóa có xác thực (AE) lược đồ mã hóa có xác thực với liệu liên kết (AEAD) Dữ liệu liên kết loại liệu kèm nội dung thông báo không cần phải mã hóa xác thực truyền Để đáp ứng yêu cầu trên, Viện tiêu chuẩn công nghệ quốc gia Hoa Kỳ NIST (National Institute of Standards and Technology) tổ chức thi mã hóa có xác thực CAESAR (Competition for Authenticated Encryption: Security, Applicability, and Robustness) nhằm chọn thuật toán mã hóa có xác thực tốt đảm bảo tính an tồn, khả áp dụng tính mạnh mẽ, đồng thời có lợi AES-GCM Thuật tốn mã hóa có xác thực NORX 57 ứng viên thi 15 thuật tốn lựa chọn vào vịng thi Tổng quan tình hình nghiên cứu Ngày 12/1/2013 thi CAESAR khai mạc Luxembourg Cuộc thi gây ý cộng đồng khoa học mật mã giới Đã có 57 thuật tốn nhà mật mã học gửi đến tham gia thi Thuật tốn NORX của nhóm tác giả Jean-Philippe Aumasson, Philipp Jovanovic, Samuel Neves ứng viên vòng ba thi CAESAR Thuật toán giới thiệu lần vào 03/2014 Trong thời gian qua, nhà mật mã giới có nhiều nghiên cứu thuật tốn, an tồn cơng lên NORX Trong trình thực đồ án tốt nghiệp, em tìm hiểu, xem xét số tài liệu cơng bố trước để phục vụ q trình hồn thiện đồ án Tài liệu nghiên cứu bao gồm: - “NORX v3.0, 2016”, tác giả Jean-Philippe Aumasson, Philipp Jovanovic, Samuel Neves Tài liệu mơ tả thuật tốn NORX gồm hàm, q trình hoạt động phân tích an toàn NORX - “Distinguishing Attack on NORX Permutation, 2018” tác giả Tao Huang Hongjun Wu Tài liệu tóm tắt kết số cơng lên phiên cũ NORX trình bày cơng phân biệt hốn vị nhân NORXv3.0 - “Authenticated encryption: Relations among notions and analysis of the generic composition paradigm, 2007” tác giả Bellare Namprempre Tài liệu mô tả cấu trúc chung mã hóa có xác thực đánh giá an tồn phương thức mã hóa có xác thực Ngồi em cịn tham khảo số tài liệu khác có liên quan Mục tiêu nghiên cứu - Tìm hiểu thuật tốn mã hóa có xác thực NORX - Cài đặt chương trình mơ thuật tốn mã hóa có xác thực NORX Đối tượng 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 NORX - Phạm vi nghiên cứu: đề tài nêu khái quát hệ mã dịng, vấn đề chung mã hóa có xác thực; thuật tốn mã hóa có xác thực NORX; cài đặt chương trình mã hóa có xác thực NORX Phương pháp nghiên cứu Đề tài sử dụng phương pháp nghiên cứu 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 số kết nghiên cứu có, đồng thời thu thập thông tin, tài liệu để phục vụ cho q trình nghiên cứu Những đóng góp đồ án - Về lý thuyết: Đồ án trình bày vấn đề thuật tốn mã hóa có xác thực khái niệm, cấu trúc chung mã hóa có xác thực Trình bày trình hoạt động, an tồn thuật tốn NORX - Về tính ứng dụng: Đồ án trình bày trình cài đặt chương trình thực thi thuật tốn mã hóa có xác thực NORX Kết cấu đồ án tốt nghiệp Nội dung đồ án tốt nghiệp gồm chương: Chương 1: Tổng quan hệ mật mã dòng mã hóa có xác thực Chương trình bày kiến thức tổng quan hệ mã dịng mã hóa có xác thực bao gồm: tổng quan hệ mã dịng, khái niệm mã hóa có xác thực, cấu trúc chung mã hóa có xác thực mã hóa có xác thực với liệu liên kết Chương 2: Thuật tốn mã hóa có xác thực NORX Chương trình bày cấu trúc, tham số tính thuật tốn mã hóa có xác thực NORX, hàm sử dụng thuật tốn NORX, q trình mã hóa, giải mã thuật tốn Dựa cấu trúc để phân tích an tồn thuật tốn Bên cạnh giới thiệu số cơng lên thuật tốn NORX Chương 3: Cài đặt chương trình mơ thuật tốn mã hóa có xác thực NORX Trình bày trình cài đặt chương trình thực thi thuật tốn mã hóa có xác thực NORX Kiểm tra tính đắn q trình cài đặt thuật tốn CHƯƠNG 1: TỔNG QUAN VỀ HỆ MẬT MÃ DỊNG VÀ MÃ HĨA CĨ XÁC THỰC Chương trình bày kiến thức tổng quan hệ mật mã dịng mã hóa có xác thực bao gồm: tổng quan hệ mã dịng, khái niệm mã hóa có xác thực, thành phần cấu trúc chung mã hóa có xác thực mã hóa có xác thực với liệu liên kết 1.1 Hệ mật mã dòng 1.1.1 Định nghĩa hệ mật mã dòng Hệ mật mã dịng hệ mã mà ký tự rõ mã hóa tách biệt [1] Trong hệ mã dịng, dịng khóa z = z1z2 sinh dùng để mã hóa xâu rõ R = r1r2 theo quy tắc sau: M = m1m2 = Ez (r1)Ez (r2 ) Hình 1 Sơ đồ mã hóa hệ mã dịng Một hệ mã dòng đồng định nghĩa sau: Định nghĩa: Một hệ mã dòng đồng (R,M,K, L,E,D) thỏa mãn điều kiện sau: R tập hữu hạn rõ M tập hữu hạn mã K tập hữu hạn khóa (mầm khóa) L tập hữu hạn ký tự dịng khóa g tạo dịng khóa Với đầu vào khóa K, g tạo dịng khóa z = z1z2 , với zi  L,i 1 Với dịng khóa z = z1z2 có quy tắc mã Ez E quy tắc giải mã Dz D tương ứng Ez :R → M Dz : M →R hàm thỏa mãn Dz (Ez (R)) = R với rõ R R 1.1.2 Một số đặc điểm hệ mã dòng Trong hệ mã dòng, phép lập mã phép dịch mã phép biến đổi đơn giản tuyến tính theo dịng khóa sử dụng [1] Hệ mã dịng có số đặc điểm sau: - Phép lập mã phép dịch mã thực dịng khóa - Độ dài rõ độ dài mã độ dài dịng khóa - Biết rõ mã dễ dàng tính dịng khóa tương ứng - Độ bảo mật hệ mã dòng phụ thuộc vào độ bảo mật khóa - Nếu khóa ngẫu nhiên dùng lần hệ mã dịng có độ bảo mật cao - Một hệ mã dịng gọi tuần hồn với chu kỳ d zi+d = zi với số nguyên i  - Trong hệ mã dòng, bảng chữ rõ, bảng chữ mã, bảng chữ khóa thường mơ tả chữ nhị phân {0,1}, tức R = M = L = Z2 Trong trường hợp này, phép lập mã dịch mã phép cộng modulo 2: Ez (r) = (r + z)mod Dz (m) = (m + z) mod zi zi ri  mi Kênh không an tồn mi  Hình Sơ đồ mã hóa giải mã với hệ mã dịng ri 1.1.3 Phân loại mã dòng -Hệ mã dòng đồng bộ: hệ mã dịng mà dịng khóa sinh khơng phụ thuộc vào xâu rõ Tức dịng khóa sinh từ hàm mầm khóa S Hệ mã dịng có ưu điểm khơng có hiệu ứng lan truyền lỗi, bit lỗi truyền dẫn đến sai lệch bit mã dịch Hơn nữa, hệ mã bảo vệ khỏi việc chèn, xóa hay dùng lại ký tự mã, thao tác làm đồng bị phát bên nhận [1] - Hệ mã dòng tự đồng bộ: hệ mã dòng mà phần tử dịng khóa zi phụ thuộc vào phần tử rõ phần tử rõ trước ( r1r2 , ri−1 và/hoặc m1m2 , mi−1 ) khóa K Hệ mã dịng có nhược điểm lan truyền lỗi Hơn nữa, khó để phát việc chèn, xóa hay dùng lại ký tự mã, phát khơng dịch mã - Hệ mã dịng với khóa đệm dùng lần (one-time-pad): hệ mã dịng với khóa chọn ngẫu nhiên không dùng lại Nguyên lý hệ mật khóa ngẫu nhiên dùng lần đảm bảo tính độc lập thống kê rõ mã cách sử dụng dãy khóa ngẫu nhiên Một hệ mật gọi có độ mật hồn thiện (hay cịn gọi có độ an tồn vơ điều kiện) thơng tin tương hỗ rõ mã tương ứng khơng, độc lập với độ dài rõ Khi nhận mã, thám mã suy diễn thơng tin rõ mã hóa, mà có phân bố xác suất tiên nghiệm tập rõ Hệ mật khóa ngẫu nhiên dùng lần có độ mật hồn thiện Tuy nhiên, dãy khóa ngẫu nhiên sử dụng hệ mã lần cần phải tạo trước phân phối trước tới người gửi người nhận Đây đề khó thực tế sử dụng, đặc biệt hệ thống tự động hóa Trong thực tế khơng thể có dãy ngẫu nhiên lý tưởng, điều dẫn đến nghiên cứu phương pháp tạo dãy gần ngẫu nhiên, giả ngẫu nhiên Đây 55 for (i = 0; i < WORDS(NORX_R); ++i) { S[i] ^= lane; } Sau thiết lập trạng thái cho luồng liệu rõ hấp thụ vào trạng thái mã hóa theo khối 768 bit Hình 3.5 Nếu liệu xử lý song song khối xử lý xoay vòng luồng Bắt đầu Trạng thái sau phân nhánh, M=(M0,…,Mm-1), |Mi|=r , 0≤Mm-1= BYTES(NORX_R)) { norx_encrypt_block(state, out, in); inlen -= BYTES(NORX_R); in += BYTES(NORX_R); out += BYTES(NORX_R); } norx_encrypt_lastblock(state, out, in, inlen); } } #elif NORX_P > /* mã hóa song song */ void norx_encrypt_data() { if (inlen > 0) { size_t i; norx_state_t lane[NORX_P]; /* phân nhánh */ for (i = 0; i < NORX_P; ++i) { memcpy(lane[i], state, sizeof lane[i]); norx_branch(lane[i], i); } /* xử lý payload song song */ for (i = 0; inlen >= BYTES(NORX_R); ++i) { norx_encrypt_block(lane[i%NORX_P], out, in); inlen -= BYTES(NORX_R); out += BYTES(NORX_R); in += BYTES(NORX_R); } norx_encrypt_lastblock(lane[i%NORX_P], out, in, inlen); /* kết hợp */ memset(state, 0, sizeof(norx_state_t)); for (i = 0; i < NORX_P; ++i) { norx_merge(state, lane[i]); burn(lane[i], 0, sizeof(norx_state_t)); } } } #elif NORX_P == /* mức độ song song vô hạn */ void norx_encrypt_data() 57 { if (inlen > 0) { size_t lane = 0; norx_state_t sum; norx_state_t state2; memset(sum, 0, sizeof(norx_state_t)); while (inlen >= BYTES(NORX_R)) { /* phân nhánh */ memcpy(state2, state, sizeof(norx_state_t)); norx_branch(state2, lane++); /* mã hóa */ norx_encrypt_block(state2, out, in); /* kết hợp */ norx_merge(sum, state2); inlen -= BYTES(NORX_R); in += BYTES(NORX_R); out += BYTES(NORX_R); } /* khối cuối, S; norx_word_t * S1 = state1->S; S1[15] ^= MERGE_TAG; norx_permute(state1); for (i = 0; i < 16; ++i) { S[i] ^= S1[i]; } 59 3.1.4 Cài đặt trình xử lý liệu trailer Quá trình thực tương tự hấp thụ liệu header, khác trạng thái đầu vào trạng thái sau giai đoạn mã hóa trạng thái đầu dùng cho trình tạo thẻ xác thực Nếu liệu Trailer trống trình bị bỏ qua 3.1.5 Cài đặt trình tạo thẻ xác thực Quá trình có đầu vào trạng thái sau xử lý mã hóa hấp thụ liệu liên kết trailer (tùy thuộc độ dài liệu liên kết) Từ bit s15 kết hợp với số tách miền Sau thực hai lần hàm F l hai lần hấp thụ khóa K giúp làm tăng an tồn cho thẻ xác thực Mơ tả q trình Hình 3.7: Bắt đầu Trạng thái sau hấp thụ liệu liên kết trailer s15  s15  v S  F l (S ) (s12 , s13 , s14 , s15 )  (s12 , s13 , s14 , s15 )  (k0 , k1, k2 , k3 ) S  F l (S ) (s12 , s13 , s14 , s15 )  (s12 , s13 , s14 , s15 )  (k0 , k1, k2 , k3 ) T  rightt (S ) Kết thúc Hình 3.7 Sơ đồ cài đặt trình tạo thẻ xác thực 60 3.1.6 Cài đặt trình giải mã xác thực Để thực trình giải mã, trình khởi tạo trạng thái hấp thụ liệu liên kết thực tương tự q trình mã hóa Trong suốt q trình giải mã, trạng thái thời điểm tương ứng sử dụng làm dịng khóa Các bit XOR với bit khối mã Ci tương ứng để giải mã tạo khối bit rõ Mi Các bit rõ Mi cập nhật liên tục vào trạng thái để thực giải mã khối bit Quá trình lặp lại đến khối mã xử lý xong Sau xử lý xong giải mã, thẻ xác thực tạo để so sánh với thẻ xác thực nhận từ bên mã hóa Thuật tốn giải mã tương tự mã hóa, cần khai báo thay hàm mã hóa thành giải mã sau: void norx_decrypt_data(norx_state_t state, unsigned char *out, const unsigned char * in, size_t inlen) norx_decrypt_block(state, out, in); norx_decrypt_lastblock(state, out, in, inlen); Kiểm tra thẻ xác thực: int norx_verify_tag(const unsigned char * tag1, const unsigned char * tag2) { size_t i; unsigned acc = 0; for (i = 0; i < BYTES(NORX_T); ++i) { acc |= tag1[i] ^ tag2[i]; } return (((acc - 1) >> 8) & 1) - 1; } 61 3.2 Kết trình cài đặt thuật tốn NORX 3.2.1 Kiểm tra tính đắn q trình cài đặt Phần kiểm tra tính đắn q trình cài đặt thuật tốn với test vector có đầu vào tài liệu [2] Thực thi thuật toán trường hợp NORX64-4-1, trạng thái S có 1024 bit gồm 16 từ 64 bit, hàm F có l=4 chế độ mã hóa nối tiếp Chi tiết liệu đầu vào sau: Quá trình thực thi mã hóa cho kết đầu giống tài liệu [2] thể sau: 62 Dữ liệu rõ, liệu liên kết xử lý theo khối r=768 bit Với liệu đầu vào 1024 bit khối cuối có 256 bit đệm cho đủ 768 bit xử lý Trạng thái sau xử lý khối cuối đầu vào cho việc thực trình Trạng thái đầu bước tạo thẻ kết sau cộng khóa thực hai lần hàm vịng F l (S ) Thẻ xác thực gồm 256 bit tạo sau vài xử lý với trạng thái bước cuối gắn vào cuối mã 63 Quá trình giải mã thực với đầu vào khóa, nonce, liệu liên kết tương tự q trình giải mã Dữ liệu thơng báo mã có gắn thẻ xác thực Kết cho thấy trạng thái sau trình tạo giống thực mã hóa 64 Kết trình giải mã thực thành công với thẻ xác thực hợp lệ Dữ liệu giải mã thu với rõ ban đầu Kết luận: q trình cài đặt thuật tốn mã hóa có xác thực NORX thực với tham số, cấu trúc mà tác giả xây dựng 65 3.2.2 Kết thực thuật toán NORX Để thực thuật toán, Visual Studio 2017 ta tạo solution “norx” gồm hai project “norx_mahoa” “norx_giaima” Sau build solution ta có file cài đặt norx_mahoa.exe norx_giaima.exe Để thực mã hóa, ta mở file norx_mahoa.exe Trên hình console, ta nhập vào đường dẫn, tên file, đuôi file liệu khóa, nonce, rõ, liệu liên kết header/ trailer Tiếp theo, chọn đường dẫn, tên, định dạng file mã đầu nhấn enter để thực mã hóa Sau thực mã hóa xong, chương trình hiển thị độ dài rõ, liệu liên kết, khóa, nonce độ dài mã Thẻ xác thực có độ dài mặc định 256 bit gắn vào cuối mã Ví dụ mã hóa file: 66 Để thực giải mã, ta mở file norx_giaima.exe Trên hình console, ta nhập vào đường dẫn, tên file, đuôi file liệu khóa, nonce, mã, liệu liên kết header/ trailer Tiếp theo, chọn đường dẫn, tên, định dạng file rõ đầu nhấn enter để thực giải mã Ví dụ giải mã file trên: Nếu giải mã thất bại, chương trình khơng cho phép lưu rõ thông báo “Giải mã thất bại Thẻ khơng hợp lệ” Ví dụ sau giải mã file en1.mp4 mã hóa với khóa khác key2.dat Chương trình thực tạo rõ không với rõ ban đầu rõ không lưu lại 67 68 KẾT LUẬN Tìm hiểu tổng quan hệ mã dịng mã hóa có xác thực Tìm hiểu, phân tích thuật tốn mã hóa có xác thực NORX Tìm hiểu, phân tích an tồn thuật tốn NORX Cài đặt chương trình thực thi thuật tốn mã hóa có xác thực NORX ngơn ngữ lập trình C/C++ với cơng cụ lập trình Visual Studio 2017 Các thuật tốn mã hóa có xác thực đem lại lợi ích độ an tồn hiệu suất thực thi Vì vậy, việc nghiên cứu thuật tốn mã hóa có xác thực nói chung thuật tốn NORX nói riêng cần thiết Tuy nhiên, nhiều vấn đề đề tài phải cần đầu tư nghiên cứu tiếp như: - Nghiên cứu số thuật tốn mã hóa có xác thực khác - Tập trung sâu nghiên cứu tính chất an tồn cơng lên thuật toán NORX - Xây dựng giao diện ứng dụng cho thuật toán cài đặt thuật toán phần mềm phần cứng - Tích hợp thuật tốn NORX vào ứng dụng để bảo mật thông tin TÀI LIỆU THAM KHẢO [1] Jean-Philippe Aumasson, Philipp Jovanovic, Samuel Neves, NORX v3.0, September 2016 [2] M Bellare C Namprempre, Authenticated encryption: Relations among notions and analysis of the generic composition paradigm, 2007 [3] M Bellare, P Rogaway, D Wagner, “The EAX mode of operation”, in Fast Software Encryption, 2004 [4] Virgil D Gligor, Pompiliu Donescu, Fast Encryption and Authentication: XCBC Encryption and XECB Authentication Modes, April 2001 [5] Tao Huang and Hongjun Wu, Distinguishing Attack on NORX Permutation, 2018 [6] Philipp Jovanovic, Analysis and Design of Symmetric Cryptographic Algorithms, May 2015 [7] Charanjit S Jutla, Parallelizable Encryption Mode with Almost Free Message Integrity, IBM T J Watson Research Center [8] Phillip Rogaway, Authenticated-Encryption with Associated-Data, 2002 [9] Philip Rogaway, Mihir Bellare, John Black, OCB: A Block-Cipher Mode of Operation for Efficient Authenticated Encryption [10] Markku-Juhani O Saarinen, Developments in Authenticated Encryption, Finse Winter School, May 2014 [11] Luan Cardoso dos Santos, Julio Lopez, Pipeline Oriented Implementation of NORX for ARM Processors, 2017 [12] Petr Svenda, Basic comparison of Modes for Authenticated-Encryption, Masaryk University [13] Source Code NORX: https://norx.io https://github.com/norx

Ngày đăng: 24/06/2023, 15:33