Tải bản đầy đủ (.doc) (24 trang)

tóm tắt luận văn thạc sĩ kỹ thuật 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 (237.55 KB, 24 trang )

MỞ ĐẦU
Khi nhu cầu trao đổi thông tin dữ liệu ngày càng lớn và đa dạng, các tiến bộ
về điện tử - viễn thông và công nghệ thông tin không ngừng được phát triển ứng
dụng để nâng cao chất lượng và lưu lượng truyền tin thì các quan niệm về ý tưởng
và biện pháp bảo vệ thông tin dữ liệu cũng được đổi mới. Bảo vệ an toàn thông tin
dữ liệu là một chủ đề rộng, có liên quan đến nhiều lĩnh vực và trong thực tế có thể
có rất nhiều phương pháp được thực hiện để bảo vệ an toàn thông tin dữ liệu. Các
phương pháp bảo vệ an toàn thông tin dữ liệu có thể được quy tụ vào ba nhóm
chính:
- Bảo vệ an toàn thông tin bằng các biện pháp hành chính.
- Bảo vệ an toàn thông tin bằng các biện pháp kỹ thuật (phần cứng).
- Bảo vệ an toàn thông tin bằng các biện pháp thuật toán (phần mềm).
Ba nhóm trên có thể được ứng dụng riêng rẽ hoặc phối kết hợp. Môi trường
khó bảo vệ an toàn thông tin nhất và cũng là môi trường đối phương dễ xâm nhập
nhất đó là môi trường mạng và truyền tin. Biện pháp hiệu quả nhất và kinh tế nhất
hiện nay trên mạng truyền tin và mạng máy tính là biện pháp thuật toán.
Để bảo mật thông tin trên đường truyền người ta sử dụng các phương pháp
mã hoá. Dữ liệu được biến đổi từ dạng nhận thức được sang dạng không nhận thức
được theo một thuật toán nào đó và sẽ được biến đổi ngược lại ở trạm nhận.
Mật mã là một ngành khoa học chuyên nghiên cứu các phương pháp truyền
tin bí mật. Mật mã bao gồm : Lập mã và phá mã. Lập mã bao gồm hai quá trình: mã
hóa và giải mã. Để bảo vệ thông tin trên đường truyền người ta thường biến đổi nó
từ dạng nhận thức được sang dạng không nhận thức được trước khi truyền đi trên
mạng, quá trình này được gọi là mã hoá thông tin (encryption), ở trạm nhận phải
thực hiện quá trình ngược lại, tức là biến đổi thông tin từ dạng không nhận thức
được (dữ liệu đã được mã hoá) về dạng nhận thức được (dạng gốc), quá trình này
được gọi là giải mã. Đây là một lớp bảo vệ thông tin rất quan trọng và được sử dụng
rộng rãi trong môi trường mạng.
Trong kỹ thuật mật mã, hệ mã khối được đánh giá là hệ mật có nhiều ưu
điểm, phù hợp cho các hoạt động bảo mật tốc độ cao. Tuy nhiên, từ trước đến nay ở
nước ta, việc thực hiện mã khối mới chỉ thực hiện bằng phần mềm trên máy tính PC


và chỉ áp dụng được cho các hệ truyền tin có tốc độ không cao, do vậy khả năng
ứng dụng mã khối vào bảo mật cho các luồng thông tin tốc độ cao còn gặp nhiều
khó khăn. Bài toán bảo mật luồng dữ liệu tốc độ cao chỉ có thể giải quyết được trên
1
cơ sở “cứng hoá” được các thuật toán mã khối, theo nghĩa việc thực hiện các thuật
toán mã khối được thiết kế bằng phần cứng. Do tính chất phức tạp của các thuật
toán mã khối, việc cứng hoá mã khối theo phương pháp thiết kế mạch điện tử truyền
thống trong điều kiện nền khoa học và công nghệ ở Việt Nam còn hạn chế là rất khó
khăn, trong khi đó hiện nay đã có nhiều công nghệ hiện đại để xử lý bài toán này
như công nghệ ASIC (Application-Specific Integrated Circuit) hay FPGA (Field-
Programmable Gate Array ).
Xuất phát từ các vấn đề trên, tác giả tập trung nghiên cứu “Thiết kế Hệ
thống mã khối bằng công nghệ FPGA” để cứng hoá các thuật toán mã khối. 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.
Kết quả nghiên cứu của đề tài sẽ góp phần làm rõ tính ưu việt của công nghệ
FPGA được ứng dụng trong thiết kế hệ chuyển đổi mã mật tốc độ cao, đáp ứng
đượ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 là một sự vận dụng, nghiên cứu phù hợp với điều kiện thực tế về công nghệ và
yêu cầu sử dụng ở Việt Nam .
Nội dung của đề tài “Thiết kế hệ thống mã khối bằng công nghệ FPGA”
bao gồm:
Chương 1: Hệ truyền tin mật và cơ sở lý thuyết mã khối.
Trình bày các vấn đề cơ bản về lý thuyết truyền tin, lý thuyết mã và mã mật
kết hợp với sự phát triển của kỹ thuật vi xử lý hiện đại; Giới thiệu tổng quan về hệ
truyền tin mật và cơ sở lý thuyết mã khối.
Chương 2: Công nghệ FPGA và ngôn ngữ mô tả phần cứng VHDL.
Trình bày các vấn đề liên quan đến công nghệ FPGA, cấu trúc chức năng của
FPGA, phân loại cũng như các ứng dụng thực tế của công nghệ FPGA. Giới thiệu

