Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
vse_polnostyu.doc
Скачиваний:
31
Добавлен:
22.09.2019
Размер:
705.02 Кб
Скачать

Козлов В.А.

АЛГОРИТМ КРИПТОГРАФИЧЕСКИХ ПРЕОБРАЗОВАНИЙ

С ИСПОЛЬЗОВАНИЕМ МЕТОДОВ БИГРАММНОЙ ШИФРАЦИИ

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

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

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

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

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

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

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

Именно такой подход использовался практически во всех современных алгоритмах симметричного шифрования. Типовая схема составного алгоритма симметричного шифрования [1] представлена на рис.1. Алгоритм составного шифрования состоит из трех этапов. На предварительном этапе информация разбивается на блоки одинаковой длины (шаг 1, см. рисунок 1) и производится ее начальная перестановка по какому-либо закону (шаг 2).

В рамках второго этапа (рис. 1 – Основной цикл) с помощью ключа шифрования выполняется основное криптографическое преобразование (3). Полученный промежуточный результат (4) модифицируется с использованием алгоритмов табличной замены (5). Далее основной криптографический цикл повторяется еще несколько раз в зависимости от конкретного алгоритма. На третьем этапе выполняется финальная перестановка (6), ее результатом является блок зашифрованной информации (7).

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

Алгоритм криптографических преобразований на базе биграммного шифра «двойная пирамида»

Основные положения и принципы реализации

Биграммный шифр «двойная пирамида» использует сразу две совмещенные по горизонтали пирамиды (рис. 2), одна из которых (левая) имеет основание в нижней (16-ой) строке, а другая (правая) в верхней (первой) строке (выделена серым фоном). Количество строк у параллелограмма, объединяющего эти две пирамиды – 16. Длина каждой объединенной строки включает в себя 32 ячейки. Таким образом, объединенная из двух пирамид фигура включает в себя 16 · 32 = 512 ячеек, следовательно, каждая пирамида состоит из 256 ячеек. Матричный эквивалент биграммного шифра «двойная пирамида» представлен на рис. 3.

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

Как видно из рисунка (рис.3), матричный эквивалент представляет собой двумерный массив, что существенно упрощает алгоритмы криптографических преобразований в рамках биграммного шифра «двойная пирамида». Для шифрования сообщение разбивают на биграммы. Первая буква биграммы берется из левой, а вторая из правой пирамиды. Приведем описание алгоритма использования шифра «двойная пирамида» для алфавита, представленного символами системы кодирования SCII.

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

Вторая комбинация. Буквы биграммы расположены в разных строках и разных столбцах левой и правой пирамид. В этом случае возможны два варианта. Первый вариант – «вниз по лестнице», когда символ из левой пирамиды расположен выше символа из правой пирамиды (рис. 3.2). Мысленно строится прямоугольник таким образом, чтобы буквы биграммы лежали в его противоположных вершинах, симметрично диагонали матрицы. Тогда другие две вершины этого прямоугольника дают буквы шифровки.

Так, например, для шифровки биграммы, изображенной на рис. 3., имеем прямоугольник, у которого первый символ биграммного шифра расположен в левой пирамиде в ее 4 строке и отстоит от диагонали на 4 позиции, а второй символ расположен в правой пирамиде в ее 7 строке и отстоит от диагонали также на 4 позиции. Следовательно, символы шифра расположены, соответственно, в 4 и 7 строках и имеют удаление от диагонали 10 позиций.

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

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

Третья комбинация. Символы биграммы шифруемого текста расположены в одном столбце (рис. 3). В данном случае также строится прямоугольник, причем и по вертикали и по горизонтали символы текста и шифра должны отстоять от диагонали на равное число позиций (в нашем случае для первого символа биграммы это 0 и 1 позиция соответственно).

Основные положения и принципы реализации

Биграммный шифр «четырехсегментный прямоугольник» является аналогом бинарного шифра Чарльза-Уитстона, в котором, однако каждый квадрат размерность 16 × 16 разбит на два сегмента размерностью 16 × 8. Матричный эквивалент биграммного шифра – «четырехсегментный прямоугольник», представляет собой две пары совмещенных по диагонали прямоугольников размерностью 16 × 8 (см. рис 5).

