관련 데이터가 있는 확정된 인증 암호화 (확정된 AEAD) 원시 함수는 확정된 속성을 사용하여 암호화를 제공합니다. 동일한 데이터를 암호화하면 항상 동일한 암호문이 생성됩니다. 이 유형의 암호화는 키 래핑이나 암호화된 데이터를 검색하기 위한 일부 스킴에 유용합니다 (자세한 내용은 RFC 5297, 섹션 1.3 참고). 이 원시 유형은 결정론적 속성을 가지므로 공격자가 특정 메시지의 암호문을 알아내면 해당 메시지의 다른 인스턴스를 식별할 수 있으므로 이 원시 유형을 구현하면 비밀이 유출될 수 있습니다.
결정론적 AEAD에는 다음과 같은 속성이 있습니다.
Secrecy: 암호화되지 않은 텍스트의 길이와 반복된 암호화되지 않은 텍스트의 등식을 제외하고는 암호화되지 않은 텍스트에 관한 어떠한 정보도 알 수 없습니다.
신뢰성: 감지되지 않고는 암호문의 기본이 되는 암호화된 일반 텍스트를 변경할 수 없습니다.
대칭: 일반 텍스트를 암호화하고 암호문을 복호화하는 데 동일한 키가 사용됩니다.
결정론적: 기본 키가 변경되지 않는 한 동일한 매개변수로 일반 텍스트를 두 번 암호화하면 동일한 암호문이 생성됩니다.
관련 데이터
결정론적 AEAD는 암호문을 특정 연결된 데이터에 연결하는 데도 사용할 수 있습니다. 예를 들어 user-id 및 encrypted-medical-history 필드가 있는 데이터베이스가 있다고 가정해 보겠습니다. 이 시나리오에서 user-id는 encrypted-medical-history를 암호화할 때 연결된 데이터로 사용될 수 있습니다. 이렇게 하면 공격자가 한 사용자의 의료 기록을 다른 사용자로 이동할 수 없습니다.
키 유형 선택
모든 사용 사례에는 AES256_SIV 키 유형을 사용하는 것이 좋습니다.
보안 보장
인증 강도가 80비트 이상이어야 합니다.
일반 텍스트 및 연결된 데이터의 길이는 임의 (0~232바이트 범위)일 수 있습니다.
키 복구 공격에 대한 128비트 보안 수준, 최대 232 키를 사용하는 다중 사용자 공격에도 적용됩니다. 즉, 공격자가 232 키로 암호화된 동일한 메시지의 232 암호문을 획득하면 단일 키를 얻기 위해 2128 계산을 실행해야 합니다.
[null,null,["최종 업데이트: 2025-07-25(UTC)"],[[["\u003cp\u003eDeterministic Authenticated Encryption with Associated Data (AEAD) encrypts the same data into the same ciphertext, useful for key wrapping or searchable encryption but revealing repeated messages.\u003c/p\u003e\n"],["\u003cp\u003eIt offers secrecy (except for length and repetition), authenticity, symmetry, and determinism in encryption.\u003c/p\u003e\n"],["\u003cp\u003eWhile associated data is authenticated, it is not encrypted, allowing ciphertext binding to specific contexts like user IDs.\u003c/p\u003e\n"],["\u003cp\u003eThe recommended key type is AES256_SIV, providing strong security guarantees including 128-bit security level and the capacity to encrypt numerous messages safely.\u003c/p\u003e\n"],["\u003cp\u003eDeterministic AEAD is suitable for scenarios where deterministic encryption and context binding are prioritized, such as preventing unauthorized data transfer in databases.\u003c/p\u003e\n"]]],["Deterministic AEAD encrypts data deterministically, producing the same ciphertext for identical data. It offers secrecy (except for repeated plaintexts), authenticity, symmetry, and determinism. A key use is binding ciphertext to associated data for integrity. While offering strong security, repeated messages can reveal equality. Associated data is authenticated but not encrypted. The AES256_SIV key type is recommended, ensuring at least 80-bit authentication and 128-bit security against key recovery. It supports large messages and numerous encryptions.\n"],null,["# Deterministic Authenticated Encryption with Associated Data (Deterministic AEAD)\n\nThe Deterministic Authenticated Encryption with Associated Data (Deterministic\nAEAD) primitive provides encryption with a *deterministic* property: encrypting\nthe same data always yields the same ciphertext. This type of encryption is\nuseful for key wrapping or for some schemes for searching on encrypted data (see\n[RFC 5297, Section\n1.3](https://tools.ietf.org/html/rfc5297#section-1.3)\nfor more info). Because of its deterministic property, implementations of this\nprimitive can lead to loss of secrecy because an attacker only needs to find out\nthe ciphertext for a given message to identify other instances of that message.\n\nDeterministic AEAD has the following properties:\n\n- **Secrecy**: Nothing about the plaintext is known, except its length and the equality of repeated plaintexts.\n- **Authenticity**: It is impossible to change the encrypted plaintext underlying the ciphertext without being detected.\n- **Symmetric**: Encrypting the plaintext and decrypting the ciphertext is done with the same key.\n- **Deterministic**: As long as the primary key is not changed, encrypting a plaintext twice with the same parameters results in the same ciphertext.\n\n| **Note:** Deterministic AEAD protects data almost as well as the normal AEAD primitive. However, if you send the same message twice, an attacker can notice that the two messages are equal. If this is not the intended behaviour, see [AEAD](/tink/aead).\n\n### Associated data\n\n| **Caution:** Associated data is authenticated but *NOT* encrypted.\n\nDeterministic AEAD can also be used to [tie ciphertext to specific associated\ndata](/tink/bind-ciphertext). For example, if you have a database with the fields\n`user-id` and `encrypted-medical-history`: In this scenario, `user-id` can be\nused as associated data when encrypting `encrypted-medical-history`. This\nprevents an attacker from moving medical history from one user to another.\n\n### Choose a key type\n\nWe recommend the **AES256_SIV** key type for all use cases.\n| **Note:** Tink doesn't offer AES128_SIV because it doesn't provide 128-bit security in multi-user scenarios.\n\n### Security guarantees\n\n- At least 80-bit authentication strength.\n- The plaintext and associated data can have arbitrary lengths (within the range 0..2^32^ bytes).\n- 128-bit security level against key recovery attacks, and also in multi-user attacks with up to 2^32^ keys --- that means if an adversary obtains 2^32^ ciphertexts of the same message encrypted under 2^32^ keys, they need to do 2^128^ computations to obtain a single key.\n- The ability to safely encrypt 2^38^ messages, provided each is less than 1MB in length.\n\n| **Caution:** **Deterministic AEAD offers no secrecy guarantees for associated\n| data.**\n\n### Example use case\n\nSee I want to [encrypt data deterministically](/tink/deterministic-encryption) and\nI want to [bind ciphertext to its context](/tink/bind-ciphertext)."]]