Ключи Tink состоят как из ключевого материала, так и из метаданных. В разделе, посвященном маркировке зашифрованных текстов , объясняется , как Tink также позволяет добавлять к зашифрованным текстам префикс 5-байтовой строки, полученной из идентификатора, что означает, что ключ также зависит от идентификатора, который он имеет в наборе ключей.
Поэтому для создания нового ключа Тинк обычно использует следующие ингредиенты:
- Объект, описывающий все параметры
- Идентификатор нового ключа
- Равномерная, криптографически безопасная случайность
Пример
Рассмотрим, например, HMAC ( RFC 2014 ). Чтобы указать вычисление HMAC в Tink, необходимо предоставить следующую информацию, которая образует ключ:
- Ключевой материал HMAC.
- Используемая хэш-функция.
- Выходная длина HMAC (см. ( RFC 2014, раздел 5 )) — если усечена.
- Специальный префикс Tink, с которого начинается каждый тег (если есть).
Соответствующие параметры состоят из всей этой информации, за исключением фактического материала ключа. Более конкретно:
- Длина ключевого материала.
- Используемая хеш-функция.
- Выходная длина HMAC — если усечена.
- Спецификация того, как найти префикс по идентификатору.
Вместе с материалом ключа и идентификатором это составляет полный ключ. См. также более подробную информацию о том, как реализованы эти объекты.