Если чей-то ключ правильно используется для шифрования данных, и ключ украденный (то есть все физические носители, содержащие его, украдены и, таким образом, становятся недоступными; как в случае «мой последний ключ от велосипедного замка был украден»), тогда у человека даже нет возможности повторно зашифровать данные: он потерял к ним доступ.
Если ключ напрямую используется для шифрования данных, а ключ скомпрометирован (его стоимость стала известна противникам, или этого следует опасаться), то
- если злоумышленники имеют доступ к базе данных, зашифрованной с помощью скомпрометированного ключа, то конфиденциальность данных была или будет потеряна независимо от того, когда такой доступ произойдет (например, в будущем из старой резервной копии)
- в противном случае расшифровка данных скомпрометированным (но все еще доступным) ключом, а затем повторное шифрование данных новым ключом восстанавливает все в норме.
Если повторное шифрование всех данных неудобно из-за того, что они содержат большие записи (например, изображения или видео), можно сократить эти вычислительные затраты на косвенно шифрование данных с помощью ключа, используя два уровня ключа. Каждая большая запись шифруется своим индивидуальным случайным ключом записи, сама шифруется основным ключом и сохраняется как небольшая вспомогательная запись. Чтобы получить доступ к записи в открытом виде, она считывает вспомогательную запись, которая расшифровывается с помощью основного ключа, дающего ключ записи, а сама запись расшифровывается с помощью этого ключа записи. Для повторного шифрования после компрометации основного ключа (только) нам нужно только расшифровать и повторно зашифровать вспомогательные записи.
Однако это косвенное шифрование уменьшает объем данных, которые злоумышленники должны получить, чтобы эффективно использовать компрометацию ключа: теперь им нужна только копия зашифрованных записей ключа под старым ключом, чтобы эффективно использовать последующий доступ к базе данных. Таким образом, в случае компрометации основного ключа может быть целесообразно немедленно расшифровать и повторно зашифровать ключи записи, а затем медленно расшифровать и повторно зашифровать каждую отдельную запись с новым случайным ключом записи. Для этого зашифрованные записи ключей должны сопровождаться идентификацией версии основного ключа, которым они зашифрованы.