FPGA của hãng Altera và các công cụ thiết kế đi kèm của hãng cùng với ngôn ngữ
mô tả phần cứng VHDL.
Chương 3: Thiết kế hệ thống mã khối.
Chương này trình bày về phương pháp thiết kế module mã khối trên công
nghệ FPGA, phần cứng mô phỏng module DES và các kết quả thiết kế module mã
khối DES trên FPGA.

2
CHƯƠNG 1
HỆ TRUYỀN TIN MẬT VÀ CƠ SỞ LÝ THUYẾT MÃ KHỐI
1.1. TỔNG QUAN VỀ HỆ 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.
Hình 1.1: Mô hình hệ thống truyền tin.
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.
Hình 1.2: Mô hình hệ thống truyền tin mật.
Các hệ mật hiện nay được chia thành hai loại: hệ mật khóa bí mật và hệ mật
khóa công khai. Trong hệ mật khóa bí mật, những người sử dụng hợp pháp (người
gửi và người nhận) phải chia sẻ một khóa bí mật chung và khóa đó không được biết
đối với thám mã đối phương. Trong hệ mật khóa công khai, người sử dụng hợp
pháp chỉ cần các thông tin trung thực công khai nào đó. Trong luận văn chỉ đề cập
đến việc ứng dụng các hệ mật khoá bí mật.
+ Mô hình của hệ mật khoá bí mật:
3
m ho¸·
kªnh tin

nhËn tin
gi¶i m ·
nguån tin
kho¸ mËt m ·
m th¸m·
kho¸ mËt m ·
nhiÔu
nguån tin kªnh tin nhËn tin
Hệ mã được phân thành hai loại là mã khối và mã dòng, trong đó:
Mã dòng: Là một dạng biến đổi loạt, biến đổi tuần tự bản mã theo bít (ký tự).
Bộ tạo dãy khoá hay còn gọi là bộ tạo khoá chạy sinh ra các bít k
1
, k
2
,…, k
i
,…Dãy
khoá này được cộng mô đun 2 với dãy các bít của bản rõ: p
1
, p
2
,…, p
i
,… để thành
bản mã: c
i
= p
i
⊕ k
i

. Tại phía nhận, bản mã được cộng mô đun 2 với dãy khoá đồng
nhất để có bản rõ: c
i
⊕ k
i
= p
i
⊕ k
i
⊕ k
i
= p
i
.
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 đó.
1.2. CƠ SỞ LÝ THUYẾT VỀ MÃ KHỐI.
Mã pháp khối là họ các biến đổi thuận nghịch các khối (phần độ dài xác định)
của bản rõ. Thực tế, mã pháp khối là hệ mật thay thế trên bộ chữ cái các khối (phép
thế có thể một hoặc nhiều bộ chữ cái tuỳ thuộc vào điều kiện của mã pháp khối).
Các mã pháp khối hiện nay được sử dụng rất phổ biến. Nguyên lý thiết kế mã khối
được dựa trên nguyên lý chung về độ an toàn và nguyên lý thiết kế cho ứng dụng.
1.3. GIỚI THIỆU CHUẨN MÃ HOÁ DỮ LIỆU DES.
Chuẩn mã dữ liệu DES là một kỹ thuật mã khối có cấu trúc dạng Feistel, 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.
4
Thuật toán 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 x

0
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: x
0
= IP(X) = L
0
R
0
, trong
đó L
0
gồm 32 bít đầu và R
0
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. Ta sẽ tính L
i
R
i
, 1≤ i
≤16 theo quy tắc sau:
L
i
= R
i-1
R
i
= L
i-1
⊕ f(R
i-1

,K
i
)
trong đó ⊕ kí hiệu phép hoặc loại trừ của hai xâu bít (cộng theo modulo 2). f là một
hàm bao gồm các phép hoán vị, phép thế, phép cộng modun 2, còn K
1
, K
2
, . . . , K
16
là các xâu bít độ dài 48 được tính như hàm của khoá K (trên thực tế mỗi K
i
là một
phép chọn hoán vị bít trong K). K
1
, . . ., K
16
sẽ tạo thành bảng khoá. Một vòng của
phép mã hoá được mô tả trên hình 1.7.
3. Áp dụng phép hoán vị FP

