Мне нужно создать службу идентификации, которая использует предоставленный клиентом ключ для шифрования конфиденциальных значений идентификатора для хранения в RDS, но также должна позволить нам позже просмотреть запись с использованием идентификатора в виде открытого текста. Для этого мы хотели бы использовать простой алгоритм шифрования детерминированного c, но похоже, что API-интерфейс KMS не позволяет указывать IV, поэтому вы никогда не сможете получить одинаковый открытый текст для шифрования с одинаковым значением дважды.
У нас также есть требование искать данные с использованием другого незащищенного значения, а также извлекать зашифрованное безопасное значение и расшифровывать его, поэтому одностороннее хеширование, к сожалению, не будет работать.
Взятые вместе, это означает, что мы не сможем выполнить поиск безопасного идентификатора без перебора всех записей и их дешифрования и сравнения со значением открытого текста, вместо простого шифрования значения поиска в открытом тексте с использованием известного IV и использования этого зашифрованного значения как индекс для поиска соответствующей записи в базе данных.
Я предполагаю, что это довольно распространенное требование для таких вещей, как SSN и так далее, как люди решают за это?
Спасибо в заранее.