1. Trang chủ
  2. » Luận Văn - Báo Cáo

THỰC THI HỆ MẬT CLOC NHÚNG VÀO THẺ CHIP THÔNG MINH

66 0 0

Đ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

Chương 1: Tổng quan về mật mã hạng nhẹ và hệ mật CLOC Chương này trình bày những kiến thức tổng quan về mật mã hạng nhẹ, các yêu cầu thiết kế đối với các thuật toán mật mã hạng nhẹ. Trong chương 1 cũng trình bày các hàm, quá trình hoạt động và sự an toàn của hệ mật CLOC. Chương 2: Môi trường phát triển ứng dụng thẻ chip thông minh Chương này trình bày về môi trường phát triển ứng dụng thẻ chip thông minh. Trong đó các giai đoạn phát triển ứng dụng trên thẻ thông minh, khái niệm thẻ thông minh, phân loại và cấu trúc thẻ cũng như cách thức hoạt động của thẻ sẽ được làm rõ trong chương này. Trong chương 2 cũng nghiên cứu tìm hiểu môi trường phát triển ứng dụng thẻ chip JavaCard, các thông số của thẻ chip nghiên cứu trong phạm vi đề tài. Chương 3: Thực thi hệ mật CLOC và đề xuất ứng dụng Trong chương 3 sẽ trình bày về việc tiến hành xây dựng chương trình hệ mật CLOC và nạp chương trình lên thẻ chip thông minh. Trong chương này cũng phân tích, đánh giá kết quả việc thực thi hệ mật CLOC và đề xuất ứng dụng bảo mật và xác thực trong thực tế. 1. Tìm hiểu tổng quan về mật mã hạng nhẹ và hệ mật CLOC, các khái niệm, cấu trúc của hệ mật này; 2. Nghiên cứu tìm hiểu môi trường phát triển ứng dụng thẻ chip thông minh, tìm hiểu về thẻ thông minh và môi trường JavaCard; 3. Cài đặt và thực thi hệ mật CLOC lên môi trường thẻ thông minh cụ thể là JavaCard; 4. Xây dựng trình API mã hóa và giải mã tương tác với thẻ thông minh, nhằm mục đích phân tích các kết quả thực nghiệm. Ứng dụng các thuật toán mã hóa có xác thực trên nền tảng thẻ thông minh đang rất được quan tâm trong cộng đồng khoa học mật mã, bởi những lợi ích nó đem lại về tính an toàn, cũng như hiệu suất thực thi. Vì vậy, việc nghiên cứu các thuật toán mã hóa có xác thực nói chung và CLOC nói riêng nhằm ứng dụng vào thẻ thông minh là vấn đề thực tế. Tuy nhiên, vẫn còn một số yêu cầu cần tiếp tục phải nghiên cứu tiếp như: 1. Nghiên cứu và thực nghiệm các tấn công lên thẻ thông minh nhúng hệ mật CLOC để chứng minh tính bền vững của hệ mật này; 2. Thiết kế ứng dụng thẻ thông minh dùng hệ mật CLOC trong các lĩnh vực cụ thể, như: giao dịch ngân hàng, kiểm soát truy cập,...