cho xâu bít R
16
L
16
, ta thu được bản mã y. Tức là
y= FP

(R
16

L
16
). Hãy chú ý thứ tự đã đảo của L
16
và R
16
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 K
16
,…,K
1
. Đầu ra của thuật
toán sẽ là bản rõ x.
1.4. 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.13.
5
+ 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.
+ Thiết kế mã khối bằng công cụ phần cứng.
Phần lớn các kỹ thuật mã khối thông dụng hiện nay đang được dùng để bảo
mật thông tin trong các hệ truyền tin mật là có cấu trúc Feistel, đây là một cấu trúc
mã khối rất thích hợp cho việc thiết kế bằng phần cứng.
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
Công nghệ ASIC cho phép thiết kế thuật toán mã khối với hầu hết các ưu điểm
của giải pháp phần cứng, và tốc độ mã hoá - giải mã dữ liệu khi thiết kế thuật toán
mã khối bằng công nghệ ASIC có thể lên tới vài Gigabít/s.
Công nghệ FPGA là một sự phát triển của công nghệ ASIC, tuy tốc độ xử lý
dữ liệu có thấp hơn một chút nhưng nó đã thừa hưởng được những tính năng ưu
việt, khắc phục được mặt hạn chế của ASIC. Người thiết kế sử dụng phần mềm để
tiến hành thiết kế với các phần tử logic cơ bản và tạo các giản đồ kết nối. 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.
CHƯƠNG 2: CÔNG NGHỆ FPGA
6
2.1. TỔNG QUAN VỀ CÔNG NGHỆ FPGA.
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.
2.1.1 Cấu trúc cơ bản của FPGA.
FPGA gồm một dãy các phần tử rời rạc có thể được kết nối với nhau bằng các
nguồn kết nối chung. Các kết nối giữa các phần tử có thể lập trình được. Hình 2.4
giới thiệu về mô hình tổng quát của một FPGA. Nó gồm dãy 2 chiều các logic block
có thể được kết nối bằng các nguồn kết nối chung. Nguồn kết nối là các đoạn dây

