 Thank you for the introduction. So first of all a little bit of introduction. What is higher order masking? As explained in previous talk, higher order masking is a widely used contour measure to protect cryptographic implementation against site channel attackers. It simply consists in splitting every sensitive variable into D random values such that the sum of all these values are equal to the sensitive variable. It is a sound contour measure since it has been formally proved that the more the masking order de grows, the more it is exponentially difficult for an attacker to recover any information about the sensitive variable. In the presence of mass variable, how to perform operations? Linear operations or linear in the masking order whereas non linear operations are quadratic in this masking order. Therefore, the main problematic when you want to protect a block cipher with higher order masking is to efficiently compute the non-linear part of those block ciphers namely to efficiently compute the S-boxes. By efficiently it means that you will try to find a representation of the S-box such that you have a minimal number of calls to non-linear operations. En 2003 à Crypto, Ishai, Sai and Wagner propose un secure scheme pour performer un secure film multiplication entre deux mass variables. François Xavier explique un petit peu. Quand vous voulez performer les produits entre A et B, vous pouvez voir cela comme une équation matriciale. Vous pouvez compter le gros produit entre A et B et ajouter quelques valeurs de fondation comme ce que l'output sera l'un des nombreuses opérations. Le scheme de sécurité est le bloc principal de la construction des S-boxes. En fait, dans le state de l'art, l'exploitation principale est de regarder les S-boxes comme un polynomial sur le fil de fin de la file GF2 à la fin de la file. Et ensuite vous allez essayer de trouver une représentation pour évaluer les S-boxes avec ces multiplications. Les deux principales méthodes dans le state de l'art sont la famille de méthodes génériques où vous essayez d'évaluer toutes les types de S-boxes. Pour ces familles, les deux meilleures méthodes en termes de nombreuses opérations non-lineares sont les compositions de la composition de CRV proposées par Coron Roy et Vivek à chess 2014 et les compositions de l'algebraque proposées par Crypto 2015. Ces méthodes ont été observées par les S-boxes comme des nombreuses opérations entre les familles de polynomials où pour la composition de CRV, c'est une multiplication sécuritaire et pour l'algebraque de la composition, c'est une composition de fonction quadratique. Les deux familles de méthodes ont été observées par les S-boxes spécifiques et ont essayé de relier les structures spécifiques des S-boxes. Pour l'exemple, pour les S-boxes, c'est connaissant que vous pouvez voir les S-boxes comme la composition de la transformation anaphanique et un fonction d'attention x à l'attention de la fonction 254. La meilleure méthode est de trouver une chaine de multiplication pour évaluer cette exponentie, avec un nombre minimum de multiplications. Pour cette proposition, nous avons deux méthodes proposées par l'algebraque, avec le Riva & Proof & Kim Honglin. La différence entre les deux est que l'une est un peu plus longue dans sa chaine, mais elle travaille sur un petit fil. Dans cet état, je ne vais seulement focusser sur l'AS, mais dans notre papier, vous pouvez trouver aussi un travail présent. Donc dans cet état, ce que nous essayons de faire c'est de proposer une implementation optimale de toutes ces techniques de l'art de l'art, pour pouvoir comparer elles aux cadres. Pour ces proposations, nous avons suivi le bottom-up à frauche. Tout d'abord, nous avons regardé comment performer une multiplication basée dans le plus efficace de l'art. Ensuite, comment impliquer les opérations non-linéaires comme la multiplication de l'ASW, ou l'une de ses variantes. Et ensuite, sur les méthodes polinoméles que j'ai introduit dans le précédent état. Toutes ces implementations sont faites en assemblée de l'art et sont optimisées pour chaque état. Dans la seconde partie, nous essayons de regarder une stratégie sur ce problème, qui est la méthode bidslice. Ainsi, cela a été utilisé pour créer un nouveau block cipher qui est optimisé pour l'art de l'art de l'art. Mais ici, dans cet état, nous pouvons aussi appliquer cette stratégie pour l'art de l'art de l'art de l'art de l'art de l'art et obtenir des records de speed pour l'art de l'art de l'art de geste. Une seiote Le champ d'art est une architecture de 32 bits composée d'16 véreurs de fil. Vous pouvez manipuler 13. Et l'une des demoiselles que vous pourrez utiliser en arm Freeman est le chiffon de barrel qui þ Bartetail à spouse d''un pain sur des deux opérances de halves par exemple, nous pouvons voir cette ligne qui fait deux opérations avec cooker of deux percussions de dévar bênn supports d'une place àく du barrel-shifter. Donc, maintenant que nous avons regardé la revue, nous allons voir les sujets, et nous allons voir comment évoluer la multiplication du fil. La valeur de cette section est de sélection de l'implémentation efficace de multiplication sur le fil Gf de la fin pour le paramètre N. Intuitement, le plus rapide de ceci est de tabler le point de l'opération. Donc, vous devez avoir besoin d'un table de dimension 2 pour le pouvoir de 2 × N. Mais, dans le contexte du système d'embêtement ou du carton smart, vous devez avoir un constrain de mémoire et donc, vous ne pouvez pas toujours utiliser ça. Par exemple, si N est equal à 8, vous devez avoir un table de 64 kilobytes, ce qui est trop grand pour ce genre de contexte. Donc, nous essayons d'avoir un almost exhaustif look à tous les moyens pour la multiplication du fil. Donc, nous avons commencé avec la multiplication binari, ce qui est le plus basique moyen de le faire. Ensuite, nous avons regardé le x-plug, qui est une évaluation de l'exponentialité du logarithm des summes des deux opérants que vous essayez de manipuler. L'advantage de cette méthode est que l'exponentialité et le logarithm peuvent être tabulés avec le table de dimension 2 × N. Donc, c'est de plus en plus efficace en termes de cotisation du table de dimension 2 × N. Pour l'exponentialité du fil, nous avons deux versions. C'est juste dépendant du fait qu'ils ont besoin d'une réduction modulaire et dans le v1, la réduction modulaire est faite par la main, alors que dans la seconde version, nous l'intégrerons dans le table, donc nous doublez le table, mais c'est encore mieux depuis que nous avons gagné un peu de cycles. La troisième multiplication que nous avons regardé, c'est la multiplication des deux opérants des deux opérants, et ensuite, vous vous tabulez sur des éléments plus petits, vous avez besoin de trois tables. Mais cette multiplication, nous pouvons voir que dans des cas de la fin, en termes de cotisation et de cotisation, c'est moins efficace que l'exponentialité que l'exponentialité dans la cotisation et le cotisation. Et donc, nous avons réjecté cette multiplication, mais nous essayons de regarder un compromis entre Karatsuba et HALF table, ce que nous appelons HALF table, donc vous pliez ici seulement un élément, et vous avez une petite opération pour performer la multiplication, mais vous avez besoin d'un plus grand table. Donc, c'est un trade-off entre Karatsuba et HALF table. En termes de sélection, par exemple, quand n est equal à 4, nous pouvons voir que la multiplication HALF table a encore une multiplication en termes de table, donc il n'y a que 200 cc 8 bytes. Et c'est par far le plus rapide de la multiplication de l'exponentialité. Donc, dans le reste de cette table, quand nous travaillons sur un fil où n est equal à 4, nous allons choisir la table. Et quand n est equal à 8, nous allons sélectionner 2 multiplications dépendant de notre constrain. En termes de cotisation, il n'y a pas d'exponentialité mais il a besoin d'un table qui est 10 times plus grand que l'exponentialité. Donc, maintenant, nous avons un moyen de performer la multiplication de fil, pour qu'on extracte le meilleur algorithme dépendant de l'exponentialité. Nous pouvons implémenter l'opération non-linear. Donc, le premier que nous avons implémenté est la multiplication sécuritaire qui prenait une multiplication sécuritaire et plusieurs multiplications sécuritaires. Vous devez avoir besoin d'une réfression pour des raisons sécuritaires mais je ne vais pas aller en détail sur cette opération mais cela peut être implémenté très efficacement. La deuxième opération non-linear que nous implémentons est une opération qui permet d'évaluer une fonction quadratique dans un opérant qui est un masque. En termes d'implementation, c'est la multiplication de fil par les tables de l'opération et cela peut permettre d'implever puisque nous avons vu que la multiplication de fil peut être expérimentée. La seule chose qu'on a fait c'est que l'évaluation requiert de plus en plus de fondament. Nous avons implémenté cette méthode et nous avons comparé entre la multiplication sécuritaire et la multiplication sécuritaire où la multiplication sécuritaire peut être expérimentée quand nous utilisons la table de l'opération ou l'exploit et nous pouvons voir que l'évaluation de l'opération est toujours plus rapide que l'ISW en tant que nous ne pouvons pas expérimenter la multiplication de fil. À ce point, nous n'avons pas été très satisfaits puisque la façon dont nous avons utilisé le registre n'est pas optimale. En fait, avec l'armée, nous avons 32 billes de registre en pratique entre 4 et 10. Le but est de pouvoir expérimenter plusieurs opérations non linéaires en parallèle. Par exemple, quand n est equal à 4, nous voulons pouvoir expérimenter 8 éléments en parallèle. Et les conséquences sont que nous pouvons expérimenter tous les loads et les stores et les loops en parallèle. Mais la seule opération pour expérimenter la multiplication de fil ou les tables locales en termes de gain de performance est très efficace puisque nous pouvons voir que, quand nous avons expérimenté 4 éléments en parallèle, nous avons 4 éléments en céréale. Par exemple, pour le CPRR, nous avons un gain de 44%. Et quand nous avons augmenté le dégrad de paralysation, nous avons encore plus de gain de performance qu'à deux fois plus vite pour l'ASW avec la multiplication complétée. Maintenant que nous avons l'implementation de la opération non linéaire, nous allons voir comment les méthodes génériques sont faites. L'idée basique est de regarder sur le SBOX la somme de tées opérations entre les familles de polynomials QI et PI. Comment générer la somme de tées opérations d'une base B? Et ensuite, vous allez trouver le PI par solver un système linéaire. La différence entre les deux méthodes non-methods CRV et LD est que la computation de la base ou l'évaluation du SBOX pour CRV est faite avec la multiplication et pour l'algebraique de la composition, c'est faite avec la composition de la fonction quadratique. La différence entre CRV et l'ISW, à ce point, nous voulons voir si nous ne pouvons pas improving la méthode de la composition de CRV par changer la façon de compter les bases pour qu'on puisse comparer l'évaluation de la CPRR dans le cas où l'évaluation de la base est plus efficace que la multiplication de la SSE. En fait, pour l'exemple quand n est equal à 8 dans le papier original CRV a utilisé 5 multiples dans ce travail, nous avons montré que nous pouvons générer les bases avec seulement la instruction de la CPRR et encore plus, nous pouvons augmenter les bases afin d'avoir plus de multiplication quand vous trouverez la décomposition de la SBOX que vous avez ici. Et pour les paramètres pour les deux paramètres, vous avez donc 5 pour les bases, 5 pour l'évaluation avec le CRV original et 6 pour l'évaluation et 4 pour la multiplication mais depuis que la CPRR en ce cas est plus efficace, nous avons un gain de performances donc nous implementons cela et nous essayons de comparer et nous pouvons voir que en fait, quand n est equal à 4, CRV est plus efficace depuis que l'opération non-linear et le CRV est plus efficace que la CPRR et quand n est equal à 8, la compétition de l'algebraque est la plus efficace. Maintenant que nous avons regardé les méthodes génériques, nous pouvons concentrer les méthodes pour l'IS, la méthode polinomiale. Comme je l'ai dit, la SBOX est la composition de la transformation et de la fonction power. La première méthode née était proposée par Rivain et Prouf dans cette multiplication chaine avec seulement 4 multiplications. Dès un flow de sécurité l'une des multiplications était répliquée par une évaluation sécuritaire et en 2014 Grosseur et Hall proposent une nouvelle multiplication chaine avec 3 CRV et 1 ISW et c'est un improvement depuis que 4ISN est equal à 8 et donc la CPRR évaluation est plus efficace que la multiplication sécuritaire. Une autre méthode proposée par Kim Hong-Lin a besoin d'autres multiplications mais dans un plus petit sens. Et ce qui est l'advantage de travailler dans un plus petit sens est que vous pouvez établir le sens de multiplication donc vous êtes plus efficace et la deuxième meilleure avantage c'est que vous travaillez sur des éléments plus petits donc vous pouvez augmenter le degree de paralysation le plus on peut paralyser le plus on obtient contre l'implementation séquentielle et en fait la méthode KHL même si c'est plus non-linear c'est plus efficace que la méthode revanche. Donc maintenant que nous avons regardé toutes les méthodes polynomiaires let's focus on la stratégie donc dans la stratégie de la stratégie vous n'avez plus regardé le S-Box comme un polynomial comme un circuit bouleau où vous essayez de replacer chaque gate logique pour l'implementation de software par l'instruction de CPU et l'advantage de l'utiliser c'est que vous pouvez performer 16 S-Box avec seulement un call depuis que vous ressentez votre registre avec tous les éléments sur IAS c'est très efficace comment appeler ça vous avez besoin d'un circuit c'est le plus compact possible c'est le plus compact possible et le meilleur non-circuit est un proposé par Boyard et Hall qui est composé de 83 gates et 32 gates puis pour l'implementation vous repliez tous les gates et les gates de CPU d'instruction et puis pour l'implementation vous repliez le XOR avec 83 x XOR et tous les gates sont appelés à IASWN où IASWN c'est juste IASW où l'implementation est un bitwise N depuis que nous sommes sur GF2 à ce point nous ne faisons pas l'utilisation du registre donc nous voulons l'implementation d'une approche de bitslice pour chaque operation nous voulons pouvoir performer 2 IASWN sur 60 bits avec seulement 1 call où nous avons un élément pour avoir 1 32 bit IASWN donc le but c'est de réorder le circuit pour que tous les gates sont groupés par pairs nous avons validé que nous pouvons faire le réordering sur BMP circuit et la main avantage c'est qu'à chaque ronde il y a 16 IASWN donc il est réduit par 2 complexités et ensuite il y a seulement 1 sbox pour une operation par IASWN en termes d'implementation premièrement, nous allons comparer les différents IASWN c'est le même ici on peut voir que le niveau de paralysation est augmenté depuis que nous travaillons sur BIT donc nous pouvons faire 32 éléments en parallèle et donc nous avons quelque chose qui est très efficace compared à tous les autres IASWN et ce résultat continue dans la evaluation sbox depuis que nous pouvons voir que l'approche de bit slice est plus efficace que les meilleures méthodes qui sont optimisées nous avons également comparé l'implementation des méthodes spécifiques contre les méthodes génériques pour voir comment l'implement est et nous pouvons voir que reliant sur la structure spécifique de la sbox c'est très efficace depuis que les méthodes génériques n'ont pas de performance en termes de timings pour une fréquence de 16 MHz nous pouvons voir que nous pouvons performer une encryption de bit slice en présentation dans mille secondes qui sont des records de speed comparé à d'autres imprimations en termes de non, nous allons conclure dans ce travail nous avons fait un étudiant d'armes de différentes ways pour solider les problèmes d'armes de sbox nous avons first sélecté les meilleures multiplications puis nous avons fait des optimisations pour les opérations non-linéaires nous proposons de nouveaux paramètres pour les méthodes génériques polynoméles nous avons montré que qu'HL est plus efficace depuis que nous travaillons sur les éléments plus petits et donc nous pouvons augmenter le degré de paralysation et nous avons poussé la paralysation de l'implement de la stratégie de bit slice qui nous permet d'avoir de nouveaux records de speed et une question pourrait-on utiliser cette stratégie pour toutes les sboxsies pour les méthodes génériques et c'est quelque chose que nous avons fait dans un travail publié en 2016 où nous proposons une méthode générique pour les sboxsies dans la représentation de bit slice qui peut être seen Merci pour votre attention