Les cinquante dernière années, l'utilisation de la cryptographie s'est éloignée de ses origines militaires et de son usage pour le secret commercial pour se démocratiser à un public plus large.
Par exemple, la machine Enigma initialement conçue pour un usage militaire a été déclinée pour un usage commerciale (la machine Enigma A26).
Aujourd'hui, environ $60\%$ du premier million des sites les plus visités propose une connexion chiffrée et authentifiée (à l'aide du protocole \texttt{https}), tout comme les canaux de communication des appareils électronique portatifs (comme la norme \texttt{WPA}, en anglais \textit{Wifi Protected Access}).

Dans le même temps, la croissance des données échangée en ligne et la sensibilité de ces informations rend de plus en plus urgent la protection de ces canaux.
Pendant que la loi de Moore\footnote{La loi qui prédit la puissance de calcul des processeurs modernes.} atteint ses limites, d'autres menaces existent sur nos cryptosystèmes actuels.
Par exemple, l'existence d'un ordinateur quantique possédant suffisamment de mémoire~\cite{Sho99} casserait la majorité des constructions cryptographiques utilisées en pratique, puisqu'elles reposent sur des hypothèses d'arithmétique modulaire dont la structure peut-être exploitée par un adversaire quantique.
Dans cette situation, il est crucial de construire des schémas cryptographiques qui résisteraient à une menace quantique.

Pour répondre à ce problème, la \textit{cryptographie post-quantique} est née au début des années 2000.
Les différents candidats reposent sur différents objets mathématiques, comme les réseaux euclidiens, les codes correcteurs d'erreurs, les systèmes polynomiaux multivariés, etc.
Récemment, le NIST (\textit{National Institude of Standards and Technology}) a organisé une compétition pour évaluer les différentes solutions post-quantiques en terme de chiffrement et de signature~\cite{NIS17}.
Dans cette compétition, 82 protocoles ont été proposés, parmi lesquels 28 reposent sur les réseaux euclidiens, 24 sur les codes correcteurs, 13 sur des systèmes multi-variés, 4 sur des fonctions de hachages et 13 sur d'autres objets.

Si la cryptographie pratique vise principalement à fournir des schémas de signatures et de chiffrement, comme l'atteste la compétition du NIST,
la recherche théorique propose des solutions à des problèmes plus spécifiques, comme la construction de systèmes de monnaie électronique\footnote{À ne pas confondre avec les cryptomonnaies\ldots}~\cite{CFN88}, qui sont l'équivalent numérique de notre monnaies échangée. Les pièces sont délivrées par une autorité centrale (la banque), et les dépenses restent intraçables. En cas de comportement malhonnête (comme une double-dépense), l'identité de l'utilisateur malicieux est révélée.

Les constructions cryptographiques doivent en plus vérifier des propriétés de sécurités.
Par exemple, un schéma de chiffrement doit pouvoir cacher un message en présence d'un attaquant passif voire actif (c'est-à-dire qui peut modifier certains messages).
Pour garantir ces exigences, les cryptographes fournissent des preuves de sécurité dans le cadre de modèles de sécurité précis.
Une preuve de sécurité précise principalement qu'une construction cryptographique est au moins aussi difficile qu'un problème supposé dur par la littérature.

Finalement, l'importance de la préservation de la vie privé et la protection des données a été un sujet qui a fait couler beaucoup d'encres, comme en atteste le développement du règlement général sur la protection des données (RGPD) en 2016, mise en application ce 25 mai.
Il est donc intéressant pour les cryptographes de fournir des solutions qui resisteraient, dans le meilleurs des mondes, à un adversaire quantique.
Néanmoins, la construction de ces protocoles reposent de manière décisive sur les «\,preuves à divulgation nulles de connaissances\,». Ce sont des protocoles interactifs entre un prouveur et un vérificateur où le prouveur cherche à convaincre le vérificateur de la véracité d'une affirmation sans rien divulguer de plus que la valeur de vérité de cette affirmation.
Dans le contexte de la cryptographie post-quantique, de tels systèmes de preuves sont limités en expressivité ou en terme de coût de calcul (en temps ou en mémoire).

