A method for encrypting or decrypting a n-tuple of data ({ai}i∈[[0,n-1]]) with a n-tuple of predetermined secret keys ({ki}i∈[[0,n-1]]), n≥2, for a given non-linear permutation function (ƒ) and a given linear multiplexing function (L), the method being characterized in that it comprises a data processor (11a) of equipment (10a) implementing steps of:
- (a) For each element (ai) of said n-tuple of data ({ai}i∈[[0,n-1]]), determination of m>n first internal states ({yij}j∈[[0,m-1]]) by application to said element (ai) of m first operations, each being:
- represented by a table (Tij) stored on a memory (12a) of the equipment (10a), and
- defined as the combination of a single bijective internal encoding (Gij), of a non-linear sharing function (Di, Ei, Fi . . . ), and of the non-linear permutation function (ƒ) parameterized with the corresponding secret key (ki), said non-linear sharing functions (Di, Ei, Fi . . . ) forming n collections ({(Di, Ei, Fi . . . )}i∈[[0,n-1]]) such that the m functions of a collection share any input datum in m fragments whereof the sum is equal to the input datum, with ∀i∈[[0, n-1]], ∀x, x=Di(x)+Ei(x)+Fi(x)+ . . . ;
- all of said first internal states yij;
- determined for all said elements (ai) forming m n-tuples of internal states ({{yij}i∈[[0,n-1]]}j∈[[0,m-1]]);
- (b) For each n-tuple of first internal states ({yij}i∈[[0,n-1]]), determination of a second internal state (zj) by application to said internal states (yij) of the n-tuple of first internal states ({yij}i∈[[0,n-1]]) of a second operation being:
- represented by a table (TLj) stored on the memory (12a) of the equipment (10a), and
- defined as the combination of a second single bijective internal encoding (GLj), of the linear multiplexing function (L), and of the inverses of said first bijective internal encodings (Gij).