Skip to content

Commit 79f70ad

Browse files
committed
Proofread 01, 02
1 parent 6d29111 commit 79f70ad

File tree

5 files changed

+34
-33
lines changed

5 files changed

+34
-33
lines changed

thesis/build/main.pdf

-108 Bytes
Binary file not shown.

thesis/chapters/01_introduction.tex

+4-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
\chapter{Introduction}\label{chapter:introduction}
55

66
\acrfull{abe} promises to provide security while improving flexibility over standard cryptosystems.
7-
Its approach of combining \glspl{attribute} and \glslink{access-policy}{policies} describing characteristics of admissible decryption keys is closer to traditional notions of access control (e.g. Role-Based Access Control) than conventional encryption~\cite{bethencourt_ciphertext-policy_2007}.
7+
Its approach of combining \glspl{attribute} and \glslink{access-policy}{policies} describing admissible decryption keys is closer to traditional notions of access control (e.g. Role-Based Access Control) than conventional encryption~\cite{bethencourt_ciphertext-policy_2007}.
88

99
This increased flexibility is also desirable for \acrfull{iot} applications.
1010
However, the \acrshort{iot} is especially affected by the trade-off between cost and security:
@@ -22,7 +22,7 @@ \chapter{Introduction}\label{chapter:introduction}
2222

2323
For a real-world use case of such an \acrshort{abe} library in the medical field, see Figure~\ref{fig:system-architecture}. % TODO? describe the figure in words as well?
2424
It is assumed that the sensor (e.g. an ECG or blood glucose sensor) is unable to communicate with the internet directly.
25-
Therefore, the data is sent to a gateway by \acrfull{ble} and then uploaded to the cloud.
25+
Therefore, the data is sent to a gateway via \acrfull{ble} and then uploaded to the cloud.
2626

2727
Note that in this use case, the sensor exclusively needs to encrypt data.
2828
Decryption is not required on the constrained node, which is the case in many \acrshort{iot} applications.
@@ -44,8 +44,9 @@ \chapter{Introduction}\label{chapter:introduction}
4444
Unfortunately, trusting either the gateway or the cloud provider is an unreasonable assumption in many scenarios.
4545
Therefore, we'd like to employ end-to-end \acrlong{abe}:
4646
Measurements are encrypted with \acrshort{abe} on the sensor before they are transmitted over \acrshort{ble} and only decrypted when read by an authorized client (e.g. the attending doctor).
47+
Neither the gateway nor the cloud server need to be trusted in this scenario.
4748

48-
End-to-end \acrshort{abe} eliminates trust in the gateway and the cloud server, but it does not remove the single point of failure:
49+
\Acrshort{abe} does not entirely remove the single point of failure, though:
4950
A malicious \acrfull{kgc} could issue keys that allow decryption of arbitrary data (see section~\ref{sec:kgc}).
5051
However, the \acrshort{kgc} is only required to setup the \acrshort{abe} system and issue the participant's keys.
5152
It is not involved in any encryption or decryption operations.

thesis/chapters/02_background.tex

+24-24
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ \chapter{Preliminaries}\label{chapter:background}
44
\input{figures/02_key_use_comparison}
55

66
\section{Confidentiality with Classic Symmetric and Asymmetric Cryptography}
7-
Today's conventional cryptography knows two main classes of encryption schemes: \glslink{privkes}{symmetric} and \glslink{pkes}{asymmetric encryption}. See Figure~\ref{fig:key-use} for an illustration of the differences.
7+
Today's conventional cryptography knows two main classes of encryption schemes: \glslink{privkes}{symmetric} and \glslink{pkes}{asymmetric encryption}.
8+
Figure~\ref{fig:key-use} illustrates the differences between attribute-based, symmetric and asymmetric encryption.
89

910
Consider $n$ participants wanting to communicate securely (i.e. no user can read encrypted messages between two other users).
1011
Using a \gls{privkes}, each participant would need to agree on a unique key with every other participant, resulting in a total number of $\frac{n(n-1)}{2}$ keys.
@@ -22,9 +23,8 @@ \section{Confidentiality with Classic Symmetric and Asymmetric Cryptography}
2223

