Provided is a method to generate sub-keys based on a main key in a case in
which, each sub-key gives no information to recover the main key. The
method has the steps of obtaining a first value by applying to the main
key a linear diversification by mixing the main key with a constant and
applying to the first value a non-linear transformation. The non-linear
transformation includes obtaining a second value by applying the first
value to a substitution layer, obtaining a third value formed of N blocks
of the same size by using a diffusion box of multi-permutation type based
on the second value, obtaining the fourth value formed by blocks,
obtaining the fifth value by applying to the fourth value a substitution
layer, obtaining the sub-key by applying to the fifth value a symmetrical
encryption module. The first value serves as the key input for this
method.