KORTHEXDocumentation

Docs / FUNDAMENTALS

FUNDAMENTALS

Baseline Registry

Written and maintained by Hendrik Schneider · Last reviewed · How we check this

The Baseline Registry is the central crypto-classification truth source. It holds the canonical rule for every algorithm Korthex knows about - currently roughly 11 500 rules across 14 categories - and tells every other engine: "is this algorithm safe to use, and if not, what should it be replaced with?" When a finding shows up flagged "high severity, replace with X by 2030", that verdict is consistent across the report, the dashboard, the SBOM, the migration plan, and the policy gate - because every engine reads the same table .

The Classification Ladder

StatusWhat it means
RecommendedSafe to use today and through the PQC transition. Default choice for new code.
AcceptableAllowed but not preferred. Often acceptable above a key-size threshold and deprecated below it.
DeprecatedStill functional but on the way out. Plan a migration before the published deadline.
DisallowedBroken or so weak that any use is a finding. Migration is urgent.
Not-cryptoClassified explicitly so it never raises a finding (e.g. Base64, hex, PEM encoding).
UnknownAlgorithm isn't in the registry. Treated as fail-safe: never marked approved, raises a low-severity "unknown algorithm" finding so it can be reviewed.

Where the Common Algorithms Sit

Hashes Symmetric Ciphers Asymmetric / Signatures Password Hashing Transport / Protocols The full registry is browsable in the Dashboard under Catalog → Algorithms , which shows status, min-key-bits, recommended replacement, PQC note, and the upstream standard reference. There is no CLI equivalent.

AlgorithmStatusNotes
SHA-256 / SHA-384 / SHA-512RecommendedWorkhorses. Use any.
SHA3-256 / SHA3-512RecommendedEquivalent to SHA-2 in strength; structurally different (sponge construction).
BLAKE2 / BLAKE3RecommendedFaster than SHA-2 in software; widely adopted.
SHA-224AcceptableTruncated SHA-256. Generally avoid for new designs.
SHA-1DeprecatedBroken for collision resistance. OK only inside HMAC. Deadline 2025-12-31.
MD5 / MD4 / MD2 / MD6DisallowedCryptographically broken. Any use is a finding.
AlgorithmStatusNotes
AES-256-GCM / AES-256-GCM-SIVRecommendedDefault modern AEAD.
ChaCha20-Poly1305 / XChaCha20-Poly1305RecommendedFast in software; equivalent strength to AES-256-GCM.
AES-128-GCMAcceptableFine. 128-bit security is still well above brute-force.
AES-CBC + HMACAcceptableEncrypt-then-MAC pattern; requires careful implementation.
AES-CBC without MACDeprecatedVulnerable to padding-oracle attacks.
AES-ECBDisallowedReveals plaintext patterns.
3DES / DES / RC2 / RC4 / BlowfishDisallowedBroken or fatally weak.
AlgorithmStatusNotes
Ed25519 / X25519RecommendedModern elliptic-curve choices. Recommended until quantum threat materializes.
ML-KEM (Kyber) / ML-DSA (Dilithium) / SLH-DSA (SPHINCS+)RecommendedNIST PQC standards. Use for new designs.
RSA-OAEP encryption (>= 2048)AcceptableOK for now; quantum-vulnerable; deadline 2030.
ECDSA P-256 / P-384AcceptableOK for now; quantum-vulnerable; deadline 2030.
RSA-PSS signatures (>= 2048)AcceptableOK for now; deadline 2030.
DH (classical, >= 2048)AcceptableSP 800-56A Rev.3 approves finite-field DH with approved groups of 2048 bits and up. Quantum-vulnerable, so plan the PQC migration; below 2048 bits it is Disallowed.
RSA-PKCS#1 v1.5 encryptionDeprecatedVulnerable to Bleichenbacher; migrate to OAEP.
RSA < 2048DeprecatedInsufficient key size. Deadline 2025-12-31.
DSA (any key size)DisallowedFIPS 186-5 withdrew DSA for signature generation. A larger key does not help; any use is a finding.
RSA-1024 / DSA-1024DisallowedBrute-force feasible.
AlgorithmStatusNotes
Argon2idRecommendedModern memory-hard PHF. First choice for new designs.
bcrypt (cost >= 12)RecommendedMature, widely supported. Increase cost over time.
scrypt (N >= 32768)RecommendedMemory-hard. Watch parameter selection.
PBKDF2-HMAC-SHA-256 (>= 600 000 iterations)AcceptableOK with high iteration count; not memory-hard.
bcrypt (cost 10-11)DeprecatedToo cheap for modern hardware. Bump to >= 12.
PBKDF2 with low iterationsDeprecatedBrute-forceable on modern GPUs.
Single MD5 / SHA-* of a passwordDisallowedNot a password hash. Migrate immediately.
ProtocolStatusNotes
TLS 1.3RecommendedModern handshake; forward-secrecy by default.
TLS 1.2 (modern cipher suites)AcceptableAvoid CBC suites; prefer GCM / ChaCha20-Poly1305.
TLS 1.1DeprecatedRemoved by IETF; deadline 2025-12-31.
TLS 1.0DisallowedRemoved by IETF; treat any usage as a finding.
SSL 3.0 / SSL 2.0DisallowedBroken (POODLE, ...).

