Kỹ thuật này đ−ợc ứng dụng trong thuật toán hiệu lệnh chung
Giả sử M1, M2, M3 là các dãy bit nhận đ−ợc từ việc chia giá trị 172 bit thành các dãy 48 bit, 64 bit, và 64 bit t−ơng ứng. Giá trị 172 bit là sự kết hợp 152 bit đầu vào (bao gồm RAND 32 bit, ESN 32 bit, MIN1 24 bit, và SSD-A 64 bit) với 24 bit 0 đ−ợc thêm vào.
Tạo khoá:
M1 = 48 bit sẽ đ−ợc sử dụng làm đầu vào của giai đoạn tạo khoá nh− sơ đồ thực hiện hình 5.15. Chúng ta sắp xếp 48 bit thành mảng 6 x 8 nh− hình 5.14
Quá trình này là b−ớc thực hiện hoán vị 48 bit đầu vào Ví dụ 1:
ắ Giả sử dãy dữ liệu M1 là 16c27a415f39 ( mã hexa) = 0001 0110 1100 0010 0111 1010 0100 0001 1111 0011 1001 (mã nhị phân)
Thực hiện hoán vị theo bảng 5.14 đối với M1 ta đ−ợc:
K = 0000 0001 1001 0101 1001 1101 0111 1000 0101 0111 1110 0100 (mã nhị phân) = 01959d7857e4 (mã hexa)
11 35 5 47 17 41 29 23 7 31 1 43 13 37 25 19 9 33 3 45 15 39 27 21 12 36 6 48 18 42 30 24 8 32 2 44 14 38 26 20 10 34 4 46 16 40 28 22
ở đây 48 bit khoá K đ−ợc tính bởi kỹ thuật tạo khoá (I) đ−ợc biểu diễn trong hình 5.15
Hình 5.15: Tính toán AUTHR (18 bit) cho hiệu lệnh chung
Sử lý các khối:
ắ Giả sử khối dữ liệu M2 (64 bit) là 1 7 b 4 3 9 a 1 2 f 5 1 c 5 a 8.
• Thuật toán IP
Đầu tiên khối dữ liệu M2 tr−ớc hết đ−ợc đ−a vào khối hoán vị ban đầu (IP) để chia thành hai khối L1 (trái) và R1 (phải), mỗi khối chứa 32 bit nh− đ−ợc chỉ ra trong bảng trong hình 5.16
Thực hiện hoán vị bằng bảng IP, qua xáo trộn chuỗi ban đầu trở thành hai chuỗi con nh− sau:
Bảo mật trong hệ thống di động WCDMA 58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7
Hình 5.16. bảng hoán vị ban đầu (IP)
• Tác động của hàm E
Đến đây L1 và R1 đ−ợc mở rộng thành 48 bit t−ơng ứng với bảng sau:
32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1 Hình 5.17. bảng thực hiện mở rộng Tr−ớc hết xét L1:
E(L1) là một hàm nhận 32 bit đầu vào và tạo ra 48 bit đầu ra, theo bản trên ta tính đ−ợc: E(L1) = b 0 0 1 0 e a a 6 b f a
• Thực hiện cộng khoá K
Khi E(L1) đã đ−ợc tính toán xong nó sẽ cộng tuyệt đối bit – bit với khoá K nh− sau: Г1 (48 bit) = E(L1) ⊕ K = (b19493d23c1e)
• Hoạt động của S-box
48 bit Г1 trở thành đầu vào của bộ thay thế không tuyến tính để tạo ra 32 bit ở đầu ra. Véc tơ 48 bit Г1 trở thành thông số đầu vào cho (S – box)1 từ S1 đến S8. Với mỗi S trong đó 1 ≤ i ≤ 8 là các ma trận 4 hàng và 16 cột đ−ợc biểu diễn trong bảng chuyển
đổi S_box ở hình 4.5. Đầu vào Si là sự kết hợp 6 bit, trong đó bit đầu và bit thứ sáu là để hợp thành số chỉ hàng, còn 4 bit giữa để chỉ số cột trong bảng. Ví dụ đối với đầu vào là 010011 đến S1, đ−ợc chỉ ra là Si01 (1001) , hàng 01 hay là hàng 1 và chỉ số cột là 1001 có nghĩa là cột 9.
Cấu tạo của bảng S_box đã đ−ợc nêu trong ch−ơng 4 hình 4.5 phần thuật toán DES Г1 (48 bit) = b 1 9 4 9 3 d 2 3 c 1 e trong hệ nhị phân là:
1011 0001 1001 0100 1001 0011 1101 0010 0011 1100 0001 1110 Nhóm thành các nhóm 6 bit là:
101100 011001 010010 010011 110100 100011 110000 011110 Dễ dàng tính đ−ợc đầu ra dựa vào bảng S-box
S110(0110) = S12 (6) = 2 = 0010 S201(1100) = S21(12) = 6 = 0110 S300(1001) = S30(9) = d = 1101 S401(1001) = S41(9) = 7 = 0111 S510(1010) = S52(10) = c = 1100 S611(0001) = S63(1) = 3 = 0011 S710(1000) = S72(8) = a = 1010 S800(1111) = S80(15) = 7 = 0111
Móc nối tất cả các số 4 bit này ta sẽ đ−ợc một tr−ờng 32 bit Ω1: Ω1 = 0010 0110 1101 0111 1100 0011 1010 0111 = 26d7c3a7
• Tác động của hàm P
Ω1(32 bit) trở thành đầu vào của thuật toán P, thuật toán P hoán vị vị trí các bit trong Ω1 theo bảng 5.18
Kết quả là đầu ra của phép hoán vị theo ma trận P:
P(Ω1) = 1100 01 1 0110 0111 0011 1111 0011 0001 = c5673f31
Tiếp theo ta xét đến khối R1(32 bit) .
Bảo mật trong hệ thống di động WCDMA 16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25 Hình 5.18. Ma trận P
• Cộng tuyệt đôi với khoá K tạo thành 48 bit
Г2 = E(R1) ⊕ K = e4c16032d747
• Chia thành 8 bộ 6 bit cho vào tr−ờng (S-box)2 , xét t−ơng tự nh− trên đầu ra của (S-box)2 sẽ là: Ω2= a30abf88
• Tính P(Ω2)
Sử dụng bảng hàm hoán vị P 5.18 ta đ−ợc P(Ω2) = 79e06c9
Nh− vậy hai khối dữ liệu hoán vị P(Ω1) và P(Ω2) t−ơng ứng với khối dữ liệu M2 đã đ−ợc tính toán.
ắ Giả sử rằng khối dữ liệu M3 (64 bit) là 51cb36af3000000 . Thực hiện tất cả các b−ớc t−ơng tự nh− trên:
• Sử dụng bảng hoán vị ban đầu chuỗi bit M3 sẽ bị hoán vị thành
13050c1ba0c0a1e, trong đó L2 = 13050c1b và R2 = 0a0c0a1e.
• Cả L2 (nửa bên trái) và R2 (nửa bên phải) của M3 đều đ−ợc mở rộng từ 32 bit thành 48 bit dựa và bảng mở rộng bit phía trên, theo đó:
E(L2) = 8a680a8580f6
• Sau đó E(L2) hoặc E(R2) cộng trực tiếp với khoá K đã đ−ợc tạo ra ở trên:
Г3 = E(L2) ⊕ K = (8bfd97fdd712)
đầu ra của (S-box)3 nh− sau: Ω3 = 19cc3369
• Sau đó Ω3 hoán vị tạo ra 32 bit từ 32 bit đầu vào theo bảng hàm hoán vị P ta thu đ−ợc kết quả:
P(Ω3) = 28397dc2
Cuối cùng đối với R2 = 0a0c0a1e là kết quả nhận đ−ợc từ sự hoán vị ban đầu của M3.
• Mở rộng : dựa vào bảng mở rộng bit phía trên ta có: E(R2) = 0540580540fc
• Cộng tuyệt đối
Г4 = E(R2) ⊕ K
= 04d5c57d718
• Cho kết quả thu đ−ợc vào bảng S ta thu đ−ợc: Ω4 = 08eb665
• Hoán vị Ω4 bằng ma trận P ta đ−ợc: P(Ω4) = 807d0dec
Nh− vậy chúng ta đã tính đ−ợc 4 dãy số riêng lẻ P(Ω1), P(Ω2), P(Ω3) và P(Ω4). Chúng ta tiến hành ghép 4 dãy số riêng lẻ này thành một dãy số duy nhất nh− sau:
P(Ω) = P(Ω1) | | P(Ω2) | | P(Ω3) | | P(Ω4).
P(Ω) = (c5673f31) | | (79e06c9) | | (28397dc2) | | (807d0dec)
Cuối cùng 18 bit dữ liệu nhận thực đ−ợc tính toán từ 128 bit trên bằng cách lấy bit thứ 7 của mỗi nhóm 7 bit
AUTHR = 011111000011000101.
Ch−ơng trình mô phỏng đ−ợc biểu diễn trong đĩa CD kèm theo tài liệu.