[cryptolib] Algorithms for considered for hardening review
Nobody has claimed this yet.
- Dominant language
- SystemVerilog
- Stars
- 3.6k
- Forks
- 1.1k
- Avg merge
- 2d 22h
- Merged PRs (30d)
- 141
Description
## Hardened implementations
* **RSA** encrypt/decrypt with the following padding schemes: OAEP, PKCS#1 v1.5
* **RSA** signature with the following padding schemes: PSS, PKCS#1 v1.5.
* **ECC** keygen suitable for ECDSA and ECDH. Supported curves: NIST P-256, NIST P-384 and X25519.
* **ECDSA** sign/verify operations. Supported curves: NIST P-256 and NIST P-384
* **ECDH** key exchange functionality as described in the security target. Supported curves: NIST P-256, NIST P-384 and X25519.
* **EdDSA** sign/verify operations. Supported curve: Ed25519.
* **AES** encrypt/decrypt/MAC operations. Modes of operation: CBC, ECB, GCM, and CTR. Key sizes: 128, 192 and 256 bits
* **SHA3**, **cSHAKE**, **KMAC** Modes of operation: Hash, extendable-hash, KMAC. Key sizes: as supported by hardware.
## Hardening level to be discussed
The level of hardening for the following algorithms needs to be discussed. Otherwise the algorithms are also expected to be part of the release.
* **SHA2** Modes of operation: SHA2-256, SHA2-384, SHA2-512.
* **HMAC** Key sizes: 256, 384.
## Other software implementations
The following algorithms are not supported by the OpenTitan community, but are presented for consideration as a cryptolib extension to fulfill mobile integration requirements (i.e. Android Strongbox). Hardening guarantees will be defined as part of the development process if the algorithms proceed to the implementation stage.
* **SHA1** Hash and as building block in HMAC.
* **TDES** encrypt/decrypt operations. Padding: PKCS#7, CBC, ECB. Key sizes: 192, 168.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the listed hardened, hardening-level, and proposed software implementations, including RSA, ECC, ECDSA, ECDH, EdDSA, AES, SHA3, cSHAKE, KMAC, SHA2, HMAC, SHA1, and TDES. The issue does not name files, tests, or entry points; progress requires deciding the hardening level and whether the proposed algorithms should proceed to implementation.
Written by the indexing model from the issue text.
Assessment
- Domain
- cryptography, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100