1. Область техники
Настоящее изобретение относится к способу и устройству для шифрования сигналов для передачи.
2. Описание предшествующего уровня техники
Для поставщиков услуг в области радиосвязи является желательным иметь возможность проверить, что запрос на услуги связи от удаленной станции исходит от санкционированного пользователя. В некоторых современных сотовых телефонных системах, например в системах, использующих аналоговую технологию стандарта AMPS (усовершенствованной мобильной телефонной службы), не предусмотрено никаких мер для предотвращения несанкционированного доступа к системе. Поэтому в таких системах распространено несанкционированное использование. Одним из несанкционированных путей доступа к обслуживанию является клонирование, при котором несанкционированный пользователь перехватывает информацию, необходимую для инициирования вызова. После этого несанкционированный пользователь может запрограммировать мобильный радиотелефон с помощью перехваченной информации и использовать этот аппарат для незаконного получения услуг телефонной связи.
Для решения этих и других проблем многие системы сотовой телефонной связи внедрили схемы аутентификации, такие как схема, предложенная в стандарте EIA/TIA/IS-54-B Ассоциации промышленности средств связи. Одним из признаков этой схемы аутентификации является шифрование передаваемой через эфир информации, необходимой для получения услуг связи. Эту информацию шифруют с помощью алгоритма шифрования сотового сообщения (АШСС). Алгоритм АШСС описан в патенте США 5159634 на изобретение "Криптосистема для сотовой телефонной связи", упоминаемом здесь для сведения.
Однако алгоритм АШСС обладает рядом недостатков, которые позволяют расшифровать зашифрованную информацию с помощью современной стандартной вычислительной техники за относительно короткое время. Эти недостатки будут подробно изложены ниже, после чего будет описано изобретение, позволяющее их устранить. Алгоритм АШСС был опубликован в Интернет, поэтому его недостатки может изучить любое заинтересованное лицо. Следовательно, существует потребность в новом алгоритме для замены АШСС, который бы позволил исключить возможность перехвата и несанкционированного использования аутентификационной информации, необходимой для инициирования услуги сотовой связи.
Сущность изобретения
Согласно одному аспекту изобретения предложен способ преобразования совокупности сигналов сообщения, представляющей сообщение для передачи по системе связи, заключающийся в том, что осуществляют первое кодирование одного из совокупности сигналов сообщения в соответствии с первым преобразованием по ключу, осуществляют второе кодирование упомянутого одного из совокупности сигналов сообщения в соответствии с, по меньшей мере, одним дополнительным преобразованием по ключу, осуществляют третье кодирование упомянутого одного из совокупности сигналов сообщения в соответствии с самоинвертирующим преобразованием, при котором изменяют, по меньшей мере, один из совокупности сигналов сообщения, осуществляют четвертое кодирование упомянутого одного из совокупности сигналов сообщения в соответствии с, по меньшей мере, одним дополнительным инверсным преобразованием по ключу, причем каждое из, по меньшей мере, одного дополнительного инверсного преобразования по ключу является соответствующей инверсией упомянутого, по меньшей мере, одного дополнительного преобразования по ключу, осуществляют пятое кодирование упомянутого одного из совокупности сигналов сообщения в соответствии с первым инверсным преобразованием по ключу, которое является инверсией упомянутого первого преобразования по ключу.
Согласно другому спектру изобретения предложен способ шифрования сигналов для передачи, заключающийся в том, что сигналы кодируют путем применения к ним ряда преобразований, представляющего собой заранее определенную комбинацию преобразований по ключу, самоинвертирующих преобразований и/или инверсных преобразований по ключу.
Согласно следующему аспекту изобретения предложено устройство для шифрования сигналов для передачи, содержащее множество кодирующих каскадов, предназначенных для подлежащих передаче сигналов, путем применения соответствующего ряда преобразований, являющегося заранее определенной комбинацией преобразований по ключу, самоинвертирующих преобразований и/или инверсных преобразований по ключу.
Кодирование по методу блочного шифрования с переменной длиной (БШПД), предлагаемое в данном изобретении, позволяет преодолеть перечисленные выше недостатки алгоритма АШСС. Предпочтительный вариант изобретения характеризуется свойствами:
- шифруются блоки переменной длины, предпочтительно длиной по меньшей мере два байта;
- осуществляется самоинвертирование,
- используется очень малый объем динамической памяти и всего 512 байтов статических таблиц,
- возможна оценка с помощью 8-разрядных микропроцессоров,
- используется 64-битный ключ, который можно просто модифицировать для использования более длинного или короткого ключа.
Первый недостаток алгоритма АШСС заключается в том, что таблица секретности и шифрования речи для аутентификации в сотовой системе связи (СШРА), используемая для табличных поисков, не является полной. Она дает только 164 разных значений вместо 256. Наличие большого числа невозможных значений позволяет предположить возвратные значения tbox () или ключевых байтов и проверить эти предположения. В предлагаемом изобретении предлагается устранить этот недостаток путем замены таблицы СШРА двумя разными таблицами, выбранными таким образом, чтобы исключить используемые статистические характеристики таблицы СШРА. Эти таблицы, именуемые далее как t1box и t2box, являются строгими перестановками 256 8-битных целых чисел, причем ни одна из записей не находится в своем собственном индексном положении. Кроме того, t1box [i] не равно t2box [i] для всех значений i. Эти две таблицы были сформированы произвольно, причем все кандидаты, не отвечающие вышеуказанным критериям, были отброшены.
Второй недостаток АШСС заключается в повторном использовании значения функции, именуемой tbox (), оцениваемой нулем. Значение tbox (0) используется дважды при шифровании первого байта. Это дает возможность угадать tbox (0) и использовать это предположение для определения другой информации в процессе шифрования, в частности результат первого этапа АШСС для последнего байта и параметры двух значений tbox (0), используемых при шифровании второго байта. Это также позволяет с помощью решения выбранного открытого текста определить tbox() путем проб разных значений открытого текста до тех пор, пока в зашифрованном тексте не возникнет какая-либо распознанная комбинация. Этот второй недостаток устранен в изобретении путем замены самоинвертирующих процедур, используемых в АШСС, на предпочтительный набор процедур, обеспечивающих лучшее смешивание. Это реализуется путем ввода второго прогона с использованием другой таблицы (t2box). В этой ситуации имеется два значения tbox (), полученных из разных таблиц равной значимости, которые служат для маскировки друг друга.
Еще одна проблема АШСС состоит в том, что информацию, полученную при анализе текстов разной длины, как правило, можно объединить. Использование второй критичной записи tbox () в БШПД зависит от длины сообщения и делает объединение анализа текстов разной длины менее возможным.
Третья проблема АШСС заключается в неполном смешивании записей верхнего буфера. Последние n/2 байтов открытого текста шифруются путем простого прибавления одного значения tbox () и вычитания другого значения, причем этот промежуточный этап влияет только на первую половину байтов. Различие между зашифрованным и открытым текстом представляет собой различие между двумя значениями tbox (). В БШПД эта третья проблема решается за счет осуществления пяти прогонов по данным вместо трех. Смешивание, выполняемое в АШСС только в среднем прогоне, выполняется во втором и четвертом прогонах, в которых данные смешиваются от конца буфера по направлению к его началу. Средний прогон в АШСС также гарантирует изменение по меньшей мере некоторых байтов, чтобы не позволить расшифровать третий прогон. В БШПД эта цель достигается в среднем прогоне путем выполнения зависимого от ключа преобразования буфера таким образом, что, по меньшей мере, один байт остается неизменным.
Четвертый недостаток АШСС заключается в отсутствии шифрования младшего разряда (МР) первого байта. Многократное использование tbox (0) и фиксированной инверсии МР на втором этапе АШСС приводит к тому, что МР первого байта шифрованного текста является просто инверсией МР первого байта открытого текста. В БШПД эта четвертая проблема решается с помощью зависимого от ключа изменения буфера во время среднего прогона, что делает МР первого байта непредсказуемым в буферах длиной два байта или больше.
Пятый недостаток АШСС состоит в том, что эффективный размер ключа составляет не 64, а 60 бит. Каждый ключ, как таковой, эквивалентен 15 другим. В БШПД увеличено число табличных поисков и уменьшено число арифметических операций, что делает все 64 бита ключа старшими разрядами.
И наконец, функция tbox () в АШСС может быть эффективно решена по методу пересечения в середине. После получения четырех значений tbox () можно осуществить решение с требованиями по времени и пространству порядка 2^30, независимо от состава таблицы СШРА. В БШПД эта проблема решается несколькими способами. Конструкция функции tbox () восстанавливает два неиспользованных бита ключа. Повторение комбинации с, по меньшей мере, 8 битами шифровального ключа в начале и конце tbox () означает, что минимальное вычисление и пространство должны быть увеличены на восемь бит. Поскольку имеется две стороны в каждой таблице и две разные таблицы, минимальная сложность должна быть увеличена на два других бита, что приведет к минимальной потребности в пространстве и времени порядка 2^2. Кроме того, решение АШСС по методу пересечения в середине требует восстановления, по меньшей мере, некоторых из записей tbox (). Это значительно усложняется при использовании БШПД, где требуется одновременное решение двух отдельных групп значений tbox (), маскирующих друг друга.
Краткое описание чертежей
В дальнейшем изобретение поясняется описанием примеров его воплощения со ссылкой на прилагаемые чертежи, на которых
фиг.1 изображает структурную схему системы шифрования согласно изобретению,
фиг.2 изображает алгоритм примерного варианта способа шифрования блока знаков согласно изобретению,
фиг.3 иллюстрирует программу "С", в которой реализован примерный вариант способа шифрования блока знаков,
фиг.4 - примерный вариант t1box,
фиг.5 - примерный вариант t2box.
Подробное описание предпочтительных вариантов реализации изобретения
Изображенный на фиг.1 примерный вариант реализации изобретения состоит из первой станции 1000, которая шифрует данные для радиопередачи на вторую приемную станцию 2000. Первая станция 1000 может быть удаленной станцией, ведущей передачу в сторону второй станции 2000, которая может быть базовой станцией. Альтернативно, первой станцией 1000 может быть базовая станция, ведущая передачу в сторону второй станцию 2000, которая может быть удаленной станцией. По всей вероятности, обе эти станции имеют средства шифрования и дешифрования, а также средства передачи и приема, однако на упрощенной схеме системы на фиг.1 показаны только элементы, необходимые для реализации данного изобретения. Кроме того, специалистам будет понятно, что преимущества изобретения не ограничены только областью радиосвязи и могут быть легко применены в любой ситуации, где требуется передавать засекреченные данные по какой-либо среде.
Как видно на фиг.1, память 10, содержащая данные, необходимые для шифрования в соответствии с алгоритмом БШПД, воплощающим данное изобретение, соединена с процессором 20. В данном примерном варианте процессор 20 представляет собой относительно простой 8-разрядный микропроцессор, способный выполнять команды, хранимые в коде БШПД 19. Процессор 20 содержит арифметико-логическое устройство (АЛУ, не показан на чертеже), способное выполнять простые 8-разрядные операции, такие как побитовое исключающее ИЛИ (обозначаемое символом ⊕), сложение и вычитание целых чисел и т.п. Процессор 20 также выполнен с возможностью выполнения общих команд в процессе выполнения программы и загрузки, и сохранения значений из памяти, такой как память 10. Специалистам будет понятно, что эти требования довольно минимальные, что делает изобретение вполне пригодным для применения в тех ситуациях, где требования к размеру и/или стоимости делают желательным использование простых микропроцессоры, например, в портативных устройствах. Понятно, что изобретение может быть реализовано и с применением более мощных микропроцессоров.
Память 10 содержит таблицы t1box 12 и t2box 14, шифровальный ключ 16 и код 19 (код БШПД), подлежащий выполнению. Данные для шифрования вводятся в процессор 20, который сохраняет эти данные в памяти 10 в участке, называемом данные 18. Несмотря на то что на фиг.1 все эти элементы показаны в виде одного запоминающего устройства, следует понимать, что можно использовать несколько запоминающих устройств. В предпочтительном варианте таблицы 12 и 14, а также код БШПД 19 хранятся в энергонезависимой памяти, такой как ЭСППЗУ или флэш-память. Нет необходимости делать эти части памяти записываемыми.
Шифровальный ключ 16 можно сформировать с помощью ряда средств, хорошо известных в данной области. Одним из простых вариантов может быть ключ 16 в энергонезависимой памяти, который программируется в момент активизации станции для обслуживания. В этом примерном варианте ключ 16 формируется и изменяется в соответствии с протоколом, описанным в упомянутом выше стандарте EIA/TIA/IS-54-B.
Подлежащие шифрованию данные 18 запоминаются в оперативном запоминающем устройстве (ОЗУ). Шифрование будет выполняться "на месте", что означает, что те же участки памяти, которые хранят незашифрованные данные в начале процедуры, будут также хранить их промежуточные значения и окончательные зашифрованные данные.
Данные 18 шифруются в процессоре 20 в соответствии с кодом БШПД 19 с использованием t1box 12, t2box 14 и шифровального ключа 16. Процесс шифрования будет подробно описан ниже.
Зашифрованные данные 18 передаются процессором 20 в передатчик 30, где они модулируются, усиливаются и преобразуются с повышением частоты для передачи с антенны 40. Антенна 50 принимает данные и передает их в приемник 60, где эти данные преобразуются с понижением частоты, усиливаются, демодулируются и передаются а процессор 70. В данном примерном варианте используется формат радиосвязи между двумя станциями, показанными на фиг.1, описанный в "Стандарте совместимости подвижной станции с базовой станцией для двухрежимной широкополосной сотовой системы с расширенным спектром" TIA/EIA/IS-95-A. Использование методов МДКР в системе связи с множественным доступом, такой как радиотелефонная система, описано в патенте США 4901307 на изобретение "Система связи с множественным доступом и расширенным спектром, с использованием спутниковых или наземных ретрансляторов", принадлежащем заявителю настоящей заявки и упоминаемом здесь для сведения. Использование методов МДКР в системе с множественным доступом описано в патенте США 5103459 на изобретение "Система и способ для формирования сигналов в сотовой телефонной системе МДКР", также принадлежащей заявителю данного изобретения и упоминаемой здесь для сведения.
Процессор 70, к которому предъявляются те же требования, что и к процессору 20, подсоединен к памяти 80. Память 80 состоит из блоков памяти 82, 84, 86, 88 и 89, которые аналогичны блокам памяти 12, 14, 16, 18 и 19. Процессор 70 сохраняет зашифрованные данные в памяти 88 данных. Ключ 86 определяется так же, как ключ 16, описанный ранее. Таблицы 82 и 84 идентичны таблицам 12 и 14. Поскольку обработка данных в настоящем изобретении осуществляется самоинвертируемым способом, код БШПД 89, идентичный коду БШПД 19, выполняется в процессоре 70 вместе с t1box 82, t2box 84 и ключом 86 на зашифрованных данных так же, как это делалось в процессе шифрования данных 18. Как и ранее, обработка данных выполняется "на месте", в результате чего данные 88 становятся дешифрованными данными. Процессор 70 извлекает дешифрованные данные из памяти 80 и передает их для последующего использования через выход данных. В этом примерном варианте результирующие данные будут использованы в процедурах аутентификации, описанных в EIA/TIA/IS-54-B.
На фиг.2 показан алгоритм выполнения способа процессорами 20 и 70 вместе с ранее описанными элементами 10 и 80 памяти соответственно. Как упоминалось ранее, процесс шифрования является самоинвертируемым, что означает, что процесс дешифрования аналогичен процессу шифрования. Поэтому подробно будет описан только процесс шифрования. В процессе дешифрования блоки шифрования по фиг.1 будут заменены аналогичными блоками дешифрования, как отмечалось выше.
Блок 99 иллюстрирует начало процесса шифрования. Группа знаков, обозначенная buf [], используется для описания подлежащих шифрованию знаков, записанных в памяти 18 данных. Переменная n означает длину подлежащего шифрованию сообщения, выраженную в виде числа знаков. Как указывалось ранее, одно из усовершенствований, обеспечиваемых процессом БШПД, заключается в том, что выполняется пять прогонов шифрования. Каждый из этих прогонов заключен в рамку, образованную штриховыми линиями, и обозначен от 1 до 5, чтобы можно было легко различить прогоны. Каждый прогон имеет заметные сходства и различия. В прогонах 1, 3 и 5 используется таблица t1box 12 и процесс идет от начала буфера к концу. В прогонах 2 и 4 используется таблица t2box 14 и процесс идет от конца буфера к его началу. Свойство самоинвертирования в БШПД обеспечивается тем, что прогон 3 является самоинвертируемым, прогон 1 является инверсией прогона 5 и прогон 2 является инверсией прогона 4.
В предпочтительном варианте прогоны выполняются в противоположных направлениях. В альтернативных вариантах прогоны могут идти в одном и том же направлении, при этом в чередующихся прогонах используются одни и те же или разные таблицы (повторное использование одной и той же таблицы в нескольких прогонах повышает защиту шифрования, но не настолько, как при использовании разных таблиц). Еще одной альтернативой, которую можно использовать в комбинации с любым прогоном, является ввод дополнительных прогонов. В ситуации, когда прогоны выполняются в одном и том же направлении, модификации в первой записи буфера более предсказуемы, но предсказуемость снижается с каждой следующей модификацией, выполняемой далее по буферу. Когда используются переменные противоположные направления прогонов, модификация в первом байте буфера вполне предсказуема. Однако модификация этого же байта во втором прогоне зависит от всех байтов в буфере, что делает ее гораздо менее предсказуемой. Аналогичным образом, модификация последнего байта в буфере зависит от всех байтов в буфере во время первого прогона, а более предсказуемое изменение делается во втором. Поскольку предсказуемость изменения распределяется более равномерно, если использовать прогоны в противоположных направлениях, то это гораздо предпочтительнее, чем использование многократных прогонов в одном и том же направлении. Следует отметить, что прогон 3 реально не имеет направления, поскольку внесенное изменение будет идентичным в любом случае.
В каждом прогоне используется функция, tbox (). Именно в эту функцию вводится ключ 16. Параметры, передаваемые в функцию tbox (), состоят из таблицы объемом 256 байтов, которая представляет собой переданную t1box 12 или t2box 14, и индекса, обозначенного tv. В данном примерном варианте tbox () определяется как
где k0-k7 означает восемь 8-битных сегментов, которые при сцеплении образуют 64-битный ключ 16,
В [х] - х-тый 8-разрядный элемент матрицы В,
⊕ - побитовая операция исключающее ИЛИ,
+ - сложение по модулю 256.
В альтернативном варианте, если ключ определенной длины обеспечивает шифрование, признаваемое слишком сильным, силу ключа можно искусственно ограничить без изменения его длины путем изменения функции tbox (). Например, 64-битный ключ можно искусственно ограничить до 40 бит, используя 64-битный ключ таким образом, чтобы он находился в классе эквивалентности 2^24 других, но при этом гарантируют, чтобы любое битовое изменение в ключе давало другой результат. Следующее определение tbox () демонстрирует изменение, рекомендуемое для эффективного преобразования 64-битного ключа в 40-битный ключ:
где k0-k7 означает восемь 8-битных сегментов, которые после сцепления образуют 64-битный ключ 16,
В [х] - х-тый 8-битный элемент матрицы В,
⊕ - побитовую операцию исключающее ИЛИ,
+ - сложение по модулю 256.
Функция tbox () разработана таким образом, что каждая из промежуточных операций является перестановкой, а это означает, что каждый ввод имеет взаимно-однозначное соответствие с результатом. В примерном варианте используются операции сложения по модулю 256 и логическое исключающее ИЛИ. Если входное значение, переданное в tbox (), является перестановкой и табличный поиск - тоже, то использование этих функций гарантирует, что результат tbox () будет также взаимно-однозначной функцией. Иными словами, функция tbox () в целом гарантированно является перестановкой, если таковой является также и переданная в нее таблица. Этого не наблюдается в АШСС, где этапы в функции tbox () не являются взаимно-однозначными. Следовательно, если бы даже таблица СШРА в АШСС, которая не является перестановкой, была заменена таблицей, являющейся перестановкой, результат tbox () все равно не был бы перестановкой. В БШПД любой выбор взаимно однозначных функций для объединения материала ключа в целях формирования окончательной перестановки будет приемлемым. Одним из таких методов является данный примерный вариант. Специалисты смогут легко найти другие альтернативные метолы, не выходящие за рамки данного принципа перестановки. В функции tbox () можно альтернативно использовать промежуточные функции, в которых не сохраняется взаимно-однозначное соответствие результата, но их результаты будут ниже оптимальных.
Следующее усовершенствование, включенное в определение tbox (), состоит в том, что некоторые из битов ключа используются как в начале, так и в конце. В данном примерном варианте используется ключевой байт k0, но в альтернативных вариантах можно использовать любые ключевые биты и получить те же преимущества. Использование одного и того же значения позволяет исключить решение по методу пересечения в середине. Отсутствие повторного использования некоторой информации ключа как в начале, так и в конце позволяет прямое, хотя и сложное с точки зрения вычислений получение ключа из небольшого числа значений функции tbox (). При таком повторном использовании таблицы, используемые при попытках нарушения защиты шифрования, требуют гораздо больше пространства, а вычисления, необходимые для нахождения решения, должны быть намного экстенсивнее.
В примерном варианте БШПД подробно описывается использование функции tbox () вместе с двумя таблицами t1box и t2box. Полученные результаты являются зависимыми от ключа перестановками возможных входных данных. Но поскольку значения функции зависят только от ключа, а не от данных, можно альтернативно предварительно вычислить эту функцию для 256 возможных входных данных и двух возможных таблиц, сохранив результаты в памяти. Следовательно, переоценку функции может заменить табличным поиском. Специалистам в данной области будет понятно, что эти два способа функционально эквивалентны и что при применении данного варианта изобретения можно идти на компромисс, выбирая между временем и пространством. Эквивалентная альтернатива заключается в том, чтобы начать с таблиц, инициализированных с перестановки 256 возможных входных данных, и выполнить зависимую от ключа перетасовку этих таблиц при инициализации этого ключа. Тогда во время последующего шифрования будет с равным эффектом использоваться работа с индексной таблицей вместо текущих обращений к tbox ().
Таблицы t1box и t2box являются строгими перестановками, где ни одна из записей в таблице не равна своему индексу. Эта строгость гарантирует, что не существует ключа, который был бы слабее, чем любой другой ключ, что позволяет промежуточному значению при вычислении tbox () оставаться неизменным. Как было сказано ранее при описании функции tbox (), важно, чтобы эти таблицы были перестановками. Если бы таблицы не были перестановками, то после табличного поиска в функции tbox () возникали бы некоторые значения, которые не могли бы быть результатом. Эти невозможные значения позволили бы исключить отгадывание возвратных значений из tbox () и частей ключа, что значительно уменьшило бы работу по отгадыванию 64-разрядного ключа. В альтернативных вариантах можно использовать таблицы, не являющиеся перестановками, но такое шифрование будет хуже оптимального.
Любая форма криптографического анализа АШСС должна начинаться с определения значений функции tbox (). Полный анализ, где известны все результаты для 256 возможных входных данных, позволяет применять АШСС, даже не зная начального ключа. Однако этот ключ можно восстановить, зная всего четыре разных значения функции. Поэтому в БШПД придается особое значение маскировке результатов tbox () другими результатами, в частности значением tbox(O). Предусмотрен ряд альтернатив для выполнения этой маскировки. В предпочтительном варианте используется вторая отличная таблица t2box и добавочная пара прогонов, каждый из которых выполняется в противоположном направлении. Любая из этих трех модификаций или их подкомбинаций позволит в определенной степени решать проблему. Однако самый высокий уровень защиты обеспечивает комбинация всех трех модификаций.
В предпочтительном варианте в прямом и обратном прогонах используются разные таблицы t1box и t2box в совокупности с функцией tbox (). Это делается таким образом, чтобы при криптографическом анализе потребовалось раскрыть не одну, а две вспомогательные группы значений функции. Поскольку прогоны имеют тенденцию к взаимной маскировке, две таблицы обеспечивают оптимальную защиту. Можно предусмотреть альтернативные варианты, в которых используется только одна таблица. Хотя такие способы все еще надежны, их надежность ниже, чем при использовании двух таблиц.
Прогон 1 идет от блока 99 к блоку 102, где переменная v и индекс буфера i инициализируются с нуля. Затем в блоке 104 каждый знак buf [i] модифицируется путем прибавления к нему результата функции вызов tbox (t1box, v⊕i). Переменная v затем обновляется в операции исключающее ИЛИ над ней и новым значением buf [i]. После этого увеличивается индекс i буфера. В блоке 106, если i<n, выносится решение, что прогон не закончен, и процесс возвращается к блоку 104. После изменения всех знаков согласно блоку 104, i будет равно n и прогон 1 будет завершен. Следует отметить, что знаки модифицируются, начиная с buf [0] в направлении конца, buf [n-1].
Прогон 2 идет от блока 106 к блоку 202, где переменная v инициализируется на значении n, а индекс буфера i инициализируется на значении n-1. Затем в блоке 204 каждый знак buf [i] модифицируется путем прибавления к нему результата функции вызов tbox (t2box, v⊕i). Затем переменная v обновляется с помощью операции исключающее ИЛИ над ней и новым значением buf [i]. Индекс буфера i уменьшается. В блоке 206, если i≥0, выносится решение, что прогон не закончен, и процесс возвращается в блок 204. После модификации всех знаков согласно блоку 204 i будет равно -1 и прогон 2 будет закончен. Следует отметить, что в отличие от прогона 1 знаки модифицируются, начиная с buf [n-1], процесс идет в направлении начала, buf [0], и используется таблица t2box 14 вместо таблицы t1box 12.
Прогон 3 начинается в блоке 302. Индекс i буфера инициализируется с нуля. Переменная v в этом прогоне не используется. Затем в блоке 304 каждый знак buf [i] модифицируется с помощью операции исключающее ИЛИ над ним и результатом функции вызов tbox (t1box, i+1). Затем увеличивается индекс i буфера. В блоке 306, если i<n, выносится решение, что прогон не закончен, и процесс возвращается в блок 304. После модификации всех знаков согласно блоку 304 i будет равно n и прогон 3 будет закончен. Следует отметить, что, как и в прогоне 1, знаки модифицируются, начиная с buf [0] по направлению к концу, buf [n-1], и используется таблица tibox 12. Как указывалось выше, направление прогона 3 не играет роли, так как при любом направлении достигается идентичный результат.
В прогоне 3 с каждой записью buf [0] суммируется другой результат из tbox (). Так как результаты из tbox () образуют перестановку, максимум только одно такое значение может быть нулем. Будет или не будет нуль, зависит от ключа. В БШПД изменение в буфере зависит от ключа и его очень трудно предсказать. В среднем, шанс того, что одно из значений будет нулем, равен n/256, где n - длина буфера. Для обеспечения шифрования достаточно любого самоинвертируемого, зависимого от ключа или от данных изменения, которое гарантирует, что значения в буфере будут изменены. Это усовершенствование БШПД имеет большую важность, так как в АШСС оставшиеся без изменения значения приводят к случаям, когда алгоритм вообще не шифрует.
Прогон 4 идет от блока 306 к блоку 402, где v инициализируется на значении n, а индекс буфера i инициализируется на значении n-1. Затем в блоке 404 временной переменной t назначается значение, возвращенное функцией вызов tbox (t2box, v⊕i). Переменная v обновляется с помощью операции исключающее ИЛИ над ней и текущим значением buf [i]. Каждый знак buf [i] модифицируется путем вычитания из него значения временной переменной t. Затем уменьшается индекс буфера i. В блоке 406, если i≥0, выносится решение, что прогон не завершен, и процесс возвращается к блоку 404. После изменения всех знаков согласно блоку 404 i будет равно -1 и прогон 4 будет завершен. Следует отметить, что подобно прогону 2 знаки модифицируются, начиная с buf [n-1] по направлению к началу, buf [0], и используется таблица t2box 14.
Прогон 5 идет от блока 406 к блоку 502, где переменная v и индекс i буфера инициализируются на нулевом значении. Затем в блоке 504 временной переменной t назначается значение, возвращенное функцией вызов tbox (t1box, v⊕i). Переменная v модифицируется с помощью операции Исключающее ИЛИ над ней и текущим значением buf [i]. Затем каждый знак buf [i] модифицируется путем вычитания из него значения временной переменной t. Уменьшается индекс i буфера. В блоке 506, если i<n, выносится решение, что прогон не закончен, и процесс возвращается в блок 504. После изменения всех знаков согласно блоку 504 i будет равно n и прогон 5 будет закончен. Следует отметить, что подобно прогонам 1 и 3 знаки модифицируются, начиная с buf [n-1] в направлении начала, buf [0], и используется таблица t1box 12.
Далее переходим к блоку 600. Теперь шифрование закончено. Buf [] теперь содержит зашифрованные знаки для засекреченной передачи.
Программа "С", реализующая описанную выше операцию, показана на фиг.3. Таблица t1box 12 для программы "С" показана на фиг.4. Таблица t2box 14 для программы "С" показана на фиг.5.
Представленное выше описание предпочтительных вариантов реализации изобретения позволит любому специалисту в данной области осуществить или использовать изобретение. Для специалистов будут очевидны разные модификации этих вариантов, а описанные основные принципы могут быть применены в других вариантах без использования творческих усилий. Поэтому изобретение не ограничено описанными вариантами, а имеет самый широкий объем притязаний в соответствии с описанными принципами и существенными признаками.
Изобретение относится к области радиосвязи, а именно способу и устройству для шифрования сигналов для передачи. Сущность изобретения состоит в том, что в процессе шифрования осуществляют пять прогонов шифрования в соответствии с кодом блочного шифрования с переменной длиной с использованием первой и второй таблиц шифрования и шифровального ключа, осуществляют первый прогон шифрования одного из совокупности сигналов сообщения в соответствии с первым преобразованием по шифровальному ключу, осуществляют второй прогон шифрования одного из совокупности сигналов сообщения в соответствии с, по меньшей мере, одним дополнительным преобразованием по шифровальному ключу, осуществляют третий прогон шифрования одного из совокупности сигналов сообщения в соответствии с самоинвертирующим преобразованием, при котором изменяют, по меньшей мере, одно из совокупности сигналов сообщение, осуществляют четвертый прогон шифрования одного из совокупности сигналов сообщения в соответствии с, по меньшей мере, одним дополнительным инверсным преобразованием по шифровальному ключу, которое является инверсией одного дополнительного преобразования по шифровальному ключу, осуществляют пятый прогон шифрования одного из совокупности сигналов собщения в соответствии с первым инверсным преобразованием по шифровальному ключу, которое является инверсией первого преобразования по шифровальному ключу. Технический результат заключается в исключении перехвата и несанкционированного использования шифрованной информации. 8 н. и 44 з.п. ф-лы, 5 ил.
US 5594797 А, 14.01.1997 | |||
СПОСОБ ПЕРЕДАЧИ И ПРИЕМА С ОБЕСПЕЧЕНИЕМ ПОДЛИННОСТИ И КОНФИДЕНЦИАЛЬНОСТИ СООБЩЕНИЯ | 1992 |
|
RU2040117C1 |
US 5159634 A, 27.10.1992 | |||
EP 0532228 A2, 03.09.1992 | |||
US 5172414 A, 15.12.1992. |
Авторы
Даты
2005-12-27—Публикация
1998-03-04—Подача