Danh mục

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

Số trang: 25      Loại file: pdf      Dung lượng: 528.85 KB      Lượt xem: 17      Lượt tải: 0    
tailieu_vip

Xem trước 3 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Các thuật toán ứng cử viên AESTrong bước whitening của dữ liệu vào, các từ này XOR với bốn từ của khóa mở rộng: R0, i = Pi ⊕ Ki, i = 0, ..., 3 (5.25)Với mỗi chu kỳ trong 16 chu kỳ, hai từ A, B và chỉ số chu kỳ được sử dụng làm
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 7Chương 5 Thông tin cần mã hóa (128 bit) A B C D inputK0 K1 K2 K3 whitening Các thuật toán ứng cử viên AESTrong bước whitening của dữ liệu vào, các từ này XOR với bốn từ của khóa mởrộng: R0, i = Pi ⊕ Ki, i = 0, ..., 3 (5.25)Với mỗi chu kỳ trong 16 chu kỳ, hai từ A, B và chỉ số chu kỳ được sử dụng làmdữ liệu vào của hàm F. Từ C XOR với từ kết quả thứ nhất của hàm F và quayphải 1 bit. Từ thứ D quay trái 1 bit và XOR với từ kết quả thứ hai của hàm F.Cuối cùng, hai từ A và C, B và D hoán đổi cho nhau. Do đó: (Fr, 0, Fr, 1) = F(Rr, 0, Rr, 1, r) ROR(Rr, 2 ⊕ Fr, 0, 1) Rr+1, 0 = ROL(Rr, 3, 1) ⊕ Fr, 1 Rr+1, 1 = Rr+1, 2 = Rr, 0 Rr+1, 3 = Rr, 1 (5.26)r ∈ (0, ..., 15), ROR và ROL là hai hàm quay phải và trái với đối số thứ nhất là từ32 bit được quay, đối số thứ hai là số bit cần quay.Bước whitening dữ liệu ra không thực hiện thao tác hoán chuyển ở chu kỳ cuốimà nó thực hiện phép XOR các từ dữ liệu với bốn từ khóa mở rộng. Ci = R16, (i+2) mod 4 ⊕ Ki+4, i = 0, ..., 3 (5.27)Sau đó, bốn từ của văn bản mã hóa được ghi ra thành 16 byte c0, ..., c15 sử dụngquy ước little–endian như đã áp dụng với văn bản ban đầu. ⎡ C i/4 ⎤ ci = ⎢ 8( i[mod]4) ⎥ mod 28, i = 0, ..., 15 (5.28) ⎣2 ⎦ 165Chương 55.4.2.1 Hàm F h 2i 2i PHT MDS 2i M2 M0 2i h 2i + 1 2i + 1 MDS Các thuật toán ứng cử viên AESHàm F là phép hoán vị phụ thuộc khóa trên các giá trị 64 bit. Hàm F nhận vào bađối số gồm hai từ dữ liệu vào R0 và R1, và số thứ tự r của chu kỳ dùng để lựachọn các subkey thích hợp. R0 được đưa qua hàm g để tạo ra T0. R1 được quay trái8 bit, sau đó được đưa qua hàm g để sinh ra T1. Kế đến, kết quả T0 và T1 được kếthợp sử dụng PHT và cộng thêm hai từ trong bảng khóa mở rộng. T0 = g(R0) T1 = g(ROL(R1, 8)) (T0 + T1 + K2r+8) mod 232 F0 = (T0 + 2T1 + K2r+9) mod 232, (F0, F1) là kết quả của F. F1 = (5.29)5.4.2.2 Hàm gHàm g là trung tâm của thuật toán Twofish. Từ dữ liệu vào X được chia thành 4byte. Mỗi byte thực hiện thông qua S–box phụ thuộc khóa của chính mình. MỗiS–box đưa 8 bit dữ liệu vào và đưa ra 8 bit kết quả. 4 byte kết quả được xem nhưmột vector có chiều dài bằng 4 trên GF(28) và vector này nhân với ma trận MDS4 × 4 (sử dụng vùng GF(28) cho việc tính toán). Vector kết quả được xem nhưmột từ 32 bit và nó cũng là kết quả của hàm g. [X/28i] mod 28, i = 0, …, 3 xi = yi = si[xi], i = 0, …, 3 ⎛ z0 ⎞ ⎛ y0 ⎞ ⎜⎟ .⎞ ⎜ ⎟ ⎛. ... ⎜ ⎟ ⎜ y1 ⎟ ⎜ z1 ⎟ = ⎜ MDS ⎟ . ⎜ ⎟ ⎜z ⎟ y ⎜. .⎟ ⎜ 2 ⎟ ⎜ 2⎟ ... ⎝ ⎠ ⎜y ⎟ ⎜z ⎟ ⎝ 3⎠ ⎝ 3⎠ 3 ∑ z .2 8i Z = (5.30) i i =0 167Chương 5với si là S–box phụ thuộc khóa và Z là kết quả của g. Để làm rõ vấn đề này, tacần xác định rõ mối quan hệ giữa giá trị của mỗi byte với các phần tử của GF(28).Ta biểu diễn GF(28) dưới dạng GF(2)[x]/v(x) với v(x) = x8 + x6 + x5 + x3 + 1 là đa 7 ∑a x ithức cơ sở (primi ...

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