Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 18 additions & 11 deletions crypto-algorithms-list-properties-description.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,26 +37,33 @@

## cryptoClass

* Description: cryptographic algorithms are categorized in classes. The classes are defined by the number of cryptographic keys that are used in conjunction with the algorithm.
* Cryptographic hash functions do not require keys for their basic operation.
* Symmetric-key algorithms transform data in a way that is fundamentally difficult to undo without knowledge of a secret key. The key is “symmetric” because the same key is used for a cryptographic operation and its inverse
* Asymmetric-key algorithms, commonly known as public-key algorithms, use two related keys (i.e., a key pair) to perform their functions: a public key and a private key. The public key may be known by anyone; the private key should be under the sole control of the entity that “owns” the key pair. Even though the public and private keys of a key pair are related, knowledge of the public key cannot be used to determine the private key.
* Description: cryptographic algorithms are categorized in classes. The classes are defined by the number of cryptographic keys that are used in conjunction with the algorithm, their functional nature, or their resistance to specific computational threats.
* Cryptographic-Hash-Function: cryptographic hash functions do not require keys for their basic operation.
* Symmetric-Key-Algorithm: symmetric-key algorithms transform data in a way that is fundamentally difficult to undo without knowledge of a secret key. The key is “symmetric” because the same key is used for a cryptographic operation and its inverse.
* Asymmetric-Key-Algorithm: asymmetric-key algorithms, commonly known as public-key algorithms, use two related keys (i.e., a key pair) to perform their functions: a public key and a private key. The public key may be known by anyone; the private key should be under the sole control of the entity that “owns” the key pair. Even though the public and private keys of a key pair are related, knowledge of the public key cannot be used to determine the private key.
* Message-Authentication-Code: these algorithms provide data origin authentication and integrity protection by requiring a shared secret key between the sender and receiver to generate a tag. Unlike simple hash functions, they ensure that a message cannot be tampered with by an attacker who does not possess the secret key.
* Key-Derivation-Function: these functions derive one or more secret keys from a master secret, password, or other entropy source through a process of stretching or compression. They are essential for transforming human-readable passwords or raw keying material into secure, fixed-length keys suitable for other cryptographic operations.
* Random-Number-Generator: these mechanisms produce sequences of bits or numbers that lack any predictable pattern and are used to ensure the unpredictability of cryptographic keys and nonce. They include both hardware-based true random number generators and deterministic algorithms that expand a small entropy seed into a larger sequence.
* Cardinality: [1]
* Values: "Cryptographic-Hash-Function" , "Symetric-Key-Algorithm" or "Asymmetric-Key-Algorithm"
* Values: "Cryptographic-Hash-Function", "Symmetric-Key-Algorithm", "Asymmetric-Key-Algorithm", "Message-Authentication-Code", "Key-Derivation-Function", or "Random-Number-Generator"

### cryptoSubClass

* Description: each class of algorithms is categorised in subclasses. These subclasses are based/inspired on:
* NIST Special Publication (SP) [800-57](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-57pt1r4.pdf) Part 1, Rev. 4, January
* Input from the SPDX Cryptographic Algorithms List Group members
* Description: each class of algorithms is categorised in subclasses.
* Cardinality: [0..1]
* Values:
* cryptoClass "Cryptographic-Hash-Function"
* cryptoSubClass values: "Hash-Function" , "Password-Hashing" , "Message-Authentication-Code" , "Checksum"
* cryptoSubClass values: "Hash-Function" , "Password-Hashing" or "Checksum"
* cryptoClass "Symetric-Key-Algorithm"
* cryptoSubClass values: "Block-Cipher" , "Stream-Cipher" , "Encoding" , "Random-Number-Generator" , "Key-Derivation"
* cryptoSubClass values: "Block-Cipher" , "Stream-Cipher" or "Encoding"
* cryptoClass "Asymmetric-Key-Algorithm"
* cryptoSubClass values: "Public-Key-Encryption" , "Public-Key-Cipher" , "Elliptic-Curve-Cryptography" , "Digital-Signature" , "Post-Quantum-Cryptography" , "Protocol", "Hybrid-Cipher" or "Key-Exchange-Mechanism"
* cryptoSubClass values: "Public-Key-Encryption" , "Public-Key-Cipher" , "Elliptic-Curve-Cryptography" , "Digital-Signature" , "Protocol", "Hybrid-Cipher" or "Key-Exchange-Mechanism"
* cryptoClass "Message-Authentication-Code"
* cryptoSubClass values:
* cryptoClass "Key-Derivation-Function"
* cryptoSubClass values:
* cryptoClass "Random-Number-Generator"
* cryptoSubClass values:

