Khởi tạo khóa và hoạt động của mật mã

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu họ hệ mật WG trong mật mã hạng nhẹ luận văn ths công nghệ thông tin 604802 (Trang 27 - 30)

1.3 Họ hệ mật WG [3],[5]

1.3.3 Khởi tạo khóa và hoạt động của mật mã

Mô tả quá trình tạo khoá và hoạt động của mật mã WG. Như đã giới thiệu bên trên độ dài của véc tơ IV có 2 lựa chọn:

 IV có độ dài 32 bít và 64 bít

 IV có độ dài bằng độ dài khoá Dưới đây là trình bày chi tiết của 2 cơ chế.

1.3.3.1 Tạo khóa (IV 32 bít và 64 bít)

Độ dài khóa được khuyến nghị cho mật mã WG là 80, 96, 112 và 128 bit. Véc tơ khởi tạo (IV) có kích thước 32 hoặc 64 bit có thể được dùng với bất kỳ khoá có độ dài nào ở trên. Để khởi tạo mã, các bít khóa và các bít IV được nạp vào LFSR.

Quá trình tải các bit khóa và các bit IV vào LFSR:

Trạng thái của LFSR được biểu diễn S(1), S(2), S(3), .., S(11) ∈ F29. Mỗi trạng thái S(i) ∈ F29 được biểu diễn: S1, .., 29(i), trong đó 1 ≤ i ≤ 11. Tương tự, các bit khoá được biểu diễn: k1,..., j, 1≤ j ≤ 128 và bit IV là IV1,.., m, 1 ≤ m ≤ 64.

Các bit khoá được chia thành các khối 16 bit và mỗi khối được nạp vào LFSR như sau:

Khoá 80 bit được tải

S1,..,16 (1) = k1,..,16 S1,..,16 (2) = k17,..,32 S1,..,16 (3) = k33,..,48 S1,..,16 (4) = k49,..,64 S1,..,16 (5) = k65,..,80 S1,..,16 (9) = k1,..,16 S1,..,16(10) = k17,..32⊕ 1 S1,..,16 (11) = k33,..,48

Khoá 96 bit được tải

S1,..16(1) = k1,..,16 S1,..16(2) = k17,..,32 S1,..16(3) = k33,..,48

S1,..16(4) = k49,..,64 S1,..16(5) = k65,..,80 S1,..16(6) = k81,..,96 S1,..,16(9) = k1,..,16 S1,..,16(10) = k17,..32⊕ 1 S1,..,16(11) = k33,..,48

Hình 1.11 Pha khởi tạo khóa của mật mã WG

Khoá 112 bit được tải

S1,..16(1) = k1,..,16 S1,..16(2) = k17,..,32 S1,..16(3) = k33,..,48 S1,..16(4) = k49,..,64 S1,..16(5) = k65,..,80 S1,..16 (6) = k81,..,96

S1,..16(7) = k97,..,112 S1,..16 (9) = k1,..,16 S1,..16 (10) = k17,..32⊕ 1 S1,..16 (11) = k33,..,48

Khóa 128 bit được tải

S1,..16(1) = k1,..,16 S1,..16(2) = k17,..,32 S1,..16(3) = k33,..,48 S1,..16(4) = k49,..,64 S1,..16(5) = k65,..,80 S1,..16 (6) = k81,..,96 S1,..16(7) = k97,..,112 S1,..16(8) = k113,..,128 S1,..,16(9) = k1,..,16 S1,..,16(10) = k17,..32⊕ 1 S1,..,16(11) = k33,..,48

Các bit IV được chia thành các khối 8 bit và mỗi khối được nạp vào LFSR như sau:

S17,..24(4) = IV25,..,32 IV 64 bit được tải

S17,..24(1) = IV1,..,8 S17,..24(2) = IV9,..,16 S17,..24(3) = IV17,..,24 S17,..24(4) = IV25,..,32 S17,..24(5) = IV33,..,40 S17,..24(6) = IV41,..,48 S17,..24(7) = IV49,..,56 S17,..24(8) = IV57,..,64

Tất cả các bit còn lại của LFSR được thiết lập bằng 0. Khi cặp khoá/IV được tải vào trong LFSR, máy sinh dòng khóa sẽ chạy trong 22 chu kỳ đồng hồ. Đây là pha khởi tạo của mật mã. Trong pha này véc tơ 29 bit, được biểu diễn:

 

 

 1 2 3 4 

keyinitvecqqqq

Véc tơ 29 bít trong hình 1.10 được thêm với hàm phản hồi của LFSR kết quả sau đó được dùng để cập nhật LFSR. Quá trình tạo khoá được trình bày trong hình 1.11. Khi khóa đã được khởi tạo thì LFSR bị khóa một lần và 1 bit đầu ra của chuyển đổi WG cho ra bit đầu tiên của dòng khóa vận hành. Vì độ phức tạp tuyến tính của dòng khóa là 245 nên độ dài tối đa của dòng khóa chấp nhật được là dòng khoá với cặp khoá khoá/IV là 245. Sau đó, mật mã phải được khởi tạo lại với một IV mới hoặc một khoá mới hoặc cả hai.

1.3.3.2 Tạo khóa (độ dài khóa bằng độ dài IV)

Ta có: Các trạng thái S(1), S(2), S(3), .., S(11) ∈ F229; Mỗi trạng thái S(i) ∈ F229, được biểu diễn là S1, .., 29 (i) trong đó 1 ≤ i ≤ 11. Tương tự ta biểu diễn các bít khoá là k1, .., j, 1 ≤ j ≤ 128 và các bit IV là IV1, .., m, 1≤m≤ 128.

Khoá và IV 80 bit được tải:

S1,..16(1) = k1,..,16 S17,..24(1) = IV1,..,8 S1,..8(2) = k17,..,24 S9,..24(2) = IV9,..,24 S1,..16(3) = k25,..,40 S17,..24(3) = IV25,..,32 S1,..8(4) = k41,..,48 S9,..24(4) = IV33,..,48 S1,..16(5) = k49,..,64 S17,..24(5) = IV49,..,56 S1,..8(6) = k65,..,72 S9,..24(6) = IV57,..,72 S1,..8(7) = k73,..,80 S17,..24(7) = IV73,..,80

Khoá và IV 96 bit được tải:

S1,..16(1) = k1,..,16 S17,..24(1) = IV1,..,8 S1,..8(2) = k17,..,24 S9,..24(2) = IV9,..,24 S1,..16(3) = k25,..,40 S17,..24(3) = IV25,..,32 S1,..8(4) = k41,..,48 S9,..24(4) = IV33,..,48 S1,..16(5) = k49,..,64 S17,..24(5) = IV49,..,56 S1,..8(6) = k65,..,72 S9,..24(6) = IV57,..,72 S1,..16(7) = k73,..,88 S17,..24(7) = IV73,..,80 S1,..8(8) = k89,..,96 S9,..24(8) = IV81,..,96

Khoá và IV 112 bit được tải:

S1,..16(1) = k1,..,16 S17,..24(1) = IV1,..,8 S1,..8(2) = k17,..,24 S9,..24(2) = IV9,..,24 S1,..16(3) = k25,..,40 S17,..24(3) = IV25,..,32

S1,..8(4) = k41,..,48 S9,..24(4) = IV33,..,48 S1,..16(5) = k49,..,64 S17,..24(5) = IV49,..,56 S1,..8(6) = k65,..,72 S9,..24(6) = IV57,..,72 S1,..16(7) = k73,..,88 S17,..24(7) = IV73,..,80 S1,..8(8) = k89,..,96 S9,..24(8) = IV81,..,96 S1,..16(9) = k97,..,112 S17,..24(9) = IV97,..,104 S9,..16(10) = IV105,..,112

Khoá và IV 128 bit được tải:

S1,..8(4) = k41,..,48 S9,..24(4) = IV33,..,48 S1,..16(5) = k49,..,64 S17,..24(5) = IV49,..,56 S1,..8(6) = k65,..,72 S9,..24(6) = IV57,..,72 S1,..16(7) = k73,..,88 S17,..24(7) = IV73,..,80 S1,..8(8) = k89,..,96 S9,..24(8) = IV81,..,96 S1,..16(9) = k97,..,112 S17,..24(9) = IV97,..,104 S1,..8(10) = k113,..,120 S9,..24(10) = IV105,..,120 S1,..8(11) = k121,..,128 S17,..24(11) = IV121,..,128

Các bit còn lại trong LFSR đều được thiết lập bằng 0. Khi khoá và IV đã được nạp vào LFSR, máy sinh dòng khóa sẽ chạy cho 22 chu kỳ.

*Hoạt động của mật mã

Khi mật mã đã được khởi tạo, các thành phần bên trong của LFSR tạo thành trạng thái nội bộ của mật mã. Để tạo ra dòng khoá, LFSR bị khóa 1 lần và các bít trong trạng thái S(11) được nạp vào khối chuyển đổi WG tạo ra một bit dòng khóa. Các LFSR lại bị khóa và các bít mới cập nhật của S(11) sẽ được đẩy vào khối WG chuyển đổi, tiếp tục tạo ra bit dòng khóa tiếp theo. Dòng khóa vận hành này được XOR với bản rõ để tạo ra bản mã.

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu họ hệ mật WG trong mật mã hạng nhẹ luận văn ths công nghệ thông tin 604802 (Trang 27 - 30)

Tải bản đầy đủ (PDF)

(57 trang)