TÌM HIỂU VÀ THỰC THI MẬT MÃ CÓ XÁC THỰC HẠNG NHẸ GRAIN TRÊN RFID Các thuật toán mã hóa hạng nhẹ lightweight cryptography là các thuật toán nhanh, an toàn ngày càng được sử dụng rộng rãi, cài đặt trong các thiết bị thâm nhập khắp nơi – pervasive devices với kích thước nhỏ, bộ vi xử lý có khả năng tính toán phù hợp phục vụ cho các yêu cầu chuyên dụng. Thuật toán Grain là thuật toán mã hóa và xác thực hạng nhẹ, thuật toán Grain được phát triển phục vụ cho mục đích sử dụng và chống lại các tấn công trên. Xuất phát từ thực tế trên, em chọn đề tài “Tìm hiểu thực thi thuật toán mật mã có xác thực hạng nhẹ Grain trên RFID”. Đồ án gồm 3 chương cụ thể như sau: Chương 1: Tổng quan về công nghệ RFID Chương này trình bày khái quát về công nghệ RFID bao gồm khái niệm, lịch sử, ứng dụng, hoạt động và tính bảo mật của công nghệ RFID. Chương 2: Mật mã hạng nhẹ viii Chương này trình bày tổng quan về mật mã hạng nhẹ, ứng dụng của mật mã hạng nhẹ, giới thiệu về thuật toán Grain. Chương 3: Thực thi thuật toán có xác thực hạng nhẹ Grain trên RFID Chương này sẽ giới thiệu module RC522 và thực thi cài đặt thuật toán Grain trên RFID. Do mật mã là lĩnh vực khoa học phức tạp và thời gian tìm hiểu, nghiên cứu tương đối khẩn trương cho nên đồ án không thể tránh khỏi những thiếu sót. Em rất mong nhận được sự đóng góp ý kiến quý báu và sự giúp đỡ của thầy, cô cùng toàn thể các bạn học viên để đồ án được hoàn thiện hơn. Về mặt cơ sở lý thuyết: • Tìm hiểu tổng quan về công nghệ RFID bao gồm thành phần, ứng dụng và ưu nhược điểm của công nghệ RFID. • Tìm hiểu về mật mã hạng nhẹ, lựa chọn một thuật toán mã hóa và đánh giá khả năng ứng dụng trên RFID. Kêt quả đạt được: • Tìm hiểu về RFID và khả năng ứng dụng trong thực tế. • Tìm hiểu về mật mã hạng nhẹ, mật mã có xác thực hạng nhẹ Grain và khả năng ứng dụng trên RFID • Triển khai thực thi thuật toán mật mã Grain trên RFID. Hướng phát triển: Em xin đề xuất hướng nghiên cứu tiếp theo để hoàn thiện hơn kết quả đạt được như sau: • Tìm hiểu các thuật toán mật mã hạng nhẹ khác như: Present, XTEA, Trivium,… • Nghiên cứu và thực thi thuật toán mật mã hạng nhẹ khác trên RFID và các công nghệ khác như: Smart card, FPGA,…
ĐẠI HỌC BÁCH KHOA HÀ NỘI LUẬN VĂN THẠC SĨ TÌM HIỂU VÀ THỰC THI MẬT MÃ CĨ XÁC THỰC HẠNG NHẸ GRAIN TRÊN RFID Nguyen Thanh Long Hà Nội - 2023 Hà Nội, 2020 MỤC LỤC MỤC LỤC i 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 CÁC KÝ HIỆU, CHỮ VIẾT TẮT iii DANH MỤC BẢNG BIỂU iv DANH MỤC HÌNH ẢNH v LỜI NÓI ĐẦU vii CHƯƠNG 1: TỔNG QUAN VỀ CÔNG NGHỆ RFID 1.1 Khái quát công nghệ RFID 1.1.1 Khái niệm 1.1.2 Lịch sử phát triển 1.1.3 Các chuẩn RFID 1.1.4 Ứng dụng công nghệ RFID 1.1.5 Ưu nhược điểm công nghệ RFID 1.2 Hệ thống RFID 1.2.1 Thẻ RFID (RFID tags) 1.2.2 Đầu đọc RFID (RFID readers) 11 1.3 Hoạt động RFID 14 1.3.1 Tần số hoạt động RFID 14 1.3.2 Giao tiếp đầu đọc thẻ 15 1.4 Tính bảo mật hệ thống RFID 17 CHƯƠNG 2: MẬT MÃ HẠNG NHẸ 20 2.1 Tổng quan mật mã hạng nhẹ 20 2.1.1 Khái niệm mật mã hạng nhẹ 20 2.1.2 Lịch sử hình thành 21 2.1.3 Tiêu chuẩn thiết kế mật mã hạng nhẹ 22 i 2.1.4 2.2 Ứng dụng mật mã hạng nhẹ 24 Mã dòng hạng nhẹ Grain 24 2.2.1 Lịch sử 24 2.2.2 Mô tả Grain 25 2.2.3 Tạo khóa 31 2.2.4 Nguyên lý thiết kế 32 2.2.5 Một số cải tiến hệ mật Grain 35 2.2.6 Phân tích Grain 36 CHƯƠNG 3: THỰC THI THUẬT TỐN CĨ XÁC THỰC HẠNG NHẸ GRAIN TRÊN RFID 42 3.1 Giới thiệu module RC522 42 3.1.1 Sơ đồ chân module MFRC522 43 3.1.2 Thẻ MIFARE cổ điển (thẻ MIFARE classic) 44 3.2 Cài đặt chương trình 45 3.2.1 Công cụ 45 3.2.2 Cài đặt chương trình 46 KẾT LUẬN 56 TÀI LIỆU THAM KHẢO 57 PHỤ LỤC 58 ii CÁC KÝ HIỆU, CHỮ VIẾT TẮT Viết tắt Tiếng Anh Tiếng Việt EPC Electronic Product Code Mã sản phẩm điện tử EPCIS EPCglobal Information Services Dịch vụ thông tin EPCglobal ERP Enterprise resource planning Phần mềm định nguồn lực systems doanh nghiệp Information Communication Công nghệ thông tin truyền Technology thông Internet of things Mạng lưới thiết bị kết nối ICT IoT Internet ISO International Organization for Tổ chức tiêu chuẩn hóa quốc tế Standardization IC Integrated circuit Vi mạch LWC Lightweight cryptography Mật mã hạng nhẹ ONS Object Naming Service Dịch vụ tên đối tượng RFID Radio Frequency Identification Nhận dạng qua tần số vô tuyến SNMP Simple network management protocol Giao thức quản lý mạng đơn giản UID Unique Identifier Định danh nhất NFSR Nonlinear feedback shift register Thanh ghi dịch phản hồi phi tuyến LFSR Linear feedback shift register Thanh ghi dịch phản hồi tuyến tính iii DANH MỤC BẢNG BIỂU Trang Bảng 1.1: Các chuẩn RFID Bảng 1.2: Tần số hoạt động hệ thống RFID 14 Bảng 2.1: Một số thuật toán mật mã hạng nhẹ 21 Bảng 2.2: Số cổng Grain các chức khác 35 Bảng 2.3: Số cổng tốc độ Grain với các giá trị t khác 35 Bảng 2.4: Độ dài khóa IV họ Grain 36 Bảng 2.5: Hàm cập nhật họ Grain 36 Bảng 2.6: Số cổng họ Grain thực với phần cứng 37 Bảng 2.7: Hiệu suất họ Grain 38 Bảng 2.8: Điểm yếu giá trị IV Grain 40 Bảng 3.1: Thông số kỹ thuật đầu đọc ghi RC522 RFID 43 iv DANH MỤC HÌNH ẢNH Hình 1.1: Mơ hình hệ thống RFID Hình 1.2: Cấu tạo thẻ RFID Hình 1.3: Đầu đọc thẻ RFID 11 Hình 1.4: Sơ đồ cấu tạo đầu đọc RFID 13 Hình 1.5: Điều chế Backscatter 16 Hình 1.6: Điều chế kiểu transmitter 16 Hình 1.7: Điều chế kiểu thẻ 17 Hình 1.8: Các khu vực bảo mật hệ thống RFID 17 Hình 2.1:Lịch sử phát triển mật mã hạng nhẹ 22 Hình 2.2: Sự thỏa hiệp thiết kế mật mã hạng nhẹ 22 Hình 2.3: Kiến trúc Grain 26 Hình 2.4: Cơ chế xác thực Grain 128a 31 Hình 2.5: Quá trình tạo khóa Grain 32 Hình 2.6: Thuật toán Grain với tốc độ tăng gấp đôi 34 Hình 3.1: Sơ đồ chân RC522 43 Hình 3.2: Lưu trữ liệu thẻ MIFARE 44 Hình 3.3: Arduino MEGA2560 Atmega 45 Hình 3.4: Mơ hình cài đặt 46 Hình 3.5: Lưu đồ quá trình mã hóa liệu 47 Hình 3.6: Lưu đồ quá trình giải mã liệu 47 Hình 3.7: Cài đặt thư viện hỗ trợ 48 Hình 3.8: Nạp code thành công 51 Hình 3.9: Bắt đầu chương trình 51 Hình 3.10: Đọc thẻ ghi liệu 52 Hình 3.11: Nhập liệu cần lưu 52 Hình 3.12: Mã hóa ghi liệu mã hóa lên thẻ thành cơng 53 v Hình 3.13: Dữ liệu sau mã hóa được lưu thẻ 53 Hình 3.14: UID thẻ khóa được lưu EEPROM 54 Hình 3.15: Giải mã thành công 54 Hình 3.16: Giải mã thất bại 55 vi LỜI NÓI ĐẦU Với phát triển ngày nhanh chóng cơng nghệ thơng tin các ứng dụng điện tử mạng, nhu cầu bảo vệ thông tin hệ thống các ứng dụng điện tử ngày được quan tâm có ý nghĩa quan trọng Các kết khoa học mật mã ngày được triển khai sâu rộng nhiều lĩnh vực Các ứng dụng mã hóa thơng tin cá nhân, trao đổi thông tin ngày được sử dụng rộng rãi trở nên quen thuộc Sự đời các hệ thống nhận dạng đáp ứng ngày nhiều cho nhu cầu nhận dạng sống Điển hình cơng nghệ RFID – Radio Frequency Identification, giúp nhận dạng người vật thể sử dụng sóng vô tuyến Tuy nhiên, việc triển khai các thiết bị RFID môi trường không kiểm soát mà đối phương truy cập vật lý tới thiết bị điều khiển thiết bị Điều làm tăng khả tấn công vật lý vào các kịch tấn công tiềm nhất các tấn công kênh kề, ví dụ phân tích vi sai/phân tích lượng tương quan tấn công xạ điện từ Thực tế các giải pháp an toàn mặt mật mã được cài đặt khơng có biện pháp chống tấn cơng kênh kề dễ dàng bị phá hủy các tấn công Vì khả an tồn các thiết bị từ việc cài đặt cần được trọng Các thuật toán mã hóa hạng nhẹ - lightweight cryptography các thuật toán nhanh, an toàn ngày được sử dụng rộng rãi, cài đặt các thiết bị thâm nhập khắp nơi – pervasive devices với kích thước nhỏ, vi xử lý có khả tính toán phù hợp phục vụ cho các yêu cầu chuyên dụng Thuật toán Grain thuật toán mã hóa xác thực hạng nhẹ, thuật toán Grain được phát triển phục vụ cho mục đích sử dụng chống lại các tấn công Xuất phát từ thực tế trên, em chọn đề tài “Tìm hiểu thực thi thuật tốn mật mã có xác thực hạng nhẹ Grain RFID” Đồ án gồm chương cụ thể sau: Chương 1: Tổng quan cơng nghệ RFID Chương trình bày khái quát công nghệ RFID bao gồm khái niệm, lịch sử, ứng dụng, hoạt động tính bảo mật công nghệ RFID Chương 2: Mật mã hạng nhẹ vii Chương trình bày tổng quan mật mã hạng nhẹ, ứng dụng mật mã hạng nhẹ, giới thiệu thuật toán Grain Chương 3: Thực thi thuật tốn có xác thực hạng nhẹ Grain RFID Chương giới thiệu module RC522 thực thi cài đặt thuật toán Grain RFID Do mật mã lĩnh vực khoa học phức tạp thời gian tìm hiểu, nghiên cứu tương đối khẩn trương đồ án khơng thể tránh khỏi thiếu sót Em rất mong nhận được đóng góp ý kiến quý báu giúp đỡ thầy, tồn thể các bạn học viên để đồ án được hoàn thiện viii CHƯƠNG 1: TỔNG QUAN VỀ CÔNG NGHỆ RFID 1.1 Khái quát công nghệ RFID 1.1.1 Khái niệm RFID (Radio Frequency Identification) phương thức giao tiếp khơng dây sử dụng sóng vơ tuyến để xác định theo dõi đối tượng, cung cấp khả ứng dụng rộng lớn cho giới đại… Hình 1.1: Mơ hình hệ thống RFID Cơng nghệ RFID sử dụng truyền thơng khơng dây dải tần sóng vô tuyến để truyền liệu từ các thẻ (Tag) đến các đầu đọc (Reader) khoảng cách xa mà không thực bất kỳ giao tiếp vật lý thẻ đầu đọc Công nghệ cho ta phương pháp truyền, nhận liệu từ điểm đến điểm khác Thẻ được đính kèm gắn vào đối tượng được nhận dạng sản phẩm, hộp pallet Đầu đọc quét liệu thẻ gửi thông tin đến sở liệu có lưu trữ liệu thẻ Hệ thống RFID có liên quan chặt chẽ với các thẻ thơng minh Giống các hệ thống thẻ thông minh, liệu được lưu trữ thiết bị mang liệu điện tử - phát đáp hay thẻ Tuy nhiên, không giống thẻ thông minh, việc cung cấp lượng cho thiết bị mang liệu trao đổi liệu thiết bị mang liệu đầu đọc đạt được mà khơng cần sử dụng các tiếp điểm điện, thay vào sử dụng từ trường điện từ Do nhiều lợi hệ thống RFID so với các hệ thống nhận dạng khác, hệ thống RFID bắt đầu phổ biến được ứng dụng rộng rãi Hình 3.16: Giải mã thất bại Kết luận chương: Trong chương triển khai mơ hình ứng dụng mã dịng Grain vào RFID sử dụng module RC522 bao gồm đầu đọc thẻ, Arduino MEGA 2560 ATmega được sử dụng khối xử lý trung tâm Chương trình được thết kế với các chức mã hóa, giải mã, kiểm tra liệu thẻ thống kê khóa sử dụng 55 KẾT LUẬN Về mặt sở lý thuyết: • Tìm hiểu tổng quan cơng nghệ RFID bao gồm thành phần, ứng dụng ưu nhược điểm công nghệ RFID • Tìm hiểu mật mã hạng nhẹ, lựa chọn thuật toán mã hóa đánh giá khả ứng dụng RFID Kêt đạt được: • Tìm hiểu RFID khả ứng dụng thực tế • Tìm hiểu mật mã hạng nhẹ, mật mã có xác thực hạng nhẹ Grain khả ứng dụng RFID • Triển khai thực thi thuật toán mật mã Grain RFID Hướng phát triển: Em xin đề xuất hướng nghiên cứu để hoàn thiện kết đạt được sau: • Tìm hiểu các thuật toán mật mã hạng nhẹ khác như: Present, XTEA, Trivium,… • Nghiên cứu thực thi thuật toán mật mã hạng nhẹ khác RFID các công nghệ khác như: Smart card, FPGA,… 56 TÀI LIỆU THAM KHẢO Nguyễn Bùi Cương, Một số kết nghiên cứu mã khối hạng nhẹ, Trường Đại học Công nghệ - Đại học quốc gia Hà Nội, 2017 [2] Lê Thị Len, Mật mã dòng mật mã nhẹ triển vọng Iot, Đại học quốc gia Hà Nội, 2017 [3] Lê Phê Đô, Mai Mạnh Trừng, Lê Trung Thực, Nguyễn Thị Hằng, Vương Thị Hạnh, Nguyễn Khắc Hưng, Đinh Thị Thúy, Lê Thị Len, Nghiên cứu số hệ mật mã nhẹ ứng dụng Iot, Trường Đại học Công nghệ - Đại học quốc gia Hà Nội, 2017 [4] Trần Duy Lai, Mật mã hạng nhẹ, Tạp chí an tồn thơng tin, 2012 [5] Klaus Finkenzeller - RFID HANDBOOK – Fundamentals and application in contactless smart cards, radio frequency identification and near-field communication, third edition, John Wiley & Sons, Ltd., 2010 [6] Shirley Gilbert, RFID Security : Tiny Encryption Algorithm And Authentication Protocols, Ryerson University, 2009 [1] [7] [8] [9] Mourad Talbi, Med Salim Bouhlel, Application of a Lightweight Encryption Algorithm to a Quantized Speech Image for Secure IoT, Creative Common CC, 2018 https://www.rfidjournal.com/faq/ Haina Zhang, Xiaoyun Wang Cryptanalysis of Stream Cipher Grain Family Key Laboratory of Cryptologic Technology and Information Security, Ministry of Education, Shandong University, Jinan 250100, China, Center for Advanced Study, Tsinghua University, Beijing 100084, China [10] Ding, Jie Guan and Lin – “Related Key Chosen IV Attack on Grain-128a Stream Cipher.” – Information Forensics and Security, IEEE Transactions on 8.5 page 803-809 – 2013 [11] Banik, Santanu Sarkar, Subhadeep and Subhamoy Maitra – “A differential fault attack on grain-128a using MACs.” – Security, Privacy, and Applied Cryptography Engineering Springer Berlin Heidelberg – 2012 57 PHỤ LỤC Code mã hóa liệu void setup() { Serial.begin(9600); SPI.begin(); RNG.begin(RNG_APP_TAG); mfrc522.PCD_Init(); mfrc522.PICC_HaltA(); mfrc522.PCD_StopCrypto1(); }} else if (val == '2') { ECRYPT_ctx ctx; MFRC522::MIFARE_Key key; for (byte i = 0; i < 6; i++) key.keyByte[i] = 0xFF; if ( ! mfrc522.PICC_IsNewCardPresent()) { return; } if ( ! mfrc522.PICC_ReadCardSerial()) { return; } byte iv[16],input[20],output[20]; Serial.println(""); Serial.print(F("UID cua the:")); for (byte i = 0; i < mfrc522.uid.size; i++) { Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "); Serial.print(mfrc522.uid.uidByte[i], HEX); input[i]=mfrc522.uid.uidByte[i]; 58 } Serial.println(""); Serial.print(F(" PICC type: ")); MFRC522::PICC_Type piccType = mfrc522.PICC_GetType(mfrc522.uid.sak); Serial.println(mfrc522.PICC_GetTypeName(piccType)); byte block; MFRC522::StatusCode status; byte len; byte buffer[50]; Serial.setTimeout(2000000L); Serial.println(F("Nhap du lieu can luu, ket thuc bang dau #")); len = Serial.readBytesUntil('#', (char *) buffer, 50) ; Serial.println(""); Serial.print(F("So byte da luu:")); Serial.println(len); int blockNumber = len / BLOCK_SIZE; if (len % BLOCK_SIZE != 0) { ++blockNumber; } Serial.print(F("So khoi duoc tao:")); Serial.println(blockNumber); byte data[blockNumber*10],data1[50],data2[50]; u8 ks[10],plaintext[10],ciphertext[10]; RNG.rand(iv, sizeof(iv)); Serial.print("Khoa ma hoa:"); for(byte i=0;i