IP Library Granted Patent US 7,093,139
Granted Patent B2
US 7,093,139 · App. 10/203,564 · Granted Aug 15, 2006

Unauthorized modification of values stored in flash memory

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 7,093,139
App. No.
10/203,564
Granted
Aug 15, 2006
Kind
B2
Abstract

The invention is a method and system in which an authentication chip having secret information stored within it, including secret data stored in multi-level flash memory, is protected from unauthorized modification of values stored in the flash memory. The secret information is stored using an internal command and can only be accessed by one or more further commands. Secret data in the information is stored in intermediate states of the multilevel flash memory between the minimum and maximum voltage level states. A validity check is performed on secret data items before allowing them to be read out by a command accessing them. The validity check involves calculation of a checksum and comparison of the result with a checksum stored using the internal command as part of the secret information.

Claims (31)

1. In an authentication chip having secret information stored within it, including secret data stored in multi-level flash memory, the multi-level flash memory having invalid and valid (intermediate) voltage stages, a method of protecting the authentication chip from unauthorised modification of values stored in the flash memory, the method including the steps of:

using an internal command to store the secret information, including the secret data and a checksum for the data, where the secret information can only be accessed by one or more further commands;

storing the secret data in intermediate states of the multi-level flash memory between the minimum and maximum voltage level states;

performing a data validity check on secret data items before allowing the data items to be read out by a command accessing them, the validity check involving calculation of a checksum and comparison of the result with the checksum stored using the internal command.

2. The method according to claim 1 , including the further step of clearing the secret information in the event of the comparison indicating invalidity of the secret data items.

3. The method according to claim 1 , where the internal command is the only command that is able to store non-zero values for the secret information, and to set flags for use by the further commands, but it makes no other changes and has no outputs.

4. The method according to claim 1 , where the secret data includes one or more keys for encryption and decryption functions, and a seed value for a random number.

5. The method according to claim 4 , where the keys for the encryption and decryption functions have 160 bits each.

6. The method according to claim 1 , where a CLR command is the only command able to clear the secret information to zero values.

7. The method according to claim 1 , where the multi-level flash memory is a single floating gate holding more that one bit.

8. The method according to claim 7 , where the single floating gate is a four-state transistor having a minimum voltage representing 00, a maximum voltage representing 11 and two middle voltages representing 01 and 10, and the two middle voltages are used to represent a single bit and the two extremes are invalid states.

9. The method according to claim 1 , where the flash memory is covered by tamper prevention lines, tamper detection lines, or both.

10. The method according to claim 1 , where the checksum is a signature calculated from the secret data.

11. The method according to claim 10 , where the secret data includes two keys for encryption or decryption functions and the checksum is calculated as a signature combining them both.

12. The method according to claim 11 , where the checksum has the same length as one of the keys.

13. The method according to claim 11 , where the checksum has the length of both keys combined.

14. The method according to claim 11 , where the checksum is calculated by running the SHA-1 algorithm over the two keys.

15. An authentication system including a chip having secret information stored within it using an internal command, the secret information including secret data stored in multi-level flash memory, and a checksum for the data, wherein the secret information can only be accessed by one or more further commands, the secret data is stored in intermediate (valid) states of the multi-level flash memory between the minimum and maximum voltage level states which are invalid states, and a data validity check is performed on secret data items before allowing the data items to be read out by a command accessing them, the validity check involving calculation of a checksum and comparison of the result with the checksum stored using the internal command.

16. The system according to claim 15 , where the secret information is cleared in the event of the comparison indicating invalidity of the secret data items.

17. The system according to claim 15 , where the internal command is the only command that is able to store non-zero values for the secret information, and to set flags for use by the further commands, but it makes no other changes and has no outputs.

18. The system according to claim 15 , where the secret data includes one or more keys for encryption and decryption functions, and a seed value for a random number.

19. The system according to claim 18 , where the keys for the encryption and decryption functions have 160 bits each.

20. The system according to claim 15 , where a CLR command is the only command able to clear the secret information to zero values.

21. The system according to claim 15 , where the multi-level flash memory is a single floating gate holding more than one bit.

22. The system according to claim 21 , where the single floating gate is a four-state transistor having a minimum voltage representing 00, a maximum voltage representing 11 and two middle voltages representing 01 and 10, and the two middle voltages are used to represent a single bit and the two extremes are invalid states.

23. The system according to claim 15 , where the flash memory is covered by tamper prevention lines, tamper detection lines, or both.

24. The system according to claim 15 , where the checksum is a signature calculated from the secret data.

25. The system according to claim 24 , where the secret data includes two keys for encryption or decryption functions and the checksum is calculated as a signature combining them both.

26. The system according to claim 24 , where the checksum has the same length as one of the keys.

27. The system according to claim 24 , where the checksum has the length of both keys combined.

28. The system according to claim 24 , where the checksum is calculated by running the SHA-1 algorithm over the two keys.

Assignments (3)
CHANGE OF NAME Recorded Jun 25, 2014
From: ZAMTEC LIMITED
To: MEMJET TECHNOLOGY LIMITED
Reel/Frame 033244/0276 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 28, 2013
From: SILVERBROOK RESEARCH PTY. LIMITED
To: ZAMTEC LIMITED
Reel/Frame 031506/0621 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2003
From: SILVERBROOK, KIA; WALMSLEY, SIMON ROBERT
To: SILVERBROOK RESEARCH PTY. LTD.
Reel/Frame 014529/0771 →