Способ шифрования, устройство шифрования, способ дешифрирования и устройство дешифрирования

Изобретение относится к технологии шифрования, обеспечивающей шифрование исходного (открытого, незашифрованного) текста для получения зашифрованного текста и дешифрирование зашифрованного текста для получения первоначального открытого текста. Сущность изобретения состоит в том, что блок генерации данных субключей использует два разных процесса ключевой генерации субключей. При шифровании (Т*n)-го блока открытого текста, где Т - длительность предварительно определенного цикла, n - положительное целое число, генерируется шестнадцать наборов данных субключей. Во всех других случаях генерируется два набора данных субключей. Блок шифрования шифрует открытый текст, используя сформированные шестнадцать или два набора данных субключей. 6 н. и 4 з.п. ф-лы, 14 ил.

 

Эта заявка основана на заявке №11-245277 на патент Японии, содержание которой включено сюда в виде ссылки.

ПРЕДПОСЫЛКИ ИЗОБРЕТЕНИЯ

Область техники

Настоящее изобретение относится к технологии шифрования, обеспечивающей шифрование исходного (открытого, незашифрованного) текста для получения зашифрованного текста и дешифрирование зашифрованного текста для получения первоначального открытого текста.

Предшествующий уровень техники

В последнее время все более широко используется шифрование важной информации перед ее передачей, чтобы обеспечить защиту ее содержания от третьих лиц. Поэтому стремятся создать все более защищенные формы шифрования.

Выложенная заявка № Н11-7239 на патент Японии описывает устройство для шифрования данных, обеспечивающее более эффективное шифрование.

Это устройство для шифрования данных предусматривает разделение открытого текста, принятого извне, на множество блоков открытого текста и шифрование каждого блока открытого текста с использованием данных ключа шифрования для создания блоков зашифрованного текста. При шифровании первого блока открытого текста это устройство для шифрования данных использует данные ключа, полученные внешним образом относительно устройства шифрования. Для второго и последующих блоков открытого текста устройство для шифрования данных корректирует данные ключа, используя блок зашифрованного текста, полученный при шифровании предыдущего блока открытого текста, и зашифровывает текущий блок открытого текста с использованием этих скорректированных данных ключа.

Устройство для шифрования данных шифрует каждый блок открытого текста следующим образом. Устройство для шифрования данных включает блок генерации субключей и блоки шифрования с первого по восьмой. Блок генерации субключей использует данные ключа, чтобы генерировать с первого по восьмой субключи. Каждый из этих восьми субключей различен. Первый блок шифрования формирует первый промежуточный блок из блока открытого текста, используя первый субключ. Второй блок шифрования формирует второй промежуточный блок из первого промежуточного блока, используя второй субключ. С третьего по седьмой блоки шифрования аналогичным образом формирует с третьего по седьмой промежуточные блоки из промежуточных блоков со второго по шестой, используя субключи с третьего по седьмой. Восьмой блок шифрования формирует блок зашифрованного текста из седьмого промежуточного блока, используя восьмой субключ.

Каждый блок открытого текста зашифровывается с использованием данных ключа, которые отличаются для каждого блока открытого текста. Это затрудняет накопление пар открытых текстов, которые были зашифрованы с использованием одного и того же ключа, и полученных зашифрованных текстов. В результате улучшается надежность шифрования по отношению к известным способам криптоанализа, таким как дифференциальный криптоанализ и линейный криптоанализ.

Однако блок генерации субключей в этом устройстве шифрования данных должен генерировать множество различных субключей каждый раз при шифровании блока открытого текста. Недостатком этого является снижение скорости криптографической обработки.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

Настоящее изобретение направлено на решение вышеуказанной проблемы и имеет целью создание устройства шифрования, которое выполняет криптографическую обработку с более высокой скоростью и обеспечивает высокую степень защиты против известных способов криптоанализа. Изобретение также направлено на создание способа шифрования, устройства шифрования, способа дешифрирования и носителя записи для хранения программы шифрования и/или программы дешифрирования.

Указанный результат достигается с помощью способа шифрования для использования устройством шифрования, которое осуществляет шифрование данных открытого текста, состоящих из множества блоков, причем способ шифрования включает следующие этапы: получение одновременно одного блока данных открытого текста по порядку внешним путем относительно устройства шифрования; выбор первого режима или второго режима для текущего блока, полученного на этапе получения блока, в соответствии с тем, сколько блоков было получено; генерацию ключа для генерации первой группы, состоящей из предварительно определенного количества n разных субключей при выборе первого режима, и второй группы, состоящей из менее чем n разных субключей при выборе второго режима; и шифрование для шифрования текущего блока путем преобразования текущего блока с использованием n процессов преобразования по порядку, причем в первом режиме каждый из п процессов преобразования связан с разным субключом в первой группе и выполняется с использованием связанного с ним субключа, а во втором режиме n процессов преобразования связаны с субключами во второй группе и каждый из них выполняется с использованием связанного с ним субключа.

В заявленном способе во втором режиме генерируется меньше субключей, чем в первом режиме. Это сокращает уменьшение скорости обработки, обусловленное генерацией субключей при шифровании блоков.

На этапе выбора может выбираться первый режим для блоков, когда количество полученных блоков равно кратному предварительно определенной величины, и второй режим для всех других случаев.

В заявленном способе первый режим выбирается только для определенных блоков в данных открытого текста. Второй режим выбирается для всех остальных блоков. Это означает, что второй режим выбирается чаще, чем первый режим, и что снижение скорости криптографической обработки для полных данных открытого текста, состоящих из блоков, может быть уменьшено.

Устройство шифрования может содержать средство для хранения начальной величины, на этапе шифрования может осуществляться шифрование текущего блока, чтобы создать блок зашифрованного текста, имеющий предварительно определенную длину, а на этапе генерации ключа может генерироваться первая группа с использованием начальной величины в первом режиме и вторая группа с использованием начальной величины и блока зашифрованного текста, сформированного последним на этапе шифрования во втором режиме.

В заявленном способе каждый блок открытого текста шифруется с использованием разных данных ключей. Это затрудняет для третьей стороны накопление пар простого текста, зашифрованных с использованием одного и того же ключа, и полученных зашифрованных текстов. Это повышает защищенность против известных способов криптоанализа открытого текста, таких как дифференциальный криптоанализ и линейный криптоанализ.

Указанный результат также достигается в способе дешифрирования для использования устройством дешифрирования, которое дешифрирует данные зашифрованного текста в блоках зашифрованного текста, причем способ дешифрирования включает следующие этапы: получение одновременно одного блока данных зашифрованного текста по порядку внешним путем относительно устройства дешифрирования; выбор первого режима или второго режима для использования с текущим блоком зашифрованного текста, полученным на этапе получения блока, в соответствии с тем, сколько блоков зашифрованного текста было получено; генерацию ключа для генерации первой группы, состоящей из предварительно определенного количества n разных субключей при выборе первого режима, и второй группы, состоящей из менее чем n разных субключей при выборе второго режима, и этап дешифрирования для дешифрирования текущего блока зашифрованных данных путем преобразования текущего блока зашифрованных данных с использованием n процессов преобразования по порядку, при этом в первом режиме каждый из n процессов преобразования связан с разным субключом в первой группе и выполняется с использованием связанного с ним субключа, а во втором режиме n процессов преобразования связаны с субключами во второй группе и каждый из них выполняется с использованием связанного с ним субключа.

В заявленном способе во втором режиме генерируется меньше субключей, чем в первом режиме. Это сокращает уменьшение скорости обработки, обусловленное генерацией субключей при дешифрировании блоков.

Указанный результат может быть достигнут в способе дешифрирования для использования устройством дешифрирования, которое дешифрирует данные зашифрованного текста в блоках зашифрованного текста, причем способ дешифрирования включает следующие этапы: получение одновременно одного блока данных зашифрованного текста по порядку внешним путем относительно устройства дешифрирования; выбор первого режима или второго режима для использования с текущим блоком зашифрованного текста, полученным на этапе получения блока, в соответствии с тем, сколько блоков зашифрованного текста было получено; генерацию ключа для генерации первой группы, состоящей из предварительно определенного количества n разных субключей при выборе первого режима, и второй группы, состоящей из менее чем n разных субключей при выборе второго режима; и дешифрирование для дешифрирования текущего блока зашифрованных данных путем преобразования текущего блока зашифрованных данных с использованием n процессов преобразования по порядку, причем в первом режиме каждый из n процессов преобразования связан с разным субключом в первой группе и выполняется с использованием связанного с ним субключа, а во втором режиме n процессов преобразования связаны с субключами во второй группе, и каждый из них выполняется с использованием связанного с ним субключа.

В заявленном способе первый режим выбирается только для определенных блоков в данных открытого текста. Второй режим выбирается для всех остальных блоков. Это означает, что второй режим выбирается чаще, чем первый режим, и что снижение скорости обработки при дешифрировании полных данных зашифрованного текста, состоящих из блоков зашифрованного текста, может быть сокращено.

Устройство дешифрирования может включать средство для хранения начальной величины, причем на этапе генерации ключа генерируется первая группа с использованием начальной величины в первом режиме и генерируется вторая группа с использованием начальной величины и блока зашифрованного текста, созданного непосредственно перед текущим блоком зашифрованного текста во втором режиме.

В заявленном способе каждый блок зашифрованного текста дешифрируется с использованием разных ключевых данных. Это затрудняет для третьей стороны накопление пар открытого текста, зашифрованных с использованием одного и того же ключа, и полученных зашифрованных текстов. Это повышает защищенность против известных способов криптоанализа открытого текста, таких как дифференциальный криптоанализ и линейный криптоанализ.

Как описано выше, настоящее изобретение обеспечивает уровень защищенности, подобный уровню защищенности описанной общепринятой технологии, в то же время повышая скорость криптографической обработки. Изобретение может использоваться, например, в секретной передаче изображений и другой информации в режиме реального времени. При современных потребностях в усовершенствованиях мультимедийной технологии это делает эффект этого изобретения особенно значительным.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

Задачи, преимущества и признаки изобретения поясняются в последующем описании конкретных вариантов осуществления, иллюстрируемого чертежами, на которых показано следующее:

