Movatterモバイル変換


[0]ホーム

URL:


US20020108045A1 - Preventing unauthorized updates to a non-volatile memory - Google Patents

Preventing unauthorized updates to a non-volatile memory
Download PDF

Info

Publication number
US20020108045A1
US20020108045A1US10/113,506US11350602AUS2002108045A1US 20020108045 A1US20020108045 A1US 20020108045A1US 11350602 AUS11350602 AUS 11350602AUS 2002108045 A1US2002108045 A1US 2002108045A1
Authority
US
United States
Prior art keywords
sequence
values
encoded
circuitry
memory device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US10/113,506
Inventor
Steve Wells
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by IndividualfiledCriticalIndividual
Priority to US10/113,506priorityCriticalpatent/US20020108045A1/en
Publication of US20020108045A1publicationCriticalpatent/US20020108045A1/en
Abandonedlegal-statusCriticalCurrent

Links

Images

Classifications

Definitions

Landscapes

Abstract

An apparatus and method for preventing unauthorized updates to a non-volatile memory. A sequence of encoded values is received in a non-volatile memory device and decoded by a decoding circuit in the non-volatile memory device to generate a sequence of decoded values. The sequence of decoded values is stored in the non-volatile memory device.

Description

Claims (53)

What is claimed is:
1. A method comprising the steps of:
receiving a sequence of encoded values in a non-volatile memory device;
decoding the sequence of encoded values in a decoding circuit within the non-volatile memory device to generate a sequence of decoded values; and
storing the sequence of decoded values in the non-volatile memory device.
2. The method ofclaim 1 further comprising the step of encoding a sequence of processor instructions to generate the sequence of encoded values.
3. The method ofclaim 2 wherein the step of encoding a sequence of processor instructions includes the step of encoding Basic Input/Output Services (BIOS) program code, the BIOS program code including program code for booting a computer system.
4. The method ofclaim 2 wherein the step of encoding a sequence of processor instructions includes the step of logically combining the sequence of processor instructions with a sequence of values generated by a first sequence generator.
5. The method ofclaim 4 wherein the step of logically combining includes the step of combining the sequence of processor instructions with the sequence of values generated by the sequence generator in one or more exclusive OR operations.
6. The method ofclaim 4 wherein the step of decoding the sequence of encoded values includes the step of logically combining the sequence of encoded values with a sequence of values generated by a second sequence generator.
7. The method ofclaim 6 wherein the sequence of values generated by the second sequence generator is the same as the sequence of values generated by the first sequence generator.
8. The method ofclaim 1 wherein the non-volatile memory device is an electrically erasable, programmable read-only memory (EEPROM).
9. The method ofclaim 8 wherein the EEPROM is a flash EEPROM.
10. A non-volatile memory device comprising:
storage elements;
writing circuitry to receive encoded data from a data path and to store the data in the storage elements; and
decoding circuitry coupled to the writing circuitry to decode the encoded data received from the data path before the writing circuitry stores the data in the storage elements.
11. The non-volatile memory device ofclaim 10 wherein the decoding circuitry includes:
a sequence generator to generate a sequence of values; and
logic to combine the sequence of values with the encoded data to decode the encoded data.
12. The non-volatile memory device ofclaim 11 wherein the sequence generator is a pseudo-random sequence generator.
13. The non-volatile memory device ofclaim 11 wherein the logic to combine the sequence of values includes logic to combine the sequence of values with the encoded data received from the data path in one or more exclusive OR operations.
14. The non-volatile memory device ofclaim 10 wherein the encoded data is encoded program code.
15. The non-volatile memory device ofclaim 10 wherein the non-volatile memory device is a flash electrically erasable, programmable read-only memory (flash EPROM).
16. An apparatus comprising:
storage means for storing data;
writing means for receiving encoded data from a data path and storing the data in the storage means; and
decoding means coupled to the writing means for decoding the data received from the data path before the writing means stores the data in the storage means.
17. The apparatus ofclaim 16 wherein the decoding means includes:
means for generating a sequence of values; and
means for combining the sequence of values with the encoded data to decode the encoded data.
18. A computer system comprising:
a processor;
a datapath coupled to the processor and
a flash electrically erasable, programmable read-only memory (flash EPROM) coupled to the datapath, the flash EPROM including
storage elements,
writing circuitry to receive encoded data from the processor via the data path and to store the data in the storage elements, and
decoding circuitry coupled to the writing circuitry to decode the encoded data received from the processor before the writing circuitry stores the data in the storage elements.
19. The computer system ofclaim 18 wherein the decoding circuitry includes:
a sequence generator to generate a sequence of values; and
logic to combine the sequence of values with the encoded data to decode the encoded data.
20. A method comprising the steps of:
storing a sequence of encoded values in storage elements of a non-volatile memory device;
retrieving the encoded sequence of values from the storage elements in response to a read request;
decoding the encoded sequence of values in a decoding circuit within the non-volatile memory device to generate a sequence of decoded values; and
outputting the sequence of decoded values.
21. A non-volatile memory device comprising: storage elements;
reading circuitry to retrieve encoded data from the storage elements and to output the data on a data path; and
decoding circuitry coupled to the reading circuitry to decode the encoded data retrieved from the storage elements before the reading circuitry outputs the data on the data path.
22. A method comprising:
receiving an encoded sequence of values by a non-volatile memory device;
storing the encoded sequence of values in the non-volatile memory device; and
decoding the stored encoded sequence of values by the non-volatile memory device.
23. The method ofclaim 22, wherein the receiving comprises receiving encoded program code.
24. The method ofclaim 22, wherein the receiving comprises receiving encoded basic input/output system (BIOS) program code.
25. The method ofclaim 22, comprising encoding a sequence of values to generate the encoded sequence of values.
26. The method ofclaim 25, wherein the encoding comprises combining the sequence of values and another sequence of values.
27. The method ofclaim 26, wherein the combining comprises performing an exclusive-OR operation.
28. The method ofclaim 22, wherein the decoding comprises combining values of the stored encoded sequence of values and another sequence of values.
29. The method ofclaim 28, wherein the combining comprises performing an exclusive-OR operation.
30. The method ofclaim 22, wherein the decoding comprises combining values of the stored encoded sequence of values and another sequence of values used to generate the stored encoded sequence of values.
31. The method ofclaim 22, wherein the decoding comprises retrieving the stored encoded sequence of values in response to a read request and decoding the retrieved encoded sequence of values.
32. The method ofclaim 22, wherein the non-volatile memory device comprises an electrically erasable, programmable read-only memory (EEPROM) device.
33. The method ofclaim 22, wherein the non-volatile memory device comprises a flash electrically erasable, programmable read-only memory (EEPROM) device.
34. An apparatus comprising:
non-volatile storage elements;
circuitry to store an encoded sequence of values in the non-volatile storage elements; and
circuitry to decode the stored encoded sequence of values.
35. The apparatus ofclaim 34, wherein the encoded sequence of values comprises encoded program code.
36. The apparatus ofclaim 34, wherein the encoded sequence of values comprises encoded basic input/output system (BIOS) program code.
37. The apparatus ofclaim 34, wherein the circuitry to decode comprises a sequence generator to generate another sequence of values and circuitry to combine the generated sequence of values and values of the stored encoded sequence of values.
38. The apparatus ofclaim 37, wherein the sequence generator comprises a pseudo-random sequence generator.
39. The apparatus ofclaim 37, wherein the circuitry to combine comprises an exclusive-OR gate.
40. The apparatus ofclaim 37, the sequence generator to generate another sequence of values used to generate the encoded sequence of values.
41. The apparatus ofclaim 34, comprising circuitry to retrieve the stored encoded sequence of values from the non-volatile storage elements in response to a read request.
42. The apparatus ofclaim 34, wherein the non-volatile storage elements comprise electrically erasable, programmable read-only memory (EEPROM) storage elements.
43. The apparatus ofclaim 34, wherein the non-volatile storage elements comprise flash electrically erasable, programmable read-only memory (EEPROM) storage elements.
44. A system comprising:
a processor;
a datapath coupled to the processor; and
a non-volatile memory device coupled to the datapath, the non-volatile memory device comprising non-volatile storage elements, circuitry to store in the non-volatile storage elements an encoded sequence of values received from the processor, and circuitry to decode the stored encoded sequence of values.
45. The system ofclaim 44, wherein the encoded sequence of values comprises encoded program code.
46. The system ofclaim 44, wherein the encoded sequence of values comprises encoded basic input/output system (BIOS) program code.
47. The system ofclaim 44, wherein the circuitry to decode comprises a sequence generator to generate another sequence of values and circuitry to combine the generated sequence of values and values of the stored encoded sequence of values.
48. The system ofclaim 47, wherein the sequence generator comprises a pseudo-random sequence generator.
49. The system ofclaim 47, wherein the circuitry to combine comprises an exclusive-OR gate.
50. The system ofclaim 47, the sequence generator to generate another sequence of values used to generate the encoded sequence of values.
51. The system ofclaim 44, comprising circuitry to retrieve the stored encoded sequence of values from the non-volatile storage elements in response to a read request.
52. The system ofclaim 44, wherein the non-volatile storage elements comprise electrically erasable, programmable read-only memory (EEPROM) storage elements.
53. The system ofclaim 44, wherein the non-volatile storage elements comprise flash electrically erasable, programmable read-only memory (EEPROM) storage elements.
US10/113,5061999-01-222002-03-29Preventing unauthorized updates to a non-volatile memoryAbandonedUS20020108045A1 (en)

