The present invention includes a method and device for calculating an encryption
key, Kc, for use in the initialization of an encryption algorithm.
The present invention discloses a method for calculating the encryption key, Kc(x),
by obtaining a ciphering key, Kc(x), determining a maximum ciphering
key length, L, based on the requirements of the two devices wishing to communicate,
and determining a maximum usable encryption key length, Lmax. The ciphering
key, Kc(x), is then manipulated through an addition function or an exclusively-or
function with a polynomial g1(x). The result is multiplied with a polynomial
g2(x), which spreads the starting points of said encryption key, Kc(x).
The encryption key is thus determined according to Kc(x)=g2(L)(x)[Kc(x)
mod g1(L)(x)]. The method of calculating the encryption key,
Kc, ensures that a maximum ciphering key length is not exceeded.
In addition, the method provides new possible starting points each time a new encryption
key, Kc, is generated.