Tựa đề: Nghiên cứu một số vấn đề bảo mật và an toàn thông tin cho các mạng dùng giao thức liên mạng máy tính IP - Giới thiệu một số kết quả mới trong bảo mật mạng dùng giao thức IP, an toàn mạng và thương mại điện tử - Tìm hiểu khả năng công nghệ để cứng hoá các thuật toán mật mã
Tác giả: Nguyễn, Hồng Quang
Từ khóa: Nghiên cứu một số vấn đề bảo mật và an toàn thông tin cho các mạng dùng giao thức liên mạng máy tính IP - Giới thiệu một số kết quả mới trong bảo mật mạng dùng giao thức IP, an toàn mạng và thương mại điện tử - Tìm hiểu khả năng công nghệ để cứng hoá các thuật toán mật mã
Tóm tắt: Nghiên cứu một số vấn đề bảo mật và an toàn thông tin cho các mạng dùng giao thức liên mạng máy tính IP - Giới thiệu một số kết quả mới trong bảo mật mạng dùng giao thức IP, an toàn mạng và thương mại điện tử - Tìm hiểu khả năng công nghệ để cứng hoá các thuật toán mật mã
71 trang |
Chia sẻ: banmai | Lượt xem: 2123 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Nghiên cứu một số vấn đề bảo mật và an toàn thông tin cho các mạng dùng giao thức liên mạng máy tính IP - Giới thiệu một số kết quả mới trong bảo mật mạng dùng giao thức IP, an toàn mạng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
hãa yÕu.
• T¹o ra c¸c gãi víi ph−¬ng ph¸p x¸c thùc nµo ®ã ®Ó gi¶m nguy c¬
tÊn c«ng xen gi÷a.
Trong thùc tÕ giao thøc Diffie-Hellman lµ tæ hîp cña Ýt nhÊt ba
thµnh phÇn c¬ b¶n:
1. Khèi sè häc modular
2. Bé sinh sè ngÉu nhiªn (RNG).
32
3. Bé xö lý ®iÒu khiÓn luång sè liÖu vµ xö lý c¸c gãi. Cã thÓ xö dông
lu«n bé xö lý nhóng trong FPGA hay bé xö lý ngoµi.
H×nh 4 m« t¶ mét module t¨ng tèc Diffie-Hellman ®iÓn h×nh cã thÓ
sö dông trong FPGA. Trong h×nh chØ cã mét khèi tÝnh to¸n, tuy nhiªn
hoµn toµn cã thÓ t¨ng sè l−îng khèi nµy lªn ®Ó t¨ng th«ng l−îng hÖ thèng
lªn gÊp béi mét c¸ch tuyÕn tÝnh.
H×nh 4. Khèi t¨ng tèc Difie-Hellman b»ng FPGA
Khi thùc hiÖn mét hµm RSA b»ng phÇn cøng, cÇn cã mét hµm
modulus ®¬n gi¶n ®Ó chuyÓn ®æi kh«ng gian m- thÆng d− tr−íc khi b¾t
®Çu phÐp mò Montgomery, hµm ®ã nh− sau:
Y = A mod M
Còng cÇn cã h¹t nh©n modulus ®Ó t¨ng tèc tÝnh to¸n c¸c gi¸ trÞ
trung gian khi thùc hiÖn mò hãa modular dùa trªn ®Þnh lý phÇn d− China:
ph©n mét phÐp mò modular thµnh c¸c phÐp mò modular nhá. Do ®é phøc
t¹p cña phÐp mò modular b»ng b×nh ph−¬ng ®é dµi tõ nªn viÖc nµy sÏ cho
hiÖu suÊt thùc hiÖn gÊp bèn lÇn c¸ch tÝnh th«ng th−êng.
Trong h¹t nh©n Difie-Hellman, hµm modulus nµy cã thÓ nh»m phôc
33
vô môc ®Ých kh¸c ngoµi phÐp chuyÓn ®æi m-thÆng d−. Khi sè nguyªn thñy
g = 2, th× viÖc tÝnh to¸n ®Çu tiªn cña Diffie-Hellman lµ Y . §Ó
biÓu diÔn lòy thõa cña 2 d−íi d¹ng binary, cÇn mét phÐp −íc l−îng ®¬n
gi¶n b»ng c¸ch chÌn ‘1’ vµo vÞ trÝ thÝch hîp trong tr−êng c¸c sè zero, kÕt
qu¶ lµ phÐp to¸n trë thµnh Y
ps mod= x
pA mod= trong ®ã A x2= , ®iÒu nµy t−¬ng
®−¬ng víi biÓu thøc miªu t¶ h¹t nh©n modulus vÒ mÆt hµm sè.
PhÐp ®¬n gi¶n hãa nµy lµ quan träng trong giai ®o¹n ®Çu sinh khãa
v× nã suy biÕn toµn bé phÐp mò modular thµnh mét modulus duy nhÊt. Do
phÐp modulus, trong mét sè møc ®é, nhanh h¬n phÐp mò t−¬ng ®−¬ng
nªn biÖn ph¸p ®¬n gi¶n nµy gióp tiÕt kiÖm ®−îc ®¸ng kÓ thêi gian tÝnh
to¸n.
H¹t nh©n dïng ®Ó tÝnh to¸n Diffie-Helman lµ mét phÇn cña toµn hÖ
thèng. Sau khi ®· trao ®æi xong khãa, cã thÓ sö dông nã cho viÖc kh¸c
hoÆc s½n sµng cho lÇn trao ®æi khãa tiÕp theo.
So víi gi¶i ph¸p tÝnh to¸n trao ®æi khãa b»ng phÇn mÒm dùa trªn vi
xö lý môc ®Ých chung GPP hay DSP, gi¶i ph¸p t¨ng tèc b»ng phÇn cøng
dùa trªn FPGA kÐm h¬n vÒ tÝnh mÒm dÎo, nh−ng −u ®iÓm h¬n ë c¸c mÆt
sau:
1. Sè l−îng khãa tÝnh ®−îc trong mét gi©y nhiÒu h¬n h¼n.
2. Kh«ng cÇn mét bé xö lý chuyªn tr¸ch cho t¸c vô trao ®æi khãa,
dÉn ®Õn gi¶m kÝch th−íc b¶ng m¹ch, c«ng suÊt tiªu thô, thêi
gian thiÕt kÕ → gi¶m gi¸ thµnh hÖ thèng.
Mét kÕt qu¶ cña viÖc sö dông FPGA kÕt hîp bé xö lý nhóng trong
chip FPGA ®· ®−îc [15] dÉn nh− sau: víi sè mò vµ modulus 1024 bit, bé
mò hãa c¬ sè 2, sö dông 500 cell logic th× tÝnh ®−îc 32 khãa trong 1 gi©y.
Cßn víi FPGA m¹nh h¬n cã bé nh©n 36 x 36, hç trî phÐp mò hãa
34
modular c¬ sè cao h¬n, chØ víi l−îng nhá tµi nguyªn cña chip, cã thÓ ®¹t
®Õn 640 khãa trong mét gi©y. HiÖu suÊt thùc hiÖn vµ gi¸ thµnh cã thÓ so
s¸nh víi ASSP, nh−ng l¹i cã tÝnh mÒm dÎo cña bé xö lý; vµ quan träng
h¬n lµ, gi¶i ph¸p FPGA cho phÐp ng−êi dïng cã thÓ tïy biÕn theo yªu cÇu
®Ó tèi −u s¶n phÈm cuèi cïng.
Mét lîi Ých n÷a cña gi¶i ph¸p FPGA lµ cã thÓ thiÕt kÕ giao thøc
Diffie-Haellman vµ c¸c sè nguyªn tè phi chuÈn ®éc quyÒn. VÝ dô thiÕt kÕ
mét nhãm Diffie-Hellman cã phÇn tö nguyªn thñy g = 13. Cã thÓ thay ®æi
phÇn tö nguyªn thñy nµy dÔ dµng nh− thay ®æi c¸c tham sè do ng−êi dïng
®Þnh nghÜa trong file cÊu h×nh cña h¹t nh©n t¨ng tèc hay thËm chÝ update
c¶ platform phÇn cøng.
2.3.3 Thùc hiÖn AES b»ng FPGA
C¸c thuËt to¸n AES tiªu thô t−¬ng ®èi nhiÒu tµi nguyªn phÇn cøng
khi thiÕt kÕ trªn FPGA do tÝnh phøc t¹p cña chóng. KÕt qu¶ cuèi cïng (vÒ
hiÖu suÊt sö dông tµi nguyªn, tèc ®é) sÏ rÊt kh¸c nhau khi sö dông c¸c
ph−¬ng ph¸p thiÕt kÕ kh¸c nhau (dùa trªn ng«n ng÷ m« t¶ phÇn cøng hay
dùa trªn s¬ ®å) vµ c¸c c«ng cô thiÕt kÕ (c¸c Kit ph¸t triÓn, c¸c phÇn mÒm
tæng hîp vµ m« pháng cña c¸c h·ng kh¸c nhau). §iÒu nµy còng t−¬ng tù
nh− lËp tr×nh cho m¸y tÝnh b»ng ng«n ng÷ bËc cao nµo ®ã: c¸c tr×nh
compiler cña c¸c h·ng kh¸c nhau sÏ kÕt xuÊt c¸c file thùc hiÖn cã kÝch
th−íc kh¸c nhau vµ tèc ®é thùc hiÖn còng kh¸c nhau.
2.3.3.1 Yªu cÇu chip FPGA ®Ó thùc hiÖn AES
Tµi nguyªn chip FPGA lµ vÊn ®Ò ®Çu tiªn cÇn xem xÐt khi thiÕt kÕ
cho AES. Cã thÓ sö dông nhiÒu chip FPGA cho thiÕt kÕ mét thuËt to¸n,
tuy nhiªn t¨ng gi¸ thµnh. V× thÕ ng−êi ta th−êng cè ®Õn thùc hiÖn toµn bé
thuËt to¸n AES trong mét chip FPGA. Khi Êy ph¶i l−u t©m ®Õn c¸c vÊn ®Ò
tµi nguyªn cña chip [19]. Tr−íc tiªn, ®Ó ®¹t ®−îc tèc ®é cao cÇn sè l−îng
35
lín c¸c ch©n vµo ra I/O nh»m hç trî hoµn toµn luång data 128-bit. Còng
kh«ng nªn dïng gi¶i ph¸p dån kªnh mµ ph¶i t¸ch 128 bit data input vµ
output ra khái nhau ®Ó cho phÐp cÊu tróc pipeline.
TiÕp theo, ph¶i cã bus riªng ®Ó nhËp khãa tr−íc khi b¾t ®Çu m· hãa
v× kh«ng thÓ thay ®æi khãa cña c¸c vßng trong khi ®ang m·. Thªm n÷a ®Ó
thùc hiÖn cÊu tróc pipeline mét c¸ch hoµn toµn cÇn c¸c tÇng pipeline réng
128 bit, nh− thÕ l¹i cÇn rÊt nhiÒu thanh ghi. Vµ n÷a, còng cÇn nhiÒu bit
ghi trong c¸c khèi cã thÓ cÊu h×nh cña chip FPGA ®Ó s¾p xÕp c¸c phÇn tö
thiÕt kÕ còng nh− gi¶m thiÓu sè ®−êng dÉn gi÷a c¸c khèi ®ã. Cuèi cïng,
cÇn chuçi carry nhanh gi÷a c¸c khèi cã thÓ cÊu h×nh cña FPGA cho c¸c
thao t¸c sè häc ®Ó cùc ®¹i hiÖu suÊt thùc hiÖn c¸c thuËt to¸n AES.
Chip FPGA cã thÓ ®¸p øng ®−îc c¸c yªu cÇu trªn cã thÓ lµ Xilinx
Virtex XCV1000BG560-4. XCV1000 cã 128K bits RAM nhóng lÊy tõ
3/2 block RAM cña chip FPGA. Chip ®−îc ®ãng trong vá 560 ch©n, cung
cÊp 512 ch©n vµo ra I/O; cã mét m¶ng gåm 64 x 96 khèi logic cã thÓ cÊu
h×nh CLB, t¹o nªn b¶ng t×m kiÕm. Mçi khèi CLB cã hai m¶nh 2 bit vµ
ho¹t ®éng nh− mét phÇn tö 4 bit . Tæng céng cã 12288 m¶nh CLB. Ngoµi
RAM nhóng, XCV1000 cã thÓ ®−îc cÊu h×nh ®Ó cã 384 K bits RAM kh¸c
n÷a. KiÓu cÊu h×nh nµy cho phÐp cÊu tróc cã ®é phøc t¹p cao phï hîp víi
chøc n¨ng vßng lÆp cña c¸c hµm cã to¸n h¹ng lín.
2.3.3.2 CÊu tróc hardware FPGA ®Ó thùc hiÖn AES
C¸c AES ®Òu cã cÊu tróc vßng, sè liÖu quay vßng liªn tiÕp qua mét
hµm lÆp. §Ó tèi −u thùc hiÖn cÊu tróc vßng cã thÓ cã c¸c c¸ch sau [19]:
• LÆp liªn tiÕp
• LÆp Unrolling
• Pipeline mét phÇn
36
• Pipeline mét phÇn víi Sub-Pipeling
Bé m· hãa cã cÊu tróc lÆp liªn tiÕp lµ ph−¬ng ph¸p hiÖu qu¶ tiªu
thô Ýt tµi nguyªn hardware nhÊt. Bé m· hãa n vßng cÇn lÆp liªn tiÕp n lÇn
cho mét thao t¸c m· hãa. Gi¶i ph¸p nµy cã thêi gian trÔ tõ thanh ghi -
®Õn-thanh ghi nhá nh−ng ph¶i mÊt nhiÒu chu kú ®ång hå cho mét thao t¸c
m·. Thªm n÷a, tuy tiªu thô Ýt tµi nguyªn phÇn cøng nh−ng cã thÓ gi¸
thµnh vÉn t¨ng do yªu cÇu phÇn cøng kh¸c ®Ó thùc hiÖn khãa cña vßng vµ
S-Box multiplexing.
Cã thÓ gi¶m ®−îc gi¸ thµnh nµy b»ng c¸ch t¹o mét b¶ng t×m kiÕm 4
bit trong m¶nh CLB ®Ó lµm viÖc trong mode RAM vµ cÊt gi÷ mét bit cña
mçi khãa vßng trong b¶ng ®ã. Mét b¶ng t×m kiÕm hç trî lªn ®Õn 16 khãa
vßng dÉn ®Õn viÖc thùc hiÖn k b¶ng t×m kiÕm ®Ó l−u tr÷ c¸c khãa vßng cã
®é dµi k bit, tr¸nh ph¶i l−u c¸c khãa vßng trong mét thanh ghi riªng.
Thªm n÷a, nhiÒu b¨ng cña b¶ng t×m kiÕm cã thÓ ®−îc dïng ®Ó hç trî cho
c¸c thuËt to¸n yªu cÇu nhiÒu h¬n 16 khãa vßng. C¸c b¨ng nµy sau ®ã sÏ
®−îc ®¸nh ®Þa chØ liªn tôc dùa trªn vßng hiÖn t¹i ®Ó truy nhËp khãa thÝch
hîp. Tuy nhiªn, ph−¬ng ph¸p nµy kÐm hiÖu qu¶ h¬n khi nhiÒu vßng ®−îc
unroll hay pipeline v× mçi vßng cÇn b¨ng riªng cña m×nh trong b¶ng t×m
kiÕm ®Ó l−u tr÷ khãa vßng. §èi víi cÊu tróc unroll hay pipeline toµn bé
ph−¬ng ph¸p nµy hiÖu qu¶ h¬n v× mçi b¨ng cña b¶ng t×m kiÕm chØ chøa
mét khãa vßng duy nhÊt.
Vßng lÆp lËp l¹i lµ mét tËp con cña vßng lÆp unroll trong ®ã chØ
mét vßng ®−îc unroll, ng−îc l¹i cÊu tróc unroll lÆp cho phÐp unroll nhiÒu
vßng víi sè l−îng theo nhu cÇu cña bé m· hãa. Tr¸i víi cÊu tróc lÆp lËp
l¹i, trong cÊu tróc lÆp unroll tÊt c¶ n vßng ®−îc unroll vµ thùc hiÖn nh−
mét khèi logic tæ hîp duy nhÊt. §iÒu nµy ®ßi hái rÊt nhiÒu tµi nguyªn
phÇn cøng ®Ó thùc hiÖn chøc n¨ng vßng trong khi phÇn cøng cÇn cho khãa
37
cña vßng vµ S-Box multiplexing chØ cã h¹n. MÆc dï gi¶i ph¸p nµy cÇn tèi
thiÓu sè chu kú clock ®Ó thùc hiÖn mét m· hãa, nh−ng nã l¹i cã thêi gian
trÔ tõ thanh ghi ®Õn thanh ghi xÊu nhÊt, lµm hÖ thèng ch¹y cùc kú chËm.
CÊu tróc pipeline mét phÇn cã −u ®iÓm cho th«ng l−îng cao nhê
t¨ng sè khèi data ®−îc xö lý ®ång thêi. §iÒu nµy ®¹t ®−îc b»ng c¸ch t¹o
mét b¶n sao hµm vßng b»ng phÇn cøng vµ ghi sè liÖu trung gian gi÷a c¸c
vßng. Thªm n÷a, trong tr−êng hîp pipeline toµn bé ®é dµi (mét d¹ng ®Æc
biÖt cña pipeline mét phÇn), mçi chu kú clock hÖ thèng sÏ xuÊt ra mét
khèi m· 128 bit mçi khi pipeline cã thÓ cã. Tuy nhiªn cÊu tróc d¹ng nµy
cÇn nhiÒu tµi nguyªn phÇn cøng h¬n h¼n cÊu tróc unroll lÆp. Trong cÊu
tróc pipeline mét phÇn, mçi vßng ®−îc thùc hiÖn nh− mét ®¬n vÞ nguyªn
tö cña pipeline vµ ®−îc t¸ch riªng bëi c¸c thanh ghi cña pipeline thùc sù.
§èi víi mét bé m· hãa n vßng, c¶ c¸c hµm vµ hép nµy ®Òu ph¶i ®−îc sao
ra n lÇn. Nh− thÕ, c¸c thuËt to¸n ph¶i ®−îc thùc hiÖn nh− lµ c¸c pipeline
mét phÇn. Thªm n÷a, cÊu tróc pipeline chØ cã thÓ ®−îc dïng toµn bé trong
chÕ ®é lµm viÖc kh«ng ®ßi hái håi tiÕp d÷ liÖu m·. Trong chÕ ®é håi tiÕp,
d÷ liÖu cña mét khèi ph¶i ®−îc m· xong tr−íc khi m· khèi tiÕp theo, kÕt
qu¶ lµ kh«ng thÓ m· nhiÒu khèi râ theo kiÓu pipeline.
Khi hµm vßng cña cÊu tróc pipeline phøc t¹p g©y ra ®é trÔ lín gi÷a
c¸c tÇng pipeline, th× cã thÓ ph©n nhá cÊu tróc b»ng c¸ch thªm c¸c tÇng
pipeline nhá, hµm nguyªn tö cña mçi tÇng pipeline ®−îc chia thµnh c¸c
khèi chøc n¨ng nhá h¬n. KÕt qu¶ gi¶m ®−îc ®é trÔ cña pipeline gi÷a c¸c
tÇng. Tuy nhiªn mçi sù chia nhá hµm nguyªn tö l¹i lµm t¨ng sè chu kú
®ång hå cÇn thiÕt ®Ó thùc hiÖn mét phÐp m· hãa thªm mét hÖ sè b»ng sè
phÐp chia. Cïng lóc, sè khèi data cã thÓ xö lý trong chÕ ®é kh«ng håi tiÕp
còng t¨ng mét hÖ sè b»ng sè c¸c phÐp chia. Do ®ã, ®Ó kü thuËt nµy hiÖu
qu¶, tr−êng hîp xÊu nhÊt ®é trÔ gi÷a c¸c tÇng sÏ ®−îc gi¶m mét hÖ sè m lµ
sè c¸c phÐp chia thªm vµo.
38
NhiÒu FPGA cã RAM nhóng cã thÓ ®−îc dïng ®Ó thùc hiÖn khãa
vßng vµ S-Box multiplexing thay cho phÇn cøng. B»ng c¸ch l−u tr÷ khãa
trong c¸c khèi RAM, cã thÓ ®¸nh ®Þa chØ khãa thÝch hîp dùa trªn vßng
hiÖn t¹i. Tuy nhiªn do sè l−îng khèi RAM chØ cã h¹n, còng nh− ®é réng
bit cña chóng giíi h¹n nªn ph−¬ng ph¸p nµy kh«ng thÓ thùc hiÖn ®−îc
trong c¸c cÊu tróc cã nhiÒu tÇng pipeline hay nhiÒu vßng lÆp unroll. C¸c
cÊu tróc nµy cÇn nhiÒu khèi RAM mµ mét FPGA th«ng th−êng kh«ng ®¸p
øng ®−îc5. CÇn c©n nh¾c gi¶i ph¸p dïng RAM nhóng v× thêi gian chuyÓn
m¹ch cña RAM l©u h¬n 3 lÇn so víi thùc hiÖn b»ng phÇn tö m¶nh CLB
chuÈn.
2.3.3.3 Mét sè ®¸nh gi¸ AES khi thiÕt kÕ trªn FPGA
Tr−íc khi NIST quyÕt ®Þnh chän øng viªn nµo lµm AES chÝnh thøc,
®· cã nhiÒu ®¸nh gi¸ n¨m AES vµo chung kÕt do nhiÒu nhãm kh¸c nhau
®éc lËp thùc hiÖn trªn FPGA. C¸c ®¸nh gi¸ tËp trung vµo th«ng l−îng cña
mçi thuËt to¸n - yªu cÇu b¾t buéc cho c¸c øng dông b¶o mËt kªnh b¨ng
réng hiÖn t¹i vµ t−¬ng lai, vµ tµi nguyªn hardware tiªu tèn - yªu cÇu vÒ gi¸
thµnh. Hai tiªu chuÈn nµy quan hÖ víi nhau theo:
TPS = (Tèc ®é m· hãa) / (Sè c¸c CLB sö dông)
Trong ®ã TPS lµ th«ng l−îng trªn mét Slice, CLB lµ khèi logic cã
thÓ cÊu h×nh.
D−íi ®©y lµ kÕt luËn cña c¸c nhãm ®¸nh gi¸ AES ®−îc tæng hîp vµ
b¸o c¸o trong [18] vµ [19].
KÕt luËn cña [19]
Trong ®ã c¸c ký hiÖu ®−îc gi¶i nghÜa nh− sau:
39
5 §©y lµ nãi t¹i thêi ®iÓm bµi b¸o nµy ®−îc viÕt. L−u ý lµ víi sù ph¸t triÓn rÊt nhanh cña c«ng nghÖ linh
kiÖn ®iÖn tö th× trong t−¬ng lai gÇn dung l−îng RAM nhóng nµy ch¾c ch¾n sÏ ®¸p øng ®−îc.
Opt: tèi −u theo tèc ®é hay theo area.
LU (Loop Unrolling): cÊu tróc kiÓu vßng lÆp unroll.
PP (full or Partial Pipelining): cÊu tróc kiÓu pipeline toµn bé hay
mét phÇn.
SP (sub-pipelining): cÊu tróc kiÓu pipeline mét phÇn víi sub-
pipeline.
C¸c chØ sè tiÕp theo lµ sè tÇng vµ (nÕu cÇn) sè c¸c tÇng sub-
pipeline.
VÝ dô:
LU-4 lµ cÊu tróc vßng lÆp unrolling víi 4 vßng.
SP-2-1 lµ cÊu tróc pipeline mét phÇn, cã 2 tÇng vµ 1 tÇng sub-
pipeline trªn mét tÇng pipeline. KÕt qu¶ lµ cÊu tróc SP-2-1 thùc hiÖn hai
vßng m· hãa víi tæng céng 2 tÇng trªn mét vßng.
B¶ng 2.1 Th«ng l−îng cña c¸c AES trong chÕ ®é kh«ng håi tiÕp
ThuËt to¸n CÊu tróc Tèi −u
Sè chu kú
trªn mét khèi m·
Th«ng l−îng
(Gbit/s)
RC6 SP-10-2 Tèc ®é 2 2.40
Rijndael SP-5-1 Tèc ®é 2.1 1.94
Serpent PP-32 Area 1 5.04
Twofish SP-8-2 Tèc ®é 2 2.40
40
H×nh 2.1 Th«ng l−îng cña c¸c AES trong chÕ ®é kh«ng håi tiÕp
B¶ng 2.2 Th«ng l−îng cña c¸c AES trong chÕ ®é håi tiÕp
ThuËt to¸n CÊu
tróc
Tèi −u Sè chu kú
trªn mét khèi m·
Th«ng l−îng
(Mbit/s)
RC6 PP-2 Tèc ®é 20 126.5
Rijndael LU-2 Tèc ®é 6 300.1
Serpent LU-8 Tèc ®é 4 444.2
Twofish SP-1-1 Area 32 127.7
H×nh 2.2 Th«ng l−îng cña c¸c AES trong chÕ ®é håi tiÕp
B¶ng 2.3 TPS cña c¸c AES trong chÕ ®é kh«ng håi tiÕp
ThuËt to¸n CÊu
tróc
Tèi −u Slices TPS
RC6 SP-10-2 Tèc ®é 10856 220881
Rijndael SP-2-1 Tèc ®é 4871 194837
Serpent PP-32 Tèc ®é 2112 539778
Twofish SP-8-2 Area 672 248666
H×nh 2.3 TPS cña c¸c AES trong chÕ ®é kh«ng håi tiÕp
41
B¶ng 2.4 TPS cña c¸c AES trong chÕ ®é håi tiÕp
ThuËt to¸n CÊu
tróc
Tèi −u Slices TPS
RC6 PP-2 Tèc ®é 3189 39662
Rijndael LU-2 Tèc ®é 3528 83387
Serpent LU-8 Tèc ®é 7964 55771
Twofish SP-1-1 Area 2695 47380
H×nh 2.4 TPS cña c¸c AES trong chÕ ®é kh«ng håi tiÕp
Theo c¸c ®¸nh gi¸ trªn th×:
• VÒ th«ng l−îng: Serpent cã th«ng l−îng tèt nhÊt trong c¶ hai chÕ
®é håi tiÕp vµ kh«ng håi tiÕp.
• VÒ th«ng l−îng trªn slice: Serpent cã th«ng l−îng tèt nhÊt trong
chÕ ®é kh«ng håi tiÕp; Rijndael cã th«ng l−îng tèt nhÊt trong chÕ
®é håi tiÕp.
KÕt luËn cña [18]
VÒ tèc ®é th× Serpent vµ Rijndael Ýt nhÊt còng nhanh gÊp ®«i 3 AES
cßn l¹i; Twofish vµ RC6 cã tèc ®é ®¹t møc trung b×nh vµ b»ng nhau; Mars
xÕp h¹ng kÐm nhÊt. Serpent nhanh h¬n Rijndael mét chót nÕu sö dông cÊu
tróc Serpent I8 (8 vßng m· hãa coi lµ mét vßng thùc hiÖn), vµ chËm h¬n
®¸ng kÓ nÕu sö dông cÊu tróc Serpent I1 (mét vßng thùc hiÖn gièng nh−
mét vßng m· hãa). Twofish nhanh h¬n RC6 tõ 1% ®Õn 54%.
42
VÒ th«ng l−îng ®èi víi ®Æc tÝnh area, cã thÓ chia c¸c AES thµnh 2
nhãm chÝnh. Rijndael vµ Serpent I8 cã tèc ®é cao nhÊt nh−ng cÇn nhiÒu
nhÊt c¸c area. Twofish, RC6 vµ Serpent I1 hiÖu qu¶ nhÊt vÒ area nh−ng
tèc ®é chØ trung b×nh. Mars kÐm nhÊt c¶ vÒ tèc ®é lÉn area.
VÒ khãa, ®èi víi Rijndael, Serpent vµ Twofish, th× thêi gian setup
khãa chØ chiÕm mét phÇn cña thêi gian cÇn thiÕt ®Ó m· hãa mét khèi data,
vµ nh− thÕ cã thÓ thay ®æi khãa ngay khi ®ang lµm viÖc mµ kh«ng ¶nh
h−ëng ®Õn th«ng l−îng m· hãa. §èi víi Mars th× thêi gian setup khãa lín
h¬n thêi gian m· mét khèi data, nh− thÕ khi ®æi khãa cÇn thªm mét
kho¶ng thêi gian, hoÆc thªm m¹ch ®Ó nhí khãa míi trong khi dïng nèt
khãa cò. Cßn víi RC6 th× kÕt luËn cña c¸c nhãm kh«ng thèng nhÊt.
Cã thÓ thÊy Serpent vµ Rijndael tèt h¬n c¸c thuËt to¸n cßn l¹i, trong
®ã Serpent nhØnh h¬n Rijndael. Tuy nhiªn khi c©n nh¾c thªm c¸c yÕu tè
kh¸c NIST ®· chän Rijndael.
2.3.4 Thùc hiÖn mËt m· trªn ®−êng Elliptic b»ng FPGA
MËt m· trªn ®−êng cong Elliptic (ECC) do Koblitz vµ Miller ®Ò
xuÊt vµo n¨m 1985. So víi c¸c hÖ mËt khãa c«ng khai kh¸c nh− RSA vµ
logarithm rêi r¹c th× ECC cã ®é dµi khãa ng¾n h¬n, ®é an toµn cao h¬n.
§Æc biÖt ECC rÊt thÝch hîp víi c¸c øng dông nhóng v× viÖc cøng hãa cÇn
Ýt tµi nguyªn hardware h¬n. VÝ dô dïng VLSI ®Ó thùc hiÖn ECC 155 bit
chØ cÇn 11,000 transistor, trong khi ®ã ®Ó cã ®é an toµn t−¬ng ®−¬ng RSA
ph¶i 512 bit thùc hiÖn trªn 50,000 transistor [24].
ECC còng an toµn h¬n RSA. §Ó ph¸ ®−îc ECC 97 bit cÇn c«ng suÊt
tÝnh to¸n gÊp ®«i ®Ó ph¸ RSA 512 bit.
§· cã nhiÒu nghiªn cøu c¶ vÒ lý thuyÕt lÉn thùc hµnh ®Ó cøng hãa
ECC trªn FPGA: [24], [25] nghiªn cøu ECC trong tr−êng Galois hçn hîp
43
( )mnF 2 ; [26] nghiªn cøu bé nh©n super-serial... Kh¶ n¨ng tiªu thô Ýt tµi
nguyªn hardware cña FCC lµ thuËn lîi ®¸ng kÓ cho viÖc cøng hãa FCC
b»ng FPGA so víi AES.
2.3.5 Thùc hiÖn hµm hash b»ng FPGA
C¸c hµm hash lµ c¬ së rÊt chung vµ quan träng cña mËt m· häc.
øng dông ®Çu tiªn cña chóng lµ sö dông cïng hÖ thèng khãa c«ng khai
trong c¸c s¬ ®å ch÷ ký sè. Chóng còng lµ phÇn c¬ b¶n cña m· hãa x¸c
thùc th«ng b¸o (MAC). C¸c øng dông kh¸c cã thÓ kÓ ra lµ m· hãa nhanh,
l−u tr÷ vµ kiÓm tra mËt khÈu, ph¸t hiÖn vius m¸y tÝnh, sinh sè gi¶ ngÉu
nhiªn...
Tuy thÕ rÊt khã thiÕt kÕ c¸c hµm hash m¹nh, kh«ng va ch¹m. Trong
sè hµng chôc hµm hash ®−îc ®Ò nghÞ th× chØ cã mét sè Ýt sö dông ®−îc, sè
®−îc chÊp nhËn lµ chuÈn cßn Ýt h¬n n÷a.
SHA-1 lµ hµm hash ®−îc Mü chÊp thuËn lµm chuÈn vµo n¨m 1993,
víi kÝch th−íc 160 bit. Khi DES ®−îc thay b»ng AES, th× ®é an toµn cña
SHA-1 kh«ng ®ñ ®Ó t−¬ng thÝch víi AES n÷a. Do ®ã NSA ®· ph¸t triÓn 3
hµm hash míi t−¬ng øng víi AES 128, 192 vµ 256 bit khãa lµ SHA-256,
SHA-384 vµ SHA-512.
C¸c hµm hash ®−îc thiÕt kÕ víi ®Þnh h−íng cho software, tuy nhiªn
do nh÷ng tÝnh to¸n trong thùc hiÖn hµm hash t−¬ng ®èi Ýt nªn cã thÓ dÔ
dµng thùc hiÖn b»ng hardware. So víi AES vµ ECC th× cøng hãa hµm hash
dÔ h¬n nhiÒu. Do hµm hash kh«ng ®ßi hái th«ng tin tr¹ng th¸i nªn cã thÓ
sö dông m¹ch tæ hîp hay c¸c vi xö lý c«ng suÊt trung b×nh ®Ó thùc hiÖn.
ViÖc cøng hãa hµm hash b»ng FPGA kh«ng sö dông hÕt tµi nguyªn cña
mét chip FPGA cì trung b×nh do thiÕt kÕ kh«ng cÇn sö dông ®Õn c¸c
thanh ghi vµ nhiÒu tµi nguyªn kh¸c cña FPGA.
44
So víi SHA-1 th× SHA-256, -384 vµ -512 bit cÇn nhiÒu tµi nguyªn
hardware h¬n, nh−ng tèc ®é thùc hiÖn l¹i nhanh h¬n. Theo kÕt qu¶ thùc
nghiÖm trªn cïng FPGA XCV-1000-6 cña Xilinx [27] th× SHA-512 nhanh
h¬n SHA-1 33% ®o b»ng lý thuyÕt vµ 26% ®o b»ng thùc nghiÖm. VÒ tµi
nguyªn th× SHA-512 sö dông c¸c m¶nh CLB nhiÒu gÊp ®«i SHA-1, vµ cÇn
thªm 4 Kbit RAM.
2.3.6 Thùc hiÖn sinh sè ngÉu nhiªn b»ng FPGA
Cã ba kü thuËt ®Ó t¹o sè ngÉu nhiªn: ®ã lµ khuÕch ®¹i trùc tiÕp,
chaos vµ trÝch mÉu dao ®éng.
KhuÕch ®¹i trùc tiÕp lµ kü thuËt quen thuéc, sè ngÉu nhiªn ®−îc lÊy
tõ nguån nhiÔu nµo ®ã (nh− tõ nhiÔu nhiÖt cña tiÕp gi¸p b¸n dÉn). Nh−îc
®iÓm cña nguån nhiÔu nhiÖt lµ rÊt kÐm æn ®Þnh vµ phô thuéc nhiÒu vµo
m«i tr−êng.
Chaos lµ kü thuËt t−¬ng tù kü thuËt KhuÕch ®¹i trùc tiÕp, ®iÓm
kh¸c lµ nguån ngÉu nhiªn dùa trªn sù hçn lo¹n nµo ®ã tõ mét kÝch ho¹t
ban ®Çu.
TrÝch mÉu dao ®éng sö dông jitter cña bé dao ®éng tÇn sè thÊp cã
hÖ sè phÈm chÊt Q thÊp ®Ó trÝch mÉu nguån tÇn sè cao.
Hai kü thuËt ®Çu liªn quan ®Õn xö lý tÝn hiÖu t−¬ng tù ®Çu vµo tr−íc
khi sè hãa thµnh chuçi bit ngÉu nhiªn. Kü thuËt thø 3 hÇu nh− chØ xö lý sè
tÝn hiÖu. T¹i thêi ®iÓm nµy th× xö lý tÝn hiÖu t−¬ng tù ch−a ph¶i lµ thÕ
m¹nh cña FPGA. Bëi thÕ ®Ó thiÕt kÕ m¹ch t¹o sè ngÉu nhiªn th× kü thuËt
TrÝch mÉu dao ®éng thÝch hîp h¬n c¶.
ThiÕt kÕ m¹ch sinh sè ngÉu nhiªn kh«ng chiÕm nhiÒu l¾m tµi
nguyªn cña FPGA [33], [34] vµ cã thÓ coi lµ dÔ nÕu so víi thiÕt kÕ AES,
khãa c«ng khai hay elliptic.
45
2.4 An toµn mËt m· dùa trªn hardware
C¸c thiÕt kÕ mËt m· trªn c¬ së hardware an toµn h¬n software rÊt
nhiÒu. Tuy nhiªn kh«ng ph¶i cø hardware lµ an toµn, mµ ®é an toµn cã
nhiÒu møc tïy thuéc vµo thiÕt kÕ. PhÇn nµy sÏ ph©n tÝch toµn diÖn vÒ ®é
an toµn cña hardware.
ë ®©y kh«ng xÐt ®Õn c¸c tÊn c«ng m· th¸m theo nghÜa chÆn thu tÝn
hiÖu trªn kªnh truyÒn th«ng ®Ó th¸m khãa hay th¸m m·. PhÇn nµy chØ
luËn bµn vÒ c¸c tÊn c«ng trùc tiÕp lªn hardware, víi gi¶ thiÕt lµ kÎ tÊn
c«ng tiÕp cËn ®−îc thiÕt bÞ vµ cã c¬ héi can thiÖp s©u vµo hardware cho
môc ®Ých tÊn c«ng th¸m ng−îc thiÕt kÕ.
2.4.1 TÊn c«ng lªn hardware nãi chung
C¸c security memories hay security microcontroller ®Òu ®−îc trang
bÞ security bit. Khi bit nµy ®−îc lËp tr×nh th× kh«ng thÓ ®äc ra ®−îc néi
dung cña chip. Tuy nhiªn cã thÓ xãa ®−îc c¸c bit nµy b»ng ph−¬ng thøc
rÊt nghiÖp d− [29], nh− lµm biÕn ®éng ®iÖn ¸p nguån hay nhiÖt ®é. VÝ dô
víi microcontroller PIC16C84, mÑo ®−îc biÕt réng r·i lµ n©ng ®iÖn ¸p
nguån Vcc lªn ®iÖp ¸p n¹p Vpp-0.5V trong lóc liªn tôc lÆp l¹i thao t¸c ghi
vµo security bit sÏ xãa ®−îc security bit mµ kh«ng ¶nh h−ëng ®Õn phÇn
cßn l¹i cña bé nhí.
§èi víi security processor DS5000, sau mét sè lÇn g©y sôt chíp
nho¸ng ®iÖn ¸p nguån sÏ xãa ®−îc security bit mµ d÷ liÖu trong bé nhí
vÉn gi÷ nguyªn. C¸c bé xö lý nh− 8752 cã thÓ ®−îc tÊn c«ng b»ng c¸ch
h¹ thÊp ®iÖn ¸p nguån ®Ó chuyÓn chÕ ®é lµm viÖc gi÷a bé nhí trong vµ bé
nhí ngoµi, nhê ®ã ®äc ra ®−îc néi dung bé nhí. H¹ thÊp ®iÖn ¸p nguån
cßn ¸p dông trong tr−êng hîp, vÝ dô ®èi víi bé sinh sè ngÉu nhiªn
analogue, khi ®iÖn ¸p nguån gi¶m nhÑ, sÏ sinh ra hÇu nh− toµn sè ‘1’.
46
Víi smartcard, c¸ch ®¬n gi¶n lµ cËy líp eboxi bao phñ trªn chip,
tiÕp theo dïng axit cho ¨n mßn líp b¶o vÖ chip ®Õn khi lé ra mÆt silicon
víi c¸c ®−êng dÉn bus. Tõ ®ã cho smartcard lµm viÖc b×nh th−êng råi
dïng c¸c ®Çu dß nhá th¨m vµo bus ®Ó ®äc ra sè liÖu. Tuy nhiªn ®©y lµ
kiÓu lµm amateur.
Trong c¸c phßng thÝ nghiÖm thiÕt bÞ b¸n dÉn ng−êi ta sö dông kü
thuËt kh¸c ®Ó th¸m ng−îc thiÕt kÕ trong chip [30]. §ã lµ ¨n mßn tõng líp
mét cña chip ®Ó lé ra c¸c líp N vµ P b»ng c¸ch sö dông hiÖu øng
Schottky: cho l¾ng ®äng trªn chip mét líp máng kim lo¹i nh− vµng hay
palladium ®Ó t¹o ra diot. Dïng chïm tia ®iÖn tö ®Ó chôp ¶nh diot nµy.
¶nh cña c¸c líp liªn tiÕp cña chip qua phÇn mÒm xö lý ¶nh m¸y tÝnh, sÏ
t¸i t¹o tõ ¶nh mê thµnh b¶n râ nÐt c¸c ®−êng. KÕt qu¶ lµ ®−îc mét s¬ ®å
mÆt n¹ chip tõ ®ã cho phÐp nhËn d¹ng thiÕt kÕ, hay thËm chÝ ®−îc mét th−
viÖn c¸c cell tõ ®ã cã thÓ t¹o l¹i chip. Víi c¸ch lµm nµy th× th¸m ng−îc vi
xö lý 80386 cña Intel mÊt thêi gian lµ 2 tuÇn vµ chi phÝ kho¶ng 6 con
chip.
Khi ®· biÕt s¬ ®å bè trÝ layout vµ chøc n¨ng cña chip, th× cã mét kü
thuËt cùc m¹nh do IBM ph¸t triÓn ®Ó quan s¸t ho¹t ®éng cña nã mµ kh«ng
cÇn gì bá c¸c líp oxi hãa: ®Æt mét tinh thÓ chÊt lithium niobate lªn ®iÓm
t¹i ®ã cÇn theo dâi ®iÖn ¸p. ChØ sè khóc x¹ cña chÊt nµy thay ®æi khi ¸p
vµo ®iÖn tr−êng, vµ ®iÖn thÕ cña silicon n»m d−íi cã thÓ ®äc ra b»ng c¸ch
sö dông tia laser cùc tÝm xuyªn l−ít qua tinh thÓ. §©y ®−îc hiÓu lµ c¸ch
chuÈn ®Ó phôc håi khãa m· tõ c¸c chip ®· biÕt s¬ ®å bè trÝ layout [29].
§Ó chèng l¹i tÊn c«ng kiÓu nµy, qu©n ®éi Mü sö dông mét chÊt phñ
chip [1]. ChÊt nµy kh«ng chØ ch¾n ¸nh s¸ng vµ dÉn ®iÖn, mµ cßn chèng l¹i
sù gì bá nã: nh÷ng toan tÝnh gì bá sÏ lµm háng lu«n chÊt silicon phÝa
d−íi. Kh«ng chØ ®Ó che phñ chip, chÊt nµy cßn cã kh¶ n¨ng g©y nhÇm lÉn
47
cho ng−êi tÊn c«ng. Ch¼ng h¹n thÊy d−êng nh− phÇn tö thiÕt kÕ lµ
transistor, nh−ng thùc ra ®ã chØ lµ ®−êng nèi gi÷a cæng vµ nguån ®iÖn;
hay cæng NOR 3 ®Çu vµo th× thÊy nh− lµ NOR 2 ®Çu vµo.
Mét gi¶i ph¸p mang tÝnh hÖ thèng h¬n ®· ®−îc sö dông trong chip
Clipper cña chÝnh phñ Mü. Chip cã mét hÖ thèng ®−êng dÉn kiÓu cÇu ch×,
c¸c ®−êng dÉn t¹o ra mét thuËt to¸n m· hãa cïng mét khãa dµi h¹n còng
theo kiÓu cÇu ch× t¹o nªn silicon v« ®Þnh h×nh g©y khã kh¨n cho viÖc soi
hiÓn vi chip. Thªm n÷a, bÒ mÆt cña chip ®−îc “−íp muèi” b»ng c¸c bé
dao ®éng ®Ó lµm khã cho tÊn c«ng kiÓu c¶m biÕn ®iÖn tõ. Tuy nhiªn b»ng
kü thuËt c¾t líp víi kÝnh hiÓn vi ®iÖn tö, mét ®éi thuéc Cambridge ®·
th«ng b¸o th¸m ®−îc thiÕt kÕ mét chip Clipper (còng cÇn chó thÝch lµ viÖc
th¸m nµy dùa vµo lçi cña giao thøc chø kh«ng ph¶i b»ng c¸ch th©m nhËp
vËt lý).
C¾t líp kh«ng chØ ®Ó th¸m thiÕt kÕ c¸c chip cã b¶o vÖ bÒ mÆt.
Phßng thÝ nghiÖm Sandia National ®· ph¸t minh kü thuËt nh×n xuyªn qua
chip tõ phÝa sau b»ng laser hång ngo¹i t¹i b−íc sãng ë ®ã chÊt silicon trë
nªn trong suèt. Khi Êy dßng quang ®iÖn t¹o ra cho phÐp dß ho¹t ®éng cña
chip vµ nhËn d¹ng tr¹ng th¸i logic cña tõng transistror mét.
§Ó tÊn c«ng smartcard, cã nh÷ng thiÕt bÞ chuyªn dông t¹o chïm tia
ion FIB. ThiÕt bÞ nµy cã thÓ c¾t c¸c r·nh trong líp kim lo¹i cña chip vµ t¹o
r·nh míi hoÆc c¸c líp c¸ch ®iÖn. Nã còng cã thÓ cÊy ion vµo ®Ó thay ®æi
líp ngoµi cña silicon vµ thËm chÝ cã thÓ t¹o c¸c lç qua cÊu tróc dÉn ®iÖn
cña líp thÊp nhÊt cña chip. ThiÕt bÞ nµy cã gi¸ kho¶ng vµi triÖu U.S dollar
vµ còng cã thÓ thuª ë mét sè c«ng ty b¸n dÉn.
Víi thiÕt bÞ nµy viÖc tÊn c«ng smartcard trë nªn ®¬n gi¶n. C¸ch tÊn
c«ng ®iÓn h×nh lµ ng¾t hÇu hÕt c¸c ch©n cña CPU ra khái bus, chØ ®Ó l¹i
c¸c ch©n liªn quan ®Õn viÖc ®äc EEPROM nh− H×nh 2.5 d−íi ®©y.
48
H×nh 2.5 TÊn c«ng smartcard
Khi Êy th©m nhËp bé nhí kh«ng ph¶i do bé ®Õm ch−¬ng tr×nh ®iÒu
khiÓn mµ tõ ®−êng tÝn hiÖu clock vµ ng−êi tÊn c«ng chØ cÇn mét kim th¨m
hoÆc mét ®Çu dß quang ®iÖn lµ ®äc ®−îc toµn bé néi dung EEPROM.
2.4.2 TÊn c«ng lªn FPGA
PhÇn trªn ®· l−ít qua mét vµi nguy c¬ vµ kü thuËt tÊn c«ng lªn thiÕt
kÕ hardware. Víi FPGA cã thÓ chia c¸c kiÓu tÊn c«ng thµnh c¸c nhãm
[28] nh− sau.
2.4.2.1 TÊn c«ng kiÓu Hép ®en
TÊn c«ng kiÓu hép ®en lµ ph−¬ng ph¸p cæ ®iÓn ®Ó th¸m ng−îc thiÕt
kÕ trong mét con chip. KÎ tÊn c«ng cho vµo mäi tæ hîp cã thÓ vµ ghi l¹i
c¸c tÝn hiÖu ra t−¬ng øng, tõ ®ã cè g¾ng suy luËn ra logic bªn trong cña
FPGA nhê b×a Karnaugh hay thuËt to¸n nµo ®ã. TÊn c«ng nµy chØ hiÖu
qu¶ nÕu FPGA nhá vµ c¸c ®Çu vµo, ra lµ râ rµng, céng víi søc m¹nh cña
nhiÒu m¸y tÝnh. Khi kÝch th−íc vµ ®é phøc t¹p cña FPGA t¨ng th× møc ®é
thµnh c«ng cña tÊn c«ng kiÓu nµy cµng gi¶m.
2.4.2.2 TÊn c«ng kiÓu §äc l¹i
§äc l¹i lµ ®Æc ®iÓm cña hÇu hÕt c¸c hä FPGA, cho phÐp ®äc ra cÊu
h×nh cña FPGA ®Ó debug. ý t−ëng tÊn c«ng lµ ®äc ra cÊu h×nh qua cæng
49
JTAG hoÆc qua giao diÖn lËp tr×nh ®Ó tõ ®ã t×m ®−îc khãa hay c¸c th«ng
tin mËt. Chøc n¨ng nµy cã thÓ cÊm ®−îc nhê c¸c bit security - ®©y lµ tÝnh
n¨ng khãa do nhµ m¸y s¶n xuÊt chip cung cÊp vµ ®· ®−îc cÊp b»ng s¸ng
chÕ.
Tuy nhiªn, cã c¸c biÖn ph¸p ®¬n gi¶n ®Ó v−ît qua rµo c¶n nµy.
B»ng c¸c kü thuËt g©y lçi lªn phÇn cøng, ch¼ng h¹n nh− ph¸t x¹ ®iÖn tõ,
laser hång ngo¹i, hay thËm chÝ ®Ìn chíp flash. HÇu nh− lu«n cã thÓ ph¸
®−îc c¸c bit khãa vµ ®äc ra ®−îc cÊu h×nh cña FPGA. (Tuy nhiªn víi
ASIC th× l¹i lµ vÊn ®Ò kh¸c).
2.4.2.3 TÊn c«ng nh¸i l¹i SRAM FPGA
FPGA c«ng nghÖ SRAM sö dông bé nhí ngoµi kiÓu PROM ®Ó l−u
tr÷ cÊu h×nh. Th−êng th× bé nhí ngoµi kh«ng ®−îc b¶o vÖ hoÆc b¶o vÖ ®¬n
gi¶n b»ng security bit vµ cã thÓ ph¸ ®−îc nh− c¸ch ®· tr×nh bµy ë phÇn
trªn. HoÆc tÊn c«ng theo c¸ch kh¸c. T¹i thêi ®iÓm bËt nguån th«ng tin
trong bé nhí ®−îc truyÒn ®Õn FPGA ®Ó cÊu h×nh nã. Ng−êi tÊn c«ng cã
thÓ mãc que th¨m trªn ®−êng truyÒn vµ thu ®−îc toµn bé th«ng tin cÊu
h×nh nµy.
2.4.2.4 Th¸m ng−îc thiÕt kÕ tõ chuçi bit
C¸c tÊn c«ng lªn FPGA ®· nãi ë trªn ®Òu cho kÕt qu¶ lµ chuçi bit
m« t¶ thiÕt kÕ cña chip. Ng−êi tÊn c«ng sÏ tõ chuçi bit nµy ph©n tÝch ra
thuËt to¸n m· hãa hoÆc khãa mËt.
MÆc dï c¸c c«ng ty s¶n xuÊt FPGA tuyªn bè lµ ®é an toµn cña
chuçi bit dùa trªn cÊu tróc cña sè liÖu cÊu h×nh. Nh−ng cÊu tróc nµy chØ bÝ
mËt khi tháa thuËn kh«ng c«ng bè ®−îc ký kÕt. §iÒu nµy, xÐt trªn quan
®iÓm mËt m·, th× coi nh− kh«ng mËt. Vµ thùc tÕ h¬n 10 n¨m tr−íc c«ng ty
phÇn mÒm CAD NEOCad ®· ph¸ ®−îc vµ th¸m ra thiÕt kÕ FPGA cña Xil-
inx. Hä ®· t¹o l¹i th«ng tin cÇn thiÕt nh− c¸c b¶ng look-up, ®−êng nèi, c¸c
50
phÇn tö l−u tr÷. Tõ ®ã NEOCad s¶n xuÊt phÇn mÒm thiÕt kÕ mµ kh«ng cÇn
ký kÕt hiÖp ®Þnh kh«ng c«ng bè víi h·ng s¶n xuÊt FPGA. §èi víi c¸c tæ
chøc tÊn c«ng lín cÊp chÝnh phñ, còng cã thÓ hä nhËn th«ng tin trùc tiÕp
tõ ng−êi b¸n hay tõ c¸c c«ng ty ®· ký kÕt hiÖp ®Þnh kh«ng c«ng bè.
2.4.2.5 TÊn c«ng vËt lý
TÊn c«ng vËt lý lµ th¨m dß c¸c ®iÓm trong chip ®Ó nghiªn cøu thiÕt
kÕ chip tõ ®ã t×m th«ng tin vÒ thuËt to¸n hay khãa mËt. TÊn c«ng nµy
nh»m vµo c¸c bé phËn trong chip kh«ng thÓ tiÕp cËn th«ng qua c¸c ch©n
I/O th«ng th−êng. B»ng mÊt th−êng hoµn toµn cã thÓ lµm ®−îc ®iÒu nµy
víi kÝnh hiÓn vi quang häc vµ ®Çu dß c¬ khÝ ®èi víi c¸c FPGA ®¬n gi¶n.
Víi FPGA phøc t¹p cÇn ph−¬ng ph¸p tiªn tiÕn h¬n, nh− sö dông hÖ thèng
chïm tia ion FIB.
Nãi chung kh«ng cã biÖn ph¸p nµo ®Ó b¶o vÖ FPGA chèng l¹i ®−îc
d¹ng thøc tÊn c«ng vËt lý. TiÕp theo chóng ta sÏ ph©n tÝch nh÷ng nç lùc
cÇn thiÕt ®Ó tÊn c«ng vËt lý lªn c¸c FPGA ®−îc s¶n xuÊt b»ng c¸c c«ng
nghÖ kh¸c nhau.
SRAM FPGAs: Tuy cã rÊt Ýt c«ng bè vÒ tÊn c«ng vËt lý lªn
SRAM FPGA, nh−ng nh÷ng nghiªn cøu vÒ tÊn c«ng lo¹i nµy lªn bé nhí
SRAM l¹i rÊt nhiÒu c¶ vÒ häc thuËt lÉn thùc nghiÖm. Do cÊu tróc bé nhí
SRAM còng t−¬ng tù nh− cña SRAM trong FPGA nªn cã thÓ thÊy lµ tÊn
c«ng lªn chóng còng cïng kiÓu. “IDDQ testing” lµ ph−¬ng ph¸p ®−îc sö
dông réng r·i nhÊt. Ph−¬ng ph¸p nµy dùa trªn viÖc ph©n tÝch dßng ®iÖn,
b»ng c¸ch thùc hiÖn mét lo¹t c¸c vector test cho ®Õn khi t×m ®−îc ®iÓm t¹i
®ã ®o ®−îc dßng ®iÖn. Sau ®ã c¨n cø vµo ®Æc tÝnh IDDQ bÊt b×nh th−êng
gi÷a c¸c tr¹ng th¸i kh¸c nhau ®Ó x¸c ®Þnh c¸c th«ng sè cÇn thiÕt. Mét kh¶
n¨ng tÊn c«ng kh¸c lµ dùa vµo ®−êng dÉn scan trong chip, ®−êng dÉn nµy
do c¸c nhµ s¶n xuÊt chip thªm vµo cho môc ®Ých test chip.
51
§Ó th©m nhËp ®Õn c¸c ®iÓm kh«ng ®−îc nhµ m¸y dµnh s½n, th× ph¶i
gì bá c¸c líp cña chip. C¸ch truyÒn thèng lµ th¨m c¬ häc b»ng ®Çu dß
vonfram ®−êng kÝnh 0.1 ÷ 0.2 µm. §Çu th¨m nµy cung cÊp b¨ng th«ng
hµng gigahert víi tô 100 fF vµ ®iÖn trë 1M. Tuy nhiªn nÕu chip cã cÊu
tróc phøc t¹p vµ nhiÒu líp th× ph−¬ng ph¸p c¬ häc nµy kh«ng ®ñ. Khi Êy
l¹i cÇn ®Õn thiÕt bÞ chïm tia ion FIB. ThiÕt bÞ cã vai trß t−¬ng tù nh− kÝnh
hiÓn vi ®iÖn tö, cã thÓ quan s¸t nh÷ng cÊu tróc xuèng ®Õn d−íi 5 nm ®Ó
t×m ra c¸c chÊt dÉn ®iÖn ®−îc che dÊu vµ t¹o c¸c ®iÓm th¨m míi.
Mét kiÓu kh¸c lµ dïng thiÕt bÞ test theo kiÓu tia ®iÖn tö EBT. EBT
lµ kÝnh hiÓn vi ®iÖn tö ®Æc biÖt cã thÓ t¨ng tèc c¸c ®iÖn tö s¬ cÊp lªn ®Õn
2.5 kV t¹i 5nA. EBT ®o n¨ng l−îng vµ sè l−îng ®iÖn tö thø cÊp ph¸t x¹ ra.
TÊn c«ng vËt lý lªn SRAM FPGA lµ cã thÓ, tuy nhiªn gi¸ thµnh rÊt
cao vµ hÇu nh− chØ cã thÓ thùc hiÖn ®−îc víi c¸c tæ chøc lín nh− c¬ quan
t×nh b¸o.
Antifuse FPGAs: cÊu tróc c¬ b¶n cña mét antifuse node (AF)
lµ mét líp c¸ch ®iÖn máng (nhá h¬n 1µm2) n»m gi÷a c¸c chÊt dÉn ®iÖn.
LËp tr×nh b»ng c¸ch ¸p ®iÖn ¸p vµo c¸c chÊt dÉn nµy. Khi Êy chÊt c¸ch
®iÖn trë nªn cã ®iÖn trë thÊp vµ sinh ra mét ®−êng nèi (®−êng kÝnh
kho¶ng 100 nm) gi÷a c¸c chÊt dÉn. Tr¹ng th¸i nµy tån t¹i vÜnh viÔn.
§Ó ph¸t hiÖn ®−îc ®−êng nèi nµy cã tån t¹i hay kh«ng cÇn ph¶i gì
bá tõng líp mét vµ/hoÆc sö dông ph−¬ng ph¸p c¾t líp. Tuy vËy ch−a thÊy
c«ng bè thµnh c«ng nµo vÒ tÊn c«ng kiÓu nµy. §Ó ph©n tÝch t×m cÊu h×nh
cña mét cell, cÇn cã nhiÒu phÐp thö. Khã kh¨n chÝnh lµ líp c¸ch ®iÖn qu¸
nhá so víi mét cell AF. Qu¸ tr×nh thö trªn mét cell sÏ g©y lçi vµ d−êng
nh− nh÷ng cell cßn l¹i sÏ bÞ ph¸ hñy [31]. §Ó th¸m ng−îc thiÕt kÕ mét file
cÊu h×nh cña chip Actel A54SX16 cã 24.000 cæng hÖ thèng cÇn tiªu tèn
52
chõng 800.000 con chip cã cïng cÊu h×nh. Khã kh¨n n÷a cho ng−êi tÊn
c«ng lµ chØ cã kho¶ng 2-5% sè ®−êng nèi cã thÓ trong mét thiÕt kÕ trung
b×nh ®−îc sö dông thùc sù. Bëi vËy tÊn c«ng Antifuse FPGA rÊt khã, khã
vµ tèn kÐm h¬n c¶ ®èi víi ASIC. Thùc tÕ tÊn c«ng AF FPGA nh»m thay
thÕ mét cell cÇn 2 th¸ng víi chi phÝ 1000 $ [32].
Flash FPGAs: C¸c ®−êng nèi trong flash FPGA ®−îc thùc hiÖn b»ng
flash transistor, cã nghÜa lµ tæng sè ®iÖn tö ch¶y qua cæng thay ®æi sau khi
cÊu h×nh vµ kh«ng cã kh¸c biÖt vÒ quang häc nh− tr−êng hîp AF FPGA.
Flash FPGA cã thÓ ®−îc ph©n tÝch b»ng c¸ch ®Æt chip trong buång ch©n
kh«ng råi cÊp nguån cho nã. Sau ®ã dïng kÝnh hiÓn vi ®iÖn tö thø cÊp ®Ó
quan s¸t sù chuyÓn ®éng cña ®iÖn tö. C¸ch tÊn c«ng nµy ®ßi hái ng−êi tÊn
c«ng ph¶i gì bá c¸c gãi ®Ó th©m nhËp ®Õn vÕt kh¾c trªn silicon. Tuy
nhiªn kiÓu nµy phøc t¹p vµ nh÷ng nhµ chuyªn m«n hiÖn vÉn ®ang tranh
c·i vÒ tÝnh thùc tiÔn cña nã.
Ngoµi ra cßn cã thÓ tÊn c«ng lªn flash FPGA nh»m vµo vïng liªn
quan cña bé nhí flash. C¸ch tÊn c«ng nµy còng t−¬ng tù nh− tÊn c«ng lªn
EEPROM.
2.4.2.6 TÊn c«ng Side channel
Mét thiÕt bÞ bÊt kú khi lµm viÖc ®Òu béc lé th«ng tin vÒ m×nh d−íi
mét h×nh thøc nµo ®ã. C¸c béc lé ®ã hiÓu nh− mét kªnh th«ng tin phô hay
lµ side channel, gåm nhiÒu d¹ng: sù tiªu thô n¨ng l−îng, kiÓu ho¹t ®éng
theo thêi gian, ph¸t x¹ ®iÖn tõ. TÊn c«ng dùa vµo side channel gäi lµ tÊn
c«ng side channel.
Cã hai kiÓu tÊn c«ng side channel chÝnh: Ph©n tÝch n¨ng l−îng ®¬n
gi¶n (SPA) vµ Ph©n tÝch n¨ng l−îng vi sai (DPA). ë ®©y ng−êi tÊn c«ng
ph©n tÝch tiªu thô n¨ng l−îng cña thiÕt bÞ trong khi thùc hiÖn mét thao t¸c
53
mËt m· nh»m t×m ra khãa mËt mµ kh«ng ph¶i thÊm nhËp vµo thiÕt bÞ. ý
t−ëng chÝnh cña DPA lµ t×m c¸c khu vùc ë ®ã tiªu thô n¨ng l−îng cã liªn
quan ®Õn khãa mËt. C¸ch tÊn c«ng nµy, trong mét sè tr−êng hîp, thµnh
c«ng ngay c¶ khi biÕt rÊt Ýt hoÆc kh«ng biÕt g× vÒ ®èi t−îng. Do ®ã ®· cã
nhiÒu nghiªn cøu ®Ó hoµn thiÖn kiÓu tÊn c«ng nµy [28].
Cã thÓ kÕt luËn g× vÒ c¸c tÊn c«ng lªn FPGA?
Víi tÊn c«ng kiÓu hép ®en: tÊn c«ng nµy chØ hiÖn thùc víi “hép”
®¬n gi¶n. Ngµy nay, sù phøc t¹p cña thuËt to¸n mËt m· céng víi sù phøc
t¹p cña cÊu tróc FPGA tù b¶n th©n nã ®· chèng l¹i hiÖu qu¶ tÊn c«ng kiÓu
nµy.
TÊn c«ng kiÓu nh¸i l¹i SRAM FPGA: khã mµ chèng l¹i hiÖu qu¶
tÊn c«ng nµy. C¸c gi¶i ph¸p ®−îc ®Ò nghÞ nh»m chèng l¹i mãc trém th«ng
tin trªn ®−êng dÉn d÷ liÖu tõ bé nhí ngoµi ®Õn FPGA ®Òu kh«ng hiÖn thùc
hoÆc l¹i n¶y sinh vÊn ®Ò phøc t¹p kh¸c. Gi¶i ph¸p “thùc tÕ” h¬n c¶ lµ chÕ
t¹o mét chip chøa c¶ bé nhí bÊt biÕn lÉn FPGA, hoÆc xÕp hai chip c¹nh
nhau råi ®æ epoxy phñ lªn c¶ ®«i.
BiÖn ph¸p ®èi phã hiÖu qu¶ vµ thùc tÕ nhÊt chèng tÊn c«ng nh¸i l¹i
SRAM FPGA lµ m· hãa file cÊu h×nh hoÆc m· mét phÇn chuçi bit. §· cã
nhiÒu patent vµ c¸c c«ng bè nghiªn cøu vÒ viÖc nµy [28]. Hä FPGA 60RS
cña Actel chøa khãa trªn chÝnh chip FPGA ®Ó gi¶i m· file cÊu h×nh. Tuy
nhiªn h·ng chØ cã mét khãa cho tÊt c¶ c¸c chip, cã nghÜa nÕu lé khãa th×
sÏ lé file cÊu h×nh cña tÊt c¶ c¸c thiÕt kÕ liªn quan ®Õn chip FPGA cïng
hä nµy. Mét gi¶i ph¸p kh¸c lµ nu«i toµn bé SRAM FPGA b»ng pin vµ nh−
vËy kh«ng cÇn truyÒn file cÊu h×nh mçi khi bËt nguån. Tuy nhiªn gi¶i
ph¸p nµy kh«ng kinh tÕ v× cÇn pin cho FPGA. Bëi vËy hiÖu qu¶ h¬n c¶ lµ
tæ hîp c¶ hai gi¶i ph¸p m· hãa vµ nu«i b»ng pin: FPGA Virtex II cña Xil-
inx cã khèi gi¶i m· 3DES trªn chip víi hai khãa l−u trong vïng RAM
54
®−îc nu«i b»ng pin.
Víi tÊn c«ng vËt lý: ®èi víi SRAM FPGA th× cÇn nhÊt lµ hiÖu øng
l−u tr¹ng th¸i cña c¸c cell cµng nhá cµng tèt. Trong ®iÒu kiÖn nhiÖt ®é
b×nh th−êng trong phßng (200C) th× SRAM cell sau khi ng¾t nguån nu«i
vÉn cã thÓ l−u ®−îc tr¹ng th¸i ®Õn hµng th¸ng, vµ ë 00C th× hµng n¨m. §èi
phã hiÖu øng nµy b»ng c¸ch ®Þnh kú ®¶o hoÆc di chuyÓn d÷ liÖu quanh bé
nhí.
Antifuse FPGA cã lÏ lµ c«ng nghÖ tù nã an toµn nhÊt víi tÊn c«ng
vËt lý: phÇn trªn ta ®· biÕt mçi toan tÝnh tÊn c«ng lªn mét cell cña FPGA
lo¹i nµy ®Òu cã thÓ lµm háng lu«n c¸c cell cßn l¹i cña chip. Kh«ng thÊy
c«ng bè nµo ®Ò xuÊt gi¶i ph¸p b¶o vÖ Antifuse FPGA tr−íc tÊn c«ng vËt
lý, ngoµi nh÷ng khuyÕn c¸o chung chung vÒ b¶o vÖ m«i tr−êng quanh
chip.
§èi víi c¸c « nhí flash/EEROM, nh÷ng lÇn n¹p ®Çu tiªn t¹o ra sù
dÞch chuyÓn lín trong ng−ìng cña cell. HiÖu øng nµy sÏ gi¶m sau kho¶ng
10 lÇn ghi/xãa. Bëi vËy ®Ó lo¹i trõ hiÖu øng nµy nªn n¹p FPGA kho¶ng
100 lÇn b»ng d÷ liÖu ngÉu nhiªn.
Víi tÊn c«ng ®äc l¹i: cã thÓ sö dông security bit ®Ó chèng l¹i tÊn
c«ng nµy. §Ó ®èi phã víi thñ ph¸p g©y lçi nh»m xãa security bit, ph¶i ®Æt
vµo m«i tr−êng an toµn ë ®ã cã c¬ chÕ ph¸t hiÖn can thiÖp ®Ó xãa néi
dung cña FPGA hoÆc thËm chÝ hñy c¶ chip.
Víi tÊn c«ng Side Channel: cã thÓ chia c¸c biÖn ph¸p ®èi phã
thµnh hai lo¹i: b»ng software vµ b»ng hardware. Gi¶i ph¸p software nh− lµ
che khãa mËt b»ng gi¸ trÞ ngÉu nhiªn. BiÖn ph¸p phÇn cøng cã thÓ lµ g©y
nhiÔu xãa bøc x¹ hoÆc thay ®æi møc transistor cña logic.
Tãm l¹i, trong phÇn nµy chóng ta ®· xem xÐt qua mét l−ît c¸c c«ng nghÖ
55
hiÖn ®ang phæ biÕn. Nh÷ng ph©n tÝch dÉn ®Õn c«ng nghÖ thÝch hîp nhÊt
cho mËt m· lµ c¸c bé xö lý cã kh¶ n¨ng cÊu h×nh l¹i mµ ®¹i diÖn lµ
FPGA. Chóng ta còng xem xÐt kh¶ n¨ng cña FPGA khi thùc hiÖn c¸c bµi
to¸n c¬ b¶n cña mËt m·; vÊn ®Ò security cña FPGA tr−íc c¸c tÊn c«ng
còng ®−îc nghiªn cøu.
56
PhÇn 3.
ChuÈn bÞ ®Ó cøng hãa mËt m·
Hai phÇn tr−íc ®· ®−a chóng ta ®Õn lùa chän FPGA cho mËt m·.
Bëi vËy c¸c kiÕn thøc cÇn thiÕt ®Ó cøng hãa mËt m· còng xoay quanh
FPGA. Mét sè kiÕn thøc vÒ to¸n thÝch hîp cho thiÕ kÕ øng dông nhóng
còng ®−îc ®Ò nghÞ.
3.1 C¸c kiÕn thøc cÇn thiÕt ®Ó thùc hiÖn FPGA
3.1.1 KiÕn thøc vÒ to¸n
ë ®©y chØ liÖt kª c¸c kiÕn thøc liªn quan trùc tiÕp ®Õn qu¸ tr×nh
cøng hãa thuËt to¸n, theo hiÓu biÕt cña ng−êi lµm kü thuËt. VÊn ®Ò nµy cã
thÓ cßn ph¶i th¶o luËn thªm nhiÒu trong qu¸ tr×nh nghiªn cøu chuyªn s©u
sau nµy, víi sù tham gia cña nh÷ng ng−êi lµm khoa häc mËt m·. C¸c kiÕn
thøc vÒ to¸n cÇn thiÕt bao gåm:
• ThuËt to¸n b×nh ph−¬ng vµ nh©n: thuËt to¸n th«ng dông nhÊt cho
phÐp lòy thõa modulo.
• ThuËt to¸n nh©n modulo Montgomery: thÝch hîp ®èi víi c¸c øng
dông nhóng ë ®ã giíi h¹n vÒ dung l−îng bé nhí.
• C¸c phÐp to¸n trªn tr−êng . nF2
• C¸c phÐp to¸n trªn ®−êng cong elliptic.
3.1.2 KiÕn thøc vÒ kü thuËt
KiÕn thøc ®Ó cøng hãa ®−¬ng nhiªn ph¶i lµ mäi kiÕn thøc vÒ ®iÖn tö
céng víi kiÕn thøc vÒ lËp tr×nh. Còng cÇn chó thÝch thªm lµ lËp tr×nh cho
chip, cho dï b»ng ng«n ng÷ cña c¸c bé xö lý hay b»ng ng«n ng÷ m« t¶
57
phÇn cøng cña FPGA, còng ph¶i theo t− duy kiÓu kü thuËt, cã nghÜa c¸c
lÖnh g¾n trùc tiÕp víi c¸c thanh ghi, c¸c cæng, c¸c xung... C¸c nhµ ph¸t
triÓn phÇn mÒm th−êng cã khuynh h−íng t− duy nèi tiÕp, cô thÓ b»ng c¸c
dßng lÖnh nèi tiÕp nhau. Ngay cho dï trong mét øng dông ®a nhiÖm th×
thùc hiÖn mçi lÖnh còng do chØ mét m¸y. C¸c nhµ ph¸t triÓn phÇn cøng l¹i
cã thiªn h−íng t− duy vµ lËp tr×nh kiÓu song song, bëi mét m¹ch ®iÖn
th−êng cã nhiÒu ®Çu vµo ho¹t ®éng ®ång thêi trªn nhiÒu macrocell liªn
kÕt víi nhau cho ra mét hoÆc nhiÒu tÝn hiÖu ra ®ång thêi. Do ®ã ph¸t biÓu
trong ng«n ng÷ m« t¶ phÇn cøng t¹o ra cÊu tróc. HiÖu qu¶ cña lËp tr×nh
nhiÒu khi phô thuéc vµo c¸ch ch−¬ng tr×nh phèi hîp víi ho¹t ®éng cña
phÇn cøng h¬n lµ theo thuËt to¸n.
C¸c kiÕn thøc c¨n b¶n vÒ ®iÖn tö cã thÓ kÓ ra lµ: Lý thuyÕt m¹ch,
§¹i sè Boolean, Nguyªn lý kü thuËt ®iÖn tö, Kü thuËt xung, Kü thuËt sè,
M¹ch tÝch hîp, §iÖn tö t−¬ng tù vµ ®iÖn tö sè, Kü thuËt vi xö lý, Linh
kiÖn b¸n dÉn vµ vi m¹ch, Kü thuËt ®o l−êng ®iÖn tö, TÝn hiÖu nhá, Ng«n
ng÷ lËp tr×nh cho vi xö lý assambler, C, ng«n ng÷ m« t¶ phÇn cøng
VHDL, Verilog, ABEL...
3.1.3 KiÕn thøc vÒ c«ng nghÖ
ThiÕt kÕ nguyªn lý ®óng ch−a ch¾c ®· dÉn ®Õn thµnh c«ng khi chÕ
t¹o, ®Æc biÖt víi nh÷ng m¹ch lµm viÖc ë tÇn sè cao vµ siªu cao. CÇn kiÕn
thøc vÒ T−¬ng thÝch ®iÖn tõ, kü thuËt ThiÕt kÕ m¹ch in vµ m«i tr−êng lµm
viÖc (nhiÖt ®é, ®é Èm, kh¶ n¨ng chÞu rung xãc...) ®Ó bè trÝ, s¾p xÕp c¸c
linh kiÖn sao cho t¸c ®éng nhiÔu ®iÖn tõ vµ nhiÔu nhiÖt còng nh− c¸c ¶nh
h−ëng qua l¹i cña chóng Ýt nhÊt hoÆc bï ®−îc cho nhau.
3.1.4 KiÕn thøc vÒ c«ng nghÖ vµ thÞ tr−êng vi m¹ch
Am t−êng vÒ c¸c chñng lo¹i vi m¹ch hiÖn cã gióp ng−êi thiÕt kÕ
chñ ®éng, lùa chän tèi −u nhÊt linh kiÖn phï hîp cho bµi to¸n x¸c ®Þnh.
58
KiÕn thøc vÒ phÇn nµy ph¶i ®−îc cËp nhËt th−êng xuyªn do cña c«ng
nghÖ chÕ t¹o chip lu«n ph¸t triÓn vµ thÞ tr−êng chip lu«n biÕn ®éng. T¹i
thêi ®iÓm nµy mét chip FPGA chøa 500,000 cæng, vµ sè l−îng nµy gÊp
®«i cø sau mçi 18 th¸ng, ®ång thêi gi¸ chip còng ngµy mét gi¶m. Còng
cÇn ®¸nh gi¸ ®−îc cïng mét chñng lo¹i chip th× cña h·ng nµo cã chÊt
l−îng cao h¬n, cña h·ng nµo rÎ h¬n; c«ng nghÖ chip nµo cã t−¬ng lai vµ
c«ng nghÖ nµo ®ang tho¸i hãa... Ho¹t ®éng nµy t−¬ng tù nh− thu thËp
th«ng tin t− liÖu gãp phÇn quyÕt ®Þnh vµo lùa chän gi¶i ph¸p ®óng ®¾n cho
thiÕt kÕ hiÖn t¹i vµ h−íng ®i cña t−¬ng lai.
3.2 C«ng cô cÇn thiÕt ®Ó thùc hiÖn FPGA
3.2.1 C«ng cô thiÕt kÕ
Qu¸ tr×nh thiÕt kÕ FPGA sÏ qua c¸c b−íc ®iÓn h×nh sau. Mçi t¸c vô
cÇn mét software t−¬ng øng. C«ng cô ®Ó thiÕt kÕ FPGA lµ bé phÇn mÒm
Computer-Aided Design (CAD) cña chÝnh h·ng hay do c¸c h·ng thuéc
thµnh phÇn thø ba s¶n xuÊt.
• NhËp thiÕt kÕ: vÏ s¬ ®å nguyªn lý b»ng c«ng cô ®å häa cña CAD
hay m« t¶ b»ng ng«n ng÷ m« t¶ phÇn cøng, hay phèi hîp c¶ hai
• Tèi −u logic: thuËt to¸n nh»m lµm cho thiÕt kÕ ®¹t hiÖu qu¶ cao
nhÊt cã thÓ vÒ tµi nguyªn, tèc ®é øng víi chip sÏ sö dông.
• Technology mapper: ¸nh x¹ tõ c¸c cæng logic c¬ b¶n vµo c¸c khèi
logic cña FPGA.
• Placement: chän lùa khèi logic nµo sÏ sö dông.
• Router: sö dông tµi nguyªn ®−êng dÉn ®Ó nèi c¸c khèi víi nhau.
• M« pháng: ®Ó kiÓm tra tÝnh ®óng ®¾n cña ho¹t ®éng cña chip.
Trong qu¸ tr×nh nµy ng−êi thiÕt kÕ ph¶i t×m lçi vµ quay l¹i b−íc
59
®Çu ®Ó söa.
• N¹p vµo chip: khi qu¸ tr×nh m« pháng ®· hoµn tÊt, logic theo ®óng
ý t−ëng th× b−íc cuèi cïng lµ n¹p thiÕt kÕ vµo chip b»ng c«ng cô
n¹p
Bé c«ng cô lín, m¹nh vµ nhiÒu tÝnh n¨ng nhÊt thuéc vÒ Altera vµ
Xilinx. Ngoµi ra Synplicity lµ mét trong c¸c c«ng ty phÇn mÒm kh¸c ph¸t
triÓn c«ng cô cho FPGA.
3.2.2 ThiÕt bÞ
• M¸y tÝnh: ®Ó ch¹y c¸c phÇn mÒm CAD cho qu¸ tr×nh thiÕt kÕ
FPGA. Mét thiÕt kÕ FPGA th−êng phøc t¹p, thêi gian ch¹y m«
pháng vµ gì rèi mét thiÕt kÕ cã ®é phøc t¹p trung b×nh mÊt tõ vµi
giê ®Õn vµi ngµy tïy thuéc cÊu h×nh m¸y tÝnh. Mét ®iÒu quan träng
lµ mµn h×nh cµng lín cµng thuËn lîi cho ng−êi thiÕt kÕ v× c¸c chi
tiÕt trong FPGA (c¸c khèi logic, c¸c ®−êng dÉn...) rÊt nhiÒu vµ
nhá.
• ThiÕt bÞ n¹p: ®Ó n¹p chuçi bit (kÕt qu¶ kÕt xuÊt cña phÇn mÒm m«
pháng) vµo chip. Ngµy nay ®a sè c¸c FPGA ®Òu cã kh¶ n¨ng tù
n¹p mµ kh«ng cÇn thiÕt bÞ chuyªn dông. Trong tr−êng hîp Êy
truyÒn trùc tiÕp chuçi bit tõ m¸y tÝnh vµo chip qua cæng JTAG.
3.2.3 Nh©n lùc
HÇu hÕt c¸c b−íc thiÕt kÕ cÇn tr×nh ®é kü s− chuyªn ngµnh ®iÖn tö
am hiÓu c¶ vÒ ph©n tÝch, thiÕt kÕ m¹ch lÉn lËp tr×nh. Còng cÇn chó ý ®Õn
phÈm chÊt cña ng−êi lµm nghiªn cøu: tØ mØ, cÈn thËn vµ say mª.
3.3 C¸c h·ng s¶n xuÊt FPGA
Hai h·ng chÝnh s¶n xuÊt FPGA lµ Xilinx vµ Altera. C¸c h·ng Actel,
60
QuickLogic, Lattice, Cypress, AT&T, Atmel, ICT, Lucent Technologies,
Rohm, Space Electronics chiÕm thÞ phÇn cßn l¹i. FPGA cña c¸c h·ng nµy
th−êng cã thªm chøc n¨ng x¸c ®Þnh.
Hai lo¹i FPGA chÝnh ®ang cã trªn thÞ tr−êng: SRAM FPGA vµ
Antifuse FPGA. Lo¹i thø nhÊt th× c¸c h·ng Xilinx vµ Altera ®ang dÉn ®Çu,
ngoµi ra h·ng AT&T còng ®ang lµ ®èi thñ. Lo¹i thø hai th× Actel, Quick-
logic vµ Cypress, vµ Xilinx ®ang c¹nh tranh nhau.
SRAM FPGA phæ biÕn h¬n Antifuse FPGA. Tuy nhiªn trong c¸c
lÜnh vùc ë ®ã vÊn ®Ò b¶o vÖ chip chèng th©m nhËp lµ quan träng th×
Antifuse FPGA ®−îc −a chuéng h¬n.
3.4 T−¬ng lai cña FPGA
Tr−íc kia FPGA chØ gåm c¸c cæng logic ®−îc nèi víi nhau ®Ó thùc
hiÖn mét thiÕt kÕ nµo ®ã. HiÖn nay c¸c nhµ s¶n xuÊt FPGA ®ang cã
khuynh h−íng kÕt hîp thªm c¸c phÇn x¸c ®Þnh vµo cïng mét chip FPGA
d−íi d¹ng nh©n cøng hay nh©n mÒm, nh− giao diÖn I/O PCI, giao diÖn
m¹ng hay vi ®iÒu khiÓn, vi xö lý RISC, DSP.
Vai trß cña FPGA ®ang thay ®æi. Nã kh«ng ®¬n thuÇn lµ mét lo¹i
chip ®Ó cøng hãa mét thuËt to¸n mµ trë thµnh platform trªn ®ã tæ hîp
nh©n cøng, nh©n mÒm, logic cã thÓ lËp tr×nh. Trong t−¬ng lai gÇn trªn mét
chip FPGA sÏ cã tÊt c¶ c¸c thµnh phÇn cÇn thiÕt ®Ó t¹o nªn System-on-
Chip. Chip míi sÏ cã tèc ®é cña ASIC vµ tÝnh mÒm dÎo cña FPGA.
Tãm l¹i, phÇn nµy ®· ®Ò xuÊt nh÷ng kiÕn thøc chóng t«i cho lµ cÇn thiÕt
trong thiÕt kÕ ®iÖn tö nãi chung vµ FPGA nãi riªng ®Ó cøng hãa mËt m·.
Nh÷ng ®Ò nghÞ nµy tuy dùa trªn c¬ së nghiªn cøu cña hai phÇn tr−íc,
nh−ng vÉn lµ chñ quan theo nhËn thøc cña ng−êi viÕt. Thùc tÕ qu¸ tr×nh
cøng hãa sÏ bæ sung ®Çy ®ñ thªm.
61
KÕt luËn
1. Kh«ng thÓ kh¼ng ®Þnh hardware hay software c¸i nµo h¬n c¸i nµo
trong mËt m·, tuy nhiªn cã thÓ kh¼ng ®Þnh −u thÕ v−ît tréi cña
hardware lµ tèc ®é vµ an toµn chèng x©m nhËp (vµ kÌm theo lµ gi¸
thµnh!).
2. Trong thÕ giíi hardware th× c«ng nghÖ FPGA lµ thÝch hîp nhÊt
cho mËt m· theo c¶ 2 nghÜa encryption vµ security.
3. Qu¸ tr×nh lµm chñ FPGA tèn nhiÒu thêi gian vµ c«ng søc. NhiÒu
c«ng ty nhá trªn thÕ giíi chän gi¶i ph¸p t×nh b¸o c«ng nghiÖp ®Ó
nhanh chãng cã s¶n phÈm.
4. T−¬ng lai cña FPGA kh«ng dõng l¹i ë kh¶ n¨ng cøng hãa mét t¸c
vô nµo ®ã, mµ ë chç FPGA ®ang tiÕn ®Õn System-on-Chip.
62
Tµi liÖu tham kh¶o
1. FIPS 140-1 - Security Requirements for Cryptographic Modules.,
1994 January 11.
2. Leon Adams., Choosing the Right Architecture for Real-Time Sig-
nal Processing Designs., White Paper., SPRA879 - November
2002.
3. Christof Paar., Reconfigurable Hardware in Modern Cryptogra-
phy., ECC 2000 October 4-6., Essen, Germany.
4. Hagai Bar-El., Security Implications of Hardware vs. Software
Cryptographic Modules., Information Security Analyst., October
2002.
5. Cryptology.,
6. Leon Adams., Choosing the Right Architecture for Real-Time Sig-
nal Processing Designs., SPRA879 - November 2002
7. Stephen Brown and Jonathan Rose., Architecture of FPGAs and
CPLDs: A Tutorial., Department of Electrical and Computer En-
gineering University of Toronto.
8. Khary Alexander, Ramesh Karri, Igor Minkin, Kaijie Wu, Piyush
Mishra, Xuan Li., Towards 10-100 Gbps Cryptographic Architec-
tures., IBM Corporation, Poughkeepsie, NY, 12601.
9. AJ Elbirt, C Paar., Towards an FPGA Architecture Optimized for
Public-Key Algorithms., Cryptography and Information Security
Laboratory, Worcester, MA 01609.
10. Thomas Blum., Modular Exponentiation on Reconfigurable
63
Hardware., Thesis., WORCESTER POLYTECHNIC INSTITUTE.
11. M. Shand and J. Vuillemin. Fast implementations of RSA cryptog-
raphy. In Proceedings 11th IEEE Symposium on Computer
Arithmetic, pages 252–259, 1993.
12. H.Orup. Simplifying quotient determination in high-radix modular
multiplication., In Proceedings 12th Symposium on Computer
Arithmetic, pages 193–9, 1995.
13. K. Iwamura, T. Matsumoto, and H. Imai. Montgomery modular-
multiplication., method and systolic arrays suitable for modular
exponentiation. Electronics and Communications in Japan, Part 3,
77(3):40–51, March 1994.
14. J.-P. Kaps. High speed FPGA architectures for the Data Encryp-
tion Standard., Master’s thesis, ECE Dept., Worcester Polytechnic
Institute, Worcester, USA, May 1998.
15. Ahmed Shihab, Alcahest; and Martin Langhammer, Altera., Im-
plementing IKE Capabilities in FPGA Designs., Dec 05, 2003
URL:
ID=16600061
16. Alexander Tiountchik, Institute of Mathematics, National Acad-
emy of Sciences of Belarus vµ Elena Trichina, Advanced Comput-
ing Research Centre, University of South Australia., FPGA Im-
plementation of Modular Exponentiation.
17. Hauck, S. (1998). “The Roles of FPGAs in Reprogrammable Sys-
tems” Proceedings of the IEEE 86(4): 615-638.
18. Kris Gaj and Pawel Chodowiec., Hardware performance of the
64
AES finalists - survey and analysis of results., George Mason Uni-
versity.
19. AJ Elbirt, W Yip, B Chetwynd, C Paar., An FPGA-Based Per-
formance Evaluation of the AES Block Cipher Candidate Algo-
rithm Finalists., ECE Department, Worcester Polytechnic Insti-
tute.
20. Kris Gaj and Pawel Chodowiec., Comparison of the hardware
performance of the AES candidates using reconfigurable hard-
ware., George Mason University.
21. Bruce Schneier, John Kelseyy, Doug Whitingz, David Wagnerx,
Chris Hall, Niels Ferguson., Performance Comparison of the AES
Submissions., January 3, 1999.
22. J. P. Kaps and C. Paar, Fast DES implementation on FPGAs and
its application to a universal key-search machine, in Fifth Annual
Workshop on Selected Areas in Cryptography, vol. LNCS 1556,
Springer-Verlag, August 1998.
23. O. Mencer, M. Morf, and M. J. Flynn, Hardware Software Tri-
Design of Encryption for Mobile Communication Units, in Pro-
ceedings of International Conference on Acoustics, Speech, and
Signal Processing, vol. 5, (New York, New York, USA).
24. K. H. Leung, K. W. Ma, W. K. Wong vµ P. H. W. Leong., FPGA
Implementation of a Microcoded Elliptic Curve Cryptographic
Processor., Department of Computer Science and Engineering,
The Chinese University of Hong Kong.
25. M. Rosner Elliptic Curve Cryptosystems on reconfigurable hard-
65
ware., Master’s Thesis Worcester., Polytechnic Institute Worces-
ter USA 1998.
26. G. Orlando and C. Paar., A super-serial Galois field multiplier for
FPGAs and its application to public key algorithms., Proceedings
of the IEEE Symposium on Field-programmable custom comput-
ing machines., trang 232-239., 1999.
27. T. Grembowski, R. Lien, K. Gaj, N. Nguyen, P. Bellows, J. Flidr,
T. Lehman, B. Schott., Comparative Analysis of the Hardware
Implementations of Hash Functions SHA-1 and SHA-512., Electri-
cal and Computer Engineering, George Mason University, 4400
University Drive, University of Southern California - Information
Sciences Institute.
28. Thomas Wollinger and Christof Paar., How Secure Are FPGAs in
Cryptographic Applications?.,
Report 2003/119, 5. June 2003
29. Ross Anderson Markus Kuhn., Tamper Resistance - a Cautionary
Note., The Second USENIX Workshop on Electronic Commerce
Proceedings, Oakland, California, November 18-21, 1996, pp 1-
11, ISBN 1-880446-83-9.
30. S Blythe, B Fraboni, S Lall, H Ahmed, U deRiu, Layout Recon-
struction of Complex Silicon Chips, IEEE Journal of Solid-State
Circuits v 28 no 2 (Feb 93) pp 138-145.
31. B. Dipert. Cunning circuits confound crooks.,
66
32. G. Richard., Digital Signature Technology Aids IP Protection.,
EETimes - News, 1998.
33. K.H. Tsoi, K.H. Leung and P.H.W. Leong., Compact FPGA-based
True and Pseudo Random Number Generators., Department of
Computer Science and Engineering, The Chinese University of
Hong Kong, Shatin, NT Hong Kong.
34. V. Fischer and M. Drutarovsky. True random number generator
embedded in reconfigurable hardware. Trong Proceedings Cryp-
tographic Hardware and Embedded Systems Workshop (CHES),
trang 415-430, 2002.
67
Các file đính kèm theo tài liệu này:
- 54333.pdf