Криптология. Шифрование методом Виженера

Оглавление

 

Введение

Исторические  основы криптологии

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

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

    Существовали  три основных способа защиты информации. Один из них предполагал защиту ее чисто силовыми методами: охрана документа - носителя информации -физическими лицами, передача его специальным курьером и т.д. Второй способ получил название "стеганография" (латино-греческое сочетание слов, означающих в совокупности "тайнопись"). Он заключался в сокрытии самого факта наличия информации. В данном случае использовались так называемые симпатические чернила. При соответствующем "проявлении" бумаги текст становится видимым. Один из примеров сокрытия информации приведен в трудах древнегреческого историка Геродота. На голове раба, которая брилась наголо, записывалось нужное сообщение. И когда волосы его достаточно отрастали, раба отправляли к адресату, который снова брил его голову и считывал полученное сообщение.

    Третий  способ защиты информации заключался в преобразовании смыслового текста в некий набор хаотических  знаков (или букв алфавита). Получатель данного донесения имел возможность  преобразовать его в то же самое  осмысленное сообщение, если обладал ключом к его построению. Этот способ защиты информации называется криптографическим. Криптография - слово греческое и в переводе означает "тайнопись". По утверждению ряда специалистов криптография по возрасту - ровесник египетских пирамид. В документах древних цивилизаций - Индии, Египта, Месопотамии - есть сведения о системах и способах составления шифрованных писем.

      Наиболее полные и достоверные  сведения о шифрах относятся  к Древней Греции.

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

    Историческим примером шифра замены является шифр Цезаря (1 век до н.э.), описанный историком Древнего Рима Светонием. Гай Юлий Цезарь использовал в своей переписке шифр собственного изобретения. Применительно к современному русскому языку он состоял в следующем. Выписывался алфавит: А, Б, В, Г, Д,Е,...,; затем под ним выписывался тот же алфавит, но со сдвигом на 3 буквы влево.

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

  Криптология в современном мире

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

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

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

Криптология

Основные  понятия криптологии

    Криптология разделяется на два направления - криптографию и криптоанализ. Цели этих направлений прямо противоположны. Криптография занимается поиском и исследованием математических методов преобразования информации.

    Сфера интересов криптоанализа -  исследование возможности расшифровывания информации без знания ключей.

    1. Современная криптография включает в себя четыре крупных раздела:
    2. Симметричные криптосистемы.
    3. Криптосистемы с открытым ключом.
    4. Системы электронной подписи.
    5. Управление ключами.

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

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

    Итак, криптография дает возможность преобразовать  информацию таким образом, что ее прочтение (восстановление) возможно только при знании ключа.

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

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

    Текст - упорядоченный набор из элементов алфавита.

    В качестве примеров алфавитов, используемых в современных ИС можно привести следующие:

    • алфавит Z33 - 32 буквы русского алфавита и пробел;
    • алфавит Z256 - символы, входящие в стандартные коды ASCII и КОИ-8;
    • бинарный алфавит - Z2 = {0,1};
    • восьмеричный алфавит или шестнадцатеричный алфавит;

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

    Дешифрование - обратный шифрованию процесс. На основе ключа шифрованный текст преобразуется в исходный.

    Ключ - информация, необходимая для беспрепятственного шифрования и дешифрования текстов.

    Криптографическая система представляет собой семейство T преобразований открытого текста. Члены этого семейства индексируются, или обозначаются символом k; параметр k является ключом. Пространство ключей K - это набор возможных значений ключа. Обычно ключ представляет собой последовательный ряд букв алфавита.

    Криптосистемы разделяются на симметричные и с открытым ключом.

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

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

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

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

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

    • количество всех возможных ключей;
    • среднее время, необходимое для криптоанализа.

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

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

  Требования к криптосистемам

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

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

     

Симметрические  криптосистемы

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

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

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

    Все многообразие существующих криптографических  методов можно свести к следующим  классам преобразований:

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

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

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

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

Системы шифрования Виженера

 

    Шифр  Виженера (фр. Chiffre de Vigenиre) — метод  полиалфавитного шифрования буквенного текста с использованием ключевого  слова.

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

    

     Рис.1 Репродукция шифровального диска Конфедерации 

    Метод Вижинера является следствием подстановки  Цезаря. В системе Виженера задается некая конечная последовательность ключа

      k = (k0 ,k1 ,...,kn),

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

При длине пользовательского ключа R:

1) исходный текст x делится на R фрагментов 

xi = (xi , xi+r , ..., xi+r(n-1)), 0 ≤ i < r;

2) i-й фрагмент  исходного текста xi шифруется при помощи подстановки Цезаря в зависимости от пользовательского ключа :

