УСТРОЙСТВО ОБРАБОТКИ ШИФРОВАНИЯ НА ОСНОВЕ АЛГОРИТМА ПАКЕТНОЙ ШИФРОВКИ
APPARATUS FOR PROCESSING CODING BASED ON PACKET CODING ALGORITHM

Данная заявка претендует на приоритет патентной заявки Китая №2000710019110.2, поданной в Патентное Ведомство Китая 19 ноября 2007 года, под заголовком «Block Cipher Algorithm Based Encryption Processing Device», содержание которой целиком включено сюда по ссылке.
Область техники, к которой относится изобретение
Настоящее изобретение относится к области защиты информации и, в частности, касается способа обработки шифрования на основе алгоритма блочной шифровки.
Уровень техники
Алгоритмы блочной шифровки в общем случае включают в себя алгоритм Стандарта шифрования данных (DES), алгоритм tri-DES (3DES), алгоритм усовершенствованного стандарта шифрования (AES), Международный алгоритм шифрования данных (IDEA), алгоритм SMS4, опубликованный Комиссией по регулированию документов, содержащих государственную тайну, и т.д. Ключевые компоненты, реализующие алгоритм блочной шифровки, включают в себя блок расширения ключа, блок шифрования и блок памяти массива субключей. В частности, внутренние структуры блока расширения ключа и блока шифрования похожи в том смысле, что они обычно состоят из компоненты регистра данных и компоненты преобразования данных.
Компоненту регистра данных обычно реализуют с помощью обычного триггера для регистрации данных. Данные, зарегистрированные в этой компоненте, остаются неизменными на протяжении одного тактового цикла. Обычный триггер представляет собой устройство регистрации данных, в котором данные с входа для данных передаются на выход триггера по переднему или заднему фронту тактового импульса, причем данные на выходе триггера остаются неизменными в остальные моменты времени.
Компонента преобразования данных предназначена для обработки данных, требуемой в алгоритме блочной шифровки, например, для обработки данных, необходимой в алгоритме национальной шифровки SMS4. Операции, выполняемые компонентой преобразования данных, включают в себя только одну интеграцию и перестановку, заданные в алгоритме шифровки.
Блок памяти массива субключей адаптирован для запоминания массива субключей. Массив субключей в существующей технологии, как правило, представляет собой массив данных, уже подготовленных перед шифрованием и дешифрованием и созданных блоком расширения ключа. В алгоритме шифровки SMS4 данные из блока памяти массива субключей компонуют в убывающем/возрастающем порядке адресов, причем им могут быть присвоены имена rk0, rk1,…, rk31.
Процесс шифрования и дешифрования данных согласно алгоритму шифровки SMS4 включает в себя в настоящее время две отдельные фазы: расширение ключа и шифрование данных. Как показано на фиг.1, сначала блок расширения ключа расширяет ключ в массив субключей и последовательно запоминает их в блоке памяти массива субключей, после чего блок шифрования шифрует данные, используя массив субключей, который был получен в результате расширения ключа.
А. Фаза расширения ключа
1) В компоненту регистра данных блока расширения ключа вводят внешний ключ.
Внешний ключ, подвергнутый предварительной обработке, вводится в компоненту 100 регистра данных блока расширения ключа для регистрации.
2) Преобразование данных
Данные, зарегистрированные в компоненте 100 регистра данных блока расширения ключа, вводят в компоненту 101 преобразования данных блока расширения ключа для преобразования с целью получения субключей.
3) Итеративная обработка данных
Данные, полученные в результате предыдущего преобразования, запоминают в компоненте 100 регистра данных блока расширения ключа, в то время как результирующие субключи запоминают в первой строке блока 2 памяти массива субключей, а затем данные, зарегистрированные в компоненте 100 регистра данных блока расширения ключа, вновь вводят в компоненту 101 преобразования данных блока расширения ключа для преобразования, а результирующие субключи запоминают в следующей строке блока 2 памяти массива субключей. Этот процесс преобразования данных повторяют тридцать два раза для получения массива субключей 32×32 бита=1024 бита.
В. Фаза шифрования данных
1) В компоненту регистра данных блока шифрования вводят внешние данные.
Внешние данные вводят в компоненту 300 регистра данных блока шифрования для регистрации.
2) Преобразование данных
Данные, зарегистрированные в компоненте 300 регистра данных блока шифрования, вводят в компоненту 301 преобразования данных блока шифрования, а данные, соответствующие первой строке массива субключей, запомненных в блоке 2 памяти массива субключей, вводят в компоненту 301 преобразования данных блока шифрования для преобразования.
3) Итеративная обработка данных
Данные, полученные в результате предыдущего преобразования, запоминают в компоненте 300 регистра данных блока шифрования, а затем данные, зарегистрированные в компоненте 300 регистра данных блока шифрования, вновь вводят в компоненту 301 преобразования данных блока шифрования для преобразования, после чего в компоненту 301 преобразования данных блока шифрования вводят следующую строку субключей блока 2 памяти массива субключей для преобразования данных. Этот процесс повторяется тридцать два раза, в результате чего получают данные.
В вышеуказанном алгоритме шифрования для обработки набора данных потребуется тридцать два тактовых цикла при низкой эффективности обработки. Для усовершенствования алгоритма можно повысить эффективность обработки, увеличив количество компонент преобразования данных. Например, набор 128-разрядных данных можно обработать за шестнадцать тактовых циклов, как показано на фиг.2.
Компонента памяти массива субключей является обязательной в существующей технологии. Если 1024-разрядную компоненту памяти массива субключей реализовать с помощью регистра в интегральной схеме, то тогда логический ресурс составит примерно десять тысяч логических элементов, что составляет примерно 40% от общего ресурса (общий ресурс при техническом решении по фиг.1 составляет примерно двадцать пять тысяч логических элементов), что потребует больших затрат.
Сущность изобретения
Задачей изобретения является обеспечение недорогого и эффективного способа обработки шифрования на основе алгоритма блочной шифровки для решения технической проблемы, связанной с высокой стоимостью способа обработки шифрования на основе алгоритма блочной шифровки при существующей технологии.
Техническое решение согласно изобретению заключается в следующем.
Устройство обработки шифрования на основе алгоритма блочной шифровки включает в себя блок расширения ключа и блок шифрования, где:
блок расширения ключа включает в себя компоненту регистра данных блока расширения ключа и по меньшей мере одну компоненту преобразования данных блока расширения ключа, блок шифрования включает в себя компоненту регистра данных блока шифрования и по меньшей мере одну компоненту преобразования данных блока шифрования, причем количество компонент преобразования данных блока шифрования идентично количеству компонент преобразования данных блока расширения ключа, и компоненты преобразования данных блока шифрования взаимно однозначно соединены с компонентами преобразования данных блока расширения ключа;
выход компоненты регистра данных блока расширения ключа соединен с входом первой компоненты преобразования данных блока расширения ключа, каждые две соседние компоненты преобразования данных блока расширения ключа соединены последовательно, и выход последней компоненты преобразования данных блока расширения ключа соединен с входом компоненты регистра данных блока расширения ключа;
выход компоненты регистра данных блока шифрования соединен с входом первой компоненты преобразования данных блока шифрования, каждые две соседние компоненты преобразования данных блока шифрования соединены последовательно, и выход последней компоненты преобразования данных блока шифрования соединен с входом компоненты регистра данных блока шифрования;
выход субключа каждой компоненты преобразования данных блока расширения ключа соединен с входом субключа соответствующей компоненты преобразования данных блока шифрования;
компонента регистра данных блока расширения адаптирована для регистрации введенного внешнего ключа и данных, полученных от последней компоненты преобразования данных блока расширения ключа;
компонента преобразования данных блока расширения ключа адаптирована для приема данных, зарегистрированных в компоненте регистра данных блока расширения ключа, для расширения ключа на субключи, вводимые в соответствующую компоненту преобразования данных блока шифрования;
компонента регистра данных блока шифрования адаптирована для регистрации введенных внешних данных и данных, полученных от последней компоненты преобразования данных блока шифрования; и
компонента преобразования данных блока шифрования адаптирована для приема данных, зарегистрированных в компоненте регистра данных блока шифрования, и для шифрования и преобразования принятых данных с использованием субключей, полученных от соответствующей компоненты преобразования данных блока расширения ключа.
Изобретение имеет следующие преимущества.
1. Устройство обработки шифрования согласно изобретению может эффективно сократить потребляемые ресурсы и, следовательно, стоимость устройства при сохранении эффективности существующей технологии, поскольку не требуется блок памяти массива субключей.
2. При использовании устройства обработки шифрования согласно изобретению потребляемые ресурсы составят лишь 60% от ресурсов по ныне существующей технологии в случае одной компоненты преобразования и 70% от ресурсов по ныне существующей технологии в случае двух компонент преобразования.
3. Поскольку добавляется блок регистра субключей, можно сократить критическую дорожку в интегральной схеме для повышения первичной частоты тактового генератора, а значит, и производительности устройства.
Краткое описание чертежей
Фиг.1 - схема, иллюстрирующая первую структуру устройства обработки шифрования и дешифрования согласно существующей технологии;
фиг.2 - схема, иллюстрирующая вторую структуру устройства обработки шифрования и дешифрования согласно существующей технологии;
фиг.3 - схема, иллюстрирующая первую структуру устройства обработки шифрования и дешифрования согласно изобретению;
фиг.4 - схема, иллюстрирующая вторую структуру устройства обработки шифрования и дешифрования согласно изобретению;
фиг.5 - схема, иллюстрирующая третью структуру устройства обработки шифрования и дешифрования согласно изобретению; и
фиг.6 - схема, иллюстрирующая четвертую структуру устройства обработки шифрования и дешифрования согласно изобретению.
Здесь 1 обозначает блок расширения ключа, 100 обозначает компоненту регистра данных блока расширения ключа, 101 (101а, 101b) обозначает компоненту преобразования данных блока расширения ключа, 2 обозначает блок памяти массива субключей, 3 обозначает блок шифрования, 300 обозначает компоненту регистра данных блока шифрования, 301 (301а, 301b) обозначает компоненту преобразования данных блока шифрования, 4 обозначает блок регистра субключей и 401 (401а, 401b) обозначает компоненту регистра субключей.
Подробное описание изобретения
Далее со ссылками на чертежи описывается устройство согласно настоящему изобретению.
Первый вариант осуществления
Как показано на фиг.3, первое устройство обработки шифрования на основе алгоритма блочной шифровки включает в себя блок 1 расширения ключа и блок 3 шифрования.
Блок 1 расширения ключа включает в себя компоненту 100 регистра данных блока расширения ключа и компоненту 101 преобразования данных блока расширения ключа, причем выход компоненты 100 регистра данных блока расширения ключа соединен с входом компоненты 101 преобразования данных блока расширения ключа, а выход компоненты 101 преобразования данных блока расширения ключа соединен с входом компоненты 100 регистра данных блока расширения ключа.
Блок 3 шифрования включает в себя компоненту 300 регистра данных блока шифрования и компоненту 301 преобразования данных блока шифрования, причем выход компоненты 300 регистра данных блока шифрования соединен с входом компоненты 301 преобразования данных блока шифрования, а выход компоненты 301 преобразования данных блока шифрования соединен с входом компоненты 300 регистра данных блока шифрования.
В частности, выход субключа компоненты 101 преобразования данных блока расширения ключа соединен с входом субключа компоненты 301 преобразования данных блока шифрования.
Обратимся к фиг.3, где первое устройство обработки шифрования на основе алгоритма блочной шифровки выполняет следующие этапы способа согласно варианту изобретения.
1] Регистрируют внешний ключ: обработанный внешний ключ вводят в компоненту 100 регистра данных блока расширения ключа для регистрации по поступлении фронта тактового импульса тактового цикла.
2] Регистрируют внешние данные: набор внешних данных вводят в компоненту 300 регистра данных блока шифрования для регистрации по поступлении фронта тактового импульса тактового цикла.
3] Выполняют расширение ключа: в тактовом цикле данные, зарегистрированные в компоненте 100 регистра данных блока расширения ключа, вводят в компоненту 101 преобразования данных блока расширения ключа для расширения ключа на субключи, вводимые в компоненту 301 преобразования данных блока шифрования.
4] Шифруют и преобразуют данные: в тактовом цикле данные, зарегистрированные в компоненте 300 регистра данных блока шифрования, вводят в компоненту 301 преобразования данных блока шифрования, которая, в свою очередь, шифрует и преобразует данные.
5] Внутренние данные регистрируют: по поступлении фронта тактового импульса следующего тактового цикла данные, полученные из компоненты 101 преобразования данных блока расширения ключа, вводят в компоненту 100 регистра данных блока расширения ключа для регистрации, а данные, полученные из компоненты 301 преобразования данных блока шифрования, вводят в компоненту 300 регистра данных блока шифрования для регистрации.
6] Данные итеративно обрабатывают: этап расширения ключа, этап шифрования и преобразования данных и этап регистрации внутренних данных повторяют, пока данные не будут преобразованы столько раз, сколько задано в алгоритме блочной шифровки, после чего шифрование набора данных завершается.
Второй вариант осуществления
Как показано на фиг.4, второе устройство обработки шифрования на основе алгоритма блочной шифровки включает в себя блок 1 расширения ключа и блок 3 шифрования.
Блок 1 расширения ключа включает в себя компоненту 100 регистра данных блока расширения ключа и две компоненты 101а и 101b преобразования данных блока расширения ключа, причем выход компоненты 100 регистра данных блока расширения ключа соединен с входом первой компоненты 101а преобразования данных блока расширения ключа, две компоненты 101а и 101b преобразования данных блока расширения ключа соединены последовательно, а выход второй компоненты 101b преобразования данных блока расширения ключа соединен с входом компоненты 100 регистра данных блока расширения ключа.
Блок 3 шифрования включает в себя компоненту 300 регистра данных блока шифрования и две компоненты 301а и 301b преобразования данных блока шифрования, причем выход компоненты 300 регистра данных блока шифрования соединен с входом первой компоненты 301а преобразования данных блока шифрования, две компоненты 301а и 301b преобразования данных блока шифрования соединены последовательно, а выход второй компоненты 301b преобразования данных блока шифрования соединен с входом компоненты 300 регистра данных блока шифрования.
В частности, выход субключа первой компоненты 101а преобразования данных блока расширения ключа соединен с входом субключа первой компоненты 301а преобразования данных блока шифрования, а выход субключа второй компоненты 101b преобразования данных блока расширения ключа соединен с входом субключа второй компоненты 301b преобразования данных блока шифрования.
В частности, количество компонент преобразования данных блока расширения ключа идентично количеству компонент преобразования данных блока шифрования и может быть равно трем, четырем и так далее, вплоть до тридцати двух или сорока восьми, но предпочтительно одному, двум или четырем.
Обратимся к фиг.4, где второе устройство обработки шифрования на основе алгоритма блочной шифровки выполняет следующие этапы способа согласно варианту осуществления изобретения.
1] Регистрируют внешний ключ: обработанный внешний ключ вводят в компоненту 100 регистра данных блока расширения ключа для регистрации по поступлении фронта тактового импульса тактового цикла.
2] Регистрируют внешние данные: набор внешних данных вводят в компоненту 300 регистра данных блока шифрования для регистрации по поступлении фронта тактового импульса тактового цикла.
3] Выполняют расширение ключа: в тактовом цикле данные, зарегистрированные в компоненте 100 регистра данных блока расширения ключа, вводят в компоненту 101а преобразования данных блока расширения ключа для расширения ключа на субключи, вводимые в компоненту 301а преобразования данных блока шифрования, а данные, выведенные из компоненты 101а преобразования данных блока расширения ключа, вводят в следующую компоненту 101b преобразования данных блока расширения ключа, так что компоненты преобразования данных блока расширения ключа последовательно расширяют ключ.
4] Шифруют и преобразуют данные: в тактовом цикле данные, зарегистрированные в компоненте 300 регистра данных блока шифрования, вводят в компоненту 301 преобразования данных блока шифрования, которая, в свою очередь, шифрует и преобразует данные, а данные, выведенные из компоненты 301а преобразования данных блока шифрования, вводят в следующую компоненту 301b преобразования данных блока шифрования, так что компоненты преобразования данных блока шифрования шифруют данные последовательно.
5] Внутренние данные регистрируют: по поступлении фронта тактового импульса следующего тактового цикла данные, выведенные из последней компоненты (101b в настоящем варианте осуществления) преобразования данных блока расширения ключа, вводят в компоненту 100 регистра данных блока расширения ключа для регистрации, а данные, выведенные из последней компоненты (301b в настоящем варианте осуществления) преобразования данных блока шифрования, вводят в компоненту 300 регистра данных блока шифрования для регистрации.
6] Данные итеративно обрабатывают: этап расширения ключа, этап шифрования и преобразования данных и этап регистрации внутренних данных повторяют, пока данные не будут преобразованы столько раз, сколько задано в алгоритме блочной шифровки, после чего шифрование набора данных завершается.
Третий вариант осуществления
Как показано на фиг.5, третье устройство обработки шифрования на основе алгоритма блочной шифровки включает в себя блок 1 расширения ключа, блок 4 регистра субключей и блок 3 шифрования.
Блок 1 расширения ключа включает в себя компоненту 100 регистра данных блока расширения ключа и компоненту 101 преобразования данных блока расширения ключа, причем выход компоненты 100 регистра данных блока расширения ключа соединен с входом компоненты 101 преобразования данных блока расширения ключа, а выход компоненты 101 преобразования данных блока расширения ключа соединен с входом компоненты 100 регистра данных блока расширения ключа.
Блок 4 регистра субключей включает в себя компоненту 401 регистра субключей, которая может представлять собой обычный триггер или регистр.
Блок 3 шифрования включает в себя компоненту 300 регистра данных блока шифрования и компоненту 301 преобразования данных блока шифрования, причем выход компоненты 300 регистра данных блока шифрования соединен с входом компоненты 301 преобразования данных блока шифрования, а выход компоненты 301 преобразования данных блока шифрования соединен с входом компоненты 300 регистра данных блока шифрования.
В частности, выход субключа компоненты 101 преобразования данных блока расширения ключа соединен с входом компоненты 401 регистра субключей, а выход компоненты 401 регистра субключей соединен с входом субключа компоненты 301 преобразования данных блока шифрования.
Обратимся к фиг.5, где третье устройство обработки шифрования на основе алгоритма блочной шифровки выполняет следующие этапы способа согласно варианту осуществления изобретения.
1] Регистрируют внешний ключ: обработанный внешний ключ вводят в компоненту 100 регистра данных блока расширения ключа для регистрации по поступлении фронта тактового импульса тактового цикла.
2] Выполняют предварительное расширение ключа: в тактовом цикле, в котором регистрируют внешний ключ, данные, зарегистрированные в компоненте 100 регистра данных блока расширения ключа, вводят в компоненту 101 преобразования данных блока расширения ключа для расширения ключа на субключи, подаваемые на вход соединенной с ней компоненты 401 регистра субключей, а данные, получаемые из компоненты 101 преобразования данных блока расширения ключа, подают на вход компоненты 100 регистра данных блока расширения ключа.
3] Выполняют буферизацию и регистрацию ключа: по поступлении фронта тактового импульса следующего тактового цикла после этапа регистрации внешнего ключа данные, полученные из компоненты 101 преобразования данных блока расширения ключа, вводят в компоненту 100 регистра данных блока расширения ключа для регистрации, а субключи из компоненты 101 преобразования данных блока расширения ключа вводят в компоненту 401 регистра субключей для регистрации.
4] Регистрируют внешние данные: набор внешних данных вводят в компоненту 300 регистра данных блока шифрования для регистрации по поступлении фронта тактового импульса следующего тактового цикла после этапа регистрации внешнего ключа.
5] Выполняют расширение ключа: в тактовом цикле данные, зарегистрированные в компоненте 100 регистра данных блока расширения ключа, вводят в компоненту 101 преобразования данных блока расширения ключа для расширения ключа на субключи, подаваемые на вход соединенной с ней компоненты 401 регистра субключей, данные, выводимые из компоненты 101 преобразования данных блока расширения ключа, подают на вход компоненты 100 регистра данных блока расширения ключа, а субключи, выводимые из компоненты 401 регистра субключей, вводят в компоненту 301 преобразования данных блока шифрования.
6] Шифруют и преобразуют данные: в тактовом цикле данные, зарегистрированные в компоненте 300 регистра данных блока шифрования, вводят в компоненту 301 преобразования данных блока шифрования, которая, в свою очередь, шифрует и преобразует данные, а данные, выводимые из компоненты 301 преобразования данных блока шифрования, подают на вход компоненты 300 регистра данных блока шифрования.
7] Внутренние данные регистрируют: по поступлении фронта тактового импульса следующего тактового цикла данные, полученные из компоненты 101 преобразования данных блока расширения ключа, вводят в компоненту 100 регистра данных блока расширения ключа для регистрации, субключи компоненты 101 преобразования данных блока расширения ключа вводят в компоненту 401 регистра субключей для регистрации, а данные, полученные из компоненты 301 преобразования данных блока шифрования, вводят в компоненту 300 регистра данных блока шифрования для регистрации.
8] Данные итеративно обрабатывают: этап расширения ключа, этап шифрования и преобразования данных и этап регистрации внутренних данных повторяют, пока данные не будут преобразованы столько раз, сколько задано в алгоритме блочной шифровки, после чего шифрование набора данных завершается.
Четвертый вариант осуществления
Как показано на фиг.6, четвертое устройство обработки шифрования на основе алгоритма блочной шифровки включает в себя блок 1 расширения ключа, блок 4 регистра субключей и блок 3 шифрования.
Блок 1 расширения ключа включает в себя компоненту 100 регистра данных блока расширения ключа и две компоненты 101а и 101b преобразования данных блока расширения ключа, причем выход компоненты 100 регистра данных блока расширения ключа соединен с входом первой компоненты 101а преобразования данных блока расширения ключа, две компоненты 101а и 101b преобразования данных блока расширения ключа соединены последовательно, а выход второй компоненты 101b преобразования данных блока расширения ключа соединен с входом компоненты 100 регистра данных блока расширения ключа.
Блок 4 регистра субключей включает в себя две компоненты 401а и 401b регистра субключей, которые могут представлять собой обычный триггер или регистр.
Блок 3 шифрования включает в себя компоненту 300 регистра данных блока шифрования и две компоненты 301а и 301b преобразования данных блока шифрования, причем выход компоненты 300 регистра данных блока шифрования соединен с входом первой компоненты 301а преобразования данных блока шифрования, две компоненты 301а и 301b преобразования данных блока шифрования соединены последовательно, а выход второй компоненты 301b преобразования данных блока шифрования соединен с входом компоненты 300 регистра данных блока шифрования.
В частности, выход субключа первой компоненты 101а преобразования данных блока расширения ключа соединен с входом первой компоненты 401а регистра субключей, а выход первой компоненты 401а регистра субключей соединен с входом субключа первой компоненты 301а преобразования данных блока шифрования; и выход субключа второй компоненты 101b преобразования данных блока расширения ключа соединен с входом второй компоненты 401b регистра субключей, а выход второй компоненты 401b регистра субключей соединен с входом субключа второй компоненты 301b преобразования данных блока шифрования.
В частности, количество компонент преобразования данных блока расширения ключа, количество компонент регистра субключей и количество компонент преобразования данных блока шифрования идентичны и могут быть равны трем, четырем и так далее, вплоть до тридцати двух или сорока восьми, но предпочтительно одному, двум или четырем.
Обратимся к фиг.6, где четвертое устройство обработки шифрования на основе алгоритма блочной шифровки выполняет следующие этапы способа согласно варианту осуществления изобретения.
1] Регистрируют внешний ключ: обработанный внешний ключ вводят в компоненту 100 регистра данных блока расширения ключа для регистрации по поступлении фронта тактового импульса тактового цикла.
2] Выполняют предварительное расширение ключа: в тактовом цикле, в котором регистрируют внешний ключ, данные, зарегистрированные в компоненте 100 регистра данных блока расширения ключа, вводят в первую компоненту 101а преобразования данных блока расширения ключа для расширения ключа на субключи, подаваемые на вход соединенной с ней первой компоненты 401а регистра субключей, а данные, выводимые из первой компоненты 101а преобразования данных блока расширения ключа, подают на вход следующей компоненты 101b регистра данных блока расширения ключа для расширения ключа во второй раз, так что компоненты преобразования данных блока расширения ключа последовательно расширяют ключ на субключи, подаваемые на входы соответствующих соединенных с ними компонент регистра субключей, а данные, выводимые из последней компоненты (101b в настоящем варианте осуществления) преобразования данных блока расширения ключа, подают на вход компоненты 100 регистра данных блока расширения ключа.
3] Выполняют буферизацию и регистрацию ключа: по поступлении фронта тактового импульса следующего тактового цикла после этапа регистрации внешнего ключа данные, полученные из последней компоненты (101b в настоящем варианте осуществления) преобразования данных блока расширения ключа, вводят в компоненту 100 регистра данных блока расширения ключа для регистрации, а субключи из компоненты 101 преобразования данных блока расширения ключа вводят в соответствующие компоненты регистра субключей для регистрации.
4] Регистрируют внешние данные: набор внешних данных вводят в компоненту 300 регистра данных блока шифрования для регистрации по поступлении фронта тактового импульса следующего тактового цикла после этапа регистрации внешнего ключа.
5] Выполняют расширение ключа: в тактовом цикле данные, зарегистрированные в компоненте 100 регистра данных блока расширения ключа, вводят в первую компоненту 101а преобразования данных блока расширения ключа для расширения ключа на субключи, подаваемые на вход соединенной с ним первой компоненты 401а регистра субключей, и данные, выводимые из первой компоненты 101а преобразования данных блока расширения ключа, подают на вход следующей компоненты 101b регистра данных блока расширения ключа для расширения ключа во второй раз, так что компоненты преобразования данных блока расширения ключа последовательно расширяют ключ на субключи, подаваемые на входы соответствующих соединенных с ними компонент регистра субключей, а данные, выводимые из последней компоненты (101b в настоящем варианте осуществления) преобразования данных блока расширения ключа, подают на вход данных компоненты 100 регистра данных блока расширения ключа.
6] Шифруют и преобразуют данные: в тактовом цикле данные, зарегистрированные в компоненте 300 регистра данных блока шифрования, вводят в первую компоненту 301а преобразования данных блока шифрования, а субключи первой компоненты 401а регистра субключей вводят в первую компоненту 301а преобразования данных блока шифрования, которая, в свою очередь, шифрует и преобразует данные; зашифрованные и преобразованные данные из первой компоненты 301а преобразования данных блока шифрования вводят во вторую компоненту 301b преобразования данных блока шифрования, а субключи второй компоненты 401b регистра субключей вводят во вторую компоненту 301b преобразования данных блока шифрования, которая, в свою очередь, шифрует и преобразует данные, так что компоненты преобразования данных блока шифрования, соответствующие компонентам преобразования данных блока расширения ключа, последовательно шифруют и преобразуют данные, а данные, выводимые из последней компоненты (301b в настоящем варианте осуществления) преобразования данных блока шифрования, подают на вход компоненты 300 регистра данных блока шифрования.
7] Внутренние данные регистрируют: по поступлении фронта тактового импульса следующего тактового цикла данные, полученные из последней компоненты (101b в настоящем варианте осуществления) преобразования данных блока расширения ключа, вводят в компоненту 100 регистра данных блока расширения ключа для регистрации, субключи компонент преобразования данных блока расширения ключа вводят в соответствующие компоненты регистра субключей для регистрации, а данные, полученные из последней компоненты (301b в настоящем изобретении) преобразования данных блока шифрования, вводят в компоненту 300 регистра данных блока шифрования для регистрации.
8] Данные итеративно обрабатывают: этап расширения ключа, этап шифрования и преобразования данных и этап регистрации внутренних данных повторяют, пока данные не будут преобразованы столько раз, сколько задано в алгоритме блочной шифровки, после чего шифрование набора данных завершается.
Если в устройстве обработки шифрования предусмотрено множество компонент преобразования данных блока расширения ключа, множество компонент регистра субключей и множество компонент преобразования данных блока шифрования, то тогда они расширяют ключ и шифруют данные последовательно в том порядке, в котором они соединены.
Если в качестве алгоритма SMS4 выбран, в частности, алгоритм блочной шифровки, то тогда в способе шифрования по вышеописанным четырем вариантам осуществления выполняется итеративное преобразование данных, в частности, тридцать два раза.