IP Library Granted Patent US 12,301,712
Granted Patent B2
US 12,301,712 · App. 18/523,346 · Granted May 13, 2025

Unchangeable physical unclonable function in non-volatile memory

Inventors: Chun-Hsiung Hung (Hsinchu, TW); Chin-Hung Chang (Tainan, TW)
Assignee: MACRONIX INTERNATIONAL CO., LTD.
H04L9/0866G06F12/0246G06F12/1408G06F12/1425G09C1/00G11C7/24G11C16/22H04L9/3278G06F2212/1052G11C7/1006G11C8/20G11C16/0425G11C16/0466H03K19/003H04L2209/12
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,301,712
App. No.
18/523,346
Granted
May 13, 2025
Kind
B2
Abstract

A device which can be implemented on a single packaged integrated circuit or a multichip module comprises a plurality of non-volatile memory cells, and logic to use a physical unclonable function to produce a key and to store the key in a set of non-volatile memory cells in the plurality of non-volatile memory cells. The physical unclonable function can use entropy derived from non-volatile memory cells in the plurality of non-volatile memory cells to produce a key. Logic is described to disable changes to data in the set of non-volatile memory cells, and thereby freeze the key after it is stored in the set.

Claims (41)

1. A circuit comprising:

a plurality of non-volatile memory cells;

logic configured to use a physical unclonable function to produce a key, to store the key in a set of non-volatile memory cells in the plurality of non-volatile memory cells, and to use the physical unclonable function to update the key when a key update protocol signals that the key needs to be updated;

logic configured to disable changes to data in the set of non-volatile memory cells after the key is stored in the set, wherein the logic configured to disable changes to data in the set of non-volatile memory cells after the key is stored in the set is configured to disable use of the physical unclonable function; and

authentication logic requiring a successful authentication protocol to enable the physical unclonable function to produce the key, wherein:

the physical unclonable function is configured to utilize entropy generated using non-volatile memory cells in the plurality of non-volatile memory cells to produce the key; or

the physical unclonable function is configured to use the set of non-volatile memory cells to produce the key.

2. The circuit of claim 1 , wherein:

the plurality of non-volatile memory cells includes an array of memory cells with peripheral circuits for access to the array, and a block of non-volatile memory cells having separate peripheral circuits allowing read-only access to the block, the block including the set of non-volatile memory cells;

the physical unclonable function is configured to utilize entropy generated using non-volatile memory cells in the block of non-volatile memory cells to produce the key; and

the logic configured to disable changes to data in the set of non-volatile memory cells is configured to disable the physical unclonable function.

3. The circuit of claim 1 , wherein:

the plurality of non-volatile memory cells includes an array of memory cells with peripheral circuits for access to the array;

the peripheral circuits have a first state in which access to the set of non-volatile memory cells to write the key is enabled, and a second state in which access to the set of non-volatile memory cells to write is disabled while access to other non-volatile memory cells in the array to write is enabled; and

the logic configured to disable changes to data in the set of non-volatile memory cells includes an indicator to set the first state or the second state.

4. The circuit of claim 1 , wherein the logic configured to disable changes to data in the set of non-volatile memory cells includes logic configured to compare data stored in the set of non-volatile memory cells with a predetermined data pattern, and to disable the physical unclonable function when the data stored does not match the predetermined data pattern.

5. The circuit of claim 1 , including:

a port for external communication of data from the plurality of non-volatile memory cells; and

security logic coupled to the plurality of non-volatile memory cells, which is configured to utilize the key in a protocol to enable access to data stored in the plurality of non-volatile memory cells.

6. The circuit of claim 5 , wherein the protocol includes a challenge/response protocol including exchange of data via the port.

7. The circuit of claim 5 , wherein the plurality of non-volatile memory cells, the port, the security logic and the logic configured to disable changes to data in the set of non-volatile memory cells are disposed on a single integrated circuit.

8. The circuit of claim 1 , wherein the plurality of non-volatile memory cells comprises a memory array having a plurality of blocks of memory cells, a particular block including the set of non-volatile memory cells, and including access control circuits including block lock bits, which are configured to enable and disable access to write data to corresponding blocks in the plurality of blocks, and the logic configured to disable changes to data in the set of non-volatile memory cells is configured to set a block lock bit for the particular block.

