Thuật toán mã hóa aes

-
I. Ra mắt chung .

Bạn đang xem: Thuật toán mã hóa aes

1. Tổng quan.

AES (viết tắt của từ giờ đồng hồ anh: Advanced Encryption Standard, tốt Tiêu chuẩn chỉnh mã hóa nâng cao) là một trong những thuật toán mã hóa khối được cơ quan chính phủ Hoa Kỳ áp dụng làm tiêu chuẩn mã hóa.Thuật toán được xây dựng dựa vào Rijndael Cipher phát triển bởi 2 nhà mật mã học bạn Bỉ: Joan Daemen và Vincent Rijmen.AES thao tác làm việc với các khối dữ liệu 128bit với độ lâu năm khóa 128bit, 192bit hoặc 256bit. Những khóa không ngừng mở rộng sử dụng trong quy trình được tạo thành bởi thủ tục sinh khóa Rijndael.Hầu hết các phép toán trong thuật toán AES đều thực hiện trong một ngôi trường hữu hạn của các byte. Mỗi khối dữ liệu đầu vào 128bit được chia thành 16byte, có thể xếp thành 4 cột, từng cột 4 phần tử hay một ma trận 4x4 của những byte, nó call là ma trận trạng thái.Tùy thuộc vào độ dài của khóa khi thực hiện 128bit, 192bit hay 256bit nhưng thuật toán được triển khai với mốc giới hạn lặp không giống nhau.

2. Công việc xử lý chính.

Quá trình không ngừng mở rộng khóa sử dụng thủ tục sinh khóa Rijndael.Quá trình mã hóa.II. Xây dựng thuật toán.

1. Xây cất bảng S-box.

a. Bảng S – box thuận.

Bảng S-box thuận được sinh ra bởi việc xác định nghịch hòn đảo cho một giá trị khăng khăng trên GF(28) = GF(2) / (x8+x4+x3+x+1) (trường hữu hạn Rijindael). Giá trị 0 không tồn tại nghịch hòn đảo thì được ánh xạ với 0. Hầu hết nghịch hòn đảo được biến đổi thông qua phép biến hóa affine.Công thức tính các giá trị bảng S-box với bảng S- box tương ứng:
*

b. Bảng S-box nghịch đảo.

S-box nghịch đảo chỉ đơn giản và dễ dàng là S-box chạy ngược. Nó được tính bằng phép đổi khác affine nghịch đảo những giá trị đầu vào. Phép chuyển đổi affine nghịch đảo được trình diễn như sau:
*

2. Giải mã sinh khóa phụ.

Quá trình sinh khóa bao gồm 4 bước:

Rotword: cù trái 8 bítSubBytesRcon: tính giá trị Rcon(i) trong các số ấy :

Rcon(i) = x(i-1) mod (x8 + x4 + x3 + x + 1).ShiftRow

*

3. Quá trình mã hóa.

a. Sơ trang bị tổng quát.

*

b. Hàm AddRoundKey.

Được áp dụng từ vòng lặp đầu tiên tới vòng lặp NrTrong biến đổi Addroundkey(), một khóa vòng được cùng với state bằng một phép XOR theo từng bit solo giản.Mỗi khóa vòng gồm gồm 4 trường đoản cú (128 bit) được mang từ kế hoạch trình khóa. 4 từ đó được cộng vào từng cột của state, sao cho:

= cùng với 0

*

c. Hàm SubBytes.

Biến thay đổi SubBytes() sửa chữa mỗi byte riêng rẽ của state Sr,c bằng một giá trị new S’ r,c áp dụng bảng thay thế sửa chữa (S - box) được sản xuất ở trên.

Xem thêm:

*

d. Hàm ShiftRow.

Trong biến đổi ShiftRows(), những byte trong ba hàng cuối cùng của tinh thần được dịch vòng đi các số byte khác nhau (độ lệch). Ví dụ :S’r,c = Sr,(c + shift ( r, Nb)) mod Nb (Nb = 4)Trong đó cực hiếm dịch shift (r, Nb) nhờ vào vào số hàng r như sau:Shift(1,4) = 1, shift(2,4) = 2, shift(3,4) = 3.Hàng thứ nhất không bị dịch, bố hàng sót lại bị dịch tương ứng:Hàng trước tiên giữ nguyên.Hàng thứ 2 dịch vòng trái 1 lần.Hàng vật dụng 3 dịch vòng trái 2 lần.Hàng vật dụng 4 dịch vòng trái 3 lần.
*

