Thông tin tài liệu
TRƯỜNG ĐẠI HỌC VINH ĐỒ ÁN Đề tài: !" #$%& '()*+(,-'./- 0+1'234--+526-+ *-+7*8-9+:;+*<- 0=>-?-2@- A,B 0CDE FGHG*-+7*8- 0IJKLIDICKM *8-E+NO 0PIIJPILP NGHỆ AN- 01/2012 QAQ CÁC TỪ VIẾT TẮT TRONG ĐỒ ÁN 4 DANH MỤC HÌNH VẼ .5 DANH MỤC BẢNG BIỂU .7 LỜI MỞ ĐẦU 8 +(R-'L +(R-'B+SBTF+NO 1.1. Giới thiệu về chuẩn mã hóa nâng cao AES 10 1.2. Các khái niệm và định nghĩa 11 1.2.1. Các khái niệm và ký hiệu .11 1.2.2. Các hàm và các tham số của 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ố trên GF(2 ) .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 2 +(R-'P U5V%&WA 2.1. Tổng quan về FPGA .33 2.2. Ứng dụng của FPGA 34 2.3. Kiến trúc FPGA 34 2.3.1. Kiến trúc của chíp FPGA .34 2.3.2. Đặc điểm hoạt động của FPGA 37 2.4. Thiết kế và 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 năng của bo phát triển 46 +(R-'X #$%& 3.1. Sơ đồ tổng quan của hệ thống AES 50 3.1.1. Mô tả lưu đồ tổng quát của bộ mã hóa và giải mã AES 50 3.1.2. Sơ đồ thuật toán khối Data của bộ mã hóa .51 3.1.3. Sơ đồ thuật toán của 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 của bộ giải mã AES 53 3.2. Thiết kế chi tiết các khối chức năng của bộ 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ế các khối chức năng của bộ giải mã 60 3 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 bộ giải mã và bộ giao tiếp với máy tính 67 3.5.1. Khối CPU - điều khiển bộ 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 4 YZ[\#]Y ( ^ 7*8 _ 99? _ 9 '+` a O9*8 _ -'-+ '+` a O9*8 _ -'*8 b 9 FPGA Field Programmable Gates Array Mảng cổng lập trình được dạng trường ASIC Application Specific Integrated Circuit Vi mạch tích hợp chuyên dụng CPLD Complex Programmable Logic Device Linh kiện (thiết bị) lôgic phức hợp có thể lập trình AES Advanced Encryption Standard LUT Look Up Table Bảng tra SRAM Static Random Memory Access Ram tĩnh HDL Hardware Description Language Ngôn ngữ mô tả phần cứng VHDL VHSIC Hardware Description Language Ngôn ngữ mô tả phần cứng VHSIC Very High Speed Integrated Circuits Các mạch tích hợp tốc độ cao PLD Programmable Logic Device GPIO General Purpose IO Các chân vào ra thông thường CAD Computer Aided Design Hỗ trợ thiết kế trên máy tính IEEE Institute of Electrical and Electronic Engineers Viện Kĩ thuật điện và điện tử NIST National Institute of Standard and Technology Viện công tiêu chuẩn và công nghệ Hoa Kỳ GF Galois Field Trường Galoa DES Data Encryption Standard Tiêu chuẩn mã hóa dữ liệu 5 Qcd Hình 1.1. Các trạng thái của AES .18 Hình 1.2. Thao tác SubBytes tác động trên từng byte của trạng thái 21 Hình 1.3. Thao tác ShiftRows tác động trên từng dòng của 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 mỗi cột của trạng thái 24 Hình 1.6. Thao tác AddRoundKey tác động lên mỗi cột của 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 từng dòng của trạng thái hiện 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í các chân của Logic block 36 Hình 2.4. Kết nối các khối logic 37 Hình 2.5. Kết nỗi các khối logic với các chân I/O của 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 trong 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ế bộ nhân sử dụng Sơ đồ và 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 năng của Virtex-4 LC .47 Hình 2.13. Cổng cấu hình và nạp chương trình cho Virtex-4 . 47 Hình 2.14. Giao tiếp giữa Virtex-4 và 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 toán Khối data của bộ mã hóa 51 Hình 3.3. Sơ đồ thuật toán Khối KeyExpansion .52 6 Hình 3.4. Sơ đồ thuật toán khối CPU 53 Hình 3.5. Sơ đồ thuật toán khối giải mã - Dạng 1 .54 Hình 3.6. Khối AddRoundKey 55 Hình 3.7. Sơ đồ thuật toán khối giải mã - Dạng 2 .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 7 Q ! eV Bảng 1.1. Quy ước một số từ viết tắt và thuật ngữ của AES 12 Bảng 1.2. Các hàm, ký hiệu và các tham số của thuật toán AES 13 Bảng 1.3. Bảng độ dài khóa của AES .19 Bảng 1.4. Bảng thế S-Box của AES 22 Bảng 1.5. Bảng thế 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 8 AfghV Ngày nay, các ứng dụng mã hóa và bảo mật thông tin đang được sử dụng ngày càng phổ biến trong các lĩnh vực khác nhau trên thế giới, từ các lĩnh vực an ninh, quân sự, quốc phòng cho đến các lĩnh vực dân sự như thương mại điện tử, ngân hàng… Với sự phát triển ngày càng nhanh chóng của Internet và các ứng dụng giao dịch điện tử trên mạng, nhu cầu bảo vệ thông tin trong các hệ thống và ứng dụng điện tử ngày càng được quan tâm và có ý nghĩa hết sức 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 hiện các giao dịch điện tử qua mạng . đã trở nên gần gũi và quen thuộc với mọi người. Cùng với sự phát triển của khoa học máy tính và Internet, các nghiên cứu và ứng dụng của các chuẩn mã hóa ngày càng trở nên đa dạng hơn, Có rất nhiều chuẩn mã hóa đang được áp dụng trên thế giới như RSA, SHA, RC4/RC5, DES, Triple-DES, .và nhìn chung các chuẩn mã hóa chỉ có hiệu lực trong một khoảng thời gian nhất định. Chuẩn mã hóa AES được viện tiêu chuẩn công nghệ Quốc gia Hoa Kì NIST thông qua năm 2001 để thay thế cho DES có nguy cơ bị sụp đổ. Công nghệ mã hóa có thể được thực hiện trên phần mềm, trên phần cứng hoặc kết hợp cả phần cứng và phần mềm. Các bộ mã hóa thực hiện trên phần cứng có khả năng chống tấn công cao hơn so với phần mềm do đó nó ngày càng trở nên phổ biến trên thế giới. Mục đích của đồ án là sử dụng vi mạch khả trình FPGA để thực thi bộ mã hóa tiêu chuẩn nâng cao AES. FPGA được ứng dụng điển hình trong các 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ô phỏng (emulation) . Nô ̣ i dung đô ̀ a ́ n bao gồm 3 chương: Chương 1 Chuẩn mã hóa nâng cao AES Chương 2 Tổng quan về FPGA và VHDL 9 Chương 3 Mã hóa AES trên nền FPGA FPGA đặc biệt mạnh trong các lĩnh vực hoặc ứng dụng mà kiến trúc của nó yêu cầu một lượng rất lớn xử lý song song, đặc biết là mã hóa và giải mã. FPGA là một công nghệ ngày càng được phát triển trong khắp các lĩnh vực công nghệ do các ưu điểm nổi trội của nó 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 trong quá trình thực hiện đồ án này. Vinh, tháng 1 năm 2012 Trần Văn Huân 10 . L1L1*,*9+*<27j;+2k-TF+NO-@-';Ol 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à. dài khóa của AES Quy trình mã hóa sử dụng bốn phép biến đổi chính: 1. AddRoundKey: cộng ⊕ mã khóa của chu kỳ vào trạng thái hiện hành. Độ dài của mã khóa
Ngày đăng: 13/12/2013, 23:57
Xem thêm: Xây dựng mã hóa AES bảo mật thông tin trên nền FPGA , Xây dựng mã hóa AES bảo mật thông tin trên nền FPGA