 Donc, le dernier détail de cette session est d'améliorer la conversion de l'aéroport de Boolean à la masque arithmétique de Luc Bétal, Jean-Sébastien Couron et Rina Zetoun, et Jean-Sébastien va donner le détail. Ok, merci Sonia. Dans ce détail, je vais décrire un nouveau algorithm de conversion de l'aéroport de Boolean à la masque arithmétique Je vais récolter ce qu'est ce classique de masque quantamajours Je pense qu'il devrait être assez clair maintenant Dans le masque quantamajours, si on a... On va, au-delà de procéder des variables X, n'importe quelle variable X dans un bloc cipher, on va masquer X avec un ordre random R et on procéde seulement la variable masque X prime, qui est X or R Donc maintenant, car R est random, X prime est aussi random donc la consomption de X prime va être random et puis, il n'y a pas d'informations sur X qui est liée Donc c'est le masque quantamajours mais certains algorithmes combinent Boolean et les opérations arithmétiques par exemple HMAC SHA-1 Donc dans ce cas, pour ces algorithmes, nous aimerons aussi utiliser des masques arithmétiques dans lesquels, similarly, la variable original X est liée entre deux masques arithmétiques A et R un modulo 2-2K où K est le nombre des registres donc nous devons manipuler A et R separatement Donc maintenant, si nous avons un algorithme qui combine Boolean et l'opération arithmétique la question est, comment convertir-nous entre Boolean et l'opération arithmétique Donc à SHA-01, Guubin décide le premier algorithme de conversion entre Boolean et l'opération arithmétique et s'occuper de la première ordre donc s'occuper de la première ordre d'attaque Mais bien sûr, nous savons que c'est possible de monter des attaques secondes dans lesquelles nous combinons l'information de la valeur masque entre les normes R et donc cet attaque seconde nécessite plus de traces mais cela peut être pratique Donc une solution naturelle pour protéger les attaques secondes c'est d'utiliser la mosquée haute Donc, en plus d'avoir deux attaques nous expliquons l'original variable X dans les n attaques x1 à xn Et maintenant, si nous garantissons que chaque subset de shares n-1 sont uniformement et indépendant distribuées En ce cas, si nous probons les shares n-1 nous learnsons rien de x parce que tout est uniformement distribué Donc, cela veut dire que le comptage va être sécurisé contre l'attaque d'attaque d'ordre à plus de n-1 Donc maintenant le problème est la suivante Nous avons cette mosquée haute mais pour les opérations arithmétiques nous aimerons utiliser la mosquée haute dans laquelle x est expliqué dans les shares Arithmétiques Donc, maintenant la question est comment nous convertir entre la mosquée haute et la mosquée haute Donc, dans ce cas je vais décrire une nouvelle mosquée haute pour l'algorithme conversion Donc, nous allons de la mosquée haute pour la mosquée haute Et c'est en fait un variant de la mosquée qu'on a publiée à la dernière chasse et un variant plus efficace Donc, nous verrons que la complexité de l'algorithme est indépendante d'un registre de taille K donc, c'est indépendant de K et c'est pourquoi la mosquée haute est assez efficace en pratique et encore, bien sûr, nous avons une prouve de sécurité dans le modèle ISW de la probation Donc, nous allons summariser le travail priori Donc, j'ai dénoté par n, le nombre de shares de la taille de la mosquée donc, par exemple, K equals 32 pour HMAC Chawan Donc, initialement nous avons l'algorithme Gubin qui est assuré à la première ordre et de Boulian à Arithmetik, la conversion est très efficace c'est constant en fait et de Arithmetik à Boulian c'est un peu moins efficace la complexité est proportionnelle pour le registre, proportionnel à K et puis à Chasse 14 nous avons publié le premier algorithme de la haute ordre pour convertir entre Boulian et Arithmetik et la complexité était N² K dans les deux directions et donc, cette complexité était légèrement approfondée pour Bigo of Log K pour la première ordre de la complexité plutôt que Bigo of K d'Arithmetik à Boulian direction et ça translates à N² log K plutôt que N² K dans les deux directions mais en fait ça ne fait pas vraiment d'improuvoir le temps au moins pour K equals 32 parce qu'il y a un grand constat devant le log K donc l'année dernière je disais à la haute ordre Boulian et Arithmetik conversion algorithme où la complexité est indépendante de K mais la complexité est exponentielle dans le nombre de shares N mais mais en fait pour petites valeurs de N le temps de tour est plus rapide que du travail prévu donc c'est seulement intéressant pour petites valeurs de N pour que vous décrivez une variante, une variante simplifiée de cette compréhension de l'année dernière dans laquelle on a un peu d'improuvé le temps de tour par un facteur constant donc si nous étudiez la complexité ici on voit que sur la ligne bleue nous sommes un peu mieux que la compréhension de l'année dernière la ligne bleue et puis la complexité est comparée à la compréhension de la compréhension 14 mais ici la complexité est exponentielle donc à un moment, c'est mieux d'utiliser la compréhension 14 donc j'ai comparé avec la compréhension de l'année dernière donc nous avons gagné environ 25 % dans le temps de tour mais la raison dont nous avons décidé d'utiliser cette compréhension c'est que c'est plus simple c'est un peu plus élégant il y a moins de components comme je vais expliquer en particulier il y a moins de masques refreshings donc la compréhension est pour la suivante nous avons décrivé une variante simplifiée de l'algorithme 2017 et encore bien sûr avec la preuve de sécurité dans le modèle ISW et c'était une approche qui a été initiée par Hunter et Tunstall dans un papier imprimé mais en fait, ils n'ont pas de preuves de sécurité donc l'année dernière j'ai décrivé un autre attaque contre leur scheme pour beaucoup de shares et cette année nous avons aussi un autre attaque contre leurs algorithmes donc let's recall rapidement le modèle de sécurité donc nous travaillons dans le modèle ISW dans lequel l'adversarié peut avoir des t-probes et puis la preuve est simulation-based c'est-à-dire, nous prouvez que pour tout un set de t-probes nous pouvons parfaitement simuler ces t-probes d'un subset d'input shares de la clé secret donc si nous pouvons simuler les shares de la clé secret et si ces shares sont initialement uniformes et indépendant cela signifie que nous pouvons parfaitement simuler ces shares de la clé secret et donc nous pouvons parfaitement simuler les t-probes et cela signifie que l'adversarié n'aie rien à apprendre parce qu'il pourrait performer cette simulation par lui-même donc la preuve principale de l'adversarié sans la preuve de sécurité parce que beaucoup de choses peuvent aller wrong et nous pouvons avoir une intrusion de la sécurité de l'adversarié donc je vais décrire l'algorithme de Gubin donc le l'algorithme original de Gubin est basé sur cette fonction Psi qui est XR-R modulo 2k et c'est basé sur le fait que il est affin avec respect à la seconde variable R sur GF2 donc c'est surprise parce que la fonction combine une boule et une opération arithmétique mais c'est vrai et puis c'est facile à décrire l'algorithme de conversion nous commençons avec les deux shares X1 et X2 nous substituons X2 et puis nous ajoutons X2 et c'est par définition la fonction Psi et grâce à la propriété affin de cette fonction Psi nous pouvons décrire ça comme l'exor de deux fonctions Psi et puis nous verrons que cette termine peut être compétue sans l'information liée grâce à cette ronde R et donc cela implique que la fonction est d'abord la sécurité donc ici nous avons les summes de deux shares arithmétiques A et X2 qui peuvent être compétues sans connaître X sans l'information liée à X donc notre nouveau algorithme est la généralisation de Goubin donc nous commençons avec des shares en plus de N donc X1 l'exor de X1 à Xn plus 1 artificiellement nous substituons X2 à Xn plus 1 et puis nous ajoutons X2 à Xn plus 1 donc ici nous reconnaissons la définition de la fonction Psi sur le côté gauche et maintenant grâce à la propriété de cette fonction Psi nous pouvons expliquer ces expressions en N de la fonction Psi et donc ici nous avons les summes de deux expressions qui ont les shares en N en plus de N plus 1 au début donc nous pouvons appliquer l'algorithme recursive et donc nous allons appliquer les shares en plus de N pour obtenir les shares en plus en plus de N au début donc ici nous donnons les shares en plus de N et nous recevrons ces share n minus 1 et maintenant nous pouvons faire des groupes des shares et puis nous obtiendrons les shares N Donc, nous avons un algorithme récursif qui fait que l'input n'a plus une chaise d'input, n'a plus une chaise de boulet, et l'output n'a plus une chaise arithmétique. Donc, ici, c'est une simplification d'envers, parce que nous avons besoin d'intermédiaires masques pour refraîner, sinon la comptabilité sera insecure. Donc, nous avons une prouve dans le modèle de probation de l'ISW. En fait, nous avons utilisé ces définitions de TNI et de TSAI, qui sont très convaincées pour prouver la sécurité de l'ISW, parce qu'on peut s'occuper de chaque gadget séparément. Et ensuite, nous avons utilisé la propriété de composition pour argumenter sur la sécurité de l'ISW. Donc, la prouve est dans les procédés. Et pour la comptabilité de l'opération, nous avons vu que, dans la nouvelle comptabilité, nous sommes plus efficaces que la comptabilité de l'année dernière. Et aussi, la comptabilité est beaucoup plus efficace pour les petits ordres que la comptabilité de la chaise de l'année 2014. C'est au moins un ordre de magnitude plus efficace. Mais c'est vrai pour les petits ordres de sécurité, parce que la compréhension s'étend exponentiellement. Donc, à un moment, nous sommes moins efficaces. Donc, nous avons également réalisé la vérification formale de la comptabilité. Donc, pour cela, nous avons utilisé le tool de check-mask que j'ai publié cette année. Donc, c'est une vérification générique de la vérification de la comptabilité. Et c'est basé sur la liste commune de la langue, qui est très bien utilisé pour les manipulations formales. Et ensuite, la source code pour la vérification formale est assez courte. Donc, c'est facile de vérifier que le code est correct. Et donc, le code est aussi public. Donc, mais c'est une vérification générique. Et nous regardons tous les possibles sub-sets de variables n-1. Donc, la compréhension est exponentielle en n. Et c'est en fait double exponentielle, parce que la taille de la comptabilité est aussi exponentielle en n. Donc, c'est pourquoi nous pouvons seulement performer cette vérification pour les petites valeurs de n, jusqu'à n equals à 5. Mais tout de suite, ça donne des conférences dans la correcté de la proof de sécurité. Donc, pour conclure, j'ai décrit un nouveau régime de conversion algorithma qui est plus simple que celui de l'année dernière. Et un peu plus efficace. Donc, nous avons toujours une proof de sécurité et une vérification formale de n equals à 5. Mais le gros boulot de l'algorithme, c'est que sa compréhension est exponentielle dans le nombre de shares. Mais, en dépendant de la taille de la registre, le nombre de shares, c'est important pour nous. Et donc, pour les petites valeurs de n, c'est encore plus efficace. Donc, bien sûr, l'interprolème d'ouvrir est de dire, peut-on mieux faire cette complexité exponentielle? Donc, merci pour votre attention. Merci. Nous avons eu le temps pour les questions. Je ne sais pas si vous avez une question, donc, dans votre proposition, pour faire une conversion de boule et de masque pour une masque d'hythymique, avec un modulus, qui est la puissance de 2. Avez-vous des propositions efficaces ? Avez-vous des propositions efficaces pour s'appliquer à une conversion avec un autre type de modulus, comme un prime, par exemple ? Oui, c'est difficile de faire cette conversion de prime, parce que, ici, la conversion est basée sur le fait que cette fonction spécifique est fine par rapport à la seconde variable sur le GF2. Donc, si vous avez un prime de modulus ici plutôt que de 2 à K, alors, oui, c'est unlikely que vous ayez une property fine. Et puis, l'algorithme est complètement basé sur cette property fine. C'est difficile de poursuivre ceci sur le prime de modulus. Questions ? J'ai une autre question très courte. Vous avez testé votre méthode sur les petites ordres, avec le tool de vérification. Pour ces types d'ordres, peut-être que vous ayez plus d'optimisation, ou peut-être que vous utilisez moins de valeurs à cause de ces ordres ? Oui, on pourrait imaginer qu'on utilise moins de valeurs, oui. Nous n'avons pas essayé d'optimiser le nombre de valeurs, mais certainement, oui, puisque la complexité est exponentielle, c'est certainement possible de réduire le nombre de valeurs. Et, en fait, vous pouvez vérifier ceci avec le tool formal. Ok, merci. Nous allons remercier les speakers, et tous les speakers de cette session.