Commit Graph

204 Commits

Author SHA1 Message Date
Madars Virza 2d434df8a4 Refactor cryptographic encodings and multiexponentiation. 2015-03-05 15:47:21 -05:00
Madars Virza b4a8928c40 Factor out R1CS to QAP reduction. 2015-03-05 15:47:21 -05:00
Madars Virza 83682afa8a Factor out evaluation domains. 2015-03-05 15:47:21 -05:00
Madars Virza 79af373a1a Move debug printing infrastructure from R1CS to linear combination; unify repeated linear terms in linear combinations. 2015-03-05 15:47:21 -05:00
Madars Virza dd5082e064 Factor out abstract variable from R1CS. 2015-03-05 15:47:21 -05:00
Madars Virza dd2711f9aa Better comments about R1CS and updated R1CS example generators. 2015-03-05 15:47:21 -05:00
Madars Virza 69f9e29a1a Factor out serialization routines. 2015-03-05 15:47:21 -05:00
Eran Tromer faf1ebbe96 Merge pull request #6 from jkroll/clarify-system-randomness
Make the discussion of system sources of randomness clearer.
2014-10-06 23:04:32 +03:00
Joshua Kroll 4b983e3c38 Update verbiage per Eran's suggestions. 2014-10-06 15:10:41 -04:00
Joshua Kroll 62a2ae044c Make the discussion of system sources of randomness clearer.
On most modern linux systems, there's essentially no security
difference between /dev/random and /dev/urandom, meaning that the
blocking property of /dev/random is actually harmful in many
cases. This advice is not necessarily true if you care about
e.g. embedded systems where you're going to generate crypto keys
immediately after boot (or, in some cases, even a long time after
boot).

In general, the best advice is to use external high-quality randomness
for keys (or to use urandom on a system where you believe it has been
keyed appropriately). See
http://sockpuppet.org/blog/2014/02/25/safely-generate-random-numbers/
for a careful explanation. Also know that there's a lot of active work
to improve the behavior and cluefulness of both /dev/random and
/dev/urandom. I don't know enough about the state of that to summarize
it, though.
2014-09-25 16:27:27 -04:00
Madars Virza 6dae0ee356 Emulate "install -D" behavior as it is not available on OS X. 2014-08-29 19:29:48 -04:00
Madars Virza 75da14a993 Reference LDLIBS in .so generation. 2014-08-11 13:43:18 -04:00
Madars Virza 18bf239ad7 Tighter constraint system for packing. 2014-08-09 21:16:40 -04:00
Madars Virza 98ddaf4e21 Factor out wNAF generation. 2014-08-09 21:16:14 -04:00
Madars Virza 1862f7d2fc Add OS X as a tested architecture. 2014-08-07 11:58:45 -04:00
Madars Virza 2329ea87be Makefile tweaks: add missing -lpthread for GTest and split LDLIBS in LDFLAGS/LDLIBS 2014-08-07 11:57:44 -04:00
Madars Virza 9ea0b4eddc Move from clock_gettime to more portable std::chrono. 2014-08-07 11:56:18 -04:00
Madars Virza 49ddda2510 Rename MINDEPS to more accurate NO_PROCPS and add NO_DOCS make option. 2014-08-07 11:55:13 -04:00
Madars Virza 7876e71620 Remove dependency on OpenMP when multicore mode is not enabled. 2014-08-07 11:41:46 -04:00
Madars Virza f4d9dcf579 Ensure that all necessary object files are used when building the .so/.a 2014-08-06 20:12:31 -04:00
Madars Virza d34b477ed9 Update README to document more tested architectures. 2014-07-22 15:08:37 +03:00
Madars Virza 91f7c72428 Allow even more minimalistic builds:
introduce NO_GTEST=1 to prevent linking against libgtest (see README); and
      only require lzm (ate-pairing) for bn128 curve choice.
