Skip to content

Commit 32f13a9

Browse files
docs: editor comments on the paper (#44)
1 parent d41c91d commit 32f13a9

File tree

1 file changed

+24
-23
lines changed

1 file changed

+24
-23
lines changed

paper.md

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,14 @@ This is a highly specialised software aimed mostly for computational mathematici
2727

2828
# Key features
2929

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.
3131
- 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.
3232
- 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.
3333
- State of the art technology for software engineering:
3434
- CI/CD mechanism set up with GitHub Actions: automatic tests for library installation, source code inclusion, compilation and execution,
3535
- extensive unit testing with Catch2 framework [@catch2] alongside code coverage measurement uploaded to Codecov; current coverage: 100%,
3636
- 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.
3838

3939
# Cryptographic applications
4040

@@ -47,16 +47,16 @@ Every element of $\mathcal{R}$, $\mathcal{R}_p$, $\mathcal{R}_q$ may be writted
4747
f = \sum_{i=0}^{N-1} f_i x_i \equiv [f_0, \ldots ,f_{N-1}]
4848
\end{equation}
4949

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$).
5151
Multiplication $\star$ within this structure is defined as:
5252

5353
\begin{equation}\label{eq:ringmul}
5454
f \star g = \sum_{i=0}^k f_i g_{k-i} + \sum_{i=k+1}^{N-1} f_i g_{N+k-i}
5555
\end{equation}
5656

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.
5858

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:
6060

6161
\begin{equation}\label{eq:algebras}
6262
\begin{aligned}
@@ -66,10 +66,11 @@ Based on the above let us pick an integer $\lambda \geq 0$ and define three corr
6666
\end{aligned}
6767
\end{equation}
6868

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.
7070

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:
7374

7475
\begin{equation}\label{eq:recursivemultiplication}
7576
\begin{aligned}
@@ -83,10 +84,10 @@ Multiplication $\times$ is defined recursively based on conjugation operation $^
8384
\end{aligned}
8485
\end{equation}
8586

86-
Which holds for the modular algebras too given a final reduction modulus $p$ or $q$.
87+
which as well holds for the modular algebras, given a final reduction modulus $p$ or $q$.
8788

88-
Based on the above let us define a general scheme for
89-
hypercomplex-based cyptosystems. Having agreed on $(N, p, q)$ Bob
89+
Based on the above, let us define a general scheme for
90+
hypercomplex-based cyptosystems. Having agreed on $(N, p, q)$, Bob
9091
selects $F, G \in \mathcal{A^\lambda} : \exists F_p^{-1}\in\mathcal{A_p^\lambda} \wedge \exists F_q^{-1}\in\mathcal{A_q^\lambda}$.
9192
A procedure to generate the public key $H\in\mathcal{A_q^\lambda}$ is then given by:
9293

@@ -112,12 +113,12 @@ The following decryption consist of three steps:
112113
\end{aligned}
113114
\end{equation}
114115

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$
119120
(e.g. $F: \exists! i\in\{0, \ldots ,2^\lambda-1\}: F_i \neq 0$).
120-
For a more detailed deriviation of similar
121+
For a more detailed coverage of similar
121122
cryptosystems please see publications
122123
presenting QTRU[@QTRU] and OTRU[@OTRU].
123124

@@ -141,21 +142,21 @@ All of the data and code required to reproduce these results is available in the
141142

142143
# State of the field
143144

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.
145146

146147
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)
150151
and to provide reproducible examples of a successful encryption/decryption procedures.
151152
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.
152153

153154
# Acknowledgments
154155

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
157158
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
159160
analyse and understand specifics of lattice-based cryptosystems.
160161

161162
# References

0 commit comments

Comments
 (0)