Первый сегмент первого квадрата расположен в верхнем левом углу матрицы, второй – в нижнем правом углу (на рис. 5 сегменты первого квадрата выделены темным фоном).

Первый сегмент второго квадрата расположен в нижнем левом углу матрицы, второй – в верхнем правом (на рис. 5 сегменты второго квадрата выделены светлым фоном).

Как видно из рисунка 5, матричный эквивалент представляет собой двумерный массив размерностью 16 × 32, и, следовательно, также как и в случае с «двойной пирамидой» состоит из 512 ячеек. Диагональное расположение сегментов первого и второго квадратов позволяет заметно упростить алгоритмы криптографических преобразований.

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

При этом возможны следующие варианты:

- первый символ находится в первом сегменте первого квадрата, второй символ в первом сегменте второго квадрата;

- первый символ – в первом сегменте первого, второй – во втором второго;

- первый – во втором первого, второй – в первом второго;

- первый – во втором первого, второй – во втором второго

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

Первая комбинация. Буквы биграммы шифруемого текста расположены в одном столбце либо левых (см. рис. 5.1), либо правых сегментов. В этом случае буквы шифровки определяются, исходя из следующих правил:

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

- биграммнные символы шифра должны быть симметричны с биграммными символами текста относительно оси сопряжения сегментов (например, первый символ текста расположен с отступом от линии сопряжения сегментов на одну позицию, второй – на 4 позиции, следовательно, символы шифра также должны быть расположены с теми же значениями смещений от линии сопряжения сегментов, см. рис. 5.2).

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

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

Первый вариант. Символы биграммы отстоят друг от друга не более чем 16 позиций (m≤16) (рис. 6.3). В этом случае биграммный шифр располагается в этих же сегментах в строке симметричной обратному счету строк (например, первая и последняя, вторая и предпоследняя и т.д.). Ячейки биграммного шифра располагаются симметрично относительно линии сопряжения «крест на крест» (например, первый символ бинарного шифра заносится в столбец с отступом от линии сопряжения на 4, а второй – на 3 позиции, в то время как биграммнные символы текста имеют отступы соответственно 3 и 4 позиции).

Второй вариант. Символы биграммы отстоят друг от друга более чем на 16 позиций (m>16) (рис. 6.4). В этом случае символы биграммного шифра располагаются в двух других квадратах по тем же правилам, что и для первого варианта.

Пошаговый алгоритм симметричных криптографических преобразований

Инициализация. Инициализация производится путем выполнения целого ряда последовательно выполняемых операций.

Формирование «исходников». «Исходником» называется одномерный массив размерностью в 256 неповторяющихся элементов, с диапазоном значений [0..255]. Заполнение исходников конкретными числами осуществляется по специальному алгоритму.

Шаг 1. Создаются пустые множества с идентификаторами {Mn1},…,{MnN}, где N – количество «исходников» (определяется пользователем).

Шаг 2. Выполняется процедура генерации случайного числа «S» в диапазоне [0..255].

Шаг 3. Если сгенерированное случайное число [S] принадлежит каждому из множеств {Mn1},…,{MnN}, переходим к выполнению пункта 2, в противном случае – пункта 4.

Шаг 4. Первое множество {Mnх}, которому не принадлежит случайное число [S] дополняется новым членом: {Mnх}:= {Mnх} + [S], здесь {Mnх}; в текущую позицию соответствующего «исходника», также записывается значение элемента [S] .

Шаг 5. Если множество {Mnх} уже состоит из 256 элементов, то оно исключается из списка формируемых.

Шаг 6. Если список заполняемых множеств пустой, переходим к пункту 7, в противном случае – к пункту 2.

Шаг 7. Выход.

Количество «исходников» определяется пользователем на этапе инициализации, их количество не должно быть больше 256.

