KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.4.62
System : FreeBSD fbsdweb2.web.rcn.net 14.1-RELEASE FreeBSD 14.1-RELEASE releng/14.1-n267679-10e31f0946d8 GENERIC amd64
User : www ( 80)
PHP Version : 8.3.8
Disable Function : NONE
Directory :  /domains/ap.belleisle/INFOSEC/stds/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /domains/ap.belleisle/INFOSEC/stds/140test3.htm
<HTML>

<HEAD>

   <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">

   <META NAME="GENERATOR" CONTENT="Mozilla/4.02 [en] (Win95; U) [Netscape]">

   <TITLE>Derived Test Requirements for FIPS 140-1 (Part 3 of 3)</TITLE>

</HEAD>

<BODY BACKGROUND="../yellow_p.gif">

<!This file must be accompanied by "fi1401f3.gif">

<CENTER>

<H2>

National Institute of Standards and Technology</H2></CENTER>



<HR SIZE=4 WIDTH=75%>

<CENTER>

<H3>

Derived Test Requirements<BR>

for FIPS PUB 140-1,<BR>

<I>Security Requirements for Cryptographic Modules</I></H3></CENTER>



<HR SIZE=4 WIDTH=20%>



<H2><CENTER>PART 3<BR>

<EM>(Sections 8-11)</EM></CENTER></H2>



<CENTER><B>March 1995</B></CENTER>



<CENTER><B>Final</B></CENTER>



<H4>

<A HREF="140test1.htm">Part 1 (sections 1-4)</A></H4>



<H4>

<A HREF="140test2.htm">Part 2 (sections 5-7)</A></H4>



<H4>

<A HREF="140testA.htm">Appendix A</A></H4>



<HR SIZE=4 WIDTH=75%>





<H2>

<A NAME="sec8"></A>8. CRYPTOGRAPHIC KEY MANAGEMENT</H2>



<H4>

<U>General</U></H4>

<A NAME="as0801"></A><B>AS08.01: Documentation shall specify all aspects

of key management for the cryptographic module. (1, 2, 3, and 4)</B>



<P><B>&nbsp;</B>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve080101"></A><B>VE08.01.01</B>: The vendor documentation shall

describe key management for the module. At a minimum, the documentation

shall specify the following information:</LI>





<P>&nbsp;

<OL>

<LI>

Key material, such as:</LI>



<OL TYPE=a>

<LI>

List all types of keys used by the module, both internally and externally

generated</LI>



<LI>

Explain function of each key</LI>



<LI>

Specify format of all entered and output keys</LI>



<LI>

Discuss how all keys are protected</LI>

</OL>



<LI>

Key generation, such as:</LI>



<OL TYPE=a>

<LI>

Describe the key-generation process</LI>



<LI>

Specify whether the key generation algorithm is FIPS-approved</LI>



<LI>

Specify which types of keys are generated</LI>

</OL>



<LI>

Key distribution, such as:</LI>



<OL TYPE=a>

<LI>

Describe key distribution technique</LI>



<LI>

Indicate whether technique is FIPS-approved</LI>



<LI>

Indicate which types of keys must be distributed</LI>

</OL>



<LI>

Key entry and output, such as:</LI>



<OL TYPE=a>

<LI>

Describe key entry procedures</LI>



<LI>

Describe key output procedures</LI>



<LI>

Indicate whether manual or electronic key entry is used</LI>



<LI>

Indicate whether manual or electronic key output is used</LI>



<LI>

Indicate which types of keys are manually entered or output</LI>



<LI>

Indicate which types of keys are electronically entered or output</LI>



<LI>

Indicate form in which keys are entered or output (plaintext, encrypted

form, under split knowledge procedures)</LI>



<LI>

Indicate use of a manual key entry test for verification of entered keys</LI>

</OL>



<LI>

Key storage, such as:</LI>



<OL TYPE=a>

<LI>

Indicate which types of keys are stored</LI>



<LI>

Indicate where they are stored</LI>



<LI>

Indicate the form in which they are stored (plaintext, encrypted form,

under split knowledge procedures)</LI>

</OL>



<LI>

Key destruction, such as:</LI>



<OL TYPE=a>

<LI>

Describe key destruction technique and mechanisms</LI>



<LI>

Indicate any restrictions on when the module can be zeroized</LI>



<LI>

Indicate which types of keys are zeroized and why</LI>



<LI>

Indicate which security parameters are zeroized and why</LI>



<LI>

Indicate which types of keys and security parameters are not zeroized and

why</LI>

</OL>



<LI>

Key archiving, such as:</LI>



<OL TYPE=a>

<LI>

Whether key archiving is used</LI>



<LI>

Describe key archiving technique</LI>



<LI>

Indicate which types of keys can be archived</LI>



<LI>

Indicate whether keys are encrypted for archiving</LI>

</OL>

</OL>

</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te080101"></A><B>TE08.01.01</B>: The tester shall review the vendor

documentation to verify that, at a minimum, the information specified in

VE08.01.01 is included.</LI>





<P>&nbsp;

<LI>

<A NAME="te080102"></A><B>TE08.01.02</B>: The tester shall perform tests

in these categories as specified by AS08.04-AS08.20.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=15%>



<P><A NAME="as0802"></A><B>AS08.02: Secret keys and private keys shall

be protected from unauthorized disclosure, modification and substitution.

(1, 2, 3, and 4)</B>



<P><B>&nbsp;</B>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve080201"></A><B>VE08.02.01</B>: The vendor documentation shall

describe the protection of all secret and/or private keys internal to the

module as required by item 1 under VE08.01.01. Protection shall include

the implementation of mechanisms that protect against unauthorized disclosure,

unauthorized modification, and unauthorized substitution.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te080201"></A><B>TE08.02.01</B>: The tester shall check the vendor

documentation that describes the protection of secret and/or private keys.

The tester shall verify that the documentation describes how thesekeys

will be protected from unauthorized disclosure, unauthorized modification,

and unauthorized substitution. The tester shall verify that, for each threat,

the following topics are addressed:</LI>





<P>&nbsp;

<OL>

<LI>

Mechanisms used to protect against the threat</LI>



<LI>

Which keys are protected by the mechanisms</LI>

</OL>

The mechanisms used may include, but not be limited to, the following:



<P>&nbsp;

<OL TYPE=A>

<LI>

Entry or output of the keys in encrypted form or under split knowledge

procedures (unauthorized disclosure)</LI>



<LI>

Use of a cryptographic checksum or some other mechanism that can detect

modifications (unauthorized modification and substitution)</LI>



<LI>

Physical controls (unauthorized disclosure, modification, and substitution)</LI>



<LI>

Mechanisms that are part of the underlying operating system (unauthorized

disclosure, modification, and substitution)</LI>

</OL>



<LI>

<A NAME="te080202"></A><B>TE08.02.02</B>: The tester shall perform the

following tests:</LI>





<P>&nbsp;

<OL>

<LI>

Attempt to access (by circumventing the documented protection mechanisms)

secret and private keys for which the tester is not authorized to have

access. If the module denies access or allows access only to encrypted

or otherwise protected forms of the keys, the requirement is met.</LI>



<LI>

Modify all secret and private keys using any method not specified by the

vendor documentation and attempt to load them into the module. The module

should not allow any of the keys to be successfully loaded. The tester

should also attempt to perform cryptographic operations using these keys;

the module should not perform the operations, indicating that the keys

were not loaded.</LI>

</OL>

</UL>



<HR SIZE=4 WIDTH=15%>



<P><A NAME="as0803"></A><B>AS08.03: Public keys shall be protected against

unauthorized modification and substitution. (1, 2, 3, and 4)</B>



<P><B>&nbsp;</B>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve080301"></A><B>VE08.03.01</B>: If the module supports public

keys, the vendor documentation shall describe the protection of all public

keys as required by item 1 under VE08.01.01. Protection shall include the

implementation of mechanisms that protect against unauthorized modification

and substitution.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te080301"></A><B>TE08.03.01</B>: If the module supports public

keys, the tester shall verify that the vendor documentation describes how

these keys will be protected from unauthorized modification and unauthorized

substitution. The tester shall verify that, for each threat, the following

topics are addressed:</LI>





<P>&nbsp;

<OL>

<LI>

1. Mechanisms used to protect against the threat</LI>



<LI>

2. Which keys are protected by the mechanisms</LI>

</OL>

The mechanisms used may include, but not be limited to, the following:



<P>&nbsp;

<OL TYPE=A>

<LI>

Use of a cryptographic checksum or some other mechanism that can detect

modifications (unauthorized modification and substitution)</LI>



<LI>

Physical controls (unauthorized modification and substitution)</LI>



<LI>

Mechanisms that are part of the underlying operating system (unauthorized

modification and substitution)</LI>

</OL>



<LI>

<A NAME="te080302"></A><B>TE08.03.02</B>: The tester shall modify all public

keys using any method not specified by the vendor documentation and shall

attempt to load them into the module. The module should not allow any of

the keys to be successfully loaded. The tester should also attempt to perform

cryptographic operations using these keys; the module should not perform

the operations, indicating that the keys were not loaded.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=15%>

<H4>

<U>Key Generation</U></H4>

<A NAME="as0804"></A><B>AS08.04: A cryptographic module may optionally

implement an internal key generation function. The module shall implement

a FIPS-approved key generation algorithm. Documentation shall specify the

FIPS-approved key generation algorithm that is implemented by the module.

(1, 2, 3, and 4)</B><I></I>



<P><I>(Relevant Guidance:&nbsp; <A HREF="1401ig-4.htm#8fipskeymeth">8.1</A>

 )</I>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve080401"></A><B>VE08.04.01</B>: See items 2a and 2b under VE08.01.01

for vendor documentation requirements. They include a description of the

key generation process and the specification of the FIPS-approved key generation

algorithm. The vendor shall also provide proof that the key generation

algorithm is FIPS-approved. This proof shall consist of a validation certificate

from a NIST-accredited laboratory asserting that the algorithm implemented

in the module is a FIPS-approved algorithm. In the absence of a NIST-accredited

laboratory that can validate the algorithm, the vendor organization shall

provide a written affirmation asserting that the algorithm implemented

