Skip to content

Commit 0612ac0

Browse files
committed
Sandesh Feedback chap04
1 parent 1563a62 commit 0612ac0

File tree

2 files changed

+30
-27
lines changed

2 files changed

+30
-27
lines changed

thesis/build/main.pdf

-178 Bytes
Binary file not shown.

thesis/chapters/04_constructions.tex

+30-27
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
\chapter{Evaluated ABE schemes}\label{chapter:constructions}
22

3-
This chapter will describe the two \acrlong{abe} schemes in detail that were implemented in this thesis.
4-
In addition to a detailed description of the schemes, any modifications from the original definitions are made clear.
3+
This chapter will describe the two \acrlong{abe} schemes that were implemented for this thesis in detail.
4+
In addition, any modifications from the original definitions are illustrated.
55

66
Both implemented schemes are \acrshort{kp-abe}.
7-
This choice was made because \acrshort{kp-abe} is better suited to our use case from Figure~\ref{fig:system-architecture} (see section~\ref{fig:cp-kp-abe}).
7+
This was chosen because \acrshort{kp-abe} is better suited to our use case from Figure~\ref{fig:system-architecture}.
88
Also, encryption tends to be more efficient than with \acrshort{cp-abe}.
99

10-
The GPSW scheme was chosen because it was the first expressive \acrshort{kp-abe} scheme. It is also considered a rather efficient scheme, compared to others that use bilinear pairings~\cite{girgenti_feasibility_2019}.
11-
The YCT scheme was chosen for its unique approach without bilinear pairings. Because pairings are computationally expensive, this promises better performance.
10+
The scheme by \citeauthor{goyal_attribute-based_2006} was chosen because it was the first expressive \acrshort{kp-abe} scheme.
11+
It is also considered a rather efficient scheme, compared to others that use bilinear pairings~\cite{girgenti_feasibility_2019}.
12+
13+
The scheme by \citeauthor{yao_lightweight_2015} was chosen for its unique approach without bilinear pairings. Because pairings are computationally expensive, this promises better performance.
1214

1315
\section{Goyal, Pandey, Sahai and Waters, 2006}
1416
This scheme was the first \acrshort{abes} with expressive \glspl{access-policy}. Policies are associated with the key (\acrshort{kp-abe}).
@@ -20,13 +22,14 @@ \section{Goyal, Pandey, Sahai and Waters, 2006}
2022
The GPSW scheme encrypts a message represented by a point of the bilinear pairing's target group $\mathbb{G}_T$.
2123
It is a \gls{small-universe} construction.
2224

23-
The scheme is defined here exactly as implemented; it differs from the original construction in the use of an asymmetric pairing ($e: \mathbb{G}_1 \times \mathbb{G}_2 \rightarrow \mathbb{G}_T$) instead of a symmetric pairing ($e: \mathbb{G}_1 \times \mathbb{G}_1 \rightarrow \mathbb{G}_T$).
25+
The scheme is defined here exactly as it is implemented;
26+
this differs from the original construction in the use of an asymmetric pairing ($e: \mathbb{G}_1 \times \mathbb{G}_2 \rightarrow \mathbb{G}_T$) instead of a symmetric pairing ($e: \mathbb{G}_1 \times \mathbb{G}_1 \rightarrow \mathbb{G}_T$).
2427

2528
In the GPSW construction, the pairing is evaluated when the decryption algorithm encounters a leaf node (see below).
2629
There, the curve point on one side comes from the ciphertext, and the point on the other side from the key.
2730
Originally, a symmetric pairing is used, so the pairing inputs can be swapped freely.
2831
As we want to improve the speed of the encryption, we swap the two groups to use $\mathbb{G}_1$ for the group elements associated with ciphertexts.
29-
Elements of $\mathbb{G}_1$ are shorter than elements of $\mathbb{G}_2$ and thus faster to calculate with.
32+
Elements of $\mathbb{G}_1$ are shorter than elements of $\mathbb{G}_2$ and thus the operations are faster to compute.
3033

