What are the core crypto algorithms?

What are the core crypto algorithms?

Zero-Knowledge Proofs (ZKPs)

What: Algorithms that generate proofs that something happened. Can take minutes to hours. Can leverage GPUs for parallelizable arithmetic, FPGAs for custom finite field operations.

Algorithms: libsnark, Bellman, Halo2

Homomorphic Encryption

What: Algorithms that can perform computations on encrypted data without having to decrypt the data. Can be accelerated with FPGAs for bootstrapping acceleration and TPUs for tensor operations. (examples)

Algorithms: SEAL, HElib, PALISADE, OpenFHE

Multi-Party Computation Protocols (MPC)

What: Algorithms that allow multiple computers to jointly compute a shared output without revealing their respective inputs to each other. Simple examples include joint auctions, bids, secure voting, privacy preserving data analysis across hospitals. There is high latency due to communication overhead, and can be improved via FPGAs for fixed function operations and GPUs for batch processing.

Algorithms: SPDZ, SCALE-MAMBA

Blockchain Transaction Validation

What: Algorithms that allow computers to write transactions to a single ledger-like, decentralized database.

Algorithms: Bitcoin Core, Ethereum, Solana

Cryptographic Hash Functions

What: Algorithms that map inputs to a fixed-size output using deterministic, irreversible, and collision-resistant algorithms.

Algorithms: OpenSSL, BLAKE3

Digital Signature

What: Algorithms that verify the authenticity of the source of data and the integrity of the data. They ensure the message came from the claimed sender and was not altered. It is used in blockchain transactions, code signing, SSL/TLS, document verification, and lots of other use cases requiring source verification. Batch verification is a bottleneck, so you can use GPUs for that, and FPGAs for fixed-function signature schemes.

Algorithms: ECDSA, RSA-PSS, ED25519, BLS, SPHINCS+

Key Exchange Protocols

What: Algorithms that securely establish a shared secret between two parties over an untrusted network. They resist man in the middle attacks and will soon be required to resist brute force quantum attacks. To make these more efficient, we can offload the modular arithmetic to GPU/FPGA, can move the lattice ops on Kyber to TPUs or custom ASICs (probably too small of a market to start now even from $0, but not in 3-5 years), and batch X25519 key exchange on GPUs. There might actually be use cases for this in data centers.

Algorithms: OpenSSL, ECDH, X25519, liboqs, Noise Protocol

Privacy-Preserving ML

What: Algorithms that train on encrypted data without exposing raw inputs. Techniques include homomorphic encryption, secure enclaves (TEE), federated learning, MPC, and differential privacy.

Algorithms: TF Encrypted (Tensorflow), PySyft, CrypTen (PyTorch), FATE (Python), TenSEAL, HETransformer

Secure Multi-Party Data Aggregation

What: Algorithms that are a subset of MPCs. They are basically the same thing but super narrow. To put it in an analogy, MPC is a Turing-complete private computer, and SMDA is a calculator that only does secure sums.

Algorithms: Prio, CryptFlow, FRESCO, TF Encrypted, PySyft

Oblivious RAM (ORAM) Schemes

What: Algorithms that hide memory access patterns from an untrusted storage provider. ORAM randomizes access to memory so each access looks statistically independent. Prevents RAM pattern access leakage, like which medical file is accessed the most.

Algorithms: Oblix, Obliv-C, ZeroTrace, Floram