TWI696111B - 隨機碼產生器 - Google Patents
隨機碼產生器 Download PDFInfo
- Publication number
- TWI696111B TWI696111B TW107141885A TW107141885A TWI696111B TW I696111 B TWI696111 B TW I696111B TW 107141885 A TW107141885 A TW 107141885A TW 107141885 A TW107141885 A TW 107141885A TW I696111 B TWI696111 B TW I696111B
- Authority
- TW
- Taiwan
- Prior art keywords
- random
- address
- key
- data
- random code
- Prior art date
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
一種隨機碼產生器,包括:一位址Y解碼器、一位址X解碼器、一PUF亂度庫、一處理電路與一金鑰儲存電路。該位址Y解碼器包括複數條Y控制線連接至該PUF亂度庫,且該位址Y解碼器根據一第一位址Y信號來選擇性地動作該些Y控制線。該位址X解碼器包括複數條X控制線連接至該PUF亂度庫,且該位址X解碼器根據一第一位址X信號來選擇性地動作該些X控制線。該PUF亂度庫根據動作的Y控制線與X控制線來產生一輸出資料。於該隨機碼產生器的一正常運作時,該處理電路接收輸出資料,然後根據金鑰儲存電路提供的至少一亂度金鑰來處理輸出資料並產生一隨機碼。
Description
本發明是一種隨機碼產生器,且特別是有關於一種由物理不可複製(physically unclonable function,簡稱PUF)記憶胞陣列所組成的隨機碼產生器。
物理不可複製技術(physically unclonable function,簡稱PUF技術)是一種創新的方式用來保護半導體晶片內部的資料,防止半導體晶片的內部資料被竊取。根據PUF技術,半導體晶片內的隨機碼產生器(random code generator)能夠提供一隨機碼(random code)。此隨機碼可作為半導體晶片(semiconductor chip)上特有的身分碼(ID code),用來保護內部的資料。
一般來說,PUF技術是利用半導體晶片的製造變異(manufacturing variation)來獲得獨特的隨機碼。此製造變異包括半導體的製程變異(process variation)。亦即,就算有精確的製程步驟可以製作出半導體晶片,但是其隨機碼幾乎不可能被複製(duplicate)。因此,具有PUF技術的半導體晶片通常被運用於
高安全防護的應用(applications with high security requirements)。
美國專利號US 9,613,714揭露運用於一次編程(one time programmable,簡稱OTP)記憶胞與記憶胞陣列的PUF技術以及相關的隨機碼產生方法。在該PUF技術中,利用製造OTP記憶胞時的製程變異,使得編程後的(programmed)OTP記憶胞產生無法預測的儲存狀態,並可以作為一位元的隨機碼。再者,運用於PUF技術的OTP記憶胞又可稱為PUF記憶胞(PUF cell),OTP記憶胞陣列又可稱為PUF記憶胞陣列(PUF cell array)。
一般來說,當PUF記憶胞陣列(programmed PUF cell array)經過編程動作後,其記錄的內容已經決定了。因此,編程後的PUF記憶胞陣列又可稱為PUF亂度庫(PUF entropy pool)。
然而,在此領域的技術人員可利用各種方法來來直接讀取編程後的PUF記憶胞陣列(PUF亂度庫)中所記錄的內容並且獲得隨機碼。一但隨機碼的內容被取得之後即可得知半導體晶片上特有的身分碼(ID code),而半導體晶片內的機密資料即可能被竊取。
本發明之主要目的在於提出一種隨機碼產生器,包括:一位址Y解碼器,具有複數條Y控制線,且該位址Y解碼器根據一第一位址Y信號來選擇性地動作該些Y控制線;一位址X解碼器,具有複數條X控制線,且該位址X解碼器根據一第一位址X信號來選擇性地動作該些X控制線;一PUF亂度庫,連接至該些Y控制線與該些X控制線,其中該PUF亂度庫根據動作的Y控制線與X控制線來產生一輸出資料;一處理電路,連接至該PUF亂度庫以接收一輸出資料;以及一金鑰儲存電路,連接至該PUF亂度庫以接收複數個亂度金鑰。於該隨機碼產生器的一正常運作時,該金鑰儲存電路提供至少一亂度金鑰至該處理電路,使得該處理電路根據該至少一亂度金鑰來處理該輸出資料並產生一隨機碼。
為了對本發明之上述及其他方面有更佳的瞭解,下文特舉實施例,並配合所附圖式詳細說明如下:
100、600、700、800:隨機碼產生器
105、605、705、805:位址X解碼器
106、606、706、806:位址Y解碼器
110:PUF亂度庫
120:處理電路
130、630:金鑰儲存電路
220、320、330、340:順序邏輯電路
221、232、234、254、256、322、324、332:暫存器
230、430、440、450、460:糾結邏輯電路
250、550:加密邏輯電路
252:資料加密標準電路
262、272:第一邏輯電路
264、274:第二邏輯電路
276:第三邏輯電路
334、336、342、344、346:暫存器
348:對照表
432、442、452、462:雜湊電路
552:進階加密標準電路
807:位址Y產生器
808:位址X產生器
8000~8255、9000~9255:互斥或閘
第1圖為本發明隨機碼產生器的第一實施例。
第2A圖~第2E圖為處理電路的各種範例
第3A圖~第3C圖為順序邏輯電路的其他範例。
第4A圖~第4D圖為糾結邏輯電路的各種範例。
第5圖為加密邏輯電路的另一範例。
第6圖為本發明隨機碼產生器的第二實施例。
第7圖為本發明隨機碼產生器的第三實施例。
第8圖為本發明隨機碼產生器的第四實施例。
請參照第1圖,其所繪示為本發明隨機碼產生器的第一實施例。隨機碼產生器100包括PUF亂度庫(PUF entropy pool)110、位址Y解碼器(address Y decoder)105、位址X解碼器(address X decoder)106、金鑰儲存電路(entropy key storage circuit)130以及處理電路(processing circuit)120。其中,PUF亂度庫110為具有m×n個PUF記憶胞C(0,0)~C(m-1,n-1)的PUF記憶胞陣列。亦即,PUF亂度庫110具有K個亂度之密度,且K=m×n(PUF entropy pool has a density of K entropy and K=m×n)。基本上,金鑰儲存電路130有很多種實施方式。舉例來說,金鑰儲存電路130由多個暫存器(register)所組成。當然,金鑰儲存電路130也可以整合於處理電路120中。
假設PUF亂度庫110中包括256×256個PUF記憶胞,亦即m=n=256。位址Y解碼器105具有256條Y控制線Y0~Y255連接至PUF亂度庫110,位址Y解碼器105根據位址Y信號Addr_Y(address Y signal)來動作256條Y控制線Y0~Y255其中之一。再者,位址X解碼器106具有256條X控制線X0~X255連接至PUF亂度庫110,位址X解碼器106根據
位址X信號Addr_X(address X signal)來動作256條X控制線X0~X255其中之一。
再者,位址Y信號Addr_Y與位址X信號Addr_X皆為8位元(bits),且位址Y信號Addr_Y與位址X信號Addr_X可選定PUF亂度庫110中的任一PUF記憶胞。舉例來說,當位址Y信號Addr_Y為“00000000”且位址X信號Addr_X為“00000000”時,Y控制線Y0與X控制線X0動作。因此,PUF亂度庫110中的PUF記憶胞C(0,0)會被選定,使得PUF亂度庫110輸出PUF記憶胞C(0,0)的儲存內容作為輸出資料Do。
再者,假設需要PUF亂度庫110輸出第0列的256位元的資料時,則可固定位址Y信號Addr_Y為“00000000”,並且位址X信號Addr_X由“00000000”依序遞增至“11111111”。此時,Y控制線Y0動作且256條的X控制線X0~X255依序動作。因此,PUF亂度庫110中第0列的PUF記憶胞C(0,0)至PUF記憶胞C(0,255)的儲存內容會成為輸出資料Do。
同理,假設需要PUF亂度庫110輸出第1列的前128位元的資料時,則可固定位址Y信號Addr_Y為“00000001”,並且位址X信號Addr_X由“00000000”依序遞增至“01111111”。此時,Y控制線Y1動作且128條的X控制線X0~X127依序動作。因此,PUF亂度庫110中第1列的PUF記憶胞C(1,0)至PUF記憶胞C(1,127)的儲存內容會成為輸出資料Do。
由以上的說明可知,利用位址Y信號Addr_Y與位址X信號Addr_X即可控制PUF亂度庫110產生最少1位元的輸出資料Do,最多256×256位元的輸出資料Do。以下以輸出資料Do為256位元為例來進行說明,但本發明不限定於此。
根據本發明的實施例,於隨機碼產生器100正常運作(normal operation)之前的初始化運作(initialization)時,PUF亂度庫110可提供複數個亂度金鑰(entropy key)Key_1~Key_x至金鑰儲存電路130。舉例來說,於隨機碼產生器100的初始化(initialize)運作時,利用位址Y信號Addr_Y與位址X信號Addr_X來控制PUF亂度庫110輸出一列256個位元的資料至金鑰儲存電路130作為第一亂度金鑰Key_1。因此,利用控制PUF亂度庫110輸出x列的資料成為x筆亂度金鑰Key1~Key_x。
再者,當隨機碼產生器100正常運作時,金鑰儲存電路130可提供至少一亂度金鑰至處理電路120。也就是說,當隨機碼產生器100正常運作時,PUF亂度庫110產生的輸出資料Do會輸入處理電路120。再者,金鑰儲存電路130提供至少一亂度金鑰至處理電路120,使得處理電路120根據至少一亂度金鑰來處理輸出資料Do並產生隨機碼Code_r。以下以第2A圖~第2E圖來詳細說明處理電路120的各種範例。
如第2A圖所示,處理電路120中包括順序邏輯電路(sequence logic circuit)220。順序邏輯電路220可基於對非稱性交換(asymmetric swapping)來進行順序調整程序。順序邏
輯電路220包括一暫存器221,例如左至右方向位移(L→R)的循環移位暫存器(circular shift register)。
如第2A圖所示,暫存器221接收並儲存輸出資料Do,亦即位元b255~位元b0中的內容為p255~p0。另外,暫存器221接收的第一亂度金鑰Key_1。當順序邏輯電路220進行順序調整程序時,暫存器221根據第一亂度金鑰Key_1的數值來進行右移動作(shifted right),亦即由左至右方向位移(L→R)。而順序調整程序後,暫存器221即可產生隨機碼Code_r。
假設第一亂度金鑰Key_1的數值為“10”,則暫存器221右移10個位元。因此,順序邏輯電路220進行順序調整程序後,輸出資料Do的位元b9之內容p9成為隨機碼Code_r的最高位元(MSB),輸出資料位元b10之內容p10成為隨機碼Code_r的最低位元(LSB)。
明顯地,順序邏輯電路220進行順序調整程序後,輸出資料Do已經異於隨機碼Code_r。
如第2B圖所示,處理電路120中包括糾結邏輯電路(entanglement logic circuit)230。其中,糾結邏輯電路230包括二個暫存器232、234與多個互斥或閘(XOR gate)9000~9255。糾結邏輯電路230將輸出資料Do與第一亂度金鑰Key_1進行互斥或運算(XOR operation)後,即產隨機碼Code_r。
舉例來說,暫存器232接收的輸出資料Do,亦即p255~p0;暫存器234接收的第一亂度金鑰Key_1,亦即k255~k0。如第2B圖所示,輸出資料Do的位元b0之內容p0與第一亂度金鑰的位元b0之內容k0利用互斥或閘9000進行互斥或運算後,產生隨機碼Code_r的位元b0之內容c0。利用相同的運作方式,也可以產生隨機碼Code_r的其他位元c255~c1。
明顯地,糾結邏輯電路230產生的隨機碼Code_r已經異於輸出資料Do。
如第2C圖所示,處理電路120中包括加密邏輯電路(encryption logic circuit)250。加密邏輯電路250包括二個暫存器254、256與一資料加密標準電路(data encryption standard circuit,簡稱DES電路)252。
暫存器254儲存輸出資料Do,且暫存器256儲存接收第一亂度金鑰Key_1,資料加密標準電路252接收輸出資料Do與第一亂度金鑰Key_1。再者,根據DES標準,資料加密標準電路252利用輸出資料Do與第一亂度金鑰Key_1來進行加密程序,並產生隨機碼Code_r。
明顯地,加密邏輯電路250產生的隨機碼Code_r已經異於輸出資料Do。
再者,上述的順序邏輯電路220、糾結邏輯電路230與加密邏輯電路250也可以任選其二,並組成處理電路120。
如第2D圖所示,處理電路120中包括第一邏輯電路262與第二邏輯電路264。第一邏輯電路262接收輸出資料Do以及第一亂度金鑰Key_1,並產生第一處理資料Dp1。再者,第二邏輯電路264接收第一處理資料Dp1以及第二亂度金鑰Key_2,並產生隨機碼Code_r。
舉例來說,當第一邏輯電路262與第二邏輯電路264為加密邏輯電路250與糾結邏輯電路230時,加密邏輯電路250產生的第一處理資料Dp1即為加密資料(encrypted data),而糾結邏輯電路230產生隨機碼Code_r。
同理,第一邏輯電路262與第二邏輯電路264可為糾結邏輯電路230與加密邏輯電路250。再者,第一邏輯電路262與第二邏輯電路264也可為順序邏輯電路220與糾結邏輯電路230,或者糾結邏輯電路230與順序邏輯電路220。另外,第一邏輯電路262與第二邏輯電路264可為順序邏輯電路220與加密邏輯電路250,或者加密邏輯電路250與順序邏輯電路220。
再者,組合上述的順序邏輯電路220、糾結邏輯電路230與加密邏輯電路250可以成為處理電路120。
如第2E圖所示,處理電路120中包括第一邏輯電路272、第二邏輯電路274與第三邏輯電路276。第一邏輯電路272接收輸出資料Do以及第一亂度金鑰Key_1,並產生第一處理資料Dp1。再者,第二邏輯電路264接收第一處理資料Dp1以及第二亂度金鑰Key_2,並產生第二處理資料Dp2。再者,第三
邏輯電路264接收第二處理資料Dp2以及第三亂度金鑰Key_3,並產生隨機碼Code_r。
相同地,第2E圖中並不限定於順序邏輯電路220、糾結邏輯電路230與加密邏輯電路250的組合順序。舉例來說,當第一邏輯電路272、第二邏輯電路274與第三邏輯電路376為順序邏輯電路220、糾結邏輯電路230與加密邏輯電路250時,順序邏輯電路220產生的第一處理資料Dp1即為順序調整資料(sequence adjusted data),糾結邏輯電路230產生的第二處理資料即為糾結資料(entangled data),且加密邏輯電路250產生隨機碼Code_r。
由以上的說明可知,當隨機碼產生器100正常運作時,利用位址Y信號Addr_Y與位址X信號Addr_X來控制PUF亂度庫110產生輸出資料Do。再者,PUF亂度庫110產生的輸出資料Do會輸入處理電路120。而處理電路120會根據金鑰儲存電路130所提供的亂度金鑰來將輸出資料Do處理成為隨機碼Code_r,並使得輸出資料Do異於隨機碼Code_r。
另外,由第2A圖的說明可知,順序邏輯電路220可以改變輸出資料Do中每個位元的排列次序。再者,本發明並不限定於第2A圖中順序邏輯電路220的架構,以下另外提出其他架構的順序邏輯電路。
請參照第3A圖,其所繪示為順序邏輯電路的另一範例。順序邏輯電路320基於對稱性交換(symmetric swapping)
來進行順序調整程序。順序邏輯電路320包括二個暫存器322、324。暫存器322接收256位元的輸出資料Do,且輸出資料Do被區分為四個部分P1~P4。舉例來說,暫存器322中位元b255~b192中的內容為輸出資料Do的第一部分P1、位元b191~128中的內容為輸出資料Do的第二部分P2、位元b127~b64中的內容為輸出資料Do的第三部分P3、位元b63~b0中的內容為輸出資料Do的第四部分P4。
再者,順序邏輯電路320可進行順序調整程序。如如第3A圖所示,第一部分P1與第二部分P2對調,且第三部分P3與第四部分P4對調後,產生隨機碼Code_r並儲存於暫存器324。因此,於順序調整程序程序後,暫存器324中位元b255~b192中的內容為輸出資料Do的第二部分P2、位元b191~128中的內容為輸出資料Do的第一部分P1、位元b127~b64中的內容為輸出資料Do的第四部分P4、位元b63~b0中的內容為輸出資料Do的第三部分P3。
當然,上述的順序調整程序僅是一個範例。在此領域的技術人員也可以基於對稱性交換(symmetric swapping)來設計其他順序調整程序。舉例來說,於進行順序調整程序時,將輸出資料Do的第四部分P4與第一部分P1對調,且第三部分P3與第二部分P2對調。之後,產生隨機碼Code_r。
請參照第3B圖,其所繪示為順序邏輯電路的再一範例。順序邏輯電路330基於非對稱性交換來進行順序調整程序。
順序邏輯電路330包括三個暫存器332、334、336與多個互斥或閘8000~8255。暫存器332接收輸出資料Do,位元b255~位元b0中的內容為p255~p0。再者,暫存器334接收第一亂度金鑰Key_1。
如第3B圖所示,由第一亂度金鑰Key_1中取出一位元組(byte),並與暫存器332的位元b255~b0進行互斥或運算並形成新的位元。
舉例來說,假設由第一亂度金鑰Key_1中取出的一位元組(byte)為“10101010”,位元b255(“11111111”)與第一亂度金鑰Key_1(“10101010”)進行互斥或運算後為位元b85(“01010101”),所以暫存器336中位元b85的內容儲存p255。位元b254(“11111110”)與第一亂度金鑰Key_1(“10101010”)進行互斥或運算後為位元b84(“01010100”),所以暫存器336中位元b84的內容儲存p254。位元b1(“00000001”)與第一亂度金鑰Key_1(“10101010”)進行互斥或運算後為位元b171(“10101011”),所以暫存器336中位元b171的內容儲存p1。位元b0(“00000000”)與第一亂度金鑰Key_1(“10101010”)進行互斥或運算後為位元b170(“10101010”),所以暫存器336中位元b170的內容儲存p0。其餘依此類推,不再贅述。
因此,於進行順序調整程序後,暫存器336中的內容即為隨機碼Code_r。
請參照第3C圖,其所繪示為順序邏輯電路的又一範例。順序邏輯電路340同時基於對稱性交換或者非對稱性交換來進行順序調整程序。順序邏輯電路340包括三個暫存器342、344、346以及一對照表(look up table)348。其中,暫存器342接收輸出資料Do,暫存器344接收第一亂度金鑰Key_1,暫存器346產生隨機碼Code_r。再者,對照表348中記錄順序邏輯電路340所使用的操作模式(operation mode)。
舉例來說,根據對照表348的內容,當第一亂度金鑰Key_1的數值為奇數時,順序邏輯電路340基於對稱性交換進行第3A圖所示之順序調整程序來產生隨機碼Code_r。另外,當第一亂度金鑰Key_1的數值為偶數時,順序邏輯電路340基於非對稱性交換進行第2A圖或第3B圖所示之順序調整程序來產生隨機碼Code_r。
當然,照表348的內容並不限定於僅有二種操作模式。在此領域的技術人員可以設計更多的操作模式,運用於順序邏輯電路340。
另外,本發明並不限定於第2B圖中糾結邏輯電路230的架構,以下另外提出其他架構的糾結邏輯電路。
請參照第4A圖,其所繪示為糾結邏輯電路的另一範例。糾結邏輯電路430中包括雜湊電路432,且雜湊電路432可進行一雜湊函數(Hash Function,H(X))的運算。其中,雜湊函數可將任意長度(arbitrary size)的資料映射至固定長度(fixed
size)的雜湊值(Hash value)。舉例來說,雜湊函數可為SHA-256雜湊函數。也就是說,將任意長度的資料提供至SHA-256雜湊函數後,SHA-256雜湊函數即可產生256位元雜湊值,而265位元的雜湊值即可作為隨機碼Code_r。
如第4A圖所示,雜湊電路432可接收輸出資料Do,並對輸出資料Do進行一雜湊函數運算後,產生256位元雜湊值即作為隨機碼Code_r。亦即,隨機碼Code_r=H(Do)。
請參照第4B圖,其所繪示為糾結邏輯電路的另一範例。糾結邏輯電路440的雜湊電路442先接收輸出資料Do與第一亂度金鑰Key_1,並分別對輸出資料Do與第一亂度金鑰Key_1進行雜湊函數運算後,產生256位元的第一雜湊值H(Do)與256位元的第二雜湊值H(Key_1)。
接著,將第一雜湊值H(Do)與第二雜湊值H(Key_1)組成512位元的合成資料(merged data)H(Do)+H(Key_1)。而雜湊電路442再次接收512位元的合成資料H(Do)+H(Key_1),並對合成資料H(Do)+H(Key_1)進行雜湊函數運算後,產生256位元第三雜湊值H(H(Do)+H(Key_1))即作為隨機碼Code_r。亦即,隨機碼Code_r=H(H(Do)+H(Key_1))。
當然,第4B圖的糾結邏輯電路440也可以利用輸出資料Do與更多的亂度金鑰來進行雜湊函數運算。舉例來說,雜湊電路442先各別對輸出資料Do、第一亂度金鑰Key_1、第二亂度金鑰Key_2與第三亂度金鑰Key_3進行雜湊函數運算
後,組成共1024位元的合成資料。之後,將1024位元的合成資料再次進行雜湊函數運算後,產生256位元的雜湊值並作為隨機碼Code_r。
請參照第4C圖,其所繪示為糾結邏輯電路的再一範例。糾結邏輯電路450接收輸出資料Do與第一亂度金鑰Key_1,並將輸出資料Do與第一亂度金鑰Key_1進行互斥或運算後,產生256位元的運算資料(Do⊕Key_1)。
接著,雜湊電路452接收256位元的運算資料(Do⊕Key_1),並進行雜湊函數運算後,產生256位元的雜湊值H(Do⊕Key_1)並作為隨機碼Code_r。亦即,隨機碼Code_r=H((Do⊕Key_1))。
當然,第4C圖的糾結邏輯電路450也可以利用輸出資料Do與更多的亂度金鑰來進行雜湊函數運算。舉例來說,糾結邏輯電路450接收輸出資料Do、第一亂度金鑰Key_1、第二亂度金鑰Key_2、第三亂度金鑰Key_3與第四亂度金鑰Key_4,並對輸出資料Do、第一亂度金鑰Key_1、第二亂度金鑰Key_2、第三亂度金鑰Key_3與第四亂度金鑰Key_4進行互斥或算後,產生256位元的運算資料。之後,將256位元的運算資料進行雜湊函數運算後,產生256位元的雜湊值並作為隨機碼Code_r。
請參照第4D圖,其所繪示為糾結邏輯電路的又一範例。糾結邏輯電路460的雜湊電路462先接收輸出資料Do與
第一亂度金鑰Key_1,並分別對輸出資料Do與第一亂度金鑰Key_1進行雜湊函數運算後,產生256位元的第一雜湊值H(Do)與256位元的第二雜湊值H(Key_1)。
接著,糾結邏輯電路460對第一雜湊值H(Do)與第二雜湊值H(Key_1)進行互斥或運算後,產生256位元的隨機碼Code_r。
當然,第4D圖的糾結邏輯電路460也可以利用輸出資料Do與更多的亂度金鑰來進行雜湊函數運算。舉例來說,雜湊電路462先各別對輸出資料Do、第一亂度金鑰Key_1、第二亂度金鑰Key_2與第三亂度金鑰Key_3進行雜湊函數運算後,產生四筆256位元的雜湊值。之後,將四筆256位元的雜湊值進行互斥或運算後,產生256位元的隨機碼Code_r。
另外,本發明並不限定於第2C圖中加密邏輯電路250的架構,以下另外提出其他架構的加密邏輯電路。
請參照第5圖,其所繪示為加密邏輯電路的另一範例。加密邏輯電路550包括二個暫存器554、556與一進階加密標準電路(advanced encryption standard circuit,簡稱AES電路)552。暫存器554接收輸出資料Do,且暫存器556接收第一亂度金鑰Key_1。當加密邏輯電路550進行加密程序時,進階加密標準電路552接收輸出資料Do與第一亂度金鑰Key_1後,產生隨機碼Code_r。
由以上的說明可知,第一實施例的隨機碼產生器100中,位址Y解碼器105係根據位址Y信號Addr_Y來動作Y控制線Y0~Y255,且位址X解碼器106係根據位址X信號Addr_X來動作X控制線X0~X255。
本發明更可對位址Y信號Addr_Y與位址X信號Addr_X進行打亂動作(scramble action),並以打亂的位址Y信號Addr_Y以及打亂的位址X信號Addr_X來動作Y控制線Y0~Y255與X控制線X0~X255。
請參照第6圖,其所繪示為本發明隨機碼產生器的第二實施例。隨機碼產生器600包括PUF亂度庫110、位址Y解碼器605、位址X解碼器606、金鑰儲存電路630以及處理電路120。相較於第一實施例之隨機碼產生器100,第二實施例之隨機碼產生器600的差異在於位址Y解碼器605、位址X解碼器606與金鑰儲存電路630。以下僅說明位址Y解碼器605、位址X解碼器606與金鑰儲存電路630之間的運作關係,其他部分則不再贅述。
根據本發明的第二實施例,金鑰儲存電路630除了提供複數個亂度金鑰至處理電路120之外,更提供亂度金鑰至位址Y解碼器605與位址X解碼器606。舉例來說,金鑰儲存電路630提供第一亂度金鑰Key_1至位址Y解碼器605,並提供第二亂度金鑰Key_2位址X解碼器606。
再者,位址Y解碼器605先對接收的位址Y信號Addr_Y與第一亂度金鑰Key_1進行打亂動作後產生打亂的位址Y信號(scrambled address Y signal),而位址Y解碼器605根據打亂的位址Y信號來動作Y控制線Y0~Y255。同理,位址X解碼器606先對接收的位址X信號Addr_X與第二亂度金鑰Key_2進行打亂動作後產生打亂的位址X信號(scrambled address X signal),而位址X解碼器606根據打亂的位址X信號來動作X控制線X0~X255。其中,打亂動作是將位址信號與亂度金鑰進行互斥或運算(XOR operation)。
舉例來說,假設第一亂度金鑰Key_1為“11001100”,第二亂度金鑰Key_2為“00111100”。當位址Y解碼器605接收的位址Y信號Addr_Y為“01010101”時,則打亂的位址Y信號即為“10011001”,亦即(“11001100”⊕“01010101”=“10011001”),因此位址Y解碼器605動作Y控制線Y153。
同理,當位址X解碼器606接收的位址X信號Addr_X為“01010101”時,則打亂的位址X信號即為“01101001”,亦即(“00111100”⊕“01010101”=“01101001”),因此位址X解碼器606動作X控制線X105。
由以上的說明可知,第二實施例的隨機碼產生器600中,利用金鑰儲存電路630所提供的亂度金鑰來對位址Y信
號Addr_Y與位址X信號Addr_X進行打亂動作。然而本發明定不限定於此。
請參照第7圖,其所繪示為本發明隨機碼產生器的第三實施例。隨機碼產生器700包括PUF亂度庫110、位址Y解碼器705、位址X解碼器706、金鑰儲存電路130以及處理電路120。相較於第一實施例之隨機碼產生器100,第三實施例之隨機碼產生器700的差異在於位址Y解碼器705與位址X解碼器706。以下僅說明位址Y解碼器705與位址X解碼器706的運作關係,其他部分則不再贅述。
根據本發明的第三實施例,隨機碼產生器700的位址Y解碼器705接收位址Y信號Addr_Y與第一挑戰信號(challenging signal)Dc1,位址X解碼器706接收位址X信號Addr_X與第二挑戰信號Dc2。其中,第一挑戰信號Dc1與第二挑戰信號Dc2係由隨機碼產生器700外部所輸入。
再者,位址Y解碼器705對位址Y信號Addr_Y與第一挑戰信號Dc1進行打亂動作後產生打亂的位址Y信號,使得位址Y解碼器705根據打亂的位址Y信號來動作Y控制線Y0~Y255。同理,位址X解碼器706對位址X信號Addr_X與第二挑戰信號Dc2進行打亂動作後產生打亂的位址X信號,使得位址X解碼器706根據打亂的位址X信號來動作X控制線X0~X255。相同地,打亂動作是將位址信號與挑戰信號進行互斥或運算,其詳細動作不再贅述。
再者,本發明的隨機碼產生器更可以連續地產生隨機碼流(random code stream)。請參照第8圖,其所繪示為本發明隨機碼產生器的第四實施例。隨機碼產生器800包括PUF亂度庫110、位址Y解碼器805、位址Y產生器807、位址X解碼器806、位址X產生器808、金鑰儲存電路130以及處理電路120。
相較於第一實施例之隨機碼產生器100,第四實施例之隨機碼產生器800的差異在於位址Y解碼器805、位址Y產生器807、位址X解碼器806、位址X產生器808。以下僅說明位址Y解碼器805、位址Y產生器807、位址X解碼器806、位址X產生器808的運作關係,其他部分則不再贅述。
根據本發明的第四實施例,位址Y產生器807接收時脈信號CLK1,並產生位址Y信號Addr_Y至位址Y解碼器805。位址X產生器808接收時脈信號CLK2,並產生位址X信號Addr_X至位址X解碼器806。因此,位址Y產生器807可根據時脈信號CLK1持續地產生位址Y信號Addr_Y;而位址X產生器808可根據時脈信號CLK2持續地產生位址X信號Addr_X。
其中,位址Y產生器807與位址X產生器808可由線性反饋移位暫存器(linear feedback shift register,簡稱LFSR),使得位址Y產生器807產生隨機的位址Y信號Addr_Y,且位址X產生器808產生隨機的位址X信號Addr_X。因此,隨著時脈信號CLK1與時脈信號CLK2的變化,處理電路120即可產生隨機碼流(random code stream)。
當然,除了利用線性反饋移位暫存器來實現之外,位址Y產生器807與位址X產生器808也可由確定性隨機數發生器(deterministic random bit generator,簡稱DRBG)來實現,亦可使位址Y產生器807產生隨機的位址Y信號Addr_Y,且位址X產生器808產生隨機的位址X信號Addr_X。
由以上的說明可知,本發明提出一種隨機碼產生器。由PUF亂度庫110所產生的輸出資料Do會經由處理電路120進一步處理成為隨機碼Code_r。由於PUF亂度庫110所產生的輸出資料Do不會被作為隨機碼,因此隨機碼不容易被破解並使得半導體晶片具有較佳的資料安全防護能力(data security)。
綜上所述,雖然本發明已以實施例揭露如上,然其並非用以限定本發明。本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100:隨機碼產生器
105:位址X解碼器
106:位址Y解碼器
110:PUF亂度庫
120:處理電路
130:金鑰儲存電路
Claims (18)
- 一種隨機碼產生器,包括:一位址Y解碼器,具有複數條Y控制線,且該位址Y解碼器根據一第一位址Y信號來選擇性地動作該些Y控制線,其中該位址Y解碼器接收一第二位址Y信號與一第一特定信號並進行一打亂動作後產生該第一位址Y信號;一位址X解碼器,具有複數條X控制線,且該位址X解碼器根據一第一位址X信號來選擇性地動作該些X控制線,其中該位址X解碼器接收一第二位址X信號與一第二特定信號並進行該打亂動作後產生該第一位址X信號;一PUF亂度庫,連接至該些Y控制線與該些X控制線,其中該PUF亂度庫根據動作的Y控制線與X控制線來產生一輸出資料;一處理電路,連接至該PUF亂度庫以接收該輸出資料;以及一金鑰儲存電路,連接至該PUF亂度庫以接收複數個亂度金鑰;其中,於該隨機碼產生器的一正常運作時,該金鑰儲存電路提供至少一亂度金鑰至該處理電路,使得該處理電路根據該至少一亂度金鑰來處理該輸出資料並產生一隨機碼。
- 如申請專利範圍第1項所述之隨機碼產生器,其中該處理電路包括一順序邏輯電路,該順序邏輯電路接收該輸出資料與一第一亂度金鑰並產生一順序調整資料。
- 如申請專利範圍第2項所述之隨機碼產生器,其中該處理電路包括一糾結邏輯電路,該糾結邏輯電路接收該順序調整資料與一第二亂度金鑰並產生一糾結資料。
- 如申請專利範圍第3項所述之隨機碼產生器,其中該處理電路包括一加密邏輯電路,接收該糾結資料與一第三亂度金鑰並產生一加密資料,且該加密資料為該隨機碼。
- 如申請專利範圍第2項所述之隨機碼產生器,其中該處理電路包括一加密邏輯電路,接收該順序調整資料與一第二亂度金鑰並產生一加密資料。
- 如申請專利範圍第5項所述之隨機碼產生器,其中該處理電路包括一糾結邏輯電路,接收該加密資料與一第三亂度金鑰並產生一糾結資料,且該糾結資料為該隨機碼。
- 如申請專利範圍第1項所述之隨機碼產生器,其中於該隨機碼產生器的一初始化運作時,該PUF亂度庫提供該些亂度金鑰至該金鑰儲存電路。
- 如申請專利範圍第1項所述之隨機碼產生器,其中該處理電路包括一糾結邏輯電路,接收該輸出資料與一第一亂度金鑰並產生一糾結資料。
- 如申請專利範圍第8項所述之隨機碼產生器,其中該處理電路包括一順序邏輯電路,該順序邏輯電路接收該糾結資料與一第二亂度金鑰並產生一順序調整資料。
- 如申請專利範圍第9項所述之隨機碼產生器,其中該處理電路包括一加密邏輯電路,接收該順序調整資料與一第三亂度金鑰並產生一加密資料,且該加密資料為該隨機碼。
- 如申請專利範圍第8項所述之隨機碼產生器,其中該處理電路包括一加密邏輯電路,接收該糾結資料與一第二亂度金鑰並產生一加密資料。
- 如申請專利範圍第11項所述之隨機碼產生器,其中該處理電路包括一順序調整電路,接收該加密資料與一第三亂度金鑰並產生一順序調整資料,且該順序調整資料為該隨機碼。
- 如申請專利範圍第1項所述之隨機碼產生器,其中該處理電路包括一加密邏輯電路接收該輸出資料與一第一亂度金鑰並產生一加密資料。
- 如申請專利範圍第13項所述之隨機碼產生器,其中該處理電路包括一順序邏輯電路,該順序邏輯電路接收該加密資料與一第二亂度金鑰並產生一順序調整資料。
- 如申請專利範圍第14項所述之隨機碼產生器,其中該處理電路包括一糾結邏輯電路,接收該順序調整資料與一第三亂度金鑰並產生一糾結資料,且該糾結資料為該隨機碼。
- 如申請專利範圍第13項所述之隨機碼產生器,其中該處理電路包括一糾結邏輯電路,接收該加密資料與一第二亂度金鑰並產生一糾結資料。
- 如申請專利範圍第16項所述之隨機碼產生器,其中該處理電路包括一順序調整電路,接收該糾結資料與一第三亂度金鑰並產生一順序調整資料,且該順序調整資料為該隨機碼。
- 如申請專利範圍第1項所述之隨機碼產生器,其中該第一特定信號為一第一挑戰信號且該第二特定信號為一第二挑 戰信號;或者,該位址Y解碼器與該位址X解碼器連接至該金鑰儲存電路,該第一特定信號為一第一亂度金鑰且該第二特定信號為一第二亂度金鑰。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811558790.XA CN110018810B (zh) | 2018-01-10 | 2018-12-19 | 随机码产生器 |
US16/233,454 US11070383B2 (en) | 2018-01-10 | 2018-12-27 | Random code generator |
JP2019001268A JP6714735B2 (ja) | 2018-01-10 | 2019-01-08 | ランダムコード発生装置 |
EP19150919.9A EP3512157B1 (en) | 2018-01-10 | 2019-01-09 | Random code generator |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862615463P | 2018-01-10 | 2018-01-10 | |
US62/615,463 | 2018-01-10 | ||
US201862659150P | 2018-04-18 | 2018-04-18 | |
US62/659,150 | 2018-04-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201931105A TW201931105A (zh) | 2019-08-01 |
TWI696111B true TWI696111B (zh) | 2020-06-11 |
Family
ID=68315676
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107141885A TWI696111B (zh) | 2018-01-10 | 2018-11-23 | 隨機碼產生器 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI696111B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7653197B2 (en) * | 2003-10-29 | 2010-01-26 | Koninklijke Philips Electronics N.V. | System and method of reliable forward secret key sharing with physical random functions |
US20140042627A1 (en) * | 2012-08-09 | 2014-02-13 | International Business Machines Corporation | Electronic structure containing a via array as a physical unclonable function |
TW201543486A (zh) * | 2014-03-07 | 2015-11-16 | Intel Corp | 使用電阻式記憶體裝置的物理性不可複製功能電路 |
US20160156476A1 (en) * | 2014-11-28 | 2016-06-02 | Yong Ki Lee | Physically Unclonable Function Circuits and Methods of Performing Key Enrollment in Physically Unclonable Function Circuits |
CN105743645A (zh) * | 2016-01-25 | 2016-07-06 | 清华大学 | 基于puf的流秘钥生成装置、方法及数据加密、解密方法 |
US9485094B1 (en) * | 2014-04-21 | 2016-11-01 | Maxim Integrated Products, Inc. | Systems and methods for stable physically unclonable functions |
US9613714B1 (en) * | 2016-01-19 | 2017-04-04 | Ememory Technology Inc. | One time programming memory cell and memory array for physically unclonable function technology and associated random code generating method |
-
2018
- 2018-11-23 TW TW107141885A patent/TWI696111B/zh active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7653197B2 (en) * | 2003-10-29 | 2010-01-26 | Koninklijke Philips Electronics N.V. | System and method of reliable forward secret key sharing with physical random functions |
US20140042627A1 (en) * | 2012-08-09 | 2014-02-13 | International Business Machines Corporation | Electronic structure containing a via array as a physical unclonable function |
TW201543486A (zh) * | 2014-03-07 | 2015-11-16 | Intel Corp | 使用電阻式記憶體裝置的物理性不可複製功能電路 |
US9485094B1 (en) * | 2014-04-21 | 2016-11-01 | Maxim Integrated Products, Inc. | Systems and methods for stable physically unclonable functions |
US20160156476A1 (en) * | 2014-11-28 | 2016-06-02 | Yong Ki Lee | Physically Unclonable Function Circuits and Methods of Performing Key Enrollment in Physically Unclonable Function Circuits |
US9613714B1 (en) * | 2016-01-19 | 2017-04-04 | Ememory Technology Inc. | One time programming memory cell and memory array for physically unclonable function technology and associated random code generating method |
CN105743645A (zh) * | 2016-01-25 | 2016-07-06 | 清华大学 | 基于puf的流秘钥生成装置、方法及数据加密、解密方法 |
Also Published As
Publication number | Publication date |
---|---|
TW201931105A (zh) | 2019-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110018810B (zh) | 随机码产生器 | |
TWI739090B (zh) | 具有物理不可複製功能的真亂數生成系統 | |
EP3709157B1 (en) | Random number generator | |
US8799679B2 (en) | Message authentication code pre-computation with applications to secure memory | |
US11728967B2 (en) | Dynamic masking | |
US20050055391A1 (en) | Random number generator | |
KR20020008849A (ko) | 견고한 난수 발생기 | |
TWI751075B (zh) | 記憶體中的不可複製函數應用 | |
US11050575B2 (en) | Entanglement and recall system using physically unclonable function technology | |
TWI579774B (zh) | Fingerprint Sensing Integral Circuit and Its Disturbing Encryption Method | |
TWI696111B (zh) | 隨機碼產生器 | |
TWI664640B (zh) | 使用物理不可複製技術的糾葛與取回系統 | |
US11586418B2 (en) | Random number generator, random number generating circuit, and random number generating method | |
US20230281305A1 (en) | Method for protecting against side-channel attacks | |
RU2759862C1 (ru) | Способ шифрования данных | |
US20040143614A1 (en) | Hiding the internal state of a random number generator | |
TW202333077A (zh) | 記憶體裝置以及記憶體晶片的記憶體陣列資訊的讀取方法 | |
Pellett et al. | DES Encryption Chip |