하이브리드 암호화

하이브리드 암호화 프리미티브는 대칭 암호화의 효율성과 공개 키 (비대칭) 암호화의 편의성을 결합합니다. 누구나 공개 키를 사용하여 데이터를 암호화할 수 있지만 비공개 키가 있는 사용자만 데이터를 복호화할 수 있습니다.

하이브리드 암호화의 경우 발신자가 새 대칭 키를 생성하여 각 메시지의 일반 텍스트를 암호화하여 암호문을 생성합니다. 이 대칭 키는 수신자의 공개 키로 캡슐화됩니다. 하이브리드 복호화의 경우 수신자가 대칭 키를 캡슐화한 후 암호문을 복호화하여 원래의 일반 텍스트를 복구하는 데 사용됩니다. 키 캡슐화와 함께 암호 텍스트를 저장하거나 전송하는 방법에 대한 자세한 내용은 Tink 하이브리드 암호화 유선 형식을 참조하세요.

하이브리드 암호화에는 다음과 같은 속성이 있습니다.

  • 비밀성: 비공개 키에 액세스할 수 없다면 누구도 암호화된 일반 텍스트에 대한 정보 (길이 제외)를 얻을 수 없습니다.
  • 비대칭: 공개 키로 암호문을 암호화할 수 있지만 복호화를 위해서는 비공개 키가 필요합니다.
  • 무작위 순서 지정: 암호화는 무작위로 이루어집니다. 일반 텍스트가 동일한 두 메시지는 동일한 암호문을 생성하지 않습니다. 이렇게 하면 공격자는 주어진 일반 텍스트에 해당하는 암호문을 알 수 없습니다.

하이브리드 암호화는 Tink에서 프리미티브 쌍으로 표현됩니다.

  • 암호화용 HybridEncrypt
  • 복호화용 HybridDecrypt

컨텍스트 정보 매개변수

하이브리드 암호화는 일반 텍스트 외에도 추가 매개변수 context_info을 허용합니다. 이 매개변수는 일반적으로 컨텍스트에서 암시적인 공개 데이터이지만 결과 암호문에 결합되어야 합니다. 즉, 암호문을 통해 컨텍스트 정보의 무결성을 확인할 수 있지만 기밀성이나 진위성에 대한 보장은 없습니다. 실제 컨텍스트 정보는 비어 있거나 null일 수 있지만 결과로 생성된 암호문이 올바르게 복호화되도록 하려면 복호화에 동일한 컨텍스트 정보 값을 제공해야 합니다.

하이브리드 암호화를 구체적으로 구현하면 다음과 같은 다양한 방식으로 컨텍스트 정보를 암호문에 결합할 수 있습니다.

  • context_info를 AEAD 대칭 암호화를 위한 연결된 데이터 입력으로 사용합니다(RFC 5116 참고).
  • context_info를 HKDF의 'CtxInfo' 입력으로 사용합니다 (구현에서 HKDF를 키 파생 함수로 사용하는 경우 RFC 5869 참고).

키 유형 선택

대부분의 사용 사례에는 DHKEM_X25519_HKDF_SHA256_HKDF_SHA256_AES_256_GCM 키 유형을 사용하는 것이 좋습니다. 이 키 유형은 RFC 9180에 명시된 하이브리드 공개 키 암호화 (HPKE) 표준을 구현합니다. HPKE는 키 캡슐화 메커니즘 (KEM), 키 파생 함수 (KDF), 관련 데이터를 사용한 인증 암호화 (AEAD) 알고리즘으로 구성됩니다.

DHKEM_X25519_HKDF_SHA256_HKDF_SHA256_AES_256_GCM는 특히 다음을 사용합니다.

  • KEM: HKDF-SHA-256을 사용하여 Curve25519를 통해 Diffie-Hellman이 공유 보안 비밀을 파생합니다.
  • KDF: HKDF-SHA-256: 발신자 및 수신자 컨텍스트를 가져옵니다.
  • AEAD: HPKE 표준에 따라 생성된 12바이트 nonce가 있는 AES-256-GCM

지원되는 기타 HPKE 키 유형은 다음과 같습니다(단, 이에 국한되지 않음).

  • DHKEM_X25519_HKDF_SHA256_HKDF_SHA256_AES_128_GCM
  • DHKEM_X25519_HKDF_SHA256_HKDF_SHA256_CHACHA20_POLY1305
  • DHKEM_P256_HKDF_SHA256_HKDF_SHA256_AES_128_GCM
  • DHKEM_P521_HKDF_SHA512_HKDF_SHA512_AES_256_GCM

KEM, KDF, AEAD의 알고리즘 선택에 대한 자세한 내용은 RFC 9180을 참고하세요.

Tink는 더 이상 권장되지 않지만 Victor Shoup의 ISO 18033-2 표준에 설명된 대로 일부 ECIES 변형도 지원합니다. 지원되는 ECIES 키 유형은 다음과 같습니다.

  • ECIES_P256_HKDF_HMAC_SHA256_AES128_GCM
  • ECIES_P256_COMPRESSED_HKDF_HMAC_SHA256_AES128_GCM
  • ECIES_P256_HKDF_HMAC_SHA256_AES128_CTR_HMAC_SHA256
  • ECIES_P256_COMPRESSED_HKDF_HMAC_SHA256_AES128_CTR_HMAC_SHA256

최소 숙박 시설

  • 일반 텍스트 및 컨텍스트 정보는 임의의 길이 (0..232바이트 범위 내)일 수 있습니다.
  • 적응형 선택 암호문 공격으로부터 보호
  • 타원 곡선 기반 체계의 128비트 보안

사용 사례 예시

데이터를 교환하고 싶습니다.