Priority Applications (1)

Application NumberPriority DateFiling DateTitle
US10/113,506US20020108045A1 (en)1999-01-222002-03-29Preventing unauthorized updates to a non-volatile memory

Applications Claiming Priority (2)

Application NumberPriority DateFiling DateTitle
US09/235,959US6408387B1 (en)1999-01-221999-01-22Preventing unauthorized updates to a non-volatile memory
US10/113,506US20020108045A1 (en)1999-01-222002-03-29Preventing unauthorized updates to a non-volatile memory

Related Parent Applications (1)

Application NumberTitlePriority DateFiling Date
US09/235,959DivisionUS6408387B1 (en)1999-01-221999-01-22Preventing unauthorized updates to a non-volatile memory

Publications (1)

Publication NumberPublication Date
US20020108045A1true US20020108045A1 (en)2002-08-08

Family

ID=22887562

Family Applications (2)

Application NumberTitlePriority DateFiling Date
US09/235,959Expired - LifetimeUS6408387B1 (en)1999-01-221999-01-22Preventing unauthorized updates to a non-volatile memory
US10/113,506AbandonedUS20020108045A1 (en)1999-01-222002-03-29Preventing unauthorized updates to a non-volatile memory

Family Applications Before (1)

Application NumberTitlePriority DateFiling Date
US09/235,959Expired - LifetimeUS6408387B1 (en)1999-01-221999-01-22Preventing unauthorized updates to a non-volatile memory

