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

đồ án “tích hợp thuật toán mật mã DES trên FPGA”

66 1,2K 3

Đ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 66
Dung lượng 2,04 MB

Nội dung

Hình 1.2: Mô hình hệ thống truyền tin mậtTrong đó: - Mã hoá là quá trình biến đổi các bản tin rõ R thành các bản tin mã M bằng thuật toán mã hoá E và được xem như một hàm : M = ER,KE - G

Trang 1

LỜI NÓI ĐẦU

Cuộc cách mạng về công nghệ thông tin đang tác động sâu sắc đến các lĩnh vực của đời sống xã hội, đặc biệt trong lĩnh vực truyền thông Một trong các thể hiện là tốc độ truyền thông ngày càng cao, chuyển tải nhiều loại hình thông tin khác nhau Đặc điểm này đặt ra yêu cầu cho ngành mật

mã là các thiết bị xử lý bảo mật thông tin phải được chuyên dụng hoá và làm việc được trên các luồng thông tin tốc độ lớn Với những kỹ thuật bảo mật truyền thống, đòi hỏi trên là rất khó khăn, thậm chí không giải quyết được Do vậy, việc nghiên cứu thiết kế thiết bị bảo mật chuyên dụng, hoạt động với tốc độ lớn là nhu cầu cần thiết và cấp bách Nhằm góp phần giải

quyết vấn đề trên, tôi đã chọn đồ án “Tích hợp thuật toán mật mã DES trên FPGA”

Đồ án có nhiệm vụ: mô tả thuật toán mã hóa DES bằng ngôn ngữ mô

tả phần cứng VHDL, nắm chắc các giải pháp, công cụ hỗ trợ quá trình tích hợp thuật toán mã hóa DES trên FPGA Thực hiện thiết kế modul thuật toán DES trên môi trường phần mềm tích hợp ISE của Xilinx

Nội dung đồ án gồm 3 chương:

Chương 1: Thuật toán Mật mã DES

Chương 2: Công nghệ FPGA và ngôn ngữ VHDL

Chương 3: Tích hợp thuật toán Mật mã DES trên FPGA

Qua một thời gian nghiên cứu, đồ án đã hoàn thành được nội dung đặt ra Nhân dịp này, tôi xin bày tỏ lời cảm ơn chân thành đến thầy giáo TS

đã tận tình, trực tiếp hướng dẫn và có những ý kiến hết sức quý báu giúp tôi trong quá trình thực hiện đồ án

Trang 2

Do thời gian làm đồ án không được nhiều, trình độ bản thân hạn chế,

đồ án không thể tránh được những sai sót, nội dung chưa được sâu sắc Kính mong nhận được sự đóng góp các thầy giáo

Tôi xin chân thành cảm ơn!

Trang 3

MỤC LỤC

LỜI NÓI ĐẦU 1

MỤC LỤC 3

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

THUẬT TOÁN MÃ HÓA DES 5

1.1 TỔNG QUAN VỀ HỆ THỐNG TRUYỀN TIN MẬT 5

1.1.1 Mô hình hệ thống truyền tin mật 5

1.1.2 Phân loại hệ mã 8

1.1.3 Đánh giá độ mật của hệ thống truyền tin mật 9

1.1.4 Một số giải pháp kỹ thuật thiết kế mã khối 11

1.2 CHUẨN MÃ DỮ LIỆU DES 13

1.2.1 Mở đầu 13

1.2.2 Thuật toán 13

1.3 KẾT LUẬN CHƯƠNG 1 22

Chương 2 23

CÔNG NGHỆ FPGA VÀ NGÔN NGỮ VHDL 23

2.1 TỔNG QUAN VỀ FPGA 23

2.1.1 Giới thiệu về FPGA 23

2.1.2 Cấu trúc của FPGA 24

2.1.3 Phân loại FPGA 27

2.1.4 Ứng dụng của FPGA 28

2.2 MÔI TRƯỜNG PHẦN MỀM TÍCH HỢP ISE CỦA XILINX 31

2.2.1 Mô tả khái quát về ISE 32

2.2.2 Các giai đoạn thiết kế sử dụng ISE 33

2.2.3 Ngôn ngữ lập trình được dùng trong thiết kế 38

Trang 4

2.3 NGÔN NGỮ MÔ TẢ PHẦN CỨNG VHDL 40

2.3.1 Khái quát về VHDL 40

2.3.2 Cấu trúc một mô hình hệ thống mô tả bằng VHDL 41

2.4 KẾT LUẬN CHƯƠNG 2 43

Chương 3 44

TÍCH HỢP THUẬT TOÁN DES TRÊN FPGA 44

3.1 QUY TRÌNH VÀ CÔNG CỤ THIẾT KẾ 44

3.1.1 Quy trình thiết kế 44

3.2 SƠ ĐỒ KHỐI CHỨC NĂNG 45

57

KẾT LUẬN .58

TÀI LIỆU THAM KHẢO 60

PHỤ LỤC 61

Trang 5

THUẬT TOÁN MÃ HÓA DES

1.1 TỔNG QUAN VỀ HỆ THỐNG TRUYỀN TIN MẬT

1.1.1 Mô hình hệ thống truyền tin mật

Trong cuộc sống, con người luôn có nhu cầu trao đổi thông tin với nhau có nghĩa là có nhu cầu truyền tin cho nhau Hình 1.1 biểu diễn mô hình của Hệ thống truyền tin bao gồm: Nguồn tin, kênh tin và nhận tin

Trang 6

Hình 1.1: Mô hình hệ thống truyền tinTrong mô hình này:

