많은 암호화 라이브러리에서 키는 일부 바이트 시퀀스만으로 식별되는 경우가 많습니다. 예를 들어 키 바이트를 제외하고 계산에 IV도 필요한 EVP_EncryptInit_ex와 같은 OpenSSL 함수 또는 키 시퀀스와 AlgorithmParameterSpec를 모두 사용하는 javax.crypto 메서드 Cipher.init를 고려해 보세요. 이러한 함수는 올바르게 사용하기 어렵고 잘못된 매개변수를 전달하면 심각한 결과를 초래할 수 있습니다.
Tink는 다르게 하려는 목표를 가지고 있으며 키가 항상 키 자료와 메타데이터 (매개변수)로 구성되기를 기대합니다.
예를 들어 전체 AEAD 키는 암호화 및 복호화의 작동 방식을 정확하게 지정합니다. 즉, 두 함수 \(\mathrm{Enc}\) 및\(\mathrm{Dec}\)와 암호문이 인코딩되는 방식 (예: 초기화 벡터, 암호화, 태그)을 지정합니다.
Tink의 AES 키는 길이가 128, 192 또는 256비트인 바이트 시퀀스일 뿐만 아니라 키를 계산하는 데 필요한 해당 알고리즘 사양을 parameters 객체의 형태로 저장합니다. 따라서 전체 AES-EAX 키와 전체 AES-GCM 키는 Tink에서 서로 다른 객체입니다.
[null,null,["최종 업데이트: 2025-07-25(UTC)"],[],["Tink's **Key** includes both key material and metadata, defining its functionality. Unlike other libraries that only use byte sequences, Tink requires complete parameter specifications. A full AEAD key defines encryption and decryption processes, along with ciphertext encoding. AES keys in Tink include algorithm specifications, making different AES types distinct objects. Keys in Tink exist as parts of a set of keys called a Keyset, allowing key rotation.\n"],null,[]]