(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 logic block với các segment hoặc giữa các segment
với nhau. Mạch lôgíc được cài đặt trong FPGA bằng cách ánh xạ lôgíc vào các
logic block riêng rẽ và sau đó nối các logic block cần thiết qua các chuyển mạch.
Trong đó có các khối:
- Các khối logic (logic block): cấu trúc và nội dung của logic block được gọi
là kiến trúc của nó. Kiến trúc của khối logic có thể được thiết kế theo nhiều cách
khác nhau. Một số khối logic có thể chỉ là các cổng NAND 2 đầu vào, tuy nhiên
cũng có thể nó là một bộ dồn kênh (multiplexer), hay các bảng tìm kiếm LUT
(Look-Up Table). Trong một số loại FPGA các khối logic có thể có cấu trúc hoàn
toàn giống như PAL. Hầu hết các khối logic chứa một số loại flip-flop để hỗ trợ cho
việc thực hiện các mạch tuần tự.
- Các nguồn tài nguyên kết nối: Cấu trúc và nội dung của các nguồn kết nối
trong FPGA được gọi là kiến trúc routing (routing architecture). Kiến trúc routing
gồm các đoạn dây nối và các chuyển mạch lập trình được. Các chuyển mạch lập
trình được có thể có nhiều cấu tạo khác nhau. Kiến trúc routing gồm các đoạn dây
nối và các chuyển mạch lập trình được. Các chuyển mạch này có thể cấu tạo khác
nhau như: Transitor truyền (pass - transitor) được điều khiển bởi cell SRAM, cầu
chì nghịch (anti - fuse), EPROM transitor và EEPROM transitor
7
- 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.
Cá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 (hay bộ tạo hàm) 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.
- Look-Up Tables (LUT): Các bộ tạo chức năng của FPGA thực hiện như LUT

có bốn đầu vào. Để hoạt động như một bộ tạo chức năng, mỗi một LUT có thể cung
cấp một RAM 16x1bit đồng bộ. Hơn nữa hai LUT trong một Slice có thể được kết
hợp để tạo RAM 16x2 bit hoặc 32x1 bit đồng bộ .
- Storage Element: Các phần tử lưu trữ trong slice của FPGA có thể được xắp
đặt như một Flip-Flop loại D kích hoạt bằng sườn, hoặc như một bộ chốt nhạy mức.
- Block RAM: Trong FPGA hợp nhất một vài bộ nhớ RAM theo khối thành khối
lớn hơn (gọi là SelectRAM +), điều này cần bổ xung các LUT RAM đã được phân
phối và kiến trúc bộ nhớ không bền vững này được thực hiện trong các LB, các khối
bộ nhớ Block RAM được tổ chức theo các cột.
8
2.1.2. Ứng dụng của FPGA.
FPGA có thể sử dụng trong hầu hết các ứng dụng hiện đang dùng CPLD, PLD
và các mạch tích hợp nhỏ. Dưới đây là các ứng dụng điển hình của FPGA:
1. Các mạch tích hợp ứng dụng đặc biệt: FPGA là một phương tiện tổng quát
nhất để thực hiện các mạch logic số.
2. Thiết kế mạch ngẫu nhiên: Mạch logic 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 thì mạch có thể thực hiện
thay thế bằng FPGA.
3. Thay thế các chíp tích hợp nhỏ cho mạch ngẫu nhiên: Các mạch trong các
sản phẩm thương mại thường chứa nhiều chíp SSI (Small Scale Integrated). Trong
nhiều trường hợp các chip SSI này có thể được thay thế bằng FPGA và kết quả là
giảm diện tích của bo mạch đi đáng kể.
4. Chế tạo mẫu: FPGA rất lý tưởng cho các ứng dụng tạo sản phẩm mẫu. Giá
thành thực hiện thấp, thời gian ngắn.
5. Máy tính dựa trên FPGA: Một loại máy tính mới có thể được chế tạo với
các FPGA có thể tái lập trình ngay trên mạch FPGA. Các máy này có một bo mạch
chứa các FPGA mà các chân nối với các chip lân cận giống như thông thường.
2.1.3. Quá trình thiết kế cơ bản trên FPGA.
Quá trình thiết kế trên FPGAs sử dụng hệ thống CAD (Computer Aided
Design). Hình 2.10 biểu diễn các bước trong hệ thống CAD tiêu biểu để tạo ra một

mạch FPGA. Từ trên hình vẽ ta thấy, điểm bắt đầu cho mạch thiết kế là mạch lôgic
ban đầu. Bước này cần một sơ đồ biểu diễn mạch, hay một mô tả VHDL hoặc một
đặc tả các biểu thức Boolean. Từ các đầu vào như vậy, chúng được chuyển thành
dạng chuẩn như là các biểu thức Boolean. Các biểu thức Boolean này được xử lý
bằng công cụ tối ưu lôgíc (rút gọn các biểu thức), mục đích của việc này là để tối ưu
về diện tích và tốc độ của mạch thiết kế. Sau khi đã được tối ưu, các biểu thức
Boolean được chuyển tới mạch lôgíc block của FPGA thông qua chương trình ánh
xạ công nghệ (technology mapping), bộ ánh xạ sẽ tối thiểu số khối được dùng và
giảm đường dẫn để tối ưu về giữ chậm. Sau khi ánh xạ mạch vào các logic block thì
cần phải quyết định đặt mỗi khối ở đâu, công việc này do chương trình Placement
giải quyết. Bước cuối cùng trong hệ thống CAD là nối kết do phần mềm Rounting
thực hiện, chúng ấn định các đoạn dây FPGA và chọn các chuyển mạch có thể lập
trình phù hợp với các kết nối trong logic block. Sau khi thực hiện xong bước này,
kết quả của CAD sẽ được nạp vào đơn vị lập trình tạo ra chip FPGA cuối cùng.
9

Sau đây ta sẽ nghiên cứu chi tiết từng giai đoạn của quá trình thiết kế CAD:
+ Tối ưu lô gic.
Đây chính là công việc sửa lại cấu trúc để giảm sự phức tạp của mạch ban đầu.
Trong giai đoạn này không chú ý đến kiểu của các phần tử sẽ được dùng sau này
nên được gọi là tối ưu không phụ thuộc vào công nghệ (technology-independent).
Tiến hành tối ưu chính là làm giảm sự dư thừa hoặc loại bỏ những biểu thức con
chung. Mạch sau khi được tối ưu có chức năng tương đương với mạch ban đầu.
+ Ánh xạ công nghệ.
Sau khi tối ưu logic, ánh xạ công nghệ sẽ biến đổi mạng này thành mạch cuối
cùng. Điều này sẽ được làm bằng cách chọn lựa từng phần của mạng và mỗi cái sẽ
được thực hiện bởi một trong những phần tử của mạch có sẵn, và xác định những
mạch này sẽ được nối với nhau như thế nào.
+ Sắp xếp các phần tử (Placement).
Giai đoạn này của thiết kế gồm các công việc chính như sau:

10
Phân chia hệ thống (System Partitioning): Một hệ thống vi điện tử bao gồm nhiều
khối chức năng, nếu một khối chức năng quá lớn thì chúng ta phải thực hiện việc
tách hoặc phân chia chức năng của khối đó ra làm các khối nhỏ hơn theo mục đích
và định hướng mà chúng ta cần chỉ định.
a) Lên sơ đồ mặt bằng, bố trí các khối (Floorplanning): Sau khi phân chia hệ
thống xong sẽ thực hiện việc lên sơ đồ mặt bằng, bố trí các khối. Floorplanning thực
hiện các công việc như tối thiểu hóa độ dài kết nối và trễ tín hiệu giữa các khối, sắp
đặt các khối đã cố định và đặt lại các khối di độngđược thực hiện trước Placement,
công việc sắp đặt, bố trí các phần tử logic trên từng khối, tổ chức các vùng kết nối
giữa các khối, phân phối mặt bằng cho nguồn và các đường vào ra
b) Sắp xếp các phần tử (Placement): Placement là bước tiếp theo của
Floorplanning, nó thực hiện việc sắp đặt các phần tử logic vào một khối di
động đây là bước quan trọng trong thiết kế mạch và rất phức tạp, nếu Placement
không tốt sẽ dẫn đến việc chiếm diện tích lớn và giảm tốc độ thực thi, nhiều khi còn
dẫn tới khả năng không Rounting được.
Placement, System Partitioning và Floorplanning có thể hiểu chung là phân
chia hệ thống trên FPGA - tức là lên sơ đồ mặt bằng, bố trí các khối lô gic, và ta có
thể gọi chung là Placement.
c) Mục tiêu và đối tượng của Placement: Mục tiêu chính của một công cụ
placement (Sắp đặt bố trí các phần tử logic trên từng khối) là sắp đặt tất cả các phần
tử logic trong cùng các khối di động trên một chip. Về lý tưởng mà nói, đối tượng
của placement là:
- Bảo đảm công cụ định tuyến có thể hoàn chỉnh bước định tuyến.
- Tối thiểu hoá tất cả các khoảng trễ trên đường kết nối.
- Làm cho mật độ của chíp càng cao càng tốt.
- Tối thiểu hoá tiêu thụ nguồn.
- Tối thiểu hoá sự xuyên nhiễu giữa các tín hiệu.
d) Gán chân (Pin Assignmen) : Mục đích của việc gán chân là định nghĩa tín
hiệu mà mỗi chân sẽ nhận được. Việc gán chân có thể thực hiện được trong quá