Фиг.1 - блок-схема системы 5 шифрованной связи, соответствующей предпочтительному варианту осуществления настоящего изобретения;

Фиг.2 - блок-схема блока 10 шифрования данных в передающем устройстве 1;

Фиг.3 - блок-схема блока 100 шифрования и блока 101 генерации данных субключей;

Фиг.4 - блок-схема блока 301 рандомизации данных;

Фиг.5А и фиг.5В - блок-схемы, показывающие, какой из множества наборов данных субключей, сформированных блоком 101 генерации данных субключей, используется каждым из блоков шифрования с 1-го по 6-ой блока 100 шифрования, причем фиг.5А соответствует типу А генерации данных субключа, а фиг.5В - типу В генерации данных субключа;

Фиг.6 - таблица соответствия значения отсчета входным данным ключа и типу генерации данных субключа;

Фиг.7 - блок-схема блока 20 дешифрирования данных в приемном устройстве 2;

Фиг.8 - блок-схема, иллюстрирующая работу передающего устройства 1;

Фиг.9 - блок-схема, иллюстрирующая работу блока 10 шифрования данных передающего устройства 1;

Фиг.10 - блок-схема, иллюстрирующая работу блока 105 счетчика в блоке 10 шифрования данных;

Фиг.11 - блок-схема, иллюстрирующая работу блока 104 регистра в блоке 10 шифрования данных;

Фиг.12 - блок-схема, иллюстрирующая первую часть последовательности работы блока 101 генерации данных субключей в блоке 10 шифрования данных;

Фиг.13 - блок-схема, иллюстрирующая вторую часть последовательности работы блока 101 генерации данных субключей в блоке 10 шифрования данных, и

Фиг.14 - блок-схема, иллюстрирующая работу блока 301 рандомизации данных в блоке 101 генерации данных субключей.

ОПИСАНИЕ ПРЕДПОЧТИТЕЛЬНОГО ВАРИАНТА ОСУЩЕСТВЛЕНИЯ

Ниже описана система 5 зашифрованной связи согласно предпочтительному осуществлению настоящего изобретения.

1. Выполнение системы 5 шифрованной связи

Как показано на фиг.1, система 5 шифрованной связи содержит передающее устройство 1, приемное устройство 2 и тракт 3 передачи. Тракт 3 передачи соединяет передающее устройство 1 и приемное устройство 2.

Передающее устройство 1 и приемное устройство 2 заранее снабжены одними и теми же данными ключа шифрования. Передающее устройство 1 зашифровывает данные открытого (не зашифрованного) текста, используя данные ключа шифрования для формирования данных зашифрованного текста, а затем передает сформированные данные зашифрованного текста в приемное устройство 2 через тракт 3 передачи. Приемное устройство 2 принимает эти данные зашифрованного текста, дешифрирует данные зашифрованного текста, используя данные ключа шифрования, и таким образом формирует данные дешифрированного текста. Здесь дешифрирование, выполняемое приемным устройством 2, является операцией, обратной операции шифрования, выполняемой передающим устройством 1, так что данные дешифрированного текста, сформированные в результате дешифрирования, являются теми же самыми, что и данные открытого текста.

1.1 Выполнение передающего устройства 1 и приемного устройства 2

(1) Передающее устройство 1

Как показано на фиг.1, передающее устройство 1 содержит блок 12 хранения данных открытого текста, блок 13 хранения данных ключей шифрования, блок 10 шифрования данных и передающий блок 11.

В блок 12 хранения данных открытого текста предварительно записываются данные открытого текста. Эти данные открытого текста являются цифровыми данными, которые включают по меньшей мере 64 бита и могут представлять собой, например, закодированную в цифровом виде аудиоинформацию или информацию изображения.

В блок 13 хранения данных ключей шифрования записываются заранее 64-битовые данные ключа шифрования. Данные ключа шифрования выбираются заранее для передающего устройства 1 и для приемного устройства 2.

Блок 10 шифрования данных считывает данные открытого текста из блока 12 хранения данных открытого текста и данные ключа шифрования из блока 13 хранения данных ключей шифрования. Затем блок 10 шифрования данных осуществляет шифрование данных открытого текста с использованием данных ключа шифрования для формирования данных зашифрованного текста. Блок 10 шифрования данных выдает полученные данные зашифрованного текста в передающий блок 11. Блок 10 шифрования данных описан более подробно ниже.

Передающий блок 11 принимает данные зашифрованного текста, выполняет параллельно-последовательное преобразование данных зашифрованного текста и затем модулирует и усиливает преобразованные данные для формирования передаваемых сигналов. Передающий блок 11 передает эти сигналы через тракт 3 передачи к приемному устройству 2.

(2) Приемное устройство 2

Как показано на фиг.1, приемное устройство 2 содержит блок 22 хранения данных дешифрированного текста, блок 23 хранения данных ключей шифрования, блок 20 дешифрирования данных и приемный блок 21.

Приемный блок 21 принимает сигналы, передаваемые передающим блоком 11 передающего устройства 1 через тракт 3 передачи, демодулирует сигналы и выполняет последовательно-параллельное преобразование для получения данных зашифрованного текста.

Приемный блок 21 выдает данные зашифрованного текста в блок 20 дешифрирования данных.

В блок 23 хранения данных ключей шифрования заранее записываются 64-битовые данные ключа шифрования. Эти данные ключа шифрования те же самые, что и записанные в блоке 12 хранения данных ключей шифрования в передающем устройстве 1.

Блок 20 дешифрирования данных принимает данные зашифрованного текста и считывает данные ключа шифрования из блока 23 хранения данных ключей шифрования. Блок 20 дешифрирования данных дешифрирует данные зашифрованного текста, используя данные ключа шифрования для получения данных дешифрированного текста. Блок 20 дешифрирования данных записывает эти данные дешифрированного текста в блок 22 хранения данных дешифрированного текста. Дешифрирование, выполняемое блоком 20 дешифрирования данных, является операцией, обратной операции шифрования, выполняемой блоком 10 шифрования данных. Это означает, что данные дешифрированного текста являются теми же, что и первоначальные данные незашифрованного открытого текста. Блок 20 дешифрирования данных подробно описан ниже.

Блок 22 хранения данных дешифрированного текста сохраняет данные дешифрированного текста.

1.2 Блок 10 шифрования данных

Как показано на фиг.2, блок 10 шифрования данных содержит блок 100 шифрования, блок 101 генерации данных субключей, логический блок 102 "исключающее ИЛИ", блок 103 преобразования данных, блок 104 регистра, блок 105 счетчика, блок 106 управления генерацией данных субключей, блок 107 управления регистром, блок 108 деления на блоки, блок 109 объединения блоков, блок 110 получения ключа и блок 111 хранения ключа.

(1) Блок 108 деления на блоки

Блок 108 деления блоков считывает данные открытого текста Р из блока 12 хранения данных открытого текста и делит данные открытого текста Р на отдельные блоки, измеряемые от начала данных открытого текста Р для создания множества блоков открытого текста Рt, где t=0, 1, 2... . Каждый блок Рt открытого текста имеет длину 64 бита. Блок 108 деления на блоки выдает эти блоки Рt открытого текста последовательно в блок 100 шифрования. После выдачи всех блоков Рt открытого текста блок 108 деления на блоки выдает в блок 109 объединения блоков информацию, показывающую, что выдача завершена.

(2) Блок 110 получения ключа

Блок 110 получения ключа считывает данные ключа шифрования из блока 13 хранения данных ключей шифрования и записывает считанные данные ключа шифрования в блок 111 хранения ключа.

(3) Блок 111 хранения ключа

Блок 111 хранения ключа сохраняет данные ключа шифрования.

(4) Блок 100 шифрования

Как показано на фиг.3, блок 100 шифрования содержит первый блок 100а шифрования, второй блок 100b шифрования... , пятнадцатый блок 100с шифрования и шестнадцатый блок 100d шифрования.

Первый блок 100а шифрования получает блок Рt открытого текста от блока 108 деления на блоки и данные SКo первого субключа от блока 101 генерации данных субключей. Данные SKo первого субключа имеют длину 32 бита. Первый блок 100а шифрования осуществляет шифрование полученного блока Рt открытого текста с использованием данных SКo первого субключа, чтобы создать первый промежуточный блок. Первый блок 100а шифрования выдает этот первый промежуточный блок во второй блок 100b шифрования.

Шифрование, выполняемое первым блоком шифрования, является частью процедуры шифрования данных способа шифрования FEAL (Алгоритма Быстрого Шифрования данных, АЛБШ), который является хорошо известным методом блочного шифрования.

Блоки шифрования со второго по пятнадцатый соответственно принимают промежуточный блок от предшествующего блока шифрования в блоках шифрования с первого по четырнадцатый и со вторых по пятнадцатые данные SK1÷SK14 субключей от блока 101 генерации данных субключей. Каждый из наборов данных SK1÷SK14 со второго по пятнадцатый субключей имеет длину 32 бита. Блоки шифрования от второго по пятнадцатый соответственно осуществляют шифрование принятого промежуточного блока с использованием от вторых по пятнадцатые данных SK1÷SK15 субключей, чтобы создать промежуточные блоки со второго по пятнадцатый, которые соответственно выдаются в блоки шифрования с третьего по шестнадцатый.

Шестнадцатый блок 100d шифрования получает пятнадцатый промежуточный блок от пятнадцатого блока 100с шифрования и получает шестнадцатые данные SK15 субключа от блока 101 генерации данных субключей. Шестнадцатые данные SК15 субключа также имеют длину 32 бита. Шестнадцатый блок 100d шифрования шифрует полученный промежуточный блок, используя шестнадцатые данные SK15 субключа, чтобы создать блок Сt зашифрованного текста.

Приведенное ниже выражение

показывает, что блок Рt открытого текста зашифрован с использованием группы SКОt (от SK0 до SK15) данных субключей, которые были генерированы как часть t-го процесса шифрования.

Шестнадцатый блок 100d шифрования выдает созданный блок Сt зашифрованного текста в блок 109 объединения блоков.