(xi , xi+r , ..., xi+r(n-1)) → (yi , yi+r , ..., yi+r(n-1)),

    Очень распространена плохая с точки зрения секретности практика использовать слово или фразу в качестве ключа для того, чтобы k=(k0 ,k1 ,...,kк-1) было легко запомнить. В информационных системах для обеспечения безопасности информации это недопустимо. Для получения ключей должны использоваться программные или аппаратные средства случайной генерации ключей.

    Если  буквы A-Z соответствуют числам 0-25, то шифрование Виженера можно записать в виде формулы:

    

Расшифровка:

    

Рис.2 таблица Виженера

Пример. Преобразование текста с помощью подстановки Вижинера

Исходный  текст :

   НЕ_СЛЕДУЕТ_ВЫБИРАТЬ_НЕСЛУЧАЙНЫЙ_КЛЮЧ

Ключ: КЛЮЧ

Разобьем исходный текст на блоки по 4 символа:

НЕ_С   ЛЕДУ   ЕТ_В   ЫБИР   АТЬ_    НЕСЛ УЧАЙ   НЫЙ_    КЛЮЧ

и наложим на них ключ (используя таблицу Вижинера):  

H+К=Ч, Е+Л=Р  и т.д. 

Получаем зашифрованный текст:

ЧРЭЗ  ХРБЙ   ПЭЭЩ   ДМЕЖ   КЭЩЦ   ЧРОБ   ЭБЮ_   ЧЕЖЦ   ФЦЫН

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

Постановка  задачи

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

Реализация  задачи

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

Листинг программы с комментариями:

{Программа шифрования  по методу Виженера} 

program Vigener;

var

  inf, outf, keyf:string;  //имена файлов

{ loz:string;   }     //лозунг

  loz,cd,ch:char;           //символ 

procedure Code (inf, outf,key:string; loz:char);   //процедура кодирования

var

  infile, outfile,keyfile: file of char;

  loz,ch: char;

  t1,t2,t3: integer;

begin

  assign (infile, inf);

  assign (outfile, outf);

  assign (keyfile, keyf);

  reset (infile);              //открыт для чтения

  reset (keyfile);             //открыт для чтения

  rewrite (outfile);           //открыт для перезаписи

  while not eof (infile) do

  begin

    read (infile, ch);

    read (keyfile, loz);

    t1:=ord(ch) mod 256;

    t2:=ord(loz) mod 256;

    t3:=t1+t2;

    ch:=chr(t3);

    write (outfile, ch);

  end;

  writeLn('Файл закодирован');

  close(infile);

  close(outfile);

  close(keyfile);

end; 

procedure DeCode (inf, outf,key:string; loz:char);   //процедура декодирования

var

  infile, outfile,keyfile: file of char;

  ch,loz: char;

  t1,t2,t3: integer;

begin

  assign (infile, inf);

  assign (outfile, outf);

  assign (keyfile, keyf);

  reset (infile);              //открыт для чтения

  reset (keyfile);             //открыт для чтения

  rewrite (outfile);           //открыт для перезаписи

  while not eof (infile) do

  begin

    read (infile, ch);

    read (keyfile, loz);

    t1:=ord(ch) mod 256;

    t2:=ord(loz) mod 256;

    t3:=t1-t2;

    ch:=chr(t3);

    write (outfile, ch);

  end;

  writeLn('Файл декодирован');

  close(infile);

  close(outfile);

  close(keyfile);

end; 

begin //реализация интерфейса

  write('Введите  имя входного файла:');

  readLn(inf);

  write('Введите  имя выходного файла:');

  ReadLn(outf);

   write('Введите  имя файла с ключем:');

  ReadLn(keyf);

{ Write('Введите лозунг:');

  ReadLn(loz);   }

  write('Кодировать  или декодировать?(С or D):');

  ReadLn(cd);

  if upcase(cd)='C' then code(inf, outf,keyf, loz)

  else if upcase(cd)='D' then decode(inf, outf, keyf, loz);

end.

Пример

Исходный  текст: good morning;

Ключ: key;

Результат кодирования: ТФиП…жЪЧзФУа;

Результат обратного декодирования: good morning.

Заключение

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

 Обоснованный  выбор той или иной системы  защиты должен опираться на какие-то критерии эффективности:

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

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

 

Список  литературы:

 

1. Петров А.А «Компьютерная безопасность. Криптографические методы защиты» ДМК Москва, 2000 г. 

2.  "Методы  и средства защиты информации" (курс лекций) Авторские права: Беляев А.В.

(http://www.citforum.ru/internet/infsecure/index.shtml) 

3. Криптография  (http://www.citforum.ru/internet/securities/crypto.shtml) 

4.  Бобровский  С. Delphi 7. Учебный курс. Из-во Питер, 2004г. 

5. Шифр Виженера (http://ru.wikipedia.org/wiki/Шифр_Виженера) 

6. Соловьева Ю.А. «Элементы криптографии. Часть I Симметричные криптосистемы» Уч.пособие,

Новокузнецк, 2003г. 
 
 
 
 
 

Криптология. Шифрование методом Виженера