Skip to content

Commit 37fd53e

Browse files
authored
refactor: fix minor typos and errors (#34)
1 parent 5439a43 commit 37fd53e

File tree

4 files changed

+27
-13
lines changed

4 files changed

+27
-13
lines changed

CHANGELOG.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10-
- Initial Release
10+
## [2.0.0] - 2023-02-16
1111

12-
[unreleased]: https://github.com/AngryMaciek/hypercomplex
12+
### Added
13+
14+
- initial release of the project
15+
16+
[unreleased]: https://github.com/AngryMaciek/hypercomplex/compare/v2.0.0...HEAD
17+
[2.0.0]: https://github.com/AngryMaciek/hypercomplex/releases/tag/v2.0.0

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@
1111

1212
<img src="img/logo.png" alt="drawing" height="30"/>
1313

14-
Header-only *C++* template library for precise operations on hypercomplex numbers from the [Cayley-Dickson algebras](https://en.wikipedia.org/wiki/Cayley%E2%80%93Dickson_construction).
14+
Header-only *C++*
15+
template library for lattice-based cryptosystems in
16+
high-dimensional algebras.
1517

1618
Full documentation & API are available at [this link](https://angrymaciek.github.io/hypercomplex).
1719
Please refer to the [contributing guidelines](CONTRIBUTING.md) if you are interested in contributing to this repository.

docs/mainpage.dox

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,7 @@
313313
*
314314
* \section crypto_sec Cryptographic Application
315315
*
316-
* Main feature of _Hypercomplex_ is the implementation of
316+
* The main feature of _Hypercomplex_ is an implementation of
317317
* cryptographic operations as in <a href="https://en.wikipedia.org/wiki/NTRUEncrypt">NTRU cryptosystem</a>
318318
* but generalized on an arbitrary-high-dimensional algebras generated with the Cayley-Dickson construction.
319319
* The library provides additional helper class for truncated polynomials
@@ -326,8 +326,8 @@
326326
* Let \f$R = \mathbb{Z}[x] / (x^N - 1)\f$ be the underlying polynomial quotient ring
327327
* (\f$R_p, R_q\f$ are modular structures, modulo \f$p,q\f$ respectively)
328328
* and \f$D\f$ mark the dimension of the algebra we operate in:
329-
* \f$A = \{\sum^D_{i=1} x_i \cdot e_i | x_i \in R\} \f$, where
330-
* all \f$e_i\f$ are basis elements (similarly for modular algebras: \f$A_p, A_q\f$).
329+
* \f$A = \{x_0 + \sum^{D-1}_{i=1} x_i \cdot e_i | x_i \in R\} \f$, where
330+
* all \f$e_i\f$ are imaginary basis elements (similarly for modular algebras: \f$A_p, A_q\f$).
331331
*
332332
* Mathematical derivations for these structures and their operations
333333
* are analogous to those presented for
@@ -391,14 +391,17 @@
391391
* Hypercomplex<Polynomial<MaxDeg>, dim> C = DECRYPT(F, E, p, q);
392392
* \endcode
393393
*
394-
* Remarkably, for a cryptosystem based on algebras with 16+ dimensions
394+
* Remarkably, for a cryptosystem based on an algebra of \f$D \geq 16\f$ dimensions
395395
* \f$F\f$ needs to contain at most one \f$ x_i \in R | x_i \neq 0\f$.
396396
* This is because sedonions (and higher)
397397
* are not associative, thus the decryption process will only be possible
398-
* for such specific, reduced subset of private keys.
398+
* for a specific, reduced subset of private keys.
399399
*
400400
* Cryptographic applications of _Hypercomplex_ have been extensively tested in the
401401
* test case: _Cryptosystem based on Cayley-Dickson Algebras_ of the
402402
* <a href="https://github.com/AngryMaciek/hypercomplex/blob/master/.test/unit/test.cpp">following file</a>.
403403
*
404+
* All tests underlying Figure 1 in the publication are available
405+
* <a href="https://github.com/AngryMaciek/hypercomplex/blob/master/.test/docs/test.cpp">here</a>.
406+
*
404407
*/

paper.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,12 @@ The following decryption consist of three steps:
110110

111111
If the decryption was successfull Bob receives $D_3 = M$ (up to coefficients' centered lift in $\mathcal{A_p^\lambda}$).
112112
Please remember that lattice-based cryptography is always burdened with a chance of decryption failure due to incorrect recovery of polynomial's coefficients.
113+
Also, for $\lambda \geq 4$ note that $\mathcal{A^\lambda}$ is not alternative
114+
nor associative thus successful decryption relies on a careful initial choice of $F$
115+
(e.g. $F: \exists! i\in\{0, \ldots ,2^\lambda-1\}: F_i \neq 0$).
113116
For a more detailed deriviation of similar
114-
cryptosystems please see QTRU[@QTRU] and OTRU[@OTRU] paper.
117+
cryptosystems please see publications
118+
presenting QTRU[@QTRU] and OTRU[@OTRU].
115119

116120
Three examples of matrix encryption-decryption are presented in the Figure 1.
117121
All of the data and code required to reproduce these results is available in the code repository.
@@ -121,13 +125,13 @@ All of the data and code required to reproduce these results is available in the
121125
**(a)** Message (M) composed of seven, relatively-big
122126
secret numbers is encoded in binary in a [64x7] matrix.
123127
This is later encrypted (E) and decrypted (D) with a public-key
124-
cryptosystem, allowing to transfer the numbers in a secure manner.
128+
cryptosystem, allowing to transfer the numbers in a secure manner;
129+
$p=2, q=1151$.
125130
**(b)** Graphical representation of an encrypted/decrypted QR code,
126-
encoded in a [32x29] matrix (padded image).
127-
**(c)** Encrypted/Decrypted [128x127] meme; credits: [www.nyan.cat](www.nyan.cat).
131+
encoded in a [32x29] matrix (padded image); $p=3, q=1723$.
132+
**(c)** Encrypted/Decrypted [128x127] meme; $p=17, q=16777213$; credits: [www.nyan.cat](www.nyan.cat).
128133
](img/Fig1.png)
129134

130-
&nbsp;
131135
&nbsp;
132136
&nbsp;
133137

0 commit comments

Comments
 (0)