| Standard | FIPS 140-3 |
|---|---|
| Overall level | 2 |
| Module type | Hardware |
| Embodiment | Single Chip |
| Status | Active |
| Sunset date | 4/26/2030 |
| Entropy | ENT (P) |
| Caveat | The module generates SSPs whose strengths are modified by available entropy. |
| Vendor | KYOCERA Document Solutions Inc. |
| Hardware versions | 0x00000002 |
| Algorithm | ACVP Cert |
|---|---|
| AES-CBC | A2716 |
| AES-CCM | A2716 |
| AES-CMAC | A2716 |
| AES-CTR | A2716 |
| AES-ECB | A2716 |
| AES-GCM | A2716 |
| AES-GCM | A2716 |
| AES-XTS Testing Revision 2.0 | A2716 |
| ECDSA KeyGen (FIPS186-4) | A2716 |
| ECDSA KeyVer (FIPS186-4) | A2716 |
| ECDSA SigGen (FIPS186-4) | A2716 |
| ECDSA SigVer (FIPS186-4) | A2716 |
| Hash DRBG | A2716 |
| HMAC-SHA-1 | A2716 |
| HMAC-SHA2-224 | A2716 |
| HMAC-SHA2-256 | A2716 |
| HMAC-SHA2-384 | A2716 |
| HMAC-SHA2-512 | A2716 |
| HMAC-SHA2-512/224 | A2716 |
| HMAC-SHA2-512/256 | A2716 |
| KAS-ECC-SSC Sp800-56Ar3 | A2716 |
| KDF SP800-108 | A2716 |
| RSA SigGen (FIPS186-4) | A2716 |
| RSA SigVer (FIPS186-4) | A2716 |
| SHA-1 | A2716 |
| SHA2-224 | A2716 |
| SHA2-256 | A2716 |
| SHA2-384 | A2716 |
| SHA2-512 | A2716 |
| SHA2-512/224 | A2716 |
| SHA2-512/256 | A2716 |
| Requirement area | Level |
|---|---|
| Cryptographic Module Specification | 2 |
| Cryptographic Module Interfaces | 2 |
| Roles, Services, and Authentication | 4 |
| Software/Firmware Security | 5 |
| Operational Environment | N/A |
| Physical Security | 2 |
| Sensitive Security Parameter Management | 9 |
| Self-Tests | 2 |
| Mitigation of Other Attacks | N/A |
flowchart LR
%% Deterministic review-risk graph for MFP Cryptographic Module (B)
%% Review prompts and evidence gaps, NOT vulnerability findings.
subgraph CMVP["CMVP-disclosed clues"]
C1["[high] Firmware / bootloader<br/>versions disclosed<br/>(identity, not provenance)<br/><i>Boot Firmware Version: 0x00010000, Main Firmware…</i>"]
C2["[high] Firmware update / recovery<br/>/ rollback services<br/><i>Monotonic Counter Increment</i>"]
C3["[high] Unauthenticated /<br/>self-test / status service<br/>surface<br/><i>Self-Test<br/>XTS-shell Enable<br/>Status Check</i>"]
C5["[low] Protocol / secure-channel<br/>references (may be KDF<br/>names, not a live channel)<br/><i>TLS<br/>SSH<br/>IPSEC</i>"]
C6["[low] Operating system / runtime<br/>referenced (boundary<br/>membership not asserted)<br/><i>application</i>"]
end
subgraph Inference["Derived inference"]
I1["Component identity is<br/>disclosed, but provenance<br/>and patch lineage are not."]
I2["Trusted code is reachable<br/>through update and<br/>recovery paths."]
I3["Some services may process<br/>input before, or without,<br/>operator authentication."]
I5["Possible only, a protocol<br/>is referenced, but whether<br/>it is a live channel or<br/>only a KDF/algorithm name<br/>is unconfirmed."]
I6["Possible only, a<br/>runtime/OS is referenced,<br/>but its membership in the<br/>cryptographic boundary is<br/>not established."]
end
subgraph Risk["Reviewer question"]
R1["Do the vendor version<br/>strings obscure the<br/>upstream baseline, fork<br/>lineage, or known-CVE<br/>exposure?"]
R2["Are update images<br/>authenticated before<br/>parsing, and are<br/>downgrade/rollback paths<br/>constrained?"]
R3["Can unauthenticated<br/>services leak state,<br/>consume resources, or<br/>transition security state?"]
R5["If a live TLS/SSH/IKE<br/>channel exists, could<br/>library CVEs apply, or is<br/>this only a<br/>KDF/documentation name?"]
R6["If the OS/runtime is<br/>in-boundary, could its<br/>CVEs be hidden by<br/>firmware-only versioning?"]
end
subgraph Evidence["Evidence needed to close"]
E1["SBOM / component baselines<br/>· patch and backport<br/>manifest · CVE disposition"]
E2["update image format ·<br/>signature-before-parse<br/>proof · anti-rollback /<br/>downgrade policy"]
E3["pre-auth reachability<br/>matrix · rate limits and<br/>output redaction ·<br/>abuse-case tests"]
E5["confirm the disclosure<br/>itself (keyword hit,<br/>context unverified) ·<br/>library identity and<br/>version ·<br/>certificate-validation<br/>behaviour · protocol-CVE<br/>disposition"]
E6["confirm the disclosure<br/>itself (keyword hit,<br/>context unverified) ·<br/>runtime identity and<br/>config · kernel/runtime<br/>hardening profile ·<br/>patch/backport manifest"]
end
C1 --> I1 --> R1 --> E1
C2 --> I2 --> R2 --> E2
C3 --> I3 --> R3 --> E3
C5 --> I5 --> R5 --> E5
C6 --> I6 --> R6 --> E6
classDef clue fill:#eef3f9,stroke:#6f7f91,color:#1f3a5f;
classDef infer fill:#fff7e6,stroke:#b98500,color:#6b4e00;
classDef risk fill:#fbe9e9,stroke:#b02a2a,color:#7a1f1f;
classDef evidence fill:#e6f4ea,stroke:#1e7d34,color:#14532d;
class C1,C2,C3,C5,C6 clue;
class I1,I2,I3,I5,I6 infer;
class R1,R2,R3,R5,R6 risk;
class E1,E2,E3,E5,E6 evidence;flowchart LR
%% Deterministic clue tier for MFP Cryptographic Module (B)
%% confidence: high = structured record field; medium = structured but soft; low (dashed) = bare keyword hit, context unverified
subgraph CMVP["CMVP-disclosed clues (deterministic)"]
C1["[high] Firmware / bootloader versions disclosed (identity, not provenance)<br/><i>Boot Firmware Version: 0x00010000, Main Firmware…</i><br/>src: certificate.firmwareVersions"]
C2["[high] Firmware update / recovery / rollback services<br/><i>Monotonic Counter Increment</i><br/>src: securityPolicy.services"]
C3["[high] Unauthenticated / self-test / status service surface<br/><i>Self-Test<br/>XTS-shell Enable<br/>Status Check</i><br/>src: securityPolicy.services"]
C5["[low] Protocol / secure-channel references (may be KDF names, not a live channel)<br/><i>TLS<br/>SSH<br/>IPSEC</i><br/>src: text:keyword"]
C6["[low] Operating system / runtime referenced (boundary membership not asserted)<br/><i>application</i><br/>src: text:keyword"]
end
classDef clueHigh fill:#eef3f9,stroke:#2f6fb0,stroke-width:2px,color:#1f3a5f;
classDef clueMedium fill:#eef3f9,stroke:#6f7f91,color:#1f3a5f;
classDef clueLow fill:#f7f7f7,stroke:#999,stroke-dasharray:4 4,color:#444;
class C1,C2,C3 clueHigh;
class C5,C6 clueLow;MFP Cryptographic Module(B) KYOCERA Document Solutions Inc. MFP Cryptographic Module (B) Version: 1.1 Prepared by: KYOCERA Document Solutions Inc. 1-2-28 Tamatsukuri Chuo-ku Osaka, Osaka 540-8585 Japan +81-6-6764-3355 https://www.kyoceradocumentsolutions.com/
MFP Cryptographic Module(B) Table of Contents 1. 1.1. 1.2. 1.3. 1.2. 1.5. 2. 2.1. 2.2. 2.3. 2.4. 2.5. 3. 4. 4.1. 4.2. 5. 6. 7. 8. 9. 9.1. 9.2. 10. 10.1. 10.1.1. 10.2. 10.2.1. 10.2.2. 11. 11.1. 11.2. 12.
| Name | ISO Section | Requirement | Level |
|---|---|---|---|
| 1 | 1 | General | 2 |
| 2 | 2 | Cryptographic Module Specification | 2 |
| 3 | 3 | Cryptographic Module Interfaces | 2 |
| 4 | 4 | Roles, Services and Authentication | 3 |
| 5 | 5 | Software / Firmware Security | 2 |
| 6 | 6 | Operational Environment | N/A |
| 7 | 7 | Physical Security | 2 |
| 8 | 8 | Non-invasive Security | N/A |
| 9 | 9 | Sensitive Security Parameter Management | 2 |
| 10 | 10 | Self-Tests | 2 |
| 11 | 11 | Life-cycle Assurance | 2 |
| 12 | 12 | Mitigation of Other Attacks | N/A |
1.1. Introduction This is a non-proprietary Cryptographic Module Security Policy for the MFP Cryptographic Module (B). Notice. This Security Policy describes how the module meets the security requirements of Federal Information Processing Standards (FIPS) Publication 140-3, which details the U.S. and Canadian government requirements for cryptographic modules. More information about the FIPS 140-3 standard and validation program is available on the National Institute of Standards and Technology (NIST) and the Communications Security Establishment (CSE) Cryptographic Module Validation Program (CMVP) website at https://csrc.nist.gov/Projects/Cryptographic-Module-Validation-Program. This policy was prepared as part of the Level 2 FIPS 140-3 validation of the module. The MFP Cryptographic Module (B) is referred to as the module in this document. The individual clause levels and overall level are listed in the table below. Table 1-1 Security Levels N/A N/A 1.2. N/A The module is intended to meet requirements of FIPS 140-3 at an overall Security Level 2. Table 1-1 shows the security level claimed for each of the twelve sections that comprise the validation. “Operational 1.3. Purpose There are three major reasons that a security policy is required
MFP Cryptographic Module(B)
MFP Cryptographic Module(B) [SP 800-56A Rev. 3] Recommendation for Pair-Wise Key-Establishment Schemes Using Discrete Logarithm Cryptography, https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Ar3.pdf, 2018 [SP 800-56C Rev. 1] Recommendation for Key-Derivation Methods in Key-Establishment Schemes, https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Cr1.pdf, 2018 [SP 800-108] Recommendation for Key Derivation Using Pseudorandom Functions (Revised), https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-108.pdf, 2009 [FIPS 198-1] The Keyed-Hash Message Authentication Code (HMAC), https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.198-1.pdf, 2008 [FIPS 197] Advanced Encryption Standard (AES), https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.197.pdf, 2001 [FIPS 180-4] Secure Hash Standard (SHS), https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf, 2015
| Name | Model | Hardware Version | Firmware Version | Features |
|---|---|---|---|---|
| MFP Cryptographic Module (B) as a sub-chip cryptographic subsystem | MFP Cryptographic Module (B) as a sub-chip cryptographic subsystem | 0x00000002 | boot firmware : 0x00010000 main firmware : 0x80010006 | N/A |
2.1. Module Description MFP Cryptographic Module(B) is a cryptographic security chip for encrypting data written to a storage device and other security functions of Kyocera multifunction printer. The module is a hardware cryptographic module implemented as a sub-chip system running on a singlechip standalone processor and is classified as a sub-chip cryptographic subsystem contained within a single chip embodiment for the purpose of FIPS 140-3 validation. The module is identified by three points: that it is implemented in the Kyocera SCH134 SoC (System-On-Chip), Hardware Version and Firmware Table 2-1 Cryptographic Module Tested Configuration N/A There are four kinds of packages of the chip (the Kyocera SCH134). Four kinds of opaque packages of the chip are shown in the figures below.
MFP Cryptographic Module(B) Figure 2-1 Module Seal Application Locations
MFP Cryptographic Module(B) Figure 2-4 Module Seal Application Locations
MFP Cryptographic Module(B) 2.2. Cryptographic Module Boundary The module was tested as a sub-chip cryptographic subsystem implemented in the Kyocera SCH134 SoC. The following figure shows the block diagram of SCH134 and the module. Power In Data In Res Req AXI4 Crypto Engine Data Out NDRNG Status Out SRAM ROM Interrupt Signal Registers/Interrupts Processing System Req Data/Control In Res APB4 Microcontroller Mailbox Data/Status Out MFP Cryptographic Module (B) Data Out NVM IF Data In Logical Boundary Req Res OTP Data In Req XTS-shell IF Data Out Res XTS-shell : Requester Port Res : Responder Port Req Physical Boundary Figure 2-5 MFP Cryptography Module (B) Block Diagram The physical boundary of the module is the physical boundary of SCH134. Consequently, the embodiment of the module is a single-chip cryptographic module. The cryptographic boundary of the module is the MFP Cryptographic Module (B). The module is classified as a single-chip hardware module for the purpose of FIPS 140-3 validation. SRAM in the Figure 2-1 is referred to as “the SRAM” and OTP in the Figure 2-1 is
| Name | CAVP Cert | Mode Method | Key Size | Use Function |
|---|---|---|---|---|
| AES FIPS 197 SP 800-38A | A2716 | ECB, CBC, CTR | Key Size 128, 192, 256 bits | Data Encryption/ Decryption |
| AES FIPS 197 | A2716 | XTS*1 | Key Size 256 bits | Data Encryption/ Decryption |
| AES SP 800-38C SP 800-38D FIPS 140-3 IG C.H | A2716 | GCM*2 CCM | Key Size 128, 192, 256 bits | Data Encryption/ Decryption with Authentication |
| SHS FIPS 180-4 | A2716 | SHA-1, SHA-224, SHA- 256, SHA-384, SHA- 512, SHA-512/224, SHA-512/256 | Message Digest | |
| HMAC FIPS 198-1 | A2716 | HMAC-SHA-1, HMAC- SHA-224, HMAC-SHA- 256, HMAC-SHA-384, HMAC-SHA-512, HMAC-SHA-512/224, HMAC-SHA-512/256 | Key Size HMAC-SHA-1 : 160bits HMAC-SHA-224 : 224 bits HMAC-SHA-256 : 256 bits HMAC-SHA-384 : 384 bits HMAC-SHA-512, HMAC-SHA- 512/224, HMAC-SHA-512/256 : 512 bits | Message Authentication Code Generation |
| AES FIPS-197 SP 800-38D | A2716 | CMAC | Key Size 128, 192, 256 bits | Message Authentication Code Generation |
| RSA FIPS 186-4 | A2716 | PKCS#1 v1.5 PSS | Key Size 2048, 3072 | Digital Signature Generation and Verification |
| ECDSA FIPS 186-4 | A2716 | Key Size 256, 384 bits | Digital Signature Generation and Verification | |
| KBKDF SP800-108 | A2716 | Counter Mode using HMAC-SHA-256 | Key Size 256 bits | Key Derivation |
| KAS-ECC-SSC SP800-56A rev.3 | A2716 | IG D.F Scenario 2(1) | Key Size 256, 384 bits (P-256, P-384) | Key Agreement Scheme Shared Secret Computation |
| ECDSA FIPS 186-4 | A2716 | Key Size 256, 384 bits | Elliptic Curve Cryptography Key Pair Generation | |
| ECDSA FIPS 186-4 | A2716 | Key Size 256, 384 bits | Validation of an elliptic curve public key. | |
| KTS (AES Key Wrapping with AES- GCM) FIP 197 SP800-38D FIPS 140-3 IG C.H FIPS 140-3 IG D.G | A2716 | GCM | Key Size 256 bits | Key Wrapping by using AES-GCM |
| DRBG SP800-90A | A2716 | SHA-256 | Export Key service RSA-PSS Sign service ECDSA Sign service Random Number Generation service Key Derivation service | |
| CKG SP800- 133 rev.2 | Vendor affirmed | SP 800-133 rev.2 Section 4(example 1) *3 | Cryptographic Key Generation | |
| ENT (P) S800-90B | Random Number Generator Configuration service | |||
| If Key Transport function is used, the module generates 96-bits AES-GCM Encryption IV which is random bits generated by the approved HASH_DRBG. The random number from ENT which the module holds is used as the entropy input of HASH_DRBG. | RBG-based Construction | |||
| If Symmetric Encryption and Decryption with Authentication function is used, AES-GCM Encryption IV is generated and provided from inside of the single chip but outside of the module. The IV length is 96-bits. This IV must be generated by the GCM IV generation method in accordance with FIPS 140-3 IG C.H. | Deterministic Construction |
MFP Cryptographic Module(B) referred to as “the OTP” in the rest of this document. Boot firmware which is for initialization and loading main firmware is located in ROM. Boot firmware and main firmware are referred to as “ROM Firmware” and “RAM Firmware” respectively in the rest of this document. 2.3. Approved, Allowed or Vendor Affirmed Security Functions The following table shows the approved or allowed security functions used in the module. No nonapproved security functions or vendor affirmed security functions are performed in the module. Table 2-2 Approved Algorithms C.H
| Name | CAVP Cert | Mode Method | Use Function |
|---|---|---|---|
| CKG SP800- 133 rev.2 | Vendor affirmed | SP 800-133 rev.2 Section 4(example 1) *3 | Cryptographic Key Generation |
| ENT (P) S800-90B | Random Number Generator Configuration service | ||
| If Key Transport function is used, the module generates 96-bits AES-GCM Encryption IV which is random bits generated by the approved HASH_DRBG. The random number from ENT which the module holds is used as the entropy input of HASH_DRBG. | RBG-based Construction | ||
| If Symmetric Encryption and Decryption with Authentication function is used, AES-GCM Encryption IV is generated and provided from inside of the single chip but outside of the module. The IV length is 96-bits. This IV must be generated by the GCM IV generation method in accordance with FIPS 140-3 IG C.H. | Deterministic Construction |
*1: AES-XTS key is parsed as the concatenation of two AES key, denoted by Key_1 and Key_2, that are 256 bits long. The module checks whether Key_1 ≠ Key_2. If there is no difference between Key_1 and Key_2, the module returns an error code. *2: The module supports 2 modes for AES-GCM Encryption IV listed in the table below. Here, AES-GCM *3: V is a string binary zeros, then B = U (i.e., the output of an approved RBG). 2.4. Modes of Operation The module only supports approved mode of operation and only supports approved and allowed security functions. No other modes of operation and security functions are implemented by the module. Therefore, when the module is powered up and successfully completes pre-operational self-test and cryptographic algorithm tests, the module enters the approved mode of operation. When the approved mode, the configuration ID indicates 0x2. The configuration ID is specified by the initialization procedure. Details of the initialization procedure are described in chapter 11.
MFP Cryptographic Module(B) 2.5. Rules of Module operation The module is an embedded security subsystem within the Kyocera SCH134 SoC. No user installation or maintenance is required. This section describes operations based on security rules.
| Name | Physical Port | Logical Interface | Data That Passes |
|---|---|---|---|
| DMA IF over AXI | DMA IF over AXI | Data Input | AES-Key, HMAC-Key, RSA-Private-Key, ECC-Private-Key, Key-Wrap-Key, Key- Derive-Key (Keys are both Plain Text and Cipher Text.) RSA-Public-Key, ECC-Public-Key Plain Text Message, Cipher Text Message, Digital Signature, IV, Authentication Tag, |
| Data Output | Data Output | AES-Key, HMAC-Key, RSA-Private-Key, ECC-Private-Key, Key-Wrap-Key, Key- Derive-Key (Keys are Cipher Text.) ECC-Public-Key Plain Text Message, Cipher Text Message, Message Digest, MAC, Digital Signature, Authentication Tag | |
| Mailbox over APB | Mailbox over APB | Control Input | Command Type Data Size Data Address |
| Status Output | Status Output | Command Result Error Code | |
| Data Input | Data Input | Crypto Officer ID / Password User ID / Password User Defined Data Message Digest | |
| Data Output | Data Output | Crypto Officer ID / Password User ID, Data Size, User Defined Data Next IV, Monotonic Counter Value | |
| NVM IF | NVM IF | Data Input, Output | Crypto Officer ID / Password User Defined Data AES-Key, HAMC-Key, Key-Wrap-Key, Key- Derive-Key Key attribute information Monotonic Counter Value |
| XTS-shell IF | XTS-shell IF | Data Input, Output | Plain Text Data, Cipher Text Data |
| Registers over APB | Registers over APB | Control Input, Status Output | Status, Hardware Version, Firmware Version, Configuration ID |
| Interrupt | Interrupt | Status Output | Interrupt |
MFP Cryptographic Module(B) 3. Cryptographic Module Interfaces The module supports interfaces listed in the table below. Table 3-1 Interfaces
MFP Cryptographic Module(B) The “Mailbox over APB” means access to the Mailbox via APB4 shown in Figure 2-1. The mailbox consists of the SRAM and is used for command/data input and data output. The “DMA IF over AXI” means access from the Crypto Engine via AXI4 in Figure 2-1. Basically, the module is controlled by command input via the mailbox but interrupt related control is done by registers. The module does not implement a control output interface.
| Name | Roles | Input | Output |
|---|---|---|---|
| Symmetric Encryption | Crypto Officer (CO) | Plain Text IV | Command Result Cipher Text Next IV |
| Symmetric Encryption with Authentication | Plain Text AAD IV | Command Result Cipher Text Authentication Tag | |
| Symmetric Decryption | Cipher Text IV | Command Result Plain Text | |
| Symmetric Decryption with Authentication | Cipher Text AAD IV Authentication Tag | Command Result Plain Text | |
| Hash | Message | Command Result Message Digest | |
| MAC | Message | Command Result MAC | |
| RSA-PKCS #1 v1.5 Sign RSA-PSS Sign | Message Public Key | Command Result Signature | |
| ECDSA Sign | Message | Command Result Signature | |
| RSA-PKCS #1 v1.5 verify RSA-PSS Verify ECDSA Verify | Message Public Key Signature | Command Result | |
| ECC CDH Key Agreement | ECC Public Key | Command Result Shared Secret | |
| ECC Multiplication | None | Command Result Public Key | |
| ECC Public-Key Verify | ECC Public Key | Command Result | |
| Key Derivation | Fixed Input | Command Result AES Key HMAC Key | |
| XTS-Key Derivation | Fixed Input | Command Result AES-XTS Key | |
| Authentication CO | Encrypted Firmware AES Key ECDSA Public Key ECDSA Signature | Command Result Crypto Officer Password | |
| Random Number Generation | None | Command Result DRBG Output | |
| Random Number Generator Configuration | Sample Count Value, Cut Off Values | Command Result | |
| Monotonic Counter Increment | None | Command Result | |
| Monotonic Counter Read | None | Command Result Monotonic Counter Value | |
| Write OTP | User Defined Data | Command Result | |
| Read OTP | None | Command Result User Defined Data | |
| Delete Key Delete All Keys Clear OTP | None | Command Result | |
| Register User | User ID / Password | Command Result | |
| XTS-shell Enable XTS-shell Disable | None | Command Result | |
| Sleep | None | Command Result | |
| Symmetric Encryption | User | Plain Text IV | Command Result Cipher Text Next IV (AES-CBC, AES-CTR) |
| Symmetric Encryption with Authentication | Plain Text AAD IV | Command Result Cipher Text Authentication Tag | |
| Symmetric Decryption | Cipher Text IV | Command Result Plain Text | |
| Symmetric Decryption with Authentication | Cipher Text AAD IV Authentication Tag | Command Result Plain Text | |
| Hash | Message | Command Result Message Digest | |
| MAC | Message | Command Result MAC | |
| RSA-PKCS #1 v1.5 Sign RSA-PSS Sign | Message Public Key | Command Result Signature | |
| ECDSA Sign | Message | Command Result Signature | |
| RSA-PKCS #1 v1.5 verify RSA-PSS Verify ECDSA Verify | Message Public Key Signature | Command Result | |
| ECC CDH Key Agreement | ECC Public Key | Command Result Shared Secret | |
| ECC Multiplication | None | Command Result Public Key | |
| ECC Public-Key Verify | ECC Public Key | Command Result | |
| Key Derivation | Fixed Input | Command Result AES Key, HMAC Key, ECC Private Key, ECC Public Key | |
| XTS-Key Derivation | Fixed Input | Command Result AES-XTS Key |
MFP Cryptographic Module(B) 4. Roles, Services, and Authentication 4.1. Roles and Authentication The module supports two roles: a Crypto Officer and a User. The Crypto Officer is basically for module setup and initialization. The User is for general cryptographic services. Table 4-1 lists all operator roles supported by the module and their related services. Table 4-1 Roles, Service Commands, Input and Output
| Name | Use | Input |
|---|---|---|
| Version Check | Hardware Version Firmware Version | None |
| CFG-ID Check | Configuration ID | None |
| AES-XTS Encryption | Cipher Text | Plain Text |
| AES-XTS Decryption | Plain Text | Cipher Text |
MFP Cryptographic Module(B) *Key Wrap Key is AES-GCM Key which is 256-bits. All roles authenticate to the module using identity-based authentication. The Crypto Officer and the User are authenticated using the ID and password (a 32-bit password). In addition, a 256-bit ECDSA signature and ID is used to authenticate the Crypto Officer role by the Authentication CO service. Table 4-1 lists the roles supported by the module, the authentication methods, and the strengths of the authentication mechanism.
| Role | Authentication Method | Authentication Strength |
|---|---|---|
| Crypto Officer (CO) | 256-bit ECDSA signature verification (only for Authentication CO service) | A 256-bit ECDSA signature has 128 bits of security. The probability of signature that a single random authentication attempt will succeed, or a false acceptance will occur is 1/2128 which is less than 1/1,000,000. When the attempt fails, the module waits at least one second, during which any attempt is ignored. Thus, the maximum authentication rate is 60 per minute and the probability that random authentication attempts will succeed within a one-minute interval is 60/2128 which is less than 1/100,000. |
| 32-bits Password comparison | The probability of password that a single random authentication attempt (by guessing the password value) will succeed, or a false acceptance will occur is 1/232 which is less than 1/1,000,000. When the attempt fails, the module waits at least one second, during which any attempt is ignored. Thus, the maximum authentication rate is 60 per minute and the probability that random authentication attempts will succeed within a one-minute interval is 60/232 which is less than 1/100,000. | |
| User | 32-bits Password comparison | Same as above. |
MFP Cryptographic Module(B) Table 4-2 Roles and Authentication
| Name | Description | Roles | Role Access | Csps Accessed | Approved Functions | Access | Indicator |
|---|---|---|---|---|---|---|---|
| Authentication CO | This service authorizes CO and loads RAM firmware of the module. ROM Firmware allows this service only, and this service can only run on ROM Firmware. If on RAM Firmware, this service cannot be performed. Integrity of RAM Firmware is verified by using ECDSA verify. | X | Crypto Officer Password | SHA-256 ECDSA Verify | E R | Indicator can be checked by using both CFG-ID service and command result. | |
| Symmetric Encryption/ Decryption | This service encrypts or decrypts supplied data using AES-ECB, AES- CBC or AES-CTR. | X | X | AES-ECB Key, AES-CBC Key, AES-CTR Key (128, 192, 256 bits) | AES-ECB AES-CBC AES-CTR | E | Indicator can be checked by using both CFG-ID service and command result. |
| Symmetric Encryption/De cryption with Authentication | This service encrypts or decrypts supplied data with authentication using AES-GCM Key. | X | X | AES-GCM Key, AES- CCM Key (128, 192, 256 bits) | AES-GCM AES-CCM | E | Indicator can be checked by using both CFG-ID service and command result. |
| Hash | This service generates a message digest using Message Digest function. | X | X | N/A | SHA-1, SHA-224, SHA-256, SHA- 384, SHA-512, SHA-512/224, SHA-512/256 | Indicator can be checked by using both CFG-ID service and command result. | |
| MAC | This service generates Message Authentication Code on a supplied data using Keyed Hash function or AES-CMAC Key. | X | X | HMAC Key (160, 224, 256, 384, 512 bits) AES-CMAC Key (128, 192, 256 bits) | HMAC-SHA-1, HMAC-SHA-224, HMAC-SHA-256, HMAC-SHA-384, HMAC-SHA-512, HMAC-SHA- 512/224, HMAC- SHA-512/256 AES-CMAC | E | Indicator can be checked by using both CFG-ID service and command result. |
| Random Number Generation | This service generates a random number using the DRBG generate function. A random number, which is unmodified output by this service, can be used as a Key Derive Key. | X | X | DRBG Internal State | DRBG | E | Indicator can be checked by using both CFG-ID service and command result. |
| RSA-PKCS #1 v1.5 Sign | This service generates an RSA-PKCS#1 v1.5 signature on a supplied data. | X | X | RSA Private Key | SHA-224, SHA- 256, SHA-384, SHA-512, SHA- 512/224, SHA- 512/256 RSA | W E | Indicator can be checked by using both CFG-ID service and command result. |
| RSA-PKCS #1 v1.5 Verify | This service verifies an RSA-PKCS#1 v1.5 signature on a supplied data with a supplied RSA Public Key. | X | X | N/A | SHA-1, SHA-224, SHA-256, SHA- 384, SHA-512, SHA-512/224, SHA-512/256 RSA | Indicator can be checked by using both CFG-ID service and command result. | |
| RSA-PSS Sign | This service generates an RSA-PSS signature on a supplied data. | X | X | RSA Private Key | SHA-224, SHA- 256, SHA-384, SHA-512, SHA- 512/224, SHA- 512/256 RSA | W E | Indicator can be checked by using both CFG-ID service and command result. |
| RSA-PSS Verify | This service verifies an RSA-PSS signature on a supplied data with a supplied RSA Public Key. | X | X | N/A | SHA-1, SHA-224, SHA-256, SHA- 384, SHA-512, SHA-512/224, SHA-512/256 RSA | Indicator can be checked by using both CFG-ID service and command result. | |
| ECDSA Sign | This service generates an ECDSA signature on a supplied data. | X | X | ECDSA Private Key | SHA-224, SHA- 256, SHA-384, SHA-512, SHA- 512/224, SHA- 512/256 ECDSA | E | Indicator can be checked by using both CFG-ID service and command result. |
| ECDSA Verify | This service verifies an ECDSA signature on a supplied data with supplied ECDSA Public Keys. | X | X | N/A | SHA-1, SHA-224, SHA-256, SHA- 384, SHA-512, SHA-512/224, SHA-512/256 ECDSA | Indicator can be checked by using both CFG-ID service and | |
| ECC CDH Key Agreement | This service generates Shared Secret with other party’s ECDH Public Key. | X | X | ECDH Private Key | ECC CDH | E G | Indicator can be checked by using both CFG-ID service and command result. |
| ECC Multiplication | This service computes ECDSA/ECDH Public Key with ECDSA/ECDH Private Key, which is imported or generated by a corresponding service. | X | X | ECDSA Private Key, ECDH Private Key | E | Indicator can be checked by using both CFG-ID service and command result. | |
| ECC Public-Key Verify | This service verifies supplied ECDSA/ECDH Public Key by checking if the following conditions hold. 1. y 2=x 3+ax +b Q Q Q (mod p) 2. nQ=O Here, Q=(x ,y ) is the Q Q ECDSA/ECDH Public Key. | X | X | N/A | Approved security functions are not used in this service. | ||
| Key Derivation | This Service generates an AES-ECB Key, an AES-CBC Key, an AES- CTR Key, an AES-GCM Key, a HMAC Key, an AES-CMAC Key, a Key Derive Key, a Key Wrap | X | X | Key Derive Key | KBKDF DRBG | G W E | Indicator can be checked by using both CFG-ID service and command result. |
| XTS Key Derivation | This Service generates an AES-XTS key, which is as concatenation of two AES keys, that are 256 bits long. | X | X | Key Derive Key | HMAC-SHA-256 | G W E | Indicator can be checked by using both CFG-ID service and command result. |
| If a CSP is Shared Secret generated by ECC CDH Key Agreement service, this service outputs Shared Secret in plaintext by 2-step procedure. | If a CSP is Shared Secret generated by ECC CDH Key Agreement service, this service outputs Shared Secret in plaintext by 2-step procedure. | command result. | |||||
| Delete Key | This service zeroises a CSP in the SRAM. | X | X | AES Key, HMAC Key, RSA Private Key, ECC Private Key, Key Derive Key, Key Wrap Key | Z | Indicator can be checked by using both CFG-ID service and command result. | |
| Clear OTP | This service zeroises a CSP in the OTP. | X | AES Key, HMAC Key, ECC Private Key, Key Derive Key, Key Wrap Key | Z | Indicator can be checked by using both CFG-ID service and command result. | ||
| Delete All Keys | This service zeroises All CSPs in the SRAM, the XTS-shell and the OTP. | X | AES Key, HMAC Key, RSA Private Key, ECC Private Key, Key Derive Key, Key Wrap Key, Crypto Officer Password, User Password | Z | Indicator can be checked by using both CFG-ID service and command result. | ||
| Random Number Generator Configuration | This service gives configuration parameters of ENT and does the DRBG instantiate function. | X | DRBG Entropy Input, DRBG Nonce Input, DRBG Internal State | DRBG | G | Indicator can be checked by using both CFG-ID service and command result. | |
| Self-Test | This service performs Self-Tests described in Chapter 9. This service is invoked automatically at power-up of the module. This service is not provided as command via the mailbox. This service does not include AES-XTS self- test, that is performed by invoking XTS-shell Enable service. | No Authentication required | N/A | AES-ECB, AES- CBC, ECDSA verify (SHA-256) (The followings only run on RAM Firmware.) AES-CMAC SHA-256 RSA, ECC CDH, ECDSA sign | Indicator can be checked by using both CFG-ID service and command result. | ||
| Monotonic Counter Increment | This service increments the monotonic counter in the OTP. The monotonic counter is stored in plaintext. The monotonic counter is implemented to support a firmware rollback prevention. The processing system can detect a firmware rollback by making reference to it. | X | N/A | ||||
| Monotonic Counter Read | This service returns the value of the monotonic counter in the OTP in plaintext. | X | X | N/A | |||
| Write OTP | This service performs a write operation of a Key, a Hash Digest or User Defined Data into the OTP in plaintext. | X | AES-Key HMAC-Key ECC-Private Key Key-Derive Key, Key- Wrap Key | W | Indicator can be checked by using both CFG-ID service and command result. | ||
| Read OTP | This service performs a read operation of the User Defined Data from the OTP in plaintext. | X | X | N/A | |||
| Register User | This service registers a user who is assigned USER role. Both User ID and User Password are set to the SRAM. | X | User Password | W | |||
| XTS-shell Enable | This service enables the XTS-shell by releasing the reset, starts AES-XTS self- test. And then self-test completes successfully, AES-XTS keys which are in the SRAM are set into registers of XTS- shell. | X | AES-XTS Key | W | Indicator can be checked by using both CFG-ID service and command result. | ||
| XTS-shell Disable | This service deletes AES-XTS keys in the XTS-shell and disables | X | AES-XTS Key | Z | Indicator can be checked by using | ||
| the XTS-shell by applying the reset. | the XTS-shell by applying the reset. | both CFG-ID service and command result. | |||||
| AES-XTS Encryption/ Decryption | This service uses AES- XTS to encrypt or decrypt data which is received via XTS-shell IF. It only can run while XTS-shell is enabled. | As XTS-shell IF is a responder port, the source which transfers data to XTS-shell can’t be identified. Therefore, this service does not require authentication. | AES-XTS Key | AES-XTS | E | Indicator can be checked by using CFG-ID service. | |
| Status Check | This service returns the status of the module. | No Authentication required | N/A | ||||
| Version Check | This service returns the hardware and the firmware version of the module. | No Authentication required | N/A | ||||
| CFG-ID Check | This service returns the value of configuration ID by reading the register. If the return value lower 3 bits of this service is 0x2, it indicates that the module is approved mode. | No Authentication required | N/A | ||||
| Sleep | This service deletes AES-XTS keys in the XTS-shell and disables the XTS-shell by applying the reset, and causes the module to transition the WAIT FOR SLEEP state. The WAIT FOR SLEEP state is the state to wait for applying the sleep reset. | X | AES-XTS Key | Z | Indicator can be checked by using both CFG-ID service and command result. |
MFP Cryptographic Module(B) 4.2. Services The module supports services following table shows. All services require authentication except for SelfTest, Status Check, Version Check and CFG-ID Check. The following table lists services implemented by the module along with their description. Table 4-3 Approved Services X E R X X E X X E
MFP Cryptographic Module(B) X X E G X X E
MFP Cryptographic Module(B) X Z In the following table, lists of type of access to SSPs are shown. The access types to SSPs are denoted as follows:
MFP Cryptographic Module(B)
| Physical Security | Recommended Frequency of | Inspection/Test Guideline Details | ||
|---|---|---|---|---|
| Mechanism | Inspection/Test | |||
| Enclosure by an opaque package | Each time a service person performs maintenance or collects the board in the event of some kind of faults occurring on the machine that SCH134 is mounted. | Visual confirmation whether a package of SHC134 is disclosed or not. |
MFP Cryptographic Module(B) The module is implemented in silicon as part of the Kyocera SCH134 SoC. The chip is enclosed by an opaque package which prevents unauthorized physical access to the chip. There are four kinds of packages of the chip. The module consists of production-grade components that include standard passivation techniques. The following table lists requirement to maintain the physical security. Four kinds of opaque packages of the chip are shown in the figures below. Figure 7-1 Module Seal Application Locations
MFP Cryptographic Module(B) Figure 7-2 Module Seal Application Locations
| Name | Strength | Security Function | Generation | Storage | Import Export | Key/SSP Name/ Type | Zeroisation |
|---|---|---|---|---|---|---|---|
| Key Derivation service | 256 bits | KDF HMAC- SHA -256 | Internally generated by using Random Number Generation service or Key Derivation service. | Stored in the SRAM/ OTP in plaintext. | Entry: N/A (Entered into the module from TOEPP CM hardware via Single-Chip TOEPP Path) Imported by the Import Key service. Export: N/A (Output from the module to TOEPP CM hardware via Single-Chip TOEPP Path) Exported in encrypted format by the Export Key service. | Key Derive Key | Zeroised by Delete Key service, Clear OTP service or Delete All Keys service. |
| Import Key service, Export Key service, Authentication CO service | 256 bits | KTS AES-GCM | Internally generated by using Key Derivation service. | Stored in the SRAM/ OTP in plaintext. | Entry: N/A (Entered into the module from TOEPP CM hardware via Single-Chip TOEPP Path) Imported by the Import Key service. Export: N/A (Output from the module to TOEPP CM hardware via Single-Chip TOEPP Path) Exported in encrypted format by the Export Key service. | Key Wrap Key | Zeroised by Delete Key service, Clear OTP service or Delete All Keys service. |
| Random Number Generator Configuration service | DRBG | Obtained from ENT by Random Number Generator Configuration service. | DRBG Entropy Input | ||||
| Random Number Generator Configuration service | DRBG | Obtained from ENT by Random Number Generator Configuration service. | DRBG Nonce Input | ||||
| Random Number Generator Configuration service Random Number Generation service | DRBG | Derived from entropy string as defined by [SP800-90A]. | Stored in the SRAM in plaintext. | DRBG Internal State | Zeroised by Delete All Keys service. | ||
| Symmetric Encryption/ Decryption service | 128 bits 192 bits 256 bits | AES-ECB | Internally generated by using Key Derivation service. | Stored in the SRAM/ OTP in plaintext. | Entry: N/A (Entered into the module from TOEPP CM hardware via Single-Chip TOEPP Path) Imported by the Import Key service. Export: N/A (Output from the module to TOEPP CM hardware via Single-Chip TOEPP Path) | AES-ECB Key | Zeroised by Delete Key service, Clear OTP service or Delete All Keys service. |
| Symmetric Encryption/ Decryption service | 128 bits 192 bits 256 bits | AES-CBC | Internally generated by using Key Derivation service. | Stored in the SRAM/ OTP in plaintext. | Entry: N/A (Entered into the module from TOEPP CM hardware via Single-Chip TOEPP Path) Imported in plaintext or encrypted format by the Import Key service. Export: N/A (Output from the module to TOEPP CM hardware via Single-Chip TOEPP Path) Exported in encrypted format by the Export Key service. | AES-CBC Key | Zeroised by Delete Key service, Clear OTP service or Delete All Keys service. |
| Symmetric Encryption/ Decryption service | 128 bits 192 bits 256 bits | AES-CTR | Internally generated by using Key Derivation service. | Stored in the SRAM/ OTP in plaintext. | Entry: N/A (Entered into the module from TOEPP CM hardware via Single-Chip TOEPP Path) Imported in plaintext or encrypted format by the Import Key service. Export: N/A (Output from the module to TOEPP CM hardware via Single-Chip TOEPP Path) Exported in encrypted | AES-CTR Key | Zeroised by Delete Key service, Clear OTP service or Delete All Keys service. |
| Symmetric Encryption/ Decryption with Authentication service | 128 bits 192 bits 256 bits | AES-GCM | Internally generated by using Key Derivation service. | Stored in the SRAM/OTP in plaintext. | Entry: N/A (Entered into the module from TOEPP CM hardware via Single-Chip TOEPP Path) Imported in plaintext or encrypted format by the Import Key service. Export: N/A (Output from the module to TOEPP CM hardware via Single-Chip TOEPP Path) Exported in encrypted format by the Export Key service. | AES-GCM Key | Zeroised by Delete Key service, Clear OTP service or Delete All Keys service. |
| Symmetric Encryption/ Decryption with Authentication service | 128 bits 192 bits 256 bits | AES-CCM | Internally generated by using Key Derivation service. | Stored in the SRAM/OTP in plaintext. | Entry: N/A (Entered into the module from TOEPP CM hardware via Single-Chip TOEPP Path) Imported in plaintext or encrypted format by the Import Key service. Export: N/A (Output from the module to TOEPP CM hardware via Single-Chip TOEPP Path) Exported in encrypted format by the Export Key service. | AES-CCM Key | Zeroised by Delete Key service, Clear OTP service or Delete All Keys service. |
| XTS-shell Enable service AES-XTS Encryption/ Decryption service | 256 bits | AES-XTS | Internally generated by using Key Derivation service. | Stored in the SRAM/OTP /XTS-shell in plaintext. | Entry: N/A (Entered into the module from TOEPP CM hardware via Single-Chip TOEPP Path) Imported in plaintext or encrypted format by the Import Key service. Export: N/A (Output from the module to TOEPP CM hardware via Single-Chip TOEPP Path) Exported in encrypted format by the Export Key service. | AES-XTS Key | Zeroised by Delete Key service, Clear OTP service, Delete All Keys service, XTS-shell Disable service and Sleep service. |
| MAC service | 128 bits 192 bits 256 bits | HMAC- SHA1 HMAC- SHA- 224 HMAC- SHA- 256 HMAC- SHA- 384 HMAC- SHA- 512 HMAC- SHA- 512/224 HMAC- SHA- | Internally generated by using Key Derivation service. | Stored in the SRAM/OTP in plaintext. | Entry: N/A (Entered into the module from TOEPP CM hardware via Single-Chip TOEPP Path) Imported in plaintext or encrypted format by the Import Key service. Export: N/A (Output from the module to TOEPP CM hardware via Single-Chip TOEPP Path) Exported in encrypted format by the Export Key service. | HMAC Key | Zeroised by Delete Key service, Clear OTP service or Delete All Keys service. |
| MAC service | 128 bits 192 bits 256 bits | AES-CMAC | Internally generated by using Key Derivation service. | Stored in the SRAM/OTP in plaintext. | Entry: N/A (Entered into the module from TOEPP CM hardware via Single-Chip TOEPP Path) Imported in plaintext or encrypted by the Import Key service. Export: N/A (Output from the module to TOEPP CM hardware via Single-Chip TOEPP Path) Exported in encrypted format by the Export Key service. | AES- CMAC Key | Zeroised by Delete Key service, Clear OTP service or Delete All Keys service. |
| RSA-PKCS #1 v1.5 Sign service, RSA- PSS Sign service | 112 bits 128 bits | RSA | Stored in the SRAM in plaintext. | Entry: N/A (Entered into the module from TOEPP CM hardware via Single-Chip TOEPP Path) Imported in plaintext or encrypted format by the Import Key service. Export: N/A (Output from the module to TOEPP CM hardware via Single-Chip TOEPP Path) Exported in encrypted format by the Export Key service. | RSA Private Key | Zeroised by Delete Key service or Delete All Keys service. | |
| RSA-PKCS #1 v1.5 Sign service, RSA- PKCS #1 v1.5 Verify service, RSA-PSS Sign service, RSA- PSS Verify service | RSA | Entry: N/A (Entered into the module from TOEPP CM hardware via Single-Chip TOEPP Path) Imported in plaintext by the RSA-PKCS #1 v1.5 Sign service, RSA- PKCS #1 v1.5 Verify service, RSA-PSS Sign service and RSA-PSS Verify service. | RSA Public Key | ||||
| ECDSA Sign service, ECC multiplication service | 128 bits 192 bits | ECDSA | Internally generated by using Key Derivation service. | Stored in the SRAM/OTP in plaintext. | Entry: N/A (Entered into the module from TOEPP CM hardware via Single-Chip TOEPP Path) Imported in plaintext or encrypted format by the Import Key service. Export: N/A (Output from the module to TOEPP CM hardware via Single-Chip TOEPP Path) Exported in encrypted format by the Export Key service. | ECDSA Private Key | Zeroised by Delete Key service, Clear OTP service or Delete All Keys service. |
| Authentication CO service, ECDSA Verify service, ECC multiplication service, ECC Public Key | ECDSA | Internally generated by using Key Derivation service or ECC multiplication | Entry: N/A (Entered into the module from TOEPP CM hardware via Single-Chip TOEPP Path) Imported in plaintext by the Authentication | ECDSA Public Key | |||
| Verification service | service. | CO service, ECDSA Verify service and ECC Public Key Verify service. | |||||
| ECC CDH Key Agreement service, ECC multiplication service | 128 bits 192 bits | ECC CDH | Internally generated by using Key Derivation service. | Stored in the SRAM/OTP in plaintext. | Entry: N/A (Entered into the module from TOEPP CM hardware via Single-Chip TOEPP Path) Imported in plaintext or encrypted format by the Import Key service. Export: N/A (Output from the module to TOEPP CM hardware via Single-Chip TOEPP Path) Exported in encrypted format by the Export Key service. | ECDH Private Key | Zeroised by Delete Key service, Clear OTP service or Delete All Keys service. |
| ECC CDH Key Agreement service, ECC Public Key Verification service | ECC CDH | Internally generated by using Key Derivation service or ECC multiplication service. | Entry: N/A (Entered into the module from TOEPP CM hardware via Single-Chip TOEPP Path) Imported in plaintext by the Authentication CO service, ECC CDH Key Agreement service and ECC Public Key Verify service. | ECDH Public Key | |||
| Export Key service Shared Secret is re- registered as Key Derive Key and then a registration as Shared Secret is cleared by Export Key service. | 128 bits 192 bits | Internally generated by ECC CDH Key Agreement service. | Stored in the SRAM in plaintext. | Shared Secret | Zeroised by Delete Key service, Delete All Keys service or Export Key service. | ||
| Crypto Officer authentication | 32 bits | Stored in the OTP in plaintext. | Entry: N/A (Entered into the module from TOEPP CM hardware via Single-Chip TOEPP Path) Imported in plaintext by the Provisioning service and Export: N/A (Output from the module to TOEPP CM hardware via Single- Chip TOEPP Path) Exported in plaintext by Authentication CO service. | Crypto Officer Password | Zeroised by Delete All Keys service. | ||
| User authentication | 32 bits | Stored in the SRAM in plaintext. | Entry: N/A (Entered into the module from TOEPP CM hardware via Single-Chip TOEPP Path) Imported in plaintext by the by Register User service. | User Password | Zeroised by Delete All Keys service. |
MFP Cryptographic Module(B) 9. Sensitive Security Parameter Management 9.1. Sensitive Security Parameters The following table summarizes the strength, generation, import, export, storage, zeroization and uses of Keys and SSPs that are used by the cryptographic services implemented in the module. Table 9-1 SSPs -
MFP Cryptographic Module(B) HMACSHA2025 KYOCERA Document Solutions Inc. Page 38
| Entropy sources | Minimum number of bits | Details | |
|---|---|---|---|
| of entropy | |||
| ENT(P) inside the module | 0.75 | ENT(P) is used only as an entropy source. |
MFP Cryptographic Module(B) 9.2. Random Number Generation The module uses the HASH_DRBG for following purposes.: Generation a random number which is output by Random Number Generation service, Generation Key Derive key, Generation ECDSA and ECDH Private Key, Generation AES-GCM Encryption IV used as KTS, and Generation a secret random number for use the signature generation process of ECDSA and RSA-PSS. The inputs to the HASH_DRBG, that is the entropy input and the nonce input, are random bits which are collected from the ENT that consists of a series of ring oscillators. The ENT specification is listed in the table below. The minimum size of the entropy input and nonce input is 256 bits and 0 bits respectively. Therefore, in this case, Min-entropy of the seed (the entropy and the nonce) is approximately 183-bits (=
256 * 0.75) at least. The module generates SSPs whose strengths are modified by available entropy.
However, it is recommended that the size of the nonce is more than half of the entropy input (i.e., more than 128-bits) as security cushion. In this case, approximately 288-bits of security strength is provided for the HASH_DRBG at least. Table 9-2 Non-Deterministic Random Number Generator Specification
| Target | Test |
|---|---|
| ROM Firmware | 32-bits CRC Check of the boot firmware in ROM |
| RAM Firmware | 32-bits CRC Check of the main firmware which is loaded from the memory outside of the module. |
| Function | Self test type | OperatorFailure behavior |
|---|---|---|
| AES ECB encryption with 128 bits key | KAT | The module enters the Error state. |
| AES ECB decryption with 128 bits key | KAT | The module enters the Error state. |
| ECDSA Signature Verification (P-256) | KAT | The module enters the Error state. |
| Function | Self test type | OperatorFailure behavior |
|---|---|---|
| AES-ECB encryption with 128 bits key | KAT | The module enters the Error state. |
| AES-ECB decryption with 128 bits key | KAT | The module enters the Error state. |
MFP Cryptographic Module(B) 10. Self-Tests 10.1. Pre-operational self-tests Pre-operational self-tests consist of integrity tests. Pre-operational self-tests are specified individually for 10.1.1. Integrity Tests The following table shows the list of integrity tests that is part of the pre-operational self-test of the Table 10-1 Integrity Test If the integrity test fails, the module enters the Error state. When command result bit 31 is 1, it indicates an error due to the integrity test failure, and the return value of the Status Check service is 0x00008000 10.2. Conditional Self-Tests The module performs conditional self-tests. Conditional self-tests consist of the cryptographic algorithm tests and the other tests. 10.2.1. Cryptographic Algorithm Tests The cryptographic algorithm tests for ROM Firmware can be performed by applying the reset, and the cryptographic algorithm test for RAM Firmware except for AES-XTS encryption/decryption KAT can be performed by successfully loading the firmware in Authentication CO service. AES-XTS encryption/decryption KAT can be performed by invoking XTS-shell enable service when the XTS-shell is disabled. Table 10-2 Cryptographic Algorithm Test for ROM Firmware Table 10-3 Cryptographic Algorithm Test for RAM Firmware
| AES-CBC encryption with 128 bits key | KAT | The module enters the Error state. |
|---|---|---|
| AES-CBC decryption with 128 bits key | KAT | The module enters the Error state. |
| HMAC SHA-1 | KAT | The module enters the Error state. |
| HMAC SHA-256 | KAT | The module enters the Error state. |
| HMAC SHA-512 | KAT | The module enters the Error state. |
| AES-CMAC | KAT | The module enters the Error state. |
| RSA Signature Generation (PKCS#1_v1.5, 2048bits) | KAT | The module enters the Error state. |
| RSA Signature Verification (PKCS#1_v1.5, 2048bits) | KAT | The module enters the Error state. |
| ECDSA Signature Generation (P-256) | KAT | The module enters the Error state. |
| ECDSA Signature Verification (P-256) | KAT | The module enters the Error state. |
| ECC Cofactor Diffie-Hellman Primitive “Z” Computation (P-256) | KAT | The module enters the Error state. |
| DRBG | KAT | The module enters the Error state. |
| KDF in Counter Mode using HMAC-SHA-256 | KAT | The module enters the Error state. |
| Function | Self test type | OperatorFailure behavior |
|---|---|---|
| AES-XTS encryption with 256 bits key | KAT | The module enters the Error state. |
| AES-XTS decryption with 256 bits key | KAT | The module enters the Error state. |
MFP Cryptographic Module(B) Table 10-4 AES-XTS Cryptographic Algorithm Test for RAM Firmware If KAT fails, the module enters the Error state. When command result bit 31 is 1, it indicates an error due to KAT failure, and the return value of Status Check service is 0x00008000 indicating the Error state. 10.2.2. Other Conditional Self-Tests The conditional self-tests are performed in the following cases. (1) When firmware load service is executed ECDSA Signature Verification with ECDSA P-256 as Firmware load test for the loaded firmware image is performed. If the Firmware load test fails, the module enters the Error state. The error code of 0x80000020 or 0x80000022 indicates an error due to a public key hash digest mismatch or a signature verification failure, respectively. (2) When Random Number Generator Configuration service is executed A Repetition Count Test (RCT) and an Adaptive Proportion Test (APT) are performed as a startup health-test, whenever the DRBG is seeded. If RCT or APT fails, the module enters the Error state. The error code being 0x8000002c indicates an error due to startup health-test failure.
MFP Cryptographic Module(B) (3) When key derivation service is executed for ECDSA and ECDH A pair-wise consistency test on asymmetric keys generated for either ECDSA or ECDH is performed. If the conditional self-test fails, the module enters the pairwise consistency test error state. Error code being 0x80000026 indicates an error due to the pairwise consistency test failure.
MFP Cryptographic Module(B) 11. Life-cycle Assurance 11.1. Crypto Officer Guidance The following descriptions are the services for startup the module, which are invoked by Crypto Officer. Assumptions regarding user behavior that is relevant to the secure operation of the module are described in Section 11.2. Delivery and Installation The module in the silicon chip manufactured by the vendor is delivered thorough a trusted delivery courier. When the administrator receives the chip, they shall check whether the package is disclosed or not before installation. Initialization Procedure The initialization procedure is referred to as Provisioning. If Provisioning has not been invoked yet, the administrator shall initialize the module. Initialization service is invoked only one time. In Provisioning, the module authenticates the administrator with default Crypto Officer ID and Password, and administrator shall update Crypto Officer ID and Password and enter followings.
MFP Cryptographic Module(B) 11.2. User Guidance ● The Shared Secret which is output of Export Key service shall be managed properly by a user. ● In order to meet the FIPS 140-3 IG 2.3.B requirement, a user shall not input any keys in plaintext, if those are input directly from outside of the cryptographic physical boundary. ● If AES-GCM IVs are deterministically generated by the module using the protocol such as TLS, IPsec and MACsec, a user shall generate the IV to meet the requirement per the FIPS140-3 IG C.H. Case