После того как созданный блок Сt зашифрованного текста выдан в блок 109 объединения блоков, блок 100 шифрования выдает в блок счетчика 105 информацию, показывающую, что шифрование одного блока открытого текста завершено.

(5) Блок 104 регистра

Блок 104 регистра включает области для хранения 64-битового начального значения IV и 64-битовых хранимых данных ROt. Значение хранимых данных ROt заранее устанавливается в начальное значение IV.

Блок 104 регистра принимает блок Сt зашифрованного текста от шестнадцатого блока 100d шифрования.

Блок 104 регистра принимает сигнал управления от блока 107 управления регистром. Если принятый управляющий сигнал равен "0" и блок Сt зашифрованного текста принят от шестнадцатого блока 100d шифрования, блок 104 регистра записывает блок Сt зашифрованного текста как хранимые данные ROt. Если принятый управляющий сигнал равен "1", блок 104 регистра считывает начальное значение IV и записывает начальное значение IV как хранимые данные ROt.

Формулируя это иным путем, предположим, что Т представляет собой предварительно определенный цикл и n равно 0, 1,... . Когда осуществляется шифрование (Т* n)-ого блока открытого текста (t=T* n), блок 104 регистра сбрасывает хранимое значение ROt, используя начальное значение IV, которое установлено заранее. Величина "Т" устанавливается заранее и описана ниже. Когда осуществляется шифрование блока открытого текста, который не является (Т* n)-ым блоком открытого текста (т.е. является блоком Рt открытого текста, где t≠ Т* n), принятый блок Сt зашифрованного текста записывается как хранимые данные ROt.

(6) Блок 103 преобразования данных

Блок 103 преобразования данных считывает 64-битовые хранимые данные ROt из блока 104 регистра. Когда блок 100 шифрования осуществляет шифрование t-ого блока Рt открытого текста, блок 103 преобразования данных считывает 64-битовые данные ROt как показано ниже.

Если

ROt=Ct-1

Если

ROt=IV

Блок 103 преобразования данных преобразует считанные сохраненные данные ROt предварительно определенным образом, что указывается ниже функцией f, чтобы создать SOt:

Здесь выражение f(X) представляет результат обработки входных данных Х с помощью предварительно определенного преобразования данных согласно функции f, являющегося 13-битовым циклическим сдвигом в направлении старшего бита 64-битовых данных.

После этого блок 103 преобразования данных выдает 64-битовые данные SOt, полученные в результате преобразования, в логический блок 102 "исключающее ИЛИ".

(7) Логический блок 102 "исключающее ИЛИ"

Логический блок 102 "исключающее ИЛИ" принимает 64-битовые данные SOt от блока 103 преобразования данных и считывает данные ключа шифрования ЕК из блока 111 хранения ключа.

Логический блок 102 "исключающее ИЛИ" выполняет операцию "исключающее ИЛИ" для каждого бита в 64-битовых данных SOt и соответствующего бита в данных ключа шифрования ЕК и таким образом создает 64-битовые данные входного ключа IКОt:

В вышеприведенном равенстве символ "(+)" используется для обозначения операции "исключающее ИЛИ".

Логический блок 102 "исключающее ИЛИ" выдает входные данные ключа IКОt, которые он сформировал, в блок 101 генерации данных субключей.

(8) Блок 101 генерации данных субключей

Блок 101 генерации данных субключей принимает управляющий сигнал от блока 106 управления генерацией данных субключей и входные данные ключей IКОt от логического блока 102 "исключающее ИЛИ". Этот управляющий сигнал показывает, осуществляется ли шифрование (Т* n)-ого блока открытого текста (где n=0,1,... ) или нет. Такое шифрование происходит один раз в каждом предварительно определенном цикле Т. В настоящем примере предварительно определенный цикл Т установлен на 210 операций шифрования.

Блок 101 генерации данных субключей способен выполнять два процесса (типа А и типа В) генерации субключей. Процесс генерации субключей типа А имеет большую нагрузку обработки, а типа В - небольшую нагрузку обработки. В соответствии с принятым управляющим сигналом блок 101 генерации данных субключей выбирает один из двух типов процессов генерации субключей и выполняет выбранный процесс, используя входные данные ключа IKOt, чтобы генерировать шестнадцать наборов 32-битовых данных субключей (т.е. от первых до шестнадцатых данных SK0÷SK15 субключей).

Если t≠ T* k (k=0,1,... )

Здесь выражение KGB(X) относится к шестнадцати наборам данных субключей, генерированным из входных данных ключей IКОt с помощью процесса генерации данных субключей типа В. Эти шестнадцать наборов данных субключей составлены из двух типов данных субключей.

Если t=T* k (k=0,1,... )

Выражение KGA(X) представляет шестнадцать наборов данных субключей, которые генерированы с помощью процесса генерации данных субключей типа А. Каждый из этих шестнадцати наборов данных субключей отличается от других.

Блок 101 генерации данных субключей выдает шестнадцать наборов данных SK0÷SK15 субключей, которые он сформировал, к блокам шифрования от первого по шестнадцатый блока 100 шифрования.

Фиг.6 показывает соотношение между значением отсчета блока 105 счетчика, входными данными ключа, принятыми блоком 101 генерации данных субключей, и типом (А или В) процесса генерации субключей, используемым блоком 101 генерации данных субключей. Если значение отсчета равно "0", входные данные ключа генерируются с использованием данных ключа шифрации ЕК и начального значения IV и используется процесс генерации субключа типа А. Наоборот, если значение подсчета равна от "1" до "210-1", входные данные ключа генерируются с использованием данных ключа шифрования и блока зашифрованного текста, созданного предыдущим процессом шифрования, и используется процесс генерации субключа типа В.

Как показано на фиг.3, блок генерации данных субключей 101 содержит блок 301 рандомизации данных блок 302 хранения рандомизированных данных и блок 303 управления количеством этапов.

(а) Блок 301 рандомизации данных

Блок рандомизации данных 301 принимает 64-битовые данные от блока 303 управления количеством этапов, выполняет предварительно определенный процесс рандомизации данных для этих данных и таким образом генерирует 32-битовые данные SK субключа и 64-битовые рандомизированные данные. Блок 301 рандомизации данных выдает 32-битовые данные SK субключа в блок 302 хранения рандомизированных данных и созданные 64-битовые рандомизированные данные в блок 303 управления количеством этапов.

Как показано на фиг.4, блок 301 рандомизации данных содержит блок 301а разделения, логический блок 301b "исключающее ИЛИ", блок 301с перемешивания данных и блок 301d объединения.

Блок 301а разделения

Блок 301а разделения принимает 64-битовые данные от блока 303 управления количеством этапов и разделяет эти данные на старшие 32 бита (далее называемые "данные А1") и младшие 32 бита (далее называемые "данные А0"). Блок 301а разделения выдает данные А1 в логический блок 301b "исключающее ИЛИ" и блок 301с перемешивания данных, а данные А0 в блок 301d объединения и блок 301с перемешивания данных.

Блок 301с перемешивания данных

Блок 301с перемешивания данных принимает данные А0 и данные А1 от блока 301а разделения, выполняет операцию "исключающее ИЛИ" для каждого бита в данных А0 и данных А1 и таким образом получает 32-битовые данные. Блок 301с перемешивания данных разделяет эти данные на четыре набора из 8-битовых данных, выполняет предварительно определенную подстановку для каждого набора восьмибитовых данных и таким образом генерирует четыре набора 8-битовых данных. Предварительно определенная подстановка, упоминаемая здесь, выполняется с использованием таблицы, которая хранит 256 8-битовых величин, которым присвоены значения адреса от "0" до "255".

После этого блок 301с перемешивания данных формирует 32-битовые данные путем объединения четырех созданных наборов 8-битовых данных. Блок 301с перемешивания данных переставляет конкретные биты в этой 32-битовой величине, чтобы создать новые 32-битовые данные С1, которые он выдает в логический блок 301b "исключающее ИЛИ".

Логический блок 301b "исключающее ИЛИ"

Логический блок 301b "исключающее ИЛИ" принимает данные А1 от блока 301а разделения и 32-битовые данные С1 от блока 301с перемешивания данных. Логический блок 301b "исключающее ИЛИ" выполняет операцию "исключающее ИЛИ" для каждого бита в данных А1 и данных С1, чтобы создать 32-битовые данные субключа В0. Логический блок 301b "исключающее ИЛИ" затем выдает эти данные субключа В0 в блок 302 хранения рандомизированных данных и блок 301d объединения.

Блок 301d объединения

Блок 301d объединения принимает данные А0 от блока 301а разделения и данные субключа В0 от логического блока 301b "исключающее ИЛИ". Блок 301d объединения объединяет данные А0 и данные субключа В0, чтобы создать 64-битовые рандомизированные данные, которые содержат данные А0 в качестве старших 32 битов и данные субключа В0 в качестве младших битов. Блок 301d объединения выдает эти 64-битовые рандомизированные данные в блок 303 управления количеством этапов.

(b) Блок 303 управления количеством этапов

Блок 303 управления количеством этапов работает как описано ниже, обеспечивая возможность блоку 301 рандомизации данных повторять процесс рандомизации данных.

Блок 303 управления количеством этапов имеет область для хранения числа итераций обработки, показывающего общее количество выполненных блоком 301 рандомизации данных процедур рандомизации, и максимального количества итераций.

Блок 303 управления количеством этапов принимает входные данные субключей от логического блока 102 "исключающее ИЛИ" или 64-битовые рандомизированные данные от блока 301 рандомизации данных. Блок 303 управления количеством этапов также принимает управляющий сигнал от блока 106 управления генерацией данных субключей. Если принятый управляющий сигнал равен "1", то максимальное количество итераций устанавливается в "16". Если принятый управляющий сигнал равен "0", то максимальное количество итераций устанавливается в "2". По получении управляющего сигнала блок 303 управления количеством этапов сбрасывает число итераций обработки в "0".

