Kỹ thuật mó húa hộp trắng trờn AES

Một phần của tài liệu tìm hiểu mật mã hộp trắng (whitebox cryptography) và ứng dụng trong hệ thống thu phát thông tin số (Trang 52 - 60)

6. í nghĩa khoa học và thực tiễn của đề tài

2.2.2.Kỹ thuật mó húa hộp trắng trờn AES

Đầu vào để mó húa và giải mó thuật toỏn AES là một khối 128-bit. Khối này đƣợc biểu diễn bởi một ma trận 4 ì 4 byte = 16 bytes. AES thực hiện vũng lặp 10 vũng. Mỗi vũng lặp xử lý là một tập hợp mƣời sỏu byte gọi là trạng thỏi (state) của AES. AES-128 sử dụng một khúa 128 bit, khúa này đƣợc đƣa vào một thuật toỏn mở rộng khúa từ khúa chớnh, mỗi khúa con chứa 4 byte. Một vũng cơ bản bao gồm bốn phần:

SubBytes ShiftRows MixColumns AddRoundKey

Trong đú hàm duy nhất sử dụng khúa là AddRoundKey, ba hàm cũn lại khụng tỏc động tới khúa. Do vậy ta phải biến đổi bƣớc AddRoundKey để khụng cũn nhỡn thấy sự hiện diện của khúa[3].

2.2.2.1. Giấu khúa trong S-Box

Với mục đớch là ẩn chỡa khúa trong quỏ trỡnh thực hiện, nờn ta gộp bƣớc AddRoundKey của vũng lặp trƣớc và bƣớc SubBytes của vũng lặp

boxes chuẩn bằng những bảng S-boxes đó kết hợp với khúa đƣợc gọi là .

Khi đú đƣợc định nghĩa nhƣ sau:

Trong đú S là S-box, là khúa con kiểu byte vũng lặp r của thuật

toỏn AES. Vũng 10 T-Boxes nhận cỏc giỏ trị nhƣ sau

Trong đú xỏc định vị trớ i, j mới.

Nhƣ vậy số bảng cần tạo ra là 10 x 16 = 160 T-boxes. Tuy nhiờn chỡa khúa dễ dàng bị khụi phục từ T-boxes. Bởi vỡ S-1 đƣợc cụng khai.

Cỏc cú thể tớnh toỏn đƣợc, bằng cỏch chọn một tựy ý x và tớnh