Country Status (1)

CountryLink
US (2)US6408387B1 (en)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US20030200454A1 (en)*2002-04-182003-10-23International Business Machines CorporationInitializing, maintaining, updating and recovering secure operation within an integrated system employing a data access control function
US20060212858A1 (en)*2005-03-152006-09-21Mitsuhisa KameiComputer readable medium on which is stored a program for preventing the unauthorized use of program data
US20080175381A1 (en)*2004-07-152008-07-24International Business Machines CorporationE-fuses for storing security version data
US20090125985A1 (en)*2007-11-142009-05-14Traenkenschuh John LVerifying electronic control unit code
US20090126028A1 (en)*2007-11-142009-05-14Traenkenschuh John LSecuring electronic control unit code
US20120191901A1 (en)*2011-01-212012-07-26John Peter NorairMethod and apparatus for memory management
US8843693B2 (en)2011-05-172014-09-23SanDisk Technologies, Inc.Non-volatile memory and method with improved data scrambling
US8929961B2 (en)2011-07-152015-01-06Blackbird Technology Holdings, Inc.Protective case for adding wireless functionality to a handheld electronic device
US9166894B2 (en)2011-03-022015-10-20Blackbird Technology Holdings, Inc.Method and apparatus for rapid group synchronization
US9357425B2 (en)2010-10-062016-05-31Blackbird Technology Holdings, Inc.Method and apparatus for adaptive searching of distributed datasets
US9379808B2 (en)2010-10-062016-06-28Blackbird Technology Holdings, Inc.Method and apparatus for low-power, long-range networking
US9817641B1 (en)*2009-02-042017-11-14Sprint Communications Company L.P.Facilitating application development using protected components

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
TW452733B (en)*1999-11-262001-09-01Inventec CorpMethod for preventing BIOS from viruses infection
US6711675B1 (en)*2000-02-112004-03-23Intel CorporationProtected boot flow
US7039814B2 (en)*2001-03-072006-05-02Sony CorporationMethod for securing software via late stage processor instruction decryption
US20030135744A1 (en)*2002-01-112003-07-17International Business Machines CorporationMethod and system for programming a non-volatile device in a data processing system
US20050213768A1 (en)*2004-03-242005-09-29Durham David MShared cryptographic key in networks with an embedded agent
US7653727B2 (en)*2004-03-242010-01-26Intel CorporationCooperative embedded agents
US7594269B2 (en)*2004-10-292009-09-22Intel CorporationPlatform-based identification of host software circumvention
US7739517B2 (en)*2005-03-312010-06-15Intel CorporationHardware-based authentication of a software program
US7330328B2 (en)*2006-02-172008-02-12Seagate Technology LlcRandom number generation using back electromotive force (BEMF) values
WO2008071222A1 (en)*2006-12-152008-06-19Agere Systems Inc.Protecting a programmable memory against unauthorized modification
US8548263B2 (en)*2011-01-192013-10-01Microsoft CorporationDelayed image decoding

