Giới thiệu khái quát

Một phần của tài liệu Nghiên cứu kỹ thuật mã hóa tiếng nói và phương pháp thám (Trang 52 - 60)

Chương 2: TỔNG QUAN CÁC PHƯƠNG PHÁP MÃ HÓA VÀ THÁM MÃ TIẾNG NÓI

2.6. Mã hoá theo hệ mật mã khoá đối xứng AES

2.6.1. Giới thiệu khái quát

Chuẩn mã hóa dữ liệu cao cấp AES (Advanced Encryption Standard) là một hệ mã khóa bị mật có tên là Rijdael (do hai nhà mật mã học người Bỉ là Joan Daemen và Vincent Rijmen đƣa ra và trở thành chuẩn từ năm 2002) cho phép xử lý các khối dữ liệu input có kích thước 128 bit sử dụng các khóa có độ dài 128, 192 hoặc 256 bit. Hệ mã Rijdael đƣợc thiết kế để có thể làm việc với các khóa và các khối dữ liệu có độ dài lớn hơn tuy nhiên khi đƣợc chọn là một chuẩn do Ủy ban tiêu chuẩn của Hoa Kỳ đƣa ra năm 2001, nó đƣợc qui đị nh chỉ làm việc với các khối dữ liệu 128 bit và các khóa có độ dài 128, 192 hoặc 256 bit (do đó còn đặt cho các tên AES-128, AES- 192, AES-256 tương ứng với độ dài khóa sử dụng). Chuẩn AES bao gồm các yêu cầu sau:

- Thuật toán mã hóa theo khối 128 bit.

- Chiều dài khóa 128 bit, 192 bit và 256 bit.

- Không có khóa yếu.

2.6.1.1. Quá trình mã hoá

Thuật toán mã hóa AES được công nhận vào năm 2000 và đến tháng 11/2001 được công nhận là chuẩn mã hóa bởi tổ chứ

14 vòng tương ứng với 128 256 bit độ dài khóa. Một vòng lặp của thuật toán mã hóa AES sử dụng khóa khác nhau được tham chiếu trong bảng S-Box và mỗi vòng lặp thì xử lý một khối dữ liệu được biểu diễn như một ma trận 4x4 khối dữ liệu này được gọi là State theo hình sau:

Hình 2.6. Mô tả State trong thuật toán mã hóa AES được biểu diễn dạng ma trận 4x4

Hình 2.7.

ật toán mã hóa AES có 4 phép biến đổi chính là SubBytes (SB), Shi

ến đổi này được thực hiện trong mỗi vòng lặp với khóa khác biệt cho mỗi vòng.

Riêng đối với AddRoundKey là phép biến đổi được thực hiện trên phép toán XOR theo bit nên biến đổi ngược cũng chính là phép biến đổi được sử dụng trong quá trình mã hóa vì vậy phép biến đổi AddRoundKey là giống nhau cho cả hai quá trình mã hóa và giải mã. Các phép biến đổi của thuật toán mã hóa AES được thực hiện với các đa thức trên trường Galois GF(28). Mỗi giá trị và các hệ số trong việc tính toán của các phép biến đổi trong thuật toán mã hóa AES được xây dựng trên một words 8 bit, trên số hexadecimal hoặc là các đa thức có bậc bằng 7 hoặc nhỏ hơn, các phép tính cộng trong thuật toán sẽ được thực hiện trên phép toán modulo 2.

Đơn vị thông tin được xử lý trong thuật toán AES là byte. Mỗi byte xem

như một phần tử của trường Galois GF(28) được trang bị phép cộng và phép nhân.

Mỗi byte có thể được biểu diễn bằng nhiều cách khác nhau: dạng nhị phân (b7 b6 b5 b4 b3 b 2b1 b0), dạng thập lục phân (h1h0) hay dạng đa thức có các hệ số nhị

phân 

i = 7 i = 0

bixi .

2.6.1.2. Phép biến đổi SubBytes và InvSubBytes

Hình 2.8. Lưu đồ thực hiện SB và ISB

Phép biến đổi SubBytes (a) được thực hiện trên từng bytes của một state.

Quá trình biến đổi cũng thực hiện trên hai phép toán cơ bản là:

- :