in the module is a FIPS-approved algorithm.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te080401"></A><B>TE08.04.01</B>: Verification of vendor documentation

was performed under TE08.01.01. If the vendor cannot prove that the key

generation algorithm is FIPS-approved or if the algorithm is not documented,

the assertion fails. In addition, the tester shall verify that the implemented

algorithm matches the specified FIPS-approved algorithm and that it is

implemented correctly.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=15%>



<P><A NAME="as0805"></A><B>AS08.05: When a random number generator is used

in the key generation process, all values shall be generated randomly or

pseudo-randomly such that all possible combinations of bits and all possible

values are equally likely to be generated. (1, 2, 3, and 4)</B>



<P><I>(Relevant Guidance:&nbsp; <A HREF="1401ig-4.htm#8ivreqs">8.5</A>

 )</I>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve080501"></A><B>VE08.05.01</B>: If the module uses a random number

generator, the vendor documentation of the key generation procedures specified

in item 2 under VE08.02.01 shall also describe how the random number generator

works.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te080501"></A><B>TE08.05.01</B>: If the module uses a random number

generator, the tester shall test the random or pseudo random number generator

using one or more of the statistical and continuous random number generator

tests specified in section 4.11 of FIPS PUB 140-1.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=15%>



<P><A NAME="as0806"></A><B>AS08.06: A seed key, if used, shall be entered

in the same manner as cryptographic keys. (1, 2, 3, and 4)</B>



<P><B>&nbsp;</B>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve080601"></A><B>VE08.06.01</B>: The key management documentation

shall specify whether a seed key is used for key generation. If so, the

key management documentation shall address entry of the seed key as well

as of other keys.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te080601"></A><B>TE08.06.01</B>: The tester shall review the vendor

documentation to determine whether a seed key is used for key generation.

If so, the tester shall also review the key management documentation and

verify that entry of the seed key is addressed and is identical to the

entry of a cryptographic key.</LI>





<P>&nbsp;

<LI>

<A NAME="te080602"></A>TE08.06.02: The tester shall enter a seed key and

shall verify that the method used to enter it is consistent with the documented

method.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=15%>



<P><A NAME="as0807"></A><B>AS08.07: Intermediate key generation states

and values shall not be accessible outside of the module in plaintext or

otherwise unprotected form. (1, 2, 3, and 4)</B>



<P><B>&nbsp;</B>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve080701"></A><B>VE08.07.01</B>: Key generation can be considered

as one of the user service states (see AS04.05). Intermediate key generation

states are those states through which the module passes between initiation

and completion of the key generation process. Intermediate key generation

values are interim results from mathematical calculations which eventually

result in a cryptographic key. The finite state machine model (see requirement

4, "Finite State Machine Model") should not include these states and should

not output any intermediate key states or values. The key generation procedures

should not allow any output during the key generation process unless those

values are encrypted.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te080701"></A><B>TE08.07.01</B>: The tester shall review the finite

state machine model and shall verify that no states are defined between

the initiation and the completion of the key generation process. The tester

shall verify that intermediate values are not associated with either the

initiation or completion states of the key generation process. The tester

shall also check the key generation procedures and verify that any specified

outputs are encrypted.</LI>





<P>&nbsp;

<LI>

<A NAME="te080702"></A><B>TE08.07.02</B>: The tester shall generate a key

and shall attempt to access cryptographic key values during the key generation

process. The module should not display any intermediate values unless they

are encrypted. The tester shall also observe the output interface of the

module and shall verify that any output matches the documented output and

therefore is not a plaintext intermediate value.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=15%>

<H4>

<U>Key Distribution</U></H4>

<A NAME="as0808"></A><B>AS08.08: Key distribution may be performed by manual

methods, automated methods, or a combination of automated and manual methods.

A cryptographic module shall implement FIPS-approved key distribution techniques

(e.g., FIPS 171--Key Management Using ANSI X9.17). Until such time as a

FIPS-approved public key-based key distribution technique is established,

commercially available public key methods may be used. Documentation shall

specify the key distribution techniques that are implemented by the module.

(1, 2, 3, and 4)</B>



<P><I>(Relevant Guidance:&nbsp; <A HREF="1401ig-4.htm#8fipskeymeth">8.1</A>

, <A HREF="1401ig-4.htm#8pubkeymeth">8.2</A> , <A HREF="1401ig-4.htm#8fips171">8.4</A>&nbsp;

)</I><B></B>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve080801"></A><B>VE08.08.01</B>: See items 3a and 3b under VE08.01.01

for vendor documentation requirements. These include a description of the

key distribution technique and an indication of whether the technique is

FIPS-approved. If the key distribution technique is FIPS-approved, the

vendor shall provide proof in the form of a validation certificate issued

by a NIST-accredited laboratory for the key distribution technique. In

the absence of the certificate, the vendor organization shall provide written

affirmation that the key distribution technique is FIPS-approved. If the

key distribution technique is not FIPS-approved, the vendor documentation

shall explicitly state this.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te080801"></A><B>TE08.08.01</B>: Verification of vendor documentation

was performed under TE08.01.01. The tester shall determine whether the

key distribution techniques are FIPS-approved; if not, the tester shall

verify from the vendor documentation that a commercial public key-based

key distribution technique is used. In addition, the tester shall verify

that the implemented techniques match the specified FIPS-approved techniques,

and that they are implemented correctly.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=15%>

<H4>

<U>Key Entry and Output</U></H4>

<A NAME="as0809"></A><B>AS08.09: Manually distributed cryptographic keys

may be entered into or output from a cryptographic module either by purely

manual methods or by electronic methods. (1, 2, 3, and 4)</B>



<P><B>&nbsp;</B>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve080901"></A><B>VE08.09.01</B>: See items 4a through 4f under

VE08.01.01 for vendor documentation requirements.</LI>





<P>&nbsp;

<LI>

<A NAME="ve080902"></A><B>VE08.09.02</B>: In implementing key entry and

output procedures and mechanisms, the vendor shall follow the following

guidelines:</LI>





<P>&nbsp;

<OL>

<LI>

If purely manual methods are used for key entry or key output, they may

be one or more of, but not limited to, the following:</LI>





<P>&nbsp;

<UL TYPE=SQUARE>

<LI>

Keyboard</LI>



<LI>

Rotary switches</LI>



<LI>

Thumbwheels</LI>



<LI>

LCD displays</LI>

</UL>



<LI>

If electronic means are used for key entry or key output, they may be one

or more of, but not limited to, the following:</LI>





<P>&nbsp;

<UL TYPE=SQUARE>

<LI>

Memory card/token (e.g., magnetic-striped cards, IC chip devices)</LI>



<LI>

Smart card/token</LI>



<LI>

Electronic key loader</LI>

</UL>

</OL>

</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te080901"></A><B>TE08.09.01</B>: Verification of vendor documentation

was performed under TE08.01.01. The vendor documentation should provide

the required information on key entry and output procedures and the keys

that are entered into and output by the module; if not, the assertion fails.</LI>





<P>&nbsp;

<LI>

<A NAME="te080902"></A><B>TE08.09.02</B>: The tester shall enter and output

each of the manually distributed keys and shall verify that they are entered

and/or outputted according to the documentation.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=15%>



<P><A NAME="as0810"></A><B>AS08.10: Electronically distributed secret and

private keys shall be entered and output in encrypted form. (1, 2, 3, and

4)</B>



<P><B>&nbsp;</B>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve081001"></A><B>VE08.10.01</B>: The vendor documentation shall

specify which types of keys are electronically distributed and the form

in which electronically distributed keys are entered into and output from

the module.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te081001"></A><B>TE08.10.01</B>: If the module supports electronically

distributed keys, the tester shall determine from the vendor documentation

whether secret and private keys are electronically distributed. If so,

the tester shall verify that the vendor documentation specifies that secret

and private keys are entered and output only in encrypted form. If the

documentation specifies that the keys are in any other form, the assertion

fails.</LI>





<P>&nbsp;

<LI>

<A NAME="te081002"></A><B>TE08.10.02</B>: The tester shall enter every

electronically distributed secret and private key type and shall verify

that the procedure used to enter each key is in accordance with the documented

procedure, including the form that the keys are in when they are entered.</LI>





<P>&nbsp;

<LI>

<A NAME="te081003"></A><B>TE08.10.03</B>: The tester shall output every

electronically distributed secret and private key type and shall verify

that the procedure used to output each key is in accordance with the documented

procedure, including the form that the keys are in when they are output.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=15%>



<P><A NAME="as0811"></A><B>AS08.11: Manually entered cryptographic keys

shall be verified during entry into a cryptographic module for accuracy

using the manual key entry test specified in section 4.11.2. (1, 2, 3,

and 4)</B>



<P><B>&nbsp;</B>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve081101"></A><B>VE08.11.01</B>: See item 4h under VE08.01.01.01

for vendor documentation requirements.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te081101"></A><B>TE08.11.01</B>: Verification of vendor documentation

was performed under TE08.01.01. The results of the verification should

indicate that the vendor documentation specifies that a manual key entry

test is used to verify all manually entered keys; if not, the assertion

fails.</LI>





<P>&nbsp;

<LI>

<A NAME="te081102"></A><B>TE08.11.02</B>: The tester shall test the manual

key entry test as documented in AS11.21. If the manual key entry test does

not match the one specified in AS11.21 and if the validation of AS11.21

fails, this assertion fails.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=15%>



<P><A NAME="as0812"></A><B>AS08.12: During key entry, keys and key components

may be temporarily displayed to allow visual verification and to improve

accuracy. When encrypted keys or key components are entered, the resulting

plaintext secret or private keys shall not be displayed. (1, 2, 3, and

4)</B>



<P><B>&nbsp;</B>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve081201"></A><B>VE08.12.01</B>: The documented key entry procedures

shall allow, if necessary, the display of encrypted keys or key components

during the key entry process, but shall preclude the display of plaintext

secret or private keys that result from the entry of encrypted keys or

key components.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te081201"></A><B>TE08.12.01</B>: The tester shall review the documented

key entry procedures and shall determine whether encrypted keys or key

components can be displayed during the key entry process. If so, the tester

shall verify that the display of plaintext secret or private keys resulting

