 C'est un travail joint avec Aurélien Groé et Rina Zetoun. La motivation de cet travail est pour protéger les attaques de l'aéroport. Le contraire du contraire de l'attache de l'aéroport est la masque de l'aéroport. Mais l'aéroport de l'aéroport consomme beaucoup de fondament. Et cela peut devenir un couteau de botton sur les devises. Donc le but de ce travail est pour décrire une technique pour minimiser le nombre d'attache de l'attache de l'attache de l'aéroport pendant qu'elle reste sûre dans le modèle de promenage. Et dans la prochaine table, je vous montre les résultats finales. Et nous recevons presque deux ordres d'improvement magnifique comparé à des techniques existantes. Pour l'exemple, pour les secondes ordres d'attache, pour l'AIS, notre contraire requiert seulement 48 bytes de fondament plutôt que 2880 bytes pour l'improvement classique de l'attache de l'attache de l'aéroport. Donc c'est bien connu que l'algorithme cryptographique soit vulnérable pour les attaques de l'attache de l'aéroport. Par exemple, par améliorer la consommation de l'attache de l'aéroport ou améliorer les radiations électromagnétiques. C'est pourquoi nous avons besoin d'attache de l'aéroport. Et nous savons que l'AIS est une attaque très efficace contre l'improvement cryptographique. L'attaque consiste en groupant les traces, les traces de l'attache selon des predictions sur les bits de l'output de l'AIS. Et pour l'hypothèse correcte, pour l'hypothèse correcte nous obtenons un pic, ou beaucoup de pics, dans la trace différente et cela peut récoverir la clé complète en utilisant seulement quelques centaines ou quelques milliers de traces. Donc l'attache simple contre l'attaque de l'AIS est l'attache de l'attache de l'aéroport. Nous considérons qu'il y a d'autres variables de sensibilité dans l'algorithme où l'axe peut dépendre sur la clé et sur l'improvement de l'output. Et donc l'attaque consiste en générant un rondeur rondeur qui est un rondeur frais pour chaque exécuté. Et puis nous marquons l'axe en utilisant ce rondeur rondeur. Donc nous computons l'axe prime equals l'axe xor r. Et puis, dans l'algorithme, au lieu de manipuler l'axe nous manipulons seulement l'axe prime du masque et l'axe rondeur. L'axe rondeur est indépendant. Et maintenant, car l'axe rondeur est un rondeur rondeur l'axe prime est aussi un rondeur et donc il n'y a pas d'informations sur l'axe. Mais bien sûr, c'est vrai que nous considérons qu'il n'y a que 1 point de ligue à un moment. Et c'est bien connu que par combiner plusieurs points de ligue nous pouvons toujours briser l'algorithme. Donc, pour exemple, nous pouvons combiner la consommation de pouvoir quand l'axe prime du masque est manipulé et la consommation de pouvoir quand l'axe r est manipulé et nous combinons ces deux consommations de pouvoir pour obtenir un signal qui est correlé avec l'axe original. Donc, c'est une seconde ordre d'attaque et nous savons qu'il nécessite plus de traces mais cela peut être pratique. Donc, la solution contre la seconde ordre d'attaque est d'augmenter le nombre de shares. Donc, maintenant, chaque variable sensitive de l'axe sera séparée dans deux variables n. Donc, l'axe est élevé comme x1 ou x2 jusqu'à xn. Donc, nous avons n shares. Et donc, initialement, nous générons n-1 variables de l'axe à xn-1. Et initialement, nous l'allons xn-x ou x1 jusqu'à xn-1. Et nous obtenons, en ce cas, que nous pouvons obtenir un algorithme contre l'attaque d'attaque d'une ordre n-1. Parce qu'on voit ici, au moins pour les shares x1 et xn, que chaque subset de shares n-1 est uniformement et indépendamment distribué. Donc, cela signifie que cela ne révèle pas d'informations pour l'attaque. Cela signifie que si nous prouvons les shares n-1, ou si nous combinons seulement les liques n-1, nous n'allons apprendre rien sur l'axe original. Donc, bien sûr, nous aimerons avoir une garantie de sécurité, pas seulement prouvoir l'axe original, mais en fait, toutes les variables dans le circuit. Donc, pour cela, nous avons un framework, qui est le modèle de prouvation et la preuve de sécurité qui a été initiée par Ishae Sy et Wagner à CryptoZero3. Donc, dans ce modèle, nous avons un bloc cipher qui peut recevoir le message m et qui met un ciphertexte c et le bloc cipher aussi recevra la clé, qui peut être x, qui est séparé entre les shares n-1 et xn. Et puis, l'attaqueur dans ce modèle peut mettre, à la plupart, les propres t-propes dans le circuit. Et maintenant, le but de la preuve de sécurité est de montrer que pour toutes les propres t-propes dans le circuit, où t est plus ou moins que n, le nombre de shares, ces propres t-propes peuvent être parfaitement simulés de la plupart, n-1 de les shares qui sont les xn, donc des shares de la clé séparée. Et nous savons qu'au début, ces shares n-1 sont uniformement et indépendamment distribuées. Donc, ça veut dire que l'attaqueur va apprendre rien de les propres t-propes parce qu'il pourrait performer cette simulation de lui-même. Et puis, nous pouvons dire que notre algorithme est sécurisé contre les propres t-propes, donc c'est sécurisé contre l'attaque de l'ordre t-propes. Donc, comment ça fonctionne ? Comment nous manipulons ces shares ? Donc, pour l'opération linéaire c'est assez facile. Donc, si initialement on a un variable a qui est séparé entre n-shares n-1 à an et si b est aussi séparé entre b-1 et b-n alors qu'on compute l'exor de a et b plutôt qu'on compute l'exor b directement, nous allons séparer les shares séparées. Donc, a1, exor b1, a2, exor b2 et jusqu'à an, exor bn. Et dans ce cas, l'exor de la CIS est equal à l'exor de a et b. Donc, c'est facile. Et c'est aussi facile d'interpréter les squares dans un fil fin de caractéristique 2 parce que c'est une opération linéaire. Donc, si nous avons d'inputs n-shares a1 à an où l'exor est equal à a nous pouvons computer a2 par manipuler seulement les shares simplement par séparer chaque shares indépendant et nous avons les résultats corrects. Donc, c'est plus difficile pour la modification parce que, en ce cas, ce n'est pas linéaire. Donc, assumez que nous avons deux variables a et b pour qui nous avons les n-shares a1 à an et b1 à bn. Nous aimerions computer les CIS, les n-shares CIS afin que l'exor de les CIS soit equal à a times b. Donc, cette opération peut être performée sur le fil final. Donc, pour cela, nous allons utiliser la construction indépendante par Ishaï, Syne et Wagner à crypto 0,3. Et cette construction enables de protéger toutes les circuits contre un adversaire de T-prob. Donc, pour cela, nous devons utiliser 2T plus 1 shares et puis, comme nous verrons, le nombre d'opérations est quantité en n et quantité dans le nombre d'opérations de T-prob. Et comme nous verrons, cela aussi nécessite un nombre signifiant de fondament parce que cela aussi nécessite de T-square normes par multiplication. Donc, comment cela fonctionne ? Le principe basique est de voir que quand nous compute les produits de A times B, nous avons le produit d'exorcer les shares d'Ais et d'exorcer les shares d'Ais et nous pouvons évoquer cela comme exorcer l'exorcer les produits cross Ais times Bj. Et donc, je... Donc, nous pouvons voir cela pour des shares fréquentes, pour exemple, nous pouvons évoquer ces produits cross donc, A1, B1 jusqu'à B3. Et donc, nous... donc, l'ISW compte à mesure consiste en processant cette matrice pour que éventuellement nous recevons les shares d'exorcer les shares d'Ais mais nous n'avons pas d'informations nous n'avons pas d'informations de la variable originale A et B. Donc, comment cela fonctionne ? Éventuellement, nous allons évoquer les colonnes de la matrice. Donc, sur chaque ronde, nous allons évoquer les intérêts. Mais nous ne pouvons pas le faire directement comme cela parce que, en ce cas, cela sera insécurisé. Donc, nous allons évoquer le processus. Donc, premièrement, nous réveillons les matrices dans deux parties, la partie uppe et la partie basse. Et pour la partie basse, nous pouvons évoquer les transporces. Cela ne change le résultat parce que, éventuellement, nous évoquons toutes les intérêts de la matrice. Donc, nous évoquons les transporces et ensuite, nous évoquons l'exor de ces deux matrices. Donc, maintenant, nous avons une partie uppe de la matrice. Et puis, nous ne pouvons réveiller ces matrices directement parce que, si nous évoquons les colonnes et les matrices, nous évoquons d'informations des variables originales A et B. Donc, nous devons introduire des normes. Donc, nous introduisons trois normes ici. Air 1, 2, Air 1, 3 et Air 2, 3. Mais, pour les correctes normes, nous devons duplicer ces normes. Donc, éventuellement, l'exor de ces matrices de toutes les intérêts de ces matrices correctes est equal à 0. Et puis, encore une fois, nous évoquons les deux matrices et éventuellement, nous obtenons la fin de la construction de l'ISW dans laquelle les intérêts de ces matrices sont randomisés avec ces trois normes Air 1, 2, Air 1, 3 et Air 2, 3. Et éventuellement, maintenant, nous pouvons évoquer le colère de la matrice. Donc, nous obtenons sur chaque roue les séances C1, C2, C3 pour la valeur de la multiplication. Et donc, généralement, pour toutes les séances, nous avons besoin un nombre quantitaire de normes. Donc, basicement, nous verrons que cette compagnie consomme beaucoup de normes. Généralement, quand nous n'allons compter un S-Box, nous recevons les séances X1 à Xn de la valeur X. Et nous voulons compter les séances d'outre YI ainsi que l'exor de YI Y1 à Yn est equal à Sx. Et pour AIS, comme évoquée par Rivan-Prouf à Chess-2010, c'est facile parce que le S-Box de AIS peut essentiellement être évoquée en 254. C'est l'inversion finie. Et cela peut être évoquée en séquence de squares et de multiplies. Et donc, pour cela, nous avons besoin d'actuellement 4 multiplications sur le fond de AIS. Et ces multiplications vont être protégées avec la multiplication de l'ISW. Et nous avons aussi besoin d'un couple de masques et ces masques sont aussi évoquées, peuvent aussi être évoquées avec une multiplication de l'ISW. Donc, maintenant, nous voulons réduire la complexité de fond de Rivan-Prouf. C'est l'objectif de ce talk. Et donc, une idée naturelle est d'utiliser un vrai fond de Rivan-Prouf pour générer une petite somme et puis, nous allons évoquer cette somme en utilisant un fond de Rivan-Prouf pour générer tout les fonds de Rivan-Prouf que nous avons besoin pour la quantité. Et, bien sûr, le PRG, le Générateur Sudo-Random, devrait aussi être sécurisé contre les attaques de T-Probing parce que l'adversaire peut aussi procurer le PRG. Pour cela, on peut utiliser la notion de la quantité robuste de PRG qui a été introduite il y a quelques ans par Ishaï et d'autres personnes. Donc, nous avons vu que pour la quantité robuste de T-Probing, le complexité d'random est une grande quantité de T² par la quantité de T² sur le nombre du rang de la quantité protégé. Et les autorités décident une construction de une proportion robuste de PRG et en utilisant cette construction, on obtient une nouvelle quantité d'random qui est une grande quantité de T² 3 π par la quantité de T² par la quantité de T² presque indépendants de la taille de circonstance, à l'aide d'une facture logarithmique. Mais en fait, la construction est basée sur des graffes expandées, et c'est essentiellement impractique. Donc le but de ce papier, de ce tour est de décrire une construction différente qui peut être pratique. Mais on a aussi obtenu une meilleure asymptotique de la compréhension complexe, parce que la nouvelle compréhension complexe n'est pas une grande haute de t² x log t plus log de la taille de circonstance. Et l'advantage de notre construction est qu'on ne utilise pas des graffes expandées, mais c'est basé sur une simple graffes indépendante de la taille de circonstance. Et en fait, notre avantage est qu'on n'a pas besoin d'une graffes robuste. On peut utiliser aucune construction d'un graffes indépendant de la taille de circonstance. Donc je vais expliquer ce que ça veut dire. Et donc éventuellement, nous avons implémenté notre technique et nous avons obtenu des improvements de vitesse pour l'AIS. Donc je vaisまず expliquer ce qu'est une graffes indépendante de la taille de circonstance. Donc c'est une graffes indépendante. Donc elle prend en place une petite graffes de graffes n°. Et la graffes est expandée dans des graffes m°, où la graffes m° est beaucoup plus grande que la graffes n°, pour générer des graffes de graffes de graffes. Et la propriété qu'on a besoin est que si on sélectionne un subset de graffes de graffes de graffes de graffes n°, où la graffes est la graffes, ensuite, un subset de graffes de graffes sera uniformement et indépendamment distribué quand la graffes de graffes est uniformement distribuée entre les graffes de graffes n°. Et maintenant, en fait, c'est facile de construire des graffes indépendants de graffes m°. Beaucoup de constructions sont connues. Donc peut-être que la simple construction est d'utiliser les polynoméles, l'évaluation polynoméles dans un fil final. Donc nous commençons par générer une graffes de graffes n°. Et cette graffes de graffes n° sera la coïnférence de la graffes de graffes de graffes de graffes de graffes n°. Donc nous générons tous les éléments dans le fil final, en utilisant le vrai généreur de graffes n°. Donc ces sont les fondamentaux. Et ensuite, cette graffes de graffes n° définit la coïnférence de la graffes de graffes de graffes de graffes de graffes n°. Et donc nous pouvons évaluer la graffes de graffes de graffes n°, h de x, le nombre de graffes de graffes de graffes de graffes n°, x de y, et nous, dans le fil final, nous pouvons évaluer cette graffes de graffes de graffes n°, x, j, dans le fil final. Donc ces graffes de graffes de graffes n° sont encadrées à l'intérieur ou à l'implémentation. Elles sont fixées et annoncées. Et maintenant, nous le verrons, grâce à l'interpellation théorique, nous pouvons évaluer facilement que tout le subjet de toutes les évaluations de la graffes de graffes de graffes de graffes de graffes n°, donc ça signifie que certaines armes spécifiques vont être uniformement et Awarement distribuées en fil final. our technique ats follows. Donc, la technique que l'on utilise pour protéger la comptabilité ISW et pour réduire la compréhension de la compréhension ISW est la suivante. Nous avons vu que dans la comptabilité ISW, nous avons ces randoms RIJ et nous devons utiliser différents randoms pour tous les multiplications ISW. Donc, si nous avons des multiplications ISW, nous avons ces RIJs qui sont frais pour toutes les variantes multiplications. Et maintenant, nous allons utiliser un PRG qui va générer tous ces randoms RIJs pour chaque spécifique INJ. Donc, pour chaque RIJ, nous avons une spécifique PRG, qui n'est pas de GIJ, et nous avons un CID, qui est ROIJ. Et cette PRG va générer tous ces RIJs qui sont utilisés sur toutes les multiplications ISW. Et maintenant, si nous regardons la compréhension de la compréhension ISW, et toutes les variantes ISW, nous verrons que quand l'adversaire provoque un RIJ, nous pouvons donner à l'adversaire toutes les autres RIJs pour tous les RIJs qui sont fixés. Et nous pouvons donner à l'adversaire toutes les autres RIJs, essentiellement pour 3. Parce que ce n'est pas allé pour aider l'adversaire. En fait, c'est facile de voir que la simulation va travailler. Et en ce cas, cela signifie que l'adversaire n'a pas d'avantage de provoquer la PRG. Parce qu'actuellement, nous sommes encore sécurisés dans des modèles extensifs, dans lesquels l'adversaire pourrait obtenir tous ces RIJs avec une seule compréhension. Donc, cela signifie que l'adversaire n'a pas d'avantage de provoquer la PRG, parce qu'il pourrait obtenir tous ces RIJs qui sont générés par la PRG avec seulement une seule compréhension. Donc, cela signifie que nous pouvons essentiellement ignorer le provoquer de la PRG. Cela signifie que l'adversaire n'a pas d'avantage de provoquer la PRG. Mais tout de suite, nous avons besoin d'un progrès d'indépendance. Donc, je vais expliquer pourquoi. Donc, une autre observation est que si nous performons un masque refreshant entre les modèles ISW, nous obtenons qu'on peut facilement montrer que chaque variable intermédiaire dans le circuit va dépendre d'une seule RIGK. Donc, ce n'est pas possible quand nous performons ce masque refreshant approprié. Ce n'est pas possible que l'intermédiaire intermédiaire dépendra de deux de ces modèles RIJs. Donc, il dépendra d'une de ces modèles RIJs. Donc, cela signifie que quand l'adversaire n'a pas d'avantage de provoquer la PRG, l'adversaire va obtenir d'informations à la plupart de ces modèles RIJs, qui sont générés par la même PRG. Donc, cela signifie que pour la PRG, pour les paramètres OR de l'indépendance RY, nous pouvons utiliser OR equals T. Parce que, quand l'OM est OR equals T, nous savons que que chaque subset de randoms RIJs sera uniformement et indépendamment distribué. Donc, nous pouvons compter avec cette technique la compréhension de la compréhension de l'indépendance RY. Nous savons qu'il y a un grand nombre de randoms RIJs donc nous avons besoin d'un grand nombre de randoms RIJs et nous avons vu que chaque PRG a besoin d'un paramètre OR qui est equal à T donc il a besoin d'un seed OR equals T deux randoms dans le fil final. Et pour le fil final, le nombre de fil final est déterminé par le nombre de randoms de pseudo-randoms que nous devons générer. Et ici, nous savons que c'est un grand nombre du nombre des circuits. C'est-à-dire que, éventuellement, la compréhension de l'indépendance RY devient T³ times log RY donc c'est T³, parce que c'est T² times T et ici, le nombre de éléments du fil final est grand de C donc il a un détail qui est log of C. Donc, maintenant, la compréhension est grand de T³ times log C plutôt que T³ times log KC dans le papier précédent. Mais l'advantage ici c'est que notre construction est plus simple, parce que nous n'avons pas d'expandes de graffes. Donc, nous avons légèrement augmenté la compréhension de l'indépendance RY mais nous avons aussi simplifié la compréhension. Et maintenant, c'est possible de further augmenter la compréhension de l'indépendance RY en utilisant une variante de cette technique. Et maintenant, chaque PRG va générer le plus grand rang de l'indépendance RY dans chaque multiplication ASW. Donc, plutôt que de générer chaque individuel RY dans chaque multiplication ASW on va générer le plus grand rang. Et maintenant, cela implique qu'à l'aide de l'indépendance RY nous avons besoin d'un grand rang de l'indépendance RY qui est le nombre de graffes. Et comme précédemment, on peut montrer que chaque PRG doit être RY d'indépendance RY et maintenant, le nombre de graffes de l'indépendance RY est le nombre de graffes de l'indépendance RY. Donc, éventuellement, la compréhension d'identité résiste par l'importance d'b...! Le nombre de graffes Garant de l'indépendance RY est celle des graffes qui s'est ré Joyeuxée par les graffes de Nem advantage RY et en utilisant notre construction. Donc, nous avons utilisé des 40 MHz ARM Cortex M3 processeurs. Et ce processeur a un très lent TRNG, parce qu'il prend environ 1,500 cycles pour générer une seule bête. Mais c'est, bien sûr, un avantage pour nous, parce que le plus lent, le TRNG, c'est le plus efficace et intéressant de notre comptage. Nous avons fait le code source publique disponible. Donc, il y a des paramètres varieux. Donc, si nous voulons minimiser le nombre de calls de TRNG, nous pouvons obtenir très petits numéros. Donc, par exemple, pour la sécurité contre l'attaque de seconde ordre, donc pour T equals 2, nous avons besoin seulement 48 bytes de fraîches de vrais randonnés, plutôt que 2880 à la revanche original quant à mesure. Et en ce cas, notre implementation est un peu plus rapide, parce qu'on a une ratio qui est à peu près 0,68. Donc, c'est un peu plus rapide que la revanche. Et c'est aussi le cas pour T equals 3. Et maintenant, si nous voulons minimiser le temps, nous pouvons utiliser un petit peu de différente PRG, qui va conserver plus de randonnés, mais qui va être beaucoup plus rapide. Donc, en ce cas, nous consommons plus de randonnés pour T equals 2, pour la sécurité contre l'attaque de seconde ordre. Nous avons besoin de 642 bytes. Mais maintenant, nous sommes presque deux fois plus rapide qu'à la revanche original quant à mesure. Et c'est aussi plus rapide pour T equals 3. Donc, en conclusion, nous avons augmenté la compréhension de la compréhension de la compréhension de la compréhension de la compréhension de protéger les circuits contre les attaques de probation. Donc, nous avons commencé par le papier de l'original ISW, qui a une compréhension de T² times le nombre de circuits. Donc, nous avons vu que l'Ishaw et les autres personnes ont obtenu une compréhension robuste avec la compréhension de PRG, qui était T³ times log 2k of C. Et nous avons augmenté ça à T² times log T plus log C. Et simplement en utilisant une construction simple, mais qui ne requiert pas de graphes expander. Donc, par exemple, pour la PRG, nous pouvons utiliser une compréhension simple, polynomial. Et donc, nous avons décrit l'application à IS, une compréhension concrète de IS. Donc, cette impréhension nécessite très peu de biaises rondes. Et en utilisant un processeur avec une très courte T&G, nous avons obtenu une speed-up qu'on perte toute vie originale et d'improves quant à mesure.