- Nguồn tin là nơi sản sinh ra các tin tức cần truyền đi trên kênh tin dưới dạng các bản tin

- Kênh tin là môi trường vật lý xác định để truyền các bản tin dưới các dạng tín hiệu điện, quang …

- Nhận tin là cơ cấu khôi phục thông tin ban đầu từ tín hiệu lấy ở đầu ra của kênh tin

Do xã hội ngày càng phát triển, nên nhu cầu trao đổi thông tin cũng tăng theo không ngừng Các nội dung thông tin có liên quan đến lợi ích, quyền lợi của một số người hay một giai cấp nào đó cần được giữ kín, bí mật vì vậy nhu cầu bảo mật nội dung thông tin được truyền đi hình thành

và phát triển ngày càng lớn

Hệ thống truyền tin mật là hệ thống mà trong đó nội dung thông tin phải được bảo vệ và giữ bí mật khi truyền trên kênh tin trước sự tấn công, khám phá bất hợp pháp của mã thám Hình 1.2 mô tả một cách tổng quát về

mô hình của một hệ thống truyền tin mật

Trang 7

Hình 1.2: Mô hình hệ thống truyền tin mậtTrong đó:

- Mã hoá là quá trình biến đổi các bản tin rõ R thành các bản tin mã

M bằng thuật toán mã hoá E và được xem như một hàm :

M = E(R,KE)

- Giải mã là quá trình biến đổi ngược của mã hoá có nghĩa là biến đổi các bản tin mã M từ đầu ra của kênh tin thành các bản tin rõ R để đưa tới nhận tin và cũng được xem như một hàm:

- Nhiễu là do sự tác động của môi trường truyền dẫn

Đôi khi thường bị đồng nhất hai khái niệm hệ thống truyền tin mật

và hệ mật khi đánh giá độ mật của hệ thống Hệ mật là một bộ 5 (R, M, K,

E, D) thoả mãn các điều kiện sau:

a R (không gian các bản tin rõ) là một tập hợp hữu hạn các bản rõ có thể có

b M (không gian các bản tin mã) là một tập hợp các bản tin mã có thể có

c K (không gian khoá) là một tập hợp hữu hạn các khoá mật mã có thể có

Trang 8

d Đối với mỗi k∈K có một quy tắc mã hoá ek ∈E và một thuật toán

giải mã tương ứng dk ∈D, mà mỗi ek: R→M và d∈k: M→R là những hàm

được thoả mãn dk ∈ (ek(x)) = x với mọi bản tin rõ x ∈ R.

Điều kiện (d) là quan trọng nhất có nghĩa là nếu có một bản tin rõ x được mã hoá bằng thuật toán E và bản tin mã nhận được sau đó được giải

mã bằng thuật toán giải mã D thì phải thu được bản tin rõ x ban đầu

⊕ki = pi

- Mã khối: Vấn đề đặt ra theo một góc độ khác, mỗi một lần mã, khoá được lấy ngẫu nhiên trong không gian khoá sau đó cố định lại và dùng để mã hoá cho tất cả các khối bản rõ trong phiên liên lạc đó hoặc trong suốt thời gian ấn định nào đó

Song song với việc nghiên cứu các mã pháp, các nghiên cứu để tấn công, phân tích, thám mã các hệ này cũng phát triển Cho tới nay, có hai phương pháp tấn công mạnh nhất đối với mã khối là: tấn công vi sai và tấn công tuyến tính

Trang 9

1.1.3 Đánh giá độ mật của hệ thống truyền tin mật

Nhiệm vụ chủ yếu của hệ thống truyền tin mật là giữ bí mật của thông tin được truyền trên kênh tin trước sự tấn công, khám phá của mã thám Như vậy độ mật của hệ thống truyền tin mật hoàn toàn phụ thuộc vào

độ an toàn của hệ mật mà được dùng trong nó Có hai quan điểm cơ bản về

độ an toàn của một hệ mật:

- Thứ nhất là độ an toàn tính toán: Độ đo này liên quan đến khả năng tính toán cần thiết để khám phá, tấn công một hệ mật Một hệ mật là

an toàn về mặt tính toán nếu thuật toán tấn công, khám phá hệ thống đó cần

ít nhất N phép toán mà N là một số rất lớn nào đó Vấn đề là ở chỗ, không

có một hệ mật thực tế đã biết nào có thể chứng tỏ là an toàn theo định nghĩa này Trên thực tế, người ta gọi một hệ mật là “an toàn về mặt tính toán” nếu

có một phương pháp tốt nhất phá hệ này nhưng yêu cầu về mặt thời gian lớn đến mức không thể chấp nhận được

- Thứ hai là an toàn không điều kiện: Độ đo này liên quan đến độ an toàn của các hệ mật khi không có hạn chế nào được đặt ra về khả năng tính toán mà mã thám có thể thực hiện Một hệ mật được xem là an toàn không điều kiện (tuyệt mật hay lý tưởng) nếu nó không thể bị tấn công, khám phá với khả năng tính toán không hạn chế Tất nhiên ta cũng phải xét đến các kiểu tấn công của mã thám để xây dựng các hệ thống an toàn hơn nữa

Trong hệ thống truyền tin mật khoá mật mã quyết định độ bảo mật của toàn bộ hệ thống Người ta đã đưa ra tiêu chuẩn của hệ thống truyền tin mật như sau:

- Độ mật cần thiết sẽ xác định thuật toán phù hợp cho việc mã hoá

và giải mã Tiêu chuẩn này thể hiện một nguyên lý rất cơ bản là một thuật toán mã hoá đơn giản cũng có thể đủ mạnh để ngăn chặn các đối tượng mã

