Страницы

вторник, 10 сентября 2013 г.

Шифрование перестановкой - гиперкуб Гамильтона

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

Гиперкуб Гамильтона представлен на рисунке

Гиперкуб Гамильтона

Ключ нужно сформировать самостоятельно.
Исходный текст ВЕРХОВНЫЙ СУД РФ.

Допустим, началом маршрута будет 5.
В исходном тексте 16 символов. Они составят один блок.
На  блок  формируем  свой  ключ.  Ключом является  набор  вершин  графа,  которые  соединены  своим  маршрутом  Гамильтона  (движения  из начальной вершины ключа в конечную). При построении маршрута Гамильтона никакую вершину нельзя пройти более одного раза и никакую нельзя пропустить.

Сформируем ключ (маршрут) для этого блока:
К=5,13,14,6,2,1,9,10,12,4,3,11,15,16,8,7


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

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

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

Полученные  три блока  зашифрованного  текста объединяем в одну криптограмму: ОДЭВЕВЙЭУХРСРФЫН.

Расшифруем полученную криптограмму.

Создаем таблицу и заполняем ее так:

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

Первую  строку  заполняем  так.  В  третьей  строке  отыскиваем символ, у которого номер 1 во второй строке, и записываем его в ячейку номер 1 первой строки (у нас это символ Э). Аналогично заполняем  ячейку  номер  2  первой  строки  (символ  К)  и  все остальные  ее  ячейки.  В  результате  в  первой  строке  получаем текущий блок расшифрованного текста.
 

Полученные блоки расшифрованного текста объединяем в один исходный текст: ВЕРХОВНЫЙ СУД РФ.