Suite B Implementer s Guide to NIST SP A July 28, 2009
|
|
|
- Bernice Sanders
- 10 years ago
- Views:
Transcription
1 1. Introduction Suite B Implementer s Guide to NIST SP A July 28, 2009 This document specifies the Elliptic Curve Diffie-Hellman (ECDH) key-agreement schemes from NIST SP A: Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography that will be used in future and existing cryptographic protocols for Suite B products. Also included are the elliptic curves and domain parameters, key generation methods, the ECDH primitive, key derivation function, and other auxiliary functions that are necessary for ECDH scheme implementations to be in compliance with SP A and Suite B. Several IETF protocols (e.g., IKE/IPsec, S/MIME, SSH, and TLS) were designed and gained widespread use prior to the publication of SP A. These protocols do not comply with all of the key-agreement requirements specified in SP A. Discussion concerning the implementation of ECDH in these protocols for Suite B products is also given in this document. 2. Definitions, Symbols and Abbreviations Definitions Approved Assurance of possession of a private key Assurance of validity Bit length FIPS approved or NIST Recommended. An algorithm or technique that is either 1) specified in a FIPS or NIST Recommendation, or 2) adopted in a FIPS or NIST Recommendation and specified either (a) in an appendix to the FIPS or NIST Recommendation, or (b) in a document referenced by the FIPS or NIST Recommendation Confidence that an entity possesses a private key associated with a public key. Confidence that either a key or a set of domain parameters is arithmetically correct. The length in bits of a bit string. 1 These definitions, symbols and abbreviations are from NIST SP A. NIST SP A definitions, symbols and abbreviations that are not used in this Suite B Implementer s Guide have been omitted. In a few cases, clarifications have been added that are specific to Suite B. 1
2 Certification Authority Cofactor Domain parameters Entity Ephemeral key Hash function Initiator Key-agreement Key-agreement transaction The entity in a Public Key Infrastructure (PKI) that is responsible for issuing public key certificates and exacting compliance to a PKI policy. The order of the elliptic curve group divided by the (prime) order of the generator point specified in the domain parameters. Note that for the Suite B domain parameters, this cofactor is one. The parameters used with a cryptographic algorithm that are common to a domain of users. An individual (person), organization, device, or process. Party is a synonym. A key that is intended for a very short period of use. The key is ordinarily used in exactly one transaction of a cryptographic scheme; an exception to this is when the ephemeral key is used in multiple transactions for a key transport broadcast. Contrast with static key. A function that maps a bit string of arbitrary length to a fixed length bit string. Approved hash functions satisfy the following properties: 1. (One-way) It is computationally infeasible to find any input that maps to any pre-specified output, and 2. (Collision resistant) It is computationally infeasible to find any two distinct inputs that map to the same output. Approved hash functions for Suite B are SHA-256 and SHA-384, specified in FIPS The party that begins a key-agreement transaction. Contrast with responder. A key-establishment procedure where the resultant secret keying material is a function of information contributed by two participants, so that no party can predetermine the value of the secret keying material independently from the contributions of the other parties. Contrast with key transport. 2 The instance that results in shared secret keying material among different parties using a key-agreement scheme. 2 Key transport algorithms are not used in Suite B; hence the term key transport is not included in the definitions section. Interested readers should consult NIST SP A. 2
3 Key confirmation Key derivation Key-establishment Key-establishment transaction Keying material MacTag Message Authentication Code (MAC) algorithm Owner Party Provider A procedure to provide assurance to one party (the keyconfirmation recipient) that another party (the key-confirmation provider) actually possesses the correct secret keying material and/or shared secret. The process by which keying material is derived from a shared secret and other information. The procedure that results in shared secret keying material among different parties. An instance of establishing secret keying material using a keyestablishment scheme. The data that is necessary to establish and maintain a cryptographic keying relationship. Some keying material may be secret, while other keying material may be public. As used in this document, secret keying material may include keys, secret initialization vectors or other secret information; public keying material includes any non-secret data needed to establish a relationship. Data that allows an entity to verify the integrity of the information. Other documents sometimes refer to this data as a MAC. Defines a family of one-way cryptographic functions that is parameterized by a symmetric key and produces a MacTag on arbitrary data. A MAC algorithm can be used to provide data origin authentication as well as data integrity. In this document, a MAC algorithm is used for key confirmation and validation testing purposes. For a static key pair, the owner is the entity that is authorized to use the static private key associated with a public key, whether that entity generated the static key pair itself or a trusted party generated the key pair for the entity. For an ephemeral key pair, the owner is the entity that generated the key pair. An individual (person), organization, device, or process. Entity is a synonym for party. The party during key confirmation that provides assurance to the other party (the recipient) that the two parties have indeed established a shared secret. 3
4 Public key certificate Recipient Responder Scheme Security strength (also bits of security ) Shared secret keying material Shared secret Static key Symmetric key algorithm A set of data that contains an entity s identifier(s), the entity s public key (including an indication of the associated set of domain parameters) and possibly other information, and is digitally signed by a trusted party, thereby binding the public key to the included identifier(s). A party that receives (1) keying material: such as a static public key (e.g., in a certificate) or an ephemeral public key; (2) assurance: such as an assurance of the validity of a candidate public key or assurance of possession of the private key associated with a public key; or (3) key confirmation. Contrast with provider. The party that does not begin a key-agreement transaction. Contrast with initiator. A (cryptographic) scheme consists of an unambiguous specification of a set of transformations that are capable of providing a (cryptographic) service when properly implemented and maintained. A scheme is a higher level construct than a primitive and a lower level construct than a protocol. A number associated with the amount of work (that is, the number of operations) that is required to break a cryptographic algorithm or system. The secret keying material that is either (1) derived by applying the key derivation function to the shared secret and other shared information during a key-agreement process, or (2) is transported during a key transport process 3. A secret value that has been computed using a key-agreement scheme and is used as input to a key derivation function. A key that is intended for use for a relatively long period of time and is typically intended for use in many instances of a cryptographic key-establishment scheme. Contrast with an ephemeral key. A cryptographic algorithm that uses one secret key that is shared between authorized parties. 3 Key transport algorithms are not used in Suite B; hence the term key transport is not included in the definitions section. Interested readers should consult NIST SP A. 4
5 Trusted party Trusted third party A trusted party is a party that is trusted by an entity to faithfully perform certain services for that entity. An entity may choose to act as a trusted party for itself. A third party, such as a CA, that is trusted by its clients to perform certain services. (By contrast, the initiator and responder in a scheme are considered to be the first and second parties in a key-establishment transaction. 2.2 Symbols and Abbreviations General: AES Advanced Encryption Standard (as specified in FIPS 197) ANS ASN.1 CA CDH EC ECC American National Standard Abstract Syntax Notation One Certification Authority The cofactor Diffie-Hellman key-agreement primitive. Elliptic Curve. Elliptic Curve Cryptography, the public key cryptographic methods using an elliptic curve. For example, see ANS X9.63. HMAC Keyed-Hash Message Authentication Code (as specified in FIPS 198). ID H KC KDF MAC Null SHA TTP U The bit string denoting the identifier associated with an entity. An Approved hash function. Key Confirmation Key Derivation Function Message Authentication Code The empty bit string Secure Hash Algorithm A Trusted Third Party The initiator of a key-establishment process. 5
6 V {X} The responder in a key-establishment process. Indicates that the inclusion of X is optional. X Y Concatenation of two strings X and Y. x The length of x in bits. [a, b] The set of integers x such that a x b. x The ceiling of x; the smallest integer x. For example, 5 = 5, 5.3 = 6. ECC (ANS X9.63) a, b An ECC domain parameter; two field elements that define the equation of an elliptic curve. d e,u, d e,v d s,u, d s,v D FR G h Party U s and Party V s ephemeral private keys. These are integers in the range [1, n-1]. Party U s and Party V s static private keys. These are integers in the range [1, n-1]. The set of ECC domain parameters, (q, FR, a, b{, SEED}, G, n, h). Field Representation indicator. An indication of the basis used for representing field elements. For the Suite B curves, FR is NULL. An ECC domain parameter, which is a distinguished point on an elliptic curve that generates the subgroup of order n. An ECC domain parameter, the cofactor, which is the order of the elliptic curve divided by the order of the point G. For the Suite B curves, h = 1. n An ECC domain parameter; the order of the point G. O q Q e,u, Q e,v Q s,u, Q s,v The point at infinity; a special point in an elliptic curve group that serves as the (additive) identity. An ECC domain parameter; the field size. Party U s and Party V s ephemeral public keys. These are points on the elliptic curve defined by the domain parameters. Party U s and Party V s static public keys. These are points on the elliptic curve defined by the domain parameters. 6
7 SEED x p, y p Z Z bytestring An ECC domain parameter; an initialization value that is used during domain parameter generation that can also be used to provide assurance at a later time that the resulting domain parameters were generated arbitrarily. Elements of the finite field of size q, representing the x and y coordinates respectively, of a point P. For Suite B curves, these are integers in the interval [0, q-1]. A shared secret that is used to derive secret keying material using a key derivation function. The byte-string form of Z. Note that this is not an ANS X9.63 term and was not used in SP A. It is introduced to distinguish between the field element Z and representation of Z in byte-string form. 3. ECDH Schemes This section specifies the ECDH key-agreement schemes that can be used by Suite B products. The preferred ECDH scheme is the Ephemeral Unified Model (section 3.1), where each party generates an ephemeral key pair to be used in the computation of the shared secret. If the Ephemeral Unified Model cannot be used (for example, in a storeand-forward scenario where one party is not available to contribute an ephemeral public key), then the One-Pass Diffie-Hellman scheme is to be used. One-Pass Diffie-Hellman (section 3.2) is a key-agreement scheme in which an ephemeral key pair generated by one party is used together with the other party s static key pair in the computation of the shared secret. It is important to note that, in practice, a key-agreement scheme is just one component of a larger (key-agreement) protocol, which may include many additional actions by both parties. Other components of the protocol may provide security services that are not provided by the key-agreement scheme itself. For example, when required, authentication of the source and integrity of exchanged ephemeral public keys must be provided by other components of a protocol incorporating either of these schemes. Implementers should be aware that a number of protocols (e.g., IKE/IPsec, S/MIME, SSH and TLS) that were in widespread use prior to the publication of SP A do not comply with all of the key-agreement requirements specified below. In particular, alternate methods of key derivation have been defined for use in certain protocols. Section 7.1 of the Implementation Guidance for FIPS PUB and the Cryptographic Module Validation Program describes the deviations from the requirements of SP A that are currently allowed in products submitted for FIPS validation. Some of the current waivers have expiration dates, so this document must be consulted for the most up-to-date information. Section 8 of the Suite B Implementer s Guide to SP 800-7
8 56A contains further discussion regarding the IETF protocols IKE/IPsec, S/MIME, SSH and TLS for Suite B. Protocols that use X.509 public key infrastructure certificates must follow the Suite B Certificate and Certificate Revocation List Profile. This profile is a refinement of RFC 5280, Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile, and assumes that the reader is familiar with RFC Certificate management follows the Suite B Profile of Certificate Management over CMS 4. Prior to executing a routine that performs elliptic-curve computations on either an ephemeral or static public key, it is recommended that the party performing the computation should have assurance of the validity of that public key. The ECC Partial Public-Key Validation Routine (given in appendix B.3) can be employed whenever such assurance is required by Suite B compliant protocols. Note: In the case of a static public key, the party seeking assurance may be in a position to trust that the CA established the subject public key s validity before issuing its certificate. 3.1 Ephemeral Unified Model This section describes the Ephemeral Unified Model scheme from SP A. Using the same domain parameters, each party generates an ephemeral key pair. The two parties exchange ephemeral public keys and then compute the shared secret. The secret keying material is derived using the shared secret. U U s Ephemeral Public Key V s Ephemeral Public Key V 1. U uses its ephemeral private key, d e,u, and V s ephemeral public key, Q e,v, to form a shared secret. 2. U invokes the Key Derivation Function using the shared secret and other input. 1. V uses its ephemeral private key, d e,v, and U s ephemeral public key, Q e,u, to form a shared secret. 2. V invokes the Key Derivation Function using the shared secret and other input Figure 1: Each Party Generates an Ephemeral Key Pair; No Static Keys are Used. 4 Cryptographic Message Syntax 8
9 Prerequisites: 1. Each party shall have an authentic copy of the same set of domain parameters, D, where D = (q, FR, a, b{, SEED}, G, n, h). D must be selected from one of the two sets of domain parameters specified in Appendix A. 2. Each party shall use the NIST Concatenation Key Derivation Function 5 (see section 5). SHA-256 is the hash function to use with the domain parameters for P- 256 and SHA-384 is the hash function to use with the domain parameters for P- 384 (see FIPS 180-3). 3. Prior to or during the key-agreement process, each party shall obtain the identifier associated with the other party during the key-agreement scheme. With the exception of key derivation, Ephemeral Unified Model is symmetric in the actions of the initiator (Party U) and the responder (Party V). Note, that U and V must use identical orderings of the bit strings that are input to the key derivation function in order for each party to produce the same secret keying material. Party U shall execute the following key-agreement transformation in order to a) establish a shared secret value Z with Party V, and b) derive shared secret keying material from Z. Actions: U shall derive secret keying material as follows: 1. Generate an ephemeral key pair (d e,u, Q e,u ) from the domain parameters D as specified in appendix B.1 or B.2. Send the public key Q e,u to V. Receive an ephemeral public key Q e,v (purportedly) from V. If Q e,v is not received, output an error indicator and stop. 2. Verify that Q e,v is a valid public key for the domain parameters D as specified in appendix B.3. If assurance of public key validity cannot be obtained, output an error indicator and stop. 3. Use the ECC CDH primitive specified in section 4 to derive a shared secret Z an element of the finite field of size q from the set of domain parameters D, U s ephemeral private key d e,u and V s ephemeral public key Q e,v. If the call to the ECC CDH primitive outputs an error indicator, zeroize the results of all intermediate calculations used in the attempted computation of Z, output an error indicator, and stop. 4. Convert Z to a byte string (which is denoted by Z bytestring 6 ) using the Field-Elementto-Byte-String conversion specified in (see appendix C.3), and then zeroize the results of all intermediate calculations used in the computation of Z. The length of Z bytestring will be 32 bytes for P-256 and 48 bytes for P Exceptions have been granted by NIST for certain IETF protocols. See NIST s Implementation Guidance for FIPS and the Cryptologic Module Validation Program for the most current information regarding waivers for the KDFs used by particular IETF protocols. 6 This term does not exist in SP A. SP A uses Z to denote both quantities: the Z output from the ECC CDH primitive and the byte-string form of Z. 9
10 5. Use the agreed upon key derivation function 7 to derive secret keying material DerivedKeyingMaterial of length keydatalen bits from the shared secret value Z bytestring and OtherInput (including the identifiers ID U and ID V ). If the key derivation function outputs an error indicator, zeroize all copies of Z and Z bytestring, output an error indicator, and stop. 6. Zeroize all copies of the shared secret Z and Z bytestring. Output the secret derived keying material DerivedKeyingMaterial or an error indicator. Output: The bit string DerivedKeyingMaterial of length keydatalen bits or an error indicator. Party V shall execute the following key-agreement transformation in order to a) establish a shared secret value Z with Party U, and b) derive shared secret keying material from Z. Actions: V shall derive secret keying material as follows: 1. Generate an ephemeral key pair (d e,v, Q e,v ) from the domain parameters D as specified in appendix B.1 or B.2. Send the public key Q e,v to U. Receive an ephemeral public key Q e,u (purportedly) from U. If Q e,u is not received, output an error indicator and stop. 2. Verify that Q e,u is a valid public key for the domain parameters D as specified in appendix B.3. If assurance of public key validity cannot be obtained, output an error indicator and stop. 3. Use the ECC CDH primitive specified in section 4 to derive a shared secret Z an element of the finite field of size q from the set of domain parameters D, V s ephemeral private key d e,v and U s ephemeral public key Q e,u. If the call to the ECC CDH primitive outputs an error indicator, zeroize the results of all intermediate calculations used in the attempted computation of Z, output an error indicator, and stop. 4. Convert Z to a byte string (which is denoted by Z bytestring 8 ) using the Field-Elementto-Byte-String conversion specified in (see appendix C.3), and then zeroize the results of all intermediate calculations used in the computation of Z. The length of Z bytestring will be 32 bytes for P-256 and 48 bytes for P Use the agreed upon key derivation function 9 to derive shared secret keying material DerivedKeyingMaterial of length keydatalen bits from the shared secret value Z bytestring and OtherInput (including the identifiers ID U and ID V ). If the key derivation function outputs an error indicator, zeroize all copies of Z and Z bytestring, output an error indicator, and stop. 7 See section 5 for the NIST Concatenation Key Derivation Function. See section 8 and the referenced IETF RFCs for Suite B key derivation functions for the IETF protocols IKE/IPSec, S/MIME, SSH, and TLS. 8 This term does not exist in SP A. SP A uses Z to denote both quantities: the Z output from the ECC CDH primitive and the byte-string form of Z. 9 See section 5 for the NIST Concatenation Key Derivation Function. See section 8 and the referenced IETF RFCs for Suite B key derivation functions for the IETF protocols IKE/IPSec, S/MIME, SSH, and TLS. 10
11 6. Zeroize all copies of the shared secret Z and Z bytestring. Output the secret derived keying material DerivedKeyingMaterial or an error indicator. Output: The bit string DerivedKeyingMaterial of length keydatalen bits or an error indicator. Table 1: Ephemeral Unified Model Key-agreement Scheme Summary Party U Party V Domain Parameters (q, FR, a, b{, SEED}, G, n, h) (q, FR, a, b{, SEED}, G, n, h) Static Data N/A N/A Ephemeral Data 1. Ephemeral private key, d e,u 2. Ephemeral public key, Q e,u 1. Ephemeral private key, d e,v 2. Ephemeral public key, Q e,v Computation Derive Secret Keying Material Compute Z by calling ECC CDH using d e,u and Q e,v Compute kdf(z bytestring, OtherInput) Zeroize Z and Z bytestring Compute Z by calling ECC CDH using d e,v and Q e,u Compute kdf(z bytestring, OtherInput) Zeroize Z and Z bytestring 3.2 One-Pass Diffie-Hellman This section describes the One-Pass Diffie-Hellman scheme from SP A. For this scheme, Party U generates an ephemeral key pair; Party V has only a static key pair. Party U obtains Party V s static public key in a trusted manner (for example, from a certificate signed by a trusted CA) and sends its ephemeral public key to Party V. Each party computes the shared secret by using its own private key and the other party s public key. Then each party uses the shared secret to derive shared secret keying material. 11
12 U V s Static Public Key U s Ephemeral Public Key V 1. U uses its ephemeral private key, d e,u, and V s static public key, Q s,v, to form a shared secret Z. 2. U invokes the Key Derivation Function using the shared secret and other input. 1. V uses its static private key, d s,v, and U s ephemeral public key, Q e,u, to form a shared secret Z. 2. V invokes the Key Derivation Function using the shared secret and other input. Figure 2: Initiator has Only an Ephemeral Key Pair and the Responder has Only a Static Key Pair. Prerequisites: 1. Each party shall have an authentic copy of the same set of domain parameters, D, where D = (q, FR, a, b{, SEED}, G, n, h). D must be selected from one of the two sets of domain parameters specified in Appendix A. 2. The responder shall have been designated as the owner of a static key pair that was generated as specified in appendix B, using the set of domain parameters, D. 3. The parties shall use the NIST Concatenation Key Derivation Function 10 in section 5. SHA-256 is the hash function to use with the domain parameters for P- 256 and SHA-384 is the hash function to use with the domain parameters for P- 384 (see FIPS 180-3). If SP A-compliant key confirmation is used, the parties shall have agreed upon an Approved MAC and associated parameters (see section 6 for further guidance). 4. Prior to or during the key-agreement process, each party shall obtain the identifier associated with the other party during the key-agreement scheme. The initiator shall obtain the static public key that is bound to the responder s identifier. This static public key shall be obtained in a trusted manner (e.g., from a certificate signed by a trusted CA). The initiator shall obtain assurance of the validity of the responder s static public key has been established as specified in appendix B, using the set of domain parameters, D. Note that U and V must use identical orderings of the bit strings that are input to the key derivation function in order for each party to produce the same shared secret keying material. Party U shall execute the following key-agreement transformation in order to a) establish a shared secret value Z with Party V, and b) derive shared secret keying material from Z. 10 Exceptions have been granted by NIST for certain IETF protocols. See NIST s Implementation Guidance for FIPS and the Cryptologic Module Validation Program for the most current information regarding waivers for the KDFs used by particular IETF protocols. 12
13 Actions: U shall derive secret keying material as follows: 1. Generate an ephemeral key pair (d e,u, Q e,u ) from the domain parameters D as specified in appendix B.1 or B.2. Send the public key Q e,u to V. 2. Use the ECC CDH primitive in section 4 to derive a shared secret Z an element of the finite field of size q from the set of domain parameters D, U s ephemeral private key d e,u and V s static public key Q s,v. If this call to the ECC CDH primitive outputs an error indicator, zeroize the results of all intermediate calculations used in the attempted computation of Z, output an error indicator, and stop. 3. Convert Z to a byte string (which is denoted by Z bytestring 11 ) using the Field- Element-to-Byte-String Conversion specified in (see appendix C.3), and then zeroize the results of all intermediate calculations used in the computation of Z and Z bytestring. The length of Z bytestring will be 32 bytes for P-256 and 48 bytes for P Use the agreed upon key derivation function 12 to derive secret keying material DerivedKeyingMaterial of length keydatalen bits from the shared secret value Z bytestring and OtherInput (including the identifiers ID U and ID V ).(See section 5). If the key derivation function outputs an error indicator, zeroize all copies of Z and Z bytestring, output an error indicator, and stop. 5. Zeroize all copies of the shared secret Z and Z bytestring. Output the secret derived keying material or an error indicator. 6. If SP A-compliant key confirmation is required, see section 6. Output: The bit string DerivedKeyingMaterial of length keydatalen bits or an error indicator. Party V shall execute the following key-agreement transformation in order to a) establish a shared secret value Z with Party U, and b) derive shared secret keying material from Z. Actions: V shall derive secret keying material as follows: 1. Receive an ephemeral public key Q e,u (purportedly) from U. If Q e,u is not received, output an error indicator and stop. 2. Verify that Q e,u is a valid public key for the parameters D as specified in appendix B.3. If assurance of public key validity cannot be obtained, output an error indicator and stop. 3. Use the ECC CDH primitive in section 4 to derive a shared secret Z an element of the finite field of size q from the set of domain parameters D, V s static private key d s,v and U s ephemeral public key Q e,u. If this call to the ECC CDH 11 This term does not exist in SP A. SP A uses Z to denote both quantities: the Z output from the ECC CDH primitive and the byte-string form of Z. 12 See section 5 for the NIST Concatenation Key Derivation Function. See section 8 and the referenced IETF RFCs for Suite B key derivation functions for the IETF protocols IKE/IPSec, S/MIME, SSH, and TLS. 13
14 primitive outputs an error indicator, zeroize the results of all intermediate calculations used in the attempted computation of Z, output an error indicator, and stop. 4. Convert Z to a byte string (which is denoted by Z bytestring 13 ) using the Field- Element-to-Byte-String Conversion specified in (see appendix C.3), and then zeroize the results of all intermediate calculations used in the computation of Z and Z bytestring. The length of Z bytestring will be 32 bytes for P-256 and 48 bytes for P Use the agreed upon key derivation function 14 to derive secret keying material DerivedKeyingMaterial of length keydatalen bits from the shared secret value Z bytestring and OtherInput (including the identifiers ID U and ID V ).(See section 5). If the key derivation function outputs an error indicator, zeroize all copies of Z and Z bytestring, output an error indicator, and stop. 6. Zeroize all copies of the shared secret Z and Z bytestring. Output the shared secret derived keying material or an error indicator. 7. If SP A-compliant key confirmation is required, see section 6. Output: The bit string DerivedKeyingMaterial of length keydatalen bits or an error indicator. Table 2: One-Pass Diffie-Hellman Key-agreement Scheme Summary Party U Party V Domain Parameters (q, FR, a, b{, SEED}, G, n, h) (q, FR, a, b{, SEED}, G, n, h) Static Data N/A 1. Static private key, d s,v 2. Static public key, Q s,v Ephemeral Data 1. Ephemeral private key, d e,u N/A 2. Ephemeral public key, Q e,u Computation Derive Secret Keying Material Compute Z by calling ECC CDH using d e,u and Q s,v Compute kdf(z bytestring, OtherInput) Zeroize Z and Z bytestring Compute Z by calling ECC CDH using d s,v and Q e,u Compute kdf(z bytestring, OtherInput) Zeroize Z and Z bytestring 13 This term does not exist in SP A. SP A uses Z to denote both quantities: the Z output from the ECC CDH primitive and the byte-string form of Z. 14 See section 5 for the NIST Concatenation Key Derivation Function. See section 8 and the referenced IETF RFCs for Suite B key derivation functions for the IETF protocols IKE/IPSec, S/MIME, SSH, and TLS. 14
15 4. Elliptic Curve Cryptography Cofactor Diffie-Hellman (ECC CDH) Primitive The shared secret Z is computed using the domain parameters D (see Appendix A), the other party s public key and one s own private key. Assume that the party performing the computation is Party A and the other party is Party B. Note that Party A could be either the initiator U or the responder V. Input: 1. (q, FR, a, b{, SEED}, G, n, h): Domain parameters (see appendix A) 2. d A : One s own private key, and 3. Q B : The other party s public key. Process: 1. Compute the point P = hd A Q B. Note that for the Suite B curves, the cofactor h = 1, which reduces cofactor ECDH to ordinary ECDH. 2. If P = O, the point at infinity, output an error indicator. 3. Z = x P where x P is the x-coordinate of P. Output: The shared secret Z or an error indicator. 5. Key Derivation Function NIST Concatenation KDF The NIST Concatenation KDF is the required key derivation function unless using one of the IETF protocols for which an exemption has been granted by NIST (see section 8). The NIST Concatenation KDF is as follows: Function call: kdf(z bytestring 15, OtherInput) where OtherInput is keydatalen and OtherInfo. Fixed Values (implementation dependent): 1. hashlen: an integer that indicates the length (in bits) of the output of the hash function used to derive blocks of secret keying material. This will be either 256 (for SHA-256) or 384 (for SHA-384). 2. max_hash_inputlen: an integer that indicates the maximum length (in bits) of the bit string(s) input to the hash function. 15 This term does not exist in SP A. SP A uses Z to denote both quantities: the Z output from the ECC CDH primitive and the byte-string form of Z. 15
16 Function: H: a hash function, either SHA-256 or SHA-384. Input: 1. Z bytestring : the shared secret in byte-string form. 2. keydatalen: an integer that indicates the length (in bits) of the secret keying material to be generated; keydatalen shall be less than or equal to hashlen x (2 32-1). 3. OtherInfo: A bit string equal to the following concatenation: AlgorithmID PartyUInfo PartyVInfo { SuppPubInfo}{ SuppPrivInfo} where the subfields are defined as follows: 1. AlgorithmID: A bit string that indicates how the derived secret keying material will be parsed and for which algorithm(s) the derived secret keying material will be used. 2. PartyUInfo: A bit string containing public information that is required by the application using this KDF to be contributed by Party U to the key derivation process. At a minimum, PartyUInfo shall include ID U, the identifier of Party U. 3. PartyVInfo: A bit string containing public information that is required by the application using this KDF to be contributed by Party V to the key derivation process. At a minimum, PartyVInfo shall include ID V, the identifier of Party V. 4. (Optional) SuppPubInfo: A bit string containing additional, mutuallyknown public information. 5. (Optional) SuppPrivInfo: A bit string containing additional, mutuallyknown private information (for example, a shared secret symmetric key that has been communicated through a separate channel). Each of the three subfields AlgorithmID, PartyUInfo and PartyVInfo shall be the concatenation of an application-specific, fixed sequence of substrings of information. Each substring representing a separate unit of information shall have one of these two formats: either it is a fixed-length bit string, or it has the form Datalen Data, where Data is a variable-length string of zero or more bytes and Datalen is a fixed-length, big endian counter that indicates the length (in bytes) of Data. (In this variable-length format, a null string of data shall be represented by using Datalen to indicate that Data has length zero.) An application using this KDF shall specify the ordering and number of separate information substrings used in each of the subfields, PartyUInfo and PartyVInfo, and shall also specify which of two formats (fixed-length or variable-length) is used for each substring. The application shall specify the lengths for all fixed-length quantities, including the Datalen counters. The subfields SuppPubInfo and SuppPrivInfo (when allowed by the application) shall be formed by the concatenation of an application-specific, fixed sequence of substrings of additional information that may be used in key derivation upon mutual agreement of parties U and V. Each substring representing a separate unit of information shall be of the form Datalen Data, where Data is a variable-length string of zero or more bytes and Datalen is a fixed-length, big-endian counter that indicates the length (in bytes) of Data. 16
17 The information substrings that parties U and V choose not to contribute are set equal to Null and are represented in this variable-length format by setting Datalen equal to zero. If an application allows the use of the OtherInfo subfield SuppPrivInfo and/or the subfield SuppPubInfo, then the application shall specify the ordering and the number of additional information substrings that may be used in the allowed subfield(s) and shall specify the fixed-length of the Datalen counters. Process: 1. reps = keydatalen / hashlen 2. If reps > (2 32-1), then ABORT: output an error indicator and stop. 3. Initialize a 32-bit, big-endian bit string counter as If (counter Z bytestring OtherInfo) is more than max_hash_inputlen bits long, then ABORT: output an error indicator and stop. 5. For i = 1 to reps by 1, do the following: Compute Hash i = H(counter Z bytestring OtherInfo) Increment counter (modulo 2 32 ), treating it as an unsigned 32-bit integer. 6. Let Hhash be set to Hash reps if (keydatalen / hashlen) is an integer; otherwise, let Hhash be set to the (keydatalen mod hashlen) leftmost bits of Hash reps. 7. Set DerivedKeyingMaterial = Hash 1 Hash 2 Hash reps-1 Hhash. Output: The bit string DerivedKeyingMaterial of length keydatalen bits (or an error indicator). Any scheme attempting to call this key derivation function with keydatalen greater than or equal to hashlen (2 32-1) shall output an error indicator and stop without outputting DerivedKeyingMaterial. Any call to the key derivation function involving an attempt to hash a bit string that is greater than max_hash_inputlen bits long shall cause the KDF to output an error indicator and stop without outputting DerivedKeyingMaterial. Notes: 1. ID U and ID V shall be represented in OtherInfo as separate units of information, using either the fixed-length format or the variable-length format described above according to the requirements of the application using this KDF. The rationale for including the identifiers in the KDF input is provided in Appendix B of SP A. 2. Party U shall be the initiator and Party V shall be the responder, as assigned by the protocol employing the key-agreement scheme used to determine the shared secret Z bytestring. The output from the KDF shall only be used for secret keying material, such as a symmetric key used for data encryption or message integrity, a secret initialization vector, or a master key that will be used to generate other keys. Non-secret keying material shall not be generated using the shared secret. 17
18 Each call to the KDF requires a freshly computed shared secret and this shared secret shall be zeroized immediately following its use. The derived secret keying material shall be computed in it entirety before outputting any portion of it. The derived secret keying material may be parsed into one or more keys or other secret cryptographic keying material (for example, secret initialization vectors). If Key Confirmation or implementation validation testing are to be performed, then the MAC key shall be formed from the first bits of the KDF output and zeroized after its use. 6. Key Confirmation Key Confirmation refers to methods used to provide assurance to one party (the keyconfirmation recipient) that another party (the key-confirmation provider) possesses the correct shared secret and/or derived keying material (from the key-confirmation recipient s perspective). It is strongly recommended that new developments include key confirmation due to the security benefits that key confirmation provides. Often, key confirmation is provided implicitly (e.g., by the recipient s ability to successfully decrypt an encrypted message from the other party using a key derived during the key-agreement transaction), but this assurance can also be provided as an integral part of a key-agreement transaction by the explicit exchange of key-confirmation information (e.g., by the exchange of appropriately-defined MAC values computed using a key derived specifically for that purpose). Under certain circumstances, explicit key confirmation may be incorporated directly into the key-agreement scheme employed by a key-agreement protocol. More often, explicit key confirmation is handled as a separate component of the protocol. The specifications in SP A deal only with situations where key confirmation is implemented as part of the key-agreement scheme itself, and are limited to cases where the key-confirmation provider has an identifier that is bound to a static public key-establishment key used during the transaction. SP A does not prohibit the inclusion of key confirmation as a separate component of a protocol (or by any other means), but provides no statement concerning the adequacy of methods that are not specified in SP A. The implication of this restriction for Suite B is that SP A-compliant key confirmation can only be directly incorporated into implementations of the One-Pass Diffie-Hellman scheme, where the responder (as the owner of the static public keyestablishment key) serves as the key-confirmation provider and the other party (the initiator of the key-agreement transaction, who contributes an ephemeral public key) serves as the key-confirmation recipient. However, there is no prohibition against providing/obtaining key confirmation by other means and SP A recommends that each party to a key-agreement transaction should endeavor to obtain assurance that the other party possesses the correct derived keying material. 18
19 The NIST SP A key-confirmation process requires the use of a Message Authentication Code (MAC) algorithm. The Keyed-Hash Message Authentication Code (HMAC), as specified in FIPS 198-1, is to be used with either SHA-256 or SHA-384. A final note: When it is included in a key-agreement transaction, properly-defined key confirmation may also permit the recipient to obtain assurance that the provider had knowledge of the private key corresponding to the provider s public key and was able to use it correctly. For example, SP A-compliant key confirmation can be used to provide/obtain assurance of static-private-key possession in conjunction with keyagreement transactions employing the One-Pass Diffie-Hellman scheme. NIST A Key-confirmation Steps for One-Pass ECDH: Party U (Initiator and KC Recipient) Party V s Static Public Key EphemPubKey U MacTag V Party V (Responder and KC Provider) Figure 3: One-Pass ECDH with Key Confirmation MacData V is formed as follows: MacData V = KC_1_V ID V ID U Null EphemPubKey U { Text}, where ID V is V s identifier, ID U is U s identifier, Null is the empty byte string, EphemPubKey U is U s ephemeral public key, and Text is an optional bit string that may be used during key confirmation and that is known by the parties establishing the secret keying material. After computing the shared secret and applying the key derivation function to obtain DerivedKeyingMaterial, Party V parses DerivedKeyingMaterial into two parts, MacKey and KeyData: MacKey KeyData = DerivedKeyingMaterial Party V computes MacTag V = MAC (MacKey, MacLen, MacData V ), where the mutually-agreed upon parameter MacLen determines the length (in bits) of the MAC output. Party V then sends MacTag V to Party U. 19
20 Party U computes its own versions of MacData V, MacKey, KeyData and MacTag V in the same manner as Party V, and then compares its computed MacTag V to the MacTag V received from Party V. If the received value is equal to the value computed by Party U, then Party U is assured that Party V has derived the same value for MacKey and that Party V shares Party U s value of MacData V. The assurance of a shared value for MacKey provides assurance to Party U that Party V also shared the secret values, Z and Z bytestring, from which MacKey and KeyData are derived. Thus, Party U also has assurance that Party V could compute KeyData correctly. 7. Assurance of Possession of Static Private Keys When static key pairs are locally generated, then as part of the certificate request/issuance process, the CA must obtain assurance that the party for whom the certificate is requested (the eventual owner of the key pair) is in possession of the private key corresponding to the public key that will be included in the certificate. Methods that can be used by the CA to obtain this assurance of possession are specified in the Suite B Profile of Certificate Management over CMS. This requirement applies to the static key-establishment key used in the One-Pass Diffie- Hellman scheme. 8. IETF Protocols The IETF protocols IKE/IPsec, S/MIME, SSH and TLS (among others) were all developed prior to NIST SP A and their key-establishment components do not fully comply with the key-establishment requirements contained in SP A. For example, IETF protocols often permit the use of domain parameters, hash functions, MAC algorithms, etc., that would not be approved by SP A and are not recommended for use in Suite B products. In addition, there are discrepancies in the methods used to derive keying material from the shared secret value created during what could otherwise be a NIST-compliant ECDH exchange. NIST has, however, made exceptions for such discrepancies between SP A and a number of these widely-used protocols. See section 7.1 of the Implementation guidance for FIPS and the Cryptographic Module Validation Program (CMVP) for a description of the extent to which departures from the requirements of SP A are allowed in products submitted to the CMVP for FIPS validation. The public key infrastructure certificates used in each protocol follow the Suite B Certificate and Certificate Revocation List Profile. This profile is a refinement of RFC 5280, Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile, and assumes that the reader is familiar with RFC
21 Certificate management follows the Suite B Profile of Certificate Management over CMS 16. The following sections discuss implementing specific IETF protocols in the context of Suite B. 8.1 IKE/IPsec Suite B compliant implementations of IPsec must use one of the four cryptographic suites defined in RFC , Suite B Cryptographic Suites for IPsec, by L. Law & J. Solinas, dated May The IPsec key-agreement protocols, IKEv1 (see RFC 2409) and IKEv2 (see RFC 4306), use the Ephemeral Unified Model key-agreement scheme. In Suite B compliant IKEv2, the key exchange must be authenticated (by both parties) using ECDSA signatures. Therefore, each party must possess an X.509v3 certificate containing an ECDSA public key (signed by a CA with ECDSA). Similarly, in Suite B compliant IKEv1, the key exchange must be authenticated (by both parties). Authentication can be accomplished using ECDSA signatures, in which case, each party must possess an X.509v3 certificate containing a cryptographic-suitedependent ECDSA public key (signed by a CA with ECDSA). For interoperability purposes, Suite B compliant IKEv1 implementations must also support authentication via the use of a pre-shared key. IKEv1 and IKEv2 do not use the NIST Concatenation KDF. Section 5 of RFC 2409 and section 2.13 of RFC 4306 describe the PRF used to derive session keys for encryption and integrity protection. The PRF used for key derivation by Suite B IPsec implementations employs HMAC based on either SHA-256 or SHA-384, and has the structure of the NIST Concatenation KDF in feedback mode (with an iteration variable described in section 5.2 of SP ). The NIST key-confirmation routine is only intended for protocols that use static key pairs. Suite B implementations of IKE will not use static key pairs, hence NIST key confirmation cannot be included in Suite B implementations of IKE. However, the authentication processes used in IKE include implicit confirmation that the keying material has been correctly computed. 8.2 S/MIME Suite B compliant implementations of S/MIME must follow RFC 5008 Suite B in Secure/Multipurpose Internet Mail Extensions (S/MIME), by R. Housley & J. Solinas, dated September Suite B compliant S/MIME utilizes the One-Pass ECDH key-agreement scheme (using either the P-256 or P-384 elliptic curve) to facilitate encryption. The initiator s 16 Cryptographic Message Syntax 17 RFC 4869 is in the process of being updated. The update will appear as an Internet-Draft on the IETF website ( and once approved will become a new RFC. 21
22 contribution is an ephemeral key, while the recipient s contribution is static. Therefore, in order to receive encrypted , the recipient must possess an X.509v3 certificate containing the static public ECDH key-establishment key (signed by a CA using ECDSA) and that certificate must be provided to the initiator. The initiator generates an ephemeral ECDH key on the same curve as the recipient s static public ECDH key. The initiator must have an ECDSA signing key in order to send a signed message to the recipient. The recipient must be provided an X.509v3 certificate containing the public ECDSA key that will be used to verify the initiator s signature. (That certificate must be signed by a CA that also used ECDSA.) Suite B compliant implementations of S/MIME are not permitted to use certificates asserting both key agreement/encipherment and digital signature in the key usage extension. S/MIME does not use the NIST Concatenation KDF. The KDF used in S/MIME for elliptic curve cryptography is taken from SEC1: Elliptic Curve Cryptography, section and is the ANSI X9.63 KDF. This KDF is similar to the NIST Concatenation KDF except that the order of the counter and the shared secret are reversed and some of the requirements on the other input values are relaxed. For Suite B, the only hash algorithms that may be used are SHA-256 and SHA-384 (see RFC 5008). 8.3 SSH Suite B compliant implementations of SSH must follow the Internet-Draft Suite B Cryptographic Suites for Secure Shell (draft-igoe-secsh-suiteb-00.txt), by K. Igoe, dated September Note that the September 2008 draft is a work-in-progress. Subsequent drafts and eventually the final RFC will supersede earlier drafts. In Suite B compliant SSH, the key-agreement protocol employs the Ephemeral Unified Model ECDH key-agreement scheme (using either the P-256 or P-384 elliptic curve), in which the server authenticates its contribution via an ECDSA signature. The server must supply to the client an X.509v3 certificate containing the public ECDSA key that will be used to verify its signature. (That certificate must be signed by a CA that also used ECDSA.) While the client does not directly authenticate its contribution to the key-agreement process, the client does authenticate itself to the server by sending an ECDSA-signed message via a secure tunnel that is protected by keying material established during the key-agreement protocol. The SSH authentication protocol refers to this as the public key method of client authentication. The public key blob of the client s ECDSAsigned SSH_MSG_USERAUTH_REQUEST message must include an X.509v3 certificate (signed by a CA with ECDSA) that contains the public ECDSA signature key that will be used to verify the client s signature. Note that neither the server nor the client in a Suite B compliant SSH implementation requires a static key-establishment key pair. 22
23 SSH does not use the NIST Concatenation KDF. Section 7.2 of RFC 4253 describes the KDF used to compute IVs, encryption keys and integrity keys. The SSH KDF differs from the NIST Concatenation KDF in that SSH uses feedback instead of a counter and the SSH KDF lacks some of the parameters used by the NIST Concatenation KDF. For Suite B, the hash function used for the SSH KDF will be either SHA-256 or SHA-384. Section 4 of Elliptic-Curve Algorithm Integration in the Secure Shell Transport Layer (draft-green-secsh-ecc-08.txt, work-in-progress) requires that all elliptic-curve public keys must be validated after they are received. See appendix B.3 of the Suite B Implementer s Guide to SP A for the public-key validation routine. The NIST key-confirmation routine is only intended for parties that make use of a static key-establishment key pair. Suite B implementations of SSH will not use static key pairs, hence NIST key confirmation cannot be included in Suite B implementations of SSH. Implicit key confirmation is provided by the client by sending SSH_MSG_USERAUTH_REQEST protected using established keys. 8.4 TLS Suite B implementations of TLS follow: RFC 5246 The Transport Layer Security (TLS) Protocol Version 1.2 and RFC 5430 Suite B Profile for Transport Layer Security (TLS). During the TLS handshake protocol, Suite B compliant implementations supporting a common level of security (as defined in RFC 5430) will utilize the form of keyagreement that TLS calls ECDHE_ECDSA (using either the P-256 or P-384 elliptic curve, as appropriate to the security level). This is the Ephemeral Unified Model keyagreement scheme, in which the server authenticates its contribution via an ECDSA signature. The server must supply to the client an X.509v3 certificate containing an acceptable (to the client) ECDSA key that will be used to verify its signature. That certificate must be signed by a CA using ECDSA. If the client is also to be authenticated during the TLS handshake, it must possess an X.509v3 certificate containing an acceptable (to the server) ECDSA key, signed by a CA using an acceptable version of ECDSA. To indicate its desire for client authentication, the server sends a certificate request message of the type ECDSA_sign, asking the client for an appropriate ECDSA certificate. RFC 5430 defines which types of ECDSA keys and certificate signatures are acceptable for Suite B compliance with the defined security levels. Note that neither the server nor the client in a TLS handshake requires a static key-establishment key pair to establish a Suite B compliant connection. TLS does not use the NIST Concatenation KDF. Section 5 of RFC 5246 defines one PRF used for key derivation based upon HMAC which is acceptable for Suite B use, provided 23
24 that the hash function used by HMAC is SHA-256 or SHA-384. The hash function used will depend on the target security level. The NIST key-confirmation routine is only intended for parties that make use of a static key-establishment key pair. Suite B implementations of TLS (supporting a common level of security) will use only ephemeral key-establishment keys; hence, there is no requirement for the NIST key-confirmation routine. Note that a form of explicit key confirmation is provided by the exchange of FINISHED messages at the conclusion of the handshake protocol. 24
25 References ANS X9.63, Public Key Cryptography for the Financial Services Industry: Key- Agreement and Key Transport Using Elliptic Curve Cryptography, dated December FIPS 180-3, Secure Hash Standard, Issued October FIPS 186-3, Digital Signature Standard, Issued June FIPS 198-1, The Keyed-Hash Message Authentication Code, Issued July Implementation Guidance for FIPS and the Cryptographic Module Validation Program, published by NIST, initial release March 2003/update April Internet-Draft Elliptic-Curve Algorithm Integration in the Secure Shell Transport Layer, by D. Stebila and J. Green, dated June 2009 (draft-green-secsh-ecc-08.txt), workin-progress. Internet-Draft Suite B Cryptographic Suites for Secure Shell, by K. Igoe, dated September 2008 (draft-igoe-secsh-suiteb-00.txt), work-in-progress. Internet-Draft Suite B Certificate and Certificate Revocation List (CRL) Profile, by J. Solinas and L. Zieglar, dated July 2009 (draft-solinas-suiteb-cert-profile-04.txt), work-inprogress. Internet-Draft Suite B Profile of Certificate Management over CMS, by S. Turner and M. Peck, dated April 2009 (draft-turner-suiteb-cmc-00.txt), work-in-progress. Mathematical Routines for NIST Prime Elliptic Curves, dated March 2008, available on the Information Assurance Suite B Cryptography webpage at RFC 4253 The Secure Shell (SSH) Transport Layer Protocol, by T. Ylonen and C. Lonvick, dated January RFC 4306 Internet Key Exchange (IKEv2) Protocol, by C. Kaufman, dated December RFC 4869 Suite B Cryptographic Suites for IPsec, by L. Law & J. Solinas, dated May (Note: This RFC is being updated. Check the IETF website: RFC 5008 Suite B in Secure/Multipurpose Internet Mail Extensions (S/MIME), by R. Housley & J. Solinas, dated September RFC 5246 The Transport Layer Security (TLS) Protocol Version 1.2, by T. Dierles and E. Rescorla, dated August
26 RFC 5430 Suite B Profile for Transport Layer Security (TLS), by R. Housley, E. Rescorla and M. Salter, dated March Standards for Efficient Cryptography, SEC1: Elliptic Curve Cryptography, dated September SP A NIST SP A: Recommendation for Pair-Wise Key-establishment Schemes Using Discrete Logarithm Cryptography, by E. Barker, D. Johnson and M. Smid, dated March SP NIST SP : Recommendation for Key Management Part 1: General, by E. Barker, W. Barker, W. Burr, W. Polk and M. Smid, dated March SP NIST SP : Recommendation for Key Derivation Using Pseudorandom Functions, by Lily Chen, dated November
27 Appendix A. Suite B Curves and Domain Parameters Domain parameters for ECC schemes are of the form: (q, FR, a, b{, SEED}, G, n, h), where q is the field size; FR is an indication of the basis used; a and b are two field elements that define the equation of the curve; SEED is an optional bit string that is included if the elliptic curve was randomly generated in a verifiable fashion; G is a generating point consisting of (x G,y G) of prime order on the curve; n is the order of the point G ; and h is the cofactor (which is equal to the order of the curve divided by n). Suite B requires the use of one of the following two sets of domain parameters: A.1. Domain Parameters for Curve P-256 The values for the domain parameters for P-256 follow: Field size: q = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF Field Representation indicator FR = NULL Curve parameter: a = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFC Curve parameter: b = 5AC635D8 AA3A93E7 B3EBBD BC 651D06B0 CC53B0F6 3BCE3C3E 27D2604B Seed used to generate parameter b: SEED = C49D E A6678E1 139D26B7 819F7E90 x-coordinate of base point G: x G = 6B17D1F2 E12C4247 F8BCE6E5 63A440F D81 2DEB33A0 F4A13945 D898C296 y-coordinate of base point G: y G = 4FE342E2 FE1A7F9B 8EE7EB4A 7C0F9E16 2BCE3357 6B315ECE CBB BF51F5 Order of the point G: n = FFFFFFFF FFFFFFFF FFFFFFFF BCE6FAAD A7179E84 F3B9CAC2 FC
28 Cofactor (order of the elliptic curve divided by the order of the point G) h = 1 A.2 Domain Parameters for Curve P-384 The values for the domain parameters for P-384 follow: Field size: q = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFFFF FFFFFFFF Field Representation indicator FR = NULL Curve parameter: a = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFFFF FFFFFFFC Curve parameter: b = B3312FA7 E23EE7E4 988E056B E3F82D19 181D9C6E FE F A C656398D 8A2ED19D 2A85C8ED D3EC2AEF Seed used to generate parameter b: SEED = A335926A A319A27A 1D00896A 6773A482 7ACDAC73 x-coordinate of base point G: x G = AA87CA22 BE8B0537 8EB1C71E F320AD74 6E1D3B62 8BA79B98 59F741E A F25D BF55296C 3A545E AB7 y-coordinate of base point G: y G = 3617DE4A 96262C6F 5D9E98BF 9292DC29 F8F41DBD 289A147C E9DA3113 B5F0B8C0 0A60B1CE 1D7E819D 7A431D7C 90EA0E5F Order of the point G: n = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF C7634D81 F4372DDF 581A0DB2 48B0A77A ECEC196A CCC52973 Cofactor (order of the elliptic curve divided by the order of the point G) h = 1 B. Key Pair Generation and Assurance of Public Key Validity Each static and ephemeral private key d and public key Q shall be generated using the appropriate domain parameters and either Key Pair Generation Using Extra Random Bits or Key Pair Generation by Testing Candidates. Both generation methods are 28
29 contained in FIPS 186-3, Appendix B.4 on ECC Key Pair Generation and detailed in appendices B.1 and B.2 of this document for convenience. Both methods require use of an approved random bit generator, referred to as an RBG in the description of each method. The process from NIST SP A to provide assurance of public key validity is given in section B.3. Note that both ECDH schemes use this process. Assurance of public key validity is inherent in both key generation methods; hence, additional steps to provide assurance of public-key validation immediately after generation are not required. B.1 Key Pair Generation Using Extra Random Bits In this method, 64 more bits are requested from the RBG than needed for d so that bias produced by the mod function in step 6 is negligible. The steps are as follows: Input: Domain Parameters (q, FR, a, b{, SEED}, G, n, h) Output: 1. status: The status returned from the key pair generation procedure. The status will indicate SUCCESS or an ERROR. 2. (d, Q): The generated private and public keys. If an error is encountered during the generation process, invalid values for d and Q should be returned, as represented by Invalid_d and Invalid_Q. d is an integer and Q is an elliptic curve point. The generated private key d is in the range [1, n-1]. Process: 1. N = len(n). Check that N is valid, that is, N = 256 or N = 384 (the only valid lengths for Suite B) 2. If N is invalid, then return an ERROR indication, Invalid_d and Invalid_Q. 3. requested_security_strength = the security strength associated with N(either 128 when using P-256 or 192 when using P-384). 4. Obtain a string of N+64 returned_bits from an RBG with a security strength of requested_security_strength or more. If an ERROR indication is returned, then return the ERROR indication, Invalid_d and Invalid_Q. 5. Convert returned_bits to the (non-negative) integer c (see appendix C.1). 6. d = (c mod (n-1)) Q = dg. 8. Return SUCCESS, d, and Q. 29
30 B.2 Key Pair Generation by Testing Candidates In this method, a random number is obtained and tested to determine that it will produce a value of d in the correct range. If d is out-of-range, the process is iterated until an acceptable value of d is obtained. The steps are as follows: Input: Domain Parameters (q, FR, a, b{, SEED}, G, n, h) Output: 1. status: The status returned from the key pair generation procedure. The status will indicate SUCCESS or an ERROR. 2. (d, Q): The generated private and public keys. If an error is encountered during the generation process, invalid values for d and Q should be returned, as represented by Invalid_d and Invalid_Q. d is an integer and Q is an elliptic curve point. The generated private key d is in the range [1, n-1]. Process: 1. N = len(n). Check that N is valid, that is, N = 256 or N = 384 (the only valid lengths for Suite B) 2. If N is invalid, then return an ERROR indication, Invalid_d and Invalid_Q. 3. requested_security_strength = the security strength associated with N (either 128 when using P-256 or 192 when using P-384). 4. Obtain a string of N returned_bits from an RBG with a security strength of requested_security_strength or more. If an ERROR indication is returned, then return the ERROR indication, Invalid_d and Invalid_Q. 5. Convert returned_bits to the (non-negative) integer c (see appendix C.1). 6. If (c > n-2), then go to step d = c Q = dg. 9. Return SUCCESS, d, and Q. B.3 Assurance of Public Key Validity Prior to executing a routine that performs elliptic curve computations on either ephemeral or static public keys, the ECC Partial Public-Key Validation Routine should be executed on the public keys. SP A specifies two routines to perform public-key validation: ECC Full Public Key Validation and ECC Partial Public Key Validation. The difference between the two 30
31 routines is a check to ensure that the point has the correct order. This check is unnecessary for prime-order curves, such as the curves used in Suite B. As long as the implementation under testing only claims to support the Suite B subset of NIST curves, the partial validation routine will be sufficient to satisfy FIPS 140 CAVP testing of both full and partial public-key validation capabilities. ECC Partial Public-Key Validation Routine Input: The appropriate domain parameters and Q = (x Q,y Q ), a candidate ECC public key. Process 1. Verify that Q is not the point at infinity O. This can be done by inspection if the point is entered in the standard affine representation. If the point can be represented in standard affine representation, then the point is not the point at infinity. 2. Verify that x Q and y Q are integers in the interval [0,q-1]. This ensures that each coordinate of the public key has the unique correct representation of an element in the underlying field. 3. Verify that (y Q ) 2 (x Q ) 3 + ax Q + b (mod q), where a, b, q are the values indicated in the domain parameters used (see appendix A). This ensures that the public key is on the correct elliptic curve. Note that in SP A, the interval in step 2 is specified as [0,p-1] and the modulus in step 3 is specified as p. For the Suite B curves, q = p. Output: If any of the above checks fail, then output an error indicator. Otherwise, output an indication of validation success. C. Data Conversions C.1 Conversion of a Bit String to an Integer An m-long sequence of bits {x 1,, x m } is converted to an integer by the rule {x 1,, x m } (x 1 2 m-1 ) + (x 2 2 m-2 ) + + (x m-1 2) + x m. Note that the first bit of a sequence corresponds to the most significant bit of the corresponding integer and the last bit corresponds to the least significant bit. Input: The bit string b 1, b 2,, b m to be converted. Output: The requested integer representation C of the bit string. Process: 1. Let (b 1, b 2,, b m ) be the bits of b from leftmost to rightmost. 31
32 2. C = 2 (m-i) b i for i = 1 to m. 3. Return C C.2 Conversion of an Integer to a Bit String An integer x in the range 0 x < 2 m may be converted to an m-long sequence of bits by using its binary expansion as shown below: (x 1 2 m-1 ) + (x 2 2 m-2 ) + + (x m-1 2) + x m {x 1,, x m }. Note that the first bit of a sequence corresponds to the most significant bit of the corresponding integer and the last bit corresponds to the least significant bit. Input: A non-negative integer C to be converted and the intended length m of the bit string satisfying C < 2 m. Output: The representation b 1, b 2,, b m of the integer C. Process: 1. Input C and m. 2. For a given integer m that satisfies C < 2 m, the bits b i shall satisfy: C = 2 (m-i) b i for i = 1 to m. 3. Return (b 1, b 2,, b m ). C.3 Field-Element-to-Byte String/Integer-to-Byte String Conversion This section combines the Field-Element-to-Byte String and Integer-to-Byte String conversions from SP A because for the Suite B curves, the field elements are integers in the interval [0,p-1]. Input: A non-negative integer C and the intended length m of the byte string satisfying 2 8m > C Output: A byte string S of length m bytes. Process: 1. Let S 1, S 2,, S m be the bytes of S from leftmost to rightmost. 2. The bytes of S shall satisfy: C = 2 8(m-i) S i for i = 1 to m, where S i is interpreted as the big-endian binary representation of an unsigned integer. 32
33 33
Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography (Revised)
NIST Special Publication 800-56A Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography (Revised) Elaine Barker, Don Johnson, and Miles Smid C O M P U T E R S E C
C O M P U T E R S E C U R I T Y
NIST Special Publication 800-56C Recommendation for Key Derivation through Extraction-then-Expansion Lily Chen Computer Security Division Information Technology Laboratory C O M P U T E R S E C U R I T
National Security Agency Perspective on Key Management
National Security Agency Perspective on Key Management IEEE Key Management Summit 5 May 2010 Petrina Gillman Information Assurance (IA) Infrastructure Development & Operations Technical Director National
Recommendation for Applications Using Approved Hash Algorithms
NIST Special Publication 800-107 Recommendation for Applications Using Approved Hash Algorithms Quynh Dang Computer Security Division Information Technology Laboratory C O M P U T E R S E C U R I T Y February
Recommendation for Existing Application-Specific Key Derivation Functions
NIST Special Publication 800-135 Revision 1 Recommendation for Existing Application-Specific Key Derivation Functions Quynh Dang Computer Security Division Information Technology Laboratory C O M P U T
Transitions: Recommendation for Transitioning the Use of Cryptographic Algorithms and Key Lengths
NIST Special Publication 800-131A Transitions: Recommendation for Transitioning the Use of Cryptographic Algorithms and Key Lengths Elaine Barker and Allen Roginsky Computer Security Division Information
ARCHIVED PUBLICATION
ARCHIVED PUBLICATION The attached publication, FIPS Publication 186-3 (dated June 2009), was superseded on July 19, 2013 and is provided here only for historical purposes. For the most current revision
Digital Signature Standard (DSS)
FIPS PUB 186-4 FEDERAL INFORMATION PROCESSING STANDARDS PUBLICATION Digital Signature Standard (DSS) CATEGORY: COMPUTER SECURITY SUBCATEGORY: CRYPTOGRAPHY Information Technology Laboratory National Institute
Digital Signatures. Meka N.L.Sneha. Indiana State University. [email protected]. October 2015
Digital Signatures Meka N.L.Sneha Indiana State University [email protected] October 2015 1 Introduction Digital Signatures are the most trusted way to get documents signed online. A digital
Randomized Hashing for Digital Signatures
NIST Special Publication 800-106 Randomized Hashing for Digital Signatures Quynh Dang Computer Security Division Information Technology Laboratory C O M P U T E R S E C U R I T Y February 2009 U.S. Department
SEC 4: Elliptic Curve Qu-Vanstone Implicit Certificate Scheme (ECQV)
Standards for Efficient Cryptography SEC 4: Elliptic Curve Qu-Vanstone Implicit Certificate Scheme (ECQV) Contact: Certicom Research Eoin Buckley ([email protected]) April 3, 2014 Version (Draft)
Recommendation for Cryptographic Key Generation
NIST Special Publication 800-133 Recommendation for Cryptographic Key Generation Elaine Barker Allen Roginsky http://dx.doi.org/10.6028/nist.sp.800-133 C O M P U T E R S E C U R I T Y NIST Special Publication
Final Exam. IT 4823 Information Security Administration. Rescheduling Final Exams. Kerberos. Idea. Ticket
IT 4823 Information Security Administration Public Key Encryption Revisited April 5 Notice: This session is being recorded. Lecture slides prepared by Dr Lawrie Brown for Computer Security: Principles
Archived NIST Technical Series Publication
Archived NIST Technical Series Publication The attached publication has been archived (withdrawn), and is provided solely for historical purposes. It may have been superseded by another publication (indicated
I N F O R M A T I O N S E C U R I T Y
NIST Special Publication 800-78-2 DRAFT Cryptographic Algorithms and Key Sizes for Personal Identity Verification W. Timothy Polk Donna F. Dodson William. E. Burr I N F O R M A T I O N S E C U R I T Y
Recommendation for Key Management Part 1: General (Revision 3)
NIST Special Publication 800-57 Recommendation for Key Management Part 1: General (Revision 3) Elaine Barker, William Barker, William Burr, William Polk, and Miles Smid C O M P U T E R S E C U R I T Y
I N F O R M A T I O N S E C U R I T Y
NIST Special Publication 800-78-3 DRAFT Cryptographic Algorithms and Key Sizes for Personal Identity Verification W. Timothy Polk Donna F. Dodson William E. Burr Hildegard Ferraiolo David Cooper I N F
The Keyed-Hash Message Authentication Code (HMAC)
FIPS PUB 198-1 FEDERAL INFORMATION PROCESSING STANDARDS PUBLICATION The Keyed-Hash Message Authentication Code (HMAC) CATEGORY: COMPUTER SECURITY SUBCATEGORY: CRYPTOGRAPHY Information Technology Laboratory
Chapter 17. Transport-Level Security
Chapter 17 Transport-Level Security Web Security Considerations The World Wide Web is fundamentally a client/server application running over the Internet and TCP/IP intranets The following characteristics
Computer Security: Principles and Practice
Computer Security: Principles and Practice Chapter 20 Public-Key Cryptography and Message Authentication First Edition by William Stallings and Lawrie Brown Lecture slides by Lawrie Brown Public-Key Cryptography
NISTIR 7676 Maintaining and Using Key History on Personal Identity Verification (PIV) Cards
NISTIR 7676 Maintaining and Using Key History on Personal Identity Verification (PIV) Cards David A. Cooper NISTIR 7676 Maintaining and Using Key History on Personal Identity Verification (PIV) Cards David
Table of Contents. Bibliografische Informationen http://d-nb.info/996514864. digitalisiert durch
1 Introduction to Cryptography and Data Security 1 1.1 Overview of Cryptology (and This Book) 2 1.2 Symmetric Cryptography 4 1.2.1 Basics 4 1.2.2 Simple Symmetric Encryption: The Substitution Cipher...
EXAM questions for the course TTM4135 - Information Security May 2013. Part 1
EXAM questions for the course TTM4135 - Information Security May 2013 Part 1 This part consists of 5 questions all from one common topic. The number of maximal points for every correctly answered question
SMPTE Standards Transition Issues for NIST/FIPS Requirements v1.1
SMPTE Standards Transition Issues for NIST/FIPS Requirements v1.1 Contents 2010.8.23 DRM inside, Taehyun Kim ETRI, Kisoon Yoon 1 Introduction NIST (National Institute of Standards and Technology) published
Overview of Cryptographic Tools for Data Security. Murat Kantarcioglu
UT DALLAS Erik Jonsson School of Engineering & Computer Science Overview of Cryptographic Tools for Data Security Murat Kantarcioglu Pag. 1 Purdue University Cryptographic Primitives We will discuss the
1720 - Forward Secrecy: How to Secure SSL from Attacks by Government Agencies
1720 - Forward Secrecy: How to Secure SSL from Attacks by Government Agencies Dave Corbett Technical Product Manager Implementing Forward Secrecy 1 Agenda Part 1: Introduction Why is Forward Secrecy important?
OFFICE OF THE CONTROLLER OF CERTIFICATION AUTHORITIES TECHNICAL REQUIREMENTS FOR AUDIT OF CERTIFICATION AUTHORITIES
OFFICE OF THE CONTROLLER OF CERTIFICATION AUTHORITIES TECHNICAL REQUIREMENTS FOR AUDIT OF CERTIFICATION AUTHORITIES Table of contents 1.0 SOFTWARE 1 2.0 HARDWARE 2 3.0 TECHNICAL COMPONENTS 2 3.1 KEY MANAGEMENT
Protection Profile for Email Clients
Protection Profile for Email Clients 1 April 2014 Version 1.0 Page 1 of 69 1 Introduction... 4 1.1 Overview of the TOE... 4 1.2 Usage of the TOE... 4 2 SECURITY PROBLEM DESCRIPTION... 6 2.1 Threats...
How To Test A Toe For Security
Supporting Document Mandatory Technical Document Evaluation Activities for Network Device cpp September-2014 Version 0.1 CCDB- Foreword This is a supporting
Chapter 7 Transport-Level Security
Cryptography and Network Security Chapter 7 Transport-Level Security Lectured by Nguyễn Đức Thái Outline Web Security Issues Security Socket Layer (SSL) Transport Layer Security (TLS) HTTPS Secure Shell
CS 393 Network Security. Nasir Memon Polytechnic University Module 11 Secure Email
CS 393 Network Security Nasir Memon Polytechnic University Module 11 Secure Email Course Logistics HW 5 due Thursday Graded exams returned and discussed. Read Chapter 5 of text 4/2/02 Module 11 - Secure
FIPS 140-2 Non- Proprietary Security Policy. McAfee SIEM Cryptographic Module, Version 1.0
FIPS 40-2 Non- Proprietary Security Policy McAfee SIEM Cryptographic Module, Version.0 Document Version.4 December 2, 203 Document Version.4 McAfee Page of 6 Prepared For: Prepared By: McAfee, Inc. 282
SP 800-130 A Framework for Designing Cryptographic Key Management Systems. 5/25/2012 Lunch and Learn Scott Shorter
SP 800-130 A Framework for Designing Cryptographic Key Management Systems 5/25/2012 Lunch and Learn Scott Shorter Topics Follows the Sections of SP 800-130 draft 2: Introduction Framework Basics Goals
An Introduction to Cryptography as Applied to the Smart Grid
An Introduction to Cryptography as Applied to the Smart Grid Jacques Benoit, Cooper Power Systems Western Power Delivery Automation Conference Spokane, Washington March 2011 Agenda > Introduction > Symmetric
SEC 2: Recommended Elliptic Curve Domain Parameters
STANDARDS FOR EFFICIENT CRYPTOGRAPHY SEC 2: Recommended Elliptic Curve Domain Parameters Certicom Research Contact: [email protected] September 20, 2000 Version 1.0 c 2000 Certicom Corp. License
Network Security. Abusayeed Saifullah. CS 5600 Computer Networks. These slides are adapted from Kurose and Ross 8-1
Network Security Abusayeed Saifullah CS 5600 Computer Networks These slides are adapted from Kurose and Ross 8-1 Public Key Cryptography symmetric key crypto v requires sender, receiver know shared secret
Implementation of Elliptic Curve Digital Signature Algorithm
Implementation of Elliptic Curve Digital Signature Algorithm Aqeel Khalique Kuldip Singh Sandeep Sood Department of Electronics & Computer Engineering, Indian Institute of Technology Roorkee Roorkee, India
Overview of CSS SSL. SSL Cryptography Overview CHAPTER
CHAPTER 1 Secure Sockets Layer (SSL) is an application-level protocol that provides encryption technology for the Internet, ensuring secure transactions such as the transmission of credit card numbers
Network Security Essentials Chapter 5
Network Security Essentials Chapter 5 Fourth Edition by William Stallings Lecture slides by Lawrie Brown Chapter 5 Transport-Level Security Use your mentality Wake up to reality From the song, "I've Got
Security Analysis of DRBG Using HMAC in NIST SP 800-90
Security Analysis of DRBG Using MAC in NIST SP 800-90 Shoichi irose Graduate School of Engineering, University of Fukui hrs [email protected] Abstract. MAC DRBG is a deterministic random bit generator
Authentication requirement Authentication function MAC Hash function Security of
UNIT 3 AUTHENTICATION Authentication requirement Authentication function MAC Hash function Security of hash function and MAC SHA HMAC CMAC Digital signature and authentication protocols DSS Slides Courtesy
Protection Profile for Voice Over IP (VoIP) Applications
Protection Profile for Voice Over IP (VoIP) Applications 21 October 2013 Version 1.2 Table of Contents 1 INTRODUCTION... 1 1.1 Overview of the TOE... 1 1.2 Usage of the TOE... 1 2 SECURITY PROBLEM DESCRIPTION...
A Survey of the Elliptic Curve Integrated Encryption Scheme
JOURNAL OF COMPUTER SCIENCE AND ENGINEERING, VOLUME, ISSUE, AUGUST 010 A Survey of the Elliptic Curve Integrated Encryption Scheme 7 V. Gayoso Martínez, L. Hernández Encinas, and C. Sánchez Ávila Abstract
Overview. SSL Cryptography Overview CHAPTER 1
CHAPTER 1 Note The information in this chapter applies to both the ACE module and the ACE appliance unless otherwise noted. The features in this chapter apply to IPv4 and IPv6 unless otherwise noted. Secure
Safeguarding Data Using Encryption. Matthew Scholl & Andrew Regenscheid Computer Security Division, ITL, NIST
Safeguarding Data Using Encryption Matthew Scholl & Andrew Regenscheid Computer Security Division, ITL, NIST What is Cryptography? Cryptography: The discipline that embodies principles, means, and methods
Lukasz Pater CMMS Administrator and Developer
Lukasz Pater CMMS Administrator and Developer EDMS 1373428 Agenda Introduction Why do we need asymmetric ciphers? One-way functions RSA Cipher Message Integrity Examples Secure Socket Layer Single Sign
ETSI TS 102 176-2 V1.2.1 (2005-07)
TS 102 176-2 V1.2.1 (2005-07) Technical Specification Electronic Signatures and Infrastructures (ESI); Algorithms and Parameters for Secure Electronic Signatures; Part 2: Secure channel protocols and algorithms
Secure Network Communications FIPS 140 2 Non Proprietary Security Policy
Secure Network Communications FIPS 140 2 Non Proprietary Security Policy 21 June 2010 Table of Contents Introduction Module Specification Ports and Interfaces Approved Algorithms Test Environment Roles
Communication Systems 16 th lecture. Chair of Communication Systems Department of Applied Sciences University of Freiburg 2009
16 th lecture Chair of Communication Systems Department of Applied Sciences University of Freiburg 2009 1 25 Organization Welcome to the New Year! Reminder: Structure of Communication Systems lectures
Public Key Cryptography Overview
Ch.20 Public-Key Cryptography and Message Authentication I will talk about it later in this class Final: Wen (5/13) 1630-1830 HOLM 248» give you a sample exam» Mostly similar to homeworks» no electronic
RSA BSAFE. Crypto-C Micro Edition for MFP SW Platform (psos) Security Policy. Version 3.0.0.1, 3.0.0.2 October 22, 2012
RSA BSAFE Crypto-C Micro Edition for MFP SW Platform (psos) Security Policy Version 3.0.0.1, 3.0.0.2 October 22, 2012 Strong encryption technology for C/C++ developers Contact Information See our Web sites
Lecture 9: Application of Cryptography
Lecture topics Cryptography basics Using SSL to secure communication links in J2EE programs Programmatic use of cryptography in Java Cryptography basics Encryption Transformation of data into a form that
Certification Report
Certification Report EAL 4+ Evaluation of Entrust Authority Security Manager and Security Manager Administration v8.1 SP1 Issued by: Communications Security Establishment Canada Certification Body Canadian
CIS 6930 Emerging Topics in Network Security. Topic 2. Network Security Primitives
CIS 6930 Emerging Topics in Network Security Topic 2. Network Security Primitives 1 Outline Absolute basics Encryption/Decryption; Digital signatures; D-H key exchange; Hash functions; Application of hash
Chapter 3. Network Domain Security
Communication System Security, Chapter 3, Draft, L.D. Chen and G. Gong, 2008 1 Chapter 3. Network Domain Security A network can be considered as the physical resource for a communication system. This chapter
CS 758: Cryptography / Network Security
CS 758: Cryptography / Network Security offered in the Fall Semester, 2003, by Doug Stinson my office: DC 3122 my email address: [email protected] my web page: http://cacr.math.uwaterloo.ca/~dstinson/index.html
Secure Sockets Layer (SSL ) / Transport Layer Security (TLS) Network Security Products S31213
Secure Sockets Layer (SSL ) / Transport Layer Security (TLS) Network Security Products S31213 UNCLASSIFIED Example http ://www. greatstuf f. com Wants credit card number ^ Look at lock on browser Use https
Communication Systems SSL
Communication Systems SSL Computer Science Organization I. Data and voice communication in IP networks II. Security issues in networking III. Digital telephony networks and voice over IP 2 Network Security
Alternate Representations of the Public Key Cryptography Standards (PKCS) Using S-Expressions, S-PKCS
Alternate Representations of the Public Key Cryptography Standards (PKCS Using S-Expressions, S-PKCS Matthew D. Wood Carl M. Ellison Intel Security Technology Lab Alternate Representations of the Public
Security Protocols and Infrastructures. h_da, Winter Term 2011/2012
Winter Term 2011/2012 Chapter 7: Transport Layer Security Protocol Key Questions Application context of TLS? Which security goals shall be achieved? Approaches? 2 Contents Overview Record Protocol Cipher
Nortel Networks, Inc. VPN Client Software (Software Version: 7_11.101) FIPS 140-2 Non-Proprietary Security Policy
Nortel Networks, Inc. VPN Client Software (Software Version: 7_11.101) FIPS 140-2 Non-Proprietary Security Policy Level 1 Validation Document Version 0.5 Prepared for: Prepared by: Nortel Networks, Inc.
2014 IBM Corporation
2014 IBM Corporation This is the 27 th Q&A event prepared by the IBM License Metric Tool Central Team (ICT) Currently we focus on version 9.x of IBM License Metric Tool (ILMT) The content of today s session
Communication Security for Applications
Communication Security for Applications Antonio Carzaniga Faculty of Informatics University of Lugano March 10, 2008 c 2008 Antonio Carzaniga 1 Intro to distributed computing: -server computing Transport-layer
IT Networks & Security CERT Luncheon Series: Cryptography
IT Networks & Security CERT Luncheon Series: Cryptography Presented by Addam Schroll, IT Security & Privacy Analyst 1 Outline History Terms & Definitions Symmetric and Asymmetric Algorithms Hashing PKI
SECURITY IN NETWORKS
SECURITY IN NETWORKS GOALS Understand principles of network security: Cryptography and its many uses beyond confidentiality Authentication Message integrity Security in practice: Security in application,
Internet Engineering Task Force (IETF) Request for Comments: 7568. Category: Standards Track ISSN: 2070-1721 A. Langley Google June 2015
Internet Engineering Task Force (IETF) Request for Comments: 7568 Updates: 5246 Category: Standards Track ISSN: 2070-1721 R. Barnes M. Thomson Mozilla A. Pironti INRIA A. Langley Google June 2015 Deprecating
Network Security. Lecture 3
Network Security Lecture 3 Design and Analysis of Communication Networks (DACS) University of Twente The Netherlands Security protocols application transport network datalink physical Contents IPSec overview
Release Notes. NCP Secure Client Juniper Edition. 1. New Features and Enhancements. 2. Problems Resolved
NCP Secure Client Juniper Edition Service Release: 9.30 Build 102 Date: February 2012 1. New Features and Enhancements The following describe the new features introduced in this release: Visual Feedback
SE 4472a / ECE 9064a: Information Security
Western University Faculty of Engineering Department of Electrical and Computer Engineering SE 4472a / ECE 9064a: Information Security Course Outline 2015-16 Description: This course provides an introduction
AWS Key Management Service Cryptographic Details
AWS Key Management Service Cryptographic Details Matthew Campagna May 2015 Contents Contents 2 Abstract 3 Introduction 3 Design Goals 4 Background 5 Cryptographic Primitives 5 Basic Concepts 7 Customer
2. Cryptography 2.4 Digital Signatures
DI-FCT-UNL Computer and Network Systems Security Segurança de Sistemas e Redes de Computadores 2010-2011 2. Cryptography 2.4 Digital Signatures 2010, Henrique J. Domingos, DI/FCT/UNL 2.4 Digital Signatures
The Mathematics of the RSA Public-Key Cryptosystem
The Mathematics of the RSA Public-Key Cryptosystem Burt Kaliski RSA Laboratories ABOUT THE AUTHOR: Dr Burt Kaliski is a computer scientist whose involvement with the security industry has been through
Message authentication and. digital signatures
Message authentication and " Message authentication digital signatures verify that the message is from the right sender, and not modified (incl message sequence) " Digital signatures in addition, non!repudiation
NIST Test Personal Identity Verification (PIV) Cards
NISTIR 7870 NIST Test Personal Identity Verification (PIV) Cards David A. Cooper http://dx.doi.org/10.6028/nist.ir.7870 NISTIR 7870 NIST Text Personal Identity Verification (PIV) Cards David A. Cooper
Chapter 10. Network Security
Chapter 10 Network Security 10.1. Chapter 10: Outline 10.1 INTRODUCTION 10.2 CONFIDENTIALITY 10.3 OTHER ASPECTS OF SECURITY 10.4 INTERNET SECURITY 10.5 FIREWALLS 10.2 Chapter 10: Objective We introduce
Guidelines for the Selection, Configuration, and Use of Transport Layer Security (TLS) Implementations
NIST Special Publication 800-52 Revision 1 Guidelines for the Selection, Configuration, and Use of Transport Layer Security (TLS) Implementations Tim Polk Kerry McKay Santosh Chokhani http://dx.doi.org/10.6028/nist.sp.800-52r1
Cryptography and Network Security Sicurezza delle reti e dei sistemi informatici SSL/TSL
Cryptography and Network Security Sicurezza delle reti e dei sistemi informatici SSL/TSL Security architecture and protocol stack Applicat. (SHTTP) SSL/TLS TCP IPSEC IP Secure applications: PGP, SHTTP,
SECURITY IMPROVMENTS TO THE DIFFIE-HELLMAN SCHEMES
www.arpapress.com/volumes/vol8issue1/ijrras_8_1_10.pdf SECURITY IMPROVMENTS TO THE DIFFIE-HELLMAN SCHEMES Malek Jakob Kakish Amman Arab University, Department of Computer Information Systems, P.O.Box 2234,
Federal S/MIME V3 Client Profile
NIST Special Publication 800-49 Federal S/MIME V3 Client Profile C. Michael Chernick C O M P U T E R S E C U R I T Y November 2002 NIST Special Publication 800-49 Federal S/MIME V3 Client Profile Recommendations
Implementing Network Security Protocols
Implementing Network Security Protocols based on Elliptic Curve Cryptography M. Aydos, E. Savaş, and Ç. K. Koç Electrical & Computer Engineering Oregon State University Corvallis, Oregon 97331, USA {aydos,savas,koc}@ece.orst.edu
Silent Circle Instant Messaging Protocol Protocol Specification
Protocol Specification Authors: Vinnie Moscaritolo, Gary Belvin, Phil Zimmermann Date: December 5, 2012 Version: 1.0 Table of Contents Introduction!... 3 High-level SCIMP features!... 4 Basic Protocol
CRYPTOGRAPHY AS A SERVICE
CRYPTOGRAPHY AS A SERVICE Peter Robinson RSA, The Security Division of EMC Session ID: ADS R01 Session Classification: Advanced Introduction Deploying cryptographic keys to end points such as smart phones,
Protection Profile for Network Devices
Protection Profile for Network Devices Information Assurance Directorate 08 June 2012 Version 1.1 Table of Contents 1 INTRODUCTION... 1 1.1 Compliant Targets of Evaluation... 1 2 SECURITY PROBLEM DESCRIPTION...
Network Security. Chapter 6 Random Number Generation
Network Security Chapter 6 Random Number Generation 1 Tasks of Key Management (1)! Generation:! It is crucial to security, that keys are generated with a truly random or at least a pseudo-random generation
Key Management Interoperability Protocol (KMIP)
(KMIP) Addressing the Need for Standardization in Enterprise Key Management Version 1.0, May 20, 2009 Copyright 2009 by the Organization for the Advancement of Structured Information Standards (OASIS).
NIST Cryptographic Algorithm Validation Program (CAVP) Certifications for Freescale Cryptographic Accelerators
Freescale Semiconductor White Paper Document Number: FSLNISTCAVP Rev. 1.7, 03/2015 NIST Cryptographic Algorithm Validation Program (CAVP) Certifications for Freescale Cryptographic Accelerators This document
SkyRecon Cryptographic Module (SCM)
SkyRecon Cryptographic Module (SCM) FIPS 140-2 Documentation: Security Policy Abstract This document specifies the security policy for the SkyRecon Cryptographic Module (SCM) as described in FIPS PUB 140-2.
Savitribai Phule Pune University
Savitribai Phule Pune University Centre for Information and Network Security Course: Introduction to Cyber Security / Information Security Module : Pre-requisites in Information and Network Security Chapter
Digital Signatures in a PDF
This document describes how digital signatures are represented in a PDF document and what signature-related features the PDF language supports. Adobe Reader and Acrobat have implemented all of PDF s features
Public-Key Infrastructure
Public-Key Infrastructure Technology and Concepts Abstract This paper is intended to help explain general PKI technology and concepts. For the sake of orientation, it also touches on policies and standards
Guideline for Implementing Cryptography In the Federal Government
NIST Special Publication 800-21 [Second Edition] Guideline for Implementing Cryptography In the Federal Government Elaine B. Barker, William C. Barker, Annabelle Lee I N F O R M A T I O N S E C U R I T
Microsoft Windows Server 2008 R2 Cryptographic Primitives Library (bcryptprimitives.dll) Security Policy Document
Microsoft Windows Cryptographic Primitives Library (bcryptprimitives.dll) Security Policy Document Microsoft Windows Server 2008 R2 Cryptographic Primitives Library (bcryptprimitives.dll) Security Policy
Network Security [2] Plain text Encryption algorithm Public and private key pair Cipher text Decryption algorithm. See next slide
Network Security [2] Public Key Encryption Also used in message authentication & key distribution Based on mathematical algorithms, not only on operations over bit patterns (as conventional) => much overhead