9. The circuit of claim 1 , wherein the logic configured to disable changes is configured to be responsive to a command from an external circuit.

10. A method for operating a circuit including a plurality of non-volatile memory cells, comprising:

executing a physical unclonable function to generate a key;

storing the key in a set of non-volatile memory cells;

using the physical unclonable function to update the key when a key update protocol signals that the key needs to be updated;

after storing the key, disabling changes to data stored in the set of non-volatile memory cells, wherein disabling changes to data stored in the set of non-volatile memory cells disables use of the physical unclonable function; and

requiring a successful authentication protocol to enable the physical unclonable function to produce the key, wherein:

the physical unclonable function utilizes entropy generated using non-volatile memory cells in the plurality of non-volatile memory cells to produce the key; or

the physical unclonable function uses the set of non-volatile memory cells to produce the key.

11. The method of claim 10 , wherein disabling changes to data stored in the set of non-volatile memory cells includes comparing data stored in the set of non-volatile memory cells with a predetermined data pattern, and disabling the physical unclonable function when the data stored does not match the predetermined data pattern.

12. The method of claim 10 , wherein:

the plurality of non-volatile memory cells includes an array of non-volatile memory cells with peripheral circuits for access to the array, and a block of non-volatile memory cells having separate peripheral circuits allowing read-only access to the block, the block including the set of non-volatile memory cells;

the physical unclonable function utilizes entropy generated using non-volatile memory cells in the block of non-volatile memory cells to produce the key; and

disabling changes to data stored in the set of non-volatile memory cells disables the physical unclonable function.

13. The method of claim 10 , wherein:

the plurality of non-volatile memory cells includes an array of non-volatile memory cells with peripheral circuits for access to the array;

the peripheral circuits have a first state in which access to the set of non-volatile memory cells to write the key is enabled, and a second state in which access to the set of non-volatile memory cells to write is disabled while access to other non-volatile memory cells in the array to write is enabled; and

disabling changes to data stored in the set of non-volatile memory cells includes storing an indicator to set the first state or the second state.

14. The method of claim 10 , including at least one of utilizing the key in a protocol to enable access to data other than the key, stored in the plurality of non-volatile memory cells; and after generating the key and before disabling changes, testing the key to verify that it is usable for its intended purpose.

