Tải bản đầy đủ (.pdf) (27 trang)

Thiết kế hệ thống mã khối bằng công nghệ FPGA

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (574.67 KB, 27 trang )

ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP
........................................

LỤC VŨ KHANH

THIẾT KẾ HỆ THỐNG MÃ KHỐI
BẰNG CÔNG NGHỆ FPGA

LUẬN VĂN THẠC SĨ KỸ THUẬT ĐIỆN TỬ

THÁI NGUYÊN 2010
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP
........................................

LUẬN VĂN THẠC SĨ KỸ THUẬT ĐIỆN TỬ

Tên đề tài:

THIẾT KẾ HỆ THỐNG MÃ KHỐI
BẰNG CÔNG NGHỆ FPGA

Ngành: KỸ THUẬT ĐIỆN TỬ
Mã số: 60 52 70
Học viên: Lục Vũ Khanh


Người hướng dẫn Khoa học: PGS.TS. Đỗ Xuân Tiến

THÁI NGUYÊN 2010
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




1

MỤC LỤC
Trang
Trang phụ bìa
Lời cam đoan
Lời cảm ơn
MỤC LỤC .............................................................................................................. 1
DANH MỤC CÁC TỪ VIẾT TẮT ......................................................................... 5
DANH MỤC CÁC BẢNG ...................................................................................... 7
DANH MỤC CÁC HÌNH VẼ ................................................................................. 8
MỞ ĐẦU .............................................................................................................. 10
CHƢƠNG 1 HỆ TRUYỀN TIN MẬT VÀ CƠ SỞ LÝ THUYẾT MÃ KHỐI ....... 13
1.1. TỔNG QUAN VỀ HỆ TRUYỀN TIN MẬT. ................................................. 13
1.1.1. Mô hì nh hệ thống truyền tin mật. ................................................................. 13
1.1.2. Các phƣơng pháp mã mật cơ bản. ................................................................ 15
1.1.2.2. Phƣơng pháp thay thế. .............................................................................. 15
1.1.3. Mô hì nh hệ mật. ........................................................................................... 16
1.1.3.1. Hệ mật đối xƣ́ng (Hệ mật khoá bí mật). .................................................... 16
1.1.3.2. Hệ mật không đối xƣ́ng (Hệ mật khoá công khai ). .................................... 17
1.1.4. Phân loại hệ mã............................................................................................ 18
1.1.5. Đánh giá độ mật của hệ thống truyền tin mật. .............................................. 20

1.2. CƠ SỞ LÝ THUYẾT VỀ MÃ KHỐI. ............................................................ 21
1.2.1. Khái niệm về mã khối. ................................................................................. 21
1.2.2. Nguyên lý thiết kế mã khối. ......................................................................... 22
1.2.2.1. Nguyên lý thiết kế chung về độ an toàn..................................................... 22
1.2.2.2. Nguyên lý thiết kế cho ƣ́ng dụng.............................................................. 23
1.2.3. Các tham số của mã khối. ............................................................................ 23
1.2.3.1. Độ dài khối m. .......................................................................................... 23
1.2.3.2. Độ dài khóa k và cỡ khóa đúng k t. ............................................................ 24
1.2.4. Các cấu trúc mã khối cơ bản. ...................................................................... 24
1.2.4.1. Cấu trúc mã Feistel. .................................................................................. 24
1.2.4.2. Cấu trúc cộng - nhân. ................................................................................ 26
1.2.5. Các mã lặp. .................................................................................................. 27
1.2.5.1. Mã lặp và hàm vòng.................................................................................. 27
1.2.6. Độ an toàn của các hệ mã khối. .................................................................... 28
1.3. GIỚI THIỆU MỘT SỐ KỸ THUẬT MÃ KHỐI ............................................ 29
1.3.1. Chuẩn mã dƣ̃ liệu DES ................................................................................ 29
1.3.2. Chuẩn mã dƣ̃ liệu Xô-Viết. .......................................................................... 30
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




2

1.3.3. Thuật toán mã hoá dƣ̃ liệu IDEA. ................................................................ 32
1.3.3.1. Quá trình mã hoá của IDEA. ..................................................................... 32
1.3.3.3. Quá trình giải mã của IDEA. ..................................................................... 35
1.3.4. Các chế độ ứng dụng của mã khối. ............................................................... 35
1.3.5. Một số giải pháp kỹ thuật thiết kế mã khối. .................................................. 38
1.3.5.1. Thiết kế mã khối bằng chƣơng trình phần mềm. ....................................... 38