trình placement hoặc sau quá trình này.
+ Định tuyến trên FPGA (rounting).
Rounting là công việc cuối cùng trong quá trình thiết kế, sau khi ta đã sắp đặt
và bố trí xong các phần tử logic trên các khối di động thì đây chính là việc kết nối
bằng cách định tuyến cho chíp đó.
11
Việc định tuyến gồm 2 bước: định tuyến tổng thể và định tuyến chi tiết. Định tuyến
tổng thể được thực hiện trước, sau đó các định tuyến chi tiết thực hiện theo định
hướng chung của định tuyến tổng thể đã đưa ra.
Các vấn đề chính của định tuyến là:
- Định tuyến được phân thành định tuyến tổng thể và chi tiết.
- Các thuật toán định tuyến phải phù hợp với các thuật toán placement.
- Định tuyến không thể hoàn thành nếu không đi dây được.
- Các đường nguồn và xung nhịp được điều khiển trong trường hợp đặc biệt.
- Độ rộng các đường nguồn và xung nhịp đồng bộ được thiết lập bằng tay.
+ Tải nạp chương trình.
Đây là khâu tạo ra sản phẩm của thiết kế. Tải chương trình nhìn chung được
xem như là tải thông tin xuống thiết bị dễ biến đổi như SRAM FPGA. Thông tin
cấu hình của thiết bị được nạp vào trong bộ nhớ của thiết bị. Luồng các bit mà nó
được truyền đi có chứa tất cả các thông tin định nghĩa logic và các đường nối của
thiết kế và thông tin này khác nhau đối với thiết kế khác nhau.
Nạp chương trình được dùng cho để lập chương trình cho tất cả các thiết bị
logic có thể lập trình được không bị thay đổi, chẳng hạn như PROM nối tiếp. Việc
nạp chương trình thực hiện giống chức năng như tải chương trình, riêng các thông
tin về cấu hình vẫn còn sau khi mất điện.
2.1.4. Giới thiệu về FPGA của hãng ALTERA.
Kiến trúc cơ bản của Altera FPGA là dựa trên công nghệ lập trình EPROM,
hình 2.11 minh họa kiến trúc tổng quát của Altera FPGA MAX 7000. Bao gồm một
mảng lớn các Block lập trình được gọi là Logic Array Block (LABs) được kết nối
với nhau bởi các nguồn tài nguyên rounting.

