Các phần tử và kiến trúc của f9

Một phần của tài liệu Luận văn thạc sĩ công nghệ thông tin Nghiên cứu an toàn và bảo mật thông tin trong môi trường di động 3G (Trang 54 - 56)

2 THUẬT TOÁN BẢO MẬT THÔNG TIN CHO MẠNG D

2.3.2Cá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) (adsbygoogle = window.adsbygoogle || []).push({});

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

Một phần của tài liệu Luận văn thạc sĩ công nghệ thông tin Nghiên cứu an toàn và bảo mật thông tin trong môi trường di động 3G (Trang 54 - 56)