Cryptography – Pre-Operational Self-Test

This post is part of the Computer Security – Cryptography posts series.

The pre-operational tests shall be performed by a cryptographic module between the time a cryptographic module is powered on, either from a power-off state or a quiescent state (e.g., low power, suspend or hibernate) and the time that the cryptographic module uses a function or provides a service using the function to be tested.

Prior to using a security function, the pre-operational test(s) of that security function shall pass successfully. The pre-operational self-tests shall be initiated automatically and shall not require operator intervention.

The vendor shall specify a critical time period that specifies the maximum operational time before pre-operational tests must be repeated. When a pre-operational test is completed, the results (i.e., indications of success or failure) may be output via the “status output” interface.

If a module does not output an error status upon failure of a module self-test, the operator of the module shall be able to determine if the module has entered an error state through a procedure documented in the Security Policy.

A cryptographic module shall permit operators to initiate the pre-operational tests on demand for periodic testing of the module.

A cryptographic module shall repeat the pre-operational self-tests as documented. Documentation shall specify the time period and the policy regarding the interruption of the module’s operations.

A cryptographic module shall perform the following pre-operational tests, as applicable: Software Integrity Test, Cryptographic Algorithm Test, and Pre-Operational Bypass Test.

Software Integrity Test: a test using an Approved data authentication technique shall be applied to all validated software within a cryptographic module when the module is powered up. This pre-operational self-test shall be successfully completed before the cryptographic module provides any services.

The Software Integrity Test is not required for any software excluded from the security requirements of this standard or for any executable code stored in non-reconfigurable memory. If the integrity of the executable code cannot be verified, the Software Integrity Test shall fail.

SECURITY LEVEL 1

The Approved data authentication technique shall include the use of a MAC or a digital signature.

SECURITY LEVELS 2, 3, 4 AND 5

The Approved data authentication technique shall include the use of a digital signature.

Cryptographic Algorithm Test. This test shall be conducted for all Approved and Allowed cryptographic algorithms (e.g., encryption, decryption, data authentication, and random bit generation) of each cryptographic algorithm implemented by a cryptographic module via any of the following methods.

  • A known-answer test involves operating the cryptographic algorithm on data for which the correct output is already known and comparing the calculated output with the previously generated output (the known answer). If the calculated output does not equal the known answer, the known-answer test shall fail. Cryptographic algorithms whose outputs do not vary for a given set of inputs (i.e., no random data is obtained and used during the execution of the algorithm) shall be tested using a known answer test (KAT). Public key cryptographic algorithms whose outputs vary for a given set of inputs (e.g., the DSA or the Elliptic Curve Digital Signature Algorithm (ECDSA)) shall be tested using a known-answer test if the random number responsible for the variability of the output can be fixed, or shall be tested using a Pair-Wise Consistency Test with a fixed pair of public and private keys.
  • If a cryptographic module includes two independent implementations of the same cryptographic algorithm, then the module shall:
    • continuously compare the outputs of the two implementations, and, if the outputs of the two implementations are not equal, the Cryptographic Algorithm Test shall fail,or
    • perform a KAT for each cryptographic algorithm and mode to be tested in accordance with the specified condition. A KAT is not required for the security function in the Approved Data Authentication technique used by the Software Integrity Test.

Pre-Operational Bypass Test. If a cryptographic module implements a bypass capability, then the module shall ensure the correct operation of the logic governing activation of the bypass capability by exercising that logic. This test shall be performed before the bypass capability is first exercised.



9 Responses to “Cryptography – Pre-Operational Self-Test”

  1. Miroslav says:

    I want to go to a class in cryptography. What are the prerequisites ?

  2. Gent says:

    It depends upon the level of the class, but generally you need to know some math and number theory.

  3. Muffin says:

    If you want to study about encryption , then knowledge about probability is necessary.

  4. Alex says:

    In my opinion you will need is a degree of mathematical maturity

  5. Garmin says:

    what is best language to write algorithms for Cryptography ?

  6. Carmine says:

    c++ and java

  7. Sabin says:

    if you need for application level then chose C++, else choose Java.

  8. Liam says:

    What are the mathematics behind the Enigma Machine ?

  9. Math Se says:

    The enigma machine used permutations to generate it’s cipher.

    It is about math, the group theory and the permutation groups.

  10. Ken says:

    interesting post

  11. P. Silva says:

    a very good article about Cryptography – Pre-Operational Self-Test

Privacy | About Us | Contact
Copyright © 2008 Home Automation - JAEC - All the rights reserved