Kỹ thuật tạo khóa (I) và tính toán AUTHR

Một phần của tài liệu luận văn thạc sĩ bảo mật truyền dữ liệu trong mạng 3g (Trang 58 - 65)

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 khóa:

M1 = 48 bit sẽ được sử dụng làm đầu vào của giai đoạn tạo khóa như sơ đồ

thực hiện hình 2.13. Chúng ta sắp xếp 48 bit thành mảng 6x8 như Bảng 2.3. 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 2.4 đối với M1 ta được:

(mã nhị phân) = 01959d7857e4 (mã hexa)

Bảng 2.3: Bảng sắp xếp các bit đầu vào của thuật toán tạo khóa

Ở đây 48 bit khóa K được tính bởi kỹ thuật tạo khóa (I) được biểu diễn trong hình 2.13

Hình 2.13: Tính toán AUTHR (18 bit) cho hiệu lệnh chung

Xử 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 M2trướ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 2.4

Thực hiện hóa vị bằng bảng IP, qua xáo trộn chuỗi ban đầu trở thành hai chuỗi con như sau:

L1 (32 bit) = 6 0 2 7 5 3 7 d và R1 (32 bit) = c a 9 e 9 4 1 1

Bảng 2.4: Bảng hoán vị ban đầu (IP) • Tác động của hàm E

Đến đây L1và R1 được mở rộng thành 48 bit tương ứng với bảng sau:

Bảng 2.5: 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 khóa 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 Г1trở 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 Si 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 ở bảng 2.3. Đầ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 (adsbygoogle = window.adsbygoogle || []).push({});

Г1 (48 bit) = b 1 9 4 9 3 d 2 3 c 1 e trong hệ nhị phân là:

101 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 2.6

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) .

Sử dụng mở rộng bit Bảng 2.5 ta có: E(R1) = e554fd4a80a3

Bảng 2.6: Ma trận P • Cộng tuyệt đối với khóa 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, và xét tương tự như trên đầu ra của (S-box)2 sẽ là : Ω2= a30abf88

Sử dụng bảng hàm hoán vị P Bảng 2.6 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 tóan.

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ào 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)

• 48 bit này là đầu vào của (S-box)3. Hoạt động của (S-box)3 tương tự như trên đầ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 với R2 = 0a0c0a1e kết quả là 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 phía trên ta có: E(R2) = 0540580540fc

• Cộng tuyệt đối

г4 = E(R2) ⊕ K

= 04d5c57d718 (adsbygoogle = window.adsbygoogle || []).push({});

• 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

Một phần của tài liệu luận văn thạc sĩ bảo mật truyền dữ liệu trong mạng 3g (Trang 58 - 65)