Notes:
1. the subclasses has been added to the cryptoClass property, separated by a "/" character from the class. This specific way to structure the subclasses is WIP.
Expand Down
2 changes: 1 addition & 1 deletion yaml/CMAC.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
id: CMAC
oid: 1.2.840.113549.1.9.16.3.25
name: Cipher-based Message Authentication Code
cryptoClass: Cryptographic-Hash-Function/Message-Authentication-Code
cryptoClass: Message-Authentication-Code
commonkeySize: '128'
6 changes: 3 additions & 3 deletions yaml/argon2.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: CC0-1.0
id: 'argon2'
id: argon2
oid:
name: 'Argon2'
cryptoClass: 'Key-Derivation-Function'
name: Argon2
cryptoClass: Key-Derivation-Function
commonkeySize: '256'
specifiedkeySize: {min: '128', max: '512'}
2 changes: 1 addition & 1 deletion yaml/fortuna.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# SPDX-License-Identifier: CC0-1.0
id: fortuna
name: Fortuna Random Number Generator
cryptoClass: Symmetric-Key-Algorithm/Random-Number-Generator
cryptoClass: Random-Number-Generator
commonkeySize: '64'
2 changes: 1 addition & 1 deletion yaml/isaac.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# SPDX-License-Identifier: CC0-1.0
id: isaac
name: ISAAC Random Number Generator
cryptoClass: Symmetric-Key-Algorithm/Random-Number-Generator
cryptoClass: Random-Number-Generator
commonkeySize: '256'
2 changes: 1 addition & 1 deletion yaml/pbe.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# SPDX-License-Identifier: CC0-1.0
id: pbe
name: Password-Based Encryption
cryptoClass: Symmetric-Key-Algorithm/Key-Derivation
cryptoClass: Key-Derivation-Function
commonkeySize: '128'
2 changes: 1 addition & 1 deletion yaml/pbes1.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# SPDX-License-Identifier: CC0-1.0
id: pbes1
name: Password-Based Encryption Scheme 1
cryptoClass: Symmetric-Key-Algorithm/Key-Derivation
cryptoClass: Key-Derivation-Function
commonkeySize: '128'
2 changes: 1 addition & 1 deletion yaml/pbes2.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# SPDX-License-Identifier: CC0-1.0
id: pbes2
name: Password-Based Encryption Scheme 2
cryptoClass: Symmetric-Key-Algorithm/Key-Derivation
cryptoClass: Key-Derivation-Function
commonkeySize: '256'
2 changes: 1 addition & 1 deletion yaml/pbkdf1.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# SPDX-License-Identifier: CC0-1.0
id: pbkdf1
name: Password-Based Key Derivation Function 1
cryptoClass: Cryptographic-Hash-Function/Key-Derivation
cryptoClass: Key-Derivation-Function
commonkeySize: '128'
2 changes: 1 addition & 1 deletion yaml/pbkdf2.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
id: pbkdf2
oid: 1.2.840.113549.1.5.12
name: Password-Based Key Derivation Function 2
cryptoClass: Cryptographic-Hash-Function/Key-Derivation
cryptoClass: Key-Derivation-Function
commonkeySize: '128'
2 changes: 1 addition & 1 deletion yaml/yarrow.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# SPDX-License-Identifier: CC0-1.0
id: yarrow
name: Yarrow Random Number Generator
cryptoClass: Symmetric-Key-Algorithm/Random-Number-Generator
cryptoClass: Random-Number-Generator
commonkeySize: '160'