from the entry of encrypted keys or key components is not allowed during

the key entry process.</LI>





<P>&nbsp;

<LI>

<A NAME="te081202"></A><B>TE08.12.02</B>: The tester shall enter every

cryptographic key and shall verify that the keys can be temporarily displayed.

When entering encrypted keys or key components, the tester shall also monitor

the output interface of the module to verify that any resulting key material

which is displayed is encrypted.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=15%>



<P><A NAME="as0813"></A><B>AS08.13: A means shall be provided to ensure

that a key entered into or output from a module is associated with the

correct entities (i.e., person, group, or process) to which the key is

assigned. (1, 2, 3, and 4)</B>



<P><B>&nbsp;</B>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve081301"></A><B>VE08.13.01</B>: The documented key entry/output

procedures shall describe the mechanisms or procedures used to ensure that

each key will be associated with the correct entity.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te081301"></A><B>TE08.13.01</B>: The tester shall review the documented

key entry/output procedures and shall verify that the procedures address

how an entered or output key will be associated with the correct entity.

This association can consist of two components; one resides with the key

and the other resides with the entity. These components are pairwise unique

in that only the combination of a particular entity component with the

correct key component will result in the correct association. These components

can include, but not be limited to:</LI>





<P>&nbsp;

<OL>

<LI>

Key component, such as:</LI>





<P>&nbsp;

<UL TYPE=SQUARE>

<LI>

Keytag</LI>



<LI>

Certificate</LI>



<LI>

Key encrypted under a hash of the entity component</LI>

</UL>



<LI>

Entity component, such as:</LI>





<P>&nbsp;

<UL TYPE=SQUARE>

<LI>

Password</LI>



<LI>

Personal Identification Number (PIN)</LI>



<LI>

Possession of a physical key, token, or equivalent</LI>



<LI>

Biometrics (e.g., fingerprint, retina scan, keystroke dynamics)</LI>

</UL>

</OL>



<LI>

<A NAME="te081302"></A><B>TE08.13.02</B>: For each key that can be entered

or output, the tester shall first output the key while assuming a particular

entity. The tester shall then verify the association between key and entity

by performing one or more of the following tests:</LI>





<P>&nbsp;

<OL>

<LI>

The tester shall assume a different entity from the one under which the

key was output. The tester shall then attempt to enter the key and shall

verify that key entry fails.</LI>



<LI>

The tester shall, if possible, alter the key component such that the key

is associated with a different entity. The tester shall then assume the

entity under which the key was output, attempt to enter the key, and shall

verify that key entry fails.</LI>

</OL>

</UL>



<HR SIZE=4 WIDTH=15%>



<P><A NAME="as0814"></A><B>AS08.14: For security levels 1 and 2, when manually

distributed secret keys or private keys are entered into or output from

a cryptographic module, they may be entered or output as plaintext keys.

Optionally, the keys may be entered or output either as follows: (1 and

2)</B>



<P><B>&nbsp;</B>

<OL>

<LI>

<B>In encrypted form</B></LI>



<LI>

<B>Under split knowledge procedures</B></LI>

</OL>



<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve081401"></A><B>VE08.14.01</B>: See item 4g under VE08.01 for

vendor documentation requirement.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te081401"></A><B>TE08.14.01</B>: Verification of the vendor documentation

was performed under TE08.01.01. The results of the verification should

indicate that the vendor documentation specifies the form in which all

types of keys are entered and output.</LI>





<P>&nbsp;

<LI>

<A NAME="te081402"></A><B>TE08.14.02</B>: The tester shall enter every

manually distributed secret and private key and shall verify that the procedure

used to enter each key is in accordance with the documented procedure,

including the form that the keys are in when they are entered.</LI>





<P>&nbsp;

<LI>

<A NAME="te081403"></A><B>TE08.14.03</B>: The tester shall output every

manually distributed secret and private key and shall verify that the procedure

used to output each key is in accordance with the documented procedure,

including the form that the keys are in when they are output.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=15%>



<P><A NAME="as0815"></A><B>AS08.15: For Security Levels 3 and 4, manually

distributed secret keys or private keys shall not be entered into or output

from a cryptographic module in plaintext form. When manually distributed,

secret keys or private keys are entered into or output from a cryptographic

module, they shall be output or entered in either of the following ways:

(3 and 4)</B>



<P><B>&nbsp;</B>

<OL>

<LI>

<B>In encrypted form</B></LI>



<LI>

<B>Using split knowledge procedures (i.e., as two or more plaintext key

components)</B></LI>

</OL>

<I>(Relevant Guidance:&nbsp; <A HREF="1401ig-4.htm#8keyload">8.3</A> ,

)</I>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve081501"></A><B>VE08.15.01</B>: See item 4g under VE08.01.01

for vendor documentation requirement.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te081501"></A><B>TE08.15.01</B>: Verification of the vendor documentation

was performed under TE08.01.01. The results of the verification should

indicate that the vendor documentation specifies the form in which all

types of keys are entered or output (e.g., encrypted, plaintext, under

split knowledge procedures). The tester shall also check the vendor documentation

to verify that entry or output in plaintext form is not specified for a

secret or private key.</LI>





<P>&nbsp;

<LI>

<A NAME="te081502"></A><B>TE08.15.02</B>: The tester shall enter every

manually distributed secret and private key and shall verify that the procedure

used to enter each key is in accordance with the documented procedure,

including the form that the keys are in when they are entered.</LI>





<P>&nbsp;

<LI>

<A NAME="te081503"></A><B>TE08.15.03</B>: The tester shall output every

manually distributed secret and private key and shall verify that the procedure

used to output each key is in accordance with the documented procedure,

including the form that the keys are in when they are output.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=15%>



<P><A NAME="as0816"></A><B>AS08.16: When a manually distributed secret

key or private key is entered or output under split knowledge procedures,

the module shall provide the capability to separately authenticate the

operator for each key component. Furthermore, the key components shall

be entered directly into the cryptographic module or output directly from

the cryptographic module (e.g., via a trusted path or directly attached

cable) without traveling through any enclosing or intervening systems where

the components could be stored, combined, or otherwise processed. (3 and

4) A related assertion is AS02.14.</B>



<P><I>(Relevant Guidance:&nbsp; <A HREF="1401ig-4.htm#8keyload">8.3</A>

, )</I><B></B>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve081601"></A><B>VE08.16.01</B>: If manually distributed secret

or private keys are entered or output under split knowledge procedures,

the vendor documentation shall specify, in the description of the key entry

procedure, that the operator is separately authenticated for each key component.</LI>





<P>&nbsp;

<LI>

<A NAME="ve081602"></A><B>VE08.16.02</B>: The vendor requirement for the

direct entry of the key components is covered under VE02.14.01.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te081601"></A><B>TE08.16.01</B>: If manually distributed, secret

or private keys are entered or output under split knowledge procedures,

the tester shall check the vendor documentation to verify that operator

authentication is specified for each key component.</LI>





<P>&nbsp;

<LI>

<A NAME="te081602"></A><B>TE08.16.02</B>: In addition to performing the

validation specified by TE08.14.02-03, the tester shall check that authentication

is performed for each key component and that the authentication is in accordance

with the documented key entry and output procedures.</LI>





<P>&nbsp;

<LI>

<A NAME="te081603"></A><B>TE08.16.03</B>: Validation of the direct entry

of the split knowledge key components was performed under TE02.14.01. If

the tester finds that split key components are not directly entered into

the module, the assertion fails.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=15%>

<H4>

<U>Key Storage</U></H4>

<A NAME="as0817"></A><B>AS08.17: When contained within a cryptographic

module, secret and private keys may be stored in plaintext form. These

plaintext keys shall not be accessible from outside the module. This assertion

is related to assertion AS08.02. (1, 2, 3, and 4)</B>



<P><B>&nbsp;</B>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve081701"></A><B>VE08.17.01</B>: See items 5a and 5c under VE08.01.01

for vendor documentation requirements.</LI>





<P>&nbsp;

<LI>

<A NAME="ve081702"></A><B>VE08.17.02</B>: The vendor documentation shall

describe the protection of all secret and private keys internal to the

module as specified in VE08.02.01. Protection shall include the implementation

of mechanisms that protect against unauthorized disclosure, modification,

and substitution.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te081701"></A><B>TE08.17.01</B>: Verification of the vendor documentation

specified in VE08.17.01 was performed under TE08.01.01. The results of

the verification should indicate that the vendor documentation specifies

which types of keys are stored and the form in which they are stored (plaintext,

encrypted form, or under split knowledge procedures). Specifically, the

vendor documentation shall indicate whether plaintext secret and private

keys are stored in plaintext form.</LI>





<P>&nbsp;

<LI>

<A NAME="te081702"></A><B>TE08.17.02</B>: As specified in TE08.02.01 and

TE08.02.02, the tester shall check the vendor documentation to verify that

it includes the specification of protection mechanisms for all secret and

private keys and descriptions of how the mechanisms will protect against

unauthorized disclosure, modification and substitution.</LI>





<P>&nbsp;

<LI>

<A NAME="te081703"></A><B>TE08.17.03</B>: By using unauthorized means,

the tester shall perform the tests specified in TE08.02.03 that attempt

to access plaintext secret and/or private keys which the documentation

designates as being stored in plaintext form. Note that, at Levels 1 and

2, manually distributed secret and private keys can be output from the

module in plaintext form (see AS08.14). If any of the tests fail, this

assertion fails.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=15%>



<P><A NAME="as0818"></A><B>AS08.18: A means shall be provided to ensure

that all keys are associated with the correct entities (i.e., person, group,

or process) to which the keys are assigned. (1, 2, 3, and 4)</B>



<P><B>&nbsp;</B>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve081801"></A><B>VE08.18.01</B>: Vendor documentation on key storage

shall describe the mechanisms or procedures used to ensure that each key

will be associated with the correct entity.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te081801"></A><B>TE08.18.01</B>: The tester shall review the documentation

on key storage and shall verify that the procedures address how a stored

key will be associated with the correct entity. This association can consist

of two components; one resides with the key and the other resides with

the entity. These components are pairwise unique in that only the combination

of a particular entity component with the correct key component will result

in the correct association. These components can include, but not be limited

