Cryptography
Keychain supports many different encryption schemes and ciphers, providing users fine-grained control over the algorithms underpinning their Keychain-secured application.
Symmetric Ciphers
The table below shows the ciphers used to encrypt messages. Keychain employs symmetric message keys which are then asymmetrically encrypted for each intended recipient.
Scheme Name | Description | Block/key Lengths | Standardization |
---|---|---|---|
AES-GCM |
AES block cipher in GCM mode |
128, 192, 256 |
ISO/IEC 18033-3 |
Camelia-GCM |
Camelia block cipher in GCM mode |
128, 192, 256 |
ISO/IEC 18033-3 |
Asymmetric Encryption
The table below shows the schemes that can be used for asymmetric encryption within Keychain.
Scheme Name | Description | Block/key Lengths | Standardization |
---|---|---|---|
ECIES-ECP |
Elliptic curve integrated encryption scheme with operations over prime integer fields |
160, 224, 256, 384, 521 |
ANSI X9.63, IEEE 1363a, ISO/IEC 18033-2, SECG SEC-1 |
RSA-OAEP-SHA |
RSA encryption scheme using OAEP padding with SHA hashing |
1024, 2048, 3072, 4096 |
ANSI X9.44, IEEE P1363, ISO 18033-2 |
DLIES |
Discrete logarithm integrated encryption scheme over a field of integers |
1024, 2048, 3072, 4096 |
ANSI X9.63, IEEE 1363a, ISO/IEC 18033-2 |
Digital Signatures
The table below shows the schemes that can be used for signatures within Keychain.
Scheme Name | Description | Block/key Lengths | Standardization |
---|---|---|---|
ECDSA-ECP |
Elliptic curve digital signature scheme with operations over prime integer fields and SHA-256 hashing |
112, 128, 160, 192, 224, 256, 384, 521 |
FIPS-186 |
ECGDSA-ECP |
Elliptic curve German digital signature scheme with operations over prime integer fields and SHA-256 hashing |
112, 128, 160, 192, 224, 256, 384, 521 |
FIPS-186 |
DSA |
Digital signature scheme |
1024, 2048, 3072 |
FIPS-186-3 |
RSA-SS |
RSA signature scheme with appendix using SHA-256 |
1024, 2048, 3072, 4096 |