Commit Graph

144 Commits

Author SHA1 Message Date
b30fe6a75f Modular exponentiation with Barrett reduction. Seems slow. :( 2018-06-18 12:04:11 -07:00
011ebc0c99 Extend modular addition to Barrett constants. 2018-06-18 08:42:01 -07:00
a6def22bd1 Barrett reduction! 2018-06-17 11:01:22 -07:00
c49cd29c43 Barrett reduction 2018-06-10 21:09:53 -07:00
65d7b7e93f Modular exponentiation! 2018-06-10 21:09:35 -07:00
b93286fe60 Make modular addition take a trait argument like the others. 2018-06-10 10:36:49 -07:00
5a5b48569b Switch to the same test naming scheme across modules. 2018-06-10 10:36:34 -07:00
b5afa8fdf9 Modular squaring support (slow, initially) 2018-06-09 17:32:46 -07:00
26eb05ceeb Don't use Vecs in modmul, use fixed-size buffers 2018-06-09 17:32:15 -07:00
fee68cca18 Create a modular multiplication trait, and build a slow implementation using mod. 2018-06-09 17:12:01 -07:00
11c951d29b Fix division; we were computing n wrong. 2018-06-09 17:08:13 -07:00
72a5c4568e Division! (With tests) 2018-06-04 21:36:03 -07:00
eae2ea49a9 My multiplication loops were not, in fact, off by one. 2018-06-04 21:35:13 -07:00
69596c83ec Remove a debugging println!() that I missed in a previous commit. 2018-06-04 21:34:09 -07:00
bebb5b2861 Support for fast squaring. 2018-06-02 20:29:44 -07:00
a5f0179d77 Publish a decoder, to make testing a bit easier. 2018-06-02 20:28:53 -07:00
041f824caf Give credit where credit is due. 2018-06-02 20:28:33 -07:00
f088f0f9a5 A second crack at fixed-sized numbers. 2018-06-02 09:26:34 -07:00
667e32694e Start including both signed and unsigned numbers, and starting building in Signed traits.
The latter seems much harder (and wordier) than it should be.
2018-03-11 17:46:22 -07:00
8a8c85703a Start staging some extended math functionality, including primality bits. 2018-03-11 15:35:49 -07:00
0698272b2c Add bitsize/bytesize trait functions. 2018-03-11 15:34:18 -07:00
716a165007 Remove the divmod()-based tests. 2018-03-11 15:33:57 -07:00
ded93767ed Split the CryptoNum trait into pieces, in preparation for negative numbers. 2018-03-10 18:04:56 -08:00
17da7a43d6 Travis is fun? 2018-03-10 17:25:38 -08:00
4b90550225 Add support for Barrett reduction, which should be a faster way to do mods. 2018-03-10 17:20:33 -08:00
f3d4b102c0 Serialization for cryptonums. 2018-03-06 19:22:57 -08:00
f89e3e5ca4 Ignore the identity tests for now, because they take longer than anything else. 2018-03-06 19:00:16 -08:00
67a3ac61d3 Probably foolish forcing of inlining. 2018-03-06 18:45:43 -08:00
ab32c02bfc Ignore more files. 2018-03-06 18:41:37 -08:00
17c21fec70 Macro-ize these, and generate versions for all the RSA sizes. 2018-03-06 18:41:05 -08:00
a7fa5dd9f9 Finish shifting out primitives, and add division/modulo. 2018-03-05 18:25:20 -10:00
2cc8702f4d Start shifting stuff the actual math out into another file. 2018-03-01 12:27:15 -08:00
9fece39fe1 [BROKEN] Starting to work on division. 2018-02-28 18:09:01 -08:00
016f79a236 Add subtraction. 2018-02-28 11:10:49 -08:00
a6cd05052e Add multiplication. 2018-02-28 10:25:23 -08:00
093555b17d Switch to using 64-bit digits, adding a dependency on u128 support. 2018-02-28 10:25:14 -08:00
8746bf3e08 Addition! 2018-02-26 21:04:58 -08:00
3a5f4f2509 Add some shiftiness. 2018-02-25 20:33:24 -08:00
cdb0656f54 Forgot xor. How could I? 2018-02-25 16:51:17 -08:00
03db81d039 512-bit unsigned integers, with comparison and bit operations. 2018-02-25 16:47:15 -08:00
893dbfb725 Fix the name. 2018-02-25 16:46:56 -08:00
b832092605 More basic infrastructure. 2018-02-25 11:02:44 -08:00
7fae8036d4 A little more project context, as I get started. 2018-02-25 11:00:03 -08:00
Adam Wick
d2a2773111 Initial commit 2018-02-25 10:53:54 -08:00