bijections và đƣợc biểu diễn nhƣ là ma trận 8 ì 8 trờn GF(2 . Quỏ trỡnh đảo ngƣợc Mixing bijections đƣợc tớnh toỏn đơn giản mang lại hiệu quả.

2.2.2.2. Chốn trộn song ỏnh (Inserting Mixing Bijections)

Ta biết rằng, cỏc trạng thỏi của AES đƣợc biểu diễn bởi ma trận phần tử byte kớch thƣớc 4 x 4. Bƣớc MixColumns (MC) thực hiện tại 1 thời điểm là thao tỏc trờn 1 cột (4 byte). Nhƣ vậy trong một lần xử lý, MC thực hiện trờn một ma trận kớch thƣớc 32 x 32, giả sử ta sử dụng một bảng để lƣu trữ thỡ quỏ trỡnh thực hiện sẽ tốn 232 ì 32 = 137438953472 bits = 16 GB. Để trỏnh lóng phớ ma trận trờn đƣợc chia thành 4 phần.

Hỡnh 2.14Khối MC

MC đƣợc chia thành 4 phần kớch thƣớc 32 x 8, MC0, MC1, MC2, MC3. MC thực hiện phộp nhõn 32 bit của vộc tơ x =(x0,....,x31) đƣợc chia thành 4 phộp nhõn riờng biệt nhƣ hỡnh 2.14. Sau đú thực hiện 3 phộp XOR 32 bit và cuối cựng là kết quả z là 32 bit.

Ba phộp toỏn XOR 32 bit sẽ đƣợc chia thành 24 phộp tớnh XOR 4 bit và đƣợc kết nối thớch hợp với bảng tỡm kiếm mó húa. (vớ dụ ((z[0,0], z[0,1], z[0,2], z[0,3]) + (z[1,0], z[1,1], z[1,2], z[1,3]) || (z[0,4], z[0,5], z[0,6], z[0,7]) + (z[1,4], z[1,5], z[1,6], z[1,7] || ... trong đú || biểu diễn phộp nối, + biểu diễn phộp XOR).

Bằng cỏch chia thành cỏc đoạn và chia phộp XOR ra thành những đoạn nhỏ nờn mỗi bƣớc đƣợc biểu diễn bởi một bảng tra cứu nhỏ.

Hỡnh 2.15Bảng loại IV

Cụ thể, đối với i = 0,...,3 zi đƣợc sử dụng bảng 8 x 32 để tớnh toỏn, trong khi phộp XOR 4 bit trở thành 24 bảng 8 x 4. Đầu vào giải mó và đầu ra mó húa đƣợc đặt vào vũng lặp XOR. Cỏc bảng mó song ỏnh đƣợc chọn ngẫu nhiờn kớch thƣớc 4 x 4 và đƣợc gọi là bảng IV.

Việc chọn song ỏnh phi tuyến 4 x 4 phụ thuộc vào kớch thƣớc của bảng. Trong tỡnh huống này một bảng loại IV là chỉ cú 28 ì 4 = 128 byte. Chỳng ta cần 24 bảng mà tốn 3 KB. Nếu chỳng ta khụng chia phộp XORs, thỡ sẽ cần ba bảng XOR mà tớnh XORs 32-bit. Một bảng nhƣ vậy sẽ cú chi phớ 224 KB sẽ gõy ra lóng phớ.

T-boxes và bảng 8 ì 32-bit cú thể đƣợc biểu diễn nhƣ là bảng tra cứu riờng biệt. Thay vào đú, chỳng bao gồm việc tớnh toỏn tạo bảng mới 8 ì 32-bit và biến đổi SubBytes, AddRoundKey cũng nhƣ một phần của MixColumns. Điều này tiết kiệm khụng gian lƣu trữ cỏc T-hộp và thời gian thực hiện tra cứu bảng trong quỏ trỡnh mó húa và giải mó.

Trƣớc khi chia tỏch MC thành MCi nhƣ trờn, MC sẽ đƣợc kết hợp với Mixing bijection MB (là một ma trận 4 x 4). Việc sử dụng Mixing bijection làm tăng độ phức tạp cho một bảng cụ thể.

Hỡnh 2.16Bảng loại II

Để thực hiện đảo ngƣợc Mixing Bijection, ta thờm một bộ bảng dựng để tớnh MB-1

. Cho ( ) là đầu vào MixColumns, và cho ( ) là

đầu ra sau khi MixColumns. Cho là kết quả của

Trong bảng III, MB-1 sẽ đƣợc kết hợp với cỏc phần tử nghịch đảo của bốn bảng MB đầu vào vũng tiếp theo của bảng II, và chia thành bốn khối 32ì8.

mb-1○

mb-1○ với mb-1 (adsbygoogle = window.adsbygoogle || []).push({});

Và là nghịch đảo của Mixing bijection 8ì8 cho cỏc bảng vào vũng tiếp theo của loại II.

Ta chốn cỏc ma trận phi tuyến tớnh 4 x 4 vào bảng III 8ì32 (Hỡnh 2.17). Cỏc bảng đƣợc theo sau bởi loại tƣơng ứng bảng IV.

Hỡnh 2.17Bảng loại III 2.2.2.3. Chốn mó ngoài (Inserting External Encodings)

Cỏc hàm mó húa F-1 và G đƣợc đƣa vào khi thực hiện hộp trắng đƣợc gọi là mó húa bờn ngoài (External Encodings). Trong đú F-1 bao gồm đầu vào giải mó phi tuyến tớnh và một song ỏnh tuyến tớnh U-1. G bao gồm một song ỏnh V tuyến tớnh và mó húa đầu ra phi tuyến tớnh. Cỏc MixBijection U-1 và V đƣợc chọn ngẫu nhiờn song ỏnh tuyến tớnh 128ì128 trong đú bao gồm 1024 ma trận con 4ì4. U-1 đƣợc đƣa vào trƣớc khi cỏc hoạt động của AES diễn ra AddRoundKey. Để hoàn tỏc trộn song ỏnh 8ì8 cho T1, U-1

sẽ đƣợc kết hợp với đầu vào đảo MixBijection cho T1. Kết quả đƣợc chia thành dải 128ì8, và tiếp theo là 4-bit đến 4-bit giải mó đầu vào phi tuyến tớnh và mó húa đầu ra (hỡnh 2.15). Cỏc mó húa đầu ra phải đƣợc giải mó thụng qua phộp XOR với nhau và đang đƣợc mó húa để hoàn thành việc thực hiện. Cỏc kiểu mó húa đầu ra của giai đoạn cuối cựng của bảng IV loại hỗ trợ U-1

nghịch giải mó đầu vào của cỏc bảng loại II cho vũng 1.

4-bit input decoding 4-bit input decoding

Hỡnh 2.18Bảng loại Ia

V đƣợc chốn vào sau khi hoạt động AES AddRoundKey cuối cựng. V đƣợc chia thành dải 128 ì 8 và đƣợc theo sau bởi 4-bit phi tuyến tớnh giải mó đầu vào và 4-bit phi tuyến tớnh mó húa đầu ra.

4-bit input decoding 8 x 8 mixing bijection 4-bit input decoding

Hỡnh 2.19Bảng loại Ib

Một phần của tài liệu tìm hiểu mật mã hộp trắng (whitebox cryptography) và ứng dụng trong hệ thống thu phát thông tin số (Trang 52 - 60)