Phép thế byte trong một vòng aes không thực hiện thao tác nào

Mục tiêu

Nhân tiện việc tuần vừa rồi mình bao gồm phải học tập và biểu diễn về chuẩn mã hóa nâng cao (AES), hôm nay mình thích viết blog này để giúp mình tổng đúng theo lại kiến thức cũng tương tự giúp các bạn hiểu hơn về cấu tạo và thuật toán của AES!

Tổng quan về Advanced Encryption Standard (Chuẩn mã hóa nâng cao)

AES là một trong những mã khối, nhưng lại khác với các mã khối không giống được nghe biết trước phía trên (DES, IDEA,…), tài liệu trong AES không được biểu diễn dưới dạng một mảng các byte hay các bit mà được biểu diễn dưới dạng một ma trận 4xNb với được điện thoại tư vấn là mảng trạng thái (state). Trong đó, đối với AES, Nb luôn có giá trị bởi 4. Trong những khi thuật toán Rijndael cung cấp ba quý giá của Nb là 4, 6, 8 tương xứng với kích thước khối 128, 192 và 256 bitDữ liệu đầu vào được phát âm vào ma trận state theo từng cột, theo thứ tự từ bên trên xuống dưới, từ trái qua phải. Tài liệu đầu ra được phát âm từ ma trận cũng theo quy tắc trên.

Bạn đang xem: Phép thế byte trong một vòng aes không thực hiện thao tác nào

*

Khóa vòng trong AES cũng rất được biểu diễn hoàn toàn tương từ bỏ như cách màn trình diễn dữ liệu. Tuy nhiên, tùy vào form size khóa mà số cột của ma trận khóa vòng Nk vẫn khác nhau. Cố gắng thể, Nk nhận những giá trị 4, 6, 8 tương ứng với các form size khóa là 128, 192 cùng 256 bit. Đây đó là điểm mạnh của thuật toán AES trong vấn đề không ngừng mở rộng khóa.

*

Số vòng lặp ký hiệu là Nr, phụ thuộc vào vào nhị đại lượng Nb cùng Nk. Vày Nb trong AES có giá trị cố định nên Nr chỉ phụ thuộc vào vào Nk. Quý hiếm của Nr tương ứng với tía giá trị của Nk là Nr = 10, 12, 14. Núm thể, cực hiếm Nr được khẳng định bởi

*

Khái niệm tự (Word) trong AES

