From 4198209fea5f5c961e6d26e703ab4a386d7d6eac Mon Sep 17 00:00:00 2001 From: Alexander Munch-Hansen Date: Sun, 22 Dec 2019 14:12:34 +0100 Subject: [PATCH] more --- papers/DTPKE-Const.pdf | Bin 0 -> 155004 bytes report.tex | 162 +++++++++++++++++++++++++++++++++-------- 2 files changed, 130 insertions(+), 32 deletions(-) create mode 100644 papers/DTPKE-Const.pdf diff --git a/papers/DTPKE-Const.pdf b/papers/DTPKE-Const.pdf new file mode 100644 index 0000000000000000000000000000000000000000..727930020677701f64149d28fbe5424ea24fa3a9 GIT binary patch literal 155004 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%0DpK;o1+0-?u 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
pz<{kZU#mHfpEV*z)fjzz|d{UvIhgh zL10W)5az>T_X7q30r#c?4wwTlC{QuzP&*I^0+d)f&<=PO$X&vQ!GY+jgD^O75iHasUPb?hnJ{neJ}~LIYz4JQn+5U?4vUQzd3U z3(C>R04o*N1U#yA=FKMRH+FgM>GfPuik+5`T- z{p|o46jOQW01ODZ1hTshz<@`=m?~5U+983f@37Y%38d{}_xt0i1J8n?KnfN1`oSR} zOwI27eE{W8pg>9V12EvcpfTlM_P4{#4Td#l5F8E%GS&{ZgMfkM$ASTCaA@s;c0j-& z_Osx_;{!Grt6wk-gvk#(@GPca3?@bt^Z9k|Az(Nrw+;)2srz#f27`bwcMM{++lx6p z2m@Ytc+5ylIjDo}z-Y{siw9s(2pULHJ_rM-!694)+5wfn4z_~=#lW!F6bb_dgWV25 zE$p#i@B@1dpl}5CngXZvFn$0h=+GI00#{LEuK~~p;G@DCGaPXU7l1ynaRCe<9QHW? z1NrlZ*AIrkcqTEQU;7IM{DIi}2897geW=}@lkniPKu|39d4WRFK>j0EAHWemv>$ND z;r#%L5FJ{3C=!#+d9Ys?>d^Uv0tuFf_Y&Y%hn@u=qLV;%IgBg)U>_*hAsPV#@3~D6 zv;$y&pq&7x!g?PJ0t3p+9qa=Jl+`+fM^F%^4BEjyppZlO0c;VFfr`}*AVk<}4+B^a z_8I`E`4H~`j>aLJfgvz?uLt`8=-(kc2euN8JzqeM05Wv3o`nM&hYdr3FlC@HpI>JZ z4o4nZQ#b;22tVKm2nu^{01w5KQat!RH0ltaL4Xd?aS*^$4&fUDa7ttE2LicwgZzO$ z5J2Sx?7c*wK$wi*1ML8Qgvolwf*}v_eIzizL+y~rLvjRw9f#;M66hCu4S;sQC7)RR zqA;};55fSM0h7XTV01L<2nqTF9R~ro_8#mP5W0Y11#H-%JpyKifMA^$0EWWeUkqQs#!G;CK(KKdfB_T% zt6xCU!={sf+<90&1+w9>YM$SGwW`M^Z>H|;>u+JYL zdt=KCU?>t0ez3=fgkjSIjI0OT{CjX705^ghhM^CgN#HaeI^zH@JEW5Uq7=5=1cpHl z;W+?9VAB^cz-6#`HvmH(!Wlq9!lnlp+56BMz+iw>jXhu3Azq8o^Y-tNi<619t%Va2 zCgexc+5-q;2TqQVhP}NDa1-;7$RBw-OM4c8v|=LL<)v5*Sk9V(0bDe(Kmi&B1a1Mg z#GG>rQ!_KPr3oP0TfoGK{(X}l5mwGFfKt4to&o~{Br76LPH9ycB1~^TmGJ*tHCup1 z+`+-Z&Kyvff!PUyf2!U8y^an2rG^s;{c97!Vg3HMQVt;ZuQ_U1INQ5AnOQiq07o0M z&OhQb)l95_%YgRG1$HjZEWpvl{7%E(1!Efkwn^E-+}cFK-W}KzV6TYa00N-^B4h~I zCNRZZU049(cp!Qb$Tj#=rx?NVuf1Zh_wU^TW`%#>?OvghpZocHt{B|@YqvkILILK35zc@m1OH1yPNP}fC=prp4DT$U52hc?tCUzE%5{F8m5J(xMlq5(}Tv`Gyjh2v>KuLm7 uNJ+31OboN92axhNu3}6_K+#_e_5k?#8&}1|Sb)5c-{=KHLZJVk*Z%>3*AKP; literal 0 HcmV?d00001 diff --git a/report.tex b/report.tex index 1c46e0d..c7c0940 100644 --- a/report.tex +++ b/report.tex @@ -11,8 +11,14 @@ \usepackage{xspace} \usepackage[margin=1.25in]{geometry} \usepackage{wasysym} +\usepackage{pdfpages} +\usepackage[toc,page]{appendix} +% Indent all description environments slightly +\usepackage{enumitem} +\setlist[description]{leftmargin=\parindent,labelindent=\parindent} + \newtheorem{definition}{Definition} \newtheorem{theorem}{Theorem} @@ -33,20 +39,24 @@ \newcommand{\hdr}{\text{Hdr}} \newcommand{\set}[1]{\{#1\}} \newcommand{\AHBE}{\texttt{AHBE}\xspace} +\newcommand{\overbar}[1]{\mkern 1.5mu\overline{\mkern-1.5mu#1\mkern-1.5mu}\mkern 1.5mu} - +% Use dash instead of bullets for itemize +\renewcommand\labelitemi{--} \author{Alexander Munch-Hansen \\ 201505956} \title{ \normalfont \normalsize - \textsc{Aarhus University} \\ [20pt] % Your university, school and/or department name(s) + \textsc{Aarhus University} \\ [20pt] \horrule{0.5pt} \\[0.4cm] % Thin top horizontal rule - \huge Beyond Public Key Cryptography \\ - \large A study of various extensions of public key crypto, with focus on Broadcast Encryption schemes \\ % The assignment title + \huge Beyond Public Key Cryptography \\ % The assignment main title + \large A study of various extensions of public key crypto, with focus on Broadcast Encryption schemes \\ % The assignment sub title \horrule{2pt} \\[0.5cm] % Thick bottom horizontal rule } +% TODO: Fix the remaining descriptions, such that they all use the environment! + \date{\today} \begin{document} \maketitle @@ -105,7 +115,7 @@ Let $(\Gm_1, \Gm_2, \Gm_T, e)$ define three groups $\Gm_1,\Gm_2,\Gm_T$ all of or & h, h^{\gamma}, \dots, h^{\gamma^{m-2}}, \\ & h^{\alpha}, h^{\alpha \cdot \gamma}, \dots, h^{\alpha \cdot \gamma^{2m - 1}}, \qquad h^{k \cdot g(\gamma)}, \end{align*} -and finally a $T \in \Gm_T$. The deciding part is then to decide whether $T$ is equal to $e(g,h)^{k \cdot f(\gamma)}$ or merely some random element of $\Gm_T$. +and finally a $Z \in \Gm_T$. The deciding part is then to decide whether $Z$ is equal to $e(g,h)^{k \cdot f(\gamma)}$ or merely some random element of $\Gm_T$. We want to note that the paper does not define either $\alpha$ or $\gamma$, which essentially means this problem is not well defined. We assume however, that both $\alpha$ and $\gamma$ have to come from $\mathbb{Z}^*_p$, whenever this problem is referenced. @@ -120,50 +130,56 @@ We will cover a basic identity based encryption scheme which illustrates a basic \subsection{The structure} \label{sec:IBEStruct} -\textbf{Identity-Based Encryption.} \quad An Identity-Based encryption scheme is specified by four different algorithms, all containing some sort of randomness: \texttt{Setup, Extract, Encrypt, Decrypt}: \vspace{3mm} \\ -\-\hspace{5mm}\textbf{Setup:}\quad Takes some security parameter $k$ and returns the system parameters and a master-key. These system parameters include a description of a finite message space $\mathcal{M}$ as well as a description of a finite ciphertext space $\mathcal{C}$. These parameters are known publicly, wherre the master-key is known only to the trusted authority, the so called Private Key Generator (\texttt{PKF}). \vspace{3mm} \\ -\-\hspace{5mm}\textbf{Extract:}\quad Takes the system parameters, the master-key and an arbitrary \texttt{ID} $\in \{0,1\}^*$ and returns a private key $d$. \texttt{ID} is essentially any arbitrary string which will be used a public key and $d$ is the corresponding decryption key, which can be used by the owner of the \texttt{ID}. Thus, the \texttt{extract} algorithm extracts a private key from the given public key. \vspace{3mm} \\ -\-\hspace{5mm}\textbf{Encrypt:}\quad Takes the system parameters, \texttt{ID}, and $M \in \mathcal{M}$. Returns some ciphertext $C \in \mathcal{C}$.\vspace{3mm} \\ -\-\hspace{5mm}\textbf{Decrypt:}\quad Takes the system parameters, some private key $d$ and $C \in \mathcal{C}$. Returns the plaintext $M \in \mathcal{M}$. \vspace{3mm} \\ +\textbf{Identity-Based Encryption.} \quad An Identity-Based encryption scheme is specified by four different algorithms, all containing some sort of randomness: \texttt{Setup, Extract, Encrypt, Decrypt}: +\begin{description} +\item[Setup] Takes some security parameter $k$ and returns the system parameters and a master-key. These system parameters include a description of a finite message space $\mathcal{M}$ as well as a description of a finite ciphertext space $\mathcal{C}$. These parameters are known publicly, wherre the master-key is known only to the trusted authority, the so called Private Key Generator (\texttt{PKF}). +\item[Extract] Takes the system parameters, the master-key and an arbitrary \texttt{ID} $\in \{0,1\}^*$ and returns a private key $d$. \texttt{ID} is essentially any arbitrary string which will be used a public key and $d$ is the corresponding decryption key, which can be used by the owner of the \texttt{ID}. Thus, the \texttt{extract} algorithm extracts a private key from the given public key. +\item[Encrypt] Takes the system parameters, \texttt{ID}, and $M \in \mathcal{M}$. Returns some ciphertext $C \in \mathcal{C}$. +\item[Decrypt] Takes the system parameters, some private key $d$ and $C \in \mathcal{C}$. Returns the plaintext $M \in \mathcal{M}$. +\end{description} Naturally, these algorithms must satisfy that: $$ \forall M \in M\ :\ \text{Decrypt}(\text{params}, C, d) = M\quad \text{where}\quad C = \text{Encrypt}(\text{params}, ID, M)$$ -\vspace{3mm} \\ + \subsubsection{Security} \textbf{Chosen Ciphertext Security.} \quad To this end, we will focus on Chosen Ciphertext Security (\texttt{IND-CPA}), as this is the standard acceptable notion of security for a public key encryption scheme \cite{security_notion}. The standard definition however, is not strong enough, as we must also require that the adversary might already know of several \texttt{ID}s and decryption keys, given by the \texttt{PKG} and these should not aid the adversary in breaking the security. We define an \emph{extraction query} to be a query which yields the decryption key for a given \ID. Furthermore, the adversary is given the choice of which \ID to be challenged on, rather than it being a random public key. \cite{WeilIBE} -An Identity-Based Encryption scheme is semantically secure against an adaptive chosen ciphertext attack (\texttt{IND-ID-CPA}) if no polynomially bounded adversary $\mathcal{A}$ has non-negligible advantage against the Challenger in the following game \adv{E}: \vspace{4mm} \\ -\-\hspace{5mm} \textbf{Setup:} The challenger is given a security parameter $k$ and he runs the \emph{Setup} algorithm explained above. This returns the public parameters and the master-key to the Challenger, who then forwards the public parameters to the adversary. \vsp{3mm} -\-\hspace{5mm} \textbf{Phase 1:} The adversary is allowed to issue queries $q_1, \dots, q_l$ where query $q_i$ is one of two queries; +An Identity-Based Encryption scheme is semantically secure against an adaptive chosen ciphertext attack (\texttt{IND-ID-CPA}) if no polynomially bounded adversary $\mathcal{A}$ has non-negligible advantage against the Challenger in the following game \adv{E}: +\begin{description} +\item[Setup] The challenger is given a security parameter $k$ and he runs the \emph{Setup} algorithm explained above. This returns the public parameters and the master-key to the Challenger, who then forwards the public parameters to the adversary. +\item[Phase 1] The adversary is allowed to issue queries $q_1, \dots, q_l$ where query $q_i$ is one of two queries; \begin{itemize} \item An extraction query run on $\ID_i$. The challenger responds by running the \emph{Extract} algorithm on the given $\ID_i$, returning the decryption key $d_i$ corresponding to the \ID. $d_i$ is sent to the adversary. \item A decryption query run on $\ID_i$ and some ciphertext $C_i$. First the challenger runs the \emph{Extract} algorithm to get the decryption key $d_i$ corresponding to the given $\ID_i$. The Challenger then runs the \emph{Decrypt} algorithm on $d_i$ and $C_i$, resulting in a plaintext. This plaintext is returned to the adversary. \end{itemize} -\hsp{6mm} These queries may be run \emph{adaptively}, hence the name of the security definition, thus, each query $q_i$ may depend on the previous queries $q_1,\dots,q_{i-1}$, if the adversary so desires. \vsp{3mm} -\hsp{5mm} \textbf{Challenge:} Once the adversary deems that Phase 1 is over, he outputs two plaintexts of equal length; $M_0, M_1 \in \mathcal{M}$, as well as an \ID on which he desires to be challenged. The single constraint, is that the adversary is not allowed to have queried this \ID before, in Phase 1. The Challenger then picks a bit $b \in_R \{0,1\}$ and sets $C = Encrypt(params, \ID, M_b)$. $C$ is then send to the adversary. \vsp{3mm} -\hsp{5mm} \textbf{Phase 2:} The adversary is allowed to issue additional $n-l$ queries; $q_{l+1},\dots,q_n$, where query $q_i$ is either of: +\hsp{6mm} These queries may be run \emph{adaptively}, hence the name of the security definition, thus, each query $q_i$ may depend on the previous queries $q_1,\dots,q_{i-1}$, if the adversary so desires. +\item[Challenge] Once the adversary deems that Phase 1 is over, he outputs two plaintexts of equal length; $M_0, M_1 \in \mathcal{M}$, as well as an \ID on which he desires to be challenged. The single constraint, is that the adversary is not allowed to have queried this \ID before, in Phase 1. The Challenger then picks a bit $b \in_R \{0,1\}$ and sets $C = Encrypt(params, \ID, M_b)$. $C$ is then send to the adversary. + \item[Phase 2] The adversary is allowed to issue additional $n-l$ queries; $q_{l+1},\dots,q_n$, where query $q_i$ is either of: \begin{itemize} \item An extraction query run on $\ID_i$. The same query, except $\ID_i \neq \ID$, where \ID is the \ID of the challenge. \item A decryption query run on $\ID_i$ and some ciphertext $C_i$. The same query, except $\ID_i \neq \ID$ and $C_i \neq C$, where $C$ is the ciphertext of the challenge. -\end{itemize} -\hsp{6mm} These queries may be run adaptively, as in Phase 1. \vsp{3mm} -\hsp{5mm} \textbf{Guess:} The adversary outputs a guess bit $b' \in \{0,1\}$ and he will win the game if $b' = b$. \vsp{3mm} -\hsp{5mm} An adversary \adv{A} as defined above, is refered to as an \texttt{IND-ID-CPA} adversary. The advantage of \adv{A} in defeating the Challenger in the scheme \adv{E}, is defined as a function of the security parameter $k$, $Adv_{\mathcal{E}, \mathcal{A}} = |Pr(b=b') - \frac{1}{2}|$. +\end{itemize} +These queries may be run adaptively, as in Phase 1. +\item[Guess] The adversary outputs a guess bit $b' \in \{0,1\}$ and he will win the game if $b' = b$. + + An adversary \adv{A} as defined above, is refered to as an \texttt{IND-ID-CPA} adversary. The advantage of \adv{A} in defeating the Challenger in the scheme \adv{E}, is defined as a function of the security parameter $k$, $Adv_{\mathcal{E}, \mathcal{A}} = |Pr(b=b') - \frac{1}{2}|$. +\end{description} This definition closely resembles the standard definition of \texttt{IND-CPA} but extended with the addition of extraction queries and that the challenger is now challenged on an \ID picked by the adversary. The addition of the extraction queries is supported by \cite{ExtractionDef}, when the scheme is to support multiple users, which is likely the case for any IBE scheme. Furthermore, the weaker notion of security known as \emph{Semantic Security} (\texttt{IND-ID-CPA}) can be defined based on \texttt{IND-ID-CCA}, except now the adversary is not allowed to issue any decryption queries, i.e. he is only allowed extraction queries. \subsection{A Scheme} -The scheme we will focus on is that of Boneh and Franklin as described in \cite{WeilIBE}. The structure will be as defined in Section \ref{sec:IBEStruct}. We let $\lambda$ be the given security parameter given implicitly to the setup algorithm. We let $\mathcal{G}$ be a BDH parameter generator. \vsp{4mm} -\hsp{5mm}\textbf{Setup:}\quad Given $k$; +The scheme we will focus on is that of Boneh and Franklin as described in \cite{WeilIBE}. The structure will be as defined in Section \ref{sec:IBEStruct}. We let $\lambda$ be the given security parameter given implicitly to the setup algorithm. We let $\mathcal{G}$ be a BDH parameter generator. +\begin{description} +\item[Setup] Given $k$; \begin{enumerate} \item Run $\mathcal{G}$ on the input $k$ in order to generate a prime $p$ which defines the order of two groups $\Gm$ and $\Gm_T$ as well as an \emph{admissible} bilinear map $e : \Gm \times \Gm \ra \Gm_T$. Pick a random generator $g \in_R \Gm$. \item Pick a random $s \in_R \mathbb{Z}^*_p$ and set the public key PK as such, $PK = g^s$. \item Choose two hash functions: $H_1 : \{0,1\}^* \ra G^*$ and $H_2 : G_T \ra \{0,1\}^n$ for some $n$. Note that in the security analysis of this scheme, $H_1$ and $H_2$ will be viewed as random oracles. \\ The message space will be $\mathcal{M} = \{0,1\}^n$ and the ciphertext space is $\mathcal{C} = \Gm^{*} \times \{0,1\}^n$. Finally, the system parameters \texttt{params} are $(p, \Gm, \Gm_T, e, n, g, PK, H_1, H_2)$. The \emph{master key} (Or the systems private key), is then $s$. % TODO: Is this not the same s from the generation of the pk? \end{enumerate} -\hsp{5mm}\textbf{Extract:}\quad For a given string \ID $\in \{0,1\}^*$ the algorithm does two things; Compute $Q_{\mathtt{ID}} = H_1(ID) \in \Gm^*$ and it sets the private key $d_{\mathtt{ID}}$ to be $d_{\mathtt{ID}} = Q_{\mathtt{ID}}^s$, for the master key $s$. \vsp{3mm} -\hsp{5mm}\textbf{Encrypt:}\quad To encrypt some $m \in \mathcal{M}$ under the public key \ID, the user does the following: Compute $Q_{\mathtt{ID}} = H_1(ID) \in \Gm^*$, choose a random $r \in_R \mathbb{Z}^*_p$ and set the final ciphertext to be: -$$C = (g^r, m \oplus H_2(g_{\mathtt{ID}}^r)\quad \text{ where }\quad g_{\mathtt{ID}} = e(Q_{\mathtt{ID}}, PK) \in \Gm^*_T$$ -\hsp{5mm}\textbf{Decrypt:}\quad Parse $C = (u,v)$ as a ciphertext decrypted under the public key \texttt{ID}. Then, to decrypt $C$ using the private key $d_{\mathtt{ID}} \in \Gm^*$, compute: -$$v \oplus H_2(e(d_{\mathtt{ID}}, u)) = m$$ +\item[Extract] For a given string \ID $\in \{0,1\}^*$ the algorithm does two things; Compute $Q_{\mathtt{ID}} = H_1(ID) \in \Gm^*$ and it sets the private key $d_{\mathtt{ID}}$ to be $d_{\mathtt{ID}} = Q_{\mathtt{ID}}^s$, for the master key $s$. +\item[Encrypt] To encrypt some $m \in \mathcal{M}$ under the public key \ID, the user does the following: Compute $Q_{\mathtt{ID}} = H_1(ID) \in \Gm^*$, choose a random $r \in_R \mathbb{Z}^*_p$ and set the final ciphertext to be: + $$C = (g^r, m \oplus H_2(g_{\mathtt{ID}}^r)\quad \text{ where }\quad g_{\mathtt{ID}} = e(Q_{\mathtt{ID}}, PK) \in \Gm^*_T$$ + \item[Decrypt] Parse $C = (u,v)$ as a ciphertext decrypted under the public key \texttt{ID}. Then, to decrypt $C$ using the private key $d_{\mathtt{ID}} \in \Gm^*$, compute: + $$v \oplus H_2(e(d_{\mathtt{ID}}, u)) = m$$ Correctness of the above scheme is obvious from two facts; \begin{enumerate} @@ -172,6 +188,9 @@ Correctness of the above scheme is obvious from two facts; \end{enumerate} Where these masks which are used during encryption and decryption are the same as; $$e(d_{\mathtt{ID}}, u) = e(Q_{\mathtt{ID}}^s, g^r) = e(Q_{\mathtt{ID}}, g)^{sr} = e(Q_{\mathtt{ID}}, PK)^r = g^r_{\mathtt{ID}}$$ + +\end{description} + \subsection{Security} The scheme can be shown to be semantically secure (\texttt{IND-ID-CPA}), assuming that the BDH problem is hard in the groups generated by $\mathcal{G}$. @@ -182,7 +201,7 @@ In a Threshold Public-Key Encryption (\texttt{TPKE}) scheme, the decryption key \subsection{Security Model} -\-\hspace{5mm} \textbf{Setup:}\quad The challenger runs Setup$(\lambda)$ of the \texttt{DTPKE} scheme, obtaining the $\mathtt{params} = (MK,EK,DK,VK,CK)$. All the public parameters (all except for $MK$) are given to the adversary \adv{A}. \vsp{3mm} +\-\hspace{5mm} \textbf{Setup:}\quad The challenger runs Setup$(\lambda)$ of the \texttt{DTPKE} scheme, obtaining the $$\mathtt{params} = (MK,EK,DK,VK,CK)$$. All the public parameters (all except for $MK$) are given to the adversary \adv{A}. \vsp{3mm} \-\hspace{5mm} \textbf{Phase 1:}\quad The adversary is allowed to adaptively issue queries where query $q_i$ is one of three queries; \begin{itemize} \item A \texttt{Join} query on an id \texttt{ID}; The challenger runs the \texttt{Join} algorithm on input $(MK,\mathtt{ID})$, to create a new user in the system. Note that the challenger has $MK$ from the setup step. @@ -203,7 +222,7 @@ From this basic description, we can define three sub definitions: \subsection{Modelling \texttt{DTPKE}} A \texttt{DTPKE}-scheme consist of $7$ algorithms: \texttt{DTPKE} $= ($\texttt{Setup}, \texttt{Join}, \texttt{Encrypt}, \texttt{ValidateCT}, \texttt{ShareDecrypt}, \texttt{ShareVerify}, \texttt{Combine}$)$. \vsp{4mm} -\hsp{5mm}\textbf{Setup$(\lambda)$:}\quad Takes security parameter $\lambda$. Outputs a set of system parameters: $\mathtt{params} = (MK,EK,DK,VK,CK)$. $MK$ is a Master Secret Key, $EK$ is the Encryption Key, $DK$ is the Decryption Key, $VK$ is the Validation Key and $CK$ is the Combination Key. $MK$ is kept secret by the issuer, but the other four are public parameters. \vsp{3mm} +\hsp{5mm}\textbf{Setup$(\lambda)$:}\quad Takes security parameter $\lambda$. Outputs a set of system parameters: $$\mathtt{params} = (MK,EK,DK,VK,CK).$$ $MK$ is a Master Secret Key, $EK$ is the Encryption Key, $DK$ is the Decryption Key, $VK$ is the Validation Key and $CK$ is the Combination Key. $MK$ is kept secret by the issuer, but the other four are public parameters. \vsp{3mm} \hsp{5mm}\textbf{Join$(MK, \mathtt{ID})$:}\quad Takes the $MK$ and an identity \ID of a user. Outputs the user's keys $(usk, upk, uvk)$, where $usk$ is the secret key used for decryption, $upk$ is the public key used for encrypting and $uvk$ is the verification key. $upk, uvk$ are both public, whereas $usk$ is given privately to the user.\vsp{3mm} \hsp{5mm}\textbf{Encryptp$(EK, S, t, M)$:}\quad Takes the Encryption Key, the public keys of the users within the receiver set $S$, a threshold $t$ and a message to be encrypted, $M$. Outputs a ciphertext.\vsp{3mm} \hsp{5mm}\textbf{ValidateCT$(EK, S, t, C)$:}\quad Takes the encryption key, the public keys of the receiver set, a threshold and a ciphertext. Checks whether $C$ is a valid ciphertext with respect to $EK, S$ and $t$. \vsp{3mm} @@ -212,9 +231,80 @@ A \texttt{DTPKE}-scheme consist of $7$ algorithms: \texttt{DTPKE} $= ($\texttt{S \hsp{5mm}\textbf{Combine$(CK, S, t, C, T, \Sigma)$:}\quad Takes the combination key $CK$, a ciphertext $C$, some subset $T \subseteq S$ of $t$ authorised users and $\Sigma = (\sigma_1, \dots, \sigma_t)$ which is a list of $t$ decryption share. Outputs the plaintext $M$ or $\perp$.\vsp{3mm} \subsection{A scheme and the Security Thereof} -It should be noted that this scheme is very long and as such will be left out of the report, but it will be left within the appendix, completely as the original authors wrote it. We will instead list their security proof, which contains an error worth of noting. Their proof is a reduction to the \texttt{MSE-DDH} problem, as defined in Section \ref{sec:MSE-DDH}. That being said, their security proof states that the \texttt{DTPKE} scheme has \texttt{IND-NAA-NAC-CPA} security (Non-adaptive adversary, non-adaptive corruption, chosen-plaintext attack). +It should be noted that this scheme is very long and as such will be left out of the report, but it will be included in the appendix, completely as the original authors wrote it. We will instead list their security proof, which contains an error worth of noting. Their proof is a reduction to the \texttt{MSE-DDH} problem, as defined in Section \ref{sec:MSE-DDH}. Regardless, their security proof states that the \texttt{DTPKE} scheme has \texttt{IND-NAA-NAC-CPA} security (Non-adaptive adversary, non-adaptive corruption, chosen-plaintext attack). + +\begin{theorem} + For any $l,m,t,$ $\mathbf{Adv}^{ind}_{\mathtt{DTPKE}}(l,m,t) \leq 2 \cdot \mathbf{Adv}^{\text{MSE-DDH}}(l,m,t)$. Where $l$ denotes the total number of \textbf{Join} queries that can be issued by the adversary, $m$ is the maximal size the authorised set of receivers is allowed to be, $t$ is the threshold. +\end{theorem} +\begin{proof} + Let \texttt{DTPKE} denote the construction as described in Appendix A. Now, to establish the semantic security, the \texttt{IND-NAA-NAC-CPA} security, for static adversaries of the \texttt{DTPKE} scheme, we describe a reduction to the \texttt{MSE-DDH} problem. To this end, we assume an adversary \adv{A} who can break the scheme under an $(l,m,t)$-collusion. This adversary \adv{A} will be used to build an algorithm \adv{B} who can then distinguish the two distributions of the $(l,m,t)$-\texttt{MSE-DDH} problem. + + The algorithm \adv{B} is given as input some group system $Pub = (p, \Gm_1, \Gm_2, \Gm_T, e)$ as described in \ref{sec:MSE-DDH} as well as an $(l,m,t)$-\texttt{MSE-DDH} instance in $Pub$. The \texttt{MSE-DDH} instances gives us, \adv{B}, two coprime polynomials $f_{poly}$ and $g_{poly}$ of orders $l$ and $m$ with pairwise distinct roots $(x_1, \dots, x_l)$ and $(x_{l+t}, \dots, x_{l+t+m-1})$ respectively. Finally, \adv{B} has all the exponents; + \begin{align*} + & x_1, \dots, x_\ell, \qquad \qquad \qquad y_1, \dots, y_m \\ + & g, g^{\gamma}, \dots, g^{\gamma^{\ell + t - 2}}, \qquad \quad g^{k\cdot \gamma \cdot f(\gamma)} \\ + & g^{\alpha}, g^{\alpha \cdot \gamma}, \dots, g^{\alpha \cdot \gamma^{\ell + t}}, \\ + & h, h^{\gamma}, \dots, h^{\gamma^{m-2}}, \\ + & h^{\alpha}, h^{\alpha \cdot \gamma}, \dots, h^{\alpha \cdot \gamma^{2m - 1}}, \qquad h^{k \cdot g(\gamma)}, + \end{align*} + as well as the $Z \in \Gm_T$ which can either be $e(g,h)^{k \cdot f(\gamma)}$ or some random element within $\Gm_T$. We define the following polynomials: + $$f(X) = \prod_{i=1}^\ell (X+x_i), \quad q(X) = \prod_{i=1}^{\ell +t - 1} (X+x_i), \quad g(X) = \prod_{i=1}^{\ell +t+m - 1} (X+x_i)$$ + + Do note here, that the proof does not argue in any way for the sudden appearence of the $x_i$ for $i = \ell+1, \dots, \ell + t - 1$. We have not looked further into a fix for this, however we further note that they are used for the set of $t-1$ users of the \emph{target set} who can be corrupted and as such \adv{B} must be prepared to be able to both give a secret key for the specific user, while this key must be used in the challenge to \adv{A}, as such, the key is not without relevance. + + As mentioned, $q(X)$ corresponds to the $t-1$ users within the receiver set who may be corrupted. As we are in a static environment, both the receiver set and the corruption set has to be given in the initialisation phase, so we know these ahead of time. $f(X)$ corresponds to the set of $\ell$ users not in the target set, who can be corrupted and $g(X)$ defines the $m$ users of the target set that cannot be corrupted. These polynomials thus allow us to be able to simulate the $\ell +t - 1$ corruptions where $t-1$ are in the target set. + + For $i \in [1, \ell + 1 - 1]$ we thus set $$f_i(x) = \frac{f(x) \cdot q(\gamma)}{x+x_i}, $$ which is a polynomial of degree $\ell + t - 2$ + \begin{description} + \item[Init] The adversary \adv{A} outputs his target set $S^* = \set{\mathtt{ID}^*_1, \dots, \mathtt{ID}^*_s}$ as well as a set $\overbar{C} = \set{\overbar{\mathtt{ID}}_1, \dots, \overbar{\mathtt{ID}}_c}$ of identities that \adv{A} intends on corrupting, such that $c \leq \ell$ and $|S^* \cap \overbar{C}| \leq t-1$. + \item[Setup] To generate the system parameters of the \texttt{DTPKE} scheme, \adv{B} sets $g = g_{MSE-DDH}^{f(\gamma) \cdot q(\gamma)}$ where $g_{MSE-DDH}$ come from the \texttt{MSE-DDH} problem as one of the two generators. Note that this is merely set for the sake of replicating what the original scheme does. $g$ is never published and is thus never required to be directly computed, which is not possible in this case either. \adv{B} then set: + $$h = h_{\mathtt{MSE-DDH}}, \qquad u = g_{\mathtt{MSE-DDH}}^{\alpha \cdot \gamma \cdot f(\gamma) \cdot q(\gamma)} = g^{\alpha \cdot \gamma}$$ + $$v = e(g_{\mathtt{MSE-DDH}}, h_{\mathtt{MSE-DDH}})^{\alpha \cdot f(\gamma) \cdot q(\gamma)} = e(g,h)^\alpha$$ + Where $u$ and $v$ can be computed from the \texttt{MSE-DDH} instance input, since $f \cdot q$ is a $\ell + t - 1$ degree polynomial. + + \adv{B} then creates a set $\mathcal{D} = \set{d_i}_{i=1}^{m-1}$ which is a set of dummy users such that: + \begin{itemize} + \item $\mathcal{D}_{m+t-s^*-1} = \set{d_i}_{i=1}^{m+t-s^*-1}$ is a subset of $\set{x_j}_{j=\ell+t}^{\ell+t+m-1}$, which corresponds to the dummy users included to complete the target set in the challenge. + \item The rest of the dummy users: $\set{d_i}_{m+t-s^*}^{m-1}$ are random elements in $\mathbb{Z}_p$. + \end{itemize} + \adv{B} then defines the encryption key $EK = (m,u,v,h^\alpha, \set{h^{\alpha \cdot \gamma^i}}_{i=1}^{2m-1}, \mathcal{D})$ and the combination key $CK = (h, \set{h^{\gamma^i}}_{i=1}^{m-2}, \mathcal{D})$. + \item[Generation of Users' Keys] \hspace{1cm} % Hack to force the itemize to the line below .. + + \begin{itemize} + \item For each $\overbar{\mathtt{ID}} \in \overbar{C}$, i.e. each \ID which is to be corrupted, \adv{B} computes and sends $(\overbar{\text{usk}}, \overbar{\text{upk}})$ to \adv{A} where: + \begin{align*} + &\overbar{\text{upk}} = x_i,\\ + &\overbar{\text{usk}} = g_{\mathtt{MSE-DDH}}^{f_i(\gamma)} = g^{\frac{1}{\gamma + x_i}} + \end{align*} + with the constraint that if $\mathtt{ID} \in S^*$ then $x_i$ must be taken from the subset $\set{x_j}_{j=\ell+1}^{\ell+t-1}$ i.e. the ones used in polynomial $q(X)$ (the ones we do not know where originate from) and otherwise $x_i$ must be taken from $\set{x_j}_{j=1}^{\ell}$, i.e. polynomial $f(X)$ or the roots of $f_{poly}$. + \item For each $\mathtt{ID} \in S^* - (S^* \cap \overbar{C}$, so each \ID which is in the target set \emph{but not} in the corruption target set, \adv{B} sends $upk = x_i$ to \adv{A} where $x_i$ must come from $\set{x_j}_{j=\ell+t}^{\ell+t+m-1} - \mathcal{D}_{m+t-s^*-1}$, i.e. the users from $g(X)$, but without the dummy users included to complete the target set in the challenge. + \item For each $\mathtt{ID} \not\in S^* \cup \overbar{C}$, each users who is not in the receiver set and may not be corrupted, \adv{B} sends $upk = x$ to \adv{A} where $x \not\in \set{x_j}_{j=1}^{\ell + t + m -1}$ + \end{itemize} + \adv{B} gives the group information $Pub$ as well as $(EK, CK)$ to \adv{A}. + \item[Challenge] \adv{B} computes \textbf{Encrypt} in order to obtain the challenge information: + $$(\hdr^*, S^*, t, K) = \mathbf{Encrypt}(EK, S^*, t), \text{ where}$$ + $$C_1 = g_{\mathtt{MSE-DDH}}^{-k \cdot \gamma \cdot f(\gamma)}, \qquad C_2 = h_{\mathtt{MSE-DDH}}^{k \cdot g(\gamma)}, \qquad K = Z,$$ + $$|S| = s^*, \qquad S^* \subseteq \set{x_j}_{j=\ell+1}^{\ell+t+m-1} - \mathcal{D}_{m+t-s^*-1}$$ + \adv{B} selects $b \in_R \set{0,1}$, sets $K_b = K$ and $K_{1-b} \in_R \mathcal{K}$. Then returns $(\hdr^*,K_0, K_1)$ to \adv{A}. + \item[Guess] \adv{A} outputs a guess $b' \in \set{0,1}$ and wins if $b' = b$. + \end{description} + Without proof we state that + + \begin{align*} + \mathbf{Adv}^{\mathtt{MSE-DDH}} &= \\ + &\quad \frac{1}{2} \times (Pr(b'=1 | b=1 \wedge \text{real}) + Pr(b'=1 | b=0 \wedge \text{real}) \\ + &- \frac{1}{2} \times (Pr(b'=1 | b=1 \wedge \text{random}) + Pr(b'=1 | b=0 \wedge \text{random}). + \end{align*} + + Now, as the distribution of $b$ is independent from the adversarys view; $$Pr(b'=1 | b=1 \wedge \text{random}) = Pr(b'=1 | b=0 \wedge \text{random})$$ Thus, the left side cancels out. In the real case however, the distribution of all variables which are defined by \adv{B} comply with the definition of the semantic security game, as all simulations are perfect. Thus, to conclude: + $$\mathbf{Adv}_{\mathtt{DTPKE}}^{\text{ind}}(\mathcal{A}) = Pr(b'=1 | b=1 \wedge \text{real}) - Pr(b'=1 | b=0 \wedge \text{real})$$ + Is exactly equal to $$2 \cdot (\frac{1}{2} \times (Pr(b'=1 | b=1 \wedge \text{real}) + Pr(b'=1 | b=0 \wedge \text{real})).$$ +\end{proof} + % TODO: Explain this scheme and their security proof which doesn't work. Yikes. -% TOOD: Add the DTPKE scheme to the appendix. +% TOOD: Add the DTPKE scheme to the appendix A. +% TODO: Consider making all upk and usk bold + \section{Broadcast Encryption} @@ -236,6 +326,7 @@ The advantage of \adv{A} is then defined as: $$Adv_{SS,BE,n,\ell}(\lambda) = |Pr Static security is the least strongest type and it requires the adversary to commit to the set of receivers of which he wants to be challenged on, in the initialisation phase, rather than the potential set the Semi-Static adversary has to commit to. Adaptive security is arguably the most desired and correct type, as it enforces nothing in regards to the attack set $S^*$. The adversary is allowed to see the public key PK and ask for several private keys, before choosing which set he wishes to be challenged on. We note here, that due to Gentry and Waters \cite{GentryWaters}, we can transform a Semi-Statically secure BE scheme to an Adaptively secure BE scheme. +% TODO: Consider using description environment or https://tex.stackexchange.com/questions/436977/how-to-insert-multiple-hspace-into-one-row-line % TODO, maybe new page this \subsection{Their construction} \label{sec:GentryWatersConst} @@ -472,4 +563,11 @@ As such, we conclude that, if there is a reduction to be found from the \AHBE in \nocite{*} \bibliography{refs} +% https://tex.stackexchange.com/questions/49643/making-appendix-for-thesis +\begin{appendices} + % TODO: Properly crop the construction + \chapter{\texttt{DTPKE}-scheme} + \includepdf[pages=-,pagecommand={},width=\textwidth]{papers/DTPKE-Const.pdf} +\end{appendices} + \end{document} \ No newline at end of file