Page 1 of 82 The OpenSSL Project OpenSSL FIPS Provider FIPS 140-3 Non-Proprietary Security Policy Page 2 of 82 Table of Contents 1 General................................................................................................................................... 5 1.1 Overview .......................................................................................................................... 5 1.2 Security Levels ................................................................................................................. 5 1.3 Additional Information....................................................................................................... 6 2 Cryptographic Module Specification........................................................................................ 6 2.1 Description ....................................................................................................................... 6 2.2 Tested and Vendor Affirmed Module Version and Identification........................................ 7 2.3 Excluded Components...................................................................................................... 8 2.4 Modes of Operation.......................................................................................................... 8 2.5 Algorithms .......................................................................................................................10 2.6 Security Function Implementations..................................................................................18 2.7 Algorithm Specific Information .........................................................................................31 2.8 RBG and Entropy ............................................................................................................34 2.9 Key Generation................................................................................................................34 2.10 Key Establishment.........................................................................................................35 2.11 Industry Protocols..........................................................................................................35 3 Cryptographic Module Interfaces............................................................................................36 3.1 Ports and Interfaces ........................................................................................................36 4 Roles, Services, and Authentication.......................................................................................36 4.1 Authentication Methods ...................................................................................................36 4.2 Roles...............................................................................................................................36 4.3 Approved Services ..........................................................................................................36 4.4 Non-Approved Services...................................................................................................56 4.5 External Software/Firmware Loaded................................................................................57 4.6 Bypass Actions and Status..............................................................................................57 4.7 Cryptographic Output Actions and Status ........................................................................57 5 Software/Firmware Security ...................................................................................................57 5.1 Integrity Techniques ........................................................................................................57 5.2 Initiate on Demand ..........................................................................................................58 5.3 Open-Source Parameters................................................................................................58 6 Operational Environment........................................................................................................58 6.1 Operational Environment Type and Requirements ..........................................................58 6.2 Configuration Settings and Restrictions ...........................................................................58 7 Physical Security....................................................................................................................59 8 Non-Invasive Security ............................................................................................................59 Page 3 of 82 9 Sensitive Security Parameters Management..........................................................................59 9.1 Storage Areas .................................................................................................................59 9.2 SSP Input-Output Methods..............................................................................................59 9.3 SSP Zeroization Methods................................................................................................60 9.4 SSPs ...............................................................................................................................60 10 Self-Tests.............................................................................................................................70 10.1 Pre-Operational Self-Tests ............................................................................................70 10.2 Conditional Self-Tests....................................................................................................71 10.3 Periodic Self-Test Information........................................................................................74 10.4 Error States ...................................................................................................................79 10.5 Operator Initiation of Self-Tests .....................................................................................79 11 Life-Cycle Assurance ...........................................................................................................79 11.1 Installation, Initialization, and Startup Procedures..........................................................79 11.2 Administrator Guidance .................................................................................................81 11.3 Non-Administrator Guidance..........................................................................................81 11.4 Design and Rules ..........................................................................................................81 11.5 Maintenance Requirements...........................................................................................81 11.6 End of Life .....................................................................................................................81 12 Mitigation of Other Attacks ...................................................................................................82 12.1 Attack List......................................................................................................................82 Page 4 of 82 List of Tables Table 1: Security Levels............................................................................................................. 6 Table 2: Tested Module Identification – Software, Firmware, Hybrid (Executable Code Sets).... 8 Table 3: Tested Operational Environments - Software, Firmware, Hybrid .................................. 8 Table 4: Modes List and Description .......................................................................................... 9 Table 5: Approved Algorithms...................................................................................................15 Table 6: Vendor-Affirmed Algorithms ........................................................................................16 Table 7: Non-Approved, Allowed Algorithms.............................................................................17 Table 8: Non-Approved, Allowed Algorithms with No Security Claimed.....................................17 Table 9: Non-Approved, Not Allowed Algorithms.......................................................................17 Table 10: Security Function Implementations............................................................................30 Table 11: Ports and Interfaces ..................................................................................................36 Table 12: Roles.........................................................................................................................36 Table 13: Approved Services ....................................................................................................54 Table 14: Non-Approved Services.............................................................................................57 Table 15: Storage Areas ...........................................................................................................59 Table 16: SSP Input-Output Methods........................................................................................59 Table 17: SSP Zeroization Methods..........................................................................................60 Table 18: SSP Table 1..............................................................................................................66 Table 19: SSP Table 2..............................................................................................................70 Table 20: Pre-Operational Self-Tests........................................................................................71 Table 21: Conditional Self-Tests ...............................................................................................74 Table 22: Pre-Operational Periodic Information.........................................................................74 Table 23: Conditional Periodic Information................................................................................79 Table 24: Error States...............................................................................................................79 List of Figures Figure 1: OpenSSL FIPS Provider Block Diagram ..................................................................... 7 Page 5 of 82 1 General 1.1 Overview Introduction Federal Information Processing Standards Publication 140-3 — Security Requirements for Cryptographic Modules specifies requirements for cryptographic modules to be deployed in a Sensitive but Unclassified environment. The National Institute of Standards and Technology (NIST) and Canadian Centre for Cyber Security (CCCS) Cryptographic Module Validation Program (CMVP) run the FIPS 140-3 program. The NVLAP accredits independent testing labs to perform FIPS 140-3 testing; the CMVP validates modules meeting FIPS 140-3 validation. Validated is the term given to a module that is documented and tested against the FIPS 140-3 criteria. More information is available on the CMVP website at: https://csrc.nist.gov/projects/cryptographic-module-validation-program. About this Document This document describes the non-proprietary Security Policy for the OpenSSL FIPS Provider cryptographic module (hereafter referred to as “the Module”) from The OpenSSL Project. It contains specification of the security rules under which the Module operates, including the security rules derived from the requirements of the FIPS 140-3 standard. The OpenSSL Project may also be referred to as “OpenSSL” in this document. The following trademarks are referenced within this Security Policy: • Linux®: Linux is the registered trademark of Linus Torvalds in the U.S. and other countries. • Unix®: UNIX is a registered trademark of The Open Group. • Microsoft Windows®: Windows is a registered trademark of Microsoft Corporation in the United States and other countries. Copyright Notice Copyright © 2024 The OpenSSL Project Authors. This document may be freely reproduced and distributed whole and intact including this copyright notice. 1.2 Security Levels The Module meets FIPS 140-3 overall Level 1 requirements, with security levels as follows: Section Title Security Level 1 General 1 2 Cryptographic module specification 1 3 Cryptographic module interfaces 1 4 Roles, services, and authentication 1 5 Software/Firmware security 1 6 Operational environment 1 7 Physical security N/A 8 Non-invasive security N/A Page 6 of 82 Section Title Security Level 9 Sensitive security parameter management 1 10 Self-tests 1 11 Life-cycle assurance 3 12 Mitigation of other attacks 1 Overall Level 1 Table 1: Security Levels 1.3 Additional Information In accordance with AS02.05, [ISO19790] §7.7 Physical Security is optional and does not apply to the Module. In accordance with current CMVP policy, [ISO19790] §7.8 Non-Invasive Security is not applicable. 2 Cryptographic Module Specification 2.1 Description Purpose and Use: The Module is a cryptographic software library providing a C-language application program interface (API) for use by applications that require cryptographic functionality and is designated as a software module with a multi-chip standalone embodiment based on the descriptions of [ISO19790] AS02.03. The Module is intended for use by US and Canadian Federal agencies and other markets that require FIPS 140-3 validated cryptographic functionality. The Module’s formal name and version are “OpenSSL FIPS Provider” and “3.1.2”, respectively. The Module design corresponds to the Module security rules. Security rules enforced by the Module are described in the appropriate context of this document. Module Type: Software Module Embodiment: MultiChipStand Cryptographic Boundary: Figure 1 depicts the Module operational environment, with the cryptographic boundary highlighted in red inclusive of all Module entry points (API calls). The Module is defined as a Software module per [ISO19790] AS02.03. The cryptographic boundary of the Module is the FIPS Provider, a dynamically loadable library. The Module performs no communication other than with the calling application via APIs that invoke the Module. The pre-operational approved integrity test is performed over all components within the cryptographic boundary. Tested Operational Environment’s Physical Perimeter (TOEPP): Page 7 of 82 The Tested Operational Environment’s Physical Perimeter (TOEPP) is the General Purpose Computer. Figure 1: OpenSSL FIPS Provider Block Diagram 2.2 Tested and Vendor Affirmed Module Version and Identification Tested Module Identification – Software, Firmware, Hybrid (Executable Code Sets): Package or File Name Software/ Firmware Version Features Integrity Test fips.so 3.1.2 fips.so for Unix/Linux platforms HMAC-SHA2-256 fips.dll 3.1.2 fips.dll for Windows platforms HMAC-SHA2-256 Page 8 of 82 Package or File Name Software/ Firmware Version Features Integrity Test fips.dylib 3.1.2 fips.dylib for Mac platforms HMAC-SHA2-256 Table 2: Tested Module Identification – Software, Firmware, Hybrid (Executable Code Sets) Tested Operational Environments - Software, Firmware, Hybrid: Operating System Hardware Platform Processors PAA/PAI Hypervisor or Host OS Version(s) Ubuntu Linux 22.04.1 Server Dell Inspiron 7573 Intel i7- 8550U No N/A 3.1.2 Ubuntu Linux 22.04.1 Server Dell Inspiron 7573 Intel i7- 8550U Yes N/A 3.1.2 Debian 11.5 Dell Inspiron 7573 Intel i7- 8550U No N/A 3.1.2 Debian 11.5 Dell Inspiron 7573 Intel i7- 8550U Yes N/A 3.1.2 FreeBSD 13.1 Dell Inspiron 7591 2 in 1 Intel i7- 10510U No N/A 3.1.2 FreeBSD 13.1 Dell Inspiron 7591 2 in 1 Intel i7- 10510U Yes N/A 3.1.2 Windows 10 Pro Dell Inspiron 7591 2 in 1 Intel i7- 10510U No N/A 3.1.2 Windows 10 Pro Dell Inspiron 7591 2 in 1 Intel i7- 10510U Yes N/A 3.1.2 macOS 11.5.2 Apple M1 Mac Mini M1 No N/A 3.1.2 macOS 11.5.2 Apple M1 Mac Mini M1 Yes N/A 3.1.2 macOS 11.5.2 Apple i7 Mac Mini Intel i7 No N/A 3.1.2 macOS 11.5.2 Apple i7 Mac Mini Intel i7 Yes N/A 3.1.2 Table 3: Tested Operational Environments - Software, Firmware, Hybrid Vendor-Affirmed Operational Environments - Software, Firmware, Hybrid: No operational environments are vendor affirmed. 2.3 Excluded Components No components are excluded from [FIPS140-3] requirements. 2.4 Modes of Operation Modes List and Description: Page 9 of 82 Mode Name Description Type Status Indicator Approved mode The module must be installed and configured per instructions provided in Section 11 of this document and the module is in the Approved mode by default as a result. The installation of the Module as described in Section 11 results in the settings described below this table, which are required for operation in the Approved mode Approved fips=yes Non- Approved mode The module is in the Approved mode of operation by default. Use of the non-Approved Algorithms Not Allowed in the Approved Mode will place the module in the non-approved mode of operation. Non- Approved fips=no Table 4: Modes List and Description The Module supports an Approved mode and a non-Approved mode of operation. The inherent properties of the Module are: 1. Manual key entry is not supported. 2. Data output is inhibited during self-tests, zeroisation, SSP generation and error states. 3. The Module does not perform any cryptographic function if any self-test has failed. The conditions for using the Module in the [FIPS140-3] Approved mode of operation are: 1. Installation of the Module as described in Section 11 results in the settings described below, which are required for operation in the Approved mode: a. security-checks = 1 Enforce minimum key strengths and approved curve names. b. conditional-errors = 1 Enforce the Module entering the error state on conditional test errors such as PCT failure. c. drbg-no-trunc-md=1 Disallow use of truncated digests with HASH and HMAC DRBGs (IG D.R) d. tls1-prf-ems-check=1 Enforce Extended Master Secret (EMS) use with TLS 1.2 (IG D.Q) 2. The Module is a cryptographic library used by a calling application. The calling application is responsible for: a. Use of the primitives in the correct sequence. b. Use of keys in accordance with [SP800-140Dr2] (as the keys used by the Module for cryptographic purposes are provided over the call stack by the calling application). c. Use of a [SP800-90B] compliant entropy source. Entropy is supplied to the Module via callback functions. The callback functions return an error if the minimum entropy strength cannot be met. Mode Change Instructions and Status: Use of the Approved algorithms and Non-Approved Algorithms Allowed in the Approved Mode will ensure operation of the module in the Approved mode of operation. Use of the non- Page 10 of 82 Approved Algorithms Not Allowed in the Approved Mode will place the module in the non- approved mode of operation. Degraded Mode Description: The module does not support a degraded mode of operation. 2.5 Algorithms Approved Algorithms: Algorithm CAVP Cert Properties Reference AES-CBC A3548 Direction - Decrypt, Encrypt Key Length - 128, 192, 256 SP 800-38A AES-CBC-CS1 A3548 Direction - decrypt, encrypt Key Length - 128, 192, 256 SP 800-38A AES-CBC-CS2 A3548 Direction - decrypt, encrypt Key Length - 128, 192, 256 SP 800-38A AES-CBC-CS3 A3548 Direction - decrypt, encrypt Key Length - 128, 192, 256 SP 800-38A AES-CCM A3548 Key Length - 128, 192, 256 SP 800-38C AES-CFB1 A3548 Direction - Decrypt, Encrypt Key Length - 128, 192, 256 SP 800-38A AES-CFB128 A3548 Direction - Decrypt, Encrypt Key Length - 128, 192, 256 SP 800-38A AES-CFB8 A3548 Direction - Decrypt, Encrypt Key Length - 128, 192, 256 SP 800-38A AES-CMAC A3548 Direction - Generation, Verification Key Length - 128, 192, 256 SP 800-38B AES-CTR A3548 Direction - Decrypt, Encrypt Key Length - 128, 192, 256 SP 800-38A AES-ECB A3548 Direction - Decrypt, Encrypt Key Length - 128, 192, 256 SP 800-38A AES-GCM A3548 Direction - Decrypt, Encrypt IV Generation - External, Internal IV Generation Mode - 8.2.1 Key Length - 128, 192, 256 SP 800-38D AES-GMAC A3548 Direction - Decrypt, Encrypt IV Generation - External, Internal IV Generation Mode - 8.2.1 Key Length - 128, 192, 256 SP 800-38D AES-KW A3548 Direction - Decrypt, Encrypt Key Length - 128, 192, 256 SP 800-38F AES-KWP A3548 Direction - Decrypt, Encrypt Key Length - 128, 192, 256 SP 800-38F AES-OFB A3548 Direction - Decrypt, Encrypt Key Length - 128, 192, 256 SP 800-38A AES-XTS Testing Revision 2.0 A3548 Direction - Decrypt, Encrypt Key Length - 128, 256 SP 800-38E Page 11 of 82 Algorithm CAVP Cert Properties Reference Counter DRBG A3548 Prediction Resistance - Yes Mode - AES-128, AES-192, AES-256 Derivation Function Enabled - No, Yes SP 800-90A Rev. 1 DSA KeyGen (FIPS186-4) A3548 L - 2048, 3072 N - 224, 256 FIPS 186-4 DSA PQGGen (FIPS186-4) A3548 L - 2048, 3072 N - 224, 256 Hash Algorithm - SHA2-224, SHA2-256, SHA2- 384, SHA2-512, SHA2-512/224, SHA2-512/256 FIPS 186-4 DSA PQGVer (FIPS186-4) A3548 L - 1024, 2048, 3072 N - 160, 224, 256 Hash Algorithm - SHA-1, SHA2-224, SHA2- 256, SHA2-384, SHA2-512, SHA2-512/224, SHA2-512/256 FIPS 186-4 DSA SigGen (FIPS186-4) A3548 L - 2048, 3072 N - 224, 256 Hash Algorithm - SHA2-224, SHA2-256, SHA2- 384, SHA2-512, SHA2-512/224, SHA2-512/256 FIPS 186-4 DSA SigVer (FIPS186-4) A3548 L - 1024, 2048, 3072 N - 160, 224, 256 Hash Algorithm - SHA-1, SHA2-224, SHA2- 256, SHA2-384, SHA2-512, SHA2-512/224, SHA2-512/256 FIPS 186-4 ECDSA KeyGen (FIPS186-4) A3548 Curve - B-233, B-283, B-409, B-571, K-233, K- 283, K-409, K-571, P-224, P-256, P-384, P-521 Secret Generation Mode - Testing Candidates FIPS 186-4 ECDSA KeyVer (FIPS186-4) A3548 Curve - B-163, B-233, B-283, B-409, B-571, K- 163, K-233, K-283, K-409, K-571, P-192, P- 224, P-256, P-384, P-521 FIPS 186-4 ECDSA SigGen (FIPS186-4) A3548 Component - No, Yes Curve - B-233, B-283, B-409, B-571, K-233, K- 283, K-409, K-571, P-224, P-256, P-384, P-521 Hash Algorithm - SHA2-224, SHA2-256, SHA2- 384, SHA2-512, SHA2-512/224, SHA2- 512/256, SHA3-224, SHA3-256, SHA3-384, SHA3-512 FIPS 186-4 ECDSA SigVer (FIPS186-4) A3548 Component - No, Yes Curve - B-163, B-233, B-283, B-409, B-571, K- 163, K-233, K-283, K-409, K-571, P-192, P- 224, P-256, P-384, P-521 Hash Algorithm - SHA-1, SHA2-224, SHA2- 256, SHA2-384, SHA2-512, SHA2-512/224, SHA2-512/256, SHA3-224, SHA3-256, SHA3- 384, SHA3-512 FIPS 186-4 Hash DRBG A3548 Prediction Resistance - Yes Mode - SHA-1, SHA2-224, SHA2-256, SHA2- 384, SHA2-512, SHA2-512/224, SHA2- 512/256, SHA3-256, SHA3-512 SP 800-90A Rev. 1 Page 12 of 82 Algorithm CAVP Cert Properties Reference HMAC DRBG A3548 Prediction Resistance - Yes Mode - SHA-1, SHA2-224, SHA2-256, SHA2- 384, SHA2-512, SHA2-512/224, SHA2- 512/256, SHA3-256, SHA3-512 SP 800-90A Rev. 1 HMAC-SHA-1 A3548 Key Length - Key Length: 8-524288 Increment 8 FIPS 198-1 HMAC-SHA2-224 A3548 Key Length - Key Length: 8-524288 Increment 8 FIPS 198-1 HMAC-SHA2-256 A3548 Key Length - Key Length: 8-524288 Increment 8 FIPS 198-1 HMAC-SHA2-384 A3548 Key Length - Key Length: 8-524288 Increment 8 FIPS 198-1 HMAC-SHA2-512 A3548 Key Length - Key Length: 8-524288 Increment 8 FIPS 198-1 HMAC-SHA2- 512/224 A3548 Key Length - Key Length: 8-524288 Increment 8 FIPS 198-1 HMAC-SHA2- 512/256 A3548 Key Length - Key Length: 8-524288 Increment 8 FIPS 198-1 HMAC-SHA3-224 A3548 Key Length - Key Length: 8-524288 Increment 8 FIPS 198-1 HMAC-SHA3-256 A3548 Key Length - Key Length: 8-524288 Increment 8 FIPS 198-1 HMAC-SHA3-384 A3548 Key Length - Key Length: 8-524288 Increment 8 FIPS 198-1 HMAC-SHA3-512 A3548 Key Length - Key Length: 8-524288 Increment 8 FIPS 198-1 KAS-ECC CDH- Component SP800-56Ar3 (CVL) A3548 Curve - B-233, B-283, B-409, B-571, K-233, K- 283, K-409, K-571, P-224, P-256, P-384, P-521 SP 800-56A Rev. 3 KAS-ECC-SSC Sp800-56Ar3 A3548 Domain Parameter Generation Methods - B- 233, B-283, B-409, B-571, K-233, K-283, K- 409, K-571, P-224, P-256, P-384, P-521 Scheme - ephemeralUnified - KAS Role - initiator, responder SP 800-56A Rev. 3 KAS-FFC-SSC Sp800-56Ar3 A3548 Domain Parameter Generation Methods - FB, FC, ffdhe2048, ffdhe3072, ffdhe4096, ffdhe6144, ffdhe8192, MODP-2048, MODP- 3072, MODP-4096, MODP-6144, MODP-8192 Scheme - dhEphem - KAS Role - initiator, responder SP 800-56A Rev. 3 KAS-IFC-SSC A3548 Modulo - 2048, 3072, 4096, 6144, 8192 Key Generation Methods - rsakpg1-basic, rsakpg1-crt, rsakpg1-prime-factor, rsakpg2- basic, rsakpg2-crt, rsakpg2-prime-factor Scheme - SP 800-56A Rev. 3 Page 13 of 82 Algorithm CAVP Cert Properties Reference KAS1 - KAS Role - initiator, responder KAS2 - KAS Role - initiator, responder KDA HKDF SP800-56Cr2 A3548 Derived Key Length - 2048 Shared Secret Length - Shared Secret Length: 224-8192 Increment 8 HMAC Algorithm - SHA-1, SHA2-224, SHA2- 256, SHA2-384, SHA2-512, SHA2-512/224, SHA2-512/256, SHA3-224, SHA3-256, SHA3- 384, SHA3-512 SP 800-56C Rev. 2 KDA OneStep SP800-56Cr2 A3548 Derived Key Length - 2048 Shared Secret Length - Shared Secret Length: 224-8192 Increment 8 SP 800-56C Rev. 2 KDA TwoStep SP800-56Cr2 A3548 MAC Salting Methods - default, random KDF Mode - feedback Derived Key Length - 2048 Shared Secret Length - Shared Secret Length: 224-8192 Increment 8 SP 800-56C Rev. 2 KDF ANS 9.42 (CVL) A3548 KDF Type - DER Hash Algorithm - SHA-1, SHA2-224, SHA2- 256, SHA2-384, SHA2-512, SHA2-512/224, SHA2-512/256, SHA3-224, SHA3-256, SHA3- 384, SHA3-512 Key Data Length - Key Data Length: 8-4096 Increment 8 SP 800-135 Rev. 1 KDF ANS 9.63 (CVL) A3548 Hash Algorithm - SHA2-224, SHA2-256, SHA2- 384, SHA2-512 Key Data Length - Key Data Length: 128, 4096 SP 800-135 Rev. 1 KDF KMAC Sp800-108r1 A3548 Derived Key Length - Derived Key Length: 112- 4096 Increment 8 SP 800-108 Rev. 1 KDF SP800-108 A3548 KDF Mode - Counter, Feedback Supported Lengths - Supported Lengths: 8, 72, 128, 776, 3456, 4096 SP 800-108 Rev. 1 KDF SSH (CVL) A3548 Cipher - AES-128, AES-192, AES-256 Hash Algorithm - SHA-1, SHA2-224, SHA2- 256, SHA2-384, SHA2-512 SP 800-135 Rev. 1 KMAC-128 A3548 Message Length - Message Length: 0-65536 Increment 8 Key Data Length - Key Data Length: 128-1024 Increment 8 SP 800-185 KMAC-256 A3548 Message Length - Message Length: 0-65536 Increment 8 Key Data Length - Key Data Length: 128-1024 Increment 8 SP 800-185 KTS-IFC A3548 Modulo - 2048, 3072, 4096, 6144 Key Generation Methods - rsakpg1-basic, rsakpg1-crt, rsakpg1-prime-factor, rsakpg2- SP 800-56B Rev. 2 Page 14 of 82 Algorithm CAVP Cert Properties Reference basic, rsakpg2-crt, rsakpg2-prime-factor Scheme - KTS-OAEP-basic - KAS Role - initiator, responder Key Transport Method - Key Length - 1024 PBKDF A3548 Iteration Count - Iteration Count: 1-10000 Increment 1 Password Length - Password Length: 8-128 Increment 8 SP 800-132 RSA KeyGen (FIPS186-4) A3548 Key Generation Mode - B.3.3, B.3.6 Modulo - 2048, 3072, 4096 Primality Tests - Table C.2, Table C.3 Private Key Format - Standard FIPS 186-4 RSA SigGen (FIPS186-4) A3548 Signature Type - ANSI X9.31, PKCS 1.5, PKCSPSS Modulo - 2048, 3072, 4096 FIPS 186-4 RSA Signature Primitive (CVL) A3548 Private Key Format - CRT FIPS 186-4 RSA SigVer (FIPS186-4) A3548 Signature Type - ANSI X9.31, PKCS 1.5, PKCSPSS Modulo - 1024, 2048, 3072, 4096 FIPS 186-4 Safe Primes Key Generation A3548 Safe Prime Groups - ffdhe2048, ffdhe3072, ffdhe4096, ffdhe6144, ffdhe8192, MODP-2048, MODP-3072, MODP-4096, MODP-6144, MODP-8192 SP 800-56A Rev. 3 Safe Primes Key Verification A3548 Safe Prime Groups - ffdhe2048, ffdhe3072, ffdhe4096, ffdhe6144, ffdhe8192, MODP-2048, MODP-3072, MODP-4096, MODP-6144, MODP-8192 SP 800-56A Rev. 3 SHA-1 A3548 Message Length - Message Length: 0-65536 Increment 8 Large Message Sizes - 1, 2, 4, 8 FIPS 180-4 SHA2-224 A3548 Message Length - Message Length: 0-65536 Increment 8 Large Message Sizes - 1, 2, 4, 8 FIPS 180-4 SHA2-256 A3548 Message Length - Message Length: 0-65536 Increment 8 Large Message Sizes - 1, 2, 4, 8 FIPS 180-4 SHA2-384 A3548 Message Length - Message Length: 0-65536 Increment 8 Large Message Sizes - 1, 2, 4, 8 FIPS 180-4 SHA2-512 A3548 Message Length - Message Length: 0-65536 Increment 8 Large Message Sizes - 1, 2, 4, 8 FIPS 180-4 SHA2-512/224 A3548 Message Length - Message Length: 0-65536 Increment 8 Large Message Sizes - 1, 2, 4, 8 FIPS 180-4 Page 15 of 82 Algorithm CAVP Cert Properties Reference SHA2-512/256 A3548 Message Length - Message Length: 0-65536 Increment 8 Large Message Sizes - 1, 2, 4, 8 FIPS 180-4 SHA3-224 A3548 Message Length - Message Length: 0-65536 Increment 8 Large Message Sizes - 1, 2, 4, 8 FIPS 202 SHA3-256 A3548 Message Length - Message Length: 0-65536 Increment 8 Large Message Sizes - 1, 2, 4, 8 FIPS 202 SHA3-384 A3548 Message Length - Message Length: 0-65536 Increment 8 Large Message Sizes - 1, 2, 4, 8 FIPS 202 SHA3-512 A3548 Message Length - Message Length: 0-65536 Increment 8 Large Message Sizes - 1, 2, 4, 8 FIPS 202 SHAKE-128 A3548 Output Length - Output Length: 16-65536 Increment 8 FIPS 202 SHAKE-256 A3548 Output Length - Output Length: 16-65536 Increment 8 FIPS 202 TLS v1.2 KDF RFC7627 (CVL) A3548 Hash Algorithm - SHA2-256, SHA2-384, SHA2- 512 SP 800-135 Rev. 1 TLS v1.3 KDF (CVL) A3548 HMAC Algorithm - SHA2-256, SHA2-384 KDF Running Modes - DHE, PSK, PSK-DHE SP 800-135 Rev. 1 Table 5: Approved Algorithms The Module implements the Approved cryptographic functions listed in Table 5. Vendor-Affirmed Algorithms: Name Properties Implementation Reference DSA PQGGen [FIPS 186- 4] Key Size, Key Strength:L = 2048/N = 224 (s = 112), L = 2048/N = 256 (s = 112) L = 3072/N = 256 (s = 128) Mode/Method:PQGGen using SHA3 OpenSSL Project OpenSSL 3.x FIPS Provider Vendor affirmed per IG C.C and IG C.B Resolution (bullet point #3) DSA PQGVer [FIPS 186- 4] Key Size, Key Strength:L = 1024/N = 160 (s < 112) L = 2048/N = 224 (s = 112), L = 2048/N = 256 (s = 112) L = 3072/N = 256 (s = 128) Mode/Method:PQGVer using SHA3 OpenSSL Project OpenSSL 3.x FIPS Provider Vendor affirmed per IG C.C and IG C.B Resolution (bullet point #3) DSA SigGen [FIPS 186- 4] Key Size, Key Strength:L = 2048/N = 224 (s = 112), L = 2048/N = 256 (s = 112) L = 3072/N = 256 (s = 128) OpenSSL Project OpenSSL 3.x FIPS Provider Vendor affirmed per IG C.C and IG C.B Resolution (bullet point #3) Page 16 of 82 Name Properties Implementation Reference Mode/Method:SigGen using SHA3 DSA SigVer [FIPS186- 4] Key Size, Key Strength:L = 1024/N = 160 (s < 112) L = 2048/N = 224 (s = 112), L = 2048/N = 256 (s = 112) L = 3072/N = 256 (s = 128) Mode/Method:SigVer using SHA3 OpenSSL Project OpenSSL 3.x FIPS Provider Vendor affirmed per IG C.C and IG C.B Resolution (bullet point #3) CKG - Section 4 and 5.1 Key Type :Asymmetric N/A NIST SP800-133r2 Section 4: Using the Output of a Random Bit Generator; Section 5.1: Key Pairs for Digital Signature Schemes CKG - Section 4 and 5.2 Key Type:Asymmetric N/A NIST SP800-133r2 Section 4: Using the Output of a Random Bit Generator; Section 5.2: Key Pairs for Key Establishment CKG - Section 4 and Section 6.1 Key Type:Symmetric N/A NIST SP800-133r2 Section 4: Using the Output of a Random Bit Generator; Section 6.1: Direct Generation of Symmetric Keys CKG - Section 6.2 Key Type:Symmetric N/A NIST SP 800-133r2 Section 6.2: Derivation of Symmetric keys CKG - Section 6.3 Key Type:Symmetric N/A NIST SP 800-133rev2, Section 6.3: Symmetric Keys Produced by Combining Multiple Keys and Other Data CKG – Section 4 Key Type:Symmetric N/A NIST SP800-133r2 Section 4: Using the Output of a Random Bit Random bits returned to the calling application Table 6: Vendor-Affirmed Algorithms Non-Approved, Allowed Algorithms: Page 17 of 82 Name Properties Implementation Reference AES AES KW, KWP (Cert.#A3548):Symmetric key unwrapping OpenSSL Project OpenSSL 3.x FIPS Provider Per IG D.G Additional Comment 5 Table 7: Non-Approved, Allowed Algorithms Non-Approved, Allowed Algorithms with No Security Claimed: Name Caveat Use and Function N/A N/A N/A Table 8: Non-Approved, Allowed Algorithms with No Security Claimed The module does not support any Non-Approved Algorithms Allowed in the Approved Mode of Operation with No Security Claimed. Non-Approved, Not Allowed Algorithms: Name Use and Function Triple-DES Provides 3-Key ECB and CBC mode, but indicated as fips=no, Encryption, Decryption Ed448 SHAKE256, Ed448 provides 224 bits of security, Digital Signature Generation Ed25519 SHA2-512, Ed25519 provides 128 bits of security, Digital Signature Generation X448 Provides 224 bits of security, Key Agreement X25519 Provides 128 bits of security, Key Agreement ECDSA SigVer Component Provides between 80 and 256 bits for security, Curves: B-163, B-233, B-283, B-409, B-571, K-163, K-233, K-283, K-409, K-571, P-192, P- 224, P-256, P-384, P-521, Digital Signature Verification FIPS 186-2 RSA SigGen/SigVer Provides >= 80 bits of security, RSA signature generation/verification per FIPS 186-2 FIPS 186-2 RSA KeyGen Provides >= 112 bits of security, RSA key generation per FIPS 186-2 X942KDF- CONCAT Usage of X942KDF-CONCAT with PRF SHA-1, SHA2-512/224, SHA2- 512/256, SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE128, SHAKE256, KECCAK-KMAC128 and KECCAK-KMAC256 X963KDF Usage of X963KDF with PRF SHA-1, SHA2-512/224, SHA2-512/256, SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE128, SHAKE256, KECCAK-KMAC128 and KECCAK-KMAC256 HKDF Provides < 112 bits of security, Usage of HKDF with key length less than 112 bits OneStep KDF Usage of OneStep KDF with PRF SHAKE128, SHAKE256 HMAC Provides < 112 bits of security, Usage of HMAC with key length less than 112 bits for MAC generation Hash and HMAC DRBG Usage of Hash and HMAC DRBGs with PRFs SHA2-224, SHA2-384, SHA2-512/224 and SHA2-512/256 Table 9: Non-Approved, Not Allowed Algorithms Page 18 of 82 2.6 Security Function Implementations Name Type Description Properties Algorithms Symmetric Encryption and Decryption BC-Auth BC-UnAuth Symmetric Encryption and Decryption Key Length:128, 192 and 256 bits Key Length (XTS):128 and 256 bits AES-CBC AES-CBC- CS1 AES-CBC- CS2 AES-CBC- CS3 AES-CCM AES-CFB1 AES-CFB128 AES-CFB8 AES-CMAC AES-CTR AES-ECB AES-GCM AES-GMAC AES-OFB AES-XTS Testing Revision 2.0 Message Digest SHA Message Digest SHA-1 :(s = 160) Large Message Sizes: 1, 2, 4, 8gigabytes SHA2:SHA2-224 (s = 224), SHA2-256 (s = 256), SHA2-384 (s = 384), SHA2-512 (s = 512), SHA2-512/224 (s = 224), SHA2- 512/256 (s = 256). Large Message Sizes: 1, 2, 4, 8gigabytes SHA3:SHA3-224 (s = 224), SHA3-256 (s = 256), SHA3-384 (s = 384), SHA3-512 (s = 512). See Note 1. Large Message Sizes: 1, 2, 4, 8gigabytes SHAKE:SHAKE-128 (s = 128), SHAKE- SHA-1 SHA2-224 SHA2-256 SHA2-384 SHA2-512 SHA2-512/224 SHA3-224 SHA3-256 SHA3-384 SHA3-512 SHAKE-128 SHAKE-256 SHA2-512/256 Page 19 of 82 Name Type Description Properties Algorithms 256 (s = 256). See Note 1. Keyed Hash BC-Auth MAC Keyed Hash HMAC-SHA-1 [FIPS198-1]:SHA-1 (s = 160) HMAC-SHA2 [FIPS198-1]:SHA2- 224 (s = 224), SHA2- 256 (s = 256), SHA2- 384 (s = 384), SHA2- 512 (s = 512), SHA2- 512/224 (s = 224), SHA2-512/256 (s = 256) HMAC-SHA3 [FIPS198-1]:SHA3- 224 (s = 224), SHA3- 256 (s = 256), SHA3- 384 (s = 384), SHA3- 512 (s = 512) KMAC:KMAC-128 (112 ≤ s ≤ 128), KMAC-256 (112 ≤ s ≤ 256). See Note 8. HMAC-SHA-1 HMAC-SHA2- 224 HMAC-SHA2- 256 HMAC-SHA2- 384 HMAC-SHA2- 512 HMAC-SHA2- 512/224 HMAC-SHA2- 512/256 HMAC-SHA3- 224 HMAC-SHA3- 256 HMAC-SHA3- 384 HMAC-SHA3- 512 AES-CMAC KMAC-128 KMAC-256 AES-GMAC RSA Digital Signature Generation and Verification DigSig- SigGen DigSig-SigVer RSA Digital Signature Generation and Verification Signature type: ANSI X9.31 tested with the listed moduli and the following hash algorithms: SHA2- 256, SHA2-384, SHA2-512:k=2048 (s ~= 112), k=3072 (s ~= 128), k=4096 (s ~= 152) Signature type: PKCS 1.5 tested with the listed moduli and the following hash algorithms: SHA2-224, SHA2- 256, SHA2-384, SHA2-512, SHA2- 512/224, SHA2- 512/256:k=2048 (s ~= 112), k=3072 (s ~= 128), k=4096 (s ~= 152) RSA SigGen (FIPS186-4) RSA SigVer (FIPS186-4) Page 20 of 82 Name Type Description Properties Algorithms Signature type: PKCSPSS tested with the listed moduli and the following hash algorithms: SHA2- 224, SHA2- 256, SHA2-384, SHA2- 512, SHA2- 512/224, SHA2- 512/256:k=2048 (s ~= 112), k=3072 (s ~= 128), k=4096 (s ~= 152) Signature type: ANSI X9.31 tested with the listed moduli and the following hash algorithms: SHA-1*, SHA2-256, SHA2- 384, SHA2- 512:k=1024 (s ≤ 112), k=2048 (s ~= 112), k=3072 (s ~= 128), k=4096 (s ~= 152) Signature type: PKCS 1.5 tested with the listed moduli and the following hash algorithms: SHA-1*, SHA2-224, SHA2-256, SHA2- 384, SHA2-512, SHA2-512/224, SHA2- 512/256:k=1024 (s ≤ 112), k=2048 (s ~= 112), k=3072 (s ~= 128), k=4096 (s ~= 152) Signature type: PKCSPSS tested with the listed moduli and the following hash algorithms: SHA-1*, SHA2-224, SHA2-256, SHA2- 384, SHA2-512, SHA2-512/224, SHA2- Page 21 of 82 Name Type Description Properties Algorithms 512/256:k=1024 (s ≤ 112), k=2048 (s ~= 112), k=3072 (s ~= 128), k=4096 (s ~= 152) ECDSA Signature Generation and Signature Verification DigSig- SigGen DigSig-SigVer ECDSA Signature Generation and Signature Verification SigGen (includes SigGen Component) (tested with SHA2- 224, SHA2-256, SHA2-384, SHA2- 512, SHA2-512/224, SHA2-512/256, SHA3-224, SHA3- 256, SHA3-384, SHA3-512):B-233, K- 233, P-224 (s ~= 112); B-283, K-283, P-256 (s ~= 128); B- 409, K-409, P-384 (s ~= 192); B-571, K- 571, P-521 (s ~= 256) SigVer (tested with SHA-1*, SHA2-224, SHA2-256, SHA2- 384, SHA2-512, SHA2-512/224, SHA2-512/256, SHA3-224, SHA3- 256, SHA3-384, SHA3-512):B-163, K- 163, P-192 (s < 112); B-233, K-233, P-224 (s ~= 112); B-283, K- 283, P-256 (s ~= 128); B-409, K-409, P-384 (s ~= 192); B- 571, K-571, P-521 (s ~= 256) ECDSA SigGen (FIPS186-4) ECDSA SigVer (FIPS186-4) DSA Digital Signature Generation and Verification DigSig- SigGen DigSig-SigVer DSA Digital Signature Generation and Verification SigGen (tested with SHA2-224, SHA2- 256, SHA2-384, SHA2-512, SHA2- 512/224, SHA2- 512/256); SigGen using SHA3; no ACVP testing is available:L = 2048/N = 224 (s = 112), L = 2048/N = 256 (s = DSA SigGen (FIPS186-4) DSA SigVer (FIPS186-4) DSA SigGen [FIPS 186-4] Key Size, Key Strength: L = 2048/N = 224 (s = 112), L = 2048/N = 256 Page 22 of 82 Name Type Description Properties Algorithms 112) L = 3072/N = 256 (s = 128) SigVer (tested with SHA-1, SHA2-224, SHA2-256, SHA2- 384, SHA2-512, SHA2-512/224, SHA2-512/256); SigVer using SHA3; no ACVP testing is available:L = 1024/N = 160 (s < 112) L = 2048/N = 224 (s = 112), L = 2048/N = 256 (s = 112) L = 3072/N = 256 (s = 128) (s = 112) L = 3072/N = 256 (s = 128) Mode/Method: SigGen using SHA3 DSA SigVer [FIPS186-4] Key Size, Key Strength: L = 1024/N = 160 (s < 112) L = 2048/N = 224 (s = 112), L = 2048/N = 256 (s = 112) L = 3072/N = 256 (s = 128) Mode/Method: SigVer using SHA3 RSA Signature Primitive DigSig- SigGen Signature primitive Private Key format:CRT Public Exponent Mode:Fixed : k = 2048 RSA Signature Primitive Asymmetric Key Pair Generation AsymKeyPair- KeyGen AsymKeyPair- KeyVer Generation of asymmetric key pairs RSA KeyGen:k=2048 (s ~= 112), k=3072 (s ~= 128), k=4096 (s ~= 152) DSA KeyGen:L = 2048/N = 224 (s = 112), L = 2048/N = 256 (s = 112) L = 3072/N = 256 (s = 128) ECDSA KeyGen: Secret Generation Mode: Testing Candidates:B-233, K- 233, P-224 (s ~= 112); B-283, K-283, P-256 (s ~= 128); B- 409, K-409, P-384 (s ~= 192); B-571, K- 571, P-521 (s ~= 256) Safe Primes Key Generation, Safe Primes Key RSA KeyGen (FIPS186-4) DSA KeyGen (FIPS186-4) ECDSA KeyGen (FIPS186-4) Safe Primes Key Generation ECDSA KeyVer (FIPS186-4) Safe Primes Key Verification CKG - Section 4 and 5.1 Key Type : Asymmetric CKG - Section 4 and 5.2 Key Type: Asymmetric Page 23 of 82 Name Type Description Properties Algorithms Verification:ffdhe2048 (s = 112), ffdhe3072 (112 ≤ s ≤ 128), ffdhe4096 (112 ≤ s ≤ 152), ffdhe6144 (112 ≤ s ≤ 176), ffdhe8192 (112 ≤ s ≤ 200), MODP-2048 (s = 112), MODP-3072 (112 ≤ s ≤ 128), MODP-4096 (112 ≤ s ≤ 152), MODP-6144 (112 ≤ s ≤ 176), MODP-8192 (112 ≤ s ≤ 200) ECDSA KeyVer:B- 163, K-163, P-192 (s < 112); B-233, K-233, P-224 (s ~= 112); B- 283, K-283, P-256 (s ~= 128); B-409, K- 409, P-384 (s ~= 192); B-571, K-571, P-521 (s ~= 256) DSA PQGGen (FIPS186-4), DSA PQGGen [FIPS 186- 4] (VA):L = 2048/N = 224 (s = 112), L = 2048/N = 256 (s = 112) L = 3072/N = 256 (s = 128) DSA PQGVer (FIPS186-4), DSA PQGVer [FIPS 186-4] (VA):L = 1024/N = 160 (s < 112) L = 2048/N = 224 (s = 112), L = 2048/N = 256 (s = 112) L = 3072/N = 256 (s = 128) DSA PQGGen (FIPS186-4) DSA PQGVer (FIPS186-4) DSA PQGGen [FIPS 186-4] Key Size, Key Strength: L = 2048/N = 224 (s = 112), L = 2048/N = 256 (s = 112) L = 3072/N = 256 (s = 128) Mode/Method: PQGGen using SHA3 DSA PQGVer [FIPS 186-4] Key Size, Key Strength: L = 1024/N = 160 (s < 112) L = 2048/N = 224 (s = 112), L = 2048/N = 256 (s = 112) L = 3072/N = 256 (s = 128) Mode/Method: PQGVer using SHA3 Random Number Generation DRBG Random Number Generation - Hash_DRBG, CTR_DRBG and HMAC_DRBG Counter DRBG [SP800-90Ar1]:AES- 128 (s = 128), AES- 192 (s = 192), AES- 256 (s = 256) Hash DRBG [SP800- 90Ar1]:SHA-1 (s = 160), SHA2-256 (s = Counter DRBG Hash DRBG HMAC DRBG CKG – Section 4 Key Type: Symmetric Page 24 of 82 Name Type Description Properties Algorithms 256), SHA2-512 (s = 512) SHA3-256 (s = 256), SHA3-512 (s = 512) HMAC DRBG [SP800-90Ar1]:SHA- 1 (s = 160), SHA2- 256 (s = 256), SHA2- 512 (s = 512) SHA3- 256 (s = 256), SHA3- 512 (s = 512) Key Derivation KBKDF PBKDF Derive Keying Material KDA HKDF:SHA-1 (s = 160), SHA2-224 (s = 224), SHA2-256 (s = 256), SHA2-384 (s = 384), SHA2-512 (s = 512), SHA2- 512/224 (s = 224), SHA2-512/256 (s = 256), SHA3-224 (s = 224), SHA3-256 (s = 256), SHA3-384 (s = 384), SHA3-512 (s = 512) KDA OneStep:SHA-1 (s = 160), SHA2-224 (s = 224), SHA2-256 (s = 256), SHA2-384 (s = 384), SHA2-512 (s = 512), SHA2- 512/224 (s = 224), SHA2-512/256 (s = 256), SHA3-224 (s = 224), SHA3-256 (s = 256), SHA3-384 (s = 384), SHA3-512 (s = 512); HMAC-SHA-1 (s = 160), HMAC- SHA2-224 (s = 224), HMAC-SHA2-256 (s = 256), HMAC-SHA2- 384 (s = 384), HMAC-SHA2-512 (s = 512), HMAC-SHA2- 512/224 (s = 224), HMAC-SHA2- 512/256 (s = 256), HMAC-SHA3-224 (s = 224), HMAC-SHA3- 256 (s = 256), KDA HKDF SP800-56Cr2 KDA OneStep SP800-56Cr2 KDA TwoStep SP800-56Cr2 KDF ANS 9.42 KDF ANS 9.63 KDF KMAC Sp800-108r1 KDF SP800- 108 KDF SSH PBKDF TLS v1.2 KDF RFC7627 TLS v1.3 KDF CKG - Section 6.2 Key Type: Symmetric Page 25 of 82 Name Type Description Properties Algorithms HMAC-SHA3-384 (s = 384), HMAC-SHA3- 512 (s = 512); KMAC-128 (112 ≤ s ≤ 128), KMAC-256 (112 ≤ s ≤ 256) KDA TwoStep [SP800- 56Cr2]:HMAC-SHA-1 (s = 160), HMAC- SHA2-224 (s = 224), HMAC-SHA2-256 (s = 256), HMAC-SHA2- 384 (s = 384), HMAC-SHA2-512 (s = 512), HMAC-SHA2- 512/224 (s = 224), HMAC-SHA2- 512/256 (s = 256), HMAC-SHA3-224 (s = 224), HMAC-SHA3- 256 (s = 256), HMAC-SHA3-384 (s = 384), HMAC-SHA3- 512 (s = 512) KDF ANS 9.42 [SP800-135r1]:SHA-1 (s = 160), SHA2-224 (s = 224), SHA2-256 (s = 256), SHA2-384 (s = 384), SHA2-512 (s = 512), SHA2- 512/224 (s = 224), SHA2-512/256 (s = 256), SHA3-224 (s = 224), SHA3-256 (s = 256), SHA3-384 (s = 384), SHA3-512 (s = 512) KDF ANS 9.63 [SP800-135r1]:SHA2- 224 (s = 224), SHA2- 256 (s = 256), SHA2- 384 (s = 384), SHA2- 512 (s = 512) KDF KMAC [SP800- 108r1]:KMAC-128 (112 ≤ s ≤ 128), KMAC-256 (112 ≤ s ≤ 256) Page 26 of 82 Name Type Description Properties Algorithms KDF [SP800- 108r1]:CMAC- AES128 (s = 128), CMAC-AES192 (s = 192), CMAC-AES256 (s = 256), HMAC- SHA-1 (s = 160), HMAC-SHA2-224 (s = 224), HMAC-SHA2- 256 (s = 256), HMAC-SHA2-384 (s = 384), HMAC-SHA2- 512 (s = 512), HMAC-SHA2- 512/224 (s = 224), HMAC-SHA2- 512/256 (s = 256), HMAC-SHA3-224 (s = 224), HMAC-SHA3- 256 (s = 256), HMAC-SHA3-384 (s = 384), HMAC-SHA3- 512 (s = 512) KDF SSH [SP800- 135r1]:AES-128 (s = 128), AES-192 (s = 192), AES-256 (s = 256); SHA-1 (s = 160), SHA2-224 (s = 224), SHA2-256 (s = 256), SHA2-384 (s = 384), SHA2-512 (s = 512) PBKDF [SP800- 132]:SHA-1 (s = 160), SHA2-224 (s = 224), SHA2-256 (s = 256), SHA2-384 (s = 384), SHA2-512 (s = 512), SHA2-512/224 (s = 224), SHA2- 512/256 (s = 256), SHA3-224 (s = 224), SHA3-256 (s = 256), SHA3-384 (s = 384), SHA3-512 (s = 512) TLS v1.2 KDF RFC7627: TLS [RFC7627] key derivation with Page 27 of 82 Name Type Description Properties Algorithms Extended Master Secret (EMS) support, using the listed hash algorithms:SHA2-256 (s = 256), SHA2-384 (s = 384), SHA2-512 (s = 512) TLS v1.3 KDF [RFC8446]:HMAC- SHA2-256 (s = 256), HMAC-SHA2-384 (s = 384) KAS-1 KAS-SSC Scheme: EphemeralUnified, KAS Role: Initiator, Responder SP800-56Ar3 KAS- ECC-SSC per IG D.F Scenario 2 path (1):B-233, K-233, P- 224, B-283, K-283, P- 256, B-409, K-409, P- 384, B-571, K-571, and P-521 curves providing 112, 128, 192, or 256 bits of encryption strength KAS-ECC- SSC Sp800- 56Ar3 KAS-2 KAS-SSC Scheme: dhEphem. KAS Role: Initiator, Responder SP800-56Ar3 KAS- FFC-SSC IG D.F Scenario 2 path (1):2048, 3072, 4096, 6144, and 8192-bit key providing 112, 128, 152, 176, or 200 bits of encryption strength KAS-FFC- SSC Sp800- 56Ar3 KAS-3 KAS-SSC Scheme: KAS1, KAS2. KAS Role: Initiator, Responder SP800-56Br2 KAS- IFC-SSC IG D.F Scenario 1 path (1):2048, 3072, 4096, 6144, and 8192-bit key providing 112, 128, 152, 176, or 200 bits of encryption strength KAS-IFC-SSC KTS-1 KTS-Wrap Key Transport in compliance with [SP800- 38F] when approved using AES KW or KWP SP 800-38F KTS (key wrapping) per IG D.G :128, 192, and 256-bit keys providing 128, 192, or 256 bits of encryption strength AES-KW AES-KWP Page 28 of 82 Name Type Description Properties Algorithms KTS-2 KTS-Wrap Key Transport in compliance with [SP800- 38F] when approved AES (any mode) and approved HMAC, KMAC, GMAC or CMAC are used in combination SP 800-38F KTS (key wrapping) per IG D.G : 128, 192, and 256-bit keys providing 128, 192, or 256 bits of encryption strength AES-CBC AES-CFB1 AES-CFB128 AES-CFB8 AES-CTR AES-ECB AES-OFB AES-XTS Testing Revision 2.0 AES-CBC- CS2 AES-CBC- CS3 AES-CCM AES-CMAC AES-GCM AES-GMAC AES-KW AES-KWP HMAC-SHA-1 HMAC-SHA2- 224 HMAC-SHA2- 256 HMAC-SHA2- 384 HMAC-SHA2- 512 HMAC-SHA2- 512/224 HMAC-SHA2- 512/256 HMAC-SHA3- 224 HMAC-SHA3- 256 HMAC-SHA3- 384 HMAC-SHA3- 512 KMAC-128 KMAC-256 AES-CBC- CS1 KTS-3 KTS-Wrap Key Transport in compliance with [SP800- 38F] when approved using an SP 800-38F KTS (key wrapping) per IG D.G : 128, 192, and 256-bit keys providing 128, 192, or AES-CCM AES-CMAC AES-GCM AES-GMAC Page 29 of 82 Name Type Description Properties Algorithms Authenticated AES mode (AES CCM; AES GCM; AES GMAC; AES CMAC) 256 bits of encryption strength KTS-4 KTS-Encap Key Transport; Scheme: KTS- OAEP-basic (no key confirmation): RSA-OAEP, Key Encapsulation, Key Unencapsulation Key Generation Methods: rsakpg1-basic, rsakpg1-crt, rsakpg1-prime- factor, rsakpg2- basic, rsakpg2-crt, rsakpg2- prime- factor SP 800-56Brev2 KTS-IFC (key encapsulation and un-encapsulation) per IG D.G:2048, 3072, 4096, and 6144-bit key providing 112, 128, 152, or 176 bits of encryption strength KTS-IFC KAS ECC CDH Component KAS-SSC KAS-ECC-SSC primitive Curves:B-233, K-233, P-224 (s ~= 112); B- 283, K-283, P-256 (s ~= 128); B-409, K- 409, P-384 (s ~= 192); B-571, K-571, P-521 (s ~= 256). KAS-ECC CDH- Component SP800-56Ar3 Perform self- tests (All) BC-Auth BC-UnAuth DigSig- SigGen DigSig-SigVer DRBG KAS-SSC KBKDF MAC PBKDF SHA XOF All self-tests executed by the module at boot AES-ECB AES-GCM Hash DRBG Counter DRBG HMAC DRBG DSA SigGen (FIPS186-4) DSA SigVer (FIPS186-4) ECDSA SigGen (FIPS186-4) ECDSA SigVer (FIPS186-4) RSA SigGen (FIPS186-4) RSA SigVer (FIPS186-4) Page 30 of 82 Name Type Description Properties Algorithms HMAC-SHA2- 256 SHA-1 SHA3-256 SHA2-512 KDF ANS 9.42 KDF ANS 9.63 KAS-ECC- SSC Sp800- 56Ar3 KAS-FFC- SSC Sp800- 56Ar3 KAS-IFC-SSC KDA OneStep SP800-56Cr2 KDA TwoStep SP800-56Cr2 KDF SSH KDF SP800- 108 PBKDF TLS v1.2 KDF RFC7627 TLS v1.3 KDF Cryptographic Key Generation (CKG) CKG Direct generation of symmetric keys per NIST SP 800- 133r2 CKG - Section 4 and Section 6.1 Software Integrity Test MAC HMAC-SHA2-256 used to perform the software integrity test Key size: 256 bits HMAC-SHA2- 256 Cryptographic Key Generation (CKG) - AES XTS CKG AES XTS Key generated to comply with the approved key generation guidelines of NIST SP 800-133rev2, Section 6.3, Symmetric Keys Produced by Combining Multiple Keys and Other Data Key size:128, 256 bits CKG - Section 6.3 Table 10: Security Function Implementations Page 31 of 82 Equivalent strength in bits is given for each key or algorithm type (as some algorithms do not use or produce keys). The term s is used throughout to indicate security strength, following the notation used in the majority of the sources. Note 1: Preimage resistance strength applies to hash algorithms used in DRBG, KDFs. Described also in [SP800-57P1r5] Table 3. Note 2: Elliptic curve strengths are annotated as approximate (i.e., s ~=) since [SP800-186] Table 1 provides approximate security strengths. Note 3: [SP800-186] (cited in [SP800-140Cr2]) and [FIPS140-3_IG] C.K indicate that the Binary (B-) and Koblitz (K-) curves are deprecated. Note 4: Approved elliptic curves for ECC key agreement are given in [SP800-56Ar3] Table 24. Note 5: In Digital Signature applications, security strength is primarily associated with the asymmetric key pair specification. The hash function used must have equivalent strength equal to or greater than the security strength of the associated key pair. Note 6: Approved key types for FFC key agreement are given in [SP800-56Ar3] Tables 25, 26. The group notation of Table 26 is used for consistency with CAVP algorithm listings and ACVP capability registration. Note 7: Approved key types for IFC key agreement are given in [SP800-56Br2] Table 4. IFC key types approved for Digital Signature Generation and Verification are given also in [SP800- 57P1r5] Table 2. Equivalent strengths are annotated as approximate (i.e., s ~=) since [SP800- 56Br2] Table 4 provides approximate security strengths. Note 8: Security strengths for KDA One Step are given in [SP800-56Cr2] Table 1 (hash), Table 2 (HMAC) and Table 3 (KMAC). Note 9: Security strength for L=2048/N=256 is determined in accordance with [FIPS140-3_IG] D.B Strength of SSP Establishment Methods as y = min(x, N/2), where x is 112 and therefore y = min(112, 128) = 112. Other reference sources for the strengths are as follows: • AES (AES-128, AES-192, AES-256): [SP800-57P1r5] Table 2. • ECC (B-163, B-233, B-283, B-409, B-571, K-163, K-233, K-283, K-409, K-571, P-192, P-224, P-256, P-384, P-521): [SP800-186] Table 1. • FFC (L=1024/N=160, L=2048/N=224, L=2048/N=256, L=3072/N=256): [SP800-57P1r5] Table 2. • FFC (ffdhe2048, ffdhe3072, ffdhe4096, ffdhe6144, ffdhe8192, MODP-2048, MODP-3072, MODP-4096, MODP-6144, MODP-8192): [SP800-56Ar3] Tables 25 and 26. • IFC (k=1024, k=2048, k=3072, k=4096, k=6144, k=8192): [SP800-56Br2] Table 4. • KMAC (KMAC128, KMAC256): [SP800-56Cr2] Table 3. • SHA-1, SHA2 (SHA2-224, SHA2-256, SHA2-384, SHA2-512, SHA2-512/224, SHA2-512/256): [SP800-107] Table 1. • SHA3 (SHA3-224, SHA3-256, SHA3-384, SHA3-512): [SP800-57P1r5] Table 3. • SHAKE (SHAKE128, SHAKE256): [SP800-185] Section 8.1. 2.7 Algorithm Specific Information a. AES-GCM Usage AES GCM IV generation must be compliant to [FIPS140-3_IG] C.H Key/IV Pair Uniqueness Requirements from SP 800-38D Scenario 1(a), tested per option (ii) under C.H TLS/DTLS 1.2 protocol IV generation per RFC7627, Scenario 1(d) SSHv2 per RFC4252, RFC4253 and RFC5647 and Scenario 5 TLS 1.3 per RFC8446. IV Page 32 of 82 constructed in compliance with a protocol shall only be used in the context of the AES- GCM mode encryptions within the protocol. The Module does not implement the TLS and SSH protocols itself, however, it provides the cryptographic functions required for implementing the protocols. AES GCM encryption is used in the context of the SSH and TLS protocol versions 1.2 and 1.3. The module provides the primitives to support the AES GCM ciphersuites from [SP800-52r1] Section 3.3.1. The module’s implementation of AES-GCM is used together with an application that runs outside the module’s cryptographic boundary. The application negotiates the protocol session’s keys and the 32-bit nonce value of the IV. When the IV exhausts the maximum number of possible values for a given session key (2^64 - 1), this results in a failure in encryption and a handshake to establish a new encryption key will be required. It is the responsibility of the user of the module, i.e., the first party, client or server, to encounter this condition, to trigger this handshake in accordance with the TLS/SSH protocol. The Module also supports internal IV generation using the module’s approved DRBG. The IV is at least 96 bits in length per [SP800-38D] Section 8.2.2. Per [FIPS140-3_IG] C.H Scenario 2 and [SP800-38D], the approved DRBG generates outputs such that the (key, IV) pair collision probability is less than 2^-32. In each case, in the event that the Module power is lost and restored the user must ensure that the AES GCM encryption/decryption keys are re-distributed in accordance with IG C.H Scenario 3. The module does not support persistent storage of SSPs. The Module also supports importing of GCM IVs when an IV is not generated within the Module. In the approved mode, an IV must not be imported for encryption from outside the cryptographic boundary of the Module as this will result in a non-conformance. This is in accordance with IG 2.4.A: If the module operator (e.g., calling application) can do things outside of the module’s control/visibility that can take an otherwise approved algorithm and use it in a non-approved way (e.g., use PBKDF and/or AES XTS outside of storage applications), the corresponding module service may still be considered approved (and if so, shall have an approved indicator per AS02.24) and the Security Policy shall clarify how to use the service in an approved manner (per ISO 19790 B.2.2 on Overall security design and the rules of operation). b. PBKDF Usage The lower limit on the supported length of a password/passphrase used in key derivation is 1-character. The ASCII system comprises of 94 printable characters (letters, digits, punctuation, and symbols). For a 1-character password/passphrase chosen from 94 printable ASCII characters, the total combinations are: 94^1. Thus, the probability of guessing the correct password/passphrase on a random attempt is: 1/94^1 ~0.010. The module being a software module, does not restrict the usage of a password/string used as the password and input to the PBKDF. The onus is on the calling application to provide a password of an appropriate length based on the intended security strength (and size) of the key to be derived. In accordance with NIST SP 800-132, passwords shorter than 10 characters are usually considered to be weak. There are many other properties that may render a password Page 33 of 82 weak. For example, it is not advisable to use sequences of numbers or sequences of letters as passwords. Easily accessed personal information, such as the user’s name, phone number, and date of birth, should not be used directly as a password. Passphrases frequently consist solely of letters, but they make up for their lack of entropy by being much longer than passwords, typically 20 to 30 characters. Passphrases shorter than 20 characters are usually considered weak. The module complies with NIST SP 800-132 Section 5.4 Option 1 a and IG D.N. The iteration count values used range from 1 to 10000 per NIST SP 800-132 Section 5.2 whereby the iteration count shall be selected as large as possible, as long as the time required to generate the key using the entered password is acceptable for the users. Keys derived from passwords, as shown in SP 800-132, may only be used in storage applications. The security strength of the derived key is at least 112 bits. The module implements CKG per NIST SP 800-133r2 Section 6.2.2. c. AES-XTS Usage Usage In accordance with [SP800-38E], the XTS-AES algorithm shall only be used for confidentiality on storage devices. The Module complies with [FIPS140-3_IG] C.I by explicitly checking that Key_1 ≠ Key_2 before using the keys in the XTS-AES algorithm to process data with them. The module implements CKG per NIST SP 800-133r2 Section 6.3. d. Legacy Usage The module supports the following implementations for legacy use/support per NIST SP 800-131Ar2: • RSA (modulus 1024 bits), DSA (modulus 1024 bits), ECDSA (B-163, K-163 and P-192, curves) digital signature verification providing less than 112 bits of security strength. • RSA, ECDSA and DSA digital signature verification with SHA-1 used as the underlying hash algorithm. e. Component Validation List (CVL) In accordance with IG 2.4.B, all tested components that may be called during the operation of the module and shown in the module’s CVL certificates have been listed individually in Table 5. All vendor affirmed components that may be called during the operation of the module have also been listed individually in Table 6 per IG 2.4.B. f. FIPS 202 Usage In accordance with IG C.C Resolution 2. a., each SHA-3 and SHAKE function has been tested and validated on all of the module’s operating environments. Per Resolution 2. c., SHA-3 hash functions used as part of the higher-level DRBG algorithms for which the CAVP testing is not yet available have been vendor affirmed as documented in Table 6. g. RSA Usage • Per IG C.E, the module generates RSA signature keys using an approved key generation procedure per RSA KeyGen validated for conformance to FIPS 186-4 Cert. #A3548. • Per IG C.F, the RSA SigGen and SigVer implementations have been tested for all implemented RSA modulus lengths where CAVP testing is available. The Page 34 of 82 module supports generation of RSA keys with the following untested approved moduli/sizes: 4096