Coherence-based attack detection
US-12147528-B2 · Nov 19, 2024 · US
US9773111B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9773111-B2 |
| Application number | US-201213825272-A |
| Country | US |
| Kind code | B2 |
| Filing date | Aug 14, 2012 |
| Priority date | Aug 14, 2012 |
| Publication date | Sep 26, 2017 |
| Grant date | Sep 26, 2017 |
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.
Technologies for preventing software-based side-channel attacks are generally disclosed. In some examples, a computing device may receive a cryptographic program having one or more programming instructions for performing a key handling operation and may add one or more programming instructions for performing an anti-attack operation to the one or more programming instructions for performing the key handling operation. The computing device may transmit the resulting cryptographic program with the anti-attack operation to an execution device. The execution device, such as a cloud computing system, may execute the cryptographic program, thereby causing execution of the anti-attack operation. The execution of cryptographic program may prevent a side-channel attack by masking the number of key performance events that occur.
Opening claim text (preview).
What is claimed is: 1. A method, comprising: receiving, by a first device comprising a processor, a cryptographic program from a second device in communication with the first device via a first network device, wherein the cryptographic program comprises a programming instruction for performing a key handling operation comprising a number of memory accesses; generating, by the first device, a modified cryptographic program by adding a different programming instruction for performing an anti-attack operation to the programming instruction for performing the key handling operation, wherein the anti-attack operation is a set of memory access operations performed separately from the key handling operation; and transmitting, by the first device, the modified cryptographic program with the anti-attack operation to a server device to facilitate generation of a random number of memory accesses in response to execution of the modified cryptographic program by the server device, wherein the random number of memory accesses is different than the number of memory accesses, and wherein the server device is different from the second device and is in communication with the first device via the first network device or a second network device. 2. The method of claim 1 , wherein the different programming instruction for performing the anti-attack operation is configured to, in response to being executed, cause a key performance event to occur on the server device. 3. The method of claim 2 , wherein the key performance event comprises a cache miss. 4. The method of claim 2 , wherein the key performance event comprises a taken branch event. 5. The method of claim 2 , wherein the key performance event comprises a fault event. 6. The method of claim 2 , wherein key performance events, comprising the key performance event, occur on the server device, and wherein the key performance events comprise a random number of events. 7. The method of claim 2 , wherein key performance events, comprising the key performance event, occur on the server device, and wherein the key performance events comprise a first number of events greater than a second number of events that occur as a result of executing the programming instruction for performing the key handling operation. 8. A method, comprising: receiving, by a network device comprising a processor, a cryptographic program comprising a programming instruction to perform a key handling operation that includes an anti-attack operation, wherein the receiving comprises receiving the cryptographic program from a device in communication with the network device via another network device, and wherein at least a portion of the cryptographic program is generated by another device that is different from the device; and executing, by the network device, the cryptographic program, comprising executing the anti-attack operation and causing key performance events to occur in response to the executing the cryptographic program by the network device, wherein the anti-attack operation is a memory access operation performed separately from the cryptographic program, and wherein the key handling operation comprises a different number of memory accesses from a previous version of the key handling operation. 9. The method of claim 8 , wherein the key performance events comprise cache misses. 10. The method of claim 8 , wherein the key performance events comprise branch predictor events. 11. The method of claim 8 , wherein the key performance events comprise fault events. 12. The method of claim 8 , wherein the key performance events comprise a random number of events. 13. The method of claim 8 , wherein the key performance events comprise a pseudorandom number of events. 14. The method of claim 8 , wherein at least a subset of the key performance events result from executing the anti-attack operation. 15. The method of claim 8 , further comprising: identifying, by the network device, a key performance event of the key performance events, in response to the executing the cryptographic program; and incrementing a performance counter, in response to the identifying the key performance event. 16. The method of claim 15 , wherein the performance counter comprises a cache miss counter. 17. The method of claim 15 , wherein the performance counter comprises a taken branch counter. 18. The method of claim 15 , wherein the performance counter comprises a fault counter. 19. A computer-readable storage device comprising instructions that, in response to execution, cause a system comprising a processor to perform operations, comprising: receiving, via a network device, encrypted information from a device; executing a process to decrypt the encrypted information, wherein the process comprises an anti-attack operation, and wherein the execution of the process causes key performance events to occur; and transmitting a cryptographic program associated with the process to an execution device that is different from the device and is in communication with the system via the network device or another network device, wherein the cryptographic program is transmitted to the execution device to facilitate execution of the cryptographic program by the execution device and generation of a different number of memory access operations than a previous version of the cryptographic program. 20. The computer-readable storage device of claim 19 , wherein the key performance events comprise cache misses. 21. The computer-readable storage device of claim 19 , wherein the key performance events comprise taken branches. 22. The computer-readable storage device of claim 19 , wherein the key performance events comprise faults. 23. The computer-readable storage device of claim 19 , wherein the key performance events comprise a random number of events. 24. The computer-readable storage device of claim 19 , wherein the key performance events comprise a pseudorandom number of events. 25. The computer-readable storage device of claim 19 , wherein at least three key performance events of the key performance events result from the execution of the anti-attack operation. 26. The computer-readable storage device of claim 19 , wherein the operations further comprise: identification of one or more key performance events of the key performance events in response to execution of the cryptographic program; and increment a performance counter in response to the identification of the one or more key performance events. 27. The computer-readable storage device of claim 26 , wherein the performance counter comprises a cache miss counter. 28. The computer-readable storage device of claim 26 , wherein the performance counter comprises a taken branch counter. 29. The computer-readable storage device of claim 26 , wherein the performance counter comprises a fault counter. 30. A system, comprising: a memory to store instructions; and a processor, coupled to the memory, that executes or facilitates execution of the instructions to at least receive, from a first device, a program that comprises a programming instruction associated with a key handling operation, add a different programming instruction associated with an anti-attack operation to the programming instruction to generate a modified program, and transmit the modified program with the anti-attack operation to a secon
Countermeasures against attacks on cryptographic mechanisms (network architectures or network communication protocols for protection against malicious traffic H04L63/1441) · CPC title
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
Physics · mapped topic
Test or assess software · CPC title
Secure firmware programming, e.g. of basic input output system [BIOS] · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.