2 THUẬT TOÁN BẢO MẬT THÔNG TIN CHO MẠNG D
2.3.2 Các phần tử và kiến trúc của f9
KASUMI được sử dụng trong chế độ chuỗi để tạo ra 64 bit digest từ bản tin
đầu vào. Đầu ra 64 bit sau đó được cắt cụt, để cung cấp 32 bit MAC-I.
Hình 3.2 mô tả hàm toàn vẹn f9. Hàm f9 sử dụng 2 thanh ghi 64 bit là A và B. Giá trị khởi đầu của cả hai thanh ghi được thiết lập bằng 0: A = 0 và B = 0. Hàm f9 cũng sử dụng 1 giá trị hằng số của bộ biến đổi khoá (KM) = 16 lần của octet 0xAA = 10101010.
(KM = 0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA)
Các số liệu đầu vào của f9 gồm: 32 bit COUNT, 32 bit FRESH, một chuỗi bản tin MESSAGE có độ dài LENGTH vô hạn, và 1 bit DIRECTION. Tất cả đầu vào được móc nối với nhau, sau đó một bit “1” được bổ sung vào
chuỗi móc nối này, theo sau là số lượng giữa 0 và 63 bit “0”, sao cho độ dài tổng của chuỗi kết quả là một số nguyên bằng bội lần của 64 bit. Chuỗi này
được gọi là chuỗi được đệm (PS):
PS = COUNT[0]…COUNT[31] FRESH[0]…FRESH[31]
MESSAGE[0]… MESSAGE[LENGTH-1] DIRECTION[0] 1 0*
Trong đó 0* chỉ thị số bit “0” trong trường đệm (giữa 0 và 63).
Bảng 2.3: Các tham số đầu vào của f9
Tham số Kích thước (bits)
Ý nghĩa
COUNT-I 32 Đầu vào khung COUNT-I[0]…COUNT-I[31]
FRESH 32 Số ngẫu nhiên FRESH[0]…FRESH[31]
DIRECTION 1 Hướng truyền dẫn DIRECTION[0]
IK 128 Khoá toàn vẹn IK[0]…IK[127]
LENGTH X19 Số lượng bit ‘MAC’
MESSAGE LENGTH Dòng bit đầu vào
Bảng 2.4: Các tham sốđầu ra của f9
Tham số Kích thước (bits)
Ý nghĩa
MAC-I 32 Mã nhận thực bản tin MAC-I[0]…MAC-I[31]
C O U N T || F R E S H || M E S S A G E || D I R E C T I O N || 1 || 0 … 0 K A S U M I K A S U M I K A S U M I I K I K I K I K K A S U M I K A S U M I I K ⊕ K M M A C -I ( le ft 3 2 -b it s ) P S0 P S1 P S2 P SB L O C K S - 1 Hình 2.2- Hàm toàn vẹn f9.
Chuỗi PS sau đó được tách thành các khối 64 bit PSi. Ký hiệu BLOCKS là số lượng các khối 64 bit kết quả, thì:
PS = PS0 || PS1 || PS2 || …. || PSBLOCKS-1 (2.7)
PS là dữ liệu đầu vào của thuật toán MAC. Khối đầu tiên PS0 của PS có thể
xem như là giá trị khởi đầu, bởi vì PS0 = COUNT || FRESH và giá trị khởi
đầu này sẽ khác nhau đối với mỗi bản tin.
Với mỗi số nguyên n, 0 ≤ n ≤ BLOCKS-1, các toán tử sau được thực hiện:
A = KASUMI[ A ⊕ PSn ]IK (2.8)
B = B ⊕ A (2.9)
Sau cùng, một ứng dụng của KASUMI được thực hiện sử dụng một dạng biến đổi của khoá toàn vẹn IK như sau:
B = KASUMI[ B ]IK ⊕ KM (2.10)
Đầu ra từ KASUMI có 64 bit, thì 32 bit MAC-I là 32 bit bên trái nhất của kết quả: MAC-I = lefthalf[ B ] (2.11) Tức là, với mỗi số nguyên i, 0 ≤ i ≤ 31, thì: MAC-I[i] = B[i] (2.12) Các bit B[32]…B[63] bị loại bỏ.
2.4 THUẬT TOÁN KASUMI [07] 2.4.1 Giới thiệu chung