© 2023 Nuvoton Technology Corporation / atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. Nuvoton Cryptographic Library 2.0 Hardware Version 2.1.3 FIPS 140-3 Non-Proprietary Security Policy Version 1.4 Last update: 2023-07-01 Prepared by: atsec information security corporation 9130 Jollyville Road, Suite 260 Austin, TX 78759 www.atsec.com Nuvoton Cryptographic Library 2.0 FIPS 140-3 Non-Proprietary Security Policy © 2023 Nuvoton Technology Corporation / atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 2 of 26 1 Table of Contents 1 General............................................................................................................................................................ 3 2 Cryptographic Module Specification........................................................................................................... 4 2.1 Mode of Operation .................................................................................................................................. 4 2.2 Security Functions................................................................................................................................... 4 2.3 Module Overview .................................................................................................................................... 6 3 Cryptographic Module Ports and Interfaces............................................................................................... 7 4 Roles, services, and authentication ............................................................................................................ 8 5 Software/Firmware Security ....................................................................................................................... 12 5.1 Software/Firmware Integrity Technique ................................................................................................ 12 6 Operational Environment............................................................................................................................ 13 7 Physical Security ......................................................................................................................................... 14 8 Non-invasive Security ................................................................................................................................. 15 9 Sensitive Security Parameter Management.............................................................................................. 16 9.1 Random Number Generation................................................................................................................ 18 9.2 Key/SSP Generation............................................................................................................................. 18 9.3 Key/SSP Establishment ........................................................................................................................ 18 9.4 Key/SSP Entry and Output ................................................................................................................... 19 9.5 Key/SSP Storage .................................................................................................................................. 19 9.6 Key/SSP Zeroization............................................................................................................................. 19 10 Self-tests....................................................................................................................................................... 20 10.1 Pre-Operational Self-Tests ................................................................................................................... 20 10.2 Conditional Self-Tests........................................................................................................................... 20 10.2.1 Conditional Cryptographic Algorithm Self-Tests .......................................................................... 20 10.2.2 Conditional Pair-Wise Consistency Test...................................................................................... 21 10.2.3 Periodic Self-Test......................................................................................................................... 21 10.3 Self-Test Error Handling ....................................................................................................................... 21 11 Life-cycle assurance ................................................................................................................................... 22 11.1 Delivery and Operation ......................................................................................................................... 22 11.2 Crypto Officer Guidance ....................................................................................................................... 22 11.3 Operator Guidance................................................................................................................................ 22 11.3.1 End of Life .................................................................................................................................... 22 11.3.2 RSA Key Wrapping ...................................................................................................................... 22 12 Mitigation of other attacks.......................................................................................................................... 23 Nuvoton Cryptographic Library 2.0 FIPS 140-3 Non-Proprietary Security Policy © 2023 Nuvoton Technology Corporation / atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 3 of 26 1 General This document is the non-proprietary FIPS 140-3 Security Policy for Hardware version 2.1.3 of the Nuvoton Cryptographic Library 2.0. It has a one-to-one mapping to the [SP 800-140B] starting with section B.2.1 named “General” that maps to section 1 in this document and ending with section B.2.12 named “Mitigation of other attacks” that maps to section 12 in this document. This document also contains the security rules under which the module must operate and describes how this module meets the requirements as specified in FIPS PUB 140- 3 (Federal Information Processing Standards Publication 140-3) for a Security Level 1 module. Table 1 describes the individual security areas of FIPS 140-3, as well as the Security Levels of those individual areas: ISO/IEC 24759 Section 6. [Number Below] FIPS 140-3 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 Not Applicable 6 Operational Environment 1 7 Physical Security 1 8 Non-invasive Security Not Applicable 9 Sensitive Security Parameter Management 1 10 Self-tests 1 11 Life-cycle Assurance 1 12 Mitigation of Other Attacks Not Applicable Table 1 - Security Levels Nuvoton Cryptographic Library 2.0 FIPS 140-3 Non-Proprietary Security Policy © 2023 Nuvoton Technology Corporation / atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 4 of 26 2 Cryptographic Module Specification The Nuvoton Cryptographic Library 2.0 cryptographic module (hereafter referred to as “the module”) is a Hardware Single Chip cryptographic module. More specifically, the module is considered a sub-chip cryptographic subsystem as defined in IG 2.3.B. The module has been tested by atsec CST lab on the following platforms: Model Hardware [Part Number and Version] Firmware Version Tested Platform Notebook Embedded Controller (EC) 2.1.3 N/A Nuvoton NPCX998H Desktop Super I/O (SIO) 2.1.3 N/A Nuvoton NPCD321H Table 2 - Cryptographic Module Tested Configuration 2.1 Mode of Operation The module supports approved services in a FIPS approved mode of operation. There are no allowed algorithms used in approved mode. There are no non-approved algorithms used in the approved mode with no security claimed. There are no non-approved algorithms used in a non-approved mode. 2.2 Security Functions The Table 3 below lists all security functions of the module, including specific key strengths employed for approved services, and implemented modes of operation. CAVP Cert Algorithm and Standard Mode / Method Description / Key / Curve / Modulus Size(s) Use / Function A1347 AES [SP 800-38 A] [SP 800-38 C] CBC ECB CCM OFB CFB128 128, 192, 256 bits AES Encryption and AES Decryption AES [SP 800-38 A] CTR 128, 192, 256 bits AES [SP 800-38 D] GCM 1 [1] 128, 192, 256 bits AES [SP 800-38 B] CMAC 128, 192, 256 bits CMAC Message Authentication Code Generation and CMAC Message Authentication Code Verification 1 The module’s AES-GCM implementation conforms to IG C.H scenario 2. The module uses the approved Hash_DRBG to generate the IV with a length of 96-bits. The entropy source producing the DRBG seed is located inside the module’s cryptographic boundary Nuvoton Cryptographic Library 2.0 FIPS 140-3 Non-Proprietary Security Policy © 2023 Nuvoton Technology Corporation / atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 5 of 26 CAVP Cert Algorithm and Standard Mode / Method Description / Key / Curve / Modulus Size(s) Use / Function AES [SP 800-38 D] GMAC 128, 192, 256 bits GMAC Message Authentication Code Generation and GMAC Message Authentication Code Verification HMAC [FIPS 198-1] HMAC-SHA2-256 HMAC-SHA2-384 HMAC-SHA2-512 256, 384, 512 bits HMAC Message Authentication Code Generation RSA [FIPS 186-4] RSA-PSS using SHA2- 256, SHA2-384 or SHA2- 512 RSA-PKCS#1 v1.5 using SHA2-256, SHA2-384 or SHA2-512 2048 or 3072 modulus RSA Signature Generation, RSA Signature Verification KTS-IFC [SP800-56Brev2] KTS-OAEP-basic 2048 or 3072 modulus RSA Key Transport (key wrapping and un-wrapping) ECDSA [FIPS 186-4] B.4.2 Testing Candidates P-256, P-384, P-521 curves ECDSA Key Generation NA P-256, P-384, P-521 curves ECDSA Key Verification SHA2-256, SHA2-384, SHA2-512 P-256, P-384, P-521 curves ECDSA Signature Generation, ECDSA Signature Verification N/A P-256, P-384, P-521 curves ECDSA Signature Generation Component SHS [FIPS 180-4] SHA2-256 SHA2-384 SHA2-512 N/A Message Digest Generation KAS-ECC-SSC [SP800-56Arev3] ephemeralUnified P-256, P-384, P-521 curves EC Diffie-Hellman Shared Secret Computation Hash_DRBG [SP800-90A] SHA2-512 512 Random Number Generation Vendor Affirmed CKG (Cryptographic Key Generation) [SP800-133rev2] SP800-133rev2 Section 4: direct output U from approved DRBG; no XOR, no post-processing N/A ECDSA Key Generation N/A ENT(P) [SP800-90B] N/A Used to seed the SP800- 90A DRBG Random Number Generation Table 3 - Approved Algorithms Nuvoton Cryptographic Library 2.0 FIPS 140-3 Non-Proprietary Security Policy © 2023 Nuvoton Technology Corporation / atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 6 of 26 2.3 Module Overview Figure 1 depicts the module’s block diagram with a red outline indicating the Tested Operational Environment’s Physical Perimeter (TOEPP) of the NPCX998H and the NPCD321H and the blue dotted outline depicting the cryptographic boundary of the sub-chip embedded within the physical perimeter. Figure 1 - [Block Diagram] Figure 2 and 3 shows a picture of the NPCX998H (e.g., EC) and the NPCD321H (e.g., SIO) in which the sub- chip module is embedded. Figure 2: Nuvoton NPCX998HA0BX Figure 3: Nuvoton NPCD321HA0DX Nuvoton Cryptographic Library 2.0 FIPS 140-3 Non-Proprietary Security Policy © 2023 Nuvoton Technology Corporation / atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 7 of 26 3 Cryptographic Module Ports and Interfaces The underlying logical interfaces of the module are the module’s C language Application Programming Interfaces (APIs). All data input and data output, status ports and control ports are directed through the interface of the module’s logical component, which are the APIs while the physical interface is considered the I/O ports of the sub-chip module through which the data input and data output, status output and control input traverse. Physical Interface Logical Interface2 Data that passes over port/interface I/O Ports Data Input Data inputs are provided in the variables passed in the API and callable service invocations, generally through caller-supplied buffers I/O Ports Data Output Data outputs are provided in the variables passed in the API and callable service invocations, generally through caller-supplied buffers I/O Ports Control Input Control inputs which control the operation of the module are provided through dedicated parameters. I/O Ports Status Output Status output is provided in return codes and through messages. Documentation for each API lists possible return codes. A complete list of all return codes returned by the C language APIs within the module is provided in the header files and the API documentation. Messages are documented also in the API documentation. Power Port Power Interface Power interface is provided internally by TEOPP in which the cryptographic module is embedded. Table 4 - Ports and Interfaces 2 The module does not implement a Control Output interface. Nuvoton Cryptographic Library 2.0 FIPS 140-3 Non-Proprietary Security Policy © 2023 Nuvoton Technology Corporation / atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 8 of 26 4 Roles, services, and authentication The module supports two authorized roles: A Crypto Officer Role and a User Role. No support is provided for a Maintenance operator. The module does not implement a bypass mode nor concurrent operators. When a device is delivered, the Crypto Officer is responsible for initializing the module i.e., configure the device by properly setting up key registers for storage of keys/CSPs. The Crypto Officer is implicitly assumed. The User can perform services from Table 5 and 5a only after the Crypto Officer takes possession by initializing it, thus creating data to be protected is generated. The Users of the module are software applications that implicitly assume the User Role when requesting any cryptographic services provided by the module. FIPS 140-3 does not require authentication mechanism for level 1 modules. Therefore, the module does not implement an authentication mechanism. The module only implements Approved security functions in an Approved mode. The Table 5 below lists services available. The module provides an approved service indicator by receiving a return code of “NCL_STATUS_OK to indicate that the service executed an approved security function. NOTE: The module does not implement any non-Approved Algorithms in the Approved Mode of Operation (neither with nor without security claim). The module does not implement any non-approved security functions. The abbreviations of the access rights to keys and SSPs have the following interpretation: G = Generate: The module generates or derives the SSP. R = Read: The SSP is read from the module (e.g., the SSP is output). W = Write: The SSP is updated, imported, or written to the module. E = Execute: The module uses the SSP in performing a cryptographic operation. Z = Zeroise: The module zeroises the SSP. Service Description Inputs Outputs Approved Security Functions Keys and/or SSPs Roles Access rights to Keys and/or SSPs Indicator AES Encryption Data Encryption AES key and plain text cipher text AES-CBC AES-ECB AES-CCM AES-OFB AES-CFB128 AES-CTR AES-GCM AES key User W, E NCL STATUS OK AES Decryption Data Decryption AES key and cipher text plain text AES-CBC AES-ECB AES-CCM AES-OFB AES-CFB128 AES-CTR AES-GCM AES key User W, E NCL STATUS OK CMAC Message Authentication Code Generation Message Authenticatio n Code Generation AES key and message M MAC T AES-CMAC AES key User W, E NCL STATUS OK Nuvoton Cryptographic Library 2.0 FIPS 140-3 Non-Proprietary Security Policy © 2023 Nuvoton Technology Corporation / atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 9 of 26 Service Description Inputs Outputs Approved Security Functions Keys and/or SSPs Roles Access rights to Keys and/or SSPs Indicator CMAC Message Authentication Code Verification Message Authenticatio n Code Verification MAC and Message “VALID” or “INVALID” AES-CMAC AES key User W, E NCL STATUS OK GMAC Message Authentication Code Generation Message Authenticatio n Code Generation AES key, AAD authenticatio n tag T AES-GMAC AES key User W, E NCL STATUS OK GMAC Message Authentication Code Verification Message Authenticatio n Code Verification AES key, AAD, IV, tag T “PASS” or “FAIL” AES-GMAC AES key User W, E NCL STATUS OK HMAC Message Authentication Code Generation Message Authenticatio n Code Generation HMAC key and message MAC HMAC-SHA2-256 HMAC-SHA2-384 HMAC-SHA2-512 HMAC key User W, E NCL STATUS OK Message Digest Generation SHS Message Digest Generation message digest (hash value) SHA2-256 SHA2-384 SHA2-512 none User N/A NCL STATUS OK RSA Key Transport (encapsulation ) Key Wrapping using KTS- OAEP-basic RSA public key and key to be wrapped encrypted key KTS-IFC RSA public key User W, E NCL STATUS OK RSA Key Transport (un- encapsulation) Key Un- wrapping using KTS- OAEP-basic RSA private key and key to be un- wrapped plaintext key KTS-IFC RSA private key User W, E NCL STATUS OK RSA Digital Signature Generation Digital Signature Generation RSA private key and message signature RSA-PSS, RSA-PKCS#1 v1.5 Signature Generation, HMAC_DRBG RSA private key User W, E NCL STATUS OK RSA Digital Signature Verification Digital Signature Verification RSA public key and signature True or False RSA-PSS, RSA-PKCS#1 v1.5 Signature Verification RSA public key User W, E NCL STATUS OK ECDSA Digital Signature Generation Digital Signature Generation ECDSA private key and message signature ECDSA Digital Signature Generation, HMAC_DRBG ECDSA private key User W, E NCL STATUS OK ECDSA Digital Signature Generation Component Digital Signature Generation Component ECDSA private key and message digest signature ECDSA Digital Signature Generation Component, HMAC_DRBG ECDSA private key User W, E NCL STATUS OK Nuvoton Cryptographic Library 2.0 FIPS 140-3 Non-Proprietary Security Policy © 2023 Nuvoton Technology Corporation / atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 10 of 26 Service Description Inputs Outputs Approved Security Functions Keys and/or SSPs Roles Access rights to Keys and/or SSPs Indicator ECDSA Digital Signature Verification Digital Signature Verification ECDSA public key and signature True or False ECDSA Digital Signature Verification ECDSA public key User W, E NCL STATUS OK ECDSA Key Generation Asymmetric Key Pair Generation Curve size generated private and public key pair ECDSA Key Generation, HMAC_DRBG, CKG ECDSA Key pair User G, R NCL STATUS OK EC Diffie- Hellman Shared Secret Computation Shared Secret Computation using Elliptic Curve Cryptography received public key and possesse d private key shared secret KAS-ECC-SSC ECDH public key User W, E NCL STATUS OK ECDH private key E shared secret G, R Random Number Generation Deterministic Random Number Generation Seed random numbers Hash_DRBG Entropy input string, nonce User W NCL STATUS OK seed, V, and C G Module Version Info Outputs Module Name + Version Number None Module Name + Module Version Number N/A None User N/A N/A SSP Zeroisation zeroizes crypto function context and releases memory space handle of crypto function context zeroized and released memory space N/A All Keys / SSPs User Z N/A Show-Status Outputs Operational/ Error status of the module None Operational/ Error status N/A None User N/A N/A Self-test3 Executes on- demand self- test and outputs Pass/Fail status None Pass/Fail status HMAC-SHA2- 512 HMAC Key User E NCL STATUS OK OK’ SHA2-256 N/A AES-CCM AES Key AES-CBC AES Key 3 Keys and SSPs used in this service are hard-coded in the module and used exclusively for self-tests. Nuvoton Cryptographic Library 2.0 FIPS 140-3 Non-Proprietary Security Policy © 2023 Nuvoton Technology Corporation / atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 11 of 26 Service Description Inputs Outputs Approved Security Functions Keys and/or SSPs Roles Access rights to Keys and/or SSPs Indicator RSA PKCS#1 v1.5 Signature Generation RSA Private Key RSA PKCS#1 v1.5 Signature Verification RSA Public Key KTS-IFC (encapsulation) RSA Public Key ECDSA Signature Generation ECDSA Private Key ECDSA Signature Verification ECDSA Public Key KAS-ECC-SSC ECDH Key Pair, Shared Secret Hash_DRBG Seed Table 5 - Approved Services Nuvoton Cryptographic Library 2.0 FIPS 140-3 Non-Proprietary Security Policy © 2023 Nuvoton Technology Corporation / atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 12 of 26 5 Software/Firmware Security 5.1 Software/Firmware Integrity Technique The module’s executable code is programmed in a masked ROM which is a type of Read-Only Memory (ROM) where content is programmed by the integrated circuit manufacturer during the silicon manufacturing (rather than by the Operator of the module). The memory technology is non reconfigurable memory as defined in IG 5.A, which will not have any change or degradation of data for a minimum of 10 years after manufactured date. As such, it is considered a hardware only module with a non-modifiable operational environment. The requirements of this area are not applicable to the module. Nuvoton Cryptographic Library 2.0 FIPS 140-3 Non-Proprietary Security Policy © 2023 Nuvoton Technology Corporation / atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 13 of 26 6 Operational Environment The Nuvoton Cryptographic Library 2.0 operates in a non-modifiable operational environment. The module is programmed by the manufacturer during the silicon manufacturing (rather than by the user). It maintains its own memory region which can only be accessed by the module. There is no additional application present within the operating environment. The module does not spawn any cryptographic processes. The operational environments in which the module was tested are listed in Table 2. Nuvoton Cryptographic Library 2.0 FIPS 140-3 Non-Proprietary Security Policy © 2023 Nuvoton Technology Corporation / atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 14 of 26 7 Physical Security The Nuvoton Cryptographic Library 2.0 cryptographic module is a Hardware cryptographic module in a single chip embodiment. More specifically, the module is considered a sub-chip cryptographic subsystem. The module consists of production-grade components that include standard passivation techniques (e.g., a conformal coating applied over the module’s circuitry to protect against environmental or other physical damage). The module does not implement a maintenance role and has no maintenance access interface. Nuvoton Cryptographic Library 2.0 FIPS 140-3 Non-Proprietary Security Policy © 2023 Nuvoton Technology Corporation / atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 15 of 26 8 Non-invasive Security Currently, the non-invasive security is not required by FIPS 140-3 (see NIST SP 800-140F). The requirements of this area are not applicable to the module. Nuvoton Cryptographic Library 2.0 FIPS 140-3 Non-Proprietary Security Policy © 2023 Nuvoton Technology Corporation / atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 16 of 26 9 Sensitive Security Parameter Management The following table summarizes the keys and Sensitive Security Parameters (SSPs) that are used by the cryptographic services implemented in the module. Modification of PSPs by unauthorized operators is prohibited. Key/SSP Name/ Type Strength Security Function and Cert. Number Generation Import /Export Establishment Storage Zeroization Use & related keys AES key 128, 192, 256 - bits of security strength AES CAVP Cert. #A1347 Not Applicable . The key is entered via API parameter Entry: N/A. The key may be entered into the module within the TOEPP4 via API input parameters in plaintext. Output: N/A Not Applicable for sub-chip systems that only communicat e with subsystems within the same OE, as stated in IG 2.3.B Not Applicable . The key is ephemeral and only held in memory during execution of service. automatic zeroization when structure is deallocate d or when the system is powered down. Use: AES Data Encryption and Decryption Related Keys: N/A RSA private and public key 112 to 128 bits of security strength KTS-IFC CAVP Cert. #A1347 Not Applicable . The key is entered via API parameter Entry: N/A. The key may be entered into via API input parameters in plaintext. Output: N/A Not Applicable for sub-chip systems that only communicat e with subsystems within the same OE, as stated in IG 2.3.B Not Applicable . The key is ephemeral and only held in memory during execution of service. automatic zeroization when structure is deallocate d or when the system is powered down. Use: Key Encapsulation and Un- encapsulation Related Keys: N/A RSA private and public key pair 112 to 128 bits of security strength RSA CAVP Cert. #A1347 Not Applicable . The key is entered via API parameter Entry: N/A. The key may be entered into the module within the TOEPP via API input parameters in plaintext. Output: N/A Not Applicable for sub-chip systems that only communicat e with subsystems within the same OE, as stated in IG 2.3.B Not Applicable . The key is ephemeral and only held in memory during execution of service. automatic zeroization when structure is deallocate d or when the system is powered down. Use: Signature Generation and Verification Related Keys: N/A ECDSA private and public key pair 112 to 256 bits of security strength ECDSA CAVP Cert. #A1347 The private keys can be generated using FIPS186-4 Key Generatio n method, and the random Entry: N/A. The key may be entered into the module within the TOEPP via API input parameters in plaintext. Output: The key may be Not Applicable for sub-chip systems that only communicat e with subsystems within the same OE, as stated in IG 2.3.B Not Applicable . The key is ephemeral and only held in memory during execution of service. automatic zeroization when structure is deallocate d or when the system is powered down. Use: Key Generation and Verification, Signature Generation and Verification Related Keys: DRBG internal state 4 TOEPP - Tested Operational Environment’s Physical Perimeter Nuvoton Cryptographic Library 2.0 FIPS 140-3 Non-Proprietary Security Policy © 2023 Nuvoton Technology Corporation / atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 17 of 26 value used in the key generation is generated using SP800- 90A DRBG output from the module within the TOEPP 5 via API output parameters in plaintext HMAC key 112 or greater bits of security strength HMAC CAVP Cert. #A1347 Not Applicable . The key is entered via API parameter Entry: N/A. The key may be entered into the module within the TOEPP via API input parameters in plaintext. Output: N/A Not Applicable for sub-chip systems that only communicat e with subsystems within the same OE, as stated in IG 2.3.B Not Applicable . The key is ephemeral and only held in memory during execution of service. automatic zeroization when structure is deallocate d or when the system is powered down. Use: Hashed Message Authentication Code Generation Related Keys: N/A ECDH key pair (including intermediate key generation values) 112 to 256-bits of security strength KAS-ECC-SSC CAVP Cert. #A1347 The private keys are generated using FIPS186-4 Key Generatio n method, and the random value used in the key generation is generated using SP800- 90A DRBG Entry: N/A. The public key may be entered into the module within the TOEPP via API input parameters in plaintext. Output: The key may be output from the module within the TOEPP via API output parameters in plaintext Not Applicable for sub-chip systems that only communicat e with subsystems within the same OE, as stated in IG 2.3.B Not Applicable . The key is ephemeral and only held in memory during execution of service. automatic zeroization when structure is deallocate d or when the system is powered down. Use: ECDH Shared Secret Computation Related Keys: DRBG internal state, EC Diffie-Hellman Shared Secret ECC Shared Secret N/A Entry: N/A Output: The key may be output from the module within the TOEPP via API output parameters in plaintext Not Applicable for sub-chip systems that only communicat e with subsystems within the same OE, as stated in IG 2.3.B Use: ECDH Shared Secret Computation Related Keys: ECDH key pair Entropy Input String + Nonce 256-bits of security strength N/A N/A Entry: N/A. obtained from the ENT(P) found within N/A Use: Random Number Generation 5 TOEPP - Tested Operational Environment’s Physical Perimeter Nuvoton Cryptographic Library 2.0 FIPS 140-3 Non-Proprietary Security Policy © 2023 Nuvoton Technology Corporation / atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 18 of 26 the cryptographi c boundary. Output: N/A Related Keys: ECDSA and ECDH key pairs DRBG internal state (i.e., Hash_DRB G V and C values), Seed 256-bits of security strength N/A Derived from entropy input string as defined by SP800- 90A Entry: N/A Output: N/A N/A Use: Random Number Generation Related Keys: ECDSA and ECDH key pairs Table 6 - SSPs 9.1 Random Number Generation The module employs a Hash_DRBG using a SHA-512 PRF. Per section 10.1.1.1 of [SP800-90A], the internal state of the Hash_DRBG is the V, C, and reseed counter. The Hash_DRBG is seeded by an ENT(P) which provides 256-bits of entropy to seed and reseed the DRBG during initialization and reseeding. The estimated amount of entropy per entropy output bit is ~0.6/bit. The DRBG internal state is not accessible by non-DRBG functions. All random values used by approved security functions, SSP generation, or SSP establishment method are provided by the Hash_DRBG. Table 7 - Non-Deterministic Random Number Generation Specification 9.2 Key/SSP Generation The module generates Keys and SSPs in accordance with FIPS 140-3 IG D.H. The cryptographic module performs Cryptographic Key Generation (CKG) for asymmetric keys as per [SP800-133rev2] (vendor affirmed), compliant with [FIPS186-4] and using DRBG compliant with [SP800-90Arev1]. A seed (i.e., the random value) used in asymmetric key generation is obtained from [SP800-90Arev1] DRBG as described in Section 4 of [SP800-133rev2]. The key generation service for ECDSA, as well as the [SP 800-90Arev1] DRBG have been ACVT tested with algorithm certificates found in Table 3. 9.3 Key/SSP Establishment The module provides the following key/SSP establishment services: 1. The module implements KAS-ECC-SSC EC Diffie-Hellman Shared Secret Computation compliant to [SP800-56Arev3] and IG D.F Scenario (2) path (1). o The shared secret computation provides between 128 and 256 bits of encryption strength. 2. Within the TOEPP, the module offers RSA key wrapping and unwrapping using KTS-OAEP-basic scheme. The implementation supports 2048 and 3072 modulus size, with both key encapsulation and un-encapsulation supported. The module does not implement key confirmation. See section 11.3.2 for operator guidance details. o The SSP establishment methodology provides 112 or 128 bits of encryption strength. Entropy Source Minimum number of bits of entropy Details SP800-90B compliant ENT(P) 256 The entropy pool is filled with random bits provided by an SP800- 90B compliant ENT(P) whose noise source is from Ring Oscillators in hardware TRNG. Nuvoton Cryptographic Library 2.0 FIPS 140-3 Non-Proprietary Security Policy © 2023 Nuvoton Technology Corporation / atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 19 of 26 9.4 Key/SSP Entry and Output Keys/SSPs entered or output the module are electronically entered in plaintext form from the invoking User firmware running on the same device. No Keys/SSPs are entered or output from the module to outside the TOEPP. According to IG 2.3.B, Transferring SSPs including the entropy input between a sub-chip cryptographic subsystem and an intervening functional subsystem for Security Levels 1 and 2 on the same single chip is considered as not having Sensitive Security Parameter Establishment crossing the HMI of the sub-chip module per IG 9.5.A. 9.5 Key/SSP Storage The module does not provide persistent storage for keys/SSPs. Keys/SSPs are stored in memory only and are received for use by the module only at the request of the User firmware. 9.6 Key/SSP Zeroization Keys and SSPs are explicitly zeroized automatically when structure associated with the cipher is deallocated or implicitly when the device is powered down thereby rendering the data irretrievable. Interface with the module is inhibited while zeroization is being performed. For Keys and SSPs explicitly zeroized automatically the successful completion of a requested service suffices as the implicit indicator that zeroisation has completed. Nuvoton Cryptographic Library 2.0 FIPS 140-3 Non-Proprietary Security Policy © 2023 Nuvoton Technology Corporation / atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 20 of 26 10 Self-tests Self-tests ensure that the module is not corrupted and that the cryptographic algorithms work as expected. While the module is executing the self-test, no services are not available, and input and output are inhibited. The module will boot only after successfully passing the HMAC-SHA2-512 and SHA2-256 CASTs. If an error is detected in any self-test, the module will enter the Error State. 10.1Pre-Operational Self-Tests The module is solely implemented in hardware (i.e., only contains executable code that is stored in non- reconfigurable masked ROM6 ). As such, the module does not perform any pre-operational software/firmware integrity test, but instead performs a Cryptographic Algorithm Self-Test on the HMAC-SHA2-512 and SHA2-256 algorithms when the module is powered on. The module does not implement a pre-operational bypass test nor pre-operational critical functions test. 10.2Conditional Self-Tests The module performs a conditional self-test when the conditions specified for the following tests occur: Conditional Cryptographic Algorithm Self-Test Conditional Pair-Wise Consistency Test The module does not implement a Software/Firmware Load Test, Manual Entry Test, Conditional Bypass Test nor Conditional Critical Functions Test. 10.2.1 Conditional Cryptographic Algorithm Self-Tests The module conducts conditional cryptographic algorithm self-test prior to the first operational use of each cryptographic algorithm. The table below describe the conditional tests supported by the module. 6 A masked ROM is a type of Read-Only Memory (ROM) where content is programmed by the integrated circuit manufacturer during the silicon manufacturing. Algorithm Test HMAC • HMAC-SHA2-512 MAC Generation KAT SHA • SHA2-256 Message Digest KAT AES • AES-CCM Encryption KAT using 128-bit key • AES-CBC Decryption KAT using 128-bit key KTS-IFC • KTS-OAEP-basic Encryption KAT with 2048 -bit key and SHA2-256 • KTS-OAEP-basic Decryption KAT with 2048 -bit key and SHA2-256 RSA • PKCS#1 v1.5 Signature Generation KAT with 2048 -bit key and SHA2-256 • PKCS#1 v1.5 Signature Verification KAT with 2048 -bit key and SHA2-256 ECDSA • ECDSA Signature Generation KAT with P-256 curve and SHA2-256 • ECDSA Signature Verification KAT with P-256 curve and SHA2-256 KAS-ECC-SSC • ECDH shared secret computation KAT with P-256 curve Nuvoton Cryptographic Library 2.0 FIPS 140-3 Non-Proprietary Security Policy © 2023 Nuvoton Technology Corporation / atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 21 of 26 Table 8 - Conditional Cryptographic Algorithm Self-Tests 10.2.2 Conditional Pair-Wise Consistency Test The module performs a pair-wise consistency test on when a new ECDSA key pair is generated. The pair-wise consistency test is performed by calculating a digital signature and then verifying it. If the signature cannot be verified, the pair-wise consistency test shall fail. 10.2.3 Periodic Self-Test During runtime, operators can initiate the conditional self-tests on demand by calling NCL_MISC_SelfTest and passing the algorithm as an argument. The module’s entropy source is powered on only momentarily to seed the module’s SP800-90B DRBG. The module performs ENT health tests defined in Section 4 of SP800-90A on the generated output prior to seeding the SP800-90B DRBG. After completing its execution, the entropy source powers down. 10.3Self-Test Error Handling For any of the conditional self-tests, the module enters an error state upon failing the self-test. A failure in the conditional CAST or conditional PCT results in “NCL_STATUS_FAIL”. Likewise, a failure of the ENT health tests will result in an “ENTROPY_SRC_ERROR” status returned to the user. When in the error state, no cryptographic services are provided, control and data output is prohibited. The only method to clear this error state is to power cycle the device and then successfully pass the conditional self-tests. Cause of Error Status Indicator failure in conditional self-test (conditional CAST or conditional PCT) NCL_STATUS_FAIL failure of the ENT health test ENTROPY_SRC_ERROR Table 9 - Error States Algorithm Test Hash_DRBG • Hash_DRBG random number generation KAT using predefined seed. ENT • RCT (Repetition Count Test) • APT (Adaptive Proportion Test) Nuvoton Cryptographic Library 2.0 FIPS 140-3 Non-Proprietary Security Policy © 2023 Nuvoton Technology Corporation / atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 22 of 26 11 Life-cycle assurance 11.1Delivery and Operation As explained in Section 10.1.1, the module is placed in a masked ROM by manufacturer during the silicon manufacturing. The module is delivered as part of the Nuvoton NPCX998H and Nuvoton NPCD321H platforms (listed in Table 2). During manufacturing – each chip is tested to make sure the masked ROM was manufactured correctly; this is done using CRC32 algorithm on the entire masked ROM code on each device before it is shipped out. During execution – As part of the device boot process, the code is verified by a dedicated hardware inside the chip that checks every byte of code compared to a known parity bit. If any byte fails, the parity test then an internal error is generated; the error is handled by the application (User) firmware. 11.2Crypto Officer Guidance The module is configured to be operational by default. If the device starts up successfully and has successfully passed the HMAC-SHA2-512 and SHA2-256 CAST, it is operating correctly and can begin servicing User requests. 11.3Operator Guidance 11.3.1 End of Life Once the module reaches its end-of-life stage (End of Life (EOL) date for the Nuvoton device is 10 years from manufacturing date) or sanitation is initiated by the module’s Operator, it is the Operator’s responsibility to clear all existing SSPs from the module. This can be achieved by either performing a full device reset, or by explicitly invoking the following sequence of APIs to clear the data from all modules: • NCL_SHA_Clear - For each of existing SHA and HMAC contexts • NCL_DRBG_Clear - For each of existing DRBG contexts • NCL_AES_Clear - For each of existing AES contexts • NCL_RSA_Clear - For each of existing RSA contexts • NCL_ECC_Clear - For each of existing ECDSA and ECDH contexts 11.3.2 RSA Key Wrapping To comply with SP800-56Brev2 assurances found in its Section 6 (specifically SP800-56Brev2 Section 6.4 Required Assurances) The entity using the IUT must obtain required assurances listed in section 6.4 of SP 800- 56BRev2 by performing the following steps: 1. The entity requesting the RSA key unwrapping (un-encapsulation) service from the module, shall only use an RSA private key that was generated by an active FIPS validated module that implements FIPS 186-4 compliant RSA key generation service and performs the key pair validity and the pairwise consistency as stated in section 6.4.1.1 of the SP 800-56BRev2. Additionally, the entity shall renew these assurances over time by using any method described in section 6.4.1.5 of the SP 800-56BRev2. 2. For use of an RSA key wrapping (encapsulation) service in the context of key transport per IG D.G, the entity using the module, shall verify the validity of the peer's public key using any method specified in section 6.4.2.1 of the SP 800-56BRev2. 3. The entity using the module, shall confirm the peer's possession of private key by using any method specified in section 6.4.2.3 of the SP 800-56BRev2. Nuvoton Cryptographic Library 2.0 FIPS 140-3 Non-Proprietary Security Policy © 2023 Nuvoton Technology Corporation / atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 23 of 26 12 Mitigation of other attacks The module does not implement security mechanisms to mitigate other attacks. Nuvoton Cryptographic Library 2.0 FIPS 140-3 Non-Proprietary Security Policy © 2023 Nuvoton Technology Corporation / atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 24 of 26 Appendix A. Glossary and Abbreviations AES Advanced Encryption Standard ACVP Algorithm Certification Validation Program CBC Cipher Block Chaining CAST Cryptographic Algorithm Self-Test CCM Counter with Cipher Block Chaining-Message Authentication Code CFB Cipher Feedback CMAC Cipher-based Message Authentication Code CMVP Cryptographic Module Validation Program CSP Critical Security Parameter CTR Counter Mode DRBG Deterministic Random Bit Generator ECB Electronic Code Book ECC Elliptic Curve Cryptography ENT Entropy Source EOL End Of Life FFC Finite Field Cryptography FIPS Federal Information Processing Standards Publication GCM Galois Counter Mode HMAC Hash Message Authentication Code KAS Key Agreement Scheme KAT Known Answer Test KW AES Key Wrap KWP AES Key Wrap with Padding MAC Message Authentication Code NIST National Institute of Science and Technology OFB Output Feedback PSS Probabilistic Signature Scheme RSA Rivest, Shamir, Addleman SHA Secure Hash Algorithm SHS Secure Hash Standard SSC Shared Secret Computation TOEPP Tested Operational Environment’s Physical Perimeter XTS XEX-based Tweaked-codebook mode with cipher text Stealing Nuvoton Cryptographic Library 2.0 FIPS 140-3 Non-Proprietary Security Policy © 2023 Nuvoton Technology Corporation / atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 25 of 26 Appendix B. References FIPS140-3 FIPS PUB 140-3 - Security Requirements For Cryptographic Modules March 2019 https://doi.org/10.6028/NIST.FIPS.140-3 FIPS140-3_IG Implementation Guidance for FIPS PUB 140-3 and the Cryptographic Module Validation Program May 2021 https://csrc.nist.gov/CSRC/media/Projects/cryptographic-module-validation- program/documents/fips 140-3/FIPS 140-3 IG.pdf FIPS180-4 Secure Hash Standard (SHS) March 2012 http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf FIPS186-4 Digital Signature Standard (DSS) July 2013 http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf FIPS197 Advanced Encryption Standard November 2001 http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf FIPS198-1 The Keyed Hash Message Authentication Code (HMAC) July 2008 http://csrc.nist.gov/publications/fips/fips198-1/FIPS-198-1_final.pdf PKCS#1 Public Key Cryptography Standards (PKCS) #1: RSA Cryptography Specifications Version 2.1 February 2003 http://www.ietf.org/rfc/rfc3447.txt RFC3394 Advanced Encryption Standard (AES) Key Wrap Algorithm September 2002 http://www.ietf.org/rfc/rfc3394.txt RFC5649 Advanced Encryption Standard (AES) Key Wrap with Padding Algorithm September 2009 http://www.ietf.org/rfc/rfc5649.txt SP800-38A NIST Special Publication 800-38A - Recommendation for Block Cipher Modes of Operation Methods and Techniques December 2001 http://csrc.nist.gov/publications/nistpubs/800-38a/sp800-38a.pdf SP800-38B NIST Special Publication 800-38B - Recommendation for Block Cipher Modes of Operation: The CMAC Mode for Authentication May 2005 http://csrc.nist.gov/publications/nistpubs/800-38B/SP_800-38B.pdf Nuvoton Cryptographic Library 2.0 FIPS 140-3 Non-Proprietary Security Policy © 2023 Nuvoton Technology Corporation / atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 26 of 26 SP800-38C NIST Special Publication 800-38C - Recommendation for Block Cipher Modes of Operation: the CCM Mode for Authentication and Confidentiality May 2004 http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38c.pdf SP800-38D NIST Special Publication 800-38D - Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC November 2007 http://csrc.nist.gov/publications/nistpubs/800-38D/SP-800-38D.pdf SP800-38F NIST Special Publication 800-38F - Recommendation for Block Cipher Modes of Operation: Methods for Key Wrapping December 2012 http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-38F.pdf SP800-56Arev3 NIST Special Publication 800-56A Revision 3 - Recommendation for Pair Wise Key Establishment Schemes Using Discrete Logarithm Cryptography April 2018 https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Ar3.pdf SP800-56Brev2 Recommendation for Pair-Wise Key Establishment Schemes Using Integer Factorization Cryptography March 2019 https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Br2.pdf SP800-90A NIST Special Publication 800-90A - Revision 1 - Recommendation for Random Number Generation Using Deterministic Random Bit Generators June 2015 http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-90Ar1.pdf SP800-90B NIST Special Publication 800-90B - Recommendation for the Entropy Sources Used for Random Bit Generation January 2018 https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-90B.pdf SP800-133rev2 NIST Special Publication 800-133 - Recommendation for Cryptographic Key Generation December 2012 https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-133r2.pdf SP800-140B NIST Special Publication 800-140B - CMVP Security Policy Requirements March 2020 https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-140B.pdf