FR 2917549 A1 20081219 FR 0704243 A 20070614 PROCÉDÉ DE CODAGE D'INFORMATIONS PAR UTILISATION DE FONCTIONS NON-LINEAIRES EQUIDISTRIBUEES ET PROGRAMMES D'ORDINATEUR POUR METTRE EN îUVRE LE PROCEDE La présente invention concerne un procédé de codage d'informations utilisant des fonctions non-linéaires équidistribuées. Elle concerne également un programme d'ordinateur pour mettre en oeuvre le procédé. Dans beaucoup de domaines, notamment en cryptographie et en classement de données, il est nécessaire d'obtenir à partir d'un grand nombre de données un résultat dépendant de toutes ces données simultanément. Pour cela, on doit donc disposer de fonctions ayant un très grand nombre de variables d'entrée et savoir calculer leur résultat efficacement en un temps court ou avec des moyens faibles. Habituellement, on utilise des fonctions simples que l'on sait construire avec de nombreuses variables et des opérations élémentaires. On utilise donc typiquement des fonctions linéaires ou polynomiales de degré faible. Elles sont effectivement faciles à calculer mais présentent souvent des propriétés ou des comportements rédhibitoires, tels que, par exemple, une mauvaise distribution des résultats. La réalisation efficace de fonctions non simplistes ayant un grand nombre de variables d'entrée s'avère donc un besoin primordial. Les fonctions non-linéaires équidistribuées sont très utiles en tant que fonction de hachage pour du classement optimal de données par hachage ou arbre de recherche. L'utilisation de fonctions de hachage est, par exemple, décrite dans le brevet US5229768 qui cite les fonctions de hachage middle of square function (fonction milieu du carré) and modulo function (fonction modulo). La première est non-linéaire mais est limitée à un nombre restreint de variables car la complexité du carré croit de façon très rapide. Cette fonction n'est pas équidistribuée et n'est donc pas optimale en tant que fonction de hachage pour le classement. La seconde est linéaire et n'est pas toujours équidistribuée. Par conséquent, elle peut conduire à des répartitions du hachage biaisées et non-optimales sur des données classiques linéairement dépendantes. Le phénomène d'amas, provoqué par la non-linéarité ou la simplicité de la fonction de classement, doit être évité car il pénalise les recherches sur les données classées. L'équidistribution est une condition nécessaire pour atteindre le temps de recherche optimal, temps qui est une fonction logarithmique du nombre de données classées. Les fonctions de classement non-linéaires réalisant une distribution uniforme sont donc les meilleures, mais sont en pratique difficile à trouver. Avec l'explosion des quantités de données traitées l'emploi de fonctions de hachage rapides à calculer sur un très grand nombre de variables et avec des propriétés comme la non-linéarité et l'équidistribution est donc crucial. Pour la cryptographie, le choix de fonctions non-linéaires équidistribuées est essentiel pour assurer la qualité d'un algorithme cryptographique. De plus, comme le montre les propriétés détaillées décrites ci-après, ces fonctions sont d'autant meilleures que leur nombre de variables d'entrées n est grand. Dans un procédé cryptographique quel qu'il soit, l'emploi de fonctions non-linéaires, c'est-à--dire de degré algébrique d strictement supérieur à 1, est un besoin fondamental. Il est de plus nécessaire que ces éléments non-linéaires intégrés au procédé cryptographique aient un certain nombre de propriétés supplémentaires. Ainsi, l'utilisation de fonctions non-linéaires ayant des corrélations d'ordre élevé protège un algorithme cryptographique de certaines attaques. C'est donc une exigence indispensable analysée par SIEGENTHALER qui a le premier indiqué le compromis entre l'ordre des corrélations t, le degré algébrique d et le nombre de variables d'entrée n des fonctions booléennes sous la forme : d+t Des résultats plus récents sur d'autres attaques comme les attaques algébriques montrent la nécessité d'utiliser des fonctions ayant une immunité algébrique élevée. Les deux contraintes évoquées ici ainsi que d'autres propriétés analogues incitent donc à utiliser des fonctions ayant beaucoup de variables d'entrée. Mais la technologie limite les possibilités de réalisation de telles fonctions. Les plus grandes mémoires actuellement disponibles contiennent 128 Gbits sous forme de mémoire flash. Ceci signifie qu'elles ne peuvent traiter que 37 variables booléennes d'entrée, ce qui est peu au vu des besoins actuels : il est souhaitable d'utiliser une fonction ayant une centaine de variables d'entrée binaires ou q-aires pour assurer les propriétés recherchées. Une autre propriété importante des fonctions utilisées en cryptographie est leur équidistribution. C'est d'ailleurs une condition nécessaire à la minimisation des corrélations énoncée précédemment. Il est donc souhaitable de savoir réaliser efficacement une fonction non-linéaire binaire ou q-aire équidistribuée avec beaucoup de variables d'entrée malgré les limites de la technologie actuelle. Dans l'art antérieur différentes solutions ont déjà été proposées pour réaliser efficacement des fonctions booléennes ou sur un corps de Galois étendu GF(2n). Par exemple, les brevets US 6397370, US 6961427 ou encore US 6868536 proposent de telles fonctions. Mais l'homme du métier constate que ces exemples de l'art antérieur : - soit sont restreints au cas de fonctions booléennes, - soit n'offrent pas de solutions constructives pour produire les bonnes fonctions et leurs procédés de recherche heuristique ne donnent aucune garantie de résultats, - soit offrent des solutions sans garantie sur leurs 25 propriétés d' équidistribution, - soit offrent des solutions sans garantie sur les propriétés algébriques telles que le degré algébrique des fonctions, soit ne quantifient pas exactement la complexité d'implémentation des fonctions, soit n'offrent des solutions que pour quelques dizaines de variables au plus. Il est donc souhaitable de réaliser des méthodes de construction de fonctions binaires ou q-aire partiellement symétriques, notamment de fonctions transitives, t-transitives ou de fonctions symétriques qui n'aient pas les inconvénients mentionnés précédemment. Ainsi, selon un aspect de l'invention, un procédé de codage d'information par utilisation de fonctions non-linéaires équidistribuées comporte les étapes suivantes de construction d'une telle fonction : - sélection d'un premier entier naturel, et d'un 15 premier ensemble comportant un nombre d'élément égal à ce premier entier naturel, sélection d'un groupe opérant sur ce premier ensemble, sélection d'un second entier naturel et d'un 20 second ensemble comportant un nombre d'éléments égal à ce second entier naturel, - définition d'un ensemble des orbites du groupe opérant sur les vecteurs de n éléments du second ensemble, 25 définition d'une première fonction qui, à chacun des vecteurs de n éléments du second ensemble, associe l'orbite correspondante, - définition d'une deuxième fonction affectant à chacune des orbites du groupe une valeur du second ensemble, équirépartition en un nombre de sections égale au second entier naturel des sommes des cardinaux des orbites du groupe par utilisation des propriétés mathématiques desdits cardinaux, - définition d'une troisième fonction composée de la première et deuxième fonction. Le procédé permet avantageusement d'obtenir de façon systématique des fonctions nouvelles ayant les propriétés désirées. Il permet également d'obtenir des fonctions sur des ensembles quelconques à q éléments qui n'ont pas besoin d'être des corps booléens GF(2), ni même une extension à un corps de Galois GF(2n), ni même une extension à un corps GF(pn) tout en s'appliquant également aux cas particuliers de l'art antérieur pour lesquels il fournit de nouvelles fonctions. Le procédé de réalisation de fonctions q-aires symétriques et, partiellement symétriques proposé surmonte avantageusement les limitations de l'art antérieur, illustrées précédemment, et permet la réalisation de fonctions de centaines ou milliers de variables booléennes ou q-aires avec un programme rapide ou dans une surface de silicium négligeable par rapport à une mémoire flash de 128 Gbits. Le procédé de la présente invention peut être commodément réalisé par un ordinateur ou autre processeur programmé de façon appropriée. Alternativement le procédé peut être réalisé par un matériel spécialement conçu pour cela. Les fonctions binaires ou q-aires partiellement symétriques permettent ainsi une variété de construction de fonctions non-linéaires équidistribuées indispensables pour réaliser des procédés cryptographiques ou des procédés de classement de données. Selon d'autres caractéristiques ou mode de réalisation : le procédé comporte une étape ultérieure d'optimisation de la non-linéarité ou du degré algébrique ou d'une propriété algébrique de la troisième fonction par échange d'orbites ; le procédé comporte une étape ultérieure de composition en entrée, comme en sortie, avec d'autres fonctions non-linéaires équidistribuées de telle sorte que la composée globale obtenue par cette étape est également non--linéaire et équidistribuée ; - les premier et second entiers naturels n'étant pas premiers entre eux, le second ensemble étant un anneau commutatif et le groupe étant l'ensemble des permutations de telle sorte que les orbites sont :Les partitions entières dont les parts sont strictement inférieures au second entier naturel, l'étape de définition d'une première fonction, comporte une sous-étape de construction d'une fonction affine symétrique : La,h (x)= b( ' l x; )+ a où a est un élément quelconque du second ensemble et b une unité du second ensemble et (x,)" 1 est un vecteur à n éléments du second ensemble ; - le premier et le second entiers naturels étant 30 strictement supérieurs à 2 et premiers entre eux, l'ensemble étant un anneau commutatif et le groupe étant l'ensemble des permutations dont les orbites ont comme cardinaux les coefficients multinomiaux, l'étape de définition d'une première fonction comporte la sélection des fonctions équidistribuées triviales ; - la sélection de fonctions équidistribuées triviales consiste à appliquer une permutation circulaire avec un décalage d'un troisième entier naturel sur un q-uplet tel que, pour chaque valeur de ce troisième entier naturel : M(n,dk(ri , r2 ,..., rq ))= M(n,r~,...,rq où r1r ..., rq sont des coefficients multinomiaux ; puis, - éventuellement, on effectue une étape ultérieure de variation de ladite fonction par échange d'orbites ayant des cardinaux identiques et/ou regroupement d'orbites ayant des cardinaux multiples les uns des autres ; on choisit un troisième nombre naturel et le second nombre naturel tels que le premier nombre naturel soit égal au second nombre naturel à la puissance du troisième nombre naturel, ledit groupe étant un groupe transitif, l'étape de définition d'une fonction comporte les sous-étapes de . • définition d'une fonction booléenne transitive ayant un nombre de variables égal au premier nombre naturel et affichant une valeur booléenne à chacune des orbites du groupe, à l'exception des orbites et, 25 30 • calcul d'une valeur, somme pour toutes les valeurs du premier entier naturel du produit du coefficient binomiale avec la première fonction n-1 T )mod(2) • calcul de la valeur de la première fonction booléenne pour les orbites et tel que : h(()") = (T + 1)mod 2 et h(1") = T si p est pair , et h(O" )= T et h(1" ) = (T + 1) mod 2 si p est impair - on choisit un quatrième nombre naturel, un 10 troisième nombre naturel et le second nombre naturel tels que le premier nombre naturel soit égal à la somme du second nombre naturel à la puissance du troisième nombre naturel et du quatrième nombre naturel moins 1, le groupe étant 15 un groupe t-transitif, l'étape de définition d'une fonction comporte les sous-étapes de : • définition d'un groupe t-transitif d'ordre égal au second nombre naturel à la puissance du troisième nombre naturel, 20 • définition d'une fonction booléenne transitive ayant un nombre de variables égal au second nombre naturel à la puissance du troisième nombre naturel et comme groupe de symétrie le groupe t-transitif, 25 • définition d'une fonction booléenne ttra.nsitive ayant un nombre de variables égal au premier nombre naturel par extension de la booléenne transitive fonction d'un nombre booléenne modulo 2, soit d'opérandes égal au quatrième nombre naturel moins 1. Selon un autre aspect, un produit programme d'ordinateur comprenant des instructions de code de programme pour l'exécution des étapes du procédé précédent lorsque ledit programme est exécuté sur un ordinateur. L'invention sera mieux comprise à la lecture de la description qui suit, donnée uniquement à titre d'exemple, et faite en référence aux figures en annexe dans lesquelles : - la figure 1 est un ordinogramme d'un mode de réalisation du procédé selon l'invention. En référence à la figure 1, un procédé de codage d'information par utilisation de fonctions nonlinéaires équidistribuées comporte les étapes suivantes de construction d'une telle fonction : - sélection d'un premier entier naturel n, et d'un ensemble En comportant un nombre d'éléments égal à ce premier entier naturel n, étape 10 ; - sélection d'un groupe G opérant sur l'ensemble En donc dont le degré est égal à ce premier entier naturel n, étape 12 ; et sélection d'un second entier naturel q et d'un ensemble Eq comportant un nombre d'éléments égal à ce 25 second entier naturel q, étape 14 ; définition de l'ensemble 0G des orbites du groupe G opérant sur les vecteurs de n éléments de Eq, étape 15 ; et - définition de la fonction FI qui à chacun de ces vecteurs associe l'orbite correspondante dans 0G, étape 16, soit FI : Eqn -> 0G {b'uE E,II(u)=O,,O,E 0G } ; - définition d'une fonction de 0G sur Eq affectant 5 à chacune des orbites du groupe G une valeur de l'ensemble Eq, étape 18, soit (De : 0G -> Eq telle que {vO, E 0G,d)(O,)=Vj ,V1 E Eq{, - équirépartition des sommes des cardinaux des orbites du groupe G sur l'ensemble des valeurs de Eq par 10 utilisation des propriétés mathématiques desdits cardinaux, étape 20. On obtient ainsi q sections équiréparties de sommes de ces cardinaux. Les propriétés mathématiques des cardinaux utilisées sont, par exemple, les coefficients binomiaux, les coefficients multinomiaux, 15 les partitions, la symétrie des cardinaux des orbites, la divisibilité des cardinaux, les propriétés des éléments de Eq, etc. - définition d'une fonction F-Ooll, F étant la composée des deux fonctions précédentes, étape 22. 20 Ainsi, la fonction F=4of est telle que, pour chaque valeur Wj, j = 1 à q, de Eq, la somme des cardinaux des vecteurs u de Eqn telles que F(u) = W; est constant. Elle est donc équidistribuée. Si nécessaire, étape 24, les valeurs de certaines 25 orbites sont échangées pour obtenir la non-linéarité ou un degré algébrique maximum de la fonction ou toute autre propriété algébrique de la fonction F. Il est à noter que les fonctions ainsi construites sont avantageusement composables en entrée comme en sortie 30 avec d'autres fonctions non-linéaire équidistribuées de telle sorte que la composée est également non-linéaire et équidistribuée. L'avantage de l'invention sera mieux compris à la lecture d'un cas particulier dont la description est donnée ci-après uniquement à titre d'exemple. Ainsi, alors que pour q = 2 et pour certaines valeurs n paires (par exemple 4, 6, 10, 12, 16, 18, 22, 28, 30, 36, 40, 42, 46, 52, 58, 60), il n'existe aucune fonction non-linéaire équidistribuée symétrique, le procédé permet de réaliser pour q > 2 et pour tout nombre d'entrées n, une fonction non-linéaire équidistribuée symétrique. Par exemple, il n'existe aucune fonction non-linéaire équidistribuée de 60 variables binaires parmi les fonctions symétriques. Cependant le procédé décrit ci-dessus fournit au moins huit fonctions 4-aire symétriques de 15 variables non-linéaires équidistribuées, qui correspondent à des fonctions booléennes de 60 variables équidistribuées et non-linéaires. Le procédé général décrit ci-dessus s'implémente selon plusieurs modes de réalisation. Quatre modes de réalisation particuliers vont maintenant être décrits à titre d'exemple, l'homme du métier étant à même d'en définir d'autres à partir de la description générale précédente. Dans un premier mode de réalisation, on choisit des valeurs de n strictement supérieures à 5 et de q strictement supérieures à 2 telles qu'ils ne soient pas premiers entre eux, c'est-à-dire que leur pgcd(n,q) ≠1. L'ensemble Eq est choisi comme un anneau commutatif à 30 q éléments. Par exemple, l'ensemble Eq est l'anneau Z/qZ ou le corps de Galois GF(q). Un élément quelconque de Eq est noté a. Notons b une unité de Eq, c'est à dire un élément de Eq qui admet un inverse pour la deuxième loi de l'anneau communément appelée multiplication. Une fonction affine symétrique à n variables . ~n L (x)=b(. x +a u,h .di-1 i où les variables de la fonction sont notées x = (.xl )n 1 Comme le nombre d'unités, ou cardinal du groupe des unités, dans Eq est u(Eq), q.u(Eq) fonctions affines symétriques équidistribuées sont ainsi construites. Par exemple, dans Z/qZ, u(Eq) = ïD(q) et dans GF(q) il est (q) =q-1. Le groupe G de degré n est défini alors comme l'ensemble des permutations Sn et la fonction L définit une 15 action du groupe G, ou Sn, sur l'ensemble Eqn. Une partition d'un entier n est une décomposition de cet entier sous forme d'une somme d'entiers naturels appelés parts de cette partition. On peut de plus se restreindre à un sous-ensemble de l'ensemble de toutes les 20 partitions en imposant une limite au nombre de parts dans la partition, ou en imposant une borne aux parts entières intervenant dans la somme. Les fonctions symétriques sont alors construites comme indiquées précédemment à partir des orbites des 25 éléments de Eqn. Les orbites sont déterminées par toutes les partitions entières de l'entier n.(q-1) en n parts strictement inférieures à q. En effet tout vecteur u de Eqn comporte n éléments (donc n parts) chacun inférieur à q (puisque issu de Eq)et dont la somme totale est égale ou 30 inférieure à n..(q-1). Comme n est strictement supérieur à 5, il existe des entiers naturels r et s, avec s = 2 (mod q), tels que n=3s+r. Deux nombres r et s vérifiant cette relation sont choisis. Des partitions u, z, v, w de n en au plus q éléments sont définies à partir d'une partition de r en q-2 éléments (r2, ... rq_1) u = s+1, r2 , ... rq_1 ,2s+1 z = 2s+1, r2 , ... rq_l, s+1 v = s, r2 , ... rq_1r 2s+2 w = 2s+2, r2 , A partir des fonctions La, b ci-dessus et des partitions particulières u, z, v, w, des fonctions Ga,b sont définies par: Ga,b (x) = La,b (x) si x est différent de u, v ou w 15 Ga,b (u) = La,b (v) Ga,b (v) = La,b (u) Ga,b (w) = La,b (u) - Et des fonctions Ha,b sont définies par : Ha b (x) = La,b (x) si x est différent de z, v ou w 20 Ha,b (z) = La,b (v) Ha,b (v) = La,b (z) Ha,b (w) = La,b (z). Toutes les fonctions Ga,b, Ha,b ainsi réalisées sont des fonctions équidistribuées non-linéaires. Il est ainsi 25 possible de construire pour des valeurs de ri indéfiniment grand telles que pgcd(n,q)≠1, jusqu'à 2.q.u(Eq) fonctions équidistribuées non-linéaires. Dans tout anneau commutatif de q éléments, q strictement supérieur à 2, le nombre de réalisations de fonctions équidistribuées non-linéaires est donc 2.q.u(Eq) >_ 2 q > 4. A titre d'exemple appliqué, q est choisi égal à 16 ou 24 et Eq est :Le corps de Galois GF (24) . On considère les C1 fonctions symétriques de n=106 variables sur ce corps, ainsi n = 106 = 3*2+100. En considérant la formule n = 3s+r ci-dessus, on obtient s = 2 et r = 100 qui vérifie également la propriété s = 2(mod 16) ci-dessus. Avec s = 2, on obtient s+ 1 = 3 et 2s+1 = 5, 2s+2 = 6. En conséquence, u = 3 fois 1, 5 fois 0 et les 98 autres valeurs sont quelconques, z = 5 fois 1, 3 fois 0 et les 98 autres valeurs sont quelconques, v = 2 fois 1, 6 fois 0 et les 98 autres valeurs sont quelconques, w = 6 fois 1, 2 fois 0 et les 98 autres valeurs sont 20 quelconques. On construit alors une fonction équidistribuée non-linéaire de 106 variables dans Eq ={0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f} qui coïncide avec la fonction L93(x) - 31ob;)+9 excepté quand le nombre de 1 ou de zéros 25 dans le 106-uplet d'entrée valent 2, 3, 5, 6 auquel cas la valeur est celle de : G9,3 (x) = L9,3 (x) si x est différent de u, v ou w G9,3 (u) = L9,3(v) G9,3(v) = L9,3 (u) G9,3 (w) = L9,3 (u) Dans un autre mode de réalisation exemplaire, on choisit n = 16 = 3*2+10. Ainsi, on définit s = 2 et r 5 = 10 qui vérifie bien la propriété s = 2(mod 16). Puisque s=2, s+1=3, 2s+1=5 et 2s+2=6. Ainsi, u = 3 fois 1, 5 fois 0 et les 8 autres valeurs sont quelconques z = 5 fois 1, 3 fois 0 et les 8 autres valeurs sont 10 quelconques v = 2 fois 1, 6 fois 0 et les 8 autres valeurs sont quelconques w = 6 fois 1, 2 fois 0 et les 8 autres valeurs sont quelconques. 15 Dans cet exemple, on construit deux fonctions équidistribuées non-linéaires de 16 variables dans Eq= {0, 1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 , a, b, c, d, e, f} qui coïncident ; - avec la fonction L93(x)=31161x;)+9 excepté quand le 20 nombre de 1 ou de zéros dans le 16-uplet d'entrée vaut 2, 3, 5, 6 auquel cas la valeur est celle de : I-19,3(x) = L9,3 (x) si x est différent de u, v ou w H9,3 (u) = L9,3 (V) H9,3 (V) = L9,3 (Z) 25 H9,3 (W) = L9,3 (Z) , 16 ou avec la fonction L115(x) = 51161x,)+11 G11,5 (x) = L11,5 (x) si x est différent de u, v, w G11,5 (u) = L11,5 (V) G11,5 (V) = L11,5 (U) G11,5 (w) = L11,5 (u) Dans un second mode de réalisation, on choisit des valeurs de n strictement supérieure à 2 et q strictement supérieure à 2 telles que n et q soient premiers entre eux. L'ensemble Eq est choisi pour être un anneau commutatif. Les fonctions de départ ne sont alors plus les fonctions affines, comme dans le premier mode de réalisation, mais des fonctions f équidistribuées triviales qui existent grâce au choix n et q premiers entre eux. Le groupe G de degré n est, dans ce mode de réalisation, l'ensemble des permutations Sn, et ses orbites ont comme cardinaux les coefficients multinomiaux. On construit ces fonctions f d'après les relations sur des coefficients multinomiaux. Soit dk une permutation circulaire avec un décalage k sur un q-uplet. Pour chaque valeur de k on a la relation : M(n, dk(:r , r2, . . . , rq) ) = M(n, r1, r2, . . . , rq) avec Quand n et q sont premiers entre eux, nous obtenons des décalages différents des q ri parce que les ri ne peuvent pas être tous égaux. Car si les ri étaient tous égaux à d alors q.d=n ce qui contredit la primalité de q et n. Nous réussissons ainsi à définir, (41!) 'q fonctions symétriques équidistribuées f. Il est à noter que pour q strictement supérieur à 2, v et w ne peuvent pas être obtenus par un décalage l'un de l'autre mais par une transposition. Ainsi dans ce cas où n et q sont premiers entre eux, de par la construction des fonctions équidistribuées triviales f, celles-ci réalisent l'égalité telle que pour chaque i il existe j de sorte que f(di(v)) = dj(f(w)). Ainsi une nouvelle fonction g peut être établie par : g(x) = f (x) si x est différent de u, di (v) ou dj(w) ; g (u) = f(di(v)) ; 15 g(di (v)) = f(u) ; g (dj (w)) = f (u) . Si f(di(v)) est différent de f(u), il y a (q-1) cas où c'est différent. g est une nouvelle fonction équidistribuée. En effet, 20 parmi toutes les permutations circulaires dk(v), k variant de 0 à q-1, toutes les valeurs des parts de la partition n'apparaissent pas car certaines sont répétées et d'autres absentes. Ainsi pour chaque fonction f, (q-1) fonctions g 25 peuvent être établies. Ce mode de réalisation permet alors de construire gx(e^`fonctions équidistribuées non-linéaires pour des valeurs de n indéfiniment grandes. Dans un troisième mode de réalisation, on considère des fonctions transitives comme par exemple les fonctions booléennes symétriques par rotation. Elles permettent notamment de réaliser des fonctions booléennes courbes qui ne sont pas quadratiques contrairement aux fonctions booléennes symétriques courbes qui sont quant à elles toujours quadratiques. La réalisation de telles fonctions élargit le choix de fonctions à la transitivité au-delà de la simple symétrie ou de la symétrie par rotation. Un grand nombre d'auteurs ont étudié les fonctions symétriques booléennes mais la généralisation permise par le présent mode de réalisation d'une part aux fonctions q-aires quand q est strictement supérieur à 2 et d'autre part aux fonctions binaires ou q-aires partiellement symétriques fournit des possibilités nouvelles. On choisit k entier naturel et p entier naturel premier et on calcule n=pk, p à la puissance k. Un groupe transitif G d'ordre n est choisi. Une fonction booléenne transitive h de n=pk variables est définie en affectant une valeur booléenne soit 0 soit 1 à chacune des orbites du groupe G hormis les deux orbites représentées par (On) et n-1 On calcule la valeur T = ~C'_,h~0" il'~mod(2) . Si p est pair, on définit h((O')) = (T+1) mod(2) et 25 h((l')) = T et si p est impair h((l')) = (T+1) mod(2) et h((O")) = T. La fonction h est une fonction booléenne transitive équidistribuée de degré n-1 donc hautement non-linéaire. Dans un quatrième mode de réalisation, on choisit un 30 quatrième nombre naturel, un troisième nombre naturel et le second nombre naturel tels que le premier nombre 10 15 naturel soit égal à la somme du second nombre naturel à la puissance du troisième nombre naturel et du quatrième nombre naturel moins 1, le groupe étant un groupe t-transitif, l'étape de définition d'une fonction comporte les sous-étapes de : • définition d'un groupe t-transitif d'ordre égal au second nombre naturel à la puissance du troisième nombre naturel, • définition d'une fonction booléenne transitive ayant un nombre de variables égal au second nombre naturel à la puissance du troisième nombre naturel et comme groupe de symétrie le groupe t-transitif, • définition d'une fonction booléenne t-transitive ayant un nombre de variables égal au premier nombre naturel par extension de la booléenne transitive fonction d'un nombre d'opérandes égal au quatrième nombre naturel moins 1. 20 Le procédé décrit est réalisable sous forme logicielle ou matérielle. En particulier, un produit programme d'ordinateur permet d'exécuter les différentes étapes du procédé quand il est exécuté sur un ordinateur. Pour les fonctions obtenues par la méthode proposée, 25 l'exécution technologique est facile aussi bien en logiciel qu'en matériel. De plus, les propriétés des fonctions se révèlent intéressantes pour différentes applications notamment à la cryptographie ou le classement de données. 30 Toutes les fonctions construites sont intégrables comme un élément constitutif ou en remplacement d'un élément constitutif de tout procédé cryptographique ou de classement de données par hachage. Le procédé décrit est particulièrement utilisable dans des applications de cryptographie et/ou de classement 5 de données. Il trouve ainsi application notamment dans le domaine des télécommunications sécurisées ainsi que dans d'autres domaines comme celui du stockageinformatique optimisé, des protocoles de télécommunication, du vote électronique, 10 des sondages ou enchères électroniques ou de la biométrie. Il est adapté à la réalisation de mécanismes cryptographiques dans des équipements terminaux, fixes et/ou mobiles, opérant sur tout type de réseaux ou dans des modules cryptographiques. Dans ces applications, il 15 permet d'offrir une efficacité améliorée pour réaliser une solution de cryptographie ou une solution de classement par hachage ou arbre de recherche. REVENDICATIONS 1. Procédé de codage d'information par utilisation de fonctions non-linéaires équidistribuées comportant les étapes suivantes de construction d'une telle fonction : sélection (10) d'un premier entier naturel (n), et d'un premier ensemble (En) comportant un nombre d'élément égal à ce premier entier naturel (n), - sélection (12) d'un groupe (G) opérant sur ce premier ensemble (En),, sélection (14) d'un second entier naturel (q) et d'un second ensemble (Eq) comportant un nombre d'éléments égal à ce second entier naturel (q), - définition (15) d'un ensemble (OG) des orbites du groupe G opérant sur des vecteurs, ayant le premier entier naturel (n) nombre d'éléments du second ensemble (Eq), - définition (16) d'une première fonction (H) qui, à chacun desdits vecteurs du second ensemble (Eq), associe l'orbite correspondante, définition (18) d'une deuxième fonction (0) affectant à chacune des orbites du groupe (G) une valeur du second ensemble (Eq), - équirépartition (20) en un nombre de sections égale au second entier naturel (q) des sommes des cardinaux des orbites du groupe par utilisation des propriétés mathématiques desdits cardinaux,définition (22) d'une troisième fonction (F) composée de la première et deuxième fonction ((DoTI) . 2. Procédé de codage selon la revendication 1, caractérisé en ce qu'il comporte en outre une étape ultérieure d'optimisation de la non-linéarité ou du degré algébrique ou d'une propriété algébrique de ladite troisième fonction (F) par échange d'orbites. 3. Procédé de codage selon l'une des revendications 1 et 2, caractérisé en ce qu'il comporte en outre une étape ultérieure de composition en entrée, comme en sortie, avec d'autres fonctions non-linéaires équidistribuées de telle sorte que la composée globale obtenue par cette étape est également non-linéaire et équidistribuée. 4. Procédé de codage selon l'une des revendications 1 et 2, caractérisé en ce que les premier et second entiers naturels n'étant pas premiers entre eux, le second ensemble (Eq) étant un anneau commutatif et le groupe (G) étant l'ensemble des permutations de telle sorte que les orbites sont les partitions entières dont les parts sont strictement inférieures au second entier naturel (q), l'étape de définition d'une première fonction, comporte une sous-étape de construction d'une fonction affine symétrique (La,b) : Lab(x)=b~n1x; ~-a i où a est un élément quelconque du second ensemble et b une unité du second ensemble et n (x, ;_1 est un vecteur à n éléments du second ensemble. 5. Procédé de codage selon l'une des revendications 1 à 2, caractérisé en ce que le premier et le secondentiers naturels étant strictement supérieurs à 2 et premiers entre eux, l'ensemble étant un anneau commutatif et le groupe étant l'ensemble des permutations dont les orbites ont comme cardinaux les coefficients multinomiaux, l'étape de définition d'une première fonction comporte la sélection des fonctions équidistribuées triviales. 6. Procédé de codage selon la revendication 4, caractérisé en ce que la sélection de fonctions équidistribuées triviales consiste à appliquer une permutation circulaire (dk) avec un décalage d'un troisième entier naturel (k) sur un q-uplet tel que, pour chaque valeur de ce troisième entier naturel (k) : M(n,dk(rl,r2,...,rq ))= M(n,r,,...,rq Où r1, ..., rq sont des coefficients multinomiaux. 7. Procédé de codage selon la revendication 6, caractérisé en ce qu'il comporte en outre une étape ultérieure de variation de ladite fonction par échange d'orbites ayant des cardinaux identiques et/ou regroupement d'orbites ayant des cardinaux multiples les uns des autres. 8. Procédé de codage selon l'une des revendications 1 à 2, caractérisé en ce que on choisit un troisième nombre naturel (k) et le second nombre naturel (p) tels que le premier nombre naturel (n) soit égal au second nombre naturel (p) à la puissance du troisième nombre naturel (k), ledit groupe (G) étant un groupe transitif, l'étape de définition d'une fonction comporte les sous-étapes de : définition d'une fonction booléenne transitive (h) 30 ayant un nombre de variables égal au premier nombre naturel (n) et affichant une valeur 5booléenne à chacune des orbites du groupe, à l'exception des orbites (On) et (ln), calcul d'une valeur (T), somme pour toutes les valeurs du premier entier naturel du produit du coefficient binomiale avec la première fonction n-1 booléenne (h) modulo 2, soit T = EC'_1h(0"-'1')mod(2) , J =1 - calcul de la valeur de la première fonction booléenne pour les orbites (On) et (1n) tel que : h(O") = (T + 1)mod 2 et h(1") = T si p est pair , et 10 h(O") = T et h(1") _ (T + 1) mod 2 si p est impair . 9. Procédé de codage selon l'une des revendications 1 à 2, caractérisé en ce qu'on choisit un quatrième nombre naturel (t), un troisième nombre naturel (k) et le second nombre naturel (p) tels que le premier nombre naturel (n) 15 soit égal à la somme du second nombre naturel (p) à la puissance du troisième nombre naturel (k) et du quatrième nombre naturel (t) moins 1, le groupe (G') étant un groupe t-transitif, l'étape de définition d'une fonction comporte les sous-étapes de : 20 - définition d'un groupe (G't) t-transitif d'ordre égal au second nombre naturel (p) à la puissance du troisième nombre naturel (k) - définition d'une fonction booléenne transitive (ht) ayant un nombre de variables égal au second 25 nombre naturel (p) à la puissance du troisième nombre naturel (k) et comme groupe de symétrie le groupe t-transitif (G't) selon l'étape de définition de fonction du procédé de la revendication 8,définition d'une fonction booléenne t-transitive (h) ayant un nombre de variables égal au premier nombre naturel (n) par extension de la booléenne transitive fonction (ht) d'un nombre d'opérandes égal au quatrième nombre naturel (t) moins 1. 10. Produit programme d'ordinateur comprenant des instructions de code de programme pour l'exécution des étapes du procédé selon l'une quelconque des revendications 1 à 9 lorsque ledit programme est exécuté sur un ordinateur.