You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
5
5
6
6
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}.
8
8
Also, encryption tends to be more efficient than with \acrshort{cp-abe}.
9
9
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.
12
14
13
15
\section{Goyal, Pandey, Sahai and Waters, 2006}
14
16
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}
20
22
The GPSW scheme encrypts a message represented by a point of the bilinear pairing's target group $\mathbb{G}_T$.
21
23
It is a \gls{small-universe} construction.
22
24
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$).
24
27
25
28
In the GPSW construction, the pairing is evaluated when the decryption algorithm encounters a leaf node (see below).
26
29
There, the curve point on one side comes from the ciphertext, and the point on the other side from the key.
27
30
Originally, a symmetric pairing is used, so the pairing inputs can be swapped freely.
28
31
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.
30
33
31
34
% To speed up encryption and decryption, the plaintext is not encrypted with the GPSW \acrshort{abes} directly.
32
35
% 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}
38
41
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.
39
42
Note that $\mathbb{G}_1$ and $\mathbb{G}_2$ are written additively, but $\mathbb{G}_T$ is written using multiplicative notation.\\
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}
95
98
\end{split}
96
99
\end{equation}
97
100
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)$.
99
102
100
103
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}.
101
104
If they don't, then $\text{DecryptNode}(E, D, r) = \perp$.
@@ -109,7 +112,7 @@ \section{Goyal, Pandey, Sahai and Waters, 2006}
109
112
110
113
\section{Yao, Chen and Tian 2015}\label{sec:yct}
111
114
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.
113
116
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.
114
117
115
118
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}
121
124
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.
122
125
123
126
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).
125
128
This uses a single key, derived by hashing the curve point, to ensure confidentiality and integrity of the data.
126
129
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}.
128
131
For this, instead of $\text{index}(\cdot)$, the modified $\text{index}'(\cdot) = \text{PRF}(r_l, index(\cdot))$ is used~\cite{tan_enhancement_2019}.
129
132
$r_l$ is a random seed value that differs for each layer $l$ of the \gls{access-tree}~\cite{tan_enhancement_2019}.
130
133
In our implementation, HMAC-SHA3-512 is used as the \acrshort{prf}.\\
131
134
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: \\
Input: \glspl{access-tree} $\Gamma$ and master key $MK$.
159
162
160
163
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}
169
172
Return the generated key as $D = (\{D_u | u \text{ leaf node of } \Gamma\}, \{r_0, r_1, \dots\})$.
170
173
\\
171
174
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$.
173
176
174
177
Decryption is split into two phases: Reconstructing the curve point $C'$ to get the encryption and integrity keys, and actual decryption of the ciphertext.
175
178
@@ -188,7 +191,7 @@ \section{Yao, Chen and Tian 2015}\label{sec:yct}
188
191
\end{equation*}
189
192
190
193
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$.
192
195
Then $\text{DecryptNode}(CM, D, u)$ is defined as follows, where $i = \text{index}(v)$, $\omega'_u = \{\text{index}(v) | v \in\omega_u\}$.
0 commit comments