Chương 1 TỔNG QUAN MẬT MÃ HẠNG NHẸ VÀ HỆ MẬT CLOC Chương này trình bày tổng quan về mật mã hạng nhẹ và tìm hiểu về hệ mật CLOC. Trong chương này sẽ giải thích lý do vì sao CLOC là một hệ mật phù hợp để giải quyết bài toán đặt ra cần phải tìm hiểu một hệ mật thích hợp nhúng vào thẻ chip thông minh.1 Tổng quan về mật mã hạng nhẹ Mật mã hạng nhẹ là một bộ phận của Mật mã học nhằm cung cấp các giải pháp phù hợp cho các thiết bị hạn chế tài nguyên. Cộng đồng mật mã học hạng nhẹ đã triển khai một lượng lớn công việc bao gồm triển khai hiệu quả các tiêu chuẩn mật mã thông thường và thiết kế, phân tích các thuật toán và các giao thức hạng nhẹ mới. Năm 2013, NIST đã khởi xướng một dự án mật mã hạng nhẹ để nghiên cứu hiệu suất của các tiêu chuẩn mật mã hiện hành được NIST phê duyệt trên các thiết bị bị hạn chế và để hiểu sự cần thiết của của các tiêu chuẩn mật mã hạng nhẹ chuyên dụng.
NIST đã tổ chức hai hội thảo về mật mã hạng nhẹ để thu hút phản hồi của công chúng về các hạn chế của các thiết bị, các yêu cầu, đặc điểm của các ứng dụng mật mã hạng nhẹ trong thế giới thực [4].1 Phạm vi ứng dụng Mật mã hạng nhẹ nhắm vào nhiều loại thiết bị có thể được triển khai trên phần cứng và phần mềm. Các nền tảng thiết bị thông thường không cần yêu cầu mật mã hạng nhẹ vì có thể xử lý tốt các thuật toán mật mã thông thường. Mật mã hạng nhẹ chủ yếu tập trung vào các thiết bị có độ chính xác cao, các vi điều khiển rất sẵn có và nổi bật về hiệu suất xử lý. Tuy nhiên với một lượng lớn chu kỳ để thực hiện các thuật toán mã hóa phổ biến thì sẽ khiến chúng hoạt động chậm.
Đây là vấn đề lớn khi cần đáp ứng các ràng buộc về thời gian và tương ứng với việc sử dụng năng lượng hạn chế. Công nghệ RFID và các mạng cảm biến thường được thực hiện trong một mạch tích hợp dành riêng cho ứng dụng 3 để đáp ứng một số triển khai nghiêm ngặt. Tóm lại, môi trường và ứng dụng cần được đưa vào quyết định xem các tiêu chuẩn thông thường của mật mã có được chấp nhận hay không. Đây không chỉ là giới hạn của một thiết bị cụ thể thúc đẩy nhu cầu về mật mã hạng nhẹ, mà còn là các thiết bị khác trong ứng dụng mà nó tương tác trực tiếp.2 Hiệu suất Trong thiết kế thuật toán mật mã, có sự đánh đổi giữa hiệu suất và tài nguyên cần thiết cho một mức độ bảo mật nhất định.
Hiệu suất có thể được thể hiện bằng các thuật ngữ như tiêu thụ năng lượng và năng lượng, độ trễ và thông lượng. Các yêu cầu về tài nguyên cần thiết cho việc triển khai phần cứng thường được tóm lược ở diện tích cổng, các cổng tương đương hoặc các khối logic (còn được gọi là các khối logic có thể cấu hình, các thành phần logic, các mô-đun logic thích ứng hoặc các lát). Trong phần mềm, điều này được phản ánh trong thanh ghi, bộ nhớ RAM và ROM. Yêu cầu tài nguyên đôi khi được gọi là chi phí, vì thêm nhiều cổng hoặc bộ nhớ có xu hướng làm tăng chi phí sản xuất của một thiết bị.
Năng lượng có tầm quan trọng đặc biệt trong các thiết bị thu hoạch năng lượng từ môi trường xung quanh. Tiêu thụ năng lượng (nghĩa là tiêu thụ năng lượng trong một khoảng thời gian nhất định) đặc biệt quan trọng trong các thiết bị hoạt động bằng pin có một lượng năng lượng dự trữ cố định. Pin trong một số thiết bị có thể khó hoặc không thể sạc lại hoặc thay thế sau khi được triển khai. Cũng cần lưu ý rằng mức tiêu thụ năng lượng phụ thuộc vào nhiều yếu tố khác ngoài thuật toán được sử dụng, chẳng hạn như điện áp ngưỡng, tần số xung nhịp và công nghệ được sử dụng để thực hiện.
Độ trễ đặc biệt phù hợp với một số ứng dụng thời gian thực nhất định, được định nghĩa là thước đo thời gian giữa yêu cầu ban đầu của một hoạt động và phản hồi ở đầu ra. Ví dụ, độ trễ của hoạt động mã hóa là thời gian giữa yêu cầu ban đầu về mã hóa của bản rõ và phản hồi về bản mã tương ứng. Thông lượng là tốc độ mà các đầu ra mới (ví dụ: thẻ xác thực hoặc bản mã) được tạo ra. Không giống như các thuật toán thông thường, thông lượng cao có thể không phải là mục tiêu thiết kế trong các thiết kế nhẹ.
Tuy nhiên, thông lượng vừa phải vẫn được yêu cầu trong hầu hết các ứng dụng.1 Hiệu suất phần cứng: Yêu cầu tài nguyên cho nền tảng phần cứng thường được mô tả theo diện tích cổng. Diện tích thực hiện phụ thuộc vào công nghệ và thư viện ô tiêu chuẩn và được đo bằng urm.2 Hiệu suất phần mềm: Đối với các ứng dụng phần mềm, yêu cầu tài nguyên có thể được đo bằng số lượng thanh ghi, cũng như số byte RAM và ROM được yêu cầu. Các hàm sử dụng một số lượng nhỏ các thanh ghi có tổng phí thấp hơn, vì phải đặt ít biến hơn trên ngăn xếp trước khi các thanh ghi có thể được ghi đè. ROM được sử dụng để lưu trữ thuật toán và có thể bao gồm dữ liệu cố định, chẳng hạn như S- hộp hoặc khóa vòng được mã hóa cứng, trong khi RAM được sử dụng để lưu trữ các giá trị trung gian có thể được sử dụng trong tính toán.
Điều này có thể dẫn đến sự đánh đổi bổ sung giữa việc tính toán các giá trị một cách nhanh chóng so với việc tìm kiếm các giá trị trong một bảng.3 Các yêu cầu thiết kế thuật toán 1.1 Mã khối hạng nhẹ Hiệu suất của mật mã khối hạng nhẹ so với mật mã khối thông thường đạt được bằng cách sử dụng các lựa chọn thiết kế gọn nhẹ như: - Kích thước khối nhỏ hơn: Để tiết kiệ m bộ nhớ, mật mã khối hạng nhẹ có thể sử dụng kích thước khối nhỏ hơn AES (ví dụ: 64 bit hoặc 80 bit, thay vì 128 bit). Cũng cần lưu ý rằng việc sử dụng kích thước khối nhỏ sẽ giảm các giới hạn về số lượng khối văn bản gốc tối đa được mã hóa. Tùy thuộc vào thuật toán, điều này có thể dẫn đến các cuộc tấn công như phục hồi văn bản gốc hoặc khôi phục khóa hoặc với xác suất không đáng kể. - Kích thước khóa nhỏ hơn: Một số mật mã khối hạng nhẹ sử dụng kích thước khóa nhỏ (dưới 96 bit) để mang lại hiệu quả.
- Các vòng đơn giản hơn: Các thành phần và thao tác được sử dụng trong mật mã khối hạng nhẹ thường đơn giản hơn so với các thuật toán mã khối thông thường. Trong các thiết kế nhẹ sử dụng S-hộp, S-hộp 4 bit được ưa thích hơn S-hộp 8 bit. 5 - Lược đồ khóa đơn giản hơn: Lược đồ khóa phức tạp làm tăng bộ nhớ, độ trễ và mức tiêu thụ điện năng của việc triển khai; do đó, hầu hết các mật mã khối nhẹ sử dụng lược đồ khóa đơn giản có thể tạo khóa phụ khi đang di chuyển. Điều này có thể cho phép các cuộc tấn công sử dụng các khóa liên quan, các khóa yếu, các khóa đã biết hoặc thậm chí các khóa được chọn.
- Triển khai tối thiểu: Có một số chế độ hoạt động và giao thức chỉ yêu cầu chức năng mã hóa của mật mã khối. Một số ứng dụng có thể yêu cầu một thiết bị chỉ hỗ trợ một trong các hoạt động mã hóa hoặc giải mã. Chỉ thực hiện các chức năng cần thiết của mật mã có thể cần ít tài nguyên hơn so với thực hiện toàn bộ cả quá trình.2 Hàm băm hạng nhẹ Các hàm băm thông thường có thể không phù hợp với các môi trường bị hạn chế, chủ yếu là do kích thước trạng thái bên trong lớn và yêu cầu tiêu thụ điện năng cao. - Kích thước đầu ra và trạng thái bên trong nhỏ hơn: Kích thước đầu ra lớn rất quan trọng đối với các ứng dụng yêu cầu khả năng chống va chạm của các hàm băm.
Đối với các ứng dụng không yêu cầu khả năng chống va chạm, có thể sử dụng trạng thái bên trong và kích thước đầu ra nhỏ hơn. Khi cần có hàm băm chống va chạm, có thể chấp nhận rằng hàm băm này có cùng độ bảo mật chống lại tấn công kháng tiền ảnh thứ nhất, kháng tiền ảnh thứ hai và va chạm. Điều này có thể làm giảm kích thước của trạng thái nội bộ. - Kích thước bản tin nhỏ hơn: Các hàm băm được tối ưu hóa cho các bản tin ngắn có thể phù hợp hơn cho các ứng dụng nhẹ.3 Mã xác thực bản tin hạng nhẹ Mã xác thực bản tin (MAC) tạo thẻ từ bản tin và khóa bí mật, được sử dụng để xác minh tính xác thực và tính toàn vẹn của tin nhắn.
Kích thước thẻ được khuyến nghị tối thiểu là 64 bit cho các ứng dụng thông thường. Đối với một số ứng dụng nhất định như VoIP (Thoại qua IP), đôi khi chấp nhận tin nhắn không trung thực có thể có tác động hạn chế đến bảo mật của ứng dụng, do đó có thể sử dụng các thẻ ngắn hơn sau khi xem xét cẩn thận.4 Mã dòng hạng nhẹ Mật mã dòng cũng là nguyên thủy hứa hẹn cho môi trường bị hạn chế. Cuộc thi eSTREAM, được tổ chức bởi Mạng lưới xuất sắc châu Âu về mật mã, nhằm xác định các mật mã dòng mới có thể phù hợp để áp dụng rộng rãi. Vòng chung kết của cuộc thi đã được công bố vào năm 2008 và bao gồm ba mật mã dòng cho các ứng dụng phần cứng với tài nguyên bị hạn chế là Grain, Trivium và Mickey.2 Hệ mật CLOC CLOC (Compact Low-Overhead CFB) được phát triển ở trường đại học Nagoya, Nhật Bản, là lược đồ mã hóa xác thực an toàn chứng minh được (sử dụng các chế độ hoạt động của mã khối).
CLOC xây dựng trên các lược đồ trước đó như CCM, EAX và EAX nguyên thủy bằng cách giảm thiểu phần thông tin mào đầu của mã khối, tối ưu độ phức tạp của phép tính toán trước và yêu cầu về bộ nhớ.1 Hệ mật có xác thực Hệ mã có xác thực (AE - authenticated encryption) hay hệ mã mật có xác thực kèm dữ liệu liên kết (AEAD - authenticated encryption with associated data) là một dạng của hệ mật khóa đối xứng bảo đảm tính bí mật, tính toàn vẹn, và tính xác thực dữ liệu theo từng bước.