Thiết kế bộ mã hóa và giải mã DES trên nền tảng công nghệ FPGA (có code)

51 481 5
Thiết kế bộ mã hóa và giải mã DES trên nền tảng công nghệ FPGA (có code)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Thiết kế bộ mã hóa và giải mã DES trên nền tảng công nghệ FPGA (có code) Thiết kế bộ mã hóa và giải mã DES trên nền tảng công nghệ FPGA (có code) Thiết kế bộ mã hóa và giải mã DES trên nền tảng công nghệ FPGA (có code) Thiết kế bộ mã hóa và giải mã DES trên nền tảng công nghệ FPGA (có code) Thiết kế bộ mã hóa và giải mã DES trên nền tảng công nghệ FPGA (có code) Thiết kế bộ mã hóa và giải mã DES trên nền tảng công nghệ FPGA (có code)

ĐỒ ÁN TỐT NGHIỆP Thiết kế mã hóa / giải mã DES tảng công nghệ FPGA MỤC LỤC DANH MỤC CÁC HÌNH VẼ DANH MỤC CÁC BẢNG BIỂU DANH MỤC CÁC TỪ VIẾT TẮT AES Advanced Encryption Standard CPLD DES FIPS Complex Programmable Logic Device Data Encryption Standard Federal Information Processing Standards HDL LSB MSB NBS NIST NSA Hardware Description Language Least Significant Bit Most Significant Bit National Bureau of Standard National Institute of Standards and Technology National Security Agency PAL Phase Alternative Line PLA Programmable Logic Array RTL UART VHDL VHSIC Register Transfer Level Universal Asynchronous Receiver - Transmitter VHSIC hardware description language Very High Speed Integrated Circuit Trang 6/46 CHƯƠNG GIỚI THIỆU CHUNG 1.1 Giới thiệu chung DES phương pháp mật mã hóa FIPS (tiêu chuẩn xử lý thông tin liên bang Hoa Kỳ) chọn làm chuẩn thức năm 1976 Sau chuẩn sử dụng rộng rãi giới Ngay từ đầu, thuật toán gây nhiều tranh cãi, bao gồm thành phần thiết kế mật, độ dài khóa tương đối ngắn, nghi ngờ cửa sau để quan an ninh quốc gia Hoa Kỳ (NSA) bẻ khóa Do đó, DES giới nghiên cứu xem xét kỹ lưỡng, việc thúc đẩy hiểu biết đại mật mã khối (block cipher) phương pháp thám mã tương ứng 1.2 Lịch sử Khởi nguyên thuật toán có từ đầu thập niên năm 1970 Vào năm 1972, sau tiến hành nghiên cứu nhu cầu an tồn máy tính phủ Hoa Kỳ, cục tiêu chuẩn liên bang Hoa Kỳ (National Bureau of Standard - NBS), đổi tên thành Viện Tiêu chuẩn Công nghệ Quốc gia Hoa Kỳ (National Institute of Standards and Technology - NIST), nhận nhu cầu tiêu chuẩn phủ dùng để mật mã hóa thơng tin mật/nhạy cảm Vào ngày 15 tháng năm 1973, sau tham khảo với NSA, NBS đưa kêu gọi thiết kế thuật tốn mã hóa đáp ứng tiêu chuẩn nghiêm ngặt Tuy nhiên khơng có đề xuất đáp ứng yêu cầu đề Ngày 27 tháng năm 1974, NBS đưa kêu gọi lần thứ hai Lần công ty IBM đưa đề xuất chấp nhận Đề xuất phát triển năm 1973 1974 dựa thuật tốn có từ trước - thuật toán mật mã Lucifer Horst Feistel 1.3 Hướng nghiên cứu Mật mã người sử dụng từ lâu đời Các hình thức mật mã sơ khai tìm thấy từ khoảng bốn nghìn năm trước văn minh Ai Cập cổ đại Trải qua hàng nghìn năm lịch sử, mật mã sử dụng rộng rãi khắp Thiết kế mã hóa / giải mã DES tảng công nghệ FPGA Trang 7/46 nơi giới từ Đơng sang Tây để giữ bí mật cho việc giao lưu thông tin lĩnh vực hoạt động người quốc gia, đặc biệt lĩnh vực quân sự, ngoại giao, trị Mật mã trước hết loại hoạt động thực tiễn, nội dung chủ yếu để giữ bí mật thơng tin Vì vậy, tơi có ý tưởng làm đề tài Thiết kế mã hóa / giải mã DES tảng công nghệ FPGA Trang 8/46 CHƯƠNG TỔNG QUAN VỀ FPGA VÀ NGÔN NGỮ VERILOG 2.1 Tổng quan FPGA 2.1.1 Khái niệm FPGA FPGA (Field-Programmable Gate Array) vi mạch dùng cấu trúc mảng phần tử logic mà người dùng lập trình Vi mạch FPGA cấu thành từ phận sau:     Các khối logic lập trình (logic block) Hệ thống mạch liên kết lập trình Khối vào/ra (IO Pads) Phần tử thiết kế sẵn khác DSP slice, RAM, ROM, nhân vi xử lý 2.1.2 Lịch sử đời FPGA FPGA thiết kế Ross Freeman, người sáng lập công ty Xilinx vào năm 1984, kiến trúc FPGA cho phép tích hợp số lượng tương đối lớn phần tử bán dẫn vào vi mạch so với kiến trúc trước CPLD FPGA có khả chứa tới từ 100.000 đến vài tỷ cổng logic, CPLD chứa từ 10.000 đến 100.000 cổng logic, PAL, PLA thấp đạt vài nghìn đến 10.000 2.1.3 Ứng dụng Ứng dụng FPGA bao gồm: mật mã học, xử lý tín hiệu số DSP, vũ trụ, quốc phòng, hệ thống hàng không, tiền thiết kế mẫu ASIC (ASIC prototyping), hệ thống điều khiển trực quan, phân tích nhận dạng ảnh, nhận dạng tiếng nói, mơ hình phần cứng máy tính 2.1.4 Cấu trúc FPGA Dưới chip FPGA điển hình khối Thiết kế mã hóa / giải mã DES tảng công nghệ FPGA Trang 9/46 Hình 2-1: Cấu trúc tổng FPGA [5]  Khối logic tái cấu hình Mục đích việc lập trình khối logic FPGA để cung cấp tính tốn phần tử nhớ sử dụng hệ thống số Một phần tử logic bao gồm mạch tổ hợp lập trình, Flip-Flop chốt (latch) Ngồi khối logic đó, nhiều chip FPGA gồm hỗn hợp khối khác nhau, số dùng cho chức cụ thể, khối nhớ chuyên dụng, nhân ghép kênh Tất nhiên, cấu hình nhớ sử dụng tất khối logic để điều khiển chức cụ thể phần tử bên khối  Kết nối lập trình Các liên kết FPGA dùng để liên kết khối logic I/O lại với để tạo thành thiết kế Bao gồm có ghép kênh, transistor cổng đệm ba trạng thái Nhìn chung, transistor ghép kênh dùng Thiết kế mã hóa / giải mã DES tảng công nghệ FPGA Trang 10/46 cụm logic để kết nối phần tử logic lại với nhau, ba dùng cho cấu trúc định tuyến bên FPGA Một số FPGA cung cấp nhiều kết nối đơn giản khối logic, số khác cung cấp kết nối nên định tuyến phức tạp  Khối I/O khả trình I/O cung cấp giao tiếp khối logic kiến trúc định tuyến đến thành phần bên Một vấn đề quan trọng thiết kế kiến trúc I/O việc lựa chọn tiêu chuẩn điện áp cung cấp điện áp tham chiếu hỗ trợ 2.1.5 Ngôn ngữ mô tả phần cứng Ngôn ngữ mô tả phần cứng bao gồm Verilog, VHDL, Handle-C System-C thường sử dụng để lập trình FPGA Verilog VHDL phát triển chuẩn công nghiệp hai ngôn ngữ phổ biến Altera Quartus Xilinx ISE hỗ trợ Verilog VHDL 2.2 Ngôn ngữ Verilog 2.2.1 Khái niệm Verilog ngôn ngữ mô tả phần cứng sử dụng việc thiết kế hệ thống số mạch tích hợp Thiết kế mã hóa / giải mã DES tảng công nghệ FPGA Trang 37/46 4.4 Kết thực tế Hình 5-4: Kết thực tế mã hố data mã Hex Hình 5-5: Kết thực tế giải mã data mã Hex Thiết kế mã hóa / giải mã DES tảng cơng nghệ FPGA Trang 38/46 Hình 5-6: Kết thực tế mã hố data mã Ascii Hình 5-7: Kết thực tế giải mã data mã Hex CHƯƠNG KẾT LUẬN Thiết kế mã hóa / giải mã DES tảng công nghệ FPGA Trang 39/46 5.1 Kết luận Tơi trình bày hồn tất q trình thực đồ án Sau hồn thành xong đồ án, tơi hiểu thêm giải thuật mã hóa giải mã DES, ngôn ngữ Verilog, phần mềm Quartus Matlab Đây đề tài có ứng dụng thiết việc bảo mật thông tin liệu 5.2 Nhận xét Kết đạt thực thuật toán phụ thuộc vào việc sử dụng Key, thay đổi khóa dẫn đến việc thay đổi kết đạt thuật toán 5.3 Đánh giá thiết kế 5.3.1 Tài nguyên sử dụng  Family: Cyclone IV E  Device: EP4CE15F17C8  Total logic elements: 8,504/15,408 (55 %) • Total combinational functions: 8,042/15,408 (52 %) • Dedicated logic registers: 2,256/15,408 (15 %)  Total pins: 3/166 (2 %) 5.3.2 Cơng suất ước tính Tổng cơng suất nhiệt tiêu tán: 79.24 mW 5.4 Hướng phát triển  Mã AES phát triển từ DES, mã DES 64 bits đầu vào ra, mã AES nâng cấp lớn thành 128 bits đầu vào  Sử dụng giao thức truyền Ethernet  Cải thiện tốc độ xử lý hiệu suất 5.5 Ứng dụng Ứng dụng văn giao dịch ngân hàng sử dụng tiêu chuẩn hiệp hội ngân hàng Mỹ phát triển DES sử dụng để mã hóa số nhận dạng cá nhân (Pins) văn tài khoản máy thu ngân tự động thực (ATMs)… 5.6 Ưu nhược điểm Thiết kế mã hóa / giải mã DES tảng công nghệ FPGA Trang 40/46  Ưu điểm  •Thuật tốn định nghĩa đầy đủ, dễ hiểu •Mạch hoạt động xác tuyệt đối •Tiết kiệm điện •Tốc độ mã hóa liệu nhanh chóng Nhược điểm •Kích cỡ khóa nhỏ nên chưa đủ an tồn Thiết kế mã hóa / giải mã DES tảng công nghệ FPGA Trang 41/46 TÀI LIỆU THAM KHẢO Tiếng Anh: Man [1] Young Rhee (2003), “Internet Cryptographic principles, algorithms and protocols Online: [2] google.com [3] usconverters.com [4] codientu.org [5] vimach.net Thiết kế mã hóa / giải mã DES tảng công nghệ FPGA Security”, Trang 42/46 PHỤ LỤC Code: module top ( input CLOCK_50, input UART_RXD, //input start, de_start, output UART_TXD ); //baud for tx wire tx_busy; wire tx_baud_stick; reg [0:7]tx_data; reg tx_start; baud_gen u1 ( clk(CLOCK_50), //50mhz busy(tx_busy), baud_stick(tx_baud_stick) ); tx_module u2( clk(CLOCK_50), bps_stick(tx_baud_stick), tx_start(tx_start), busy(tx_busy), tx(UART_TXD), //to the circuit data(tx_data) ); wire rx_busy; wire rx_baud_stick; wire [0:127]rx_data; baud_gen v1 ( clk(CLOCK_50), //50mhz busy(rx_busy), baud_stick(rx_baud_stick) ); reg [7:0] cnt; reg [7:0] cnt1; rx_module v2 ( clk(CLOCK_50), rx(UART_RXD), bps_stick(rx_baud_stick), Thiết kế mã hóa / giải mã DES tảng công nghệ FPGA Trang 43/46 busy(rx_busy), cnt(cnt), cnt1(cnt1), data(rx_data) ); reg PLAY_STOP; reg RST; wire [0:63] CIPHER_TEXT; DES_TOP des( CLK(CLOCK_50), RST(0), PLAY_STOP(0), PLAIN_TEXT(data), KEY(key), CIPHER_TEXT(CIPHER_TEXT) ); reg DE_PLAY_STOP; reg DE_RST; wire [0:63] PLAIN_TEXT; DE_DES_TOP de_des( CLK(CLOCK_50), RST(0), PLAY_STOP(0), CIPHER_TEXT(data), KEY(key), PLAIN_TEXT(PLAIN_TEXT) ); //sending data reg [0:25]btn_flag; reg [0:3] temp; reg [0:3] temp1; reg flag; reg flag1; wire [0:63] data; wire [0:63] key; assign data = {rx_data[56:63], rx_data[48:55], rx_data[40:47], rx_data[32:39], rx_data[24:31], rx_data[16:23], rx_data[8:15], rx_data[0:7]}; assign key = {rx_data[120:127], rx_data[112:119], rx_data[104:111], rx_data[96:103], rx_data[88:95], rx_data[80:87], rx_data[72:79], rx_data[64:71]}; always @ (posedge CLOCK_50) begin Thiết kế mã hóa / giải mã DES tảng công nghệ FPGA Trang 44/46 tx_start

Ngày đăng: 27/02/2018, 10:42

Từ khóa liên quan

Mục lục

  • DANH MỤC CÁC HÌNH VẼ

  • DANH MỤC CÁC BẢNG BIỂU

  • DANH MỤC CÁC TỪ VIẾT TẮT

  • CHƯƠNG 1. GIỚI THIỆU CHUNG

    • 1.1 Giới thiệu chung

    • 1.2 Lịch sử

    • 1.3 Hướng nghiên cứu

    • CHƯƠNG 2. TỔNG QUAN VỀ FPGA VÀ NGÔN NGỮ VERILOG

      • 2.1 Tổng quan về FPGA

        • 2.1.1 Khái niệm về FPGA

        • 2.1.2 Lịch sử ra đời của FPGA

        • 2.1.3 Ứng dụng

        • 2.1.4 Cấu trúc một FPGA

        • 2.1.5 Ngôn ngữ mô tả phần cứng

        • 2.2 Ngôn ngữ Verilog

          • 2.2.1 Khái niệm

          • 2.2.2 Cấu trúc chương trình dùng ngôn ngữ Verilog

          • CHƯƠNG 1. THIẾT KẾ HỆ THỐNG

            • 2.3 Sơ đồ khối hệ thống

              • 2.3.1 Lưu đồ giải thuật truyền TX

              • 2.3.2 Lưu đồ giải thuật nhận RX

              • 2.4 Mã hoá DES

                • 2.4.1 Các bảng của thuật toán tìm Key

                • 2.4.2 Các bảng của thuật toán mã hóa DES

                • 2.4.3 Sơ đồ khối

                • 2.4.4 Sơ đồ nguyên lý tìm Key input

                • 2.4.5 Sơ đồ nguyên lý mã hoá DES

Tài liệu cùng người dùng

Tài liệu liên quan