Nghiên Cứu Thực Thi Hệ Mật ACORN Nhúng Vào Thẻ CHIP Và Đề Xuất Ứng Dụng Chính vì vậy, tôi chọn đề tài: “Nghiên cứu thực thi hệ mật ACORN nhúng vào thẻ chip thông minh và đề xuất ứng dụng” làm đồ án tốt nghiệp, với mục đích nghiên cứu về mật mã hạng nhẹ, hệ mật ACORN, đồng thời tìm hiểu về thẻ chip thông minh và các ứng dụng trên nền tảng công nghệ JavaCard. Trên cơ sở đó, thực thi hệ mật ACORN vào thẻ chip JavaCard, đánh giá hiệu suất xử lý và đề xuất ứng dụng cho thẻ chip này. 2 Để hoàn thành được mục tiêu trên, nội dung đồ án sẽ được trình bày theo 3 chương: Chương 1: Tổng quan về mật mã hạng nhẹ, hệ mật Acorn. Chương này trình bày tổng quan về mật mã hạng nhẹ và hệ mật ACORN. Chương 2: Tìm hiểu thẻ chip thông minh, công nghệ JavaCard. Chương 2 giới thiệu thẻ chip thông minh, phân tích các nguy cơ mất an toàn khi sử dụng thẻ chip thông minh. Cuối chương, trình bày nền tảng công nghệ JavaCard. Chương 3: Thực thi hệ mật ACORN và đề xuất ứng dụng dùng thẻ chip thông minh. Chương 3 thực hiện lập trình nhúng hệ mật ACORN vào thẻ chip thông minh. Mô tả, phân tích các kết quả thực nghiệm, so sánh hiệu xuất thực thi giữa hệ mật ACORN và hệ mật kinh điển AES; trên cơ sở đó đề xuất triển khai ứng dụng hệ mật ACORN trên thẻ chip thông minh.
ĐẠ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 ACORN NHÚNGVÀO THẺ CHIP VÀ ĐỀ XUẤT ỨNG DỤNG Nguyen Thanh Long Hà Nội - 2023 MỤC LỤC LỜI CẢM ƠN i LỜI CAM ĐOAN ii 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 TỔNG QUAN VỀ MẬT MÃ HẠNG NHẸ, HỆ MẬT ACORN 1.1 Tổng quan mật mã hạng nhẹ 1.1.1 Giới thiệu mật mã hạng nhẹ 1.1.2 Các yêu cầu thiết kế .4 1.2 Hệ mật Acorn 1.2.1 Các ký hiệu 1.2.2 Giới thiệu hệ mật Acorn 1.2.3 Các hàm sử dụng thuật toán ACORN 1.2.4 Q trình hoạt động thuật tốn ACORN 11 1.2.5 Tính an tồn hệ mật ACORN 17 Chương TÌM HIỂU THẺ CHIP THƠNG MINH, CƠNG NGHỆ JAVACARD 23 2.1 Tìm hiểu thẻ chip thông minh 23 2.1.1 Giới thiệu thẻ thông minh 23 2.1.2 Cấu tạo thẻ chip thông minh 26 2.1.3 Nguy an toàn thẻ chip thông minh 28 2.1.4 Một số công lên thẻ chip thông minh 30 2.2 Công nghệ JavaCard 35 2.2.1 Giới thiệu JavaCard 35 2.2.2 Máy ảo để chạy JavaCard 37 2.2.3 Môi trường chạy JavaCard 38 2.2.4 JavaCard Applet 39 2.2.5 Phương thức truyền nhận,trao đổi liệu 43 Chương THỰC THI HỆ MẬT ACORN VÀ ĐỀ XUẤT ỨNG DỤNG CHO THẺ CHIP THÔNG MINH 47 3.1 Cài đặt thuật toán ACORN 47 3.1.1 Công cụ phát triển thẻ Java (JCKit) 47 3.1.2 Cài đặt thuật toán ACORN 48 3.2 Nhúng thuật toán ACORN vào thẻ JavaCard 57 3.3 Xây dựng giao diện mã hóa giải mã 60 3.4 Đánh giá hiệu suất thực thi hệ mật ACORN thẻ JavaCard 64 KẾT LUẬN 68 TÀI LIỆU THAM KHẢO 69 CÁC KÝ HIỆU, CHỮ VIẾT TẮT Từ viết tắt, ký hiệu Cụm từ tiếng Anh Ý nghĩa AES Advanced Encryption Standard Chuẩn mã hóa liệu nâng cao APDU Application protocol data unit Đơn vị liệu giao thức ứng dụng Competition for Authenticated Encryption: Cuộc thi mã hóa có xác thực: tính bí mật, khả áp dụng Security, Applicability, and Robustness tính bền vững European Network of Excellence for Cyptology Mạng bảo mật Châu Âu Integrated Circuit Card Mạch điện tử tích hợp Thẻ JCVM JavaCard Virtual Machine Máy ảo JavaCard JVM Java Virtual Machine Máy ảo Java LFSR Linear feedback shift register Thanh ghi dịch phản hồi tuyến tính JCRE JavaCard Runtime Environment CAESAR ECRYPT ICC Môi trường thực thi JavaCard DANH MỤC BẢNG BIỂU Bảng 1: Các ký hiệu Bảng 2: Các tham số thuật toán ACORN 18 Bảng 3: Mục tiêu an tồn thuật tốn ACORN 18 Bảng 4: Bảng chân lý hàm maj(x,y,z) 21 Bảng 1: Cấu trúc câu lệnh APDU 44 Bảng 2: Cấu trúc APDU phản hồi 45 Bảng 1: Thông số JavaCard J2A080 57 Bảng 2: Kết thực thi mã hóa, giải 64 mã thuật toán ACORN Bảng 3: Kết thực thi mã hóa, giải 65 mã thuật tốn AES DANH MỤC HÌNH VẼ Hình 1: Nguyên thủy mật mã hạng nhẹ Hình 2: Ứng dụng mật mã hạng nhẹ Hình 3: Yêu cầu thiết kế mật mã hạng nhẹ Hình 4: Trạng thái thuật tốn ACORN Hình 5: Hàm tạo dịng khóa Hình 6: Hàm phản hồi Hình 7: Sơ đồ khối hàm cập nhật trạng thái 11 Hình 8: Quá trình khởi tạo 12 Hình 9: Q trình mã hóa 15 Hình 1: Thẻ nhớ 25 Hình 2: Thẻ chip thông minh 27 Hình 3: Các rị rỉ phần 31 cứng mật mã hoạt động Hình 4: Quá trình thu thập SCA 32 liệu cơng Hình 5: Các phép đo dịngđiện 34 tiêu thụ Hình 6: Máy ảo JavaCard 37 Hình 7: Kiến trúc hệ thống thẻ 39 Hình 8: Tiến trình phát triển Applet 42 Hình 9: Trao đổi thơng tin ứng dụng thẻ ứng dụng thiết bị đầu cuối 44 Hình 1: Chương trình JCIDE cho ngơn ngữ lập trình JavaCard 48 Hình 2: Cơng cụ PyApduTool 48 Hình 3: Cấu trúc project 48 vii Hình 4: Khai báo trường CLA INS 49 Hình 5: Khai báo giá trị tham số mã hóa giải mã 49 Hình 3.6: Định nghĩa phương thức xử lý lớp AcornApplet 50 Hình 7: Định nghĩa phương thức mã hóa lớp AcornApplet 50 Hình 8: Định nghĩa phương thức giải mã lớp AcornApplet 51 Hình 9: Định nghĩa hàm maj(x,y,z) ch(x,y,z) AcornCore 51 Hình 10: Hàm KSG128 52 Hình 11: Hàm FBK128 52 Hình 12: Cài đặt hàm mã hóa bit cập nhật trạng thái thuật toán ACORN 52 Hình 13: Cài đặt giai đoạn khởi tạo 53 Hình 14: Cài đặt hàm trình lý liệu liên kết thuật tốn ACORN 54 Hình 15: Cài đặt qtrình mã hóa thuật tốn ACORN 55 Hình 16: Cài đặt quátrình tạo thẻ xác thực thuật tốn ACORN 56 Hình 17: Cài đặt qtrình giải mã xác thực thuật tốn ACORN 57 Hình 18: Trình điều khiển JavaCOS Panel 59 Hình 19: Chọn đầu đọc kết nối đến thẻ 59 Hình 20: Tải file CAP lên thẻ 60 Hình 21: Kiểm tra Package Applet tải lên thẻ 60 Hình 22: Giao diện mã hóa giải mã 61 Hình 23: Thực mã hóa với thuật tốn ACORN 62 Hình 24: Trường “Thời gian xử lý” giao diện mã hóa 62 Hình 25: Thực giải mã với thuật toán ACORN 63 viii Hình 26: Trường hợp giải mã thất bại 63 Hình 27: Kết thực mã hóa giải mã thuật tốn 66 ix LỜI MỞ ĐẦU Ngày nay, hội nhập kinh tế sâu rộng mang đến cho người tiêu dùng Việt Nam hội tiếp cận với xu hướng đại giới Người tiêu dùng dễ dàng mua sắm, tốn dịch vụ sinh hoạt, giao thông, y tế mà không cần phải thời gian công sức di chuyển tới điểm giao dịch trước, thay vào việc sử dụng thiết bị đơn giản nhỏ gọn, thẻ thơng minh thực tốn trực tuyến Cùng với phát triển nhanh chóng cơng nghệ bán dẫn cho phép nhà sản xuất chip tạo linh kiện thông minh ngày nhỏ gọn, sức mạnh tính tốn ngày cao Hình thức toán trực tuyến ngày phổ biến, với việc phổ dụng giao dịch dùng thẻ thông minh nảy sinh nhiều nguy an toàn sử dụng thẻ Vấn đề đặt làm đảm bảo an tồn thơng tin giao dịch thẻ Do đó, để nâng cao tính an tồn cho người dùng, phương pháp hiệu sử dụng thẻ thơng minh tích hợp thuật tốn bảo mật có xác thực hệ thống giao dịch Trong thuật tốn ACORN thuật tốn mã hóa có xác thực với liệu liên kết hạng nhẹ, giới thiệu Hongjun Wu - nhà mật mã người Singapore, ACORN với cấu trúc mã dòng chiến thắng sau thi CAESAR NIST tổ chức Thuật tốn sử dụng khóa, véc-tơ khởi tạo có kích thước 128 bit nên đảm bảo an tồn cho q trình giao dịch dùng thẻ Chính vậy, tơi chọn đề tài: “Nghiên cứu thực thi hệ mật ACORN nhúng vào thẻ chip thông minh đề xuất ứng dụng” làm đồ án tốt nghiệp, với mục đích nghiên cứu mật mã hạng nhẹ, hệ mật ACORN, đồng thời tìm hiểu thẻ chip thơng minh ứng dụng tảng công nghệ JavaCard Trên sở đó, thực thi hệ mật ACORN vào thẻ chip JavaCard, đánh giá hiệu suất xử lý đề xuất ứng dụng cho thẻ chip AcornCore.java’ X start Page // Xu ly ban ro for(j = 0; j < ptlen; j++) { plaintextbyte = pt[j]; acornl28_enc_onebyte((byte)Oxff, (byte)0x00); ct[j] = ciphertextbyte; } for(i = 0; i < 64; i++) { if ( i = ) plaintextbyte = 1; else plaintextbyte = 0; if ( i < 32) ca = (byte)Oxff; else ca = (byte)0x00; cb = (byte)0x00; acornl28_enc_onebyte(ca, cb); } Hình 15: Cài đặt q trình mã hóa thuật tốn ACORN Khi xử lý rõ, dịng bit khóa khơng sử dụng để cập nhật trạng thái cbị = Đặc tính mã thay đổi qua 128 bước (khi giá trị ca đặt qua 128 bước sau cùng) để tách trình xử lý rõ/ mã trình tạo thẻ xác thực Tách trình tạo thẻ xác thực trình xử lý rõ/ mã nhằm ngăn việc sử dụng phần dịng khóa (có từ trình xử lý rõ/ mã) thẻ xác thực c) Quá trình tạo thẻ xác thực Sau tất cẩ rõ mã hóa, thuật tốn ACORN thực q trình tạo thẻ xác thực Qua 786 bước, thuật toán tạo thẻ xác thực T t bit cuối dịng khóa với 64 < t < 128 Quá trình tạo thẻ xác thực T sau: public byte acorn.12 8_tag_gen.er at ion { plaintextbyte = 0; ciphertextbyte = 0; ksbyte = 0; byte i; for(i = 0; i < (byte) (512/8); i++) { 54 ‘ AcornCore.java X'i start Page acornl28_en.c_onebyte ( (byte) Oxf f, (byte) Oxf f) ; if ( i >= (byte) ((byte) (512/8) - 16) ) {mac[(byte) (i-(byte) ((byte) (512/8)-16))] = ksbyte; } } return SUCCESS; } Hình 16: Cài đặt trình tạo thẻ xác thực thuật tốn ACORN d) Q trình giải mã xác thực Để thực trình giải mã, bên giải mã tiến hành khởi tạo trạng thái với đầu vào khóa K, vec-tơ khởi tạo IV, liệu liên kết AD tương tự bên mã hóa Trong q trình giải mã, bit dịng khóa kSị tạo bước thuật toán Các bit XOR với mã Cị thời điểm tương ứng để giải mã tạo bit rõ Các bit rõ giải mã cập nhật liên tục vào trạng thái để thực giải mã bit Quá trình lặp lại đến bit mã xử lý xong Sau xử lý xong bit mã, thẻ xác thực tạo phía người nhận tương tự cách thẻ xác thực tạo phía người gửi Cuối cùng, thực so sánh thẻ xác thực bên gửi bên nhận Nếu trình xác thực thành cơng rõ giải mã giống so với rõ phía bên người gửi 55 AcornCore.java X start Page // Khoi tao Ct = cipher; ctlen = cipherlen; pt = message; ptlen = messagelen; ad = authdata; adlen = authdatalen; // Xu ly du lieu lien ket for(ỉ = 0; ỉ < alien; ỉd—) ( for(i =0; i < 64; Ỉ++) { // Xu ly ban ma ptlen = (short)(ctlen - 16); for(j = 0; j < ptlen; j++) { for(i = 0; i < 64; i++) { // Kiem tra the xac thuc plaintextbyte = 0; ciphertextbyte = 0; Hình 17: Cài đặt trình giải mã xác thực thuật toán ACORN 3.2 Nhúng thuật toán ACORN vào thẻ JavaCard Sau cài đặt thuật toán ACORN biên dịch thuật toán JCIDE, kết nhận file “Acorn.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 ACORN Thẻ java J2A080 đầu đọc thẻ OMNIKEY tuân theo chuẩn ISO 7816 ISO 14443A/ B Thông số kỹ thuật thẻ Java J2A080: Bảng 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 56 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ải mã 3DES (ECB, CBC) - ECC lên tới 320 bit - 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 500000 chu kỳ ROM 200KB RAM 6144B - RAM tiêu chuẩn 256 B IRAM + 3.25 KB sử dụng cho CPU - 2560 B FXRAM sử dụng cho FameXE Giao thức truyền thông Hỗ trợ Inteface: T=0, T=1 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 “Acorn.cap” lên thẻ, sử dụng công cụ PyApduTool giao tiếp với thẻ khối lệnh APDU Bước 1: Mở công cụ PyApduTool trình điều khiển JavaCOS Panel 57 J Cl DE JCIDE is an Integrated Development Environment designed specifically for the JavaCard programming language Code Intelligence Powerful Editor 04 Feb 15 - GlobalPlaifomf s TEE Protection Profile Officially c ertified Against c ommon Criteria Graphical Debugger • 03 Feb 15 - Executive Newsletter • 02 Feb 15 - GlobalPlatfomi Board of Directors Announced • 29 Jan 15 - Call For Papers Opens For TEE Conferences 2015 • More news PyApduTool The PyApduTool is a handy tool which can communicate with the card via the reader connected to PC It is a PC/SC compliant application < Graphical * Card Manage • sw Lookup Hình 18: 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 19: Chọn đầu đọc kết nối đến thẻ Bước 3: Trong phần Manager, chọn file Acorn.cap để tải lên thẻ; sau chọn file Acorn.cap click chuột trái vào ô Download, Install Select 58 *5* PyApduTool Reader Card Type E GP CapFile Path: Remove p □ Rand ackages PackageName: Start PackageAID: Applet AID: Select Card Manager Start Hình 20: Tải file CAP lên thẻ Bước 4: Sau tải file Acorn.cap lên thẻ, phải kiểm tra Package Applet xem có PackageAID AppletAID khơng Hình 21: 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 lệnh APDU để xem file Acorn.cap sau nạp lên thẻ có thực thuật toán cài đặt Như thuật toán ACORN nhúng vào thẻ JavaCard J2A080 Đồng thời nhúng thuật toán AES-128 vào thẻ JavaCard J2A080 tương tự để so sánh hiệu xuất thực thi thuật toán ACORN AES 3.3 Xây dựng giao diện mã hóa giải mã Để xây dựng giao diện mã hóa giải mã, sử dụng phần mềm IDE NetBean 8.2, thư viện “JcardSim-2.2.1.jar” hỗ trợ việc gửi command nhận response từ thẻ Sau thực cài đặt biên dịch ứng dụng, ta giao diện hình: 59 Hình 22: Giao diện mã hóa giải mã Để thực mã hóa, giải mã Thẻ java cài đặt thuật tốn ACORN phải kết nối với máy tính thơng qua đầu đọc thẻ OMNIKEY Trên giao diện chọn đầu đọc thẻ kết nối Để thực mã hóa sau thẻ kết nối, tiến hành chọn Acorn Aes, chọn nút “chọn file”, sau bấm nút “mã hóaKết thu lưu hiển thị trường “Đầu ra” Trường “Khối lệnh APDU” hiển thị khối lệnh APDU gửi nhận q trình mã hóa Trường “Bản Mã (Cirphertext) ” hiển thị byte mã dạng Hexa Trường “Nhãn xác thực (Tag Authentication)” hiển thị byte nhãn xác thực nối vào phía sau mã Trường “Thời gian xử lý” hiển thị thời gian mã hóa Sau mã hóa xong xuất thơng báo “ Mã hóa thành cơng” 60 Hình 23: Thực mã hóa với thuật tốn ACORN Hình 24: Trường “Thời gian xử lý” giao diện mã hóa Để thực giải mã, tiến hành chọn Acorn Aes, chọn nút “chọn file”, sau đố bấm nút “giải mã” Giải mã xong lưu hiển thị trường “Đầu ra” 61 Hình 25: Thực giải mã với thuật toán ACORN Đối với thuật toán ACORN, mã bị thay đổi khơng thể giải mã được, lúc chương trình thơng báo “Giải mã thất bại! Thẻ xác thực không hợp lệ!” Hình 26: Trường hợp giải mã thất bại 3.4 Đánh giá hiệu suất thực thi hệ mật ACORN thẻ JavaCard Để đánh giá hiệu suất thực thi hệ mật ACORN, tiến hành cài đặt thuật toán AES-128 nhúng vào thẻ JavaCard J2A080 dung lượng file “.cap” sau biên dịch hai thuật toán Dung lượng file “Acorn.cap”: 9,871 bytes Dung lượng file “AES.cap ”: 4,679 bytes Đánh giá hiệu suất thực thi hai thuật toán ACORN AES-128 tảng phần cứng thẻ thông minh J2A080 hãng NXP Bảng 2: Kết thực thi mã hóa, giải mã thuật toán ACORN Dung lượng tệp tin (bytes) Thời gian mã hóa, giải mã (ms) Bản rõ Bản mã Mã hóa Giải mã 16 73204 73015 16 32 76984 76326 32 48 81673 80313 48 64 85248 83288 64 80 90280 85247 80 96 94470 92108 62 96 112 98700 98011 112 128 102806 102080 63 Bảng 3: Kết thực thi mã hóa, giải mã thuật toán AES-128 Dung lượng tệp tin (bytes) Bản mã Bản rõ Thời gian mã hóa, giải mã (ms) Mã hóa Giải mã 16 16 58 68 32 32 68 77 48 48 79 91 64 64 90 102 80 80 101 114 96 96 112 125 112 112 135 147 64 THỜI GIAN MÃ HÓA CỦA ACORN VÀ AES-128 410000 'Eo 120000 H 984 81673 85248 91031 91031 94470 100 58 68 79 90 101 102806 98700 112 135 100000 80000 60000 40000 16byte 32byte 48byte 64byte 80byte 96byte 112byte 20000 10 Dung lượng mã (byte) -•-AES -e-ACORN THỜI GIAN GIẢI MÃ CỦA ACORN VÀ AES-128 S' 10000 'c' ’5 b ’5 120000 100000 80000 60000 100 40000 16byte 32byte 48byte 64byte 80byte 96byte 112byte 20000 Dung lượng mã (byte) Hình 27: Kết thực mã hóa giải mã thuật toán ACORN AES-128 Như vậy, ta thấy thuật tốn ACORN mã hóa giải mã chậm so với thuật toán AES-128, ACORN thuật tốn thuộc hệ mã dịng, ACORN phải thực phép dịch tất bytes tin đầu vào thành bit, lại nạp bit vào byte Các phép toán dịch bit làm chậm JavaCard xử lý, nhận hiệu suất xử lý theo thời gian thực thuật toán ACORN Tuy nhiên, dung lượng file Acorn.cap chưa 65 tới 10kb phù hợp với môi trường nhúng ràng buộc tài nguyên cho thẻ thông minh, thiết bị IoT Với ưu điểm dung lượng nhỏ, thuật toán ACORN cho phép triển khai nhiều thẻ thông minh khác để ứng dụng bảo mật thông tin người dùng, thẻ xe buýt thông minh (hiện áp dụng TP Hồ Chí Minh tới áp Thủ Hà Nội) Kết luận chương Kết thúc chương cài đặt thành công hệ mật ACORN lên thẻ Java J2A080 Từ xây dựng giao diện mã hóa, giải mã đánh giá hiệu xuất thực thi hệ mật ACORN với hệ mật AES 66 KẾT LUẬN Tìm hiểu tổng quan mật mã hạng nhẹ; tìm hiểu hệ mật ACORN, thủ thục hoạt động ACORN, tiến trình xử lý tính an tồn hệ mật Tìm hiểu lịch sử, cấu tạo thẻ chip thông minh; nguy an tồn số tân cơng hữu lên thẻ chip thông minh Giới thiệu môi trường JavaCard, phương thức thiết kế nhúng ứng dụng lên thẻ JavaCard cách giao tiếp, quản lý thẻ JavaCard Thực thi hệ mật ACORN lên 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 ACORN so sánh với hệ mật khác (AES-128), rút kết luận đề xuất hướng ứng dụng cho hệ mật ACORN TÀI LIỆU THAM KHẢO [1] Lightweight Cryptography Working Group, “Cryptographic Technology Guideline (Light-weight Cryptography)”, March 2017 [2] Hongjun Wu, “ACORN: A Lightweight Authenticated Cipher (v3) ”, Submission to CAESAR, 2016 [3] CAESAR: https://competitions.cr.yp.to/caesar.html [4] Colin Chaigneau, Thomas Fuhr and Henri Gilbert, “Full Key-recovery on ACORN in Nonce-reuse and Decryption-misuse settings ”, 2015 [5] V.V Chepyzhov, T Johansson and B Smeets, “A Simple Algorithm for Fast Correlation Attacks on Stream Ciphers” In Fast Software Encryption [6] W Meier and O Staffelbach, “ Fast Correlation Attacks on Certain Stream Ciphers”, Journal of Cryptography, Page: 159-176, 1989 67 [7] N T Courtois, “Fast Algebraic Attacks on Stream Ciphers with Linear Feedback”, CRYPTO 2003 [8] S Babbage, “ A Space, Time Trade in Exhaustive Search Attacks on Stream Ciphers”, May 1995 [9] A Biryukov and A Shamir, “Cryptanalytic Time/Memory/Data Tradeos for Stream Ciphers”, In Advances in Cryptology - Asiacrypt 2000 [10] X Feng, J Liu, Z Zhou, C Wu and D Feng, “A Byte-Based Guess and Determine Attack on SOSEMANUK”, 2010 [11] I Effing, W (Wolfgang), “Smart cards-Handbooks ”, June 2002 [12] http://www.smartcardbasics.com/ SmartCardSecurityBasics [13] Sun Microsystems, Inc, “Java Card Applet Developer’s Guide”, July 1998 [14] Rajesh Kumar Pal, “Implementation and Evaluation of Authenticated Encryption Algorithms on Java Card Platform ”, Brno, Spring 2017 [15] Manfred Aigner and Elisabeth Oswald, “Power Analysis Tutorial” [16] Mangard Stefan, Oswald Elisabeth, Popp Thomas, "Power Analysis Attacks Revealing the Secrets of Smart Cards", Springer, 2007 68