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
Copy file name to clipboardExpand all lines: paper.md
+24-23Lines changed: 24 additions & 23 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,14 +27,14 @@ This is a highly specialised software aimed mostly for computational mathematici
27
27
28
28
# Key features
29
29
30
-
- As a header-only *C++* template code it's greatest advantage is the combination of speed, generic programming and convenience for the end user. Open Source license together with template specialisation mechanism allows contributors to add-in support for custom objects, define specific functions and extend the scope of the library.
30
+
- As a header-only *C++* template code, it's greatest advantage is the combination of speed, generic programming, and convenience for the end user. Open Source license together with template specialisation mechanism allows contributors to add support for custom objects, define specific functions and extend the scope of the library.
31
31
- The most important specialisation, already included in the library itself, is the introduction of operations in hypercomplex algebras over truncated polynomial rings. These allow for many cryptographic applications as described in a dedicated section below.
32
32
- Another template class specialisation introduces the support for arbitrary high precision of calculations via GNU MPFR library [@fousse:inria-00070266], for which the operators have been overloaded such that all the instructions are carried out on specific data structures.
33
33
- State of the art technology for software engineering:
34
34
- CI/CD mechanism set up with GitHub Actions: automatic tests for library installation, source code inclusion, compilation and execution,
35
35
- extensive unit testing with Catch2 framework [@catch2] alongside code coverage measurement uploaded to Codecov; current coverage: 100%,
36
36
- source code linting with cpplint [@cpplint] - Google code style enforced,
37
-
- automatic documentation generation and hosting on GitHub Pages: build via Doxygen [@doxygen], publishing via Actions.
37
+
- automatic documentation generation and hosting on GitHub Pages: build via Doxygen [@doxygen], publishing via GitHub Actions.
38
38
39
39
# Cryptographic applications
40
40
@@ -47,16 +47,16 @@ Every element of $\mathcal{R}$, $\mathcal{R}_p$, $\mathcal{R}_q$ may be writted
47
47
f = \sum_{i=0}^{N-1} f_i x_i \equiv [f_0, \ldots ,f_{N-1}]
48
48
\end{equation}
49
49
50
-
Addition operation $+$ refers to a regular element-wise addition of coefficients (modular for $\mathcal{R}_p$ and $\mathcal{R}_q$).
50
+
where the addition operation $+$ refers to a regular element-wise addition of coefficients (modular for $\mathcal{R}_p$ and $\mathcal{R}_q$).
51
51
Multiplication $\star$ within this structure is defined as:
52
52
53
53
\begin{equation}\label{eq:ringmul}
54
54
f \star g = \sum_{i=0}^k f_i g_{k-i} + \sum_{i=k+1}^{N-1} f_i g_{N+k-i}
55
55
\end{equation}
56
56
57
-
With a final reduction modulo $p$ or $q$ in the modular quotient rings.
57
+
with a final reduction modulo $p$ or $q$ in the modular quotient rings.
58
58
59
-
Based on the above let us pick an integer $\lambda \geq 0$ and define three corresponding algebras, generated by the Cayley-Dickson process:
59
+
Based on the above, let us pick an integer $\lambda \geq 0$ and define three corresponding algebras, generated by the Cayley-Dickson process:
60
60
61
61
\begin{equation}\label{eq:algebras}
62
62
\begin{aligned}
@@ -66,10 +66,11 @@ Based on the above let us pick an integer $\lambda \geq 0$ and define three corr
66
66
\end{aligned}
67
67
\end{equation}
68
68
69
-
Note that $\forall x\in \mathcal{A^\lambda}: x = (a, b) | a, b \in \mathcal{A^{\lambda-1}}$.
69
+
where the ddition operation $+$ refers to ring addition defined above.
70
70
71
-
Addition operation $+$ refers to ring addition defined above.
72
-
Multiplication $\times$ is defined recursively based on conjugation operation $^*$ as below:
71
+
Note that $\forall x\in \mathcal{A^\lambda}: x = (a, b)$, where $a, b \in \mathcal{A^{\lambda-1}}$.
72
+
73
+
Multiplication $\times$ is defined recursively based on the conjugation operation $^*$ as below:
A procedure to generate the public key $H\in\mathcal{A_q^\lambda}$ is then given by:
92
93
@@ -112,12 +113,12 @@ The following decryption consist of three steps:
112
113
\end{aligned}
113
114
\end{equation}
114
115
115
-
If the decryption was successfull Bob receives $D_3 = M$ (up to coefficients' centered lift in $\mathcal{A_p^\lambda}$).
116
-
Please remember that lattice-based cryptography is always burdened with a chance of decryption failure due to incorrect recovery of polynomial's coefficients.
117
-
Also, for $\lambda \geq 4$ note that $\mathcal{A^\lambda}$ is not alternative
118
-
nor associative thus successful decryption relies on a careful initial choice of $F$
116
+
If the decryption was successfull, Bob receives $D_3 = M$ (up to coefficients' centered lift in $\mathcal{A_p^\lambda}$).
117
+
Please remember that the lattice-based cryptography is always burdened with a chance of decryption failure due to an incorrect recovery of polynomial's coefficients.
118
+
Also, for $\lambda \geq 4$ note that $\mathcal{A^\lambda}$ is neither alternative
119
+
nor associative; thus successful decryption relies on a careful initial choice of $F$
@@ -141,21 +142,21 @@ All of the data and code required to reproduce these results is available in the
141
142
142
143
# State of the field
143
144
144
-
When it comes to a general hypercomplex framework the well-known _boost C++_ libraries deserve the most notable mention here [@boost]. Unfortunately their scope is limitted as they only provide quaterions and octonions classes (however as an upside - all the operations are well optimised). Moreover, these libraries do not support operations on MPFR types natively. It may also be worth to mention the existence of smaller repositories like:[@quaternions] or [@cd], but, unlike our work, they often lack proper test suites, code coverage reports, documentation and are also significantly restricted in functionality which is a major drawback.
145
+
When it comes to a general hypercomplex framework the well-known _boost C++_ libraries deserve the most notable mention here [@boost]. Unfortunately their scope is limited as they only implement classes for quaterions and octonions (however, as an upside, all the operations are well optimised). Moreover, these libraries do not support operations on MPFR types natively. It may also be worth to mention the existence of smaller projects like [@quaternions] or [@cd], but, unlike our work, they often lack proper test suites, code coverage reports, documentation and are also significantly restricted in functionality which is a major drawback.
145
146
146
147
However, (most importantly) to our best knowledge there is currently no high-quality open-source library which natively supports cryptosystems based on truncated polynomial rings.
147
-
Previous research described distinct versions of NTRU [@NTRU], among others: 4-dimensional QTRU [@QTRU], 8-dimensional OTRU [@OTRU]; some proposed 16-dimenisional STRU [@STRU], which correctness has not yet been verified.
148
-
Despite these efforts no generalization has been provided yet.
149
-
Our work is a first to: present that these procedures are vaild in arbitrary-high-dimensional Cayley-Dickson algebras (provided a careful choice of parameters of the system)
148
+
Previous research described distinct versions of NTRU [@NTRU], among others: 4-dimensional QTRU [@QTRU], 8-dimensional OTRU [@OTRU]; and a proposed 16-dimenisional STRU [@STRU], correctness of which has not yet been verified.
149
+
Despite these efforts, no generalization has been provided yet.
150
+
Our work is a first to present that these procedures are vaild in arbitrarily high-dimensional Cayley-Dickson algebras (provided a careful choice of parameters of the system)
150
151
and to provide reproducible examples of a successful encryption/decryption procedures.
151
152
Finally, it has not escaped our notice that the specific polynomial-based hypercomplex multiplication scheme we presented immediately suggests a possible hashing mechanism for string messages.
152
153
153
154
# Acknowledgments
154
155
155
-
We would like to express our wholehearted gratitidue towards: the members of
156
-
a facebook group _>implying we can discuss mathematics_, who aided us
156
+
We would like to express our wholehearted gratitude towards: the members of
157
+
a Facebook group _>implying we can discuss mathematics_, who aided us
157
158
with clarifications and suggestions related to the topic of research
158
-
as well as a _Cryptography Stack Exchange_ user:_DanielS_, who helped us
159
+
as well as a _Cryptography Stack Exchange_ user _DanielS_, who helped us
159
160
analyse and understand specifics of lattice-based cryptosystems.
0 commit comments