TWI734314B - 用於將數位指紋提供至主機裝置之系統、方法及非暫時性電腦可讀媒體 - Google Patents
用於將數位指紋提供至主機裝置之系統、方法及非暫時性電腦可讀媒體 Download PDFInfo
- Publication number
- TWI734314B TWI734314B TW108147297A TW108147297A TWI734314B TW I734314 B TWI734314 B TW I734314B TW 108147297 A TW108147297 A TW 108147297A TW 108147297 A TW108147297 A TW 108147297A TW I734314 B TWI734314 B TW I734314B
- Authority
- TW
- Taiwan
- Prior art keywords
- command
- memory
- digital fingerprint
- driver
- host
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 230000004044 response Effects 0.000 claims description 20
- 230000004913 activation Effects 0.000 claims description 17
- 238000003860 storage Methods 0.000 description 27
- 238000004891 communication Methods 0.000 description 19
- 239000004065 semiconductor Substances 0.000 description 18
- 238000012545 processing Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 16
- 239000000758 substrate Substances 0.000 description 12
- 230000008569 process Effects 0.000 description 10
- 239000000047 product Substances 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000003068 static effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000005530 etching Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 229910021420 polycrystalline silicon Inorganic materials 0.000 description 3
- 229920005591 polysilicon Polymers 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000013478 data encryption standard Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- WGTYBPLFGIVFAS-UHFFFAOYSA-M tetramethylammonium hydroxide Chemical compound [OH-].C[N+](C)(C)C WGTYBPLFGIVFAS-UHFFFAOYSA-M 0.000 description 2
- 230000001154 acute effect Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- POSWICCRDBKBMH-UHFFFAOYSA-N dihydroisophorone Natural products CC1CC(=O)CC(C)(C)C1 POSWICCRDBKBMH-UHFFFAOYSA-N 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000012212 insulator Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0866—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/1425—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
- G06F12/1433—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a module or a part of a module
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/73—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/107—License processing; Key processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Abstract
各種實例係關於用於將一記憶體裝置之一選定部分之一數位指紋提供至一主機裝置之系統及方法。在一主機裝置處執行之一主機裝置可將一命令發送至一驅動程式以產生數位指紋資料。該命令可包含指示本地記憶體之一記憶體位置之一輸出指標。該驅動程式可產生不包含該輸出指標之一經修改命令。該驅動程式可將該經修改命令發送至一記憶體裝置。該驅動程式可接收包括該數位指紋資料之一回覆且將該數位指紋資料寫入至由該輸出指標指示之該主機裝置之本地記憶體之該記憶體位置處之一位置。
Description
本文中描述之實例大體上係關於用於管理包括一主機裝置及一記憶體裝置之一系統處之一物理不可複製函數(PUF)之系統及方法。
各種運算裝置利用密鑰來保全所儲存資料、鑑認命令及用於其他目的。然而,在一運算裝置或其之組件處產生且安全地儲存密鑰可產生相當大挑戰。
在一些態樣中,一種用於將一記憶體裝置之一選定部分之一數位指紋提供至一主機裝置之系統包含:一記憶體裝置;及一主機裝置,其包含與該記憶體裝置分離之一本地記憶體。該主機裝置用於執行一驅動程式及一主機應用程式。該主機裝置經組態以執行包含藉由該主機應用程式將產生數位指紋資料之一命令發送至該驅動程式之操作。該命令包含待寫入該數位指紋資料之該本地記憶體之一記憶體位置之一輸出指標。該等操作包含藉由該驅動程式產生一經修改命令。該經修改命令不包含該輸出指標。該等操作包含藉由該驅動程式將該經修改命令發送至該記憶體裝置。該等操作包含藉由該驅動程式接收包含描述該記憶體裝置之一選定部分之該數位指紋資料之一回覆。該等操作包含將該數位指紋資料寫入至
由該輸出指標指示之該本地記憶體之該記憶體位置處之一位置。
在一些態樣中,一種用於將一數位指紋提供至一主機裝置之方法包含藉由在該主機裝置處執行之一主機應用程式將產生數位指紋資料之一命令發送至在該主機裝置處執行之一驅動程式。該命令包含指示待寫入該數位指紋資料之該主機裝置之一本地記憶體之一記憶體位置之一輸出指標。該方法包含藉由該驅動程式產生一經修改命令。該經修改命令不包含該輸出指標。該方法包含藉由該驅動程式將該經修改命令發送至一外部記憶體裝置。該方法包含藉由該驅動程式接收包括該數位指紋資料之一回覆。該等方法包含將該數位指紋資料寫入至由該輸出指標指示之該本地記憶體之該記憶體位置處之一位置。
在一些態樣中,一種非暫時性電腦可讀媒體在其上包含指令,該等指令在由一硬體處理器執行時導致該硬體處理器執行包含藉由在該硬體處理器處執行之一主機應用程式將產生數位指紋資料之一命令發送至在主機裝置處執行之一驅動程式之操作。該命令包含指示待寫入該數位指紋資料之與該硬體處理器相關聯之本地記憶體之一記憶體位置之一輸出指標。該等操作包含藉由該驅動程式產生一經修改命令。該經修改命令不包含該輸出指標。該等操作包含藉由該驅動程式將該經修改命令發送至一記憶體裝置。該等操作包含藉由該驅動程式接收包含該數位指紋資料之一回覆。該等操作包含將該數位指紋資料寫入至由該輸出指標指示之該本地記憶體之該記憶體位置處之一位置。
100:環境
102:主機裝置
104:記憶體裝置
106:本地驅動程式
108:本地記憶體
109:處理器
110:主機應用程式
112:應用程式介面(API)
113:主機命令
115:主機回覆
116:記憶體裝置控制器
118:通信介面
120:物理不可複製函數(PUF)公用程式
121:快閃記憶體陣列
122:記憶體陣列
123:控制器
124:物理不可複製函數(PUF)
126:安全邊界
128A:記憶體位置
128B:記憶體位置
130:記憶體裝置(MD)命令
132:記憶體裝置(MD)回覆
200:程序流程
202:操作
204:操作
206:操作
208:操作
210:操作
212:操作
214:操作
216:操作
218:操作
300:程序流程
302:操作
304:操作
306:操作
308:操作
400:程序流程
402:操作
404:操作
406:操作
500:程序流程
501:行
502:操作
503:行
504:選用操作
505:行
506:操作
508:操作
510:操作
512:操作
514:選用操作
516:操作
518:操作
520:操作
522:操作
524:操作
526:操作
600:環境
610:處理系統
620:記憶體配置
630:設備/車輛
640:設備/家具或電器
650:設備/無人機
700:方塊圖
702:軟體架構
704:硬體層
706:處理單元
708:可執行指令
710:儲存模組
712:硬體
714:作業系統
716:程式庫
718:框架/中介軟體
720:應用程式
724:應用程式介面(API)呼叫
726:訊息
728:核心
730:服務
732:驅動程式
734:系統
736:應用程式介面(API)程式庫
738:程式庫
740:內建應用程式
742:第三方應用程式
744:呈現層
746:虛擬機監測器
748:虛擬機
750:作業系統
752:程式庫
754:框架/中介軟體
756:應用程式
758:呈現層
800:機器/硬體架構
802:硬體處理器
804:主記憶體
806:靜態記憶體
808:互連
810:顯示單元
812:字母數字輸入裝置
814:使用者介面(UI)導覽裝置
817:感測器
818:信號產生裝置
820:網路介面裝置
821:儲存裝置/儲存器
822:機器可讀媒體
824:指令
826:通信網路
828:輸出控制器
在不必按比例繪製之圖式中,相似數字在不同視圖中可描述類似組件。具有不同字母後綴之相似數字可表示類似組件之不同例項。
一些實例藉由實例而繪示且不限於隨附圖式之圖,其中:圖1係展示包含一主機裝置及一記憶體裝置之一環境之一個實例之一圖,其中在記憶體裝置處實施一物理不可複製函數(PUF)。
圖2係展示可由圖1之本地驅動程式執行以管理在一記憶體裝置處實施之PUF之一程序流程之一個實例之一流程圖。
圖3係展示可由圖1之本地驅動程式執行以初始化管理在記憶體裝置處實施之PUF之一程序流程之一個實例之一流程圖。
圖4係展示可由圖1之記憶體裝置處之一PUF公用程式執行以樣例化PUF之一程序流程之一個實例之一流程圖。
圖5係展示可在圖1之環境中執行以執行一命令以產生數位指紋資料(例如,PUF資料)之一程序流程之一個實例之一流程圖。
圖6展示具有一記憶體配置作為一或多個設備之部分之一例示性處理系統。
圖7係展示一運算裝置之一軟體架構之一個實例之一方塊圖。
圖8係繪示一運算裝置硬體架構之一方塊圖,可在其內執行一組或一序列指令以導致機器執行本文中論述之方法之任一者之實例。
在以下描述中,出於說明目的,闡述數種特定細節以提供對一些實例之一透徹理解。然而,熟習此項技術者將明白,可在無此等特定細節的情況下實踐本發明。
一PUF係在選定存取條件下從一半導體裝置之一選定部分導出之一電可讀取非程式化數位指紋。在許多實例中,數位指紋將依據導
致晶粒特定變動之個別半導體晶粒之製造變動而變化。數位指紋可包含諸如一記憶體胞元群組(諸如在通電時)之預設狀態或其他性質、一電路內之信號傳播延遲(或其他特性)等之參數。
在一些實例中,一PUF係基於記憶體之製造中之小程序變動且其他半導體裝置可另外導致類似半導體裝置展現稍微不同之行為。此等小行為差異可被偵測且用於產生PUF資料。PUF資料係包含上文描述之數位指紋或從上文描述之數位指紋導出之資料。PUF資料可用於例如產生密鑰且產生隨機或偽隨機數。
在各種實例中,一PUF由在包含主半導體組件之裝置處執行之一PUF公用程式實施。PUF公用程式讀取半導體裝置之選定部分之數位指紋。PUF公用程式傳回數位指紋作為PUF資料或在一些實例中修改數位指紋以產生PUF資料。例如,PUF公用程式可將一數位指紋轉換為具有一適合大小之一形式以用作一密鑰、隨機數或其他應用程式。
考量其中主半導體組件包含同步隨機存取記憶體(SRAM)記憶體胞元之一實例。在此實例中,PUF公用程式讀取SRAM記憶體胞元在起始時之初始邏輯狀態且將讀取值轉譯為具有一適合大小之PUF資料。考量其中主半導體組件包含NAND記憶體胞元之另一實例。在此實例中,PUF公用程式讀取NAND記憶體胞元以偵測一臨限值電壓分佈。臨限值電壓分佈用於產生PUF資料。由PUF公用程式產生之PUF資料可用於數個不同目的,包含例如作為隨機數、作為密鑰或作為產生密鑰之基礎等。
PUF公用程式對應於來自各種其他應用程式或公用程式之命令。例如,一或多個命令可指示PUF公用程式產生數位指紋資料,諸如一PUF。至PUF公用程式之其他命令可指示PUF公用程式執行與PUF資料
之產生相關之動作。至PUF公用程式之例示性命令可包含用於準備或初始化主半導體組件以讀取數位指紋之命令、用於讀取數位指紋且產生對應PUF或其他數位指紋資料之命令及用於傳回關於PUF公用程式之資料(諸如版本資料)之命令。
本文中描述之各種實例係關於用於在一外部記憶體裝置處實施一PUF之系統及方法。例如,與在一主機裝置處直接實施PUF相比,在一記憶體裝置處實施一PUF產生挑戰,該等挑戰由本文中描述之系統及方法解決。
為繪示在一外部記憶體裝置處實施一PUF之挑戰,考量其中PUF在一主機裝置處(而非在一外部記憶體裝置處)本地實施之配置。在此配置中,主機裝置之本地SRAM胞元被用作係PUF之基礎之半導體裝置之選定部分。在此配置中,消耗由PUF公用程式產生之PUF資料之PUF公用程式及應用程式皆在主機裝置處執行。主機裝置可實施一應用程式介面(API),應用程式使用API將命令直接發送至PUF公用程式。此外,PUF公用程式可將一命令之結果(若存在)映射至主機裝置處之一記憶體,其中藉由請求應用程式使用指標或間接法存取該等結果。
然而,當在外部實施PUF時,用於產生PUF數位指紋之一半導體裝置之SRAM胞元或其他選定部分在主機裝置外部之一記憶體裝置處實施。例如,主機裝置可形成於一第一半導體晶片上。記憶體裝置可形成於一第二半導體晶片上。主機裝置及記憶體裝置可在第一半導體晶片與第二半導體晶片之間的一匯流排上通信。在一些實例中,主機裝置係或包含一系統單晶片(SoC)且記憶體裝置係或包含一嵌入式多媒體控制器(eMMC)。
在此配置中,從在主機裝置處執行之應用程式至PUF公用程式之命令在從主機裝置傳輸至外部記憶體裝置處之PUF公用程式時可易於被截取及/或欺騙。而且,敏感PUF資料在從外部記憶體裝置處之PUF公用程式傳輸至主機裝置處之請求應用程式時可易於被截取。此外,由於PUF公用程式在外部記憶體裝置處執行,所以其可能無法存取主機裝置之本地記憶體。此可防止PUF公用程式使用指標及/或間接法將命令結果映射至主機裝置記憶體。
本文中描述之各種實例藉由在主機裝置處執行一本地驅動程式而解決此等及其他挑戰。本地驅動程式可經組態以接收藉由在主機裝置處執行之應用程式引導至PUF公用程式之主機命令。本地驅動程式從主機應用程式接收一主機命令。主機命令可包含參數,諸如輸出指標參數。輸出指標參數係主機裝置之本地記憶體映射之指標,其等指示主機應用程序在執行命令之後期望存取PUF資料之一位置。主機命令亦可包含輸入參數,其等包含或指代由PUF使用以執行一命令之資料。輸入參數可直接包含於主機命令中或使用指向本地記憶體映射處之一記憶體位置之一輸入參數指標間接傳遞。
在接收主機命令之後,本地驅動程式產生一經修改命令。在一些實例中,例如,使用主機裝置及外部記憶體裝置兩者所信任或已知之一或多個密鑰對經修改命令進行數位簽章。經修改命令亦可排除輸出指標參數。例如,本地驅動程式可將輸出指標參數儲存於主機裝置處以供隨後使用,如本文中描述。本地驅動程式將經修改命令引導至外部記憶體裝置。
外部記憶體裝置處之PUF公用程式執行經修改命令。若經
修改命令產生一輸出,諸如PUF資料,則PUF公用程式將輸出(例如,包含PUF資料)傳回至本地驅動程式。在接收輸出之後,本地驅動程式擷取使用主機命令提供之(若干)所儲存輸出指標參數且在由該或該等輸出指標參數指涉之一或若干位置處將輸出寫入至主機裝置處之一本地記憶體。以此方式,主機應用程式可利用指標及/或間接法來存取PUF資料。
圖1係展示包含一主機裝置102及一記憶體裝置104之一環境100之一個實例之一圖,其中在記憶體裝置104處實施一PUF 124。主機裝置102經由一通信介面118而與記憶體裝置104通信。主機裝置102及/或記憶體裝置104可包含於各種產品(諸如物聯網(IoT)裝置(例如,冰箱或其他設施、感測器、馬達、致動器、行動通信裝置、汽車、無人機等)、網路設施(例如,路由器、交換器等)或任何其他適合產品)中以支援產品之處理、通信或控制。在一些實例中,主機裝置102及記憶體裝置104包含於一共同電路板或封裝上。在一些實例中,主機裝置102係或包含一系統單晶片(SoC)且記憶體裝置104係或包含與SoC通信之一eMMC。
在圖1之實例中,主機裝置102包含一處理器109及一本地記憶體108。處理器109可為或包含任何適合硬體處理器。本地記憶體108可為或包含任何適合類型之記憶體,包含例如SRAM、其他適合RAM或其他適合資料儲存器。在一些實例中,主機裝置102亦包含一記憶體裝置控制器116以經由通信介面118與記憶體裝置104通信。
記憶體裝置104包含一或多個控制器123,其等經組態以執行用於操作記憶體裝置及/或經由通信介面118與主機裝置102介接之邏輯功能。記憶體裝置104亦包含可實施PUF 124之一記憶體陣列122。記憶體陣列122可包含數個區塊或數個記憶體胞元。記憶體陣列122可包含任何
適合類型之記憶體胞元,包含例如SDRAM。在一些實例中,記憶體裝置104亦包含與記憶體陣列122分離之一快閃記憶體陣列121。例如,記憶體陣列122可為由控制器123利用以管理快閃記憶體陣列121之一SRAM陣列。
再次參考主機裝置102,處理器109執行一主機應用程式110。主機應用程式110可為在主機裝置102處執行以執行任何適合功能之任何適合應用程式或公用程式。在一些實例中,主機應用程式110係主機裝置102之一作業系統(OS)。
處理器109亦執行一本地驅動程式106。本地驅動程式106實施一應用程式介面(API)112以與主機應用程式110通信。API 112可支援一組主機命令113及主機回覆115。一主機命令113係由主機應用程式110提供之一命令。一主機命令113可包含直接包含或由指標指涉之輸入參數。主機命令113亦可包含指涉其中主機應用程式110將存取源自命令之PUF資料之本地記憶體108處之位置之輸出指標。API 112亦可支援一或多個主機回覆115。一主機回覆係對由一PUF公用程式產生之一命令之一回應。例如,一回覆可包含PUF資料。並非全部命令導致一PUF公用程式產生一回覆。主機回覆115係提供至主機應用程式110之一回覆。一主機回覆115可併入源自一命令之PUF資料及/或可指示源自一命令之PUF資料映射至本地記憶體108,如本文中描述。
本地驅動程式106經組態以從主機應用程式110接收主機命令113。主機命令113可直接從主機應用程式105接收或在一些實例中可透過主機應用程式之一OS提供。一些主機命令113包含參數而其他主機命令可不包含參數。例如,請求停止PUF 124之一主機命令113可不包含參
數。請求一密鑰之一主機命令113可包含描述所請求密鑰之一或多個輸入參數及指向本地記憶體108處之記憶體位置128A、128B之一或多個輸出指標參數。輸出指標參數可向本地驅動程式106指示將回應於主機命令113而產生之PUF資料寫入或以其他方式映射至之位置。
在接收一主機命令113之後,本地驅動程式106產生記憶體裝置(MD)命令130。經由通信介面118將MD命令130傳輸至記憶體裝置104。在一些實例中,本地驅動程式106將MD命令130提供至記憶體裝置控制器116,記憶體裝置控制器116管理與記憶體裝置之通信介面118。記憶體裝置控制器116將MD命令130提供至記憶體裝置104(例如,其之PUF公用程式120)。
MD命令130可類似於主機命令113但被引導至記憶體裝置104。在一些實例中,從原始主機命令113修改MD命令130。例如,本地驅動程式106可修改一主機命令113以刪除輸出指標參數。(本地驅動程式106儲存經刪除輸出指標參數以供隨後使用,如本文中描述。)在一些實例中,本地驅動程式106亦可對MD命令130進行密碼簽章,例如使用一密鑰以產生一訊息鑑認碼(MAC)或雜湊訊息鑑認碼(HMAC)。MAC或HMAC可與記憶體裝置104共用,如本文中描述。在一些實例中,若一MD命令130包含一或多個輸入參數,則本地驅動程式加密該或該等輸入參數。
記憶體裝置104處之一PUF公用程式120接收且執行MD命令130。PUF公用程式120可在記憶體裝置104之控制器123處執行。如本文中描述,PUF公用程式120可經組態以驗證所接收MD命令130。若一MD命令130包含一或多個經加密輸入參數,則PUF公用程式120可解密該或該等輸入參數且使用其等執行命令130。
在執行一MD命令130之後,PUF公用程式120可將一MD回覆132提供至本地驅動程式106。MD回覆132可包含描述命令之狀態(諸如例如是否成功執行命令)之狀態資料。PUF公用程式120可經組態以對回覆密碼簽章。例如,PUF公用程式120可使用MAC或HMAC密鑰產生一MAC或HMAC。一些MD命令130傳回PUF資料,諸如例如一啟動碼、一密鑰等。PUF公用程式120可經組態以加密PUF資料以傳輸至本地驅動程式106。經加密PUF資料可為由PUF公用程式120密碼簽章之MD回覆132之部分。
本地驅動程式106可直接及/或經由記憶體裝置控制器116接收MD回覆132。本地驅動程式106可驗證MD回覆132之密碼簽章。在其中MD回覆132包含PUF資料之實例中,本地驅動程式106可解密PUF資料,如本文中描述。如本文中描述,驗證命令113、130及回覆132、115以及加密參數及PUF資料可在包含本地驅動程式106及記憶體裝置104之環境100處實施一安全邊界126。此可降低與在主機裝置102外部實施PUF124相關聯之安全風險。
在解密PUF資料之後,本地驅動程式106可將經解密輸出(諸如PUF資料)寫入或以其他方式映射至由與原始主機命令113相關聯之該或該等輸出指標參數指示之該或該等記憶體位置128A、128B。以此方式,主機應用程式110可存取本地記憶體108處之輸出。本地驅動程式106亦可將一主機回覆115發送至主機應用程式110。主機回覆115可指示成功執行主機命令113(或未成功執行主機命令113,視情況而定)。在接收一主機回覆115之後,主機應用程式110可使用運用主機命令113傳遞之該或該等輸出指標參數存取本地記憶體108處之輸出資料。
本地驅動程式106及PUF公用程式120可支援待在PUF 124處執行之各種命令。一樣例化命令指示記憶體裝置104產生PUF且準備好PUF以供使用。一樣例化命令可作為一主機命令113起源於主機應用程式110或可在本地驅動程式106起始之後作為一MD命令130由本地驅動程式106直接實施。本文中提供一例示性樣例化命令之額外細節,例如關於程序流程300之操作308。例如,一樣例化命令可包含指示PUF 124之大小之一分配大小輸入參數(例如,將用於實施PUF 124之記憶體陣列122處之記憶體胞元之數目)。樣例化命令亦可包含一主機公鑰輸入參數,其指示PUF公用程式120將用以加密源自其他命令之PUF資料之一主機公鑰。在一些實例中,主機公鑰經提供而與可由PUF公用程式120驗證之一數位憑證相關聯。樣例化命令亦可包含一單調計數器輸入參數,其指示PUF公用程式120應用以產生PUF資料之單調計數器。PUF公用程式120執行樣例化命令且產生指示命令之成功或失敗之一MD回覆132。本地驅動程式106可類似地產生指示命令之成功或失敗之一主機回覆115。
可將一產品資訊命令引導至PUF 124且傳回描述PUF 124及/或PUF公用程式120之PUF資料。一產品資訊主機命令113可包含對應於待產生之預期PUF資料之輸出指標參數但可不包含任何輸入參數。因此,一產品資訊MD命令130可不包含任何參數。對一產品資訊命令之一MD回覆132可包含描述PUF 124及/或PUF公用程式120之PUF資料,諸如例如一產品識別、一PUF版本、一PUF修正、一PUF構建版本號等之一或多者。本地驅動程式106可解密此PUF資料且將其寫入至由包含於初始主機命令內之輸出指標參數指示之本地記憶體108處之位置。本地驅動程式106可產生指示命令之成功或失敗之一主機回覆115。
一初始化命令可確認PUF已被正確樣例化。一初始化主機命令113可包含一實際PUF大小之一輸出指標參數及指示一所要PUF大小之一大小輸入參數。本地驅動程式106產生包含所要PUF大小輸入參數之一MD命令130。PUF公用程式120在接收MD命令130之後驗證PUF 124之樣例化大小匹配所要PUF大小參數且若是,則傳回指示實際PUF大小之PUF資料。本地驅動程式106將PUF資料寫入至對應於輸出指標參數之本地記憶體108處之位置。本地驅動程式106亦可產生指示命令之成功或失敗之一主機回覆115。
一登記命令可提示PUF公用程式120使用PUF來產生一啟動碼。啟動碼係可在隨後用作例如用於產生一密鑰、隨機數等之不同命令之一參數之PUF資料。一登記主機命令113可包含用於接收啟動碼PUF資料之一輸出指標參數。本地驅動程式106可產生可不包含任何參數之一MD命令130。PUF公用程式120使用PUF 124產生啟動碼且使用一MD回覆132傳回啟動碼作為PUF資料。本地驅動程式106將啟動碼寫入至由輸出指標參數指示之本地記憶體108處之記憶體位置且產生指示命令之成功或失敗之一主機回覆115。
一起始命令向PUF 124提供一先前產生之啟動碼且使其準備好接收額外命令。一起始主機命令113包含一啟動碼輸入參數。本地驅動程式106產生包含啟動碼作為一輸入參數之一MD命令130。PUF公用程式120使用啟動碼起始PUF 124且傳回指示起始命令之成功(或失敗)之一MD回覆132。本地驅動程式106隨後產生指示命令之成功或失敗之一主機回覆115。
一停止命令停止PUF 124且可停用PUF 124直至其重啟。
一停止主機命令113可不包含任何參數。本地驅動程式106可產生及傳遞亦可缺乏參數之一停止MD命令130。PUF公用程式可執行停止命令且提供指示命令之成功或失敗之一MD回覆132。本地驅動程式106亦可產生指示命令之成功或失敗之一主機回覆115。
使用一獲取金鑰命令以使用PUF 124產生一密鑰。一獲取金鑰主機命令113可包含各種參數,包含指示所請求之金鑰之類型(例如,一密鑰類型)之一金鑰類型輸入參數及在一些實例中一索引輸入參數。一獲取金鑰主機命令113亦可包含用於接收密鑰之一輸出指標參數。本地驅動程式106產生包含金鑰類型輸入參數及索引輸入參數之一MD命令130。PUF公用程式120使用PUF 124以使用索引產生所請求之金鑰類型且在一MD回覆132中傳回金鑰作為PUF資料。本地驅動程式106將密鑰寫入至由輸出指標參數指示之本地記憶體108處之位置且將一主機回覆115發送至主機應用程式110。
另一例示性主機命令113可請求作為一輸入參數提供之資料之一密碼簽章。例如,主機命令113可包含酬載資料。回應於主機命令113,PUF公用程式120例如利用從PUF 124產生之一密鑰產生酬載資料之一密碼簽章,如本文中描述。輸入參數亦可包含用於接收密碼簽章之一輸出指標參數。
圖2係展示可由在主機裝置102處執行之本地驅動程式106執行以管理在記憶體裝置104處實施之PUF 124之一程序流程200之一個實例之一流程圖。在操作202,本地驅動程式106從主機應用程式110接收一主機命令113。主機命令113可從主機應用程式110直接接收及/或經由主機裝置102之一OS接收。主機命令113可包含一或多個參數,包含例如輸入
參數及輸出指標參數。輸入參數可包含於主機命令113內或作為指標提供至本地記憶體108處之記憶體位置128A、128B。
在操作204,本地驅動程式106產生一MD命令130。此可包含例如從主機命令113移除輸出指標參數。輸出指標參數可本地儲存於主機102處,例如與本地驅動程式106相關聯之一安全記憶體位置處。在其中輸入參數作為指標包含於主機命令113內之實例中,本地驅動程式106存取包含輸入參數之本地記憶體108處之記憶體位置128A、128B且將輸入參數直接併入至MD命令130中。
在選用操作206,本地驅動程式106加密MD命令130之任何輸入參數。例如,若主機命令113包含輸入參數,則可加密該等輸入參數。輸入參數可使用任何適合對稱或不對稱加密方案加密,包含例如資料加密標準(DES)、李維斯特-莎米爾-阿爾德曼(Rivest-Shamir-Aldeman)(RSA)、先進加密標準(AES)等。在一些實例中,使用一對稱方案(諸如RSA)且本地驅動程式106使用記憶體裝置104及/或PUF公用程式120之一記憶體裝置公鑰加密輸入參數。PUF公用程式120隨後可使用對應於公鑰之一記憶體裝置私鑰解密參數,如本文中描述。若MD命令130不包含任何參數,則可不執行操作206。
在操作208,本地驅動程式106對MD命令130進行密碼簽章。類似於操作206之加密,操作208之密碼簽章可使用一對稱金鑰或一組不對稱金鑰執行。若使用不對稱金鑰,則本地驅動程式106可使用MD命令130及其私鑰產生一數位簽章。如本文中描述,PUF公用程式120可使用與本地驅動程式106相關聯之一公鑰鑑認數位簽章。在其中使用一對稱金鑰之實例中,本地驅動程式106及PUF公用程式120兩者皆具有相同對稱
金鑰之複本。本地驅動程式106例如藉由使用對稱金鑰將一雜湊或其他密碼函數應用至MD命令130而產生一數位簽章。在一些實例中,所得密碼簽章被稱為一MAC或HMAC。
在操作210,本地驅動程式106將MD命令130(包含密碼簽章)發送至記憶體裝置104(例如,其之PUF公用程式120)。記憶體裝置104執行MD命令且發送一MD回覆132,本地驅動程式106在操作212接收MD回覆132。MD回覆132可包含指示是否成功執行MD命令130之一狀態。在其中MD命令130產生PUF資料之實例中,MD回覆132亦包含PUF資料(其可經加密)。
在操作214,本地驅動程式106驗證MD回覆132。例如,回覆132可包含一密碼簽章,諸如一MAC或HMAC。本地驅動程式106利用一適當密鑰來驗證密碼簽章。在其中回覆132包含PUF資料之實例中,本地驅動程式106亦可例如使用與主機裝置102相關聯之一私鑰及/或與記憶體裝置104共用之一對稱金鑰解密PUF資料。
在選用操作216,本地驅動程式106將PUF資料(若存在)寫入至對應於包含於主機命令113內之該或該等輸出指標參數之該或該等記憶體位置128A、128B。例如,本地驅動程式106可擷取在經修改命令之產生期間儲存之指標參數。在操作218,本地驅動程式106將指示已執行主機命令113之一狀態訊息發送至主機應用程式110。主機應用程式110隨後可存取本地記憶體108處之PUF資料中之PUF資料(若存在)。
圖3係展示可由本地驅動程式106執行以初始化管理記憶體裝置104處之PUF 124之一程序流程300之一個實例之一流程圖。本地驅動程式106可執行程序流程300以準備對主機命令113作出回應,如本文中描
述。在一些實例中,本地驅動程式106在起始之後執行程序流程300。
在操作302,本地驅動程式106存取一主機私鑰。主機私鑰可儲存於例如與處理器109及/或本地記憶體108相關聯之一金鑰暫存器處。主機私鑰可用於解密在MD回覆132中接收之PUF資料。
在操作304,本地驅動程式106驗證包含記憶體裝置104之一公鑰(一記憶體裝置公鑰)之一記憶體裝置憑證。在一些實例中,藉由一憑證機構利用憑證機構之一私鑰對記憶體裝置憑證進行密碼簽章。驗證記憶體裝置憑證可包含使用憑證機構之一公鑰來確認記憶體裝置憑證之密碼簽章係使用憑證機構之私鑰產生。記憶體裝置憑證可包含本地驅動程式106在驗證之後可用以加密MD命令130參數之記憶體裝置公鑰,如本文中描述。
在操作306,本地驅動程式106可初始化一對稱MAC金鑰。此可包含關於一共用秘密與記憶體裝置104達成一致。初始化對稱MAC金鑰可例如使用任何適合金鑰交換演算法執行。本地驅動程式106可將對稱MAC金鑰儲存於例如與處理器109及/或本地記憶體108相關聯之一金鑰暫存器處。
在操作308,本地驅動程式106將一樣例化MD命令130發送至記憶體裝置104。樣例化MD命令130指示記憶體裝置104(例如,PUF公用程式120)產生PUF 124。例如,樣例化MD命令130可包含諸如例如PUF之大小之參數。樣例化MD命令130之另一例示性參數可為PUF公用程式120可用以加密提供至本地驅動程式106之PUF資料之一主機公鑰。主機公鑰可對應於在操作302存取之主機私鑰。
圖4係展示可由PUF公用程式120執行以例如回應於從本地
驅動程式106接收之一樣例化MD命令130而樣例化PUF 124之一程序流程400之一個實例之一流程圖。在操作402,PUF公用程式120為PUF 124分配來自記憶體陣列122之一組記憶體位址。在操作404,PUF公用程式為PUF 124分配記憶體裝置104處之一或多個單調計數器。在操作406,PUF公用程式將用於管理PUF 124之密鑰分配至例如控制器123處及/或記憶體陣列122處之特定金鑰暫存器位置。例如,從本地驅動程式106接收之對稱MAC金鑰可儲存於一個金鑰暫存器位置處。對稱MAC金鑰可用於密碼地驗證MD命令130且對MD回覆132數位簽章。與記憶體裝置數位憑證(在操作304驗證)相關聯之一記憶體裝置私鑰可儲存於另一金鑰暫存器位置處。記憶體裝置私鑰可用於解密由本地驅動程式106使用記憶體裝置公鑰加密之MD命令130參數。
圖5係展示可在圖1之環境100中執行以執行一命令之一程序流程500之一個實例之一流程圖。程序流程500包含三行501、503、505。行501包含可藉由主機應用程式110執行之操作。行503包含可藉由本地驅動程式106執行之操作。行505包含可藉由記憶體裝置104(例如,其之PUF公用程式120)執行之操作。
在操作502,主機應用程式110將一主機命令113發送至本地驅動程式106。主機命令113可請求在PUF 124處執行一命令,諸如本文中描述之例示性命令之一者。取決於所請求之命令,主機命令113可包含一或多個參數。參數可包含將用於執行命令之輸入參數以及輸出指標參數。輸出指標參數可指向其中主機應用程式110在執行命令之後期望定位PUF資料之本地記憶體108處之記憶體位置128A、128B。輸入參數可直接或經由本地記憶體108之指標間接包含於命令113中。
本地驅動程式106接收主機命令113且在選用操作504,其產生一MD命令130。產生MD命令130可包含從主機命令113移除輸出指標參數。輸出指標參數可被儲存且在隨後用於將源自命令之PUF資料寫入至所指示記憶體位置128A、128B。在一些實例中,儲存輸出指標參數與所產生MD命令130之一指示(諸如例如MD命令130之一些或全部之一雜湊)。在接收對MD命令130之一回覆132之後,所產生MD命令130之指示在隨後用於擷取輸出指標參數。產生MD命令130亦可包含加密輸入參數(若存在)。在其中經由一或多個指標間接提供輸入參數之實例中,本地驅動程式106可在加密之前從本地記憶體108存取相關輸入參數之值。
在操作506,本地驅動程式106例如使用一MAC密鑰對MD命令130進行密碼簽章,如本文中描述。在操作508,本地驅動程式106將MD命令130發送至記憶體裝置104(例如,其之PUF公用程式120)。
記憶體裝置104接收MD命令130且在操作510驗證MD命令130之數位簽章。在一些實例中,記憶體裝置104之韌體使用MD命令130呼叫PUF公用程式120來執行命令。此可在驗證之前或之後發生。在操作512,PUF公用程式120執行PUF 124處之命令。取決於命令,此可產生PUF資料。若產生PUF資料,則PUF公用程式在選用操作514加密PUF資料。例如可利用提供至記憶體裝置104之一主機公鑰加密PUF資料,如本文中描述。在操作516,記憶體裝置104及/或PUF公用程式120將一MD回覆132發送至本地驅動程式106。此可包含例如使用MAC密鑰對回覆132進行數位簽章。
本地驅動程式106接收MD回覆132且在操作518驗證其密碼簽章。視情況,若MD回覆132包含PUF資料,則本地驅動程式106在操
作520解密PUF資料且將其寫入至由輸出指標參數(若存在)指示之本地記憶體處之該或該等位置。本地驅動程式106可例如使用主機私鑰解密PUF資料。在操作522,本地驅動程式106將一主機回覆115發送至主機應用程式110。主機回覆115指示原始主機命令113之成功(或失敗)。主機應用程式110在操作524接收回覆。若回覆115指示命令係成功的,則主機應用程式可在操作526從本地記憶體108存取所得PUF資料。
圖6展示包含具有一記憶體配置620(例如,本文中描述之記憶體配置之任一者)之一處理系統610(例如,處理系統101)作為一或多個設備630、640、650之部分之一例示性環境600。設備包含可包含一處理系統(諸如處理系統610)之任何裝置。如先前提及,處理系統610可為能夠(依序或以其他方式)執行指令之任何裝置。例示性設備包含一車輛630(例如,作為一資訊娛樂系統、一控制系統或類似物之部分)、一無人機650(例如,作為一控制系統之部分)、家具或電器640(例如,作為一感測器系統、一娛樂或資訊娛樂系統之部分)或類似物。在其他實例中,儘管未展示,然設備可包含航空裝置、航海裝置、物聯網(IOT)及其他裝置。
圖7係展示一處理裝置之一軟體架構702之一個實例之一方塊圖700。架構702可結合各種硬體架構使用。例如,軟體架構702可描述主機裝置102。圖7僅係一軟體架構702之一非限制性實例且可實施許多其他架構以促進本文中描述之功能性。繪示一代表性硬體層704且其可表示例如上文提及之運算裝置之任一者。在一些實例中,硬體層704可根據圖7之架構702、圖8之機器800及/或本文中描述之安全處理系統101之架構實施。
代表性硬體層704包括具有相關聯可執行指令708之一或多
個處理單元706。可執行指令708表示軟體架構702之可執行指令,包含圖1至圖4之方法、模組、組件等之實施。硬體層704亦包含記憶體及/或儲存模組710,其等亦具有可執行指令708。硬體層704亦可包括如由其他硬體712指示之其他硬體,其表示硬體層704之任何其他硬體,諸如繪示為硬體架構800之部分之其他硬體。
在圖7之例示性架構中,軟體702可被概念化為一層堆疊,其中各層提供特定功能性。例如,軟體702可包含諸如一作業系統714、程式庫716、框架/中介軟體718、應用程式720及呈現層744之層。操作上,應用程式720及/或層內之其他組件可透過軟體堆疊調用應用程式介面(API)呼叫724且回應於API呼叫724接收繪示為訊息726之一回應、傳回值等。所繪示之層本質上係代表性的且並非全部軟體架構具有全部層。例如,一些行動或專用作業系統可不提供一框架/中介軟體層718,而其他可提供此一層。其他軟體架構可包含額外或不同層。
作業系統714可管理硬體資源且提供共同服務。作業系統714可包含例如一核心728、服務730及驅動程式732。核心728可充當硬體與其他軟體層之間的一抽象層。例如,核心728可負責記憶體管理、處理器管理(例如,排程)、組件管理、網路連結、安全設定等。服務730可為其他軟體層提供其他共同服務。在一些實例中,服務730包含一中斷服務。中斷服務可偵測一硬體或軟體中斷之接收且據此回應導致架構702暫停其當前處理且在接收一中斷時執行一中斷服務常式(ISR)。
驅動程式732可負責控制或介接下層硬體。例如,驅動程式732可取決於硬體組態而包含顯示器驅動程式、相機驅動程式、Bluetooth®驅動程式、快閃記憶體驅動程式、串列通信驅動程式(例如,
通用串列匯流排(USB)驅動程式)、Wi-Fi®驅動程式、NFC驅動程式、音訊驅動程式、功率管理驅動程式等。
程式庫716可提供可由應用程式720及/或其他組件及/或層利用之一共同基礎設施。程式庫716通常提供容許其他軟體模組以比與下層作業系統714功能性(例如,核心728、服務730及/或驅動程式732)直接介接更容易之一方式執行任務之功能性。程式庫716可包含系統734程式庫(例如,C標準程式庫),其等可提供諸如記憶體分配功能、串操縱功能、數學功能及類似物之功能。另外,程式庫716可包含API程式庫736,諸如媒體程式庫(例如,用於支援各種媒體格式(諸如MPEG4、H.264、MP3、AAC、AMR、JPG、PNG)之呈現及操縱之程式庫)、圖形程式庫(例如,可用於在一顯示器上之一圖形內容中呈現2D及9D之一OpenGL框架)、資料庫程式庫(例如,可提供各種關係資料庫功能之SQLite)、網站程式庫(例如,可提供網站瀏覽功能性之WebKit)及類似物。程式庫716亦可包含廣泛多種其他程式庫738以將許多其他API提供至應用程式720及其他軟體組件/模組。
框架718(有時亦被稱為中介軟體)可提供可由應用程式720及/或其他軟體組件/模組利用之一較高階共同基礎設施。例如,框架718可提供各種圖形使用者介面(GUI)功能、高階資源管理、高階位置服務等。框架718可提供可由應用程式720及/或其他軟體組件/模組利用之廣泛頻譜之其他API,其等之一些可專用於一特定作業系統或平台。
應用程式720包含內建應用程式740及/或第三方應用程式742。代表性內建應用程式740之實例可包含(但不限於)一聯繫人應用程式、一瀏覽器應用程式、一圖書閱讀器應用程式、一定位應用程式、一媒
體應用程式、一傳訊應用程式及/或一遊戲應用程式。第三方應用程式742可包含內建應用程式以及廣泛分類之其他應用程式之任一者。在一特定實例中,第三方應用程式742(例如,藉由除特定平台之供應商以外的一實體使用AndroidTM或iOSTM軟體開發套組(SDK)開發之一應用程式)可為在一行動作業系統(諸如iOSTM、AndroidTM、Windows®電話或其他行動運算裝置作業系統)上運行之行動軟體。在此實例中,第三方應用程式742可調用由行動作業系統(諸如作業系統714)提供之API呼叫724以促進本文中描述之功能性。
應用程式720可利用內建作業系統功能(例如,核心728、服務730及/或驅動程式732)、程式庫(例如,系統734、API 736及其他程式庫738)、框架/中介軟體718以產生使用者介面以與系統之使用者互動。替代地或另外,在一些系統中,與一使用者之互動可透過一呈現層(諸如呈現層744)發生。在此等系統中,應用程式/模組「邏輯」可從與一使用者互動之應用程式/模組之態樣分離。
一些軟體架構利用虛擬機。例如,本文中描述之系統可利用在一或多個伺服器運算機處執行之一或多個虛擬機執行。在圖7之實例中,此由虛擬機748繪示。一虛擬機產生一軟體環境,其中應用程式/模組可宛如其等在一硬體運算裝置上執行般執行。一虛擬機由一主機作業系統(作業系統714)裝載且通常(儘管並非始終)具有一虛擬機監測器746,虛擬機監測器746管理虛擬機以及與主機作業系統(即,作業系統714)之介面之操作。一軟體架構在諸如一作業系統750、程式庫752、框架/中介軟體754、應用程式756及/或呈現層758之虛擬機內執行。在虛擬機748內執行之軟體架構之此等層可相同於先前描述之對應層或可為不同的。
圖8繪示可在其上執行本文中論述之技術(例如,方法)之任何一或多者之一例示性機器800之一方塊圖。在替代實施例中,機器800可作為一獨立裝置操作或可連接(例如,網路連結)至其他機器。在一網路連結部署中,機器800可以一伺服器機器、一用戶端機器或伺服器-用戶端網路環境中之兩者之身份操作。在一實例中,機器800可充當同級間(P2P)(或其他分佈式)網路環境中之一同級機器。機器800可為一個人電腦(PC)、一平板PC、一機上盒(STB)、一個人數位助理(PDA)、一行動電話、一網路設備、一IoT裝置、汽車系統或能夠執行指定由該機器採取之行動之指令(循序或以其他方式)之任何機器。此外,雖然僅繪示一單一機器,但術語「機器」亦應被視為包含個別或聯合地執行一組(或多組)指令以執行本文中論述之方法(諸如雲端運算、軟體即服務(SaaS)、其他電腦叢集組態)之任何一或多者之任何機器集合。
如本文中描述,實例可包含邏輯、組件、裝置、封裝或機構或可由其等操作。電路系統係在包含硬體(例如,簡單電路、閘、邏輯等)之有形實體中實施之一電路集合(例如,一組電路)。電路系統成員可隨時間靈活變化且具有基礎硬體可變性。電路系統包含可在操作時單獨或組合地執行特定任務之部件。在一實例中,電路系統之硬體可經不變地設計以實行一特定操作(例如,硬接線)。在一實例中,電路系統之硬體可包含可變地連接之實體組件(例如,執行單元、電晶體、簡單電路等),其等包含經實體地修改(例如,磁性地、電氣地、可移動放置不變質量顆粒等)以編碼特定操作之指令之一非暫時性電腦可讀媒體。在連接實體組件時,一硬體構成之基礎電性質例如從一絕緣體改變為一導體或反之亦然。指令使參與硬體(例如,執行單元或一載入機構)能夠經由可變連接在硬體中產
生電路系統之部件以在操作時實行特定任務之部分。因此,在裝置正操作時,電腦可讀媒體通信地耦合至電路系統之其他組件。在一實例中,可在一個以上電路系統之一個以上部件中使用實體組件之任一者。例如,在操作下,執行單元可在一個時間點用於一第一電路系統之一第一電路中且在一不同時間由第一電路系統中之一第二電路或一第二電路系統中之一第三電路重用。
機器(例如,電腦系統)800(例如,主機裝置102等)可包含一硬體處理器802(例如,一中央處理單元(CPU)、一圖形處理單元(GPU)、一硬體處理核心或其等之任何組合,諸如記憶體控制器116等)、一主記憶體804及一靜態記憶體806,其等之一些或全部可經由一互連(例如,匯流排)808彼此通信。機器800可進一步包含一顯示單元810、一字母數字輸入裝置812(例如,一鍵盤)及一使用者介面(UI)導覽裝置814(例如,一滑鼠)。在一實例中,顯示單元810、輸入裝置812及UI導覽裝置814可為一觸控螢幕顯示器。機器800可另外包含一儲存裝置(例如,驅動單元)816、一信號產生裝置818(例如,一揚聲器)、一網路介面裝置820及一或多個感測器817(諸如一全球定位系統(GPS)感測器、指南針、加速度計或其他感測器)。機器800可包含一輸出控制器828,諸如一串列(例如,通用串列匯流排(USB))、並列或其他有線或無線(例如,紅外線(IR)、近場通信(NFC)等)連接以通信或控制一或多個周邊裝置(例如,一印表機、讀卡器等)。
儲存裝置816可包含一機器可讀媒體822,其上儲存體現本文中描述之技術或功能之任何一或多者或由其等利用之一或多組資料結構或指令824(例如,軟體)。例如,指令824可與一主機應用程式110、本地
驅動程式106、PUF公用程式120或其他適合軟體相關聯。指令824亦可在其由機器800執行之期間完全或至少部分駐留於主記憶體804內、靜態記憶體806內或硬體處理器802內。在一實例中,硬體處理器802、主記憶體804、靜態記憶體806或儲存裝置816之一者或任何組合可構成機器可讀媒體822。
雖然機器可讀儲存媒體822經繪示為一單一媒體,但術語「機器可讀儲存媒體」可包含經組態以儲存一或多個指令824之一單一媒體或多個媒體(例如,一集中或分佈式資料庫或相關聯快取區及伺服器)。
術語「機器可讀媒體」可包含能夠儲存、編碼或攜載由機器800執行且導致機器800執行本發明之技術之任何一或多者之指令或能夠儲存、編碼或攜載由此等指令使用或與此等指令相關聯之資料結構之任何媒體。非限制性機器可讀媒體實例可包含固態記憶體及光學及磁性媒體。在一實例中,一集結型(massed)機器可讀媒體包括具有擁有不變(例如,靜止)質量之複數個顆粒之一機器可讀媒體。因此,集結型機器可讀媒體並非暫時性傳播信號。集結型機器可讀媒體之特定實例可包含:非揮發性記憶體,諸如半導體記憶體裝置(例如,電可程式化唯讀記憶體(EPROM)、電可擦除可程式化唯讀記憶體(EEPROM))及快閃記憶體裝置;磁碟,諸如內置硬碟及可抽換式磁碟;磁光碟;及CD-ROM及DVD-ROM光碟。
指令824(例如,軟體、程式、一作業系統(OS)等)或其他資料經儲存於儲存裝置821上,可由記憶體804存取以供處理器802使用。記憶體804(例如,DRAM)通常係快速但揮發性的且因此係與儲存裝置821(例如,一SSD)不同類型之一儲存器,儲存裝置821適合於長期儲存
(包含在一「關閉」狀態中時)。由一使用者或機器800使用之指令824或資料通常載入記憶體804中以供處理器802使用。當記憶體804充滿時,可分配來自儲存裝置821之虛擬空間以補充記憶體804;然而,由於儲存器821通常慢於記憶體804且寫入速度通常比讀取速度至少慢一倍,所以虛擬記憶體之使用可歸因於儲存裝置延時而(與記憶體804(例如,DRAM)相比)大幅減低使用者體驗。此外,將儲存裝置821用於虛擬記憶體可大幅減少儲存裝置821之可使用壽命。
與虛擬記憶體相比,虛擬記憶體壓縮(例如,Linux®核心特徵「ZRAM」)使用記憶體之部分作為壓縮區塊儲存器以避免至儲存裝置821之傳呼。傳呼發生在壓縮區塊中直至有必要將此資料寫入至儲存裝置821。虛擬記憶體壓縮增加記憶體804之可用大小,同時減少儲存裝置821上之損耗。
針對行動電子裝置最佳化之儲存裝置或行動儲存器傳統地包含MMC固態儲存裝置(例如,微型安全數位(microSDTM)卡等)。MMC裝置包含與一主機裝置之數個平行介面(例如,一8位元平行介面),且通常可為從主機裝置移除及與主機裝置分離之組件。相比之下,eMMCTM裝置經附接至一電路板且被視為主機裝置之一組件,其具有與基於串列ATATM(串列AT(先進技術)附件或SATA)之SSD裝置相媲美之讀取速度。然而,對於行動裝置效能之需求持續增加,諸如完全實現虛擬或擴增實境裝置、利用增加網路速度等。回應於此需求,儲存裝置已從平行通信介面轉換為串列通信介面。通用快閃儲存(UFS)裝置(包含控制器及韌體)使用具有專用讀取/寫入路徑之一低電壓差分發信(LVDS)串列介面與一主機裝置通信,從而進一步推進更大讀取/寫入速度。
可進一步利用數個傳送協定(例如,訊框延遲、網際網路協定(IP)、傳輸控制協定(TCP)、使用者資料封包協定(UDP)、超文字傳送協定(HTTP)等)之任一者經由網路介面裝置820使用一傳輸媒體透過一通信網路826傳輸或接收指令824。例示性通信網路可包含一區域網路(LAN)、一廣域網路(WAN)、一封包資料網路(例如,網際網路)、行動電話網路(例如,蜂巢式網路)、簡易老式電話(POTS)網路及無線資料網路(例如,稱為Wi-Fi®之電機電子工程師學會(IEEE)802.11標準系列、稱為WiMax®之IEEE 802.16標準系列)、IEEE 802.15.4標準系列、同級間(P2P)網路等。在一實例中,網路介面裝置820可包含一或多個實體插孔(例如,乙太網路、同軸或電話插孔)或一或多個天線以連接至通信網路826。在一實例中,網路介面裝置820可包含複數個天線以使用單輸入多輸出(SIMO)、多輸入多輸出(MIMO)或多輸入單輸出(MISO)技術之至少一者進行無線通信。術語「傳輸媒體」應被視為包含能夠儲存、編碼或攜載由機器800執行之指令之任何無形媒體,且包含數位或類比通信信號或其他無形媒體以促進此軟體之通信。
上文之實施方式包含對隨附圖式(其等形成實施方式之一部分)之參考。圖式藉由圖解展示其中可實踐本發明之特定實施例。此等實施例在本文中亦被稱為「實例」。此等實例可包含除展示或描述之元件以外之元件。然而,本發明者亦預期其中僅提供所展示或描述之該等元件之實例。再者,本發明者亦預期相對於一特定實例(或其之一或多個樣態)或相對於在本文中展示或描述之其他實例(或其等之一或多個樣態)使用所展示或描述之該等元件(或其等之一或多個樣態)之任何組合或排列之實例。
在此文件中,使用術語「一(a或an)」(如在專利文件中常
見)以包含一個或一個以上,其獨立於「至少一個」或「一或多個」之任何其他例項或用法。在此文件中,除非另有指示,否則術語「或」用於指代一非窮舉性或使得「A或B」可包含「A但非B」、「B但非A」及「A及B」。在隨附發明申請專利範圍中,術語「包含」及「其中」係用作各自術語「包括」及「其中」之通俗英文等效術語。而且,在下列發明申請專利範圍中,術語「包含」及「包括」係開放式的,即,包含除在此一術語之後列出之元件以外之元件之一系統、裝置、物品或程序仍視為落入該發明申請專利範圍之範疇內。再者,在下列發明申請專利範圍中,術語「第一」、「第二」及「第三」等僅用作標記,且不旨在對其等之物件強加數值要求。
在各種實施例中,本文中描述之組件、控制器、處理器、單元、引擎或表可尤其包含儲存於一實體裝置上之實體電路系統或韌體。如本文中使用,「處理器」意謂任何類型之運算電路,諸如(但不限於)一微處理器、一微控制器、一圖形處理器、一數位信號處理器(DSP)或任何其他類型之處理器或處理電路(包含處理器或多核心裝置之一群組)。
無論一基板在任何時間點之實際定向如何,如此文件中使用之術語「水平」被定義為平行於該基板之習知平面或表面(諸如位於一晶圓或晶粒下方)之一平面。術語「垂直」指代垂直於如上文定義之水平之一方向。無論基板之定向如何,介詞(諸如「在......上」、「在......上方」及「在......下方」)關於習知平面或表面在基板之頂部或曝露表面上而定義;且同時「在......上」旨在暗示一個結構相對於該一個結構位於其「上」之另一結構之一直接接觸(無相反之表達指示);術語「在......上方」及「在......下方」明確旨在識別結構(或層、特徵等)之一相對放置,
其明確包含(但不限於)經識別結構之間的直接接觸,除非特別如此識別。類似地,術語「在......上方」及「在......下方」不限於水平定向,此係因為若一結構在某時間點係所論述構造之一最外部分,則該結構可「在」一參考結構「上方」,即使此結構相對於參考結構垂直延伸而非在一水平定向上延伸。
術語「晶圓」及「基板」在本文中大體上用於指代其上形成積體電路之任何結構且亦指代在積體電路製造之各種階段期間之此等結構。因此,並未以一限制意義獲得下列實施方式,且僅藉由隨附發明申請專利範圍連同此等發明申請專利範圍所授權之等效物之全部範疇定義各種實施例之範疇。
根據本發明且在本文中描述之各種實施例包含利用一垂直記憶體胞元結構之記憶體(例如,記憶體胞元之NAND串)。如本文中使用,方向形容詞將被視為相對於其上形成記憶體胞元之一基板之一表面(即,一垂直結構將被視為遠離於基板表面延伸,垂直結構之一底端將被視為最靠近基板表面之端部且垂直結構之一頂端將被視為最遠離於基板表面之端部)。
如本文中使用,除非另有指示,否則方向形容詞(諸如水平、垂直、法向、平行、垂直等)可指代相對定向且不旨在要求嚴格遵守特定幾何性質。例如,如本文中使用,一垂直結構不必嚴格垂直於一基板之一表面,而可代替地大體上垂直於基板之表面,且可與基板之表面形成一銳角(例如,介於60度與120度之間等)。
在本文中描述之一些實施例中,可將不同摻雜組態應用於一源極側選擇閘極(SGS)、一控制閘極(CG)及一汲極側選擇閘極(SGD),
在此實例中,其等之各者可由多晶矽形成或至少包含多晶矽,使得此等層疊(例如,多晶矽等)在曝露至一蝕刻溶液時可具有不同蝕刻速率。例如,在一3D半導體裝置中形成一整塊柱之一程序中,SGS及CG可形成凹槽,而SGD可保持較少凹陷或甚至不凹陷。此等摻雜組態可因此能夠藉由使用一蝕刻溶液(例如,氫氧化四甲銨(TMCH))而選擇性地蝕刻至3D半導體裝置中之不同層疊(例如,SGS、CG及SGD)中。
如本文中使用,操作一記憶體胞元包含從記憶體胞元讀取、寫入至或擦除記憶體胞元。將一記憶體胞元置於一預期狀態中之操作在本文中稱為「程式化」,且可包含寫入至記憶體胞元或從記憶體胞元擦除兩者(例如,記憶體胞元可經程式化至一擦除狀態)。
根據本發明之一或多項實施例,定位於一記憶體裝置內部或外部之一記憶體控制器(例如,一處理器、控制器、韌體等)能夠判定(例如,選擇、設定、調整、運算、改變、清除、傳達、調適、導出、定義、利用、修改、應用等)損耗循環之一數量或一損耗狀態(例如,記錄損耗循環、在記憶體裝置操作發生時計數該等操作、追蹤其起始之記憶體裝置操作、評估對應於一損耗狀態之記憶體裝置特性等)。
根據本發明之一或多項實施例,一記憶體存取裝置可經組態以在各記憶體操作下將損耗循環資訊提供至記憶體裝置。記憶體裝置控制電路系統(例如,控制邏輯)可經程式化以補償對應於損耗循環資訊之記憶體裝置效能改變。記憶體裝置可接收損耗循環資訊且回應於損耗循環資訊而判定一或多個操作參數(例如,一值、特性)。
將理解,當一元件被稱為「在」另一元件「上」、「連接至」另一元件或「與」另一元件「耦合」時,其可直接在另一元件上、連
接至另一元件或與另一元件耦合或可存在中介元件。相比之下,當一元件被稱為「直接在」另一元件「上」,「直接連接至」另一元件或「直接與」另一元件「耦合」時,不存在中介元件或層。除非另有指示,否則若兩個元件在圖式中展示為用一線連接其等,則兩個元件可經耦合或直接耦合。
本文中描述之方法實例可至少部分使用機器或電腦實施。一些實例可包含用指令編碼之一電腦可讀媒體或機器可讀媒體,該等指令可操作以組態一電子裝置以執行如在上文實例中描述之方法。此等方法之一實施方案可包含程式碼,諸如微碼、組合語言碼、一更高階語言碼或類似物。此程式碼可包含用於執行各種方法之電腦可讀指令。程式碼可形成電腦程式產品之部分。此外,程式碼可諸如在執行期間或在其他時間有形地儲存於一或多個揮發性或非揮發性有形電腦可讀媒體上。此等有形電腦可讀媒體之實例可包含(但不限於)硬碟、可抽換式磁碟、可抽換式光碟(例如,光碟及數位光碟)、卡式磁帶、記憶體卡或棒、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、固態磁碟(SSD)、通用快閃儲存(UFS)裝置、嵌入式MMC(eMMC)裝置及類似物。
實例1係一種用於將一記憶體裝置之一選定部分之一數位指紋提供至一主機裝置之系統,其包括:一記憶體裝置;一主機裝置,其包括與該記憶體裝置分離之一本地記憶體,該主機裝置用於執行一驅動程式及一主機應用程式,其中該主機裝置經組態以執行包括以下各者之操作:藉由該主機應用程式將產生數位指紋資料之一命令發送至該驅動程式,該命令包含待寫入該數位指紋資料之該本地記憶體之一記憶體位置之一輸出指標;藉由該驅動程式產生一經修改命令,其中該經修改命令不包含該輸出指標;藉由該驅動程式將該經修改命令發送至該記憶體裝置;藉
由該驅動程式接收包括描述該記憶體裝置之一選定部分之該數位指紋資料之一回覆;及將該數位指紋資料寫入至由該輸出指標指示之該本地記憶體之該記憶體位置處之一位置。
在實例2中,如實例1之標的物視情況包含其中該主機裝置進一步經組態以執行包括以下各者之操作:在將該數位指紋資料寫入至由該輸出指標指示之該本地記憶體處之該位置之前,藉由驅動程式使用一主機裝置公鑰解密該數位指紋資料。
在實例3中,如實例1至2中任何一或多者之標的物視情況包含其中該命令包括一輸入參數,且其中該主機裝置進一步經組態以執行包括至少部分基於與該記憶體裝置相關聯之一公鑰加密該輸入參數之操作。
在實例4中,如實例1至3中任何一或多者之標的物視情況包含其中該主機裝置進一步經組態以執行包括將一樣例化命令發送至該記憶體裝置之操作,其中該樣例化命令指示指示待分配至PUF之該記憶體裝置處之記憶體之一量之一分配大小。
在實例5中,如實例4之標的物視情況包含其中該樣例化命令亦指示用於加密該記憶體裝置處之數位指紋資料之一主機公鑰。
在實例6中,如實例1至5中任何一或多者之標的物視情況包含其中該命令係一登記命令,且其中該數位指紋資料包括一啟動碼。
在實例7中,如實例1至6中任何一或多者之標的物視情況包含其中該命令包括回應於至該驅動程式之一先前命令而接收之一啟動碼。
在實例8中,如實例1至7中任何一或多者之標的物視情況
包含其中該命令包括一密鑰類型之一指示且其中該數位指紋資料包括該密鑰類型之一密鑰。
在實例1至8中任何一或多者中,該數位指紋包括一PUF且該數位指紋資料可包含PUF資料。
實例9係一種用於將一數位指紋提供至一主機裝置之方法,其包括:藉由在該主機裝置處執行之一主機應用程式將產生數位指紋資料之一命令發送至在該主機裝置處執行之一驅動程式,該命令包含指示待寫入該數位指紋資料之該主機裝置之一本地記憶體之一記憶體位置之一輸出指標;藉由該驅動程式產生一經修改命令,其中該經修改命令不包含該輸出指標;藉由該驅動程式將該經修改命令發送至一外部記憶體裝置;藉由該驅動程式接收包括該數位指紋資料之一回覆;及將該數位指紋資料寫入至由該輸出指標指示之該本地記憶體之該記憶體位置處之一位置。
在實例10中,如實例9之標的物視情況包含在將該數位指紋資料寫入至由該輸出指標指示之該本地記憶體處之該位置之前,藉由驅動程式使用一主機裝置私鑰解密該數位指紋資料。
在實例11中,如實例9至10中任何一或多者之標的物視情況包含其中該命令包括一輸入參數,進一步包括至少部分基於與該記憶體裝置相關聯之一公鑰加密該輸入參數。
在實例12中,如實例9至11中任何一或多者之標的物視情況包含將一樣例化命令發送至該記憶體裝置,其中該樣例化命令指示指示待分配至PUF之該記憶體裝置處之記憶體之一量之一分配大小。
在實例13中,如實例12之標的物視情況包含其中該樣例化命令亦指示用於加密該記憶體裝置處之數位指紋資料之一主機公鑰。
在實例14中,如實例9至13中任何一或多者之標的物視情況包含其中該命令係一登記命令,且其中該數位指紋資料包括一啟動碼。
在實例15中,如實例9至14中任何一或多者之標的物視情況包含其中該命令包括回應於至該驅動程式之一先前命令而接收之一啟動碼。
在實例16中,如實例9至15中任何一或多者之標的物視情況包含其中該命令包括一密鑰類型之一指示且其中該數位指紋資料包括該密鑰類型之一密鑰。
在實例9至16中任何一或多者中,該數位指紋包括一PUF且該數位指紋資料可包含PUF資料。
實例17係一種其上包括指令之非暫時性電腦可讀媒體,該等指令在由一硬體處理器執行時導致該硬體處理器執行包括以下各者之操作:藉由在該硬體處理器處執行之一主機應用程式將產生數位指紋資料之一命令發送至在該主機裝置處執行之一驅動程式,該命令包含指示待寫入該數位指紋資料之與該硬體處理器相關聯之本地記憶體之一記憶體位置之一輸出指標;藉由該驅動程式產生一經修改命令,其中該經修改命令不包含該輸出指標;藉由該驅動程式將該經修改命令發送至一記憶體裝置;藉由該驅動程式接收包括該數位指紋資料之一回覆;及將該數位指紋資料寫入至由該輸出指標指示之該本地記憶體之該記憶體位置處之一位置。
在實例18中,如實例17之標的物視情況包含其中該等操作進一步包括在將該數位指紋資料寫入至由該輸出指標指示之該本地記憶體處之該位置之前,藉由驅動程式使用一主機裝置私鑰解密該數位指紋資料。
在實例19中,如實例17至18中任何一或多者之標的物視情況包含其中該命令包括一輸入參數,且其中操作進一步包括至少部分基於與該記憶體裝置相關聯之一公鑰加密該輸入參數。
在實例20中,如實例17至19中任何一或多者之標的物視情況包含其中該等操作進一步包括將一樣例化命令發送至該記憶體裝置,其中該樣例化命令指示指示待分配至PUF之該記憶體裝置處之記憶體之一量之一分配大小。
在實例17至20中任何一或多者中,該數位指紋包括一PUF且該數位指紋資料可包含PUF資料。
100:環境
102:主機裝置
104:記憶體裝置
106:本地驅動程式
108:本地記憶體
109:處理器
110:主機應用程式
112:應用程式介面(API)
113:主機命令
115:主機回覆
116:記憶體裝置控制器
118:通信介面
120:物理不可複製函數(PUF)公用程式
121:快閃記憶體陣列
122:記憶體陣列
123:控制器
124:物理不可複製函數(PUF)
126:安全邊界
128A:記憶體位置
128B:記憶體位置
130:記憶體裝置(MD)命令
132:記憶體裝置(MD)回覆
Claims (20)
- 一種用於將一記憶體裝置之一選定部分之一數位指紋提供至一主機裝置之系統,其包括:一記憶體裝置;一主機裝置(host device),其包括與該記憶體裝置分離之一本地記憶體(local memory),該主機裝置用於執行一驅動程式(driver)及一主機應用程式,其中該主機裝置經組態以執行包括以下各者之操作:藉由該主機應用程式將產生數位指紋資料之一命令發送至該驅動程式,該命令包含待寫入該數位指紋資料之該本地記憶體之一記憶體位置之一輸出指標(output pointer);藉由該驅動程式產生一經修改命令,其中該經修改命令不包含該輸出指標;藉由該驅動程式將該經修改命令發送至該記憶體裝置;藉由該驅動程式接收包括描述該記憶體裝置之一選定部分之該數位指紋資料之一回覆;及將該數位指紋資料寫入至由該輸出指標指示之該本地記憶體之該記憶體位置。
- 如請求項1之系統,其中該主機裝置經進一步組態以執行包括以下各者之操作:在將該數位指紋資料寫入至由該輸出指標指示之該本地記憶體處之該位置之前,藉由該驅動程式使用一主機裝置私鑰(host device private key)解密該數位指紋資料。
- 如請求項1之系統,其中該命令包括一輸入參數,且其中該主機裝置進一步經組態以執行包括至少部分基於與該記憶體裝置相關聯之一公鑰(public key)加密該輸入參數之操作。
- 如請求項1之系統,其中該主機裝置經進一步組態以執行包括將一樣例化命令發送至該記憶體裝置之操作,其中該樣例化命令指示指示待分配至PUF之該記憶體裝置處之記憶體之一量之一分配大小。
- 如請求項4之系統,其中該樣例化命令亦指示用於加密該記憶體裝置處之數位指紋資料之一主機公鑰。
- 如請求項1之系統,其中該命令係一登記命令(enroll command),且其中該數位指紋資料包括一啟動碼。
- 如請求項1之系統,其中該命令包括回應於至該驅動程式之一先前命令而接收之一啟動碼。
- 如請求項1之系統,其中該命令包括一密鑰類型之一指示且其中該數位指紋資料包括該密鑰類型之一密鑰。
- 一種用於將一數位指紋提供至一主機裝置之方法,其包括:藉由在該主機裝置處執行之一主機應用程式將產生數位指紋資料之 一命令發送至在該主機裝置處執行之一驅動程式,該命令包含指示待寫入該數位指紋資料之該主機裝置之一本地記憶體之一記憶體位置之一輸出指標;藉由該驅動程式產生一經修改命令,其中該經修改命令不包含該輸出指標;藉由該驅動程式將該經修改命令發送至一外部記憶體裝置;藉由該驅動程式接收包括該數位指紋資料之一回覆;及將該數位指紋資料寫入至由該輸出指標指示之該本地記憶體之該記憶體位置。
- 如請求項9之方法,其進一步包括在將該數位指紋資料寫入至由該輸出指標指示之該本地記憶體處之該位置之前,藉由驅動程式使用一主機裝置私鑰解密該數位指紋資料。
- 如請求項9之系統,其中該命令包括一輸入參數,進一步包括至少部分基於與該記憶體裝置相關聯之一公鑰加密該輸入參數。
- 如請求項9之方法,其進一步包括將一樣例化命令發送至該記憶體裝置,其中該樣例化命令指示指示待分配至PUF之該記憶體裝置處之記憶體之一量之一分配大小。
- 如請求項12之方法,其中該樣例化命令亦指示用於加密該記憶體裝置處之數位指紋資料之一主機公鑰。
- 如請求項9之方法,其中該命令係一登記命令,且其中該數位指紋資料包括一啟動碼。
- 如請求項9之方法,其中該命令包括回應於至該驅動程式之一先前命令而接收之一啟動碼。
- 如請求項9之方法,其中該命令包括一密鑰類型之一指示且其中該數位指紋資料包括該密鑰類型之一密鑰。
- 一種其上包括指令之非暫時性電腦可讀媒體,該等指令在由一硬體處理器執行時導致該硬體處理器執行包括以下各者之操作:藉由在該硬體處理器處執行之一主機應用程式將產生數位指紋資料之一命令發送至在該主機裝置處執行之一驅動程式,該命令包含指示待寫入該數位指紋資料之與該硬體處理器相關聯之本地記憶體之一記憶體位置之一輸出指標;藉由該驅動程式產生一經修改命令,其中該經修改命令不包含該輸出指標;藉由該驅動程式將該經修改命令發送至一記憶體裝置;藉由該驅動程式接收包括該數位指紋資料之一回覆;及將該數位指紋資料寫入至由該輸出指標指示之該本地記憶體之該記憶體位置。
- 如請求項17之媒體,其中該等操作進一步包括在將該數位指紋資料寫入至由該輸出指標指示之該本地記憶體處之該位置之前,藉由驅動程式使用一主機裝置私鑰解密該數位指紋資料。
- 如請求項17之媒體,其中該命令包括一輸入參數,且其中操作進一步包括至少部分基於與該記憶體裝置相關聯之一公鑰加密該輸入參數。
- 如請求項17之媒體,其中該等操作進一步包括將一樣例化命令發送至該記憶體裝置,其中該樣例化命令指示指示待分配至PUF之該記憶體裝置處之記憶體之一量之一分配大小。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862786753P | 2018-12-31 | 2018-12-31 | |
US62/786,753 | 2018-12-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202032406A TW202032406A (zh) | 2020-09-01 |
TWI734314B true TWI734314B (zh) | 2021-07-21 |
Family
ID=71406791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108147297A TWI734314B (zh) | 2018-12-31 | 2019-12-24 | 用於將數位指紋提供至主機裝置之系統、方法及非暫時性電腦可讀媒體 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11868513B2 (zh) |
KR (1) | KR20210095727A (zh) |
CN (1) | CN113518978B (zh) |
TW (1) | TWI734314B (zh) |
WO (1) | WO2020142371A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11868513B2 (en) | 2018-12-31 | 2024-01-09 | Micron Technology, Inc. | Physical unclonable function at a memory device |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11636907B2 (en) * | 2020-06-30 | 2023-04-25 | Nuvoton Technology Corporation | Integrity verification of lifecycle-state memory using multi-threshold supply voltage detection |
CN113068187B (zh) * | 2021-02-20 | 2022-03-11 | 西安电子科技大学 | 一种无人机辅助的终端接入认证方法、系统、设备及应用 |
US11784827B2 (en) * | 2021-03-09 | 2023-10-10 | Micron Technology, Inc. | In-memory signing of messages with a personal identifier |
JP7413300B2 (ja) * | 2021-03-15 | 2024-01-15 | 株式会社東芝 | 記憶装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180004444A1 (en) * | 2016-06-30 | 2018-01-04 | Nxp B.V. | Method for performing multiple enrollments of a physically uncloneable function |
US20180129802A1 (en) * | 2016-11-09 | 2018-05-10 | Arizona Board Of Regents On Behalf Of Northern Arizona University | Puf hardware arrangement for increased throughput |
TW201822062A (zh) * | 2016-11-30 | 2018-06-16 | 台灣積體電路製造股份有限公司 | 利用強物理不可複製功能的伺服器裝置與用戶端間保密通訊 |
TWI627555B (zh) * | 2017-10-16 | 2018-06-21 | 旺宏電子股份有限公司 | 物理不可複製函數辨識之產生方法及其產生之裝置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7505577B2 (en) * | 2001-03-31 | 2009-03-17 | Siebel Systems, Inc. | System and method for multi-channel communication queuing |
US8928347B2 (en) | 2012-09-28 | 2015-01-06 | Intel Corporation | Integrated circuits having accessible and inaccessible physically unclonable functions |
EP2904732B1 (en) * | 2012-10-04 | 2018-11-28 | Intrinsic ID B.V. | System for generating a cryptographic key from a memory used as a physically unclonable function |
US9875378B2 (en) * | 2015-06-12 | 2018-01-23 | QUALCOMOM Incorporated | Physically unclonable function assisted memory encryption device techniques |
US20170126414A1 (en) | 2015-10-28 | 2017-05-04 | Texas Instruments Incorporated | Database-less authentication with physically unclonable functions |
US10445531B2 (en) | 2016-05-26 | 2019-10-15 | Raytheon Company | Authentication system and method |
US10560263B2 (en) | 2017-03-24 | 2020-02-11 | Micron Technology, Inc. | Secure memory arrangements |
US10984136B2 (en) | 2017-04-21 | 2021-04-20 | Micron Technology, Inc. | Secure memory device with unique identifier for authentication |
TWI734314B (zh) | 2018-12-31 | 2021-07-21 | 美商美光科技公司 | 用於將數位指紋提供至主機裝置之系統、方法及非暫時性電腦可讀媒體 |
-
2019
- 2019-12-24 TW TW108147297A patent/TWI734314B/zh active
- 2019-12-27 CN CN201980092819.6A patent/CN113518978B/zh active Active
- 2019-12-27 KR KR1020217023342A patent/KR20210095727A/ko not_active Application Discontinuation
- 2019-12-27 US US17/283,628 patent/US11868513B2/en active Active
- 2019-12-27 WO PCT/US2019/068726 patent/WO2020142371A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180004444A1 (en) * | 2016-06-30 | 2018-01-04 | Nxp B.V. | Method for performing multiple enrollments of a physically uncloneable function |
US20180129802A1 (en) * | 2016-11-09 | 2018-05-10 | Arizona Board Of Regents On Behalf Of Northern Arizona University | Puf hardware arrangement for increased throughput |
TW201822062A (zh) * | 2016-11-30 | 2018-06-16 | 台灣積體電路製造股份有限公司 | 利用強物理不可複製功能的伺服器裝置與用戶端間保密通訊 |
TWI627555B (zh) * | 2017-10-16 | 2018-06-21 | 旺宏電子股份有限公司 | 物理不可複製函數辨識之產生方法及其產生之裝置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11868513B2 (en) | 2018-12-31 | 2024-01-09 | Micron Technology, Inc. | Physical unclonable function at a memory device |
Also Published As
Publication number | Publication date |
---|---|
CN113518978B (zh) | 2024-06-04 |
CN113518978A (zh) | 2021-10-19 |
KR20210095727A (ko) | 2021-08-02 |
WO2020142371A1 (en) | 2020-07-09 |
US11868513B2 (en) | 2024-01-09 |
TW202032406A (zh) | 2020-09-01 |
US20210350032A1 (en) | 2021-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI734314B (zh) | 用於將數位指紋提供至主機裝置之系統、方法及非暫時性電腦可讀媒體 | |
US9965653B2 (en) | Trusted computing | |
EP3335147B1 (en) | Device birth certificate | |
US11611433B2 (en) | Secure memory arrangements | |
US9537833B2 (en) | Secure host communications | |
US20150244717A1 (en) | Trusted virtual computing system | |
US9547773B2 (en) | Secure event log management | |
WO2015100188A1 (en) | Virtual machine assurances | |
KR20160040322A (ko) | 글로벌 플랫폼 규격을 사용하는 발행자 보안 도메인에 대한 키 관리 시스템 및 방법 | |
WO2019184740A1 (zh) | 数据加密、解密方法及装置 | |
US20200127850A1 (en) | Certifying a trusted platform module without privacy certification authority infrastructure | |
TWI587172B (zh) | 用於建立安全工作空間的所有權之系統 | |
WO2022161182A1 (zh) | 基于数据流的可信计算的方法及装置 | |
JP2022522595A (ja) | ホストベースのフラッシュメモリメンテナンス技術 | |
US11616769B2 (en) | Runtime identity confirmation for restricted server communication control | |
US11579928B2 (en) | Systems and methods for configuring a watermark unit with watermark algorithms for a data processing accelerator | |
CN117632352A (zh) | 虚拟化计算机系统中经由桥接设备的安全外围设备通信 | |
CN115203700A (zh) | 用于保护处于静止及运动的数据的灵活安全性enclave | |
CN112650990B (zh) | 使用查询来签名人工智能水印的方法和系统 | |
US20230344620A1 (en) | Personal private key encryption device | |
US20240089239A1 (en) | Techniques for a trusted execution environment at a compute server to use a remote accelerator | |
KR20230075548A (ko) | 트러스티드 컴퓨팅 시스템 및 이의 증명 방법 | |
KR20230067436A (ko) | 트러스티드 컴퓨팅 장치 및 이의 동작 방법 |