Encryption

SSH Key

ssh-keygen -t ed25519 -C "[email protected]"

Algorithms

Algorithm NameTypeSecurity LevelUse Cases
AESSymmetricHighly SecureTLS, File Encryption, VPNs
ChaCha20SymmetricHighly SecureTLS, Mobile Encryption
DESSymmetricWeak (Deprecated)Legacy Systems
3DESSymmetricModerateLegacy Banking Systems
BlowfishSymmetricModerateFile Encryption, VPNs
RSAAsymmetricSecure (With Large Keys)Digital Signatures, TLS, SSH
Curve25519AsymmetricHighly SecureTLS, Cryptographic Wallets
NISTAsymmetricHighly SecureTLS, Cryptographic Wallets
Diffie-HellmanAsymmetricSecureKey Exchange, VPNs
DSAAsymmetricSecureDigital Signatures
KyberAsymmetricPost-Quantum SecureKey Exchange, TLS
DilithiumAsymmetricPost-Quantum SecureDigital Signatures
FalconAsymmetricPost-Quantum SecureDigital Signatures
BIKEAsymmetricPost-Quantum SecureKey Exchange
NTRUAsymmetricPost-Quantum SecurePublic Key Encryption
SPHINCS+AsymmetricPost-Quantum SecureDigital Signatures

Curve25519

Crate: ring Type: Asymmetric Security: Highly Secure Use Cases: TLS, Cryptographic Wallets Key Exchange Method: Public/Private Key Computational Complexity: High

Curve25519 is a high-speed elliptic curve designed for use in asymmetric cryptography and key agreement.

Key features:

NIST

Crate: ring Type: Asymmetric Security: Highly Secure Use Cases: TLS, Cryptographic Wallets Key Exchange Method: Public/Private Key Computational Complexity: High

NIST elliptic curves are standardized curves commonly used in cryptographic protocols. In Rust, you can use them via the ring crate:

Key features:

NTRU

Crate: pgcrypto-ntru

NTRU (N-th degree TRUncated polynomial ring) is a lattice-based cryptosystem.

Key features:

AES - Advanced Encryption Standard (Symmetric)

AES is a widely-used symmetric block cipher providing fast, secure encryption. In Rust, you can use it via the aes-gcm crate for authenticated encryption:

Key features:

ChaCha20 (Symmetric)

ChaCha20 is a high-performance stream cipher that’s often paired with Poly1305 for authenticated encryption. It’s designed to be faster than AES on platforms without dedicated hardware acceleration. In Rust, you can use it via the chacha20poly1305 crate:

Key features:

Terminology

Asymmetric

Asymmetric algorithms use a public key and a private key. They are used when you want to publicly share an encryption key and keep the decryption key private.

Symmetric

Symmetric algorithms have one key that encrypts and decrypts the data.

Encryption by Gavin Daly is licensed under CC BY-NC-SA 4.0 Creative Commons Icon Attribution Icon Non-Commercial Icon Share-Alike Icon

s