Trang 10

thám "chặn bắt tình cờ" hoặc bảo mật truyền tin trong một khoảng thời gian ngắn.

- Không gian khoá và thuật toán mã hoá không được quá phức tạp Tiêu chuẩn này cho thấy rằng không nên hạn chế sự lựa chọn các khoá hoặc các kiểu bản tin rõ mà thuật toán mã hoá làm việc trên đó Nếu thuật toán mã hoá chỉ làm việc với các bản tin rõ có cùng độ dài thì đó là một thuật toán yếu, dễ bị khám phá Tương tự, rất khó lựa chọn khoá mà tổng các phần tử của khoá là một số nguyên tố Những hạn chế như vậy sẽ làm cho việc sử dụng thuật toán mã hoá rất phức tạp Mặc dù một thuật toán mã hoá phức tạp sẽ tăng độ bảo mật của hệ thống, nhưng sẽ làm thời gian xử

lý, truyền tin tăng lên một cách đáng kể Nên một thuật toán mã hoá phù hợp là thuật toán tối ưu giảm thiểu những trở ngại cho việc truyền tin

- Các lỗi trong quá trình mã hoá không được lan truyền và gây ngắt tin trong các bản tin rõ nhận được khi giải mã Mã hoá có thể gây lỗi cho quá trình truyền tin hoặc làm sai lệch nội dung thông tin từ đó các bản tin

mã cũng bị sai lệch theo hoặc bị gián đoạn toàn bộ quá trình truyền tin Do

đó chúng ta cần hạn chế tối đa việc gây lỗi bởi quá trình mã hoá

- Kích thước hay độ dài của bản tin mã không được lớn hơn độ dài của bản tin rõ ban đầu, nếu điều này xảy ra nó sẽ không thể mang được nhiều thông tin như bản tin rõ và thời gian truyền tin trên kênh cũng sẽ bị tăng theo

Nhìn chung các tiêu chuẩn này được đề xuất nhằm đánh giá chất lượng của hệ thống truyền tin mật Trong điều kiện hiện nay nhờ sự phát triển mạnh mẽ của khoa học và công nghệ đặc biệt là công nghệ FPGA, các thuật toán mã hoá, giải mã có thể được thiết kế để cứng hoá trong các thiết

bị bảo mật nên việc xây dựng độ mật tối ưu cho từng hệ thống với từng mục đích cụ thể sẽ được thực hiện một cách thuận lợi

Trang 11

1.1.4 Một số giải pháp kỹ thuật thiết kế mã khối

Việc thiết kế các thuật toán mã khối trong thiết bị bảo mật thông tin hiện nay có thể thực hiện theo các kỹ thuật như mô tả trong hình 1.3

Hình 1.3: Các kỹ thuật thiết kế mã khối

Thiết kế mã khối bằng chương trình phần mềm

Thiết kế thuật toán mã khối bằng chương trình phần mềm và thực hiện trên các bộ xử lý Intel, RISC hoặc nhúng trong môi trường DSP, Smart-Card , hoặc trên các máy PC Ưu điểm của kỹ thuật này là không phụ thuộc quá nhiều vào công nghệ thiết kế, cho phép thiết kế nhanh, có tính mềm dẻo cao khi cần thay đổi thuật toán mã hoá được thực hiện một cách đơn giản Tuy nhiên kỹ thuật này lại bị hạn chế về mặt tốc độ xử lý

mã hoá - giải mã, nó phù hợp với những hệ thống truyền tin có tốc độ không cao Mặt khác, việc sử dụng không hết các tính năng của một thiết bị sẵn có làm cho giá thành tăng lên, và không thuận lợi cho chuyên dụng hoá thiết bị bảo mật thông tin

Thiết kế mã khối bằng công cụ phần cứng

Trang 12

Thiết kế thuật toán mã khối trên các công cụ phần cứng không mềm dẻo bằng phần mềm nhưng nó lại có một số ưu điểm: Tại cùng một thời điểm các thiết bị phần cứng cho phép thay đổi các phép xử lý dữ liệu một cách linh hoạt hơn so với phần mềm Tốc độ xử lý dữ liệu và an toàn về mặt vật lý cao hơn, bảo mật được thiết kế, không phụ thuộc vào hệ điều hành, rất thích hợp trong việc thiết kế những thiết bị bảo mật chuyên dụng

và bảo mật trong các hệ thống truyền tin có tốc độ cao

Trên thế giới một số hãng sản xuất các thiết bị bảo mật cũng đã nghiên cứu thiết kế các thuật toán mã khối bằng các công cụ phần cứng như: công nghệ ASIC, công nghệ FPGA ,

FPGA là một thiết bị logic có thể được người sử dụng lập trình trực tiếp mà không phải sử dụng bất kỳ một công cụ chế tạo mạch tích hợp nào Điều này cho phép chế tạo ngay thiết bị và vì vậy giá thành sản phẩm thấp

FPGA được ứng dụng rộng rãi và khá lý tưởng vì chúng có mức độ tích hợp cao trên chip, đáp ứng yêu cầu phức tạp và đa dạng Thay vì các

IC nguyên mẫu để lắp ghép vào hệ thống người thiết kế có thể tạo các kết nối theo các phần trong FPGA của mình bằng phần mềm Mặt khác chúng

ta có thể nạp lại chương trình một cách liên tục để thay đổi các thuật toán

mã khối hoặc thực hiện các thuật toán khác

