СПОСОБ И МОДУЛЬ ДЛЯ ОБНОВЛЕНИЯ КОДА КРИПТОГРАФИЧЕСКОГО АЛГОРИТМА, СПОСОБ И МОДУЛЬ ДЛЯ ГЕНЕРАЦИИ НАЧАЛЬНОГО ЧИСЛА, ПРОЦЕССОР СИСТЕМЫ БЕЗОПАСНОСТИ И ЗАПИСЫВАЮЩЕЕ УСТРОЙСТВО ДЛЯ ЭТИХ СПОСОБОВ

1. Способ обновления кода, выполняемого или интерпретируемого электронным вычислительным устройством, криптографического алгоритма, способного зашифровывать фрагмент данных D посредством ключа К для получения криптограммы D* или расшифровывать криптограмму D* посредством ключа К для получения фрагмент, незашифрованных данных D, причем этот код содержит, по меньшей мере, N числовых постоянных, и каждая числовая постоянная соответствует операнду или мнемонике инструкции кода, при этом значение этих числовых постоянных не зависит от фрагмента, данных D, ключа К и криптограммы D*,
отличающийся тем, что этот способ содержит:
- прием (122) случайно извлеченного начального числа, размер которого, исходя из количества бит, по меньшей мере, в четыре раза меньше, чем количество бит, необходимое для кодирования N числовых постоянных криптографического алгоритма,
- детерминированное расширение (128) начального числа для получения последовательности чисел, размер которой, исходя из количества бит, по меньшей мере, равен количеству бит, необходимых для кодирования N числовых постоянных криптографического алгоритма,
- генерирование (132) N новых числовых постоянных из полученной последовательности чисел и
- замена (134) N постоянных кода криптографического алгоритма на новые N постоянных, сгенерированные для получения кода обновленного криптографического алгоритма.
2. Способ по п.1, в котором каждая числовая постоянная соответствует либо операнду, либо математическому оператору, который при замене новым математическим оператором не модифицирует порядок выполнения инструкций кода криптографического алгоритма.
3. Способ по любому из вышеописанных пунктов, характеризующийся тем, что:
- если наличие секретного кода обнаружено внутри первой части принятого сообщения, то фрагменты данных, содержащиеся во второй заданной части этого сообщения или принятого впоследствии сообщения, используются (160, 164) для создания начального числа, и
- если наличие секретного кода внутри первой части сообщения не обнаружено, то фрагменты данных, содержащиеся в первой и второй частях, используются (154, 170) для других целей, не являющихся обновлением криптографического алгоритма.
4. Способ по п.3, в котором, если наличие секретного кода не обнаружено, то фрагменты данных, содержащиеся в первой и второй частях, используются (154, 170) для проверки целостности данных, содержащихся в сообщении или сообщениях.
5. Способ по п.3, в котором сообщение или сообщения являются сообщениями типов ЕСМ* (Entitlement Control Messages) или EMM* (Entitlement Management Messages).
6. Способ по п.1, в котором замена N постоянных криптографического алгоритма на сгенерированные новые N постоянных запускается (168) в ответ на запускающее событие независимо от приема начального числа.
7. Способ по п.1, в котором размер начального числа в количестве бит, по меньшей мере, в десять раз меньше, чем количество бит, необходимое для кодирования N числовых постоянных.
8. Способ по п.1, в котором детерминированное расширение (128) достигается посредством псевдослучайного генератора, инициализированного с принятым начальным числом.
9. Способ по любому из пп.1, 2, 4-8, в котором число N строго больше, чем 2 и предпочтительно больше, чем 10.
10. Модуль для обновления кода, выполняемого или интерпретируемого электронным вычислительным устройством, криптографического алгоритма, способного зашифровывать фрагмент данных D посредством ключа К для получения криптограммы D* или расшифровывать криптограмму D* посредством ключа К для получения фрагмента незашифрованных данных D, причем этот код содержит, по меньшей мере, N числовых постоянных, и каждая числовая постоянная соответствует операнду или мнемонике инструкции кода, при этом значение этих числовых постоянных не зависит от фрагмента данных D, ключа К и криптограммы D*, отличающийся тем, что этот модуль содержит:
- подмодуль (57) для получения случайно извлеченного начального числа, размер которого в битах, по меньшей мере, в четыре раза меньше, чем количество бит, необходимое для кодирования N числовых постоянных криптографического алгоритма,
- детерминированный генератор (54) чисел, инициализируемый с начальным числом для получения последовательности чисел, размер которой в количестве бит, по меньшей мере, равен количеству бит, необходимых для кодирования N числовых постоянных криптографического алгоритма, и
- построитель (56)кодов криптографического алгоритма, способный:
- генерировать новые N числовых постоянных из полученной последовательности чисел и
- заменять N постоянных кода криптографического алгоритма новыми N постоянных, сгенерированных для получения кода обновленного криптографического алгоритма.
11. Процессор (36) системы безопасности, способный выполнять или интерпретировать код криптографического алгоритма для зашифровывания фрагмента данных D посредством ключа К с целью получения криптограммы D*, или для расшифровывания криптограммы D* посредством ключа К с целью получения фрагмента незашифрованных данных D, причем этот код содержит, по меньшей мере, N числовых постоянных, и каждая числовая постоянная соответствует операнду или мнемонике инструкции кода, при этом значение этих числовых постоянных не зависит от фрагмента данных D, ключа К и криптограммы D*, отличающийся тем, что процессор системы безопасности содержит модуль (52) для обновления кода этого криптографического алгоритма по п.10.
12. Способ генерации начального числа, предназначенного для использования в способе обновления кода криптографического алгоритма по любому из пп.1-9, характеризующийся тем, что способ содержит:
а) случайное извлечение (102) начального числа, размер которого, исходя из количества бит, по меньшей мере, в четыре раза меньше, чем количество бит, необходимое для кодирования N числовых постоянных кода криптографического алгоритма, который должен быть обновлен,
б) создание (106) обновленного кода зашифровывающего или расшифровывающего алгоритма посредством способа обновления по любому из пп.1-9, причем принятое начальное число является одним из начальных чисел, извлеченных во время шага а),
в) проверку (112) надежности кода обновленного криптографического алгоритма по отношению к, по меньшей мере, одному способу криптоанализа,
г) если код зашифровывающего алгоритма не надежен по отношению к способу криптоанализа, происходит возврат к шагу а), а если нет, то происходит
д) передача (114) случайно извлеченного начального числа к устройству для приема, способному выполнить способ обновления кода криптографического алгоритма.
13. Модуль для генерации начального числа, предназначенного для использования в целях обновления кода криптографического алгоритма посредством способа по любому из пп.1-9, характеризующийся тем, что этот модуль содержит:
- генератор (20), способный случайным образом извлекать начальное число, размер которого, исходя из количества бит, по меньшей мере, в четыре раза меньше, чем количество бит, необходимое для кодирования N числовых постоянных криптографического алгоритма, который должен быть обновлен, и
- подмодуль (22) для создания обновленного кода зашифровывающего и расшифровывающего алгоритмов посредством способа обновления по любому из пп.1-9, причем принятое начальное число является одним из начальных чисел, извлеченных генератором;
- устройство (24) проверки надежности кода обновленного алгоритма по отношению к, по меньшей мере, одному способу криптоанализа, причем это устройство проверки способно:
- запрещать передачу случайно извлеченного начального числа к устройству для приема, если обновленный алгоритм не надежен по отношению к способу криптоанализа, а в противном случае,
- разрешать передачу случайно извлеченного начального числа к устройству для приема, способному выполнить способ обновления кода криптографического алгоритма.
14. Устройство записи информации, содержащее инструкции для выполнения способа по любому из пп.1-9 и п.12, когда эти инструкции выполняются электронным вычислительным устройством.