- (28

.

- (trên GF(2)):

b’I = bi  b(i+4) mod 8  b(i+5) mod 8  b(i+6) mod 8  b(i+7) mod 8  ci trong đó 0 <= I < 8 là bit thứ i của byte b tương ứng và ci là bit thứ i của byte c với giá trị {63} hay {01100011}.

Các phần tử biến đổi affine của S-box có thể được biểu diễn dưới dạng ma trận như sau:

b0 b1 b2 b3 b4 b5

1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0

b0 b1 b2 b3 b4 b5

1 1 0 0 0 1

Hình s

:

Hình 2.9. Biến đổi SubBytes () đối với mảng trạng thái

Tuy nhiên việc tính toán subbyte với các phép biến đổi nói trên là rất phức tạp khi thực hiện trên phần cứng. Người ta đã chứng minh được rằng phép biến đổi Subbyte là khả nghịch có nghĩa là: Với một byte A cho trước tồn tại một và chỉ một byte Y thỏa mãn B = subbyte(A). Do đó người ta đã đưa ra phương pháp ánh xạ đầu vào của phép biến đổi subbyte qua một bảng S-box (xây dựng theo các phép biến đổi trên) để tìm đầu ra.

- :

Bảng 2.2. Bảng thế S-BOX của AES

1,1 = {53} có nghĩ

1,1 = {ed}.

Phép biến đổi nghịch đảo của SubBytes gọ 1.12 (b) thì

được tính toán với hai phép toán là nhân nghịch đảo và phép biến đổi ngược affine.

Phép biến đổi ngịch đảo được tính toán như sau:

2.6.1.3. Phép biến đổi ShiftRows và InvShiftRows

Phép biến đổi ShiftRo

4 được biểu diễn như hình 1.10 :

b’0 b’1 b’2 b’3 b’4 b’5 b’6 b’7

0 0 1 0 0 1 0 1 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 0 0 1 0 0 0 1 0 1 0 0 1 1 0 0 1 0 1 0 0 0 1 0 0 1 0 1 0

b0 b1 b2 b3 b4 b5 b6 b7

1 0 1 0 0 0 0 0

Hình 2.10. Lưu đồ thực hiện SR

2.6.1.4. Phép biến đổi MixColumns và InvMixColumns

- 1.15) 4-bytes words này

được biểu diễn như là một đa thức bậc 4 với hệ số K trên trường GF(28) và được tính toán theo công thức:

Hình 2.11. Quá trình xử lý MixColumns

Phép toán cộng trong biến đổi MC và IMC được thực hiện theo toán tử XOR với từng hệ số trong đa thức bậc 4. Ngoài ra còn có phép toán nhân trong biến đổi

MC và IMC được tính toán theo phép 4

: M(X)=X4+1 (2.1)

Ta có định nghĩa của phép tính: Xj mod (X4+1)=Xj mod 4 (2.2) Công thức tính toán của phép nhân trong b

(2.2) được triển khai như sau:

+ Cho một đa thức: a(X)= a3X3+a2X2+a1X+a0 (2.3) và một đa thức cố định:

c(X)= c3X3+c2X2+c1X+c0 (2.4) thì công thức tính MC được triển khai như sau:

B(X) = b3X3 + b2X2 + b1X + b0 = (c3a0 + c2a1 + c1a2 + c0a3)X3 + (c2a0 + c1a1 + c0a2 + c3a3)X2 + (c1a0 + c0a1 + c3a2 + c2a3)X + (c0a0 + c3a1 + c2a2 + c1a3) (2.5). Phép toán này được viết lại thành phép tính nhân của hai ma trận [A] và [C] như sau:

[A] đư (2 [C] đư (2.4)

Vậy Phép biến đổi MixColumns là phép nhân mỗi một cột trong State bằng một đa thức hằng số c(X) trong vòng R và c(X) được định bằng công thức sau:

c(X)=(x+1)X3+X2+X+x (2.6)

trong phép biến đổi InvMixColumns được tính toán trên đa thức d(X) Với d(X) = c-1

d(X)=(x3+x+1)X3+(x3+x2+1)X2+(x3+1)X+(x3+x2+x) (2.7)

c: d(X)=0B.X3+0D.X2+09.X+0E (2.8)

Ta có ma trận tính toán của phép biến đổi IMC được biểu diễn như sau:

2.6.1.5. Key scheduling

Key scheduling trong thuật toán mã hóa AES là một xử lý nhằm mục đích tạo (Nr + 1) khóa cho mỗi vòng dựa trên mộ

- :

(ki b0

b1 b2 b3

0E 0B 0D 09

09 0E 0B 0D

0D 09 0E 0B

0B 0D 09 0E

a0 a1 a2 a3 b0

b1 b2

b3

C0 C3 C2 C1

C1 C0 C3 C2

C2 C1 C0 C3 C3 C2 C1 C0

a0

a1 a2

a3

AE

:

Một phần của tài liệu Nghiên cứu kỹ thuật mã hóa tiếng nói và phương pháp thám (Trang 52 - 60)

Tải bản đầy đủ (PDF)

(89 trang)