Patent ID: 8385541
Filing Date: 2013-02-26
Classification: H04L

Abstract:
1. A computerized method of performing elliptic polynomial cryptography with elliptic polynomial hopping, comprising the steps of: a) defining a maximum block size that can be embedded into (nx+1) x-coordinates and ny y-coordinates, wherein n is an integer, and setting the maximum block size to be (nx+ny+1)N bits, wherein N is an integer; b) a sending correspondent and a receiving correspondent agree upon the values of nx and ny, and further agree on a set of coefficients a,b∈F, wherein F represents a finite field where the field's elements can be represented in N-bits, the sending and receiving correspondents further agreeing upon a random number k the sending correspondent then performs the following steps: c) generating at least a portion of a set of coefficients b d) embedding the set of (nx+1) numbers xb e) embedding the 0-th block of the message bit string into an elliptic polynomial message point (x f) computing a scalar multiplication of the 0-th block shared key k g) computing a cipher point of the 0-th data block (x wherein α c (0) =α m (0) , and sending a set of appropriate bits of the x-coordinates and a bit indicating the value of α c (0) of the cipher point (x 0,c (0) ,x 1,c (0) , . . . , x nx,c (0) ,y c (0) ,α c (0) ) to the receiving correspondent; h) establishing integers j and u, such that j=1, . . . , u, and initializing the integer j as j=1 and repeating the following steps i) to m), and incrementing j at each step until all of the message data blocks are processed: i) generating a random number kp j) generating at least a portion of the coefficients b k) embedding the j-th block of the message bit string into a j-th elliptic polynomial message point (x l) hopping the scalar multiplication point (x m) computing the cipher point of the j-th data block (x n) appropriate bits of the x-coordinates and a bit indicating the value of α the receiving correspondent then performs the following steps: o) generating at least a portion of the coefficients b p) embedding the set of (nx+1) numbers xb q) computing the scalar multiplication of the 0-th block shared key k r) computing the message point of the 0-th data block (x wherein α m (0) =α c (0) , and recovering the secret message bit string for the 0-th block from appropriate x-coordinates of the message point x 0,m (0) ,x 1,m (0) , . . . , x nx,m (0) ,y m (0) ,α m (0) ) if α m (0) =1 and recovering the secret message bit string from a point (gx 0,m (0) ,gx 1,m (0) , . . . , gx nx,m (0) ,√{square root over (g 3 )}y m (0) ,α m (0) ) if α m (j) =g; s) initializing the integer j as j=1 and repeating the following steps t) to (x), and incrementing j at each step until all of the message data blocks are processed: t) generating a random number kp u) generating at least a portion of the coefficients b v) hopping the scalar multiplication point (x w) computing the message point of the j-th received data block (x wherein α m (j) =α c (j) ; and x) recovering the secret message bit string for the j-th block from appropriate x-coordinates of the message point (x