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

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ã

pdf71 trang | Chia sẻ: banmai | Lượt xem: 2032 | Lượt tải: 0download
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:

  • pdf54333.pdf
Tài liệu liên quan