Sơ đồ thuật toán PRESENT

Một phần của tài liệu Ứng dụng mã hạng nhẹ cho điều khiển thiết bị trong can (Trang 40 - 41)

Thuật toán PRESENT sử dụng để mã hóa các khối dữ liệu 64 bit với khóa sử dụng là 80 bít, sử dụng 31 vòng lặp. Bản rõ sau khi được cộng khóa sẽ được đưa vào mạng SPN mà ở đây là 2 khối sBoxLayer và pLayer. Khóa cho mỗi vòng lặp được sinh ra bởi một khóa K ban đầu và sẽ được cập nhật sau mỗi vòng lặp và vòng lặp cuối cùng sẽ tạo ra bản mã ciphertext.

Bảng 2.1: Khối Sbox của PRESENT [8]

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 2.2: Khối hoán vị pLayer của PRESENT [8]

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

i 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

P(i) 12 28 44 60 13 29 45 61 14 30 46 62 15 31 47 63

2.1.4: Cấu trúc Feistel trong mã hạng nhẹ

Cấu trúc Feistel trong mã khối hạng nhẹ, được thể hiện qua thuật toán TWINE một trong những thuật toán đặc trưng thiết kế theo cấu trúc Feistel của mã khối hạng nhẹ.

Thuật toán TWINE sử dụng để mã hóa các khối dữ liệu 64 bit với khóa K sử dụng là 80 bit hoặc 128 bit, sử dụng ít nhất 36 vòng lặp. Tại mỗi vòng lặp (hình 2.4), bản rõ 64 bit được chia thành 16 khối con {𝑥0, 𝑥1, 𝑥2, … , 𝑥15}, khóa 𝑅𝐾𝑖 sử dụng trong mỗi vòng lặp có độ dài 80 bít được sinh bởi khóa K ban đầu và được cập nhật sau mỗi vòng lặp (hình 2.4).

Một phần của tài liệu Ứng dụng mã hạng nhẹ cho điều khiển thiết bị trong can (Trang 40 - 41)

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

(77 trang)