Brevet FR3157948A1 — publié le 20250704

Transposition d'une matrice La présente description concerne un procédé (400), par un dispositif électronique, de transposition d'une matrice (Mat), chaque ligne de ladite matrice formant un premier vecteur m[i], le procédé comprenant les étapes successives suivantes : (a) Obtenir des deuxièmes vecteurs x[i] en décalant par la droite chaque premier vecteur m[i] d'un pas correspondant au numéro de ladite ligne ; (b) Générer un deuxième vecteur w en appliquant la formule suivante : , (c) Générer des troisièmes vecteurs z[i,l], l étant un entier variant de 0 à n-1, en appliquant la formule suivante pour chaque valeur de i : (d) Générer un quatrième vecteur v[l], représentant une ligne de la transposée de la matrice A, en appliquant la formule suivante : , dans lequel : dans lequel les étapes (c) et (d) sont répétées pour toutes les valeurs de l. Figure pour l'abrégé : Fig. 4 Transposition d'une matrice La présente description concerne de façon générale les circuits et dispositifs électroniques, et, plus particulièrement, la mise en oeuvre, par un circuit ou un dispositif électronique, d'un procédé de transposition d'une matrice. Dans le domaine du traitement et du chiffrement de données, il est courant d'utiliser des matrices et de leur appliquer différentes opérations. Une opération couramment appliquée à une matrice est une opération de transposition, pendant laquelle les lignes et les colonnes de ladite matrice sont interverties. Il serait souhaitable de pouvoir améliorer, au moins en partie, certains aspects des mises en oeuvre de procédé de transposition de matrice. Il existe un besoin pour une mise en oeuvre d'un procédé de transposition de matrice plus efficace. Il existe un besoin pour une mise en oeuvre d'un procédé de transposition de matrice plus sécurisée. Il existe un besoin pour une mise en oeuvre d'un procédé de transposition de matrice prévoyant des opérations de masquage. Il existe un besoin pour des circuits et dispositifs électroniques adaptés à mettre en oeuvre un tel procédé de transposition de matrice. Un mode de réalisation pallie tout ou partie des inconvénients des procédés connus de mise en oeuvre d'une transposition de matrice. Un mode de réalisation pallie tout ou partie des inconvénients des procédés connus de mise en oeuvre d'une transposition de matrice prévoyant des opérations de masquage. Un mode de réalisation pallie tout ou partie des inconvénients des circuits et dispositifs électroniques connus adaptés à la mise en oeuvre d'une transposition de matrice. Un mode de réalisation pallie tout ou partie des inconvénients des circuits et dispositifs électroniques connus adaptés à la mise en oeuvre d'une transposition de matrice prévoyant des opérations de masquage. Un mode de réalisation prévoit un procédé, par un dispositif électronique, de transposition d'une matrice comprenant n lignes et n colonnes, chaque ligne de ladite matrice formant un premier vecteur m[i], i étant en entier variant de 0 à n-1, le procédé comprenant les étapes successives suivantes : (a) Obtenir des deuxièmes vecteurs x[i] en décalant par la droite chaque premier vecteur m[i] d'un pas correspondant au numéro de ladite ligne ; (b) Générer un deuxième vecteur w en appliquant la formule mathématique suivante : [Math 1] , dans lequel la fonction correspond à l'application successive de la fonction logique OU EXCLUSIF à plusieurs données ; (c) Générer des troisièmes vecteurs z[i,l], l étant un entier variant de 0 à n-1, en appliquant la formule mathématique suivante pour chaque valeur de i : [Math 2] dans lequel : - & représente la fonction logique ET ; - ! représente la fonction logique permettant d'obtenir le complémentaire d'une donnée binaire ; - représente un vecteur unitaire dont tous les éléments sont égaux à zéro sauf l'élément de rang i+l qui est égal à un ; et (d) Générer un quatrième vecteur v[l], représentant une ligne de la transposée de la matrice A, en appliquant la formule mathématique suivante : [Math 3] , dans lequel : - ROTL représente une fonction de décalage par la gauche ; - xor représente la fonction logique OU EXCLUSIF, dans lequel les étapes et sont répétées pour toutes les valeurs de l. Un autre mode de réalisation prévoit un dispositif électronique adapté à mettre en oeuvre un procédé de transposition d'une matrice comprenant n lignes et p colonnes, chaque ligne de ladite matrice formant un premier vecteur m[i], i étant en entier variant de 0 à n-1, le procédé comprenant les étapes successives suivantes : (a) Obtenir des deuxièmes vecteurs x[i] en décalant par la droite chaque premier vecteur m[i] d'un pas correspondant au numéro de ladite ligne ; (b) Générer un deuxième vecteur w en appliquant la formule mathématique suivante : [Math 4] , dans lequel la fonction correspond à l'application successive de la fonction logique OU EXCLUSIF à plusieurs données ; (c) Générer des troisièmes vecteurs z[i,l], l étant un entier variant de 0 à p-1, en appliquant la formule mathématique suivante pour chaque valeur de i : [Math 5] dans lequel : - & représente la fonction logique ET ; - ! représente la fonction logique permettant d'obtenir le complémentaire d'une donnée binaire ; - représente un vecteur unitaire dont tous les éléments sont égaux à zéro sauf l'élément de rang i+l qui est égal à un ; et (d) Générer un quatrième vecteur v[l], représentant une ligne de la transposée de la matrice A, en appliquant la formule mathématique suivante : [Math 6] , dans lequel : - ROTL représente une fonction de décalage par la gauche ; - xor représente la fonction logique OU EXCLUSIF, dans lequel les étapes et sont répétées pour toutes les valeurs de l. Selon un mode de réalisation, le procédé comprend, en outre, des opérations de masquage. Selon un mode de réalisation, une opération de masquage est une opération de masquage par application de la fonction xor. Selon un mode de réalisation, le procédé comprend, en outre, une étape de masquage des deuxièmes vecteurs x[i] mise en oeuvre pendant l'étape. Selon un mode de réalisation, l'étape des troisièmes vecteurs masqués z'[i,l] sont générés en appliquant la formule mathématique suivante pour chaque valeur de i : [Math 7] dans lequel r[l] est un masque. Selon un mode de réalisation, le masque r[l] est généré de façon aléatoire. Selon un mode de réalisation, les entiers n et p sont égaux. Selon un mode de réalisation, l'entier n est compris entre 1 et 20. Ces caractéristiques et avantages, ainsi que d'autres, seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non limitatif en relation avec les figures jointes parmi lesquelles : la FIG. 1 représente, très schématiquement et sous forme de blocs, un mode de réalisation d'un dispositif électronique adapté à mettre en oeuvre les modes de réalisation des figures 4 et 5 ; la FIG. 2 représente, schématiquement, une opération de transposition d'une matrice ; la FIG. 3 représente, très schématiquement et sous forme de bloc, une opération de masquage ; la FIG. 4 représente un schéma bloc illustrant un premier mode de mise en oeuvre d'un procédé de transposition d'une matrice ; et la FIG. 5 représente un schéma bloc illustrant un deuxième mode de mise en oeuvre d'un procédé de transposition d'une matrice. De mêmes éléments ont été désignés par de mêmes références dans les différentes figures. En particulier, les éléments structurels et/ou fonctionnels communs aux différents modes de réalisation peuvent présenter les mêmes références et peuvent disposer de propriétés structurelles, dimensionnelles et matérielles identiques. Par souci de clarté, seuls les étapes et éléments utiles à la compréhension des modes de réalisation décrits ont été représentés et sont détaillés. Sauf précision contraire, lorsque l'on fait référence à deux éléments connectés entre eux, cela signifie directement connectés sans éléments intermédiaires autres que des conducteurs, et lorsque l'on fait référence à deux éléments reliés (en anglais "coupled") entre eux, cela signifie que ces deux éléments peuvent être connectés ou être reliés par l'intermédiaire d'un ou plusieurs autres éléments. Dans la description qui suit, lorsque l'on fait référence à des qualificatifs de position absolue, tels que les termes "avant", "arrière", "haut", "bas", "gauche", "droite", etc., ou relative, tels que les termes "dessus", "dessous", "supérieur", "inférieur", etc., ou à des qualificatifs d'orientation, tels que les termes "horizontal", "vertical", etc., il est fait référence sauf précision contraire à l'orientation des figures. Sauf précision contraire, les expressions "environ", "approximativement", "sensiblement", et "de l'ordre de" signifient à 10 % près, de préférence à 5 % près. Les modes de réalisation décrits ci-après concernent la mise en oeuvre d'une transposition d'une matrice. Une opération de transposition d'une matrice est une opération pendant laquelle les lignes et les colonnes d'une matrice d'entrée sont interverties. Les modes de réalisation décrits ci-après concernent, en outre, la mise en oeuvre d'une opération de transposition prévoyant des opérations de masquages, et permettant donc de prendre en charge, de façon sécurisée, une matrice à transposer. La FIG. 1 est un schéma bloc représentant, très schématiquement, une architecture d'un exemple d'un dispositif électronique 100 adapté à mettre en oeuvre un procédé de transposition d'une matrice. Selon un exemple, le dispositif électronique 100 comprend un processeur 101 (CPU) adapté à mettre en oeuvre différents traitements de données stockées dans des mémoires et/ou fournies par d'autres circuits du dispositif 100. Selon un mode de réalisation, le processeur 101 est a adapté à mettre en oeuvre un procédé de transposition d'une matrice. Selon un exemple, le dispositif électronique 100 comprend, en outre, différents types de mémoires 102 (MEM), parmi lesquelles, par exemple, une mémoire non volatile, une mémoire volatile 103, et/ou une mémoire morte 104. Chaque mémoire 102 est adaptée à stocker différents types de données. Selon un exemple, le dispositif électronique 100 comprend, en outre, par exemple, un élément sécurisé 103 (SE) adapté à traiter des données sensibles et/ou secrètes. L'élément sécurisé 103 peut comprendre son ou ses propres processeurs, son ou ses propres mémoires, etc. Selon un mode de réalisation, l'élément sécurisé 101 est adapté à mettre en oeuvre un procédé de transposition d'une matrice. Selon un exemple, le dispositif électronique 100 peut comprendre, en outre, des circuits d'interface 104 (IN/OUT) adaptés à envoyer et/ou à recevoir des données provenant de l'extérieur du dispositif 100. Les circuits d'interface 104 peuvent être, en outre adaptés à mettre en oeuvre un affichage de données, par exemple, un écran d'affichage. Selon un exemple, le dispositif électronique 100 comprend, en outre, différents circuits 105 (FCT1) et 106 (FCT2) adaptés à réaliser différentes fonctions. A titre d'exemple, les circuits 105 et 106 peuvent comprendre des circuits de mesures, des circuits de conversion de données, etc. Selon un mode de réalisation, les circuits 105 et 106 peuvent comprendre un circuit adapté à mettre en oeuvre un procédé de transposition d'une matrice. Selon un exemple, le dispositif électronique 100 comprend, en outre, un ou plusieurs bus de données 107 adaptés à transférer des données entre ses différents composants. Selon un exemple particulier, le dispositif électronique 100 est adapté à mettre en oeuvre des programmes informatiques, et en particulier un programme informatique permettant de mettre en oeuvre un procédé de transposition d'une matrice. La FIG. 2 représente l'application d'une opération de transposition Trans à une Matrice Matrix. La Matrice Matrix est une matrice comprenant n lignes et p colonnes, n et p étant des entiers supérieurs ou égales à un. Les éléments, ou coefficients, de la matrice Matrix sont notés m i,j , i étant un entier variant de 0 à p-1, et j étant un entier variant de 0 à n-1. Selon un mode de réalisation préféré, les entiers n et p sont identiques. Selon exemple, l'entier n est compris entre 1 et 20, par exemple est égal à 4, 6 ou 16, et l'entier p est compris entre 1 et 40, par exemple est égal à 32. L'opération de transposition Trans permet de fournir une matrice Trans(Matrix) comprenant p lignes et n colonnes. Les éléments, ou coefficients, de la matrice Trans(Matrix) sont notés m' j,i , et sont données par la formule mathématique suivante : [Math 8] Autrement dit, l'opération de transposition Trans permet d'intervertir les lignes et les colonnes de la matrice Matrix. Dit encore autrement, un vecteur représentant une ligne d'éléments d'indice k de la matrice Matrix comprend les mêmes éléments qu'un vecteur représentant une colonne d'indice k d'éléments de la matrice Trans(Matrix), k étant un entier variant entre 1 et n ou p. Les procédés décrits en relation avec les figures 4 et 5 illustrent des modes de mises en oeuvre pratiques d'une opération de transposition du type de l'opération de transposition Trans. La FIG. 3 représente, très schématiquement et sous forme de bloc, une opération de masquage MASK d'une donnée Data par un donnée de masquage Mask. Selon un mode de réalisation, la donnée Data est une donnée binaire représentant une donnée sensible ou secrète, c'est-à-dire une donnée dont le contenu ne doit pas être accessible à tous, et/ou dont l'accès du contenu est restreint à une entité ou à un groupe d'entités. Selon un mode de réalisation, la donnée de masquage Mask, ou masque Mask, est une donnée utilisée pour masquer le contenu de la donnée Data. Il est courant d'utiliser des données générées de façon pseudo-aléatoire ou aléatoire comme masque Mask. Il existe plusieurs types d'opération de masquage. L'opération de masquage MASK concernée ici est une opération de masquage utilisant la fonction logique OU EXCLUSIF (EXCLUSIVE OR, XOR), notée par la suite fonction xor. Selon un mode de réalisation l'application de l'opération de masquage MASK permet d'obtenir une donnée masquée MASK(Data). La donnée masquée MASK(Data) est donnée par la formule mathématique suivante : [Math 9] Une opération de démasquage de la donnée masquée correspond l'application, une nouvelle fois, de l'opération de masquage MASK. En effet : [Math 10] La FIG. 5 concerne la mise en oeuvre d'un procédé de transposition d'une matrice dont les données sont masquées. L'application de l'opération de masquage à une matrice de données est détaillée en relation avec la FIG. 5 . La FIG. 4 est un schéma-bloc illustrant un mode de mise en oeuvre pratique d'un procédé 400 exécutant une opération de transposition d'une matrice du type de l'opération de transposition Trans décrite en relation avec la FIG. 2 . Selon un mode de réalisation, ce procédé 400 peut être mis en oeuvre par le dispositif 100 décrit en relation avec la FIG. 1 , et, plus particulièrement, par le processeur et/ou un des circuits composant le dispositif 100. Pour illustrer le fonctionnement du procédé 400, il est considéré une matrice Mat de taille 4x4 donnée par la formule mathématique suivante : [Math 11] dans laquelle les éléments A à P sont des données. Le procédé 400 est aussi adapté à obtenir la transposée d'une matrice rectangulaire de taille n*p du type de la matrice Matrix décrite en relation avec la FIG. 2 . Il suffit pour cela de diviser la matrice rectangulaire en plusieurs matrices carrées et d'appliquer le procédé 400 à chaque matrices carrées, ou de compléter la matrice rectangulaire avec des éléments vides pour obtenir des matrices carrées. Les capacités de la personne du métier sont suffisantes pour faire les adaptations nécessaires au vue des explications données ci-après. La mise en oeuvre du procédé 400 est détaillée en considérant par la suite seulement une matrice Matrix carrée où les entiers n et p sont égaux. A une étape initiale 401 (Mat), et comme dit précédemment, on considère la matrice Mat dont les données sont stockées sous forme de quatre vecteurs ligne m[0], m[1], m[2] et m[3] représentant chacun une ligne de la matrice Mat. Autrement dit, les vecteurs m[0] à m[3] sont données par la formule mathématique suivantes : [Math 12] Dans le cas de la matrice Matrix décrite en relation avec la FIG. 2 , les vecteurs m[i], i variant de 0 à n-1, sont donnés par la formule mathématique suivante : [Math 13] A une étape 402 (RotR), successive à l'étape 401, des vecteurs x[0], x[1], x[2] et x[3] sont générés à partir des vecteurs m0, m1, m2, et m3. Les vecteurs x[0] à x[3] sont donnés par les formules mathématiques suivantes : [Math 14] dans lesquelles ROTR représente une fonction de décalage des éléments d'un vecteur vers la droite, son premier argument correspondant au vecteur dont les éléments sont à décaler, et son deuxième argument correspondant au pas de décalage, c'est-à-dire à l'entier ajouté à l'indice de chaque élément, modulo le nombre d'éléments compris dans le vecteur. Dans le cas de la matrice Matrix décrite en relation avec la FIG. 2 , les vecteurs x[i], i variant de 0 à n-1, sont donnés par la formule mathématique suivante : [Math 15] A une étape 403 (Work Reg), successive à l'étape 402, un vecteur de travail w est généré à partir des vecteurs x[0] à x[3]. Le vecteur de travail w est donné par la formule mathématique suivante : [Math 16] Dans le cas de la matrice Matrix décrite en relation avec la FIG. 2 , le vecteur de travail w est donné par la formule mathématique suivante : [Math 17] dans laquelle représente l'application successive de la fonction logique OU EXCLUSIF, ou fonction xor, à plusieurs données. A une étape 404 (!Vect(i)), successive à l'étape 403, des vecteurs z[0,l], z[1,l], z[2,l] et z[3,l] sont générés à partir des vecteurs x[0], x[1], x[2], et x[3], j étant un entier variant entre 0 et n-1. Les vecteurs z[0,l] à z[3,l] sont donnés par les formules mathématiques suivantes : [Math 18] Dans lesquelles : - & représente la fonction logique ET ; - ! représente la fonction logique permettant d'obtenir le complémentaire d'un mot binaire, autrement dit ! permet d'intervertir les éléments d'un vecteur représentant un un binaire et un zéro binaire ; - Vect 4 est un vecteur unitaire de taille 4 dont le premier élément est égal à un, et les autres éléments sont égaux à zéro ; - et l étant un entier variant de 0 à 3. Plus particulièrement, on appelle ici un vecteur unitaire, un vecteur dont tous les éléments comprennent une données représentant un zéro binaire, sauf un élément qui comprend une donnée représentant un un binaire. En particulier, la fonction ROTR(Vect 4 ,i+l) permet de générer un vecteur unitaire de taille 4 et dont l'indice de l'élément comprenant une donnée représentant un un binaire est donné par le résultat de la somme des entiers i et l modulo 4. Selon un mode de réalisation, lors de la première occurrence de l'étape 404, l'entier l est égal à zéro. Les conditions d'incrémentation de l'entier l sont décrites ci-après. Dans le cas de la matrice Matrix décrite en relation avec la FIG. 2 , les vecteurs z[i, l], i variant de 0 à n-1, sont donnés par la formule mathématique suivante : [Math 19] dans laquelle est un vecteur unitaire comprenant n éléments. A une étape 405 (XOR), successive à l'étape 404, un vecteur y[l] est généré en utilisant la formule mathématique suivante : [Math 20] Dans le cas où l est égal à zéro, y[0] est donnée par la formule mathématique suivante : [Math 21] Dans le cas de la matrice Matrix décrite en relation avec la FIG. 2 , le vecteur y[l] est donné par la formule mathématique suivante : [Math 22] A une étape 406 (l Dans le cas de la matrice Matrix de la FIG. 2 , la valeur de l'entier l est comparée à n-1. A l'étape 407, successive à l'étape 406, l'entier l est incrémenté de une unité, soit de un. A l'étape 408, des vecteurs v[0], v[1], v[2] et v[3] sont générés à partir des vecteurs y[0], y[1], y[2], et y[3]. Les vecteurs v[0] à v[3] sont donnés par les formules mathématiques suivantes : [Math 7] dans lesquelles ROTL représente une fonction de décalage des éléments d'un vecteur vers la gauche, son premier argument correspondant au vecteur dont les éléments sont à décaler, et son deuxième argument correspondant au pas de décalage, c'est-à-dire à l'entier ôté à l'indice de chaque élément modulo le nombre d'élément compris dans un vecteur. Dans le cas de la matrice Matrix décrite en relation avec la FIG. 2 , le vecteur v[i] est donné par la formule mathématique suivante : [Math 23] A une étape finale 409 (Trans(Matrix)), successive à l'étape 408, tous les vecteurs v[0], v[1], v[2] et v[3] ont été générés et permettent d'obtenir la transposée Trans(Mat) de la matrice Mat. En effet, les vecteurs v[0], v[1], v[2] et v[3] représentent toutes les lignes de la transposée Trans(Mat). Dans le cas de la matrice Matrix de la FIG. 2 , les vecteurs v[i] forment les lignes de la matrice Matrix. Un avantage de ce mode de mise en oeuvre est qu'il permet de réaliser une opération de transposition de matrice sans que les données de la matrice à transposer ne soit rendues accessibles. En effet, utiliser le vecteur de travail w permet de masquer les données lors de la mise en oeuvre du procédé 400. La FIG. 5 est un schéma-bloc illustrant un autre mode de mise en oeuvre pratique d'un procédé 500 exécutant une opération de transposition d'une matrice du type de l'opération de transposition Trans décrite en relation avec la FIG. 2 . Selon un mode de réalisation, ce procédé 500 peut être mis en oeuvre par le dispositif 100 décrit en relation avec la FIG. 1 , et, plus particulièrement, par le processeur et/ou un des circuits composant le dispositif 100. Le procédé 500 est similaire au procédé 400 décrit en relation avec la FIG. 4 . En effet, le procédé 500 permet la mise en oeuvre d'une opération de transposition d'une matrice fournissant en sortie la transposée de la matrice masquée. Pour cela, le procédé comprend toutes les étapes du procédé 400, mais comprend, en outre, une étape de masquage détaillée ci-après. Pour illustrer le fonctionnement du procédé 500, et comme pour le procédé 400, on considère à nouveau la matrice Mat de taille 4x4 donnée par la formule mathématique suivante : [Math 24] Le procédé 500 est aussi adapté à obtenir la transposée d'une matrice rectangulaire de taille n*p du type de la matrice Matrix décrite en relation avec la FIG. 2 . Il suffit pour cela de diviser la matrice rectangulaire en plusieurs matrices carrées et d'appliquer le procédé 400 à chaque matrices carrées, ou de compléter la matrice rectangulaire avec des éléments vides pour obtenir des matrices carrées. Les capacités de la personne du métier sont suffisantes pour faire les adaptations nécessaires au vue des explications données ci-après. La mise en oeuvre du procédé 400 est détaillée en considérant par la suite seulement une matrice Matrix carrée où les entiers n et p sont égaux. A une étape initiale 501 (Mat), identique à l'étape 401 de la FIG. 4 , les données de la matrice Mat sont stockées sous forme des quatre vecteurs ligne m[0], m[1], m[2] et m[3] représentant chacun une ligne de la matrice Mat. Autrement dit, les vecteurs m[0] à m[3] sont données par les formules mathématiques suivantes : [Math 25] Dans le cas de la matrice Matrix décrite en relation avec la FIG. 2 , les vecteurs m[i], i variant de 0 à n-1, sont donnés par la formule mathématique suivante : [Math 26] A une étape 502 (RotR), identique à l'étape 402 et successive à l'étape 501, des vecteurs x[0], x[1], x[2] et x[3] sont générés à partir des vecteurs m0, m1, m2, et m3. Les vecteurs x[0] à x[3] sont donnés par les formules mathématiques suivantes : [Math 27] Dans le cas de la matrice Matrix décrite en relation avec la FIG. 2 , les vecteurs x[i], i variant de 0 à n-1, sont donnés par la formule mathématique suivante : [Math 28] A une étape 503 (Work Reg), identique à l'étape 403 et successive à l'étape 502, un vecteur de travail w est généré à partir des vecteurs x[0] à x[3]. Le vecteur de travail w est donné par la formule mathématique suivante : [Math 29] Dans le cas de la matrice Matrix décrite en relation avec la FIG. 2 , le vecteur de travail w est donné par la formule mathématique suivante : [Math 30] dans laquelle représente l'application successive de la fonction logique OU EXCLUSIF, ou fonction xor, à plusieurs données. A une étape 504 (MASK !Vect(i)), successive à l'étape 503, des vecteurs z'[0,l], z'[1,l], z'[2,l] et z'[3,l] sont générés à partir des vecteurs x[0], x[1], x[2], et x[3], et à partir d'un masque r[l], l étant un entier variant de 0 à n-1. Les vecteurs z[0,l] à z[3,l] sont donnés par les formules mathématiques suivantes : [Math 31] Selon un mode de réalisation, le masque r[l] est une donnée de masquage. Selon un exemple le masque r[l] est générée de façon aléatoire ou pseudo-aléatoire. Le masque r[l] est utilisé à l'étape 504 pour masquer les vecteurs x[0], x[1], x[2], et x[3]. Selon un mode de réalisation, lors de la première occurrence de l'étape 504, l'entier l est égal à zéro. Les conditions d'incrémentation de l'entier l sont décrites ci-après. Dans le cas de la matrice Matrix décrite en relation avec la FIG. 2 , les vecteurs z'[i, l], i variant de 0 à n-1, sont donnés par la formule mathématique suivante : [Math 32] A une étape 505 (XOR), successive à l'étape 504, un vecteur y'[l] est généré en utilisant la formule mathématique suivante : [Math 33] Dans le cas où l est égal à zéro, y'[0] est donnée par la formule mathématique suivante : [Math 34] Dans le cas de la matrice Matrix décrite en relation avec la FIG. 2 , le vecteur y'[l] est donné par la formule mathématique suivante : [Math 35] A une étape 506 (l Dans le cas de la matrice Matrix de la FIG. 2 , la valeur de l'entier l est comparée à n-1. A l'étape 507, successive à l'étape 506, l'entier l est incrémenté de une unité, soit de un. A l'étape 508, des vecteurs v'[0], v'[1], v'[2] et v'[3] sont générés à partir des vecteurs y'[0], y'[1], y'[2], et y'[3]. Les vecteurs v'[0] à v'[3] sont donnés par les formules mathématiques suivantes : [Math 7] Dans le cas de la matrice Matrix décrite en relation avec la FIG. 2 , le vecteur v'[i] est donné par la formule mathématique suivante : [Math 36] A une étape finale 509 (Trans(Matrix)), successive à l'étape 508, tous les vecteurs v'[0], v'[1], v'[2] et v'[3] ont tous été générés et permettent d'obtenir la transposée Trans(Mat) de la matrice Mat dont les lignes ont toutes été masquées par un masque différent, les masques r[l]. En effet, les vecteurs v'[0], v'[1], v'[2] et v'[3] représentent toutes les lignes de la transposée Trans(Mat). Dans le cas de la matrice Matrix de la FIG. 2 , les vecteurs v'[i] forment les lignes de la matrice Matrix. Un avantage de ce mode de mise en oeuvre est qu'il permet de réaliser une opération de transposition de matrice sans que les données de la matrice à transposer ne soit rendues accessibles. En effet, utiliser le vecteur de travail w permet de masquer les données lors de la mise en oeuvre du procédé 500. Un autre avantage de ce mode de mise en oeuvre est qu'il permet de fournir une transposée de matrice masquée. Divers modes de réalisation et variantes ont été décrits. La personne du métier comprendra que certaines caractéristiques de ces divers modes de réalisation et variantes pourraient être combinées, et d’autres variantes apparaîtront à la personne du métier. Enfin, la mise en oeuvre pratique des modes de réalisation et variantes décrits est à la portée de la personne du métier à partir des indications fonctionnelles données ci-dessus. Procédé (400 ; 500), par un dispositif électronique, de transposition d'une matrice (Mat) comprenant n lignes et n colonnes, chaque ligne de ladite matrice (Mat) formant un premier vecteur m[i], i étant en entier variant de 0 à n-1, le procédé comprenant les étapes successives suivantes : (a) Obtenir des deuxièmes vecteurs x[i] en décalant par la droite chaque premier vecteur m[i] d'un pas correspondant au numéro de ladite ligne ; (b) Générer un deuxième vecteur w en appliquant la formule mathématique suivante : [Math 37] , dans lequel la fonction correspond à l'application successive de la fonction logique OU EXCLUSIF à plusieurs données ; (c) Générer des troisièmes vecteurs z[i,l], l étant un entier variant de 0 à n-1, en appliquant la formule mathématique suivante pour chaque valeur de i : [Math 38] dans lequel : - & représente la fonction logique ET ; - ! représente la fonction logique permettant d'obtenir le complémentaire d'une donnée binaire ; - représente un vecteur unitaire dont tous les éléments sont égaux à zéro sauf l'élément de rang i+l qui est égal à un ; et (d) Générer un quatrième vecteur v[l], représentant une ligne de la transposée de la matrice A, en appliquant la formule mathématique suivante : [Math 39] , dans lequel : - ROTL représente une fonction de décalage par la gauche ; - xor représente la fonction logique OU EXCLUSIF, dans lequel les étapes (c) et (d) sont répétées pour toutes les valeurs de l. Procédé selon la revendication 1, dans lequel le procédé comprend, en outre, des opérations de masquage. Procédé selon la revendication 2, dans lequel une opération de masquage est une opération de masquage par application de la fonction xor. Procédé selon la revendication 2 ou 3, dans lequel le procédé comprend, en outre, une étape (e) de masquage des deuxièmes vecteurs x[i] mise en oeuvre pendant l'étape (c). Procédé selon la revendication 4, dans lequel l'étape (c) des troisièmes vecteurs masqués z'[i,l] sont générés en appliquant la formule mathématique suivante pour chaque valeur de i : [Math 43] dans lequel r[l] est un masque. Procédé selon la revendication 5, dans lequel le masque r[l] est généré de façon aléatoire. Procédé selon l'une quelconque des revendications 1 à 6, dans lequel les entiers n et p sont égaux. Procédé selon l'une quelconque des revendications 1 à 7, dans lequel l'entier n est compris entre 1 et 20. Dispositif électronique adapté à mettre en oeuvre un procédé (400 ; 500) de transposition d'une matrice (Mat) comprenant n lignes et p colonnes, chaque ligne de ladite matrice (Mat) formant un premier vecteur m[i], i étant en entier variant de 0 à n-1, le procédé comprenant les étapes successives suivantes : (a) Obtenir des deuxièmes vecteurs x[i] en décalant par la droite chaque premier vecteur m[i] d'un pas correspondant au numéro de ladite ligne ; (b) Générer un deuxième vecteur w en appliquant la formule mathématique suivante : [Math 40] , dans lequel la fonction correspond à l'application successive de la fonction logique OU EXCLUSIF à plusieurs données ; (c) Générer des troisièmes vecteurs z[i,l], l étant un entier variant de 0 à p-1, en appliquant la formule mathématique suivante pour chaque valeur de i : [Math 41] dans lequel : - & représente la fonction logique ET ; - ! représente la fonction logique permettant d'obtenir le complémentaire d'une donnée binaire ; - représente un vecteur unitaire dont tous les éléments sont égaux à zéro sauf l'élément de rang i+l qui est égal à un ; et (d) Générer un quatrième vecteur v[l], représentant une ligne de la transposée de la matrice A, en appliquant la formule mathématique suivante : [Math 42] , dans lequel : - ROTL représente une fonction de décalage par la gauche ; - xor représente la fonction logique OU EXCLUSIF, dans lequel les étapes (c) et (d) sont répétées pour toutes les valeurs de l. Dispositif selon la revendication 9, dans lequel une opération de masquage est une opération de masquage par application de la fonction xor.