- Thời gian thiết kế, thời gian mô phỏng và chế tạo nhanh.
- Tốc độ xử lý của các thiết bị cao.
- Giá thành, chi phí đầu tư thấp hơn so với các hãng khác, mức độ rủi ro trong
đầu tư thấp.
- Khả năng thừa hành cao.
- Đáp ứng hầu hết các yêu cầu từ đơn giản tới phức tạp.
- Hệ thống có mức tích hợp và độ ổn định cao.
- Công cụ hỗ trợ và phát triển được cung cấp đầy đủ.
- Phù hợp với khả năng và xu thế phát triển của các hệ thống số.
12
Nhìn chung, hệ thống cũng như các thiết bị của Altera có mức chi phí đầu tư
so với mức đầu tư ban đầu vào các công nghệ cao trong lĩnh vực điện tử - viễn
thông ở Việt Nam hiện nay là tương đối cao. Bên cạnh đó, nó đòi hỏi có đội ngũ
khoa học để tiếp thu, nghiên cứu và sử dụng được đào tạo kỹ lưỡng và có trình độ
cao.
2.1.5. Giới thiệu công cụ thiết kế Quartus II.
Công cụ thiết kế Quartus II là hệ thống phát triển thứ tư của hãng ALTERA
cho các linh kiện lập trình được. Nó đưa ra các đặc trưng rất mạnh để rút ngắn chu
trình thiết kế và tăng năng suất thiết kế. Sử dụng chủ yếu cho thiết kế các họ chíp
FPGA có dung lượng lớn như APEX 20K, STATIC
Các đặc điểm chính là:
- Hỗ trợ đa xử lý (Multi-processor) và tăng cường khả năng biên dịch lại để rút
ngắn chu trình thiết kế.
- Phương pháp tích hợp toàn bộ hệ thống trên một chip kết hợp với tính năng
soạn thảo mức khối, tính toán theo nhóm và hỗ trợ mở rộng cho các siêu chức năng
(MegaFunction) sẽ tổ chức các sơ đồ phát triển hệ thống số tốt hơn, nâng cao hiệu
suất làm việc và chất lượng của hệ thống.
13
- Các tính năng giao tiếp dễ dàng với các phần mềm EDA khác cho phép người
thiết kế sử dụng các công cụ mà họ đã quen thuộc để thiết kế cho các mạch tổ hợp

logic lập trình được của hãng ALTERA.
- Khả năng hỗ trợ kỹ thuật bằng cách tiếp cận trực tiếp tới hệ cơ sở dữ liệu trực
tuyến của ALTERA từ phần mềm Quartus II làm mỗi thành viên trong bộ phận
thiết kế làm việc có hiệu quả hơn.
- Hỗ trợ mạch tổ hợp logic lập trình được APEX 20K với chất lượng cao và khả
năng tích hợp toàn bộ hệ thống trên một chip (System-on-a-Programmble-Chip).
2.2. NGÔN NGỮ MÔ TẢ PHẦN CỨNG VHDL.
VHDL (VHSIC Hardware Description Laguage) là một ngôn ngữ được dùng
để mô tả các hệ thống điện tử số. VHSIC (Very High Speed Integrated Circuits) do
chính phủ Mỹ khởi xướng vào đầu những năm 1980.
Kể từ đó, VHDL ra đời và được phát triển, sau đó được tổ chức IEEE
(Institude of Electrical and Electronic Engineers) chấp nhận coi như là tiêu chuẩn
tại Mỹ. Phiên bản đầu tiên là tiêu chuẩn IEEE 1076-1987 (còn được gọi là VHDL-
87). Phiên bản này được bổ sung sửa đổi năm 1993 thành IEEE 1076-1993 (còn
được gọi là VHDL-93).
VHDL được thiết kế nhằm thay thế cho một số khâu cần thiết trong quá trình
thiết kế. Đầu tiên, nó cho phép mô tả cấu trúc của một bản thiết kế, tức là làm thế
nào để có thể phân tách bản thiết kế thành các bản thiết kế con, và làm thế nào để
kết nối các bản thiết kế con đó lại với nhau. Thứ hai là nó cho phép mô tả đặc điểm
chức năng của các bản thiết kế tương tự như trong ngôn ngữ lập trình. Thứ ba là
dựa vào kết quả đạt được, nó cho phép một bản thiết kế có thể mô phỏng được trước
khi đưa vào sản xuất, vì vậy các nhà thiết kế có thể so sánh một cách nhanh chóng
việc thay thế và kiểm tra để điều chỉnh chính xác mà không mất thời gian và chi phí
vào việc chế tạo mẫu thử đầu tiên.
CHƯƠNG 3: THIẾT KẾ HỆ THỐNG MÃ KHỐI
3.1. CẤU TRÚC CỦA MODULE MÃ KHỐI.
3.1.1. Cấu trúc chung.
Nguyên lý thiết kế và cấu trúc của thuật toán mã khối đã được trình bày trong
chương 1 của luận văn. Trên cơ sở đó, cấu trúc của module mã khối được xây dựng
như sơ đồ hình 3.1.