to:</LI>





<P>&nbsp;

<OL>

<LI>

Key component, such as:</LI>





<P>&nbsp;

<UL TYPE=SQUARE>

<LI>

Keytag</LI>



<LI>

Certificate</LI>



<LI>

Key encrypted under a hash of the entity component</LI>

</UL>



<LI>

Entity component, such as:</LI>





<P>&nbsp;

<UL TYPE=SQUARE>

<LI>

Password</LI>



<LI>

Personal Identification Number (PIN)</LI>



<LI>

Possession of a physical key, token, or equivalent</LI>



<LI>

Biometrics (e.g., fingerprint, retina scan, keystroke dynamics)</LI>

</UL>

</OL>



<LI>

<A NAME="te081802"></A><B>TE08.18.02</B>: The tester shall alter the association

of key and entity (e.g., swap keys that belong to two different entities).

The tester shall then attempt to perform cryptographic functions as one

of the entities and shall verify that these functions fail.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=15%>

<H4>

<U>Key Destruction</U></H4>

<A NAME="as0819"></A><B>AS08.19: A cryptographic module shall provide the

capability to zeroize all plaintext cryptographic keys and other unprotected

critical security parameters within the module. Zeroization of cryptographic

keys and other critical security parameters is not required if the keys

and parameters are either encrypted or otherwise physically or logically