3134
% To speed up encryption and decryption, the plaintext is not encrypted with the GPSW \acrshort{abes} directly.
3235
% Instead, a random group element is chosen and encrypted under GPSW (i.e. a $k \in \mathbb{G}_T$).
@@ -38,25 +41,25 @@ \section{Goyal, Pandey, Sahai and Waters, 2006}
3841
Let $\mathbb{G}_1$ and $\mathbb{G}_2$ be bilinear groups of prime order $q$. Let $P$ be a generator of $\mathbb{G}_1$ and $Q$ be a generator of $\mathbb{G}_2$. Let $e: \mathbb{G}_1 \times \mathbb{G}_2 \rightarrow \mathbb{G}_T$ be a bilinear map.
3942
Note that $\mathbb{G}_1$ and $\mathbb{G}_2$ are written additively, but $\mathbb{G}_T$ is written using multiplicative notation.\\
4043

41-
\emph{Setup}~\cite{goyal_attribute-based_2006}.
44+
\noindent \emph{Setup}~\cite{goyal_attribute-based_2006}.
4245
The attribute universe is defined as $\text{U} = \{1, 2, \dots, n\}$ and is fixed.
4346
For every attribute $i \in U$, choose uniformly at random a secret number $t_i \in \mathbb{Z}_q$.
4447
Then the public key of attribute $i$ is $T_i = t_1 \cdot P$.
45-
Also, choose uniformly at random the master private key $y \in \mathbb{Z}_p$, from which the master public key $Y = e(P, Q)^y$ is derived.
48+
Also, choose uniformly at random the private $y \in \mathbb{Z}_p$, from which the public key $Y = e(P, Q)^y$ is derived.
4649

47-
Publish $Params=(Y, T_1, \dots, T_n)$ as the public parameters, privately save $MK = (y, t_1, \dots, t_n)$ as the master key.
50+
Publish $PK=(Y, T_1, \dots, T_n)$ as the public key, privately save $MK = (y, t_1, \dots, t_n)$ as the master key.
4851
\\
4952

50-
\emph{Encrypt(M, $\omega$, Params)}~\cite{goyal_attribute-based_2006}.
51-
Input: Message $M \in \mathbb{G}_T$, set of \glspl{attribute} $\omega$ and public parameters $Params$.
53+
\noindent \emph{Encrypt(M, $\omega$, PK)}~\cite{goyal_attribute-based_2006}.
54+
Input: Message $M \in \mathbb{G}_T$, set of \glspl{attribute} $\omega$ and public key $PK$.
5255

5356
Choose $s \in \mathbb{Z}_q$ at random and compute $E' = M \cdot Y^s$.
5457
For each attribute $i \in \omega$ compute $E_i = s \cdot T_i$.
5558

