Non-Volatile Memory Checksum Verification for Smart Cards
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The verification of programmed data on smart cards can be time-consuming due to the need for direct comparison of data stored in secure data storage, which limits operation performance and increases the risk of tampered data being programmed.
Innovation Solution
A method involving transferring program data to a page buffer of non-volatile memory, calculating checksum values, and comparing these values to determine if the data has been tampered, with a control unit managing the process to prevent external attacks and ensure data integrity.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If data is verified by direct comparison in secure data storage, then data integrity is ensured, but verification time increases and operation performance decreases
Solution Approach 1:
The patent applies preliminary action by calculating checksum values during the program operation phase before data is fully written to secure storage. The control unit calculates a first checksum value for program data in the page buffer before writing, and a second checksum value after writing, enabling verification without requiring time-consuming direct comparison operations during subsequent read operations.
Solution Approach 2:
The patent uses copying by creating checksum copies of the program data rather than copying the entire data for verification. The control unit calculates checksum values based on the program data in the page buffer, which serves as a condensed representation of the data integrity, avoiding the need to copy and compare entire data blocks during verification operations.
2Reliability
If verification operation is performed after program data is written, then data integrity can be checked, but the verification process is time-consuming and limits operation performance
Solution Approach 1:
The patent performs verification actions preliminarily during the program operation itself. The control unit calculates checksum values for program data in the page buffer before the data is written to secure storage, and compares these checksum values after writing to verify integrity. This eliminates the need for separate, time-consuming verification operations after the program completes.
Solution Approach 2:
The patent maintains continuity of useful action by integrating verification into the program operation flow itself. The control unit continuously monitors program data in the page buffer, calculates checksum values during the write process, and performs verification comparisons as part of the same operational sequence, eliminating idle verification time between operations.
3Productivity
If checksum calculation is performed on program data in page buffer, then verification efficiency is improved, but additional processing steps are required
Solution Approach 1:
The patent applies self-service by having the control unit automatically calculate and compare checksum values as part of its inherent control functions. The control unit calculates a first checksum value for program data in the page buffer before writing, and a second checksum value after writing, then automatically compares these values to verify integrity without requiring external verification systems or additional complex processing hardware.
Solution Approach 2:
The patent uses parameter changes by transforming the verification process from binary data comparison to numerical checksum comparison. Instead of comparing entire data blocks directly, the system converts program data into checksum values (first and second checksum values) that can be efficiently calculated and compared, changing the verification parameter from data integrity bits to numerical integrity values.
Data Source
AI summary
A method of verifying programming of an integrated circuit card includes transferring program data to a page buffer of a non-volatile memory, copying the program data to a buffer memory, calculating a first checksum value with respect to program data in the buffer memory, updating the program data in the buffer memory by copying the program data of the page buffer to the buffer memory, calculating a second checksum value with respect to updated program data in the buffer memory, comparing the first checksum value and the second checksum value, and determining, based on the comparison result, whether the program data of the page buffer is tampered.