Блок 303 управления количеством этапов принимает входные данные субключей или рандомизированные ключевые данные, добавляет единицу к количеству итераций обработки и сравнивает количество итераций обработки с максимальным количеством итераций. Если количество итераций обработки равно максимальному количеству итераций, блок 303 управления количеством этапов выдает входные ключевые данные или рандомизированные ключевые данные, которые он принял, в блок рандомизации данных, чтобы завершить периодически повторяемую обработку. Если количество итераций обработки меньше максимального количества итераций, блок 303 управления количеством этапов выдает входные ключевые данные, рандомизированные ключевые данные, которые он принял, в блок рандомизации данных и повторяет выполняемую обработку.

Следует иметь в виду, что во время первой итерации периодически повторяющейся обработки блок 303 управления количеством этапов выдает входные данные ключей, которые он принял, в блок 301 рандомизации данных. Во второй и последующих итерациях блок 303 управления количеством этапов выдает рандомизированные данные, которые он принял, в блок 301 рандомизации данных.

Как описано выше, блок 303 управления количеством этапов управляет блоком 301 рандомизации данных, обеспечивая выполнение им процесса рандомизации дважды или шестнадцать раз. Когда осуществляется шифрование (Т* n)-ого (где n=0, 1,... ) блока незашифрованного текста, в процессе обработки блок 301 рандомизации данных выдает шестнадцать наборов данных субключей в блок 302 хранения рандомизованных данных. Во всех других случаях блок 301 рандомизации данных выдает два набора данных субключей в блок 302 хранения рандомизованных данных.

(с) Блок 302 хранения рандомизованных данных

Блок 302 хранения рандомизованных данных принимает управляющий сигнал от блока 106 управления генерацией данных субключей. Блок 302 хранения рандомизованных данных также последовательно принимает шестнадцать наборов данных субключей или два набора данных субключей от блока 301 рандомизации данных. Шестнадцать наборов данных субключей соответственно нумеруются от SK0 до SК15, в то время как два набора данных субключей соответственно нумеруются SK0 и SK1. После приема таких данных блок 302 хранения рандомизованных данных записывает либо шестнадцать наборов данных SK0÷SK15 субключей, либо два набора данных SK0 и SK1 субключей.

Как показано на фиг.5А, если принятый управляющий сигнал равен "1", блок 302 хранения рандомизованных данных считывает записанные наборы данных SK0÷15 субключей и выдает эти наборы данных SK0÷SK15 в блоки шифрования с первого по шестнадцатый.

Как показано на фиг.5В, если принятый управляющий сигнал равен "0", блок 302 хранения рандомизованных данных считывает записанные наборы данных K0 и K1 субключей, а затем устанавливает SK14=SK12=SK10=SK8=SK6=SK4=SK2=SK0 и SK15=SK13=SK11=SK9=SK7=SK5=SK3=SK1. После этого блок 302 хранения рандомизированных данных выдает наборы данных субключей от SK0 до SK15 в блок шифрования с первого по шестнадцатый.

Наборы данных субключей от SK0 до SK15 соответственно используются как наборы данных субключей с первого по шестнадцатый.

(9) Блок 105 счетчика

Блок 105 счетчика имеет внутреннюю область для хранения значения отсчета. Это значение отсчета инициализируется с использованием начального значения "0".

Блок 105 счетчика принимает информацию о завершении от блока 100 шифрования. Эта информация показывает, что шифрование одного блока открытого текста завершено. По получении информации о завершении блок 105 счетчика добавляет "1" к значению отсчета. При добавлении "1" к значению отсчета, равной "210-1", блок 105 счетчика сбрасывает значение отсчета в "0".

(10) Блок 106 управления генерацией данных субключей

Блок 106 управления генерацией данных субключей считывает значение отсчета из блока 105 счетчика. Если значение отсчета равно "0", блок 106 управления генерацией данных субключей выдает управляющий сигнал "1" в блок 101 генерации данных субключей. Если значение отсчета не равно "0", блок 106 управления генерацией данных субключей выдает управляющий сигнал "0".

(11) Блок 107 управления регистром

Блок 107 управления регистром также считывает значение отсчета из блока 105 счетчика. Если значение отсчета равно "0", блок 107 управления регистром выдает управляющий сигнал "1" в блок 104 регистра. Если значение отсчета не равно "0", блок 107 управления регистром выдает управляющий сигнал "0" в блок 104 регистра.

(12) Блок 109 объединения блоков

Блок 109 объединения блоков последовательно принимает блоки Сt зашифрованного текста от блока 100 шифрования и принимает информацию, показывающую завершение выдачи, из блока 108 деления на блоки.

По получении информации, показывающей завершение выдачи, блок 109 объединения блоков объединяет все принятые блоки Сt зашифрованного текста (t=0, 1, 2,... ) в порядке их приема, чтобы создать данные С зашифрованного текста. Блок 109 объединения блоков выдает эти данные С зашифрованного текста в передающий блок 11.

1.3 Блок 20 дешифрирования данных

Как показано на фиг.1, блок 20 дешифрирования данных содержит блок 200 дешифрирования, блок 201 генерации данных субключей, логический блок 202 "исключающее ИЛИ", блок 203 преобразования данных, блок 204 регистра, блок 205 счетчика, блок 206 управления генерацией данных субключей, блок 207 управления регистром, блок 208 деления на блоки, блок 209 объединения блоков, блок 210 получения ключа, блок 211 хранения ключа.

Блок 201 генерации данных субключей, логический блок 202 "исключающее ИЛИ", блок 203 преобразования данных, блок 204 регистра, блок 205 счетчика, блок 206 управления генерацией данных субключей, блок 207 управления регистром, блок 210 получения ключа и блок 211 хранения ключа блока 20 дешифрования соответственно имеют такие же конструкции, как блок 101 генерации данных субключей, логический блок 102 "исключающее ИЛИ", блок 103 преобразования данных, блок 104 регистра, блок 105 счетчика, блок 106 управления генерацией данных субключей, блок 107 управления регистром, блок 110 получения ключа и блок 111 хранения ключа блока 10 шифрования данных. Соответственно, последующее объяснение будет сосредоточено только на различиях между блоком 20 дешифрования данных и блоком 10 шифрования данных.

(1) Блок 208 деления на блоки

Блок 208 деления на блоки принимает данные С зашифрованного текста от приемного блока 21 и делит принятые данные зашифрованного текста на множество блоков Сt зашифрованного текста (где t=0, 1, 2,... ). Каждый блок Сt зашифрованного текста имеет длину 64 бита. Блок 208 деления на блоки выдает каждый созданный блок зашифрованного текста в блок 200 дешифрирования по порядку.

Блок 208 деления на блоки также последовательно выдает предшествующий блок Ct-1 зашифрованного текста в блок 204 регистра. При выдаче первого блока C0 зашифрованного текста в блок 200 дешифрирования блок 208 деления на блоки не выдает никаких данных в блок 204 регистра.

По завершении выдачи всех блоков зашифрованного текста блок 208 деления на блоки выдает информацию, показывающую завершение выдачи, в блок 209 объединения блоков.

(2) Блок 200 дешифрирования

Блок 200 дешифрирования использует часть процедуры дешифрирования данных способа шифрования АЛБШ (FEAL).

Блок 200 дешифрирования включает от первого до шестнадцатого блоки расшифровки (не показаны).

Первый блок дешифрирования принимает блок Сt зашифрованного текста от блока 208 деления на блоки и данные SК0 первого субключа от блока 201 генерации данных субключей. Данные SK0 первого субключа имеют длину 32 бита. Первый блок дешифрирования дешифрирует принятый блок Сt зашифрованного текста, используя данные SK0 первого субключа, и таким образом создает первый промежуточный блок. Первый блок дешифрирования выдает этот первый промежуточный блок во второй блок дешифрирования.

Блоки дешифрирования от второго до пятнадцатого соответственно принимают промежуточные блоки от первого до четырнадцатого от предшествующего блока дешифрирования из блоков дешифрирования с первого по четырнадцатый в дополнение к соответствующим данным субключей со второго по пятнадцатый SК1÷SK14 от блока 201 генерации данных субключей. Каждые из данных SK1÷14 субключей со второго по пятнадцатый имеют длину 32 бита. Блоки дешифрирования от второго до пятнадцатого соответственно дешифрируют промежуточные блоки от первого до четырнадцатого, используя данные SK1÷SK14 субключей со второго по пятнадцатый, чтобы создать промежуточные блоки со второго по пятнадцатый, которые выдаются в блоки дешифрирования с третьего по шестнадцатый.

Шестнадцатый блок дешифрирования принимает пятнадцатый промежуточный блок от пятнадцатого блока дешифрирования и данные SK15 шестнадцатого субключа от блока 201 генерации данных субключей. Эти данные SК15 шестнадцатого субключа имеют длину 32 бита. Шестнадцатый блок дешифрирования дешифрирует пятнадцатый промежуточный блок, используя данные SK15 шестнадцатого субключа для создания блока открытого текста Dt.

где Dec (Ct, SK1t) описывает процедуру дешифрирования

зашифрованного текста Сt, используя набор SK1t (от SK0 до SK15) данных субключей, которые генерируются во время t-го процесса дешифрирования.

Шестнадцатый блок дешифрирования выдает созданный блок открытого текста Dt в блок 209 объединения блоков.

После выдачи созданного блока открытого текста Dt в блок 209 объединения блоков блок 200 дешифрирования выдает в блок 205 счетчика информацию завершения, которая показывает, что дешифрирование блока зашифрованного текста завершено.

(3) Блок 205 счетчика

Блок 205 счетчика принимает информацию завершения, показывающую, что дешифрирование одного блока зашифрованного текста завершено блоком 200 дешифрирования. По получении этой информации блок 205 счетчика добавляет "1" к значению отсчета.

(4) Блок 204 регистра

Блок 204 регистра имеет области для хранения 64-битового начального значения IV 64-битовых хранимых данных. В начальном состоянии 64-битовые хранимые данные установлены в начальное значение IV.

Блок 204 регистра принимает предшествующий блок Ct-1 зашифрованного текста от блока 208 деления на блоки.