Citations (5)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US4694412A (en)*1982-09-221987-09-15Intel CorporationRandom number generator for use in an authenticated read-only memory
US5778070A (en)*1996-06-281998-07-07Intel CorporationMethod and apparatus for protecting flash memory
US5835594A (en)*1996-02-091998-11-10Intel CorporationMethods and apparatus for preventing unauthorized write access to a protected non-volatile storage
US5844986A (en)*1996-09-301998-12-01Intel CorporationSecure BIOS
US6026016A (en)*1998-05-112000-02-15Intel CorporationMethods and apparatus for hardware block locking in a nonvolatile memory

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US4525599A (en)*1982-05-211985-06-25General Computer CorporationSoftware protection methods and apparatus
US4562306A (en)*1983-09-141985-12-31Chou Wayne WMethod and apparatus for protecting computer software utilizing an active coded hardware device
US6028445A (en)*1997-12-302000-02-22Xilinx, Inc.Decoder structure and method for FPGA configuration

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US4694412A (en)*1982-09-221987-09-15Intel CorporationRandom number generator for use in an authenticated read-only memory
US5835594A (en)*1996-02-091998-11-10Intel CorporationMethods and apparatus for preventing unauthorized write access to a protected non-volatile storage
US5778070A (en)*1996-06-281998-07-07Intel CorporationMethod and apparatus for protecting flash memory
US5844986A (en)*1996-09-301998-12-01Intel CorporationSecure BIOS
US6026016A (en)*1998-05-112000-02-15Intel CorporationMethods and apparatus for hardware block locking in a nonvolatile memory