1.3.5.2. Thiết kế mã khối bằng công cụ phần cứng. ............................................... 39
1.3.5.3. Lựa chọn giải pháp thiết kế module mã khối ở Việt Nam. ......................... 40
1.4. Kết luận chƣơng. ............................................................................................ 40
CHƢƠNG 2: CÔNG NGHỆ FPGA ....................................................................... 42
2.1. TỔNG QUAN VỀ CÔNG NGHỆ FPGA. ....................................................... 42
2.1.1. Giới thiệu về công nghệ FPGA. ................................................................... 42
2.1.1.1. Sự phát triển của các thiết bị lập trình đƣợc. ............................................. 42
2.1.1.2. Cấu trúc cơ bản của FPGA. ..................................................................... 45
2.1.1.3. Phân loại FPGA. ...................................................................................... 49
2.1.1.4. Ứng dụng của FPGA................................................................................. 52
2.1.2. Quá trình thiết kế cơ bản trên FPGA. ........................................................... 52
2.1.2.1. Giới thiệu về quá trình thiết kế. ................................................................. 52
2.1.2.2. Tối ƣu lô gic. ............................................................................................ 54
2.1.2.3. Ánh xạ công nghệ. ................................................................................... 54
2.1.2.4. Sắp xếp các phần tử (Placement). .............................................................. 55
2.1.2.5. Định tuyến trên FPGA (rounting).............................................................. 56
2.1.2.6. Tải nạp chƣơng trình. ................................................................................ 57
2.1.3. Giới thiệu về FPGA của hãng ALTERA. ..................................................... 57
2.1.3.1. Các loại FPGA trên thị trƣờng. ................................................................. 57
2.1.3.2. Đặc điểm thiết bị FPGA của hãng Altera. ................................................ 58
2.1.3.3. Các họ FPGA của hãng Altera. ................................................................. 59
2.1.4. Các công cụ thiết kế. .................................................................................... 60
2.1.4.1. Giới thiệu về EDA. ................................................................................... 60
2.1.4.2. Giới thiệu công cụ thiết kế Quartus II. ...................................................... 61
2.1.4.3. Giới thiệu công cụ thiết kế MAX + PLUS II. ............................................ 63
2.1.5. Các ngôn ngữ mô tả phần cứng. ................................................................... 65
2.2. NGÔN NGỮ MÔ TẢ PHẦN CỨNG VHDL. ................................................. 66
2.2.1. Giới thiệu chung về ngôn ngữ VHDL. ......................................................... 66
2.2.1.1. Mô tả cấu trúc. ......................................................................................... 66
2.2.1.2. Mô tả hoạt động. ....................................................................................... 67


Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




3

2.2.1.3. Mô hình thời gian theo các sự kiện rời rạc. ............................................... 68
2.2.2. Mô hình tổ chức........................................................................................... 69
2.2.2.1. Thƣ viện thiết kế. ...................................................................................... 69
2.2.2.2. Các cấu hình. ............................................................................................ 70
2.3 Kết luận chƣơng. ............................................................................................. 70
CHƢƠNG 3: THIẾT KẾ HỆ THỐNG MÃ KHỐI................................................ 71
3.1. CẤU TRÚC CỦA MODULE MÃ KHỐI. .................................................... 71
3.1.1. Cấu trúc chung. ........................................................................................... 71
3.1.2. Một số yêu cầu đối với module mã khối...................................................... 71
3.2. LỰA CHỌN THUẬT TOÁN CHO MÔ PHỎNG THIẾT KẾ. ....................... 72
3.2.1. Lựa chọn thuật toán. .................................................................................... 72
3.2.2. Mô tả thuật toán DES. .................................................................................. 72
3.2.2.1. Hàm F trong thuật toán DES. .................................................................... 73
3.2.2.2. Lƣợc đồ tạo khoá mã dịch. ........................................................................ 78
3.3. PHƢƠNG PHÁP THIẾT KẾ MODULE DES TRÊN FPGA. ........................ 80
3.3.1. Quy trình và công cụ thiết kế. ...................................................................... 80
3.3.1.1. Quy trình thiết kế. ..................................................................................... 80
3.3.1.2. Công cụ thiết kế. ....................................................................................... 81
3.3.2. Sơ đồ khối chức năng của module mã khối DES trên FPGA. ....................... 81
3.3.2.1. Sơ đồ khối tổng quát. ................................................................................ 81
3.3.2.3. Sơ đồ khối chức năng của module DES. .................................................. 83
3.3.3. Mô tả hoạt động của các khối trong module DES bằng VHDL. .................. 85