Выбор текущих «исходников» пользователем. Выбор текущих «исходников» (в количестве двух) производится в автоматическом режиме после ввода пользователем ключевой секретной комбинации по формуле:

,

где Хi элемент секретной ключевой комбинации (ключа) формулы гаммирования;

Мт.д так называемый маркант, который не является ключом и определяется как функция текущей даты;

N количество сгенерированных на этапе инициализации «исходников» (N ≤ 256);

n число элементов ключа.

Формирование рабочих таблиц. Рабочая таблица это списковый эквивалент шифровальной матрицы (у нас их две), состоящий из нескольких столбцов. Первый столбец это последовательность кодов элементов шифровальной таблицы, последующие столбцы – рабочие реквизиты шифровальной матрицы, используемые алгоритмами криптографических преобразований (например, для алгоритма «двойная пирамида» это номер столбца, номер строки, длина строки и т.д. ).

Формирование элементов первого столбца производится с использованием алгоритма гаммирования по ключевой комбинации:

,

где π – подстановка по первому столбцу рабочей таблицы.

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

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

Шаг первый – шифруемый текст разбивается на сегменты по 255 символов в каждом. Далее каждый сегмент дополняется одним дополнительным служебным символом, который становится первым элементом сегмента и рамен фактическому количеству символов в сегменте. Последний сегмент дополняется до 256 случайными символами.

Шаг второй. Первые y символов каждого сегмента меняются местами с последующими. Значение параметра y определяется на этапе инициализации программы и зависит от конкретных значений ключа.

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

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

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

Алгоритм перемешивания внутри блока. Элементы внутри блока перемешиваются в соответствии со значениями элементов первого столбца рабочей таблицы (для каждого блока другой). Например, если первый элемент первого столбца рабочей таблицы имеет значение 54, то на первое место в блоке ставится 54 элемент блока и т. д.

Алгоритм подстановки внутри блока. Метод подстановки внутри блока это алгоритм криптографических преобразований по методу «двойная пирамида» или «четырехсегментный квадрат».

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

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

Криптографическая стойкость и быстродействие алгоритмов

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

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

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

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

Однако данная проблема легко устранима уже на стадии инициализации алгоритма, когда осуществляется генерация многомерного справочного массива, в котором каждому символу алфавита ставятся в соответствие его основные параметры (номер строки и номер столбца расположения символа в шифр таблице).

Легко видеть , что обращение к нужной строке справочного массива не требует операций поиска, т.к. номер строки (всего их 256) совпадает с кодом элемента алфавита.

Аппаратно-программные средства защиты информации

Несмотря на то, что современные ОС для ПК, имеют собственные подсистемы защиты, актуальность создания дополнительных средств защиты сохраняется. Дело в том, что большинство систем не способны защитить данные, находящиеся за их пределами, например при сетевом информационном обмене.

Аппаратно-программные средства защиты информации можно разбить на пять групп:

  • 1. Системы идентификации (распознавания) и аутентификации (проверки подлинности) пользователей.

  • 2. Системы шифрования дисковых данных.

  • 3. Системы шифрования данных, передаваемых по сетям.

  • 4. Системы аутентификации электронных данных.

  • 5. Средства управления криптографическими ключами.

Системы идентификации и аутентификации пользователей

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

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

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

  • Физиологические параметры человека (отпечатки пальцев, рисунок радужной оболочки глаза и т.п.) или особенности поведения (особенности работы на клавиатуре и т.п.).

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

Системы шифрования дисковых данных

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

Примером систем второго типа может служить программа шифрования Diskreet, входящая в состав популярного программного пакета Norton Utilities, Best Crypt.

Другим классификационным признаком систем шифрования дисковых данных является способ их функционирования. По способу функционирования системы шифрования дисковых данных делят на два класса:

  • системы «прозрачного» шифрования;

  • системы, специально вызываемые для осуществления шифрования.

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

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

Большинство систем, предлагающих установить пароль на документ, не шифрует информацию, а только обеспечивает запрос пароля при доступе к документу. К таким системам относится MS Office, 1C и многие другие.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]