2324
\section{Attribute-Based Encryption}\label{sec:background-abe}
2425
\acrfull{abe} uses a combination of attributes to define a \emph{group} of private keys that should be able to read encrypted data, instead of encrypting it for one specific private key only (as in \glspl{pkes}).
25-
In Figure~\ref{fig:key-use}, this is represented by a tree.
2626

27-
The combination of attributes may be as restrictive or permissive as needed.
27+
This group of keys may be as restrictive or permissive as needed.
2828
It is possible to create ciphertexts that can be read by almost all members of an \acrshort{abes}, and ciphertexts that can be read by nobody except a few selected participants.
2929

3030
Figure~\ref{fig:abe-system} shows how the participants interact in a small \acrshort{abe} system.
@@ -127,11 +127,11 @@ \subsection{Access Trees}\label{sec:access-trees}
127127

128128
\input{figures/02_sample_access_tree}
129129

130-
Explicitly specifying an \gls{access-structure} is not feasible, as its size may be exponential in the size of the attribute universe.
130+
Explicitly specifying a \glspl{access-structure} is not feasible as their size may be exponential in the size of the attribute universe.
131131
Therefore, we will use the construction of \emph{access trees} defined by Goyal~et~al.~\cite{goyal_attribute-based_2006}.
132132
\Glspl{access-tree} are similar to the tree representation of boolean formulas, but slightly more powerful:
133133
Each leaf of this tree is labelled with an attribute.
134-
Each inner node has a number of children and is labelled with an integer.
134+
Each inner node is labelled with an integer and has two or more children.% and is labelled with an integer.
135135
This integer represents the number of children that need to be satisfied in order to satisfy the inner node~\cite{goyal_attribute-based_2006}.
136136

137137
Figure~\ref{fig:sample-access-tree} illustrates an example for an \gls{access-tree}. It is satisfied by any set of attributes that contains two of $A, B$ and either $C$ or $D$.
@@ -143,7 +143,7 @@ \subsection{Access Trees}\label{sec:access-trees}
143143

144144
An interal node $x$ of an \gls{access-tree} is defined by its children and a threshold value $d_x$.
145145
The threshold value satisfies $0 < d_x \leq num_x$ with $num_x$ being the number of children.
146-
A leaf node $x$ is defined by an attribute and a threshold value $k_x = 1$.
146+
A leaf node $x$ is defined by an attribute and a threshold value $d_x = 1$.
147147

148148
The parent of a node $x$ in the \gls{access-tree} is denoted by $\text{parent}(x)$.
149149
If $x$ is a leaf node, $\text{att}(x)$ denotes the attribute associated with $x$; otherwise it is undefined.
@@ -153,7 +153,7 @@ \subsection{Access Trees}\label{sec:access-trees}
153153
\begin{definition}
154154
Satisfying Access Trees~\cite{goyal_attribute-based_2006}.
155155

156-
Let $\mathcal{T}$ be an \gls{access-tree} with root r and $\mathcal{T}_x$ the subtree with $x$ as its root.
156+
Let $\mathcal{T}$ be an \gls{access-tree} with root $r$ and $\mathcal{T}_x$ the subtree with $x$ as its root.
157157
If a set of attributes $\gamma$ satisfies the \gls{access-tree} $\mathcal{T}_x$, we write $\mathcal{T}_x(\gamma) = 1$; otherwise $\mathcal{T}_x(\gamma) = 0$.\\
158158
If $x$ is a leaf node, then $\mathcal{T}_x(\gamma) = 1$ if and only if $\text{attr}(x) \in \gamma$.
159159

@@ -165,7 +165,7 @@ \subsection{Access Trees}\label{sec:access-trees}
165165
Using the \gls{access-tree} construction, we can express \emph{A AND B} as a node with two children $A$ and $B$ and threshold $2$, and express \emph{A OR B} as a node with two children $A$ and $B$ and threshold $1$~\cite{yao_lightweight_2015}.
166166

