Thuật toán AE S:

Một phần của tài liệu Mạng quang thụ động (GPON) và ứng dụng triển khai tại viễn thông Hà Nội (Trang 43 - 45)

Giao diện của ONU/ONT:

2.6.2 Thuật toán AE S:

Thuật toán AES đƣợc mô tả theo các bƣớc sau:

a) Chiều dài của block đầu vào, block đầu ra và State là 128 bit. Điều này đƣợc thể hiện bởi Nb= 4, tƣơng ứng với các từ 32 bit (số cột) trong State.

b)Chiều dài của khóa mật mã, K, là 128, 192, hoặc 256 bit. Chiều dài khóa mật mã thể hiện bởi Nk = 4, 6, hoặc 8, tƣơng ứng với số từ 32 bit (số cột) trong khóa mật

mã.

c) Số chu trình Round đƣợc dùng trong suốt thời gian xử lý thuật toán phụ thuộc vào kích thƣớc khóa. Round đƣợc biểu diễn là Nr, với Nr = 10 khi mà Nk = 4, Nr = 12 khi Nk = 6, và Nr = 14 khi Nk = 8.

d)Các tổ hợp duy nhất Key-Block-Round thích hợp với chuẩn này đƣợc cho nhƣ trong hình 2.13. Key length (Nk words) Block Size (Nb words) Number of Rounds (Nr) AES-128 AES-192 AES-256 4 6 8 4 4 4 10 12 14 Hình 2.13. Các kết hợp Key-Block-Round

Cipher đƣợc minh họa bằng một đoạn mã giả dƣới đây. Lúc bắt đầu của Cipher, lối vào đƣợc sao chép vào mảng State, sử dụng các quy ƣớc đƣợc minh họa trong đoạn giải thuật chƣơng trình Cipher.

Sau khi bổ sung ―Round Key‖ (đóng vai trò nhƣ một khóa phụ, nhận đƣợc từ

Key schedule‖ ) ban đầu, mảng State đƣợc biến đổi bằng cách thực hiện Nr chu trình (10, 12, hoặc 14), tùy thuộc vào chiều dài khóa.

Chương trình Cipher

Cipher (byte in [4*Nb], byte out [4*Nb], word w[Nb*(Nr+1])) begin

byte state [4,Nb] State = in

AddRoundkey(state, w[0, Nb-1]) for round = 1 step 1 to Nr-1 subByte(state)

shiftRow(state)

AddRoundkey(state, w[round*Nb, (round+1)* Nb-1]) end for subByte(state) shiftRow(state) AddRoundkey(state, w[Nr*Nb, (Nr+1* Nb-1]) out = state end

Trong đó mỗi chu trình của AES (trừ chu trình cuối) bao gồm 4 bƣớc:

byte khác sử dụng một bảng thay thế (S-box).

f) ShiftRow — một bƣớc hoán vị, nơi mà mỗi hàng của state đƣợc dịch chuyển theo

chu kỳ một số bƣớc nào đó.

g)MixColumn — một quá trình trộn mà họat động dựa vào các cột của mảng State,

kết hợp 4 byte trong mỗi cột sử dụng phép hoán vị tuyến tính (trộn dữ liệu trong mỗi cột của mảng State).

h)AddRoundKey - state đƣợc kết hợp với một ―Round key‖; mỗi Round key nhận

đƣợc từ khóa mật hóa sử dụng ―Key Expansion‖.

Chu trình cuối cùng bỏ qua giai đoạn MixColumn. Sau đó State cuối cùng đƣợc

sao chép tới đầu ra nhƣ đƣợc minh họa trong đoạn giải thuật chƣơng trình Cipher nêu trên.

Một phần của tài liệu Mạng quang thụ động (GPON) và ứng dụng triển khai tại viễn thông Hà Nội (Trang 43 - 45)

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

(86 trang)