 Dans ce talk, nous allons faire des crypto-analyses de 2 rounds de l'Event Monsor en utilisant de nouvelles techniques. Qu'est-ce que l'Event Monsor ? L'Event Monsor aimerait être le plus simple permutation basé de bloc cipher. Il a été introduit par l'Event Monsor en 1991. Et maintenant, nous allons focusser sur la version single-key par Duncan Mann et Et al en 2012. Donc, l'Event Monsor cipher prend un nbit-to-nbit public permutation P, un nbit secret key K. Et il utilise cela pour construire un cipher de bloc secure. Juste comme vous pouvez le voir sur la picture. Il prend le texte plané par la clé. Il y a une permutation. Et il y a une clé de la même clé pour obtenir le texte cipher. Qu'est-ce que nous savons de cette construction ? Bien, par le point de vue d'un attaqueur, vous avez deux choix. Vous pouvez créer le nbit secret de bloc cipher E. Je n'ai appelé le nbit secret de bloc cipher E. Ou vous pouvez créer le nbit public de bloc cipher P. Je n'ai appelé le nbit Q de bloc cipher E. Ce que vous pouvez prouver pour cette construction c'est que ça doit être secure, en tant que le produit D times Q est suffisamment basé à la fin. Dans notre monde, vous pouvez prouver le nbit secret de bloc cipher E. Parce que vous avez au moins une de ces valeurs doit être au moins 2 à la fin de 2 pour obtenir le nbit Q. Et les attaques sont de la même année. Damon propose un attaqueur en exactement ce traitement. D times Q est equal à 2 à la fin. Et même D times T, c'est le temps de procédure, le temps de complexité de l'attaque. Vous pouvez voir que je n'ai quitté les variables. J'ai X et E of X input-off-put of the key permutation. Y and P of Y input-off-put of the public permutation. Et puis vous avez la propriété que si X and Y different par la clé, par construction vous devez avoir que P and Y and E of X also different par la clé. Juste parce que c'est construit. Et si vous summez ces deux équations ensemble, vous trouvez que le summe de toutes les variables E X plus E of X plus Y plus P of Y doit être 0. Et puis l'attaque est juste un traitement correct. Vous pouvez définir deux fonctions, X plus E of X, et l'autre, Y plus P of Y. Et si vous trouvez une collusion entre ces deux fonctions, vous avez un bon détail pour la clé, parce que vous trouvez des pairs qui satisfisent l'équation. C'est à dire qu'il n'y a pas de collusion pour le faire. C'est un bon jour. Nous savons pour le faire si c'est efficace en termes de temps. C'est le temps de lire la liste. Il n'y a vraiment pas de gap entre le best-proof et l'attaque dans le même round. Mais nous allons parler d'un deuxième round. Qu'est-ce que c'est? C'est une extension par Bogdanoff et Al en 2012. Le but c'est de garder la construction simple mais de la sécurité au niveau de la date. Qu'est-ce que nous savons? Nous pouvons prouver la sécurité jusqu'à 2-2-n à 3-n. Mais quand vous regardez l'attaque du temps complexe, le meilleur temps complexe de l'attaque n'est qu'à 2-n à 2-n. C'est assez proche d'une force brute de l'attaque. Vous avez un gap très simile entre le best-proof et le best-attaque. Mais quand vous regardez l'attaque de l'information theoretique vous avez une avec le trade-off d'aimes q² à 2-n. Vous pouvez avoir d'aimes q² à 2-n à 3-n et vous avez assez d'informations d'attaque. Mais le meilleur temps complexe de l'attaque n'est pas le data mais le temps de processus. Nous n'avons rien de mieux qu'à 2-n. Et c'est même plus que ça. Parce que souvent ils utilisent beaucoup de mémoire de la mémoire, donc c'est plus difficile d'avoir de la mémoire. Et dans ce talk avec notre nouveau approche nous n'avons rien de mieux que de temps. Nous serons à 2-n à 2-n mais nous fâchons de mémoire et d'attaque pour réduire à un niveau plus acceptable. Qu'est-ce que l'approche ? Nous faisons de la même raison qu'avant. Je nomme z et p2 z, d'input de pieds de la seconde permutation. Et maintenant de la même raison que avant je dis que pour n'importe les trépers x, y, z si j'ai une différence de k entre x et y et aussi une différence de k entre p1, y et z puis par construction j'ai la troisième pour 3. J'ai la p2 de z et de x qui diffèrent par quai. Je ne veux pas qu'ils somment tous ensemble mais j'ai sommé deux par deux. La première avec la seconde et la première avec la troisième. Et j'ai deux équations comme ceci. Ceux deux sommes si je peux faire des guesses sur les deux sommes il faut être 0. Donc le but maintenant c'est de trouver un trépers. Je veux trouver un trépers x, y, z pour que j'ai satisfait ceci parce que ça ne dépend pas du quai donc je peux observer. Et ceci je dis c'est un problème de trépers. J'ai juste construit trois fonctions comme ceci en dessinant la solution pour le problème de trépers sur ces trois fonctions c'est exactement la même chose que trouver un trépers x, y, z qui satisfait ceci. Et maintenant comme la stratégie c'est très simple je veux dessiner le problème de trépers et j'ai un guess. Donc on regarde le problème de trépers. Vous pouvez voir le problème de trépers en général du problème de collision. Vous avez deux fonctions vous voulez trouver deux impôts pour que ces deux fonctions passent à 0. Le problème de trépers vous avez trois fonctions et vous voulez trouver trois impôts pour que toutes les trois fonctions sur ces impôts passent à 0. Et dans ce truc j'ai souvent utilisé la version avec des listes qui sont assez équivalents vous avez donné trois listes et vous voulez trouver trois éléments pour que les éléments passent à 0. Vous pouvez penser de construire ces listes pour que les éléments passent à 0. Donc j'ai une définition de trépers et je vous montre que le problème de trépers en général est que vous pouvez le voir avec deux éléments de trépers. Qu'est-ce qu'on sait en utilisant ces instants de trépers? Vous pouvez facilement voir pour les trépers que vous avez besoin d'envoyer deux trépers pour que vous avez une solution de trépers donc ça veut dire qu'une liste doit avoir au moins une liste de trépers jusqu'à 2 et 2 et 3. En même temps si chaque liste de trépers jusqu'à 2 et 2 et 3 j'ai des trépers qui peuvent juste passer tous les trépers et trouver une solution. Donc nous avons une proof que vous avez besoin au moins de 2 et 2 et 3 d'informations et d'informations de trépers dans les trépers. Vous trouverez que la meilleure chose tourne en temps à la fin de la fin. Et c'est la même expérience que nous avons vu pour les trépers de trépers. Vous avez déjà compris pourquoi nous ne pourrions pas faire mieux avec cette stratégie en termes de temps mais on va aller un peu plus bas dans les trépers sur les trépers de trépers. Vous avez deux techniques et l'autre est la technique de technique basique par Israël et elles sont la même complexité dans la même compagnie mais vous avez ça. En le tourne en temps de trépers de trépers d'exception de trépers de trépers de trépers de trépers de trépers de trépers de trépers de trépers de trépers tous des techniques basique de trépers de trépers de trépers de trépers d'exergés pour traiter la complexité ou la obturner Donc, vous voyez le résumé précédent et il y a quatre attaques que je vais expliquer plus tard dans notre papier. La première chose que vous pouvez voir, c'est que je l'ai mis en rède, toute la complexité est proche de 2 à la fin, jusqu'à un facteur log. Vous pouvez voir dans la ligne de temps que tout le monde est en rède, et nous ne savons vraiment pas comment faire mieux que ça. Mais si vous regardez les attaques précédentes, vous avez les données ou la mémoire en rède, même pour n'importe quel paramètre que vous pouvez choisir. Mais dans les dernières trois ou quatre attaques, nous pouvons effectivement réduire les données et la mémoire, signifiquement, en bas, jusqu'à la fin, en gardant le modèle de plaintexte. Donc, on va. Donc, la stratégie, je le record. Nous avons trois listes. Je veux sauver les trucs sur ces trois listes, et j'ai un bon résultat pour le king. C'est ça. Et le simple, c'est l'un des techniques d'Argebra, la technique de Jules, et je vais l'expliquer maintenant. Donc, les techniques de Jules ont besoin d'un de les listes pour être assez petit. Vous avez pris la première liste et vous avez besoin de 10 mots. C'était d'une taille de 2 n-bits. Donc, vous pouvez voir que c'est un n x 2 n-bit matrix. Et le truc est de transformer. Donc, vous pouvez, etchelinez, columniser, ce matrix et trouver un matrix de transformation qui va transformer la liste à 0 bits sur la gauche et la t-matrix sur la droite. Et l'idée est que ce matrix de transformation soit invertible. Donc, le problème de transformation avec les trucs, avec les transformé listes, va donner exactement la même solution que le problème de transformé. Et c'est plus facile de travailler sur les transformé listes. Pourquoi ? Parce que vous savez que vous avez une liste avec seulement les mots qui commencent par 0. Donc, pour les deux autres éléments que vous voulez trouver, vous savez qu'on va avoir une collision n-bit partiale et nous savons comment regarder pour une collision. C'est plus facile d'assurer les trucs. Donc, ça marche comme ça. Compute la t-matrix de transformation avec la première liste. Et ensuite, vous transformez vos deux autres listes. Vous regardez pour la collision n-bit partiale entre les deux autres listes. Et vous vérifiez si vous avez une solution pour chaque collision de la t-matrix. La complexité, c'est que vous avez une complexité de mémoire et de computation de 2tn divided par square root of n. Et vous devez avoir ces deux autres listes pour que vous avez au moins 2tn triples. Parce que la première liste est limitée à n-words. Et donc, comment se translating pour les cryptes. Nous avons utilisé les tricks avec ces techniques. Et nous avons notre première attaque. Nous avons évidemment choisi les petites listes pour être la première, parce que nous avons déjà une très haute complexité d'un texte non en plein texte. Donc nous avons utilisé très peu de données et c'est suffisant. Et nous avons déjà une compétitive cryptonaisie. Mais nous pouvons mieux faire ça, je vais juste utiliser l'algorithme de la t-matrix que nous n'avons pas dans le cas random. Vous pouvez voir sur la liste que vous avez un peu de pouvoir de la valeur. Si vous voulez rester dans le texte non en plein texte, peut-être que vous voulez fixer une valeur pour x ou e of x. Mais vous pouvez effectivement contrôler y ou z, prendre une valeur que vous voulez. Si vous pouvez même faire mieux, vous pouvez impliquer l'inverse z' et l'inverse de la seconde permutation z' et vous pouvez contrôler y et z' sans avoir juste une compétition. Vous choisissez ce que vous créez. Et puis, ce que vous pouvez faire ? Imaginez que vous avez targeté une compétition de 2 à d, vous devez avoir une compétition de 2 à d minus d donc vous avez une solution avec une bonne probabilité. Vous pouvez donc décider d'aller avec y et z' pour que les n'aient de 2 à d 0. Vous forcez les 0 à aligner. Qu'est-ce que vous pouvez faire ? Vous avez déjà un filtre dans les premières compétitions et vous pouvez réjecter une liste qui ne finit pas par 0, parce que ce n'est pas une solution. Vous faites comme ça et ce que vous donnez après la campagne, c'est une liste de l'un des plus grands. Alors, en plus de 2 à d, vous recrétiez 2 à d en plus. Et le nombre de l'un des plus grands c'est aussi un peu de l'un des plus grands. Et maintenant je peux utiliser aucun algorithme que je veux. Peut-être que je ne vais pas retourner à l'étrature et je regarde l'algorithme qui s'occupe d'une liste habituelle. Donc, j'ai plus de liberté. Le premier, qui a été donné par Wagner, dans le paper Général's Boys' Day, c'est peut-être une mauvaise, mais nous avons récemment travaillé par Bouliagé de Laplace et Fouk qui ont étudié un peu plus cet algorithme et proposent de répéter l'algorithme Général's un nombre de temps tronc par tronc. Et ils disent que c'est peut-être l'une des plus réellistiques pour le site réalistique. Donc, c'est l'une d'elles avec ce traitement complexe. Et vous avez un autre, qui est en fait le meilleur complexité non asymptotique pour résoudre les trucs, d'autant qu'ils se montrent très réellistiques. Vous avez un grand constance élevé qui ne marche pas pour le site réalistique. Mais vous avez une bonne complexité asymptotique. Je vais juste placer le site de la liste et j'ai la complexité de l'attaque. Donc vous pouvez voir le nombre, ce n'est pas mieux que le bruit mais le deuxième, c'est très compétitif. Vous avez 2, 2 et un autre n, et en fait, on peut même avoir une meilleure complexité asymptotique même si ce n'est pas pratique pour résoudre ces attaques. Ça marche. Donc en fait dans le deuxième attaque, nous avons un meilleur temps, comme l'on l'a proposé avant, mais c'est seulement asymptotique. Tout ce que j'ai à faire c'est de vous présenter un attaque basé. Un attaque basé c'est peut-être un truc différent. Vous vous souvenez de la technique de joue. Vous vous transformez avec de la transformation que vous avez en tant qu'invertible, le problème est l'équivalent. Je fais de la technique, mais avec un nombre plus petit. Donc, pensez que l'amda est un paramètre qui est peut-être 1,5, comme une fraction de n. Une fraction de n est encore de 2 n. Et maintenant, je peux l'escalier, mais seulement la partie droite. Et je vais toujours rester avec des 0s, parce que c'est seulement une fraction de n. Encore une fois, j'imagine 1,5, donc j'ai un n over 2 matrixes de 0s et une identité matrixe. Maintenant, souvenez-vous, nous pouvons choisir pourquoi nz prime. Après la transformation pour obtenir le problème de la transformation, si je connais la matrixe m et que c'est invertible, je peux toujours choisir y times m et z prime times m. J'ai le contrôle d'eux. Donc, je force la collision. J'ai plus, je sais que j'ai besoin de 0s donc je peux choisir d'alpha, fixer-le. Je sais que j'ai des 3 collisions sur ces bids. Et comment finis-je ? Je me déclenche la solution. J'utilise les techniques pour trouver si il y a une solution. Ce n'est pas une solution, quand je fixe l'alpha, je peux juste essayer pour trouver une solution pour d'autres valeurs d'alpha. Et parce que vous avez cette collision pour 3, et aussi vous avez cette complexité de temps, c'est très compétitive, c'est très low data, et c'est plus important de la consommation de RAM. Parce qu'il n'y a que les éléments de l'alpha, comme les valeurs sur la droite de l'alpha, les bids de l'alpha. Et quand j'utilise l'alpha, je peux juste retirer toutes les listes de l'alpha. Donc, la consommation de RAM de l'alpha, c'est de l'alpha. C'est beaucoup plus raisonnable que d'avoir un membre de l'alpha de l'alpha. Donc, il y a un peu d'alpha. J'ai montré que, après l'alpha, nous pouvions utiliser d'autres algorithmes génériques que nous pouvions trouver. À ce point de temps, nous ne pouvions pas vraiment avoir une meilleure complexité de temps, mais qui sait, peut-être dans le futur, nous pouvions trouver plus vite et ce serait immédiatement nous imprimer plus vite pour le développement d'un membre de l'alpha. Mais, cela peut être une indication que, parce que le 3D semble vraiment difficile d'assurer ce 3D opérateur plus vite, peut-être que cela explique pourquoi c'est difficile d'assurer le développement de l'alpha plus vite, plus près de l'alpha. C'est très difficile de gagner plus. Donc, nous avons deux choix, nous avons entre l'alpha et les techniques d'alpha, et ils utilisent beaucoup d'alpha, mais c'est clair que les techniques d'alpha utilisent moins de membre. Vous avez un meilleur management de membre sur ces techniques, ce qui est intéressant. Un autre remarque, si vous regardez le traitement de l'alpha, vous avez que D times T est vraiment 2 à la fin. C'est le même traitement que vous trouverez pour la preuve de l'alpha, qui signifie que, puisque la preuve s'applique à l'alpha de l'alpha, cela signifie que l'alpha s'attaque à l'information de l'alpha plus efficace, que pour cette plus petite range, la fraction de l'alpha. Un autre remarque, je vous montre que pour l'alpha de l'alpha, il y a des éléments d'alpha de l'alpha de l'alpha. Si je prends l'alpha de l'alpha, je peux le faire comme un problème de 5 ans, juste comme ça. C'est un problème de 5 ans avec 4 éléments d'alpha qui sont plus grands. Vous pouvez voir qu'il y a un traitement très fort, vous avez 0, mais en général, vous pouvez avoir un traitement de r plus 1 avec l'alpha de l'alpha et peut-être que c'est un bon start de penser pour de nouvelles manières de cryptonésie. C'est cette construction iterative. C'est mon dernier slide. Nous avons un nouveau traitement de cryptonésie avec un nouveau traitement, avec un bon management de data et de mémoire. Je vous montre entre les deux techniques et les trucs de notre programme. Vous pouvez explorer de nouvelles techniques de l'alpha de l'alpha et c'est dans notre opinion que nous pouvons avoir un meilleur profil complexe sur le nez de la production d'attaques, que ce soit le data ou la mémoire. Merci. Est-ce qu'il y a des questions ? Merci pour votre travail. Qu'est-ce que vous avez sur les techniques de l'alpha de l'alpha de l'alpha ? Est-ce qu'il y a des régions pour les réductionments de la mémoire ? Ça semble très chaud pour une réduction parce que vous avez cette structure pour une cryptonésie que vous n'avez pas pour le cas de la round-down. Et le dernier attaque qui montre que vous pouvez avoir un meilleur profil pour les petites ranges de data que vous n'aurez pas pour les 2-2-D2N-trippers que vous devez faire pour le cas de la round-down. Donc je n'ai pas envie d'avoir une réduction pour les techniques de l'alpha de l'alpha mais peut-être que vous avez une compréhension complexe et vous pouvez le rédire. Je ne sais pas. Est-ce qu'il y a d'autres questions ? Je pense qu'il y a tous les 4 autres de nous.