ASTRO CDEM Motorola Advanced Crypto Engine (MACE)

Certificate details

Certificate ID #5143
Status active
Validation dates 23.01.2026
Sunset date 22-01-2031
Standard FIPS 140-3
Security level 3
Type Hardware
Embodiment Single Chip
Caveat When installed, initialized and configured as specified in Section 11 of Security Policy. No assurance of minimum security of SSPs (e.g., keys, bit strings) that are externally loaded, or of SSPs established with externally loaded SSPs
Exceptions
  • Operational environment: N/A
  • Non-invasive security: N/A
  • Mitigation of other attacks: N/A
Description The ASTRO CDEM MACE provides secure key management, and data encryption.
Vendor Motorola Solutions, Inc. http://www.motorolasolutions.com
Lab UL Verification Services, Inc.
Algorithms
  • AES-CBCA5275
  • AES-CFB8A5273
  • AES-ECBA5275
  • AES-KWA5438
  • AES-OFBA5275
  • Counter DRBGA5437
  • RSA SigVer (FIPS186-5)A5253
  • SHA2-256SHS 817
References

This certificate's webpage directly references 0 certificates, transitively this expands into 0 certificates.

Security policy

Extracted keywords

Symmetric Algorithms
AES-256, AES, AES256, CAST, E2
Asymmetric Algorithms
RSA-2048
Hash functions
SHA-256, SHA2
Schemes
MAC
Randomness
DRBG, RBG
Block cipher modes
ECB, CBC, CTR, CFB, OFB

Trusted Execution Environments
PSP

Security level
Level 3, level 3

Automated analysis

Automated inference - use with caution

All attributes shown in this section (e.g., links between certificates, products, vendors, and known CVEs) are generated by automated heuristics and have not been reviewed by humans. These methods can produce false positives or false negatives and should not be treated as definitive without independent verification. This applies equally to the Cross-references section below. If you want to know more about how this data is computed and how reliable it is, see our documentation on automated analysis. If you believe any information here is inaccurate or harmful, please submit feedback.

No automatically derived data are available in this section.

Cross-references

No references are available for this certificate.

Processing updates

Feed
  • The certificate data changed.
  • The certificate data changed.
  • The certificate data changed.
  • The certificate data changed.
  • The certificate data changed.
  • The certificate data changed.
  • The certificate data changed.
  • The certificate data changed.
  • The certificate was first processed.

Raw data

