Расшифрование
Расшифрование использует нужный ключ, чтобы обратить шифрование и восстановить открытый текст из шифротекста.
Определение
Расшифрование — разрешённое преобразование шифротекста обратно в открытый текст с помощью соответствующего алгоритма и ключа. В симметричной криптографии используется общий секретный ключ, а в асимметричном шифровании — обычно закрытый ключ получателя.
Как происходит расшифрование
Помимо шифротекста и ключа могут потребоваться nonce или вектор инициализации, тег аутентификации и параметры алгоритма. Декодирование шестнадцатеричной строки или Base64 лишь восстанавливает байты и не является расшифрованием. Аутентифицированная схема проверяет тег до выдачи результата.
Ошибки и безопасная обработка
Неверный ключ может вызвать ошибку или дать бессмысленные байты; неаутентифицированные схемы не всегда обнаруживают проблему. Приложение должно отклонять изменённый шифротекст, не раскрывать лишние подробности ошибки и защищать восстановленные данные в памяти, журналах и временных файлах.
Стойкое современное шифрование делает это вычислительно неосуществимым. Слабый шифр, малое пространство ключей, ошибка реализации или украденный ключ могут изменить ситуацию.
Нет. Декодирование обращает общедоступное представление вроде Base64, а расшифрование — управляемое ключом защитное преобразование.
Аутентифицированное шифрование отклоняет данные из-за ошибки проверки. Старые или неаутентифицированные схемы могут вернуть бессмысленный результат без надёжного сигнала об ошибке.