Hey everyone! If you caught my last post on the fundamentals of Elliptic Curve Cryptography (ECC)—its history, math, and why it’s a game-changer over RSA—thanks for the read! Today, we’re building on that with a follow-up focused on the practical side: how ECC is implemented in IBM i. As an enterprise OS running on IBM Power Systems, IBM i (formerly AS/400) has robust built-in support for cryptography, making it a staple in banking, finance, and secure data environments. ECC fits right in, offering efficient public-key operations with hardware acceleration.
Whether you’re an IBM i admin, developer, or just curious about enterprise crypto, this post will break down the implementation, from hardware to APIs, and show how to put it to work. Let’s dive in!t
On IBM i, ECC is deeply integrated into the operating system, cryptographic services, and network security stack. If you are running modern IBM i releases and still relying heavily on RSA, you are likely missing both performance gains and security improvements.
This post explains where ECC lives in IBM i, how it is implemented, and how it is used in real-world IBM i environments.
To refresh: ECC uses points on elliptic curves over finite fields for public-key crypto, relying on the ECDLP for security. It’s lighter on resources than RSA, perfect for high-volume transactions.

IBM i integrates ECC through its security framework, emphasizing hardware-secured operations to meet standards like FIPS 140. This isn’t just software emulation—IBM i leverages dedicated cryptographic coprocessors for speed and tamper resistance. Support for ECC has been around since earlier releases (like V6R1), but it’s matured in versions like 7.3 and beyond, with seamless ties to tools like Digital Certificate Manager (DCM) for SSL/TLS.
In enterprise setups, ECC on IBM i shines for secure communications, digital signatures, and key exchanges, especially where compliance (e.g., PCI DSS) demands strong crypto without bogging down the system.
IBM i does not treat ECC as a bolt-on feature. Instead, ECC is implemented across multiple layers:
From application-level encryption to secure network communications, ECC is part of IBM i’s core security design.
At the heart of ECC implementation in IBM i is hardware acceleration via Cryptographic Coprocessors. These are PCIe-based Hardware Security Modules (HSMs) that offload crypto tasks from the CPU, boosting performance and security.
Key models include:
These coprocessors are tamper-resistant, FIPS 140-certified, and destroy sensitive data if physically compromised (e.g., extreme temperature changes). To enable ECC:
Software prerequisites:
Read more on: https://www.ibm.com/docs/en/i/7.6.0?topic=coprocessor-requirements
With hardware in place, ECC operations are faster—think 10x speedup for TLS handshakes compared to software-only—and more secure, as keys never leave the HSM.
IBM i provides cryptography through IBM i Cryptographic Services, which expose standardized APIs for:
ECC support is implemented through:
These services rely on NIST-approved curves, such as:
IBM i provides core crypto via IBM i Cryptographic Services, which are standardized APIs built into the OS.
| These APIs expose: Key generation Digital signatures Secure random numbers Encryption / decryption | ECC support is included via: ECDSA (Elliptic Curve Digital Signature Algorithm) ECDH / ECDHE (Elliptic Curve Diffie–Hellman / Ephemeral) |
Modern elliptic curves (e.g., secp256r1, secp384r1) are used for these operations, providing equivalent security to much larger RSA keys with lower CPU cost and smaller signatures/certificates.
The Digital Certificate Manager (DCM) is the primary interface for managing certificates on IBM i. DCM fully supports ECC-based certificates.
You can:

Most public CAs now support ECC certificates, making ECC deployment straightforward. IBM i documentation confirms that DCM supports ECC public-key algorithms alongside RSA when generating certificates.
Benefits of ECC certificates:
These advantages make ECC especially valuable for high-traffic web APIs, mobile integrations, and TLS endpoints.
IBM i supports ECC in TLS through:
Modern TLS cipher suites on IBM i commonly look like:
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384

ECC-enabled TLS is used by:
If TLS 1.2 or TLS 1.3 is enabled, ECC is usually preferred automatically.
IBM i OpenSSH supports ECC key types such as:
ecdsa-sha2-nistp256ecdsa-sha2-nistp384ecdsa-sha2-nistp521ECC SSH keys work especially well for:
Developers can use ECC through:
Typical application use cases:
ECC enables strong security without heavy CPU cost, which matters in high-throughput IBM i workloads.
ECC in IBM i follows the standard curve-based model but is wrapped in the Common Cryptographic Architecture (CCA) for hardware ops. Keys are points on NIST-approved curves (e.g., P-256, P-384), with security from ECDLP.
CRTCKMKSF KEYSTORE(MYLIB/MYKEYS) MSTKEY(1) AUT(*EXCLUDE) TEXT('Master Key Store')
ADDMSTPART MSTKEY(*SAVRST) PASSPHRASE('This is a passphrase for master key') PASSLEN(*CALC)
SETMSTKEY MSTKEY(1)
GENCKMKSFE FILE(MYLIB/PKASTORE) TYPE(*ECC) SIZE(256).
Keys include an Environment ID (EID) for origin verification, and management handles versions (new/current/old) for rotation.
ECC significantly reduces cryptographic overhead.
For environments with:
ECC improves both security and performance.
| Feature | RSA | ECC |
|---|---|---|
| Key Size | Large | Small |
| CPU Usage | High | Low |
| TLS Performance | Slower | Faster |
| Mobile/IoT | Weak fit | Excellent fit |
| Future Readiness | Declining | Preferred |
IBM strongly recommends ECC-based cipher suites in modern configurations.
ECC on IBM i aligns with:
This makes ECC suitable for:
A simple certificate and TLS review often unlocks ECC benefits immediately.
Prefer ECDHE + ECDSA cipher suites
ECC is not experimental on IBM i—it is production-proven, optimized, and recommended. IBM i administrators who embrace ECC gain stronger security, better performance, and improved future readiness.
If your IBM i environment still depends mainly on RSA, the transition to ECC is one of the highest-impact security improvements you can make.
ecdsa key types) are supported and evolving in modern SSH implementations: https://www.openssh.com/releasenotes.html