Изобретение относится к способу и модулю для обновления кода криптографического алгоритма, исполняемого или интерпретируемого электронным вычислительным устройством. Изобретение также относится к процессору системы безопасности и к средству записи информации для реализации этих способов.
Криптографический алгоритм применяется для кодирования фрагмента данных D посредством ключа К с целью получения криптограммы D*, или для расшифровывания криптограммы D* посредством ключа К с целью получения фрагмента незашифрованных данных D. При выполнении на электронном вычислительном устройстве этот криптографический алгоритм соответствует исполняемому или интерпретируемому коду. Код* называют исполняемым, когда он предварительно скомпилирован таким образом, что может быть непосредственно выполнен компьютером. Код называют «интерпретируемым», когда он переводится в вид инструкций и выполняется. Этот перевод в исполняемые инструкции осуществляется такой машиной, как "виртуальная машина", например на языке Java ® компании SUN Microsystems.
Является ли код исполняемым или интерпретируемым, на низшем уровне, этот код составлен как последовательность бит. В этой последовательности бит возможно различить, по меньшей мере, N числовых постоянных, независимых от фрагмента данных D, ключа К и криптограммы D*. Каждая числовая постоянная соответствует операнду или мнемонике инструкции исполняемого или интерпретируемого кода. Операнд - это, как правило, параметр инструкции, величина которого постоянна. На низшем уровне инструкция написана в двоичной форме и, следовательно, также принимает форму числовой постоянной в исполняемом или интерпретируемом коде. Эта инструкция соответствует мнемонике нижнего уровня.
Например, способы для обновления кода криптографического алгоритма применяются в том случае, когда требуется повысить уровень безопасности системы путем создания засекреченного криптографического алгоритма. Этот алгоритм может быть собственным алгоритмом или алгоритмом, полученным из известного семейства алгоритмов, таких как DES (Data Encryption Standard) или AES (Advanced Encryption Standard). В этом примере безопасность системы зависит от секретности ключа, алгоритма и его исполняемых параметров.
Для более ясного понимания применения криптографических алгоритмов и связанной с ними терминологии можно сослаться на книгу Брюса Шнейера (Вшсе Shneier) "Прикладная криптография" ("Applied Cryptography") (второе издание), издательство John Wiley & Sons, 1996.
Много мер предосторожности принимается для сохранения засекреченного криптографического алгоритма. Например, этот криптографический алгоритм записывается и исполняется исключительно в процессоре системы безопасности, разработанном таким образом, чтобы сделать любую попытку криптоанализа сложной. Этот процессор системы безопасности выполняет криптографические операции по запросу других устройств, которые являются менее безопасными, чем он.
Однако, несмотря на эти меры предосторожности, может случиться так, что криптографический алгоритм оказывается раскрытым и становится общеизвестным. Это серьезная брешь в системах безопасности, использующих криптографический алгоритм, потому что секретность зашифрованных данных основывается исключительно на сохранении секретности, которая окружает ключ.
В такой ситуации желательно обновить криптографический алгоритм путем его замены новым засекреченным криптографическим алгоритмом. Этот новый секретный криптографический алгоритм называется "обновленным алгоритмом", в то время как прежний заменяемый алгоритм называется "старым алгоритмом". Зашифровывающие и расшифровывающие операции, выполняемые с помощью обновленного криптографического алгоритма, несовместимы с теми, которые выполняются с помощью прежнего алгоритма. Таким образом, прежний алгоритм не может быть использован для расшифровки криптограмм, которые зашифровываются с помощью обновленного алгоритма. Также старый алгоритм не может быть использован для получения той же самой криптограммы, как криптограмма, полученная с помощью обновленного алгоритма, когда они оба применяются к тому же самому фрагменту незашифрованных данных.
Способы для обновления кода криптографического алгоритма используются для получения кода обновленного криптографического алгоритма.
Известно несколько способов обновления. Например, в первом способе код обновленного криптографического алгоритма посылается через компьютерную сеть передачи информации к процессору системы безопасности. Такая процедура предусматривает значительную ширину полосы пропускания компьютерной сети. Кроме того, мониторинг и криптоанализ кода, переданного в компьютерную сеть, может дать возможность открыть обновленный криптографический алгоритм и тем самым подвергнуть риску безопасность системы.
Второй способ заключается в записи, изначально в тот же самый процессор системы безопасности, нескольких кодов, известных как «варианты» обновленного криптографического алгоритма. Затем, когда необходимо, код используемого в текущий момент времени криптографического алгоритма деактивируется и находится на своем месте, активизируется выполнение одного из записанных ранее вариантов кода. Активация варианта криптографического алгоритма запускается в ответ на прием активационного сообщения. Второй тип способа не требует значительной ширины полосы пропускания для передачи активационного сообщения, так как это активационное сообщение не содержит обновленного кода криптографического алгоритма. Кроме того, отслеживание и криптоанализ активационного сообщения, принятого процессором системы безопасности, сами по себе недостаточны для раскрытия обновленного криптографического алгоритма.
Однако этот второй способ требует больше ресурсов памяти, так как необходимо изначально записывать различные варианты криптографического алгоритма в процессор системы безопасности. Если полный код, применяемый в процессоре системы безопасности, становится известным, то все варианты криптографического алгоритма становятся также известны.
Изобретение предпринимает попытку преодолеть, по меньшей мере, один из этих недостатков, предлагая улучшенный способ обновления кода криптографического алгоритма.
Задачей изобретения является, таким образом, способ обновления, содержащий следующие шаги:
- получение случайно выбранного начального числа, размер которого, исходя из количества бит, по меньшей мере, в четыре раза меньше, чем количество бит, необходимых для кодирования N числовых постоянных криптографического алгоритма;
детерминированное расширение начального числа для получения последовательности чисел, размер которой в битах, по меньшей мере, равен количеству бит, необходимых для кодирования N числовых постоянных криптографического алгоритма;
- генерирование N новых числовых постоянных из полученной последовательности чисел; и
- замена N постоянных кода криптографического алгоритма на N новых постоянных, сгенерированных для получения кода обновленного криптографического алгоритма.
Детерминированное расширение - это операция для генерации последовательности чисел из начального числа таким образом, что когда бы ни использовалось то же самое начальное число для инициализации расширения, последовательность полученных чисел оставалась бы одинаковой.
В описанном выше способе размер начального числа намного меньше, чем размер кода обновленного криптографического алгоритма. Действительно, размер обновленного алгоритма, по меньшей мере, больше, чем размер N постоянных. Таким образом, этот способ менее "требователен", с точки зрения ширины полосы пропускания, чем способы, в которых полный код алгоритма передается через компьютерную сеть передачи информации. Кроме того, так как начальное число выбирается случайно, анализ принятого начального числа сам по себе недостаточен для извлечения обновленного криптографического алгоритма. Действительно, чтобы его завершить, также необходимо знать алгоритм, использованный для осуществления расширения начального числа. Теперь этот алгоритм не передается посредством сети передачи информации.
Также этот способ не требует изначального хранения множества вариантов криптографических алгоритмов. Таким образом, этот способ использует меньшие ресурсы памяти на той части процессора, которая выполняет криптографический алгоритм.
В отличие от способов активации записанного ранее варианта криптографического алгоритма, раскрытие кода, выполняемого процессором системы безопасности, само по себе недостаточно для определения обновленного кода криптографического алгоритма. Для этого также необходимо знать принятое начальное число.
И наконец, генерация и замещение N постоянных осуществляются намного менее часто, чем выполнение криптографического алгоритма. Таким образом, обнаружение алгоритма, используемого для расширения начального числа и для генерации N новых числовых постоянных, становится более сложным. Например, более сложно осуществлять попытки криптоанализа, основываясь на анализе кривых потребления энергии, кривых электромагнитного излучения, или других технологиях, основанных на сигналах, генерированных процессором системы безопасности, когда он функционирует.
Варианты осуществления этого способа обновления могут содержать одну или более из следующих характеристик:
- каждая числовая постоянная соответствует либо операнду, либо математическому оператору, который, при замене новым математическим оператором, не изменяет порядок выполнения инструкций кода криптографического алгоритма;
- если наличие секретного кода обнаружено в первой части принятого сообщения, то фрагменты данных содержатся во второй заданной части этого сообщения, или последовательно принятые сообщения используются для создания начального числа, а если наличие секретного кода в первой части сообщения не обнаружено, тогда фрагменты данных, которые содержатся в первой и второй частях, используются для завершения чего-то другого, а не для обновления криптографического алгоритма;
- если наличие секретного кода не обнаружено, то фрагменты данных, которые содержатся в первой и второй частях, используются для проверки целостности данных, содержащихся в сообщении или сообщениях;
- сообщение или сообщения относятся к типам ЕСМ* (Entitlement Control Messages) или EMM* (Entitlement Management Messages);
- замена N постоянных криптографического алгоритма сгенерированными новыми N постоянными запускается в ответ на запускающее событие независимо от приема начального числа;
- размер начального числа в битах, по меньшей мере, в десять раз меньше, чем количество бит, необходимое для кодирования N числовых постоянных;
- детерминированное расширение достигается посредством псевдослучайного генератора, запускаемого с помощью принятого начального числа;
- число N строго больше, чем два, и предпочтительно больше десяти.
Эти варианты осуществления способа обновления, кроме того, имеют следующие преимущества:
- замена операндов и/или математических операторов кода делает возможным не изменять порядок выполнения инструкций кода криптографического алгоритма, таким образом упрощая применение этого способа обновления;
- использование секретного кода для обозначения того факта, что вторая часть сообщения, обычно используемая для других целей, содержит начальное число, дает возможность скрыть передачу начального числа;
- скрытие секретного кода и начального числа в криптографической избыточности сообщения делает возможным передавать действительные данные во всех других полях сообщения и, следовательно, не изменять поведение получателя, даже когда криптографическая избыточность содержит начальное число или секретный код;
- запуск замены N постоянных в ответ на запускающее событие, независимо от приема начального числа, усложняет идентификацию принятого сообщения, которое содержит начальное число;
- использование начального числа, размер которого, по меньшей мере, в десять раз меньше, чем количество бит, необходимое для кодирования N числовых постоянных, обеспечивает еще большую экономию в ширине полосы пропускания компьютерной сети.
Задачей изобретения также является модуль для обновления кода криптографического алгоритма, содержащий:
- подмодуль для приема случайно выбранного начального числа, размер которого, исходя из количества бит, по меньшей мере, в четыре раза меньше, чем количество бит, необходимое для кодирования N числовых постоянных криптографического алгоритма;
- детерминированный генератор чисел, запускаемый с начальным числом, для получения последовательности чисел, размер которой по количеству бит, по меньшей мере, равен количеству бит, необходимых для кодирования N числовых постоянных криптографического алгоритма;
- построитель кодов криптографического алгоритма, способный:
- генерировать N новых числовых постоянных из полученной последовательности чисел, и
- заменять N постоянных кода криптографического алгоритма на N новых постоянных, сгенерированных для получения кода обновленного криптографического алгоритма.
Задачей изобретения также является процессор системы безопасности, способный выполнять или интерпретировать код криптографического алгоритма. Этот процессор системы безопасности включает в себя вышеописанный обновляющий модуль,
Задачей изобретения также является способ генерации начального числа, предназначенный для использования с помощью вышеописанного способа обновления. Этот способ содержит следующие шаги:
а) случайное извлечение начального числа, размер которого, исходя из количества бит, по меньшей мере, в четыре раза меньше, чем количество бит, необходимое для кодирования N числовых постоянных криптографического алгоритма;
б) создание кода зашифровывающего алгоритма, соответствующего коду обновленного криптографического алгоритма, полученного посредством способа обновления, когда принятое начальное число является одним из начальных чисел, извлеченных во время шага а);
в) проверка надежности* кода зашифровывающего алгоритма по отношению, по меньшей мере, к одному способу криптоанализа;
г) если код зашифровывающего алгоритма не является надежным по отношению к способу криптоанализа, то происходит возвращение к шагу а), и если нет, то
д) передача случайно извлеченного начального числа к приемнику, который способен применять способ обновления кода криптографического алгоритма.
Проверка надежности зашифровывающего алгоритма, соответствующего обновленному криптографическому алгоритму, дает возможность использовать только начальные числа, с помощью которых возможно получить надежные криптографические алгоритмы.
Задачей изобретения также является модуль генерирования начального числа, содержащий:
- генератор, который имеет способность случайного извлечения начального числа, размер которого, исходя из количества бит, по меньшей мере в четыре раза меньше, чем количество бит, необходимых для кодирования N числовых постоянных криптографического алгоритма;
- подмодуль для создания кода зашифровывающего алгоритма, соответствующего коду обновленного криптографического алгоритма, полученного с помощью способа обновления, когда принятое начальное число является числом, извлеченным с помощью генератора;
- проверочное устройство надежности кода зашифровывающего алгоритма относительно, по меньшей мере, одного способа криптоанализа, причем это проверочное устройство способно:
- препятствовать передаче случайно извлеченного начального числа к приемнику, если зашифровывающий алгоритм не является надежным по отношению к способу криптоанализа, и если нет,
- позволять передачу случайно извлеченного начального числа к приемнику, способному применять способ обновления кода криптографического алгоритма.
И последнее, задачей изобретения также является среда для записи информации, содержащая инструкции для применения описанных выше способов, когда они выполняются электронным вычислительным устройством.
Изобретение будет более понятным из последующего описания, данного исключительно в качестве неисчерпывающего примера и выполненного со ссылкой на прилагаемые чертежи, на которых:
фиг.1 является схематической иллюстрацией системы для передачи зашифрованного мультимедийного содержимого между отправителем и устройством для приема;
фиг.2 является схематической иллюстрацией таблицы преобразования, используемой отправителем и приемным устройством системы, показанной на фиг.1;
фиг.3 является схематической иллюстрацией содержимого памяти отправителя системы, показанной на фиг.1;
фиг.4 и 5 являются схематическими иллюстрациями таблиц преобразования логических адресов в физические, используемых соответственно передающим устройством и принимающим устройством системы, показанной на фиг.1;
фиг.6 является схематической иллюстрацией содержимого памяти, используемой принимающим устройством системы, показанной на фиг.1;
фиг.7 является схемой последовательности операций способа передачи зашифрованного мультимедийного содержимого, в котором применяются фазы для обновления кода криптографического алгоритма и для генерации начального числа, чтобы обновить этот код;
фиг.8 является схематической иллюстрацией последовательности чисел, полученных из детерминированного генератора;
фиг.9 является схематической и частичной иллюстрацией информационного фрейма, соответствующего ЕСМ (Entitlement Control Message - данные, передаваемые в транспортном потоке и содержащие информацию о критериях доступа и индивидуальные параметры скремблирования);
фиг.10 является схемой последовательности операций способа передачи данных с помощью засекреченного канала между отправителем и устройством для приема системы, показанной на фиг.1;
На этих фигурах одинаковые ссылки используются для обозначения одинаковых элементов.
В последующей части этого описания характеристики и функции, которые хорошо известны специалистам в данной области техники, не будут подробно описываться. Кроме того, используется терминология, в которой системы доступа имеют условную зависимость от зашифрованного мультимедийного содержимого. Чтобы получить больше информации по этой терминологии, читатель может обратиться к следующему документу:
"Функциональная модель системы санкционированного доступа", "Functional Model of Conditional Access System», EBU Review-Technical European Broadcasting Union, Brussels, BE, No.266, 21 Декабря 1995."
Фигура 1 представляет систему 2 для передачи мультимедийного содержимого между отправителем 4 и множеством устройств для приема. Устройства для приема подсоединены к отправителю 4 с помощью компьютерной сети 6 для передачи информации. Например, компьютерная сеть 6 является спутниковой сетью, к которой устройства для приема подсоединены с помощью беспроводной связи.
Для упрощения иллюстрации на фиг.1 представлено только приемное устройство 8. Здесь подразумевается, что другие устройства для приема идентичны приемному устройству 8.
Отправитель 4 содержит:
- криптографический модуль 10, способный выполнять криптографический алгоритм, такой как зашифровывающий алгоритм F для шифрования управляющего слова CW,
- генератор 12 сообщений ЕСМ (Entitlement Control Message)/EMM (Entitlement Management Message),
- модуль 14 для генерирования начального числа с целью обновления алгоритма F-1 расшифровывания криптограммы CW* управляющего слова CW.
Модуль 10 также способен выполнять алгоритм для зашифровывания мультимедийного содержимого с помощью управляющего слова CW, чтобы получить зашифрованное мультимедийное содержимое.
Выходы модулей 10 и 12 присоединены к мультиплексору 15. Этот мультиплексор 14* мультиплексирует зашифрованное мультимедийное содержимое с помощью модуля 10 в сообщения ЕСМ и EMM, генерируемые с помощью генератора 12, чтобы получить мультиплексированное мультимедийное содержимое. Мультиплексированное мультимедийное содержимое распространяется к приемным устройствам через компьютерную сеть 6.
Модули 10 и 14, а также генератор 12 подсоединены к памяти 16 посредством шины передачи информации.
Модуль 14 содержит:
- генератор 20, способный случайным образом извлекать начальное число;
- подмодуль 22 для создания исполняемого кода зашифровывающего алгоритма F', соответствующего обновленному расшифровывающему алгоритму F-1, и
- проверочное устройство 24 надежности алгоритма F', созданного подмодулем 22.
Зашифровывающий алгоритм соответствует расшифровывающему алгоритму, если криптограмма D*, которую он создает, расшифровывается посредством расшифровывающего алгоритма. В случае симметричной криптографии, это означает, что зашифровывающий алгоритм является противоположным расшифровывающему алгоритму.
Подмодуль 22 содержит:
- детерминированный генератор 26 для генерации последовательности чисел, который может быть запущен с начальным числом, извлеченным генератором 20, и
- построитель 28 зашифровывающего алгоритма F', соответствующего обновленному расшифровывающему алгоритму F-1.
Например, генератор 26 является псевдослучайным генератором, известным как PRNG (Pseudo-Random Number Generator - генератор псевдослучайных чисел). Таким образом, в этом случае, "случайно" извлеченное число также обозначает псевдослучайно извлеченное число.
Модуль 14 состоит из программируемого электронного вычислительного устройства, способного выполнять инструкции, записанные на средство для записи информации. Для этой цели память 16 содержит инструкции и данные, необходимые для выполнения способа, показанного на фиг.7.
Устройство 8 для приема имеет декодер 34 мультиплексного мультимедийного содержимого, подсоединенный к процессору 36 системы безопасности.
Декодер 34 содержит демультиплексор 38, способный выполнять демультиплексирование мультиплексного мультимедийного содержимого, и дешифратор 40, способный расшифровывать мультимедийное содержимое посредством управляющего слова CW, которое само выдается процессором 36.
Декодер 34 подсоединен к экрану 42, такому как телевизионный экран, способному отображать незашифрованное мультимедийное содержимое. Выражение «незашифрованное» ("unencrypted") означает, что мультимедийное содержимое, отображаемое на экране 42, является непосредственно постижимым для наблюдающего его человека.
В этом отдельном случае процессор 36 является съемным. Поэтому он может быть присоединен к декодеру 34, и наоборот, отсоединен от него. Например, процессор 36 является микропроцессорной карточкой.
Процессор 36 содержит:
- криптографический модуль 50, способный выполнять алгоритм F"' для расшифровки криптограммы CW*, и
- модуль 52 для обновления расшифровывающего алгоритма, выполняемого модулем 50.
Модуль 52 имеет детерминированный генератор 54, идентичный генератору 26, и построитель 56 обновленного расшифровывающего алгоритма, а также подмодуль 57 для приема начального числа.
Модуль 50, генератор 54 и построитель 56 присоединяются к памяти 58.
Процессор 36 состоит из программируемого электронного вычислительного устройства, способного выполнять инструкции, записанные на средство для записи информации. Для этой цели память 58 имеет необходимые инструкции и данные, необходимые для выполнения способа фигуры 7.
Отправитель 4 использует зашифровывающий алгоритм F для получения криптограммы CW* управляющего слова, переданного приемному устройству 8 в сообщении ЕСМ. Процессор 38 использует алгоритм F-1 для расшифровывания криптограммы CW* для того, чтобы получить незашифрованное управляющее слово CW, которое затем используется дешифратором 40. При этом, зашифровывающий и расшифровывающий алгоритмы являются секретными
Сейчас будет представлен пример секретных зашифровывающего и расшифровывающего алгоритмов перед более подробным описанием, как обеспечивается использование системы 2.
Здесь для выполнения этих зашифровывающих и расшифровывающих алгоритмов F и F-1 используется симметричная криптография. Например, алгоритмы построены путем модификации криптографического алгоритма AES-128 (Advanced Encryption Standard - 128 - улучшенный стандарт шифрования). В алгоритме AES-128, фрагмент входящих данных D закодирован на 128 битах, и ключ также закодирован на 128 битах. Этот алгоритм AES хорошо известен, поэтому подробности, относящиеся к этому алгоритму, пропущены в этом описании. Следует просто напомнить, что зашифровывающий алгоритм AES-128 содержит 10 циклов Ti, где индекс обозначает номер циклов. Эти циклы Тi состоят главным образом из следующих операций:
- замещение операции, во время которой каждый байт заменяется другим из записанной заранее таблицы замены,
- вращение направо с определенным количеством шагов,
- линейная трансформация, во время которой байты объединяются с полиномом, заданным с помощью операции XOR (exclusive OR - ИСКЛЮЧАЮЩЕЕ ИЛИ), и
- шаг для комбинирования байтов фрагмента данных, которые должны быть зашифрованы, и ключа, посредством операции XOR.
Операция первого цикла и второго цикла могут немного отличаться от процедуры, описанной выше.
Промежуточная криптограмма, полученная в конце цикла Тi, обозначается как D*i, а окончательная криптограмма, полученная после полного выполнения зашифровывающего алгоритма, обозначается как D*.
Здесь зашифровывающий алгоритм AES-128 модифицируется за счет того факта, что после каждого цикла Тi функция Fi применяется к промежуточной криптограмме D*i. Затем следующий цикл Ti+1 берет фрагмент данных F1(D*i) в качестве ввода вместо фрагмента данных D*i. Таким образом, D*i+1=Ti+1 o Fi(D*i). Другими словами, после модификации секретный зашифровывающий алгоритм F, используемый здесь, может быть записан следующим образом:
D*=F(D)=F10 о Т10 о…о F2 о Т2 о F1 о T1(D)
где D является фрагментом данных в незашифрованной форме,
Тi соответствует составлению операций, выполняемых во время цикла с номером i зашифровывающего алгоритма AES-128,
Pi является секретной функцией, применяемой к промежуточной криптограмме D*i, полученной во время цикла Тi, и
о является операцией «составления функций».
Точки и тире, представленные в приведенном выше соотношении, означают, что полная формула не была представлена, с тем чтобы упростить ее написание.
С теми же самыми замечаниями секретный расшифровывающий алгоритм F-1 может быть записан следующим образом:
где “-1” обозначает, что эта функция является инверсной по отношению к соответствующей функции.
Каждая функция Fi формируется с помощью композиции восьми обратимых элементарных функций с fi1 по fi8. Таким образом, функция Fi(D*i) записывается следующим образом:
Fi(D*i)=fi8 о fi7 о fi6 о fi5 о fi4 о fi3 о fi2 о fi1(D*i).
Каждая функция fjj выбирается из группы, образованной следующими восемью функциями Vk:
V0(x,p)=x XOR p
V1(x,p)=x+p
V2(x,p)=x-p
V3(x,p)=x×(2×р+1)
V4(x,p)=rot_left(x,p mod 8)
V5(x,p)=rot_right(x, p mod 8)
V6(x,p)=NOT(x XORp)
V7(x,p)=X.
x и p являются переменными параметрами каждой функции Vk. Кроме того, оба этих параметра x и p являются также операндами функций Vk.
Функция "mod 8" - это конгруэнция функции modulo 8. Функция rot_left - это функция, которая смещает биты фрагмента данных x с шагом, равным результату операции p mod 8. Функция rot_right идентична функции rotjeft, за исключением того, что смещение осуществляется вправо.
Функции XOR и NOT являются хорошо известными Булевыми функциями.
При определении функции Fi несколько функций fij могут быть идентичными. Исполняемый код функции Vk записан и выполняется с помощью вызова инструкций, записанных из адреса Adk в память 16. Секция памяти 16, в которой записаны исполняемые коды функций Vk(x,p), проиллюстрирована подробно со ссылкой на фигуру 3.
Исполняемый код этих функций Vk(x,p) предварительно записывается перед любым использованием отправителя 4.
Далее ниже, fij обозначает величину параметра p функции fij. С учетом этого, функция fij может быть записана следующим образом:
fij(x)=Vk(x,pij)
где индексы k и] содержатся между 1 и 8.
Это означает, что функция fij полностью определена, так же как известен и адрес Adk, по которому расположены исполняемый код функции Vk и значение параметра рij.
Адрес Adk и значение параметра рij для каждой функции fij являются числовыми постоянными в коде алгоритма F. Эти числовые постоянные являются независимыми от фрагмента данных D, который должен быть зашифрован, и зашифровывающего ключа К. Поэтому здесь код алгоритма F содержит восемьдесят числовых постоянных для определения всех функций fij и других числовых постоянных, определяющих каждый из циклов Тi.
Адрес Adk кодируется на нескольких байтах, например двух байтах. Значение каждого параметра pij для его части кодируется на одном байте. Это означает, что определение функции fjj может быть закодировано на трех байтах. Однако чтобы ограничить количество битов, необходимых для кодирования определения функции fij, здесь используется таблица 60 преобразования (см. фиг.2). Эта таблица содержит первую колонку, содержащую восемь возможных значений идентификатора IdV адреса Adk функции Vk. Например, на фиг.2 значения 0, 1, 2, 3 и 4 идентификатора IdV, записанные в двоичном режиме, соотносятся соответственно с адресами Ad0, Ad1, Ad2, Ad3 и Ad4, на базе которых могут быть вызваны исполняемые коды соответственно функций V0, V1, V2, V3, и V4.
Таблица 60 предварительно записана в память 16.
За счет использования таблицы 60 определение функции fij может быть закодировано только на 11 битах, три бита потребуются для кодирования значения идентификатора IdV, и восемь бит - для кодирования значения параметра fij.
Таким образом, чтобы закодировать определение функции Fi, требуется минимум 88 бит, поскольку каждая функция Fi является результатом композиции восьми функций fij, И последнее, чтобы определить набор функций Fi, используемый при шифровании алгоритма F, по описанной выше причине необходимо как минимум 880 бит.
Определение каждой из функций fij, используемых в зашифровывающем алгоритме F, записывается в таблицу 62 преобразования логических адресов в физические. Пример таблицы 62 показан на фиг.4. Эта таблица 62 содержит для каждой функции fij:
- идентификатор, обозначенный здесь fij функции fij,
- адрес Adk места, в котором располагается исполняемый код функции Vk, используемый в определении функции fij, и
- значение параметра pij.
Например, на фиг.4 функция f11 определяется с помощью адреса Ad3 и с помощью операнда p11. Это означает, что функция f11 записывается следующим образом:
f11(x)=V3(x, p11).
Чтобы упростить фиг.4, определения функций fij, которые были пропущены, заменены на точки и тире.
Все функции fij являются обратимыми. Таким образом, функции
Аналогично тому, что было описано для зашифровывающего алгоритма, каждая функция
Фиг.6 показывает более подробный вид блока памяти 58, в которой записаны функции
Функционирование системы 2 теперь будет описано со ссылкой на способ фигуры 7. Изначально выполняется фаза 70 для распространения мультимедийного содержимого. Вначале, во время шага 72, отправитель 4 генерирует управляющее слово CW.
Затем, на шаге 74, это кодовое слово CW используется для шифрования или кодирования мультимедийного содержимого. В то же самое время, на шаге 76, кодовое слово CW зашифровывается модулем 10 с использованием алгоритма F для получения криптограммы CW*. Как только криптограмма CW* получена, снова во время шага 76, генератор 12 генерирует сообщение ЕСМ, содержащее эту криптограмму.
Затем, на шаге 78, зашифрованные мультимедийное содержимое и сообщение ЕСМ, так же как, возможно, сообщения EMM, мультиплексируются мультиплексором 15.
На шаге 80, полученное таким образом мультиплексное мультимедийное содержимое распространяется всем приемным устройствам посредством компьютерной сети 6.
Затем, на шаге 82, приемное устройство 8 принимает мультиплексное мультимедийное содержимое.
На шаге 84, демультиплексор 38 демультиплексирует это мультиплексное мультимедийное содержимое и передает зашифрованное мультимедийное содержимое шифратору 40 и сообщение ЕСМ процессору 36 системы безопасности.
На шаге 86, процессор 36 расшифровывает криптограмму CW* путем выполнения алгоритма F-1 и отправляет шифратору 40 управляющее слово CW, таким образом полученное в незашифрованной форме.
На шаге 88, дешифратор 40 расшифровывает зашифрованное мультимедийное содержимое, полученное с помощью управляющего слова CW, переданного процессором 6*, и передает расшифрованное мультимедийное содержимое на экран 42.
На шаге 90, расшифрованное мультимедийное содержимое отображается в незашифрованной форме на экране 42.
Управляющее слово CW модифицируется через постоянные интервалы. Интервал, в течение которого управляющее слово CW не модифицируется, называется "криптопериодом". Таким образом, шаги с 72 по 90 повторяются для каждого криптопериода. Например, криптопериод длится меньше 20 секунд и, предпочтительно, меньше 11 секунд.
При необходимости, выполняется фаза 100 для генерации начального числа, которое может быть использовано для обновления алгоритмов F и F-1.
В начале фазы 100, во время шага 102, генератор 20 генерирует новое начальное число. Размер этого начального числа в битах, по меньшей мере, в четыре раза, и, предпочтительно, в десять или 20 раз меньше, чем 880 бит, необходимых для кодирования числовых постоянных, определяющих функции fij.
Здесь, размер начального числа составляет 16 бит.Эти 16 бит извлекаются случайно. Например, случайное извлечение запускается физическим явлением, которое происходит на одном из пользовательских интерфейсов отправителя 4. Например, случайное извлечение запускается перемещением мыши.
Затем, на шаге 104, выполняется детерминированное расширение начального числа для получения последовательности чисел. Размер этой последовательности чисел в количестве бит, по меньшей мере, равен количеству бит, необходимому для кодирования числовых постоянных, определяющих функции fij. Здесь, детерминированное расширение состоит в генерации 880-битовой последовательности из начального числа, закодированного в 16 битах. Чтобы выполнить это расширение, псевдослучайный генератор 26 запускается с начальным числом, полученным на шаге 102.
Затем, на шаге 106, создается код зашифровывающего алгоритма F', соответствующего обновленному расшифровывающему алгоритму F'-1 криптограммы CW*. Для этой цели создается новая таблица Tab' преобразования логических адресов в физические, в которой числовые постоянные отличаются от тех, которые содержались в таблице 62.
Более конкретно, во время операции 108, новые числовые постоянные должны быть записаны в создаваемую таблицу Tab' преобразования логических адресов в физические.
Чтобы пояснить генерацию этих числовых постоянных, фигура 8 показывает запуск последовательности чисел, полученной после шага 104. Эта последовательность чисел в данном случае является последовательностью чисел, записанных в режиме двоичного счета. Следовательно, это последовательность нулей и единиц. Эта последовательность чисел разделена на десять последовательных 88-битовых сегментов, соответствующих в указанном порядке функциям F1, F2, …, F10. Эти сегменты структурированы таким же образом. Эта структура описана здесь со ссылкой на сегмент F1. Первые 24 бита сегмента F1 разделены на восемь подсегментов, обозначенных f11, f12, …, f18. Остальная часть сегмента F1 разделена на восемь последовательных сегментов, обозначенных с p11 по p18.
Каждый подсегмент f1j содержит значение, закодированное на трех битах, идентификатора IdV функции Vk. Каждый подсегмент p1j содержит значение параметра p1j
Построитель 28 на основе значения, содержащегося в подсегментах f1j, и используя таблицу 60, находит адрес, закодированный на двух байтах, соответствующий значению этого идентификатора. Таким образом, из значений идентификатора f1j и параметра p1j, построитель 28 генерирует две новые числовые постоянные, определяющие новую функцию f1j.
То, что было описано в частном случае сегмента F1, может также быть применено к другим сегментам Fi.
Затем, во время операции 110, новые числовые постоянные, генерированные во время операции 108, записываются в таблицу Tab' преобразования логических адресов в физические, независимую от таблицы 62, но структурно идентичную.
После шага 106, во время шага 112, проверочное устройство 24 проверяет надежность полученного зашифровывающего алгоритма F'. Например, она удостоверяется, что алгоритм F' надежен по отношению к способам криптоанализа, использующих частоту появления определенных закономерностей битов в криптограмме. Для этой цели проверочное устройство 24 использует алгоритм F' для шифрования предварительно определенного фрагмента данных посредством предварительно определенного ключа К для получения криптограммы D*. Затем, оно проверяет случайное распределение бит в нуль и в единицу в криптограмме D*. Для этой цели используются различные способы проверки, описанные в следующем документе:
Federal Information Processing Standard Publication (FIPS) 140-1, 11 January 1994, US Department of Commerce/National Institute of Standard and Technology.
Более конкретно, здесь применяются тестовые и проверочные способы, аналогичные способам, описанным в параграфе 4.11.1 этого документа, для проверки случайного распределения бит в последовательности бит, сгенерированной псевдослучайным генератором (смотри раздел "Статистические тесты генератора случайных чисел"/"Statistical Random Number Generator Tests", на странице 43 этого документа).
Во время шага 112 также совершается проверка на идентичность, т.е. проверяется тот факт, что криптограмма D* не идентична фрагменту данных D.
Чтобы выполнить эти проверки, один выбранный ключ К может быть легко использован для проведения шифрования управляющего слова CW.
Если одна из проверок, применяемых во время теста 112, является неудовлетворительной, ход выполнения способа возвращается на шаг 102. В противном случае предполагается тот случай, в котором используемое начальное число дает возможность построения надежного зашифровывающего алгоритма. В этом случае, новая таблица Tab' преобразования логических адресов в физические, так же как и начальное число, запоминаются в отправителе на шаге 114. Во время шага 114, сгенерированное таким образом начальное число также передается процессору 36 через компьютерную сеть 6 по секретному каналу. Однако, таблица Tab' преобразования логических адресов в физические не используется до тех пор, пока пусковой элемент не запустит ее в работу.
Затем, когда в процесс включается активационный элемент, осуществляется шаг 116, во время которого таблица 62 преобразования логических адресов в физические заменяется таблицей Tab' преобразования логических адресов в физические. После шага 116 ход выполнения способа возвращается к фазе 70. Таким образом, в течение нового выполнения этой фазы 70 используется алгоритм F' обновленного назначения вместо прежнего зашифровывающего алгоритма F.
В данном случае, запускающий элемент - это отправка сообщения ЕСМ, содержащего особый код, способный запускать обновление зашифровывающего алгоритма в процессоре 36.
В то же самое время, в фазе 100, во время фазы 120, процессор 36 выполняет обновление зашифровывающего алгоритма F-1. В исходном состоянии, во время шага 122, процессор 36 принимает начальное число, отправленное во время шага 114 отправителем 4. Затем, во время шага 124, это начальное число запоминается. Это начальное число не используется до тех пор, пока запускающий элемент не включится в этот процесс.
Во время шага 126, процессор 36 получает этот запускающий элемент. Например, процессор 36 принимает сообщение ЕСМ, содержащее инструкцию, которая запускает обновление расшифровывающего алгоритма.
Затем, во время шага 128, в ответ на получение запускающего элемента, генератор 54 осуществляет детерминированное расширение принятого начального числа. Шаг 128 идентичен шагу 104, так что полученная последовательность чисел является такой же.
Затем, во время шага 130, из этой последовательности чисел строится код обновленного расшифровывающего алгоритма F'-1, соответствующего алгоритму F'. Во время операции 132 генерируются новые числовые постоянные, записываемые в таблицу 64. В данном случае, эта операция 132 идентична операции 108.
Затем, во время операции 134, каждая числовая постоянная, содержащаяся в таблице 64 преобразования логических адресов в физические, заменяется соответствующей новой числовой постоянной, сгенерированной во время шага 132. Таким образом, к концу шага 130, код алгоритма F-1 заменен кодом алгоритма F'-1.
Затем ход выполнения процесса возвращается к фазе 70. Таким образом, во время нового выполнения фазы 70, для расшифровывания криптограммы CW* используется обновленный расшифровывающий алгоритм F'-1 вместо прежнего алгоритма F-1.
Сейчас будет описан пример передачи начального числа от отправителя 4 к приемному устройству 8. Для этой цели мы можем кратко напомнить со ссылкой на фиг.9 структуру сообщения ЕСМ. Сообщение ЕСМ содержит поле 140, содержащее криптограмму CW*, и поле 142, содержащее подпись или криптографическую избыточность, называемую MAC. Например, подпись 142 закодирована на 126 битах. Эта подпись 142 проверяет целостность сообщения. Она строится с помощью применения заданной функции подписи к другим фрагментам данных сообщения. Например, подпись MAC строится путем применения хэш-функции к битам других фрагментов данных, содержащихся в том же сообщении ЕСМ и, особенно, принимая во внимание биты криптограммы CW*.
В этом контексте, прием начального числа и запускающего элемента процессором 36 через секретный канал сейчас будет описан со ссылкой на фиг.10 в частном случае, в котором начальное число закодировано на 128 битах.
В исходном состоянии, процессор 36, во время шага 150, вычисляет подпись МАСс принятого сообщения ЕСМ. Для этой цели такая же функция подписи, которая использовалась отправителем 4, может быть применена к данным ЕСМ.
Затем, во время шага 152, построенная подпись МАСс сравнивается с этой подписью МАСе, содержащейся в поле 142 ЕСМ.
Если эти подписи идентичны, то изобретение осуществляет шаг 152 для обработки ЕСМ процессором 36. Обработка, кроме того, состоит в расшифровывании криптограммы CW*, если заголовок доступа, содержащийся в памяти 58, соответствует условиям доступа, содержащимся в принятом ЕСМ.
Если нет, то во время шага 156 подписи МАСс и МАСе объединяются байт за байтом посредством операции XOR. Шестнадцать байтов, соответствующих результатам этого объединения, записываются соответственно в блоки с RES[0] no RES[15] остатка.
Затем, во время шага 158, осуществляется контроль по четности, чтобы байты, записанные в блоки остатка, пронумерованные четными индексами, были равны первому заданному значению. Например, следующие сравнения производятся для всех i, изменяющихся от 0 до 7:
RES[2□i]=0×A5
где 0×A5 - это заданное значение, выраженное в шестнадцатеричной системе счисления.
Если все сравненные значения равны, изобретение осуществляет шаг 160, во время которого значения, содержащиеся в блоках RES[2□i+1], имеющие значения с нечетным индексом, записываются соответственно в блоки SEED[i], для всех i, изменяющихся от 0 до 7. Затем, во время шага 160, принятое ЕСМ обрабатывается обычным образом в процессоре 36.
Если блоки, сравненные во время шага 158, не соответствуют первому заданному значению, ход выполнения операций переходит к шагу 162 для сравнения блоков RES[2xi] с заданным значением, например 0×5А, для всех i, изменяющихся от 0 до 7. Если все сравненные блоки равны значению 0×5А, то изобретение переходит к шагу 164, во время которого значения, содержащиеся в блоках RES[2xi+1] для всех i, изменяющихся от 0 до 7, сохраняются соответственно в блоках SEED[8+i]. Во время шага 64* принятое сообщение ЕСМ также обрабатывается процессором 36 обычным образом.
Если блоки, сравненные во время шага 162, не соответствуют второму заданному значению, ход выполнения операций продолжается на шаге 166 для сравнения блоков с третьим заданным значением, например 0×00, для всех i, изменяющихся от 0 до 7. Если все блоки, сравненные во время шага 166, соответствуют третьему заданному значению, то во время шага 168 обрабатывается ЕСМ. Кроме того, факт продолжения процесса на шаге 168 соответствует получению запускающего элемента. Другими словами, шаг 168 соответствует шагу 126 способа согласно изобретению. Таким образом, шаг 168 разрешает продолжение обновления криптографического алгоритма в процессоре 36, как описано со ссылкой на фазу 120 фиг.7.
Если нет, это означает, что принятое сообщение ЕСМ ошибочно, и на шаге 170 процессор 36 уведомляет об этом и сообщение ЕСМ не обрабатывается.
Способ для отправки начального числа или запускающего элемента по секретному каналу логически выводится из способа приема, описанного со ссылкой на фигуру 10. Поэтому этот способ не будет описываться здесь более подробно.
Возможны многие другие варианты осуществления изобретения. Например, процессор 36 может быть неизменно интегрирован с дешифратором 40 или декодером 34. Процессор 36 может также быть программным модулем, модифицированным для того, чтобы быть более стойким к попыткам криптоанализа, чем другие части программного обеспечения декодера 44.
Компьютерная сеть 6 может быть проводной сетью. Сеть 6 также может быть сетью с коммутацией пакетов, такой как Интернет.
В частном случае, описанном здесь, память 16 и 58 содержит исполняемый код функций Vk. Этот код является непосредственно выполнимым модулями 10 и 50. Как альтернативный вариант, эти исполняемые коды заменяются интерпретируемыми кодами функций Vk. В этом случае модули 10 и 50 имеют интерпретаторы, соответственно, 180 и 182 (см. фиг.1), способные интерпретировать эти коды. Таким образом, в этом варианте криптографические модули содержат интерпретаторы, способные интерпретировать код обновленного алгоритма, построенный контроллером.
В другом варианте осуществления изобретения, исполняемый код функций Vk заменяется исходным кодом этих же самых функций. В этом случае, построители 28 и 16, соответственно, содержат компиляторы 184 и 186 (см. фиг.1). Кроме того, во время шага для построения обновленного алгоритма, эти компиляторы 184 и 186 используются для компиляции исходного кода, соответствующего функциям Vk, используемым для определения функций fij. Таким образом, каждый из построителей 28 и 26* генерирует новый код, выполняемый модулями 10 и 50, соответствующий обновленным алгоритмам.
Большинство криптографических алгоритмов содержат многочисленные операнды, независимые от фрагмента данных D, который должен быть зашифрован или расшифрован, и ключ, используемый для этой цели. Например, алгоритмы AES и DES содержат таблицы преобразования и таблицы замещения или S-блоки. Другие криптографические алгоритмы используют таблицы индексирования или таблицы смещения. Эти таблицы принимают форму матриц, содержащих заданные числовые значения. Эти числовые значения являются операндами операций переключения, замещения, индексирования и смещения. Другие операнды, используемые в качестве блокирующих масок*, или коэффициентов, или постоянных в математической расчетной формуле, также находятся в этих криптографических алгоритмах. Чтобы обновить такой алгоритм, обеспеченный операндами, возможно заменить частично или полностью эти операнды новыми операндами. Для этой цели операция продолжается так же, как было описано со ссылкой на фиг.7, чтобы заменить параметры pij.
Чтобы обновить криптографический алгоритм, также возможно заменить математические операторы этого алгоритма, которые являются независимыми от фрагмента данных, который подлежит зашифровыванию или расшифровыванию, и используемого ключа. На языке низкого уровня, каждый из этих математических операторов соответствует мнемонике, в свою очередь соответствующей инструкции, выполняемой напрямую или интерпретируемой электронным вычислительным устройством. Операторы XOR, NOT,+, -, x, rot_left, rot_right, mod функций Vk являются примерами операторов, соответствующих мнемонике инструкций в наборах инструкций, выполняемых компьютером отправителя или получателя. Существуют другие математические операторы, например такие, как операторы AND и OR. Способ для этого уже описан в частном случае криптографического алгоритма, используемого в системе фигуры 1. Действительно, при каждом обновлении криптографического алгоритма, операторы функций fij заменяются другими операторами.
Чтобы обновить код криптографического алгоритма, можно снова заменить другие инструкции кода, не являющиеся математическими операторами. Например, могут быть заменены инструкции JUMP, CALL или NOP (No Operation). Чтобы проиллюстрировать это, можно привести следующий пример следующего кода, написанного на языке Ассемблер.
0×00 JUMP 0×10
[Code of the function V0]
0×10 JUMP 0×20
[Code of the function V1]
0×20 JUMP 0×30
[Code of the function V2]
0×30 JUMP 0×40
В зависимости от принятого значения начального числа, определенные инструкции JUMP могут быть заменены инструкциями NOP. Например, если инструкция JUMP в строке 0×10 заменена инструкцией NOP, компьютер будет вынужден выполнять код, соответствующий функции V1. Следовательно, код криптографического алгоритма обновлен без модификации математических операндов и операторов. Когда эти инструкции заменяются другими инструкциями, процесс выполнения кода модифицируется обычным образом, в то же время, когда заменяются только математические операторы и операнды, это не является обычным случаем, использующим стандартную методику*.
Чтобы построить обновленный криптографический алгоритм, можно заменить операнды, или заменить математические операторы, или заменить другие инструкции, не являющиеся операндами или математическими операторами, или снова выполнить любую комбинацию этих замен.
Предпочтительно, чтобы заменялась только часть числовых постоянных кода криптографического алгоритма. Однако количество постоянных, заменяемых для получения обновленного криптографического алгоритма, должно быть большим, т.е., предпочтительно, больше чем 2, 10 или 50. Чем больше количество замененных числовых постоянных, тем сложнее раскрыть обновленный криптографический алгоритм на основе информации о прежнем криптографическом алгоритме.
Как один из вариантов, секретный код отправляется в сообщении процессору, например, по скрытому каналу. Этот секретный код сообщает процессору, что данные о начальном числе содержатся в заданном последующем сообщении. Таким образом, нет необходимости отправлять в одном и том же сообщении секретный код и данные о начальном числе.
То, что было описано здесь выше в случае обновления кода расшифровывающего алгоритма, используемого процессором 36, также может быть применено к обновлению расшифровывающего алгоритма G, используемого процессором 36. В этом случае, в фазе 100, алгоритм, соответствующий алгоритму G, построенному построителем 28, является самим алгоритмом G.
То, что было описано в частном случае обновления алгоритмов для шифрования и расшифровывания управляющего слова, может быть применено к криптографическим алгоритмам, используемым для подписи и проверки подписи сообщений, таких как ЕСМ и EMM.
То, что было описано в случае обновления симметричного криптографического алгоритма, может также быть адаптировано для несимметричного криптографического алгоритма.
Изобретение относится к вычислительной технике. Технический результат заключается в повышении безопасности шифрования данных. Способ для обновления кода алгоритма содержит: прием случайно извлеченного начального числа, размер которого исходя из количества бит, по меньшей мере, в четыре раза меньше, чем количество бит, необходимое для кодирования N числовых постоянных криптографического алгоритма; детерминированное расширение начального числа для получения последовательности чисел, размер которой в количестве бит, по меньшей мере, равен количеству бит, необходимых для кодирования N числовых постоянных криптографического алгоритма; генерация N новых числовых постоянных из полученной последовательности чисел, и замена N постоянных кода криптографического алгоритма на новые N постоянных, сгенерированных для получения кода обновленного криптографического алгоритма. 6 н. и 9 з.п. ф-лы, 10 ил.
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 или 2, в котором замена N постоянных криптографического алгоритма на сгенерированные новые N постоянных запускается (168) в ответ на запускающее событие, независимо от приема начального числа.
7. Способ по п.6, в котором запускающее событие представляет собой отправку сообщения ЕСМ, содержащего особый код, способный запускать замену N постоянных криптографического алгоритма на сгенерированные новые N постоянных.
8. Способ по п.1 или 2, в котором размер начального числа в количестве бит, по меньшей мере, в десять раз меньше, чем количество бит, необходимое для кодирования N числовых постоянных.
9. Способ по п.1 или 2, в котором детерминированное расширение (128) достигается посредством псевдослучайного генератора, инициализированного с принятым начальным числом.
10. Способ по п.1 или 2, в котором число N строго больше, чем два и, предпочтительно больше, чем десять.
11. Модуль для обновления кода, выполняемого или интерпретируемого электронным вычислительным устройством, криптографического алгоритма, способного зашифровывать фрагмент данных D посредством ключа К для получения криптограммы D* или расшифровывать криптограмму D* посредством ключа К для получения фрагмента незашифрованных данных D, причем этот код содержит, по меньшей мере, N числовых постоянных, и каждая числовая постоянная соответствует операнду или мнемонике инструкции кода, при этом значение этих числовых постоянных не зависит от фрагмента данных D, ключа К и криптограммы D*,
отличающийся тем, что этот модуль содержит:
- подмодуль (57) для получения случайно извлеченного начального числа, размер которого в битах, по меньшей мере, в четыре раза меньше, чем количество бит, необходимое для кодирования N числовых постоянных криптографического алгоритма,
- детерминированный генератор (54) чисел, инициализируемый с начальным числом для получения последовательности чисел, размер которой в количестве бит, по меньшей мере, равен количеству бит, необходимых для кодирования N числовых постоянных криптографического алгоритма, и
- построитель (56) кодов криптографического алгоритма, способный:
генерировать новые N числовых постоянных из полученной последовательности чисел, и
- заменять N постоянных кода криптографического алгоритма новыми N постоянных, сгенерированных для получения кода обновленного криптографического алгоритма.
12. Процессор (36) системы безопасности, способный выполнять или интерпретировать код криптографического алгоритма для зашифровывания фрагмента данных D посредством ключа К с целью получения криптограммы D*, или для расшифровывания криптограммы D* посредством ключа К с целью получения фрагмента незашифрованных данных D, причем этот код содержит, по меньшей мере, N числовых постоянных, и каждая числовая постоянная соответствует операнду или мнемонике инструкции кода, при этом значение этих числовых постоянных не зависит от фрагмента данных D, ключа К и криптограммы D*,
отличающийся тем, что процессор системы безопасности содержит модуль (52) для обновления кода этого криптографического алгоритма по п.11.
13. Способ генерации начального числа, предназначенного для использования в способе обновления кода криптографического алгоритма по любому из пп. с 1 по 10, характеризующийся тем, что способ содержит:
а) случайное извлечение (102) начального числа, размер которого, исходя из количества бит, по меньшей мере, в четыре раза меньше, чем количество бит, необходимое для кодирования N числовых постоянных кода криптографического алгоритма, который должен быть обновлен,
б) создание (106) обновленного кода зашифровывающего или расшифровывающего алгоритма посредством способа обновления по любому из пп. с 1 по 10, причем принятое начальное число является одним из начальных чисел, извлеченных во время шага а),
в) проверку (112) надежности кода обновленного криптографического алгоритма по отношению к, по меньшей мере, одному способу криптоанализа,
г) если код зашифровывающего алгоритма не надежен по отношению к способу криптоанализа, происходит возврат к шагу а), а если нет, то происходит
д) передача (114) случайно извлеченного начального числа к устройству для приема, способному выполнить способ обновления кода криптографического алгоритма.
14. Модуль для генерации начального числа, предназначенного для использования в целях обновления кода криптографического алгоритма посредством способа по любому из пп. с 1 по 10, характеризующийся тем, что этот модуль содержит:
- генератор (20), способный случайным образом извлекать начальное число, размер которого, исходя из количества бит, по меньшей мере, в четыре раза меньше, чем количество бит, необходимое для кодирования N числовых постоянных криптографического алгоритма, который должен быть обновлен, и
- подмодуль (22) для создания обновленного кода зашифровывающего и расшифровывающего алгоритмов посредством способа обновления по любому из пп. с 1 по 10, причем принятое начальное число является одним из начальных чисел, извлеченных генератором;
- устройство (24) проверки надежности кода обновленного алгоритма по отношению к, по меньшей мере, одному способу криптоанализа, причем это устройство проверки способно
- запрещать передачу случайно извлеченного начального числа к устройству для приема, если обновленный алгоритм не надежен по отношению к способу криптоанализа, а в противном случае
- разрешать передачу случайно извлеченного начального числа к устройству для приема, способному выполнить способ обновления кода криптографического алгоритма.
15. Устройство записи информации, содержащее инструкции для выполнения способа по любому из пп. с 1 по 10 и п.13, когда эти инструкции выполняются электронным вычислительным устройством.
Пломбировальные щипцы | 1923 |
|
SU2006A1 |
Способ приготовления мыла | 1923 |
|
SU2004A1 |
EP 1863285 A1, 05.12.2007 | |||
Способ и приспособление для нагревания хлебопекарных камер | 1923 |
|
SU2003A1 |
СПОСОБ КОДИРОВАНИЯ И ПЕРЕДАЧИ КРИПТОГРАФИЧЕСКИХ КЛЮЧЕЙ | 2005 |
|
RU2302085C1 |
Авторы
Даты
2014-12-10—Публикация
2009-12-29—Подача