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
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⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥ ...
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ìm kiếm theo từ khóa liên quan:
thủ thuật máy tính bí quyết lập trình thiết kế giao diện web thế kế wordpress mẹo tin họcTài liệu liên quan:
-
Top 10 mẹo 'đơn giản nhưng hữu ích' trong nhiếp ảnh
11 trang 319 0 0 -
Làm việc với Read Only Domain Controllers
20 trang 307 0 0 -
Sửa lỗi các chức năng quan trọng của Win với ReEnable 2.0 Portable Edition
5 trang 216 0 0 -
Giáo trình Bảo trì hệ thống và cài đặt phần mềm
68 trang 209 0 0 -
Tổng hợp 30 lỗi thương gặp cho những bạn mới sử dụng máy tính
9 trang 206 0 0 -
Phần III: Xử lý sự cố Màn hình xanh
3 trang 206 0 0 -
UltraISO chương trình ghi đĩa, tạo ổ đĩa ảo nhỏ gọn
10 trang 204 0 0 -
Sao lưu dữ liệu Gmail sử dụng chế độ Offline
8 trang 203 0 0 -
Hướng dẫn cách khắc phục lỗi màn hình xanh trong windows
7 trang 202 0 0 -
Giáo Trình tin học căn bản - ĐH Marketing
166 trang 198 0 0