constantine icon indicating copy to clipboard operation
constantine copied to clipboard

Constantine: modular, high-performance, zero-dependency cryptography stack for proof systems and blockchain protocols.

Results 110 constantine issues
Sort by recently updated
recently updated
newest added

The CMOV instruction that is used for conditional copy is likely optimal for 4~6 limbs. From Agner Fog tables ![image](https://user-images.githubusercontent.com/22738317/91089616-17410580-e654-11ea-8c21-9e9c3e6a33b1.png) https://www.agner.org/optimize/instruction_tables.pdf The throughput is 0.5 hence 2 independent CMOV can...

constant time :hourglass_flowing_sand:
performance :checkered_flag:

The GLV-SAC paper introduces an alternative scalar multiplication for a fixed base. For example signing is always done using the generator point as a fixed base - Efficient and Secure...

enhancement :shipit:
constant time :hourglass_flowing_sand:
performance :checkered_flag:

Currently the coverage of assembly backend introduced in #69 is inequal. Some of the CI VMs supports ADX and BMI2 and some do not. We need to properly test both...

correctness :passport_control:

Glossary: - We talk about scalar multiplication for additive groups G1 (over Fp) and G2 (over Fp2 thanks to a sextic twist) - We talk about exponentiation for multiplicative group...

variable time :alarm_clock: :warning:
performance :checkered_flag:

From Patrick Longa's PhD Thesis Appendix: ![image](https://user-images.githubusercontent.com/22738317/83940576-7f1a4980-a7e5-11ea-8158-fedc4f75bd6e.png) ---------------- Note: Jacobian coordinates do not have a complete exception-free addition formula, they require special casing adding infinity, the same number or its...

variable time :alarm_clock: :warning:
performance :checkered_flag:

It is often needed to compute scalar multiplication in parallel via ``` R

constant time :hourglass_flowing_sand:
performance :checkered_flag:

Computing 2P+Q may be useful for alternative scalar multiplications based on double-and-always-add. For example Joye's ladder: - https://tel.archives-ouvertes.fr/tel-00733004/document - https://www.iacr.org/archive/ches2007/47270135/47270135.pdf ![image](https://user-images.githubusercontent.com/22738317/83813004-ceb12600-a6bc-11ea-9e00-e58cd7d63a60.png) ![image](https://user-images.githubusercontent.com/22738317/83813100-0324e200-a6bd-11ea-8f24-08de2a2b48b4.png) Computation cost according to Joye, 2007 ![image](https://user-images.githubusercontent.com/22738317/83813169-28195500-a6bd-11ea-92b2-21dad3fce853.png) Papers...

variable time :alarm_clock: :warning:
performance :checkered_flag:

The library currently implements generic routine for odd field moduli. > This is motivated by the initial focus on pairing-friendly curves like BN (Barreto-Naerig) and BLS (Barreto-Lynn-Scott) as they are...

performance :checkered_flag:

Merkle tree hashing is a significant bottleneck in blockchains. In most (all?) blockchains and in particular Ethereum, efficient storage/retrieval/update as well as integrity guarantees of data is implemented through a...

performance :checkered_flag:

# Optimization of square roots Tonelli-Shanks, with pre-computed dlog tables Fixes #236 Notes about the approach : - https://ihagopian.com/posts/tonelli-shanks-with-precomputed-dlog-tables - https://hackmd.io/@jsign/bandersnatch-optimized-sqrt-notes Reference Implementation from Gottfried in `gnark` https://github.com/GottfriedHerold/Bandersnatch/blob/f665f90b64892b9c4c89cff3219e70456bb431e5/bandersnatch/fieldElements/field_element_square_root.go #### Currently...