다음을 통해 공유


KeyDerivationParameters.BuildForSP800108(IBuffer, IBuffer) 메서드

정의

카운터 모드 HMAC(해시 기반 메시지 인증 코드) 키 파생 함수에서 사용할 KeyDerivationParameters 개체를 만듭니다.

public:
 static KeyDerivationParameters ^ BuildForSP800108(IBuffer ^ label, IBuffer ^ context);
 static KeyDerivationParameters BuildForSP800108(IBuffer const& label, IBuffer const& context);
public static KeyDerivationParameters BuildForSP800108(IBuffer label, IBuffer context);
function buildForSP800108(label, context)
Public Shared Function BuildForSP800108 (label As IBuffer, context As IBuffer) As KeyDerivationParameters

매개 변수

label
IBuffer

파생 키 지정 재질의 용도를 지정하는 버퍼입니다.

context
IBuffer

파생 키 지정 자료와 관련된 정보를 지정하는 버퍼입니다. 예를 들어 컨텍스트는 키 지정 자료를 파생하는 당사자와 선택적으로 당사자가 알고 있는 nonce를 식별할 수 있습니다.

반환

키 파생 중에 사용되는 매개 변수를 참조합니다.

예제

public void SampleDeriveFromSP800108()
{
    // Create a string that contains the algorithm name.
    String strAlgName = KeyDerivationAlgorithmNames.Sp800108CtrHmacSha256;

    // Open the specified algorithm.
    KeyDerivationAlgorithmProvider objKdfProv = KeyDerivationAlgorithmProvider.OpenAlgorithm(strAlgName);

    // Specify the requested size, in bytes, of the derived key. 
    UInt32 targetSize = 32;

    // Create a buffer that contains the label value.
    String strPurpose = "Purpose";
    IBuffer buffLabel = CryptographicBuffer.ConvertStringToBinary(strPurpose, BinaryStringEncoding.Utf8);

    // Create a buffer that contains the context value.
    byte[] Nonce = { 1, 1, 0, 0, 0, 0, 0, 0};
    IBuffer buffContext = CryptographicBuffer.CreateFromByteArray(Nonce);

    // Create the derivation parameters.
    KeyDerivationParameters kdf800108Params = KeyDerivationParameters.BuildForSP800108(buffLabel, buffContext);

    // Create a secret value.
    IBuffer buffSecret = CryptographicBuffer.GenerateRandom(32);

    // Create a key from the secret value.
    CryptographicKey keyOriginal = objKdfProv.CreateKey(buffSecret);

    // Derive a key based on the original key and the derivation parameters.
    IBuffer keyDerived = CryptographicEngine.DeriveKeyMaterial(
        keyOriginal,
        kdf800108Params,
        targetSize);

    // Encode the key to a hexadecimal value (for display)
    String strKeyHex = CryptographicBuffer.EncodeToHexString(keyDerived);
}

설명

OpenAlgorithm 함수와 함께 다음 알고리즘 이름을 사용하여 SP800108 KDF 알고리즘 공급자를 열 수 있습니다.

적용 대상