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
The objective of this thesis is to assess to what extent \acrshort{abe} can be practically applied on such constrained devices running ARM Cortex-M4 processors.
17
17
To this end, an \acrshort{abe} library is developed using the Rust programming language.
18
-
This library is then tested and evaluated on the nRF52840 SoC with a 64\,MHz ARM CortexM4 processor and 256\,KB of RAM.
18
+
This library is then tested and evaluated on the nRF52840 SoC with a 64\,MHz ARM Cortex-M4 processor and 256\,KB of RAM.
19
19
In addition, this thesis aims to give an easy-to-understand explanation of \acrshort{abe} and how it can be implemented.
Copy file name to clipboardExpand all lines: thesis/chapters/03_related-work.tex
+1-1
Original file line number
Diff line number
Diff line change
@@ -106,7 +106,7 @@ \section{Implementation on constrained devices}
106
106
This is significantly lower than the security level of the 224-bit MNT curve from the PBC library (around 128 bits)~\cite{akinyele_self-protecting_2010} and the curves used in this thesis (around 100 bits).
107
107
108
108
Scott~\cite{scott_deployment_2020} provides a fast implementation of a 254-bit BN curve (the same as used in this thesis) in the \emph{MIRACL Core Cryptographic Library}~\cite{scott_miracl_nodate}.
109
-
They also evaluate their library on the same SoC as used in this thesis (nRF52840, 64\,MHz ARM CortexM4 CPU) and compute a pairing of the 254-bit BN curve in 635\,ms \cite[Table~4]{scott_deployment_2020}.
109
+
They also evaluate their library on the same SoC as used in this thesis (nRF52840, 64\,MHz ARM Cortex-M4 CPU) and compute a pairing of the 254-bit BN curve in 635\,ms \cite[Table~4]{scott_deployment_2020}.
110
110
Only the pairing implementation is tested and evaluated, the authors do not implement an \acrshort{abes}.
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.
14
14
15
15
\section{Goyal, Pandey, Sahai and Waters, 2006}
16
-
This scheme was the first \acrshort{abes} with expressive \glspl{access-policy}. Policies are associated with the key (\acrshort{kp-abe}).
17
-
It was described by Goyal, Pandey, Sahai and Waters \cite{goyal_attribute-based_2006} in 2006. This scheme will be referred to as GPSW.
16
+
This scheme was described by Goyal, Pandey, Sahai and Waters \cite{goyal_attribute-based_2006} in 2006 and will be referred to as GPSW.
17
+
It was the first \acrshort{abes} with expressive \glspl{access-policy}.
18
18
19
19
Goyal~et.~al. extend the earlier work from Sahai and Waters~\cite{sahai_fuzzy_2005} to allow arbitrary access structures expressed by \glspl{access-tree}, not just ``k-out-of-n'' attributes.
20
20
They are the first to use Shamir's Secret Sharing hierarchically in the \gls{access-tree} as described in section~\ref{sec:lss-in-access-trees}.
21
21
22
-
The GPSW scheme encrypts a message represented by a point of the bilinear pairing's target group $\mathbb{G}_T$.
22
+
Policies are associated with the key (\acrshort{kp-abe}).
23
+
The scheme encrypts messages represented by an element of the bilinear pairing's target group $\mathbb{G}_T$.
23
24
It is a \gls{small-universe} construction.
24
25
25
26
The definition of the scheme in this chapter 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$).
@@ -29,24 +30,26 @@ \section{Goyal, Pandey, Sahai and Waters, 2006}
29
30
Originally, a symmetric pairing is used, so the pairing inputs can be swapped freely.
30
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.
31
32
Elements of $\mathbb{G}_1$ are shorter than elements of $\mathbb{G}_2$ and thus the operations are faster to compute.
32
-
33
+
\\
33
34
% To speed up encryption and decryption, the plaintext is not encrypted with the GPSW \acrshort{abes} directly.
34
35
% Instead, a random group element is chosen and encrypted under GPSW (i.e. a $k \in \mathbb{G}_T$).
35
36
% This element is hashed to obtain an symmetric key, which is then used to encrypt the plaintext with AES-GCM (an \acrshort{aead} mode of operation).
36
37
% The ciphertext now consists of the GPSW-encrypted group element plus the AES-GCM ciphertext.
37
38
38
-
~\\
39
39
40
-
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.
40
+
41
+
Let $\mathbb{G}_1$ and $\mathbb{G}_2$ be bilinear groups of prime order $q$.
42
+
Let $P$ be a generator of $\mathbb{G}_1$ and $Q$ be a generator of $\mathbb{G}_2$.
43
+
Let $e: \mathbb{G}_1\times\mathbb{G}_2\rightarrow\mathbb{G}_T$ be a bilinear pairing.
41
44
42
45
Note that $\mathbb{G}_1$ and $\mathbb{G}_2$ are written additively, but $\mathbb{G}_T$ is written using multiplicative notation.
43
46
This corresponds to the interface of the bilinear pairing library used in this thesis.\\
Input: \gls{access-tree} $\mathcal{T}$ and master key $MK$.
65
68
66
-
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.
69
+
For each node $u$ in the \gls{access-tree} $\mathcal{T}$, recursively define polynomials $q_u(x)$ with degree $(d_u - 1)$, starting from the root.
67
70
68
71
For the root $r$, set $q_r(0) = s$ and randomly choose $d_r -1$ other points to determine the polynomial $q_r(x)$.
69
72
Then, for any other node $u$, including leaf nodes, set $q_u(0) = q_{\text{parent}(x)}(\text{index}(x))$ and choose $d_u -1$ other points at random to define the polynomial.
70
73
For all leaf nodes $u$, create a secret share $D_u = q_x(0) \cdot t_i^{-1} \cdot Q$ where $i = \text{att}(x)$.
71
74
72
-
The set of these secret shares is the decryption key $D = \{D_u | u \text{ leaf node of } \Gamma\}$.
75
+
The set of these secret shares is the decryption key $D = \{D_u | u \text{ leaf node of } \mathcal{T}\}$.
@@ -117,11 +120,11 @@ \section{Yao, Chen and Tian 2015}\label{sec:yct}
117
120
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.
118
121
119
122
Yao, Chen and Tian's ABE scheme (hereafter written just YCT) is a KP-ABE scheme that does not use any bilinear pairing operations.
120
-
Instead, the only operation performed on Elliptic Curves are point-scalar multiplication~\cite{yao_lightweight_2015}.
123
+
Instead, the only operations performed on \glspl{ec} are point-scalar multiplication~\cite{yao_lightweight_2015}.
121
124
% This makes it especially useful for our resource-constrained context, as bilinear pairings are significantly more costly in terms of computation and memory.
122
125
123
126
As opposed to other ABE schemes based on pairings, YCT uses a hybrid approach similar to the Elliptic Curve Integrated Encryption Standard (ECIES):
124
-
The actual encryption of the plaintext is done by a symmetric cipher, for which the key is derived from a curve point determined by the YCT scheme~\cite{yao_lightweight_2015}.
127
+
The actual encryption of the plaintext is done by a \gls{privkes}, for which the key is derived from a curve point determined by the YCT scheme~\cite{yao_lightweight_2015}.
125
128
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.
126
129
127
130
The original description of this scheme uses the x- and y-coordinates as keys for separate encryption and authentication mechanisms.
@@ -133,7 +136,8 @@ \section{Yao, Chen and Tian 2015}\label{sec:yct}
133
136
$r_l$ is a random seed value that differs for each layer $l$ of the \gls{access-tree}~\cite{tan_enhancement_2019}.
134
137
In our implementation, HMAC-SHA3-512 is used as the \acrshort{prf}.\\
135
138
136
-
Let $\mathbb{G}$ be a group of order $q$ with generator $G$. The four algorithms of the YCT scheme are defined as follows: \\
139
+
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} $\mathcal{T}$ and master key $MK$.
163
167
164
168
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.
165
169
166
-
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.
170
+
For each node $u$ in the \gls{access-tree} $\mathcal{T}$, recursively define polynomials $q_u(x)$ with degree $(d_u - 1)$, starting from the root.
167
171
168
172
For the root $r$, set $q_r(0) = s$ and randomly choose $(d_r - 1)$ other points to determine the polynomial $q_r(x)$.
169
173
Then, for any other node $u$ (including leafs), set $q_u(0) = q_{\text{parent}(u)}(\text{index}'(u))$ and choose $(d_u -1)$ other points for $q_u$, similar to above.
170
174
171
-
Whenever $u$ is a leaf node, use $q_u(x)$ to define a secret share $D_u = \frac{q_u(0)}{s_i}$; where $i = \text{attr}(u)$, $s_i$ the randomly chosen secret number from \emph{Setup} and $s_i^{-1}$ the inverse of $s_i$ in $\mathbb{Z}_q^*$.
175
+
Whenever $u$ is a leaf node, use $q_u(x)$ to define a secret share $D_u = q_u(0)\cdots_i^{-1}$; where $i = \text{attr}(u)$, $s_i$ the randomly chosen secret number from \emph{Setup} and $s_i^{-1}$ the inverse of $s_i$ in $\mathbb{Z}_q^*$.
172
176
173
-
Return the generated key as $D = (\{D_u | u \text{ leaf node of } \Gamma\}, \{r_0, r_1, \dots\})$.
177
+
Return the generated key as $D = (\{D_u | u \text{ leaf node of } \mathcal{T}\}, \{r_0, r_1, \dots\})$.
174
178
\\
175
179
176
180
\noindent\emph{Decrypt(CM, D, PK)}~\cite{yao_lightweight_2015}. Input: Ciphertext $CM$, decryption key $D$ and public key $PK$.
@@ -207,7 +211,7 @@ \section{Yao, Chen and Tian 2015}\label{sec:yct}
207
211
208
212
The equality $(*)$ holds because $\sum_{v \in\omega'_u} \Delta_{\omega'_u, i}(0) \cdot q_u(i) = q_u(0)$ is exactly the lagrange interpolation polynomial $q_u(x)$ at $x = 0$ with respect to the points $\{(index(v), q_v(0)) | v \in\omega_u\}$.
209
213
210
-
This means for the root $r$ of the \gls{access-tree} $\Gamma$, we have
214
+
This means for the root $r$ of the \gls{access-tree} $\mathcal{T}$, we have
211
215
\begin{equation*}
212
216
\text{DecryptNode}(CM, D, r) = q_r(0) \cdot k \cdot G = s \cdot k \cdot G = (k'_x, k'_y)
0 commit comments