constantine
Practical-Cryptography-for-Developers-Book
constantine | Practical-Cryptography-for-Developers-Book | |
---|---|---|
14 | 3 | |
254 | 3,267 | |
- | - | |
8.4 | 2.3 | |
6 days ago | 28 days ago | |
Nim | CSS | |
GNU General Public License v3.0 or later | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
constantine
-
A beginner's guide to constant-time cryptography (2017)
Percival cache attacks on Hyperthreading.
I go over some examples here: https://github.com/mratsim/constantine/issues/358#issuecomme...
-
D Programming Language
`when myCondition():` instead of `if myCondition:` is done at compile-time.
Alternatively you can use a `static:` code block to force compile time evaluation. Or tag a function {.compileTime.} or tag function inputs with `static` modifier.
It is possible to create a compiler or an assembler running fully in Nim macros as well:
- https://github.com/mratsim/constantine/blob/master/constanti... (all that file runs at compile-time)
You can also implement Continuation-Passing-Style transformation at compile-time:
- Fast constant-time pairing or elliptic curve based cryptography (Nim/C)
-
Matrix Multiplication Using Only Addition
At a glance this sounds like a re-discovery of addition chains and using them to construct Pippenger algorithm. But applied to matrices instead of group elements.
See: https://github.com/mratsim/constantine/issues/37
-
Elliptic Curve Cryptography Explained
I usually explain extension fields as similar to complex numbers with regards to reals.
I've collected a lot of extension fields references while working on my own implementation: https://github.com/mratsim/constantine/tree/master/constanti...
The best likely being
- Arithmetic of Finite Fields
- Constant-Time Big Numbers: An Introduction
-
just a question that has been lingering on my mind
Regarding your first question, you don't need to attack the hard-drive, for non constant-time crypto you can read power consumption or electromagnetic traces when the secret key is used to reconstruct it: - https://github.com/mratsim/constantine/wiki/Constant-time-arithmetics
-
Const [pdf]
Unfortunate name collision with my constant-time pairing-based cryptography library :/.
https://github.com/mratsim/constantine
-
DSL for Zero Knowledge Proofs
KZG for sure yes, I actually already started implementing them: https://github.com/mratsim/constantine/tree/c2d716b/research/kzg_poly_commit
-
How is Elliptic Curve Cryptography Encryption Fast?
I have a small write-up on various details of elliptic curve crypto implementation here: https://github.com/mratsim/constantine/tree/master/constantine/elliptic
Practical-Cryptography-for-Developers-Book
- GitHub - Practical Cryptography for Developers Book
-
Svetlin Nakov a.k.a. Satoshi Nakamoto - The Bitcoin Creator Revealed
He has written numerous free books in the fields of blockchain, programming languages, cybersecurity, and computational linguistics, and Svetlin Nakov [4] (alias Satoshi Nakamoto) was Awarded a Doctor of Philosophy(Ph.D) Degree in Informatics of Bulgarian Academy of Sciences (2010)/B.A.S. official website[5] / More info about B.A.S.[2]).He (Nakamoto - Svetlin Nakov) is about to finish his work in Cryptography For Developers[7], which he publishes in stages in Guthub[8]...Practical Cryptography for Developers is a modern practical open source (github) book about cryptography for developers with code examples, covering core concepts like:hashes[9] (SHA-3 [10] and BLAKE)**2** [19]#BLAKE2), MAC codes (like Hash-based message authentication code/HMAC/ and Galois Message Authentication Code (GMAC)[11], key derivation functions (like scrypt**,** Argon2), Key-agreement protocol s (like Diffie–Hellman key exchange (DHKE), Elliptic curve Diffie–Hellman, symmetric ciphers (like Advanced Encryption Standard (AES) and Salsa20, cipher block modes, authenticated encryption, Authenticated encryption (AEAD), Cipher suite (AES-GCM), ChaCha20-Poly1305 [12], Binary relation, asymetric ciphers[13] and public-key cryptosystems [RSA), Elliptic curve cryptography (ECC), Integrated Encryption Scheme (ECIES), I-SECG elliptic curve sect256k1, Curve25519), digital signatures (ECDSA [14] and EdDSA [15]), secure random numbers (PRNG [16],**CSRNG quantum-safe (quantum resistant) cryptography DApps,** Solidity**,** InterPlanetary File System (IPFS) by Svetlin Nakov and SoftUni Team, 2018, ISBN 978-619-00-0802-6.
-
Welcome – Practical Cryptography for Developers
https://github.com/nakov/Practical-Cryptography-for-Develope...
Similarly, the Java section essentially mentions a single, obscure library besides the JCE and Bouncy Castle:
What are some alternatives?
blst - Multilingual BLS12-381 signature library
swift-crypto - Open-source implementation of a substantial portion of the API of Apple CryptoKit suitable for use on Linux platforms.
nim-stint - Stack-based arbitrary-precision integers - Fast and portable with natural syntax for resource-restricted devices.
dvdisaster - A tool providing additional ECC protection for optical media (unofficial version)
secp256k1 - Optimized C library for EC operations on curve secp256k1
python-ecdsa - pure-python ECDSA signature/verification and ECDH key agreement
noir - Noir is a domain specific language for zero knowledge proofs
python-istihza - İstihza Python Belgeleri, en kapsamlı Türkçe Python belgelendirmesi
mbedTLS - An open source, portable, easy to use, readable and flexible TLS library, and reference implementation of the PSA Cryptography API. Releases are on a varying cadence, typically around 3 - 6 months between releases.
introduction-to-algorithms - 📚 Introduction to Algorithms [UnavailableForLegalReasons - Repository access blocked]
ecc - elliptic-curve cryptography
bulkscanner - BulkScanner is a web based tool designed and developed for a security/SOC analysts to analyze observables in bulk such as IP addresses, hashes, urls, and domains. BulkScanner is based on open-source intelligence analyzers such as VirusTotal, AbuseIPDB, X-Force Exchange(IBM), metadefender etc.