Hiện nay các thuật toán mã khối chủ yếu được thiết kế bằng các chương trình phần mềm chạy trên máy PC, việc nghiên cứu để có thể cứng hoá các thuật toán mã khối trên các công cụ phần cứng nhằm đáp ứng các yêu cầu về tốc độ xử lý dữ liệu, tính chủ động, chuyên dụng hoá thiết bị bảo mật cũng như giá thành là một hướng nghiên cứu mới Công nghệ FPGA với những tính năng ưu việt của nó được lựa chọn để nghiên cứu thiết kế modul mã khối nhằm đáp ứng những yêu cầu trên

Trang 13

1.2 CHUẨN MÃ DỮ LIỆU DES

1.2.1 Mở đầu

DES (Data Encryption Standard) là một kỹ thuật mã khối, thực hiện

mã hoá một xâu bít x của bản rõ độ dài 64 bằng một khoá 56 bít Bản mã nhận được cũng là một xâu bít có độ dài 64

Hình 1.4: Thuật toán DES

1.2.2 Thuật toán

Thuật toán mã hoá DES tiến hành theo 3 giai đoạn:

1 Với bản rõ cho trước x, một xâu bít x0 sẽ được xây dựng bằng cách hoán vị các bít của x theo phép hoán vị cố định ban đầu IP

Ta viết: x0 = IP(X) = L0R0, trong đó L0 gồm 32 bít đầu và R0 là 32 bít cuối

2 Sau đó tính toán 16 lần lặp theo một hàm xác định Tã sẽ tính LiRi,

1≤ i ≤ theo qui tắc sau:

Li = Ri-1

Ri = Li-1 ⊕ f( Ri-1,Ki)

Trang 14

Trong đó: ⊕ kí hiệu phép hoặc loại trừ của hai xâu bít (cộng theo module 2), f là một hàm bao gồm các phép hoán vị, phép thế, phép cộng modulo 2, còn K1, K2,… K16 là các xâu bít độ dài 48 bít được tính như hàm của khoá K (trên thực tế Ki là một phép toán chọn hoán vị bít trong K) K1,

Hình 1.5: Một vòng của DES

Hàm F trong thuật toán DES

Hàm F: Có hai biến vào:

- Biến thứ nhất A là xâu bít độ dài 32

- Biến thứ hai J là một xâu bít độ dài 48 Đầu ra của f là một xâu bít

độ dài 32

Trang 15

Hàm F được thực hiện theo các bước như sau:

- Bước 1: Biến thứ nhất A được mở rộng thành một xâu bít độ dài

48 theo một hàm mở rộng cố định E E(A) gồm 32 bít của A (được hoán vị theo cách cố định) với 16 bít xuất hiện hai lần

- Bước 2: Tính E(A)⊕J và viết kết quả thành một chuỗi 8 xâu 6 bít

r ≤ 3) và bốn bít (b2b3b4b5) xác định biểu diễn nhị phân của cột c của Sj ( 0

≤ c ≤ 15 ) Khi đó Sj(Bj) sẽ xác định phần tử Sj(r,c); phần tử này viết dưới dạng nhị phân là một xâu bít có độ dài 4 (bởi vậy, mỗi Sj có thể được coi là một hàm mã mà đầu vào là một xâu bít có độ dài 2 và một xâu bít có độ dài

4, còn đầu ra là một xâu bít có độ dài 4) Bằng cách tương tự tính các Cj =

Trang 16

Hình 1.6: Hàm f của thuật toán DESPhép hoán vị ban đầu IP

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

Trang 17

Bảng này có nghĩa là bít thứ 58 của x là bít đầu tiên của IP(x); bít thứ

50 của x là bít thứ hai của IP(x), v.v

Phép hoán vị FP

Bảng 1.2: Các tham số của phép hoán vị FP

Bảng chọn E bít

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

Trang 18

Hộp thế S-Box

Trang 19

Phép hoán vị P trong hàm F

Bảng 1.4: Các tham số của phép hoán vị P

Lược đồ tạo khoá mã dịch

Đây là phần mô tả việc tính toán bảng khoá từ khoá K Trên thực tế,

K là một xâu bít độ dài 64, trong đó 56 bít là khoá và 8 bít để kiểm tra tính chẵn lẻ nhằm phát hiện sai Các bít ở các vị trí 8,16,24,32,40,48,56,64 được xác định sao cho mỗi byte chứa một số lẻ các số "1" Bởi vậy một sai sót đơn lẻ có thể phát hiện được trong mỗi nhóm 8 bít Các bít kiểm tra bị bỏ qua trong quá trình tính toán bảng khoá Tính khóa theo 2 bước:

Trang 20

- Bước 1: Với một khoá K có độ dài 64 bít cho trước, loại bỏ các bít kiểm tra tính chẵn lẻ và hoán vị các bít còn lại của K theo phép hoán vị cố định PC-1.

PC-1(K) = C0D0

- Bước 2: Với i thay đổi từ 1 đến 16:

Ci = LSi(Ci-1)

Di = LSi(Di-1)Trong đó LSi là phép dịch vòng trái, phụ thuộc vào giá trị của i Với i

= 1,2,9 hoặc 16 thì dịch vòng sang trái 1 vị trí, còn các giá trị khác của i thì dịch vòng sang trái 2 vị trí

Bảng 1.5: Các tham số của phép hoán vị PC-1

Trang 21

Bảng 1.6: Các tham số của phép hoán vị PC-2Như đã nói ở trên, mỗi vòng sử dụng một khoá 48 bít gồm 48 bít nằm trong K.

Phép giải mã được thực hiện nhờ dùng cùng thuật toán như phép mã nếu đầu vào là Y nhưng dùng bảng khoá theo thứ tự ngược lại K16, K1 Đầu ra của thuật toán sẽ là bản rõ X