Блок 204 регистра принимает управляющий сигнал от блока 207 управления регистром. Если принятый управляющий сигнал равен "0" и блок 204 регистра принял блок Ct-1 зашифрованного текста от блока 208 деления на блоки, блок 204 регистра записывает принятый блок Сt-1 зашифрованного текста в качестве хранимых данных после того, как блок 200 дешифрирования выдает блок Dt-1 открытого текста в конце процесса дешифрирования данных для текущего блока зашифрованных данных. Если управляющий сигнал равен "1", блок 204 регистра считывает начальное значение IV и записывает его в качестве хранимых данных.

Иными словами, при дешифрировании (Т* n)-го блока зашифрованного текста (где n=0, 1, 2,... ) блок 204 регистра инициализирует хранимые данные, используя начальное значение IV, которое установлено заранее. Во всех других случаях блок 204 регистра записывает предшествующий блок Ct-1 зашифрованного текста. Как упоминалось ранее, величина "Т" есть величина, показывающая предварительно определенную длительность цикла.

(5) Блок 209 объединения блоков

Блок 209 объединения блоков последовательно принимает блоки Dt открытого текста от блока 200 дешифрирования и принимает информацию, показывающую завершение выдачи, от блока 208 деления на блоки.

По получении информации, показывающей завершение выдачи, блок 209 объединения блоков объединяет принятые блоки Dt открытого текста (t=0, 1, 2,... ) в порядке их приема, чтобы создать данные незашифрованного открытого текста D. Блок 209 объединения блоков выдает эти данные открытого текста в блок 22 хранения дешифрированных данных.

(6) Блок 203 преобразования данных

Блок 203 преобразования данных считывает 64-битовые хранимые данные из блока 204 регистра. После дешифрирования t-го блока Dt зашифрованного текста блок 200 дешифрирования считывает 64-битовые хранимые данные R1t, как показано ниже.

Если t≠ T* k (k=0,1,... )

Если t=T* k (k=0,1,... )

Блок 203 преобразования данных преобразует считанные сохраненные данные R1t предварительно определенным образом, соответственно функции f, чтобы создать S1t.

Здесь f(X) представляет собой значение, сформированное в результате преобразования входных данных Х блоком 203 преобразования данных в соответствии с функцией f.

(7) Логический блок 202 "исключающее ИЛИ"

Логический блок 202 "исключающее ИЛИ" принимает 64-битовые данные S1t от блока 203 преобразования данных и создает входные данные ключа IК1t:

(8) Блок 201 генерации данных субключей

Блок 201 генерации данных субключей генерирует шестнадцать наборов 32-битовых данных субключей (данные SК0÷SК15 от первого до шестнадцатого субключей).

Если t≠ T* k (k=0,1,... )

Здесь KGB(X) представляет шестнадцать наборов данных субключей, которые генерируются в процессе генерации субключей типа В, используя входные данные Х ключей. Эти шестнадцать наборов данных субключей состоят из двух типов данных субключей.

Если t=T* k (k=0,1,... )

Здесь KGA(X) представляет шестнадцать наборов данных субключей, которые генерируются в процессе генерации субключей типа А, используя входные данные Х ключей. Эти шестнадцать наборов данных субключей отличаются друг от друга.

2. Работа системы 5 шифрованной связи

2.1 Работа передающего устройства 1

(1) Работа передающего устройства 1 в целом

Ниже описана общая работа передающего устройства 1 в целом со ссылками на блок-схему, показанную на фиг.8.

Блок 105 счетчика устанавливает значение отсчета в "0", блок 104 регистра устанавливает хранимые данные в начальное значение и блок 108 деления на блоки считывает данные открытого текста из блока 12 хранения данных открытого текста (этап S101). Блок 110 получения ключа считывает данные ключа шифрования из блока 13 хранения данных ключей шифрования и записывает считанные данные ключа шифрования в блок хранения ключа (этап S102). Блок 108 деления на блоки делит считанные данные открытого текста на множество блоков открытого текста (этап S103).

Блок 108 деления на блоки выдает каждый блок открытого текста в блок 100 шифрования. Блок 100 шифрования принимает блок открытого текста от блока 108 деления на блоки, шифрует блок открытого текста, чтобы создать блок зашифрованного текста, и выдает созданный блок зашифрованного текста в блок 109 объединения блоков (этап S104). Если зашифрованы не все блоки открытого текста (этап S105: Нет), то обработка возвращается к этапу S104.

По завершении выдачи всех блоков открытого текста (S105: Да) блок 108 деления на блоки выдает информацию, показывающую завершение выдачи, в блок 109 объединения блоков. Блок 109 объединения блоков объединяет все блоки зашифрованного текста в порядке их приема, чтобы создать данные зашифрованного текста, которые он выдает в передающий блок 11 (этап S106).

Передающий блок 11 принимает данные зашифрованного текста и подвергает принятые данные зашифрованного текста параллельно-последовательному преобразованию, модуляции и усилению для формирования передаваемых сигналов. Передающий блок 11 передает эти сигналы в приемное устройство 2 через тракт 3 передачи (этап S107).

(2) Работа блока 10 шифрования данных

Работа блока 10 шифрования данных описана ниже со ссылками на блок-схему на фиг.9.

Блок 103 преобразования данных сначала считывает 64-битовые хранимые данные из блока 104 регистра (этап S121), подвергает эти считанные данные предварительно определенному преобразованию данных и выдает полученные 64-битовые данные в логический блок 102 "исключающее ИЛИ" (этап S122).

Логический блок 102 "исключающее ИЛИ" принимает 64-битовые данные от блока 103 преобразования данных, считывает данные ключа шифрования из блока 111 хранения ключа, выполняет операцию "исключающее ИЛИ" для соответствующих битов в принятых 64-битовых данных и считанных данных ключа шифрования, чтобы сформировать 64-битовые входные данные ключа. Логический блок 102 "исключающее ИЛИ" выдает созданные входные данные ключа в блок 101 генерации данных субключей (этап S123).

Блок 101 генерации данных субключей генерирует множество наборов данных субключей, используя входные данные ключа, и выдает каждый сформированный набор данных субключей в различные блоки шифрования в блоках шифрования с первого по шестнадцатый в блоке 100 шифрования (этап S124).

Блок 100 шифрования принимает блок незашифрованного текста от блока 108 деления на блоки (этап S125), осуществляет шифрование блока открытого текста, используя множество наборов данных субключей, и таким образом создает блок зашифрованного текста (этап S126). Блок 105 счетчика добавляет "1" к значению отсчета (этап S127). Блок 100 шифрования выдает блок зашифрованного текста в блок 109 объединения блоков (этап S128).

Блок 106 управления генерацией данных субключей считывает значение отсчета из блока 105 счетчика. Если значение отсчета равно "0" (этап S141: Да), блок 106 управления генерацией данных субключей выдает управляющий сигнал с значением "1" в блок 101 генерации данных субключей (этап S143). Наоборот, когда значение отсчета не равно "0" (этап S141: Нет), блок 106 управления генерацией данных субключей выдает управляющий сигнал со значением "0" в блок 101 генерации данных субключей (этап S142).

Блок 107 управления регистром также считывает значение отсчета блока 105 счетчика. Если значение отсчета равно "0" (этап S151: Да), блок 107 управления регистром выдает управляющий сигнал со значением "1" в блок 104 регистра (этап S153). Наоборот, если значение отсчета не равно "0" (этап S151: Нет), блок 107 управления регистром выдает управляющий сигнал со значением "0" в блок 104 регистра (этап S152).

Блок 104 регистра записывает значение в соответствии с управляющим сигналом, полученным от блока 107 управления регистром (этап S161).

(3) Работа блока 105 счетчика

Работа блока 105 счетчика описана ниже со ссылками на блок-схему, показанную на фиг.10.

По получении сигнала завершения от блока 100 шифрования, показывающего, что шифрование одного блока открытого текста завершено, блок 105 счетчика добавляет "1" к значению отсчета (этап S181). Если значение отсчета достигает 210 (этап S182: Да), блок 105 счетчика сбрасывает значение отсчета в "0" (этап S183).

(4) Работа блока 104 регистра

Работа блока 104 регистра описана ниже со ссылками на блок-схему на фиг.11.

Блок 104 регистра принимает управляющий сигнал от блока 107 управления блоком регистра. Если принятый управляющий сигнал равен "0" (этап S201: "=0") и блок зашифрованного текста принимается от шестнадцатого блока 100d шифрования, блок 104 регистра записывает этот блок зашифрованного текста в качестве хранимых данных (этап S202). Если принятый управляющий сигнал равен "1" (этап S201: "=1"), блок 104 регистра считывает начальное значение и записывает это начальное значение в качестве хранимых данных (этап S203).

(5) Работа блока 101 генерации данных субключей

Работа блока 101 генерации данных субключей описана ниже со ссылками на блок-схему на фиг.12 и 13.

Блок 303 управления количеством этапов блока 101 генерации данных субключей принимает управляющий сигнал от блока 106 управления генерацией данных субключей. Если принятый управляющий сигнал равен "1" (этап S221: "=1"), блок 303 управления количеством этапов устанавливает максимальное количество в 16 (этап S223), в то время как если принятый управляющий сигнал равен "0" (этап S221: "=0"), блок 303 управления количеством этапов устанавливает максимальное количество в 2 (этап S222). По получении управляющего сигнала блок 303 управления количеством этапов также устанавливает количество итераций "1" в "0" (этап S224).

Блок 303 управления количеством этапов принимает либо входные данные ключа, либо рандомизированные данные. В первой итерации (этап S225: Да) блок 303 управления количеством этапов выдает входные данные ключа к блоку 301 рандомизации данных (этап S227). Во второй и последующих итерациях (этап S225: Нет) блок 303 управления количеством этапов выдает рандомизированные данные в блок 301 рандомизации данных (этап S226).

Блок 301 рандомизации данных выполняет процесс рандомизации данных и таким образом генерирует данные субключей и рандомизированные данные (этап S228). Блок 302 хранения рандомизированных данных записывает данные субключей (этап S229). Далее, блок 303 управления количеством этапов добавляет "1" к значению количества итераций i (этап S230) и сравнивает полученное количество итераций с максимальным количеством. Если количество итераций меньше максимального количества (этап S231: Да), обработка возвращается к этапу S225, и вышеописанная процедура повторяется.