Bốn byte trên từng cột vào mảng tinh thần state chế tạo thành 1 tự 32 bit, trong các số ấy số vật dụng tự của sản phẩm r (0≤r1 Vòng khởi tạo ra chỉ có phép AddRoundKeyNr -1 Vòng lặp tất cả 4 phép biển cả đổi lần lượt: SubBytes, ShiftRows, MixColumns,AddRoundKey.1 Vòng cuối gồm các phép thay đổi giống vòng lặp và không tồn tại phép MixColumns.

Khái quát:1.Mở rộng lớn khóa-Các khóa phụ dùng trong số vòng lặp được xuất hiện từ khóa bao gồm AES sử dụng giấy tờ thủ tục sinh khóa Rijndael.2.InitialRound-AddRoundKey— mỗi byte trong state được kết phù hợp với khóa phụ sử dụng XOR3.Rounds-SubBytes—bước sửa chữa thay thế phi con đường tính, trong số ấy mỗi byte trong state được thay thế sửa chữa bằng một byte khác sử dụng bảng tham chiếu-ShiftRows—bước đổi chỗ, trong số ấy mỗi cái trong state được dịch một trong những bước theo chu kỳ-MixColumns—trộn những cột trong state, kết hợp 4 bytes trong mỗi cột-AddRoundKey4.Final Round (không MixColumns)-SubBytes-ShiftRows-AddRoundKey.

Thuật toán giải mã khá tương đương với thuật toán mã hóa về mặt kết cấu nhưng 4 hàm áp dụng là 4 hàm ngược của quá trình mã hóa.Riêng đối với kết cấu giải mã vào AES tất cả 2 chính sách giải mã:- Ở cấu tạo giải mã ngược, bao gồm vòng khởi tạo, Nr-1 vòng lặp cùng vòng kết thúc. Trong số ấy vòng khởi sinh sản chỉ có phép biến hóa AddRounKey, vòng lặp bao gồm lần lượt 4 phép chuyển đổi chính: InvShiftRows, InvSubBytes, AddRounKey, InvMixColumns; vòng chấm dứt khác với vòng lặp chủ yếu ở chỗ không có phép InvMixColumns.- ngược lại với cấu tạo giải mã ngược là cấu trúc giải mã xuôi, việc trái lại thể hiện ở điểm: trong cấu trúc giải mã xuôi vấn đề sắp xếp những phép biến hóa ngược đồng nhất với cấu trúc mã hóa, cụ thể bao gồm: vòng khởi tạo, Nr-1 vòng lặp và vòng kết thúc.Trong đó vòng khởi là phép AddRounKey; sinh hoạt vòng lặp lắp thêm tự những phép biến hóa ngược theo lần lượt là: InvSubBytes, InvShiftRows, InvMixColumns, AddRounKey; vòng dứt giống vòng lặp tuy thế được lược bỏ phép InvMixColumns.Một điểm khác biệt nữa trong hai cấu tạo giải mã ngược và lời giải xuôi kia là:Trong lời giải ngược khóa vòng giải mã chính là khóa vòng mã hóa với trang bị tự đảo ngược.Còn trong giải thuật xuôi thì khóa lời giải ngoài việc đảo ngược thứ tự khóa vòng mã hóa còn phải tiến hành phép InvMixColumns so với các khóa vòng của vòng lặp giải mã.

*

SubBytes và InvSubBytes

Phép biến đổi SubBytes: Là phép sửa chữa byte phi con đường tính, ngơi nghỉ phép sửa chữa này nó tác động chủ quyền đến từng byte vào trạng thái hiện nay hành. Phép thay đổi SubBytesđược thực hiện bằng phương pháp tra cứu bảng thay thế (S-box) với tham số đầu vào là các byte vào bảng trạng thái. S-box được tạo ra như sau:Bước 1: Điền những con số từ 0 đến 255 vào bảng theo từng hàng. Vậy hàng 0 gồm các con số 00, 01, …0F (thập lục phân). Hàng 1 gồm các con số 10, 11,…, 1F. Điều này tức là tại hàng x cột y có mức giá trị xy.Bước 2: sửa chữa thay thế mỗi byte trong bảng bởi giá trị nghịch đảo trong trường GF(28 ). Quy mong nghịch hòn đảo của 00 cũng là 00.Bước 3: từng byte trong ma trận state được sửa chữa bởi 1 byte vào Rijndael S-box, tốt bij = S(aij).

*

trong đó, 0 ≤ i ≤8 là bit sản phẩm công nghệ i của byte b khớp ứng và ci là bit sản phẩm thứ i của byte c với giá trị 63 tốt 01100011.

*

Trong đó phép cộng tiến hành như phép XOR. Bảng sau trình bày nội dung bảng S-box sau khi tính toán.

Xem thêm: Nghĩa Của Từ Smoothness Là Gì, Định Nghĩa & Ý Nghĩa Của Từ Smoothness

*

*

*

Phép đổi khác ngược InvSubBytes: là phép thay thế chuyển đổi ngược với SubBytes. Là một phép thay thế sửa chữa byte, các byte sửa chữa thay thế được thực hiện bằng cách tra bảng sửa chữa thay thế ngược IS. Bảng sửa chữa thay thế ngược IS này được phát hành như sau: Trước tiên, cũng cần xây dựng một bảng Inverse SubBytes (IS- box). Nghĩa là giả dụ với đầu vào 95, S-box mang đến ra kết quả 2A, thì với nguồn vào là 2A, IS sẽ cho ra lại công dụng 95. Câu hỏi xây dựng vỏ hộp IS tương tự như xây dựng S-box tại cách 1 và bước 2. Tại cách 3, IS triển khai phép thay thế sau:

*

Với di là bit đồ vật i của số 05 tức d7 d6 d0 = 00000101.

*

Bảng sau trình bày nội dung bảng sửa chữa ngược IS sau thời điểm tính toán.

*

Như vậy: phép đổi khác InvSubBytes thực hiện như sau: từng byte trong ma trận state S, bên dưới dạng thập lục phân là xy, được thay thế sửa chữa bằng cực hiếm trong bảng IS tại chiếc x cột y.

Mục đích của phép biến đổi SubBytes: S-box dùng làm chống lại hình thức tấn công thám mã vi sai với thám mã tuyến tính. Thân input với output của phép Substitute bytes thiết yếu mô tả bằng một phương pháp toán 1-1 giản

ShiftRows với InvShiftRows

Phép thay đổi ShiftRows: làm việc ShiftRows tiến hành hoán vị các byte vào ma trận state theo cách thức sau:

Dòng thứ nhất giữ nguyênDòng thứ hai dịch vòng trái 1 byteDòng trang bị 3 dịch vòng trái 2 byteDòng thiết bị 4 dịch vòng trái 3 byte

*

Phép đổi khác InvShiftRows: Phép chuyển đổi InvShiftRows thực hiện ngược lại với phép ShiftRows, nghĩa là:

Dòng thứ nhất giữ nguyênDòng thứ hai dịch vòng đề xuất 1 byteDòng thiết bị 3 dịch vòng buộc phải 2 byteDòng máy 4 dịch vòng bắt buộc 3 byteMục đích của ShiftRows: xới trộn các byte nhằm tạo những cột không giống nhau trước khi áp dụng cột cho thao tác MixColumns.

MixColumns cùng InvMixColumns

Phép biến hóa MixColumns: Phép thay đổi MixColumns thực hiện thay đổi độc lập từng cột vào ma trận state bằng một phép nhân đa thức. Mỗi cột của state đươc xem như là biểu diễn của một đa thức f(x) vào GF(2^8) bởi vậy phép chuyển đổi MixColumns chính là phép nhân theo modulo với x^4+1 với một đa thức cố định và thắt chặt định nghĩa như sau:

*

*

Phép nhân đa thức trên có thể biểu diễn dưới dạng phép nhân ma trận như sau

*

Ví dụ về phép MixColumns:

*

Phép đổi khác ngược InvMixColumns: Là phép đổi khác ngược cùng với phép thay đổi MixColumns. InvMixColumns cũng thực hiện làm việc theo từng cột của trạng thái, xem mỗi cột như một nhiều thức bậc 3 tất cả 4 hạng tử trên trường GF(2^8). Những cột của phép InvMixColumns được nhân theo modulo ( x^4 + 1 ) với nhiều thức nghịch hòn đảo a(x) đó là đa thức a^-1(x) được định nghĩa:

*

Như vậy phép InvMixColumns cũng khá được biểu diễn tương đương với phép nhân ma trận sau

*

Mục đích của MixColumns: việc coi mỗi cột là một trong đa thức bậc 3, rồi nhân mỗi cột với nhiều thức a(x) tiếp đến modulo ( x4 1 ) vẫn làm cho mỗi byte vào cột kết quả đều phụ thuộc vào vào tư byte trong cột ban đầu. Thao tác làm việc MixColumns kết phù hợp với ShiftRows bảo đảm an toàn rằng sau một vài vòng trở nên đổi, 128 bit trong kết quả đều nhờ vào vào toàn bộ 128 bit ban đầu. Điều này tạo nên tính khuếch tán (diffusion) quan trọng cho mã hóa.

AddRoundKey

Trong thao tác làm việc AddRoundKey, 128 bit của ma trận state sẽ tiến hành XOR cùng với 128 bit của khóa bé của từng vòng. Vì áp dụng phép XOR buộc phải phép thay đổi ngược của AddRoundKey trong cấu trúc giải mã cũng chính là AddRoundKey. Bài toán kết hợp với khóa kín đáo tạo ra tính có tác dụng rối (confusion) của mã hóa. Sự phức hợp của làm việc mở rộng khóa (KeySchedule) giúp tăng thêm tính làm cho rối này.

Mở rộng khóa (ExpandKey )

ExpandKey là thao tác làm việc tạo lược đồ dùng khóa hay không ngừng mở rộng khóa, tạo nên Nr+1 khóa vòng từ khóa bao gồm K, từng khóa vòng gồm Nb từ bỏ 32 bit, vào đó đối với AES thì Nb = 4, còn Nr được xác minh theo. Các phép thay đổi để chế tác khóa vòng trong ExpandKey là không giống nhau so với các giá trị không giống nhau của kích cỡ khóa K. Sau đó là việc không ngừng mở rộng khóa đối với khóa mã 128 bit

*

Trong làm việc mở rộng lớn khóa với khóa mã 128 bit có nguồn vào là 16 byte (4 word) của khóa mã, và có mặt một mảng khóa vòng (Nr+1)x4=44 từ (word) tốt 176 byte. 44 word này được thực hiện cho 11 vòng mã hóa của AES, từng vòng sử dụng 4 word.Từ tư word nguồn vào w0w1w2w3, trong lượt lặp thứ nhất thao tác ExpandKey sinh ra bốn word w4w5w6w7, lần lặp thứ 2 từ w4w5w6w7 có mặt w8w9w10w11 , cứ như thế cho đến lần lặp thiết bị 10 (tùy nằm trong chiều dài khóa) sinh ra bốn word sau cuối w40w41w42w43 như hình vẽ

Mục đích của ExpandKey: dùng để chống lại known-plaintext attack

Biết một vài bit của khóa tốt khóa con cũng cần yếu tính các bit còn lại.Không thể tính ngược: biết một khóa con cũng quan trọng tính lại các khóa bé trước đó.Tính khuếch tán: một bit của khóa chính ảnh hưởng tác động lên tất cả các bit của các khóa con.

Kết luận

Phương pháp mã hóa AES 1-1 giản, rất có thể thực hiện hiệu quả trên những vi cách xử trí 8 bit (dùng vào smartcard) cũng như trên các vi xử trí 32 bit, chỉ sử dụng phép XOR với phép Shift bit. Đây chính là yếu tố cơ bản để phương pháp này được lựa chọn làm chuẩn mã hóa của Hoa Kỳ.