Patent ID: 8732480
Filing Date: 2014-05-20
Classification: G06F

Abstract:
1. A memory management device to which a memory is connected and which performs verification at reading of data stored in the memory and at writing of data to the memory, the device comprising: a first hardware storage configured to store therein a root secret value that is a secret value assigned to the memory; a second hardware storage configured to hold an upper counter value that is in common among a predetermined plurality of data pieces and lower counter values associated with the data pieces, respectively; an assignment engine configured to update counter values including the upper counter value and the lower counter values at writing of the data pieces to the memory and calculate data verification values; and a verification engine configured to perform a verification process of the data verification values at reading of the data pieces, wherein at writing of first data piece to the memory: the assignment engine increments a lower counter value associated with the first data piece each time the first data piece is written to the memory; when the lower counter value associated with the first data piece overflows, the assignment engine updates counter values associated with the first data piece by incrementing the upper counter value in common among the plurality of data pieces and resetting the lower counter value; the assignment engine calculates a first secret value for each data piece using the counter values associated with the first data piece and the root secret value, and calculates a first data verification value using the first data piece and the first secret value for each data piece; when the counter values associated with the first data piece are updated, the assignment engine recalculates the first secret value for each data piece using the updated counter values and the root secret value, and recalculates the first data verification value using the first data piece and the recalculated first secret value for each data piece; and the assignment engine writes the first data piece and the calculated first data verification value or the recalculated first data verification value to the memory, at reading of the first data piece from the memory: the verification engine reads the first data piece and the first calculated data verification value from the memory; when the first data piece and the first data verification value are read, the verification engine calculates a second secret value for each data piece using updated values of the counter values associated with the first data piece and the root secret value, and calculates a second data verification value using the read first data piece and the second secret value for each data piece; and the verification engine compares the read first data verification value and the second data verification value to perform verification of the read first data piece, and at writing of second data piece to the memory: when a lower counter value associated with the second data piece overflows, the assignment engine updates counter values associated with the second data piece by incrementing the upper counter value in common among the plurality of data pieces and resetting the lower counter value; the assignment engine calculates another first secret value for each data piece using the counter values associated with the second data piece and the root secret value, and calculates a second data verification value using the second data piece and the another first secret value for each data piece; and when the counter values associated with the second data piece are updated, the assignment engine recalculates the first secret value for each data piece using the updated counter values and the root secret value, and recalculates the first data verification value using the second data piece and the first secret value for each data piece, the assignment engine writes the second data piece and the calculated second data verification value or the recalculated first data verification value to the memory.