protected (e.g., contained within an additional embedded FIPS PUB 140-1

cryptographic module. (1, 2, 3, and 4)</B>



<P><B>&nbsp;</B>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve081901"></A><B>VE08.19.01</B>: See items 6 under VE08.01.01

for vendor documentation requirements.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te081901"></A><B>TE08.19.01</B>: Verification of the vendor documentation

was performed under TE08.01.01. The results of the verification should

indicate that the vendor documentation describes the key destruction mechanism

and specifies any restrictions on when the module can be zeroized, which

keys and security parameters are zeroized, and which keys and security

parameters are not zeroized. In addition, the tester shall verify that

all other keys and parameters that are not zeroized by the zeroize command

are encrypted or are physically or logically protected.</LI>





<P>&nbsp;

<LI>

<A NAME="te081902"></A><B>TE08.19.02</B>: The tester shall note which keys

are present in the module and initiate the zeroize command. Following the

completion of the zeroize command, the tester shall attempt to perform

cryptographic operations using each of the keys that were stored in the

module and that he or she can access. The tester shall verify that each

key that could be accessed and used had been protected within the module

and that every key that could not be accessed was stored in the module

in plaintext form and was therefore zeroized.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=15%>

<H4>

<U>Key Archiving</U></H4>

<A NAME="as0820"></A><B>AS08.20: A cryptographic module optionally may

output keys for archiving purposes. Key outputs for archiving shall be

encrypted. (1, 2, 3, and 4)</B>



<P><B>&nbsp;</B>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve082001"></A><B>VE08.20.01</B>: If the module supports key archiving,

see items 7a through 7d under VE08.01.01 for vendor documentation requirements.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te082001"></A><B>TE08.20.01</B>: Verification of the vendor documentation

was performed under TE08.01.01. The results of the verification should

indicate that the vendor documentation specifies whether key archiving

is used, describes the key archiving technique, and specifies which types

of keys can be archived and whether archived keys are encrypted.</LI>





<P>&nbsp;

<LI>

<A NAME="te082002"></A><B>TE08.20.02</B>: The tester shall enter each key

that can be archived and shall archive them. The tester shall compare the

archived keys with the plaintext keys and shall verify that the archived

keys are encrypted versions of the plaintext keys.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=75%>

<H2>

<A NAME="sec9"></A>9. CRYPTOGRAPHIC ALGORITHMS</H2>

<A NAME="as0901"></A><B>AS09.01: Cryptographic modules shall employ FIPS-approved

cryptographic algorithms. (1, 2, 3, and 4)</B>



<P><I>(Relevant Guidance:&nbsp; <A HREF="1401ig-4.htm#8ivreqs">8.5</A>, <A HREF="1401ig-4.htm#9fipsalgs">9.1</A>

, <A HREF="1401ig-4.htm#9noalgs">9.2</A> , <A HREF="1401ig-4.htm#9shagran">9.3</A>, <A HREF="1401ig-4.htm#9tripleDES">9.4</A>

)</I>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve090101"></A><B>VE09.01.01</B>: The vendor shall provide a NIST

certificate that certifies that the cryptographic module uses FIPS-approved

cryptographic algorithms, and that the implementation of these FIPS-approved

cryptographic algorithms has been tested and passed NIST-approved procedures

and tests at a NIST-accredited facility.</LI>





<P>&nbsp;<B>Note</B>: The vendor may also incorporate other (i.e., nonFIPS-approved)

cryptographic algorithms in the cryptographic module.



<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te090101"></A><B>TE09.01.01</B>: The tester shall check to make

sure that the vendor has provided a NIST certificate as described above.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=75%>

<H2>

<A NAME="sec10"></A>10. ELECTROMAGNETIC INTERFERENCE/ELECTROMAGNETIC COMPATIBILITY

(EMI/EMC)</H2>

<A NAME="as1001"></A><B>AS10.01: Radios shall meet all applicable FCC requirements.

(1, 2, 3, and 4)</B>



<P><I>(Relevant Guidance:&nbsp; <A HREF="1401ig-4.htm#10fccreqs">10.1</A>&nbsp;

)</I>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve100101"></A><B>VE10.01.01</B>: The vendor shall provide an FCC

certificate certifying that the cryptographic module radio meets all applicable

FCC requirements.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te100101"></A><B>TE10.01.01</B>: The tester shall check that the

vendor has supplied the FCC certificate required under VE10.01.01.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=15%>



<P><A NAME="as1002"></A><B>AS10.02: A cryptographic module shall conform

to the EMI/EMC requirements specified in FCC Part 15, Subpart J, Class

A (i.e., for business use). (1 and 2)</B>



<P><I>(Relevant Guidance:&nbsp; <A HREF="1401ig-4.htm#10fccreqs">10.1</A>&nbsp;

)</I>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve100201"></A><B>VE10.02.01</B>: The vendor shall provide an FCC

certificate certifying that the cryptographic module conforms to the EMI/EMC

requirements specified in FCC Part 15, Subpart J, Class A.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te100201"></A><B>TE10.02.01</B>: The tester shall check that the

vendor has supplied the FCC certificate required under VE10.02.01.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=15%>



<P><A NAME="as1003"></A><B>AS10.03: A cryptographic module shall conform

to the EMI/EMC requirements specified in FCC Part 15, Subpart J, Class

B (i.e., for home use). (3 and 4)</B>



<P><I>(Relevant Guidance:&nbsp; <A HREF="1401ig-4.htm#10fccreqs">10.1</A>&nbsp;

)</I>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve100301"></A><B>VE10.03.01</B>: The vendor shall provide an FCC

certificate certifying that the cryptographic module conforms to the EMI/EMC

requirements specified in FCC Part 15, Subpart J, Class B.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te100301"></A><B>TE10.03.01</B>: The tester shall check that the

vendor has supplied the FCC certificate required under VE10.03.01.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=75%>

<H2>

<A NAME="sec11"></A>11. SELF-TESTS</H2>



<H4>

<A NAME="sec11.1"></A>11.1 General</H4>

<A NAME="as1101"></A><B>AS11.01: A cryptographic module shall be able to

perform self-tests in order to ensure that the module is functioning properly.

Certain self-tests shall be performed when the module is powered up (i.e.,

Power-Up Tests) and other self-tests shall be performed under various conditions,

typically when a particular function or operation is performed (i.e., Conditional

Tests). A module may optionally perform other self-tests in addition to

the tests specified in this standard. (1, 2, 3, and 4)</B>



<P><I>(Relevant Guidance:&nbsp;&nbsp; <A HREF="1401ig-2.htm#3maint">3.1</A>

,&nbsp; )</I>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve110101"></A><B>VE11.01.01</B>: The vendor shall provide a list

of all self-tests, both mandatory and optional, that the module can perform.

This list shall include both power-up tests and conditional tests.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te110101"></A><B>TE11.01.01</B>: The tester shall inspect the

list of self-tests to verify that it includes the following:</LI>





<P>&nbsp;

<OL>

<LI>

Power-up tests</LI>





<P>&nbsp;

<UL TYPE=SQUARE>

<LI>

Cryptographic algorithm test</LI>



<LI>

Software/firmware test</LI>



<LI>

Critical functions test</LI>



<LI>

Statistical random number generator tests (required at Levels 3 and 4)</LI>



<LI>

Other self-tests which are performed at power-up and on demand</LI>

</UL>



<LI>

Conditional tests</LI>





<P>&nbsp;

<UL TYPE=SQUARE>

<LI>

Pairwise consistency test (if the module generates public and private keys)</LI>



<LI>

Software/firmware load test</LI>



<LI>

Manual key entry test</LI>



<LI>

Statistical random number generator test</LI>



<LI>

Other conditional tests</LI>

</UL>

</OL>

All of the power-up and conditional self-tests are defined in section 4.11

of the FIPS and will be explicitly defined later in the appropriate assertions.



<P>&nbsp;

<LI>

<A NAME="te110102"></A><B>TE11.01.02</B>: Specific validation requirements

for these self-tests are specified under AS11.05 through AS11.22. Note

that, in general, power-up self-tests cannot be verified by actual testing

because they involve internals of the module to which the tester would

not have access, such as the cryptographic algorithm. Causing the module

to fail a particular self-test in order to verify that the correct failure

indicator is output, for example, would be an appropriate test, but the

module generally would not have a mechanism that would allow the tester

to force it to fail. Therefore, the tester may have to resort to code and/or

design review.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=15%>



<P><A NAME="as1102"></A><B>AS11.02: Whenever a cryptographic module fails

a self-test, the module shall enter an error state and output an error

indicator via the status interface. (1, 2, 3, and 4)</B>



<P><B>&nbsp;</B>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve110201"></A><B>VE11.02.01</B>: The vendor shall document all

error states associated with each self-test and shall indicate for each

error state the expected error indicator.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te110201"></A><B>TE11.02.01</B>: The tester shall inspect the

vendor documentation, check that it lists every error state that the module

enters upon failure of a self-test, and indicates the error indicator associated

with each error state. The tester shall compare the list of error states

to those defined in the finite state machine model (see AS04.01) to verify

that they agree.</LI>





<P>&nbsp;

<LI>

<A NAME="te110202"></A><B>TE11.02.02</B>: By inspecting the code and/or

design documentation that specifies how each self-test handles errors,

the tester shall verify that:</LI>





<P>&nbsp;

<OL>

<LI>

The module enters an error state upon failing a self-test.</LI>



<LI>

The error state is consistent with the documentation and the finite state

machine model.</LI>



<LI>

The module outputs an error indicator.</LI>



<LI>

The error indicator is consistent with the documented error indicator.</LI>

</OL>



<LI>

<A NAME="te110203"></A><B>TE11.02.03</B>: If the module design and operating

procedures allow it, the tester shall run self-tests and cause the module

to enter every error state. The tester shall compare the observed error

indicator with the indicator specified in the vendor documentation. If

they are not the same, the assertion is failed.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=15%>



<P><A NAME="as1103"></A><B>AS11.03: The module shall not perform any cryptographic

functions while in the error state and no data shall be output via the

data output interface while the error condition exists. Related assertions

are AS02.04 and AS04.07. (1, 2, 3, and 4)</B>



<P><B>&nbsp;</B>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve110301"></A><B>VE11.03.01</B>: See VE02.04.01 for the vendor

design requirement. Also, the vendor design shall ensure that cryptographic

operations cannot be performed while the module is in the error state.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te110301"></A><B>TE11.03.01</B>: Tester verification of the inhibition

of output was performed under TE02.04.01, TE02.04.02, and TE04.07.01. The

results of the verification should indicate that:</LI>





<P>&nbsp;

<OL>

<LI>

The vendor documentation shows that all data output via the data output

interface is inhibited whenever the module is in an error state.</LI>



<LI>

If testable, the module inhibits all data output when the module is in

an error state.</LI>

</OL>



<LI>

<A NAME="te110302"></A><B>TE11.03.02</B>: The tester shall check that vendor

documentation indicates cryptographic functions are inhibited while the

module is in an error state. Cryptographic functions include the following:</LI>





<P>&nbsp;

<OL>

<LI>

Encryption</LI>



<LI>

Decryption</LI>



<LI>

Secure message hashing</LI>



<LI>

Digital signature creation and verification</LI>



<LI>

Other operations that require the use of cryptography</LI>

</OL>



<LI>

<A NAME="te110303"></A><B>TE11.03.03</B>: If the module design and operating

procedures allow it, the tester shall put the module in an error state

and verify that any cryptographic operations that the tester attempts to

initiate are prevented.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=15%>



<P><A NAME="as1104"></A><B>AS11.04: Each possible error condition shall

be documented along with the actions necessary to clear the error and resume

normal operation (possibly including maintenance, servicing or repair of

the module). (1, 2, 3, and 4)</B>



<P><B>&nbsp;</B>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve110401"></A><B>VE11.04.01</B>: The vendor documentation shall

provide for each error condition, its name, the events that can produce

it, and the actions necessary to clear it and resume normal operation.

Note that necessary action may include sending the module to the manufacturer

for repair.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te110401"></A><B>TE11.04.01</B>: The tester shall check that the

information provided above is specified for each error condition.</LI>





<P>&nbsp;

<LI>

<A NAME="te110402"></A><B>TE11.04.02</B>: If the module design and operating

procedures allow it, the tester shall cause each error condition to occur

and shall attempt to clear the error condition. The tester shall verify

that actions necessary to clear the error condition are consistent with

the vendor documentation. If the tester cannot cause each error condition

to occur, the tester shall review the code listing and or design documentation

to determine whether the actions necessary to clear each error condition

are consistent with the descriptions in the vendor documentation.</LI>

</UL>



<HR SIZE=4 WIDTH=15%>

<H4>

<A NAME="sec11.2"></A>11.2. Power-Up Tests</H4>



<H4>

<U>General</U></H4>

<A NAME="as1105"></A><B>AS11.05: After a cryptographic module is powered

up, the module shall enter the self-test state and perform at least the

following tests: cryptographic algorithm test, software/firmware test,

critical functions test and statistical random number generator tests.

The module may optionally perform additional tests. (1, 2, 3, and 4)</B>



<P><B>&nbsp;</B>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve110501"></A><B>VE11.05.01</B>: See VE11.01.01 for the vendor

requirement. Note that the running of statistical random number generator

tests at power up is required for Level 4 and optional for the other levels.

Also, the vendor shall document any optional power-up self-tests.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te110501"></A><B>TE11.05.01</B>: Verification of the documented

list of power-up self-tests was performed under TE11.01. Verification that

the module performs the self-tests as documented is done under validation

requirements for AS11.10-AS11.18.</LI>





<P>&nbsp;

<LI>

<A NAME="te110502"></A><B>TE11.05.02</B>: If the module design and operating

procedures allow it, the tester shall perform all optional power-up self-tests

and shall verify that they perform as documented. If the tester cannot

perform tests on the self-tests to validate them, the tester shall review

the code listing and/or design documentation to determine whether the optional

self-tests have been implemented as documented. If the module has the capability

of displaying which self-tests are running, the tester shall run the optional

self-tests to verify that the module performs them.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=15%>



<P><A NAME="as1106"></A><B>AS11.06: The power-up tests shall not require

operator intervention in order to run. (1, 2, 3, and 4)</B>



<P><B>&nbsp;</B>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve110601"></A><B>VE11.06.01</B>: The vendor documentation shall

require that the running of power-up self-tests not involve any inputs

from or actions by the operator.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te110601"></A><B>TE11.06.01</B>: To test that, upon power-up,

the module performs the power-up self-tests without requiring any operator

intervention, the tester shall power-up the module. If the tester must

enter any inputs or perform any actions while the self-tests are running,

the assertion fails.</LI>





<P>&nbsp;

<LI>

<A NAME="te110602"></A><B>TE11.06.02</B>: To test that, upon command from

an operator, the module performs the power-up self-tests without requiring

any operator intervention, the tester shall command the module to perform

the self-tests. If the tester must enter any inputs or perform any actions

while the self-tests are running, the assertion fails.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=15%>



<P><A NAME="as1107"></A><B>AS11.07: If all of the power-up tests are passed

successfully, such an indication shall be output via the "status output"

interface. (1, 2, 3, and 4)</B>



<P><B>&nbsp;</B>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve110701"></A><B>VE11.07.01</B>: The vendor shall document the

indicator that the module outputs upon successful completion of all of

the power-up self-tests.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te110701"></A><B>TE11.07.01</B>: The tester shall check the vendor

documentation and shall verify that it specifies an indicator that is output

from the status output interface upon successful completion of all of the

power-up self-tests.</LI>





<P>&nbsp;

<LI>

<A NAME="te110702"></A><B>TE11.07.02</B>: To test the assertion, the tester

shall power-up the module and shall monitor the status output interface.

The expected indicator from the status output interface should be consistent

with the documented indicator.</LI>





<P>&nbsp;

<LI>

<A NAME="te110703"></A><B>TE11.07.03</B>: To test the assertion, the tester

shall command the module to perform the self-tests and shall monitor the

status output interface. The expected indicator from the status output

interface should be consistent with the documented indicator.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=15%>



<P><A NAME="as1108"></A><B>AS11.08: All data output shall be inhibited

when these tests are performed. A related assertion is AS02.04. (1, 2,

3, and 4)</B>



<P><B>&nbsp;</B>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve110801"></A><B>VE11.08.01</B>: See VE02.04.02 for the vendor

documentation requirement.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te110801"></A><B>TE11.08.01</B>: Tester verification of the inhibition

of output during self-tests was performed under TE02.04.03 and TE02.04.04.

The results of the verification should indicate that:</LI>





<P>&nbsp;

<OL>

<LI>

The vendor documentation shows that all data output is inhibited when the

module is in a self-test condition.</LI>



<LI>

If testable, the module inhibits all data output when running a self-test.</LI>

</OL>

</UL>



<HR SIZE=4 WIDTH=15%>



<P><A NAME="as1109"></A><B>AS11.09: The module shall provide a means to

initiate the tests on demand for periodic testing of the module. (1, 2,

3, and 4)</B>



<P><I>(Relevant Guidance:&nbsp; <A HREF="1401ig-4.htm#11perfst">11.1</A>&nbsp;

)</I>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve110901"></A><B>VE11.09.01</B>: The vendor shall describe the

procedure by which an operator can initiate the power-up self-tests on

demand. All of the power-up self-tests must be included. Note that operator

initiation of the statistical random number generator tests are optional

for Levels 1 and 2.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te110901"></A><B>TE11.09.01</B>: The tester shall inspect the

vendor documentation to verify that initiation of self-tests on demand

is specified for all of the power-up self-tests. Note that, for Levels

1 and 2, operator initiation of statistical random number generator tests

is optional. The documentation shall also include what steps an operator

must take in order to initiate the self-tests.</LI>





<P>&nbsp;

<LI>

<A NAME="te110902"></A><B>TE11.09.02</B>: To test that the necessary steps

to initiate the self-tests (e.g., the actual command that the operator

must send to the module) are consistent with that specified in the vendor

documentation, the tester shall command the module to perform the power-up

self-tests. If the steps that the tester performs are not consistent with

those in the documentation, the assertion is failed.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=15%>

<H4>

<U>Cryptographic algorithm test</U></H4>

<A NAME="as1110"></A><B>AS11.10: The cryptographic algorithms shall be

tested by operating the algorithm on data for which the correct output

is already known (i.e., a "known answer" test). The test is passed if the

calculated output equals the previously generated output. (1, 2, 3, and

4)</B>



<P><I>(Relevant Guidance:&nbsp; <A HREF="1401ig-4.htm#11dsakat">11.2</A>&nbsp;

)</I>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve111001"></A><B>VE11.10.01</B>: The vendor shall document the

known answer test that should be performed for the cryptographic algorithm

test.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te111001"></A><B>TE11.10.01</B>: The tester shall inspect the

vendor documentation to determine whether it includes the following steps

for the cryptographic algorithm test:</LI>





<P>&nbsp;

<OL>

<LI>

Use of a known answer</LI>



<LI>

Calculations that should equal the known answer</LI>



<LI>

Comparison of the calculated answer against the known answer</LI>



<LI>

Successful indication if calculated equals known, otherwise failure</LI>

</OL>



<LI>

<A NAME="te111002"></A><B>TE11.10.02</B>: By reviewing the code listing

and/or design documentation and comparing it with the vendor documentation,

the tester shall verify that the implementation of the known answer test

is consistent with the vendor documentation.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=15%>



<P><A NAME="as1111"></A><B>AS11.11: A known answer test shall be run for

each cryptographic function (e.g., encryption, decryption, authentication)

that is implemented. (1, 2, 3, and 4)</B>



<P><I>(Relevant Guidance:&nbsp; <A HREF="1401ig-4.htm#11dsakat">11.2</A>&nbsp;

)</I><B></B>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve111101"></A><B>VE11.11.01</B>: In the vendor documentation of

the known answer test, the vendor shall indicate that all of the cryptographic

functions are tested by the known answer test and shall list them.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te111101"></A><B>TE11.11.01</B>: By checking the vendor documentation,

the tester shall verify that a known answer test is associated with each

cryptographic function. The list of cryptographic functions shall include

the following:</LI>





<P>&nbsp;

<OL>

<LI>

Encryption</LI>



<LI>

Decryption</LI>



<LI>

Secure message hashing</LI>



<LI>

Digital signature creation and verification</LI>



<LI>

Other operations that require the use of cryptography</LI>

</OL>



<LI>

<A NAME="te111102"></A><B>TE11.11.02</B>: By analyzing the code listing

and/or design documentation, the tester shall verify that the implementation

of the cryptographic algorithm test includes the initiation of known answer

tests for all of the cryptographic functions.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=15%>



<P><A NAME="as1112"></A><B>AS11.12: Message digest algorithms shall either

have an independent known answer test or shall be included in the known

answer test of the cryptographic algorithm in which they are included.

(1, 2, 3, and 4)</B>



<P><B>&nbsp;</B>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve111201"></A><B>VE11.12.01</B>: If the module implements message

digest algorithms, the vendor shall specify which known answer test is

used to test it.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te111201"></A><B>TE11.12.01</B>: The tester shall determine whether

the module implements a message digest algorithm. If so, the tester shall

verify that the vendor documentation specifies whether the message digest

algorithm has its own known answer test or whether it is included in the

known answer test of another algorithm.</LI>





<P>&nbsp;

<LI>

<A NAME="te111202"></A><B>TE11.12.02</B>: By checking the code listing

and/or design documentation, the tester shall verify that the module uses

either a separate known answer test or the known answer test of an algorithm

in order to test a message digest algorithm.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=15%>



<P><A NAME="as1113"></A><B>AS11.13: A cryptographic module may omit the

cryptographic algorithm test if the module includes two independent cryptographic

algorithm implementations whose output are continually compared in order

to ensure the correct functioning of the cryptographic algorithm. Whenever

the output of the two implementations are not equal, the module shall enter

an error state and output an error indicator via the status interface.

(1, 2, 3, and 4)</B>



<P><B>&nbsp;</B>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve111301"></A><B>VE11.13.01</B>: The vendor shall specify whether

a known answer test or the comparison of the output of two independent

cryptographic algorithm implementations (compared answer test) is used

to test the module's cryptographic algorithm. If the compared answer test

is used, the vendor shall document it.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te111301"></A><B>TE11.13.01</B>: The tester shall determine from

the vendor documentation whether a known answer test or a compared answer

test is used to test the module's cryptographic algorithm. If the compared

answer test is used, the tester shall determine whether the documentation

of the compared answer test includes:</LI>





<P>&nbsp;

<OL>

<LI>

Use of two independent cryptographic algorithm implementations</LI>



<LI>

Continual comparison of the outputs of the algorithm implementation</LI>



<LI>

Transition into an error state and output of an error indicator when the

two outputs are not equal</LI>

</OL>



<LI>

<A NAME="te111302"></A><B>TE11.13.02</B>: By checking the code and/or design

documentation, the tester shall verify that the module implements the documented

steps for performing a compared answer test.</LI>





<P>&nbsp;

<LI>

<A NAME="te111303"></A><B>TE11.13.03</B>: Validation of whether the module

enters the error state and outputs an error indicator upon failure of the

self-test is performed under TE11.02.01, TE11.02.02, and TE11.02.03. If

any of these tests fail, this assertion fails.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=15%>

<H4>

<U>Software/firmware test</U></H4>

<A NAME="as1114"></A><B>AS11.14: An error detection code (EDC) or FIPS-approved

authentication technique (e.g. the computation and verification of a data

authentication code or NIST digital signature algorithm) shall be calculated

on and stored with all software and firmware residing in the module (e.g.,

within EEPROM and RAM). This error detection code, data authentication

code, or digital signature shall then be verified when the power-up self-tests

are run. (1, 2, 3, and 4)</B>



<P><I>(Relevant Guidance:&nbsp; <A HREF="1401ig-3.htm#7swauthent">7.1</A>

, <A HREF="1401ig-4.htm#11edcreqs">11.4</A> )</I>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve111401"></A><B>VE11.14.01</B>: The vendor documentation shall

specify whether an error detection code (EDC) or a FIPS-approved authentication

technique (e.g., FIPS-approved data authentication code (DAC) or NIST digital

signature) will be used to provide integrity for all resident software

and firmware. If the module implements a FIPS-approved authentication technique,

the vendor shall provide proof that shall consist of a validation certificate

from a NIST-approved laboratory asserting that the authentication technique

implemented in the module is FIPS-approved. In the absence of such a validation

certificate, the vendor organization shall provide a written affirmation

asserting that the authentication technique implemented in the module is

FIPS-approved. The documentation shall describe the implemented integrity

mechanism.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te111401"></A><B>TE11.14.01</B>: The tester shall determine from

the proof provided by the vendor whether the authentication technique implemented

in the module is FIPS-approved. If the tester cannot determine this, the

assertion fails.</LI>





<P>&nbsp;

<LI>

<A NAME="te111402"></A><B>TE11.14.02</B>: If the module implements EDCs

for software/firmware integrity, the tester shall verify that the vendor

documentation of the software/firmware test includes:</LI>





<P>&nbsp;

<OL>

<LI>

Description of EDC algorithm.</LI>



<LI>

Identification of software and firmware that is protected using EDCs.</LI>



<LI>

Calculation of the EDCs when the software and firmware is installed</LI>



<LI>

Recalculation of the EDCs when the self-test is initiated</LI>



<LI>

Comparison of the stored EDC against the recalculated EDC</LI>



<LI>

Failure of the self-test when the two EDCs are not equal</LI>

</OL>



<LI>

<A NAME="te111403"></A><B>TE11.14.03</B>: If the module implements a DAC

for software/firmware integrity, the tester shall verify that the vendor

documentation of the software/firmware test fully describes the process

bywhich the DAC is calculated and verified. The following example is the

DES cipher-block chaining method for calculating DACs:</LI>





<P>&nbsp;

<OL>

<LI>

Divide software into 64-bit blocks</LI>



<LI>

Compute the XOR of the first block and an initialization vector</LI>



<LI>

Encrypt the result</LI>



<LI>

XOR the encrypted result with the next block and encrypt</LI>



<LI>

Repeat the XOR and encryption until the last block has been processed.

The last block to be processed is the DAC.</LI>

</OL>



<LI>

<A NAME="te111404"></A><B>TE11.14.04</B>: If the module implements the

NIST digital signature for software/firmware integrity, the tester shall

verify that the vendor documentation of the software/firmware test includes

the following:</LI>





<P>&nbsp;

<OL>

<LI>

Description of digital signature algorithm</LI>



<LI>

Identification of software and firmware that is protected using digital

signatures.</LI>



<LI>

Calculation of digital signatures when the software and firmware is installed</LI>



<LI>

Verification of the digital signature when the self-test is initiated</LI>



<LI>

Failure of the self-test upon failure of the digital signature verification</LI>

</OL>



<LI>

<A NAME="te111405"></A><B>TE11.14.05</B>: By checking the code and/or design

documentation, the tester shall verify that the implementation of the software/firmware

test is consistent with either TE11.14.01, TE11.14.02, or TE11.14.03.</LI>





<P>&nbsp;

<LI>

<A NAME="te111406"></A><B>TE11.14.06</B>: If possible, the tester shall

test the module by modifying the stored software, firmware, or the implemented

integrity mechanism and initiating the self-tests, and observing the output

from the status output interface. If no indicator is output which indicates

that the software/firmware self-test failed, the assertion fails.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=15%>

<H4>

<U>Critical functions test</U></H4>

<A NAME="as1115"></A><B>AS11.15: All other functions that are critical

to the secure operation of the module and can be tested as part of the

power-up tests shall be tested. Documentation shall provide a complete

specification of all critical functions and the nature of the power-up

self-tests designed to test those functions. Other critical functions that

are performed under certain specific conditions are tested as part of the

conditional tests. (1, 2, 3, and 4)</B>



<P><B>&nbsp;</B>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve111501"></A><B>VE11.15.01</B>: Critical functions can be defined

as those functions that could lead to the disclosure of plaintext information,

including data and cryptographic keys, if they fail. Examples of critical

functions include random/pseudo-random number generation, operation of

the cryptographic algorithm, and cryptographic bypass.</LI>





<P>&nbsp;

<LI>

<A NAME="ve111502"></A><B>VE11.15.02</B>: The vendor shall provide a matrix

of all critical functions. For each critical function, the vendor shall

indicate:</LI>





<P>&nbsp;

<OL>

<LI>

Its purpose (e.g., why is it a "critical" function</LI>



<LI>

Which critical functions are tested by which power-up tests</LI>



<LI>

Which critical functions are tested by which conditional tests</LI>

</OL>

</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te111501"></A><B>TE11.15.01</B>: The tester shall review the vendor-supplied

matrix that identifies the critical functions and the self-tests that are

designed to test them. This documentation shall include the following:</LI>





<P>&nbsp;

<OL>

<LI>

Identification and description of all critical functions</LI>



<LI>

Identification of at least one self-test for every critical function</LI>

</OL>

The critical functions must include, but not be limited to, random number

generation and operation of the cryptographic algorithm. Optional critical

functions, such as pseudo-random number generation and cryptographic bypass,

must have critical functions tests only if they are implemented in the

module.



<P>&nbsp;

<LI>

<A NAME="te111502"></A><B>TE11.15.02</B>: By checking the code and/or design

documentation, the tester shall verify that the module performs the specified

self-tests for each critical function.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=15%>

<H4>

<U>Statistical Random Number Generator Tests</U></H4>

<A NAME="as1116"></A><B>AS11.16: Cryptographic modules that implement a

random or pseudorandom number generator shall incorporate the capability

to perform statistical tests for randomness. The four tests specified in

FIPS PUB140-1 are recommended. However, alternative tests which provide

equivalent or superior randomness checking may be substituted. If any of

the tests fail, the module shall enter an error state. A related assertion

is AS11.02. (3 and 4)</B>



<P><I>(Relevant Guidance:&nbsp; <A HREF="1401ig-4.htm#8ivreqs">8.5</A>

 )</I>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve111601"></A><B>VE11.16.01</B>: If the module implements a random

or pseudorandom number generator, the vendor documentation shall specify

statistical tests for randomness. These tests are optional at Levels 1

and 2. The randomness tests implemented by the module can consist of, but

are not limited to, all of the following tests that are recommended by

section 4.11.1 of FIPS PUB 140-1:</LI>





<P>&nbsp;

<OL>

<LI>

Monobit Test</LI>



<LI>

Poker Test</LI>



<LI>

Runs Test</LI>



<LI>

Long Run Test</LI>

</OL>

</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te111601"></A><B>TE11.16.01</B>: If the module implements a random

or pseudorandom number generator, the tester shall check the vendor documentation

to verify that statistical tests for randomness are specified if the module

is meant to meet either Level 3 or Level 4; if the module is a Level 1

or 2 module, the statistical random number generator tests are optional.</LI>





<P>&nbsp;

<LI>

<A NAME="te111602"></A><B>TE11.16.02</B>: The tester shall determine from

the vendor documentation whether the statistical tests recommended in section

4.11.1 of FIPS PUB 140-1 are implemented by the module. If so, the tester

shall review the specification of the statistical tests in the code and/or

design documentation to determine whether they have been implemented as

specified in FIPS PUB 140-1 and that the module enters an error state if

any of them fail. The specifications of the recommended tests are based

on a single bit stream of 20,000 consecutive bits of output and are as

follows:</LI>





<P>&nbsp;

<OL>

<LI>

Monobit Test</LI>



<UL TYPE=SQUARE>

<LI>

Count the number of ones in the 20,000 bit stream. Denote this quantity

by X.</LI>



<LI>

The test is passed if 9,654 &lt; X &lt; 10,346</LI>

</UL>



<LI>

Poker Test</LI>



<UL TYPE=SQUARE>

<LI>

Divide the 20,000 bit stream into 5,000 contiguous 4-bit segments. Count

and store the number of occurrences of each of the 16 possible 4-bit values.

Denote <I>f(i)</I> as the number of each 4-bit value <I>i</I> where 0 &lt;=

i &lt;= 15</LI>



<LI>

Evaluate the following:</LI>



<CENTER></CENTER>



<CENTER><IMG SRC="fi1401f3.gif" ></CENTER>



<LI>

The test is passed if 1.03 &lt; X &lt; 57.4</LI>

</UL>



<LI>

Runs Test</LI>



<UL TYPE=SQUARE>

<LI>

A run is defined as a maximal sequence of consecutive bits of either all

ones or all zeros, which is part of the 20,000 bit sample stream. The incidences

of runs (for both consecutive zeros and consecutive ones) of all lengths

(>= 1) in the sample stream should be counted and stored.</LI>



<LI>

The test is passed if the number of runs that occurs (of length 1 through

6) is each within the corresponding interval specified below. This must

hold for both the zeros and ones; that is, all 12 counts must lie in the

specified interval. For the purpose of this test, runs of greater than

6 are considered to be of length 6.</LI>





<P>&nbsp;

<TABLE BORDER CELLSPACING=3 CELLPADDING=2 >

<TR>

<TH><I>Length of Run</I></TH>



<TH><I>Required Interval</I></TH>

</TR>



<TR>

<TD ALIGN=CENTER>1</TD>



<TD ALIGN=RIGHT>2,267-2733</TD>

</TR>



<TR>

<TD ALIGN=CENTER>2</TD>



<TD ALIGN=RIGHT>1,079-1,421</TD>

</TR>



<TR>

<TD ALIGN=CENTER>3</TD>



<TD ALIGN=RIGHT>502-748</TD>

</TR>



<TR>

<TD ALIGN=CENTER>4</TD>



<TD ALIGN=RIGHT>223-402</TD>

</TR>



<TR>

<TD ALIGN=CENTER>5</TD>



<TD ALIGN=RIGHT>90-223</TD>

</TR>



<TR>

<TD ALIGN=CENTER>6 +</TD>



<TD ALIGN=RIGHT>90-223</TD>

</TR>

</TABLE>

&nbsp;</UL>



<LI>

Long Run Test</LI>



<UL TYPE=SQUARE>

<LI>

A long run is defined to be a run of length 34 or more (of either zeros

or ones).</LI>



<LI>

On the sample of 20,000 bits, the test is passed if there are NO long runs.</LI>

</UL>

</OL>



<LI>

<A NAME="te111603"></A><B>TE11.16.03</B>: If the module implements statistical

tests other than those recommended in FIPS PUB 140-1, the tester shall

determine from the vendor documentation whether they provide equivalent

or superior randomness checking. If not, this assertion fails.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=15%>



<P><A NAME="as1117"></A><B>AS11.17: For Level 3, the statistical tests

shall be callable upon demand. A related assertion is AS11.09. (3)</B>



<P><B>&nbsp;</B>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve111701"></A><B>VE11.17.01</B>: See VE11.09.01 for the vendor

documentation requirement for tests that can be initiated by the operator.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te111701"></A><B>TE11.17.01</B>: Verification of the vendor documentation

and the ability to initiate the tests upon demand was performed under TE11.09.01-02.

If the statistical tests cannot be initiated from at least one authorized

role upon demand, this assertion fails.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=15%>



<P><A NAME="as1118"></A><B>AS11.18: For Level 4, the statistical tests

shall be performed at power-up and shall also be callable upon demand.

Related assertions are AS11.05 and AS11.09. (4)</B>



<P><B>&nbsp;</B>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve111801"></A><B>VE11.18.01</B>: See VE11.05.01 for the vendor

requirement that statistical tests be performed at power-up. See VE11.09.01

for the vendor requirement that these tests be callable upon demand by

an operator.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te111801"></A><B>TE11.18.01</B>: Verification of the vendor documentation

was performed under TE11.05.01 and TE11.09.01. Verification that the tests

are performed at power-up was performed under TE11.05.02. Verification

that the tests can be initiated on demand by an operator was performed

under TE11.09.02. If either of the verifications fail, this assertion fails.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=15%>

<H4>

<A NAME="sec11.3"></A>11.3 Conditional Tests</H4>



<H4>

<U>Pairwise consistency test</U></H4>

<A NAME="as1119"></A><B>AS11.19: Cryptographic modules that generate public

and private keys shall test the keys for pairwise consistency. If the keys

are to be used only for the calculation and verification of digital signatures,

then the consistency of the keys shall be tested by the calculation and

verification of a signature. (1, 2, 3, and 4)</B>



<P><I>(Relevant Guidance:&nbsp; <A HREF="1401ig-4.htm#11dsakat">11.2</A>&nbsp;

)</I>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve111901"></A><B>VE11.19.01</B>: If the module generates public

and private keys, the vendor documentation shall describe how the keys

are used by the module. If the keys are used for encryption/decryption,

the documentation shall describe a pairwise consistency test that is based

on encryption/decryption. If the keys are used for the calculation and

verification of digital signatures, either in addition to or in lieu of

being used for encryption/decryption, the documentation shall describe

a pairwise consistency test which is based on the calculation and verification

of a digital signature.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te111901"></A><B>TE11.19.01</B>: The tester shall determine from

the vendor documentation whether the module generates public and private

keys. If so, the tester shall check that the documentation describes one

or more pairwise consistency tests based on how the keys are used by the

module (encryption/decryption, digital signatures, or both).</LI>





<P>&nbsp;

<LI>

<A NAME="te111902"></A><B>TE11.19.02</B>: If public and private keys are

used for encryption/decryption, the tester shall verify that the implementation

of the pairwise consistency check is consistent with the vendor documentation

by checking the code and/or design documentation. In performing the verification,

the tester shall consider the following example of a pairwise consistency

test for keys that are used to perform inverse functions:</LI>





<P>&nbsp;

<OL>

<LI>

Apply the public key to a plaintext value.</LI>



<LI>

Compare the result to the original plaintext; if they are the same, the

test is failed.</LI>



<LI>

Apply the private key to the ciphertext value.</LI>



<LI>

Compare the result to the plaintext value; if they are not the same, the

test is failed.</LI>

</OL>



<LI>

<A NAME="te111903"></A><B>TE11.19.03</B>: If public and private keys are

used for the calculation and verification of digital signatures, the tester

shall verify the implementation of the pairwise consistency check is consistent

with the vendor documentation by checking the code and/or design documentation.

In performing the verification, the tester shall consider the following

example, based on the NIST Digital Signature Standard (DSS), of a pairwise

consistency test for keys that are used to calculate and verify digital

signatures:</LI>





<P>&nbsp;

<OL>

<LI>

Apply a secure hash algorithm to a message to create a message digest</LI>



<LI>

Input the message digest and the private key into a digital signature algorithm

to create the signature</LI>



<LI>

Input the message digest, the public key, and the signature into the verification

algorithm</LI>



<LI>

The assertion is satisfied only if the verification succeeds</LI>

</OL>

</UL>



<HR SIZE=4 WIDTH=15%>

<H4>

<U>Software/firmware load test</U></H4>

<A NAME="as1120"></A><B>AS11.20: A cryptographic mechanism using a FIPS-approved

authentication technique (e.g., a data authentication code or NIST digital

signature algorithm) shall be applied to all validated software and firmware

that can be externally loaded into a cryptographic module. This test shall

verify the data authentication code or digital signature whenever the software

or firmware is externally loaded into the module. (1, 2, 3, and 4)</B>



<P><I>(Relevant Guidance:&nbsp; <A HREF="1401ig-4.htm#11loadcontrol">11.3</A>&nbsp;

)</I><B></B>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve112001"></A><B>VE11.20.01</B>: The vendor documentation shall

describe the FIPS-approved authentication technique used to protect the

integrity of all externally loaded software and firmware. The vendor shall

provide proof that the technique is FIPS-approved. This proof shall consist

of a validation certificate from a NIST-approved laboratory asserting that

the authentication technique implemented in the module is FIPS-approved.

In the absence of the validation certificate, the vendor organization shall

provide a written affirmation asserting that the authentication technique

implemented in the module is FIPS-approved.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te112001"></A><B>TE11.20.01</B>: The tester shall determine from

the proof provided by the vendor whether the authentication technique implemented

in the module is FIPS-approved. If the tester cannot determine this, the

assertion fails.</LI>





<P>&nbsp;

<LI>

<A NAME="te112002"></A><B>TE11.20.02</B>: If the module implements a DAC,

the tester shall check the vendor documentation, code, and/or design documentation

to verify that the software/firmware load test in the module fully implements

the process by which the DAC is calculated and verified. The following

example is the DES cipher-block chaining method for calculating DACs:</LI>





<P>&nbsp;

<OL>

<LI>

Divide software into 64-bit blocks</LI>



<LI>

Compute the XOR of the first block and an initialization vector</LI>



<LI>

Encrypt the result</LI>



<LI>

XOR the encrypted result with the next block and encrypt</LI>



<LI>

Repeat the XOR and encryption until the last block has been processed.

The last block to be processed is the DAC.</LI>

</OL>



<LI>

<A NAME="te112003"></A><B>TE11.20.03</B>: If the module implements the

NIST digital signature for software/firmware integrity, the tester shall

check the vendor documentation, code, and/or design documentation to verify

that the software/firmware load test implemented in the module includes

the following:</LI>





<P>&nbsp;

<OL>

<LI>

Description of digital signature algorithm</LI>



<LI>

Identification of software and firmware that is protected using digital

signatures.</LI>



<LI>

Calculation of digital signatures when the software and firmware is installed</LI>



<LI>

Verification of the digital signature when the self-test is initiated</LI>



<LI>

Failure of the self-test upon failure of the digital signature verification</LI>

</OL>



<LI>

<A NAME="te112004"></A><B>TE11.20.04</B>: The tester shall modify the software,

firmware, DAC, or digital signature associated with software/firmware that

must be loaded, load the software/firmware, and verify that the module

fails the self-test.</LI>





<P>&nbsp;</UL>



<HR SIZE=4 WIDTH=15%>

<H4>

<U>Manual key entry test</U></H4>

<A NAME="as1121"></A><B>AS11.21: When cryptographic keys or key components

are manually entered into a cryptographic module, the keys shall have an

error detection code (e.g., a parity check value) or shall use duplicate

entries in order to verify the accuracy of the entered keys. A cryptographic

module shall verify the error detection code or duplicate entries and provide

an indication of the success or failure of the entry process. (1, 2, 3,

and 4)</B>



<P><B>&nbsp;</B>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve112101"></A><B>VE11.21.01</B>: The vendor shall document the

manual key entry test. Depending on whether error detection codes or duplicate

key entries are used, the manual key entry test shall include the following:</LI>





<P>&nbsp;

<OL>

<LI>

Error detection codes (EDCs):</LI>





<P>&nbsp;

<UL TYPE=SQUARE>

<LI>

Description of EDC calculation algorithm</LI>



<LI>

Description of verification process</LI>



<LI>

Expected outputs for success or failure of test</LI>

</UL>



<LI>

Duplicate key entries:</LI>





<P>&nbsp;

<UL TYPE=SQUARE>

<LI>

Description of verification process</LI>



<LI>

Expected outputs for success or failure of test</LI>

</UL>

</OL>



<LI>

<A NAME="ve112102"></A><B>VE11.21.02</B>: If EDCs are associated with keys,

then the vendor documentation that describes the format of the cryptographic

keys (see AS08.01) shall include fields for the error detection codes.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te112101"></A><B>TE11.21.01</B>: The tester shall determine from

the vendor documentation which method is used for the manual key entry

test (error detection codes or duplicate key entries). Based on the method

used, the tester shall check the vendor documentation, code, and/or design

documentation that addresses the implementation of the manual key entry

test to determine whether the following information is included:</LI>





<P>&nbsp;

<OL>

<LI>

Error detection codes:</LI>





<P>&nbsp;

<UL TYPE=SQUARE>

<LI>

Key format for all manually-entered keys, including fields for EDCs (see

AS08.01)</LI>



<LI>

Description of EDC algorithm</LI>



<LI>

Description of EDC verification process</LI>



<LI>

All expected outputs for success or failure of the test</LI>

</UL>



<LI>

Duplicate key entries:</LI>





<P>&nbsp;

<UL TYPE=SQUARE>

<LI>

Duplicate key entries for all manually-entered keys</LI>



<LI>

Description of duplicate key, entry verification process</LI>



<LI>

All expected outputs for success or failure of the test</LI>

</UL>

</OL>



<LI>

<A NAME="te112102"></A><B>TE11.21.02</B>: For manual key entry tests using

EDCs, the tester shall perform the following tests:</LI>





<P>&nbsp;

<OL>

<LI>

The tester shall enter each type of manually-entered key without any errors

and shall observe the status output interface. If no indicator is detected,

or if the indicator does not match the documented indicator for the success

of the manual key entry test, the test is failed.</LI>



<LI>

The tester shall attempt to perform cryptographic operations with each

entered key to verify that it was entered correctly.</LI>



<LI>

The tester shall change either the EDC associated with each manually-entered

key or the key itself and shall enter them into the module. The tester

shall observe the indicator that is output from the status output interface;

if no output is detected, or the indicator does not match the documented

indicator for the failure of the manual key entry test, the test is failed.</LI>



<LI>

The tester shall attempt to perform cryptographic operations with each

key that was not successfully entered. Each operation using each key should

fail, verifying that the key was not entered.</LI>

</OL>



<LI>

<A NAME="te112103"></A><B>TE11.21.03</B>: For manual key entry tests using

duplicate key entries, the tester shall perform the following tests:</LI>





<P>&nbsp;

<OL>

<LI>

The tester shall enter each type of manually-entered key without any errors

and shall observe the status output interface. If no indicator is detected,

or if the indicator does not match the documented indicator for the success

of the manual key entry test, the test is failed.</LI>



<LI>

The tester shall attempt to perform cryptographic operations with each

entered key to verify that it was entered correctly.</LI>



<LI>

The tester shall alter the accuracy of one of the manually entered keys,

either the first or second duplicate entry, and shall enter them into the

module. The tester shall observe the indicator that is output from the

status output interface; if no output is detected, or the indicator does

not match the documented indicator for the failure of the manual key entry

test, the test is failed.</LI>



<LI>

The tester shall attempt to perform cryptographic operations with each

key that was not successfully entered. Each operation using each key should

fail, verifying that the key was not entered.</LI>

</OL>

</UL>



<HR SIZE=4 WIDTH=15%>

<H4>

<U>Continuous Random Number Generator Test</U></H4>

<A NAME="as1122"></A><B>AS11.22: Cryptographic modules that implement a

random or pseudorandom number generator shall test the generator for failure

to a constant value. If the generator produces blocks of n bits, where

n > 15, the first block generated after power-up shall not be used, but

shall be saved for comparison with the next block to be generated. Upon

each subsequent generation, the newly generated block is compared with

the previously generated block. The test fails if the two compared blocks

are equal. If each call to the generator produces fewer than 16 bits, then

the first n bits generated after power-up, for some n > 15, shall not be

used, but shall be saved for comparison with the next n generated bits.

Each subsequent generation of n bits shall be compared with the previously

generated n bits. The test fails if two compared n-bit sequences are equal.

(1, 2, 3, and 4)</B>



<P><I>(Relevant Guidance:&nbsp; <A HREF="1401ig-4.htm#8ivreqs">8.5</A>

 )</I>

<H4>

<I>Required Vendor Information</I></H4>



<UL>

<LI>

<A NAME="ve112201"></A><B>VE11.22.01</B>: If the module implements a random

or pseudorandom number generator, the vendor shall document the continuous

random number generator test.</LI>





<P>&nbsp;</UL>



<H4>

<I>Required Test Procedures</I></H4>



<UL>

<LI>

<A NAME="te112201"></A><B>TE11.22.01</B>: The tester shall determine whether

the module implements a random or pseudorandom number generator. If so,

the tester shall check the documentation, code and/or design documentation

that addresses of the continuous random number generator test to verify

that it implements the specifics of the test. If the generator generates

blocks of n bits, where n > 15, then the tester shall verify that the implementation

of the test includes:</LI>





<P>&nbsp;

<OL>

<LI>

Storage of first block for comparison against the next block</LI>



<LI>

Comparison of each subsequently generated block against the previously

generated block</LI>



<LI>

Failure of the test if two compared blocks are equal</LI>

</OL>

If the generator consistently generates fewer than 16 bits, then the tester

shall verify that the implementation of the test includes the following:



<P>&nbsp;

<OL VALUE=4>

<LI>

Storage of the first n bits, where n > 15, for comparison against the next

n generated bits</LI>



<LI>

Comparison of each subsequently generated n bits against the previously

generated n bits</LI>



<LI>

Failure of the test if two compared n-bit sequences are equal</LI>

</OL>

</UL>



<HR SIZE=4 WIDTH=75%>



<P>

<HR SIZE=4 WIDTH=75%>



<P>Continue to <A HREF="140testA.htm">Appendix A</A>: A Cryptographic Module Security Policy







</BODY>

</HTML>


Anon7 - 2021