Cited By (24)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
WO2003090402A1 (en)*2002-04-182003-10-30International Business Machines CorporationInitializing, maintaining, updating and recovering secure operation within an integrated system employing a data access control function
US20040083375A1 (en)*2002-04-182004-04-29International Business Machines CorporationInitializing, maintaining, updating and recovering secure operation within an integrated system employing a data access control function
US6957335B2 (en)2002-04-182005-10-18International Business Machines CorporationInitializing, maintaining, updating and recovering secure operation within an integrated system employing a data access control function
US7356707B2 (en)*2002-04-182008-04-08International Business Machines CorporationInitializing, maintaining, updating and recovering secure operation within an integrated system employing a data access control function
US20030200454A1 (en)*2002-04-182003-10-23International Business Machines CorporationInitializing, maintaining, updating and recovering secure operation within an integrated system employing a data access control function
US20080175381A1 (en)*2004-07-152008-07-24International Business Machines CorporationE-fuses for storing security version data
US20080310622A1 (en)*2004-07-152008-12-18International Business MachinesE-fuses for storing security version data
US8042176B2 (en)*2005-03-152011-10-18Fuji Xerox Co., Ltd.Computer readable medium on which is stored a program for preventing the unauthorized use of program data
US20060212858A1 (en)*2005-03-152006-09-21Mitsuhisa KameiComputer readable medium on which is stored a program for preventing the unauthorized use of program data
US8321933B2 (en)*2007-11-142012-11-27Caterpillar Inc.Securing electronic control unit code
US20090126028A1 (en)*2007-11-142009-05-14Traenkenschuh John LSecuring electronic control unit code
US20090125985A1 (en)*2007-11-142009-05-14Traenkenschuh John LVerifying electronic control unit code
US8484752B2 (en)2007-11-142013-07-09Caterpillar Inc.Verifying authenticity of electronic control unit code
US9817641B1 (en)*2009-02-042017-11-14Sprint Communications Company L.P.Facilitating application development using protected components
US9357425B2 (en)2010-10-062016-05-31Blackbird Technology Holdings, Inc.Method and apparatus for adaptive searching of distributed datasets
US9379808B2 (en)2010-10-062016-06-28Blackbird Technology Holdings, Inc.Method and apparatus for low-power, long-range networking
US9104548B2 (en)*2011-01-212015-08-11Blackbird Technology Holdings, Inc.Method and apparatus for memory management
US20120191901A1 (en)*2011-01-212012-07-26John Peter NorairMethod and apparatus for memory management
US9166894B2 (en)2011-03-022015-10-20Blackbird Technology Holdings, Inc.Method and apparatus for rapid group synchronization
US9325634B2 (en)2011-03-022016-04-26Blackbird Technology Holdings, Inc.Method and apparatus for adaptive traffic management in a resource-constrained network
US9414342B2 (en)2011-03-022016-08-09Blackbird Technology Holdings, Inc.Method and apparatus for query-based congestion control
US8843693B2 (en)2011-05-172014-09-23SanDisk Technologies, Inc.Non-volatile memory and method with improved data scrambling
US8929961B2 (en)2011-07-152015-01-06Blackbird Technology Holdings, Inc.Protective case for adding wireless functionality to a handheld electronic device
US9425847B2 (en)2011-07-152016-08-23Blackbird Technology Holdings, Inc.Protective case for adding wireless functionality to a handheld electronic device

Also Published As

Publication numberPublication date
US6408387B1 (en)2002-06-18

Similar Documents

PublicationPublication DateTitle
US6408387B1 (en)Preventing unauthorized updates to a non-volatile memory
CN110502932B (en)Processing system, related integrated circuit and method
US9230122B2 (en)System and method for validating program execution at run-time using control flow signatures
US9223967B2 (en)System and method for validating program execution at run-time
US6160734A (en)Method for ensuring security of program data in one-time programmable memory
Castelluccia et al.On the difficulty of software-based attestation of embedded devices
EP2854066B1 (en)System and method for firmware integrity verification using multiple keys and OTP memory
US6223284B1 (en)Method and apparatus for remote ROM flashing and security management for a computer system
US8719595B2 (en)Semiconductor device including encryption section, semiconductor device including external interface, and content reproduction method
US20090204803A1 (en)Handling of secure storage key in always on domain
RU2541196C2 (en)Method of providing software integrity
WO1999059288A1 (en)A method and apparatus for hardware block locking in a nonvolatile memory
JP2002025278A (en) Semiconductor storage device
US20090193261A1 (en)Apparatus and method for authenticating a flash program
JP2003521034A (en) Microprocessor system and method of operating the same
US20170170969A1 (en)Systems, methods, software, and components using tamper-proof real-time clock
EP1465038B1 (en)Memory security device for flexible software environment
US20080086781A1 (en)Method and system for glitch protection in a secure system
US20090204801A1 (en)Mechanism for secure download of code to a locked system
US8397081B2 (en)Device and method for securing software
CN113626791A (en)Memory module authentication extensions
JP7160860B2 (en) System and method for correcting memory errors
CN112948863A (en)Sensitive data reading method and device, electronic equipment and storage medium
US20230400996A1 (en)Apparatus, Device, and Method for a Memory Controller, Memory Controller, and System
CN116203886A (en) A High Security Circuit Applied to FPGA

Legal Events

DateCodeTitleDescription
STCBInformation on status: application discontinuation

Free format text:ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION


[8]ページ先頭

©2009-2025 Movatter.jp