\section*{Cryptographie préservant la vie privée}

Dans ce contexte, la «\,préservation de la vie privée\,» décrit la capacité d'une primitive cryptographique à fournir certaines fonctionnalités tout en gardant certaines informations privée.
Par exemple, l'accréditation anonyme~\cite{Cha85,CL01} est un exemple de telles primitives.
De manière informelle, cette primitive permet à un utilisateur de garantir ses droits d'accès à un vérificateur, sans lui divulguer son identité, ni le motif de ses accès.
Pour réaliser cette primitive, le système est composé d'un (ou plusieurs) fournisseur(s) d'accréditations ainsi qu'un ensemble d'utilisateurs qui possèdent leur propre clef secrète ainsi qu'un ensemble d'attributs.
Les utilisateurs peuvent obtenir ces accréditations dynamiquement depuis un fournisseur qui ne connaît d'eux qu'un pseudonyme et qui signe de manière inconsciente les clefs secrètes des utilisateurs, ainsi que leur attributs.
Après avoir obtenu leurs accréditations, les utilisateurs peuvent s'authentifier sous un pseudonyme différent, et prouver la possession d'une certification de la part du/d'un fournisseur, sans divulguer ni la signature, ni la clef secrète.
Cette primitive permet ainsi à un utilisateur de s'identifier vis-à-vis du système (par exemple dans le cadre d'un contrôle d'accès anonyme) tout en préservant l'anonymat des utilisateurs.
De plus, ce système garantit que les utilisateurs possèdent un droit d'accès valide.

L'intérêt pour la cryptographie préservant la vie privée date du début de la cryptographie à clef publique~\cite{Rab81,Cha82,GM82,Cha85}.
Une raison pour cela pourrait être les similitudes entre les motivations de la cryptographie et les exigences de la protection de la vie privée.
De plus, le travail des cryptographes dans ce domaine ont des conséquences directes en terme de service apportés qui pourraient être développés dans le monde réel.
En effet, un système d'accréditation anonyme pourrait débloquer le contrôle d'accès anonyme et limiter ainsi le risque de faille de sécurité.
Alors que, de nos jours, les systèmes mis en places reposent sur des briques de bases plus élémentaires, comme des signatures, dont la manipulation peut amener différents problèmes de sécurité~\cite{VP17}.

De manière similaire, les \textit{primitives avancées} sont composés de briques de bases simples dans leur construction.
La principale différence réside en le fait que leur sécurité a été prouvée, ce qui offre une confiance plus forte dans la sécurité de ces constructinons.
Comme expliqué précédemment, ces preuves permettent de lier la sécurité des systèmes à des hypothèses de sécurité.
Ainsi, la sécurité repose sur la validité de ces hypothèses, qui peuvent être étudiées indépendamment du système par les cryptanalystes.
Dans ce cas contraire, cela peut amener à différents problèmes, comme dans le cas de applications multilinéaires, dont plusieurs candidats ont été rendus caduques par~\cite{CHL+15}.
Cet exemple montre ainsi l'importance de faire reposer la cryptographie sur des hypothèses simples comme nous l'expliqueront dans le chapitre~\ref{ch:proofs}.

Les schémas développés dans cette thèse reposent sur des hypothèses de réseaux euclidiens et des applications bilinéaires sur les groupes cycliques (ou couplages).
La cryptographie à base de réseaux euclidiens est utilisées pour aller d'avant vers la cryptographie post-quantique, tandis que les applications bilinéaires sont utiles pour la construction de schémas pratiques.
Les détails de ces deux structures sont présentés dans le chapitre~\cite{ch:structures}.

\subsection*{Preuves sans divulgation de connaissance}

