NGHIÊN CỨU THỰC THI HỆ MẬT MORUS TRÊN THẺ JAVACARD Trong môi trường công nghệ mạng máy tính hiện nay, bài toán an toàn thông tin ngày càng trở nên cần thiết và cấp bách. An toàn thông tin thường đòi hỏi đảm bảo cả tính bí mật, toàn vẹn và xác thực. Có hai 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 toán mã khối hoặc mã dòng để đảm bảo tính bí mật, tiếp đến sử dụng các thuật toán mã xác thực thông báo MAC (Message Authentication Code) để thực hiện xác thực và toàn vẹn. Cách tiếp cận thứ hai là xây dựng các thuật toán mã hóa có xác thực (gọi tắt là mã hóaxác thực) nhằm đảm bảo đồng thời cả tính bí mật và tính xác thực cho thông báo theo một thuật toán duy nhất (loại bỏ sự ghép nối giữa thuật toán mã hóa và thuật toán MAC riêng biệt). Cách tiếp cận thứ hai đang là hướng đi mới trong khoa học mật mã. Hơn nữa, trước sự phát triển của các hệ thống thanh toán dùng thẻ và xu hướng ứng dụng IoT (internet of things), các dịch vụ liên ngân hàng đang dần chuyển đổi thẻ từ sang thẻ chip nhằm đáp ứng yêu cầu bảo mật ngày càng cao, do đó việc nghiên cứu, tích hợp các thuật toán mật mã hạng nhẹ cho phép cài đặt trong các thiết bị giới hạn về tài nguyên và năng lượng tiêu thụ là bài toán rất hiện hữu. Dựa trên các công trình công bố 3, 4, 5, tôi thấy MORUS là thuật toán mã hóaxác thực phù hợp để xử lý nhanh các thông tin người dùng, hoạt động ổn định trong các hệ nhúng và đảm bảo được về cả tính bí mật và tính xác thực. Xuất phát từ thực tiễn trên, tôi chọn đề tài “Nghiên cứu thực thi hệ mật MORUS trên thẻ JavaCard” làm đồ án của mình với mục đích kiểm chứng tính đúng đắn và an toàn của hệ mật hạng nhẹ này trên thẻ JavaCard nhằm khẳng định khả năng ứng dụng thuật toán vào các giao dịch dùng thẻ. Để đáp ứng mục tiêu trên, nội dung đồ án được thực hiện theo 3 chương: Chương 1: Tổng quan về mật mã hạng nhẹ, hệ mật MORUS. Chương này trình bày tổng quan về mật mã hạng nhẹ và hệ mật MORUS. Chương 2: Tìm hiểu công nghệ JavaCard và môi trường thiết kế Applet. Chương này khái quát về Javacard, phân tích các lỗ hổng JavaCard và trình bày kỹ thuật lập trình ứng dụng Applet cho hệ thống giao dịch thẻ. Chương 3: Thực thi hệ mật MORUS vào thẻ JavaCard và đề xuất ứng dụng. Chương này thực hiện lập trình nhúng hệ mật MORUS vào thẻ JavaCard; mô tả, phân tích các kết quả thực nghiệm, trên cơ sở đó đề xuất ứng dụng hệ mật MORUS mã hóaxác thực các dữ liệu giao dịch dùng thẻ. 1. Tìm hiểu tổng quan về mật mã hạng nhẹ và hệ mật MORUS, các thủ thục hoạt động trong MORUS, các tiến trình xử lý và các tính chất an toàn của hệ mật. 2. Tìm hiểu cấu tạo của thẻ chip thông minh; các nguy cơ mất an toàn và một số tấn công hiện hữu lên thẻ chip thông minh. 3. Tìm hiểu công nghệ JavaCard, phương pháp phát triển ứng dụng Applet cho thẻ JavaCard và cách giao tiếp, quản lý thẻ JavaCard. 4. Lập trình nhúng thuật toán MORUS vào thẻ JavaCard NPX J2A080; xây dựng giao diện chương trình mã hóa và giải mã; từ đó đánh giá hiệu suất xử lý của hệ mật MORUS và so sánh với 2 hệ mật: ACORN và AEGIS; rút ra kết luận và đề xuất hướng ứng dụng cho hệ mật MORUS. Hiện nay, việc ứng dụng các thuật toán mã hóa có xác thực vào thực tiễn đang rất được quan tâm trong cộng đồng khoa học mật mã, bởi những lợi ích về tính bảo mật và tính xác thực. Vì vậy, việc nghiên cứu ứng dụng các thuật toán mã hóa có xác thực nói chung và hệ mật MORUS nói riêng là có tính thực tế. Tuy nhiên, một số vấn đề trong đề tài vẫn cần phải nghiên cứu tiếp: thực thi hệ mật MORUS trên các nền tảng khác nhau (tích hợp vào chip vi điều khiển, tích hợp cho SIM điện thoại, các hệ thống IoT,…) và đánh giá tính bền vững của hệ mật MORUS trước các tấn công kênh kề, ngay cả khi đã tích hợp các lược đồ bảo vệ (kỹ thuật ẩn, kỹ thuật mặt nạ) cho MORUS nhằm nâng cao an toàn cho hệ mật.
ĐẠI HỌC BÁCH KHOA HÀ NỘI LUẬN VĂN THẠC SĨ NGHIÊN CỨU THỰC THI HỆ MẬT MORUS TRÊN THẺ JAVACARD Nguyen Thanh Long Hà Nội - 2023 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 i DANH MỤC KÝ HIỆU, TỪ VIẾT TẮT iii DANH MỤC BẢNG BIỂU iv DANH MỤC HÌNH VẼ v LỜI NÓI ĐẦU CHƯƠNG 1: TỔNG QUAN VỀ MẬT MÃ HẠNG NHẸ, HỆ MẬT MORUS 1.1 Tổng quan mật mã hạng nhẹ 1.1.1 Giới thiệu chung thuật tốn mã hóa-xác thực hạng nhẹ 1.1.2 Nguyên lý hoạt động 1.1.3 Một số ứng dụng thuật tốn mã hóa-xác thực hạng nhẹ 1.2 Hệ mật MORUS 1.2.1 Giới thiệu hệ mật MORUS 1.2.2 Các tham số hệ mật 1.2.3 Các ký hiệu quy ước 1.2.4 Hàm cập nhật trạng thái 1.2.5 Quá trình hoạt động hệ mật MORUS 13 1.2.6 Tính chất an tồn hệ mật MORUS 20 CHƯƠNG 2: TÌM HIỂU CƠNG NGHỆ JAVACARD VÀ MƠI TRƯỜNG THIẾT KẾ APPLET 24 2.1 Công nghệ JavaCard 24 2.1.1 Cấu tạo thẻ JavaCard 24 2.1.2 Vòng đời thẻ JavaCard 26 2.1.3 Tập ngôn ngữ JavaCard 27 2.1.4 Kiến trúc JavaCard 29 2.1.5 Giao thức truyền thông thẻ với giới thực 30 i 2.2 Phân tích lỗ hổng JavaCard 35 2.2.1 Một số nguy gây an toàn thẻ JavaCard 35 2.2.2 Một số công hữu lên thẻ JavaCard 37 2.3 Kỹ thuật lập trình phát triển Applet 41 2.3.1 JavaCard Applet 41 2.3.2 Tiến trình phát triển Applet 44 2.3.3 Cài đặt Applet 46 CHƯƠNG 3: THỰC THI NHÚNG HỆ MẬT MORUS VÀO THẺ JAVACARD VÀ ĐỀ XUẤT ỨNG DỤNG 49 3.1 Lập trình nhúng thuật tốn MORUS vào thẻ 50 3.1.1 Công cụ thực thi hệ mật MORUS 50 3.1.2 Cài đặt thuật toán MORUS 51 3.1.3 Biên dịch nhúng hệ mật MORUS vào thẻ JavaCard 57 3.1.4 Xây dựng giao diện mã hóa giải mã 61 3.2 Mơ tả, phân tích kết thực nghiệm 61 3.3 Đề xuất ứng dụng hệ mật MORUS mã hóa-xác thực 64 KẾT LUẬN 66 TÀI LIỆU THAM KHẢO 67 ii DANH MỤC KÝ HIỆU, TỪ VIẾT TẮT Từ viết tắt Tiếng Anh Tiếng Việt Mã hóa có xác thực AE Authenticated Encryption AEAD Authenticated Encryption with Mã hóa có xác thực với liệu Associated Data liên kết APDU Application Protocol Data Unit Đơn vị liệu giao thức ứng dụng API Application Programming Giao diện lập trình ứng dụng Interface Máy rút tiền tự động ATM Automatic Teller Machine CAESAR Competition for Authenticated Cuộc thi mã hóa có xác thực: an EEPROM Encryption: Security, Applicability, and Robustness toàn, khả áp dụng tính mạnh mẽ Ellectrically Erasable Programmable Read-Only Bộ nhớ đọc cho phép nạp/ xóa điện Memory GSM Global System for Mobile Hệ thống thơng tin di động tồn Communications cầu JCRE JavaCard Runtime Enviroment Môi trường chạy JavaCard JCVM JavaCard Virtual Machine Máy ảo JavaCard LSB Least Significant Bit Bit có trọng số thấp MAC Message Authentication Code Mã xác thực thông báo MSB Most Significant Bit Bit có trọng số cao NIST National Institute of Standards Viện tiêu chuẩn công nghệ and Technology quốc gia RAM Random Access Memory Bộ nhớ truy cập ngẫu nhiên ROM Read Only Memory Bộ nhớ đọc SIM Subcriber Identity Module Mô-đun định danh chủ thuê bao iii DANH MỤC BẢNG BIỂU Bảng 1.1 Hệ mật khóa bí mật Bảng 1.2 Các tham số hệ mật MORUS Bảng 1.3 Các phép toán dùng hệ mật MORUS Bảng 1.4 Các ký hiệu số Bảng 1.5 Hằng số dịch vòng Rotl _ xxx _ yy dùng trong MORUS 10 Bảng 1.6 Hằng số dịch vòng dùng phép dịch vòng trái MORUS 10 Bảng 1.7 Mục tiêu an toàn hệ mật MORUS 20 Bảng 2.1 Các giai đoạn phát triển thẻ JavaCard 26 Bảng 3.1 Thông số thẻ JavaCard J2A080 58 Bảng 3.2 Dung lượng file “.cap” sau biên dịch hệ mật: MORUS, ACORN AEGIS 62 Bảng 3.3 Thời gian mã hóa giải mã MORUS 62 Bảng 3.4 Thời gian mã hóa giải mã ACORN 62 Bảng 3.5 Thời gian mã hóa giải mã AEGIS 63 iv DANH MỤC HÌNH VẼ Hình 1.1 Thuật tốn mã hóa-xác thực Hình 1.2 Ngun lý hoạt động thuật tốn mã hóa-xác thực Hình 1.3 Một số ứng dụng thuật tốn mã hóa-xác thực hạng nhẹ Hình 1.4 Phép Rotl _ xxx _ yy 10 Hình 1.5 Hàm cập nhật trạng thái hệ mật MORUS 13 Hình 1.6 Sơ đồ q trình thực thi thuật tốn MORUS 14 Hình 1.7 Lưu đồ thuật tốn trình khởi tạo MORUS-640 16 Hình 1.8 Q trình mã hóa MORUS 17 Hình 1.9 Lưu đồ thuật tốn q trình mã hóa MORUS-640 18 Hình 1.10 Lưu đồ thuật tốn q trình kết thúc MORUS-640 19 Hình 2.1 Bề mặt thẻ JavaCard 25 Hình 2.2 Thiết bị đầu đọc thẻ 26 Hình 2.3 Các chân tiếp xúc thẻ JavaCard 26 Hình 2.4 Vòng đời thẻ JavaCard 27 Hình 2.5 Kiến trúc tổng quát cơng nghệ JavaCard 29 Hình 2.6 Giao thức truyền thông 30 Hình 2.7 Giao thức truyền thơng mã hóa-xác thực 31 Hình 2.8 Khung mã hóa-xác thực mơ tả tương tác máy chủ JavaCard 34 Hình 2.9 Các rò rỉ phần cứng mật mã hoạt động 38 Hình 2.10 Quá trình thu thập liệu công SCA 39 Hình 2.11 Các phép đo dịng điện tiêu thụ 40 Hình 2.12 Máy ảo JavaCard 42 Hình 2.13 Kiến trúc hệ thống thẻ JavaCard 43 Hình 2.14 Tiến trình phát triển Applet 46 Hình 2.15 Cài đặt Applet 47 Hình 3.1 Hệ phát triển tích hợp thuật tốn MORUS vào thẻ JavaCard 50 Hình 3.2 Giao diện cửa sổ hình JCIDE 51 Hình 3.3 Giao diện cửa sổ hình cơng cụ PyApduTool 51 Hình 3.4 Cấu trúc project 52 Hình 3.5 Khai báo lớp Applet 52 Hình 3.6 Các tham số chương trình 52 Hình 3.7 Định nghĩa phương thức xử lý APDU 53 Hình 3.8 Lưu đồ thuật toán phương thức xử lý APDU 53 v Hình 3.9 Định nghĩa phương thức mã hóa 54 Hình 3.10 Lưu đồ thuật tốn phương thức mã hóa 55 Hình 3.11 Định nghĩa phương thức giải mã 56 Hình 3.12 Lưu đồ thuật tốn phương thức giải mã 56 Hình 3.13 Mở cơng cụ PyApduTool trình điều khiển 59 Hình 3.14 Chọn đầu đọc kết nối đến thẻ 59 Hình 3.15 Chọn file morus.cap 60 Hình 3.16 Tải file morus.cap lên thẻ 60 Hình 3.17 Kiểm tra Package Applet tải lên thẻ 60 Hình 3.18 Giao diện chương trình mã hóa giải mã 61 Hình 3.19 Biểu đồ so sánh thời gian mã hóa MORUS với ACORN, AEGIS 63 Hình 3.20 Biểu đồ so sánh thời gian giải mã MORUS với ACORN, AEGIS 64 vi LỜI NĨI ĐẦU Trong mơi trường cơng nghệ mạng máy tính nay, tốn an tồn thơng tin ngày trở nên cần thiết cấp bách An tồn thơng tin thường địi hỏi đảm bảo tính bí mật, tồn vẹn xác thực Có hai cách tiếp cận để thực điều Cách thứ mã hóa thơng tin với thuật tốn mã khối mã dịng để đảm bảo tính bí mật, tiếp đến sử dụng thuật tốn mã xác thực thơng báo MAC (Message Authentication Code) để thực xác thực toàn vẹn Cách tiếp cận thứ hai xây dựng thuật tốn mã hóa có xác thực (gọi tắt mã hóa-xác thực) nhằm đảm bảo đồng thời tính bí mật tính xác thực cho thơng báo theo thuật toán (loại bỏ ghép nối thuật tốn mã hóa thuật tốn MAC riêng biệt) Cách tiếp cận thứ hai hướng khoa học mật mã Hơn nữa, trước phát triển hệ thống toán dùng thẻ xu hướng ứng dụng IoT (internet of things), dịch vụ liên ngân hàng dần chuyển đổi thẻ từ sang thẻ chip nhằm đáp ứng yêu cầu bảo mật ngày cao, việc nghiên cứu, tích hợp thuật tốn mật mã hạng nhẹ cho phép cài đặt thiết bị giới hạn tài nguyên lượng tiêu thụ toán hữu Dựa cơng trình cơng bố [3, 4, 5], tơi thấy MORUS thuật tốn mã hóa-xác thực phù hợp để xử lý nhanh thơng tin người dùng, hoạt động ổn định hệ nhúng đảm bảo tính bí mật tính xác thực Xuất phát từ thực tiễn trên, chọn đề tài “Nghiên cứu thực thi hệ mật MORUS thẻ JavaCard” làm đồ án với mục đích kiểm chứng tính đắn an tồn hệ mật hạng nhẹ thẻ JavaCard nhằm khẳng định khả ứng dụng thuật toán vào giao dịch dùng thẻ Để đáp ứng mục tiêu trên, nội dung đồ án thực theo chương: Chương 1: Tổng quan mật mã hạng nhẹ, hệ mật MORUS Chương trình bày tổng quan mật mã hạng nhẹ hệ mật MORUS Chương 2: Tìm hiểu công nghệ JavaCard môi trường thiết kế Applet Chương khái quát Javacard, phân tích lỗ hổng JavaCard trình bày kỹ thuật lập trình ứng dụng Applet cho hệ thống giao dịch thẻ Chương 3: Thực thi hệ mật MORUS vào thẻ JavaCard đề xuất ứng dụng Chương thực lập trình nhúng hệ mật MORUS vào thẻ JavaCard; mơ tả, phân tích kết thực nghiệm, sở đề xuất ứng dụng hệ mật MORUS mã hóa-xác thực liệu giao dịch dùng thẻ CHƯƠNG 1: TỔNG QUAN VỀ MẬT MÃ HẠNG NHẸ, HỆ MẬT MORUS Chương đồ án trình bày tổng quan mật mã hạng nhẹ: giới thiệu chung thuật toán mã hóa-xác thực hạng nhẹ, nguyên lý hoạt động số ứng dụng thuật tốn mã hóa-xác thực hạng nhẹ Trình bày hệ mật MORUS: tham số (IV, AD, khóa, Nonce Tag) hệ mật, hàm cập nhật trạng thái, tiến trình hoạt động, sau nêu lên số tính chất an tồn hệ mật MORUS 1.1 Tổng quan mật mã hạng nhẹ 1.1.1 Giới thiệu chung thuật toán mã hóa-xác thực hạng nhẹ Mật mã hạng nhẹ [1] phận mật mã nhằm mục đích cung cấp giải pháp phù hợp cho thiết bị hạn chế tài nguyên Cộng đồng mật mã học thực lượng công việc đáng kể liên quan đến mật mã học nhẹ, bao gồm triển khai hiệu chuẩn mật mã thông thường, thiết kế, phân tích thuật tốn giao thức hạng nhẹ Năm 2013, NIST khởi xướng dự án mật mã hạng nhẹ để thành lập tiêu chuẩn mật mã hành thiết bị có tài nguyên hạn chế, tiến đến phê chuẩn tiêu chí lớp mật mã hạng nhẹ chuyên dụng NIST tổ chức hội thảo mật mã hạng nhẹ để thu hút nhà mật mã học khoa học công nghệ giới hạn tài nguyên thiết bị, yêu cầu đặc điểm lớp mật mã hạng nhẹ ứng dụng giới thực [1] (AE – authenticated encryption) hay thuật toán mã hóa-xác thực liệu liên kết (AEAD – authenticated encryption with associated data) dạng hệ mật khóa đối xứng nhằm bảo đảm tính bí mật, tính tồn vẹn, tính xác thực liệu theo bước [2] (Hình 1.1) Trong đó, phép mã hóa kết hợp với khối tạo nhãn (cho phép kiểm tra tính tồn vẹn), cịn phép giải mã tiến hành kiểm tra nhãn nhận Tính bí mật bảo vệ thông tin cách chuyển đổi rõ đầu vào thành bit ngẫu nhiên độc lập, nhãn xác thực bảo đảm tính tồn vẹn ngun gốc liệu nhờ chế phát thay đổi liệu Đặc trưng có thuật tốn mã hóa-xác thực nằm chỗ cung cấp đồng thời tính bí mật tính xác thực Khóa bí mật Bản rõ Dữ liệu liên kết Bản mã (bí mật) Thuật tốn mã hóaxác thực Nhãn (xác thực) Số thơng báo Số thơng báo bí mật cơng khai Hình 1.1 Thuật tốn mã hóa-xác thực Phần lớn thuật tốn mã hóa-xác thực sử dụng mã dịng mã khối làm sở để mã hóa liệu, đồng thời ứng dụng cấu trúc bảo tồn trạng thái mã hóa Hàm cập nhật trạng thái cấp thông số từ vài đầu vào toàn đầu vào để tạo nhãn đảm bảo tính xác thực Nhãn xác thực cho phép phát nỗ lực giả mạo Đây ưu lược đồ kết hợp bảo đảm tính bí mật tính tồn vẹn Mật mã xác thực kiểu hệ mật khóa bí mật (Bảng 1.1) bảo đảm tính bí mật tính tồn vẹn tin (thơng báo) nhờ sử dụng khóa chia sẻ người gửi người nhận Bảng 1.1 Hệ mật khóa bí mật Độ dài tin Mã hóa Xác thực Mã khối Cố định Có Khơng Mã dịng Thay đổi Có Khơng MAC Thay đổi Khơng Có Mã hóa-xác thực Thay đổi Có Có Hệ mật So với hệ mật khóa cơng khai, hệ mật khóa bí mật đáp ứng hiệu suất cao hoạt động Các biến thể hệ mật khóa bí mật, gồm có: - Mã khối: tin ngắn có độ dài xác định mã hóa khóa bí mật, khóa chia sẻ người gửi người nhận Ví dụ, hệ mật mã khối phổ biến AES mã hóa khối liệu 16-byte (128 bit) khóa bí mật 128-bit, 192-bit 256-bit trường APDU Từ tham số trường APDU gửi vào Applet biết máy tính yêu cầu mã hóa hay giải mã, tiến hành gọi hàm giải mã mã hóa tương ứng Hình 3.7 Định nghĩa phương thức xử lý APDU Trong hình lệnh ADPU nhận từ đệm để phân tích, trường CLA INS chọn với giá trị khai báo ban đầu chương trình tiến hành mã hóa giải mã Ngược lại, khơng thỏa mãn điều kiện chương trình trả thơng báo có trường không định nghĩa Bắt đầu APDU từ đệm Chọn Applet Không thành công Thành công apduBuffer[ISO7816.OFFSET_CLA] = 0xB0 Sai CLA không định nghĩa Đúng OFFSEET_INS = 0x61 Đúng Mã hóa Sai OFFSEET_INS = 0x62 Sai INS khơng định nghĩa Đúng Giải mã Kết thúc Hình 3.8 Lưu đồ thuật toán phương thức xử lý APDU Định nghĩa phương thức mã hóa Một phương thức gọi, tiến hành: đọc thơng điệp (byte) liệu rõ gửi vào trường Data khối APDU lệnh để nạp vào nhớ đệm Sau tiến hành mã hóa mảng (byte) m_ramArray hàm mã hóa với tham số (m_ramArray, (short)0, dataLen, AD, ADLEN) gửi trả kết khối APDU lệnh Hình 3.9 Định nghĩa phương thức mã hóa Bắt đầu Bản rõ Sao chép rõ vào m_ramArray m_morus.init m_morus.encrypt Sao chép kết từ m_ramArray vào apdubuf Gửi kết đệm Bản mã + nhãn xác thực Kết thúc Hình 3.10 Lưu đồ thuật tốn phương thức mã hóa Định nghĩa phương thức giải mã Cũng tương tự mã hóa, phương thức giải mã gọi, tiến hành đọc liệu (byte) mã từ trường data khối APDU lệnh giải mã mảng (byte) ramArray hàm giải mã với tham số (m_ramArray, dataLen, (short)0, AD1, ADLEN1) sau gửi trả kết khối APDU lệnh Hình 3.11 Định nghĩa phương thức giải mã Trong trường hợp thẻ xác thực không hợp lệ, khối APDU lệnh gửi trả với giá trị khai báo chương trình (Hình 3.12) Bắt đầu Bản mã Sao chép đầu vào vào m_ramArray m_morus.init m_morus.decrypt Kiểm tra nhãn xác thực Không hợp lệ Hợp lệ Sao chép kết từ m_ramArray vào apdubuf 0x9583 Gửi kết đệm Bản rõ Kết thúc Hình 3.12 Lưu đồ thuật toán phương thức giải mã 3.1.3 Biên dịch nhúng hệ mật MORUS vào thẻ JavaCard Sau cài đặt thuật toán MORUS biên dịch thuật toán JCIDE, kết nhận file “morus.cap” Trong phạm vi đồ án, sử dụng loại thẻ Java J2A080 hãng NXP gắn vào đầu đọc thẻ OMNIKEY để tiến hành cài đặt thuật toán MORUS Thẻ java J2A080 đầu đọc thẻ OMNIKEY tuân theo chuẩn ISO 7816 ISO 14443A/B Bảng 3.1 nêu thông số kỹ thuật thẻ J2A080 [12]: Bảng 3.1 Thông số thẻ JavaCard J2A080 Phiên thẻ Phiên 2.2.2 Nền tảng toàn cầu Phiên 2.1.1 Đánh giá bảo mật chứng - Tiêu chuẩn chung CC EAL5++ - EMVco (VISA, CAST) - ZKA Bảo mật - Tạo khóa RSA 2048 - Mã hóa giải mã AES 256 - Thuật toán băm SHA1/ SHA224/ SHA256 - Mã hóa giả mã 3DES (ECB, CBC) - ECC lên tới 320 bits - Trình tạo số giả ngẫu nhiên (PRNG) Giao thức kênh an toàn - SCP01 - SCP02 EEPROM: 80KB - Thời gian lưu liệu: tối thiểu 25 năm - Độ bền: tối thiểu 500 000 chu kỳ ROM 200KB RAM 6144B - RAM tiêu chuẩn 256B IRAM + 3.25 KB sử dụng cho CPU - 2560B FXRAM sử dụng cho FrameXE Giao thức truyền thông Hỗ trợ Interface: T = 0, T = ATR mặc định 3B F9 13 00 00 81 31 FE 45 4A 43 4F 50 76 32 34 31 b7 01 Để tải file “morus.cap” lên thẻ, sử dụng công cụ PyApduTool giao tiếp với thẻ khối APDU lệnh Bước 1: Mở cơng cụ PyApduTool trình điều khiển JavaCOS Panel Hình 3.13 Mở cơng cụ PyApduTool trình điều khiển JavaCOS Panel Bước 2: Trong giao diện công cụ PyApduTool chọn đầu đọc thẻ (reader) OMNIKEY, sau ấn Connect Hình 3.14 Chọn đầu đọc kết nối đến thẻ Bước 3: Trong phần Manager, chọn file morus.cap để tải lên thẻ; sau chọn file morus.cap click chuột trái vào ô Download, Install Select Hình 3.15 Chọn file morus.cap Hình 3.16 Tải file morus.cap lên thẻ Bước 4: Sau tải file morus.cap lên thẻ, phải kiểm tra Package Applet xem có PackageAID AppletAID khơng Hình 3.17 Kiểm tra Package Applet tải lên thẻ Bước 5: Sau thực bước phải kiểm tra khối APDU lệnh để xem file morus.cap sau nạp lên thẻ có thực thuật toán cài đặt Như thuật toán MORUS nhúng vào thẻ JavaCard J2A080 Đồng thời nhúng thuật toán AEGIS, ACORN vào thẻ JavaCard J2A080 tương tự để so sánh hiệu suất thực thi thuật toán: MORUS, AEGIS ACORN 3.1.4 Xây dựng giao diện mã hóa giải mã Với mục đích phân tích kết mã hóa giải mã thẻ chip nhúng hệ mật MORUS, đồ án xây dựng ứng dụng mã hóa giải mã ngơn ngữ java Chương trình sử dụng thư viện “JcardSim-2.2.1.jar” hỗ trợ việc gửi lệnh từ máy tính đến thẻ nhận phản hồi từ thẻ Chương trình viết biên dịch thơng qua cơng cụ NetBeans IDE phiên 8.2, sau biên dịch, chương trình có giao diện Hình 3.18 Hình 3.18 Giao diện chương trình mã hóa giải mã Chương trình hoạt động giao diện thẻ thông minh với người dùng API nhận lệnh liệu người dùng truyền thông với thẻ thơng minh theo gói APDU Giao diện chương trình có chức chọn hệ mật để tiến hành mã hóa giải mã Giao diện chương trình API mã hóa giải mã liệu JavaCard có chức chọn đầu đọc thẻ, làm mới, kết nối đến đầu đọc thẻ Để tiến hành mã hóa giải mã, sau kết nối với thẻ thành cơng, bấm nút “Chọn File” đầu vào, sau chọn hệ mật tiến hành mã hóa giải mã Khi mã hóa giải mã xong, chương trình có thơng báo cho người dùng biết kết q trình mã hóa/giải mã Người dùng lưu file đầu đường dẫn tùy ý Nếu mã hóa giải mã thất bại, chương trình thơng báo mã hóa giải mã thất bại 3.2 Mơ tả, phân tích các kết thực nghiệm Sau xây dựng ứng dụng mã hóa giải mã, đồ án tiến hành so sánh thời gian mã hóa giải mã hệ mật MORUS với hệ mật: ACORN, AEGIS Dung lượng file “.cap” sau biên dịch hệ mật trình bày Bảng 3.2 Bảng 3.2 Dung lượng file “.cap” sau biên dịch hệ mật: MORUS, ACORN AEGIS Dung lượng file “morus.cap” 15.6 KB Dung lượng file “acorn.cap” 10KB Dung lượng file “aegis.cap” 16.9 KB Thẻ thông minh J2A080 hãng NXP Nền tảng phần cứng Bảng 3.3, Bảng 3.4, Bảng 3.5 tương ứng thể thời gian mã hóa giải mã hệ mật: MORUS, ACORN, AEGIS Bảng 3.3 Thời gian mã hóa giải mã MORUS Dung lượng tệp tin (bytes) Thời gian thực thi (ms) Bản rõ Bản mã Mã hóa Giải mã 16 53 5724 5750 32 48 6007 6043 48 64 6313 6338 64 80 6603 6629 80 96 6899 6924 96 112 7192 7219 Bảng 3.4 Thời gian mã hóa giải mã ACORN Dung lượng tệp tin (bytes) Thời gian thực thi (ms) Bản rõ Bản mã Mã hóa Giải mã 16 32 76365 75426 32 48 80950 79163 48 64 85899 85997 64 80 89599 89650 80 96 94159 92508 96 112 97915 97015 Bảng 3.5 Thời gian mã hóa giải mã AEGIS Dung lượng tệp tin (bytes) Thời gian thực thi (ms) Bản rõ Bản mã Mã hóa Giải mã 16 32 3334 3335 32 48 3536 3547 48 64 3742 3751 64 80 3946 3955 80 96 4149 4162 96 112 4354 4367 Thời gian mã hóa MORUS, ACORN, AEGIS 120000 100000 80000 60000 40000 20000 16B 32B 48B MORUS 64B ACORN 80B 96B AEGIS Hình 3.19 Biểu đồ so sánh thời gian mã hóa MORUS với ACORN, AEGIS Thời gian giải mã MORUS, ACORN, AEGIS 120000 100000 80000 60000 40000 20000 16B 32B 48B MORUS 64B ACORN 80B 96B AEGIS Hình 3.20 Biểu đồ so sánh thời gian giải mã MORUS với ACORN, AEGIS 3.3 Đề xuất ứng dụng hệ mật MORUS mã hóa-xác thực Theo Thông tư 41/2018 Ngân hàng Nhà nước Việt Nam, đến ngày 31 tháng 12 năm 2019, 35% ATM, 50% thiết bị chấp nhận thẻ điểm bán hoạt động Việt Nam Tổ chức toán thẻ tuân thủ Tiêu chuẩn sở thẻ chip nội địa Đến ngày 31 tháng 12 năm 2020, 100% ATM thiết bị chấp nhận thẻ điểm bán hoạt động Việt Nam Tổ chức toán thẻ tuân thủ Tiêu chuẩn sở thẻ chip nội địa Điều cho thấy ứng dụng thẻ thông minh cần thiết giao dịch ngân hàng Hiện nay, thẻ cước công dân Việt Nam thẻ sử dụng cơng nghệ nhận dạng mã vạch Để tăng tính tiện dụng, tạo thuận lợi cho công dân tham gia vào phủ điện tử, Bộ Cơng an triển khai thẻ cước công dân dùng thẻ chip điện tử, tiến tới tích hợp vào thẻ nhiều dịch vụ khác bảo hiểm xã hội, bảo hiểm y tế đó, cấp thiết cần nhúng thuật tốn mã hóa-xác thực để quản lý hiệu cơng dân Ngồi ra, MORUS cho phép ứng dụng để bảo mật dịch vụ khác như: e-Wallet, mobile money, E-passport,… Qua việc nghiên cứu, thực thi phân tích kết thực nghiệm phần trên, khẳng định MORUS hệ mật áp dụng giao dịch ngân hàng, thẻ cước công dân điện tử nhiều dịch vụ khác, thuật tốn hồn tồn phát triển từ đầu (kiểm sốt mã nguồn) đồng thời đáp ứng yêu cầu tính bảo mật tính xác thực Kết luận chương Kết thúc chương 3, đồ án lập trình nhúng thành công hệ mật MORUS vào thẻ Java J2A080 Từ xây dựng giao diện mã hóa, giải mã đánh giá hiệu suất thực thi hệ mật MORUS so với hệ mật: ACORN, AEGIS KẾT LUẬN Tìm hiểu tổng quan mật mã hạng nhẹ hệ mật MORUS, thủ thục hoạt động MORUS, tiến trình xử lý tính chất an tồn hệ mật Tìm hiểu cấu tạo thẻ chip thông minh; nguy an tồn số cơng hữu lên thẻ chip thơng minh Tìm hiểu cơng nghệ JavaCard, phương pháp phát triển ứng dụng Applet cho thẻ JavaCard cách giao tiếp, quản lý thẻ JavaCard Lập trình nhúng thuật tốn MORUS vào thẻ JavaCard NPX J2A080; xây dựng giao diện chương trình mã hóa giải mã; từ đánh giá hiệu suất xử lý hệ mật MORUS so sánh với hệ mật: ACORN AEGIS; rút kết luận đề xuất hướng ứng dụng cho hệ mật MORUS Hiện nay, việc ứng dụng thuật tốn mã hóa có xác thực vào thực tiễn quan tâm cộng đồng khoa học mật mã, lợi ích tính bảo mật tính xác thực Vì vậy, việc nghiên cứu ứng dụng thuật tốn mã hóa có xác thực nói chung hệ mật MORUS nói riêng có tính thực tế Tuy nhiên, số vấn đề đề tài cần phải nghiên cứu tiếp: thực thi hệ mật MORUS tảng khác (tích hợp vào chip vi điều khiển, tích hợp cho SIM điện thoại, hệ thống IoT,…) đánh giá tính bền vững hệ mật MORUS trước cơng kênh kề, tích hợp lược đồ bảo vệ (kỹ thuật ẩn, kỹ thuật mặt nạ) cho MORUS nhằm nâng cao an toàn cho hệ mật TÀI LIỆU THAM KHẢO [1] Kerry A McKay, Larry Bassham, Meltem Sönmez Turan, Nicky Mouha, [2] “Report on Lightweight Cryptography”, National Institute of Standards and Technology, March 2017 Rajesh Kumar Pal, “Implementation and Evaluation of Authenticated Encryption Algorithms on Java Card Platform”, Brno, Spring 2017 [3] [4] CAESAR: https://competitions.cr.yp.to/caesar.html Michael Fivez, “Energy Efficient Hardware Implementations of CAESAR [5] Submissions”, Academi 2015 – 2016 Hongjun Wu, Tao Huang, “The Authenticated Cipher MORUS (v2)”, Submission to CAESAR, 2016 [6] [7] Sun Microsystems “Java Card Applet Developer’s Guide”, 1998 Wolfgang Rankl and Wolfgang Effing “Smart Card Handbook - Third Edition” Translated by Kenneth Cox Kenneth Cox Technical Translations, Wassenaar, The Netherlands [8] ISO/IEC 7816-4 “Identification cards – Intergrated circuit cards” [9] Rajesh Kumar Pal, “Authenticated Encryption Schemes on Java Card”, 2019 22nd Euromicro Conference on Digital System Design (DSD) [10] Ekawat Homsirikamol, William Diehl, Ahmed Ferozpuri, Farnoud Farahmand, Malik Umar Sharif, and Kris Gaj, “GMU Hardware API for Authenticated Ciphers”, 2015 [11] Nicolas Sklavos, Ricardo Chaves, Giorgio Di Natale, Francesco Regazzoni, “Hardware Security and Trust – Design and Deployment of Integrated Circuits in a Threatened Environment”, Springer InternationalPublishing Switzerland - 2017 [12] “NXP J3A081, J2A081 and J3A041 Secure Smart Card Controller Rev.3”, NXP Semiconductors, 08 December 2010