3.3.3.1. Khối các phép hoán vị............................................................................... 86
3.3.3.2. Mô tả khối DES16. ................................................................................... 87
3.3.3.3. Khối deskey (tính toán khoá). ................................................................... 92
3.3.3.4. Khối Control (điều khiển). ........................................................................ 93
3.3.3.5. Khối Converter (lấy dữ liệu vào/ra)........................................................... 94
3.3.3.6. Tổng hợp các khối chức năng của module DES. ....................................... 95
3.3.3.7. Kiểm tra thiết kế. ...................................................................................... 96
3.3.4. Phần cứng mô phỏng module DES............................................................... 96
3.3.4.1. Khối xử lý chính (mã hoá/giải mã). .......................................................... 97
3.3.4.2. Khối cấu hình cho FPGA. ......................................................................... 97
3.3.4.3. Các phần mạch khác. ............................................................................... 99
3.3.5. Kiểm tra sự hoạt động của DES trong module mã khối. ............................... 99
3.4. KẾT QUẢ THIẾT KẾ MODULE MÃ KHỐI DES. ..................................... 101
3.4.1. Kết quả thiết kế. ......................................................................................... 101

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




4

3.4.1.1. Sơ đồ phần cứng của module. ................................................................. 101
3.4.1.2. Kiểm tra kết quả thiết kế. ........................................................................ 104
3.4.2. Đánh giá kết quả thiết kế module mã khối. ................................................ 105
3.5 Kết luận chƣơng. ........................................................................................... 106
3.6 Kết luận chung............................................................................................... 106
TÀI LIỆU THAM KHẢO ................................................................................... 108
PHỤ LỤC 1 ......................................................................................................... 110
PHỤ LỤC 2: CHƢƠNG TRÌNH MÔ TẢ DES BẰNG VHDL ............................ 113


Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




5

DANH MỤC CÁC TỪ VIẾT TẮT
Viết
tắt
APEX
ASIC

Tiếng Anh
Advanced ProgrammablE logic
matriX
Application-Specific Integrated
Circuit

CAE

Computer-Aided Electronics

CBC

Cipher Block Channing mode
Complex Programmable Logic
Devices


CPLD
CDL

Computer Design Language

CFB

ECB
DES
DSP
EDA

Cipher Freed Back
Component & Supplier
Management
Electronic Code Book
Data Encryption Standard
Digital Signal Processing
Electronic Design Automation

FPGA

Field-Programmable Gate Array

FLEX
GOST

Flexible Logic Element MatriX
Gosudarstvennyy Standart
International Data Encryption

Algorithm
Integrated Circuit
Institude of Electrical and
Electronic Engineers
Logic Array Block
Look-Up Table
Logic Block
Logic Cell

CSM

IDEA
IC
IEEE
LAB
LUT
LB
LC

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

Tiếng VIệt
Ma trận logic lập trình đƣợc
Vi mạch tích hợp chuyên dụng
Công cụ thiết kế mạch điện tử có
hỗ trợ máy tính
Phƣơng thƣ́c móc xí ch khối mã
Thiết bị lôgíc lập trình phức hợp
Ngôn ngữ mô tả dòng dữ liệu phát
triển trong qúa trình đào tạo

Chế độ phản hồi mã
Hệ thống quản trị nhà cung cấp và
thành phần
Chế độ sách mã điện tử
Chuẩn mã hoá dữ liệu
Xử lý tín hiệu số
Thiết kế điện tử tự động hoá
Vi mạch dùng cấu trúc mảng phần
tử logic mà ngƣời dùng có thể lập
trình đƣợc
Ma trận phần tử logic linh hoạt
Hệ mã dữ liệu Xô Viết
Thuật toán mã hoá dữ liệu quốc tế
Mạch tích hợp
Học Viện kỹ nghệ Điện và Điện Tử
Mảng lớn các Block lập trình đƣợc
Bảng tìm kiếm
Khối Logic
Tế bào Logic




6

Multiple Array matriX
Ma trận chuỗi đa phần tử
Multi-Chip Module
Mô đun đa chip
Mechanical Computer-Aided

