PROCEDE DE CODAGE D' INFORMATIONS PAR UTILISATION DE METHOD OF ENCODING INFORMATION BY USING
FONCTIONS NON-LINEAIRES EQUIDISTRIBUEES ET PROGRAMMESEQUIDISTRIBUTED NON-LINEAR FUNCTIONS AND PROGRAMS
D'ORDINATEUR POUR METTRE EN ŒUVRE LE PROCEDECOMPUTER FOR IMPLEMENTING THE METHOD
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 œuvre le procédé.The present invention relates to an information coding method using non-linear equidistributed functions. It also relates to a computer program for implementing the method.
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.In many fields, including cryptography and data classification, it is necessary to obtain from a large number of data a result dependent on all these data simultaneously. For this, one must have functions with a very large number of input variables and know how to calculate their result effectively in a short time or with low means. Usually, we use simple functions that we know how to build with many variables and elementary operations. Thus linear or polynomial functions of low degree are typically used. They are indeed easy to calculate but often have unacceptable properties or behaviors, such as, for example, poor distribution of results. The efficient realization of non-simplistic functions with a large number of input variables is therefore a primary need.
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.Equidistributed non-linear functions are very useful as: hash function for optimal classification of hash data or search tree.
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 »The use of hash functions is, for example, described in the patent US5229768 which cites the functions of hashing "middle of square function" (middle function of the square) 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.(modulo function). The first is non-linear but is limited to a limited number of variables because the complexity of the square increases very quickly. This function is not equidistributed and is therefore not optimal as a hash function for ranking. The second is linear and is not always equidistributed. Therefore, it can lead to biased and non-optimal hash distributions on linearly dependent conventional data. The clustering phenomenon, caused by the non-linearity or simplicity of the ranking function, must be avoided because it penalizes research on classified data. Equidistribution is a necessary condition for achieving the optimal search time, which is a logarithmic function of the number of classified data. The non-linear ranking functions achieving uniform distribution are therefore the best, but are in practice difficult to find.
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 1 ' équidistribution est donc crucial .With the explosion of processed data quantities the use of fast hashing functions to compute over a very large number of variables and with properties such as non-linearity and equidistribution is therefore 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.For cryptography, the choice of non-linear equidistributed functions is essential to ensure the quality of a cryptographic algorithm. In addition, as shown by the detailed properties described below, these functions are even better than their number of input variables n is large.
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 :In any cryptographic process, the use of non-linear functions, that is to say of algebraic degree d strictly greater than 1, is a need fundamental. It is further necessary that these non-linear elements integrated in the cryptographic method have a number of additional properties. Thus, the use of non-linear functions with high order correlations protects a cryptographic algorithm from certain attacks. It is therefore an essential requirement analyzed by SIEGENTHALER who first indicated the compromise between the order of correlations t, the algebraic degree d and the number of input variables n of Boolean functions in the form:
d+t < n.d + t <n.
La transformée de Walsh prouve de plus que la corrélation d'une fonction booléenne avec un nombre donné de variables d'entrée n a une valeur minimale de corrélation décroissante avec n. L'extension de ces résultats établis sur GF (2) au corps de Galois GF (q) a été donnée par CAMION et al sous la forme :The Walsh transform further proves that the correlation of a Boolean function with a given number of input variables n has a minimal value of decreasing correlation with n. The extension of these results established on GF (2) to Galois body GF (q) was given by CAMION et al in the form:
d+t < (q-1) n.d + t <(q-1) n.
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 .More recent results on other attacks such as algebraic attacks show the need to use functions with high algebraic immunity.
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 .The two constraints mentioned here as well as other similar properties therefore encourage the use of functions having many input variables. But technology limits the possibilities of carrying out such functions. The largest memories currently available contain 128 Gbits as flash memory. This means that they can only process 37 input Boolean variables, which is not very much in light of current needs: it is desirable to use a function with a hundred input variables binary or q-areas to ensure the desired properties.
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.Another important property of the functions used in cryptography is their equidistribution. This is also a necessary condition for the minimization of correlations previously stated.
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.It is therefore desirable to know how to efficiently perform a non-linear binary or equidistributed q-area function with many input variables despite the limitations of current technology.
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.In the prior art, various solutions have already been proposed for efficiently performing Boolean functions or on an extended Galois field GF (2 n ). For example, patents US 6397370, US 6961427 or US 6868536 propose such functions.
Mais l'homme du métier constate que ces exemples de l'art antérieur :But the skilled person finds that these examples of the prior art:
soit sont restreints au cas de fonctions booléennes ,are restricted to the case of Boolean functions,
- 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,- either do not offer constructive solutions to produce the right functions and their heuristic search processes give no guarantee of results,
soit offrent des solutions sans garantie sur leurs propriétés d' équidistribution,either offer unsecured solutions on their equidistribution properties,
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,either offer unsecured solutions on algebraic properties such as the algebraic degree of the functions, or do not exactly quantify the complexity of implementing the functions,
soit n'offrent des solutions que pour quelques dizaines de variables au plus.either only offer solutions for a few dozen variables at most.
II 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.It is therefore desirable to provide methods for constructing partially symmetrical binary or q-area functions, in particular transitive, t-transitive or symmetrical functions that do not have the drawbacks mentioned above.
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 :Thus, according to one aspect of the invention, a method of encoding information by using non-linear equidistributed functions comprises the following steps of constructing such a function:
sélection d'un premier entier naturel, et d'un premier ensemble comportant un nombre d'élément égal à ce premier entier naturel,selecting a first natural integer, and a first set comprising an element number equal to this first natural integer,
sélection d'un groupe opérant sur ce premier ensemble,selection of a group operating on this first set,
sélection d'un second entier naturel et d'un second ensemble comportant un nombre d'éléments égal à ce second entier naturel,selecting a second natural integer and a second set comprising a number of elements equal to this second natural integer,
définition d'un ensemble des orbites du groupe opérant sur les vecteurs de n éléments du second ensemble,definition of a set of orbits of the group operating on the vectors of n elements of the second set,
- 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,defining a first function which, at each of the vectors of n elements of the second set, associates the corresponding orbit, defining a second function assigning to each of the orbits of the group a value of the second set,
é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,equidistributing in a number of sections equal to the second natural integer of the sums of the cardinals of the orbits of the group by using the mathematical properties of said cardinals,
définition d'une troisième fonction composée de la première et deuxième fonction.defining a third function composed of the first and second function.
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 .The method advantageously makes it possible systematically to obtain new functions having the desired properties. It also allows to obtain functions on any q-element sets that do not need to be GF (2) Boolean bodies, or even an extension to a GF (2 n ) Galois field, or even a extension to a body GF (p n ) while also applying to the particular cases of the prior art for which it provides new functions.
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 deThe method for producing symmetrical and partially symmetrical q-area functions proposed advantageously overcomes the limitations of the prior art, illustrated above, and allows the realization of functions of hundreds or thousands of boolean or q-ary variables with a fast program or in a negligible silicon surface compared to a flash memory of
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.128 Gbits. The method of the present invention may be conveniently performed by a computer or other appropriately programmed processor. Alternatively the process can be realized by a material specially designed for this.
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 .Partially symmetric binary or q-area functions thus allow a variety of construction non-linear equidistributed functions essential for performing cryptographic methods or data classification methods.
Selon d'autres caractéristiques ou mode de réalisation :According to other characteristics or embodiment:
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 ;the method comprises a subsequent step of optimizing the non-linearity or the algebraic degree or an algebraic property of the third function by exchange of orbits;
- 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 ;the method comprises a subsequent step of input composition, as well as output, with other non-linear functions equidistributed so that the global compound obtained by this step is also non-linear and equidistributed;
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 :
the first and second natural numbers are not prime between them, the second set being a commutative ring and the group being the set of permutations so that the orbits are the whole partitions whose parts are strictly smaller than the second natural integer the step of defining a first function comprises a substep of constructing a symmetric affine function:
où a est un élément quelconque du second ensemble et b une unité du second ensemble et (x,)"=i est un vecteur à n éléments du second ensemble ;where a is any element of the second set and b is a unit of the second set and (x , ) " = i is an n-element vector of the second set;
le premier et le second entiers 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 ;the first and the second natural numbers being strictly greater than 2 and first between them, the set being a commutative ring and the group being the set of permutations whose orbits have as cardinals the multinomial coefficients, the step of defining a first function comprises the selection of trivial equidistributed functions;
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 :the selection of trivial equidistributed functions consists in applying a circular permutation with a shift of a third natural integer to a q-tuple such that, for each value of this third natural integer:
M{n,Uk[T1,r2,...,rq))= M{n,r,,...,rq)M n, Uk [T 1 , r 2 , ..., r q )) = M n (n, r ,, ..., r q )
où T1, ..., Tq sont des coefficients multinomiaux ; puis ,where T 1 , ..., Tq are multinomial coefficients; then,
- é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 ;optionally, a subsequent step of variation of said function is performed by exchange of orbits having identical cardinals and / or grouping of orbits having cardinals that are multiples of one another;
- 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 :a third natural number is chosen and the second natural number such that the first natural number is equal to the second natural number to the power of the third natural number, said group being a transitive group, the step of defining a function comprises the sub-steps of:
• 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,
• calcul d'une valeur, somme pour toutes les valeurs du premier entier naturel du produit du coefficient binomiale avec la première fonction r=∑C^λ(θ"-'l')mod(2) booléenne modulo 2, soit /≈1 ,Defining a transitive Boolean function having a number of variables equal to the first natural number and displaying a Boolean value to each of the orbits of the group, with the exception of the orbits and, • computation of a value, sum for all the values of the first natural integer of the product of the binomial coefficient with the first function r = ΣC ^ λ (θ "- 'l') mod (2) boolean modulo 2, that is / ≈ 1 ,
• calcul de la valeur de la première fonction booléenne pour les orbites et tel que :• calculation of the value of the first Boolean function for the orbits and such as:
h(θ" )= (T + l)mod 2 et h(l" ) = T si p est pair , et h(θ" )= T et h(l" ) = (T + l)mod 2 si p est impair , -h (θ ") = (T + 1) mod 2 and h (l") = T if p is even, and h (θ ") = T and h (l") = (T + 1) mod 2 if p is odd, -
on choisit un quatrième nombre naturel, un 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 un groupe t-transitif, l'étape de définition d'une fonction comporte les sous-étapes de :we choose a fourth natural number, a third natural number and the second natural number such that the first natural number is equal to the sum of the second natural number to the power of the third natural number and the fourth natural number minus 1, the group being a t-transitive group, the step of defining a function comprises the substeps of:
• définition d'un groupe t-transitif d'ordre égal au second nombre naturel à la puissance du troisième nombre naturel,Definition of a t-transitive group of order equal to the second natural number to the power of the third natural number,
• 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,Definition of a transitive Boolean function having a number of variables equal to the second natural number to the power of the third natural number and as a symmetry group the t-transitive group,
• 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.• definition of a boolean function t-transitive having a number of variables equal to the first natural number by extension of the transitive Boolean function of a number of operands equal to the fourth natural number minus 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.In another aspect, a computer program product including program code instructions for performing the steps of the preceding method when said program is run on a computer.
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 :The invention will be better understood on reading the description which follows, given solely by way of example, and with reference to the appended figures in which:
la figure 1 est un ordinogramme d'un mode de réalisation du procédé selon l'invention.Figure 1 is a flow chart of an embodiment of the method according to the invention.
En référence à la figure 1, 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 :With reference to FIG. 1, an information coding method using equidistributed non-linear functions comprises the following steps of constructing such a function:
- 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 ;selecting a first natural integer n, and a set En having a number of elements equal to this first natural integer n, step 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 ; etselecting a group G operating on the set In whose degree is equal to this first natural integer n, step 12; and
sélection d'un second entier naturel q et d'un ensemble Eq comportant un nombre d'éléments égal à ce second entier naturel q, étape 14 ;selecting a second natural integer q and a set Eq having a number of elements equal to this second natural integer q, step 14;
- définition de l'ensemble OG des orbites du groupe G opérant sur les vecteurs de n éléments de Eq, étape 15 ; et
- définition de la fonction II qui à chacun de ces vecteurs associe l'orbite correspondante dans OG, étape 16, soit π : Eq11 -> OG {v u e E ^ , TI (u ) = O t , O t G OG } ;definition of the set OG of the group G orbits operating on the vectors of n elements of Eq, step 15; and - Definition of the function II which each of these vectors associates the corresponding orbit in OG, step 16, ie π: Eq 11 -> OG {view E ^, TI (u) = O t , O t G OG};
- définition d'une fonction Φ de OG sur Eq affectant à chacune des orbites du groupe G une valeur de l'ensemble- definition of a function Φ of OG on Eq affecting each of the orbits of the group G a value of the set
Eq, étape 18, soit Φ : OG -> Eq telle que
Eq, step 18, ie Φ: OG -> Eq such that
équirépartition des sommes des cardinaux des orbites du groupe G sur l'ensemble des valeurs de Eq par 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, les partitions, la symétrie des cardinaux des orbites, la divisibilité des cardinaux, les propriétés des éléments de Eg, etc.equidistribution of the sums of the cardinals of the orbits of the group G over the set of values of Eq by using the mathematical properties of said cardinals, step 20. Thus q equidistributed sections of sums of these cardinals. The mathematical properties of the cardinals used are, for example, the binomial coefficients, the multinomial coefficients, the partitions, the symmetry of the cardinals of the orbits, the divisibility of the cardinals, the properties of the elements of E g , and so on.
définition d'une fonction F=ΦoTl, F étant la composée des deux fonctions précédentes, étape 22.defining a function F = ΦoTl, F being the compound of the two preceding functions, step 22.
Ainsi, la fonction F=ΦoIÏ est telle que, pour chaque valeur Wj, j = 1 à q, de Eq, la somme des cardinaux des vecteurs u de Eq11 telles que F(u) = Wj est constant. Elle est donc équidistribuée.Thus, the function F = ΦoIÏ is such that for each value Wj, j = 1 to q, of Eq, the sum of the cardinals of the vectors u of Eq 11 such that F (u) = Wj is constant. It is therefore equidistributed.
Si nécessaire, étape 24, les valeurs de certaines 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.If necessary, step 24, the values of certain orbits are exchanged to obtain the non-linearity or a maximum algebraic degree of the function or any other algebraic property of the function F.
Il est à noter que les fonctions ainsi construites sont avantageusement composables en entrée comme en sortie avec d'autres fonctions non-linéaire équidistribuées de
telle sorte que la composée est également non-linéaire et équidistribuée .It should be noted that the functions thus constructed are advantageously composable at the input and at the output with other non-linear functions equidistributed from so that the compound is also non-linear and equidistributed.
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 .The advantage of the invention will be better understood on reading a particular case whose description is given below by way of example only. Thus, while for q = 2 and for certain n-pairs (for example 4, 6, 10, 12, 16, 18, 22, 28, 30, 36, 40, 42, 46, 52, 58, 60), there is no symmetric equidistributed non-linear function, the method makes it possible to perform for q> 2 and for any number of inputs n, a symmetric equidistributed non-linear function. For example, there is no non-linear equidistributed function of 60 binary variables among the symmetric functions. However, the method described above provides at least eight symmetric 4-ary functions of equidistributed non-linear variables, which correspond to Boolean functions of 60 equidistributed and non-linear variables.
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.The general method described above is implemented according to several embodiments. Four particular embodiments will now be described by way of example, one skilled in the art being able to define others from the previous general description.
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) ≠l .In a first embodiment, values of n strictly greater than 5 and of strictly strictly greater than 2 are chosen so that they are not prime between them, that is to say that their gcd (n, q) ≠ l.
L'ensemble Eq est choisi comme un anneau commutatif à q éléments. Par exemple, l'ensemble Eq est l'anneau ZIqZ 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 Eg qui admet un inverse pour la deuxième loi de l'anneau communément appelée multiplication. Une fonction affine symétrique à n variables :
The set Eq is chosen as a commutative ring with q elements. For example, the set Eq is the ring ZIqZ or the Galois field GF (q), Any element of E q is denoted a. Let us denote by b a unit of E q , that is to say an element of E g which admits an inverse for the second law of the ring commonly called multiplication. A symmetric affine function with n variables:
où les variables de la fonction sont notées
where the variables of the function are noted
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) = Φ(q) et dans GF (q) il estAs the number of units, or cardinal of the group of units, in E q is u (E q ), that equi (E q ) equidistributed symmetric affine functions are thus constructed. For example, in Z / qZ, u (E q ) = Φ (q) and in GF (q) it is
Φ(q)=q-1.Φ (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 action du groupe G, ou Sn, sur l'ensemble Eq11.The group G of degree n is then defined as the set of permutations S n and the function L defines an action of the group G, or S n , on the set Eq 11 .
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 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.A partition of an integer n is a decomposition of this integer in the form of a sum of natural numbers called parts of this partition. We can also restrict ourselves to a subset of all the partitions by imposing a limit on the number of parts in the partition, or by imposing a limit on the integer parts involved in the sum.
Les fonctions symétriques sont alors construites comme indiquées précédemment à partir des orbites des éléments de Eq11. 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 Eqf comporte n éléments (donc n parts) chacun inférieur à qThe symmetric functions are then constructed as indicated previously from the orbits of the elements of Eq 11 . Orbits are determined by all the integer partitions of the integer n. (q-1) in n parts strictly smaller than q. Indeed, every vector u of Eqf has n elements (hence n parts) each less than
(puisque issu de Eq) et dont la somme totale est égale ou 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_i) :(since derived from Eq) and whose total sum is equal to or less than n. (q-1). Since n is strictly greater than 5, there are natural integers r and s, with s = 2 (mod q), such that n = 3s + r. Two numbers r and s satisfying this relation are chosen. Partitions u, z, v, w from n to at most q elements are defined from a partition of r into q- 2 elements (r 2 , ... r q _i):
u = s+1, r2 , ... rq_i ,2s+lu = s + 1, r 2 , ... r q _i, 2s + 1
z = 2s+l, r2 , ... rq_i,s+lz = 2s + 1, r 2 , ... r q _i, s + l
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:From the functions L a , b above and particular partitions u, z, v, w, functions G a , b are defined by:
Ga,b (x) = La,b (x) si x est différent de u, v ou wG a , b (x) = L a , b (x) if x is different from u, v or w
Ga, b (u) = L3,b (v)G a, b (u) = L 3 , b (v)
Ga,b (V) = La,b (U)G a , b (V) = L a , b (U)
G3,b (W) = La,b (U) .G 3 , b (W) = L a , b (U).
Et des fonctions Ha,b sont définies par :And functions H a , b are defined by:
Ha,b (x) = La,b (x) si x est différent de z, v ou wH a , b (x) = L a , b (x) if x is different from z, v or w
Ha, b (Z) = La,b (V)H a, b (Z) = L a, b (V)
Ha,fc (v) = La,b (z)H a , fc (v) = L a , b (z)
Ha,b (w) = Lâ,b (z) .H a, b (w) = L a, b (z).
Toutes les fonctions G3,b, Ha,b ainsi réalisées sont des fonctions équidistribuées non-linéaires. Il est ainsi possible de construire pour des valeurs de n indéfiniment grand telles que pgcd(n, q)≠l, jusqu'à 2.q.u(Eq) fonctions
équidistribuées non-linéaires. Dans tout anneau coiranutatif 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.All the functions G 3 , b, H a , b thus produced are non-linear equidistributed functions. It is thus possible to construct for infinitely large values of n such that pgcd (n, q) ≠ l, up to 2.qu (E q ) functions equidistributed non-linear. In any coiranutative ring of q elements, q strictly greater than 2, the number of nonlinear equidistributed function realizations is therefore 2.qu (E q )> 2 q> 4.
A titre d'exemple appliqué, q est choisi égal à 16 ou 24 et Eg est le corps de Galois GF (24) . On considère lesAs an example applied, q is chosen equal to 16 or 2 4 and Eg is the Galois body GF (2 4 ). We consider
C121 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.C 121 symmetrical functions of n = 106 variables on this body, thus n = 106 = 3 * 2 + 100. Considering the formula n = 3s + r above, we obtain s = 2 and r = 100 which also satisfies the property s = 2 (mod 16) above.
Avec s = 2, on obtient s+1 = 3 et 2s+l = 5, 2s+2 = 6. En conséquence,With s = 2, we obtain s + 1 = 3 and 2s + l = 5, 2s + 2 = 6. Consequently,
u = 3 fois 1, 5 fois 0 et les 98 autres valeurs sont quelconques ,u = 3 times 1, 5 times 0 and the other 98 values are arbitrary,
z = 5 fois 1, 3 fois 0 et les 98 autres valeurs sont quelconques ,z = 5 times 1, 3 times 0 and the other 98 values are arbitrary,
v = 2 fois 1, 6 fois 0 et les 98 autres valeurs sont quelconques ,v = 2 times 1, 6 times 0 and the other 98 values are arbitrary,
w = 6 fois 1, 2 fois 0 et les 98 autres valeurs sont quelconques .w = 6 times 1, 2 times 0 and the other 98 values are arbitrary.
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
j+9 excepté quand le nombre de 1 ou de zéros dans le 106-uplet d'entrée valent 2, 3, 5, 6 auquel cas la valeur est celle de :We then construct a nonlinear equidistributed function of 106 variables in E q = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f} which coincides with the function j + 9 except when the number of 1s or zeros in the input 106-tuple is 2, 3, 5, 6, in which case the value is:
Gg, 3 (x) = L9, 3 (x) si x est différent de u, v ou wGg, 3 (x) = L 9 , 3 (x) if x is different from u, v or w
G9, 3 (u) = L9, 3 (v)
G9 , 3 (V ) = L9 , 3 ( U ) G9 , 3 (W) = L9 ( 3 ( U ) .G 9 , 3 (u) = L 9 , 3 (v) G 9 , 3 (V) = L 9 , 3 (U) G 9 , 3 (W) = L 9 (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 = 10 qui vérifie bien la propriété s = 2 (mod 16) .In another exemplary embodiment, n = 16 = 3 * 2 + 10 is selected. Thus, we define s = 2 and r = 10 which satisfies the property s = 2 (mod 16).
Puisque s=2, s+l=3, 2s+i=5 et 2s+2=6. Ainsi,Since s = 2, s + l = 3, 2s + i = 5 and 2s + 2 = 6. So,
u = 3 fois 1, 5 fois 0 et les 8 autres valeurs sont quelconques ;u = 3 times 1.5 times 0 and the other 8 values are arbitrary;
z = 5 fois 1, 3 fois 0 et les 8 autres valeurs sont quelconques ;z = 5 times 1, 3 times 0 and the other 8 values are arbitrary;
v = 2 fois 1, 6 fois 0 et les 8 autres valeurs sont quelconques ;v = 2 times 1, 6 times 0 and the other 8 values are arbitrary;
w = 6 fois 1, 2 fois 0 et les 8 autres valeurs sont quelconques .w = 6 times 1, 2 times 0 and the other 8 values are arbitrary.
Dans cet exemple, on construit deux fonctions équidistribuées non-linéaires de 16 variables dansIn this example, we construct two non-linear equidistributed functions of 16 variables in
Eq = {0, 1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 , a, b, c, d, e, f} qui coïncident ;E q = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f} which coincide;
- avec la fonction L9-~(x) = 3\^d xlJ+9 excepté quand le 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 :- with the function L 9 - ~ (x) = 3 \ ^ d x l J + 9 except when the number of 1 or zeros in the input 16-tuple is 2, 3, 5, 6 in which case the value is that of:
H9;3(x) = Lg,3 (x) si x est différent de u, v ou wH 9; 3 (x) = Lg, 3 (x) if x is different from u, v or w
H9,3 (u) = L9, 3 (v)H 9 , 3 (u) = L 9 , 3 (v)
H9, 3(V) = L9, 3 (Z) H9, 3 (w) = L9,3(z) ,
ou avec la fonction
+11H 9, 3 (V) L = 9, 3 (Z) H 9, 3 (w) = L 9, 3 (z) or with the function 11
Gn, 5 (x) - Lii, 5 (x) si x est différent de u, v, wGn, 5 (x) - Lii, 5 (x) if x is different from u, v, w
Gn, 5 (u) = Lu, 5 (v)Gn, 5 (u) = Lu, 5 (v)
Gii, 5 (v) = Lu, s (u)Gii, 5 (v) = Lu, s (u)
Gu,5 (w) = Lu, 5 (u) .Gu, 5 (w) = Lu, 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.In a second embodiment, values of n strictly greater than 2 and q strictly greater than 2 are chosen such that n and q are prime between them. The set Eq is chosen to be a commutative ring. The starting functions are then no longer the affine functions, as in the first embodiment, but trivial equidistributed functions f which exist thanks to the choice n and q prime between them.
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.The group G of degree n is, in this embodiment, the set of permutations S n , and its orbits have as cardinal the multinomial coefficients.
On construit ces fonctions f d'après les relations sur des coefficients multinomiaux.These functions are constructed from relations on multinomial coefficients.
Soit dk une permutation circulaire avec un décalage k sur un q-uplet.Let dk be a circular permutation with an offset k on a q-tuple.
Pour chaque valeur de k on a la relation :For each value of k we have the relation:
M(n, dk(rx, r2,..., rq) ) = M(n, rx, r2, ... , rq) avecM (n, dk (r x , r 2 , ..., r q )) = M (n, r x , r 2 , ..., r q ) with
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 primauté de q et n.When n and q are prime between them, we get different shifts of q ri because the ri can not be all equal. Because if the laughs were all equal to d then qd = n which contradicts the primacy of q and n.
Nous réussissons ainsi à définir,
fonctions symétriques équidistribuées f.We thus succeed in defining, equidistributed symmetrical functions f.
II est à noter que pour q strictement supérieur à 2, v et w ne peuvent pas être obtenus par un décalage 1 ' 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 :It should be noted that for q strictly greater than 2, v and w can not be obtained by an offset of one another but by a transposition. Thus in this case where n and q are prime between them, by the construction of the trivial equidistributed functions f, these realize the equality such that for each i exists j so that f (di (v)) = dj (f (w)). Thus a new function g can be established by:
g(x) = f(x) si x est différent de u, di(v) ou dj (w) ;g (x) = f (x) if x is different from u, di (v) or dj (w);
g(u) = f (di(v)) ;g (u) = f (di (v));
g(di(v)) = f (u) ;g (di (v)) = f (u);
g(dj (w) ) = 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.If f (di (v)) is different from f (u), there is (q-1) case where it is different.
g est une nouvelle fonction équidistribuée. En effet, 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 .g is a new equidistributed function. Indeed, among all the circular permutations dk (v), k varying from 0 to q-1, all the values of the parts of the partition do not appear because some are repeated and others are absent.
Ainsi pour chaque fonction f, (q-1) fonctions g peuvent être établies.Thus for each function f, (q-1) functions g can be established.
Ce mode de réalisation permet alors de construire qx(ql) ""' '' 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 .This embodiment then makes it possible to construct qx (ql) ""'''non-linear equidistributed functions for infinitely large values of n. In a third embodiment, we consider transitive functions such as rotationally symmetrical Boolean functions. In particular, they make it possible to perform curved Boolean functions that are not quadratic, unlike curved symmetric Boolean functions, which are always quadratic. The realization of such functions extends the choice of functions to transitivity beyond mere symmetry or rotation symmetry. A large number of authors have studied the Boolean symmetric functions but the generalization allowed by the present embodiment on the one hand to the q-ary functions when q is strictly greater than 2 and on the other hand to the binary or q-ary functions. partially symmetrical provides new possibilities.
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 (0n) et dn). n-lWe choose k natural integer and p prime natural integer and we calculate n = p k , p at power k. A transitive group G of order n is chosen. A transitive boolean function h of n = p k variables is defined by assigning a Boolean value of either 0 or 1 to each of the orbits of group G except for the two orbits represented by (0 n ) and d n ). nl
On calcule la valeur T = ^dC^_ιh(θ'"'V)modf2j.Calculating the value T = C ^ d ^ _ ι h (θ '"' V) modf2j.
Si p est pair, on définit h((0n)) = (T+l) mod(2) et h((ln)) = T et si p est impair h((ln)) = (T+l) mod(2) et h( (0n) ) ≈ T.If p is even, we define h ((0 n )) = (T + 1) mod (2) and h ((l n )) = T and if p is odd h ((l n )) = (T + l) mod (2) and h ((0 n )) ≈ T.
La fonction h est une fonction booléenne transitive équidistribuée de degré n-l donc hautement non-linéaire.The function h is a transitive equidistributed boolean function of degree n-1 so highly nonlinear.
Dans un quatrième mode de réalisation, on choisit un quatrième nombre naturel, un 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 un groupe t- transitif, l'étape de définition d'une fonction comporte les sous-étapes de :In a fourth embodiment, a fourth natural number, a third natural number and the second natural number are chosen, such as the first number. natural is equal to the sum of the second natural number to the power of the third natural number and the fourth natural number minus 1, the group being a t-transitive group, the step of defining a function comprises the substeps of:
* définition d'un groupe t-transitif d'ordre égal au second nombre naturel à la puissance du troisième nombre naturel,* definition of a t-transitive group of order equal to the second natural number to the power of the third natural number,
* 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,* definition of a transitive Boolean function having a number of variables equal to the second natural number to the power of the third natural number and as a symmetry group the t-transitive group,
* 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.* Definition of a boolean function t-transitive having a number of variables equal to the first natural number by extension of the transitive Boolean function of a number of operands equal to the fourth natural number minus 1.
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.The method described is feasible in software or hardware form. In particular, a computer program product makes it possible to execute the various steps of the method when it is executed on a computer.
Pour les fonctions obtenues par la méthode proposée, 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 .For the functions obtained by the proposed method, the technological execution is easy both in software and hardware. In addition, the properties of the functions are interesting for different applications including cryptography or data classification.
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.All constructed functions are integrable as a constituent element or as a replacement for a component of any cryptographic process or hash data classification.
Le procédé décrit est particulièrement utilisable dans des applications de cryptographie et/ou de classement de données .The described method is particularly useful in cryptographic and / or data classification applications.
Il trouve ainsi application notamment dans le domaine des télécommunications sécurisées ainsi que dans d'autres domaines comme celui du stockage informatique optimisé, des protocoles de télécommunication, du vote électronique, 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 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 .
It finds application particularly in the field of secure telecommunications as well as in other areas such as optimized computer storage, telecommunication protocols, electronic voting, surveys or electronic auctions or biometrics. It is adapted to the realization of cryptographic mechanisms in terminal equipment, fixed and / or mobile, operating on any type of network or in cryptographic modules. In these applications, it provides enhanced efficiency for performing a cryptographic solution or a hash or search tree ranking solution.