СПОСОБ ОБЕСПЕЧЕНИЯ ЦЕЛОСТНОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

1. Способ обеспечения целостности программного обеспечения в памяти для хранения программ, реализуемый посредством процессора, причем программное обеспечение содержит набор зашифрованных команд, включающих по меньшей мере код операции, а способ предусматривает использование инициализированного ключа команды и включает следующие шаги:
- считывают текущую зашифрованную команду;
- используют указанный ключ команды для дешифрования по меньшей мере части текущей зашифрованной команды;
- обновляют ключ команды при помощи вычисления, основанного на дайджесте текущего значения ключа команды и дайджесте текущей команды так, чтобы следующую считываемую зашифрованную команду можно было дешифровать при помощи обновленного ключа команды;
- исполняют текущую команду.
2. Способ по п.1, отличающийся тем, что первая команда в памяти для хранения программ не зашифрована.
3. Способ по п.1, отличающийся тем, что текущая команда содержит аутентификационный признак, используемый для аутентификации указанной команды перед исполнением.
4. Способ по п.1, отличающийся тем, что ключ команды подвергают модификации, позволяющей осуществить дешифрование следующей зашифрованной команды при помощи указанного модифицированного ключа команды для получения исполняемой команды.
5. Способ по п.4, отличающийся тем, что текущая команда содержит модифицирующее значение, используемое при указанной модификации, причем указанное модифицирующее значение извлекают из значения команды и используют на шаге обновления при определении следующего ключа команды.
6. Способ по п.1, отличающийся тем, что все или любые процессы дешифрования зашифрованной команды, обновления ключа команды, аутентификации текущей команды или исполнения текущей команды выполняют в модуле безопасности.
7. Способ по п.1, отличающийся тем, что указанный дайджест представляет собой результат функции, применяемой ко всей указанной текущей команде или ее части, причем указанную функцию выбирают из функций, включающих логические, арифметические, криптографические и односторонние функции.
8. Способ по п.1, отличающийся тем, что обновление ключа команды основано также на модифицирующем значении, которое используют для доведения ключа команды до известного значения.
9. Способ по п.1, отличающийся тем, что для инициализации ключа команды используют главный ключ.
10. Устройство, содержащее счетчик программы (PC) и память (РМЕМ) для хранения зашифрованной программы, причем указанная зашифрованная программа содержит набор зашифрованных команд (INST), включающих по меньшей мере код операции, а указанное устройство содержит модуль дешифрования (DECR) и блок обработки данных (SCPU) и имеет доступ к инициализированному ключу команды (KI), отличающееся тем, что содержит средство рекурсивного обновления ключа команды (KI) на основе всего указанного ключа команды или его части и дайджеста по меньшей мере одной предыдущей исполненной команды.
11. Устройство по п.10, отличающееся тем, что средство рекурсивного обновления ключа команды реализовано с помощью аппаратных средств.
12. Устройство по п.10 или 11, отличающееся тем, что обновление ключа команды основано также на модифицирующем значении, используемом для доведения ключа команды до известного значения.