14
Trong đó:
- Khối dữ liệu vào (ra) là bản tin rõ (mã) có độ dài M bít .
- Khối xử lý mã hoá/giải mã dữ liệu là khối đóng vai trò chức năng chính của
modul mã khối, có nhiệm vụ mã hoá hay giải mã dữ liệu theo thuật toán mã khối
được chọn lựa.
- Khoá mã độ dài K bít có nhiệm vụ kết hợp với các hàm toán học của thuật
toán mã khối để thực hiện mã hoá hay giải mã khối dữ liệu.
- Khối điều khiển thực hiện nhiệm vụ điều khiển toàn bộ hoạt động của modul.
3.1.2. Một số yêu cầu đối với module mã khối.
Module mã khối dùng trong hệ truyền tin mật phải thoả mãn một số yêu cầu
cơ bản sau:
- Về mặt mật mã: Phải đảm bảo yêu cầu bảo mật, yêu cầu nghiệp vụ mật mã tuỳ
theo các cấp độ mật khác nhau phụ thuộc vào nội dung thông tin cần bảo mật.
- Về mặt kỹ thuật công nghệ: Phải đảm bảo tốc độ mã hoá, tốc độ giải mã phù
hợp với tốc độ luồng dữ liệu của hệ thống truyền tin.
- Về mặt hệ thống: Phải ghép nối được với các thiết bị truyền tin, đồng bộ giữa
phần mã hoá và giải mã, hạn chế thấp nhất các khả năng gây lỗi cho toàn bộ hệ
thống truyền tin mật
15
- Về mặt sử dụng: Có tính tiện dụng và chuyên dụng, có độ tin cậy cao trong khi
hoạt động, linh hoạt trong quá trình xử lý, giá thành phù hợp, hiệu quả kinh tế cao.
3.2. LỰA CHỌN THUẬT TOÁN CHO MÔ PHỎNG THIẾT KẾ.
3.2.1. Lựa chọn thuật toán.
Việc lựa chọn thuật toán mã khối để mô phỏng thiết kế có ý nghĩa chứng minh
về khả năng cũng như cách thức tiến hành khi thiết kế một hệ mã khối trên FPGA
nên nó phải đáp ứng được các tiêu chí:
- Mang đầy đủ đặc trưng cơ bản của cấu trúc Feistel.
- Đã được phổ biến rộng rãi và được kiểm chứng trên thực tế.
Trong số các thuật toán mã khối đã được công bố, thuật toán DES đã đáp ứng

được hai tiêu chí trên, vì:
- DES có đầy đủ các đặc trưng của cấu trúc Feistel như đã được trình bày trong
mục 1.2.4 và trong đó một số cấu trúc biến đổi khác như các hộp nén, các phép
hoán vị, các phép dịch vòng lại mang những đặc trưng của cấu trúc cộng - nhân.
- DES đã được thừa nhận là chuẩn mật mã của Mỹ từ cuối những năm 1970, đã
được sử dụng rộng rãi trên thế giới.
3.2.2. Mô tả thuật toán DES.
Thuật toán DES [1],[7] thực hiện mã hoá bản rõ X có độ dài 64 bits với khoá mã
K có độ dài 56 bít, cho bản mã là một xâu bít Y có độ dài 64 bits.
Thuật toán DES hoạt động ở 4 chế độ: ECB, CBC, CFB, OFB trong đó, chế độ
ECB là chế độ hoạt động tiêu biểu của mã khối và từ đây về sau thuật ngữ DES
được hiểu là DES làm việc ở chế độ ECB.
Lược đồ của thuật toán DES được mô tả trên hình 3.2.
Thuật toán tiến hành theo 3 giai đoạn:
Giai đoạn 1. Với bản rõ cho trước x, một xâu bít x
0
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. x
0
= IP(X) = L
0
R
0
,
trong đó L
0
gồm 32 bít đầu và R
0
là 32 bít cuối.
Giai đoạn 2. Sau đó tính toán 16 lần lặp theo một hàm toán học xác định,

tính L
i
R
i
, 1 ≤ i ≤16 theo quy tắc sau: L
i
= R
i-1
R
i
= L
i-1
⊕ f(R
i-1
,K
i
)
trong đó ⊕ kí hiệu phép hoặc loại trừ của hai xâu bít (cộng theo modulo 2). F là một
hàm sẽ được mô tả ở sau, còn K
1
,K
2
, . . . ,K
16
là các xâu bít độ dài 48 được tính như
16
hàm của khoá K. (trên thực tế mỗi K
i
là một phép chọn hoán vị bít trong K). K
1

, . . .,
K
16
sẽ tạo thành bảng khoá.
Giai đoạn3. Áp dụng phép hoán vị FP

