| Standard | FIPS 140-3 |
|---|---|
| Overall level | 1 |
| Module type | Software |
| Embodiment | Multi-Chip Stand Alone |
| Status | Historical |
| Caveat | Interim validation. No assurance of the minimum strength of generated SSPs (e.g., keys) |
| Vendor | Allegro Software Development Corporation |
flowchart LR
%% Deterministic review-risk graph for Allegro Cryptographic Engine
%% Review prompts and evidence gaps, NOT vulnerability findings.
subgraph CMVP["CMVP-disclosed clues"]
C2["[low] Firmware update / recovery<br/>/ rollback (referenced in<br/>text)<br/><i>Recovery</i>"]
C3["[low] Self-test / status surface<br/>(referenced in text)<br/><i>Self-Test<br/>UnAuth</i>"]
C5["[low] Protocol / secure-channel<br/>references (may be KDF<br/>names, not a live channel)<br/><i>TLS<br/>SSH<br/>no library/version identified</i>"]
C6["[low] Operating system / runtime<br/>referenced (boundary<br/>membership not asserted)<br/><i>operating system<br/>linux<br/>application</i>"]
end
subgraph Inference["Derived inference"]
I2["Possible only, trusted<br/>code is reachable through<br/>update and recovery paths."]
I3["Possible only, some<br/>services may process input<br/>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"]
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"]
E2["confirm the disclosure<br/>itself (keyword hit,<br/>context unverified) ·<br/>update image format ·<br/>signature-before-parse<br/>proof · anti-rollback /<br/>downgrade policy"]
E3["confirm the disclosure<br/>itself (keyword hit,<br/>context unverified) ·<br/>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
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 C2,C3,C5,C6 clue;
class I2,I3,I5,I6 infer;
class R2,R3,R5,R6 risk;
class E2,E3,E5,E6 evidence;flowchart LR
%% Deterministic clue tier for Allegro Cryptographic Engine
%% confidence: high = structured record field; medium = structured but soft; low (dashed) = bare keyword hit, context unverified
subgraph CMVP["CMVP-disclosed clues (deterministic)"]
C2["[low] Firmware update / recovery / rollback (referenced in text)<br/><i>Recovery</i><br/>src: text:keyword"]
C3["[low] Self-test / status surface (referenced in text)<br/><i>Self-Test<br/>UnAuth</i><br/>src: text:keyword"]
C5["[low] Protocol / secure-channel references (may be KDF names, not a live channel)<br/><i>TLS<br/>SSH<br/>no library/version identified</i><br/>src: text:keyword"]
C6["[low] Operating system / runtime referenced (boundary membership not asserted)<br/><i>operating system<br/>linux<br/>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 C2,C3,C5,C6 clueLow;Allegro Software Development Corporation Allegro Cryptographic Engine Document Revision 1.1 September 2024
| # | Section | Page |
|---|
(Allegro Software Development Corporation. © 2024) Version 1.0 Public Material – May be reproduced only in its original entirety (without revision).
| Item | Page |
|---|---|
| Table 1: Security Levels | 5 |
| Table 2: Tested Module Identification – Software, Firmware, Hybrid (Executable Code Sets) | 7 |
| Table 3: Tested Operational Environments - Software, Firmware, Hybrid | 7 |
| Table 4: Modes List and Description | 7 |
| Table 5: Approved Algorithms - Cipher | 8 |
| Table 6: Approved Algorithms - Message Authentication | 8 |
| Table 7: Approved Algorithms - Symmetric Key Wrap | 8 |
| Table 8: Approved Algorithms - Asymmetric Key Generation | 8 |
| Table 9: Approved Algorithms - Asymmetric Key Verification | 9 |
| Table 10: Approved Algorithms - Asymmetric Signature Generation | 9 |
| Table 11: Approved Algorithms - Asymmetric Signature Verification | 9 |
| Table 12: Approved Algorithms - Random Number Generation | 9 |
| Table 13: Approved Algorithms - Shared Secret Computation | 9 |
| Table 14: Approved Algorithms - Key Derivation | 10 |
| Table 15: Approved Algorithms - Hash Function | 10 |
| Table 16: Approved Algorithms - Safe Primes Generation | 10 |
| Table 17: Approved Algorithms - Safe Primes Verification | 10 |
| Table 18: Vendor-Affirmed Algorithms | 10 |
| Table 19: Non-Approved, Allowed Algorithms | 11 |
| Table 20: Non-Approved, Allowed Algorithms with No Security Claimed | 11 |
| Table 21: Security Function Implementations | 13 |
| Table 22: Ports and Interfaces | 16 |
| Table 23: Roles | 16 |
| Table 24: Approved Services | 25 |
| Table 25: Storage Areas | 26 |
| Table 26: SSP Input-Output Methods | 26 |
| Table 27: SSP Zeroization Methods | 26 |
| Table 28: SSP Table 1 | 29 |
| Table 29: SSP Table 2 | 32 |
| Table 30: Pre-Operational Self-Tests | 33 |
| Table 31: Conditional Self-Tests | 36 |
| Table 32: Pre-Operational Periodic Information | 36 |
| Table 33: Conditional Periodic Information | 39 |
| Table 34: Error States | 39 |
| Figure 1: Block Diagram | 6 |
| Section | Title | Security Level |
|---|---|---|
| 1 | General | 1 |
| 2 | Cryptographic module specification | 1 |
| 3 | Cryptographic module interfaces | 1 |
| 4 | Roles, services, and authentication | 1 |
| 5 | Software/Firmware security | 1 |
| 6 | Operational environment | 1 |
| 7 | Physical security | N/A |
| 8 | Non-invasive security | N/A |
| 9 | Sensitive security parameter management | 1 |
| 10 | Self-tests | 1 |
| 11 | Life-cycle assurance | 1 |
| 12 | Mitigation of other attacks | N/A |
| Overall Level | 1 |
This document is a non-proprietary cryptographic module security policy for the Allegro Cryptographic Engine (Software Version 6.50) from Allegro Software Development Corporation. This security policy contains specification of the security rules, under which the cryptographic module operates, including the security rules derived from the requirements of the FIPS 140-3 standard.
Purpose and Use: The Allegro Cryptographic Engine (also informally referred to as “ACE,” and in this security policy as “the module”) is a software cryptographic module that runs on a general-purpose computer (GPC). It provides FIPS 140-3 approved cryptography that can be used by calling applications via a C language Application Programming Interface (API). The module meets the overall requirements applicable to a multi-chip stand-alone embodiment at FIPS 1403, Level 1. The module is a shared cryptographic library providing symmetric and asymmetric encryption and decryption, message digest, message authentication, random number generation, key generation, digital signature generation and verification, and other cryptographic functionality. As a software cryptographic module that executes on a general-purpose computer, the module depends upon the physical characteristics of the host platform. The module’s physical perimeter is defined by the enclosure around the host system on which it executes. The logical interface of the module is its Application Programming Interface, which a calling application must utilize to invoke the cryptographic services of the module, pass input data to the module and receive output data and status from the module. The module is packaged as a shared object for Linux 5.15 (Mint 21) and Windows 11 Pro. The module also includes a data file that is used for verifying the integrity of the module. The module has been validated on Linux
(Allegro Software Development Corporation. © 2024) Version 1.0 Public Material – May be reproduced only in its original entirety (without revision).
| Package or File Name | Software/ Firmware Version | Features | Integrity Test |
|---|---|---|---|
| Acelib.so (Linux 5.15) (Mint 21) (PAA Enabled) | 6.50 | PAA Enabled Binary | HMAC-SHA2-256 (AceLib.dat) |
| AceDll.dll (Windows 11 Pro) (PAA Enabled) | 6.50 | PAA Enabled Binary | HMAC-SHA2-256 (AceDll.dll.dat) |
The module meets the overall requirements applicable at Level 1 security of FIPS 140-3. Module Type: Software Module Embodiment: MultiChipStand Cryptographic Boundary: The module’s cryptographic boundary is comprised of a single binary:
Tested Module Identification
| Package or File Name | Software/ Firmware Version | Features | Integrity Test |
|---|---|---|---|
| Acelib.so (Linux 5.15) (Mint 21) (PAA Disabled) | 6.50 | PAA Disabled Binary | HMAC-SHA2-256 (AceLib.dat) |
| AceDll.dll (Windows 11 Pro) (PAA Disabled) | 6.50 | PAA Disabled Binary | HMAC-SHA2-256 (AceDll.dll.dat) |
| Operating System | Hardware Platform | Processors | PAA/PAI | Hypervisor or Host OS | Version(s) |
|---|---|---|---|---|---|
| Linux 5.15 (Mint 21) | Intel NUC | Intel® Core™ i7-1260P | No | N/A | 6.50 |
| Linux 5.15 (Mint 21) | Intel NUC | Intel® Core™ i7-1260P | Yes | N/A | 6.50 |
| Windows 11 Pro | Intel NUC | Intel® Core™ i7-1260P | No | N/A | 6.50 |
| Windows 11 Pro | Intel NUC | Intel® Core™ i7-1260P | Yes | N/A | 6.50 |
| Mode Name | Description | Type | Status Indicator | |
|---|---|---|---|---|
| Approved Mode | Mode of operation where only approved security functions and services can be utilized | Approved | Pass |
| Algorithm | CAVP Cert | Properties | Reference |
|---|---|---|---|
| AES-CBC | A3332 | Direction - Decrypt, Encrypt Key Length - 128, 192, 256 | SP 800-38A |
| AES-CCM | A3332 | Key Length - 128, 192, 256 | SP 800-38C |
| AES-CFB1 | A3332 | Direction - Decrypt, Encrypt Key Length - 128, 192, 256 | SP 800-38A |
| AES-CFB128 | A3332 | Direction - Decrypt, Encrypt Key Length - 128, 192, 256 | SP 800-38A |
| AES-CFB8 | A3332 | Direction - Decrypt, Encrypt Key Length - 128, 192, 256 | SP 800-38A |
Table 2: Tested Module Identification – Software, Firmware, Hybrid (Executable Code Sets) Tested Operational Environments - Software, Firmware, Hybrid: Table 3: Tested Operational Environments - Software, Firmware, Hybrid The CMVP makes no statement as to the correct operation of the module or the security strengths of the generated keys when ported if the specific operational environment is not listed on the validation certificate.
There are no components excluded from the module. Modes List and Description: Table 4: Modes List and Description The module supports an approved mode of operation only.
Approved Algorithms: Cipher (Allegro Software Development Corporation. © 2024) Version 1.0 Public Material – May be reproduced only in its original entirety (without revision).
| Algorithm | CAVP Cert | Properties | Reference |
|---|---|---|---|
| AES-CTR | A3332 | Direction - Decrypt, Encrypt Key Length - 128, 192, 256 | SP 800-38A |
| AES-ECB | A3332 | Direction - Decrypt, Encrypt Key Length - 128, 192, 256 | SP 800-38A |
| AES-FF1 | A3332 | Direction - Decrypt, Encrypt Key Length - 128, 192, 256 | SP 800-38G |
| AES-GCM | A3332 | Direction - Decrypt, Encrypt IV Generation - Internal IV Generation Mode - 8.2.1 Key Length - 128, 192, 256 | SP 800-38D |
| AES-OFB | A3332 | Direction - Decrypt, Encrypt Key Length - 128, 192, 256 | SP 800-38A |
| AES-XTS Testing Revision 2.0 | A3332 | Direction - Decrypt, Encrypt Key Length - 128, 256 | SP 800-38E |
| Algorithm | CAVP Cert | Properties | Reference |
|---|---|---|---|
| AES-CMAC | A3332 | Direction - Generation, Verification Key Length - 128, 192, 256 | SP 800-38B |
| AES-GMAC | A3332 | Direction - Decrypt, Encrypt IV Generation - Internal IV Generation Mode - 8.2.1 Key Length - 128, 192, 256 | SP 800-38D |
| HMAC-SHA-1 | A3332 | Key Length - Key Length: 256-448 Increment 8 | FIPS 198-1 |
| HMAC-SHA2-224 | A3332 | Key Length - Key Length: 256-448 Increment 8 | FIPS 198-1 |
| HMAC-SHA2-256 | A3332 | Key Length - Key Length: 256-448 Increment 8 | FIPS 198-1 |
| HMAC-SHA2-384 | A3332 | Key Length - Key Length: 256-448 Increment 8 | FIPS 198-1 |
| HMAC-SHA2-512 | A3332 | Key Length - Key Length: 256-448 Increment 8 | FIPS 198-1 |
| HMAC-SHA3-224 | A3332 | Key Length - Key Length: 256-448 Increment 8 | FIPS 198-1 |
| HMAC-SHA3-256 | A3332 | Key Length - Key Length: 256-448 Increment 8 | FIPS 198-1 |
| HMAC-SHA3-384 | A3332 | Key Length - Key Length: 256-448 Increment 8 | FIPS 198-1 |
| HMAC-SHA3-512 | A3332 | Key Length - Key Length: 256-448 Increment 8 | FIPS 198-1 |
| Algorithm | CAVP Cert | Properties | Reference |
|---|---|---|---|
| AES-KW | A3332 | Direction - Decrypt, Encrypt Key Length - 128, 192, 256 | SP 800-38F |
| AES-KWP | A3332 | Direction - Decrypt, Encrypt Key Length - 128, 192, 256 | SP 800-38F |
| Algorithm | CAVP Cert | Properties | Reference |
|---|---|---|---|
| ECDSA KeyGen (FIPS186-4) | A3332 | Curve - P-224, P-256, P-384, P-521 Secret Generation Mode - Testing Candidates | FIPS 186-4 |
| RSA KeyGen (FIPS186-4) | A3332 | Key Generation Mode - B.3.6 Modulo - 2048, 3072, 4096 Primality Tests - Table C.3 Private Key Format - Standard | FIPS 186-4 |
Table 5: Approved Algorithms - Cipher Message Authentication Table 6: Approved Algorithms - Message Authentication Symmetric Key Wrap Table 7: Approved Algorithms - Symmetric Key Wrap Table 8: Approved Algorithms - Asymmetric Key Generation (Allegro Software Development Corporation. © 2024) Version 1.0 Public Material – May be reproduced only in its original entirety (without revision).
| Algorithm | CAVP Cert | Properties | Reference | ||||
|---|---|---|---|---|---|---|---|
| ECDSA KeyVer (FIPS186-4) | A3332 | Curve - P-192, P-224, P-256, P-384, P-521 | FIPS 186-4 |
| Algorithm | CAVP Cert | Properties | Reference |
|---|---|---|---|
| ECDSA SigGen (FIPS186-4) | A3332 | Curve - P-224, P-256, P-384, P-521 Hash Algorithm - SHA2-224, SHA2-256, SHA2-384, SHA2-512 | FIPS 186-4 |
| RSA SigGen (FIPS186-4) | A3332 | Signature Type - ANSI X9.31, PKCSPSS Modulo - 2048, 3072, 4096 | FIPS 186-4 |
| Algorithm | CAVP Cert | Properties | Reference |
|---|---|---|---|
| ECDSA SigVer (FIPS186-4) | A3332 | Curve - P-224, P-256, P-384, P-521 Hash Algorithm - SHA2-224, SHA2-256, SHA2-384, SHA2-512 | FIPS 186-4 |
| RSA SigVer (FIPS186-4) | A3332 | Signature Type - ANSI X9.31, PKCSPSS Modulo - 2048, 3072, 4096 | FIPS 186-4 |
| Algorithm | CAVP Cert | Properties | Reference | ||||
|---|---|---|---|---|---|---|---|
| Hash DRBG | A3332 | Mode - SHA2-256, SHA2-512 | SP 800-90A Rev. 1 |
Algorithm KAS-ECC-SSC Sp800- 56Ar3 KAS-FFC-SSC Sp800- 56Ar3
C C A3332 A3332
AVP ert
Properties Domain Parameter Generation Methods - P-224, P- 256, P-384, P-521 Scheme - ephemeralUnified - KAS Role - initiator, responder Domain Parameter Generation Methods - MODP- 2048, MODP-3072
Reference SP 800-56A Rev. 3 SP 800-56A Rev. 3
| Algorithm | CAVP Cert | Properties | Reference |
|---|---|---|---|
| KDA HKDF Sp800- 56Cr1 | A3332 | Derived Key Length - 2048 Shared Secret Length - Shared Secret Length: 224-2048 Increment 8 HMAC Algorithm - SHA2-224, SHA2-256, SHA2-384, SHA2-512, SHA3-224, SHA3-256, SHA3-384, SHA3-512 | SP 800-56C Rev. 2 |
| KDF SSH (CVL) | A3332 | Cipher - AES-128, AES-192, AES-256 Hash Algorithm - SHA-1, SHA2-224, SHA2-256, SHA2- 384, SHA2-512 | SP 800-135 Rev. 1 |
| PBKDF | A3332 | Iteration Count - Iteration Count: 1000-100000 Increment 1 Password Length - Password Length: 8-128 Increment 1 | SP 800-132 |
Asymmetric Key Verification Table 9: Approved Algorithms - Asymmetric Key Verification Table 10: Approved Algorithms - Asymmetric Signature Generation Asymmetric Signature Verification Table 11: Approved Algorithms - Asymmetric Signature Verification Random Number Generation Table 12: Approved Algorithms - Random Number Generation Table 13: Approved Algorithms - Shared Secret Computation Key Derivation (Allegro Software Development Corporation. © 2024) Version 1.0 Public Material – May be reproduced only in its original entirety (without revision).
| Algorithm | CAVP Cert | Properties | Reference |
|---|---|---|---|
| TLS v1.2 KDF RFC7627 (CVL) | A3332 | Hash Algorithm - SHA2-256, SHA2-384, SHA2-512 | SP 800-135 Rev. 1 |
| TLS v1.3 KDF (CVL) | A3332 | HMAC Algorithm - SHA2-256, SHA2-384 KDF Running Modes - PSK-DHE | SP 800-135 Rev. 1 |
| Algorithm | CAVP Cert | Properties | Reference |
|---|---|---|---|
| SHA-1 | A3332 | Message Length - Message Length: 0-65528 Increment 8 | FIPS 180-4 |
| SHA2-224 | A3332 | Message Length - Message Length: 0-65528 Increment 8 | FIPS 180-4 |
| SHA2-256 | A3332 | Message Length - Message Length: 0-65528 Increment 8 | FIPS 180-4 |
| SHA2-384 | A3332 | Message Length - Message Length: 0-65528 Increment 8 | FIPS 180-4 |
| SHA2-512 | A3332 | Message Length - Message Length: 0-65528 Increment 8 | FIPS 180-4 |
| SHA3-224 | A3332 | Message Length - Message Length: 0-65536 Increment 8 | FIPS 202 |
| SHA3-256 | A3332 | Message Length - Message Length: 0-65536 Increment 8 | FIPS 202 |
| SHA3-384 | A3332 | Message Length - Message Length: 0-65536 Increment 8 | FIPS 202 |
| SHA3-512 | A3332 | Message Length - Message Length: 0-65536 Increment 8 | FIPS 202 |
| SHAKE-128 | A3332 | Output Length - Output Length: 16-65536 Increment 8 | FIPS 202 |
| SHAKE-256 | A3332 | Output Length - Output Length: 16-65536 Increment 8 | FIPS 202 |
| Algorithm | CAVP Cert | Properties | Reference | ||||
|---|---|---|---|---|---|---|---|
| Safe Primes Key Generation | A3332 | Safe Prime Groups - modp-2048, modp- 3072 | SP 800-56A Rev. 3 |
| Algorithm | CAVP Cert | Properties | Reference | ||||
|---|---|---|---|---|---|---|---|
| Safe Primes Key Verification | A3332 | Safe Prime Groups - modp-2048, modp- 3072 | SP 800-56A Rev. 3 |
| Name | Properties | Implementation | Reference |
|---|---|---|---|
| CKG Section 4 | Key Type:Symmetric | N/A | NIST SP 800-133 Rev. 2 (Section 4) |
| CKG Section 4 | Key Type:Seed for Asymmetric Key | N/A | NIST SP 800-133 Rev. 2 (Section 4) |
| CKG Section 6.1 | Key Type:Symmetric | N/A | NIST SP 800-133 Rev. 2 (Section 6.1) |
| Name | Properties | Implementation | Reference | ||||
|---|---|---|---|---|---|---|---|
| Key Unwrap | Key Type:Symmetric | N/A | IG D.G |
Table 14: Approved Algorithms - Key Derivation Hash Function Table 15: Approved Algorithms - Hash Function Table 16: Approved Algorithms - Safe Primes Generation Table 17: Approved Algorithms - Safe Primes Verification The module’s approved algorithms are specified above. There are some algorithm modes that were tested but not implemented by the module. Only the algorithms, modes, and key sizes that are implemented by the module are shown in this table. Vendor-Affirmed Algorithms:
6.1 6.1)
Table 18: Vendor-Affirmed Algorithms Non-Approved, Allowed Algorithms: (Allegro Software Development Corporation. © 2024) Version 1.0 Public Material – May be reproduced only in its original entirety (without revision).
| Name | Caveat | Use and Function | |||
|---|---|---|---|---|---|
| MD5 | Allowed in the approved mode with no security claimed | Used for TLS 1.2 interoperability |
| Name | Type | Description | Properties | Algorithms |
|---|---|---|---|---|
| DRBG | DRBG | Random Bit Generation | Hash DRBG | |
| Message Digest | SHA | Create Message Digest | SHA-1 SHA2-224 SHA2-256 SHA2-384 SHA2-512 SHA3-224 SHA3-256 SHA3-384 SHA3-512 SHAKE-128 SHAKE-256 | |
| Generate Digital Signature | DigSig-SigGen | Create Digital Signatures | ECDSA SigGen (FIPS186-4) RSA SigGen (FIPS186-4) | |
| Verify Digital Signature | DigSig-SigVer | Verify Digital Signature | ECDSA SigVer (FIPS186-4) RSA SigVer (FIPS186-4) | |
| Generate Symmetric Keys | CKG DRBG | Generate Symmetric Keys | Hash DRBG CKG Section 4 Key Type: Symmetric CKG Section 6.1 Key Type: Symmetric |
Table 19: Non-Approved, Allowed Algorithms Caveats:
| Name | Type | Description | Properties | Algorithms | |
|---|---|---|---|---|---|
| Generate Asymmetric Keys | AsymKeyPair- KeyGen CKG | Generation of Asymmetric Keys | ECDSA KeyGen (FIPS186-4) RSA KeyGen (FIPS186-4) Hash DRBG CKG Section 4 Key Type: Seed for Asymmetric Key | ||
| Shared Secret Computation (KAS- FFC-SSC) | AsymKeyPair- SafePri KAS-SSC | Shared Secret Computation (KAS- FFC-SSC) | Shared Secret Computation:Provides between 112 and 128 bits of encryption strength | KAS-FFC-SSC Sp800-56Ar3 Safe Primes Key Generation Safe Primes Key Verification | |
| Shared Secret Computation (KAS- ECC-SSC) | AsymKeyPair- DomPar AsymKeyPair- KeyGen AsymKeyPair- PubKeyVal DRBG KAS-SSC | NIST SP 800-56Ar3 shared secret computation (KAS- ECC-SSC) | Shared Secret Computation:Provides between 128 and 256 bits of encryption strength | KAS-ECC-SSC Sp800-56Ar3 ECDSA KeyGen (FIPS186-4) ECDSA SigGen (FIPS186-4) ECDSA SigVer (FIPS186-4) Hash DRBG | |
| Derive Key (HKDF) | KAS-56CKDF SHA | Key Derivation | KDA HKDF Sp800- 56Cr1 HMAC-SHA2-224 HMAC-SHA2-256 HMAC-SHA2-384 HMAC-SHA2-512 HMAC-SHA3-224 HMAC-SHA3-256 HMAC-SHA3-384 HMAC-SHA3-512 | ||
| Derive Key (TLS 1.2) | KAS-135KDF SHA | Key Derivation for TLS 1.2 RFC 7627 | TLS v1.2 KDF RFC7627 SHA2-256 SHA2-384 SHA2-512 | ||
| Derive Key (TLS 1.3) | KAS-135KDF SHA | Key Derivation for TLS 1.3 | TLS v1.3 KDF SHA2-256 SHA2-384 | ||
| Derive Key (SSH) | KAS-135KDF SHA | Key Derivation for SSH | KDF SSH SHA-1 SHA2-224 SHA2-256 SHA2-384 SHA2-512 | ||
| Derive Key (PBKDF) | MAC PBKDF | Password-Based Key Derivation | PBKDF HMAC-SHA-1 | ||
| Message Authentication | MAC | Message Authentication Algorithms | HMAC-SHA-1 HMAC-SHA2-224 HMAC-SHA2-256 |
(Allegro Software Development Corporation. © 2024) Version 1.0 Public Material – May be reproduced only in its original entirety (without revision).
| Name | Type | Description | Properties | Algorithms | |
|---|---|---|---|---|---|
| HMAC-SHA2-384 HMAC-SHA2-512 HMAC-SHA3-224 HMAC-SHA3-256 HMAC-SHA3-384 HMAC-SHA3-512 AES-CMAC AES-GMAC Hash DRBG CKG Section 4 Key Type: Symmetric CKG Section 6.1 Key Type: Symmetric | |||||
| Symmetric Cipher | BC-Auth BC-UnAuth | Encryption & Decryption | AES-CBC AES-CCM AES-CFB1 AES-CFB128 AES-CFB8 AES-ECB AES-FF1 AES-GCM AES-KW AES-KWP AES-OFB AES-XTS Testing Revision 2.0 AES-CTR | ||
| Key Wrapping | KTS-Wrap | Key Wrapping Method (SP 800- 38F) (IG D.G) | KTS:Key establishment methodology provides between 128 and 256 bits of encryption strength | AES-KW AES-KWP | |
| Verify Asymmetric Keys | AsymKeyPair- KeyVer | Verify Asymmetric Keys | ECDSA KeyVer (FIPS186-4) | ||
| CKG Section 4 | CKG | NIST SP 800-133 Rev. 2 (Section 4) | CKG Section 4 | ||
| CKG Section 6.1 | CKG | NIST SP 800-133 Rev. 2 (Section 6.1) | CKG Section 6.1 |
Table 21: Security Function Implementations
SHA-3 & SHAKE (IG C.C) SHA-3 and SHAKE were tested and validated on all of the module’s operating environments. RSA (IG C.F) (Allegro Software Development Corporation. © 2024) Version 1.0 Public Material – May be reproduced only in its original entirety (without revision).
PBKDF2 (IG D.N) The Allegro Cryptographic Engine requires the password to be at least ten characters in length, the iteration count at least 1000, the salt at least 128 bits in length, and that the master key output from the PBKDF2 is at least 112 bits in length. Master keys may be used as Device Protection Keys (Option 1(a) from Section 5.4 of NIST SP 800132). Alternately, they may be used with a key derivation function to produce a Device Protection Key (Option 1(b) from Section 5.4 of NIST SP 800-132). Passwords passed to the PBKDF2 implemented shall have a length of at least 10 characters and shall consist of upper- and lower-case letters and numbers (52 letters) and digits (0-9) as well as characters from the set ~!@#$%^&*. There are 71 different characters that can be used, in any order. The probability of guessing this password at random is 7110 = 1: 3.3 * 1018. This provides a password search space of more than 60 bits. The length of the random salt used in PBKDF2 must be at least 128 bits. The iteration count used in PBKDF2 must be at least
1000 and should be as large as is tolerable by the calling application. The length of the master key generated by
PBKDF2 must be at least 112 bits. The calling application may use the master key, the Data Protection Key, or it may derive the Data Protection Key from the master key using a key derivation function. The Data Protection Key shall be used for storage purposes only and shall use only approved encryption algorithms.
The entropy for seeding the SP 800-90Ar1 DRBG is determined by the user of the module, which is outside of the module’s cryptographic boundary. To be compliant, the target application shall supply at least 256 bits of entropy in order to meet the security strength required for the random number generation mechanism. Since entropy is loaded passively into the module, there is no assurance of the minimum strength of generated SSPs (e.g., keys).
SSPs that are generated internally by the module, are generated using the module's approved DRBG.
The module is capable of performing key establishment when utilizing the implemented NIST SP 800-56Ar3 shared secret computation methods, with one of the approved key derivation functions. The module also supports key transport methods compliant with NIST SP 800-38F.
While the module does not implement the TLS or SSH protocols, it does implement the key derivation functions for both, per NIST SP 800-135r1.
Please see Section 11 for details regarding the preparation of the operational environments, and installation of the module.
(Allegro Software Development Corporation. © 2024) Version 1.0 Public Material – May be reproduced only in its original entirety (without revision).
| Physical Port | Logical Interface(s) | Data That Passes |
|---|---|---|
| N/A | Data Input | Input data passed via API calls as function arguments or in memory buffers referenced by function arguments |
| N/A | Data Output | Data returned by API calls using function arguments and related memory buffers |
| N/A | Control Input | API function calls that initialize and control the operation of the module |
| N/A | Status Output | Values returned from API calls |
| Name | Type | Operator Type | Authentication Methods | ||||
|---|---|---|---|---|---|---|---|
| CO | Role | Crypto Officer | None |
| Name | Description | I | ndicato r | Inputs | Outputs | Security Functions | SSP Access |
|---|---|---|---|---|---|---|---|
| AcInit() | Initialize the module for use in Approved mode | Successf ul Invocatio n (Pass) | N/A | Invocation Success or Invocation Failure | None | CO | |
| AcDeInit() | Zeroize all keys and CSPs and disable crypto services | Successf ul Invocatio n (Pass) | N/A | Invocation Success or Invocation Failure | None | CO | |
| AcRunSelfTest() | Run cryptographic self-tests on demand | Successf ul Invocatio n (Pass) | N/A | Invocation Success or Invocation Failure | DRBG Message Digest Generate Digital | CO |
Table 22: Ports and Interfaces As a software cryptographic module, the module’s physical and electrical characteristics, manual controls and physical indicators are those of the host system. The host system provides physical ports that the operating system physical indicators of the GPC. The module does not support a control output interface. The module does not identify or authenticate the operator. The Crypto Officer role is assumed by the operator. Only one operator can operate the module at any time.
Table 23: Roles The Allegro Cryptographic Engine supports only one role, which is the Crypto Officer role. (Allegro Software Development Corporation. © 2024) Version 1.0 Public Material – May be reproduced only in its original entirety (without revision).
| Name | Description | Indicato r | Inputs | Outputs | Security Functions | SSP Access |
|---|---|---|---|---|---|---|
| Signature Verify Digital Signature Generate Asymmetric Keys Shared Secret Computatio n (KAS- FFC-SSC) Shared Secret Computatio n (KAS- ECC-SSC) Derive Key (HKDF) Derive Key (TLS 1.2) Derive Key (TLS 1.3) Derive Key (SSH) Derive Key (PBKDF) Message Authenticati on Symmetric Cipher Verify Asymmetric Keys | ||||||
| AcAceLibraryInfo() | Return the module name and version | Successf ul Invocatio n (Pass) | N/A | Module Name, Major Version, Minor Version, Build Number, Invocation Success or Invocation Failure | None | CO |
| AcGenerateRandomNumb ers() | Generate random data | Successf ul Invocatio n (Pass) | API call paramete rs | Random Number, Invocation Success or Invocation Failure | DRBG | CO |
(Allegro Software Development Corporation. © 2024) Version 1.0 Public Material – May be reproduced only in its original entirety (without revision).
| Name | Description | Indicato r | Inputs | Outputs | Security Functions | SSP Access |
|---|---|---|---|---|---|---|
| AcDigest() AcDigestInit() AcDigestUpdate() AcDigestFinal() | Create message digest from input data | Successf ul Invocatio n (Pass) | API call paramete rs | Hash, Invocation Success or Invocation Failure | Message Digest | CO |
| AcDigestClone() | Duplicate a message digest | Successf ul Invocatio n (Pass) | API call paramete rs | Hash, Invocation Success or Invocation Failure | None | CO |
| AcKeyedDigestInit() | Create a keyed message digest of input data | Successf ul Invocatio n (Pass) | API call paramete rs | Digest, Invocation Success or Invocation Failure | Message Digest Message Authenticati on | CO - HMAC Key: R,E - AES GMAC Key: R,E - AES CMAC Key: R,E |
| AcSign() AcSignInit() AcSignUpdate() AcSignFinal() | Create a Digital Signature | Successf ul Invocatio n (Pass) | API call paramete rs | Signature, Invocation Success or Invocation Failure | Generate Digital Signature | CO - RSA Private Key: R,E - ECDSA Private Key: R,E |
| AcSignDigestBuffer() | Create a digital signature for a previously computed message digest | Successf ul Invocatio n (Pass) | API call paramete rs | Signature, Invocation Success or Invocation Failure | Generate Digital Signature | CO - RSA Private Key: R,E - ECDSA Private Key: R,E |
| AcVerify() AcVerifyInit() AcVerifyUpdate() AcVerifyFinal() | Verify a digital signature | Successf ul Invocatio n (Pass) | API call paramete rs | Signature, Invocation Success or Invocation Failure | Verify Digital Signature Verify Asymmetric Keys | CO - RSA Public Key: R,E - ECDSA Public Key: R,E |
| AcVerifyDigestBuffer() | Verify a digital signature for a previously computed digest | Successf ul Invocatio n (Pass) | API call paramete rs | Signature, Invocation Success or Invocation Failure | Verify Digital Signature Verify Asymmetric Keys | CO - RSA Public Key: R,E - ECDSA Public Key: R,E |
| AcEncryptInit() | Encrypt or decrypt a block of data | Successf ul Invocatio n (Pass) | API call paramete rs | Plaintext, Ciphertext, Invocation Success or Invocation Failure | Symmetric Cipher | CO - AES Key : R,E - AES GCM Key: R,E - AES GCM IV: R,E |
R,E R,E (Allegro Software Development Corporation. © 2024) Version 1.0 Public Material – May be reproduced only in its original entirety (without revision).
| Name | Description | Indicato r | Inputs | Outputs | Security Functions | SSP Access - AES CCM Key: R,E - AES-XTS Testing Revision 2.0 Key: R,E - AES CMAC Key: R,E - AES GMAC Key: R,E |
|---|---|---|---|---|---|---|
| AcEncryptUpdate() | Encrypt or decrypt a block of data | Successf ul Invocatio n (Pass) | API call paramete rs | Plaintext, Ciphertext, Invocation Success or Invocation Failure | Symmetric Cipher | CO - AES Key : R,E - AES GCM Key: R,E - AES GCM IV: R,E - AES CCM Key: R,E - AES-XTS Testing Revision 2.0 Key: R,E - AES CMAC Key: R,E - AES GMAC Key: R,E |
| AcEncryptFinal() | Encrypt or decrypt a block of data | Successf ul Invocatio n (Pass) | API call paramete rs | Plaintext, Ciphertext, Invocation Success or Invocation Failure | Symmetric Cipher | CO - AES Key : R,E - AES GCM Key: R,E - AES GCM IV: R,E - AES CCM Key: R,E - AES-XTS Testing Revision 2.0 Key: R,E - AES CMAC Key: R,E - AES GMAC Key: R,E |
| AcGenerateKey() | Generate symmetric keys | Successf ul Invocatio n (Pass) | API call paramete rs | Key, Invocation Success or Invocation Failure | Generate Symmetric Keys CKG Section 4 | CO - AES Key : G,W - AES GCM Key: G,W |
R,E R,E R,E (Allegro Software Development Corporation. © 2024) Version 1.0 Public Material – May be reproduced only in its original entirety (without revision).
| Name | Description | Indicato r | Inputs | Outputs | Security Functions | SSP Access |
|---|---|---|---|---|---|---|
| CKG Section 6.1 | - AES CMAC Key: G,W - AES-XTS Testing Revision 2.0 Key: G,W - Key Encryption Key (KEK): G,W | |||||
| AcGenerateKeyPair() | Generate asymmetric key pairs | Successf ul Invocatio n (Pass) | API call paramete rs | KeyPair, Invocation Success or Invocation Failure | Generate Asymmetric Keys CKG Section 4 | CO - RSA Private Key: G,W - RSA Public Key: G,W - ECDSA Private Key: G,W - ECDSA Public Key: G,W - ECDH Private Components : G,W - ECDH Public Components : G,W - DH Private Components : G,W - DH Public Components : G,W |
| AcBuildKeyPairFromPara ms() | Generate asymmetric key pairs using specific key parameters | Successf ul Invocatio n (Pass) | API call paramete rs | KeyPair, Invocation Success or Invocation Failure | Generate Asymmetric Keys Shared Secret Computatio n (KAS- FFC-SSC) Shared Secret Computatio n (KAS- ECC-SSC) | CO - RSA Private Key: G,W - RSA Public Key: G,W - ECDSA Private Key: G,W - ECDSA Public Key: G,W - ECDH Private Components : G,W |
G,W G,W G,W : G,W : G,W : G,W : G,W : G,W (Allegro Software Development Corporation. © 2024) Version 1.0 Public Material – May be reproduced only in its original entirety (without revision).
| Name | Description | Indicato r | Inputs | Outputs | Security Functions | SSP Access - ECDH Public Components : G,W - DH Private Components : G,W - DH Public Components : G,W |
|---|---|---|---|---|---|---|
| AcExportKey() | Wrap Key | Successf ul Invocatio n (Pass) | API call paramete rs | Key/KeyPair, Invocation Success or Invocation Failure | Key Wrapping | CO - Key Encryption Key (KEK): R,E |
| AcImportKey() | Unwrap Key | Successf ul Invocatio n (Pass) | API call paramete rs | Key/KeyPair, Invocation Success or Invocation Failure | Key Wrapping | CO - Key Encryption Key (KEK): W,E |
| AcKeySize() | Return the key size for a selected Key | Successf ul Invocatio n (Pass) | API call paramete rs | Key Size, Invocation Success or Invocation Failure | None | CO |
| AcKeyExchange() | Establish a shared secret | Successf ul Invocatio n (Pass) | API call paramete rs | Shared, Secret, Key, Invocation Success or Invocation Failure | Shared Secret Computatio n (KAS- FFC-SSC) Shared Secret Computatio n (KAS- ECC-SSC) | CO - ECDH Private Components : R,E - ECDH Public Components : R,E - DH Private Components : R,E - DH Public Components : R,E |
| AcDeriveKey() | Derive a key | Successf ul Invocatio n (Pass) | API call paramete rs | Key, Invocation Success or Invocation Failure | Derive Key (TLS 1.2) Derive Key (TLS 1.3) Derive Key (PBKDF) | CO - TLS Session Key: G,W - PBKDF2 DPK: G,W - AES Key : G,W - TLS RSA Premaster Secret: G,W - TLS Master |
: G,W : G,W : G,W : R,E : R,E G,W (Allegro Software Development Corporation. © 2024) Version 1.0 Public Material – May be reproduced only in its original entirety (without revision).
| Name | Description | Indicato r | Inputs | Outputs | Security Functions | SSP Access Secret: G,W - TLS Integrity Key: G,W - PBKDF2 Password: G,W - TLS Extended Master Secret: G,W | ||
|---|---|---|---|---|---|---|---|---|
| AcReleaseHandle() | Zeroize Keys | Successf ul Invocatio n (Pass) | API call paramete rs | Invocation Success or Invocation Failure | None | CO - AES Key : Z - AES GCM Key: Z - AES GCM IV: Z - AES CCM Key: Z - AES-XTS Testing Revision 2.0 Key: Z - AES CMAC Key: Z - AES GMAC Key: Z - HMAC Key: Z - Key Encryption Key (KEK): Z - PBKDF2 DPK: Z - PBKDF2 Password: Z - RSA Private Key: Z - ECDSA Private Key: Z - ECDH Private Components : Z - TLS RSA Premaster Secret: Z - TLS Master |
G,W G,W Z Z Z Z :Z (Allegro Software Development Corporation. © 2024) Version 1.0 Public Material – May be reproduced only in its original entirety (without revision).
| Name | Description | Indicato r | Inputs | Outputs | Security Functions | SSP Access Secret: Z - TLS Session Key: Z - TLS Integrity Key: Z - DRBG Entropy: Z - DRBG Seed: Z - DRBG ‘C’ Value: Z - DRBG ‘V’ Value : Z - RSA Public Key: Z - ECDSA Public Key: Z - ECDH Public Components : Z - TLS Extended Master Secret: Z |
|---|---|---|---|---|---|---|
| AcAceLibraryStatus() | Query whether library is in the soft error state | Successf ul Invocatio n (Pass) | API call paramete rs | Invocation Success or Invocation Failure | None | CO |
| AcKeyedDigest() | Message authenticatio n | Successf ul Invocatio n (Pass) | API call paramete rs | Invocation Success or Invocation Failure | Message Digest Message Authenticati on | CO - HMAC Key: R,E - AES CMAC Key: R,E - AES GMAC Key: R,E |
| AcDigestSize() | Message authenticatio n digest size | Successf ul Invocatio n (Pass) | API call paramete rs | Invocation Success or Invocation Failure | None | CO |
| AcEncrypt() | Encrypt plaintext | Successf ul Invocatio n (Pass) | API call paramete rs | Ciphertext, Invocation Success or Invocation Failure | Message Authenticati on Symmetric Cipher | CO - AES Key : R,E - AES GCM Key: R,E - AES GCM IV: R,E |
Z Z Z :Z R,E (Allegro Software Development Corporation. © 2024) Version 1.0 Public Material – May be reproduced only in its original entirety (without revision).
| Name | Description | Indicato r | Inputs | Outputs | Security Functions | SSP Access - AES CCM Key: R,E - AES-XTS Testing Revision 2.0 Key: R,E - AES CMAC Key: R,E - AES GMAC Key: R,E |
|---|---|---|---|---|---|---|
| AcEncryptBlockSize() | Return size of ciphertext | Successf ul Invocatio n (Pass) | API call paramete rs | Invocation Success or Invocation Failure | None | CO |
| AcSetOperationParameter () | Sets/Configur es non- security relevant operational parameters | Successf ul Invocatio n (Pass) | API call paramete rs | Invocation Success or Invocation Failure | None | CO |
| AcGetVendorImplementati on() | Returns the Module’s Algorithm capabilities | Successf ul Invocatio n (Pass) | API call paramete rs | Invocation Success or Invocation Failure | None | CO |
| AcAESFpeEncrypt( ) | Encrypt plaintext | Successf ul Invocatio n (Pass) | API call paramete rs | Ciphertext, Invocation Success or Invocation Failure | Symmetric Cipher | CO - AES Key : R,E |
| AsGetCryptoDataPtr() | Get Data Pointer | Successf ul Invocatio n (Pass) | API call paramete rs | Data Pointer, Invocation Success or Invocation Failure | None | CO |
| AcGetAceError() | Get Error Message | Successf ul Invocatio n (Pass) | API call paramete rs | Error Message, Invocation Success or Invocation Failure | None | CO |
| AcGatherSystemNoise() | Gather Entropy Input | Successf ul Invocatio n (Pass) | API call paramete rs | Entropy Input, Invocation Success or Invocation Failure | None | CO - DRBG Entropy: G,W,E - DRBG ‘V’ Value : G,W,E - DRBG ‘C’ Value: G,W,E |
R,E G,W,E G,W,E (Allegro Software Development Corporation. © 2024) Version 1.0 Public Material – May be reproduced only in its original entirety (without revision).
| Name | Description | Indicato r | Inputs | Outputs | Security Functions | SSP Access |
|---|---|---|---|---|---|---|
| AcGetPersonalizationData () | Get DRBG Personalizati on Data | Successf ul Invocatio n (Pass) | API call paramete rs | Personalizati on Data, Invocation Success or Invocation Failure | None | CO - DRBG Personalizati on String: R - DRBG Seed: G,W,E |
| AcEncryptClone() | Duplicate an Encrypt Operation | Successf ul Invocatio n (Pass) | API call paramete rs | Encrypt Operation, Invocation Success or Invocation Failure | None | CO |
The module does not support the external loading of software or firmware.
The module, which is made up of a single component, is provided in the form of binary executable code (Acelib.so for Linux and AceDll.dll for Windows). A software integrity test is performed on the runtime image of the module. The HMAC-SHA2-256 (Cert. #A3332) implemented in the module is used as an approved algorithm for the integrity test. If the test fails, the module enters an error state where no cryptographic services are provided, and data output is prohibited. (the module is not operational)
The software integrity test is performed as part of the Pre-Operational self-tests. It is automatically executed at power-on. It can also be invoked by powering-off and reloading the module, or using the AcRunSelfTest() service.
Type of Operational Environment: Modifiable How Requirements are Satisfied: The module operates in a modifiable operational environment as described by the FIPS 140-3 definition. The operating systems on which the module was tested run user processes in logically separate process spaces. When (Allegro Software Development Corporation. © 2024) Version 1.0 Public Material – May be reproduced only in its original entirety (without revision).
| Storage Area Name | Description | Persistence Type | |
|---|---|---|---|
| RAM | Random Access Memory | Dynamic |
| Name | From | Format Type | Distribution Type | Entry Type | SFI or Algorithm | |
|---|---|---|---|---|---|---|
| Input | Calling Process | Call stack (API) input parameters | Plaintext | Manual | Electronic | |
| Output | Call stack (API) output parameters | Calling Process | Plaintext | Manual | Electronic |
| Zeroization Method | Description | Rationale | Operator Initiation |
|---|---|---|---|
| Unload Module | Unload module from memory | SSPs no longer present in memory after unload | Operator unloads module |
| API Call | API zeroize instruction | SSPs no longer present in memory after API call | AcDeInit() AcReleaseHandle() |
| Remove Power | Power removed from host GPC | SSPs no longer present in memory after GPC power loss | Operator powers off GPC |
the module is present in memory, the operating system protects the module’s memory space from unauthorized access. The module functions entirely within the process space of the calling application.
The physical security requirements of FIPS 140-3 do not apply to software modules.
The module does not implement non-invasive attack mitigations.
Table 25: Storage Areas The module does not persistently store SSPs.
Table 26: SSP Input-Output Methods Note: To prevent the inadvertent output of sensitive information, two independent internal actions shall be required in order to output any plaintext CSP.
Table 27: SSP Zeroization Methods SSPs are implicitly zeroized when unloading the module or removing power, and explicitly zeroized when using AcDeInit() and AcReleaseHandle() where SSPs are overwritten with zeros. (Allegro Software Development Corporation. © 2024) Version 1.0 Public Material – May be reproduced only in its original entirety (without revision).
| Name | Description | Size - Strength | Type - Category | Generated By | Established By | Used By |
|---|---|---|---|---|---|---|
| AES Key | AES-ECB, AES-CBC, AES-CFB1, AES-CFB8, AES-CFB128, AES-CTR, AES-OFB, AES-FF1 | 128, 192, 256 bits - 128, 192, 256 bits | Symmetric - CSP | Generate Symmetric Keys | Symmetric Cipher | |
| AES GCM Key | AES-GCM | 128, 192, 256 bits - 128, 192, 256 bits | Symmetric - CSP | Generate Symmetric Keys | Symmetric Cipher | |
| AES GCM IV | AES-GCM | 96 bits - 96 bits | Initialization Vector - CSP | DRBG | Symmetric Cipher | |
| AES CCM Key | AES-CCM | 128, 192, 256 bits - 128, 192, 256 bits | Symmetric - CSP | Generate Symmetric Keys | Symmetric Cipher | |
| AES-XTS Testing Revision 2.0 Key | AES-XTS Testing Revision 2.0 | 128, 256 bits - 128, 256 bits | Symmetric - CSP | Generate Symmetric Keys | Symmetric Cipher | |
| AES CMAC Key | AES-CMAC | 128, 192, 256 bits - 128, 192, 256 bits | Message Authentication - CSP | Generate Symmetric Keys | Message Authentication | |
| AES GMAC Key | AES-GMAC | 128, 192, 256 bits - 128, 192, 256 bits | Message Authentication - CSP | Generate Symmetric Keys | Message Authentication | |
| HMAC Key | HMAC-SHA-1, HMAC-SHA2- 224, HMAC- SHA2-256, HMAC-SHA2- 384, HMAC- SHA2-512, HMAC-SHA3- 224, HMAC- SHA3-256, HMAC-SHA3- 384, HMAC- SHA3-512 | 160, 224, 256, 384, 512 bits - 160, 224, 256, 384, 512 bits | Message Authentication - CSP | Message Authentication | Message Authentication | |
| Key Encryption Key (KEK) | AES-KW, AES-KWP | 128, 192, 256 bits - 128, 192, 256 bits | Symmetric Key Wrapping (KTS) - CSP | Generate Symmetric Keys | Key Wrapping | |
| PBKDF2 DPK | PBKDF | 112 bits - 112 bits | Data Protection Key - CSP | Derive Key (PBKDF) | Derive Key (PBKDF) |
(Allegro Software Development Corporation. © 2024) Version 1.0 Public Material – May be reproduced only in its original entirety (without revision).
| Name | Description | Size - Strength | Type - Category | Generated By | Established By | Used By | ||
|---|---|---|---|---|---|---|---|---|
| PBKDF2 Password | PBKDF Password | Greater than or equal to 80 bits of data - Greater than or equal to 80 bits of data | Password - CSP | Derive Key (PBKDF) | ||||
| RSA Private Key | RSA (186-4) | 2048, 3072, 4096 bits - 112, 128, 150 bits | Asymmetric Private Key - CSP | Generate Asymmetric Keys | Generate Digital Signature | |||
| ECDSA Private Key | ECDSA (186- 4) | P-224, P- 256, P- 384, P- 521 - 112, 128, 192, 256 bits | Asymmetric Private Key - CSP | Generate Asymmetric Keys | Generate Digital Signature | |||
| ECDH Private Components | KAS-ECC- SSC (NIST SP 800- 56Ar3) | P-224, P- 256, P- 384, P- 521 - 112, 128, 192, 256 bits | Asymmetric Private Key - CSP | Generate Asymmetric Keys | Shared Secret Computation (KAS-ECC- SSC) | |||
| TLS RSA Premaster Secret | Used to derive the master secret | 384 bits - 384 bits | Premaster Secret - CSP | Derive Key (TLS 1.2) | ||||
| TLS Master Secret | Used to generate the session keys | 384 bits - 384 bits | Master Secret - CSP | Derive Key (TLS 1.2) Derive Key (TLS 1.3) | Derive Key (TLS 1.2) Derive Key (TLS 1.3) | |||
| TLS Session Key | Used for data encryption | 128 or 256 bits - 128 or 256 bits | Session Key - CSP | Derive Key (TLS 1.2) Derive Key (TLS 1.3) | Derive Key (TLS 1.2) Derive Key (TLS 1.3) | |||
| TLS Integrity Key | Used for data integrity and authenticity | 160 bits - 160 bits | Integrity Key - CSP | Derive Key (TLS 1.2) Derive Key (TLS 1.3) | Derive Key (TLS 1.2) Derive Key (TLS 1.3) | |||
| DRBG Entropy | NIST SP 800- 90A DRBG Entropy Input | 256 bits - 256 bits | Entropy Input - CSP | DRBG | ||||
| DRBG Seed | NIST SP 800- 90A DRBG Seed | 440-888 bits - 440- 888 bits | Seed - CSP | DRBG |
(Allegro Software Development Corporation. © 2024) Version 1.0 Public Material – May be reproduced only in its original entirety (without revision).
| Name | Description | Size - Strength | Type - Category | Generated By | Established By | Used By | |
|---|---|---|---|---|---|---|---|
| DRBG ‘C’ Value | NIST SP 800- 90A DRBG ‘C’ Value (IG D.L) | 440-888 bits - 440- 888 bits | Internal State Value - CSP | DRBG | DRBG | ||
| DRBG ‘V’ Value | NIST SP 800- 90A DRBG ‘V’ Value (IG D.L) | 440-888 bits - 440- 888 bits | Internal State Value - CSP | DRBG | DRBG | ||
| RSA Public Key | RSA Public Key | 2048, 3072, 4096 bits - 112, 128, 150 bits | Asymmetric Public Key - PSP | Generate Asymmetric Keys | Verify Digital Signature | ||
| ECDSA Public Key | ECDSA Public Key | P-224, P- 256, P- 384, P- 521 - 112, 128, 192, 256 bits | Asymmetric Public Key - PSP | Generate Asymmetric Keys | Verify Digital Signature | ||
| ECDH Public Components | ECDH Public Components | P-224, P- 256, P- 384, P- 521 - 112, 128, 192, 256 bits | Key Agreement Components - PSP | Generate Asymmetric Keys | Shared Secret Computation (KAS-ECC- SSC) | ||
| TLS Extended Master Secret | Binds the master secret to a log of the full handshake | 384-bits - 384-bits | Extended Master Secret - CSP | Derive Key (TLS 1.2) | Derive Key (TLS 1.2) | ||
| DH Private Components | Private components for KAS-FFC- SSC | MODP 2048, MODP 3072 - 112 bits, 128 bits | Asymmetric Private Key - CSP | Generate Asymmetric Keys | Shared Secret Computation (KAS-FFC- SSC) | ||
| DH Public Components | Public components for KAS-FFC- SSC | MODP 2048, MODP 3072 - 112 bits, 128 bits | Asymmetric Public Key - PSP | Generate Asymmetric Keys | Shared Secret Computation (KAS-FFC- SSC) | ||
| DRBG Personalization String | Optional input to the DRBG instantiate function | 128 to 256 bits - 128 to 256 bits | Personalization String - Neither | DRBG |
| Name | Input - Output | Storage | Storage Duration | Zeroization | Related SSPs | ||
|---|---|---|---|---|---|---|---|
| AES Key | Input | RAM:Plaintext | In volatile memory until zeroized | Unload Module API Call |
Table 28: SSP Table 1 (Allegro Software Development Corporation. © 2024) Version 1.0 Public Material – May be reproduced only in its original entirety (without revision).
| Name | Input - Output | Storage | Storage Duration | Zeroization Remove Power | Related SSPs |
|---|---|---|---|---|---|
| AES GCM Key | Input | RAM:Plaintext | In volatile memory until zeroized | Unload Module API Call Remove Power | AES GCM IV:Used With |
| AES GCM IV | Output | RAM:Plaintext | In volatile memory until zeroized | Unload Module API Call Remove Power | AES GCM Key:Used With |
| AES CCM Key | Input | RAM:Plaintext | In volatile memory until zeroized | Unload Module API Call Remove Power | |
| AES-XTS Testing Revision 2.0 Key | Input | RAM:Plaintext | In volatile memory until zeroized | Unload Module API Call Remove Power | |
| AES CMAC Key | Input | RAM:Plaintext | In volatile memory until zeroized | Unload Module API Call Remove Power | |
| AES GMAC Key | Input | RAM:Plaintext | In volatile memory until zeroized | Unload Module API Call Remove Power | |
| HMAC Key | Input | RAM:Plaintext | In volatile memory until zeroized | Unload Module API Call Remove Power | |
| Key Encryption Key (KEK) | Input Output | RAM:Plaintext | In volatile memory until zeroized | Unload Module API Call Remove Power | |
| PBKDF2 DPK | Output | RAM:Plaintext | In volatile memory until zeroized | Unload Module API Call Remove Power | PBKDF2 Password:Derived From |
| PBKDF2 Password | Input | RAM:Plaintext | In volatile memory until zeroized | Unload Module Remove Power | PBKDF2 DPK:Used With |
(Allegro Software Development Corporation. © 2024) Version 1.0 Public Material – May be reproduced only in its original entirety (without revision).
| Name | Input - Output | Storage | Storage Duration | Zeroization | Related SSPs | |
|---|---|---|---|---|---|---|
| RSA Private Key | Input Output | RAM:Plaintext | In volatile memory until zeroized | Unload Module API Call Remove Power | RSA Public Key:Paired With | |
| ECDSA Private Key | Input Output | RAM:Plaintext | In volatile memory until zeroized | Unload Module API Call Remove Power | ECDSA Public Key:Paired With | |
| ECDH Private Components | Input Output | RAM:Plaintext | In volatile memory until zeroized | Unload Module API Call Remove Power | ECDH Public Components:Paired With | |
| TLS RSA Premaster Secret | RAM:Plaintext | In volatile memory until zeroized | Unload Module API Call Remove Power | |||
| TLS Master Secret | RAM:Plaintext | In volatile memory until zeroized | Unload Module API Call Remove Power | TLS RSA Premaster Secret:Derived From | ||
| TLS Session Key | RAM:Plaintext | In volatile memory until zeroized | Unload Module API Call Remove Power | TLS Master Secret:Derived From | ||
| TLS Integrity Key | RAM:Plaintext | In volatile memory until zeroized | Unload Module API Call Remove Power | TLS Master Secret:Derived From | ||
| DRBG Entropy | Input | RAM:Plaintext | In volatile memory until zeroized | Unload Module API Call Remove Power | DRBG Seed:Used With | |
| DRBG Seed | RAM:Plaintext | In volatile memory until zeroized | Unload Module Remove Power | DRBG Entropy:Derived From | ||
| DRBG ‘C’ Value | RAM:Plaintext | In volatile memory until zeroized | Unload Module API Call Remove Power | DRBG Seed:Derived From |
(Allegro Software Development Corporation. © 2024) Version 1.0 Public Material – May be reproduced only in its original entirety (without revision).
| Name | Input - Output | Storage | Storage Duration | Zeroization | Related SSPs |
|---|---|---|---|---|---|
| DRBG ‘V’ Value | RAM:Plaintext | In volatile memory until zeroized | Unload Module API Call Remove Power | DRBG Seed:Derived From | |
| RSA Public Key | Input Output | RAM:Plaintext | In volatile memory until zeroized | Unload Module API Call Remove Power | RSA Private Key:Paired With |
| ECDSA Public Key | Input Output | RAM:Plaintext | In volatile memory until zeroized | Unload Module API Call Remove Power | ECDSA Private Key:Paired With |
| ECDH Public Components | Input Output | RAM:Plaintext | In volatile memory until zeroized | Unload Module API Call Remove Power | ECDH Private Components:Paired With |
| TLS Extended Master Secret | RAM:Plaintext | In volatile memory until zeroized | Unload Module API Call Remove Power | TLS RSA Premaster Secret:Derived From | |
| DH Private Components | Input Output | RAM:Plaintext | In volatile memory until zeroized | Unload Module API Call Remove Power | |
| DH Public Components | Input Output | RAM:Plaintext | In volatile memory until zeroized | Unload Module API Call Remove Power | |
| DRBG Personalization String | Input | RAM:Plaintext | In volatile memory until zeroized | Unload Module API Call Remove Power |
| Algorithm or Test | Test Properties | Test Method | Test Type | Indicator | Details | ||
|---|---|---|---|---|---|---|---|
| HMAC-SHA2-256 (A3332) | HMAC-SHA2- 256 | Software Integrity Test | SW/FW Integrity | Pass | Keyed hash performed on Acelib.so or AceDll.dll |
(Allegro Software Development Corporation. © 2024) Version 1.0 Public Material – May be reproduced only in its original entirety (without revision).
| Algorithm or Test | Test Properties | Test Method | Test Type | Indicator | Details | Conditions |
|---|---|---|---|---|---|---|
| AES-CBC (A3332) | 128, 192, 256 bit Key | KAT | CAST | Pass | Encrypt | Power-On |
| AES-CBC (A3332) | 128, 192, 256 bit Key | KAT | CAST | Pass | Decrypt | Power-On |
| AES-CCM (A3332) | 128, 192, 256 bit Key | KAT | CAST | Pass | Encrypt | Power-On |
| AES-CCM (A3332) | 128, 192, 256 bit Key | KAT | CAST | Pass | Decrypt | Power-On |
| AES-CFB1 (A3332) | 128, 192, 256 bit Key | KAT | CAST | Pass | Encrypt | Power-On |
| AES-CFB1 (A3332) | 128, 192, 256 bit Key | KAT | CAST | Pass | Decrypt | Power-On |
| AES- CFB128 (A3332) | 128, 192, 256 bit Key | KAT | CAST | Pass | Encrypt | Power-On |
| AES- CFB128 (A3332) | 128, 192, 256 bit Key | KAT | CAST | Pass | Decrypt | Power-On |
| AES-CFB8 (A3332) | 128, 192, 256 bit Key | KAT | CAST | Pass | Encrypt | Power-On |
| AES-CFB8 (A3332) | 128, 192, 256 bit Key | KAT | CAST | Pass | Decrypt | Power-On |
| AES-CMAC (A3332) | 128, 192, 256 bit Key | KAT | CAST | Pass | Encrypt | Power-On |
| AES-CMAC (A3332) | 128, 192, 256 bit Key | KAT | CAST | Pass | Decrypt | Power-On |
| AES-CTR (A3332) | 128, 192, 256 bit Key | KAT | CAST | Pass | Encrypt | Power-On |
| AES-CTR (A3332) | 128, 192, 256 bit Key | KAT | CAST | Pass | Decrypt | Power-On |
| AES-ECB (A3332) | 128, 192, 256 bit Key | KAT | CAST | Pass | Encrypt | Power-On |
| AES-ECB (A3332) | 128, 192, 256 bit Key | KAT | CAST | Pass | Decrypt | Power-On |
| AES-FF1 (A3332) | 128 bit Key | KAT | CAST | Pass | Encrypt | Power-On |
| AES-GCM (A3332) | 128, 192, 256 bit Key | KAT | CAST | Pass | Encrypt | Power-On |
| AES-GCM (A3332) | 128, 192, 256 bit Key | KAT | CAST | Pass | Decrypt | Power-On |
| AES-OFB (A3332) | 128, 192, 256 bit Key | KAT | CAST | Pass | Encrypt | Power-On |
| AES-OFB (A3332) | 128, 192, 256 bit Key | KAT | CAST | Pass | Decrypt | Power-On |
Table 30: Pre-Operational Self-Tests The module performs the pre-operational software integrity test automatically upon every instantiation. (A CAST for HMAC-SHA2-256 executes prior to the software integrity test.)
(Allegro Software Development Corporation. © 2024) Version 1.0 Public Material – May be reproduced only in its original entirety (without revision).
| Algorithm or Test | Test Properties | Test Method | Test Type | Indicator | Details | Conditions |
|---|---|---|---|---|---|---|
| AES-XTS Testing Revision 2.0 (A3332) | 128, 256 bit Key | KAT | CAST | Pass | Encrypt | Power-On |
| AES-XTS Testing Revision 2.0 (A3332) | 128, 256 bit Key | KAT | CAST | Pass | Decrypt | Power-On |
| ECDSA SigGen (FIPS186-4) (A3332) | P-384 Curve | KAT | CAST | Pass | Sign | Power-On |
| ECDSA SigVer (FIPS186-4) (A3332) | P-384 Curve | KAT | CAST | Pass | Verify | Power-On |
| Hash DRBG (A3332) | SHA2-256, SHA2-512 (NIST SP 800- 90A, Section 11.3 Health Tests) | KAT | CAST | Pass | Hash_DRBG | 1. Power On 2. Instantiate: Any time that a new DRBG instance is created 3. Generate: When new random data is generated 4. Reseed: When the reseed counter has reached its pre- determined maximum value and the DRBG needs to be reseeded |
| HMAC- SHA-1 (A3332) | 160 bit Hash | KAT | CAST | Pass | Keyed Hash | Power-On |
| HMAC- SHA2-224 (A3332) | 224 bit Hash | KAT | CAST | Pass | Keyed Hash | Power-On |
| HMAC- SHA2-256 (A3332) | 256 bit Hash | KAT | CAST | Pass | Keyed Hash | Power-On |
| HMAC- SHA2-384 (A3332) | 384 bit Hash | KAT | CAST | Pass | Keyed Hash | Power-On |
| HMAC- SHA2-512 (A3332) | 512 bit Hash | KAT | CAST | Pass | Keyed Hash | Power-On |
| HMAC- SHA3-224 (A3332) | 224 bit Hash | KAT | CAST | Pass | Keyed Hash | Power-On |
| HMAC- SHA3-256 (A3332) | 256 bit Hash | KAT | CAST | Pass | Keyed Hash | Power-On |
| HMAC- SHA3-384 (A3332) | 384 bit Hash | KAT | CAST | Pass | Keyed Hash | Power-On |
(Allegro Software Development Corporation. © 2024) Version 1.0 Public Material – May be reproduced only in its original entirety (without revision).
| Algorithm or Test | Test Properties | Test Method | Test Type | Indicator | Details | Conditions |
|---|---|---|---|---|---|---|
| HMAC- SHA3-512 (A3332) | 512 bit Hash | KAT | CAST | Pass | Keyed Hash | Power-On |
| KAS-ECC- SSC Sp800- 56Ar3 (A3332) | P-384 Curve | KAT | CAST | Pass | Primitive "Z" | Power-On |
| KAS-FFC- SSC Sp800- 56Ar3 (A3332) | MODP-2048, MODP-3072 | KAT | CAST | Pass | Primitive "Z" | Power-On |
| KDA HKDF Sp800- 56Cr1 (A3332) | SHA2-256 | KAT | CAST | Pass | Hash | Power-On |
| KDF SSH (A3332) | AES-128, AES-192, AES-256, SHA2-256 | KAT | CAST | Pass | Hash | Power-On |
| PBKDF (A3332) | 160 bit Keyed Hash | KAT | CAST | Pass | Keyed Hash | Power-On |
| RSA SigGen (FIPS186-4) (A3332) | 2048 bit Key | KAT | CAST | Pass | Sign | Power-On |
| RSA SigVer (FIPS186-4) (A3332) | 2048 bit Key | KAT | CAST | Pass | Verify | Power-On |
| SHA-1 (A3332) | 160 bit Hash | KAT | CAST | Pass | Hash | Power-On |
| SHA2-224 (A3332) | 224 bit Hash | KAT | CAST | Pass | Hash | Power-On |
| SHA2-256 (A3332) | 256 bit Hash | KAT | CAST | Pass | Hash | Power-On |
| SHA2-384 (A3332) | 384 bit Hash | KAT | CAST | Pass | Hash | Power-On |
| SHA2-512 (A3332) | 512 bit Hash | KAT | CAST | Pass | Hash | Power-On |
| SHA3-224 (A3332) | 224 bit Hash | KAT | CAST | Pass | Hash | Power-On |
| SHA3-256 (A3332) | 256 bit Hash | KAT | CAST | Pass | Hash | Power-On |
| SHA3-384 (A3332) | 384 bit Hash | KAT | CAST | Pass | Hash | Power-On |
| SHA3-512 (A3332) | 512 bit Hash | KAT | CAST | Pass | Hash | Power-On |
| TLS v1.2 KDF RFC7627 (A3332) | SHA2-256 | KAT | CAST | Pass | Hash | Power-On |
(Allegro Software Development Corporation. © 2024) Version 1.0 Public Material – May be reproduced only in its original entirety (without revision).
| Algorithm or Test | Test Properties | Test Method | Test Type | Indicator | Details | Conditions |
|---|---|---|---|---|---|---|
| TLS v1.3 KDF (A3332) | SHA2-256 | KAT | CAST | Pass | Hash | Power-On |
| AES-XTS Testing Revision 2.0 (A3332) | 128, 256 bit key | Key_1 ≠ Key_2 (IG C.I) | CAST | Pass | Check | Conditional upon first use of AES-XTS |
| KAS-ECC- SSC Sp800- 56Ar3 (A3332) | P-224, P-256, P-384, P-521 | Public Key Assurance Test | CAST | Pass | Check | Conditional upon ECDSA KeyPair Generation |
| ECDSA KeyGen (FIPS186-4) (A3332) | P-384 | Pairwise Consistency Test | PCT | Pass | Sign & Verify | Conditional upon ECDSA KeyPair Generation |
| RSA KeyGen (FIPS186-4) (A3332) | 2048 bit key | Pairwise Consistency Test | PCT | Pass | Sign & Verify | Conditional upon RSA KeyPair Generation |
| Algorithm or Test | Test Method | Test Type | Period | Periodic Method | |||||
|---|---|---|---|---|---|---|---|---|---|
| HMAC-SHA2-256 (A3332) | Software Integrity Test | SW/FW Integrity | On Demand | Reload Module or AcRunSelfTest() |
| Algorithm or Test | Test Method | Test Type | Period | Periodic Method |
|---|---|---|---|---|
| AES-CBC (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| AES-CBC (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| AES-CCM (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| AES-CCM (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| AES-CFB1 (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
Table 31: Conditional Self-Tests Conditional CASTs are performed automatically upon every instantiation. The pairwise consistency tests are performed on the condition that an asymmetric keypair is requested, and the AES-XTS key validation test is performed prior to using the keys, per IG C.I. The DRBG health tests required by NIST SP 800-90A, Section 11.3 (instantiate, generate, reseed) execute upon instantiation of the module and also upon the following conditions:
Table 32: Pre-Operational Periodic Information (Allegro Software Development Corporation. © 2024) Version 1.0 Public Material – May be reproduced only in its original entirety (without revision).
| Algorithm or Test | Test Method | Test Type | Period | Periodic Method |
|---|---|---|---|---|
| AES-CFB1 (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| AES-CFB128 (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| AES-CFB128 (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| AES-CFB8 (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| AES-CFB8 (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| AES-CMAC (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| AES-CMAC (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| AES-CTR (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| AES-CTR (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| AES-ECB (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| AES-ECB (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| AES-FF1 (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| AES-GCM (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| AES-GCM (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| AES-OFB (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| AES-OFB (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| AES-XTS Testing Revision 2.0 (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| AES-XTS Testing Revision 2.0 (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| ECDSA SigGen (FIPS186-4) (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| ECDSA SigVer (FIPS186-4) (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| Hash DRBG (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| HMAC-SHA-1 (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| HMAC-SHA2-224 (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| HMAC-SHA2-256 (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
(Allegro Software Development Corporation. © 2024) Version 1.0 Public Material – May be reproduced only in its original entirety (without revision).
| Algorithm or Test | Test Method | Test Type | Period | Periodic Method |
|---|---|---|---|---|
| HMAC-SHA2-384 (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| HMAC-SHA2-512 (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| HMAC-SHA3-224 (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| HMAC-SHA3-256 (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| HMAC-SHA3-384 (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| HMAC-SHA3-512 (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| KAS-ECC-SSC Sp800-56Ar3 (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| KAS-FFC-SSC Sp800-56Ar3 (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| KDA HKDF Sp800- 56Cr1 (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| KDF SSH (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| PBKDF (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| RSA SigGen (FIPS186-4) (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| RSA SigVer (FIPS186-4) (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| SHA-1 (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| SHA2-224 (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| SHA2-256 (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| SHA2-384 (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| SHA2-512 (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| SHA3-224 (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| SHA3-256 (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| SHA3-384 (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| SHA3-512 (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| TLS v1.2 KDF RFC7627 (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
| TLS v1.3 KDF (A3332) | KAT | CAST | On Demand | Reload Module or AcRunSelfTest() |
(Allegro Software Development Corporation. © 2024) Version 1.0 Public Material – May be reproduced only in its original entirety (without revision).
| Algorithm or Test | Test Method | Test Type | Period | Periodic Method |
|---|---|---|---|---|
| AES-XTS Testing Revision 2.0 (A3332) | Key_1 ≠ Key_2 (IG C.I) | CAST | N/A | N/A |
| KAS-ECC-SSC Sp800-56Ar3 (A3332) | Public Key Assurance Test | CAST | N/A | N/A |
| ECDSA KeyGen (FIPS186-4) (A3332) | Pairwise Consistency Test | PCT | N/A | N/A |
| RSA KeyGen (FIPS186-4) (A3332) | Pairwise Consistency Test | PCT | N/A | N/A |
| Name | Description | Conditions | Recovery Method | Indicator |
|---|---|---|---|---|
| Hard Error State | Non-recoverable error state | Result of pre-operational self-test failure Result of CAST failure | Reload module / Reinstall module | Fail |
| Soft Error State | Recoverable error state | Result of RSA pairwise consistency test failure Result of ECDSA pairwise consistency test failure Result of Key_1 ≠ Key_2 for AES- XTS | Automatic | Fail |
Table 33: Conditional Periodic Information The pre-operational software integrity test and all conditional CASTs can be executed on-demand by calling the AcRunSelfTest() service.
Table 34: Error States The module implements two error states. A hard error state, whereby recovery may be attempted by restarting or reinstalling the module, and a software error state whereby conditional self-test failures such as the pairwise tests and the AES-XTS key validation test may be recovered. Self-tests in the module return an indication of whether the invocation passed or failed. If any self-test fails, the module’s data output interfaces will be inhibited, and only control input and status output commands will be allowed to execute. To correct an on-demand or conditional self-test error, the module must be restarted by calling the AllegroTaskInit() service after the module has been de-initialized. To correct a preoperational self-test error, the module must be reloaded into memory by terminating and restarting the host application. If the pre-operational self-test fails after restarting the host application, it will be necessary to re-install the module.
The pre-operational software integrity test and all conditional CASTs can be executed by the operator using the API call AcRunSelfTest().
(Allegro Software Development Corporation. © 2024) Version 1.0 Public Material – May be reproduced only in its original entirety (without revision).
When built and executed, the module automatically operates in the approved mode. (Additional guidance is provided in Section 11.2.)
Initial setup for the module consists of:
2 of this security policy, by consulting the build instructions provided in Chapter 5 of the ACE™ Allegro
Cryptography Engine Programming Reference, Version 6.50, included on the DVD. During normal operation, the operator may check the status of the module by attempting to run a service. If the service executes and does not return an error, the module is operating in the approved mode.
The module supports the role of Crypto Officer only, which is an administrative role.
The module may be sanitized by uninstalling the binary and power-cycling the host GPC.
The operator shall adhere to the guidelines of this Security Policy. Operators in the Crypto Officer role are able to use the approved services listed in this security policy. The operator is responsible for monitoring the module for any irregular activity.
The module does not attempt to mitigate specific attacks. (Allegro Software Development Corporation. © 2024) Version 1.0 Public Material – May be reproduced only in its original entirety (without revision).