Skip to content
/ ACVP Public
forked from usnistgov/ACVP

Industry Working Group on Automated Cryptographic Algorithm Validation

Notifications You must be signed in to change notification settings

fliphil/ACVP

 
 

Repository files navigation

ACVP

The Automated Cryptographic Validation Protocol (ACVP) is a protocol currently under development to support a new National Voluntary Laboratory Accreditation Program (NVLAP) testing scope at the National Institute of Standards and Technology (NIST), https://www.nist.gov.

All current information about ACVP may be found within this Github project.

Background

The rapid development of cryptographic technology over the last two decades and its adoption in many different technology domains has resulted in a sharp increase in the number and complexity of approved algorithms. The volume of cryptographic algorithm validations has outstripped the available human resources available to test, report, and validate results. The plethora of different algorithms has created a dire need for consistent requesting and reporting of test data and results. We also live in times of unprecedented levels of threats and exploits that require frequent product updates to fix defects and remove security vulnerabilities, which in turn requires much faster turnaround of validation updates than what the existing validation model allows. See the NIST Automated Cryptographic Validation Testing project for broader context and information.

Requirements documents for the existing Cryptrographic Algorithm Validation Program (CAVP) and the 17CAV scope can be found at https://www.nist.gov/national-voluntary-laboratory-accreditation-program-nvlap/requirements-documents-5. The requirements documents for the ACVP scope will likely be found on the same page once they have been finalized and published.

General information about CAVP can be found at https://csrc.nist.gov/Projects/Cryptographic-Algorithm-Validation-Program with the CAVP management manual found at https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Algorithm-Validation-Program/documents/CAVPMM.pdf and the FAQ at https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Algorithm-Validation-Program/documents/CAVPFAQ.pdf.

Objective

The objective of this project is to define a protocol allowing independent implementation by all vendors participating in the NIST cryptographic validation programs (CAVP and CMVP) for accelerated test data generation and requisition, reporting of test results, and validation of NIST-approved cryptographic algorithms (see FIPS 140-2 Annex A, Annex C and Annex D).

Project Goals

The development of an Automated Cryptographic Validation Protocol (ACVP) that enables the generation and validation of standardized algorithm test evidence to facilitate the modernization of CAVP and CMVP.

The new automated testing scope is currently planned to become available during 1QFY19 (Fall 2018). Once available this testing scope will eventually replace the existing Cryptographic Algorithm Validation Testing (17CAV) scope. To allow for a smooth transition both scopes will be available for no less than six months, but the legacy 17CAV scope will be retired after no more than one year and may be retired earlier depending on the speed of the transition and scope of testing improvements ACVP implements relative to the legacy 17CAV scope .

Status

The demo server (demo.acvts.nist.gov) supports ACVP version 0.5. Not all endpoints are currently available, but development will continue in order to support all features described in the ACVP 0.5 (or 1.0) specification.

The demo server allows validation of the following NIST-approved algorithms (a superset of the algorithms available through the CAVS tool):

Block Cipher Modes Secure Hash Message Authentication DRBG Digital Signature Key Agreement KDF's
AES-CBC HTML SHA-1 HTML AES-CCM HTML ctrDRBG-AES-128 HTML RSA mode: keyGen HTML KAS ECC ephemeralUnified HTML Counter KDF HTML
AES-CFB1 HTML SHA-224 HTML CMAC-AES HTML ctrDRBG-AES-192 HTML RSA mode: sigGen HTML KAS ECC fullMqv HTML Feedback KDF HTML
AES-CFB8 HTML SHA-256 HTML CMAC-TDES HTML ctrDRBG-AES-256 HTML RSA mode: sigVer HTML KAS ECC fullUnified HTML Double Pipeline Iterator KDF HTML
AES-CFB128 HTML SHA-384 HTML HMAC-SHA-1 HTML ctrDRBG-TDES HTML RSA mode: signatureComponent HTML KAS ECC onePassDh HTML IKEv1 HTML
AES-CTR HTML SHA-512 HTML HMAC-SHA2-224 HTML HASH DRBG HTML RSA mode: decryptionComponent HTML KAS ECC onePassMqv HTML IKEv2 HTML
AES-ECB HTML SHA-512/224HTML HMAC-SHA2-256 HTML HMAC DRBG HTML RSA mode: legacySigVer HTML KAS ECC OnePassUnified HTML SNMP HTML
AES-GCM HTML SHA-512/256HTML HMAC-SHA2-384 HTML ECDSA mode: sigGenComponent HTML KAS ECC staticUnified HTML SRTP HTML
AES-KW HTML SHA3-224 HTML HMAC-SHA2-512 HTML ECDSA mode: keyGen HTML KAS ECC CDH-Component HTML SSH HTML
AES-KWP HTML SHA3-256 HTML HMAC-SHA2-512/224 HTML ECDSA mode: keyVer HTML KAS FFC dhHybrid1 HTML TLS HTML
AES-OFB HTML SHA3-384 HTML HMAC-SHA2-512/256 HTML ECDSA mode: sigGen HTML KAS FFC mqv2 HTML TPM HTML
AES-XPN HTML SHA3-512 HTML HMAC-SHA3-224 HTML ECDSA mode: sigVer HTML KAS FFC dhEphem HTML ANSX9.63 HTML
AES-XTS HTML SHAKE-128 HTML HMAC-SHA3-256 HTML DSA mode: keyGen HTML KAS FFC dhHybridOneFlow HTML
TDES-CBC HTML SHAKE-256 HTML HMAC-SHA3-384 HTML DSA mode: sigVer HTML KAS FFC mqv1 HTML
TDES-CBCI HTML HMAC-SHA3-512 HTML DSA mode: sigGen HTML KAS FFC dhOneFlow HTML
TDES-CFBP1 HTML DSA mode: pqgGen HTML KAS FFC dhStatic HTML
TDES-CFBP8 HTML DSA mode: pqgVer HTML
TDES-CFBP64 HTML
TDES-CTR HTML
TDES-ECB HTML
TDES-KW HTML
TDES-OFB HTML
TDES-OFBI HTML

