я прошу прощения, а можно как-то на пальцах? криптография не мой конек, но возможно, при придется реализовать что-то сильно упрощенное от того, о чем вы говоритеЗашифруйте фактический код с помощью AES, но используйте несколько хэшированных ключей:
h3 = Hash(Hash(Hash(key)))
h4 = Hash(Hash(Hash(Hash(key))))
Только у сервера есть оригинальный ключ (key)
Клиент аутентифицируется на сервере и запрашивает ключ h4.
Сервер отвечает ключом h3.
Функции расшифровываются с помощью ключа h4 и снова шифруются с помощью ключа h3.
Сервер теперь игнорирует запросы на ключи: {hx | x >= 4}
Очевидно, что если он сохранил старое изображение, то он все еще может его расшифровать. Поэтому лучше зашифровать каким-нибудь случайным сеансовым ключом и отправить его на сервер. Смысл этого в том, чтобы использовать хэш как форму 2-fa.