Comme nous l'avons expliqué précédemment, les preuves sans divulgation de connaissances sont une brique de base pour la cryptographie préservant la vie privée.
Elles exigent les propriétés de complétude, de robustesse et de non-divulgation de connaissance.
La complétude exprimes la correction du protocole dans le cas où tout le monde agit honnêtement.
Dans le cas d'un prouveur malhonnête, la robustesse demande à ce que le vérifieur ne peut être convaincu qu'avec une probabilité négligeable.
Au contraire, si le vérifieur essaye de tricher, la non-divulgation de connaissance assure au prouveur que son secret reste protégé.

Dans le cadre de l'identification, la nature du secret reste simple, et des solutions reposant sur différentes hypothèses de sécurité existent~\cite{Sch96,Ste96,KTX08,Lyu08}.
Pour des affirmations plus complexes, tels que prouver l'exécution correcte d'un calcul, il existe un écart entre ce qu'on peut prouver dans le cadre de la cryptographie post-quantique et celle qui repose sur le l'arithmétique modulaire de manière plus directe.
Dans le cadre des couplages, il existe des preuves sans divulgation de connaissance non-interactive qui permettent de prouver une large classe d'affirmation~\cite{GOS06,GS08} sans idéaliser le modèle de sécurité.
De telles preuves sont, à ce jour, manquantes dans le cadre de la cryptographie post-quantique.

Pour les réseaux euclidiens, il y a principalement deux familles de preuves: les preuves à la Schnorr~\cite{Sch96,Lyu09} et les preuves à la Stern~\cite{Ste96}, nommés d'après leurs découvreurs respectifs.
Les preuves à la Schnorr reposent sur des réseaux structurés en exploitant cette structure pour fournir des preuves compactes au détriment de l'expressivité de ces preuves.
Au contraire, les preuves à la Stern reposent sur la combinatoire de la représentation des réseaux généraux en tant que matrices et vecteurs.
Par nature, ces preuves sont coûteuses en terme de complexité de communication.
En revanche, elles sont suffisamment versatiles pour prouver une large variété d'affirmations, comme nous l'expliqueront plus en détail dans cette thèse, et plus particulièrement dans le chapitre~\ref{sse:stern}.
Les preuves à divulgation nulle de connaissance sont détaillées dans le chapitre~\ref{ch:zka}.

\subsection*{Signatures avec protocoles efficaces}

Pour rendre possible la cryptographie à base de réseaux euclidiens, une approche possible est de coupler les preuves sans divulgation de connaissance avec des schéma de signature.
De telles signatures sont dites «\,avec protocoles efficaces\,».
Cette primitive étend la fonctionnalité des signatures traditionnelles de deux manière: (i)~Elle permet au signataire de signer oblieusement un message caché et (ii)~Les utilisateurs peuvent prouver sans divulgation de connaissance la connaissance d'une paire message-signature cachée.

Ces deux propriétés s'avèrent être extrêmement utiles dans la construction de protocoles protégeant l'anonymat tels que l'accréditation anonyme ou la monnaie électronique.
La construction effective de ces signatures avec protocoles efficace est donc un point clef dans la cryptographie préservant la vie privée.

Dans cette thèse, nous proposons deux constructions de telles signatures.
Une première, décrite dans le chapitre~\ref{ch:sigmasig} qui repose sur les couplages.
C'est une traduction du schéma de~\cite{LPY15} dans un modèle idéalisé pour atteindre une efficacité raisonnable en pratique.
L'autre, décrite dans le chapitre~\ref{ch:gs-lwe}, adapte une variante de la signature de Boyen~\cite{Boy10,BHJ+15} à la mise en gage de Kawachi-Tanaka-Xagawa~\cite{KTX08} pour proposer un schéma de signature à base de réseaux euclidiens compatible avec les preuves à la Stern.
Ce schéma a aussi été relaxé dans le cadre du transfert inconscient, où, à certains endroits, seule la sécurité pour des messages aléatoire est requise. Cela est décrit dans le chapitre~\ref{ch:ot-lwe}.

\section*{Couplages et réseaux} 

\begin{comment}

