Bởi vì thông tin báo hiệu được truyền giữa thiết bị điện thoại và mạng rất quan trọng và nhạy cảm, do đó việc đảm bảo tính toàn vẹn phải được đặt lên hàng đầu. Kỹ thuật bảo mật này dựa trên Thuật toán toàn vẹn UMTS (UIA) được đặt ở thiết bị điện thoại và UTRAN, ví dụ RNC. Thuật toán cụ thể được sử dụng là f9 như Hình 2.6 [4].
Hình 2.6 Thuật toán của hàm f9
Trong đó:
COUNT-I: chuỗi toàn vẹn 32 bit, DIRECTION: 1 bit chỉ hướng IK: khóa toàn vẹn 128 bit, f9: thuật toán toàn vẹn
MESSAGE: bản tin cần bảo vệ, XMAC-I: chuỗi MAC-I mong muốn. Thủ tục xác nhận tính toàn vẹn của dữ liệu như sau:
- Đầu tiên, f9 (ở thiết bị di động) tính mã xác thực bản tin 32 bit dựa trên các thông số đầu vào bao gồm cả bản tin báo hiệu (MESSAGE).
- Thứ hai, bản tin MAC-I được đính kèm vào thông tin báo hiệu và gửi qua giao diện vô tuyến đến RNC.
- Thứ ba, khi RNC nhận được thông tin, RNC tính XMAC-I dựa trên thông tin nhận được theo cùng cách mà thiết bị di động tín MAC-I.
- Thứ tư, RNC so sánh MAC-I và XMAC-I để xác định bản tin báo hiệu đúng.
Hình 2.7 Thuật toán f9
Thuật toán f9 tạo mã xác thực bản tin MAC từ bản tin đầu vào bằng cách sử dụng khóa toàn vẹn IK, f9 sử dụng mã hóa khối Kasumi ở chế độ CBC-MAC.
Kasumi được dùng ở chế độ mắc xích để tạo 64 bit trung gian của bản tin đầu vào. Cuối cùng, 32 bit trái trung gian được dùng làm đầu ra của mã xác thực MAC-I.
Thiết lập
Hàm f9 được thiết lập với các biến khóa trước khi bắt đầu tính toán. Các biến chạy A và B được đặt về 0,
và KM = 0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.
Sau đó bit ‘1’ đơn được gắn vào giữa 0 và 63 bit ‘0’, do đó độ đài của chuỗi dư thừa PS là bội số của 64 bit, tức là:
PS=COUNT[0]…COUNT[31]FRESH[0]…FRESH[31]MESSAGE[0]…MESSAGE [LENGTH-1]DIRECTION[0] 1 0*
Ở đây, 0* biểu thị giữa 0 và 63 bit ‘0’
Tính toán chuỗi dư thừa được chia thành các kối PSi 64 bit: PS = PS0 || PS1 || PS2 || …. || PSBLOCKS-1
Bước tiếp theo là tính toàn với các số nguyên n với 0 ≤ n ≤ BLOCKS-1:
Cuối cùng,
Chuỗi MAC-I gồm 32 bit, MAC-I[i] = B[i] với 0 ≤ i ≤ 31. 32 bit còn lại của B bị lược bỏ.