Chương 1. MẬT MÃ DÒNG TRONG MẬT MÃ NHẸ 1. Tổng quan về mật mã nhẹ 1. Một số khái niệm cơ bản 1.
Hệ mật mã Hệ mật mã [17]: là một hệ bao gồm 5 thành phần (P, C, K, E, D) thoả mãn các tính chất sau: • P (Plaintext) là tập hợp hữu hạn các bản rõ có thể. • C (Ciphertext) là tập hợp hữu hạn các bản mã có thể. • K (Key) là tập hợp các bản khoá có thể. • E (Encrytion) là tập hợp các qui tắc mã hoá có thể.
• D (Decrytion) là tập hợp các qui tắc giải mã có thể. EK(P) = C và DK(C) = P Người gửi Khóa mã hóa Khóa giải mã Người nhận Bản rõ Thuật toán Bản mã Thuật toán Bản rõ Mã hoá Giải mã Hình 1-1: Sơ đồ hệ mật mã Những yêu cầu đối với hệ mật mã [18] • Độ tin cậy: bằng việc sử dụng các kỹ thuật mã hóa khác nhau, hệ mật giúp che giấu thông tin, đảm bảo sự bí mật cho các thông báo và dữ liệu được lưu trữ. • Tính toàn vẹn: cung cấp cơ chế đảm bảo thông báo không bị thay đổi trong quá trình truyền nhận. • Tính không thể chối bỏ: có thể cung cấp một cách xác nhận rằng tài liệu đã đến từ ai đó ngay cả khi họ cố gắng từ chối nó.
• Tính xác thực: xác thực nguồn gốc của một thông báo và của người đang đăng nhập một hệ thống. Ta có thể phân hệ mật mã thành hai loại dựa vào khóa: • Hệ mật mã khóa đối xứng (Symmetric cryptosystem): là một hệ mật mã khá lâu đời với khoá mã hoá có thể tính ra được khoá giải mã, hoặc khoá mã hoá và khoá giải mã là giống nhau. Với hệ mật mã khóa đối xứng, người gửi và người nhận phải thỏa thuận khóa bí mật trước khi thực hiện mã hóa. Độ an toàn của LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 5 thuật toán này phụ thuộc vào khoá.
Nếu khóa bí mật bị tiết lộ thì bất kỳ ai cũng có thể giải mã thông báo trong hệ thống mã hoá. Bản mã Bản rõ Mã hoá Giải mã Bản rõ Khoá Hình 1-2: Mã hoá với hệ mật mã khóa đối xứng • Hệ mật mã bất đối xứng (Asymmetric cryptosystem): Diffie và Hellman đã phát minh ra hệ mã hoá công khai hay hệ mã hoá phi đối xứng từ những năm 1970. Hệ mã hoá công khai khác biệt so với hệ mật mã đối xứng ở khóa mã hóa và khóa giải mã. Đặc biệt, kẻ tấn công không thể tính toán được khóa giải mã kể cả khi biết khóa mã hóa.
Khóa mã hóa có thể công khai. Bất kỳ ai cũng có thể sử dụng khoá công khai để mã hoá thông báo, nhưng chỉ người có khoá bí mật thì mới có khả năng giải mã được thông điệp. Khoá công khai và bản mã đều có thể gửi trên một kênh truyền không an toàn mà không làm mất độ an toàn của hệ mật. Bản mã Bản rõ Mã hoá Giải mã Bản rõ Khoá mã Khoá giải Hình 1-3: Mã hoá với hệ mật mã bất đối xứng 1.
Khái niệm mật mã nhẹ Hiện nay, chưa có một tổ chức nào đưa ra khái niệm chính xác hay định lượng cụ thể về mật mã nhẹ. Vì vậy có rất nhiều phiên bản để định nghĩa mật mã nhẹ. Một trong số đó là tiêu chuẩn ISO/IEC 29192-1 [1] đã đưa ra khái niệm cơ bản về mật mã nhẹ trong phần tổng quan của tiêu chuẩn. Mật mã nhẹ là mật mã được dùng cho mục đích bảo mật, xác thực, nhận dạng và trao đổi khóa; phù hợp cài đặt cho những môi trường tài nguyên hạn chế.
Trong ISO / IEC 29192, tính chất nhẹ được mô tả dựa trên nền tảng cài đặt. Trong triển khai phần cứng, diện tích chip và năng lượng tiêu thụ là những biện pháp quan trọng để đánh giá tính nhẹ của hệ mật. Trong triển khai phần mềm thì kích thước mã nguồn, kích thước RAM lại là tiêu chí cho một hệ mật được coi là nhẹ. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.
Quá trình hình thành và phát triển của mật mã nhẹ Mật mã nhẹ đã được nhiều nhà nghiên cứu tìm hiểu từ rất lâu, nhưng mãi đến cách đây 13 năm mới có sự ra đời và áp dụng chính thức của những giải thuật mật mã nhẹ đầu tiên: Grain và Trivium (2005), Present, DESL, DESXL (2007), KATAN (2009) và Sprout (2015). Ngày càng nhiều thuật toán mã hóa nhẹ được ra đời với nhiều ứng dụng hữu ích [30]. Hình 1-4: Số lượng mật mã nhẹ được phát triển bởi các nhà khoa học Bên cạnh đó mạng lưới vạn vật kết nối cũng chứa đựng nhiều yếu điểm – cơ hội cho những kẻ tấn công thực hiện những hành động xấu. Nhất là trong những ứng dụng yêu cầu độ an toàn cao như các ứng dụng quân sự, ngân hàng hay tự động hóa.
Ngoài những tấn công vào đường truyền vật lý, tính toán khắp nơi còn bị đe dọa bởi những cuộc tấn công chiếm quyền kiểm soát, tấn công lấy dữ liệu trên đường truyền, … Chính vì thế trong hệ thống tính toán khắp nơi, độ an toàn của hệ mật cần được quan tâm xem xét. Nguyên lý thiết kế thuật toán mật mã nhẹ Nguyên lý thiết kế các thuật toán mật mã nhẹ là một bài toán chưa có lời giải chính xác cho các thiết bị có tài nguyên hạn chế. Mật mã nhẹ cần đáp ứng được yêu cầu “nhẹ” trong cài đặt nhưng mặt khác nó vẫn phải đảm bảo mức độ an toàn cần thiết cho ứng dụng/phần cứng. Người thiết kế mật mã nhẹ phải thỏa hiệp, cân đối giữa ba tiêu chí: độ an toàn, hiệu suất và chi phí cài đặt (Hình 1-5).
Hình 1-5: Ba nguyên lý thiết kế thuật toán mật mã nhẹ LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 7 Độ an toàn: Khi thiết kế bất kỳ một hệ mật nào, điều đầu tiên người thiết kế cần quan tâm là độ an toàn của hệ mật. Độ an toàn có thể coi là một yếu tố sống còn của một hệ mật. Với mật mã nhẹ, người thiết kế cần thiết kế một hệ mật “đủ an toàn” trong điều kiện cho phép về chi phí và hiệu quả cài đặt. Dĩ nhiên độ an toàn của mật mã nhẹ chỉ đạt đến một ngưỡng an toàn chấp nhận được nào đó trong một điều kiện cụ thể.
Hiệu quả cài đặt, thường được đánh giá qua các độ đo tài nguyên được sử dụng bởi thuật toán như: diện tích bề mặt, số chu kỳ xung nhịp, thời gian thực thi, thông lượng, nguồn cung cấp, năng lượng, điện tích… Yêu cầu này liên quan mật thiết đến chi phí cài đặt, hiệu suất và khả năng tính toán trên đường truyền. Độ đo cho tính hiệu quả của phần cứng chính bằng tỷ lệ thông lượng và điện tích sử dụng của hệ mật mã đó (Bảng 1-1) Bảng 1-1: Hiệu quả phần cứng của một số giải thuật mật mã nhẹ Chu kỳ xung Thông lượng Xử lý Điện Số bits Số bits Mã pháp nhịp trên một ở 100MHz logic tích khóa khối khối (Kbps) (m) (GEs) Mã khối Present 80 64 32 200 0.13 1294 Giá thành của thuật toán: Thông thường các hệ mật mã nhẹ thường được áp dụng trên một số lượng lớn các thiết bị như hệ thống IoT. Chính vì vậy giá thành của thuật toán cũng đóng ý nghĩa quan trọng trong việc triển khai. Một hệ mật tốt cần phải cân bằng giữa giá thành, hiệu suất và độ an toàn.
Tuy nhiên việc cân bằng cả 3 yếu tố này là một bài toán khó. Tùy từng điều kiện, yêu cầu cụ thể, người thiết kế có thể cân đối nên ưu tiên khía cạnh nào hơn. Ví dụ như khi thực hiện cài đặt bằng phần cứng có hiệu suất cao thì thường dẫn tới các yêu cầu cao về điện tích, giá thành cao. Mặt khác, khi thiết kế các hệ mã ưu tiên độ an toàn trên một thiết bị có phần cứng thấp thì hiệu suất có thể sẽ rất thấp.
LUAN VAN CHAT LUONG download : add luanvanchat@agmail. Các mật mã nhẹ nguyên thủy Theo nghiên cứu của ECRYPT1, mật mã nhẹ cũng có 4 loại mật mã nguyên thủy tương tự với 4 loại của mật mã truyền thống. Đó là mã khối, mã dòng, mã xác thực thông báo và hàm băm. Qua các hội nghị ECRYPT đã đề cập đến nhiều hệ mật như: • Mã khối: HIGHT, KATAN/KTANTAN, DESL/DESX/DESXL, PRESENT, PRINTCIHER, SEA, XTEA, LBlock, … • Mã dòng: Grain, MICKER, TRIVIUM, F-FCSR-H, WG-7 • Mã xác thực thông báo: SQUASH • Hàm băm: MAME, H-PRESENT / DM-PRESENT, Keccak, PHOTON, QUARK hay Spongent … Mã khối (Block Mã dòng Cipher) (Stream Cipher) Mật mã nhẹ (Lightweight cryptography) Hàm băm Mã xác thực (Hash function) thông báo (MAC) Hình 1-6: Các nguyên thủy mật mã nhẹ Bảng dưới mô tả một số thông số/ đặc điểm cũng như ưu, nhược điểm và ứng dụng của một số hệ mật mã nhẹ nguyên thủy đã được ECRYPT đề cập.
1 ERCYPT là một mạng lưới nghiên cứu về mật mã nổi tiếng ở Châu Âu và được IST (Information Societies Technology) tài trợ từ năm 2004. Mục tiêu của nó là tăng cường sự hợp tác của các nhà nghiên cứu Châu Âu về an ninh thông tin, đặc biệt là trong kỹ thuật mật mã và kỹ thuật số. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 9 Loại mật Key Block / Hệ mật mã Người thiết kế Đặc điểm Ứng dụng mã nhẹ (bits) IV (bits) - 32 vòng lặp Triển khai trên các - Sử dụng phép toán đơn giản như thiết bị hạn chế như HIGHT 128 64 XOR, mod 28 và dịch bits RFID hay các thiết - Có thể thực hiện với 3048 cổng, bị phổ biến khắp nơi công nghệ 0.25 m - Kiến trúc của KATAN / KTANTAN rất đơn giản. Bản rõ Chrstophe de Canniere, được lưu bởi 2 thanh ghi.
Trong KATAN / 32 / 48 / Orr Dunkelman và 80 mỗi vòng, một số bit được lấy ra KTANTAN 64 Miroslav Knezevic và đưa vào hàm phi tuyến Mã khối Boolean, và LFRS 8 bits để mã hóa. DES, DESL, - 16 vòng lặp DESX and 56 / 184 64 - DES sử dụng lặp lại một S-box DESXL (6*4 bits) 8 lần - Cấu trúc SPN với 31 vòng - Mỗi vòng thực hiện phép cộng XOR để đưa vào khóa vòng PRESENT 80 / 128 64 - Tầng phi tuyến sử dụng một S-box 4 bits duy nhất được áp dụng 16 lần song song trong mỗi vòng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 10 - PRINTCIPHER 48 sử dụng 48 bits Sử dụng trong mạch khóa bí mật và cộng thêm 32 bits tích hợp in ấn PRINTCIPHER 48 / 96 được sinh ra từ thuật toán mã hóa (Integrated circuit – sử dụng 16 S-box 3 bits IC-printing) SEA – phần mềm trong bộ F.