Если количество итераций по меньшей мере равно максимальному количеству (этап S231: Да), повторяющаяся обработка завершается. Блок 302 хранения рандомизированных данных затем принимает управляющий сигнал от блока 106 управления генерацией данных субключей. Если принятый управляющий сигнал равен "1" (этап S232), блок 302 хранения рандомизированных данных считывает записанные наборы данных SK0÷15 субключей и выдает считанные наборы данных субключей в блоки шифрования с первого по шестнадцатый (этап S235).

Если принятый управляющий сигнал равен "0" (этап S232), блок 302 хранения рандомизированных данных считывает записанные наборы данных субключей SK0 и SK1, устанавливает SK14=SK12=SK10=SK8=SK6=SK4=SK2=SK0 и SK15=SK13=SK11=SK9=SK7=SK5=SK3=SK1 и выдает считанные наборы данных от SK0 до SK15 в блоки шифрования с первого по шестнадцатый (этапы S233 и S234).

(6) Работа блока 301 рандомизации данных

Работа блока 301 рандомизации данных описана ниже со ссылками на блок-схему на фиг.14.

Блок 301а разделения принимает 64-битовые данные от блока 303 управления количеством этапов и разделяет принятые 64-битовые данные на старшие 32-битовые данные А1 и младшие 32-битовые данные А0. Блок 301а разделения выдает данные А1 в логический блок 301b "исключающее ИЛИ" и блок 301с перемешивания данных и выдает данные А0 в блок 301d объединения и блок 301с перемешивания данных (этап S251).

Блок 301с перемешивания данных принимает данные А0 и данные А1 от блока 301а разделения, выполняет операцию "исключающее ИЛИ" для каждого бита в данных А0 и данных А1 для создания 32-битовых данных и разделяет эти 32-битовые данные на четыре набора из 8-битовых данных. Блок 301с перемешивания данных затем выполняет предварительно определенную подстановку в каждом наборе 8-битовых данных и объединяет полученные наборы модифицированных 8-битовых данных для создания нового набора 32-битовых данных. Блок 301с перемешивания данных также заменяет предварительно определенные биты в этих 32-битовых данных другими битами для создания 32-битовых данных С1, которые он выдает в логический блок 301b "исключающее ИЛИ" (этап S252).

Логический блок 301b "исключающее ИЛИ" принимает данные А0 от блока 301а разделения и 32-битовые данные С1 от блока 301с перемешивания данных и выполняет операцию "исключающее ИЛИ" для каждого бита в данных А0 и данных С1 для создания данных субключа В0. Логический блок 301b "исключающее ИЛИ" выдает эти данные субключа В0 в блок 302 хранения рандомизированных данных и блок 301d объединения (этап S253).

Блок 301d объединения принимает данные А0 от блока 301а разделения и данные субключа В0 от логического блока 301b "исключающее ИЛИ". Блок 301d объединения объединяет данные А0 и данные субключа В0 с данными А0 в качестве старших битов и данными субключа В0 в качестве младших битов, чтобы создать 64-битовые рандомизированные данные, блок 301d объединения выдает эти 64-битовые рандомизированные данные в блок 303 управления количеством этапов (этап S254).

2.2 Работа приемного устройства 2

(1) Работа приемного устройства 2 в целом

Работа приемного устройства 2 в целом подобна работе передающего устройства и поэтому поясняется со ссылками на блок-схему, показанную на фиг.8.

Приемный блок 21 приемного устройства 2 принимает сигналы от передающего блока 11 передающей аппаратуры 1 через тракт 3 передачи. В приемном блоке 21 принятые сигналы подвергаются демодуляции и последовательно-параллельному преобразованию, чтобы создать зашифрованный текст. Блок 205 счетчика устанавливает значение отсчета в "0", а блок 204 регистра устанавливает хранимые данные в начальное значение. Блок 208 деления на блоки принимает данные зашифрованного текста от приемного блока 21 (соответствует этапу S101), и блок 210 получения ключей считывает данные ключа шифрования из блока 23 хранения данных ключа шифрования и записывает их в блок 211 хранения ключей (соответствует этапу S102). Блок 208 деления на блоки делит данные зашифрованного текста на множество блоков зашифрованного текста (соответствует этапу S103).

Блок 208 деления на блоки выдает каждый блок зашифрованного текста в блок 200 дешифрирования. Блок 200 дешифрирования принимает блок зашифрованного текста от блока 208 деления на блоки, дешифрирует принятый блок зашифрованного текста, чтобы создать блок открытого текста, и выдает полученный блок открытого текста в блок 209 объединения блоков (соответствует этапу S104). Если блок 200 дешифрирования не завершил дешифрирования всех блоков зашифрованного текста (соответствует этапу S105: Нет), процесс дешифрирования повторяется.

Если выдача всех блоков зашифрованного текста завершена (соответствует этапу S105: Да), блок деления на блоки выдает информацию, показывающую завершение выдачи, в блок 209 объединения блоков. Блок 209 объединения блоков объединяет все принятые им блоки открытого текста в порядке поступления для создания данных незашифрованного текста (соответствует этапу S106) и сохраняет созданные данные открытого текста в блоке 22 хранения дешифрированных данных (соответствует этапу S107).

(2) Работа блока 20 дешифрирования данных

Работа блока 20 дешифрирования данных подобна работе блока 10 шифрования данных и поэтому поясняется со ссылками на блок-схему по фиг.9.

Блок 203 преобразования данных считывает 64-битовые хранимые данные из блока 204 регистра (соответствует этапу S121), выполняет предварительно определенное преобразование хранимых данных и выдает преобразованные 64-битовые данные в логический блок 202 "исключающее ИЛИ" (соответствует этапу S122).

Логический блок 202 "исключающее ИЛИ" принимает 64-битовые данные от блока 203 преобразования данных, считывает данные ключа шифрования из блока 211 хранения ключей и выполняет операцию "исключающее ИЛИ" для соответствующих битов в 64-битовых данных и данных ключа шифрования, чтобы генерировать 64-битовые входные данные ключа. Логический блок 202 "исключающее ИЛИ" выдает эти входные данные ключа в блок 201 генерации данных субключей (соответствует этапу S123).

Блок 201 генерации данных субключей генерирует множество наборов данных субключей входных данных ключей и выдает каждый сформированный набор данных субключей в различные блоки дешифрирования в блоках дешифрирования от первого до шестнадцатого блока 200 дешифрирования (соответствует этапу S124).

Блок 200 дешифрирования принимает блок шифрованного текста от блока 208 деления на блоки (соответствует этапу S125), дешифрирует блок шифрованного текста, используя множество наборов данных субключей, и таким образом создает блок открытого текста (соответствует этапу S126). Блок 205 счетчика увеличивает значение отсчета на единицу (соответствует этапу S127). Блок 200 дешифрирования выдает полученный блок открытого текста в блок 209 объединения блоков (соответствует этапу S128).

Работа блока 206 управления генерацией данных субключей соответствует блоку 106 управления генерацией данных субключей, иллюстрируемой этапами от S141 до S143 блок-схемы на фиг.9, и поэтому подробно не описывается.

Работа блока 207 управления регистром соответствует работе блока 107 управления регистром, которая описана со ссылками на этапы от S151 до S153 блок-схемы, представленной на фиг.9, и поэтому дополнительно не поясняется.

Блок 204 регистра сохраняет значение в соответствии с управляющим значением, которое он получает от блока 207 управления регистром (соответствует этапу S161 в блок-схеме, представленной на фиг.9).

(3) Работа блока 205 счетчика

Работа блока 205 счетчика подобна работе блока 105 счетчика и пояснена со ссылкой на блок-схему по фиг.10.

По получении информации о завершении от блока 200 дешифрирования, показывающей, что он завершил дешифрирование одного блока зашифрованного текста, блок 205 счетчика добавляет единицу к значению отсчета (соответствует этапу S181). Когда это добавление приводит к получению отсчета 210 (соответствует этапу S181: Да), блок 205 счетчика сбрасывает значение отсчета в ноль (соответствует этапу S183).

(4) Работа блока 204 регистра

Работа блока 204 регистра подобна работе блока 104 регистра и поэтому пояснена со ссылкой на блок-схему по фиг.11.

Блок 204 регистра принимает управляющий сигнал от блока 207 управления регистром. Если принятый управляющий сигнал равен "0" (этап S201: Да) и предыдущий блок зашифрованного текста принят от блока 208 деления на блоки, блок 204 регистра сохраняет этот блок зашифрованного текста в качестве хранимых данных (соответствует этапу S202). Если принятый управляющий сигнал равен "1" (соответствует этапу S201: Нет), блок 204 регистра считывает начальное значение НЗ и записывает это начальное значение НЗ в качестве хранимых данных (соответствует этапу S203).

(5) Работа блока 201 генерации данных субключей

Работа блока 201 генерации данных субключей подобна работе блока 101 генерации данных субключей, так что в последующем описании будут отмечены различия по отношению к процедуре, соответствующей блок-схемам, показанным на фиг.12 и 13.

На этапе S235 блок 302 хранения рандомизированных данных считывает записанные данные SK0÷SK15 субключей и выдает соответствующие наборы данных субключей в соответствующие блоки дешифрирования с первого по шестнадцатый в блоке 200 дешифрирования.

На этапах S233 и S234 блок 302 хранения рандомизированных данных считывает записанные данные SК0 и SK1, устанавливает SK14=SK12=SK10=SK8=SK6=SK4=SK2=SK0 и SK15=SK13=SK11=SK9=SK7=SK5=SК3=SК1 и выдает соответствующие наборы данных SК0÷SK15 субключей в соответствующие блоки дешифрирования с первого по шестнадцатый в блоке 200 дешифрирования.

(6) Работа блока 301 рандомизации данных

Работа блока 301 рандомизации данных в блоке 201 генерации данных субключей соответствует работе блока 301 рандомизации данных в блоке 101 генерации данных субключей, которая была описана со ссылками на фиг.14, поэтому дополнительных объяснений не требуется.

3. Соответствие между открытым текстом и дешифрированным текстом

