B227 True Random Number Generator (TRNG) Cryptographic Module

Certificate details

Certificate ID #5434
Status active
Validation dates 22.07.2026
Sunset date 21-07-2031
Standard FIPS 140-3
Security level 1
Type Hardware
Embodiment SingleChip
Caveat None
Exceptions
  • Software/Firmware security: N/A
  • Non-invasive security: N/A
  • Mitigation of other attacks: N/A
Description The B227 True Random Number Generator (TRNG) is a NIST SP 800-90 B compliant TRNG employed by the Integrated Compute Complex for generating cryptographic keys.
Vendor Google, LLC http://google.com
Lab Acumen Security
Algorithms
  • Conditioning Component Block Cipher Derivation Function SP800-90BA2272
  • Counter DRBGA2721
References

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

Security policy

Extracted keywords

Symmetric Algorithms
AES-128, AES-256, AES-, CAST
Randomness
TRNG, DRBG, RBG
Block cipher modes
CTR

Trusted Execution Environments
PSP

Security level
Level 1

Cross-references

Incoming
  • 5558 - active - Integrated Compute Complex (ICC)

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

Loading...

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": 5434,
  "dgst": "75a92952cd1d1c57",
  "heuristics": {
    "_type": "sec_certs.sample.fips.FIPSCertificate.Heuristics",
    "algorithms": {
      "_type": "Set",
      "elements": [
        "#A2721",
        "Conditioning Component Block Cipher Derivation Function SP800-90BA2272",
        "#A2272",
        "Counter DRBGA2721"
      ]
    },
    "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": {
        "_type": "Set",
        "elements": [
          "5558"
        ]
      },
      "directly_referencing": null,
      "indirectly_referenced_by": {
        "_type": "Set",
        "elements": [
          "5558"
        ]
      },
      "indirectly_referencing": null
    },
    "module_prunned_references": {
      "_type": "Set",
      "elements": []
    },
    "policy_processed_references": {
      "_type": "sec_certs.sample.certificate.References",
      "directly_referenced_by": {
        "_type": "Set",
        "elements": [
          "5558"
        ]
      },
      "directly_referencing": null,
      "indirectly_referenced_by": {
        "_type": "Set",
        "elements": [
          "5558"
        ]
      },
      "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": 3,
    "br1_tables": {
      "_type": "sec_certs.heuristics.br1.table_parsing.model.br1_tables.BR1Tables",
      "approved_algorithms": {
        "entries": [
          {
            "algorithm": "Conditioning Component Block Cipher Derivation Function SP800-90B",
            "cavpCertName": "A2272",
            "properties": "-",
            "reference": "SP 800-90B"
          },
          {
            "algorithm": "Counter DRBG",
            "cavpCertName": "A2721",
            "properties": "Prediction Resistance - No, Yes Mode - AES-128, AES-256 Derivation Function Enabled - No",
            "reference": "SP 800-90A Rev. 1"
          }
        ],
        "found": true,
        "section": 2,
        "subsection": 5
      },
      "approved_services": {
        "entries": [
          {
            "description": "Provides random bits to the ICC module",
            "indicator": "Approved mode indicator combined with successful completion of the service",
            "inputs": "Request for ranbom bits from the ICC",
            "name": "Random Bit Generation",
            "outputs": "Random bits",
            "rolesSspAccess": "CO - B227 DRBG Entropy Input String: G,E - B227 DRBG Seed: G,E - B227 DRBG V: G,E - B227 DRBG Key: G,E - B227 DRBG Output: G,R",
            "secFunImpl": "Random Bit Generation Entropy"
          },
          {
            "description": "Current state of the module",
            "indicator": "Approved mode indicator/Hard Error State indicator combined with successful completion of the service",
            "inputs": "Reboot to trigger CAST execution",
            "name": "Show Status",
            "outputs": "Status",
            "rolesSspAccess": "CO",
            "secFunImpl": "None"
          },
          {
            "description": "Retrieval of the module ID and hardware version",
            "indicator": "Approved mode indicator combined with successful completion of the service",
            "inputs": "command \"mem read32 0x200780001c\"",
            "name": "Show module\u0027s versioning information",
            "outputs": "Hardware version: 3.00b; Module ID: 0",
            "rolesSspAccess": "CO",
            "secFunImpl": "None"
          },
          {
            "description": "On demand self-test execution on rebooting the module",
            "indicator": "0",
            "inputs": "Power cycle",
            "name": "Perform self- tests",
            "outputs": "Status",
            "rolesSspAccess": "CO",
            "secFunImpl": "None"
          },
          {
            "description": "Reboot/power-cycle of the module zeroises all SSPs as they are stored ephemerally",
            "indicator": "Approved mode indicator combined with successful completion of the service",
            "inputs": "Power cycle/reboot",
            "name": "Perform zeroisation",
            "outputs": "Status",
            "rolesSspAccess": "CO - B227 DRBG Entropy Input String: Z - B227 DRBG Seed: Z - B227 DRBG V: Z - B227 DRBG Key: Z - B227 DRBG Output: Z",
            "secFunImpl": "None"
          }
        ],
        "found": true,
        "section": 4,
        "subsection": 3
      },
      "authentication_methods": {
        "entries": [],
        "found": false,
        "section": 4,
        "subsection": 1
      },
      "cond_self_tests": {
        "entries": [
          {
            "algorithmOrTest": "Counter DRBG (A2721)",
            "condition": "During boot",
            "details": "-",
            "indicator": "0",
            "testMethod": "KAT",
            "testProps": "CTR_DRBG (AES-CTR, 256 bits)",
            "type": "CAST"
          },
          {
            "algorithmOrTest": "NIST SP 800-90B Entropy Source Repetition Count Test (RCT)",
            "condition": "During boot and continuously",
            "details": "-",
            "indicator": "the core is ready to be used",
            "testMethod": "RCT",
            "testProps": "Cutoff value (C) = 41; False positive error rate (alpha) = 2^-20",
            "type": "CAST"
          },
          {
            "algorithmOrTest": "NIST SP 800-90B Entropy Source Adaptive Proportion Test (APT)",
            "condition": "During boot and continuously",
            "details": "-",
            "indicator": "the core is ready to be used",
            "testMethod": "APT",
            "testProps": "Cutoff value (C) = 793; Window Size (w)=1024 False positive error rate (alpha) = 2^-20",
            "type": "CAST"
          }
        ],
        "found": true,
        "section": 10,
        "subsection": 2
      },
      "error_states": {
        "entries": [
          {
            "conditions": "Failure of a CAST",
            "description": "No cryptographic functions can be executed and all data output is inhibited; An operator can attempt to reset the state by cycling the power",
            "indicator": "FAILED_TEST_ID_0 has non- zero value in case of a failure in the DRBG CAST",
            "name": "Hard Error state",
            "recoveryMethod": "The module would have to be re-initialized via a power- cycle of the IN763 SoC i.e., by rebooting the module"
          },
          {
            "conditions": "Failure of a NIST SP 800- 90B Health Test",
            "description": "The Soft Error state is cleared automatically by the entropy source (the source raises an alarm, zeroises itself and becomes operational again)",
            "indicator": "Failure of a NIST SP 800-90B Health Test causes the entropy source to raise an alarm and zeroise itself",
            "name": "Soft Error state",
            "recoveryMethod": "The entropy source (and thus the module as a whole) recovers automatically"
          }
        ],
        "found": true,
        "section": 10,
        "subsection": 4
      },
      "mechanisms_actions": {
        "entries": [
          {
            "inspectFreq": "None",
            "inspectGuidance": "None",
            "mechanism": "Standard passivation applied on the IN763 SoC"
          }
        ],
        "found": true,
        "section": 7,
        "subsection": 1
      },
      "modes_of_operation": {
        "entries": [
          {
            "description": "No configuration of the module or installation steps are required by the operator. When the module is powered on its self-tests are executed without any operator intervention; The module enters the Approved mode of operation automatically if the self-tests at boot complete successfully",
            "name": "Approved Mode",
            "statusIndicator": "PSP initialized, self-test pass",
            "type": "Approved"
          }
        ],
        "found": true,
        "section": 2,
        "subsection": 4
      },
      "non_approved_allowed_NSC": {
        "entries": [],
        "found": false,
        "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": "Requests for random bits",
            "logicalInterface": "Data Input",
            "physicalPort": "AMBA (On-chip system bus) Serial Peripheral Interface (SPI)"
          },
          {
            "data": "Random bits",
            "logicalInterface": "Data Output",
            "physicalPort": "AMBA (On-chip system bus)"
          },
          {
            "data": "Reset signal",
            "logicalInterface": "Control Input",
            "physicalPort": "AMBA (On-chip system bus)"
          },
          {
            "data": "Provides power to the module",
            "logicalInterface": "Power",
            "physicalPort": "Physical power connector"
          },
          {
            "data": "Status of the Approved Mode of operation and self-tests i.e. success/failure indicator for the NIST SP 800-90Ar1 DRBG health tests",
            "logicalInterface": "Status Output",
            "physicalPort": "AMBA (On-chip system bus)"
          }
        ],
        "found": true,
        "section": 3,
        "subsection": 1
      },
      "roles": {
        "entries": [
          {
            "authMethodList": "None",
            "name": "CO",
            "operatorType": "Crypto Officer",
            "type": "Role"
          }
        ],
        "found": true,
        "section": 4,
        "subsection": 2
      },
      "security_levels": {
        "entries": [
          {
            "level": "1",
            "section": "1",
            "title": "General"
          },
          {
            "level": "1",
            "section": "2",
            "title": "Cryptographic module specification"
          },
          {
            "level": "1",
            "section": "3",
            "title": "Cryptographic module interfaces"
          },
          {
            "level": "1",
            "section": "4",
            "title": "Roles, services, and authentication"
          },
          {
            "level": "N/A",
            "section": "5",
            "title": "Software/Firmware security"
          },
          {
            "level": "1",
            "section": "6",
            "title": "Operational environment"
          },
          {
            "level": "1",
            "section": "7",
            "title": "Physical security"
          },
          {
            "level": "N/A",
            "section": "8",
            "title": "Non-invasive security"
          },
          {
            "level": "1",
            "section": "9",
            "title": "Sensitive security parameter management"
          },
          {
            "level": "1",
            "section": "10",
            "title": "Self-tests"
          },
          {
            "level": "1",
            "section": "11",
            "title": "Life-cycle assurance"
          },
          {
            "level": "N/A",
            "section": "12",
            "title": "Mitigation of other attacks"
          },
          {
            "level": "1",
            "section": "",
            "title": "Overall Level"
          }
        ],
        "found": true,
        "section": 1,
        "subsection": 2
      },
      "self_tests": {
        "entries": [
          {
            "algorithmOrTest": "Counter DRBG (A2721)",
            "details": "Used as approved DRBG for generation of random bits according to SP800-90Ar1",
            "indicator": "0",
            "testMethod": "KAT",
            "testProps": "CTR_DRBG (AES- CTR, 256 bits)",
            "type": "SW/FW Integrity"
          }
        ],
        "found": true,
        "section": 10,
        "subsection": 1
      },
      "ssp_io_methods": {
        "entries": [
          {
            "dest": "ICC module",
            "distribution": "Manual",
            "entry": "Electronic",
            "format": "Plaintext",
            "name": "Random bits",
            "sfiAlgo": "",
            "source": "Internal registers"
          }
        ],
        "found": true,
        "section": 9,
        "subsection": 2
      },
      "ssp_zeroization_methods": {
        "entries": [
          {
            "description": "SSPs stored ephemerally are zeroised on resetting the module",
            "method": "Zeroised on reset",
            "operatorId": "Operator Initiated",
            "rationale": "SSPs stored ephemerally are zeroised on resetting the module"
          }
        ],
        "found": true,
        "section": 9,
        "subsection": 3
      },
      "storage_areas": {
        "entries": [],
        "found": false,
        "section": 9,
        "subsection": 1
      },
      "tested_module_id_hw": {
        "entries": [
          {
            "features": "N/A",
            "fwVersion": "N/A",
            "hwVersion": "3.00b",
            "modelPartNum": "IN763 SoC A0",
            "processors": "N/A"
          }
        ],
        "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": [],
        "found": false,
        "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": {},
      "certification_process": {},
      "cipher_mode": {
        "CTR": {
          "CTR": 1
        }
      },
      "cplc_data": {},
      "crypto_engine": {},
      "crypto_library": {},
      "crypto_protocol": {},
      "crypto_scheme": {},
      "device_model": {},
      "ecc_curve": {},
      "eval_facility": {},
      "fips_cert_id": {},
      "fips_certlike": {
        "Certlike": {
          "AES- CTR, 256": 1,
          "AES-128": 1,
          "AES-256": 1,
          "AES-CTR, 256": 1
        }
      },
      "fips_security_level": {
        "Level": {
          "Level 1": 4
        }
      },
      "hash_function": {},
      "ic_data_group": {},
      "javacard_api_const": {},
      "javacard_packages": {},
      "javacard_version": {},
      "os_name": {},
      "pq_crypto": {},
      "randomness": {
        "PRNG": {
          "DRBG": 48
        },
        "RNG": {
          "RBG": 2
        },
        "TRNG": {
          "TRNG": 10
        }
      },
      "side_channel_analysis": {},
      "standard_id": {
        "FIPS": {
          "FIPS 140-3": 8
        },
        "NIST": {
          "NIST SP 800-90B": 6,
          "SP 800-90A": 1,
          "SP 800-90B": 1
        }
      },
      "symmetric_crypto": {
        "AES_competition": {
          "AES": {
            "AES-": 1,
            "AES-128": 1,
            "AES-256": 1
          },
          "CAST": {
            "CAST": 11
          }
        }
      },
      "tee_name": {
        "AMD": {
          "PSP": 1
        }
      },
      "tls_cipher_suite": {},
      "vendor": {},
      "vulnerability": {}
    },
    "module_algorithms": {
      "_type": "Set",
      "elements": [
        "Conditioning Component Block Cipher Derivation Function SP800-90BA2272",
        "Counter DRBGA2721"
      ]
    },
    "policy_algorithms": {
      "_type": "Set",
      "elements": [
        "#A2721",
        "#A2272"
      ]
    },
    "policy_metadata": {
      "/Author": "Omkar Salunkhe",
      "/CreationDate": "D:20260720113206-04\u002700\u0027",
      "/Creator": "Microsoft\u00ae Word for Microsoft 365",
      "/MSIP_Label_4dd2c6e0-f1e3-4cf2-bd0b-256ab4cff3af_ActionId": "711a5856-f3e2-4df3-ba57-373076b87ffa",
      "/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-07-20T13:58:15Z",
      "/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:20260720113206-04\u002700\u0027",
      "/Producer": "Microsoft\u00ae Word for Microsoft 365",
      "pdf_file_size_bytes": 416064,
      "pdf_hyperlinks": {
        "_type": "Set",
        "elements": [
          "https://csrc.nist.gov/CSRC/media/projects/cryptographic-module-validation-program/documents/entropy/E137_PublicUse.pdf",
          "http://csrc.nist.gov/groups/STM/cmvp/index.html"
        ]
      },
      "pdf_is_encrypted": false,
      "pdf_number_of_pages": 24
    }
  },
  "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": "67aebce2fe5e859ca3ecf00705389cf81e63800c803fe010c323bf09055e9951",
      "source_hash": "0974f6a9ef5184f8e85dc26a42fe7b92c392167e139c9cdf57df4b449e8ca38c",
      "txt_hash": "58e0e0ff8fc70033fc699528bac86448d6204af972a79eb7b545629e0d9fb563"
    }
  },
  "web_data": {
    "_type": "sec_certs.sample.fips.FIPSCertificate.WebData",
    "caveat": "None",
    "certificate_pdf_url": "https://csrc.nist.gov/CSRC/media/projects/cryptographic-module-validation-program/documents/certificates/July 2026_040826_0807.pdf",
    "date_sunset": "2031-07-21",
    "description": "The B227 True Random Number Generator (TRNG) is a NIST SP 800-90 B compliant TRNG employed by the Integrated Compute Complex for generating cryptographic keys.",
    "embodiment": "SingleChip",
    "exceptions": [
      "Software/Firmware security: N/A",
      "Non-invasive security: N/A",
      "Mitigation of other attacks: N/A"
    ],
    "fw_versions": null,
    "historical_reason": null,
    "hw_versions": null,
    "level": 1,
    "mentioned_certs": {},
    "module_name": "B227 True Random Number Generator (TRNG) Cryptographic Module",
    "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-07-22",
        "lab": "Acumen Security",
        "validation_type": "Initial"
      }
    ],
    "vendor": "Google, LLC",
    "vendor_url": "http://google.com"
  }
}