{
  "_type": "sec_certs.sample.fips.FIPSCertificate",
  "cert_id": 5143,
  "dgst": "2a14e0e74f5b626e",
  "heuristics": {
    "_type": "sec_certs.sample.fips.FIPSCertificate.Heuristics",
    "algorithms": {
      "_type": "Set",
      "elements": [
        "AES-KWA5438",
        "Counter DRBGA5437",
        "AES-ECBA5275",
        "SHA2-256SHS 817",
        "#A5275",
        "#817",
        "#A5438",
        "RSA SigVer (FIPS186-5)A5253",
        "#A5273",
        "#A5437",
        "AES-CFB8A5273",
        "AES-OFBA5275",
        "AES-CBCA5275",
        "#A5253"
      ]
    },
    "cpe_matches": null,
    "direct_transitive_cves": null,
    "extracted_versions": {
      "_type": "Set",
      "elements": [
        "-"
      ]
    },
    "indirect_transitive_cves": null,
    "module_processed_references": {
      "_type": "sec_certs.sample.certificate.References",
      "directly_referenced_by": null,
      "directly_referencing": null,
      "indirectly_referenced_by": null,
      "indirectly_referencing": null
    },
    "module_prunned_references": {
      "_type": "Set",
      "elements": []
    },
    "policy_processed_references": {
      "_type": "sec_certs.sample.certificate.References",
      "directly_referenced_by": null,
      "directly_referencing": null,
      "indirectly_referenced_by": null,
      "indirectly_referencing": null
    },
    "policy_prunned_references": {
      "_type": "Set",
      "elements": []
    },
    "related_cves": null,
    "verified_cpe_matches": null
  },
  "pdf_data": {
    "_type": "sec_certs.sample.fips.FIPSCertificate.PdfData",
    "br1_deviations": 1,
    "br1_tables": {
      "_type": "sec_certs.heuristics.br1.table_parsing.model.br1_tables.BR1Tables",
      "approved_algorithms": {
        "entries": [
          {
            "algorithm": "AES-CBC",
            "cavpCertName": "A5273",
            "properties": "Direction - Decrypt, Encrypt Key Length - 256",
            "reference": "SP 800-38A"
          },
          {
            "algorithm": "AES-CBC",
            "cavpCertName": "A5275",
            "properties": "Direction - Decrypt, Encrypt Key Length - 256",
            "reference": "SP 800-38A"
          },
          {
            "algorithm": "AES-CFB8",
            "cavpCertName": "A5273",
            "properties": "Direction - Decrypt, Encrypt Key Length - 256",
            "reference": "SP 800-38A"
          },
          {
            "algorithm": "AES-ECB",
            "cavpCertName": "A5275",
            "properties": "Direction - Decrypt, Encrypt Key Length - 256",
            "reference": "SP 800-38A"
          },
          {
            "algorithm": "AES-KW",
            "cavpCertName": "A5438",
            "properties": "Direction - Decrypt Key Length - 256",
            "reference": "SP 800-38F"
          },
          {
            "algorithm": "AES-OFB",
            "cavpCertName": "A5273",
            "properties": "Direction - Decrypt, Encrypt Key Length - 256",
            "reference": "SP 800-38A"
          },
          {
            "algorithm": "AES-OFB",
            "cavpCertName": "A5275",
            "properties": "Direction - Decrypt, Encrypt Key Length - 256",
            "reference": "SP 800-38A"
          },
          {
            "algorithm": "Counter DRBG",
            "cavpCertName": "A5437",
            "properties": "Prediction Resistance - No Mode - AES-256 Derivation Function Enabled - Yes",
            "reference": "SP 800-90A Rev. 1"
          },
          {
            "algorithm": "RSA SigVer (FIPS186-5)",
            "cavpCertName": "A5253",
            "properties": "Modulo - 2048 Signature Type - pkcs1v1.5",
            "reference": "FIPS 186-5"
          },
          {
            "algorithm": "SHA2-256",
            "cavpCertName": "SHS 817",
            "properties": "Message Length - Message Length: 0- 51200 Increment 8",
            "reference": "FIPS 180-4"
          }
        ],
        "found": true,
        "section": 2,
        "subsection": 5
      },
      "approved_services": {
        "entries": [
          {
            "description": "Update the ASTRO CDEM MACE firmware. Firmware upgrades are authenticat ed using a digital signature. The Program Update Public Signature Key is used to validate the signature of the firmware image being loaded before it is allowed to be executed",
            "indicator": "Approv ed mode indicat or and service status output",
            "inputs": "Firmware Image",
            "name": "Program Update",
            "outputs": "The ASTRO CDEM MACE is upgraded to new firmware.",
            "rolesSspAccess": "Crypto- Officer (AM2) - FW-LD- Pub: Z - BKK: Z - IDK: Z - PEK: Z - KPK: Z - KEK: Z - TEK: Z - IDK-ROM: Z - IDK-Block: Z - CO PWD (AM1): Z - CO PWD (AM2): Z - PWD Hash: Z",
            "secFunImpl": "AES A5273 Decrypti on IDK Generati on"
          },
          {
            "description": "Generate Entropy into the ASTRO CDEM MACE using AM2.",
            "indicator": "Approv ed mode indicat or and service status output",
            "inputs": "DRBG Seed",
            "name": "Generate Entropy",
            "outputs": "The DRBG is seeded and initialized. Success/fail ure status",
            "rolesSspAccess": "Crypto- Officer (AM2) - DRBG- EI/Seed: G - DRBG- State: G - DRBG- nonce: G",
            "secFunImpl": "Entropy"
          },
          {
            "description": "Load keys into the ASTRO CDEM",
            "indicator": "Approv ed mode indicat or and",
            "inputs": "Encrypted Keys",
            "name": "OTEK",
            "outputs": "Decrypted keys that were imported encrypted",
            "rolesSspAccess": "Crypto- Officer (AM2) - KEK: E - TEK: E",
            "secFunImpl": "AES A5273 Decrypti on"
          },
          {
            "description": "MACE using AM2.",
            "indicator": "service status output",
            "inputs": "",
            "name": "",
            "outputs": "into the ASTRO CDEM MACE. Success/fail ure status.",
            "rolesSspAccess": "",
            "secFunImpl": ""
          },
          {
            "description": "Modify the current password used to identify and authenticat e the CO role using AM1.",
            "indicator": "Approv ed mode indicat or and service status output",
            "inputs": "Password",
            "name": "Change CO Password (AM1)",
            "outputs": "Updated the CO password. Success/fail ure status",
            "rolesSspAccess": "Crypto- Officer (AM1) - PEK: E - KPK: G,E,Z - KEK: Z - TEK: Z - CO PWD (AM1): G,E,Z - PWD Hash: G,E,Z",
            "secFunImpl": "SHA AES A5273 Encrypti on AES A5273 Decrypti on"
          },
          {
            "description": "Modify the current password used to identify and authenticat e the CO role using AM2.",
            "indicator": "Approv ed mode indicat or and service status output",
            "inputs": "Password",
            "name": "Change CO Password (AM2)",
            "outputs": "Updated the CO password. Success/fail ure status.",
            "rolesSspAccess": "Crypto- Officer (AM2) - PEK: E - KPK: G,E,Z - KEK: Z - TEK: Z - CO PWD (AM2): G,E,Z - PWD Hash: G,E,Z",
            "secFunImpl": "SHA AES A5273 Encrypti on AES A5273 Decrypti on"
          },
          {
            "description": "Validate the current password used to identify and authenticat e the CO role using AM1.",
            "indicator": "Approv ed mode indicat or and service status output Approv ed mode indicat or and service status output",
            "inputs": "Password",
            "name": "Validate CO Password (AM1)",
            "outputs": "Successful authenticatio n will allow access to the services allowed for CO role (AM1).",
            "rolesSspAccess": "Crypto- Officer (AM1) - PEK: E - KPK: G,E,Z - KEK: Z - TEK: Z - CO PWD (AM1): Z - CO PWD (AM2): Z - PWD Hash: Z",
            "secFunImpl": "SHA AES A5273 Encrypti on AES A5273 Decrypti on"
          },
          {
            "description": "Validate the current password used to identify and authenticat e the CO role using AM2.",
            "indicator": "Approv ed mode indicat or and service status output",
            "inputs": "Password",
            "name": "Validate CO Password (AM2)",
            "outputs": "Successful authenticatio n will allow access to the services allowed for CO role (AM2).",
            "rolesSspAccess": "Crypto- Officer (AM2) - PEK: E - KPK: G,E,Z - KEK: Z - TEK: Z - CO PWD (AM1): Z - CO PWD (AM2): Z - PWD Hash: Z",
            "secFunImpl": "SHA AES A5273 Encrypti on AES A5273 Decrypti on"
          },
          {
            "description": "Exits command shell interface using AM1.",
            "indicator": "Approv ed mode indicat or and service status output",
            "inputs": "Command In",
            "name": "Logout CO (AM1)",
            "outputs": "Logout CO/Exits command shell interface",
            "rolesSspAccess": "Crypto- Officer (AM1)",
            "secFunImpl": "None"
          },
          {
            "description": "CO Logout",
            "indicator": "Approv ed mode indicat or and service status output",
            "inputs": "Reboot/Comm and In",
            "name": "Logout CO (AM2)",
            "outputs": "Logout CO",
            "rolesSspAccess": "Crypto- Officer (AM2)",
            "secFunImpl": "None"
          },
          {
            "description": "Encrypt data using AM2.",
            "indicator": "Approv ed mode indicat or and service status output",
            "inputs": "Plaintext",
            "name": "Encrypt",
            "outputs": "Ciphertext. Success/fail ure status.",
            "rolesSspAccess": "Crypto- Officer (AM2) - TEK: E - KEK: E - KPK: E - DRBG- EI/Seed: E - DRBG- State: E - DRBG- nonce: E",
            "secFunImpl": "AES A5275 Encrypti on"
          },
          {
            "description": "Decrypt data using AM2.",
            "indicator": "Approv ed mode indicat or and service",
            "inputs": "Ciphertext",
            "name": "Decrypt",
            "outputs": "Plaintext. Success/fail ure status.",
            "rolesSspAccess": "Crypto- Officer (AM2) - TEK: E - KEK: E - KPK: E",
            "secFunImpl": "AES A5275 Decrypti on"
          },
          {
            "description": "",
            "indicator": "status output",
            "inputs": "",
            "name": "",
            "outputs": "",
            "rolesSspAccess": "",
            "secFunImpl": ""
          },
          {
            "description": "Provide firmware version, current FIPS status using AM1.",
            "indicator": "Approv ed mode indicat or and service status output",
            "inputs": "Command in",
            "name": "Module Status",
            "outputs": "Module HW version, version information, and FIPS status.",
            "rolesSspAccess": "Crypto- Officer (AM1)",
            "secFunImpl": "None"
          },
          {
            "description": "Perform module self-tests comprised of cryptograph ic algorithm tests, firmware integrity test, and critical functions test. Initiated by module reset or transition from power off state to power on state using AM1 or UA.",
            "indicator": "Approv ed mode indicat or and service status output",
            "inputs": "Power on/Command In",
            "name": "Self-Tests",
            "outputs": "Success/Re set.",
            "rolesSspAccess": "Crypto- Officer (AM1) - FW-LD- Pub: E Unauthentic ated - FW-LD- Pub: E",
            "secFunImpl": "AES A5275 Encrypti on AES A5275 Decrypti on Key Generati on Signatur e Verificati on Entropy KTS- Unwrap SHA AES A5273 Encrypti on AES A5273 Decrypti on IDK Generati on DRBG"
          },
          {
            "description": "Set configuratio n parameters used to specify",
            "indicator": "Approv ed mode indicat or and service",
            "inputs": "Configuration parameters",
            "name": "Module Configurat ion",
            "outputs": "Updated module configuratio n. Success/fail ure status.",
            "rolesSspAccess": "Crypto- Officer (AM1) - KPK: G,E,Z - KEK: Z - TEK: Z",
            "secFunImpl": "None"
          },
          {
            "description": "module behavior using AM1.",
            "indicator": "status output",
            "inputs": "",
            "name": "",
            "outputs": "",
            "rolesSspAccess": "- CO PWD (AM1): W,Z - PWD Hash: W,Z - CO PWD (AM2): W,Z",
            "secFunImpl": ""
          },
          {
            "description": "Update module approved mode using AM1.",
            "indicator": "Approv ed mode indicat or and service status output",
            "inputs": "Configuration parameters",
            "name": "Set FIPS Mode",
            "outputs": "Updated module approved mode/Displa y current approved mode",
            "rolesSspAccess": "Crypto- Officer (AM1)",
            "secFunImpl": "None"
          },
          {
            "description": "Set configuratio n parameters used for communicat ion with the KMF for OTEK using AM1.",
            "indicator": "Approv ed mode indicat or and service status output",
            "inputs": "Configuration parameters",
            "name": "Configure OTEK",
            "outputs": "Updated OTEK configuratio n. Success/fail ure status.",
            "rolesSspAccess": "Crypto- Officer (AM1)",
            "secFunImpl": "None"
          },
          {
            "description": "Provides module firmware and hardware version numbers using AM1.",
            "indicator": "Approv ed mode indicat or and service status output",
            "inputs": "Command In",
            "name": "Version Query",
            "outputs": "Show module version info",
            "rolesSspAccess": "Crypto- Officer (AM1)",
            "secFunImpl": "None"
          },
          {
            "description": "Mark key for deletion using AM2.",
            "indicator": "Approv ed mode indicat or and service status output",
            "inputs": "Command In",
            "name": "Delete Key",
            "outputs": "Key is marked for deletion. Success/fail ure status.",
            "rolesSspAccess": "Crypto- Officer (AM2)",
            "secFunImpl": "None"
          },
          {
            "description": "Perform a key transport process for OTEK service using AM2.",
            "indicator": "Approv ed mode indicat or and service",
            "inputs": "Command In",
            "name": "Perform Key Transport Process",
            "outputs": "Keys imported into the MACE. Success/fail ure status.",
            "rolesSspAccess": "Crypto- Officer (AM2) - KEK: W",
            "secFunImpl": "KTS- Unwrap AES A5273 Decrypti on"
          },
          {
            "description": "",
            "indicator": "status output",
            "inputs": "",
            "name": "",
            "outputs": "",
            "rolesSspAccess": "",
            "secFunImpl": ""
          },
          {
            "description": "Imports keys to the ASTRO CDEM MACE via KVL using AM2.",
            "indicator": "Approv ed mode indicat or and service status output",
            "inputs": "Encrypted Keys",
            "name": "KVL Transfer Key",
            "outputs": "Keys imported into the ASTRO CDEM MACE. Success/fail ure status.",
            "rolesSspAccess": "Crypto- Officer (AM2) - BKK: E - KPK: E - KEK: W - TEK: W",
            "secFunImpl": "KTS- Unwrap"
          },
          {
            "description": "Zeroize selected key variables from the ATRO CDEM MACE using AM2.",
            "indicator": "Approv ed mode indicat or and service status output",
            "inputs": "Command In",
            "name": "KVL Delete Key",
            "outputs": "Keys deleted from the ASTRO CDEM MACE. Success/fail ure status.",
            "rolesSspAccess": "Crypto- Officer (AM2) - KEK: Z - TEK: Z",
            "secFunImpl": "None"
          },
          {
            "description": "Obtain status information about a specific key/keyset using AM2.",
            "indicator": "Approv ed mode indicat or and service status output",
            "inputs": "Command In",
            "name": "KVL Check Key",
            "outputs": "Show key status",
            "rolesSspAccess": "Crypto- Officer (AM2) - BKK: E",
            "secFunImpl": "None"
          },
          {
            "description": "Provides algorithm version numbers using AM2.",
            "indicator": "Approv ed mode indicat or and service status output",
            "inputs": "Command In",
            "name": "KVL Query Algorithm List",
            "outputs": "Show list of supported algorithms",
            "rolesSspAccess": "Crypto- Officer (AM2)",
            "secFunImpl": "None"
          },
          {
            "description": "Provides module firmware version numbers using AM2.",
            "indicator": "Approv ed mode indicat or and service status output",
            "inputs": "Command In",
            "name": "KVL Query Version",
            "outputs": "Show module version info",
            "rolesSspAccess": "Crypto- Officer (AM1)",
            "secFunImpl": "None"
          },
          {
            "description": "Provide the history of error events using AM1.",
            "indicator": "Approv ed mode indicat",
            "inputs": "Command In",
            "name": "Extract Error Log",
            "outputs": "Error logs out. Success/Fail ure status.",
            "rolesSspAccess": "Crypto- Officer (AM1)",
            "secFunImpl": "None"
          },
          {
            "description": "",
            "indicator": "or and service status output",
            "inputs": "",
            "name": "",
            "outputs": "",
            "rolesSspAccess": "",
            "secFunImpl": ""
          },
          {
            "description": "Reset/powe r cycle the ASTRO CDEM MACE.",
            "indicator": "Approv ed mode indicat or and service status output",
            "inputs": "Reset Button press/Cycle power.",
            "name": "Reset Crypto Module",
            "outputs": "Reset the MACE.",
            "rolesSspAccess": "Unauthentic ated - DRBG- EI/Seed: Z - DRBG- State: Z - DRBG- nonce: Z - BKK: Z - IDK: Z - PEK: Z - KPK: Z - KEK: Z - TEK: Z - CO PWD (AM1): Z - CO PWD (AM2): Z - PWD Hash: Z - FW-LD- Pub: Z - IDK-ROM: Z - IDK-Block:",
            "secFunImpl": "None"
          },
          {
            "description": "Zeroize the KPK and all keys and CSPs in the key database and causes a new KPK to be generated. Resets the password to the factory default.",
            "indicator": "Approv ed mode indicat or and service status output",
            "inputs": "Erase Button press",
            "name": "Erase Crypto Module",
            "outputs": "Zeroize all CSPs",
            "rolesSspAccess": "Unauthentic ated - KPK: G,Z - KEK: Z - TEK: Z - CO PWD (AM1): Z - CO PWD (AM2): Z - PWD Hash: Z",
            "secFunImpl": "None"
          }
        ],
        "found": true,
        "section": 4,
        "subsection": 3
      },
      "authentication_methods": {
        "entries": [
          {
            "description": "Identity- based. Crypto-Officer Password: a 15-16 ASCII (printable) characters password is authenticated to gain access to Crypto- Officer services assocaited to the RS232 Interface. It should be noted that after authenticating , this password may be changed at any time.",
            "mechanism": "SHA2-256 (SHS 817)",
            "name": "AM1",
            "perMinute": "After the CO password has been incorrectly entered 10 consecutive times, the Module will erase all CSPs, reset the CO password back to the default and set an alarm, at which time the module must be power cycled to become operational again. The strength per minute is 10 in {(10)*(262)*(32)*(95^11) }",
            "strength": "The password requires a minimum of 1 Upper case, 1 Lower case, 1 Numerical and 1 special character. Since the minimum password length is 15 ASCII printable characters and there are 95 ASCII printable characters, the probability of a successful random attempt is 1 in {(10)*(262)*(32)*(9511)}, The password requires a minimum of 1 Upper case, 1 Lower case, 1 Numerical and 1 special character. Since the minimum password length is 15 ASCII printable characters and there are 95 ASCII printable characters, the probability of a successful random attempt is 1 in {(10)*(262)*(32)*(95^11) }"
          },
          {
            "description": "Identity based. Crypto-Officer Password: a 10 hexadecimal digit long password is authenticated to gain access to Crypto SHA2-256 (SHS 817)",
            "mechanism": "",
            "name": "AM2",
            "perMinute": "After the CO password has been incorrectly entered 15 consecutive times, the Module will erase all CSPs, and set an alarm, at which time the module must be power cycled to become operational again. The strength per minute is 15x10^16.",
            "strength": "The minimum password length is 10 hex digits. The probability of a successful random attempt is 10^16"
          },
          {
            "description": "Officer services associated to the Synchronous Interface (SSI) port. It should be noted that after authenticating , this password may be changed at any time.",
            "mechanism": "",
            "name": "",
            "perMinute": "",
            "strength": ""
          }
        ],
        "found": true,
        "section": 4,
        "subsection": 1
      },
      "cond_self_tests": {
        "entries": [
          {
            "algorithmOrTest": "AES-Encryption (A5273)",
            "condition": "Bootup/Periodic",
            "details": "Encryption",
            "indicator": "ES1 on failure",
            "testMethod": "KAT",
            "testProps": "AES-256",
            "type": "CAST"
          },
          {
            "algorithmOrTest": "AES-Decryption (A5273)",
            "condition": "Bootup/Periodic",
            "details": "Decryption",
            "indicator": "ES1 on failure",
            "testMethod": "KAT",
            "testProps": "AES-256",
            "type": "CAST"
          },
          {
            "algorithmOrTest": "AES-Encryption (A5275)",
            "condition": "Bootup/Periodic",
            "details": "Encryption",
            "indicator": "ES1 on failure",
            "testMethod": "KAT",
            "testProps": "AES-256",
            "type": "CAST"
          },
          {
            "algorithmOrTest": "AES-Decryption (A5275)",
            "condition": "Bootup/Periodic",
            "details": "Decryption",
            "indicator": "ES1 on failure",
            "testMethod": "KAT",
            "testProps": "AES-256",
            "type": "CAST"
          },
          {
            "algorithmOrTest": "AES-KW (A5438)",
            "condition": "Bootup/Periodic",
            "details": "Decryption",
            "indicator": "ES1 on failure",
            "testMethod": "KAT",
            "testProps": "AES-256",
            "type": "CAST"
          },
          {
            "algorithmOrTest": "Counter DRBG (A5437)",
            "condition": "Bootup/Periodic",
            "details": "AES-256 CTR_DRBG instantiation, generate KATs performed before the first random data generation",
            "indicator": "ES1 on failure",
            "testMethod": "KAT",
            "testProps": "AES-256 CTR",
            "type": "CAST"
          },
          {
            "algorithmOrTest": "SHA2-256 (SHS 817)",
            "condition": "Bootup",
            "details": "SHA2, -256, KAT performed before Pre-Operational FW integrity tests.",
            "indicator": "E2 on failure",
            "testMethod": "KAT",
            "testProps": "SHA2-256",
            "type": "CAST"
          },
          {
            "algorithmOrTest": "RSA SigVer (FIPS186-5) (A5253)",
            "condition": "Bootup",
            "details": "RSA-2048 SigVer, performed before Pre-Operational FW integrity tests.",
            "indicator": "E2 on failure",
            "testMethod": "KAT",
            "testProps": "RSA-2048 SigVer",
            "type": "CAST"
          },
          {
            "algorithmOrTest": "Entropy 90B Start-up Repetition Count Test (RCT)",
            "condition": "Bootup",
            "details": "Designed to quickly detect catastrophic failures that cause the noise source to become \"stuck\" on a single output value for a long period of time",
            "indicator": "ES1 on failure",
            "testMethod": "RCT",
            "testProps": "Repetition Count Test",
            "type": "CAST"
          },
          {
            "algorithmOrTest": "Entropy 90B Start-up Adaptive Proportion Test (ADP)",
            "condition": "Bootup",
            "details": "Designed to detect a large loss of entropy that might occur as a result of some physical failure or environment al change affecting the noise source",
            "indicator": "ES1 on failure",
            "testMethod": "ADP",
            "testProps": "Adaptive Proportion Test",
            "type": "CAST"
          },
          {
            "algorithmOrTest": "Firmware Load",
            "condition": "loading a new firmware image",
            "details": "A digital signature is generated over the code when it is built using SHA-256 and RSA-2048.",
            "indicator": "E2 on failure",
            "testMethod": "KAT",
            "testProps": "2048-bit RSA Signature Verification/SHA2-256",
            "type": "SW/FW Load"
          },
          {
            "algorithmOrTest": "",
            "condition": "",
            "details": "The digital signature is verified upon download into the ASTRO CDEM MACE.",
            "indicator": "",
            "testMethod": "",
            "testProps": "",
            "type": ""
          }
        ],
        "found": true,
        "section": 10,
        "subsection": 2
      },
      "error_states": {
        "entries": [],
        "found": false,
        "section": 10,
        "subsection": 4
      },
      "mechanisms_actions": {
        "entries": [
          {
            "inspectFreq": "Periodically",
            "inspectGuidance": "Look for signs of tampering. Remove from service if tampering found.",
            "mechanism": "Covered with a hard-opaque epoxy coating that provides evidence of attempts to tamper with the ASTRO CDEM MACE."
          }
        ],
        "found": true,
        "section": 7,
        "subsection": 1
      },
      "modes_of_operation": {
        "entries": [
          {
            "description": "Operating in approved mode",
            "name": "approved",
            "statusIndicator": "Display output",
            "type": "Approved"
          }
        ],
        "found": true,
        "section": 2,
        "subsection": 4
      },
      "non_approved_allowed_NSC": {
        "entries": [
          {
            "caveat": "No Security Claimed. AES MAC is used as part of OTAR but is considered obfuscation.",
            "name": "AES MAC",
            "use": "[IG 2.4.A] P25 AES OTAR. AES MAC is applied directly to the plaintext OTAR key components and then KTS encryption is performed on the OTAR key components and decrypted within the module using AES KW Cert #5438"
          }
        ],
        "found": true,
        "section": 2,
        "subsection": 5
      },
      "non_approved_allowed_algos": {
        "entries": [],
        "found": false,
        "section": 2,
        "subsection": 5
      },
      "non_approved_not_allowed": {
        "entries": [],
        "found": false,
        "section": 2,
        "subsection": 5
      },
      "non_approved_services": {
        "entries": [],
        "found": false,
        "section": 4,
        "subsection": 4
      },
      "ports_interfaces": {
        "entries": [
          {
            "data": "Provides an interface to the unprotected network and entry of the Crypto Officer password in encrypted form.",
            "logicalInterface": "Data Input Data Output Control Input Status Output",
            "physicalPort": "Synchronous Interface (SSI)"
          },
          {
            "data": "This interface routes packets between subnets. The IP stack of this interface will use the subnet information to determine how to route packets between physical network interfaces.",
            "logicalInterface": "Data Input Data Output Control Input Status Output",
            "physicalPort": "Ethernet Port (EP)"
          },
          {
            "data": "Provides an interface for factory programming and execution of RS232 shell commands.",
            "logicalInterface": "Data Output Control Input Status Output",
            "physicalPort": "RS232 Interface"
          },
          {
            "data": "Provides an interface to the Key Variable Loader. The Traffic Encryption Key (TEK) is entered in encrypted form over the KVL interface.",
            "logicalInterface": "Data Input Data Output Control Input Status Output",
            "physicalPort": "Key Variable Loader (KVL)"
          },
          {
            "data": "This interface provides storage for non-security related stack information.",
            "logicalInterface": "Data Input Data Output Control Input Status Output",
            "physicalPort": "RAM"
          },
          {
            "data": "This interface powers all circuitry.",
            "logicalInterface": "Power",
            "physicalPort": "Power"
          },
          {
            "data": "The interface is used for zeroization of Traffic Encryption Keys (TEKs), KPK.",
            "logicalInterface": "Control Input",
            "physicalPort": "Tamper Interface"
          },
          {
            "data": "This interface forces a reset of the module.",
            "logicalInterface": "Control Input",
            "physicalPort": "Reset Interface"
          },
          {
            "data": "The Alarm LED output is used to drive the external Alarm LED red to indicate a fatal error has been detected.",
            "logicalInterface": "Status Output",
            "physicalPort": "Alarm LED output"
          },
          {
            "data": "The Power LED output is used to drive the external Power LED green when power is supplied to the module.",
            "logicalInterface": "Status Output",
            "physicalPort": "Power LED output"
          },
          {
            "data": "The Ready LED output is used to drive the external Ready LED green when the module is ready to communicate with a KVL.",
            "logicalInterface": "Status Output",
            "physicalPort": "Ready LED output"
          },
          {
            "data": "The TX Clear LED output is used to drive the external TX Clear LED orange when a \"Bypass Rule\" is programmed.",
            "logicalInterface": "Status Output",
            "physicalPort": "TX Clear LED output"
          },
          {
            "data": "The Status LED output is used to drive the external Status LED green to indicate a good battery, and a Traffic Encryption Key (TEK) has been loaded. The Status LED output is used to drive the external Status LED yellow to indicate a good battery, but no Traffic Encryption Key (TEK) has been loaded. The Status LED output is used to drive the external Status LED red to indicate a low or dead battery.",
            "logicalInterface": "Status Output",
            "physicalPort": "Status LED output"
          },
          {
            "data": "External interrupts.",
            "logicalInterface": "Control Input",
            "physicalPort": "IRQ/FIQ"
          },
          {
            "data": "Clock input",
            "logicalInterface": "Control Input",
            "physicalPort": "Clock"
          }
        ],
        "found": true,
        "section": 3,
        "subsection": 1
      },
      "roles": {
        "entries": [
          {
            "authMethodList": "AM1",
            "name": "Crypto-Officer (AM1)",
            "operatorType": "CO",
            "type": "Identity"
          },
          {
            "authMethodList": "AM2",
            "name": "Crypto-Officer (AM2)",
            "operatorType": "CO",
            "type": "Identity"
          }
        ],
        "found": true,
        "section": 4,
        "subsection": 2
      },
      "security_levels": {
        "entries": [
          {
            "level": "3",
            "section": "1",
            "title": "General"
          },
          {
            "level": "3",
            "section": "2",
            "title": "Cryptographic module specification"
          },
          {
            "level": "3",
            "section": "3",
            "title": "Cryptographic module interfaces"
          },
          {
            "level": "3",
            "section": "4",
            "title": "Roles, services, and authentication"
          },
          {
            "level": "3",
            "section": "5",
            "title": "Software/Firmware security"
          },
          {
            "level": "N/A",
            "section": "6",
            "title": "Operational environment"
          },
          {
            "level": "3",
            "section": "7",
            "title": "Physical security"
          },
          {
            "level": "N/A",
            "section": "8",
            "title": "Non-invasive security"
          },
          {
            "level": "3",
            "section": "9",
            "title": "Sensitive security parameter management"
          },
          {
            "level": "3",
            "section": "10",
            "title": "Self-tests"
          },
          {
            "level": "3",
            "section": "11",
            "title": "Life-cycle assurance"
          },
          {
            "level": "N/A",
            "section": "12",
            "title": "Mitigation of other attacks"
          },
          {
            "level": "3",
            "section": "",
            "title": "Overall Level"
          }
        ],
        "found": true,
        "section": 1,
        "subsection": 2
      },
      "self_tests": {
        "entries": [
          {
            "algorithmOrTest": "Firmware Integrity",
            "details": "When the ASTRO CDEM MACE is powered up, the digital signature is verified.",
            "indicator": "E2 on failure",
            "testMethod": "KAT",
            "testProps": "SHA2-256 (Cert. #817), RSA- 2048 (Cert. #A5253)",
            "type": "SW/FW Integrity"
          }
        ],
        "found": true,
        "section": 10,
        "subsection": 1
      },
      "ssp_io_methods": {
        "entries": [
          {
            "dest": "Flash Memory - Encrypted (S3)",
            "distribution": "Manual",
            "entry": "Electronic",
            "format": "Encrypted",
            "name": "Input encrypted on the IDK (I1)",
            "sfiAlgo": "AES A5273 Decryption",
            "source": "Application Software (outside)"
          },
          {
            "dest": "Flash Memory - Encrypted (S3)",
            "distribution": "Manual",
            "entry": "Electronic",
            "format": "Encrypted",
            "name": "Input encrypted on the PEK(I2)",
            "sfiAlgo": "AES A5273 Decryption",
            "source": "Application Software (outside)"
          },
          {
            "dest": "Flash Memory - Encrypted (S3)",
            "distribution": "Automated",
            "entry": "Electronic",
            "format": "Encrypted",
            "name": "Input encrypted on the KEK (I3)",
            "sfiAlgo": "KTS- Unwrap",
            "source": "OTAR"
          },
          {
            "dest": "Flash Memory - Encrypted (S3)",
            "distribution": "Manual",
            "entry": "Electronic",
            "format": "Encrypted",
            "name": "Input encrypted on the BKK (I4)",
            "sfiAlgo": "AES A5273 Decryption",
            "source": "Application Software (outside)"
          }
        ],
        "found": true,
        "section": 9,
        "subsection": 2
      },
      "ssp_zeroization_methods": {
        "entries": [
          {
            "description": "Zeroized by the \"Program Update\" service by overwriting with a fixed pattern of 0s. *",
            "method": "Z1",
            "operatorId": "Yes",
            "rationale": "SSPs zeroized upon loading of new firmware."
          },
          {
            "description": "Zeroized by module power cycle or hard reset by overwriting with a fixed pattern of 0s. *",
            "method": "Z2",
            "operatorId": "Yes",
            "rationale": "SSPs in volatile memory zeroized."
          },
          {
            "description": "Zeroized by the \"Configure Module\" service by overwriting with a fixed pattern of 0s.",
            "method": "Z3",
            "operatorId": "Yes",
            "rationale": "CO zeroize module when configuring into an Approved mode."
          },
          {
            "description": "Zeroized by the \"Change CO Password (AM1)\" service by overwriting with a fixed pattern of 0s.",
            "method": "Z4",
            "operatorId": "Yes",
            "rationale": "Old CO password zeroized as new CO password set"
          },
          {
            "description": "Zeroized by the \"Validate CO Password (AM1)\" service by overwriting with a fixed pattern of 0s.",
            "method": "Z5",
            "operatorId": "Yes",
            "rationale": "CO password zeroized after too many failed login attempts"
          },
          {
            "description": "Zeroized by the \"Change CO Password (AM2)\" service by overwriting with a fixed pattern of 0s.",
            "method": "Z6",
            "operatorId": "Yes",
            "rationale": "Old Crypto Officer password zeroized as new Crypto Officer password set"
          },
          {
            "description": "Zeroized by the \"Validate CO Password (AM2)\" service by overwriting with a fixed pattern of 0s.",
            "method": "Z7",
            "operatorId": "Yes",
            "rationale": "Crypto Officer password zeroized after too many failed login attempts"
          },
          {
            "description": "Zeroized by Tamper event. (KPK) is zeroized with a fixed pattern of 0s.",
            "method": "Z8",
            "operatorId": "N/A",
            "rationale": "Zeroizes KPK"
          }
        ],
        "found": true,
        "section": 9,
        "subsection": 3
      },
      "storage_areas": {
        "entries": [
          {
            "description": "Stored in the volatile memory (RAM).",
            "name": "System Memory (S1)",
            "persistance": "Dynamic"
          },
          {
            "description": "Stored in the flash in plaintext, associated by memory location (pointer).",
            "name": "Flash Memory (S2)",
            "persistance": "Static"
          },
          {
            "description": "Stored in the flash in encrypted, associated by memory location (pointer).",
            "name": "Flash Memory - Encrypted (S3)",
            "persistance": "Static"
          }
        ],
        "found": true,
        "section": 9,
        "subsection": 1
      },
      "tested_module_id_hw": {
        "entries": [
          {
            "features": "N/A",
            "fwVersion": "R03.01.02 with AES-256 DIA R01.00.07",
            "hwVersion": "5185912Y03, 5185912Y05, 5185912T05",
            "modelPartNum": "ASTRO CDEM MACE",
            "processors": "Motorola Advanced Crypto Engine (MACE)"
          },
          {
            "features": "",
            "fwVersion": "Base FW Version",
            "hwVersion": "Algorithm FW Version",
            "modelPartNum": "Algorithm*",
            "processors": "Cert. #"
          },
          {
            "features": "",
            "fwVersion": "R03.01.02",
            "hwVersion": "R01.00.07",
            "modelPartNum": "AES256",
            "processors": "A5275"
          }
        ],
        "found": true,
        "section": 2,
        "subsection": 2
      },
      "tested_module_id_hw_hy": {
        "entries": [],
        "found": false,
        "section": 2,
        "subsection": 2
      },
      "tested_module_id_sw_fw_hy": {
        "entries": [],
        "found": false,
        "section": 2,
        "subsection": 2
      },
      "tested_op_env_sw_fw_hy": {
        "entries": [],
        "found": false,
        "section": 2,
        "subsection": 2
      },
      "vendor_affirmed_algos": {
        "entries": [
          {
            "algoPropList": "Key Type:Symmetric",
            "implName": "N/A",
            "name": "CKG",
            "reference": "SP800-133rev2 Sections 4 example 1 and IG D.H"
          },
          {
            "algoPropList": "Key Type:Symmetric",
            "implName": "N/A",
            "name": "CKG - IDK",
            "reference": "SP800-133rev2 Sections 6.3 #2 and IG C.I"
          }
        ],
        "found": true,
        "section": 2,
        "subsection": 5
      },
      "vendor_affirmed_op_env_sw_fw_hy": {
        "entries": [],
        "found": false,
        "section": 2,
        "subsection": 2
      }
    },
    "is_br1_format": true,
    "keywords": {
      "asymmetric_crypto": {
        "RSA": {
          "RSA-2048": 3
        }
      },
      "certification_process": {},
      "cipher_mode": {
        "CBC": {
          "CBC": 3
        },
        "CFB": {
          "CFB": 1
        },
        "CTR": {
          "CTR": 2
        },
        "ECB": {
          "ECB": 1
        },
        "OFB": {
          "OFB": 1
        }
      },
      "cplc_data": {},
      "crypto_engine": {},
      "crypto_library": {},
      "crypto_protocol": {},
      "crypto_scheme": {
        "MAC": {
          "MAC": 4
        }
      },
      "device_model": {},
      "ecc_curve": {},
      "eval_facility": {},
      "fips_cert_id": {
        "Cert": {
          "#2": 3,
          "#5438": 1,
          "#817": 1
        }
      },
      "fips_certlike": {
        "Certlike": {
          "# A5275": 1,
          "AES-256": 11,
          "AES256": 1,
          "SHA-256": 1,
          "SHA2": 1,
          "SHA2-256": 7,
          "SHS 817": 5
        }
      },
      "fips_security_level": {
        "Level": {
          "Level 3": 8,
          "level 3": 2
        }
      },
      "hash_function": {
        "SHA": {
          "SHA2": {
            "SHA-256": 1,
            "SHA2": 1
          }
        }
      },
      "ic_data_group": {},
      "javacard_api_const": {},
      "javacard_packages": {},
      "javacard_version": {},
      "os_name": {},
      "pq_crypto": {},
      "randomness": {
        "PRNG": {
          "DRBG": 9
        },
        "RNG": {
          "RBG": 4
        }
      },
      "side_channel_analysis": {},
      "standard_id": {
        "FIPS": {
          "FIPS 140-3": 14,
          "FIPS 180-4": 1,
          "FIPS 186-5": 1,
          "FIPS PUB 140-3": 2,
          "FIPS140-3": 1,
          "FIPS186-5": 2
        },
        "ISO": {
          "ISO/IEC 19790": 2,
          "ISO/IEC 24759": 2
        },
        "NIST": {
          "SP 800-38A": 6,
          "SP 800-38F": 1,
          "SP 800-90A": 1
        }
      },
      "symmetric_crypto": {
        "AES_competition": {
          "AES": {
            "AES": 37,
            "AES-256": 11,
            "AES256": 1
          },
          "CAST": {
            "CAST": 20
          },
          "E2": {
            "E2": 4
          }
        }
      },
      "tee_name": {
        "AMD": {
          "PSP": 1
        }
      },
      "tls_cipher_suite": {},
      "vendor": {},
      "vulnerability": {}
    },
    "module_algorithms": {
      "_type": "Set",
      "elements": [
        "AES-KWA5438",
        "Counter DRBGA5437",
        "AES-ECBA5275",
        "SHA2-256SHS 817",
        "RSA SigVer (FIPS186-5)A5253",
        "AES-CFB8A5273",
        "AES-OFBA5275",
        "AES-CBCA5275"
      ]
    },
    "policy_algorithms": {
      "_type": "Set",
      "elements": [
        "#A5275",
        "#817",
        "#A5438",
        "#A5273",
        "#A5437",
        "#A5253"
      ]
    },
    "policy_metadata": {
      "/Author": "Hawes, David J. (Fed)",
      "/CreationDate": "D:20260119090334-05\u002700\u0027",
      "/Creator": "Microsoft\u00ae Word for Microsoft 365",
      "/MSIP_Label_4dd2c6e0-f1e3-4cf2-bd0b-256ab4cff3af_ActionId": "728e4821-c096-43e0-b013-b471c929901f",
      "/MSIP_Label_4dd2c6e0-f1e3-4cf2-bd0b-256ab4cff3af_ContentBits": "1",
      "/MSIP_Label_4dd2c6e0-f1e3-4cf2-bd0b-256ab4cff3af_Enabled": "true",
      "/MSIP_Label_4dd2c6e0-f1e3-4cf2-bd0b-256ab4cff3af_Method": "Privileged",
      "/MSIP_Label_4dd2c6e0-f1e3-4cf2-bd0b-256ab4cff3af_Name": "UNCLASSIFIED",
      "/MSIP_Label_4dd2c6e0-f1e3-4cf2-bd0b-256ab4cff3af_SetDate": "2026-01-19T13:52:22Z",
      "/MSIP_Label_4dd2c6e0-f1e3-4cf2-bd0b-256ab4cff3af_SiteId": "da9cbe40-ec1e-4997-afb3-17d87574571a",
      "/MSIP_Label_4dd2c6e0-f1e3-4cf2-bd0b-256ab4cff3af_Tag": "10, 0, 1, 1",
      "/ModDate": "D:20260119090334-05\u002700\u0027",
      "/Producer": "Microsoft\u00ae Word for Microsoft 365",
      "pdf_file_size_bytes": 773990,
      "pdf_hyperlinks": {
        "_type": "Set",
        "elements": [
          "https://csrc.nist.gov/projects/cryptographic-module-validation-program/validated-modules"
        ]
      },
      "pdf_is_encrypted": false,
      "pdf_number_of_pages": 47
    }
  },
  "state": {
    "_type": "sec_certs.sample.fips.InternalState",
    "module": {
      "_type": "sec_certs.sample.document_state.DocumentState",
      "convert_ok": true,
      "download_ok": true,
      "extract_ok": true,
      "json_hash": null,
      "source_hash": null,
      "txt_hash": null
    },
    "policy": {
      "_type": "sec_certs.sample.document_state.DocumentState",
      "convert_ok": true,
      "download_ok": true,
      "extract_ok": true,
      "json_hash": "b89eb249adbd22ef6dcd4b5e8be7cbb37add806f0930a99b3946c693a612ef58",
      "source_hash": "5279dba6f40e7d1017d857f865c35949417827d4b4eecbf92499b8cfe1230b9f",
      "txt_hash": "e063a36a61e3036ad7fd30f2ca0da038832a47c9b875fe602d6a7dca3b05bb84"
    }
  },
  "web_data": {
    "_type": "sec_certs.sample.fips.FIPSCertificate.WebData",
    "caveat": "When installed, initialized and configured as specified in Section 11 of Security Policy. No assurance of minimum security of SSPs (e.g., keys, bit strings) that are externally loaded, or of SSPs established with externally loaded SSPs",
    "certificate_pdf_url": "https://csrc.nist.gov/CSRC/media/projects/cryptographic-module-validation-program/documents/certificates/January 2026_250226_0720.pdf",
    "date_sunset": "2031-01-22",
    "description": "The ASTRO CDEM MACE provides secure key management, and data encryption.",
    "embodiment": "Single Chip",
    "exceptions": [
      "Operational environment: N/A",
      "Non-invasive security: N/A",
      "Mitigation of other attacks: N/A"
    ],
    "fw_versions": null,
    "historical_reason": null,
    "hw_versions": null,
    "level": 3,
    "mentioned_certs": {},
    "module_name": "ASTRO CDEM Motorola Advanced Crypto Engine (MACE)",
    "module_type": "Hardware",
    "revoked_link": null,
    "revoked_reason": null,
    "standard": "FIPS 140-3",
    "status": "active",
    "sw_versions": null,
    "tested_conf": null,
    "validation_history": [
      {
        "_type": "sec_certs.sample.fips.FIPSCertificate.ValidationHistoryEntry",
        "date": "2026-01-23",
        "lab": "UL Verification Services, Inc.",
        "validation_type": "Initial"
      }
    ],
    "vendor": "Motorola Solutions, Inc.",
    "vendor_url": "http://www.motorolasolutions.com"
  }
}