Primefactor Cryptography R&D Lab
Primefactor, a Cryptography Research and Development Lab.
Deep dives into Cryptography and Privacy.
Primefactor, a Cryptography Research and Development Lab.
An implementation of the ChaCha20-Poly1305 and XChaCha20-Poly1305 Authenticated Encryption with Associated Data algorithms.
Poly1305 is a software-friendly universal hash family that can be used to generate one-time message authentication codes.
ChaCha20 is a software-friendly stream cipher based on ARX semantics that allows for the encryption and decryption of arbitrary data.
Proxy Re-Encryption allows an untrusted third party to modify a ciphertext that was encrypted under key A to be decryptable with a different key B without learning anything about the plaintext or the private keys involved.
A Stealth Address is an address that can be derived by any third party but only controlled by the owner of the linked private key.
An Adaptor Signature allows for the creation of a partial signature that can be turned into a full signature by applying a secret value which itself is revealed once the full signature is publicly shared.
Lagrange Interpolation is used to reconstruct any degree n polynomial using at least n + 1 of its evaluations.
An ECDSA Signature can be modified to create an adaptor signature that's only valid when a secret value is incorporated which itself is revealed when the adapted signature is publicly shared.
2P-ECDSA is a protocol that allows two parties to jointly create digital signatures over messages via a shared private key that neither party has full access to or control over.
ECDSA is used to create digital signatures over messages which can be non-interactively verified.
A Commitment Scheme is a mechanism to ensure that a value that was committed to can't be changed after the fact.
A Commitment Scheme is used when one wants to guarantee that a value that was chosen can't be changed afterwards.
The Oblivious Transfer Protocol allows a sender to transmit one of various messages to a receiver without the receiver learning which message was sent.
Blind Signatures allow for a message to be masked such that it can be signed by a third party without it learning what gets signed.
BLS Signatures can be aggregated which results in faster and computationally cheaper verifications of such a batch of signatures.
BLS Signatures use Elliptic Curve Pairings to create very small, aggregatable digital signatures that can also be used as a building block in Zero-Knowledge Proof constructions.
An Elliptic Curve Pairing is a function that maps two Elliptic Curve Points to an element of another group like a finite field.
Shamir's Secret Sharing allows for a secret to be shared among multiple protocol participants out of which a threshold have to collaborate to reconstruct it.
Ring Signatures allow for a signer to hide a valid signature among a collection of other "mock signatures" that were produced by "co-signers" such that it's impossible to determine who produced the valid signature.
The Chaum-Pedersen Protocol allows a prover to interactively prove to a verifier that they know a secret value without revealing it.
A Schnorr Signature can be modified to create an adaptor signature that only verifies when a secret value is applied which itself is revealed once the adapted signature is publicly shared.
The Schnorr Signature Protocol can be setup such that the secret key is shared among a group of participants so that all need to collaborate to produce a valid signature.
The Schnorr Signature Protocol allows a prover to non-interactively prove to a verifier that they know a secret value without revealing it.
The Schnorr Identification Protocol allows a prover to interactively prove to a verifier that they know a secret value without revealing it.
ElGamal Encryption is an asymmetric cryptosystem that allows for the exchange of encrypted messages over an insecure channel.
Entropy is a way to quantify how much uncertainty a probability distribution exhibits.
With Computational Security we analyze how likely it is that a cryptographic construction will be broken in the real world.
With Information-Theoretic Security we analyze if a cryptographic construction is theoretically impossible to break.
The One-Time Pad is a symmetric cipher that when used properly can be proven to be unbreakable.
A security notion is a standardized way to convey security guarantees of cryptographic constructions.
Probability is an important topic in Cryptography as it allows for the expression and calculation of likelihoods.
Given its invertibility and perfect balance, XOR is used in a lot of cryptographic constructions.
To ensure strong Confusion and Diffusion properties, ciphers utilize Substitutions and Permutations.
Confusion and Diffusion are two properties that should be incorporated into ciphers to make them secure against statistical attacks and other methods of Cryptanalysis.
Randomness is one of the core building blocks in Cryptography which is usually derived via a Random Number Generator.
Elliptic Curve Diffie-Hellman is used to derive a shared secret over an insecure channel.
MACs are used to ensure that a message originated from the correct sender and hasn't been tampered with.
Hash Functions are used to map arbitrary-length data to fixed-size values in a collision-resistant- and non-reversible way.
This is an introductory blog post for everyone interested in modern Cryptography.
Learn how to implement LP-Tokens in Cairo.
Learn how to implement LP-Tokens in Solidity.
Learn what LP-Tokens used in DeFi Protocols are and how they work.
Learn how you to implement percentage calculations in Solidity.
A curated list of resources useful when studying Cryptography and its applications.