Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 95 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
95
Dung lượng
3,31 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ QUỐC PHÒNG HỌC VIỆN KỸ THUẬT QUÂN SỰ NGUYỄN THẾ BÙI NGHIÊN CỨU, XÂY DỰNG CÁC PHẦN TỬ CƠ SỞ TRONG MÃ HÓA KHỐI TRÊN FPGA Chuyên ngành: Khoa học Máy tính LUẬN VĂN THẠC SĨ KỸ THUẬT Hà Nội - Năm 2014 BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ QUỐC PHÒNG HỌC VIỆN KỸ THUẬT QUÂN SỰ NGUYỄN THẾ BÙI NGHIÊN CỨU, XÂY DỰNG CÁC PHẦN TỬ CƠ SỞ TRONG MÃ HÓA KHỐI TRÊN FPGA Chuyên ngành: Khoa học Máy tính Mã số: 60 48 01 01 LUẬN VĂN THẠC SĨ KỸ THUẬT Hà Nội - Năm 2014 CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI HỌC VIỆN KỸ THUẬT QUÂN SỰ Cán hướng dẫn chính: Tiến sĩ Bùi Thế Truyền Cán chấm phản biện 1: Cán chấm phản biện 2: Luận văn thạc sĩ bảo vệ tại: HỘI ĐỒNG CHẤM LUẬN VĂN THẠC SĨ HỌC VIỆN KỸ THUẬT QUÂN SỰ Ngày tháng năm 2014 Tôi xin cam đoan: Những kết nghiên cứu trình bày luận văn hoàn toàn trung thực, tôi, không vi phạm điều luật sở hữu trí tuệ pháp luật Việt Nam Nếu sai, hoàn toàn chịu trách nhiệm trước pháp luật TÁC GIẢ LUẬN VĂN Nguyễn Thế Bùi MỤC LỤC Trang Trang phụ bìa Mục lục Tóm tắt luận văn Danh mục kí hiệu, chữ viết tắt Danh mục bảng Danh mục hình vẽ MỞ ĐẦU Chương TỔNG QUAN VỀ MÃ HOÁ 1.1 Giới thiệu tổng quan 1.2 Một số hệ mã phương pháp mã hoá .6 1.2.1 Một số phương pháp mã hoá quy ước 1.2.2 Chuẩn mã hóa liệu DES 15 1.2.3 Chuẩn mã hóa nâng cao AES 19 1.3 Mã hoá khối phần tử sở 22 1.3.1 Mạng chuyển vị - thay cố định 22 1.3.2 Mạng chuyển vị - thay điều khiển 27 1.4 Tình hình nghiên cứu nước 28 1.4.1 Trên giới 28 1.4.2 Trong nước 28 Chương 29 KHÁI QUÁT VỀ FPGA .29 2.1 Giới thiệu chung FPGA .29 2.2 Ngôn ngữ mô tả phần cứng Verilog VHDL 32 2.2.1 Ngôn ngữ mô tả phần cứng VHDL .32 2.2.2 Các cấu trúc ngôn ngữ VHDL 34 2.3 Xilinx công cụ lập trình .37 2.3.1 Xilinx ISE 37 2.3.2 Xilinx EDK 40 2.3.3 Xilinx Platform Studio SDK .41 Chương 43 XÂY DỰNG MÔ HÌNH TOÁN HỌC .43 3.1 Phần tử chuyển vị điều khiển 43 3.2 Phần tử thay điều khiển 46 3.3 Ứng dụng xây dựng phần tử thay - chuyển vị điều khiển .49 3.3.1 Cấu trúc thuật toán 49 3.3.2 Xây dựng hoán vị 54 3.4 Thời gian biểu sử dụng khóa 55 Chương 56 XÂY DỰNG CÁC PHẦN TỬ TRONG THUẬT TOÁN CRYPT(D) 64 VÀ THỬ NGHIỆM .56 4.1 Các phần tử sở 56 4.1.1 Phần tử sở F2/1 .56 4.1.2 Phần tử hoán vị I0 , I1 , I2 57 4.2 Các phần tử kế thừa 57 4.2.1 Khối toán tử F16/16 57 4.2.2 Khối toán tử F32/112 58 4.2.3 Vòng mã hóa sở 58 4.3 Thực mô cài đặt thiết bị 59 4.3.1 Xây dựng phần tử sinh khóa 59 4.3.2 Xây dựng thuật toán CRYPT(D)-64 59 4.3.3 Thực cài đặt thiết bị 60 4.4 Đánh giá kết nhận .61 4.4.1 Đánh giá độ an toàn thuật toán .61 4.4.2 Đánh giá tốc độ tài nguyên sử dụng thuật toán 65 4.4.3 Đánh giá tính đắn thuật toán 66 KẾT LUẬN VÀ KHUYẾN NGHỊ .68 Kết luận .68 Khuyến nghị 68 TÀI LIỆU THAM KHẢO 69 PHỤ LỤC .69 TÓM TẮT LUẬN VĂN + Họ tên học viên: Nguyễn Thế Bùi + Lớp: Khoa học Máy tính Khoá: 24 + Cán hướng dẫn: Tiến sĩ Bùi Thế Truyền + Tên đề tài: Nghiên cứu, xây dựng phần tử sở mã hóa khối FPGA + Tóm tắt: Nghiên cứu ngôn ngữ mô tả phần cứng Verilog, VHDL công cụ lập trình Xilinx Ứng dụng xây dựng phần tử sở điều khiển thuật toán mã hoá khối, áp dụng thuật toán mã hoá khối CRYPT(D)64, nhằm phục vụ cho việc cài đặt thuật toán mã hoá khối thiết bị phần cứng - Chương 1: Giới thiệu sơ lược lý thuyết mã hóa, mã hoá khối phần tử sở - Chương 2: Lý thuyết FPGA, ngôn ngữ mô tả phần cứng Verilog, VHDL công cụ lập trình - Chương 3, 4: Xây dựng phần tử sở điều khiển cho thuật toán mã hoá khối CRYPT(D)64, ứng dụng xây dựng công cụ lập trình Xilinx ISE cài đặt phần cứng DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT ASIC Application Specific Integrated Circuit Mạch tích hợp ứng dụng chuyên biệt CE Controlled Element Phần tử điều khiển CPLD Complex Programmable Logic Thiết bị lôgíc lập trình phức hợp Devices CSPN Controlled Substitution Permutation Network Mạng chuyển vị - thay điều khiển DES Data Encryption Standard Chuản mã liệu FPGA Field-Programmable Gate Array Ma trận cổng lập trình theo hang HDL Hardware Description Language Ngôn ngữ mô tả phần cứng IEEE Institute of Electrical and Electronic Engineers Hiệp hội Kỹ sư Điện Điện tử LUT Look Up Table Bảng dò tìm OTP One - Time Programmable Lập trình lần PLD Programmable Logic Device Thiết bị logic lập trình PROM Programmable Read - Only Memory Bộ nhớ đọc lập trình SPN Substitution - Permutation Network Mạng chuyển vị - thay cố định SRAM Static Random-Access Memory Bộ nhớ tĩnh truy xuất ngẫu nhiên -còn gọi RAM tĩnh VHDL VHSIC Hardware Description Language Ngôn ngữ mô tả phần cứng mạch tích hợp tốc độ cao VHSIC Very High Speed Integrated Circuits Mạch tích hợp tốc độ cao VLSI Very Large Scale Integrated Tích hợp mật độ lớn AES Advanced Encryption Standard Chuẩn mã hóa nâng cao DANH MỤC CÁC BẢNG Trang Bảng 1.1 - Đặc tả hộp thay 4×4 S0 , , S7 25 Bảng 1.2 - Đặc tả hộp thay 4×4 S0-1, , S7-1 .26 Bảng 3.1.a - Khối chuyển vị thuận S0,…,S7 .51 Bảng 3.1.b - Khối chuyển vị ngược 51 Bảng 3.2a: Sơ đồ sử dụng khóa 128 bit .55 Bảng 3.2b: Sơ đồ sử dụng khóa 256 bit .55 Bảng 4.1 - Bảng so sánh kết thử nghiệm thuật toán CRYPT(D)-64 66 chung, cho giáo vụ quản lý học viên gửi yêu cầu qua giáo vụ TÀI LIỆU THAM KHẢO Tiếng Việt Nguyễn Bình (1996), Mật mã - lý thuyết thực hành, Học viện Kỹ thuật quân Nguyễn Lê Cường, Tài liệu điện tử mã hoá DES, Tạp chí Công nghệ thông tin Truyền thông Tiếng Anh Anthony Edward Nelson (2000), Implementation of Image Processing Algorithms on FPGA Hardware, Nashville Chi-Jeng Chang , Pei-Yung Hsiao, Zen-Zi Hoang (2006), Intergrated Operation of Image Capturing in FPGA, Chang Gung University, TaoYuan, Taiwan Douglas Stinson (1995), Cryptography: Theory and Practice William Stallings (2005), Cryptography and Network Security Principles and Practices, Fourth Edition, Prentice Hall Hans Delfs, Helmut Knebl (Second Edition, 2007), Introduction to Cryptography” Principles and Applications Nikolay A.Moldovyan, Alaxander A.Moldovyan, DATA – DRIVEN BLOCK CIPHERS FOR FAST TELECOMMUNICATION SYSTEMS, Auerbach Publiccation Nikolay A.Moldovyan, Alaxander A.Moldovyan (Second Edition, 2007), Innovative Cryptograpy, Charles River Media, Boston, Massachusetts 10 RICHARD A MOLLIN ( Second Edition, 2007), An INTRODUCTION to CRYPTOGRAPHY, Taylor & Francis Group 11 Volnei A Pedroni (2004), Circuit Design with VHDL, MIT Press Cambridge, Massachusetts London, England 12 Xilinx Ltd (November 21, 2005), PicoBlaze 8-bit Embedded Microcontroller User Guide UG129, www.xilinx.com 13 Xilinx Ltd (March 9, 2006), Spartan-3E Starter Kit Board User Guide UG230 (v1.0), www.xilinx.com 14 Xilinx Ltd (September 18, 2007), Chapter – Implementing DDR SDRAM Controller – MIG User Guide UG086 (V2.0), www.xilinx.com 15 Xilinx Ltd (August 2007), System Generator for DSP Userguide Release 9.2.00, www.xilinx.com 16 Xilinx Ltd (August, 2007), System Generator for DSP Reference Guide Release 9.2.00, www.xilinx.com 17 VHDL FAQ: http://www.vhdl.org/comp.lang.vhdl/ PHỤ LỤC Phụ lục 1: Xây dựng phần tử F2/1 library IEEE; use IEEE.STD_LOGIC_1164.ALL; khai báo thư viện entity F21 is port ( x: in std_logic_vector(1 downto 0); tín hiệu đầu vào clk: in std_logic; tín hiệu đồng v: in std_logic; tín hiệu điều khiển y: out std_logic_vector(1 downto 0)); tín hiệu end F21; architecture Behavioral of F21 is COMPONENT P21 khai báo phần tử P21,GM24,MH42 sử dụng F2/1 PORT( clk : IN std_logic; v : IN std_logic; x1 : IN std_logic; x2 : IN std_logic; y1 : OUT std_logic; y2 : OUT std_logic); END COMPONENT; COMPONENT GM24 PORT( clk : IN std_logic; x : IN std_logic_vector(1 downto 0); y : OUT std_logic_vector(3 downto 0) ); END COMPONENT; COMPONENT MH42 PORT( clk : IN std_logic; x : IN std_logic_vector(3 downto 0); y : OUT std_logic_vector(1 downto 0) ); END COMPONENT; signal tmp: std_logic_vector(3 downto 0); khai báo biến tạm signal tmp1: std_logic_vector(3 downto 0); sử dụng chương trình signal tmp2: std_logic_vector(3 downto 0); begin Bắt đầu chương trình GM241: GM24 PORT MAP( clk => clk , x => x ,y => tmp ); P211: P21 PORT MAP(clk =>clk , v => v,x1 => tmp(0) , x2 =>tmp(1) , y1=>tmp1(0) ,y2 =>tmp1(1) ); P212: P21 PORT MAP(clk =>clk , v =>v , x1 => tmp(2) , x2 => tmp(3), y1 => tmp1(2) , y2 =>tmp1(3) ); P213: P21 PORT MAP(clk =>clk , v =>v , x1 =>tmp1(0) , x2 =>tmp1(2) , y1 =>tmp2(0) ,y2 =>tmp2(1) ); P214: P21 PORT MAP(clk =>clk , v =>v , x1 => tmp1(1) , x2 =>tmp1(3) , y1 =>tmp2(2) ,y2 =>tmp2(3) ); MH421: MH42 PORT MAP(clk => clk,x =>tmp2 ,y => y); end Behavioral; Phụ lục 2: Xây dựng phần tử I0 library IEEE; use IEEE.STD_LOGIC_1164.ALL; khai báo thư viện entity I0 is Port ( xi : in STD_LOGIC_vector(31 downto 0); tín hiệu đầu vào clk : in STD_LOGIC; tín hiệu đồng yi : out STD_LOGIC_vector(31 downto 0)); tín hiệu end I0; architecture Behavioral of I0 is begin process(clk) begin Bắt đầu chương trình if (( clk='1') and ( clk'event)) then yi(31)tmp(1 downto 0) ); sử dụng biến tạm để đảo tín hiệu liên kết tầng tầng tmp2(15)yf16(9 downto 8)); F2113: F21 PORT MAP(x =>tmp2(7 downto 6) ,clk =>clkf16 , v =>vf16(3) , y =>yf16(7 downto 6)); F2114: F21 PORT MAP(x =>tmp2(5 downto 4) ,clk =>clkf16 , v =>vf16(2) , y =>yf16(5 downto 4)); F2115: F21 PORT MAP(x =>tmp2(3 downto 2) ,clk =>clkf16 , v =>vf16(1) , y =>yf16(3 downto 2)); F2116: F21 PORT MAP(x =>tmp2(1 downto 0) ,clk =>clkf16 , v =>vf16(0) , y =>yf16(1 downto 0)); end Behavioral; Phụ lục 4: Xây dựng phần tử F32/112 library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity F32_112 is port( xf32 : IN std_logic_vector(31 downto 0); 32 bit đầu vào clk : IN std_logic; xung đồng vf32 :IN std_logic_vector(111 downto 0); 112 bit điều khiển yf32 :OUT std_logic_vector(31 downto 0)); 32 bit dầu end F32_112; architecture Behavioral of F32_112 is COMPONENT MotlopF32 PORT( x : IN std_logic_vector(31 downto 0); clk : IN std_logic; v : IN std_logic_vector(15 downto 0);y : OUT std_logic_vector(31 downto 0)); END COMPONENT; khai báo biến tạm để kết nối lớp F32/112 signal tmp11,tmp12,tmp21,tmp22,tmp31,tmp32,tmp41,tmp42,tmp51,tmp52,tmp61,tmp62: std_logic_vector(31 downto 0); begin lop1F32: MotlopF32 PORT MAP(x =>xf32 ,clk =>clk ,y =>tmp11 ,v =>vf32(111 downto 96)); tmp12(31)