Minimum Key Sizes

The same algorithm name can be Acceptable above a threshold and Deprecated below it. The registry encodes minKeyBits (for asymmetric and symmetric) and minOutputBits (for hashes) so the verdict adapts to actual key sizes in the code. The Policy Engine lets you tighten these via minimums in your .korthex_policy.json - e.g. require RSA ≥ 3072 or AES ≥ 256.

AlgorithmminKeyBitsBelow =
RSA2048Deprecated; RSA-1024 and below: Disallowed.
ECC / ECDSA256Below: Deprecated.
AES (symmetric)128Below: Disallowed (no such standard variant in practice).
DH (classical Diffie-Hellman)2048Below: Deprecated.
SHA family (output bits)224Below: Deprecated. SHA-1 (160 bits): Deprecated; MD5 (128 bits): Disallowed.

Algorithm Name Normalization

The registry is case-insensitive and separator-insensitive. All of the following names resolve to the same rule: AES-256-GCM aes 256 gcm AES_256_GCM aes256gcm AES/256/GCM For in-house wrappers, register them in the policy file via algorithm-aliases so the registry maps your wrapper name to the underlying algorithm. See the Policy File Syntax section.

Deadlines & Standards Tracking

Every Deprecated entry carries an upstream deadline from the standards bodies. Findings show this deadline so engineers know how much runway they have. The registry is updated as standards evolve. Refresh bundles are delivered monthly (or pulled automatically on online installations). In air-gapped mode, refresh bundles are applied through the Dashboard. The CLI has no import subcommand and no path that reads a .cjsn bundle.

AuthorityWhat it dictates
NIST SP 800-131APer-algorithm deprecation timeline. The registry tracks each transition date.
NIST FIPS 203 / 204 / 205PQC standards (ML-KEM / ML-DSA / SLH-DSA). Marked Recommended in the registry.
BSI TR-02102-1Federal Office for Information Security (Germany) crypto recommendations. Tracked alongside NIST.
NSA CNSA 2.0National Security Algorithms 2.0. PQC transition timeline for national-security systems.
IETF RFC deprecationsTLS 1.0 / 1.1 EOL, SHA-1 in certificates, etc.

Inspecting the Registry

Registry inspection is Dashboard-only today. There is no CLI command that lists, searches, or exports the algorithm registry - korthex baseline is a different thing entirely (see below). Browse the registry under Catalog → Algorithms , or read the status of a specific algorithm off a scan: every finding carries algorithm , status , baseline_id and replace_with .

The finding baseline (korthex baseline)

korthex baseline does not manage the algorithm registry. It manages the crypto-finding baseline - the record of which findings are already known, so CI can fail on new ones only. It writes .korthex_baseline.krx into the project root. # Create the baseline from the latest scan korthex baseline init # Rebuild it after intentional fixes korthex baseline refresh # Show NEW and RESOLVED findings against the current baseline korthex baseline diff # Exit 0 when the scan matches the baseline, exit 2 on drift korthex baseline verify korthex check --baseline <file> consumes the same file for the NEW-finding gate (exit 20).