Xây dựng các modul

Một phần của tài liệu đề tài “ tích hợp thuật toán mật mã rijndael trên FPGA” (Trang 58 - 65)

Dựa trên hai sơ đồ thực hiện hai quá trình mã hóa( Hình 3.1) và giải mã(Hình 3.2) trên, tôi xây dựng sơ đồ khối chức năng cho thuật toán mã hóa Rijndael như sau(Hình 3.3).

Hình 3.3: Sơ đồ khối thuật toán Rijndael

Trong đó:

 Khối Encryption/Decryption: thực hiện các biến đổi trong vòng lặp.

 Khối Key Expansion: thực hiện sinh khóa con cho các vòng lặp

 Khối Control: thực hiện điều khiển quá trình xảy ra ở hai khối Encryption/Decryption và Key Expansion.

Sơ đồ thực hiện các vòng lặp

Các vòng lặp trong quá trình mã hóa bao gồm các biến đổi: ByteSub,

ShiftRow, MixColumn, AddRoundKey, riêng vòng lặp cuối cùng không có

biến đổi MixColumn. Quá trình thực hiện vòng lặp mã hóa được thể hiện trong sơ đồ dưới đây (Hình 3.4).

Hình 3.4:Vòng lặp mã hóa

Các vòng lặp trong quá trình giải mã bao gồm các phép biến đổi:

đầu tiên không có phép biến đổi InvMixColumn. Quá trình giải mã được thiết kế giống với quá trình mã hóa, được thể hiện ở Hình 3.5.

Hình 3.5: Vòng lặp giải mã

Hinh 3.6: Sơ đồ khối modul Encryption/Decryption

Chức năng các chân tín hiệu trong sơ đồ hình 3.6:

Tên chân tín hiệu Cổng I/O Mô tả

Clock Input Hệ thống xung nhịp, cung cấp nhịp cho hoạt động của modul. Reset Input Khởi tạo lại trạng thái cho hệ

thống.

ALG_Start Input Tín hiệu xác định điểm bắt đầu thực hiện của thuật toán.

ALG_ENC Input Xác định thực hiện mã hóa hay giải mã.

ALG_DataIn Input Khối dữ liệu vào, 128 bit

ALG_Key Input Khóa con, 128 bit

ALG_CVSize Input Xác định chiều dài của khóa là 128, hay 192 hoặc 256 bit.

ALG_DataOut Output Dữ liệu ra, dài 128 bit

toán.

Sơ đồ khối của modul Key Expansion

Sơ đồ được miêu tả ở hình 3.7.

Hình 3.7 Sơ đồ khối của modul Key expansion

Chức năng các chân tín hiệu trong sơ đồ hình 3.7:

Tên chân tín hiệu Tín hiệu I/O Mô tả

Clock Input Hệ thống xung nhịp, cung cấp nhịp cho hoạt động của modul. Reset Input Khởi tạo lại trạng thái cho hệ

thống.

KS_LOADCV Input Tín hiệu báo bắt đầu đưa vào một khóa mới.

KS_START Input Tín hiệu báo bắt đầu tạo một khóa con.

256 bit.

KS_CV_SIZE Input Cho biết độ dài khóa đã dung là 128, 192 hay 256.

KS_ENC Input Quá trình mã hóa hay giải mã

KS_ROUND_KEY Output Khóa con cho mỗi vòng lặp, dài 128 bit.

Sơ đồ khối của modul Control(Hình 3.8)

Hình 3.8: Sơ đồ khối của modul Control

Chức năng các chân tín hiệu trong sơ đồ hình 3.8: Tên chân tín hiệu Tín hiệu I/O Mô tả

Clock Input Hệ thống xung nhịp, cung cấp nhịp cho hoạt động của modul. Reset Input Khởi tạo lại trạng thái cho hệ

thống.

CTRL_ENC Input Tín hiệu xác định mã hóa hay giải mã.

CTRL_ALG_START Output Bắt đầu thực hiện mã hóa hay giải mã.

CTRL_KS_START Output Bắt đầu tạo khóa con.

Một phần của tài liệu đề tài “ tích hợp thuật toán mật mã rijndael trên FPGA” (Trang 58 - 65)

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

(76 trang)
w