Блоки C0, С1,... зашифрованного текста получаются в результате шифрования последовательности блоков P0, P1, ... открытого текста блоком 10 шифрования данных с использованием 64-битовых данных ключей шифрования. Эти блоки зашифрованного текста дешифрируются блоком 20 дешифрирования данных с использованием тех же 64-битовых данных ключей шифрации, чтобы создать последовательность блоков D0, D1,... открытого (незашифрованного) текста, которые являются теми же самыми, что и последовательность блоков P0, Р1,... открытого текста. Это показано более подробно ниже.

Из равенств (1) и (2) и равенств (8) и (9) следует:

Из равенства (15) и равенств (3) и (10) следует:

Из равенства (16) и равенств (4) и (11) следует:

Поэтому из равенств (17) и (5) и равенств (12) и (13) может быть получено:

и из равенств (7) и (14) следует:

Следующее соотношение (равенство (20)) записано для любых 64-битовых данных α , β в функциях Еnс (шифрование) и Dec (дешифрирование):

Поэтому из равенств (19), (20) и (18) получен:

Dt=Pt

4. Оценка защищенности и скорости обработки шифрования

(1) Защищенность

В представленном варианте осуществления шифрование t-го

(где t≠ 210*k (k=0, 1,... )) блока открытого текста выполняется с использованием шестнадцати наборов 32-битовых данных SK0,... ,SK15 субключей, которые введены в блок 100 шифрования.

Как описано ранее, эти наборы данных субключей сформированы так, что SК0=SК2=SК4=... =SК14 и SК1=SК3=SК5=... =SK15, так что защищенность против известных способов криптоанализа незашифрованного текста не так высока, как в обычном способе, где каждый набор данных субключей различен.

Однако входные данные ключей IК0t, используемые для шифрования этих блоков открытого текста, установлены так, что

IK0t=ЕК(+)Ct-1

Поскольку имеется 264 потенциальных значений Ct-1, практически невозможно получить большое количество блоков открытого текста, которые были бы зашифрованы с использованием того же самого IK0t. Это делает настоящий способ защищенным против известных способов криптоанализа открытого текста.

Шифрование t-го (где t=210*k (k=0, 1,... )) блока открытого текста также выполняется с использованием шестнадцати наборов 32-битовых данных субключей SК0,... ,SK15, которые введены в блок 100 шифрования. Как описано ранее, каждый из этих наборов данных субключей различен, так что защищенность против известных способов криптоанализа открытого текста такая же, как и для описанного обычного способа.

(2) Скорость обработки шифрования

Ниже описана скорость обработки шифрования в блоке 10 шифрования данных.

При шифровании t-го (где t≠ 210*k (k=0, 1,... )) блока открытого текста Рt блок 101 генерации данных субключей выполняет простую процедуру, которая генерирует шестнадцать наборов 32-битовых данных субключей путем эффективной генерации только двух 32-битовых наборов данных субключей. Это значит, что генерация данных субключей для каждого блока имеет меньшее влияние на скорость обработки шифрования, чем в описанном обычном способе.

5. Другие модификации

Хотя настоящее изобретение было объяснено с помощью вышеприведенных вариантов осуществления, очевидно, что изобретение не ограничивается приведенными здесь деталями. Возможны различные модификации, например, как приведено ниже.

(1) В вышеописанном варианте осуществления логический блок 102 (202) "исключающее ИЛИ" описан как средство слияния данных, которое выполняет операцию "исключающее ИЛИ" для каждого бита в 64-битовых данных, созданных блоком 103(203) преобразования данных, и данных шифрования. Однако тот же эффект может быть достигнут, даже если операция "исключающее ИЛИ" не будет выполняться для каждой позиции бита.

(2) В вышеприведенном варианте осуществления блок 103 (203) преобразования данных описан как формирующий 64-битовые преобразованные данные, хотя такие данные не обязательно должны иметь длину 64 бита. Например, если данные ключа шифрования имеют длину 56 битов, то может быть использован блок преобразования данных, формирующий 56-битовые данные.

(3) В вышеприведенном варианте осуществления блок 104 (204) регистра принимает входной сигнал данных шифрованного текста, созданных непосредственно в предшествующей процедуре шифрования, хотя может быть использовано 64-битовое значение, полученное предшествующей процедуре шифрования. Например, может быть использован первый или второй промежуточный блок, сформированный в процессе шифрования. Используемые данные не обязательно должны иметь длину 64 бита, могут быть использованы более короткие данные, например 40-битовое значение.

Ниже описана возможная конфигурация с использованием 40-битовых данных. Блок 103 (203) преобразования данных принимает 40-битовые данные и преобразует эти данные для создания новых 40-битовых данных. Блок 111 хранения ключей записывает 40-битовые данные ключа шифрования. Логический блок 102 "исключающее ИЛИ" выполняет операцию "логическое ИЛИ" для соответствующих битов в новых 40-битовых данных и 40-битовых данных ключа шифрования для генерирования 40-битовых входных данных ключа. Блок 101 генерации данных субключей генерирует шестнадцать наборов 20-битовых данных субключей, которые используются при шифровании блоками шифрования с первого по шестнадцатый блока 100 шифрования.

(4) В вышеприведенном варианте осуществления блок 100 шифрования использует способ АЛБШ (FЕАL), хотя может быть использован любой способ шифрования блока. Например, может быть использован Стандарт Шифрования Данных (DES).

Блок 101 генерации данных субключей не ограничен описанным выше выполнением. Например, блок 101 генерации данных субключей может генерировать шестнадцать наборов 32-битовых данных субключей из 64-битовых входных данных ключей.

(5) Настоящее изобретение не ограничено вариантом осуществления, где блок 101 генерации данных субключей использует два типа обработки шифрования, где случайные числа генерируются с использованием различных нагрузок обработки. Может быть использована любая конфигурация, например, чтобы обработка шифрации, используемая при вводе управляющего сигнала "1", имела более интенсивную нагрузку, чем обработка шифрации, используемая при вводе управляющего сигнала "0".

Например, вместо генерации двух наборов данных субключей блок генерации данных субключей может генерировать разные данные для первых 16 битов каждого из шестнадцати наборов данных субключей, а затем генерировать последние 16 битов каждого набора данных субключей на основании соответствующих первых 16 битов. Такая обработка уменьшит нагрузку обработки генерации ключей таким же образом, как и описанная выше.

Вместо генерации двух наборов данных субключей блок генерации данных субключей может генерировать три, четыре, пять или любое другое количество, вплоть до пятнадцати, наборов данных субключей, причем каждый блок шифрования, с первого по шестнадцатый, использует один из сформированных наборов данных субключей.

(6) Блок 105 (205) счетчика сбрасывает значение отсчета в "0", когда оно достигает "210 - 1", хотя изобретение не ограничено использованием значения "210 - 1" в качестве верхнего предела для значения отсчета. Может быть использовано любое положительное целое число. Значение отсчета также не обязательно должно быть сброшено в "0".

В вышеприведенных вариантах осуществления устройства описаны как хранящие 64-битовые данные ключей шифрования. Однако устройства вместо этого могут хранить только 64-битовые данные ключа шифрования, которые используются при выполнении шифрования первый раз, причем входные данные ключей, которые используются при шифровании каждого из остальных блоков открытого текста, шифруются и передаются с блоками открытого текста. При корректировке входных данных ключей может быть использовано шифрование общедоступным ключом, такое как способ Диффи-Хелмана, чтобы распределять входные данные ключей к устройствам, осуществляющим связь.

(7) Настоящее изобретение также применимо к способу, используемому устройствами, описанными выше. Этот способ может быть реализован компьютерными программами, которые выполняются компьютерами. Такие компьютерные программы могут распространяться как цифровые сигналы.

Настоящее изобретение может быть реализовано на машиночитаемом носителе, таком как гибкий диск, жесткий диск, CD-ROM (постоянное запоминающее устройство (ПЗУ) на компакт-диске), магнито-оптический диск, цифровой видеодиск (ЦВД), ПЗУ на ЦВД, ОЗУ на ЦВД, или полупроводниковая память, в которой записаны компьютерные программы и/или цифровые сигналы, упомянутые выше. Настоящее изобретение может быть также реализовано компьютерной программой и/или цифровым сигналом, которые записаны на носителе.

Компьютерные программы или цифровые сигналы, которые реализуют настоящее изобретение, могут быть также переданы через сеть, такую как электронная сеть связи, сеть проводной или беспроводной связи или сеть Интернет.

Настоящее изобретение может быть также реализовано компьютерной системой, которая включает микропроцессор и память. В этом случае компьютерная программа может быть записана в памяти, причем микропроцессор работает в соответствии с этой компьютерной программой.

Компьютерные программы и/или цифровые сигналы могут быть предоставлены для независимой компьютерной системы путем распределения носителей данных, на которых записаны эти компьютерные программы и/или цифровые сигналы, или путем передачи компьютерных программ и/или цифровых сигналов через сеть. Независимый компьютер может затем выполнять компьютерные программы с использованием цифровых сигналов для реализации настоящего изобретения.

(8) Признаки, определяющие рассмотренный вариант осуществления и его модификации, могут свободно комбинироваться.

Хотя настоящее изобретение было описано на примерах со ссылкой на чертежи, следует отметить, что различные изменения и модификации очевидны для специалистов в данной области техники. Поэтому, если только такие изменения и модификации не выходят за пределы объема настоящего изобретения, они должны толковаться как включенные в его объем.

1. Способ шифрования для использования устройством шифрования, которое шифрует данные открытого текста, состоящие из множества блоков, включающий этапы: получения блока для получения одного из блоков внешним образом относительно устройства шифрования, причем каждый блок является блоком открытого текста, имеющим заранее определенную длину, выбора, на котором при получении блока увеличивают на единицу значение счетчика, показывающего суммарное количество полученных на этапе получения блоков, и по этому значению счетчика выбирают, какой из первого или второго процесса генерации субключа должен выполняться для блока, генерации ключа для генерации первой группы, состоящей из предварительно определенного количества n различных субключей, при выборе первого процесса генерации субключа, и второй группы, состоящей из менее чем n различных субключей, если выбран второй процесс генерации субключа, и шифрования для шифрования блока путем обработки блока с помощью n процессов преобразования по порядку, при этом когда выбран первый процесс генерации субключа, каждый из n процессов преобразования связан с другим субключом в первой группе соотношением один к одному, и выполняется с использованием связанного с ним субключа, а когда выбран второй процесс генерации субключа, каждый из n процессов преобразования связан с любым субключом во второй группе так, что каждый субключ связан с одним или более процессами преобразования, и выполняется с использованием связанного с ним субключа.