Continuity (12)
Continuation 18097867 · Jan 17, 2023
Continuation 17143097 · Jan 6, 2021
Continuation 15864445 · Jan 8, 2018
Continuation In Part 15601582 · May 22, 2017
Provisional Application 62528460 · Jul 4, 2017
Provisional Application 62435337 · Dec 16, 2016
Provisional Application 62435092 · Dec 16, 2016
Provisional Application 62431835 · Dec 9, 2016
Provisional Application 62430196 · Dec 5, 2016
Provisional Application 62423753 · Nov 17, 2016
Provisional Application 62370736 · Aug 4, 2016
Related Publication 20240171384A1 · May 23, 2024
References Cited (165)
US 3694856A · Kaufman et al. · 1972 [cited by applicant]
US 5442704A · Holtey · 1995 [cited by applicant]
US 6947556B1 · Matyas, Jr. et al. · 2005 [cited by applicant]
US 7356659B2 · Kobayashi et al. · 2008 [cited by applicant]
US 8145855B2 · Wan et al. · 2012 [cited by applicant]
US 8290150B2 · Erhart et al. · 2012 [cited by applicant]
US 8391070B2 · Bathul et al. · 2013 [cited by applicant]
US 8448256B2 · Borchert et al. · 2013 [cited by applicant]
US 8694856B2 · Tuyls et al. · 2014 [cited by applicant]
US 8711626B2 · Lee · 2014 [cited by applicant]
US 8819409B2 · Kuipers et al. · 2014 [cited by applicant]
US 8933516B1 · Wu et al. · 2015 [cited by applicant]
US 8971527B2 · BrightSky et al. · 2015 [cited by applicant]
US 8995169B1 · Bandyopadhyay et al. · 2015 [cited by applicant]
US 9001554B2 · Hashim et al. · 2015 [cited by applicant]
US 9071446B2 · Kreft · 2015 [cited by applicant]
US 9082514B1 · Trimberger · 2015 [cited by applicant]
US 9093128B2 · Otterstedt et al. · 2015 [cited by applicant]
US 9158906B2 · Guajardo Merchan et al. · 2015 [cited by applicant]
US 9171144B2 · Lewis et al. · 2015 [cited by applicant]
US 9218477B2 · Lewis et al. · 2015 [cited by applicant]
US 9245925B1 · Lee et al. · 2016 [cited by applicant]
US 9298946B2 · Zhu et al. · 2016 [cited by applicant]
US 9324436B2 · Kim et al. · 2016 [cited by applicant]
US 9343135B2 · Zhu et al. · 2016 [cited by applicant]
US 9368207B2 · Bandyopadhyay et al. · 2016 [cited by applicant]
US 9391772B2 · Suzuki · 2016 [cited by applicant]
US 9396357B2 · Van Der Leest et al. · 2016 [cited by applicant]
US 9407437B1 · Campagna · 2016 [cited by applicant]
US 9448874B2 · Kim et al. · 2016 [cited by applicant]
US 9455022B2 · Yabuuchi et al. · 2016 [cited by applicant]
US 9455403B1 · Lai et al. · 2016 [cited by applicant]
US 9461826B2 · Kreft · 2016 [cited by applicant]
US 9485094B1 · Parvarandeh et al. · 2016 [cited by applicant]
US 9536581B2 · Katoh et al. · 2017 [cited by applicant]
US 9548113B2 · Yoshimoto et al. · 2017 [cited by applicant]
US 9558358B2 · Aissi et al. · 2017 [cited by applicant]
US 9588908B2 · Cambou · 2017 [cited by applicant]
US 9646178B2 · Kan · 2017 [cited by applicant]
US 9653161B2 · Yoshimoto et al. · 2017 [cited by applicant]
US 9686248B2 · Dover · 2017 [cited by applicant]
US 9787480B2 · Guo et al. · 2017 [cited by applicant]
US 9811689B1 · Tseng et al. · 2017 [cited by applicant]
US 9870829B2 · Park et al. · 2018 [cited by applicant]
US 9966467B2 · Watanabe · 2018 [cited by applicant]
US 9985791B2 · Cambou · 2018 [cited by applicant]
US 10097348B2 · Kara-Ivanov et al. · 2018 [cited by applicant]
US 10311930B1 · Kim et al. · 2019 [cited by applicant]
US 10404478B2 · Hung et al. · 2019 [cited by applicant]
US 10469271B2 · Hung et al. · 2019 [cited by applicant]
US 10649735B2 · Chen et al. · 2020 [cited by applicant]
US 10680809B2 · Chang et al. · 2020 [cited by applicant]
US 10715340B2 · Hung et al. · 2020 [cited by applicant]
US 10749695B2 · Hung et al. · 2020 [cited by applicant]
US 10855477B2 · Hung et al. · 2020 [cited by applicant]
US 10911229B2 · Hung et al. · 2021 [cited by applicant]
US 11380379B2 · Chang et al. · 2022 [cited by applicant]
US 11601269B2 · Hung et al. · 2023 [cited by applicant]
US 11763867B2 · Chang et al. · 2023 [cited by applicant]
US 11895236B2 · Hung et al. · 2024 [cited by applicant]
US 20020024453A1 · Maeda · 2002 [cited by applicant]
US 20060221686A1 · Devadas et al. · 2006 [cited by applicant]
US 20070044139A1 · Tuyls et al. · 2007 [cited by applicant]
US 20080260152A1 · Skoric et al. · 2008 [cited by applicant]
US 20080279373A1 · Erhart et al. · 2008 [cited by applicant]
US 20090165086A1 · Trichina et al. · 2009 [cited by applicant]
US 20090249014A1 · Obereiner et al. · 2009 [cited by applicant]
US 20120131340A1 · Teuwen · 2012 [cited by examiner]
US 20120179952A1 · Tuyls et al. · 2012 [cited by applicant]
US 20130051552A1 · Handschuh et al. · 2013 [cited by applicant]
US 20130138710A1 · Yamamoto et al. · 2013 [cited by applicant]
US 20140091832A1 · Gotze · 2014 [cited by examiner]
US 20140126306A1 · Otterstedt et al. · 2014 [cited by applicant]
US 20140137266A1 · Chang · 2014 [cited by applicant]
US 20140140513A1 · BrightSky et al. · 2014 [cited by applicant]
US 20140185795A1 · Gotze · 2014 [cited by examiner]
US 20140189365A1 · Cox · 2014 [cited by examiner]
US 20140189890A1 · Koeberl et al. · 2014 [cited by applicant]
US 20140225639A1 · Guo et al. · 2014 [cited by applicant]
US 20150012737A1 · Newell · 2015 [cited by examiner]
US 20150055417A1 · Kim et al. · 2015 [cited by applicant]
US 20150058928A1 · Guo et al. · 2015 [cited by applicant]
US 20150070979A1 · Zhu et al. · 2015 [cited by applicant]
US 20150071432A1 · Zhu et al. · 2015 [cited by applicant]
US 20150074157A1 · Yu et al. · 2015 [cited by applicant]
US 20150074433A1 · Zhu et al. · 2015 [cited by applicant]
US 20150091747A1 · Watanabe · 2015 [cited by applicant]
US 20150092939A1 · Gotze · 2015 [cited by examiner]
US 20150143130A1 · Ducharme et al. · 2015 [cited by applicant]
US 20150154421A1 · Feng et al. · 2015 [cited by applicant]
US 20150169247A1 · Wang et al. · 2015 [cited by applicant]
US 20150171870A1 · Parker · 2015 [cited by applicant]
US 20150234751A1 · Van Der Sluis et al. · 2015 [cited by applicant]
US 20150242158A1 · Hung et al. · 2015 [cited by applicant]
US 20150278551A1 · Iyer et al. · 2015 [cited by applicant]
US 20150286914A1 · Kulikovska et al. · 2015 [cited by applicant]
US 20150317257A1 · Seol et al. · 2015 [cited by applicant]
US 20160028544A1 · Hyde et al. · 2016 [cited by applicant]
US 20160093393A1 · Park et al. · 2016 [cited by applicant]
US 20160103625A1 · Fujimoto et al. · 2016 [cited by applicant]
US 20160148664A1 · Katoh et al. · 2016 [cited by applicant]
US 20160148679A1 · Yoshimoto et al. · 2016 [cited by applicant]
US 20160148680A1 · Yoshimoto et al. · 2016 [cited by applicant]
US 20160156476A1 · Lee et al. · 2016 [cited by applicant]
US 20160218146A1 · Lee et al. · 2016 [cited by applicant]
US 20160284413A1 · Chang · 2016 [cited by applicant]
US 20160301534A1 · Chen · 2016 [cited by applicant]
US 20160323096A1 · Kara-Ivanov · 2016 [cited by examiner]
US 20160328578A1 · Plusquellic et al. · 2016 [cited by applicant]
US 20160364583A1 · Benoit et al. · 2016 [cited by applicant]
US 20170046129A1 · Cambou · 2017 [cited by applicant]
US 20170048072A1 · Cambou · 2017 [cited by applicant]
US 20170053708A1 · Wong et al. · 2017 [cited by applicant]
US 20170126414A1 · Goel et al. · 2017 [cited by applicant]
US 20170279606A1 · Kara-Ivanov et al. · 2017 [cited by applicant]
US 20170346644A1 · Cambou · 2017 [cited by applicant]
US 20180039581A1 · Hung et al. · 2018 [cited by applicant]
US 20180039784A1 · Hung et al. · 2018 [cited by applicant]
US 20180040356A1 · Hung et al. · 2018 [cited by applicant]
US 20180091293A1 · Suresh · 2018 [cited by examiner]
US 20180123808A1 · Hung et al. · 2018 [cited by applicant]
US 20180176012A1 · Hung et al. · 2018 [cited by applicant]
US 20180183613A1 · Dafali · 2018 [cited by examiner]
US 20180191512A1 · Tomishima · 2018 [cited by examiner]
US 20180278418A1 · Chang et al. · 2018 [cited by applicant]
US 20190384938A1 · Gu et al. · 2019 [cited by applicant]
US 20200186339A1 · Hung et al. · 2020 [cited by applicant]
US 20210306148A1 · Lu et al. · 2021 [cited by applicant]
CN 104836669A · 2015 [cited by applicant]
CN 105007285A · 2015 [cited by applicant]
CN 103583013B · 2016 [cited by applicant]
CN 105493191A · 2016 [cited by applicant]
CN 105518786A · 2016 [cited by applicant]
CN 105518787A · 2016 [cited by applicant]
CN 105632543A · 2016 [cited by applicant]
CN 104518780B · 2017 [cited by applicant]
CN 105528560B · 2018 [cited by applicant]
CN 105474167B · 2018 [cited by applicant]
EP 2911086A1 · 2015 [cited by applicant]
TW 200913627A · 2009 [cited by applicant]
TW 201015554A · 2010 [cited by applicant]
TW 201419029A · 2014 [cited by applicant]
TW 201500963A · 2015 [cited by applicant]
TW 201512893A · 2015 [cited by applicant]
TW I693530B · 2020 [cited by applicant]
WO 2009002599A2 · 2008 [cited by applicant]
WO 2010035202A1 · 2010 [cited by applicant]
WO 2014076151A1 · 2014 [cited by applicant]
WO 2015035033A1 · 2015 [cited by applicant]
WO 2015105687A1 · 2015 [cited by applicant]
WO 2015134037A1 · 2015 [cited by applicant]
“Operational Amplifier,” Wikipedia definition, downloaded Jan. 30, 2019, 23 pages. [cited by applicant]
Federal Information Processing Standards Publication 140-2 (Supercedes FIPS Pub 140-1, Jan. 11, 1994), “Security Requirements for Cryptographic Modules,”, Dec. 3, 2002, 69 pages. [cited by applicant]
Federal Information Processing Standards Publication 197, Announcing the Advanced Encryption Standard (AES), Nov. 26, 2001, 51 pages. [cited by applicant]
Fischer, “A Closer Look at Security in Random Number Generators Design,” Int'l Workshop on Constructive Side-Channel Analysis and Secure Design COSADE, May 3-4, 2012, pp. 167-182. [cited by applicant]
Haahr, “Introduction to Randomness and Random Numbers,” random.org, https://www.random.org/randomness/, downloaded on Jul. 26, 2017, 4 pages. [cited by applicant]
Herder et al. “Physical Unclonable Functions and Applications: A Tutorial,” Proceedings of the IEEE | vol. 102, No. 8, Aug. 2014, pp. 1126-1141. [cited by applicant]
NIST Special Publication 800-38D, Dworkin, “Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC,” Nov. 2007, 39 pages. [cited by applicant]
NIST Special Publication 800-90A, Barker et al., “Recommendation for Random Number Generation Uing Deterministic Random Bit Generators,” Jan. 2012, 136 pages. [cited by applicant]
Ruhrmair, et al. “PUFs at a Glance,” Proceedings of the conference on Design, Automation & Test in Europe Article No. 347, Dresden, Germany—Mar. 24-28, 2014, 6 pages. [cited by applicant]
Texas Instruments Data Sheet bq26100 SHA-1/HMAC Based Security and Authentication IC with SDQ Interface, Jun. 2006, revised Aug. 205; 29 pages. [cited by applicant]
Tiri et al. “A Digital Design Flow for Secure Integration Circuits,” IEEE Trans. on Computer-Aided Design of Integrated Circuits and Systems, vol. 25, No. 7, Jul. 2006, 12 pages. [cited by applicant]
Xu et al, “Reliable Physical Unclonable Functions Using Data Retention Voltage of SRAM Cells,” IEEE Trans. on Computer-Aided Design of ICs and Systems, vol. 34, No. 6, Jun. 2015, 903-914. [cited by applicant]
Yoshimoto, et al., “A ReRAM-based physically unclonable function with bit error rate < 0.5% after 10 years at 125° C. for 40nm embedded application,” 2016 IEEE Symposium on VLSI Technology, Honolulu, HI, Jun. 14-16, 201… [cited by applicant]
Zhang et al., “TrustTokenF: a Generic Security Framework for Mobile Two-factor Authentication Using TrustZone,” IEEE Trustcom/BigDataSE/ISPA, Aug. 20, 2015, pp. 41-48. [cited by applicant]