a) Module DES: Trong module sử dụng chíp EP20K100TC144-3 thuộc họ APEX 20K của ALTERA.
Những đặc điểm chính của chíp EP20K100TC144-3 của Altera:
EP20K100TC 144-3 cung cấp 100.000 cổng sử dụng, 144 chân vào ra trong đó có 95 chân I/O dành cho ngƣời sử dụng, 4406 thanh ghi, 53.248 bít RAM, ROM, sử dụng nguồn nuôi 2.5 VDC, làm việc với xung nhịp cao nhất là 133 MHz. Sơ đồ chân tín hiệu của EP20K100TC 144-3 đƣợc nêu trong phụ lục 1.
b) IC cấu hình: Có thể dùng loại EPC1, EPC2... tuỳ theo dung lƣợng của thiết bị. Với họ linh kiện APEX 20K của Altera có thể dùng IC cấu hình loại EPC2LC 20. File chƣơng trình DES.SOF đƣợc nạp cho EPC2LC20 bằng bộ nạp ALL-11C.
EPC2 LC20 là một loại SRAM có dung lƣợng là 1.655 Kbít sử dụng nguồn nuôi là 5.0 V và 3.3 V.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Control Control +3,3V +5V +2,5V Enciph
Reset MOdulE des
Apex20k Ep20k100tc144-3 DỮ LIỆU RA 74LS373 KHOÁ MÃ CÁP MV EPC2 Lc 20 BẢNG LED HIỂN THỊ TÍN HIỆU RA DỮ LIỆU VÀO 74LS244 BẢNG LED HIỂN THỊ TÍN HIỆU VÀO TẠO XUNG NHỊP KHỐI NGUỒN
Hình 3.20: Sơ đồ khối phần cứng mô phỏng.
Chức năng các chân tín hiệu vào/ra của EPC2 LC20 đƣợc mô tả ở bảng 3.10.
Stt Tên Vào/Ra Mô tả
1 TDO Output Nối với cáp JTAG nếu cáp này đƣợc sử
dụng.
2 DATA Output Dữ liệu ra nối tiếp. Dữ liệu đƣợc chốt tại đây
đến khi chân tín hiệu nCS có mức cao thì dữ liệu sẽ đƣợc nạp cho linh kiện FPGA.
3 TCK Input Chân nhịp của JTAG. Chân này nối tới GND
nếu nhƣ cáp JTAG không đƣợc sử dụng.
5 VCCSEL Input Chọn chế độ nguồn cung cấp Vcc. VCCSEL
phải đƣợc nối tới GND nếu linh kiện sử dụng chế độ nguồn cung cấp là 5V và nối tới Vcc nếu linh kiện sử dụng chế độ nguồn cung cấp là 3.3V.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
8 OE(3) Output OE=’1’ cho phép đƣa dữ liệu vào linh kiện,
OE=’0’ reset lại bộ đếm.
9 nCS(3) Input Vào chọn chíp cấu hình khi phải dùng nhiều
IC cấu hình cho một linh kiện FPGA.
10 GND Đất Chân nối đất. Nối tụ điện 0.2mF để lọc
nguồn giữa Vcc và GND.
11 TDI Input Chân vào dữ liệu của mạch JTAG. Không
đƣợc nối chân này nếu nhƣ mạch JTAG không đƣợc sử dụng.
12 nCASC Output Nối tới chân nCS của IC cấu hình tiếp theo
nếu nhƣ trong mạch dùng nhiều hơn một IC cấu hình.
13 nINIT_CONF(3
)
Output Chân tín hiệu này đƣợc nối với nCONFIG
của linh kiện FPGA từ IC cấu hình qua cáp JTAG
14 VPPSEL Input Tƣơng tự nhƣ chân số 5
18 VPP Power Cung cấp nguồn. Với EPC2 chân này đƣợc
nối tới Vcc.
19 TMS Input Chọn chế độ JTAG. Nối chân này tới Vcc
nếu nhƣ mạch JTAG không sử dụng.
20 VCC Power Cung cấp nguồn.
Bảng 3.10: Chức năng các tín hiệu vào/ra của EPC2 LC20.
Chú ý: (3) Các chân OE, nCS, và nINIT_CONF trên EPC2 khi sử dụng nối một
điện trở 1KÙ với Vcc.
c)Mạch chốt dữ liệu vào/ra: Dữ liệu vào/ra có thể đƣợc thiết kế ở dạng nối tiếp hay song song tuỳ thuộc vào hệ thống truyền tin cụ thể đƣợc chọn làm đối tƣợng ghép nối. Trong thiết kế moduê để thuận tiện cho việc mô phỏng tín hiệu, mạch chốt dữ liệu đƣợc thiết kế riêng, sử dụng vi mạch 74LS 244 cùng với 8 cụm chuyển mạch (mỗi cụm có 8 chuyển mạch ) tạo ra 64 bít dữ liệu để mô phỏng cho tín hiệu đầu vào, vi mạch 74LS 373 chốt 64 bít dữ liệu đầu ra hiển thị ra LED, các tín hiệu điều khiển (control) đƣợc đƣa ra từ chíp FPGA nhằm điều khiển việc lấy dữ liệu vào/ra. Để thuận tiện cho quá trình mô phỏng, khoá mã đƣợc nạp sẵn trong modul mã khối.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
d) Bảng dèn LED hiển thị: Dùng trong quá trình mô phỏng mục đích là chỉ thị các bít dữ liệu ở đầu vào và đầu ra. LED ở trạng thái “sáng” chỉ thị cho mức lôgíc “1” và ở trạng thái “tắt” chỉ thị cho mức lôgíc “0”.
e) Mạch tạo xung nhịp: Tạo xung Clock cung cấp cho toàn bộ modul với tần số hoạt động 24MHz.
f) Khối nguồn: Đƣợc thiết kế cho ra các nguồn điện áp DC +5V; +2,5V; +3,3V để cung cấp cho các vi mạch.
Hình 3.21: Hình ảnh module mã khối DES đã được thiết kế. 3.4.1.2. Kiểm tra kết quả thiết kế.
Module DES, sau khi đƣợc cứng hoá bằng công nghệ FPGA, đã đƣợc kiểm tra theo phƣơng pháp Test vector nhằm kiểm chứng tính đúng đắn trong hoạt động trên chíp FPGA. Sau khi kiểm tra từng vector theo hai bảng vector kiểm tra, module DES đã cho kết quả đúng nhƣ tính toán lý thuyết, chứng tỏ hoạt động của module DES trên FPGA hoàn toàn chính xác.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
3.4.2. Đánh giá kết quả thiết kế module mã khối.
Căn cứ vào các yêu cầu đối với module mã khối, việc thiết kế mô phỏng module mã khối với thuật toán DES, sử dụng chíp EP20K100TC 144-3 đã đạt đƣợc các kết quả nhƣ sau:
- Đã thiết kế chế tạo 2 module mã khối với thuật toán DES trên công nghệ FPGA.
- Toàn bộ thuật toán DES đƣợc thiết kế đóng gói trên chíp FPGA, hoạt động chính xác so với mô tả về lý thuyết, đảm bảo đƣợc các yêu cầu về bảo mật thiết kế, kết cấu vật lý và tính ổn định khi hoạt động.
- Về tốc độ mã hoá/giải mã dữ liệu: Phƣơng pháp thiết kế trên sử dụng số chu kỳ xung nhịp cho một quá trình mã hoá là 24, trong đó 8 chu kỳ dành cho lấy dữ liệu và khoá, 16 chu kỳ dành cho 16 vòng lặp, dữ liệu ra đƣợc lấy song song 64 bít. Nhƣ vậy với xung nhịp 24 MHz, dữ liệu đầu vào mã hoá 64 bít thì tốc độ mã hoá dữ liệu tính theo lý thuyết là:(24 MHz/s * 64bít)/24 = 64Mbít/s. Với các loại chíp FPGA khác nhau sẽ hoạt động với các tốc độ xung nhịp khác nhau. Chíp EP20K100TC144-3 làm việc với xung nhịp cao nhất là 133 MHz, nhƣ vậy tốc độ mã hoá dữ liệu tính theo lý thuyết sẽ đạt: (133MHz/s * 64 bít) / 24 355 Mbít/s. - Về hiệu suất sử dụng chíp FPGA: Số cổng logíc sử dụng cho thiết kế là (tính theo %): 67.740 gate/100.000 gate = 67,74%. Số chân tín hiệu vào/ra sử dụng cho thiết kế là: 83/95 87%.
Trong thực tế nhiều hệ thống truyền tin hiện đại có tốc độ truyền dữ liệu rất lớn vì vậy để đạt đƣợc tốc độ mã hoá/giải mã dữ liệu cao hơn, có thể sử dụng hƣớng thiết kế theo phƣơng pháp đƣờng ống (pipeline). Thay vì xử lý một khối dữ liệu trong một thời điểm, thiết kế pipeline có thể xử lý hai hay nhiều khối dữ liệu trong cùng một thời điểm. Thuật toán DES với 16 vòng lặp, thiết kế pipeline đầy đủ sẽ đƣợc tạo ra bởi pipeline 16 tầng. Phƣơng pháp này cho tốc độ xử lý dữ liệu tăng một cách đáng kể, tuy nhiên số cổng logíc sử dụng cũng tăng rất nhiều có nghĩa rằng phải dùng chíp FPGA có số lƣợng cổng lôgíc lớn.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
kế sẽ phải tính toán và lựa chọn chíp FPGA thích hợp về tốc độ xử lý dữ liệu, hiệu suất sử dụng chíp...
3.5 Kết luận chƣơng.
Chƣơng 3 đã trình bày các vấn đề về cấu trúc của module mã khối, cách lựa chọn thuật toán cho mô phỏng thiết kế cùng các quy trình và công cụ để thiết kế module mã khối trên FPGA; phần cứng mô phỏng module mã khối với các khối xử lý mã hoá/giải mã, các khối cấu hình và các phần mạch phụ trợ; kết quả thiết kế đạt đƣợc với các đánh giá, kiểm tra, kiểm nghiệm thực tế.
3.6 Kết luận chung.
Với sự phát triển vƣợt bậc của Khoa học kỹ thuật, đặc biệt là kỹ thuật mật mã, trong đó phải kể đến hệ mã khối là hệ mật có nhiều ƣu điểm phù hợp hơn cho các hoạt động bảo mật tốc độ cao. Việc cứng hoá các thuật toán mã khối bằng công nghệ FPGA để giải quyết bài toán đáp ứng tốc độ xử lý dữ liệu, tính chủ động, chuyên dụng hoá thiết bị bảo mật, hạ giá thành thiết bị trong điều kiện thực tế về công nghệ và yêu cầu sử dụng ở Việt Nam là một định hƣớng nghiên cứu mới có tính thực tế cao.
FPGA với cấu trúc chip đƣợc đốt vật lý, bảo đảm toàn vẹn, chống tấn công do thám thiết kế, không phụ thuộc vào hệ điều hành nào… đã chứa đựng trong nó những thuộc tính thích hợp cao cho an toàn mật mã. Hơn nữa, FPGA thích hợp cho
những sản phẩm đang trong quá trình nghiên cứu phát triển: với tiêu chí Dễ phát
triển góp phần đáng kể rút ngắn thời gian nghiên cứu phát triển cũng nhƣ hạ giá thành tổng thể cho các sản phẩm loạt nhỏ và vừa; và đối với những sản phẩm cần khả năng cấu hình lại (nhƣ thay thế thuật toán) thì Tính mềm dẻo cần chú trọng, do vậy FPGA là thích hợp. Thực tế đã cho thấy FPGA ƣu thế hơn so với ASSP và ASIC. 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ã được lựa chọn chính là FPGA với những ƣu điểm chính:
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
+ An toàn mật mã cao. + Mềm dẻo.
+ Dễ phát triển.
Nhƣ vậy, các thuật toán bảo mật đều có thể thực hiện đƣợc bằng FPGA với nhiều hiệu năng, tính tối ƣu không thể phủ nhận. Sử dụng và phát triển các thuật toán bảo mật bằng công nghệ FPGA sẽ mang lại sự chủ động cho việc đảm bảo an ninh trên mạng, đảm bảo tính tƣờng minh an toàn của dữ liệu. Áp dụng công nghệ FPGA trong lĩnh vực bảo mật nhằm đáp ứng yêu cầu về an toàn thông tin ở Việt Nam là hƣớng nghiên cứu ứng dụng cần đƣợc phát triển.
Tuy nhiên, do trình độ của bản thân và thời gian thực hiện đề tài có hạn nên không thể tránh khỏi những hạn chế. Rất mong nhận đƣợc những ý kiến đóng góp, giúp đỡ của các Thầy Cô giáo và các đồng chí có quan tâm để kết quả đề tài này đƣợc tốt hơn.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
TÀI LIỆU THAM KHẢO
Tiếng Việt:
[1] Đỗ Xuân Tiến (2001), Kỹ thuật vi xử lý và lập trình Assembly cho hệ vi xử
lý, NXB Khoa học và Kỹ thuật.
[2] Đỗ Xuân Tiến (2003), Kỹ thuật lập trình điều khiển hệ thống, NXB Khoa
học và Kỹ thuật, Hà Nội.
[3] 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.
[4] Ban Cơ yếu Chính phủ (2004), Cơ sở mật mã hiện đại, Hà Nội.
[5] 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.
[6] Đặng Văn Chuyết, Nguyễn Tuấn Anh (2001), Cơ sở lý thuyết truyền tin,
NXB Giáo dục, Hà Nội.
[7] Nguyễn Minh Đức (2004), Bộ vi xử lý thiết kế bằng máy tính các hệ kỹ thuật số, NXB Tổng hợp TP. Hồ Chí Minh.
[8] Hồ Trung Mỹ (2002), VHDL và thiết kế số, Đại học Bách khoa TP. Hồ Chí Minh.
[9] Vũ Ngọc Phàn (2006), Lý thuyết Thông tin và Mã hoá, NXB Bƣu điện.
Tiếng Anh:
[10] A.J.Menezes, P.C.Van Oorschot, S.A.Vanston (1997), Handbock of
applied cryptography, CRC Press 1997.
[11] Altera Corporation (1997), MAX+PLUS II: Programmable Logic
Development System, United States of America.
[12] Altera Corporation (1997), Quartus II, United States of America.
[13] Daniel D. Gajski, Nikil D. Dutt, Allen C-H Wu, Steve Y-L Lin (1992),
High-Level Synthesis Introdution to Chip and System Design,
[14] Douglas R. Stinson (1995), Crytography: Theory And Practice, CRC
Press, Inc.
[15] Don Davis (Winter 2002), “Architectural Synthesis: Unleashing the Power
of FPGA System-Level Design”, Xcell Journal, (Issue 44), pages 30 – 34,
Xilinx, United States of America.
[16] Giovanni De Micheli, Rajesh K. Gupta (3/1997), “Hardware/Software Co-Design”, Proceedings of the IEEE, (Vol. 85, No 3), pages 349 - 364.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
[17] Michael John Sebastian Smith (1997), Application-Specific Integrated
Circuits, Hardcover (www.Amazon.com), United States of America. [18] Peter J.Ashenden (1990), The VHDL CooKBook, University of Adelaide,
South Australia.
[19] Roger Lipsett & Carl Schaefer (1989), VHDL: Hardware Description and
Design, Kluwer Academic Publishers, United States of America.
[20] Sharon Keller, Miles Smid (2/1998), NIST Special Publication 800-17, U.S. Department of Commerce.
[21] Nguồn tham khảo từ Internet: - www.xilinx.com
- www.actel.com - www.intel.com
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
PHỤ LỤC 1
Quartus II Version 4.2 Build 157 04/05/2005 SJ Full Version CHIP "DES" ASSIGNED TO AN: EP20K100TC144-3
Pin Name/Usage : Location : Dir. : I/O Standard : Voltage : I/O Bank : User Assignment
---
VCC_INT : 1 : power : : 2.5V : :
DataIn[0] : 2 : input : LVTTL/LVCMOS : : : Y
DataIn[1] : 3 : input : LVTTL/LVCMOS : : : Y
GND : 4 : gnd : : : :
DataIn[2] : 5 : input : LVTTL/LVCMOS : : : Y
DataIn[3] : 6 : input : LVTTL/LVCMOS : : : Y
DataIn[4] : 7 : input : LVTTL/LVCMOS : : : Y
DataIn[5] : 8 : input : LVTTL/LVCMOS : : : Y
DataIn[6] : 9 : input : LVTTL/LVCMOS : : : Y
DataIn[7] : 10 : input : LVTTL/LVCMOS : : : Y
cs[0] : 11 : output : LVTTL/LVCMOS : : : Y GND_IO : 12 : gnd : : : : cs[1] : 13 : output : LVTTL/LVCMOS : : : Y cs[2] : 14 : output : LVTTL/LVCMOS : : : Y cs[3] : 15 : output : LVTTL/LVCMOS : : : Y VCC_INT : 16 : power : : 2.5V : : GND : 17 : gnd : : : : MSEL0 : 18 : input : : : : MSEL1 : 19 : input : : : : GND+ : 20 : : : : : VCC_INT : 21 : power : : 2.5V : : NCONFIG : 22 : input : : : : cs[4] : 23 : output : LVTTL/LVCMOS : : : Y cs[5] : 24 : output : LVTTL/LVCMOS : : : Y cs[6] : 25 : output : LVTTL/LVCMOS : : : Y cs[7] : 26 : output : LVTTL/LVCMOS : : : Y GND* : 27 : : : : : VCC_IO : 28 : power : : 3.3V : : GND* : 29 : : : : : GND* : 30 : : : : : GND* : 31 : : : : : GND* : 32 : : : : : GND* : 33 : : : : : GND : 34 : gnd : : : : GND* : 35 : : : : : VCC_INT : 36 : power : : 2.5V : :
res_out[0] : 37 : output : LVTTL/LVCMOS : : : Y
res_out[1] : 38 : output : LVTTL/LVCMOS : : : Y
res_out[2] : 39 : output : LVTTL/LVCMOS : : : Y
res_out[3] : 40 : output : LVTTL/LVCMOS : : : Y
res_out[4] : 41 : output : LVTTL/LVCMOS : : : Y
GND_IO : 42 : gnd : : : :
res_out[5] : 43 : output : LVTTL/LVCMOS : : : Y
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
res_out[7] : 45 : output : LVTTL/LVCMOS : : : Y
res_out[8] : 46 : output : LVTTL/LVCMOS : : : Y
res_out[9] : 47 : output : LVTTL/LVCMOS : : : Y
res_out[10] : 48 : output : LVTTL/LVCMOS : : : Y
res_out[11] : 49 : output : LVTTL/LVCMOS : : : Y
res_out[12] : 50 : output : LVTTL/LVCMOS : : : Y
TMS : 51 : input : : : : TCK : 52 : input : : : : Clk : 53 : input : LVTTL/LVCMOS : : : Y GND : 54 : gnd : : : : VCC_INT : 55 : power : : 2.5V : : GND+ : 56 : : : : : STATUS : 57 : bidir : : : : CONF_DONE : 58 : bidir : : : :
res_out[13] : 59 : output : LVTTL/LVCMOS : : : Y
res_out[14] : 60 : output : LVTTL/LVCMOS : : : Y
VCC_IO : 61 : power : : 3.3V : :
res_out[15] : 62 : output : LVTTL/LVCMOS : : : Y
res_out[16] : 63 : output : LVTTL/LVCMOS : : : Y
res_out[17] : 64 : output : LVTTL/LVCMOS : : : Y
res_out[18] : 65 : output : LVTTL/LVCMOS : : : Y
res_out[19] : 66 : output : LVTTL/LVCMOS : : : Y