In this thesis, the proposed constructions rely on the assumed hardness of assumptions over pairing-friendly groups and lattices.
These two objects have widely been used in cryptography since the early 2000s~\cite{SOK00,Reg05}.
Even since, they attracted much attention from cryptographers, leading to multiple constructions in advanced cryptography (as in~\cite{Jou00,BBS04,BN06,GS08,LYJP14,LPQ17} for pairings, and~\cite{GPV08,ABB10,BV11,GSW13,dPLNS17} for lattices).

\subsection{Pairing-Based Cryptography}

A pairing is a bilinear map from two cyclic source groups to a target group.
This bilinear property takes advantage of a rich structure to groups that are compatible with such a map.
It is then not surprising to see the variety of schemes that stems from pairing-based cryptography.
In the context of privacy-based cryptography, an important breakthrough was the introduction of Groth-Sahai proofs~\cite{GOS06,GS08} that allow proving in a non-interactive zero-knowledge fashion a large class of statements in the standard model.
For instance, Groth-Sahai proofs have been used in group signatures and anonymous-credential schemes~\cite{Gro07,BCKL08,BCC+09}, or e-cash systems in the standard model~\cite{BCKL09}.

In this thesis, however, our pairing-based constructions focus on practicality.
Thus, they are instantiated in the random oracle model, where Schnorr's proof are made non-interactive through the Fiat-Shamir transform when the statement to prove is simple enough.

A recent line of work in cryptanalysis of bilinear maps~\cite{KB16,MSS17,BD18} led to a change in the panorama of practical pairing-based cryptography.
This affects us in the sense that security parameter has to be increased in order to achieve the same security level.

Nevertheless, pairing-based cryptography offers a nice tradeoff between its capabilities and efficiency.
As an example, we can cite the work of Döttling and Garg~\cite{DG17}, who closed the problem of providing an identity-based encryption scheme which only relies on the Diffie-Hellman assumption (it is construction on cyclic groups that does not need pairings, as defined in~\cref{de:DDH}).
While their construction relies on a simpler mathematical object, it does not reach the efficiency of pairing-based ones~\cite{BB04}.

\subsection{Lattice-Based Cryptography}

From an algebraic point of view, a lattice is a discrete subgroup of $\RR^n$,
which leads to a simple additive structure.
The core difference with number-theoretic cryptography, such as discrete-logarithm-based cryptography, is the existence of the geometrical structure of the lattice.
From this geometry rises some problems that are believed to withstand quantum computers.
Despite this apparently simple structure, some advanced primitives are only known, as of today, to be possible under lattice assumptions, such as fully-homomorphic encryption~\cite{Gen09,GSW13}.

