Cỏc vấn đề cài đặt thuật toỏn

Một phần của tài liệu Tìm hiểu và xây dựng chương trình mô phỏng mã hoá rijndael (Trang 55 - 60)

1. 2 Hệ thống mó húa khúa cụng cộng( mó húa bất đối xứng)

2.5Cỏc vấn đề cài đặt thuật toỏn

Gọi a là trạng thỏi khi bắt đầu chu kỳ mó húa. Gọi b, c, d, e lần lượt là trạng thỏi kết quả đầu ra sau khi thực hiện cỏc phộp biến đổi SubBytes, ShiftRows, MixColumns và AddRoundKey trong chu kỳ đang xột. Quy ước: trong trạng thỏi s ( s = a,b, c,d, e ), cột thứ j được kớ hiệu sj, phần tử tại dũng i cột j kớ hiệu là si, j.

Kết hợp cỏc kết quả trung gian của mỗi phộp biến đổi trong cựng chu kỳ với nhau, ta cú:

Cú thể viết lại như sau:

Định nghĩa cỏc bảng tra cứu T0, T1, T2, T3 như sau:

Khi đú, biểu thức trờn sẽ được viết lại như sau:

với round là số thứ tự của chu kỳ đang xột. Như vậy, mỗi cột ej của trạng thỏi kết quả sau khi thực hiện một chu kỳ mó húa cú thể được xỏc định bằng bốn phộp toỏn XOR trờn cỏc số nguyờn 32 bit sử dụng bốn bảng tra cứu T0, T1, T2 và T3. Cụng thức

chỉ ỏp dụng được cho Nr-1 chu kỡ đầu. Do chu kỳ cuối cựng khụng thực hiện phộp biến đổi MixColumns nờn cần xõy dựng 4 bảng tra cứu riờng cho chu kỡ này:

Nhận xột

Kỹ thuật sử dụng bảng tra cứu giỳp cải thiện tốc độ mó húa và giải mó một cỏch đỏng kể. Ngoài ra, kỹ thuật này cũn giỳp chống lại cỏc phương phỏp phỏ mó dựa trờn thời gian mó húa do khi sử dụng bảng tra cứu, thời gian mó húa dữ liệu bất kỳ đều như nhau.

Kỹ thuật này cú thể được sử dụng trong quy trỡnh mó húa và quy trỡnh giải mó tương đương do sự tương ứng giữa cỏc bước thực hiện của hai quy trỡnh này. Khi đú, chỳng ta cú thể dựng chung một quy trỡnh cho việc mó húa và giải mó nhưng sử dụng bảng tra khỏc nhau.

Trờn thực tế, cỏc bảng tra cứu cú thể được lưu trữ sẵn hoặc được xõy dựng trực tiếp dựa trờn bảng thay thế S-Box cựng với thụng tin về cỏc khuụn dạng tương ứng. Trờn cỏc bộ vi xử lý 32-bit, những thao tỏc biến đổi sử dụng trong quy trỡnh mó húa cú thể được tối ưu húa bằng cỏch sử dụng bốn bảng tra cứu, mỗi bảng cú 256 phần tử với kớch thước mỗi phần tử là 4 byte. Với mỗi phần tử a ∈ GF(28), đặt:

Nhận xột:

Ti[a] = RotWord(Ti-1[a]) với i = 1,2,3 . Ký hiệu RotWordi là hàm xử lý gồm i lần thực hiện hàm RotWord, ta cú: Ti[a] = RotWordi(T0[a])

Như vậy, thay vỡ dựng 4 kilobyte để lưu trữ sẵn cả bốn bảng, chỉ cần tốn 1 kilobyte để lưu bảng đầu tiờn, cỏc bảng cũn lại cú thể được phỏt sinh lại khi sử dụng. Cỏc hạn chế về bộ nhớ thường khụng được đặt ra, trừ một số ớt trường hợp như đối với cỏc applet hay servlet. Khi đú, thay vỡ lưu trữ sẵn bảng tra cứu, chỉ cần lưu đoạn mó xử lý phỏt sinh lại cỏc bảng này. Lỳc đú, cụng thức

sẽ trở thành:

Một phần của tài liệu Tìm hiểu và xây dựng chương trình mô phỏng mã hoá rijndael (Trang 55 - 60)