Trang 22

Hình 1.7: Sơ đồ tính khoá của thuật toán DES

1.3 KẾT LUẬN CHƯƠNG 1

Chương này đã mô tả một cách khái quát về mô hình của một hệ truyền tin mật, các khái niệm cơ bản về mật mã Trình bày chi tiết thứ tự các bước thực hiện thuật toán Mã hóa DES

Trang 23

Chương 2CÔNG NGHỆ FPGA VÀ NGÔN NGỮ VHDL

2.1 TỔNG QUAN VỀ FPGA

2.1.1 Giới thiệu về FPGA

Công nghệ chế tạo mạch vi điện tử ngày nay đang có một sự thay đổi lớn: từ một mạch tính hợp vi điện tử với cơ sở thiết bị công nghệ tiên tiến chế tạo ra với số lượng lớn chuyển dần sang các mạch chuyên dụng sản xuất với lô nhỏ tại các cơ sở có điều kiện công nghệ chưa phát triển Sự thay đổi đó được hình thành nhờ các công cụ thiết kế tự động Động lực chính của quá trình thay đổi này là giảm thời gian thiết kế, chế tạo vi mạch

và tăng tính linh hoạt cho người thiết kế lập trình với những ứng dụng riêng biệt

FPGA (Field-Programmable Gate Array), là mạch tích hợp cỡ lớn

trong đó cho phép người lập trình thay đổi các thiết kế của mình mà không phải sử dụng bất kỳ một công cụ chế tạo mạch tích hợp nào FPGA là công

nghệ tiên tiến nhất hiện nay của ngành công nghệ chế tạo IC (Integrated

Circuit) chuyên biệt.

Hình 2.1: Hình FPGA

Trang 24

2.1.2 Cấu trúc của FPGA

FPGA là mạch tích hợp chứa nhiều (64 đến hơn 10.000) ô logic

(logic cell) giống nhau có thể xem là các thành phần chuẩn Mỗi ô logic giữ

một hay một số chức năng độc lập Các ô giống nhau được kết nối bởi một

ma trận đường dẫn và các chuyển mạch khả trình Người thực hiện thiết kế bằng các đặc trưng lôgic đơn của mỗi ô và lựa chọn đóng các chuyển mạch trong ma trận kết nối Mảng của các ô lôgic và kiểu kết nối là kết cấu xây dung khối cơ bản trong mạch lôgic Các thiết kế phức tạp được tạo ra bằng cách kết hợp các khối cơ bản để tạo ra các mạch được mô tả

Mô hình tổng quát của FPGA gồm một dãy hai chiều các khối lôgic

(logic block) có thể được kết nối bằng các nguồn kết nối chung Các nguồn kết nối gồm các đoạn kết nối (segment) có thể có chiều dài khác nhau Bên

trong các kết nối là các chuyển mạch lập trình được dùng để nối các khối lôgic với các đoạn dây, các khối vào ra hay các đoạn dây với nhau Mạch lôgic cài đặt trong FPGA bằng cách ánh xạ lôgic vào các lôgic riêng rẽ và

sau đó nối các khối lôgic cấu hình (Configurable logic Block) cần thiết qua

các chuyển mạch Các khối CLB cung cấp các phần tử chức năng với cấu

trúc sử dụng logic Các khối vào/ra (I/O Block) cung cấp giao diện giữa các

gói chân và các đường tín hiệu bên trong Tài nguyên kết nối khả trình cung cấp các bộ phận truyền dẫn tới kết nối đầu vào và đầu ra của các CLB

và các IOB trong mạng riêng

Vậy cấu trúc FPGA gồm ba phần tử chính: Các khối lôgic cấu hình (CLB), các khối vào/ra (IOB) và các kết nối

- Các khối lôgic cấu hình (Configurable logic Block)

Cấu trúc và nội dung của logic block được gọi theo kiến trúc của nó Kiến trúc của khối lôgic có thể thiết kế theo nhiều cách khác nhau, có thể là

các cổng AND 2 ngõ nhập, các bộ dồn kênh (Multiplexer) hay các bảng tìm

Trang 25

kiếm (Lock-up Table) Ngoài ra coa thể chứa các Flip-Flop để hỗ trợ cho

việc thực hiện một cách tuần tự

- Các nguồn kết nối (Routes)

Các nguồn kết nối có cấu trúc và nội dung được gọi là kiến trúc

đường (Routing Architecture) Kiến trúc Routing gồm các đoạn đây nối và

các chuyển mạch khả trình Các chuyển mạch khả trình có cấu tạo khác

nhau như pass-transistor, được điều khiển bởi các cell SRAM, các phần tử cầu chì nghịch, EPROM transistor và EEROM transitor Giống như các

khối lôgic có nhiều cách khác nhau để thiết kế các kiến trúc routing Một số FPGA cung cấp nhiều kết nối đơn giản giữa các khối logic, một số khác cung cấp ít kết nối hơn nên routing phức tạp hơn

- Các cổng vào/ra

Các đặc tính I/OB của các đầu vào và đầu ra được hỗ trợ tới 19 các chuẩn tín hiệu khác nhau bao gồm: LVDS, BLVDS, LVPECL, LVCMOS, HSTL, SSTL và GTL

Trang 26

Hình 2.2: Mô tả mô hình của một FPGACác khối cơ bản của LB (Logic Block) của FPGA chính là Logic Cell (LC: gọi là tế bào logic)