ĐẠ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 CLOC NHÚNG VÀO THẺ CHIP THÔNG MINH Nguyen Thanh Long Hà Nội - 2023 MỤC LỤC Mục lục i Lời cảm ơn iii Lời cam đoan iv Danh mục ký hiệu, từ viết tắt v Danh mục bảng biểu vi Danh mục hình ảnh vii Lời mở đầu Chương TỔNG QUAN MẬT MÃ HẠNG NHẸ VÀ HỆ MẬT CLOC 1.1 Tổng quan mật mã hạng nhẹ 1.1.1 Phạm vi ứng dụng 1.1.2 Hiệu suất 1.1.3 Các yêu cầu thiết kế thuật toán 1.2 Hệ mật CLOC 1.2.1 Hệ mật có xác thực 1.2.2 Tham số kỹ thuật 1.2.3 Mục tiêu 18 1.3 Kết luận chương 19 Chương MÔI TRƯỜNG PHÁT TRIỂN ỨNG DỤNG THẺ CHIP THÔNG MINH 20 2.1 Các giai đoạn phát triển ứng dụng thẻ 20 2.1.1 Thẻ thông minh 20 2.1.2 Phân loại thẻ thông minh 22 2.1.3 Vịng đời thẻ thơng minh 26 2.1.4 Giao thức truyền thông thẻ với giới thực .27 2.2 Môi trường phát triển ứng dụng thẻ thông minh 31 2.2.1 Giới thiệu JavaCard 31 2.2.2 Môi trường JavaCard 33 2.2.3 JavaCard Applet 35 2.2.4 Thẻ J2A080 39 2.3 Kết luận chương 41 Chương THỰC THI HỆ MẬT CLOC VÀ ĐỀ XUẤT ỨNG DỤNG 42 3.1 Thực thi hệ mật CLOC 42 3.1.1 Công cụ thực thi hệ mật CLOC 42 3.1.2 Thiết kế hệ mật CLOC .45 3.1.3 Nạp chương trình lên thẻ 48 3.2 Phân tích kết thực nghiệm đề xuất triển khai hệ mật CLOC ứng dụng bảo mật xác thực thực tế 52 3.2.1 Xây dựng ứng dụng mã hóa giải mã .52 3.2.2 Phân tích kết thực nghiệ m .53 3.2.3 Đề xuất triển khai hệ mật CLOC ứng dụng bảo mật xác thực thực tế 56 3.3 Kết luận chương 56 Kết luận .57 Tài liệu tham khảo 58 DANH MỤC KÝ HIỆU, TỪ VIẾT TẮT Viết tắt AE AEAD AES APDU API CAESAR EEPROM GSM JCRE JCVM MAC NIST PKI PRP RFID RAM ROM SIM SSL TLS Tiếng Anh Authenticated Encryption Authenticated Encryption with Associated Data Advanced Encryption Standard Application Protocol Data Unit Application Programming Interface Competition for Authenticated Encryption: Security, Applicability, and Robustness Electrically Erasable Programmable Read-Only Memory Global System for Mobile Communications JavaCard Runtime Environment JavaCard Virtual Machine Message Authentication Code National Institute of Standards and Technology Public Key Infrastructure Pseudorandom permutation Radio Frequency Identification Random Access Memory Read Only Memory Subscriber Identity Module Secure Sockets Layer Transport Layer Security Tiếng Việt Mã hóa có xác thực Mã hóa có xác thực với liệu liên kết Chuẩn mã hóa liệu tiên tiến Đơn vị liệu giao thức ứng dụng Giao diện lập trình ứng dụng Cuộc thi mã hóa có xác thực: an tồn, khả áp dụng tính mạnh mẽ Bộ nhớ đọc cho phép nạp/xóa điện Hệ thống thơng tin di động tồn cầu Mơi trường chạy JavaCard Máy ảo JavaCard Mã xác thực thông báo Viện tiêu chuẩn cơng nghệ quốc gia Hạ tầng khóa cơng khai Hốn vị giả ngẫu nhiên Cơng nghệ nhận dạng qua tần số vô tuyến Bộ nhớ truy cập ngẫu nhiên Bộ nhớ đọc Mô-đun nhận dạng chủ thuê bao Bảo mật tầng cổng Bảo mật tầng giao vận DANH MỤC BẢNG BIỂU • Bảng 1 Các giá trị param tương ứng với tham số 17 Bảng Mục tiêu bảo mật ứng với tính bí mật 19 Bảng Mục tiêu bảo mật ứng với tính tồn vẹn 19 Bảng Các giai đoạn phát triển thẻ thông minh 27 Bảng 2 Thông số kỹ thuật thẻ J2A080 39 Biểu đồ So sánh thời gian mã hóa CLOC AES-128 55 Biểu đồ So sánh thời gian giải mã CLOC AES-128 55 DANH MỤC HÌNH ẢNH Hình 1 Hệ mã có xác thực Hình Lược đồ thuật tốn mã hóa CLOC 12 Hình Hàm mã hóa giải mã CLOC 12 Hình Các thành phần CLOC 13 Hình Khởi tạo giá trị IV 14 Hình Phép mã hóa giải mã .14 Hình Tạo thẻ xác thực T .15 Hình 8Giá trị V khởi tạo từ hàmHASH 15 Hình 9Q trình mã hóa giải mã 16 Hình 10 Thẻ xác thực tạo với cáctrườnghợp 17 Hình Thẻ thơng minh .20 Hình 2 Phân loại thẻ thông minh 22 Hình Các chân tiếp xúc thẻ 23 Hình Thẻ nhớ thơng thường 24 Hình Thẻ không tiếp xúc 26 Hình Vịng đời thẻ thông minh .27 Hình Kiến trúc hệ thống JavaCard 34 Hình Quá trình xử lý 37 Hình Giao diện cửa sổ hình JCIDE .43 Hình Giao diện cửa sổ hình chương trình pyResMan 44 Hình 3 Cấu trúc project .45 Hình Khai báo lớp Applet 45 Hình Các tham số chương trình .46 Hình Định nghĩa phương thứcxử lý APDU 46 Hình Định nghĩa hàm mã hóa .47 Hình Định nghĩa hàm giải mã .48 Hình Trạng thái kết nối với thẻ 49 Hình 10 Trạng thái thẻ trống 49 Hình 11 Chọn đường dẫn để nạp file “cap” 50 Hình 12 Nạp file “cloc.cap” vào thẻ 50 Hình 13 Applet xuất thẻ 51 Hình 14 Giao diện chương trình mã hóa giải mã 52 LỜI MỞ ĐẦU Ngày nay, phát triển khoa học công nghệ mang đến cho người dùng nhiều dịch vụ thơng minh tiện ích, phải kể đến thẻ chip thơng minh Việc ứng dụng thẻ chip thông minh hoạt động hàng ngày giao dịch ngân hàng, kiểm soát gửi/nhận xe, tự động mở cửa thang máy, đóng/khóa cửa nhà, toán tiền điện, nước giúp cho người dùng thuận tiện sinh hoạt Tuy nhiên, kèm theo tính tiện lợi thách thức việc đảm bảo an toàn cho giao dịch sử dụng thẻ chip thông minh Vấn đề đặt nghiên cứu giải pháp an tồn để chống cơng lên thẻ chip thơng minh Trong thuật tốn mật mã thông thường yêu cầu phải hoạt động mơi trường có tài ngun lớn thuật tốn mật mã hạng nhẹ bật với ưu điểm cung cấp giải pháp phù hợp cho thiết bị hạn chế tài ngun thẻ chip thơng minh Vì vậy, việc nghiên cứu thuật toán mật mã hạng nhẹ có xác thực để tích hợp lên thẻ chip thông minh yêu cầu cấp thiết Dựa nhiều tài liệu công bố [1,2,3], nhận thấy CLOC hệ mật có xác thực hoạt động theo kiểu mã khối, thích hợp để xử lý liệu đầu vào nhỏ, hoạt động ổn định linh kiện nhúng CLOC đảm bảo tính bí mật xác thực, đồng thời đạt hiệu suất cao thời gian tính tốn Chính vậy, chọn đề tài: “Nghiên cứu thực thi hệ mật CLOC nhúng vào thẻ chip thông minh” làm đồ án với mục đích nghiên cứu hệ mật có xác thực CLOC, nghiên cứu tìm hiểu mơi trường phát triển ứng dụng thẻ chip thông minh, từ lập trình nhúng hệ mật CLOC vào thẻ chip thơng minh sau mơ tả, phân tích kết thực nghiệm đề xuất triển khai ứng dụng hệ mật CLOC cho thẻ thông minh Đồ án tốt nghiệp tơi trình bày chương: Chương 1: Tổng quan mật mã hạng nhẹ hệ mật CLOC Chương trình bày kiến thức tổng quan mật mã hạng nhẹ, yêu cầu thiết kế thuật toán mật mã hạng nhẹ Trong chương trình bày hàm, trình hoạt động an tồn hệ mật CLOC Chương 2: Môi trường phát triển ứng dụng thẻ chip thơng minh Chương trình bày mơi trường phát triển ứng dụng thẻ chip thơng minh Trong giai đoạn phát triển ứng dụng thẻ thông minh, khái niệm thẻ thông minh, phân loại cấu trúc thẻ cách thức hoạt động thẻ làm rõ chương Trong chương nghiên cứu tìm hiểu mơi trường phát triển ứng dụng thẻ chip JavaCard, thông số thẻ chip nghiên cứu phạm vi đề tài Chương 3: Thực thi hệ mật CLOC đề xuất ứng dụng Trong chương trình bày việc tiến hành xây dựng chương trình hệ mật CLOC nạp chương trình lên thẻ chip thông minh Trong chương phân tích, đánh giá kết việc thực thi hệ mật CLOC đề xuất ứng dụng bảo mật xác thực thực tế để gửi lệnh APDU, thực thi tập lệnh APDU, gỡ lỗi lệnh giao thức ISO14443 lệnh Mifare với đầu đọc R502 SPY Nó giúp quản lý tài nguyên thẻ GP pyResMan dựa dự án nguồn mở pyScard GlobalPl Platform Hình Giao diện cửa sổ hình chương trình pyResMan 44 3.1.2 Thiết kế hệ mật CLOC Đầu tiên cần phải xây dựng cấu trúc project cho chương trình Cấu trúc project sau: 0-Ê7 cloc Ẻ)" Eb cloc ị |Ấ| ClocApplet ■ |u| ClocCore Hình 3 Cấu trúc project Để cài đặt hệ mật CLOC tạo project với cấu trúc • class ClocCore chứa cài đặt thuật tốn hệ mật • class ClocApplet chứa phương thức Applet Lớp chịu trách nhiệm nhận lệnh từ máy tính gọi đến lớp Core để tiến hành q trình mã hóa giải mã, lớp chịu trách nhiệm gửi kết trả cho máy tính Cần khai báo lớp Applet cho chương trình thành phần bắt buộc kế thừa lớp JavaCard.framework.Applet 17 18 19 20 21 22 23 24 25 public class ClocApplet extends javacard.framework.Applet // MAIN INSTRUCTION CLASS final static byte CLA_SIMPLEAPPLET = (byte) OxBO; // INSTRUCTIONS final static byte INS_CLOCENCRYPTION final static byte INS_CLOCDECRYPTION = (byte) 0x61; = (byte) 0x62; Hình Khai báo lớp Applet Khai báo giá trị tham số cho hệ mật CLOC Các tham số Hình bao gồm AD, AD1 (dữ liệu liên kết); ADLEN, ADLEN1 (độ dài liệu liên kết); NSEC, NSEC1 (số thơng báo bí mật); NPUB, NPUB1 (số thơng 45 báo cơng khai); KEY, KEY1 (khóa mã hóa giải mã), KEYLEN, KEYLEN1 (độ dài khóa mã hóa giải mã) 39 //Tham so ma hoa byte[] AD =((byte)ũxff, (byte)ŨxOl, (byte)ũxũ2, (byte)ũx03, (byte)0x04, (byte)0x05, (byte)0xũ6, (byte)Oxũ?, (byte)ũxũB, short ADLEỈỈ = (short)AD length; byte[] NSEC = ((byte)ŨXŨO, (byte)ũxOO, (byte)0x00, (byte)OxOŨ, (byte)0x00, (byte)OxOO, (byte)0x00, (byte)0x00, (byte)Oxũl byte[] NPUB = {(byte)OxOŨ, (byte)ũxll, (byte)0x22, (byte)ũx33, (byte)ũx44, (byte)0x55, (byte)ũx66, (byte)ũx77, (bỵte)ũx8! byte[] KEY =((byte)ũxũl, (byte)ŨxlO, (byte)0x20, (byte)0x30, (byte)0x4ũ, (byte)0x50, (byte)OxỄŨ, (byte)0x70, (byte)ũx80, short KEYLEN = (short)KEY.length; 46 47 //Tham 30 giai ma byte[] ADI =((byte)Oxff, (bỵte)ũxOl, (byte)0x02, (byte)0x03, (byte)ũx04, (byte)ũxũ5, (byte)0x06, (byte)ũxũ7, (byte)ŨXŨ8, short ADLEN1 = (short)ADI.length; byte[] NSEC1 ={(byte)0x00, (byte)0x00, (byte)OxOO, (byte)0x00, (byte)OxOO, (byte)ŨxOO, (byte)ŨxOŨ, (byte)ũxũũ, (byte) 0x1 51 V byte[] NPUB1 = ((byte)OxOO, (byte)0x11, (byte)0x22, (byte)0x33, (byte)0x44, (byte)0x55, (byte)ũxỂỄ, (byte)ũx77, (byte) 0x1 52 V bỵte[] KEĨ1 = {(byte)Oxũl, (byte)0x10, (byte)0x2ũ, (byte)ũx3ũ, (byte)0x4ũ, (byte)ũx5ũ, (byte)OxỄŨ, (byte)0x70, (byte) 0x1 short KEYLEN1 = (short)KEY1.length; 54 ' Hình Các tham số chương trình Tiến hành định nghĩa phương thức public void process (APDU apdu), phương thức đọc khối lệnh APDU gửi vào từ máy tính phân tích trường APDU Từ tham số trường APDU gửi vào Applet biết máy tính 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 public void process(APDU apdu) throws ISOException 139 140 141 142 143 144 145 146 141 X/ 148 142 X/ 150 151 152 153 154 155 156 157 158 159 16Ũ // get the APDU buffer byte[] apduBuffer = apdu.getBuffer0; // ignore the applet select command dispatched to the process if (selectingApplet()) return; // APDU instruction parser if (apduBuffer[ISO7816.OFFSET_CLA] == CLA_SIMPLEAPPLET) { switch ( INSCLOCENCRYPTION: CLOCEncrỵption(apdu); break; INS_CLOCDECRYPTION: CLOCDecryption(apdu); break; apduBuffer[ISO7816.OFFSET_INS] ) case case default : // The INS code is not supported by the dispatcher ISOException.throwlt{ ISO7816.SW_INS_NOT_SUPPORTED ) ; break ; else ISOException.throwlt( ISO7816.SW_CLA_NOT_SUPPORTED); Hình Đị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 46 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 Đị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 lệnh APDU để nạp vào nhớ đệm Sau tiến hành mã hóa mảng (byte) m_ramArrayPt hàm mã hóa với tham số (mramArrayCt, (short)0, m ramArrayPt, dataLen, AD, ADLEN, NSEC, NPUB, KEY, KEYLEN) gửi trả kết khối lệnh APDU 163 V public void CLOCEncryption(APDU apdu){ byte[] apdubuf = apdu.getBuffer0; short dataLen = apdu.setlncomingAndReceive(); 166 // Copy message to itiramArrayPt for encryption util.arrayCopyNonAtomic(apdubuf, ISO7816.OFFSET_CDATA, m_ramArrayPt, (short)0, dataLen); 167 169 mycloc.ClocCorelnitialization(mramArrayCt, (short)1’1, mramArrayPt, dataLen, AD, ADLEN, NSEC, NPUB, KEY, KEYLEN); //CLOC Encryption mycloc.crypto_aead_encrypt{); 172 173 174 J // Copy ciphertext util.arrayCopyNonAtomic(m_ramArrayCt, (short)'j, apdubuf, (short)O, (short)(dataLen-8)); 175 J 177 178 180 J // SEND OUTGOING BUFFER ) apdu.setOutgoingAndSendt(short)0, (short)(dataLen-8)); ■ ■ 1m Hình Định nghĩa hàm 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 Nó tiến hành đọc liệu (byte) mã từ trường data khối lệnh APDU giải mã mảng (byte) ramArrayCt hàm giải mã với tham số (mramArrayCt, dataLen, m ramArrayPt, (short)0, AD1, ADLEN1, NSEC1, NPUB1, KEY1,KEYLEN1) sau gửi trả kết khối lệnh APDU 183 V public void CLOCDecryption(APDU apdu){ byte[] apdubuf = apdu.getBuffer (); short dataLen = apdu.setlncomingAndReceiveO; byte check ; 187 // Copy cipher to m_ramArrayCt for decryption util.arrayCopyNonAtomic(apdubuf, ISO7B16.OFFSET_CDATA, m_ramArrayCt, (short)0, datahen); 189 mycloc.ClocCoreInitialization(ir_raniArraỵCt, dataLen, m_ramArraỵPt, (short)O, ADI, ADLEN1, NSEC1, NPUB1, KEY1, KEYLEN1); 192 // CLOC Decryption check = mycloc.crypto_aead_decrypt(); 194 V if (check == 0){ Util.arrayCopyNonAtomic(m_ramArrayPt, (short)O, apdubuf, (short)O, (short)(datalen-8));Ị 47 196 V 198 199 200 202 203 } else{ ISOException.throwlt(SW_DECRYPT_FAILED); ) ■ // Copy retrieved message (plaintext) // SEND OUTGOING BUFFER apdu.setOutgoingAndSend{(short)0, (short)(dataLen-8)); ■ ■ ■ } Hình Định nghĩa hàm giải mã Trong trường hợp thẻ xác thực không hợp lệ, khối lệnh APDU gửi trả với giá trị khai báo chương trình 3.1.3 Nạp chương trình lên thẻ Sau xây dựng thành cơng chương trình hệ mật CLOC biên dịch công cụ JCIDE, kết trình cho file “cloc.cap” Để nạp file lên thẻ JavaCard, cần thông qua công cụ pyResMan Như trình bày mục 3.1.1 pyResMan sử dụng để gửi lệnh APDU, thực thi tập lệnh APDU, gỡ lỗi lệnh giao thức ISO14443 Các bước thực nạp chương trình theo trình tự sau: Kết nối máy tính với thẻ thơng qua đầu đọc thẻ Trong Hình 9, sau chọn đầu đọc thẻ OMNIKEY CardMan 5x21 0, bấm kết nối, hình xuất thơng báo thẻ kết nối 48 Hình Trạng thái kết nối với thẻ Chọn file “cap” để nạp lên thẻ Để nạp file “cap” lên thẻ, cần kiểm tra xem thẻ có tồn applet khơng Trong mục GlobalPlatform/Content Viewer kiểm tra trạng thái thẻ Hình 10 cho thấy thẻ hoàn toàn trống rỗng, số AID thẻ A0 00 00 00 03 00 00 00 Hình 10 Trạng thái thẻ trống 49 Sau kiểm tra thẻ, chọn đường dẫn đến thư mục chứa file “cap” cần nạp lên thẻ Trong Hình 11 file “cloc.cap” chọn thơng qua phím Browse, file chọn xuất AID package AID applet Hình 11 Chọn đường dẫn để nạp file “cap” Sau xác định file cần nạp vào thẻ chip, chọn Load, chọn Install bấm Ok để thực nạp chương trình vào thẻ Hình 12 Nạp file “cloc.cap” vào thẻ 50 Sau hồn tất q trình nạp file “cap” vào thẻ Trong mục Content Viewer, thấy rõ Applet xuất có AID với AID cài đặt Hình 13 Applet xuất thẻ Vậy, chương trình hệ mật CLOC nạp lên thẻ sẵn sàng để thực mã hóa giải mã liệu Phân vùng khoanh đỏ Hình 13 thể Applet cài đặt lên thẻ chip thông minh 51 3.2 Phân tích kết thực nghiệm đề xuất triển khai hệ mật CLOC ứng dụng bảo mật xác thực thực tế 3.2.1 Xây dựng ứng dụng 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 CLOC, 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 14 Hình 14 Giao diện chương trình mã hóa giải mã Trên 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ã Để tiến hành thực nghiệm, tơi tiến hành kết hợp thuật tốn AES-128 hoạt động chế độ CBC để so sánh trực quan giao diện 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, cần bấm phím “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.2 Phân tích kết thực nghiệm Sau xây dựng ứng dụng mã hóa giải mã, tiến hành so sánh thời gian mã hóa giải mã hệ mật CLOC với thuật toán AES128 (hoạt động chế độ CBC) Dung lượng file “.cap” sau biên dịch hai thuật toán CLOC AES-128 trình bày Bảng Bảng 52 Dung lượng file “cloc.cap” 12,304 byte Dung lượng file “AES.cap” 4,799 byte Nền tảng phần cứng Thẻ thông minh J2A080 hãng NXP[9] Bảng Bảng 3 thể kết mã hóa giải mã hai thuật toán CLOC AES-128 53 Bảng Kết thời gian mã hóa giải mã CLOC Dung lượng tệp tin (byte) Thời gian thực thi CLOC (ms) Bản rõ Bản mã Mã hóa Giải mã 106 128 16 24 149 171 32 40 197 214 48 56 240 257 64 72 289 303 80 88 335 346 96 104 377 393 112 120 424 438 Bảng 3 Kết thời gian mã hóa giải mã AES-128 Dung lượng tệp tin (byte) Bản rõ Bản mã Thời gian thực thi AES-128 (ms) Mã hóa Giải mã 16 16 33 42 32 32 49 50 48 48 58 59 64 64 66 67 80 80 75 76 96 96 84 85 112 112 92 93 54 Biểu đồ So sánh thời gian mã hóa CLOC AES-128 Thời gian mã hóa CLOC AES-128 Dung lượng rõ (byte) 450 400 ' 350 un E 300 C 250 (U 'tuo 200 150 100 50 CLOC AES-128 Biểu đồ So sánh thời gian giải mã CLOC AES-128 Thời gian giải mã CLOC AES-128 450 400 350 un 300 250 (U 200 150 16 32 48 64 80 96 112 100 50 Dung lượng rõ (byte) 55 CLOC AES-128 Từ hai biểu đồ so sánh thời gian mã hóa thời gian giải mã CLOC so với AES ta thấy, thời gian thực thi CLOC chậm AES-128 Tuy nhiên, chậm AES-128 ta dễ thấy thời gian thực thi CLOC nhanh đảm bảo hiệu suất tốt 3.2.3 Đề xuất triển khai hệ mật CLOC ứng dụng bảo mật xác thực thực tế 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 Qua việc nghiên cứu, thực thi phân tích kết thực nghiệm phần trên, thấy CLOC hệ mật áp dụng giao dịch ngân hàng khả tính tốn nhanh, đảm bảo u cầu bảo mật xác thực 3.3 Kết luận chương Trong chương 3, tiến hành thực thi hệ mật CLOC so sánh kết thời gian mã hóa/giải mã CLOC so với AES-128 Mặc dù thời gian xử lý CLOC chậm AES-128 thời gian xử lý CLOC nhanh (128ms xử lý rõ có dung lượng 16 byte), điều chứng tỏ CLOC thích hợp để tích hợp nhúng lên thẻ chip thơng minh CLOC hệ mật áp dụng giao dịch ngân hàng khả tính tốn nhanh, đảm bảo yêu cầu bảo mật xác thực 56 KẾT LUẬN Tìm hiểu tổng quan mật mã hạng nhẹ hệ mật CLOC, khái niệm, cấu trúc hệ mật này; Nghiên cứu tìm hiểu môi trường phát triển ứng dụng thẻ chip thông minh, tìm hiểu thẻ thơng minh mơi trường JavaCard; Cài đặt thực thi hệ mật CLOC lên môi trường thẻ thông minh cụ thể JavaCard; Xây dựng trình API mã hóa giải mã tương tác với thẻ thơng minh, nhằm mục đích phân tích kết thực nghiệm Ứng dụng thuật toán mã hóa có xác thực tảng thẻ thơng minh quan tâm cộng đồng khoa học mật mã, lợi ích đem lại tính 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 CLOC nói riêng nhằm ứng dụng vào thẻ thông minh vấn đề thực tế Tuy nhiên, số yêu cầu cần tiếp tục phải nghiên cứu tiếp như: Nghiên cứu thực nghiệm công lên thẻ thông minh nhúng hệ mật CLOC để chứng minh tính bền vững hệ mật này; Thiết kế ứng dụng thẻ thông minh dùng hệ mật CLOC lĩnh vực cụ thể, như: giao dịch ngân hàng, kiểm soát truy cập, TÀI LIỆU THAM KHẢO [1] Tetsu Iwata, Kazuhiko Minematsu, Jian Guo, and Sumio Morioka, “CLOC: Compact Low-Overhead CFB”” August 29, 2015 [2] Tetsu Iwata, Kazuhiko Minematsu, Jian Guo, and Sumio Morioka “CLOC: Authenticated Encryption for Short Input’” In International Workshop on Fast Software Encryption, pages 149-167, 2014 [3] CAESAR: https://competitions.cr.yp.to/caesar.html [4] Kerry A McKay, Larry Bassham, Meltem Sonmez Turan, Nicky 57 Mouha, “Report on Lightweight Cryptography””, National Institute of Standards and Technology, March 2017 [5] Smart Card & Security Basics : http://www.smartcardbasics.com [6] Wolfgang Rankl and Wolfgang Effing “Smart Card Handbook Third Edition” Translated by Kenneth Cox Kenneth Cox Technical Translations, Wassenaar, The Netherlands [7] ISO/IEC 7816-4 “Identification cards - Intergrated circuit cards” [8] Jean-Jacques Vandewalle and EricVétillard, “Developing Smart Card - Based Applications Using Java Card”, Gemplus Research Group [9] “NXP J3A081, J2A081 and J3A041 Secure Smart Card Controller Rev.3”, NXP Semiconductors, 08 December 2010 [10] Source code AES-128: https://javacardos.com [11] Surce code CLOC: 58

Ngày đăng: 21/08/2023, 08:52

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w