5659
Return the ciphertext as $E = (\omega, E', \{E_i | i \in \omega\})$
5760
\\
5861

59-
\emph{KeyGen($\Gamma$, MK)}~\cite{goyal_attribute-based_2006}.
62+
\noindent \emph{KeyGen($\Gamma$, MK)}~\cite{goyal_attribute-based_2006}.
6063
Input: \gls{access-tree} $\Gamma$ and master key $MK$.
6164

6265
For each node $u$ in the \gls{access-tree} $\Gamma$, recursively define polynomials $q_u(x)$ with degree $(d_u - 1)$, starting from the root.
@@ -68,7 +71,7 @@ \section{Goyal, Pandey, Sahai and Waters, 2006}
6871
The set of these secret shares is the decryption key $D = \{D_u | u \text{ leaf node of } \Gamma\}$.
6972
\\
7073

71-
\emph{Decrypt(E, D)}~\cite{goyal_attribute-based_2006}.
74+
\noindent \emph{Decrypt(E, D)}~\cite{goyal_attribute-based_2006}.
7275
Input: Ciphertext $E$ and decryption key $D$.
7376

7477
First, define a recursive procedure $\text{DecryptNode}(E, D, u)$ which takes as inputs a ciphertext $E = (\omega, E', \{E_i | i \in \omega\})$, the decryption key $D$ and a node $x$ of the \gls{access-tree} associated with the decryption key.
@@ -95,7 +98,7 @@ \section{Goyal, Pandey, Sahai and Waters, 2006}
9598
\end{split}
9699
\end{equation}
97100

98-
The equality $(*)$ holds because, in the exponent, the product becomes a sum: $\sum_{i\in S'_u} s \cdot q_u(i) \cdot \Delta_{i,S'_u}(0)$ is exactly the lagrange interpolation of $s \cdot q_u(0)$.
101+
The equality $(*)$ holds because in the exponent, the product becomes a sum: $\sum_{i\in S'_u} s \cdot q_u(i) \cdot \Delta_{i,S'_u}(0)$ is exactly the lagrange interpolation of $s \cdot q_u(0)$.
99102

100103
Let the root of the \gls{access-tree} be $r$, then the decryption algorithm simply calls $\text{DecryptNode}(E, D, r) = e(P,Q)^{s \cdot y} = Y^s$, if the ciphertexts's attributes satisfy the \gls{access-tree}.
101104
If they don't, then $\text{DecryptNode}(E, D, r) = \perp$.
@@ -109,7 +112,7 @@ \section{Goyal, Pandey, Sahai and Waters, 2006}
109112

110113
\section{Yao, Chen and Tian 2015}\label{sec:yct}
111114

112-
This scheme was described by Yao, Chen and Tian \cite{yao_lightweight_2015} in 2015.
115+
The following scheme was described by Yao, Chen and Tian \cite{yao_lightweight_2015} in 2015.
113116
In 2019, Tan, Yeow and Hwang \cite{tan_enhancement_2019} proposed an enhancement, fixing a flaw in the scheme and extending it to be a hierarchical KP-ABE scheme.
114117

115118
Yao, Chen and Tian's ABE scheme (hereafter written just YCT) is a KP-ABE scheme that does not use any bilinear pairing operations.
@@ -121,40 +124,40 @@ \section{Yao, Chen and Tian 2015}\label{sec:yct}
121124
If a key's \gls{access-structure} is satisfied by a certain ciphertext, this curve point and thus the symmetric encryption key can be reconstructed, allowing for decryption.
122125

123126
The original description of this scheme uses the x- and y-coordinates as keys for separate encryption and authentication mechanisms.
124-
Instead, our implementation employs a combined \acrshort{aead} scheme (more specifically, AES-256 in CCM mode).
127+
Instead, our implementation employs a combined \acrfull{aead} scheme (more specifically, AES-256 in CCM mode).
125128
This uses a single key, derived by hashing the curve point, to ensure confidentiality and integrity of the data.
126129

127-
The implementation includes the fix proposed in \cite{tan_enhancement_2019}, for which an additional \acrshort{prf} is used to randomize the value of the $\text{index}(\cdot)$ function for nodes of the \gls{access-tree}.
130+
The implementation includes the fix proposed in \cite{tan_enhancement_2019}, for which an additional \acrfull{prf} is used to randomize the value of the $\text{index}(\cdot)$ function for nodes of the \gls{access-tree}.
128131
For this, instead of $\text{index}(\cdot)$, the modified $\text{index}'(\cdot) = \text{PRF}(r_l, index(\cdot))$ is used~\cite{tan_enhancement_2019}.
129132
$r_l$ is a random seed value that differs for each layer $l$ of the \gls{access-tree}~\cite{tan_enhancement_2019}.
130133
In our implementation, HMAC-SHA3-512 is used as the \acrshort{prf}.\\
131134

132-
Let $\mathbb{G}$ be a group of order $q$. The four algorithms of the YCT scheme are defined as follows: \\
135+
Let $\mathbb{G}$ be a group of order $q$ with generator $G$. The four algorithms of the YCT scheme are defined as follows: \\
133136

134-
\emph{Setup}~\cite{yao_lightweight_2015}.
137+
\noindent \emph{Setup}~\cite{yao_lightweight_2015}.
135138
The attribute universe is defined as $\text{U} = \{1, 2, \dots, n\}$ and is fixed.
136139

137140
For every attribute $i \in U$, choose uniformly at random a secret number $s_i \in \mathbb{Z}_q^*$.
138141
Then the public key of attribute $i$ is $P_i = s_i \cdot G$ (i.e. a curve point).
139142

140143
Also, choose uniformly at random the master private key $s \in \mathbb{Z}_q^*$, from which the master public key $PK = s \cdot G$ is derived.
141144

142-
Publish $Params=(PK, P_1, \dots, P_n)$ as the public parameters, privately save $MK = (s, s_1, \dots, s_n)$ as the private master key.
145+
Publish $PK=(PK, P_1, \dots, P_n)$ as the public key, privately save $MK = (s, s_1, \dots, s_n)$ as the master key.
143146
\\
144147

145-
\emph{Encrypt(m, $\omega$, Params)}~\cite{yao_lightweight_2015}.
146-
Input: Message $m$, set of attributes $\omega$ and public parameters $Params$.
148+
\noindent \emph{Encrypt(m, $\omega$, PK)}~\cite{yao_lightweight_2015}.
149+
Input: Message $m$, set of attributes $\omega$ and public key $PK$.
147150

148151
Randomly choose $k \in \mathbb{Z}_q^*$ and compute $C' = k \cdot PK$. If $C' = \mathcal{O}$, repeat until $C' \neq \mathcal{O}$.
149152
$C' = (k_x, k_y)$ are the coordinates of the point $C'$. $k_x$ is used as the encryption key and $k_y$ as the integrity key.
150153

151154
Then compute $C_i = k \cdot P_i$ for all attributes $i \in \omega$.
152155

153-
Encrypt the actual message as $c = \text{Enc}(m, k_x)$, generate a Message Authentication Code $\text{mac}_m = \text{HMAC}(m, k_y)$.
156+
Encrypt the actual message as $c = \text{Enc}(m, k_x)$ and generate a Message Authentication Code $\text{mac}_m = \text{HMAC}(m, k_y)$.
154157

155158
Return the ciphertext $CM = (\omega, c, \text{mac}_m, \{C_i | i \in \omega\})$\\
156159

157-
\emph{KeyGen($\Gamma$, MK)}~\cite{yao_lightweight_2015}.
160+
\noindent \emph{KeyGen($\Gamma$, MK)}~\cite{yao_lightweight_2015}.
158161
Input: \glspl{access-tree} $\Gamma$ and master key $MK$.
159162

160163
For each layer $l = 0, 1, \dots$ of the \gls{access-tree}, generate a random seed value $r_l \in \mathcal{K}_{PRF}$ from the PRF's key space.
@@ -169,7 +172,7 @@ \section{Yao, Chen and Tian 2015}\label{sec:yct}
169172
Return the generated key as $D = (\{D_u | u \text{ leaf node of } \Gamma\}, \{r_0, r_1, \dots \})$.
170173
\\
171174

172-
\emph{Decrypt(CM, D, Params)}~\cite{yao_lightweight_2015}. Input: Ciphertext $CM$, decryption key $D$ and public parameters $Params$.
175+
\noindent \emph{Decrypt(CM, D, PK)}~\cite{yao_lightweight_2015}. Input: Ciphertext $CM$, decryption key $D$ and public key $PK$.
173176

174177
Decryption is split into two phases: Reconstructing the curve point $C'$ to get the encryption and integrity keys, and actual decryption of the ciphertext.
175178

@@ -188,7 +191,7 @@ \section{Yao, Chen and Tian 2015}\label{sec:yct}
188191
\end{equation*}
189192

190193
For an internal node $u$ on layer $l$, call $\text{DecryptNode}(CM, D, v)$ for each of its childen $v$. If for less than $d_u$ of the child nodes $\text{DecryptNode}(CM, D, v) \neq \perp$, return $\text{DecryptNode}(CM, D, )=\perp$.
191-
Then let $\omega_u$ be an arbitrary subset of $d_u$ child nodes of $u$, where for all $v \in \omega_u$, $\text{DecryptNode}(CM, D, v) \neq \perp$.
194+
Then, let $\omega_u$ be an arbitrary subset of $d_u$ child nodes of $u$, where for all $v \in \omega_u$, $\text{DecryptNode}(CM, D, v) \neq \perp$.
192195
Then $\text{DecryptNode}(CM, D, u)$ is defined as follows, where $i = \text{index}(v)$, $\omega'_u = \{\text{index}(v) | v \in \omega_u\}$.
193196
\begin{equation*}
194197
\begin{split}

0 commit comments

Comments
 (0)