Chương 1 TỔNG QUAN VỀ MẬT MÃ HẠNG NHẸ, HỆ MẬT ACORN Chương này của đồ án trình bày tổng quan về mật mã hạng nhẹ, giới thiệu hệ mật ACORN, các hàm sử dụng, các quá trình hoạt động của hệ mật ACORN. Bên cạnh đó đưa ra một số đặc tính an toàn của hệ mật ACORN. Tổng quan về mật mã hạng nhẹ 1.1 Giới thiệu mật mã hạng nhẹ Nghiên cứu và phát triển mật mã hạng nhẹ cho phép thực thi trên các thiết bị có tài nguyên hạn chế, đã và đang thu hút các nhà mật mã học trong những năm gần đây, nhiều hệ mật đã được đề xuất trong các cuộc hội thảo. Ở châu Âu, công nghệ này đã được chọn làm chủ đề cho chương trình khung 6 và 7 của Ủy ban bảo mật châu Âu (ECRYPT: European Network of Excellence for Cyptology): ECRYPT I và ECRYPT II.
Vào năm 2004, ECRYPT đã giới thiệu 4 loại nguyên thủy mật mã hạng nhẹ, tương tự với các hệ mật truyền thống là: mã khối, mã dòng, hàm băm và mã xác thực thông báo. Đến năm 2015, Viện tiêu chuẩn và công nghệ Hoa kỳ cũng đã bắt đầu thiết lập các tiêu chuẩn đánh giá mật mã hạng nhẹ [1]. 1: Nguyên thủy mật mã hạng nhẹ Với những ưu điểm như chi phí thấp, tiêu thụ ít năng lượng, công nghệ mật mã hạng nhẹ được dùng cho các thiết bị như: thiết bị giao thông vận tải, thiết bị y tế, thiết bị ngân hàng,. Mật mã hạng nhẹ được kỳ vọng sẽ trở thành một trong những nền tảng công nghệ bảo mật hữu ích, phục vụ thiết lập các dịch vụ 3 mạng thế hệ sau, như IoT.
2: Ứng dụng của mật mã hạng nhẹ Có nhiều hướng nghiên cứu khác nhau đã được đề xuất cho công nghệ mật mã hạng nhẹ. Một số hướng đến tối ưu về phần cứng và mức tiêu thụ điện năng, trong khi những hướng khác lại hướng đến tối ưu mã nguồn của phần mềm nhúng. Mỗi phương pháp trên đều được tối ưu hóa theo một chỉ số hiệu suất khác nhau. Tuy nhiên, hiện vẫn chưa có sự đồng thuận nào về định nghĩa “mật mã hạng nhẹ”.
Ngoài ra, vẫn cần sự thỏa hiệp giữa hiệu suất xử lý theo thời gian thực và tính bảo mật [1]. Các yêu cầu thiết kế > Về độ an toàn > Về hiệu quả trong cài đặt í. Về độ an toàn Mục tiêu xây dựng các hệ mã hạng nhẹ là thiết kế một hệ mật không quá yếu, nhưng phải đủ an toàn; chi phí (cài đặt, sản xuất) thấp và một yêu cầu quan trọng đối với các thiết kế này là tính gọn nhẹ. Do đó, cần xây dựng một hệ mật không phải tốt nhất mà phải cân bằng giữa giá thành, hiệu suất và độ an toàn.
3: Yêu cầu về thiết kế mật mã hạng nhẹ í. Về hiệu quả trong cài đặt Thường được đánh giá qua các phép đo sau: diện tích bề mặt (Area), số chu kỳ xung nhịp (Cycles), thời gian, thông lượng (Throughout), nguồn (Power), năng lượng (Energy), dòng điện (Current). Tính hiệu quả là tỷ lệ thông lượng với diện tích, được dùng làm độ đo cho tính hiệu quả phần cứng. • Diện tích thiết kế (Area): Có thể tính bằng /um2 nhưng giá trị này phụ thuộc vào công nghệ chế tạo và thư viện chuẩn.
Diện tích thiết kế được tính bằng cách chia diện tích theo um2 cho số cổng NAND 2 đầu vào. • Số chu kỳ xung nhịp (Cycles): là số chu kỳ xung nhịp cần để tính toán và đọc dữ liệu ra. • Thời gian: Lượng thời gian cần thiết cho một phép tính cụ thể có thể được tính bằng cách chia số chu kỳ xung nhịp cho tần số hoạt động, t = số chu kỳ xung nhịp/tần số. Đơn vị tính theo ms.
• Thông lượng (Throughout): Là số các bit gửi ra chia cho 1 lượng thời gian nào đó. • Nguồn (Power): Tiêu thụ nguồn có thể được ước lượng ở mức cổng thông qua bộ biên dịch cài đặt. 5 • Năng lượng (Energy): Tiêu thụ năng lượng được định nghĩa là tiêu thụ nguồn qua một khoảng thời gian cụ thể. Nó thường được tính toán bằng cách nhân tiêu thụ nguồn với thời gian cần cho phép tính đó.
• Dòng điện ( Current): Là tiêu thụ nguồn chia cho điện áp thông thường. • Tính hiệu quả cài đặt: eff = diện tích/ thông lượng. Hệ mật Acorn 1. 1: Các ký hiệu Kí hiệu Chú thích e Phép toán XOR 2 bit.
& Phép toán AND 2 bit. Phép toán NOT bit. || Phép ghép bit. AD Dữ liệu liên kết.
adị Bit thứ i của dữ liệu liên kết. Chiều dài bit của dữ liệu liên kết với adlen 0 < adlen < 264. Bit thứ i của bản mã. 6 Kí hiệu Chú thích ca i, cbi Bit điều khiển tại bước thứ i.
clen Chiều dài bit của bản mã với 0 < clen < 264. IV128 Véc-tơ khởi tạo 128 bit của ACORN. IV128,i Bit thứ i của IV28. K 128 Khóa 128 bit của ACORN.
K128,i Bit thứ i của khóa K128. ks i Bit khóa dòng tại bước thứ i. m i Bit dữ liệu. pi Bit thứ i của bản rõ.
plen Chiều dài bit của bản rõ với 0 < plen < 264. Si Trạng thái của bước thứ i.J Bit thứJ của trạng thái Si. t Chiều dài bit của thẻ xác thực với 64 < t < 128. Giới thiệu về hệ mật Acorn ACORN là một thuật toán mã hóa có xác thực với dữ liệu liên kết hạng nhẹ được giới thiệu bởi Hongjun Wu - nhà mật mã người Singapore trong cuộc thi về các thuật toán mã hóa có xác thực CAESAR (Competition for Authenticated Encryption: Security, Applicability, and Robustness).
[2] ACORN có cấu trúc mã dòng, sử dụng khóa, véc-tơ khởi tạo có kích thước 128 bit, độ dài của bản rõ P là nhỏ hơn 264 bit. Đầu vào của thuật toán có thể bao gồm dữ liệu liên kết AD có chiều dài bit trong khoảng 0 < adlen < 264. Dữ liệu liên kết này không yêu cầu phải đảm bảo tính bí mật nên không được mã hóa, tuy nhiên cần đảm bảo tính toàn vẹn cho các dữ liệu này. Đầu ra của thuật toán bao 7 gồm bản mã C có độ dài nhỏ hơn 264 và một thẻ xác thực T có độ dài bit trong khoảng từ 64 < t < 128.
Nên sử dụng thẻ có độ dài 128 bit để đảm bảo tính xác thực tốt nhất. Trạng thái của ACORN (hình 1.4) được tạo thành từ 6 thanh ghi dịch phản hồi tuyến tính (LFSR) có độ dài lần lượt là 61, 46, 47, 39, 37 và 59 kèm 4-bit đệm. Như vậy, trạng thái của thuật toán có kích thước là 293 bit. 4: Trạng thái hoạt động của thuật toán ACORN Hoạt động của thuật toán ACORN bao gồm 4 quá trình: quá trình khởi tạo, quá trình mã hóa, quá trình tạo thẻ xác thực, quá trình giải mã và xác thực thẻ.
Các quá trình này sẽ được trình bày cụ thể sau đây. Các hàm sử dụng trong thuật toán ACORN ACORN sử dụng 3 hàm để thực hiện các quá trình hoạt động: một hàm tạo dòng khóa từ các bit trạng thái, một hàm phản hồi phi tuyến để tạo các bit phản hồi và một hàm cập nhật trạng thái sử dụng để cập nhật trạng thái thuật toán. Hàm tạo dòng bit khóa (KSG): Hàm tạo dòng bit khóa (hình 1.5) được sử dụng để tạo ra dòng bit khóa tại mỗi bước của thuật toán. Đầu vào của hàm là 8 bit trạng thái.
Dòng bit khóa được tính toán theo công thức sau: ksị = KSG(Sj): ksi = Si,12 © Si,154 © maj(Si,235,Si,61,Si,193) © ch(Si,230,Si,111,Si,66) với maj(x,y,z) và ch(x,y,z) là hai hàm Boolean được định nghĩa như sau: +) maj( x, y, z) = (x & y) © (x & z) © (y & z); +) ch(x, y, z) = (x & y) © ((~ x) & z) = (x & y) © ((x © 1) & z); 8 Hình 1. 5: Hàm tạo dòng khóa Hàm phản hồi (FBK): Hàm phản hồi sử dụng các bit trong trạng thái hiện tại Si, các bit điều khiển ca,ị, cbị làm đầu vào và trả về bit phản hồi. Các bit phản hồi được tính toán theo công thức sau: f = FBK (S, ca, cbị): i = Si,0 ® (~ Si,107) ® maJ(Si 244,Si,23, Si,160) ® (cai & Si,196) ® (cbi & ksi) f Hình 1.6 mô tả hoạt động của hàm phản hồi. Hàm cập nhật trạng thái (hình 1.7) Đầu vào của hàm cập nhật trạng thái là trạng thái hiện tại Sị, bit dữ liệu mị, hai bit điều khiển cai, cbị để tạo ra trạng thái S/+1 tiếp theo cho thuật toán theo các 9 bước sau: Sị+1 = State Update(Sị, mị, caị, cbị) Bước 1: Cập nhật trạng thái sử dụng 6 thanh ghi dịch Si,289 = Si,289 ® Si,235 ® Sị,230 ; Si,230 = Si,230 ® Si,196 ® Si,193 ; Si,193 = Si,193 ® Si,160 ® Si,154 ; Sị,154 = Sị,154 ® Si,111 ® Si,107 ; Si,107 = Si,107 ® Si,66 ® Si,61 ; Si,61 = Si,61 ® Si,23 ® Si,0 ; Bước 2: Tạo bit khóa dòng ksi = KSG(Sị); Bước 3: Tạo bit phản hồi phi tuyến fi = FBK (Sị, cai, cbị); Bước 4: Dịch thanh ghi dịch 293-bit với bit phản hồi fí: for j=0 to 291 do S i+1, j = Si, j+1; Si+1,292 = fi ® mi ; 10 ca i > Hàm cập nhật cb i trạng thái Si (StateUpdate) Sl+1 Hình 1.
7: Sơ đồ khối hàm cập nhật trạng thái 1. Quá trình hoạt động của thuật toán ACORN Hoạt động của thuật toán ACORN được chia thành bốn quá trình: quá trình khởi tạo, quá trình mã hóa, quá trình tạo thẻ xác thực, quá trình giải mã và xác thực. Quá trình khởi tạo Quá trình khởi tạo sử dụng khóa K 128 bit, véc-tơ khởi tạo IV 128 bit và dữ liệu liên kết AD làm đầu vào cho việc khởi tạo trạng thái của ACORN. Quá trình khởi tạo được thực hiện qua hai giai đoạn: giai đoạn nạp khóa, véc- tơ khởi tạo và giai đoạn nạp dữ liệu liên kết.
8: Quá trình khởi tạo *. Giai đoạn 1: Nạp khóa và véc-tơ khởi tạo. 11 Để bắt đầu thuật toán, khởi tạo trạng thái ban đầu với tất cả các bit 0, tức là s_ 1792 i = 0 với 0 < i < 292. Trong giai đoạn này, thuật toán nhận một đầu vào I có độ dài 1792 bit bao gồm 128 bit khóa K, 128 bit véc-tơ khởi tạo IV và 1536 bit đệm Ơ1.
Các bit đệm gồm 1 bit đầu tiên ƠỊ0 = 1, tiếp sau là 1535 bit được tạo ra từ các bit khóa theo công thức &II = K128 i mod128 với i=1 >1535. 0) Trong suốt giai đoạn nạp khóa và véc-tơ khởi tạo, cả 2 bit điều khiển là bằng 1, tức là caị = cbị = 1. Thuật toán được chạy qua 1792 bước.