Patent ID: 8705740
Filing Date: 2014-04-22
Classification: H04L

Abstract:
1. A computer software product that includes a non-transitory storage medium readable by a processor, the non-transitory storage medium having stored thereon a set of instructions for generating an elliptic-curve based message authentication code, the instructions comprising: (a) a first set of instructions which, when loaded into main memory and executed by the processor, causes the processor to embed a bit string of a shared secret key into an x-coordinate of a key elliptic point (x  wherein TEC represents the twist of the elliptic curve EC defined over F that satisfies the equation (b) a second set of instructions which, when loaded into main memory and executed by the processor, causes the processor to compute a scalar multiplication  and set (x  wherein (x (c) a third set of instructions which, when loaded into main memory and executed by the processor, causes the processor to embed the message N-bit string of the 0-th block into the x-coordinate of an elliptic message point (x (d) a fourth set of instructions which, when loaded into main memory and executed by the processor, causes the processor to compute a set of message authentication code points (x  otherwise they are computed using  and (x (e) a fifth set of instructions which, when loaded into main memory and executed by the processor, causes the processor to establish an integer i denoting the i (f) a sixth set of instructions which, when loaded into main memory and executed by the processor, causes the processor to embed the message N-bit string of the i-th block into the x-coordinate of the elliptic message point (x (g) a seventh set of instructions which, when loaded into main memory and executed by the processor, causes the processor to compute the i-th block message authentication code points as (x  if the message point of the i-th block is on the elliptic curve, otherwise they are computed using  and (x (h) an eighth set of instructions which, when loaded into main memory and executed by the processor, causes the processor to concatenate together appropriate bits of the x-coordinate x  to form the message authentication code, which is appended to the message to be sent at the sending correspondent; (i) a ninth set of instructions which, when loaded into main memory and executed by the processor, causes the processor to embed the bit string of the secret key into the x-coordinate of the key elliptic point (x (j) a tenth set of instructions which, when loaded into main memory and executed by the processor, causes the processor to perform the scalar multiplication  and set (x  at the receiving correspondent; (k) an eleventh set of instructions which, when loaded into main memory and executed by the processor, causes the processor to embed a received message N-bit string of the 0-th block into the x-coordinate of a received message elliptic point (x (l) a twelfth set of instructions which, when loaded into main memory and executed by the processor, causes the processor to compute received message authentication code points (x  otherwise they are computed using  and (x (m) a thirteenth set of instructions which, when loaded into main memory and executed by the processor, causes the processor to initialize i as i=1, then the following fourteenth through sixteenth sets of instructions are repeated until all received message data blocks are processed, and incrementing i at each step: (n) a fourteenth set of instructions which, when loaded into main memory and executed by the processor, causes the processor to embed the message N-bit string of the i-th block into the x-coordinate of the received elliptic message point (x (o) a fifteenth set of instructions which, when loaded into main memory and executed by the processor, causes the processor to compute the i-th block received message authentication code points if the message point of the i-th block is on the elliptic curve using (x  otherwise they are computed using  and (x (p) a sixteenth set of instructions which, when loaded into main memory and executed by the processor, causes the processor to concatenate together appropriate bits of the received x-coordinate x  to form the message authentication code of the received message at the receiving correspondent; and (q) a seventeenth set of instructions which, when loaded into main memory and executed by the processor, causes the processor to authenticate the received message if the received message authentication code is equal to the message authentication code of the received message generated at the receiving correspondent.