System and method for fast nested message authentication codes and error correction codes
View Patent ↗A system and method for detecting and correcting errors using an authentication mechanism is described. In particular, a reversible inner function is used in a nested message authentication code configuration to provide both error detection and error correction in high performance applications.
1. A method for detecting errors in a message comprising:
receiving at least one message data word and an authentication tag, said authentication tag produced from said at least one message data word according to a nested message authentication code having a reversible inner function;
processing said received at least one message data word according to said nested message authentication code to produce an authentication tag;
determining whether said produced authentication tag is the same as said received authentication tag;
wherein said receiving comprises receiving at least one message data word, an authentication tag, and an intermediate result from said reversible inner function.
2. The method of claim 1 , wherein said receiving comprises receiving an encrypted intermediate result from said reversible inner function.
3. The method of claim 2 , further comprising decrypting said encrypted intermediate result if said produced authentication tag is not the same as said received authentication tag.
4. The method of claim 2 , wherein said processing comprises processing said received at least one message data word according to said nested message authentication code to produce an authentication tag and an intermediate result from said reversible inner function.
5. The method of claim 4 , further comprising determining whether said decrypted intermediate result is the same as said produced intermediate result.
6. The method of claim 5 , further comprising correcting an erroneous message data word if said decrypted intermediate result is not the same as said produced intermediate result.
7. The method of claim 5 , wherein said correcting comprises identifying said erroneous message data word using a reverse inner function corresponding to said reversible inner function.
8. A system for detecting errors in a message comprising:
means for receiving at least one message data word and an authentication tag, said authentication tag produced from said at least one message data word according to a nested message authentication code having a reversible inner function;
means for processing said received at least one message data word according to said nested message authentication code to produce an authentication tag;
means for determining whether said produced authentication tag is the same as said received authentication tag;
wherein said receiving comprises receiving at least one message data word, an authentication tag, and an intermediate result from said reversible inner function.
9. The system of claim 8 , wherein said receiving comprises receiving an encrypted intermediate result from said reversible inner function.
10. The system of claim 9 , further comprising means for decrypting said encrypted intermediate result if said produced authentication tag is not the same as said received authentication tag.
11. The system of claim 9 , wherein said processing comprises processing said received at least one message data word according to said nested message authentication code to produce an authentication tag and an intermediate result from said reversible inner function.
12. The system of claim 11 , further comprising means for determining whether said decrypted intermediate result is the same as said produced intermediate result.
13. The system of claim 12 , further comprising means for correcting an erroneous message data word if said decrypted intermediate result is not the same as said produced intermediate result.
14. The system of claim 12 , wherein said correcting comprises identifying said erroneous message data word using a reverse inner function corresponding to said reversible inner function.
15. A computer program product embodied on a computer readable medium for detecting errors in a message comprising:
computer code for receiving at least one message data word and an authentication tag, said authentication tag produced from said at least one message data word according to a nested message authentication code having a reversible inner function;
computer code for processing said received at least one message data word according to said nested message authentication code to produce an authentication tag;
computer code for determining whether said produced authentication tag is the same as said received authentication tag;
wherein said receiving comprises receiving at least one message data word, an authentication tag, and an intermediate result from said reversible inner function.
16. The computer program product of claim 15 , wherein said receiving comprises receiving an encrypted intermediate result from said reversible inner function.
17. The computer program product of claim 16 , further comprising computer code for decrypting said encrypted intermediate result if said produced authentication tag is not the same as said received authentication tag.
18. The computer program product of claim 16 , wherein said processing comprises processing said received at least one message data word according to said nested message authentication code to produce an authentication tag and an intermediate result from said reversible inner function.
19. The computer program product of claim 18 , further comprising computer code for determining whether said decrypted intermediate result is the same as said produced intermediate result.
20. The computer program product of claim 19 , further comprising computer code for correcting an erroneous message data word if said decrypted intermediate result is not the same as said produced intermediate result.
21. The computer program product of claim 19 , wherein said correcting comprises identifying said erroneous message data word using a reverse inner function corresponding to said reversible inner function.