ÉÏÒ»ÆÚ´ó¼ÒÌáµ½ÁËÍøÂç·þÎñÆ÷¹Ì¶¨¼þµÄ°²È«Òþ»¼ºÍ´«Í³Ê½Î¬»¤·½Ê½µÄ²»¹»£¬Ìáµ½ÁË·þÎñƽ̨¹Ì¶¨¼þά»¤ÐÞ¸´£¨PFR£©ÕâһȫÐÂÉý¼¶µÄ¹æ·¶½«ÎªÍøÂç·þÎñÆ÷¸øÓè¶à·½Î»µÄά»¤¡£½ñÈÕ´ó¼Ò̸һ̸ÔõÑùÍê³ÉPFR½â¾ö·½·¨ £¬¼°Æä¶þÖÖµäÐÍÐԼƻ®·½°¸µÄ½ÏΪ¡£
Íê³ÉºÏºõNIST¹æ·¶µÄPFR½â¾ö·½·¨
PLDÉÏÍê³É¿É¿¿¸ùµÄ¹Ø¼üµãÈ¡¾öÓÚ£¬Íê³É¼Æ»®µÄÓë´Ëͬʱ²»¸ø³õʼÉèÊ©Éú²úÉ̲úÉú¹ý´óµÄѹÁ¦¡£¿É¿¿¸ùÓ²¼þÅäÖýâ¾ö·½·¨£¨°ü À¨¸ù¾ÝPLDµÄ½â¾ö·½·¨£©Îñ±Ø¿ÉÍØÕ¹£¬Ò²¾Í´ú±í×ÅËü¿ÉÒÔά»¤ÍøÂç·þÎñÆ÷ÉϵÄÈ«²¿¹Ì¶¨¼þ£¬Óë´Ëͬʱ·´Ó¦Ê±¼ä×öµ½ºÁ΢Ãë¼¶¡£Ëü»¹ÐèÒª¿ÉÒÔÓ¦Óò»Äܸ͝µÄÊý¾Ý¼ÓÃÜ¿ØÖÆÄ£¿é£¬¸ù¾ÝÊý¾Ý¼ÓÃܼìÑéÀ´Ã÷È·¹Ì¶¨¼þÊDz»ÊÇÔâÊÜαÔì¡£½«PFRÓëÍøÂç·þÎñÆ÷È«²¿²¿¼þÏêϸµÄÔËÐÐʱÖÓÆµÂʲÙ×Ý×÷ÓýôÃܽáºÏ£¬RoT¾ÍÔ½À´Ô½²»Äܱܹý¡£×îÖÕ£¬½â¾ö·½·¨»¹Ó¦ÄÜÈ«×Ô¶¯×ª»»»Ø½üÆÚµÄ¹Ø¼ü¹Ì¶¨¼þ¾µÏñÎļþ£¬±ãÓÚÔÚ·¢¾õµ±½ñ¹Ì¶¨¼þ±»»Ù»µÊ±ÍøÂç·þÎñÆ÷¿ÉÒÔÔÙ´ÎÔË×÷¡£
ÒÀÕս綨£¬¸ù¾ÝÓ²¼þÅäÖõÄRoTÔªÆ÷¼þµ±È»±ØÐëÔÚ¼¯³ÉicÖÐÍê³É¡£ÔÚÕâÀïÇéÐÎÏ£¬×î³£¼ûµÄ¼¯³Éic·þÎñƽ̨¼´Î¢´¦ÀíÆ÷£¨MCU£©ºÍÏÖ ³¡¿É±àÃÅÕóÁУ¨FPGA£©¡£ÔÚ¿¼Âǵ½µ½FPGAºÍMCUµÄÔË×÷ÌØÕ÷ºÍÌØµãºó£¬´ó¼Ò·¢¾õFPGAÔڽϴóˮƽÉϸüÊÊÓÃPFR½â¾ö·½·¨¡£
Ó¦ÓÃMCUÍê³É¿É¿¿¸ù
MCUÒÔÍù¾³£ÔÚ·þÎñÆ÷µÄÅäÖÃÉÌÆ·ÖÐÓÃÒԴ¿É¿¿¸ù¡£¼òÒ×¶øÑÔ£¬±ãÊDZ£´æMCU²ãµÄÒ»²¿·ÖΪ¿É¿¿ÊµÐÐ×ÔÈ»»·¾³¡£MCU µÄÕâÒ»²¿·ÖÓ뼯³ÉicµÄ±ðµÄµØÇøÎ¬³ÖÎïÀí¸ôÀ룬²¢²»¶Ï¼à¹Ü¹Ì¶¨¼þ£¬±£Ö¤ÆäµÃµ½Ðí¿É²¢Ò»ÇÐÕý³£¹¤×÷ÖС£Ò»°ã¶øÑÔ£¬ÍøÂç·þÎñÆ÷ÉϵÄPFR×÷ÓÃÊǸù¾ÝÏòĿǰµÄÓ²¼þÅäÖù¹¼ÜÉϼÓÉÏRoT MCUÍê³ÉµÄ¡£
MCUͨ³£ÎÞ·¨ÊÊÓÃÈÏÖ¤ÍøÂç·þÎñÆ÷Öеĺü¸¸ö¹Ì¶¨¼þ°¸Àý¡£ÕâÊÇÓÉÓÚËüû·¨ÔÚ›]ÓÐÍâΧÉ豸£¨ÈçPLD£©µÄŽÍÖúÏ»ØÓ¦¶ÔÔÆÖ÷»úÈ«²¿¹Ì¶¨¼þ°¸ÀýµÄϵͳÈí¼þƒÈ²¿½ø¹¥£¨¶øPLDÄÜʵʱ¼à¿ØÏµÍ³SPI´¢´æÆ÷µÄ×ÜÁ÷Á¿²¢Í¬ši¼ìÑéºÍ»ØÓ¦ÇÖÈë¸öÈËÐÐΪ£©¡£ÈçÏÂͼ4ËùÏÔʾ£¬Ó¦ÓÃMCUÍê³ÉPFRµÄÈý¸ö²¿¼þΪ£º
RoT MCU¨C RoT MCUʵÐмìÑé¡¢ÐÞ¸´ºÍά»¤×÷Óã»ËüÊÇÍê³ÉRoTµÄÖ÷Òª²¿¼þ¡£
ά»¤PLD¨C ¸ù¾Ýʵʱ¼à¿ØÏµÍ³È«²¿²¿¼þCPUÓëÆä˵SPI´¢´æÆ÷»úÆ÷É豸¼äµÄÖ÷Ìâ»î¶¯£¬¹æÄ£ÐÔÍê³ÉPFR£¬È«·½Î»Î¬»¤µçÔ´µç·°å¡£
²Ù×ÝPLD¨C ¸ÃÔªÆ÷¼þ¼¯³É»¯ÁËÈ«²¿Ïß·°å¼¶µÄͨµçºÍУ׼ʱÖÓÆµÂÊ×÷Ó㬰üº¬·ç»ú²Ù×Ý¡¢SGPIO¡¢I2C»º´æ¡¢Êý¾ÝÐźż¯³É»¯ºÍ´øÍâͨѶµÈÔËÐеçÄÔÖ÷°åÎñ±ØµÄ×÷Óá£RoT MCUÖ¸Áî²Ù×ÝPLDΪµçÔ´µç·°åͨµç¡£Èô±ØÐëÔÚÆ«¼¤×´¿ö¿ªÕ¹ÐÞ¸´£¬RoT MCUÔòÖ¸Áî²Ù×ÝPLD½öΪ¿É¿¿ÐÞ¸´²Ù×÷¹ý³ÌÖвÉÓõÄÒ»²¿·ÖÏß·°åÅäµç¡£
ͼ 4£º¼ÙÈç±ØÐë¸÷²¿¼þÓë´ËͬʱÔËÐУ¬ÄÇüNºÏºõPFR¹æ·¶¡¢Ó¦ÓÃMCU×öΪ¿É¿¿¸ùµÄÍøÂç·þÎñÆ÷»¹±ØÐëÁíÍâµÄ²¿¼þ£¨FPGA£©À´×¼±¸±ØÐèµÄÐÔÄÜ׿Խ£»ÔÚ´óÁ¿µÄ·þÎñÆ÷Ó¦ÓÃÇé¾°Ï£¬´ËÀà½â¾ö·½·¨²»ÄÜÍØÕ¹
ÕâÀà¸ù¾ÝMCUµÄPFR¼Æ»®·½°¸ÓÐÖÚ¶àÏÞ¶¨¡£±ÈÈ磬ͼ4µçÔ´µç·ÖвÉÓõIJÙ×ÝPLDû·¨Î¬»¤±¾Éí¹Ì¶¨¼þ£¬Ò²¾Í´ú±í×ÅÕâÀ๹¼Ü²¢²»ÊÇ·ûºÏʵ¼ÊNIST PFRµÄ¹æ¶¨¡£²Ù×ÝPLDµÄ±àÂëÈÔÓпÉÄܱ»¸Ä¶¯£¬ÈÃRoT MCUÎÞЧ¡£Ò²ÓкÜÓпÉÄÜÔâÊÜÓÀ¾ÃÐԾܾø·þÎñ¹¥»÷£¨PDoS£©£¬¸ù¾ÝɾµôÕâÖÖPLDÉϵÄÐÅÏ¢ÄÚÈÝ£¬ÈÃϵͳÈí¼þû·¨ÔË×÷£¬½ø¶øÊ¹ÈÃÍøÂç·þÎñÆ÷ÎÞ·¨Æô¶¯¡£Î¬»¤ºÍ²Ù×ÝPLD´æÓеÄÍøÂ簲ȫÎÊÌâ´Ùʹ²¿¼þÔÚÔËËÍ»òÊÇÐÅϢϵͳ¼¯³ÉÈ«¹ý³ÌÖÐÄÑÒÔ±ÜÃâ¶Ô¹Ì¶¨¼þµÄ½ø¹¥¡£ÎªÁ˸üºÃµØ×öµ½NIST SP 800 193¹æ·¶£¬RoT MCUÎñ±ØÓë´ËͬʱΪ²Ù×ÝPLDºÍά»¤PLDÍê³ÉPFR×÷Ó᣶øÓ¦ÓÃMCUÔÚÕâÖÖÔªÆ÷¼þÉÏÍê³ÉÐÞ¸´ºÍά»¤ÄÜÁ¦Ê®·Ö¼èÄÑ¡£×îÖÕ£¬¸ù¾ÝMCUµÄ¼Æ»®·½°¸±ØÐëÁíÍâµÄϵͳÈí¼þ¼¶¹ý³ÌÀ´¼ì¼ì²âͼ±Ü¹ýÈ«²¿RoTµçÔ´µç·µÄ¹¥»÷ÐÔÐÐΪ¡£
Ó¦ÓÃFPGAÍê³É¿É¿¿¸ù
ͼ 5£ºRoT FPGA½â¾ö·½·¨½«RoT MCU¡¢²Ù×ÝPLDºÍά»¤PLDµÄ×÷Óü¯³É»¯ÔÚµ¥¶ÀÒ»¸ö¼¯³ÉicÉÏ£¬²»µ«¿¿Æ×¡¢Ò×ÍØÕ¹£¬²¢ÇÒ²»Äܱܹý¡£ÔÚÓÐןϺõPFR¹æ·¶µÄPLDµÄÍøÂç·þÎñÆ÷ÉÏ£¬PLDµÄÌØÐÔ×ã¹»²¢Ðд¦Àí¼ì²âÈ«²¿²¿¼þµÄ¹Ì¶¨¼þ¶ø²»ÓÃÓ¦Óø½¼ÓµÄFPGA
¸ù¾Ý¿É¿¿¸ùFPGAµÄPFR½â¾ö·½·¨Óŵã
ÕýÈçͬÆäÃû£¬¿É±à³ÌÂß¼µçÔ´µç·£¨PLD£©ÊÇÒ»ÖÖ¼¸ºõ¿ÉÒÔ˲¼äÍê³ÉÔ¶³Ì¿ØÖÆÔٴγÌÐò±àдµÄµç×ÓÆ÷¼þ£¬ÒÔÈÚÈë³ÖÐø±ä¶¯µÄÇé¾°¡£PLD¿ÉÒÔÔÚÓ²¼þÅäÖ÷½ÃæÉÏÓ°ÏìÆäµçÔ´µç·£¬Òò¶øÒ»µ©¼à²âµ½Ã»¾ÈÏÖ¤µÄ¹Ì¶¨¼þ£¬¸Ã¹Ì¶¨¼þ¾ÍÎÞ·¨°²×°¡£
³ý´ËÖ®Í⣬PLDÓ¦ÓÃÁËÓÅÐãµÄÄ£Äâ·ÂÕæÈí¼þ£¬Èü¼Êõ¹¤³ÌʦµÃµ½ÈÏÖ¤ÆäPLDÉè¼Æ·½°¸µÄ×÷Ó᣼¼Êõ¹¤³Ìʦ»¹Äܹ»Ó¦ÓÃÕâһרÓù¤¾ßÀ´¼ì²âÆä¶ÔÓÚ¸÷ÖÖ¸÷Ñù¹Ì¶¨¼þµÄÍøÕ¾¹¥»÷µÄÉè¼Æ·½°¸ÊDz»ÊÇ¿ÉÒÔά»¤PLD±¾Éí¡£ÓëPLD¶Ô±È£¬MCUµÄ¹Ì¶¨¼þÉý¼¶±ØÐë¸ü·±ÔӵIJâÑéºÍÈÏÖ¤£¬ÓÉÓÚMCU²»¿ÉÒÔ¸ù¾ÝÄ£Äâ·ÂÕæÊÊÓÃ×÷ÓÃÈÏÖ¤¡£·´¹ýÀ´£¬MCU¹Ì¶¨¼þµÄÒ»ÇÐÉý¼¶¶¼Îñ±ØÍ¨¹ý¶à´ÎÖØ¹é£¨³¢ÊÔ´íÎóÈ«¹ý³Ì£©¼ì²â£¬ÒÔ±£Ö¤Ð¹̶¨¼þ²»ÈÝÒ×¶ÔMCUÖеıðµÄ×÷ÓÃÔì³É²»Á¼Ó°Ï죻ÕâÒ»½ø³ÌÔ¶±ÈÔË×÷PLDÄ£Äâ·ÂÕæÈí¼þ·±ÔÓ¡£
ÔÚ¾ÅÓλáJ9ÕæÈ˱ÈÕÕPLDºÍMCUµÄÌØÐÔʱ£¬»á·¢¾õPLDÄܸøÓèÌØÐÔ¸üÓÅÖÊ¡¢¸ü¼Ó¿¿Æ×µÄ·þÎñƽ̨Íê³É¸ù¾ÝÓ²¼þÅäÖõĿɿ¿¸ù£»ËüÒ²±ä³É´ïµ½PFR¹æ·¶µÄ±ØÐèÔªÆ÷¼þ¡£
½â¾ö¹©Ó¦Á´¹ÜÀí½ø¹¥£ºMCUÓëFPGA½â¾ö·½·¨
¼ÙÈç·¢Éú¹Ì¶¨¼þ½ø¹¥£¬¶þÖÖ²»Ò»ÑùÖÖÀàµÄPFRϵͳÈí¼þ½«²ÉÓÃÏÂÁÐÓ¦¶Ô´ëÊ©£¨ÒÀÕÕÖ´ÐдÎÐò£©£º
PFR¿ª·¢Éè¼ÆÄ£¿é¼òµ¥»¯FPGA¿É¿¿¸ùµÄÍê³É
À³µÏ˼ÏÖ¸øÓèÒ»¿îPFR¿ª·¢Éè¼ÆÄ£¿é£¬¿É¼ò»¯FPGA RoT½â¾ö·½·¨µÄÍê³É¡£ÍøÂç·þÎñÆ÷Ä£¿éµÄ³õʼÉèÊ©Éú²úÉ̺Íϵͳ¼¯³ÉÉÌÏÖÈç½ñ¿ÉÒÔѸËÙÍê³É¸ù¾ÝFPGAµÄPFR£¬´ïµ½ÉÏÊÐʱ¼äµÄ¹æ¶¨¡£¸ÃÄ£¿é°üº¬Ò»¸öÈí¼þ×÷Óÿ⡢ÓйصÄIPºÍ3¸öµ¥Æ¬»ú¿ª·¢°å£¬ÓÃÒÔÍê³ÉPFR£¨°üº¬Î¬»¤PLD×÷Óã©¡£¿Í»§¿ÉÒÔ¸ù¾ÝLattice Diamond¹¤¾ßÈí¼þ½«Ïß·°å²Ù×ÝPLD×÷ÓüÓÉϵ½ RoT FPGAÉè¼Æ·½°¸ÖС£À³µÏ˼PFR¿ª·¢Éè¼ÆÄ£¿éºÍµ¥Æ¬»ú¿ª·¢°å°üº¬£º
¡ïÒ»¸öRoT FPGAµ¥Æ¬»ú¿ª·¢°å
¡ï Ò»¿éÔË×÷Python½Å±¾ÖÆ×÷µÄECP5 FPGA°å£¬ÓÃÒÔ·ÂտģÄâÍøÂç·þÎñÆ÷µÄBMC¡£¿ª·¢Õß¿ÉÒÔ¸ù¾ÝPython½Å±¾ÖÆ×÷ÔËÐÐÃüÁîÀ´·ÂտģÄâ¶Ô²¿¼þSPI´¢´æÆ÷µÄ½ø¹¥¡£
¡ï Ò»¸öPFRÊÊÅ俨£¬ÓÃÒÔÔÚSPI´¢´æÆ÷Öд¢´æBMC±àÂë¡£ÔÚµ¥Æ¬»ú¿ª·¢°åµÄRoT FPGAÖÐÍê³ÉµÄPFR×÷ÓÿÉÒÔά»¤PFRÊÊ Å俨¹Ì¶¨¼þÃâÔâ½ø¹¥£¨´ú±íןù¾ÝFPGAµÄ¸Ã½â¾ö·½·¨ºÏºõNIST PFR¹æ·¶£©¡£
À³µÏ˼ģ¿éÈÃÏû·ÑÕß¿ÉÒÔÉè¼Æ·½°¸¡¢Íê³ÉºÍά»¤±£ÑøºÏºõNIST¹æ·¶µÄ×Ô¶¨PFR¼Æ»®·½°¸£¬¶ø²»ÓÃרҵµÄ°²È«ÐÔרҵ¼¼ÄÜ¡£
ͼ 6£ºLattice FPGA RoT¿ª·¢Éè¼ÆÄ£¿éÓÐ×ÅÈý¿éµ¥Æ¬»ú¿ª·¢°å£ºRoT FPGAµ¥Æ¬»ú¿ª·¢°å£¬ÓÃÒÔ·ÂտģÄâÍøÂç·þÎñÆ÷BMCµÄECP5µ¥Æ¬»ú¿ª·¢°åºÍÓÃÒÔ ´¢´æ·ÂտģÄâBMC¹Ì¶¨¼þµÄSPIÉÁ´æÐ¾Æ¬°å
×ܽá
Õë¶Ô½ø¾üÊý¾ÝÐÐÒµµÄ¹«Ë¾ºÍ½á¹¹À´½²£¬ÍøÂçÐÅÏ¢°²È«ÊǸöÓÈÎªÖØÒªµÄÎÊÌâ¡£ÏÖÈç½ñÍøÂçºÚ¿Í»á¸ù¾Ý½ø¹¥ÆóÒµ·þÎñÆ÷¹Ì¶¨¼þÀ´»ñµÃû¾ÊÜȨä¯ÀÀÍøÂç·þÎñÆ÷²ÎÊýµÄ¹ÜÀíȨÏÞ£¬»òÊÇÁ¢¼´ÈÃÍøÂç·þÎñÆ÷ÓÀ¾ÃÐÔÆ«Ì±¡£¶ø¸ù¾Ý¸ù¾ÝFPGAµÄRoTÔªÆ÷¼þÍê³ÉµÄPFRÔòÄÜÓÐЧµÄ´¦ÀíÕâÒ»Äѵ㣬¸øÓè¿ÉÒÔÐÅÀµ¡¢·Ç³£ÈÝÒ×ÍØÕ¹¡¢ÕûÌ×Í걸µÄ¼Æ»®·½°¸£¬ÔÚ¹©Ó¦Á´¹ÜÀíµÄÒ»Çн׶Îά»¤ÍøÂç·þÎñÆ÷Ä£¿éµÄ¹Ì¶¨¼þ¡£È«ÐÂÉý¼¶µÄÀ³µÏ˼PFR¿ª·¢Éè¼ÆÄ£¿éΪ¼Ó¿ìºÍ¼òµ¥»¯RoTÔªÆ÷¼þµÄ¿ª·¢Éè¼Æ´øÀ´ÁË·½±ã¿ì½Ý·½Ê½£¬±£Ö¤ÄãµÄÍøÂç·þÎñÆ÷°²È«ÎÞÓÝ¡£
¸ÃÎÄÕÂÄÚÈÝÌá¸ßÉ¢²¥Ð¼¼ÊõÓ¦ÓÃÐÂÎÅ×ÊѶ£¬ºÜÓпÉÄÜÓÐת½Ø/ÒýÈëÖ®×´¿ö£¬ÈôÓÐÇÖȨÐÐΪÇëÁªÂçɾµô¡£