1. Trang chủ
  2. » Luận Văn - Báo Cáo

Ứng dụng FPGA trong bảo mật thông tin

74 670 2

Đ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

Thông tin cơ bản

Định dạng
Số trang 74
Dung lượng 3,45 MB

Nội dung

MỤC LỤC Trang Trang phụ bìa…………………………………………………………………… Mục lục…………………………………………………………………………… 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Ề FPGA VÀ VHDL 1.1 Khái niện FPGA .2 1.2 Lịch sử đời FPGA 1.3 Ý nghĩa vai trò FPGA 1.4 Kiến trúc FPGA 1.4.1 Kiến trúc chíp FPGA .4 1.4.2 Đặc điểm hoạt động FPGA .7 1.5 Qúa trình thiết kế FPGA 10 1.5.1 Thiết kế sử dụng sơ đồ 11 1.5.2 Sử dụng ngôn ngữ HDL .12 1.6 Virtex-4 LC System Board 14 1.6.1 Giới thiệu chung 14 1.6.2 Các chức bo phát triển 16 Chương CHUẨN MÃ HÓA NÂNG CAO AES 2.1 Lịch sử chuẩn mã hóa AES 21 2.2 Cơ sở toán học xây dựng AES 22 2.2.1 Phép cộng .22 2.2.2 Phép nhân………………………………………………………………….23 2.3 Các phép biến đổi 26 2.3.1 Phép byte – SubBytes( ) 28 2.3.2 Phép dịch hàng – ShiftRows( ) 29 2.3.3 Phép trộn cột – MixColumns( ) 30 2.3.4 Cộng với khóa vòng - AddRoundKey( ) .31 2.3.5 InverseSubBytes( ) .32 2.3.6 InverseMixColumns( ) 33 2.3.7 InverseShiftRows( ) .34 2.4 Quy trình sinh khóa ( Key Expansion) .35 2.4.1 SubWord ( ) 36 2.4.2 RotWord ( ) 36 2.4.3 Xor với RCon[i] 36 2.5 Mã hóa 37 2.6 Giải mã ( Inverse Cipher ) 38 Chương MÃ HÓA AES TRÊN NỀN FPGA 3.1 Sơ đồ tổng quan hệ thống AES 41 3.1.1 Mô tả lưu đồ tổng quát mã hóa giải mã AES .41 3.1.2 Sơ đồ thuật toán khối Data mã hóa 42 3.1.3 Sơ đồ thuật toán khối KeyExpansion 43 3.1.4 Sơ đồ thuật toán khối CPU 44 3.1.5 Sơ đồ thuật toán khối Data giải mã AES 44 3.2 Thiết kế chi tiết khối chức mã hóa 46 3.2.1 Khối AddRoundKey 46 3.2.2 Khối SubByte .47 3.2.3 Khối ShiftRow .48 3.2.4 Khối MixColumn 50 3.4 Thiết kế khối chức giải mã 52 3.4.1 Nhân với 09h 53 3.4.2 Phép nhân với 0Dh .53 3.4.3 Phép nhân với 0Eh .54 3.4 Thiết kế chi tiết cho khối KeyExpansion 55 3.4.1 Khối RotWord 55 3.4.2 Khối SubWord .56 3.4.3 Khối Rcon 56 3.4.4 Khối KeyStorage 57 3.4.5 Khối DemuxKey 59 3.5 Khối diều khiển giải mã giao tiếp với máy tính 59 3.5.1 Khối CPU - điều khiển giải mã 59 3.5.2 Khối giao tiếp với máy tính 62 KẾT LUẬN 63 TÀI LIỆU THAM KHẢO .64 FPGA ASIC CPLD AES LUT SRAM HDL VHDL VHSIC PLD GPIO CAD IEEE NIST GF DES DPA CÁC TỪ VIẾT TẮT TRONG ĐỒ ÁN Field Programmable Gates Array Application Specific Integrated Circuit Complex Programmable Logic Device Advanced Encryption Standard Look Up Table Bảng tra Static Random Memory Access Ram tĩnh Hardware Description Language Ngôn ngữ mô tả phần cứng VHSIC Hardware Description Language Very High Speed Integrated Circuits Các mạch tích hợp tốc độ cao Programmable Logic Device General Purpose IO Các chân vào thông thường Computer Aided Design Hỗ trợ thiết kế máy tính Institute of Electrical and Electronic Engineers Viện Kĩ thuật điện điện tử National Institute of Standard and Technology Viện công tiêu chuẩn công nghệ Hoa Kỳ Galois Field Trường Galoa Data Encryption Standard Tiêu chuẩn mã hóa liệu Difference Power Attack DANH MỤC CÁC BẢNG BIỂU Trang Bảng 1.1 Sơ đồ chân LED 18 Bảng 1.2 Sơ đồ phím bấm 18 Bảng 1.3 Sơ đồ công tắc 18 Bảng 1.4 Giao tiếp với RS232 .19 Bảng 1.5 Màn hình LCD 20 Bảng 2.1 Các chuẩn AES .27 Bảng 2.2 S-box .29 Bảng 2.2 Bảng Inverse S-Box 33 DANH MỤC CÁC HÌNH VẼ Trang Hình 1.1 Kiến trúc FPGA Hình 1.2 Logic block Hình 1.3 Vị trí chân Logic block Hình 1.4 Liên kết Logic block với kênh định tuyến Hình 1.5 Kết nối khối logic Hình 1.6 Kết nỗi khối logic với chân I/O FPGA Hình 1.7 Các đường kết nối chuyên dụng tốc dộ cao .10 Hình 1.8 FPGA kết hợp với RAM 11 Hình 1.9 RAM hai cổng 11 Hình 1.10 Quá trình thiết kế PLD 14 Hình 1.11 Thiết kế nhân sử dụng Sơ đồ ngôn ngữ VHDL 15 Hình 1.12 Bo mạch Virtex-4 LC .18 Hình 1.13 Sơ đồ khối chức Virtex-4 LC 19 Hình 1.14 Cổng cấu hình nạp chương trình cho Virtex-4 19 Hình 1.15 Giao tiếp Virtex-4 cổng RS232 21 Hình 2.1 Trạng thái đầu vào, đầu trung gian 28 Hình 2.2 SubBytes 31 Hình 2.3 ShifRows 32 Hình 2.4 MixColumn 33 Hình 2.5 AddRoundKey 34 Hình 2.6 ShiftRow 36 Hình 2.7 SubWord 38 Hình 2.8 RotWord 38 Hình 3.1 Sơ đồ khối tổng quát hệ thống AES 43 Hình 3.2 Sơ đồ thuật toán Khối data mã hóa 44 Hình 3.3 Sơ đồ thuật toán Khối KeyExpansion 48 Hình 3.4 Sơ đồ thuật toán khối CPU 50 Hình 3.5 Sơ đồ thuật toán khối giải mã - Dạng 51 Hình 3.6 Khối AddRoundKey 51 Hình 3.7 Sơ đồ thuật toán khối giải mã - Dạng 52 Hình 3.8 Khối SubByte 53 Hình 3.9 Khối ShiftRow 54 Hình 3.10 Khối MixColumn 55 Hình 3.11 Khối Xtime .56 Hình 3.12 Phép biến đổi theo dòng 57 Hình 3.13 Khối SubMixColumn .58 Hình 3.14 Khối nhân 09h 58 Hình 3.15 Khối nhân 0Bh .58 Hình 3.16 Khối nhân 0Dh .59 Hình 3.17 Phép nhân 0Eh .59 Hình 3.18 Khối InverseMixColumn .60 Hình 3.19 Sơ đồ khối KeyExPansion .60 Hình 3.20 Khối RotWord 61 Hình 3.21 Khối SubWord .61 Hình 3.22 Khối Rcon 62 Hình 3.23 Khối KeyStorage 62 Hình 3.24 Khối DemuxKey 64 Hình 3.25 Khối CPU .64 Hình 3.26 Giản đồ thời gian điều khiển vòng key 65 Hình 3.27 Giản đồ thời gian điều khiển vòng data 65 Hình 3.28 Sơ đồ khối giao tiếp với máy tính 67 LỜI NÓI ĐẦU Thông tin di động ngày trở thành ngành công nghiệp viễn thông phát triển nhanh mang lại nhiều lợi nhuận cho nhiều nhà khai thác Sự phát triển thị trường viễn thông di động thúc đẩy mạnh mẽ việc nghiên cứu triển khai hệ thống thông tin di động tương lai Các dịch vụ mạng thông tin di động ngày phong phú hơn, dịch vụ thoại truyền thống, hệ thống thông tin di động đại cung cấp thêm nhiều loại hình dịch vụ số liệu khác với tốc độ cao Bên cạnh đó, vấn đề lớn hệ thống truyền thông vô tuyến di động đảm bảo tính bảo mật thông tin người sử dụng Kiến trúc mạng thông tin di động, thế, thành phần nhằm thực truyền thông tin người dùng yêu cầu thêm thành phần khác để bảo mật thông tin Do đó, có nhiều thuật toán bảo mật đời, thay nhằm đảm bảo tốt tính an toàn thông tin, đề tài thú vị thu hút nhiều quan tâm nhà nghiên cứu Đã có nhiều đề tài nghiên cứu khoa học đưa vấn đề bảo mật thông tin, qua tìm hiểu em biết 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 đề tài đánh giá cao bảo mật thông tin Chính mục đích đồ án em 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 công nghệ ngày phát triển khắp lĩnh vực công nghệ ưu điểm trội Em xin chân thành cảm ơn thầy giáo ThS.Nguyễn Anh Quỳnh giúp đỡ em tận tình trình thực đồ án Em xin chân thành cảm ơn Thầy tổ Điều Khiển Tự Động nói riêng Thầy Cô môn khoa Điện Tử Viễn Thông trường Đại Học Vinh giúp đỡ em suốt trình học tập làm đồ án Tốt Nghiệp Vinh, tháng 12 năm 2011 Sinh viên thực : Hoàng Song Hào CHƯƠNG 1: TỔNG QUAN VỀ FPGA VÀ VHDL 1.1 Khái niện FPGA FPGA thiết bị bán dẫn bao gồm thành phần logic lập trình đường nối chúng Các thành phần lập trình để tạo cổng logic AND, OR, XOR, NOT hàm phức hợp giải mã hàm toán học Trong hầu hết FPGA, thành phần logic lập trình ( gọi khối logic ) bao gồm phần tử nhớ flip-flop đơn giản khối nhớ hoàn chỉnh Hệ thống đường nối cho phép khối logic chip FPGA kết nối với mong muốn người thiết kê hệ thống FPGA nhìn chung có tốc độ xử lí chậm so với ASIC, đáp ứng thiết kế phức tạp tiêu tốn nhiều lượng Tuy nhiên có ưu điểm trội thời gian nghiên cứu ngắn, có khả lập trình lại chip nên sửa chữa lỗi dễ dàng, nhanh chóng đưa sản phẩm thị trường Để tiết kiệm thời gian chi phí sản xuất, hạn giá thành sản phẩm thiết kế phát triển chíp FPGA thông thường, sau chuyển sang phiên cố định, thường ASIC 1.2 Lịch sử đời FPGA Các chip FPGA bắt nguồn từ chip gọi CPLD (Complex Programmable Logic Device) vào năm 1980 Ross Freeman Xilinx hai nhà đồng phát minh FPGA vào năm 1984 CPLD FPGA bao gồm số phần tử logic Các chip CPLD có mật độ tích hợp khoảng vài ngàn đến vài chục ngàn cổng logic Các chip FPGA có mật độ tích hợp cao hơn, từ vài chục ngàn đến vài triệu cổng logic Điểm khác CPLD FPGA cấu trúc chúng.Cấu trúc chip CPLD có phần hạn chế mềm dẻo song lại dễ dàng tính toán độ trễ thời gian có tỉ lệ logic block số kết nối cao Ngược lại kiến trúc FPGA kết nối chiếm đa số Điều làm cho linh hoạt nhiều so với CPLD thiết kế phức tạp thường sử dụng FPGA Một điểm khác biệt đáng ý hầu hết chức embedded mức cao nhớ embedded sử dụng FPGA (ví dụ cộng nhân ) Điều nhiều chip FPGA có hỗ trợ việc cấu hình lại toàn phần phần hệ thống giống hệ điều hành vậy, chí vài dòng chip cho phép thay đổi thiết kế hệ thống hoạt động 1.3 Ý nghĩa vai trò FPGA Ứng dụng FPGA bao gồm Các hệ thống xử lí tín hiệu số DSP, hệ thống Radio mềm, công nghệ hàng không vũ trụ hệ thống quốc phòng Ngoài sử dụng làm mẫu ASIC, xử lí ảnh Y tế, nhận dạng giọng nói, mã hóa, công nghệ sinh học, mô phonge phần cứng máy tính nhiều lĩnh vực khác phát triển ứng dụng FPGA FPGA khởi đầu đối thủ cạnh tranh CPLD lĩnh vực chip khả trình Nhưng với khả tốc độ phát triển nhanh chóng bắt đầu đảm nhiệm hệ thống ngày lớn phức tạp cao thị trường mà chip SOC chiếm giữ Có thể dễ dàng bắt gặp ứng dụng FPGA lĩnh vực hay thuật toán mà yêu cầu tính toán song song xử lí phức tạp thuật toán mã hóa chẳng hạn FPGA ngày sử dụng nhiều ứng dụng đòi hỏi tốc độ tính toán cao nơi mà lõi tính toán FFT hay Convolution thực FPGA thay cho vi xử lí Việc sử dụng FPGA cho nhiệm vụ tính toán biết đến Reconfigurable Computing Cấu trúc song song vốn có logic block FPGA cho phép lưu lượng tính toán lớn chí xung nhịp 500 Mhz Ví dụ Thế hệ FPGA thực thi khoảng 100 đơn vị floating point có độ xác đơn, tất chúng đưa kết sau xung nhịp đồng hồ Sự linh hoạt FPGA cho phép tốc độ tính toán chí nhanh hi sinh độ xác giảm số chữ số sau dấu thập phân để tăng đơn vị tính toán song song Với FPGA rút ngắn thời gian thời gian thực ASIC mà giảm chi phí tối đa trình kiểm ta thiết kế , kiểm tra phần mền mô mà chạy chip thực môi trường có thẻ nói gần với môi trường ASIC thực Khả tái cấu hình cho phép sửa sửa lại nhiều thiết kế đạt yêu cầu Tuy nhiên việc sử dụng chip FPGA tính toán tốc độ cao bị giới hạn độ phức tạp việc thiết kế FPGA so với phần mềm thông thường thời gian biên dịch hoàn thành công cụ thiết kế dài Phải 4-8 chờ đợi chí cho thay đổi nhỏ thiết kế 1.4 Kiến trúc FPGA 1.4.1 Kiến trúc chíp FPGA Kiến trúc bao gồm mảng khối logic kênh định tuyến Mỗi hàng hay cột đệm đày đệm I/O Tất kênh định tuyến có chiều rộng (cùng số dây) Hai khối Demux_4 Mux_4 thực tương tự khối Demux Mux khối ShiftRow Các khối SubMixColumn biến đổi byte cột tương ứng 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 II Hình 3.11 Khối Xtime Code VHDL: process (d_in) begin if d_in(7)='0' then d_out[...]... chuyển mạch được sử dụng trong kiến trúc này là một tôpô của hộp chuyển mạch cơ sở bán dẫn hoặc vùng Trong tôpô hộp chuyển mạch này, một dây trong tuyến số 1 chỉ kết nối tới các dây trong tuyến số 1 trong các đoạn kênh gần đó, các dây trong tuyến số 2 chỉ kết nối tới các dây trong tuyến số 2 trong các đoạn kênh gần đó, Hình 1.7 mô tả các kết nối trong hộp chuyển mạch Các chân của FPGA được chia làm... loại Chân chuyên dụng và chân I/O thông thường Khoảng 20% đến 30 % số chân của FPGA là chân chuyên dụng Các chân chuyên dụng của FPGA chia làm ba loại nhỏ như sau : • Các chân nguồn ; • Các chân cấu hình, dùng để download chương trình xuống chip FPGA; • Các đầu vào chuyên dụng hoặc các chân xung clock Các chân này để điều khiển các khối chức năng trong FPGA; Còn lại là các chân I/O thông thường Người... đường kết nối chuyên dụng tốc dộ cao Các công nghệ PLD cũ không có các đường kết nối chuyên dụng tốc độ cao nên chúng rất hạn chế trong các ứng dụng yêu cầu tính toán số học Các FPGA loại mới thường có thêm các khối SRAM chuyên dụng đặt ở giữa các khối logic và được điều khiển bởi chính các phần tử logic đó Các khối SRAM này sẽ làm tăng phạm vi ứng dụng và khả năng linh hoạt của FPGA Có rất nhiều tham... này được miễn phí dưới các giấy phép như GPL, BSD, … Trong một chu trình thiết kế thông thường, các nhà phát triển ứng dụng FPGA sẽ mô phỏng thiết kế này trong một loạt các giai đoạn trong suốt cả quá trình thiết kế Việc đầu tiên là viết các chương trình cho ứng dụng bằng ngôn ngữ VHDL hoặc là Verilog Sau đó người ta tạo ra các file test bench tương ứng với các chương trình nguồn đó Việc mô phỏng các... kế và kiểm tra các ứng dụng trên họ FPGA Virtex-4 LX của hãng Xilinx Kít phát triển cho phép nhà thiết kế thực thi các bộ xử lí nhúng dựa trên các ứng dụng với độ linh hoạt rất cao.Virtex-4 FPGA đi kèm với lõi bộ vử lí mềm Xilinx MicroBlaze cho phép đội phát triển phầm mềm dễ dàng truy cập vào nền phần cứng trước khi làm việc với sản phẩm hoàn thiện.Bo mạch Virtex-4 LC sử dụng chip FPGA XC4VLX25-10FS363C...Hình 1.1 Kiến trúc FPGA Mỗi mạch phải được vẽ trong một FPGA hình vuông nhỏ nhất có thể thích ứng với nó Ví dụ một mạch bao gồm 14 khối logic và 10 đệm I/O sẽ được vẽ trong một FPGA gồm một mảng 4x4 của các khối logic 6 Khối logic chuẩn của FPGA gồm một bảng tìm kiếm 4 đầu vào (LUT) và một flip-flop, như được biểu diễn ở hình 1.2... thành các khối RAM chuyên dụng (“blockram”) Hãng Xilinx có rất nhiều kiểu bố trí RAM khác nhau vì các FPGA của hãng này cho phép sử dụng các khối logic như một vi RAM (“distributed RAM”) Hãng Altera lại bố trí RAM thành các khối có kích thước khác nhau xung quanh các khối logic 1.5 Qúa trình thiết kế FPGA Để định nghĩa một hành động cho FPGA người dùng sử dụng ngôn ngữ mô tả phần cứng ( Hardware Description... toán mã hóa có khả năng bảo vệ các thông tin nhạy cảm của Liên bang trong vòng một thế kỉ tới.Thuật toán này dự kiến được chính phủ Mỹ áp dụng trên cơ sở tự nguyện và chỉ áp dụng nội bộ Tháng một năm 1997, NIST tuyên bố bắt đầu các nỗ lực phát triển AES Và tên chính thức của thuật toán này được công bố này 12 tháng 9 năm 1997 Thuật toán này phải được thực thi trên mã hóa khóa đối xứng như là một mã hóa... logic theo bất kì cấu hình nào mà ứng dụng của ta yêu cầu -Thêm các nhãn cho các bộ đệm của đầu ra và đầu vào Bước này sẽ định nghĩa các chân I/O của thiết bị -Tạo Netlist Hình 1.10 Quá trình thiết kế PLD Ví dụ ở hình trên là rất đơn giản tuy nhiên trong thực tế các mạch ứng dụng đòi hỏi số lượng cổng logic rất lớn, có thể lên tới hàng triệu cổng Một trang bản thảo thông thường có thể chứa tối đa là... 1.5 Kết nối các khối logic Các đường kết nối cũng có thể kéo dài tới các chân của FPGA để nối với đầu vào và đầu ra của thiết bị Hình 1.6 Kết nỗi các khối logic với các chân I/O của FPGA 9 Ngoài các đường kết nối thông thường các FPGA còn có các đường chuyên dụng kết nối giữa các khối logic ở cạnh nhau Đường kết nối chuyên dụng tốc độ cao phổ biến nhất là các “carry chain” Các carry chain cho phép tạo ... truyền thông vô tuyến di động đảm bảo tính bảo mật thông tin người sử dụng Kiến trúc mạng thông tin di động, thế, thành phần nhằm thực truyền thông tin người dùng yêu cầu thêm thành phần khác để bảo. .. bảo mật thông tin, qua tìm hiểu em biết 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 đề tài đánh giá cao bảo mật thông tin Chính mục đích đồ án em sử dụng. .. tin người dùng yêu cầu thêm thành phần khác để bảo mật thông tin Do đó, có nhiều thuật toán bảo mật đời, thay nhằm đảm bảo tốt tính an toàn thông tin, đề tài thú vị thu hút nhiều quan tâm nhà nghiên

Ngày đăng: 27/10/2015, 19:11

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w