2. Способ шифрования по п.1, отличающийся тем, что на этапе выбора выбирают первый процесс генерации субключа каждый раз, когда значение счетчика равно кратному от предварительно определенной величины, и второй процесс генерации субключа, каждый раз, когда значение счетчика не равно кратному от предварительно определенной величины.

3. Способ шифрования по п.1, отличающийся тем, что на этапе шифрования шифруют блок для получения блока зашифрованного текста, имеющего предварительно определенную длину, и на этапе генерации ключа генерируют первую группу посредством применения преобразования данных к начальному значению, сохраненному в устройстве шифрования, когда выбран первый процесс генерации субключа, вторую группу посредством применения преобразования данных к начальному значению и блоку зашифрованного текста, который является последним из сгенерированных на этапе шифрования, когда выбран второй процесс генерации субключа.

4. Устройство шифрования для шифрования данных открытого текста, состоящего из множества блоков, содержащее средство получения блока для получения одного из блоков извне, причем каждый блок является данными открытого текста, имеющими предварительно определенную длину, средство выбора для увеличения на единицу значения счетчика, показывающего суммарное количество полученных блоков средством получения блока, при получении блока, и выбора по этому значению счетчика, какой из первого или второго процесса генерации субключа должен выполняться для блока, средство генерации ключа для генерации первой группы, состоящей из предварительно определенного количества n различных субключей, при выборе первого процесса генерации субключа, и второй группы, состоящей из менее чем n различных субключей, если выбран второй процесс генерации субключа, и средство шифрования для шифрования блока путем обработки блока с помощью n процессов преобразования по порядку, при этом когда выбран первый процесс генерации субключа, каждый из n процессов преобразования связан с другим субключом в первой группе соотношением один к одному, и выполняется с использованием связанного с ним субключа, когда выбран второй процесс генерации субключа, каждый из n процессов преобразования связан с любым субключом во второй группе так, что каждый субключ связан с одним или более процессами преобразования, и выполняется с использованием связанного с ним субключа.

5. Машино-читаемый носитель данных, хранящий программу шифрования для использования компьютером, который шифрует данные открытого текста, состоящие из множества блоков, причем программа шифрования содержит этапы получения блока для получения одного из блоков, внешним образом относительно компьютера, выбора, на котором при получении блока увеличивают на единицу значение счетчика, показывающего суммарное количество полученных на этапе получения блоков, и по этому значению счетчика выбирают, какой из первого или второго процесса генерации субключа должен выполняться для блока, генерации ключа для генерации первой группы, состоящей из предварительно определенного количества n различных субключей, при выборе первого процесса генерации субключа, и второй группы, состоящей из менее чем n различных субключей, если выбран второй процесс генерации субключа, и шифрования для шифрования блока путем обработки блока с помощью n процессов преобразования по порядку, при этом когда выбран первый процесс генерации субключа, каждый из n процессов преобразования связан с другим субключом в первой группе соотношением один к одному, и выполняется с использованием связанного с ним субключа, а когда выбран второй процесс генерации субключа, каждый из n процессов преобразования связан с любым субключом во второй группе так, что каждый субключ связан с одним или более процессами преобразования, и выполняется с использованием связанного с ним субключа.

6. Способ дешифрирования для использования устройством дешифрирования, которое дешифрирует данные, состоящие из множества блоков зашифрованного текста, включающий этапы: получения блока для получения одного из блоков зашифрованного текста, внешним образом относительно устройства дешифрирования, выбора, на котором при получении блока зашифрованного текста увеличивают на единицу значение счетчика, показывающего суммарное количество полученных на этапе получения блоков зашифрованного текста, и по этому значению счетчика выбирают, какой из первого или второго процесса генерации субключа должен выполняться для блока зашифрованного текста, генерации ключа для генерации первой группы, состоящей из предварительно определенного количества n различных субключей, при выборе первого процесса генерации субключа, и второй группы, состоящей из менее чем n различных субключей, если выбран второй процесс генерации субключа, и дешифрирования для дешифрирования блока зашифрованного текста путем обработки блока зашифрованного текста с помощью п процессов преобразования по порядку, при этом когда выбран первый процесс генерации субключа, каждый из n процессов преобразования связан с другим субключом в первой группе соотношением один к одному, и выполняется с использованием связанного с ним субключа, а когда выбран второй процесс генерации субключа, каждый из n процессов преобразования связан с любым субключом во второй группе так, что каждый субключ связан с одним или более процессами преобразования, и выполняется с использованием связанного с ним субключа.

7. Способ дешифрирования по п.6, отличающийся тем, что на этапе выбора выбирают первый процесс генерации субключа, каждый раз когда значение счетчика равно кратному от предварительно определенной величины, второй процесс генерации субключа, каждый раз, когда значение счетчика не равно кратному от предварительно определенной величины.

8. Способ дешифрирования по п.7, отличающийся тем, что на этапе генерации ключа генерируют первую группу посредством применения преобразования данных к начальному значению, сохраненному в устройстве дешифрирования, когда выбран первый процесс генерации субключа, вторую группу посредством применения преобразования данных к начальному значению и блоку зашифрованного текста, который является последним из полученных на этапе получения, когда выбран второй процесс генерации субключа.

9. Устройство дешифрирования, которое дешифрирует данные зашифрованного текста, состоящие из множества блоков зашифрованного текста, содержащее средство получения блока для получения одного из блоков зашифрованного текста извне, средство выбора для увеличения на единицу значения счетчика, показывающего суммарное количество полученных блоков зашифрованного текста на этапе получения блока, при получении блока зашифрованного текста, и выбора по этому значению счетчика, какой из первого или второго процесса генерации субключа должен выполняться для блока зашифрованного текста, средство генерации ключа для генерации первой группы, состоящей из предварительно определенного количества n различных субключей, при выборе первого процесса генерации субключа, и второй группы, состоящей из менее чем n различных субключей, если выбран второй процесс генерации субключа, и средство дешифрирования для дешифрирования блока зашифрованного текста путем обработки блока зашифрованного текста с помощью n процессов преобразования по порядку, при этом когда выбран первый процесс генерации субключа, каждый из n процессов преобразования связан с другим субключом в первой группе соотношением один к одному, и выполняется с использованием связанного с ним субключа, а когда выбран второй процесс генерации субключа, каждый из n процессов преобразования связан с любым субключом во второй группе так, что каждый субключ связан с одним или более процессами преобразования, и выполняется с использованием связанного с ним субключа.

10. Машино-читаемый носитель данных, хранящий программу дешифрирования для использования компьютером, который дешифрирует данные зашифрованного текста, состоящие из множества блоков зашифрованного текста, причем программа дешифрирования включает этапы получения блока для получения одного из блоков зашифрованного текста, внешним образом относительно компьютера, выбора, на котором при получении блока зашифрованного текста увеличивают на единицу значение счетчика, показывающего суммарное количество полученных на этапе получения блоков зашифрованного текста, и по этому значению счетчика выбирают, какой из первого или второго процесса генерации субключа должен выполняться для блока зашифрованного текста, генерации ключа для генерации первой группы, состоящей из предварительно определенного количества n различных субключей, при выборе первого процесса генерации субключа, и второй группы, состоящей из менее чем n различных субключей, если выбран второй процесс генерации субключа, и дешифрирования для дешифрирования блока зашифрованного текста путем обработки блока с помощью n процессов преобразования по порядку, при этом когда выбран первый процесс генерации субключа, каждый из n процессов преобразования связан с другим субключом в первой группе соотношением один к одному, и выполняется с использованием связанного с ним субключа, а когда выбран второй процесс генерации субключа, каждый из n процессов преобразования связан с любым субключом во второй группе так, что каждый субключ связан с одним или более процессами преобразования, и выполняется с использованием связанного с ним субключ.



 

Похожие патенты:

Изобретение относится к радиосвязи, в частности к передаче данных в системе ММТ 2000. .

Изобретение относится к устройству и способу канального кодирования и мультиплексирования в системе мобильной связи, в котором множество транспортных канальных кадров преобразуется в множество физических канальных кадров.

Изобретение относится к области электросвязи и вычислительной техники, а конкретнее к области криптографических способов и устройств для шифрования данных. .

Изобретение относится к криптографии и средствам защиты информации

Изобретение относится к области радиосвязи, а именно способу и устройству для шифрования сигналов для передачи

Изобретение относится к области криптографии

Изобретение относится к секретной связи, а именно, к устройству и способу криптографической обработки

Изобретение относится к секретной связи, а именно к способу проверки целостности шифровального ключа

Изобретение относится к передаче данных, а именно, к способу скремблирования потока данных

Изобретение относится к шифровальным устройствам на основе стандарта шифрования данных, более конкретно к шифрованию данных по стандарту ГОСТ 28147-89 и AES. Техническим результатом предлагаемого изобретения является сокращение объема памяти, необходимой для шифрования данных по стандартам ГОСТ 28147-89 и AES, т.е. сокращение аппаратных затрат. Объединенное устройство шифрования данных по стандартам ГОСТ 28147-89 и AES содержит: схему преобразования по ГОСТ 28147-89, схему преобразования по AES, блок преобразования ключа по AES, первый мультиплексор МХ1, второй мультиплексор МХ2, накопитель данных размером IDS и накопитель ключа размером IKS. 2 табл., 3 ил.

Изобретение относится к шифровальным устройствам на основе стандарта шифрования данных. Техническим результатом является повышение тактовой частоты устройства шифрования данных. Устройство раунда, реализующее последовательность действий для каждого раунда шифрования данных, содержит блок суммирования CM1, блок подстановки K, блок сдвига R, дополнительный регистр PREG. С учетом использования дополнительного регистра максимальная тактовая частота в схеме прохождения данных определяется максимальной задержкой в блоке CM1 и в блоках S и R. 3 ил.
Наверх