Hệ thống thiết kế cơ khí có trợ giúp
MCAD
Design
của máy tính
OFB
Output Freed Back
Chế độ phản hồi đầu ra
OTP
One - Time Programmable
Loại SRAM lập trình một lần
PES
Proposed Encryption Standard
Chuẩn mã hóa dữ liệu
PLD
Programmable Logic Device
Thiết bị logic lập trình đƣợc
PAL
Programmable Array Logic
Mảng logic lập trình đƣợc
PLA
Programmable Logic Array
Mảng logic lập trình đƣợc
PROM Programmable Read Only Memory Chíp bộ nhớ chỉ đọc lập trình đƣợc
RSA là một thuật toán mật mã hóa khóa công khai. Thuật toán đƣợc Ron
Rivest, Adi Shamir và Len Adleman mô tả lần đầu tiên vào năm 1977 tại
RSA
Học viện Công nghệ Massachusetts (MIT). Tên của thuật toán lấy từ 3
chữ cái đầu của tên 3 tác giả.
RISC
Reduced Instructions Set Computer Máy tính với tập lệnh đơn giản hóa

SRAM Static Random Access Memory
Bộ nhớ truy cập ngẫu nhiên tĩnh
SSI
Small Scale Integrated
Vi mạch tích hợp cỡ nhỏ
VLSI
Very Large-Scale Integration
Vi mạch tích hợp cỡ lớn
Very high speed integrated circuits Ngôn ngữ mô tả các hệ thống điện
VHDL
HDL
tử số
MAX
MCM

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




7

DANH MỤC CÁC BẢNG
Bảng

Nội dung

2.1

Một số loại FPGA trên thị trƣờng


2.2

Số cổng sử dụng và các chân I/O của các họ FPGA Altera

3.1

Các tham số của phép hoán vị ban đầu IP

3.2

Các tham số của phép hoán vị FP

3.3

Các tham số của hàm mở rộng E

3.4

Tham số của các hộp S-Box

3.5

Các tham số của phép hoán vị P

3.6

Các tham số của phép hoán vị PC-1

3.7


Các tham số của phép hoán vị PC-2

3.8

Mô tả các tín hiệu vào ra của modul DES

3.9

Danh sách các tệp tin của module DES

3.10

Chức năng các tín hiệu vào/ra của EPC2 LC20

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




8

DANH MỤC CÁC HÌNH VẼ
Hình vẽ
1.1
1.2
1.3
1.4
1.5
1.6

1.7
1.8
1.9
1.10
1.11
1.12
1.13
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
2.10
2.11
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8

Nội dung
Mô hì nh hệ thống truyền tin
Mô hì nh hệ thống truyền tin mật

Mô hình hệ mật khoá bí mật
Mô hình hệ mật khoá công khai
Sơ đồ cấu trúc cộng-nhân
Một mã lặp r vòng với hàm vòng f
Mô tả một vòng của DES
Sơ đồ một vòng lặp của GOST
Sơ đồ cấu trúc của IDEA
Chi tiết mỗi vòng đơn của IDEA
Phép biến đổi ra của quá trình mã hoá IDEA
Các chế độ hoạt động của mã khối
Các kỹ thuật thiết kế mã khối
Cấu trúc của PLA
Cấu trúc của PAL
Cấu trúc của CPLD
Mô tả mô hình của một FPGA
Cấu trúc Logic Cell trong FPGA
Cấu trúc của FPGA
Bốn loại FPGA điển hình
Cấu trúc SRAM FPGA (SRAM Logic Cell)
Cấu trúc của OTP FPGA (OTP Logic Cell)
Quá trình thiết kế trên FPGA
Kiến trúc tổng quát của Altera FPGA MAX 7000
Cấu trúc chung của Module mã khối
Lƣợc đồ của thuật toán DES
Một vòng của DES
Hàm F trong thuật toán DES
Sơ đồ tính khoá của thuật toán DES
Sơ đồ khối tổng quát của Module mã khối DES trên FPGA
Quá trình mã hoá/giải mã DES
Mô tả chức năng module mã hoá DES


Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




data error !!! can't not
read....


data error !!! can't not
read....


data error !!! can't not
read....


data error !!! can't not
read....


data error !!! can't not
read....



data error !!! can't not
read....



data error !!! can't not
read....


data error !!! can't not
read....


data error !!! can't not
read....


data error !!! can't not
read....


data error !!! can't not
read....

data error !!! can't not
read....


data error !!! can't not
read....

data error !!! can't not
read....



data error !!! can't not
read....

data error !!! can't not
read....



×