The versatility of lattice-based cryptography is enabled by the existence of lattice trapdoors~\cite{GPV08,CHKP10,MP12}, as we explain in~\cref{sse:lattice-trapdoors}.
Informally, the knowledge of a short basis for a lattice allows sampling short vectors, which is believed to be hard without such a short basis.
Furthermore, knowing a short basis for the lattice $\{\mathbf{v} \in \ZZ^m \mid \mathbf{A} \mathbf{z} = 0 \bmod q\}$ described by matrix $\mathbf{A} \in \ZZ_q^{n \times m}$ makes it possible to generate a short basis for a related lattice described by $[ \mathbf{A} \mid \mathbf{B}] \in \ZZ_q^{n \times m'}$.
An application for this property is Boyen's signature scheme~\cite{Boy10}.
In this scheme, a signature for message $m$ is a short vector in the orthogonal lattice of the matrix $\mathbf{A}_m = [\mathbf{A} \mid \mathbf{B}_m]$, where $\mathbf{B}_m$ is publicly computable.
Hence, knowing a trapdoor for $\mathbf{A}$ makes the computation of this short vector possible, and the message is bound to the description of the lattice $\mathbf{A}_m$.
Indeed, some extra care has to be taken to avoid multiplicative attacks.

Still, the use of lattice trapdoors comes at a price, as it significantly decreases the efficiency of cryptographic designs that use them~\cite{Lyu12,LLNW16}.
Given that we provide the first lattice-based construction for the scheme we present, we focused on designing provably-secure scheme under well-studied assumptions.

\section{Our Results}

In this thesis, we present several cryptographic constructions that preserve privacy.
These constructions are the result of both improvements we made in the use of zero-knowledge proofs and the ability to prove the security of our constructions under standard assumptions.
We believe that these advances on zero-knowledge proofs are of independent interest and that the given schemes are a step towards quantum-secure privacy-preserving cryptography.
In the following, we detail four contributions that are developed in this thesis.
These results are taken from four published articles: \cite{LMPY16,LLM+16,LLM+16a,LLM+17}.

\subsection{Dynamic Group Signatures and Anonymous Credentials}

In~\cref{pa:gs-ac}, we present two primitives: dynamic group signatures and anonymous credentials.
We already described the behavior of anonymous credential in~\cref{se:privacy-preserving-crypto}.
As for dynamic group signatures, they are a primitive that allows a group of users to authenticate messages on behalf of the group while remaining anonymous inside this group.
The users still remain accountable for their actions, as another authority knows a secret information that gives it the ability to lift anonymity of misbehaving users.

By itself, this primitive can be used to provide anonymous authentications while providing accountability (which is not the case with anonymous credentials).
For instance, in the Internet of things, such as smart cars, it is important to provide authenticated communication channels as well as anonymity. For car communications, if exchanged data may not be sensitive by themselves, the identity of the driver could be.
We can imagine a scenario where some burglars eavesdrop a specific car to know whenever a house is empty.

In this thesis, we present in~\cref{ch:sigmasig} pairing-based group signatures that aims at efficiency while relying on simple assumptions.
The resulting scheme shows competitive signature size with other schemes that rely on more ad-hoc assumptions, and its practicality is supported by an implementation.
This scheme is presented in~\cite{LMPY16}, which is joint work with Benoît Libert, Thomas Peters an Moti Yung presented at AsiaCCS'16.

\cref{ch:gs-lwe} presents the first \textit{dynamic} group signature scheme relying on lattice assumptions.
This has been made possible by adapting Stern-like proofs to properly interact with a signature scheme: a variant of Boyen's signature~\cite{Boy10,BHJ+15}.
It results in a \textit{signature with efficient protocols} that is of independent interest.
Later, it has been adapted in the design dynamic group encryption~\cite{LLM+16a} and adaptive oblivious transfer~\cite{LLM+17}.
This work is described in~\cite{LLM+16}, made with Benoît Libert, San Ling, Khoa Nguyen and Huaxiong Wang and presented at Asiacrypt'16.

\subsection{Group Encryption}

Group encryption schemes~\cite{KTY07} are the encryption analogue of group signatures.
In this setting, a user is willing to send a message to a group member, while keeping the recipient of the message hidden inside the group.
In order to keep user accountable for their actions, an opening authority is further empowered with some secret information allowing it to un-anonymize ciphertexts.

More formally, a group signature scheme is a primitive allowing the sender to generate publicly verifiable proofs that: (1) The ciphertext is well-formed and intended to some registered group member who will be able to decrypt; (2) The opening authority will be able to identify the receiver if necessary; (3) The plaintext satisfies certain properties, such as being a witness for some public relation, or the private key that underlies a given public key.
In the model of Kiayias, Tsiounis and Yung~\cite{KTY07}, the message secrecy and anonymity properties are required to withstand active adversaries, which are granted access to decryption oracles in all security definitions.

A natural application is to allow a firewall to filter all incoming encrypted emails except those intended for some certified organization members and the content of which is additionally guaranteed to satisfy certain requirements, like the absence of malware.
Furthermore, group encryption schemes are motivated by privacy applications such as anonymous trusted third parties, key recovery mechanisms or oblivious retriever storage system.
In cloud storage services, group encryption enables privacy-preserving asynchronous transfers of encrypted datasets.
Namely, it allows users to archive encrypted datasets on remote servers while convincing those servers that the data is indeed intended to some anonymous certified client who has a valid account to the storage provider.
In case of suspicions on the archive's content, a judge should be able do identify the recipient of the archive.

To tackle the problem of designing lattice-based group encryption, we needed to handle ``quadratic relations''.
Indeed, lattice-based zero-knowledge proof systems were able to handle only relations where witnesses are multiplied by a public value.
Let us recall that, in Learning-With-Errors schemes, an encryption have the form $\mathbf{A} \cdot \mathbf{s} + \mathbf{e} + \mathbf{m} \lceil \frac{q}{2} \rceil \bmod q$, where $\mathbf{A}$ is the recipient public-key.
As group encryption requires this public-key $\mathbf{A}$ to be private, a way to achieve this is to have a zero-knowledge proof system which handles relations where the witness is multiplied with a private matrix.

We address this issue introducing new technique to handle this kind of relations.
These techniques, based on a \textit{divide-and-conquer} strategy, are described in~\cref{ch:ge-lwe}, as well as the construction of the group signature scheme proven fully-secure in the standard model.
This work have been presented at Asiacrypt'16~\cite{LLM+16a} and have been done with Benoît Libert, San Ling, Khoa Nguyen and Huaxiong Wang.

\subsection{Adaptive Oblivious Transfer}

Oblivious transfer is a primitive coined by Rabin~\cite{Rab81} and later extended by Even, Goldreich and Lempel~\cite{EGL85}.
It involves a server with a database of messages indexed from $1$ to $N$ and a receiver with a secret index $\rho \in \{1,\ldots,N\}$.
The protocol allows the receiver to retrieve the $\rho$-th message from the receiver without letting him infer anything on his choice.
Furthermore, the receiver only obtains the $\rho$-th message and learns nothing about the other messages.

In its adaptive flavor~\cite{NP99}, oblivious transfer allows the receiver to interact $k$ times with the server to obtain $k$ messages in such a way that, each request may depend on the previously retrieved messages.

From a theoretical point of view, oblivious transfer is known to be a \textit{complete building block} for cryptography in the sense that, if it can be realized, then any secure multiparty computation can be.
In its adaptive variant, oblivious transfer has applications in privacy-preserving access to sensitive databases (such as medical records or financial data) stored in an encrypted form on a remote server.

In its basic form, (adaptive) oblivious transfer does not restrict in any way the population of users who can obtain specific records.
In many sensitive databases (e.g., DNA samples or patients' medical history), however, not all users should be able to access the whole database.
It is thus crucial to protect the access to certain entries conditioned on the receiver holding suitable credentials delivered by authorities.
At the same time, privacy protection requires that authorized users should be able to query database records while leaking as little as possible about their interests or activities.

This requirements is handled by endowing oblivious transfer with access control, as stated by Camenish, Dubovitskaya and Neven~\cite{CDN09}.
In this variant, each database record is protected by a different access control policy.
Based on their attributes, users can obtain credentials from pre-determined authorities, which entitle them to anonymously retrieve database records of which the access policy accepts their certified attributes.
During the transfer phase, the user demonstrates, in a zero-knowledge manner, possession of an attribute string compatible with the policy of a record in the database, as well as a credential for this attribute.
The only information that the database holder eventually learns is that some user retrieved some record which he was authorized to obtain.

To achieve this, an important property is the expressiveness of such access policies.
In other words, the system should be able to handle complex attribute policies while keeping time and memory consumption reasonable\footnote{Here, ``\textit{reasonable}'' means (probabilistic) polynomial time.}.
In this thesis, we propose in~\cref{ch:ot-lwe} a zero-knowledge protocol to efficiently handle any access policy that can be described with a logarithmic-depth boolean circuit, also known as $\mathsf{NC}1$, based on lattices.
In the context of adaptive oblivious transfer with access control, most of the schemes (based on pairing assumptions) manage to handle the case of conjunctions under reasonable assumptions~\cite{CDN09,CDNZ11,ACDN13}. Under strong assumptions, however, the case of $\mathsf{NC}1$ can be taken care of~\cite{ZAW+10}.

This joint work with Benoît Libert, San Ling, Khoa Nguyen and Huaxiong Wang was presented at Asiacrypt'17~\cite{LLM+17}. 
\end{comment}
