thuật toán mã hóa và ứng dụng phần 3
Số trang: 21
Loại file: pdf
Dung lượng: 440.66 KB
Lượt xem: 15
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:
Phương pháp mã hóa Rijndaelblock[r,c] = FFmul(0x0e, t[r]) xor FFmul(0x0b, t[(r + 1) mod 4]) xor FFmul(0x0d, t[(r + 2) mod 4]) xor FFmul(0x09, t[(r + 3) mod 4]) end for end for end
Nội dung trích xuất từ tài liệu:
thuật toán mã hóa và ứng dụng phần 3 Phương pháp mã hóa Rijndael block[r,c] = FFmul(0x0e, t[r]) xor FFmul(0x0b, t[(r + 1) mod 4]) xor FFmul(0x0d, t[(r + 2) mod 4]) xor FFmul(0x09, t[(r + 3) mod 4]) end for end forend3.6.4 Quy trình giải mã tương đươngNhận xét:1. Phép biến đổi InvSubBytes thao tác trên giá trị của từng byte riêng biệt của trạng thái hiện hành, trong khi phép biến đổi InvShiftRows chỉ thực hiện thao tác di chuyển các byte mà không làm thay đổi giá trị của chúng. Do đó, thứ tự của hai phép biến đổi này trong quy trình mã hóa có thể được đảo ngược. Với phép biến đổi tuyến tính A bất kỳ, ta có A( x + k ) = A( x) + A(k ) . Từ đó,2. suy raInvMixColumns(state XOR Round Key)= InvMixColumns(state) XOR InvMixColumns(Round Key)Như vậy, thứ tự của phép biến đổi InvMixColumns và AddRoundKey trong quytrình giải mã có thể được đảo ngược với điều kiện mỗi từ (4 byte) trong bảng mãkhóa mở rộng sử dụng trong giải mã phải được biến đổi bởi InvMixColumns. Dotrong chu kỳ mã hóa cuối cùng không thực hiện thao tác MixColumns nên không 67Chương 3cần thực hiện thao tác InvMixColumns đối với mã khóa của chu kỳ giải mã đầutiên cũng như chu kỳ giải mã cuối cùng.Vậy, quy trình giải mã Rijndael có thể được thực hiện theo với trình tự các phépbiến đổi ngược hoàn toàn tương đương với quy trình mã hóa.EqInvCipher(byte in[4*Nb], byte out[4*Nb], word dw[Nb*(Nr+1)])begin byte state[4,Nb] state = in AddRoundKey(state, dw + Nr * Nb) for round = Nr - 1 downto 1 InvSubBytes(state) InvShiftRows(state) InvMixColumns(state) AddRoundKey(state, dw + round * Nb) end for InvSubBytes(state) InvShiftRows(state) AddRoundKey(state, dw) out = stateendTrong quy trình trên, bảng mã khóa mở rộng dw được xây dựng từ bảng mã khóaw bằng cách áp dụng phép biến đổi InvMixColumns lên từng từ (4 byte) trong w,ngoại trừ Nb từ đầu tiên và cuối cùng của w.68 Phương pháp mã hóa Rijndaelfor i = 0 to (Nr + 1) * Nb – 1 dw[i] = w[i]end forfor rnd = 1 to Nr – 1 InvMixColumns(dw + rnd * Nb)end for3.7 Các vấn đề cài đặt thuật toánGọ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áikế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áis ( 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. ⎡b0, j ⎤ ⎡ S [a 0, j ]⎤ ⎢ b ⎥ ⎢ S[a ] ⎥ ⎢ 1, j ⎥ = ⎢ 1, j ⎥Sau biến đổi SubBytes: (3.31) ⎢b2, j ⎥ ⎢ S [a 2, j ]⎥ ⎢ ⎥⎢ ⎥ ⎢b3, j ⎥ ⎢ S [a 3, j ]⎥ ⎣ ⎦⎣ ⎦ ⎡c 0, j ⎤ ⎡ ⎤ b0, j ⎢c ⎥ ⎢ b ⎥ ⎢ 1, j ⎥ = ⎢ 1,( j + shift (1, Nb )) mod Nb ⎥Sau biến đổi ShiftRows: (3.32) ⎢ c 2 , j ⎥ ⎢ b 2 ,( j + shift (2 , Nb )) mod Nb ⎥ ⎢ ⎥⎢ ⎥ ⎢ c 3, j ⎥ ⎢ b3 ,( j + shift (3, Nb )) mod Nb ⎥ ⎣ ⎦⎣ ⎦ ⎡d 0, j ⎤ ⎡02 03 01 01⎤ ⎡c0, j ⎤ ⎢d ⎥ ⎢ ⎢ ⎥ 02 03 01⎥ ⎢ c1, j ⎥ ⎢ 1, j ⎥ = ⎢ 01 ⎥Sau biến đổi MixColumns: (3.33) ⎢d 2, j ⎥ ⎢ 01 01 02 03⎥ ⎢c 2, j ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ d 3, j ⎥ ⎣03 01 01 02⎦ ⎢c3, j ⎥ ...
Nội dung trích xuất từ tài liệu:
thuật toán mã hóa và ứng dụng phần 3 Phương pháp mã hóa Rijndael block[r,c] = FFmul(0x0e, t[r]) xor FFmul(0x0b, t[(r + 1) mod 4]) xor FFmul(0x0d, t[(r + 2) mod 4]) xor FFmul(0x09, t[(r + 3) mod 4]) end for end forend3.6.4 Quy trình giải mã tương đươngNhận xét:1. Phép biến đổi InvSubBytes thao tác trên giá trị của từng byte riêng biệt của trạng thái hiện hành, trong khi phép biến đổi InvShiftRows chỉ thực hiện thao tác di chuyển các byte mà không làm thay đổi giá trị của chúng. Do đó, thứ tự của hai phép biến đổi này trong quy trình mã hóa có thể được đảo ngược. Với phép biến đổi tuyến tính A bất kỳ, ta có A( x + k ) = A( x) + A(k ) . Từ đó,2. suy raInvMixColumns(state XOR Round Key)= InvMixColumns(state) XOR InvMixColumns(Round Key)Như vậy, thứ tự của phép biến đổi InvMixColumns và AddRoundKey trong quytrình giải mã có thể được đảo ngược với điều kiện mỗi từ (4 byte) trong bảng mãkhóa mở rộng sử dụng trong giải mã phải được biến đổi bởi InvMixColumns. Dotrong chu kỳ mã hóa cuối cùng không thực hiện thao tác MixColumns nên không 67Chương 3cần thực hiện thao tác InvMixColumns đối với mã khóa của chu kỳ giải mã đầutiên cũng như chu kỳ giải mã cuối cùng.Vậy, quy trình giải mã Rijndael có thể được thực hiện theo với trình tự các phépbiến đổi ngược hoàn toàn tương đương với quy trình mã hóa.EqInvCipher(byte in[4*Nb], byte out[4*Nb], word dw[Nb*(Nr+1)])begin byte state[4,Nb] state = in AddRoundKey(state, dw + Nr * Nb) for round = Nr - 1 downto 1 InvSubBytes(state) InvShiftRows(state) InvMixColumns(state) AddRoundKey(state, dw + round * Nb) end for InvSubBytes(state) InvShiftRows(state) AddRoundKey(state, dw) out = stateendTrong quy trình trên, bảng mã khóa mở rộng dw được xây dựng từ bảng mã khóaw bằng cách áp dụng phép biến đổi InvMixColumns lên từng từ (4 byte) trong w,ngoại trừ Nb từ đầu tiên và cuối cùng của w.68 Phương pháp mã hóa Rijndaelfor i = 0 to (Nr + 1) * Nb – 1 dw[i] = w[i]end forfor rnd = 1 to Nr – 1 InvMixColumns(dw + rnd * Nb)end for3.7 Các vấn đề cài đặt thuật toánGọ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áikế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áis ( 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. ⎡b0, j ⎤ ⎡ S [a 0, j ]⎤ ⎢ b ⎥ ⎢ S[a ] ⎥ ⎢ 1, j ⎥ = ⎢ 1, j ⎥Sau biến đổi SubBytes: (3.31) ⎢b2, j ⎥ ⎢ S [a 2, j ]⎥ ⎢ ⎥⎢ ⎥ ⎢b3, j ⎥ ⎢ S [a 3, j ]⎥ ⎣ ⎦⎣ ⎦ ⎡c 0, j ⎤ ⎡ ⎤ b0, j ⎢c ⎥ ⎢ b ⎥ ⎢ 1, j ⎥ = ⎢ 1,( j + shift (1, Nb )) mod Nb ⎥Sau biến đổi ShiftRows: (3.32) ⎢ c 2 , j ⎥ ⎢ b 2 ,( j + shift (2 , Nb )) mod Nb ⎥ ⎢ ⎥⎢ ⎥ ⎢ c 3, j ⎥ ⎢ b3 ,( j + shift (3, Nb )) mod Nb ⎥ ⎣ ⎦⎣ ⎦ ⎡d 0, j ⎤ ⎡02 03 01 01⎤ ⎡c0, j ⎤ ⎢d ⎥ ⎢ ⎢ ⎥ 02 03 01⎥ ⎢ c1, j ⎥ ⎢ 1, j ⎥ = ⎢ 01 ⎥Sau biến đổi MixColumns: (3.33) ⎢d 2, j ⎥ ⎢ 01 01 02 03⎥ ⎢c 2, j ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ d 3, j ⎥ ⎣03 01 01 02⎦ ⎢c3, j ⎥ ...
Tìm kiếm theo từ khóa liên quan:
thuật toán mã hóa thủ thuật máy tính cách sử dụng máy tính windows phần mềm cho windows cẩm nang tin học các tính năng trong windowsGợi ý tài liệu liên quan:
-
Top 10 mẹo 'đơn giản nhưng hữu ích' trong nhiếp ảnh
11 trang 313 0 0 -
Làm việc với Read Only Domain Controllers
20 trang 301 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 212 0 0 -
Giáo trình Bảo trì hệ thống và cài đặt phần mềm
68 trang 207 0 0 -
UltraISO chương trình ghi đĩa, tạo ổ đĩa ảo nhỏ gọn
10 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 -
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 200 0 0 -
Sao lưu dữ liệu Gmail sử dụng chế độ Offline
8 trang 200 0 0 -
Phần III: Xử lý sự cố Màn hình xanh
3 trang 199 0 0 -
Giáo Trình tin học căn bản - ĐH Marketing
166 trang 198 0 0