3.5.1. Khối CPU - điều khiển bộ giải mã
Khối CPU có nhiệm vụ nhận dữ liệu từ khối giao tiếp với máy tính, phân loại dữ liệu thành hai đường: data và key dựa trên tín hiệu select. Sau đó CPU tạo ra các tín hiệu req_key_in và req_key_out để điều khiển khối KeyExpansion và khối Data. Ngoài ra khi nhận được tín hiệu Reset thì khối CPU sẽ trở về trạng thái khơi tạo ban đầu :
Hình 3.25.Khối CPU
Trường hợp select = “01” – Quá trình xử lí Key.
Hình 3.26.Giản đồ thời gian điều khiển vòng key
Trường hợp select = “10” – Quá trính xử lí Data
Hình 3.27. Giản đồ thời gian điều khiển vòng data
Chương trình VHDL của CPU như sau : cpu_process: process(select) begin case select is when “01” => temp_key <= ‘1’ ; temp_data <= ‘0’; when “10” => temp_key <= ‘0’ ; temp_data <= ‘1’ ; when others => null ;
end process ;
key_process: process(temp_key, clk) begin
temp_req_key_in <= ‘0000’ ; if temp_key = ‘1’ then
if clk’event and clk = ‘1’ then
if temp_req_key_in = “1111” then null ;
else if temp_req_key_in = “1010” then temp_req_key_in <= “1111” ; else temp_req_key_in <= temp_req_key_in +1 ; end if ; end if ; end if ; end process ; data_process: process(temp_data, clk) begin temp_req_key_out <= ‘0000’ ; if temp_key = ‘1’ then
if clk’event and clk = ‘1’ then
if temp_req_key_out = “1111” then null ;
else if temp_req_key_out = “1010” then temp_req_key_out <= “1111” ; else
temp_req_key_out <= temp_req_key_out +1 ; end if ;
end process ;
req_key_in <= temp_req_key_in ; req_key_out <= temp_req_key_out ;
3.5.2. Khối giao tiếp với máy tính
Hệ thống AES giao tiếp với máy tính thông qua cổng RS232. Dữ liệu cần mã hóa ( giải mã ) và từ khóa tương ứng sẽ được truyền từ máy tính xuống Kit thông qua cổng COM. Sau khi hoàn tất quá trình mã hóa ( giải mã ) dữ liệu Ta xây dựng khối giao tiếp với máy tính dựa trên khối RX có sẵn của Xilinx Inc. Sau khối RX là khối đệm dữ liệu. Như ta đã biết đầu vào của khối AES là 128 bit trong khi dữ liệu nhận từ cổng COM là 8 bit do đó cần có khối đệm dữ liệu này. Để phân biệt đâu là từ chìa khóa đâu là dữ liệu cần mã hóa ( giải mã ) ta phải gửi thêm một byte đồng bộ: Nếu là byte “01”h thì đó là từ khóa, nếu là byte “02”h thì đó là dữ liệu.
Hình vẽ sau mô tả khối giao tiếp với máy tính:
KẾT LUẬN
Sau khi tìm hiểu và hoàn thành đồ án em đã bước đầu nắm bắt được kiến thức cơ bản về FPGA và ngôn ngữ mô tả phần cứng VHDL. Bên cạnh đó đồ án cũng giúp em hiểu thêm về mã hoá AES mà ngày được ứng dụng rất rộng rãi trong các lĩnh vực công nghệ số hoá .
Các ứng dụng của FPGA ngày càng trở nên phong phú : 1. Trong giao dịch điện tử:
- Thương mại điện tử; - Ngân hàng;
- Giao dịch an toàn; - Các điểm bán lẻ. 2. Trong thông tin liên lạc:
- Mạng lưu trữ vùng; - Mạng riêng ảo; - Hội nghị truyền hình; - Các dịch vụ thoại. 3. Môi trường bảo mật:
- Thông tin vệ tinh;
- Hệ thống mạng bảo mật.
Tuy nhiên, do thời gian cũng như khả năng nghiên cứu còn có hạn nên bản đồ án này cũng không tránh khỏi thiếu sót, vì vậy em mong rằng sẽ nhận được sự đóng góp của các thầy cô để đề tài này được hoàn thiện hơn.
Một lần nữa em xin bày tỏ lòng biết ơn tới các thầy cô giáo trong khoa Điện Tử Viễn Thông đã tạo điều kiện cho em hoàn thành đồ án.
TÀI LIỆU THAM KHẢO
[1] Xilinx Inc, Programmable Logic Design - Logic Hand Book.pdf 2003 [2] Peter J.Anshenden, VHDL cook book , 1990
[3] NIST, Anouncing Advanced Encryption Standard Federal, Information Processing Standard 2001.
[4] Cryptography Research, DPA Workstation Factsheet 2005. [5] http://en.wikipedia.org/wiki/Advanced_Encryption_Standard [6] http://en.wikipedia.org/wiki/ VHDL
[7] http://www.xilinx.com/support/library.htm [8] http://www.fpga4fun.com