Efficient modular addition resistant to side channel attacks
US-9544131-B2 · Jan 10, 2017 · US
US10354065B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10354065-B2 |
| Application number | US-201615333205-A |
| Country | US |
| Kind code | B2 |
| Filing date | Oct 25, 2016 |
| Priority date | Oct 27, 2015 |
| Publication date | Jul 16, 2019 |
| Grant date | Jul 16, 2019 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
According to one embodiment, a method for protecting data is provided comprising receiving a plurality of data symbols, determining a sequence of checksum symbols wherein the checksum symbols are determined to be equal to the checksum symbols of the last iteration of an iterative checksum symbol generation process, wherein the determining of the checksum symbols includes at least one of randomly generating the initial values, randomly determining an order of the data symbols in which the contributions of the data symbols to the checksum symbols are incorporated into the checksum symbols and masking each data symbol and using the masked data symbols as data symbols for determining the checksum symbols and which includes storing at least some of the checksum values as checksum for the data symbols.
Opening claim text (preview).
What is claimed is: 1. A method for protecting data comprising: receiving a plurality of data symbols; determining a sequence of checksum symbols wherein the checksum symbols are determined to be equal to the checksum symbols of the last iteration of an iterative checksum symbol generation process in which for the first iteration, the value of the first checksum symbol is given by an initial value of the first checksum symbol plus the value of the first data symbol, the value of each following checksum symbol is given by an initial value for the checksum symbol plus the value of the previous checksum symbol for the first iteration, for each following iteration, the value of each checksum symbol is given by the value of the checksum symbol for the previous iteration plus the value of the previous checksum symbol for the current iteration; wherein the determining of the checksum symbols comprises at least one of randomly generating the initial values; randomly determining an order of the data symbols in which the contributions of the data symbols to the checksum symbols are incorporated into the checksum symbols; masking each data symbol and using the masked data symbols as data symbols for determining the checksum symbols; and storing at least some of the checksum values as checksum for the data symbols; wherein, if determining the checksum symbols comprises randomly determining an order of the data symbols in which the contributions of the data symbols to the checksum symbols are incorporated into the checksum symbols, determining at least one of the checksum symbols further comprises determining, for each data symbol, in the randomly determined order of the data symbols, the contribution of the data symbol to the checksum symbol and accumulating the contributions of the data symbols to the checksum symbol to generate the value of the checksum symbol. 2. The method of claim 1 , further comprising: independently determining individual masks for the data symbols. 3. The method of claim 1 , wherein the masks are at least partially different for different data symbols. 4. The method of claim 1 , wherein the mask is the same mask for all data symbols. 5. The method of claim 1 , further comprising: removing the contribution of the mask to the checksum values. 6. The method of claim 1 , further comprising: for each checksum value, determining the contribution of the mask and subtracting the contribution of the mask to the checksum value from the checksum value. 7. The method of claim 1 , wherein determining comprises removing the contribution of the initial values to the checksum values. 8. The method of claim 1 , further comprising: for each checksum value, determining the contribution of the initial values and subtracting the contribution of the values to the checksum value from the checksum value. 9. The method of claim 1 , wherein the addition operation is an integer addition modulo a predetermined modulus. 10. The method of claim 1 , wherein the addition operation is over elements in the Galois field GF(q) of q elements. 11. The method of claim 1 , wherein the addition operation is the multiplication of elements in the Galois field GF(q) of q elements. 12. The method of claim 1 , wherein the number of iterations is equal to the number of data symbols. 13. The method of claim 1 , wherein randomly generating the initial values comprises randomly generating an initial value for each checksum symbol. 14. The method of claim 1 , further comprising: storing the checksum together with the data symbols. 15. The method of claim 14 , further comprising: reading the stored checksum and the data symbols and checking whether the checksum read is valid for the data symbols read. 16. The method of claim 15 , further comprising: computing a further checksum of received data, during or after their transmission, receiving the checksum and checking whether the computed further checksum is valid for the data symbols using the checksum. 17. The method of claim 15 , further comprising: computing a further checksum of received data, during or after their transmission, comparing the computed further checksum with the stored checksum and checking whether the computed further checksum is valid. 18. A data processing device, comprising: a receiver configured to receive a plurality of data symbols; an encoder configured to determine a sequence of checksum symbols wherein the checksum symbols are determined to be equal to the checksum symbols of the last iteration of an iterative checksum symbol generation process in which for the first iteration, the value of the first checksum symbol is given by an initial value of the first checksum symbol plus the value of the first data symbol, the value of each following checksum symbol is given by an initial value for the checksum symbol plus the value of the previous checksum symbol for the first iteration, for each following iteration, the value of each checksum symbol is given by the value of the checksum symbol for the previous iteration plus the value of the previous checksum symbol for the current iteration; wherein the encoder is configured to at least one of randomly generate the initial values; randomly determine an order of the data symbols in which it incorporates the contributions of the data symbols to the checksum symbols into the checksum symbols; mask each data symbol and using the masked data symbols as data symbols for determining the checksum symbols; and a memory configured to store at least some of the checksum values as checksum for the data symbols; wherein, if the encoder's determining the sequence of checksum symbols comprises randomly determining an order of the data symbols in which the contributions of the data symbols to the checksum symbols are incorporated into the checksum symbols, a determination of at least one of the checksum symbols further comprises determining, for each data symbol, in the randomly determined order of the data symbols, the contribution of the data symbol to the checksum symbol and accumulating the contributions of the data symbols to the checksum symbol to generate the value of the checksum symbol. 19. A method for protecting data comprising: receiving a plurality of data symbols; determining a sequence of checksum symbols wherein the checksum symbols are determined to be equal to the checksum symbols of the last iteration of an iterative checksum symbol generation process in which for the first iteration, the value of the first checksum symbol is given by an initial value of the first checksum symbol plus the value of the first data symbol, the value of each following checksum symbol is given by an initial value for the checksum symbol plus the value of the previous checksum symbol for the first iteration, for each following iteration, the value of each checksum symbol is given by the value of the checksum symbol for the previous iteration plus the value of the previous checksum symbol for the current iteration; wherein the determining of the checksum symbols comprises at least one of randomly generating the initial values; randomly determining an order of the data symbols in which the contributions of the data symbols to the checksum symbols are incorporated into the checksum symbols; masking each data symbol and using the masked data symbols as data symbols for determining the checksum symbols; and storing at least some of the checksum values as checksum for the data symbols
involving covert channels, i.e. data leakage between processes (inhibiting the analysis of circuitry or operation with measures against power attack G06F21/755) · CPC title
of operations, operands or results of the operations · CPC title
for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA] · CPC title
Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.