e. Hàm MixColumns.

Biến đổi MixColumns() giám sát trên từng cột của state. Các cột được coi như là nhiều thức vào trường GF(28) và nhân cùng với một đa thức a(x) với:a(x) = (03)x^3 +(01)x^2 +(01)x + (02)Biến thay đổi này rất có thể được trình diễn như phép nhân một ma trận, cơ mà mỗi byte được đọc như là một trong những phần tử trong trường GF(28): s’(x) = a(x)  s(x):Mô tả bằng ma trận như sau :
*
III. Quá trình giải mã.

1. Tổng quan.

Thuật toán lời giải khá như là với thuật toán mã hóa về mặt cấu tạo nhưng 4 hàm sử dụng là 4 hàm ngược của quá trình mã hóa.
*

2. Thuật toán giải mã.

InvCipher(byte in<4*Nb>, byte out<4*Nb>, word w) begin byte state<4,Nb> state = inAddRoundKey(state, w) for round = Nr-1 downto 1 InvShiftRows(state) InvSubBytes(state) AddRoundKey(state, w) InvMixColumns(state) over for InvShiftRows(state) InvSubBytes(state) AddRoundKey(state, w<0, Nb-1>) out = state endTrong đó :

In<> : Mảng dự liệu đầu vào Input.Out<> : Mảng tài liệu đầu ra Output.Nr : Số vòng lặp.(Nr = 10).Nb : Số cột(Nb = 4).W<> : Mảng những w tất cả độ lâu năm 4 bytes.IV. Các dạng tiến công vào AES và phương thức phòng chống.

1. Side-channel attack.

Side Channels (Kênh kề) được có mang là các kênh cổng đầu ra không ý muốn muốn từ một hệ thống.Tấn công kênh bên hay có cách gọi khác là Tấn công kênh kề là loại tiến công dễ triển khai trong các loại tiến công mạnh kháng lại quá trình triển khai mã hóa, và mục tiêu của loại tiến công này là phân tích những nguyên tố, các giao thức, modul, và những thiết bị trong mỗi hệ thống.Phân các loại :Tấn công thời gian.Tấn công nhờ vào lỗi.Tấn công đối chiếu năng lượng.Tấn công phân tích năng lượng điện từ.

2. Known attacks.

Vào năm 2002, Nicolas Courtois và Josef Pieprzyk phát hiện tại một tấn công trên kim chỉ nan gọi là tấn công XSL và chỉ ra điểm yếu tiềm tàng của AES.Tuy nhiên, một vài chuyên gia về mật mã học tập khác cũng chỉ ra một số vấn đề trong cơ sở toán học của tiến công này và cho rằng những tác giả đã có sai trái trong tính toán. Việc tiến công dạng này còn có thực sự biến chuyển hiện thực hay là không vẫn còn nhằm ngỏ và cho tới thời điểm bây giờ thì tiến công XSL vẫn chỉ nên suy đoán.

3. Các cách thức phòng chống.

Phương pháp 1: Mã hóa rất mạnhSử dụng các biện pháp để tăng tính bảo mật của các thuật toán mã hóa.Phương pháp 2: đảm bảo an toàn dữ liệu theo phương thức vật lýNếu một kẻ tấn công không thể tiếp cận thiết bị lý với dữ liệu, dĩ nhiên khả năng đánh tráo khóa mã hóa sẽ khó khăn hơn. Vày vậy, trước đều cuộc tấn công qua music tiềm tàng, chúng ta cũng có thể sử dụng các giải pháp bảo vệ vật lý như đặt laptop vào những hộp biện pháp ly âm thanh, không để ai lại gần máy vi tính khi đang giải thuật dữ liệu hoặc sử dụng những nguồn âm nhạc băng rộng lớn tần số đủ cao để gây nhiễu.Phương pháp 3: phối kết hợp cả 2 phương pháp trên.Kết luận và reviews thuật toán.Thiết kế cùng độ dài khóa của thuật toán AES ( 128, 192 cùng 256 bit ) là đủ an ninh để bảo đảm các tin tức được xếp vào loại tối mật mà lại về an toàn của AES thì các nhà khoa học nhận xét là chưa cao. Nếu các kỹ thuật tấn công được cải thiện thì AES có thể bị phá vỡ.Một vấn đề khác nữa là kết cấu toán học của AES khá đối chọi giản.Nguồn tham khảo.