cho xâu bit R
16
L
16
, ta thu được bản
mờ y. Tức là y=FP (R
16
L
16
). Hãy chú ý thứ tự đã đảo của L
16
và R
16
.
3.3. PHƯƠNG PHÁP THIẾT KẾ MODULE DES TRÊN FPGA.
Phương pháp thiết kế nhằm áp dụng DES trên công nghệ FPGA hoàn toàn
tuân thủ theo qui trình thiết kế một ứng dụng trên công nghệ FPGA.
Quá trình thiết kế được thực hiện theo các bước sau:
a) Xây dựng các khối hàm cơ bản của thuật toán mã khối DES bằng ngôn ngữ
mô tả phần cứng.
b) Biên dịch và kiểm tra từng khối chức năng ở mức RTL (Register Transfer
Level).
c c) Tổng hợp và tối ưu về mặt logic.
d d) Đặt và định đường đi cho các thiết bị chuyên dụng.

e) Kiểm tra thiết kế.
f) Nạp cấu hình cho phần cứng.
17
Các bước b, c, d chủ yếu do công cụ thiết kế thực hiện một cách tự động.
+ Công cụ thiết kế.
a) Công cụ phần mềm:
- Thiết kế các khối hàm cơ bản của DES bằng ngôn ngữ VHDL.
- Hệ công cụ phát triển cho thiết kế logic Quartus II của ALTERA.
b) Công cụ phần cứng:
FPGA được sử dụng trong thiết kế là dòng linh kiện của ALTERA.
+ Sơ đồ khối chức năng của module mã khối DES trên FPGA.
Từ cấu trúc chung của moduê mã khối và thuật toán DES, sơ đồ khối tổng
quát của module mã khối gồm các thành phần mô tả trên hình 3.6.
- Khối vào/ra dữ liệu: Vào/Ra dữ liệu rõ/mã; vào khoá mã; độ dài khối dữ liệu
là 64 bít.
- Khối FPGA DES: Tính toán khoá con; thực hiện các hàm mã hoá, giải mã
theo thuật toán DES.
- Khối điều khiển: Các tín hiệu điều khiển hoạt động của Module.
- Khối cấu hình cho FPGA.
+ Phần cứng mô phỏng module DES.
Để module DES thiết kế trên FPGA có thể hoạt động được độc lập, cần phải
thiết kế một bảng mạch phụ trợ theo sơ đồ hình 3.17:
18
* Khối xử lý chính (mã hoá/giải mã).
Đây là phần chính thực thi toàn bộ các hoạt động của modul mã khối. Toàn bộ
chương trình thiết kế thuật toán DES và các chức năng khác của modul bằng ngôn
ngữ mô tả phần cứng sau khi qua các giai đoạn của trình biên dịch, tối ưu, đặt và
định đường, kiểm tra sẽ được nạp và thực hiện trên cho FPGA.
* Khối cấu hình cho FPGA.
Việc cấu hình cho FPGA được thực hiện theo hai giai đoạn:

- Giai đoạn 1: “Nạp mềm” dùng cho việc kiểm tra kết quả trong từng giai đoạn
hoặc toàn bộ quá trình thiết kế. Với mỗi khối chức năng được chia ra trong quá
trình thiết kế modul ngoài việc kiểm tra sự hoạt động của khối bằng chương trình
mô phỏng“ Vector Waveform File” của công cụ Quartus II như đã trình bày trong
phần 3.3.3.7, người thiết kế có thể kiểm tra sự hoạt động của các khối bằng cách
nạp cấu hình của khối đó thông qua cáp ByteBlasterMV (MV) ra thiết bị phần cứng
để phân tích xem hoạt động của khối có đúng so với yêu cầu chưa. Nếu khối chức
năng hoạt động chưa đúng yêu cầu thì quay lại kiểm tra thiết kế. Cấu hình này trong
phần cứng sẽ bị xoá khi tắt nguồn nuôi.
19
- Giai đoạn 2: “Nạp cứng” sau khi kiểm tra toàn bộ hoạt động của modul theo
đúng yêu cầu thiết kế, người thiết kế tiến hành nạp cấu hình cho phần cứng bằng
thiết bị nạp trình ALL-11C. IC để lưu giữ cấu hình được chọn phải phù hợp với
linh kiện FPGA.
* Các phần mạch khác.
- Mạch tạo xung nhịp: Tạo xung Clock cung cấp cho toàn bộ module.
- 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.
3.4. KẾT QUẢ THIẾT KẾ MODULE MÃ KHỐI DES.
Quá trình xây dựng và thiết kế module mã khối DES được thực hiện trên cơ sở
xây dựng các khối chức năng của thuật toán DES bằng mô tả VHDL và các yếu tố
về phần cứng.
+ Sơ đồ phần cứng của module.
++ 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.

++ 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.
20

++ 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ế module để 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.
++ 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”.
++ 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.
++ 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.
21
+ 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.

+ Đá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.
22
Khi thiết kế module mã khối để bảo mật cho một ứng dụng cụ thể, người thiết

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
KẾT LUẬN
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ề
23
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:
+ Tốc độ cao vì nó hoàn toàn dựa trên phần cứng (hardware).
+ 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./.
24

×