Hình 1.5: Đồ thị so sánh năng lượng sử dụng ở mức cao của một số hàm băm nhẹ
Như vậy, thông qua dữ liệu đã được chứng minh về các mật mã nhẹ, người quản lý hệ thống hay thiết bị có thể lựa chọn hệ mật phù hợp với công việc của mình. Cân đối giữa các yếu tố hiệu suất, yếu tố bảo mật và yếu tố chi phí. Hình 1.3, 1.4, 1.5 và 1.6 biểu diễn so sánh theo các hướng thông số bề mặt, thông số thông lượng, thông số năng lượng tiêu thụ ở mức cao, thông số thông lượng tiêu thụ ở mức thấp. Từ đó, ta có thể cân nhắc thêm với các yếu tố bảo mật để lựa chọn thiết bị cho phù hợp.
Chƣơng 2: HÀM BĂM NHẸ
2.1 Khái niệm
Hàm băm nhẹ là một phần nhỏ trong nhánh nghiên cứu của mật mã nhẹ nên nó cũng không có một ranh giới rõ ràng nào để phân biệt nhẹ hay không nhẹ [8]. Mục tiêu của hàm băm nhẹ hướng tới sự nhỏ gọn trong cài đặt để phù hợp với các thiết bị bị giới hạn bởi dung lượng lưu trữ và năng lượng tiêu thụ.
2.1.1 Các yêu cầu cơ bản của hàm băm nhẹ
Tuy không có một khái niệm rõ ràng nào về hàm băm nhẹ, nhưng nó vẫn phải tuẩn thủ những nguyên tắc cơ bản của một hàm băm thông thường. Ba yếu tố dưới đây phải đảm bảo:
- Preimage resistant: Cho trước h việc tìm m sao cho h = hash(m) là rất khó. Yêu cầu này để đảm bảo rằng việc dịch ngược hàm băm là rất khó. Khó đến mức chi phí lớn hơn hoặc bằng chi phí thử sai thì hệ mật đó rất an toàn.
- Second preimage resistant: Cho thông điệp m1, việc tìm một thông điệp m2 (khác m1) sao cho hash(m1) = hash(m2) là rất khó.
- Collision-resistant: Việc tìm 2 thông điệp khác nhau m1 và m2 sao cho hash(m1) = hash(m2) là rất khó.
Hai điều kiện second preimage và collision resistant để đảm bảo rằng hai mã băm của hai thông điệp không bị trùng nhau và cũng để hạn chế các cuộc tấn công như tấn công ngày sinh nhật [5].
2.1.2 Động lực phát triển của hàm băm nhẹ
Hàm băm nhẹ là một nhánh nghiên cứu con trong mật mã nhẹ và là một trong những nhánh quan trọng bậc nhất và cấp thiết nhất cho tới thời điểm hiện tại bởi tính hữu dụng của nó.
Khi IoT phát triển, xung quanh ta có rất nhiều thiết bị muốn kết nối internet. Từ những thiết bị gia dụng cho tới những phương tiện tham gia giao thông hay thẻ chip, thẻ từ. Để ý thấy, các thiết bị này đều là những thiết bị mang tính riêng tư, như vậy ta cần bảo mật để không một ai khác ngoài chúng ta có thể kiểm soát. Mật khẩu là một trong những cơ chế tốt nhất để bảo vệ tính cho tới thời điểm hiện tại. Mà mật khẩu chính là một ứng dụng của hàm băm. Đặc điểm của phần lớn các thiết bị IoT là bị giới hạn rất nhiều về nặng lượng tiêu thụ và khả năng tính toán, do đó đây cũng chính là điểm mạnh của hàm băm nhẹ, là động lực thúc đẩy mật mã nhẹ nói chung và hàm băm nhẹ nói riêng phát triển.
IoT có nghĩa là vạn vật kết nối với nhau và trao đổi thông tin. Làm sao để ta có thể biết trong quá trình truyền tin của mình, tin tức không bị sửa đổi? Đây cũng là một ứng dụng rất quan trọng của hàm băm là kiểm tra tính toàn vẹn của thông điệp. Với IoT, hàm băm nhẹ tỏ ra hữu dụng hơn cả so với các hàm “nặng” truyền thống trong việc kiểm tra tính toàn vẹn này.
Mặt khác, hàm băm nhẹ là một hàm băm nên có có đầy đủ tính chất của một hàm băm. Đo đó, các ứng dụng của hàm băm thông thường thì hàm băm nhẹ đều có thể áp dụng. Tuy nhiên, hàm băm nhẹ sẽ áp dụng cho các thiết bị bị giới hạn là chủ yếu. Còn hàm băm truyền thống sẽ áp dụng cho các ứng dụng thông thường trên vi tính hoặc điện thoại thông minh.
2.2 Ứng dụng của hàm băm nhẹ
Như tác giả đã trình bày ở phần triển vọng của hàm băm nhẹ, do hàm băm là nhánh con của hàm băm nhẹ nên ứng dụng của nó cũng không ngoài ứng dụng của hàm băm. Như vậy, ta có thể điểm qua một vài ứng dụng của hàm băm nhẹ như sau: - Xác thực mật khẩu [5]: Đối với công nghệ IoT, mật khẩu là thứ không thể tách rời. Mỗi người, mỗi vật đều có một định danh, một mật khẩu riêng khi tham gia vào thế giới. Và với sự phát triển mạnh mẽ như hiện nay của công nghệ này thì tương lai rất lớn của mật mã nhẹ là rất lớn. Và đặc biệt là hàm băm với ứng dụng xác thực mật khẩu.
- Xác thực thông điệp [5]: Khi một thông điệp được gửi đi hay nhận về. Thật khó khăn nếu như dữ liệu này vô cùng lớn và ta đem ra so sánh từng chữ một. Như vậy, việc ta sử dụng một hàm băm để băm rồi so sánh thì hiệu quả hơn gấp trăm vạn lần. Chưa kể, còn có sai sót hoặc không thể tính được nếu như dữ liệu quá lớn và năng lượng tiêu thụ của thiết bị lại bị giới hạn. Như vậy, ta cần tới hàm băm, tuy nhiên lợi thế hơn rất nhiều khi ta dùng hàm băm nhẹ. Vì mục đích của ta chỉ đơn giản là xác thực chứ không phải bảo mật nên hàm băm nhẹ hỗ trợ việc này tốt. Cộng với việc hàm băm nhẹ thực hiện nhanh hơn hàm băm thông thường.
- Bảo vệ tính toàn vẹn của thông điệp [5]: khi gửi nhận trên mạng: Giống như xác thực thông điệp thì việc bảo vệ tính toàn vẹn cần sự nhanh nhẹn khi băm và khi so sánh. Do đó mà hàm băm nhẹ giúp ích vô cùng hiệu quả hơn các hàm băm thông thường.
- Tạo và xác thực chữ ký điện tử [5]: Để biết ứng dụng của hàm băm nhẹ trong việc tạo và xác thực chữ ký điện tử, ta có thể theo dõi hai hình ảnh phía bên dưới đây: