Sơ đồ thuật tốn mã hóa của PRESENT

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu thiết kế một số thuật toán mật mã hạng nhẹ luận văn ths toán học 604601 (Trang 33 - 37)

2.3.1 Phép tốn trộn khóa

Trong phép tốn trộn khóa, cho khóa vịngKi = [k63, k62, ..., k1, k0], và một trạng

thái hiện hành của khối dữ liệu bi = [b63, b62, ..., b1, b0]. Lần lượt từng bít của trạng thái

(STATE) 64 bít sẽ được thực hiện phép cộng⊕(XOR) với từng bít tương ứng trong khóa vịng (khóa được sinh ra từ khóa chínhK thơng qua hàm sinh khóa) của chu kỳ (vòng) hiện hành. Phép tốn được mơ tả dưới đây

bj →bj⊕kji với1≤i≤32 0≤j ≤63

Vì sử dụng phép cộng⊕(XOR) nên phép biến đổi ngược của phép tốn trộn khóa cũng chính là phép tốn trộn khóa. Kết quả của thao tác này ta thu được một mảng trạng thái có độ dài bằng với độ dài của khối bản rõ.

Ví dụ: Cho bản rõ (Plaintext) và khóa (key) sau khi chuyển đổi sang ASCII, chuyển đổi từ bản rõ (ASCII sang hệ Hex) và chuyển đổi khóa (ASCII sang hệ Hex).

Bản rõ (Plaintext): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Khóa (key): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Thực hiện phép trộn khóa như sau:

Bản mã: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Khóa(K1): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

STATE: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

2.3.2 Phép toán thay thế

Phép toán thay thế sử dụng một hộp-S (S-box) 4 bít duy nhất được áp dụng 16 lần song song trong mỗi vịng. Bảng dưới trình bày nội dung bảng thay thế hộp-S (S-box) cho giá trị ở vị trí tương ứng{x}ở dạng thập lục phân của PRESENT sau khi tính tốn:

x 0 1 2 3 4 5 6 7 8 9 A B C D E F

S[x] C 5 6 B 9 0 A D 3 E F 8 4 7 1 2

Bảng 3: Bảng thay thế hộp-S của PRESENT

Bản rõ ban đầu sau khi được thực hiện phép cộng⊕(XOR) với khóa con ban đầu ta thu được một mảng trạng tháiSTATE, và thực hện phép thay thế phi tuyến (SBoxlayer)

bằng cách thay thế từng phần tử trong mảng trạng thái (chuyển sang hệ Hexa) tương ứng với các phần tử (chuyển sang hệ Hexa) trong bảng hộp-S ở trên với việc thay thế

{0} → {C}ta thu được kết quả sau:

Khóa XOR: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 hộp-S: C C C C C C C C C C C C C C C C

2.3.3 Phép toán hoán vị

Phép tốn hốn vị đảm bảo rằng 4 bít đầu ra của hộp-S sẽ được phân tán ra 4 hộp-S khác nhau ở vòng tiếp theo để đảm bảo tính chất khuếch tán và đạt được sau khi thực hiện một số vịng tối thiểu.

Vì mã hóa PRESENT sử dụng mơ hình mạng SPN nên theo cấu trúc SPN ta gọi

blà kích thước khối (block size),slà số bít hộp-S vàP(i)là vị trí bít sau khi hốn vị, ta có phép tốn hốn vị bít tổng qt sau:

P(i) = (b

s ×i mod b−1 với0≤i≤b−2,

b−1 vớii=b−1,

Trong mã hóa PRESENT sử dụng khối 64 bít (b= 64), và số bít hộp-S là 4×4 (s = 4), từ phép tốn tổng qt ở trên, ta có phép tốn hốn vị của PRESENT như sau:

P(i) = (

16×i mod63 với0≤i≤62,

63 vớii= 63,

Với phép tốn hốn vị trên ta có được bảng hốn vị của PRESENT bảng 4.

i P(i) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 16 32 48 1 17 33 49 2 18 34 50 3 19 35 51 i P(i) 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 4 20 36 52 5 21 37 53 6 22 38 54 7 23 39 55 i P(i) 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 8 24 40 56 9 25 41 57 10 26 42 58 11 27 43 59 i P(i) 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 12 28 44 60 13 29 45 61 14 30 46 62 15 31 47 63

Bảng 4: Bảng lớp hoán vị của PRESENT

Trong phép toán hoán vị của thuật toán PRESENT ta thực hiện hai lần phép biến đổi cho mảng trạng thái và kết quả thu được là một mảng trạng thái, mảng trạng thái này là kết quả của vòng thứ nhất (vòng 1) và cũng là đầu vào cho lần thực hiện thứ 2 (vịng 2). Q trình thực hiện tương tự như vịng 1.

Ví dụ: Sau khi thực hiện phép tốn thay thế (SBoxlayer) ở trên ta thu được một mảng trạng thái có kết quả như sau:

hộp-S: C C C C C C C C C C C C C C C C

Dựa vào bảng hốn vị đã được tính tốn ở trên ta thực hiện phép toán hoán vị (pLayer) như sau: Với mảng trạng thái gồm 16 đoạn con, mỗi đoạn con là 4 bít ở dạng nhị phân có dạng như sau:

i P(i) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 i P(i) 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 i P(i) 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 i P(i) 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0

Thực hiện phép thay thế lần một cho các bít tương ứng trong mảng trạng thái ta thu được kết quả sau:

F F 0 0 F F 0 0 F F 0 0 F F 0 0

Tương tự như vậy thực hiện phép thay thế lần thứ hai ta thu được kết quả là mảng trạng thái (STATE) của vòng thứ nhất. Kết quả này cũng là đầu vào cho vòng thứ hai của phép mã hóa.

P-layer: F F F F F F F F 0 0 0 0 0 0 0 0

2.3.4 Vòng lặp cuối

Vịng lặp cuối cùng là một phép tốn ⊕ (XOR) của mảng trạng thái thu được sau 31 vòng với khóaK32. Phép tốn này cịn gọi là phép tốn cho việc làm "trắng sau"

(post-whitening), cuối cùng ta thu được bản mã.

Trong ví dụ đang xét, kết thúc vịng 32 ta thu được kết quả cuối cùng là bản mã:

2.4 Mơ tả thuật tốn giải mã của PRESENT

Thuật tốn giải mã được mơ tả trong hình dưới đây:

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu thiết kế một số thuật toán mật mã hạng nhẹ luận văn ths toán học 604601 (Trang 33 - 37)

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

(76 trang)