 Hello everyone and thank you for attending our talk. I'm Jean-François Boussua and today I will be presenting with my colleague Christian Woucher, our joint work with Juan Trocosa-Pastoriza and Jean-Pier Rubaud on efficient boost trapping for approximate homomorphic encryption with non-sparskies. I will now let Christian take over and give the first part of this talk. Hi and thanks for watching our presentation. Like traditional homomorphic encryption, approximate homomorphic encryption enables computation to be performed over encrypted data. However, with a relaxed correctness property that the decryption procedure can output an approximate result. These schemes have been very successful in securing numerical applications for which the underlying data is approximate by nature. For example, machine learning, training and inference tasks can be securely outsourced to a third party under homomorphic encryption without endangering the confidentiality of the data. The CKKS scheme is one such approximate homomorphic encryption scheme that has become very popular in applications. Based on ring learning with error, it encryptes vectors of floating point complex numbers and has been implemented in several libraries. It is a leveled scheme, which means that only a finite number of operations can be carried out before a bootstrapping procedure is needed to continue the evaluation. There exists such bootstrapping procedure for CKKS, but it is not implemented in all libraries yet. And this is partly because the use of bootstrapping est still subject to a complexe and multidimensional trade-off between the computational cost of the procedure, the residual homomorphic capacity, which sets the maximum depth of a circuit before bootstrapping needs to be called again. The approximation error introduced by the procedure, which is inherent to the approximate nature of the scheme, the failure probability of the procedure, and the security of the encryption parameter. In this work, we improve the CKKS bootstrapping in all the dimensions of this trade-off by proposing novel algorithms for its core building blocks. We first recall the CKKS scheme, which we simplify for the sake of the exposition. The ciphertext space is a polynomial quotient ring, where polynomials have degree D, a power of 2, and have integer coefficients modulo QL. QL is a product of L different primes, small Q0 to small QL, which enables representing the polynomial coefficients as the residue modulo HQI, which is a residue number system thanks to the Chinese reminder theorem. For H, a key density parameter, the key generation procedure samples the secret key S in the ring, such that it has exactly H non-zero coefficients that are uniformly distributed between minus 1 and 1. Then, given a message M, which we view as a polynomial in X with complex coefficients, the encryption function scales the message up by a factor delta and adds a pseudo-random mask to it. The mask is generated as a ring-learning with error topple, the product between the secret key and a uniformly random element drawn from the ring, plus some noise drawn from the error distribution. The encryption is then simply an inner product between the ciphertext and the secret key and scaling the message back down which yields a noisy message, hence the approximate nature of the scheme. During homomorphic evaluation, the quantized representation of the message implies that the scale will increase exponentially with the number of multiplications which would quickly become impractical. The secret key scheme has a rescaling procedure which divides the ciphertext by one of the factors of the coefficient modulus QL which is efficient in the RNS domain. However, this consumes the factor of QL and yields a ciphertext at a smaller coefficient modulus which we say is at a lower level. This also means that CKKS ciphertexts have a dynamic scale that is not necessarily a multiple of the original scale. This brings additional challenges when designing homomorphic circuits which we'll detail later in this presentation. So the evaluation of a homomorphic circuit costs levels and eventually, an evaluator will end up with a ciphertext at level 0 for which no more rescalings are possible. And although the encryption is still possible at level 0, the question is whether it is possible to get back to a higher level to continue the evaluation yet without knowing the secret key. This is the purpose of the bootstrapping procedure. Given a ciphertext at level 0, it outputs a ciphertext encrypting a close approximation of the same message but at level L larger than 0. Improving the bootstrapping procedure of CKKS was the focus of several works in the past few years but the high-level circuit has remained the same. First, the ciphertext is expressed back to the highest level using the natural RNA space extension. This yields a ciphertext that still encrypt M yet only up to some integer multiple i of Q0. The second step hence consists in homomorphically applying a modular reduction modulo Q0 to the coefficient of the message. To do that, a special discrete Fourier transform is homomorphically evaluated so that the further computations are applied on the message coefficient wise. Then, the modular reduction is applied as a polynomial approximation of a sine function scaled by Q0. Finally, the inverse transform is homomorphically applied to put M back to its original domain. The output is then at level L-K where K is the number of levels used for the bootstrapping. Hence, K should be smaller than L for the procedure to be practical and K directly determines the maximal depth of evaluation before bootstrapping needs to be called again. So the core functionalities of bootstrapping are the special DFT transforms which are expressed as homomorphic matrix vector products and the modular reduction which is expressed as an homomorphic polynomial evaluation at point x equals ciphertexte. Moreover, the whole procedure is very sensitive to the density of the secret key and this is because the coefficient of I are upper bounded by the square root of the Hamming weight of S. Sparser secret keys require a smaller initial modulus QL for the same security which implies that a smaller number of homomorphic operation can be performed. On the other hand, denser secret key require a larger range of approximation for the mod Q0 function for the same failure probability which costs CPU time and more levels. Hence, there is still a somewhat complex trade-off involved in the parametrization and usage of bootstrapping. This brings us to our contribution. When performing homomorphic polynomial evaluation, the fact that three scalings can only be performed by the factors of the modulus QL introduces small deviations between the scale of ciphertexte at the same level. Current approaches have mainly either accepted the deviation as error or have consumed extra levels to eliminate it. We propose an improved polynomial evaluation algorithm that does not introduce any error while having optimal level consumption. For matrix vector multiplications, the current baby step giant step approach heavily relies on ciphertexte slot rotations and is the main performance bottleneck of the bootstrapping. We propose an improved rotation procedure that extends the hoisting technique to a second level of hoisting. Finally, we show that integrating our improved procedure in the bootstrapping circuit greatly improves its efficiency. We notably demonstrate an instance that uses a dense secret key yet is more efficient than current works that use sparse key. Jean-Philippe will now present these contributions in more detail. Our first contribution is a polynomial evaluation algorithm. Homomorphic polynomial evaluation aims at evaluating a plaintexte polynomial at encrypted points outputting the encryption of the evaluation at these points. Such procedures require to solve three main challenges. Minimizing the depth Minimizing the complexity and minimizing the error. Our contribution focuses on the third challenge as the other two have already been addressed by previous works. The approximate scaling of the full RNSQKS slightly modifies the ciphertexte scale. This implies that the ciphertexte additions will now result in an additional unwanted error when their scale is not identical. Moreover, the final ciphertexte scale après the polynomial evaluation will not be the same as the input one. In fact, managing the scale in deep circuits is a difficult task and often requires to consume an extra level to reset the scale of the ciphertexte to the original one. In this work, we provide a homomorphic polynomial evaluation algorithm based on the baby step general step algorithm of RNSQKS but without any overhead ensures that additions are done between ciphertexte of identical scales and that output the ciphertexte with a scale that is the same as the input one. La clé de l'observation est que l'algorithme de l'algorithme de l'algorithme peut être vu comme l'évaluation recursive de la base scale c equals a plus b times un power basis élément. Pour contrôler la scale, l'opération re-scaling est faite après la multiplication de b times x qui résulte en a et b times x n'ont pas la même scale. Quand les deux sont adhés ensemble, cela introduit un erreur qui est proportionnel aux différences de la scale. La main idée de notre proposition est d'assurer que la scale de b times x matche la scale d'a après l'opération re-scaling. Depuis que la scale de tous les éléments du power basis et de la module qui sera utilisée pour la re-scaling sont en avance, cela peut être étendu par imposer une condition recursive de la scale de b comme que après sa multiplication avec le power basis élément et la opération re-scaling, sa scale finit en étant la même que l'une de l'a. Pour illustrer cette condition recursive de la scale, nous avons un exemple graphique pour un polynomial de 7°. Nous commençons d'un point d'optimisation d'optimisation qui peut être l'une de la texte des textes d'input. La première étape est de propagandiser les conditions de match de scale par le circuit de l'évaluation polinomale jusqu'à la coiffusion de l'évaluation polinomale de plein texte. Cela nous donne les conditions de condition de l'input que le texte de la saison après être multiplié par les coefficients polinomales de plein texte doit s'assurer les conditions de match de scale par l'évaluation polinomale de plein texte. Finalement, la seconde étape est simplement d'évaluer les coefficients polinomales de plein texte appréciées basées sur ces conditions d'input. Nous évaluons notre évaluation polinomale de scale de l'évaluation polinomale contre le state de l'art. Pour faire ça, nous comparons à l'algorithme original proposé par Han and Key en utilisant une approximation polinomale de la fonction modulaire de réduction qui joue un rôle central dans le bootstrapping de la CQQS. Nos résultats sont que notre algorithme donne une augmentation substantially dans la précision finale et que cela permet d'assurer que l'évaluation polinomale soit constante sans consommer une extra étape. Plus de suite, notre algorithme met en place des caisseurs de courner où l'évaluation optimale n'est pas assurée en utilisant l'art original. Plus de détails peuvent être trouvés dans le papier. Le préféré préféré montre que notre algorithme donne la même précision par l'utilisation de techniques de scale proposées par Kim, Papa Dimitrio et Polyakov. Mais sans l'évalué et sans changer l'évaluation polinomale. Par exemple, les deux techniques donnent une précision de 30 bits pour l'évaluation de l'évalué de la puissance de x de 0 à 63, mais nous sommes plus près à 5 fois plus vite et ne modifient pas l'évalué de la scale de scale. Notre deuxième contribution est un algorithme d'amélioration de la multiplication des matriques. La multiplication des matriques nécessite beaucoup de homomorphes. Et ce sont les opérations dont elles doivent être suivies par un switch de clé qui est la plus complétationnelle de l'opération de la CQQS. Un switch de clé est une procédure que l'homomorphicalie ré-encrypte un texte sous une clé différente. Il peut être bloqué dans deux ou trois étapes. La première est de décomposer l'évalué de la puissance dans deux éléments de l'évalué de la scale suivant un volume de base intégral. C'est fait pour limiter l'évalué introduit par le switch de clé. C'est une opération expansive dont il nécessite de bouger l'évalué dans et de l'endroit de l'endroit de la CQQS et de faire modifier les extensions de clé. La seconde est un produit d'inautique entre le décomposé de la polynoméale et le switch de clé. Cette étape est seulement composée des additions de polynoméale et des multiplications qui sont chères quand elles sont carrées dans l'endroit de la CQQS. La dernière étape est de diviser le résultat par un grand intègre P pour réduire l'évalué de l'endroit. Ce qui est, de nouveau, computationnellement expansif comme cela aussi nécessite de bouger les polynoméales en et en de l'endroit de la CQQS et de faire moduler les extensions de base base. Les rotations de l'homomorphique sont définies par une fée de l'automorphisme. La particularité de cette opération est que cela aussi s'implique les clés sous lesquelles la CQQS est encryptée. C'est-à-dire qu'il doit être suivi par un switch de clé pour ré-encrypter la CQQS sous ses clés originales. Si plusieurs rotations doivent être computées sur le même texte de CQQS, nous pouvons précomprimer la première étape du switch de clé qui est la base intègre de la composition et la réutiliser pour chaque rotation différente. Cette technique, proposée par Hallévi et Choup, est appelée Hoisting. Mais, le fait augmente le nombre de l'automorphisme dès qu'il doit maintenant être évalué sur la décomposée planinomiale au lieu de l'original. Nous improuvez les clés de CQQS en utilisant les rotations hoistées par éteindre les clés de génération qui switchent le texte de la saison à l'inverse de l'automorphisme. En faisant ça, nous pouvons évaluer l'évolution de l'automorphisme à la fin de la CQQS au lieu de le faire en débutant. Plus, le nombre d'automorphismes est réduit à un minimum strict et ne fait pas de plus sur le nombre d'éléments dans la base intègre de l'évolution. Les schématiques illustrées sont des clés qui changent la rotation de la rotation. Avec un switch de clés et une rotation homomorphique introduite, nous ne pouvons pas diviser dans l'algorithme de multiplication de la vectorie homomorphique. L'algorithme original a été proposé par Halivien Choup et pour une matrixe de dimension n1 c'est un n2, il n'y a que un n1 plus un n2 rotation. C'est un nombre de rotations de l'audor de la square root de la dimension de la matrixe. Cette efficacité s'éteint le fait que les rotations n1 peuvent être précomputées et réutilisées pour chaque n2 rotation. Les schématiques circulées illustrées étaient les décomposées mules moutées et des pertes mules de la rotation qui se passent dans l'algorithme. Halivien Choup ensuite a augmenté l'algorithme par hoster les rotations n1 qui remonte la dépendance de la décomposée de la n1. En ce jour, nous proposons une improvement additionnelle pour l'algorithme de Halivien Choup par ajouter un second level de foistage. Nous délaissons les deux moutées à la prochaine étape de l'algorithme c'est-à-dire la moutée durant la loop n1 est émettue à la loop n2 et la moutée à la loop n2 est émettue à la fin de l'algorithme. Nous ajoutons la partie modifiée de l'algorithme. Mais ce change pas sans un petit conséquent. Parce que nous délaissons la moutée à la étape de l'algorithme la multiplication entre la matrixe plane et les textes rotées sont maintenant en un modulus largeur. Mais cela n'a qu'un impact marginal sur la complexité du rôle overall parce que cette partie est équilibrée à un stade multiple. Le résultat n'est que maintenant que les décomposations et les modulations ne dépendront plus de la loop n1. Pour conclure, notre modifier double modifié diminuera la complexité de l'algorithme de la multiplication de la matrixe de la moutée proposée par Halivien Choup par émettue la dépendance de l'algorithme sur les modulations de la rotation de la moutée en addition à la étape de la décomposation. Dans un setting optimale, cela se traduit à un speed-up de 2x sur l'algorithme de l'original 1. Nous referons le papier pour des détails et comparations avec les works précédents. Finalement, notre troisième contribution est la procédure de bootstrapping pour la scheme CKKS qui intégrerait nos contributions prévues ainsi que les ones plus générales mais je ne vais pas summariser. Tout d'abord, une réduction plus précise grâce à l'algorithme de la progression de l'algorithme qui est optimale à la étape de la décomposation retient la compréhension de la décomposation préserve l'input scale et les additions de l'aéroport. Deuxièmement, plus efficace de la moutée homomorphique en utilisant les clés de rotation spéciale pour la rotation de rouleaux un speed-up double de rouleaux pour l'algorithme de l'algorithme de la matrix vector mais aussi pour le packer et l'unpacker pour le texte de sparse et pour les multiplications de comptants. Finalement, nous prenons également plus de plus générales contributions ainsi que des paramètres de 128 bits la première instance de bootstrapping qui utilise un secret dans une probabilité d'amplification d'ampericale un algorithme de step-by-step pour les paramètres de l'algorithme de sélection et de la décomposation et une implementation d'apprentissage. C'est pour cela que nous présentons la section d'évaluation de cette décision et nous donnons plus de détails sur nos résultats et comparations avec les précédentes works. Nous considérons deux métriques pour évaluer les procédures de bootstrapping. La première est la métrique de throughput de bootstrapping qui mesure le nombre d'effectifs de bits de bootstrapping de l'homomorphic plaintexte par seconde. Nous le computons comme le nombre de slots de plaintexte à la précision qui est l'inverse de l'arrivée à la taille de la modulus de ciphertexte après bootstrapping divisé par la complexité qui est misée dans le temps de CPU. La seconde métrique est la probabilité de failure de bootstrapping qui est équal à la probabilité que le message avant la réduction de modulaire de l'homomorphic s'occupe à l'approche de la range de la approximation de mod Q0. Depuis que l'oeil s'occupe d'une distribution éloignante, F est computé par l'adaptation d'une fonction de distribution cumulative. Nous avons les résultats de notre évaluation sur le plane de throughput de bootstrapping. Nous avons placé nos meilleures paramètres de performance pour séparer les secrets comme les squares orange et pour les secrets comme les squares bleus. Les labels sont le nombre de slots de plaintexte par ciphertexte. Pour référence, nous avons également mis le meilleur résultat du travail précédent et le travail de Liet Aal qui est aussi présenté à EuroCrip cette année. C'est important de observer que nous réportons les nouvelles estimations pour la sécurité du travail précédent. C'est considéré les récentes attaques sur Sparsky. Mais ces travaux étaient prêts pour ces nouvelles attaques et avaient, à la fois, de l'éloignage de sécurité. Nous observons que notre improvement de bootstrapping a un ordre de magnitude de grande throughput que le travail précédent a considéré la probabilité de faillir plus bas. En plus, sa instantiation est une clé dente qui a un grand throughput et est plus relayable que le travail précédent en utilisant Sparsky. C'est une bonne news car cela signifie que le texte de bootstrapping de la sécurité de la sécurité sera pratiqué même si plus de progrès est fait sur l'attaque de Sparsky. Avant de conclure et pour les références de les spectateurs, nous savons un peu plus de détails sur les paramètres de la encryption et le résultat de notre évaluation ainsi que nos références bibliographiques. En effet, beaucoup plus de détails peuvent être trouvés dans le papier. Pour conclure, nous proposons des procédures d'improvement pour la multiplication de la multiplication de matrix homomorphique et de l'évaluation de la polynomial. Combiennement, nous enlèvons un bootstrapping qui a un ordre de magnitude de grande throughput que les approches prévues. Avec cet improvement, nous démonstrons une bootstrapping sur des clés dents qui a encore de grande throughput qu'à les opérations de previous en utilisant les Sparsky. Encorement, les procédures d'improvement sont génériques et ont une application au plus proche de la procédure de bootstrapping. Finalement, nous nous l'implémentons dans la quote La Tigué de La Tigué. La Tigué est une libraire pour la encryption de la multiplication de multiplies homomorphiques qui est crée de Kenny entre l'EBFL et un site de게요 qui est récentlée dans la compagnie basé qui utilise la encryption de la multiplication de multiplies homomorphiques dans l'application de l'application fédérités. Le Librer implique plusieurs schemes de répartie along with their threshold variants. This includes the full RNS CKKS scheme and our bootstraping procedure, which is currently the only open source implementation of the full RNS CKKS bootstraping. But we hope that new results, including those presented today, will encourage wider implementation and adoption. Thank you for your attention.