Как вы уже указали, если вы расшифровываете файл на хосте, он находится в незашифрованном виде, и вы ничего не можете с этим поделать.
В отрасли время от времени возникают одни и те же проблемы, поэтому они используют свои методы криптографии: иногда необходимо предотвратить, чтобы кто-то еще мог получить скомпилированный и запускаемый файл, так как «они» декомпилируют его или смотрят на него. это в сборке, иногда это нужно только для того, чтобы кто-нибудь еще не мог запустить свои собственные домашние файлы на устройстве.
Как уже говорилось, расшифровка файла на хосте (хосте пользователи / клиенты) не подлежит обсуждению. Затем нажмите его через мгновение. Вы можете, например, сделать так, чтобы загрузчик расшифровал файл прошивки, который он читает из последовательной линии.
В этом случае вы поставляете аппаратное обеспечение (чип, загрузчик и начальную версию прошивки), а обновления устанавливаются через последовательную линию (вместо JTAG / ASP / ISP). Загрузчик будет содержать секретный ключ, который расшифровывает файл прошивки. Этот секретный ключ также можно использовать для проверки того, что файл прошивки исходит от вас, и никто другой не скомпилировал что-либо.
Если вам также потребуется раздать загрузчик (hex-файл), вы столкнетесь с проблемой, что кто-то может извлечь или изменить секретный ключ. В этом случае асимметричная криптография спасет вас. Вы сохраняете свой закрытый ключ для себя, и загрузчик получает часть открытого ключа. Даже если кто-то сможет извлечь открытый ключ, он не сможет создать файл, который будет распознан как ваш. Увы, ATTiny слишком слаб для асимметричной криптографии, и даже симметричная криптография уже раздувает код загрузчика.