2014-07-22 14:22:27 +03:00
Madars Virza 8c1df67068 g++-4.7 compatibility fixes 2014-07-22 14:08:15 +03:00
Madars Virza 1d00195109 Merge pull request #5 from Erkan-Yilmaz/patch-1
typo
2014-07-20 22:27:51 +03:00
MITSUNARI Shigeo e79edd80a0 rename namespace 2014-07-20 22:07:32 +03:00
Erkan Yilmaz 67d69a3407 typo 2014-07-20 20:50:30 +02:00
Madars Virza d2238de313 Update license and README to account for merging of our pairing precomputation code in ate-pairing upstream. 2014-07-17 11:13:40 +03:00
Madars Virza 7bf95fe074 Merge pull request #4 from herumi/move_impl_to_pairing
Move some functions to ate-pairing library
2014-07-17 10:30:09 +03:00
MITSUNARI Shigeo bd2bdd86a8 use experimental::millerLoop2 2014-07-16 21:44:16 +09:00
MITSUNARI Shigeo 742817331c use bn::experimental api 2014-07-16 17:24:38 +09:00
MITSUNARI Shigeo 05a1d03a67 use point{Add/Dbl}LineEvalWithoutP 2014-07-16 16:32:53 +09:00
Madars Virza cf796654c1 Update the list of contributors. 2014-07-15 13:13:13 +03:00
Madars Virza 3017ed85a0 Update LICENSE and README to reflect the fact that ate-pairing has incorporated our patch. 2014-07-15 12:56:22 +03:00
Madars Virza 6def288c30 Merge pull request #3 from herumi/xbyak_support_snark
ate-pairing patch has been graciously merged by the upstream; this commit accounts for this in our build infrastructure
2014-07-15 11:05:20 +03:00
MITSUNARI Shigeo 9f490c351a support_snark branch is merged into master 2014-07-15 06:49:43 +09:00
MITSUNARI Shigeo 4ea45a0fee xbyak with -DBN_SUPPORT_SNARK merged the patch 2014-07-15 06:46:31 +09:00
Eran Tromer 525922fa43 README.md tweaks 2014-07-14 22:47:26 +03:00
Madars Virza 50b6a30249 Provide a "make install" target. 2014-07-14 16:51:44 +03:00
Madars Virza d2bb57180c add gadgetlib1 gadget base class 2014-07-14 11:44:23 +03:00
Madars Virza 7a33a748db QAP documentation updates. 2014-07-14 11:11:56 +03:00
Madars Virza f65f0d05ae fast_add_special: support for faster addition formulas when one of the
points is of special form. Improves performance for ppzkSNARK prover
when witness is mostly 0/1 valued at slight pre-processing cost in the
ppzkSNARK key generator.
2014-07-14 11:11:56 +03:00
Madars Virza 7b2de53c85 Inline point equality check in G1/G2 operator+ so temporary results are reused. 2014-07-14 11:11:55 +03:00
Madars Virza b7a2a1355d Abstract away double-and-add pattern in exponentiations. 2014-07-14 11:11:55 +03:00
Madars Virza 21cf8f0c8c Update gadgetlib2 documentation. 2014-07-14 11:11:55 +03:00
Madars Virza 42e1678dc4 Update gadgetlib1 to support linear combinations as first-class
objects and add functionality to report constraints that would benefit
from linear combination inlining.
2014-07-14 11:11:55 +03:00
Madars Virza 63b895cf49 Rename profile_r1cs_ppzksnark to demo_r1cs_ppzksnark and do additional directory re-structuring. 2014-07-14 11:11:55 +03:00
Madars Virza 71883bc168 Update authorship information. 2014-07-14 11:11:55 +03:00
Eran Tromer 962cb33d6f doxygen.conf: minor typo 2014-07-13 17:02:20 +03:00
Eran Tromer 2ad444964b Add "make lib" and tell about it in README 2014-07-13 16:57:00 +03:00
Madars Virza 0f5bc4a8f7 Remove superfluous dependency 2014-07-10 17:36:23 +03:00