167167
\subsection{Revocation}
168-
So far, it is not possible to take privileges away from a user:
168+
In a simple \acrshort{abe} system is not possible to take privileges away from a user:
169169
Once the private key has been issued, it can not be taken back.
170170
A user's capabilities can only be extended (e.g. by giving out a key with additional attributes).
171171
This is is a problem, e.g. if their private key is compromised~\cite{boldyreva_identity-based_2008}.
@@ -230,7 +230,7 @@ \subsection{Revocation}
230230

231231
\section{Shamir's Secret Sharing}
232232
To implement \acrshort{abe}, we need a way to embed secrets in \glspl{access-tree}.
233-
For this, a secret sharing scheme introduced by \citeauthor{shamir_how_1979}~\cite{shamir_how_1979} is used.
233+
For this, the secret sharing scheme introduced by \citeauthor{shamir_how_1979}~\cite{shamir_how_1979} is used.
234234

235235
Secret sharing schemes allows a secret $s$, which is generally just a number, to be shared among $n$ participants.
236236
The shares are computed such that $s$ can be reconstructed if and only if at least $k$ participants meet and combine their shares.
@@ -240,7 +240,7 @@ \subsection{Lagrange interpolation}
240240
Shamir's scheme makes use of a property of polynomials: A polynomial of degree $d$ is unambiguously determined by $d+1$ points $(x_i, y_i)$.
241241
In other words, any polynomial of degree $d$ can be unambiguously interpolated (reconstructed) from $d+1$ distinct points.
242242

243-
To interpolate a polynomial of degree $d$ from $d+1$ given points $(x_1, y_1), \dots, (x_{d+1}, y_{d+1})$, we can make use of the lagrange basis polynomials:~\cite{yao_lightweight_2015}
243+
To interpolate a polynomial of degree $d$ from $d+1$ given points $(x_1, y_1), \dots, (x_{d+1}, y_{d+1})$, we can make use of the lagrange basis polynomials~\cite{yao_lightweight_2015}:
244244

245245
\begin{definition}
246246
Lagrange interpolation: Given a set of $d+1$ points $(x_1, y_1), \dots, (x_{d+1}, y_{d+1})$.
@@ -336,11 +336,11 @@ \subsection{Group Axioms}\label{sec:group}
336336

337337

338338
This notation (``$+$'' for the group operation and $0$ for neutral element) is called \emph{additive notation}.
339-
Sometimes, \emph{multiplicative notation} is used: The group operation is denoted by ``$\cdot''$ and the neutral element by ``$1$''.
339+
Sometimes, \emph{multiplicative notation} is used: The group operation is denoted by ``$\cdot$'' and the neutral element by ``$1$''.
340+
In multiplicative notation, the group exponentiation of $g \in \mathbb{G}$ with $m \in \mathbb{N}^+$ is written as $g^m$.
340341

341342
It is important to remember that even though the symbols $+$ and $\cdot$ are used, they might be defined completely differently from regular addition and multiplication!
342343

343-
In multiplicative notation, the group exponentiation of $g \in \mathbb{G}$ with $m \in \mathbb{N}^+$ is written as $g^m$, in additive groups it is written as $m \cdot g$.
344344

345345
\begin{definition}
346346
An (additive) group $\mathbb{G}$ is cyclic if there is an element $g \in \mathbb{G}$ that generates $\mathbb{G}$, i.e. $\mathbb{G} = \langle g \rangle = \{k \cdot g | k \in \mathbb{Z}\}$.
@@ -374,7 +374,7 @@ \subsection{Point Addition}
374374
Using this intersecting line, we can define an operation on curve points:
375375
\begin{definition}
376376
\label{def:point-add}
377-
Given an \gls{ec} $E(\mathbb{Z}_p)$, we define a binary operation called \emph{(point) addition} and denoted by $+$:~\cite{katz_introduction_2015}\\
377+
Given an \gls{ec} $E(\mathbb{Z}_p)$, we define a binary operation called \emph{(point) addition} and denoted by $+$~\cite{katz_introduction_2015}:\\
378378
Let $P_1, P_2 \in E(\mathbb{Z}_p)$.
379379

380380
\begin{itemize}
@@ -393,16 +393,6 @@ \subsection{Point Addition}
393393
\label{fig:ecc-point-addition}
394394
\end{figure}
395395

396-
We will be adding points to themselves a lot. Therefore, we define for ease of notation:
397-
\begin{definition}
398-
Point-Scalar multiplication: Given a point $P \in E(\mathbb{Z}_p)$ and a scalar $d \in \mathbb{N}$:
399-
\begin{equation}
400-
d \cdot P = \underbrace{P + P + \cdots + P}_{d \text{ times}}
401-
\end{equation}
402-
\end{definition}
403-
404-
That is exactly the definition of group exponentiation, applied to our additive \gls{ec} group. Note that the product of a scalar with a point is again a point on our curve.\\
405-
406396
\subsection{Groups on Elliptic Curves}
407397
\begin{theorem}
408398
The points of an \gls{ec} $E(\mathbb{Z}_p)$ plus the addition law as stated in Definition~\ref{def:point-add} form an abelian (commutative) group~\cite{katz_introduction_2015, washington_elliptic_2008}:
@@ -417,9 +407,19 @@ \subsection{Groups on Elliptic Curves}
417407
\end{itemize}
418408
\end{proof}
419409

420-
Of particular interest to cryptography are \emph{cyclic} groups on \glspl{ec}:
421410

411+
We will be adding points to themselves a lot. Therefore, we define for ease of notation:
412+
\begin{definition}
413+
Point-Scalar multiplication: Given a point $P \in E(\mathbb{Z}_p)$ and a scalar $d \in \mathbb{N}$:
414+
\begin{equation}
415+
d \cdot P = \underbrace{P + P + \cdots + P}_{d \text{ times}}
416+
\end{equation}
417+
\end{definition}
418+
419+
That is exactly the definition of group exponentiation, applied to our additive \gls{ec} group.
420+
Note that the product of a scalar with a point is again a point on our curve.
422421

422+
Of particular interest to cryptography are cyclic groups on \glspl{ec}.
423423
Translated to our \glspl{ec}, this means that there is a generator point $P \in E(\mathbb{Z}_p)$, such that every point $Q \in E(\mathbb{Z}_p)$ can be obtained by repeatedly adding $P$ to itself using the point addition from Definition~\ref{def:point-add}.
424424

425425
\begin{theorem}\cite{katz_introduction_2015}

thesis/chapters/03_related-work.tex

+5-5
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ \section{Theoretical work on ABE schemes}
3535
Their main construction uses a \glslink{small-universe}{small attribute universe}, but they also propose a \gls{large-universe} construction.
3636

3737
The first expressive \acrlong{cp-abe} scheme was proposed by Bethencourt, Sahai and Waters in~\cite{bethencourt_ciphertext-policy_2007}.
38-
It is a large-universe construction and uses \glspl{access-tree}.
38+
% It is a large-universe construction and uses \glspl{access-tree}.
3939
Waters \cite{waters_ciphertext-policy_2011} later also introduces the first \acrshort{cp-abe} schemes with a security proof in the \gls{standard-model}, not only in the \gls{ggm}.
4040

4141
Both the schemes in~\cite{goyal_attribute-based_2006} and in~\cite{bethencourt_ciphertext-policy_2007} only support monotone \glspl{access-structure}.
@@ -72,7 +72,7 @@ \section{Theoretical work on ABE schemes}
7272
Herranz argues that it is not possible to build secure \acrshortpl{abes} in the (non-bilinear) discrete-logarithm setting (i.e. on elliptic curves without bilinear pairings).
7373
For this reason, the security of pairing-free schemes like \cite{yao_lightweight_2015,sowjanya_efficient_2020,tan_enhancement_2019} remains questionable, even if further improved.
7474

75-
\section{Implementation on unconstrained hardware}
75+
\section{Implementation on unconstrained devices}
7676
One of the first notable pairing implementations was the \emph{Pairing-Based Cryptography Library (PBC)}~\cite{lynn_pairing-based_nodate, lynn_implementation_2007}.
7777
The efficiency improvements implemented by the PBC library were first described by its author, Ben Lynn, in~\cite{lynn_implementation_2007}.
7878
This implementation runs sufficiently fast on standard PC hardware, e.g. it takes 20.5ms to compute a pairing on a 224-bit MNT curve on a 2.4\,GHz Intel Core i5 processor~\cite{akinyele_self-protecting_2010}.
@@ -86,7 +86,7 @@ \section{Implementation on unconstrained hardware}
8686
This implementation uses the PBC library and 224-bit MNT curve from~\cite{lynn_implementation_2007}.
8787
They conclude that for policies with less than 30 leaf nodes, decryption on a smartphone is feasible (taking around 2 to 7 seconds, depending on the scheme) \cite{akinyele_self-protecting_2010}.
8888

89-
In \cite{sanchez_neon_2013}, a pairing library and \acrshort{abes} is implemented using the NEON instructions, a set of \acrshort{simd} vector instructions for ARM processors.
89+
In \cite{sanchez_neon_2013}, a pairing library and \acrshort{abes} are implemented using NEON, a set of \acrshort{simd} vector instructions for ARM processors.
9090
They evaluate their implementations on several ARM Cortex A9 and A15 processors with clock frequencies between 1GHz and 1.7GHz.
9191
The use of NEON improves performance by 20-50\%, depending on the chip.
9292
Note that the NEON instruction set is not available on our SoC.
@@ -114,12 +114,12 @@ \section{Implementation on constrained devices}
114114
The authors of \cite{ambrosin_feasibility_2015} test their \acrshort{abe} implementation on \gls{iot} devices in \cite{ambrosin_feasibility_2016}.
115115
They evaluate the performance of the same library on full-fledged \acrshort{iot} devices (among others, on a Raspberry Pi Zero with 1\,GHz ARM11 CPU) and conclude that \acrshort{abe} is feasible on these devices, too.
116116
However, they note that especially lower security levels are suitable and that the penalty for increasing the security level is very high (e.g. increasing the security level from 80 to 128 bits without increasing the encryption time requires reduction of the number of attributes by a factor of 10)~\cite{ambrosin_feasibility_2016}.
117-
In contrast to the SoC used in this thesis, their devices are significantly more powerful and run a full operating system.
117+
In contrast to the SoC used in this thesis, their devices are significantly more powerful and run full operating systems.
118118

119119
The setting in \cite{borgh_attribute-based_2016} is much closer to ours: \acrshort{abe} is implemented bare-metal (i.e. without operating system) on a sensor equipped with an STM32L151VCT6 SoC with a maximum clock frequency of 32\,MHz.
120120
They use the pairing library \emph{RELIC Toolkit}~\cite{aranha_relic_nodate} at a security level of 128 bits and evaluate a C implementation of the \acrshort{cp-abe} scheme in \cite{waters_ciphertext-policy_2011}.
121121
Only encryption is evaluated; decryption is not implemented on the SoC.
122-
The author again concludes that \acrshort{abe} encryption on the sensor is feasible if the policy size is rather small and the runtime of several seconds is acceptable~\cite{borgh_attribute-based_2016}.
122+
The author again concludes that \acrshort{abe} encryption on the sensor is feasible if the policy size is rather small and a runtime of several seconds is acceptable~\cite{borgh_attribute-based_2016}.
123123
In this case, the encryption time is over 10\,s for just six attributes~\cite{borgh_attribute-based_2016}.
124124
In contrast to our work, the hardware is slightly less powerful and the evaluated scheme is \acrshort{cp-abe}.
125125

thesis/glossaries.tex

+1-1
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@
7575
description={type of encryption scheme where the same key is used for encryption and decryption. This means that the key has to be shared among all parties via some secure channel (e.g. a personal meeting).}
7676
}
7777

78-
\newacronym[see={[Glossary:]{gls-kgc}}]{kgc}{KGC}{Key Generation Center\glsadd{gls-kgc}}
78+
\newacronym[see={[Glossary:]{gls-kgc}}]{kgc}{KGC}{key generation center\glsadd{gls-kgc}}
7979
% \newacronym{kgc}{KGC}{Key Generation Center}
8080

8181
\newglossaryentry{ibe}{

0 commit comments

Comments
 (0)