【物聯(lián)網(wǎng)時代,如何用指紋芯片技術(shù)保護芯片和數(shù)據(jù)安全?】我們每個人都有一個指紋,每個人都指紋都不一樣。目前的指紋識別方法是采用特征點,把指紋特殊的點采集出來,然后匹配識別。假設(shè)采用12個特征點的話,那重復的幾率就是1/1020,如果取更多特征點,那重復的幾率就更低。那我們?nèi)绾谓o一顆芯片加上指紋呢?
近日,在ASPENCORE旗下《電子工程專輯》、《EDN》和《國際電子商情》共同舉辦的“IoT技術(shù)與應用論壇”上,力旺電子(eMemory)的柳星洲先生做了詳細的介紹。
在他主題為“NeoPUF指紋芯片技術(shù)于AIoT之安全應用”的演講中,他指出,NeoPUF技術(shù)就是一種賦予芯片一個指紋的技術(shù)。而且這個指紋不是燒寫進去的,是與生俱來,出廠后就擁有,而且每一顆芯片都不一樣。
圖1:力旺電子(eMemory)的柳星洲在IoT技術(shù)與應用論壇上演講。
什么是NeoPUF?
柳星洲解釋說,PUF的英文全稱是PhysicalUnclonableFunctions,即物理不可復制功能。而NeoPUF,就是創(chuàng)新式物理不可復制功能。
PUF有用很多種不同的實現(xiàn)方法。
可以人為將不同的代碼燒寫進芯片,但認為燒寫的代碼一般是由算法產(chǎn)生的,如果算法被人破解了,那所有的芯片就都被破解了。
力旺電子的NeoPUF采用的是模擬丟銅板的技術(shù)來實現(xiàn)的。柳星洲介紹說,“假設(shè)給你兩顆一模一樣的電阻,在兩邊同時加一個一樣的電壓,那到底是左邊先燒掉,還是右邊先燒掉。不知道,我也不知道。我們模擬的就是這樣的情況,我們在兩個相鄰的晶體管的柵極和基極兩端慢慢加電壓,總有一顆會被先燒掉,先燒左邊就是0,先燒右邊就是1?!?/p>
用這種方法實現(xiàn)的PUF就算是同一片晶圓上產(chǎn)生的Die,所產(chǎn)生的代碼也都是不一樣的。
因此,加入了NeoPUFIP的每一顆芯片都有一個與眾不同的代碼,也就是擁有了一個指紋。
圖2:力旺電子的NeoPUF實現(xiàn)原理。
如何應用芯片指紋?
現(xiàn)在芯片已經(jīng)獲得了一個指紋,那如何去應用這些芯片的指紋呢?柳星洲先生也給出了一些應用的案例。
他表示,“NeoPUF提供高達64Kbit,芯片與生俱來的完美隨機數(shù)源。既然每顆芯片都擁有了指紋,其中最明顯的應用就是用這個代碼作為芯片的ID,這樣就不會出現(xiàn)重名的情況了。或者用這個代碼產(chǎn)生信任根,然后產(chǎn)生通信密鑰,以加密通信數(shù)據(jù)?!?/p>
“當然,還可以防止芯片不被破解。因為有些做逆向工程的廠商會破解你的芯片,生產(chǎn)后還打你的logo,出問題了,可能還得你去服務?!彼瑫r指出。
圖3:NeoPUF在IoT中的應用。
柳星洲舉了一個NeoPUF在IoT中的應用?!澳壳笆褂肞UF的情況就是把它當作信任根,它產(chǎn)生一個最根本的碼,通過一個密鑰管理算法,產(chǎn)生不同的公鑰,私鑰等,再給AES等加密算法去加密?!?/p>
圖4:NeoPUF配合OTP一起使用。
另外,因為力旺電子是主要做OTP等存儲的,所以他還列舉了一個NeoPUF搭配Memory一起用案例。比如說,“我們可以用PUF產(chǎn)生一組亂碼,而且與生俱來,是一個完美亂數(shù),所以我們就可以用PUF加密我的OTP,而且可以做到天生加密,就是可以將OTP內(nèi)的擾碼基于PUF亂碼重新排列,也就是說,在不同的芯片中,同樣的OTP資料存儲后的信息都是不一樣的?!?/p>
圖5:NeoPUF在外掛Flash上的應用。
“甚至是外掛的Flash,只要主控端有放NeoPUF,出去的數(shù)據(jù)已經(jīng)用NeoPUF重新排序,存儲在外掛的Flash內(nèi),那么Flash內(nèi)存儲的數(shù)據(jù)就是亂的,而且每一顆都不一樣,別人如果把Flash內(nèi)的內(nèi)容復制出來,再用不同的主控是讀取不出來數(shù)據(jù)的。因為這需要原來的主控來做還原解碼。這樣就可以防止你的代碼被偷走。從而實現(xiàn)保護代碼的功能?!绷侵夼e例說。
他同時還談到了NeoPUF在人工智能方面的應用。當然主要還是芯片的保護用法?!拔覀冎廊斯ぶ悄艿牧鞒檀蟾攀沁@樣,先要收集很多數(shù)據(jù),然后做訓練,再提取出模型,最后開始做推理,或者預測?!?/p>
而推理有兩種做法,一個是云端,所有數(shù)據(jù)傳輸至云端,然后云端給出推理結(jié)果。另外一個是邊緣計算,也就是在設(shè)備端做預測,現(xiàn)在大部分廠商都認為最后會往邊緣端發(fā)展。
但柳星洲認為,由于云端的運算能力太強大了,云端仍將會長期存在下去;而邊緣端,也有一些發(fā)展的趨勢,主要是有隱私的需求,或者是傳輸可靠性和延遲要求。
他表示,“我今天主要關(guān)注邊緣端。邊緣端做預測,目前有兩種情況,一種是用別人的運算單元加上NVM存儲,做成一個模組。只需要把云端訓練好的模型簡化之后放上去,就可以在邊緣端做推理預測了。如果你花了那么多時間做訓練,結(jié)果你的東西被偷了。那前面的心血就白費了。因此在模組端,我們可以幫助保護最關(guān)鍵的資料。”
圖6:NeoPUF在人工智能模組中的應用。
第二個邊緣端的應用是將模型轉(zhuǎn)成一個ASIC,這樣功耗是最好的。當然這個模型需要精簡很多。但是這很容易被人逆向工程。
針對第一種情況,如果主控加入了NeoPUF,那么寫入Flash中的數(shù)據(jù)就是亂的。因此,即使一個模組中的數(shù)據(jù)被破解或者被復制了,放到其他的模組中其實是沒有用的。
針對第二種情況。如果ASIC中帶有一個NeoPUF,這樣里面的數(shù)據(jù)都可以被亂掉,“除非我給你一個啟動碼授權(quán)之后才可以使用?!绷侵薇硎?。
圖7:NeoPUF在ASIC中的應用