Questions about this topic? Sign up to ask in the talk tab.

Difference between revisions of "List of cryptography functions"

From NetSec
Jump to: navigation, search
Line 18: Line 18:
 
|
 
|
 
|}
 
|}
 
  
 
{| {{table}}
 
{| {{table}}
Line 43: Line 42:
 
| Galois Counter Mode||GCM||Recommended||Yes||Yes||Yes||No||Counter mode plus authentication, very efficient.
 
| Galois Counter Mode||GCM||Recommended||Yes||Yes||Yes||No||Counter mode plus authentication, very efficient.
 
|-
 
|-
 +
|
 
|}
 
|}
 
  
 
{| {{table}}
 
{| {{table}}
Line 64: Line 63:
 
| Blowfish||64||32-448|||||Not ideal||||This is the primary mode of encryption used in IRC encryption plugins.
 
| Blowfish||64||32-448|||||Not ideal||||This is the primary mode of encryption used in IRC encryption plugins.
 
|-
 
|-
|  
+
| ChaCha20||||256||Yes||Yes||||
 +
|-
 +
| Salsa20||||256||Yes||Yes||||
 +
|-
 +
| RC4||||40-2048|||Yes||No||||
 +
|-
 +
|
 
|}
 
|}
  
 +
{| {{table}}
 +
|+ Asymmetric Encryption
 +
| align="center" style="background:#f0f0f0;"|'''Cipher'''
 +
| align="center" style="background:#f0f0f0;"|'''ECC?'''
 +
| align="center" style="background:#f0f0f0;"|'''Signing'''
 +
| align="center" style="background:#f0f0f0;"|'''Encryption'''
 +
| align="center" style="background:#f0f0f0;"|'''DH Key exchange'''
 +
| align="center" style="background:#f0f0f0;"|'''Should use?'''
 +
| align="center" style="background:#f0f0f0;"|'''Minimum key size'''
 +
| align="center" style="background:#f0f0f0;"|'''Recommended key size'''
 +
| align="center" style="background:#f0f0f0;"|'''Notes'''
 +
|-
 +
| RSA||No||Yes||Yes||Yes||Yes||2048||4096||
 +
|-
 +
| DSA||No||Yes||Yes||No||No||2048||4096||
 +
|-
 +
| ElGamal||No||Yes||Yes||No||Yes||2048||4096||
 +
|-
 +
| ECDSA||Yes||Yes||Yes||Yes||Yes||256||384||
 +
|-
 +
| ECDH||Yes||No||No||Yes||Yes||256||384||
 +
|-
 +
| Ed25519||Yes||Yes||No||Yes||Recommended||512||512||
 +
|-
 +
| Curve25519||Yes||No||No||Yes||Recommended||256||256||
 +
|-
 +
|
 +
|}
  
 
{| {{table}}
 
{| {{table}}
Line 84: Line 117:
 
| SHA-3 (Keccak)||224-512||No||Yes||Not widely implemented yet.
 
| SHA-3 (Keccak)||224-512||No||Yes||Not widely implemented yet.
 
|-
 
|-
|  
+
|
 +
|}
 +
 
 +
{| {{table}}
 +
|+ Key Derivation Functions (KDF)
 +
| align="center" style="background:#f0f0f0;"|'''Algorithm'''
 +
| align="center" style="background:#f0f0f0;"|'''Password?'''
 +
| align="center" style="background:#f0f0f0;"|'''Requires uniform random input?'''
 +
| align="center" style="background:#f0f0f0;"|'''Slow?'''
 +
| align="center" style="background:#f0f0f0;"|'''Notes'''
 +
| -
 +
| bcrypt||Yes||No||Yes||
 +
| -
 +
| scrypt||Yes||No||Yes||
 +
| -
 +
| PBKDF2||Yes||No||Yes||
 +
| -
 +
| HKDF||No||Yes||No||
 +
| -
 +
|
 +
|}
 +
 
 +
{| {{table}}
 +
|+ Message Authentication Codes (MAC)
 +
| align="center" style="background:#f0f0f0;"|'''Algorithm'''
 +
| align="center" style="background:#f0f0f0;"|'''Hash-based?'''
 +
| align="center" style="background:#f0f0f0;"|'''Block cipher based?'''
 +
| align="center" style="background:#f0f0f0;"|'''Notes'''
 +
|-
 +
| Poly1305 ||No||Yes||
 +
|-
 +
| HMAC ||Yes||Yes||
 +
|-
 +
| CBC-MAC ||No||Yes||
 +
|-
 +
| PMAC ||No||Yes||
 +
|-
 +
| CMAC ||No||Yes||
 +
|-
 +
|
 
|}
 
|}

Revision as of 20:05, 18 October 2015

Encryption Quick Reference
Name Value
Recommended public key algorithms Curve25519, Ed25519, ECDSA, RSA
Recommended symmetric ciphers Salsa20, ChaCha20, AES
Recommended minimum key size (symmetric) 128 bits
Preferred minimum key size (symmetric) 256 bits
Recommended minimum key size (RSA) 2048 bits
Preferred minimum key size (RSA) 4096 bits
Encryption Modes
Mode AKA Should use? Authenticated? Encryption parallelizable? Decryption parallelizable? Random read? Notes
Electronic Code Book ECB No No Yes Yes Yes Same plaintext yields same ciphertext.
Cipher Feedback CFB Yes No No Yes Yes
Output Feedback OFB Yes No No No No
Cipher Block Chaining CBC Yes No No Yes Yes
Counter CTR Yes No Yes Yes Yes
Galois Counter Mode GCM Recommended Yes Yes Yes No Counter mode plus authentication, very efficient.
Symmetric Ciphers
Cipher Block size (bits) Key size (bits) Stream? Should use? Estimated Time to Crack Notes
AES 128 128,192,256 Yes
DES 64 56 No In 2008 their COPACOBANA RIVYERA reduced the time to break DES to less than one day, using 128 Spartan-3 5000's.
3DES 64 168,112,56 No
Blowfish 64 32-448 Not ideal This is the primary mode of encryption used in IRC encryption plugins.
ChaCha20 256 Yes Yes
Salsa20 256 Yes Yes
RC4 40-2048 Yes No
Asymmetric Encryption
Cipher ECC? Signing Encryption DH Key exchange Should use? Minimum key size Recommended key size Notes
RSA No Yes Yes Yes Yes 2048 4096
DSA No Yes Yes No No 2048 4096
ElGamal No Yes Yes No Yes 2048 4096
ECDSA Yes Yes Yes Yes Yes 256 384
ECDH Yes No No Yes Yes 256 384
Ed25519 Yes Yes No Yes Recommended 512 512
Curve25519 Yes No No Yes Recommended 256 256
Hash functions
Hash Bits Broken? Should use? Notes
MD5 128 Yes No Collisions can be generated at will with desktop computational power.
SHA-1 160 Yes No Collision are expensive to generate, but a sufficiently motivated adversary can do it.
SHA-2 224-512 No Yes Pseudo-collisions generated with partial SHA-256, no full attacks.
SHA-3 (Keccak) 224-512 No Yes Not widely implemented yet.
Key Derivation Functions (KDF)
Algorithm Password? Requires uniform random input? Slow? Notes - bcrypt Yes No Yes - scrypt Yes No Yes - PBKDF2 Yes No Yes - HKDF No Yes No -
Message Authentication Codes (MAC)
Algorithm Hash-based? Block cipher based? Notes
Poly1305 No Yes
HMAC Yes Yes
CBC-MAC No Yes
PMAC No Yes
CMAC No Yes