Claims
- 1. A method for transforming a first message integrity codeword, L, and a second message integrity codeword, R, said method comprising:
1) setting said second message integrity codeword, R, equal to the modulo 2 sum of said second message integrity codeword, R, plus said first message integrity codeword, L, after being rotated left 17 bits; 2) setting said first message integrity codeword, L, equal to the modulo 2B sum of said first message integrity codeword, L, plus said second message integrity codeword, R; 3) setting said second message integrity codeword, R, equal to the modulo 2 sum of said second message integrity codeword, R, plus a transposition of said first message integrity codeword, L; 4) setting said first message integrity codeword, L, equal to the modulo 2B sum of said first message integrity codeword, L, plus said second message integrity codeword, R; 5) setting said second message integrity codeword, R, equal to the modulo 2 sum of said second message integrity codeword, R, plus said first message integrity codeword, L, after being rotated left 3 bits; 6) setting said first message integrity codeword, L, equal to the modulo 2B sum of said first message integrity codeword, L, plus said second message integrity codeword, R; 7) setting said second message integrity codeword, R, equal to the modulo 2 sum of said second message integrity codeword, R, plus said first message integrity codeword, L, after being rotated right 2 bits; and 8) setting said first message integrity codeword, L, equal to the modulo 2B sum of said first message integrity codeword, L, plus said second message integrity codeword, R; wherein B is a positive integer.
- 2. The method of claim 1 wherein said transposition of said first message integrity codeword, L, swaps the position of the two least significant bytes of L with each other and swaps the position of the two most significant bytes of L with each other.
- 3. A method for generating a first message integrity codeword, L, and a second message integrity codeword, R, based on a first authentication key, K0, a second key, K1, and on N message words M0 through MN−1, said method comprising:
1) setting said first message integrity codeword, L, equal to said first authentication key, K0, and said second message integrity codeword, R, equal to said second key, K1; and 2) iteratively for i=0 through n,
a) setting said first message integrity codeword, L, equal to the modulo 2 sum of said first message integrity codeword, L, plus said message word Mi, and b) setting said first message integrity codeword, L, and said second message integrity codeword, R, equal to a block transformation of said first message integrity codeword, L, and said second message integrity codeword, R; wherein N is a positive integer.
- 4. The method of claim 3 wherein said block transformation comprises:
i. setting said second message integrity codeword, R, equal to the modulo 2 sum of said second message integrity codeword, R, plus said first message integrity codeword, L, after being rotated left 17 bits; ii. setting said first message integrity codeword, L, equal to the modulo 2B sum of said first message integrity codeword, L, plus said second message integrity codeword, R; iii. setting said second message integrity codeword, R, equal to the modulo 2 sum of said second message integrity codeword, R, plus a transposition of said first message integrity codeword, L; iv. setting said first message integrity codeword, L, equal to the modulo 2B sum of said first message integrity codeword, L, plus said second message integrity codeword, R; v. setting said second message integrity codeword, R, equal to the modulo 2 sum of said second message integrity codeword, R, plus said first message integrity codeword, L, after being rotated left 3 bits; vi. setting said first message integrity codeword, L, equal to the modulo 2B sum of said first message integrity codeword, L, plus said second message integrity codeword, R; vii. setting said second message integrity codeword, R, equal to the modulo 2 sum of said second message integrity codeword, R, plus said first message integrity codeword, L, after being rotated right 2 bits; and viii. setting said first message integrity codeword, L, equal to the modulo 2B sum of said first message integrity codeword, L, plus said second message integrity codeword, R; wherein B is a positive integer.
- 5. The method of claim 4 wherein said transposition of said first message integrity codeword, L, swaps the position of the two least significant bytes of L with each other and swaps the position of the two most significant bytes of L with each other.
- 6. A method of authenticating a message comprising N message words M0 through MN−1, based on a first authentication key, K0, and a second authentication key, K1, said method comprising:
1) decrypting a ciphertext message, C, with a first privacy key, P0, and said second privacy key, P1, as the key to recover said N message words M0 through MN−1, a first candidate message integrity codeword, LC, and a second candidate message integrity codeword, RC; 2) generating a first benchmark message integrity codeword, LB, and a second candidate message integrity codeword, RB, based on said first authentication key, K0, said second key, K1, and said N message words M0 through MN−1; and 3) authenticating said message when and only when:
a) said first benchmark message integrity codeword, LB, equals said first candidate message integrity codeword, LC, and b) said second benchmark message integrity codeword, RB, equals said second candidate message integrity codeword, RC; wherein generating said first candidate message integrity codeword, LC, and said second candidate message integrity codeword, RC, comprises: a) setting said first candidate message integrity codeword, LC, equal to said first authentication key, K0, and said second message integrity codeword, RC, equal to said second key, K1, and b) iteratively for i=0 through n,
i) setting said first candidate message integrity codeword, LC, equal to the modulo 2 sum of said first candidate message integrity codeword, LC, plus said message word Mi, and ii) setting said first candidate message integrity codeword, LC, and said second candidate message integrity codeword, RC, equal to a block transformation of said first candidate message integrity codeword, LC, and said second candidate message integrity codeword, RC; wherein B and N are positive integers.
- 7. The method of claim 6 wherein said block transformation comprises:
i. setting said second message integrity codeword, R, equal to the modulo 2 sum of said second message integrity codeword, R, plus said first message integrity codeword, L, after being rotated left 17 bits; ii. setting said first message integrity codeword, L, equal to the modulo 2B sum of said first message integrity codeword, L, plus said second message integrity codeword, R; iii. setting said second message integrity codeword, R, equal to the modulo 2 sum of said second message integrity codeword, R, plus a transposition of said first message integrity codeword, L; iv. setting said first message integrity codeword, L, equal to the modulo 2B sum of said first message integrity codeword, L, plus said second message integrity codeword, R; v. setting said second message integrity codeword, R, equal to the modulo 2 sum of said second message integrity codeword, R, plus said first message integrity codeword, L, after being rotated left 3 bits; vi. setting said first message integrity codeword, L, equal to the modulo 2B sum of said first message integrity codeword, L, plus said second message integrity codeword, R; vii. setting said second message integrity codeword, R, equal to the modulo 2 sum of said second message integrity codeword, R, plus said first message integrity codeword, L, after being rotated right 2 bits; and viii. setting said first message integrity codeword, L, equal to the modulo 2B sum of said first message integrity codeword, L, plus said second message integrity codeword, R.
- 8. The method of claim 7 wherein said transposition of said first message integrity codeword, L, swaps the position of the two least significant bytes of L with each other and swaps the position of the two most significant bytes of L with each other.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional Patent Application 60/396,286 filed Jul. 15, 2002 (Attorney Docket: 680-026us), which is incorporated by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60396286 |
Jul 2002 |
US |