- Mỗi một Logic Cell bao gồm một bộ tạo chức năng 4 đầu vào, logic nhớ và phần tử lưu trữ (Flip - Flop loại D) Đầu ra bộ tạo chức năng của mỗi Logic Cell điều khiển cả đầu ra LB hoặc đầu vào D của Flip-Flop Mỗi một LB có chứa bốn Logic Cell và được tổ chức thành hai Slice tương

tự nhau

Trang 27

Một FPGA có cấu trúc của các Logic Cell (hoặc các module) và các đường nối, mà các đường nối này nằm dưới sự điều khiển của người thiết

kế Có nghĩa là chúng ta có thể thiết kế, lập trình và thay đổi mạch khi muốn Với họ FPGA ngày nay đã vượt qua giới hạn 10 triệu cổng

Hình 2.3: Cấu trúc của FPGA

2.1.3 Phân loại FPGA

FPGA có nhiều loại khác nhau có cấu trúc và đặc tính riêng tuỳ theo từng hãng sản xuất, tuy nhiên chúng có bốn loại chính sau: cấu trúc mảng

đối xứng (Symmetrical Array), cấu trúc PLD phân cấp (hierachircal PLD), cấu trúc hàng (Row base) và cấu trúc đa cổng (Sea of Gate) mô tả dưới đây.

Trang 28

Hình 2.4: Bốn loại cấu trúc của FPGA trên thực tế

2.1.4 Ứng dụng của FPGA

FPGA là thế hệ sau của IC khả trình nên chúng có thể ứng dụng trong hầu hét các ứng dụng của hiện đang dùng MPGA, PLD và các mạch tích hợp loại nhỏ (SSI)

a) Các mạch tích hợp là ứng dụng đặc biệt

FPGA là thiết bị tổng quát nhất để thực hiện các mạch lôgic số Chúng đặc biệt thích hợp cho các mạch tích hợp chuyên dụng đặc biệt (ASIC) như bộ cộng, bộ điều khiển lôgic Flip-Flop

b) Thiết kế mạch ngẫu nhiên

Mạch lôgic ngẫu nhiên thường được thực hiện bằng PAL Nếu tốc độ của mạch không đòi hỏi khắt khe (các PAL nhanh hơn hầu hết các FPGA) thì mạch có thể thực hiện bằng FPGA Hiện nay một FPGA cần từ 10 đến

20 PAL

Trang 29

c) Thay thế các chíp SSI cho mạch ngẫu nhiên

Các mạch hiện tại trong các sản phẩm thương mại thường chứa nhiều chíp SSI Trong nhiều trường hợp có thể thay thế bằng FPGA để giảm diện tích bo mạch

d) Chế tạo mẫu

FPGA rất lý tưởng cho việc tạo mẫu các sản phẩm Giá thành thực hiện thấp và thời gian thực hiện thiết kế vật lý ngắn, cung cấp các ưu điểm hơn nhiều so với các phương tiện truyền thống khác để chế tạo mẫu phần cứng Các mẫu ban đầu có thể thực hiện rất nhanh và những thay đổi sau

đó được thực hiện rất nhanh và ít tốn kém

e) Máy tính dựa trên FPGA

Một loại máy tính dựa trên FPGA có thể tái lập trình ngay trên FPGA Các máy này có một bo mạch chứa các FPGA với các chân nối với các chíp lân cận giống như thông thường Ý tưởng là là một chương trình phần mềm có thể được “biên dịch” (sử dụng kỹ thuật tổng hợp mức cao, mức lôgic và mức sơ đồ bằng tay) vào ngay phần cứng Phần cứng này

sẽ được thực hiện bằng cách lập trình bo mạch FPGA Phương pháp này có hai ưu điểm chính: một là không cần quá trình lấy lệnh như các bộ xử lý truyền thống vì phần cứng đã gộp cả lệnh Kết quả là tốc độ có thể tăng lên hàng trăm lần Hai là, môi trường tính toán có thể thực hiện song song mức cao, làm tăng tốc thêm nữa

f)Tái cấu hình thành phần trực tiếp

FPGA cho phép có thể thay đổi theo mong muốn cấu trúc của một máy đang hoạt động Một ví dụ là các thiết bị máy tính từ xa có thể thay đổi trực tiếp để khắc phục sự cố hay có lỗi thiết kế Kiểu FPGA thích hợp nhất cho ứng dụng này là những FPGA có các chuyển mạch lập trình được

Trang 30

g) Ứng dụng trong bảo mật

FPGA tự nó đã mang những thuộc tính thích hợp cho an toàn mật mã (như cấu trúc chip được đốt vật lý, bảo đảm toàn vẹn, chống tấn công thám thiết kế, không phụ thuộc vào hệ điều hành nào ) Ngoài ra đối với mật mã thì tính mềm dẻo là một tiêu chí cần phải xếp lên hàng đầu bởi thuật toán sinh khóa/mã hóa có thể thay đổi theo từng phiên liên lạc hoặc khi chuyển mạng Bởi vậy công nghệ thích hợp nhất để cứng hóa mật mã nên lựa chọn chính là FPGA với những ưu điểm chính:

- Tốc độ cao vì nó hoàn toàn dựa trên phần cứng (hardware)

là đã có một mạch thực hiện đúng các chức năng mà ta đã mô phỏng

Trang 31

2.2 MÔI TRƯỜNG PHẦN MỀM TÍCH HỢP ISE CỦA XILINX

