1
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 ỹ thuật mật mã, hệ mã hố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ã hối mới ch thực hiện bằng phần mềm trên máy t nh P
và ch áp dụng được cho các hệ truyền tin có tốc độ hông cao, do vậy hả n ng
ứng dụng mã hối vào bảo mật cho các luồng thông tin tốc độ cao c n gặp nhiều
hó h n. à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
2
cơ sở cứng hoá được các thuật toán mã hối, theo nghĩa việc thực hiện các thuật
toán mã hối được thiết ế bằng phần cứng.
o t nh chất phức tạp của các thuật
toán mã hối, việc cứng hoá mã hối theo phương pháp thiết ế mạch điện tử truyền
thống trong điều iện nền hoa học và công nghệ ở iệt Nam c n hạn chế là rất hó
h n, trong hi đó hiện nay đã có nhiều công nghệ hiện đại để xử lý bài toán này
như công nghệ ASI (Application-Specific Integrated Circuit) hay FPGA (FieldProgrammable 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ã hối. iệc
nghiên cứu để có thể cứng hoá các thuật toán mã hố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 ế 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 iện thực tế về công nghệ và
yêu cầu sử dụng ở iệ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ã hố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
ế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ã hối.
Chƣơng 2: Công nghệ PGA 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ệ PGA, cấu trúc chức n ng của
PGA, phân loại cũng như các ứng dụng thực tế của công nghệ PGA. Giới thiệu
PGA của hãng Altera và các công cụ thiết ế đi èm của hãng c ng với ngôn ngữ
mô tả phần cứng H L.
Chƣơng 3: Thiết ế hệ thống mã hối.
Chương này trình bày về phương pháp thiết ế module mã hối trên công
nghệ PGA, phần cứng mô phỏng module ES và các ết quả thiết ế module mã
hối ES trên FPGA.
3
H TRU
CHƢƠNG 1
N TIN M T V CƠ SỞ
THU
TM
HỐI
1 1 TỔNG QU N V H TRU 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, ênh tin và nhận tin.
nguån tin
kªnh tin
nhËn tin
H nh 1 Mô h nh hệ thống tr 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 hi truyền trên ênh tin trước sự tấn công, há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.
m· th¸m
nguån tin
m· ho¸
kho¸ mËt m·
kªnh tin
nhiÔu
gi¶i m·
nhËn tin
kho¸ mËt m·
H nh 2 Mô h nh hệ thống tr n tin m t
ác hệ mật hiện nay được chia thành hai loại: hệ mật hóa b mật và hệ mật
hóa công hai. Trong hệ mật hó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 hóa b mật chung và hóa đó hông được biết
đối với thám mã đối phương. Trong hệ mật hóa công hai, người sử dụng hợp
pháp ch cần các thông tin trung thực công hai nào đó. Trong luận v n ch đề cập
đến việc ứng dụng các hệ mật hoá b mật.
+ Mô hình của hệ mật khoá bí mật:
4
Thám mã
Nguồn rõ
X
X
X
Mã
M·hoá
ho¸
EK (.)
Y
Giải mã
DK (.)
ZZ
Nhận tin
X
Z
Kênh an toàn
Nguồn
khoá
Hình 1.3: Mô h nh hệ m t khoá bí m t.
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 ( ý tự .
ộ tạo dãy hoá hay c n gọi là bộ tạo hoá chạy sinh ra các b t
1,
k2,…, i,… ãy
hoá này được cộng mô đun 2 với dãy các b t của bản rõ: p1, p2,…, pi,… để thành
bản mã: ci = pi ki . Tại ph a nhận, bản mã được cộng mô đun 2 với dãy hoá đồng
nhất để có bản rõ: ci ki = pi ki ki = pi.
Mã khối Vấn đề đặt ra theo một góc độ hác, m i một lần mã, hoá được
lấy ng u nhiên trong hông gian hoá sau đó cố đ nh lại và d ng để mã hoá cho tất
cả các hố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Ở
THU T V M
HỐI
Mã pháp hối là họ các biến đổi thuận ngh ch các hối (phần độ dài xác đ nh
của bản rõ. Thực tế, mã pháp hối là hệ mật thay thế trên bộ chữ cái các hối (ph p
thế có thể một hoặc nhiều bộ chữ cái tu thuộc vào điều iện của mã pháp hối .
ác mã pháp hố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.
hu n mã dữ liệu ES là một ỹ thuật mã hối có cấu trúc dạng eistel, 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 hoá 56 b t. ản mã nhận
được cũng là một xâu b t có độ dài 64.
5
Thuật toán tiến hành theo 3 giai đoạn:
1. ớ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. Ta sẽ t nh LiRi, 1 i
16 theo quy t c sau:
Li = Ri-1
Ri = Li-1 f(Ri-1,Ki)
trong đó
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 K1, K2, . . . , K16
là các xâu b t độ dài 48 được t nh như hàm của hoá K (trên thực tế m i K i là một
ph p chọn hoán v b t trong K . K1, . . ., K16 sẽ tạo thành bảng hoá. 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 P cho xâu b t R16L16, ta thu được bản mã y. Tức là
y= FP (R16L16 . Hãy chú ý thứ tự đã đảo của L16 và R16
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 hoá theo thứ tự ngược lại K16,…,K1. Đầ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.
iệc thiết ế các thuật toán mã hối trong thiết b bảo mật thông tin hiện nay
có thể thực hiện theo các ỹ thuật như mô tả trong hình 1.13.
THU T TOÁN M
PHẦN CỨNG
ASIC
FPGA
Hình 1.13: Các kỹ th
HỐI
PHẦN M M
INTER,
RISC
t thiết kế mã khối.
DSP, µP
Smart Card
6
+ Thiết kế mã khối bằng chương tr nh phần m m.
Thiết ế thuật toán mã hối bằng chương trình phần mềm và thực hiện trên
các bộ xử lý Intel, RIS
hoặc nhúng trong môi trường
SP, Smart- ard..., hoặc
trên các máy P . Ưu điểm của ỹ thuật này là hông phụ thuộc quá nhiều vào công
nghệ thiết ế, cho ph p thiết ế nhanh, có t nh mềm d o cao hi 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 ỹ 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 độ hông cao.
+ Thiết kế mã khối bằng công cụ phần cứng.
Phần lớn các ỹ thuật mã hố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 eistel, đây là một cấu trúc
mã
hối rất th ch hợp cho việc thiết
ế 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 ế
các thuật toán mã hối bằng các công cụ phần cứng như: công nghệ ASI , công
nghệ PGA....
Công nghệ ASI cho ph p thiết ế thuật toán mã hố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 hi thiết ế thuật toán
mã hối bằng công nghệ ASI có thể lên tới vài Gigab t/s.
ông nghệ PGA là một sự phát triển của công nghệ ASI , 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, h c phục được mặt hạn chế của ASI . Người thiết ế sử dụng phần mềm để
tiến hành thiết ế với các phần tử logic cơ bản và tạo các giản đồ ết nối. PGA là
một thiết b logic có thể được người sử dụng lập trình trực tiếp mà hông phải sử
dụng bất
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.
PGA được ứng dụng rộng rãi và há 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 I nguyên m u để
l p gh p vào hệ thống người thiết ế có thể tạo các ết nối theo các phần trong
PGA của mình bằng phần mềm. Mặt há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ã hối hoặc thực hiện các thuật toán
khác.
7
CHƢƠNG 2: CÔNG NGH FPG
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...
8
Tài nguyên
ết nối
Logic
Block
I/O Cell
Hình 2.4: Mô tả mô h nh của một FPGA.
- 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.
9
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.
10
Mạch lôgic ban đầu
CAD
Tối ưu lôgic
nh xạ công nghệ
Placement
Rounting
Đơn vị lập trình
Sản phẩm
Hình 2.10. Q á tr nh thiết kế trên FPGA.
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.
11
+ 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:
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.
12
+ Đị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 đó.
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.
13
- 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ố.
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.
I/O ControlBlock
LAB
LAB
LAB
LAB
LAB
LAB
LAB
LAB
LAB
LAB
LAB
LAB
LAB
LAB
LAB
I/O ControlBlock
I/O ControlBlock
LAB
I/O ControlBlock
Hình 2.11: Kiến trúc tổng q át của Altera FPGA MAX 7000.
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
14
(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.
- 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à VHDL87). 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.
15
CHƢƠNG 3: THI T
H THỐNG M
HỐI
3 1 CẤU TRÚC CỦ MODU E M
HỐI.
3 1 1 Cấu trúc chung
Nguyên lý thiết ế và cấu trúc của thuật toán mã hố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ã hối được xây dựng
như sơ đồ hình 3.1.
Khóa mã
Dữ liệu vào
hối xử lý
mã hóa/giải
mã dữ liệu
Dữ liệu ra
Điều khiển
Hình 3.1: Cấ trúc ch ng của mod le mã khối.
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à hối đóng vai tr chức n ng ch nh của
modul mã hối, có nhiệm vụ mã hoá hay giải mã dữ liệu theo thuật toán mã hối
được chọn lựa.
- Khoá mã độ dài K b t có nhiệm vụ ết hợp với các hàm toán học của thuật
toán mã hối để thực hiện mã hoá hay giải mã hối dữ liệu.
- Khối điều hiển thực hiện nhiệm vụ điều hiể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 hác nhau phụ thuộc vào nội dung thông tin cần bảo mật.
16
- 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 hả n ng gây l i cho toàn bộ hệ
thống truyền tin mật
- Về mặt sử dụng: ó t nh tiện dụng và chuyên dụng, có độ tin cậy cao trong hi
hoạt động, linh hoạt trong quá trình xử lý, giá thành ph hợp, hiệu quả inh tế cao.
32
Ự CHỌN THU T TOÁN CHO MÔ PHỎNG THI T
321
ựa chọn thuật toán
iệc lựa chọn thuật toán mã hối để mô phỏng thiết ế có ý nghĩa chứng minh
về hả n ng cũng như cách thức tiến hành hi thiết ế một hệ mã hối trên PGA
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 eistel.
- Đã được phổ biến rộng rãi và được iểm chứng trên thực tế.
Trong số các thuật toán mã hối đã được công bố, thuật toán
được hai tiêu ch trên, vì:
-
ES đã đáp ứng
ES có đầy đủ các đặc trưng của cấu trúc eistel như đã được trình bày trong
mục 1.2.4 và trong đó một số cấu trúc biến đổi há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.
- ES đã đượ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 ES [1],[7] thực hiện mã hoá bản rõ X có độ dài 64 bits với hoá 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 ES hoạt động ở 4 chế độ: E ,
,
,O
trong đó, chế độ
E
là chế độ hoạt động tiêu biểu của mã hối và từ đây về sau thuật ngữ ES
được hiểu là ES làm việc ở chế độ E .
Lược đồ của thuật toán ES đượ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. ớ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. x0= IP(X) = L0R0,
trong đó L0 gồm 32 b t đầu và R0 là 32 b t cuối.
17
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 LiRi, 1 i 16 theo quy t c sau: Li = Ri-1
Ri = Li-1 f(Ri-1,Ki)
trong đó
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 K1,K2, . . . ,K16 là các xâu b t độ dài 48 được t nh như
hàm của hoá K. (trên thực tế m i Ki là một ph p chọn hoán v b t trong K . K1, . . .,
K16 sẽ tạo thành bảng hoá.
Giai đoạn3.
p dụng ph p hoán v
P cho xâu bit R16L16, ta thu được bản
mờ y. Tức là y= P (R16L16 . Hãy chú ý thứ tự đã đảo của L16 và R16.
Hình 3.2: Lược đồ của th
3 3 PHƢƠNG PHÁP THI T
t toán DES
MODU E DES TRÊN FPG
Phương pháp thiết ế nhằm áp dụng ES trên công nghệ PGA hoàn toàn
tuân thủ theo qui trình thiết ế một ứng dụng trên công nghệ PGA.
Quá trình thiết ế được thực hiện theo các bước sau:
a Xây dựng các hối hàm cơ bản của thuật toán mã hối ES bằng ngôn ngữ
mô tả phần cứng.
18
b
iên d ch và iểm tra từng hối chức n ng ở mức RTL (Register Transfer
Level).
c Tổng hợp và tối ưu về mặt logic.
d Đặt và đ nh đường đi cho các thiết b chuyên dụng.
e Kiểm tra thiết ế.
f Nạp cấu hình cho phần cứng.
ác bước b, c, d chủ yếu do công cụ thiết ế thực hiện một cách tự động.
+ Công cụ thiết kế
a
ông cụ phần mềm:
- Thiết ế các hối hàm cơ bản của ES bằng ngôn ngữ H L.
- Hệ công cụ phát triển cho thiết ế logic Quartus II của ALTERA.
b ông cụ phần cứng:
PGA được sử dụng trong thiết ế là d ng linh iện của ALTERA.
+ Sơ đồ khối chức năng của module mã khối DES trên FPG
Từ cấu trúc chung của moduê mã hối và thuật toán ES, sơ đồ hối tổng
quát của module mã hố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: ào/Ra dữ liệu rõ/mã; vào hoá mã; độ dài hối dữ liệu
là 64 bít.
-
Khối PGA ES: T nh toán hoá con; thực hiện các hàm mã hoá, giải mã
theo thuật toán ES.
Khối điều hiển: ác t n hiệu điều hiển hoạt động của Module.
Khối cấu hình cho PGA.
19
Cấu
hình
Khoá mã vào
FPGA
DES
Dữ liệu vào
Dữ liệu ra
Điều khiển
Hình 3.6: Sơ đồ khối tổng q át của mod le mã khối DES trên FPGA.
+ Phần cứng mô phỏng module DES
Để module ES thiết ế trên PGA có thể hoạt động được độc lập, cần phải
thiết ế một bảng mạch phụ trợ theo sơ đồ hình 3.17:
kho¸
m·
Ic cÊu
h×nh
C¸p mv
En/De
Reset
M· ho¸/Gi¶i m·
d÷
liÖu
vµo
FPGA
d÷
liÖu
ra
EN
t¹o xung
nhÞp
Hình 3.17: Sơ đồ khối phần cứng của mod l mã khối DES.
20
* 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ã hối. Toàn bộ
chương trình thiết ế thuật toán
ES và các chức n ng hác của modul bằng ngôn
ngữ mô tả phần cứng sau hi qua các giai đoạn của trình biên d ch, tối ưu, đặt và
đ nh đường, iểm tra sẽ được nạp và thực hiện trên cho PGA.
* Khối cấ h nh cho FPGA
iệc cấu hình cho PGA được thực hiện theo hai giai đoạn:
- Giai đoạn 1: Nạp mềm d ng cho việc iểm tra ết quả trong từng giai đoạn
hoặc toàn bộ quá trình thiết ế. ới m i hối chức n ng được chia ra trong quá trình
thiết ế modul ngoài việc iểm tra sự hoạt động của hối bằng chương trình mô
phỏng ector Waveform ile của công cụ Quartus II như đã trình bày trong phần
3.3.3.7, người thiết ế có thể iểm tra sự hoạt động của các hối bằng cách nạp cấu
hình của hối đó thông qua cáp yte lasterM (M ra thiết b phần cứng để phân
t ch xem hoạt động của hối có đúng so với yêu cầu chưa. Nếu hối chức n ng hoạt
động chưa đúng yêu cầu thì quay lại iểm tra thiết ế. ấu hình này trong phần
cứng sẽ b xoá hi t t nguồn nuôi.
- Giai đoạn 2: Nạp cứng sau hi iểm tra toàn bộ hoạt động của modul theo
đúng yêu cầu thiết ế, người thiết ế 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-11 . I để lưu giữ cấu hình được chọn phải ph hợp với
linh iện PGA.
* Các phần mạch khác
- Mạch tạo xung nh p: Tạo xung loc cung cấp cho toàn bộ module.
- Khối nguồn được thiết ế cho ra các nguồn điện áp
+5 ; +2,5 ; +3,3
để cung cấp cho các vi mạch.
34
T QUẢ THI T
MODU E M
HỐI DES
Quá trình xây dựng và thiết ế module mã hối ES được thực hiện trên cơ sở
xây dựng các hối chức n ng của thuật toán ES bằng mô tả H L 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 EP20K100T 144-3 thuộc họ
APEX 20K của ALTERA.
Những đặc điểm ch nh của ch p EP20K100T 144-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ử
- Xem thêm -