Danh mục

thuật toán mã hóa và ứng dụng p2

Số trang: 29      Loại file: pdf      Dung lượng: 503.01 KB      Lượt xem: 12      Lượt tải: 0    
Hoai.2512

Hỗ trợ phí lưu trữ khi tải xuống: 16,000 VND Tải xuống file đầy đủ (29 trang) 0
Xem trước 3 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Quy trình mã hóa Rijndael sử dụng bốn phép biến đổi chính: 1. AddRoundKey: cộng (⊕) mã khóa của chu kỳ vào trạng thái hiện hành. Độ dài của mã khóa của chu kỳ bằng với kích thước của trạng thái. 2. SubBytes: thay thế phi tuyến mỗi byte trong trạng thái hiện hành thông qua bảng thay thế (S-box). 3. MixColumns: trộn thông tin của từng cột trong trạng thái hiện hành
Nội dung trích xuất từ tài liệu:
thuật toán mã hóa và ứng dụng p2Chương 33.4.1 Quy trình mã hóaQuy trình mã hóa Rijndael sử dụng bốn phép biến đổi chính: AddRoundKey: cộng (⊕) mã khóa của chu kỳ vào trạng thái hiện hành. Độ1. dài của mã khóa của chu kỳ bằng với kích thước của trạng thái.2. SubBytes: thay thế phi tuyến mỗi byte trong trạng thái hiện hành thông qua bảng thay thế (S-box).3. MixColumns: trộn thông tin của từng cột trong trạng thái hiện hành. Mỗi cột được xử lý độc lập.4. ShiftRows: dịch chuyển xoay vòng từng dòng của trạng thái hiện hành với di số khác nhau.Mỗi phép biến đổi thao tác trên trạng thái hiện hành S. Kết quả S’ của mỗi phépbiến đổi sẽ trở thành đầu vào của phép biến đổi kế tiếp trong quy trình mã hóa.Trước tiên, toàn bộ dữ liệu đầu vào được chép vào mảng trạng thái hiện hành.Sau khi thực hiện thao tác cộng mã khóa đầu tiên, mảng trạng thái sẽ được trảiqua Nr = 10, 12 hay 14 chu kỳ biến đổi (tùy thuộc vào độ dài của mã khóa chínhcũng như độ dài của khối được xử lý). Nr − 1 chu kỳ đầu tiên là các chu kỳ biếnđổi bình thường và hoàn toàn tương tự nhau, riêng chu kỳ biến đổi cuối cùng cósự khác biệt so với Nr − 1 chu kỳ trước đó. Cuối cùng, nội dung của mảng trạngthái sẽ được chép lại vào mảng chứa dữ liệu đầu ra.Quy trình mã hóa Rijndael được tóm tắt lại như sau:50 Phương pháp mã hóa Rijndael1. Thực hiện thao tác AddRoundKey đầu tiên trước khi thực hiện các chu kỳ mã hóa.2. Nr – 1 chu kỳ mã hóa bình thường: mỗi chu kỳ bao gồm bốn bước biến đổi liên tiếp nhau: SubBytes, ShiftRows, MixColumns, và AddRoundKey.3. Thực hiện chu kỳ mã hóa cuối cùng: trong chu kỳ này thao tác MixColumns được bỏ qua.Trong thuật toán dưới đây, mảng w[] chứa bảng mã khóa mở rộng; mảng in[]và out[] lần lượt chứa dữ liệu vào và kết quả ra của thuật toán mã hóa.Cipher( byte in[4 * Nb], byte out[4 * Nb], word w[Nb * (Nr + 1)])begin byte state[4,Nb] state = in // Xem phần 3.4.6 AddRoundKey(state, w) for round = 1 to Nr – 1 // Xem phần 3.4.2 SubBytes(state) // Xem phần 3.4.4 ShiftRows(state) // Xem phần 3.4.5 MixColumns(state) AddRoundKey(state, w + round * Nb) end for SubBytes(state) ShiftRows(state) AddRoundKey(state, w + Nr * Nb) out = stateend 51Chương 33.4.2 Kiến trúc của thuật toán RijndaelThuật toán Rijndael được xây dựng theo kiến trúc SPN sử dụng 16 s-box (kíchthước 8 × 8) để thay thế. Trong toàn bộ quy trình mã hóa, thuật toán sử dụngchung bảng thay thế s-box cố định. Phép biến đổi tuyến tính bao gồm 2 bước:hoán vị byte và áp dụng song song bốn khối biến đổi tuyến tính (32 bit) có khảnăng khuếch tán cao. Hình 3.2 thể hiện một chu kỳ mã hóa của phương phápRijndael.Trên thực tế, trong mỗi chu kỳ mã hóa, khóa của chu kỳ được cộng (XOR) sauthao tác biến đổi tuyến tính. Do chúng ta có thực hiện thao tác cộng khóa trướckhi thực hiện chu kỳ đầu tiên nên có thể xem thuật toán Rijndael thỏa cấu trúcSPN [29]. Hình 3.2. Một chu kỳ mã hóa của phương pháp Rijndael (với Nb = 4)52 Phương pháp mã hóa Rijndael3.4.3 Phép biến đổi SubBytesThao tác biến đổi SubBytes là phép thay thế các byte phi tuyến và tác động mộtcách độc lập lên từng byte trong trạng thái hiện hành. Bảng thay thế (S-box) cótính khả nghịch và quá trình thay thế 1 byte x dựa vào S-box bao gồm hai bước: Xác định phần tử nghịch đảo x-1 ∈ GF(28). Quy ước {00}-1 = {00}.1. Áp dụng phép biến đổi affine (trên GF(2)) đối với x-1 (giả sử x-1 có biểu diễn2. nhị phân là {x7 x6 x5 x4 x3 x2 x1 x0 } ): ⎡ y 0 ⎤ ⎡1 0 0 0 1 1 1 1⎤ ⎡ x 0 ⎤ ⎡1⎤ ⎢y ⎥ ⎢ ⎢⎥ 0 1 1 1 ⎥ ⎢ x1 ⎥ ⎢1⎥ ⎢ 1 ⎥ ⎢1 1 0 0 ⎥ ⎢⎥ ⎢ y 2 ⎥ ⎢1 1 1 0 0 0 1 1 ⎥ ⎢ x 2 ⎥ ⎢0 ⎥ ⎢⎥⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ y 3 ⎥ = ⎢1 1 1 1 0 0 0 1 ⎥ ⎢ x 3 ⎥ ⎢0 ⎥ + (3.18) ⎢ y 4 ⎥ ⎢1 1 1 1 1 0 0 0 ⎥ ⎢ x 4 ⎥ ⎢0 ⎥ ⎢⎥⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ y 5 ⎥ ⎢0 1 1 1 1 1 0 0⎥ ⎢ x5 ⎥ ⎢1⎥ ⎢ y ⎥ ⎢0 0 1 1 1 1 1 0⎥ ⎢ x 6 ⎥ ⎢1⎥ ⎢ 6⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥ ...

Tài liệu được xem nhiều: