Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 74 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
74
Dung lượng
1,22 MB
Nội dung
TRƯỜNG ĐẠI HỌC VINH KHOA ĐIỆN TỬ - VIỄN THÔNG ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Đề tài: XÂY DỰNG MÃ HĨA AES BẢO MẬT THƠNG TIN TRÊN NỀN FPGA Người hướng dẫn Sinh viên thực Lớp Mã số sinh viên Niên khóa : ThS Nguyễn Anh Quỳnh : Trần Văn Huân : 48k- ĐTVT : 0751080459 : 2007 - 2012 NGHỆ AN- 01/2012 MỤC LỤC CÁC TỪ VIẾT TẮT TRONG ĐỒ ÁN DANH MỤC HÌNH VẼ DANH MỤC BẢNG BIỂU LỜI MỞ ĐẦU Chương Phương pháp mã hóa AES 1.1 Giới thiệu chuẩn mã hóa nâng cao AES 10 1.2 Các khái niệm định nghĩa 11 1.2.1 Các khái niệm ký hiệu 11 1.2.2 Các hàm tham số thuật toán AES 12 1.3 Một số khái niệm toán học AES 14 1.3.1 Phép cộng 14 1.3.2 Phép nhân 14 1.3.3 Đa thức với hệ số GF(28 ) 16 1.4 Quy trình mã hóa AES 17 1.4.1 Phép biến đổi SubBytes 20 1.4.2 Phép biến đổi ShiftRows 22 1.4.3.Phép biến đổi MixColumns 23 1.4.4 Thao tác AddRoundKey 24 1.4.5 Thuật toán sinh khóa (Key Expansion) 25 1.5 Quy trình giải mã AES 27 1.5.1 Phép biến đổi InvShifRows 28 1.5.2 Phép biến đổi InvSuBytes 28 1.5.3 Phép biến đổi InvMixColumns 30 1.5.4 Thuật toán giải mã tương đương 33 Chương TỔNG QUAN VỀ FPGA VÀ VHDL 2.1 Tổng quan FPGA 33 2.2 Ứng dụng FPGA 34 2.3 Kiến trúc FPGA 34 2.3.1 Kiến trúc chíp FPGA 34 2.3.2 Đặc điểm hoạt động FPGA 37 2.4 Thiết kế lập trình FPGA 40 2.4.1 Thiết kế sử dụng sơ đồ 41 2.4.2 Sử dụng ngôn ngữ HDL 43 2.5 Virtex-4 LC System Board 44 2.5.1 Giới thiệu chung 44 2.5.2 Các chức bo phát triển 46 Chương MÃ HÓA AES TRÊN NỀN FPGA 3.1 Sơ đồ tổng quan hệ thống AES 50 3.1.1 Mô tả lưu đồ tổng quát mã hóa giải mã AES 50 3.1.2 Sơ đồ thuật toán khối Data mã hóa 51 3.1.3 Sơ đồ thuật toán khối KeyExpansion 52 3.1.4 Sơ đồ thuật toán khối CPU 53 3.1.5 Sơ đồ thuật toán khối Data giải mã AES 53 3.2 Thiết kế chi tiết khối chức mã hóa 54 3.2.1 Khối AddRoundKey 54 3.2.2 Khối SubByte 56 3.2.3 Khối ShiftRow 56 3.2.4 Khối MixColumn 58 3.3 Thiết kế khối chức giải mã 60 3.3.1 Nhân với 09h 61 3.3.2 Phép nhân với 0Bh 61 3.3.2 Phép nhân với 0Dh 61 3.3.3 Phép nhân với 0Eh 62 3.4 Thiết kế chi tiết cho khối KeyExpansion 63 3.4.1 Khối RotWord 63 3.4.2 Khối SubWord 64 3.4.3 Khối Rcon 64 3.4.4 Khối KeyStorage 65 3.4.5 Khối DemuxKey 66 3.5 Khối diều khiển giải mã giao tiếp với máy tính 67 3.5.1 Khối CPU - điều khiển giải mã 67 3.5.2 Khối giao tiếp với máy tính 69 KẾT LUẬN 71 TÀI LIỆU THAM KHẢO 73 CÁC TỪ VIẾT TẮT TRONG ĐỒ ÁN Từ viết tắt Nghĩa tiếng Anh Nghĩa tiếng Việt FPGA Field Programmable Gates Array ASIC Application Specific Integrated Circuit Complex Programmable Logic Device Mảng cổng lập trình dạng trường Vi mạch tích hợp chun dụng Linh kiện (thiết bị) lơgic phức hợp lập trình CPLD AES LUT SRAM HDL Advanced Encryption Standard Look Up Table Static Random Memory Access Hardware Description Language VHDL VHSIC Hardware Description Language Very High Speed Integrated Circuits VHSIC PLD GPIO Programmable Logic Device General Purpose IO CAD Computer Aided Design IEEE Institute of Electrical and Electronic Engineers National Institute of Standard and Technology Galois Field Data Encryption Standard NIST GF DES Bảng tra Ram tĩnh Ngôn ngữ mô tả phần cứng Ngôn ngữ mô tả phần cứng Các mạch tích hợp tốc độ cao Các chân vào thơng thường Hỗ trợ thiết kế máy tính Viện Kĩ thuật điện điện tử Viện công tiêu chuẩn công nghệ Hoa Kỳ Trường Galoa Tiêu chuẩn mã hóa liệu C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an DANH MỤC HÌNH VẼ Hình 1.1 Các trạng thái AES 18 Hình 1.2 Thao tác SubBytes tác động byte trạng thái 21 Hình 1.3 Thao tác ShiftRows tác động dòng trạng thái 22 Hình 1.4 Hàm ShiffRows() 23 Hình 1.5 Thao tác MixColumns tác động lên cột trạng thái 24 Hình 1.6 Thao tác AddRoundKey tác động lên cột trạng thái 25 Hình 1.7 SubWord 26 Hình 1.8 RotWord 26 Hình 1.9 Thao tác InvShiftRows tác động lên dòng trạng thái hành 28 Hình 2.1 Kiến trúc FPGA 29 Hình 2.2 Logic block 35 Hình 2.3 Vị trí chân Logic block 36 Hình 2.4 Kết nối khối logic 37 Hình 2.5 Kết nỗi khối logic với chân I/O FPGA 38 Hình 2.6 Các đường kết nối chuyên dụng tốc dộ cao 38 Hình 2.7 FPGA kết hợp với RAM 39 Hình 2.8 RAM hai cổng 39 Hình 2.9 Quá trình thiết kế PLD 42 Hình 2.10 Thiết kế nhân sử dụng Sơ đồ ngơn ngữ VHDL 43 Hình 2.11 Bo mạch Virtex-4 LC 46 Hình 2.12 Sơ đồ khối chức Virtex-4 LC 47 Hình 2.13 Cổng cấu hình nạp chương trình cho Virtex-4 47 Hình 2.14 Giao tiếp Virtex-4 cổng RS232 49 Hình 3.1 Sơ đồ khối tổng quát hệ thống AES 50 Hình 3.2 Sơ đồ thuật tốn Khối data mã hóa 51 Hình 3.3 Sơ đồ thuật toán Khối KeyExpansion 52 Hình 3.4 Sơ đồ thuật tốn khối CPU 53 Hình 3.5 Sơ đồ thuật toán khối giải mã - Dạng 54 Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an Hình 3.6 Khối AddRoundKey 55 Hình 3.7 Sơ đồ thuật toán khối giải mã - Dạng 55 Hình 3.8 Khối SubByte 56 Hình 3.9 Khối ShiftRow 57 Hình 3.10 Khối MixColumn 58 Hình 3.11 Khối Xtime 59 Hình 3.12 Phép biến đổi theo dòng 60 Hình 3.13 Khối SubMixColumn 61 Hình 3.14 Khối nhân 09h 61 Hình 3.15 Khối nhân 0Bh 62 Hình 3.16 Khối nhân 0Dh 62 Hình 3.17 Phép nhân 0Eh 63 Hình 3.18 Khối InverseMixColumn 63 Hình 3.19 Sơ đồ khối KeyExPansion 63 Hình 3.20 Khối RotWord 64 Hình 3.21 Khối SubWord 65 Hình 3.22 Khối Rcon 66 Hình 3.23 Khối KeyStorage 66 Hình 3.24 Khối DemuxKey 67 Hình 3.25 Khối CPU 67 Hình 3.26 Giản đồ thời gian điều khiển vịng key 68 Hình 3.27 Giản đồ thời gian điều khiển vòng data 68 Hình 3.28 Sơ đồ khối giao tiếp với máy tính 70 Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an DANH MỤC BẢNG BIỂU Bảng 1.1 Quy ước số từ viết tắt thuật ngữ AES 12 Bảng 1.2 Các hàm, ký hiệu tham số thuật toán AES 13 Bảng 1.3 Bảng độ dài khóa AES 19 Bảng 1.4 Bảng S-Box AES 22 Bảng 1.5 Bảng cho hàm InvSByte 29 Bảng 2.1 Sơ đồ chân LED 48 Bảng 2.2 Sơ đồ phím bấm 48 Bảng 2.3 Sơ đồ công tắc 48 Bảng 2.4 Giao tiếp với RS232 48 Bảng 2.5 Màn hình LCD 49 Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an LỜI MỞ ĐẦU Ngày nay, ứng dụng mã hóa bảo mật thông tin sử dụng ngày phổ biến lĩnh vực khác giới, từ lĩnh vực an ninh, quân sự, quốc phòng lĩnh vực dân thương mại điện tử, ngân hàng… Với phát triển ngày nhanh chóng Internet ứng dụng giao dịch điện tử mạng, nhu cầu bảo vệ thông tin hệ thống ứng dụng điện tử ngày quan tâm có ý nghĩa quan trọng Các ứng dụng mã hóa thơng tin cá nhân, trao đổi thông tin kinh doanh, thực giao dịch điện tử qua mạng trở nên gần gũi quen thuộc với người Cùng với phát triển khoa học máy tính Internet, nghiên cứu ứng dụng chuẩn mã hóa ngày trở nên đa dạng hơn, Có nhiều chuẩn mã hóa áp dụng giới RSA, SHA, RC4/RC5, DES, Triple-DES, nhìn chung chuẩn mã hóa có hiệu lực khoảng thời gian định Chuẩn mã hóa AES viện tiêu chuẩn cơng nghệ Quốc gia Hoa Kì NIST thơng qua năm 2001 để thay cho DES có nguy bị sụp đổ Cơng nghệ mã hóa thực phần mềm, phần cứng kết hợp phần cứng phần mềm Các mã hóa thực phần cứng có khả chống công cao so với phần mềm ngày trở nên phổ biến giới Mục đích đồ án sử dụng vi mạch khả trình FPGA để thực thi mã hóa tiêu chuẩn nâng cao AES FPGA ứng dụng điển hình lĩnh vực như: xử lý tín hiệu số, xử lý ảnh, thị giác máy, nhận dạng giọng nói, mã hóa, mơ (emulation) Nội dung đồ án bao gồm chương: Chương Chuẩn mã hóa nâng cao AES Chương Tổng quan FPGA VHDL Chương Mã hóa AES FPGA Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an FPGA đặc biệt mạnh lĩnh vực ứng dụng mà kiến trúc yêu cầu lượng lớn xử lý song song, đặc biết mã hóa giải mã FPGA công nghệ ngày phát triển khắp lĩnh vực công nghệ ưu điểm trội mang lại Em xin chân thành cảm ơn thầy giáo Th.s Nguyễn Anh Quỳnh giúp đỡ em tận tình trình thực đồ án Vinh, tháng năm 2012 Trần Văn Huân Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn 10 C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an Việc thực khối SubMixColum dựa khối XOR_8 khối Xtime Khối XOR_8 thực phép XOR với hai đầu vào bit Khối Xtime thực phép nhân với x mô tả chương I d_out(7:0) d_in(7:0) Xtime Hình 3.11 Khối Xtime Code VHDL: process (d_in) begin if d_in(7)='0' then d_out