Current 0.5 Support

To access 0.5 use the following prefix for resources listed below:

https://demo.acvts.nist.gov/acvp/acvp/v1

  • /login (POST)
  • /algorithms (GET)
  • /algorithms/{algorithmId} (GET)
  • /testSessions (GET|POST)
  • /testSessions/{testSessionId} (GET)
  • /testSessions/{testSessionId}/results (GET)
  • /testSessions/{testSessionId}/vectorSets (GET)
  • /testSessions/{testSessionId}/vectorSets/{vectorSetId} (GET)
  • /testSessions/{testSessionId}/vectorSets/{vectorSetId}/results (GET|POST)
  • /testSessions/{testSessionId}/vectorSets/{vectorSetId}/expected (GET)

Accessing the demo server

To access the demo server one needs a TLS credential and a one-time password (OTP). The protocol specification and other development information are available in this repository. You may want to use the companion ACVP client to jump-start your work.

To set expectations, since this is a demo system, it will be in a state of flux and any all data on the system is considered temporary and may be reset to accommodate development of the Automated Cryptographic Validation Protocol (ACVP) service. We will try to keep the demo service relatively stable, but we plan to update it as we continue to add new algorithms and capabilities.

Obtaining TLS credentials

To access the demo environment you will need to send your CSR to us. Please use a 2048-bit RSA key pair and sign using at least a SHA-256 hash. Please send a request to [email protected] with 'CSR REQUEST FOR ACCESS TO DEMO' in the subject line. You will receive instructions for how to upload your CSR.

You are expected to protect the key pair from unauthorized use and to notify NIST in the event the keypair becomes compromised. Also, since we do not have a formal login page the following notice applies when accessing the ACVP system:

WARNINGWARNINGWARNING You are accessing a U.S. Government information system, which includes: 1) this computer, 2) this computer network, 3) all computers connected to this network, and 4) all devices and storage media attached to this network or to a computer on this network. You understand and consent to the following: you may access this information system for authorized use only; you have no reasonable expectation of privacy regarding any communication of data transiting or stored on this information system; at any time and for any lawful Government purpose, the Government may monitor, intercept, and search and seize any communication or data transiting or stored on this information system; and any communications or data transiting or stored on this information system may be disclosed or used for any lawful Government purpose. WARNINGWARNINGWARNING”

Configuring and using One-Time-Passwords (OTP)

Please be aware that starting in the week of March 12th, 2018, the second-factor authentication based on OTP and associated workflows have been turned-on - see details here.

Contribution guidelines:

If you want to contribute, please follow the simple rules below and send us pull requests.

  • Updates to specs, JSON, etc should take place within the ./src/*.xml files.
  • Prior to commit, merge, pull request, WindowsGenerateArtifacts.bat (Windows) or MakeFile (non-Windows) should be run.
    • The running of the MakeFile (or its Windows equivalent) ensures that all artifacts (HTML and TXT) are kept up to date with src.

If you would like to talk to our developers, you may want to send email to our mailing list [email protected]. You may also report bugs or request new tests.

Related projects

Licensing terms

This data was developed by employees of the National Institute of Standards and Technology (NIST), an agency of the Federal Government, in collaboration with third-party contributers. Pursuant to title 17 United States Code Section 105, works of NIST employees are not subject to copyright protection in the United States and are considered to be in the public domain. The data is provided by NIST as a public service and is expressly provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT AND DATA ACCURACY. NIST does not warrant or make any representations regarding the use of the data or the results thereof, including but not limited to the correctness, accuracy, reliability or usefulness of the data. NIST SHALL NOT BE LIABLE AND YOU HEREBY RELEASE NIST FROM LIABILITY FOR ANY INDIRECT, CONSEQUENTIAL, SPECIAL, OR INCIDENTAL DAMAGES (INCLUDING DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, AND THE LIKE), WHETHER ARISING IN TORT, CONTRACT, OR OTHERWISE, ARISING FROM OR RELATING TO THE DATA (OR THE USE OF OR INABILITY TO USE THIS DATA), EVEN IF NIST HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

To the extent that NIST may hold copyright in countries other than the United States, you are hereby granted the non-exclusive irrevocable and unconditional right to print, publish, prepare derivative works and distribute the NIST data, in any medium, or authorize others to do so on your behalf, on a royalty-free basis throughout the world.

You may improve, modify, and create derivative works of the data or any portion of the data, and you may copy and distribute such modifications or works. Modified works should carry a notice stating that you changed the data and should note the date and nature of any such change. Please explicitly acknowledge the National Institute of Standards and Technology as the source of the data: Data citation recommendations are provided below. Permission to use this data is contingent upon your acceptance of the terms of this agreement and upon your providing appropriate acknowledgments of NIST's creation of the data.

  • Citation format:

    • Author/editor (Publication Year), Title, Publisher, Persistent Identifier (PID) or URL (Access date).

About

Industry Working Group on Automated Cryptographic Algorithm Validation

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • HTML 99.8%
  • Other 0.2%