Hiện nay trên thế giới có nhiều hãng tham gia sản xuất chế tạo FPGA trong đó có 3 hãng lớn là Altera, Xilinx và Actel Các FPGA của mỗi hãng có những đặc điểm về cấu trúc và tính năng kỹ thuật khác nhau Tuy nhiên các tinh thể FGPA của Xilinx và Altera được đặt ở mức đồng cấp với nhau về tính năng kỹ thuật và giá cả Mọi dự án phát triển ứng dụng thực tế trên cơ sở FPGA lấy riêng từ một trong hai hãng này đều có thể triển khai có kết quả Đặc biệt các FPGA của Xilinx có phần phù hợp hơn trong thực tế hoá các dự án tạo lập thiết bị xử lý tín hiệu và các mạch dịch chuyển nhanh

Sau đây là các họ FPGA của Xilinx

Spartan/XL – derived from XC4000

Spartan-II – derived from Virtex

Spartan-IIE – derived from Virtex-E

Spartan-3

Trang 32

Cùng với các thiết bị FPGA hãng Xilinx còn đưa ra bộ công cụ phát triển nghiên cứu, thiết kế và ứng dụng FPGA bao gồm các công cụ mô tả cấu trúc chức năng bên trong FPGA, công cụ nạp cấu hình thiết kế và lắp ráp trên mạch in v v Các công cụ này được tích hợp bên trong môi trường phần mềm tích hợp (ISE)

2.2.1 Mô tả khái quát về ISE

ISE (Integrate Software Environment) - môi trường phần mềm tích

hợp - là một bộ phần mềm thiết kế của Xilinx ISE cho phép tạo ra các sản phẩm thiết kế thông qua việc nhập các thiết kế vào thiết bị chương trình hoá của Xilinx

ISE cho phép có thể lựa chọn một hoặc nhiều phương án thiết kế khác nhau bao gồm:

- Thiết kế bằng ngôn ngữ mô tả phần cứng HDL (VHDL,Verilog

HDL, ABEL)

- Thiết kế dưới dạng sơ đồ cổng Logic (Schematic)

- EDIF (Electronic Data Interchange Format)

- NGC/NGO (kết hợp với Core Gerenator)

- Đồ hình trạng thái (State Machines)

- IP codes

Với mỗi phương án thiết kế, có một fille nguồn, ISE cho phép nhanh chóng xác minh chức năng của fille nguồn này nhờ khả năng mô phỏng

tích hợp bên trong, bao gồm MODELSIM và HDL Bench Với phương án

thiết kế bằng ngôn ngữ mô tả phần cứng (HDL) thiết kế được tổng hợp

bằng công nghệ tổng hợp của Xilinx (XST), nó có thể là một phần mềm

chạy độc lập, hay được tích hợp vào trong ISE Công cụ thực hiện thiết kế

Trang 33

tiếp tục quá trình sắp đặt và kết nối trong FPGA và kết thúc của quá trình một dòng bit được hình thành cấu hình nên thiết kế của ta Giao diện

Project Navigator cung cấp một cái nhìn toàn diện toàn bộ quá trình thiết

kế

2.2.2 Các giai đoạn thiết kế sử dụng ISE

Các giai đoạn thiết kế sử dụng ISE trên công nghệ FPGA bao gồm nhiều bước ISE cung cấp một bộ công cụ cần thiết để tạo ra những thiết kế

từ đơn giản đến phức tạp và đảm bảo thiết kế đạt được yêu cầu cần thiết

Một thiết kế có thể bắt đầu từ các ngôn ngữ mô tả phần cứng (VHDL,

Verilog) hay sơ đồ (Schematic) hoặc trong vài trường hợp nó là một sự pha

trộn giữa sơ đồ và ngôn ngữ mô tả phần cứng

Có thể gộp các giai đoạn thiết kế trên ISE thành một số bước chính như hình dưới:

Hình 2.5: Tổng quan một luồng thiết kế trên ISE

