 Bienvenue à cette présentation de l'enseignement de T-CHES 2021 avec respect à des attaques structurelles et l'épargne de l'input bloqué d'outre-exemple white box. C'est un joint-work avec Claude Carlay et CMN AG. Je suis Sylvain Guillet, j'ai très hâte de vous expliquer nos findings. Tout d'abord, je vais donner un petit background sur la cryptographie white box, WBC. Ensuite, je vais présenter notre utilisation, celle du débat, l'input bloqué d'outre-exemple diffusé. Ensuite, je vais montrer que ça peut arriver, que ce schéma est bloqué. Je vais parler des distinguations sur le cas du standard d'inscription avancé, l'AS. Ce nouveau est que je vais donner un procès mathématique formal de la cryptographie, qui me permet d'expliquer pourquoi le débat peut parfois être bloqué. En fait, j'arriverai de l'exemple d'un moyen de réparer le débat. Le débat est encore alive, qui a donné des provisions en respect à cette schéma de white box crypto. Je termine. Donc, la cryptographie white box, c'est comme si vous utilisez un AS comme un schéma public. Vous allez prendre le cas du cas d'inscription dans une implémentation tabulaire. Donc, un client peut s'occuper sans connaître le cas. Le service connait le cas, donc il peut s'occuper et récover ce que l'a senti par le client. Il y a des cas de utilisation dans la simulation de la carte, et vous connaissez le state de l'art sur le show et les sources. Il y a plein de détails, des détails statistiques, des détails en livrant l'analysation de la cryptographie comme l'analysation de la computation par exemple, et ceux qui relient la transformation de fourrier. Ce que je vais décrire est de l'autre genre et c'est une improvement sur ce que Pascal Sastrych, Amir Moradi et Tim Kinesou. Donc, qu'est-ce qu'il y a de débat ? Ok, nous allons considérer la première opération dans l'AS. C'est un T-Box, qui est une composition de l'S-Box et une partie de la opération du mixcolon. Et donc, nous aimons de la sécherre ce T-Box avec des projections randomes. Nous avons une permutation linéaire, une baisse de pi et une baisse de pi. Ceci nous mélange une structure simple de la baisse de pi avec une diffusion de pi et une confusion de pi. Dans les détails, vous voyez. Donc, nous sommes sur le top de l'opération fonctionnelle ici, le T-Box, ok, qui est concilier l'addition clé ici. Donc, nous avons cette opération linéaire, une pi, qui a pris 32 bits et la map a pris 32 bits. Il doit être invertible parce que, évidemment, dans le reste de la computation, nous avons besoin d'assurer cette opération. Et donc, nous avons la partie non linéaire qui est la concatenation de quatre projections, une baisse à une baisse. De nouveau, il doit être invertible. Et pourquoi sont-ils comme ça dans quatre blocs? C'est parce que les opérations supplémentaires doivent être manipulées sur des bêtes. Ok, donc, ces opérations, B1, B2, B3, B4 doivent être invertibles dans le reste de la computation. Ok, donc, maintenant, vous composez tout ça et vous end-up avec une table qui est 8 à 32 bits. Et tout est donc évalué là-bas. Et imaginez l'entropie de tous ces pi et B, qui est énorme comparé à seulement les valeurs de 256, qui sont possibles pour la baisse. Donc, vous savez, apparemment, ça ressemble extrêmement fort. Ok, donc, je vais vous montrer que dans plus de 99% de ces cases, cette construction peut être brouillante, en fait, et vous pouvez extracter la baisse. Donc, comment ces attaques travaillent, en fait? Donc, la baisse est assez simple pour toute la baisse K. Nous appuient donc, de la fonction obfuscée, nous appuient la partie fonctionnelle. Et donc, nous voulons vérifier si ça ressemble à un débat. Ok? Donc, en fait, l'input, prendre l'input comme un Y, ce qui est l'image sous les colombes de la baisse, nous pouvons juste vous en préserver directement ici et mettre sur l'image des colombes de la baisse. Ok? Donc, en quelle façon, en fait, la fonction qu'on a besoin d'assurer devient assez claire, parce que vous voyez, donc, on explique la différence entre la baisse et la baisse correcte. Et donc, si c'est un bon débat, il y aura une simplification. Je vais le montrer par un diagramme. Quand nous avons un bon débat, donc, nous avons réussi à basicement couper proprement le débat. Ok? Donc, nous sommes juste à gauche avec la partie linéaire ici de les colombes de la baisse. Et ensuite, le débat. Ok? La baisse correcte ici, alors que pour la baisse correcte, nous avons un nombre de choses différentes. Et donc, nous avons cette c, ce n'est pas 0, ce qui est la différence entre les clés et ce qui ajoute beaucoup de fonctions complexes sur le top de la table de obfuscité. Ok? Ce qui est qui est là-bas. Ok? Et donc, pour cette raison, donc, le test de l'analyse des cryptes est de distinguer entre un débat et un non-débat, je dirais. Ok? Donc, dans le reste de la discussion, la bonne situation sera en gris et en bas. Ok? Notez que je dis ce mu ici qui est la partie linéaire de les colombes de la baisse et qui est un peu structurée parce que il a une baisse et elle va le mapper pour l'indépendance de quatre applications. Donc, c'est la concatenation de quatre pièges ici. Et ce qui va arriver est que cette baisse compose avec ce mu. Donc, dis-moi que l'L est une sorte d'explosif cocktail. La raison est que, en spite de que la baisse est invertible. Ok? Donc, imagine, c'est généré d'une invertible 32 x 32 matriques full of bits. Ok? Les applications de x à, pour dire, les 8 premières coordonnées ici ne peuvent pas être invertibles. Ok? Ça peut même être vous savez, constant. Pourquoi c'est ça? C'est parce que dans mes pièges pas tous les impôts sont évalués. Je dirais seulement une sorte de hyperplane comme vous pouvez voir. Ok? Parce que je dirais que la dimension de l'input est seulement huit. Vous savez, où est-ce que cette application normalement peut prendre comme input une dimension de 32. Ok? Et ça, ça sera je dirais la faute qui sera exploité pour réveiller le débat. Ok? Donc, la première distinguition qui est connue est que je l'ai déjà mentionné d'Al de donc FSE 2016 où, en fait, ils ont évalué une transforme appliquée sur ce AK. Donc, AK est cette fonction ou cette one, selon l'objet est correcte ou pas, vous voyez. Et donc, ce n'est pas un spectrum, par contre, c'est un spectrum pour les fonctions où il y a deux marques, input masque U output masque V et ce qui est basiquement la compétition est la façon de balancer vous voyez. Donc, cette transforme sera réveillée si cette fonction est balancée parce que il y a vraiment autant plus ou moins et plus plus ok? Quand c'est un balancé, alors nous avons une biaise et donc la fonction n'est plus balancée. Et donc, ce distingu c'est en fait la compétition de ce genre de total de l'espectrum de ce spectrum et c'est considéré le plus petit de l'espect. Right? Donc, nous introduisons un nouveau distingu c'est ce distingu que nous nous nous nous nous d'ailleurs ce qui est un genre vous savez similaire parce parce nous on est juste le nombre voilà j'suis agréable c'est uneexisting une compétition de une sur les coordonnées. Donc, vous voyez qu'ici, c'est en train d'exécuter un de les 32 bits. Nous pouvons, en fait, aller bête par bête, pour regarder l'explosif coctail que j'ai mentionné. Mais celui-ci est suitable pour le contexte de la cryptographie whitebox, où nous pouvons exécuter les tables, parce que nous avons besoin d'exactement pour compter les 0s. Alors, ici, comme vous pouvez le voir, c'est plus de scale, donc vous pouvez obtenir une idée du hammingweight, typiquement du leakage, donc c'est aussi suitable pour le contexte de la cryptographie whitebox. Donc, qu'est-ce qui est le différence entre les deux distinguissures ? Alors, tout d'abord, notre nouveau distinguissure est motivée par le fait que nous avons un lemma. Je l'appelle le lemma 2, pour refermer le papier correspondant. Donc, dans ce lemma, nous avons une fonction, qui est la composition du linéaire, et puis une fonction objective. Nous avons un nombre de 0s dans la transformation white, qui dépend de la rangée de l. Donc, si c'est objective, la rangée de l sera maximale, donc, en ce cas, il sera huit. Mais assumez-vous qu'il n'y soit plus, en regardant la propriété que notre fonction nouvelle n'est pas, je veux dire, c'est-à-dire que c'est seulement un subspace dans le sens de l'input. Puis, en ce cas, le nombre de 0s est en train d'étendre. Donc, nous avons, par contre, un distinguissure qui est plus tractable, et nous allons donner la preuve que cela fonctionne. Et cette preuve est utile parce que cela nous donnera une preuve pour l'input. Et en même temps, cela provoque d'un fondamental fort, pourquoi l'input fonctionne. Donc, en même temps, nous prouvons un attaque existant, et en même temps, nous renforcons l'input. Et, vous savez, par la preuve de l'argument de Cauchy-Schwarz, nous voyons que, depuis que notre distinguissure est prouvelée au travail, cela implique que l'une des formes formes de Sastres aussi fonctionne. Alors, nous allons voir comment cela fonctionne. Je vais commencer par une illustration. Nous allons déterminer le nombre de 0s dans la transformation du monde. Dans les deux situations, comme avant, quand nous avons la clé correcte, donc le nombre de 0s, vous voyez, c'est probable, mais c'est un genre de large. Mais quand nous n'avons pas la bonne clé correcte, donc dans notre situation, en fait, nous avons un genre de... il ressemble à une fonction ronde, mais en fait, c'est baladé. Et nous voyons que le nombre de 0s est très bas. Et vous pouvez voir les gapes entre les deux. Donc, cela veut dire que les forces distinguées de la distinguissure sont très altes. Ok, nous allons former ces choses un peu. Je vais parler de ronde, le rang de l'EI, donc pour l'EI, qui est l'une des quatre mètres. Et je vais introduire un couple de notations là-bas. Donc, premièrement, quand vous avez la bonne clé, juste par rapport à l'EI, c'est assez simple, le nombre de 0s est equal à 2 à la n, donc 256, minus 2 à la r. Et donc, pour prouver que le work de l'analyse fonctionne, nous devons prouver que pour la clé correcte, ensuite, le nombre de 0s dans cette fonction, est moins que 2 à la n, minus 2 à la r. Ok? Ce qui, en fait, sera managable par l'utilisation de l'EI, qui n'est pas très bien connu. Je le rappelle, ici, donc, de Bernazconi, et Cotnoti. Et ce qu'il dit, c'est que le nombre de non-zero values ici est en fait plus grand que la quantité, qui est relative à l'algebraic de la fonction boullée que l'on considère. Vous voyez? Donc, ce que nous devons prouver est que l'algebraic de l'algebraic ici est le plus grand possible quand nous avons le front-key. Donc, je vais vous montrer avec des intervalles. Il sera un peu plus facile. Je considère les cas où nous pouvons distinguer. Je vais juste rouler les cas où le rang est full. Je commence par le rang 8 minus 1, et puis d'autres cas, comme ça. D'ici, nous avons le nombre de non-zero values quand nous avons le front-key, c'est le maximum. Donc, à l'algebraic de l'algebraic de la fonction boullée que j'ai mentionnée, qui est en fait n minus 1, avec une probabilité overwhelmée. C'est expliqué dans le nombre de non-zero values comme ça. Et maintenant, le nombre de non-zero values pour le front-key est plus grand. Donc, nous avons un bas rang. Donc, il sera entre 2 à n minus 1 et 2 à n, en ce cas. Et quand le rang est encore plus petit, on a cet intervalle et cet intervalle. Et donc, ici, on distingue. Donc, nous n'avons pas le nombre de non-zero entre les deux. En pratique, comme vous pouvez le rappeler, les valeurs sont beaucoup moins. Mais donc, le rang que nous avons ici est un peu conservatif. Donc, nous pouvons le faire mieux. Mais de toute façon, quand on distingue même mieux, quand le rang est plus petit. Donc, ici est le proof. Donc, comment réparer l'algebraic de l'algebraic? C'est très facile. Nous devons simplement s'assurer que les fonctions lient. Donc, il y a 4 de ces fonctions et tous de ces fonctions doivent avoir un rang complet. Et donc, dans ces conditions, l'utilisation de l'algebraic 2 n'est plus rélevé. Donc, la question est-elle possible? Et par contre, c'est la probabilité que l'attaque fonctionne. Si l'algebraic 2 n'est pas un rang complet, ce qui se passe avec la probabilité, comme je l'ai mentionné, de plus que 99%. Mais maintenant, si nous restons les choix de 32 à 32 l'algebraic 5 pour une mapine comme que tous les 4 sont invertibles, clairement, c'est un constrain, mais encore, nous avons beaucoup d'entropies et donc, nous continuons d'assurer la pêche de la pêche officiellement. Pour conclure, nous avons introduit un nouveau distinguateur que nous avons trouvé par analyser la fonction de la pêche quand nous étudions l'exhaustibilité de la pêche. Ok? Donc, la façon dont nous avons construit le distinguateur est vraiment motivée par le étudiant de la statistique de la transformation. Et nous livrions et donc, nous avons compris que ce qui est relevant pour ces analyses de cryptos c'est de compter le nombre de 0s dans la transformation. En tant que nous savons, c'est le premier temps que cette property, donc, nous n'avons pas besoin de petites valeurs de la transformation, nous voulons les 0s, ok? Si c'est, vous savez, 2 ou moins 2, nous ne voulons pas, nous voulons compter les 0s, ok? Donc, c'est un peu intéressant parce que c'est le premier temps que le problème s'appuie. Et donc, nous avons réussi à procéder avec une prouve qui n'était vraiment pas si triviale. Et donc, de cette prouve, nous avons réussi à dégager une conterneur, ok? De la sélection de la fonction de 5. Donc, peut-être qu'il y a même un fort distinguateur que l'un qu'on introduit, mais apparemment, on explique pour nos analyses de cryptos et nous expliquons. Donc, on croit que nous sommes close à l'optimal. Et donc, ce temps, pour moi aussi, c'est pour les sponsors. Donc, ce travail était partie fondé par un projet H2020, un projet brain. Et donc, ainsi que le résultat de ces analyses sont incluses dans le script pour analyser les outils de catalyseur familial pour qui vous pouvez obtenir des informations sur ces liens. Merci beaucoup pour votre attention. Et le dernier remarque, il y a une spécification technique qui va être publiée par ISO. Donc, j'étais très heureux d'être le leader d'un document avec des collègues coréens. Donc, s'il vous plaît, il y a aussi des guidance dans ce document, qui est publié. Merci beaucoup. Bye.