Ngày đăng: 18/06/2014, 22:13

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Nguyễn Bình (1996), Mật mã: Lý thuyết và thực hành, Học viện kỹ thuật quân sự, Hà Nội Khác
2. Ban Cơ yếu Chính phủ (2004), Cơ sở mật mã hiện đại, Hà Nội Khác
3. Nguyễn Tăng Cường, Phan Quốc Thắng (2003), Cấu trúc và lập trình các hệ xử lý tín hiệu số, NXB Khoa học và kỹ thuật, Hà Nội Khác
4. Tống Văn On (2007), Thiết kế mạch số với VHDL & Verilog Tiếng Anh Khác
5. A.J.Menezes, P.C.Van Oorschot, S.A.Vanston (1997), Handbock of applied cryptography, CRC Press 1997 Khác
6. Daniel D. Gajski, Nikil D. Dutt, Allen C-H Wu, Steve Y-L Lin (1992), High Level Synthesis Introdution to Chip and System Design,Nguồn tham khảo từ Internet www.altera.com www.xilinx.com www.intel.com Khác

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Mô hình hệ thống truyền tin Trong mô hình này: - đồ án “tích hợp thuật toán mật mã DES trên FPGA”
Hình 1.1 Mô hình hệ thống truyền tin Trong mô hình này: (Trang 6)
Hình 1.3: Các kỹ thuật thiết kế mã khối - đồ án “tích hợp thuật toán mật mã DES trên FPGA”
Hình 1.3 Các kỹ thuật thiết kế mã khối (Trang 11)
Hình 1.5: Một vòng của DES - đồ án “tích hợp thuật toán mật mã DES trên FPGA”
Hình 1.5 Một vòng của DES (Trang 14)
Hình 1.6: Hàm f của thuật toán DES Phép hoán vị ban đầu IP - đồ án “tích hợp thuật toán mật mã DES trên FPGA”
Hình 1.6 Hàm f của thuật toán DES Phép hoán vị ban đầu IP (Trang 16)
Bảng 1.1: Các tham số của phép hoán vị ban đầu IP - đồ án “tích hợp thuật toán mật mã DES trên FPGA”
Bảng 1.1 Các tham số của phép hoán vị ban đầu IP (Trang 16)
Hình 1.7: Sơ đồ tính khoá của thuật toán DES - đồ án “tích hợp thuật toán mật mã DES trên FPGA”
Hình 1.7 Sơ đồ tính khoá của thuật toán DES (Trang 22)
Hình 2.1: Hình FPGA - đồ án “tích hợp thuật toán mật mã DES trên FPGA”
Hình 2.1 Hình FPGA (Trang 23)
Hình 2.2: Mô tả mô hình của một FPGA - đồ án “tích hợp thuật toán mật mã DES trên FPGA”
Hình 2.2 Mô tả mô hình của một FPGA (Trang 26)
Hình 2.3: Cấu trúc của FPGA - đồ án “tích hợp thuật toán mật mã DES trên FPGA”
Hình 2.3 Cấu trúc của FPGA (Trang 27)
Hình 2.4: Bốn loại cấu trúc của FPGA trên thực tế - đồ án “tích hợp thuật toán mật mã DES trên FPGA”
Hình 2.4 Bốn loại cấu trúc của FPGA trên thực tế (Trang 28)
Hình 2.5: Tổng quan một luồng thiết kế trên ISE - đồ án “tích hợp thuật toán mật mã DES trên FPGA”
Hình 2.5 Tổng quan một luồng thiết kế trên ISE (Trang 33)
Hình 2.6: Giai đoạn nhập thiết kế - đồ án “tích hợp thuật toán mật mã DES trên FPGA”
Hình 2.6 Giai đoạn nhập thiết kế (Trang 34)
Hình 2.7: Giai đoạn tổng hợp - đồ án “tích hợp thuật toán mật mã DES trên FPGA”
Hình 2.7 Giai đoạn tổng hợp (Trang 35)
Bảng 3.1: Mô tả các tín hiệu vào ra của modul DES - đồ án “tích hợp thuật toán mật mã DES trên FPGA”
Bảng 3.1 Mô tả các tín hiệu vào ra của modul DES (Trang 48)
Bảng 3.2: Danh sách các tệp tin của modul DES - đồ án “tích hợp thuật toán mật mã DES trên FPGA”
Bảng 3.2 Danh sách các tệp tin của modul DES (Trang 49)
Hình 3.6: Mô tả 16 vòng lặp của DES - đồ án “tích hợp thuật toán mật mã DES trên FPGA”
Hình 3.6 Mô tả 16 vòng lặp của DES (Trang 52)
Hình 3.7: Sơ đồ thiết kế của một vòng lặp - đồ án “tích hợp thuật toán mật mã DES trên FPGA”
Hình 3.7 Sơ đồ thiết kế của một vòng lặp (Trang 53)
Hình 4.1: Cửa sổ tạo Project mới - đồ án “tích hợp thuật toán mật mã DES trên FPGA”
Hình 4.1 Cửa sổ tạo Project mới (Trang 61)
Hình 4.2: Cửa sổ lựa chọn họ thiết bị - đồ án “tích hợp thuật toán mật mã DES trên FPGA”
Hình 4.2 Cửa sổ lựa chọn họ thiết bị (Trang 62)
Hình 4.3: Cửa sổ tạo file nguồn mới cho dự án - đồ án “tích hợp thuật toán mật mã DES trên FPGA”
Hình 4.3 Cửa sổ tạo file nguồn mới cho dự án (Trang 62)
Hình 4.4: Form chính của chương trình - đồ án “tích hợp thuật toán mật mã DES trên FPGA”
Hình 4.4 Form chính của chương trình (Trang 63)
Hình 4.5: Kiểm tra mô đun thiết kế vừa tạo - đồ án “tích hợp thuật toán mật mã DES trên FPGA”
Hình 4.5 Kiểm tra mô đun thiết kế vừa tạo (Trang 63)
Hình 4.6: Sơ đồ tổng quát - đồ án “tích hợp thuật toán mật mã DES trên FPGA”
Hình 4.6 Sơ đồ tổng quát (Trang 64)
Hình 4.8: Sơ đồ Round 1 - đồ án “tích hợp thuật toán mật mã DES trên FPGA”
Hình 4.8 Sơ đồ Round 1 (Trang 64)
Hình 4.7: Sơ đồ mở rộng - đồ án “tích hợp thuật toán mật mã DES trên FPGA”
Hình 4.7 Sơ đồ mở rộng (Trang 64)
Hình 4.9: Cửa sổ lựa chọn Test Bench Waveform - đồ án “tích hợp thuật toán mật mã DES trên FPGA”
Hình 4.9 Cửa sổ lựa chọn Test Bench Waveform (Trang 65)
Hình 4.10 Test Bench Waveform sau khi đã thiết lập sự mô phỏng - đồ án “tích hợp thuật toán mật mã DES trên FPGA”
Hình 4.10 Test Bench Waveform sau khi đã thiết lập sự mô phỏng (Trang 65)
Hình 4.11: Kết quả mô phỏng trên ISE Simulator - đồ án “tích hợp thuật toán mật mã DES trên FPGA”
Hình 4.11 Kết quả mô phỏng trên ISE Simulator (Trang 66)
Hình 4.12: View Design Summary - đồ án “tích hợp thuật toán mật mã DES trên FPGA”
Hình 4.12 View Design Summary (Trang 66)

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