Способы шифровки слов. Алгоритмы шифрования данных. Симметричные алгоритмы шифрования. Алгоритм шифрования RSA. Алгоритм шифрования DES. Выбор алгоритма шифрования

Методы: объяснительно-иллюстративный, частично-поисковый.

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

Задачи:

образовательные:

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

развивающие:

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

воспитательные:

  • воспитывать коммуникативную культуру;
  • развивать познавательный интерес.

Предлагаемая разработка может быть использована для учащихся 7–9 классов. Презентация помогает сделать материал наглядным и доступным.

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

А все ли и всегда должны знать всё?

Конечно, нет.

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

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

Тайнопись – криптография - является ровесницей письменности. История криптографии насчитывает не одно тысячелетие. Идея создания текстов с тайным смыслом и зашифрованными сообщениями почти так же стара, как и само искусство письма. Этому есть много свидетельств. Глиняная табличка из Угарита (Сирия) – упражнения обучающие искусству расшифровки (1200 год до н.э.). “Вавилонская теодицея” из Ирака – пример акростиха (середина II тысячелетия до н.э.).

Один из первых систематических шифров был разработан древними евреями; этот метод называется темура - “обмен”.

Самый простой из них “Атбаш”, алфавит разделялся посередине так, чтобы первые две буквы, А и Б, совпадали с двумя последними, Т и Ш. Использование шифра темура можно обнаружить в Библии. Это пророчество Иеремии, сделанное в начале VI века до нашей эры, содержит проклятие, всем правителям мира, заканчивая “царем Сесаха” который при дешифровки с шифра “Атбаш” оказывается царём Вавилона.

(Слайд 3) Более хитроумный способ шифрования был изобретён в древней Спарте во времена Ликурга (V век до н.э.) Для зашифровывания текста использовалась Сциталла - жезл цилиндрической формы, на который наматывалась лента из пергамента. Вдоль оси цилиндра построчно записывался текст, лента сматывалась с жезла и передавалась адресату, имеющему Сциталлу такого же диаметра. Этот способ осуществлял перестановку букв сообщения. Ключом шифра служил диаметр Сциталлы. АРИСТОТЕЛЬ придумал метод вскрытия такого шифра. Он изобрёл дешифровальное устройство “Антисциталла”.

(Слайд 4) Задание “Проверь себя”

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

(Слайд 6) Задание “Проверь себя”

(Слайд 7) Особую роль в сохранении тайны сыграл способ шифрования, предложенный ЮЛИЕМ ЦЕЗАРЕМ и описанный им в “Записках о галльской войне.

(Слайд 8) Задание “Проверь себя”

(Слайд 9) Существует несколько модификаций шифра Цезаря. Один из них алгоритм шифра Гронсфельда (созданный в 1734 году бельгийцем Хосе де Бронкхором, графом де Гронсфельд, военным и дипломатом). Шифрование заключается в том, что величина сдвига не является постоянной, а задается ключом (гаммой).

(Слайд 10) Для того, кто передаёт шифровку, важна её устойчивость к дешифрованию. Эта характеристика шифра называется криптостойкостью. Повысить криптостойкость позволяют шифры много алфавитной или многозначной замены. В таких шифрах каждому символу открытого алфавита ставятся в соответствие не один, а несколько символов шифровки.

(Слайд 11) Научные методы в криптографии впервые появились в арабских странах. Арабского происхождения и само слово шифр (от арабского "цифра"). Арабы первыми стали заменять буквы цифрами с целью защиты исходного текста. О тайнописи и её значении говорится даже в сказках “Тысячи и одной ночи”. Первая книга, специально посвящённая описанию некоторых шифров, появилась в 855 г., она называлась “Книга о большом стремлении человека разгадать загадки древней письменности”.

(Слайд 12) Итальянский математик и философ ДЖЕРОЛАМО КАРДАНО написал книгу "О тонкостях", в которой имеется часть, посвященная криптографии.

Его вклад в науку криптография содержит два предложения:

Первое - использовать открытый текст в качестве ключа.

Второе - он предложил шифр, называемый ныне "Решетка Кардано".

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

Решётка Кардано представляет собой лист из твердого материала, в котором через неправильные интервалы сделаны прямоугольные вырезы высотой для одной строчки и различной длины. Накладывая эту решетку на лист писчей бумаги, можно было записывать в вырезы секретное сообщение. Оставшиеся места заполнялись произвольным текстом, маскирующим секретное сообщение. Этим методом маскировки пользовались многие известные исторические лица, кардинал Ришелье во Франции и русский дипломат А. Грибоедов. На основе такой решетки Кардано построил шифр перестановки.

(Слайд 13) Задание “Проверь себя”

(Слайд 14) Увлекались тайнописью и в России. Используемые шифры - такие же, как в западных странах - значковые, замены, перестановки.

Датой появления криптографической службы в России следует считать 1549 год (царствование Ивана IV), с момента образования "посольского приказа", в котором имелось "цифирное отделение".

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

(Слайд 15) Задание “Проверь себя”

(Слайд 16) Много новых идей в криптографии принес XIX век. ТОМАС ДЖЕФФЕРСОН создал шифровальную систему, занимающую особое место в истории криптографии - "дисковый шифр". Этот шифр реализовывался с помощью специального устройства, которое впоследствии назвали шифратором Джефферсона.

В 1817 г. ДЕСИУС УОДСВОРТ сконструировал шифровальное устройство, которое внесло новый принцип в криптографию. Нововведение состояло в том, что он сделал алфавиты открытого и шифрованного текстов различных длин. Устройство, с помощью которого он это осуществил, представляло собой диск, с двумя подвижными кольцами с алфавитами. Буквы и цифры внешнего кольца были съемными и могли собираться в любом порядке. Эта шифрсистема реализует периодическую многоалфавитную замену.

(Слайд 17) Способов кодирования информации можно привести много.

Капитан французской армии ШАРЛЬ БАРБЬЕ разработал в 1819 году систему кодирования ecriture noctrume – ночное письмо. В системе применялись выпуклые точки и тире, недостаток системы её сложность, так как кодировались не буквы, а звуки.

ЛУИ БРАЙЛЬ усовершенствовал систему, разработал собственный шифр. Основы этой системы используются поныне.

(Слайд 18) СЭМЮЕЛЬ МОРЗЕ разработал в 1838 году систему кодирования символов с помощью точки и тире. Он же является изобретателем телеграфа (1837год) – устройства в котором использовалась эта система. Самое важное в этом изобретении – двоичный код, то есть использованием для кодирования букв только двух символов.

(Слайд 19) Задание “Проверь себя”

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

В истории криптографии XIX в. ярко запечатлелось имя ОГЮСТА КЕРКГОФФСА. В 80-х годах XIX века издал книгу "Военная криптография" объемом всего в 64 страницы, но они обессмертили его имя в истории криптографии. В ней сформулированы 6 конкретных требований к шифрам, два из которых относятся к стойкости шифрования, а остальные - к эксплуатационным качествам. Одно из них ("компрометация системы не должна причинять неудобств корреспондентам") стало называться "правилом Керкгоффса". Все эти требования актуальны и в наши дни.

В XX веке криптография стала электромеханической, затем электронной. Это означает, что основными средствами передачи информации стали электромеханические и электронные устройства.

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

В семидесятых годах произошло два события, серьезно повлиявших на дальнейшее развитие криптографии. Во-первых, был принят (и опубликован!) первый стандарт шифрования данных (DES), "легализовавший" принцип Керкгоффса в криптографии. Во-вторых, после работы американских математиков У. ДИФФИ и М. ХЕЛЛМАНА родилась "новая криптография"- криптография с открытым ключом.

(Слайд 22) Задание “Проверь себя”

(Слайд 23) Роль криптографии будет возрастать в связи с расширением ее областей приложения:

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

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

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

Знаете ли вы?
Еще во времена Римской империи, шифрование использовалось Юлием Цезарем для того, чтобы сделать письма и сообщения нечитаемыми для врага. Это играло важную роль как военная тактика, особенно во время войн.

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

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

Типы шифрования

Симметричное шифрование

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

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

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

Ограничения

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

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

Асимметричное шифрование

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

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

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

Diffie-Hellman и RSA являются примерами алгоритмов, использующих шифрование с открытым ключом.

Ограничения

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

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

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

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

Хеширование

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

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

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

Message Digest 5 (MD5) и Secure Hashing Algorithm (SHA) являются двумя широко используемыми алгоритмами хеширования.

Ограничения

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

Сочетание методов шифрования

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

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

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

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

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

Тема: "Криптография. Шифры, их виды и свойства"


Введение

1. История криптографии

2. Шифры, их виды и свойства

Заключение

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


Введение

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

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

Целью данной работы является знакомство с криптографией; шифрами, их видами и свойствами.

Ознакомиться с криптографией

Рассмотреть шифры, их виды и свойства


1. История криптографии

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

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

Аутентичность информации состоит в подлинности авторства и целостности.

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

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

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

алфавит Z 33 - 32 буквы русского алфавита (исключая "ё") и пробел;

алфавит Z 256 - символы, входящие в стандартные коды ASCII и КОИ-8;

двоичный алфавит - Z 2 = {0, 1};

восьмеричный или шестнадцатеричный алфавит

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

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

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

Пространство ключей K - это набор возможных значений ключа.

Обычно ключ представляет собой последовательный ряд букв алфавита. Следует отличать понятия "ключ" и "пароль". Пароль также является секретной последовательностью букв алфавита, однако используется не для шифрования (как ключ), а для аутентификации субъектов.

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

Зашифрованием данных называется процесс преобразования открытых данных в зашифрованные с помощью шифра, а расшифрованием данных - процесс преобразования закрытых данных в открытые с помощью шифра.

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

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

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

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

В истории криптографии условно можно выделить четыре этапа: наивный, формальный, научный, компьютерный.

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

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

2. Этап формальной криптографии (конец XV - начало XX вв) связан с появлением формализованных и относительно стойких к ручному криптоанализу шифров. В европейских странах это произошло в эпоху Возрождения, когда развитие науки и торговли вызвало спрос на надежные способы защиты информации. Важная роль на этом этапе принадлежит Леону Батисте Альберти, итальянскому архитектору, который одним из первых предложил многоалфавитную подстановку. Данный шифр, получивший имя дипломата XVI в. Блеза Вижинера, состоял в последовательном "сложении" букв исходного текста с ключом (процедуру можно облегчить с помощью специальной таблицы). Его работа "Трактат о шифре" считается первой научной работой по криптологии. Одной из первых печатных работ, в которой обобщены и сформулированы известные на тот момент алгоритмы шифрования, является труд "Полиграфия" немецкого аббата Иоганна Трисемуса. Ему принадлежат два небольших, но важных открытия: способ заполнения полибианского квадрата (первые позиции заполняются с помощью легко запоминаемого ключевого слова, остальные - оставшимися буквами алфавита) и шифрование пар букв (биграмм). Простым, но стойким способом многоалфавитной замены (подстановки биграмм) является шифр Плейфера, который был открыт в начале XIX в. Чарльзом Уитстоном. Уитстону принадлежит и важное усовершенствование - шифрование "двойным квадратом". Шифры Плейфера и Уитстона использовались вплоть до первой мировой войны, так как с трудом поддавались ручному криптоанализу. В XIX в. голландец Керкхофф сформулировал главное требование к криптографическим системам, которое остается актуальным и поныне: секретность шифров должна быть основана на секретности ключа, но не алгоритма.

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

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

Практическое распространение роторные машины получили только в начале XX в. Одной из первых практически используемых машин, стала немецкая Enigma, разработанная в 1917 г. Эдвардом Хеберном и усовершенствованная Артуром Кирхом. Роторные машины активно использовались во время второй мировой войны. Помимо немецкой машины Enigma использовались также устройства Sigaba (США), Турех (Великобритания), Red, Orange и Purple (Япония). Роторные системы - вершина формальной криптографии, так как относительно просто реализовывали очень стойкие шифры. Успешные криптоатаки на роторные системы стали возможны только с появлением ЭВМ в начале 40-х гг.

3. Главная отличительная черта научной криптографии (1930 - 60-е гг.) - появление криптосистем со строгим математическим обоснованием криптостойкости. К началу 30-х гг. окончательно сформировались разделы математики, являющиеся научной основой криптологии: теория вероятностей и математическая статистика, общая алгебра, теория чисел, начали активно развиваться теория алгоритмов, теория информации, кибернетика. Своеобразным водоразделом стала работа Клода Шеннона "Теория связи в секретных системах", которая подвела научную базу под криптографию и криптоанализ. С этого времени стали говорить о криптологии (от греческого kryptos - тайный и logos - сообщение) - науке о преобразовании информации для обеспечения ее секретности. Этап развития криптографии и криптоанализа до 1949 г. стали называть донаучной криптологией.

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

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

Первым классом криптосистем, практическое применение которых стало возможно с появлением мощных и компактных вычислительных средств, стали блочные шифры. В 70-е гг. был разработан американский стандарт шифрования DES. Один из его авторов, Хорст Фейстель описал модель блочных шифров, на основе которой были построены другие, более стойкие симметричные криптосистемы, в том числе отечественный стандарт шифрования ГОСТ 28147-89.

С появлением DES обогатился и криптоанализ, для атак на американский алгоритм был создано несколько новых видов криптоанализа (линейный, дифференциальный и т.д.), практическая реализация которых опять же была возможна только с появлением мощных вычислительных систем. В середине 70-х гг. ХХ столетия произошел настоящий прорыв в современной криптографии - появление асимметричных криптосистем, которые не требовали передачи секретного ключа между сторонами. Здесь отправной точкой принято считать работу, опубликованную Уитфилдом Диффи и Мартином Хеллманом в 1976 г. под названием "Новые направления в современной криптографии". В ней впервые сформулированы принципы обмена шифрованной информацией без обмена секретным ключом. Независимо к идее асимметричных криптосистем подошел Ральф Меркли. Несколькими годами позже Рон Ривест, Ади Шамир и Леонард Адлеман открыли систему RSA, первую практическую асимметричную криптосистему, стойкость которой была основана на проблеме факторизации больших простых чисел. Асимметричная криптография открыла сразу несколько новых прикладных направлений, в частности системы электронной цифровой подписи (ЭЦП) и электронных денег.

В 1980-90-е гг. появились совершенно новые направления криптографии: вероятностное шифрование, квантовая криптография и другие. Осознание их практической ценности еще впереди. Актуальной остается и задача совершенствования симметричных криптосистем. В этот же период были разработаны нефейстелевские шифры (SAFER, RC6 и др.), а в 2000 г. после открытого международного конкурса был принят новый национальный стандарт шифрования США - AES.

Таким образом, мы узнали следующее:

Криптология - это наука о преобразовании информации для обеспечения ее секретности, состоящая из двух ветвей: криптографии и криптоанализа.

Криптоанализ - наука (и практика ее применения) о методах и способах вскрытия шифров.

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


2. Шифры, их виды и свойства

В криптографии криптографические системы (или шифры) классифицируются следующим образом:

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

асимметричные криптосистемы

2.1 Симметричные криптографические системы

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

I. Моно - и многоалфавитные подстановки.

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

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


Исходные символы шифруемого текста а б в г д е ж з и к л м н о п р с т у ф
Заменяющие символы s р x l r z i m a y e d w t b g v n j o

Используя эту таблицу, зашифруем слово победа. Получим следующее: btpzrs

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

Самая простая перестановка - написать исходный текст наоборот и одновременно разбить шифрограмму на пятерки букв. Например, из фразы

ПУСТЬ БУДЕТ ТАК, КАК МЫ ХОТЕЛИ

получится такой шифротекст:

ИЛЕТО ХЫМКА ККАТТ ЕДУБЪ ТСУП

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

ОИЛЕТ ОХЫМК АККАТ ТЕДУБ ЬТСУП

III. Блочные шифры - семейство обратимых преобразований блоков (частей фиксированной длины) исходного текста. Фактически блочный шифр - это система подстановки на алфавите блоков. Она может быть моно - или многоалфавитной в зависимости от режима блочного шифра. Иначе говоря, при блочном шифровании информация разбивается на блоки фиксированной длины и шифруется поблочно. Блочные шифры бывают двух основных видов: шифры перестановки (transposition, permutation, P-блоки) и шифры замены (подстановки, substitution, S-блоки) . В настоящее время блочные шифры наиболее распространены на практике.

Американский стандарт криптографического закрытия данных DES (Data Encryption Standard), принятый в 1978 г., является типичным представителем семейства блочных шифров и одним из наиболее распространенных криптографических стандартов на шифрование данных, применяемых в США. Этот шифр допускает эффективную аппаратную и программную реализацию, причем возможно достижение скоростей шифрования до нескольких мегабайт в секунду. Первоначально метод, лежащий в основе данного стандарта, был разработан фирмой IBM для своих целей. Он был проверен Агентством Национальной Безопасности США, которое не обнаружило в нем статистических или математических изъянов.

DES имеет блоки по 64 бит и основан на 16-кратной перестановке данных, также для шифрования использует ключ в 56 бит. Существует несколько режимов DES: Electronic Code Book (ECB) и Cipher Block Chaining (CBC).56 бит - это 8 семибитовых символов, т.е. пароль не может быть больше чем восемь букв. Если вдобавок использовать только буквы и цифры, то количество возможных вариантов будет существенно меньше максимально возможных 2 56 . Однако, данный алгоритм, являясь первым опытом стандарта шифрования, имеет ряд недостатков. За время, прошедшее после создания DES, компьютерная техника развилась настолько быстро, что оказалось возможным осуществлять исчерпывающий перебор ключей и тем самым раскрывать шифр. В 1998 г. была построена машина, способная восстановить ключ за среднее время в трое суток. Таким образом, DES, при его использовании стандартным образом, уже стал далеко не оптимальным выбором для удовлетворения требованиям скрытности данных. Позднее стали появляться модификации DESa, одной из которой является Triple Des ("тройной DES" - так как трижды шифрует информацию обычным DESом). Он свободен от основного недостатка прежнего варианта - короткого ключа: он здесь в два раза длиннее. Но зато, как оказалось, Triple DES унаследовал другие слабые стороны своего предшественника: отсутствие возможности для параллельных вычислений при шифровании и низкую скорость.

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

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

2.2 Асимметричные криптографические системы

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

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

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

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

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

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

В настоящее время наиболее развитым методом криптографической защиты информации с известным ключом является RSA, названный так по начальным буквам фамилий его изобретателей (Rivest, Shamir и Adleman) и представляющий собой криптосистему, стойкость которой основана на сложности решения задачи разложения числа на простые сомножители. Простыми называются такие числа, которые не имеют делителей, кроме самих себя и единицы. А взаимно простыми называются числа, не имеющие общих делителей, кроме 1.

Для примера выберем два очень больших простых числа (большие исходные числа нужны для построения больших криптостойких ключей). Определим параметр n как результат перемножения р и q. Выберем большое случайное число и назовем его d, причем оно должно быть взаимно простым с результатом умножения (р - 1) * (q - 1). Найдем такое число e, для которого верно соотношение:

(e*d) mod ((р - 1) * (q - 1)) = 1

(mod - остаток от деления, т.е. если e, умноженное на d, поделить на ((р - 1) * (q - 1)), то в остатке получим 1).

Открытым ключом является пара чисел e и n, а закрытым - d и n. При шифровании исходный текст рассматривается как числовой ряд, и над каждым его числом мы совершаем операцию:

C (i) = (M (i) e) mod n

В результате получается последовательность C (i), которая и составит криптотекст.д.екодирование информации происходит по формуле

M (i) = (C (i) d) mod n

Как видите, расшифровка предполагает знание секретного ключа.

Попробуем на маленьких числах. Установим р=3, q=7. Тогда n=р*q=21. Выбираем d как 5. Из формулы (e*5) mod 12=1 вычисляем e=17. Открытый ключ 17, 21, секретный - 5, 21.

Зашифруем последовательность "2345":

C (2) = 2 17 mod 21 =11

C (3) = 3 17 mod 21= 12

C (4) = 4 17 mod 21= 16

C (5) = 5 17 mod 21= 17

Криптотекст - 11 12 16 17.

Проверим расшифровкой:

M (2) = 11 5 mod 21= 2

M (3) = 12 5 mod 21= 3

M (4) = 16 5 mod 21= 4

M (5) = 17 5 mod 21= 5

Как видим, результат совпал.

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

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


Заключение

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

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


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

1. Златопольский Д.М. Простейшие методы шифрования текста. /Д.М. Златопольский - М.: Чистые пруды, 2007

2. Молдовян А. Криптография. /А. Молдовян, Н.А. Молдовян, Б.Я. Советов - СПб: Лань, 2001

3. Яковлев А.В., Безбогов А.А., Родин В.В., Шамкин В.Н. Криптографическая защита информации. /Учебное пособие - Тамбов: Изд-во Тамб. гос. техн. ун-та, 2006

4. http://ru. wikipedia.org

5. http://cryptoblog.ru

6. http://Stfw.ru

7. http://www.contrterror. tsure.ru


Молдовян А. Криптография./А. Молдовян, Н. А. Молдовян, Б. Я. Советов – СПб: Лань, 2001

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

Сергей Панасенко ,
начальник отдела разработки программного обеспечения фирмы «Анкад»,
[email protected]

Основные понятия

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

С = Ek1(M)

M" = Dk2(C),

где M (message) - открытая информация (в литературе по защите информации часто носит название "исходный текст");
C (cipher text) - полученный в результате зашифрования шифртекст (или криптограмма);
E (encryption) - функция зашифрования, выполняющая криптографические преобразования над исходным текстом;
k1 (key) - параметр функции E, называемый ключом зашифрования;
M" - информация, полученная в результате расшифрования;
D (decryption) - функция расшифрования, выполняющая обратные зашифрованию криптографические преобразования над шифртекстом;
k2 - ключ, с помощью которого выполняется расшифрование информации.

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

Для того, чтобы результат расшифрования совпал с исходным сообщением (т. е. чтобы M" = M), необходимо одновременное выполнение двух условий. Во-первых, функция расшифрования D должна соответствовать функции зашифрования E. Во-вторых, ключ расшифрования k2 должен соответствовать ключу зашифрования k1.

Если для зашифрования использовался криптостойкий алгоритм шифрования, то при отсутствии правильного ключа k2 получить M" = M невозможно. Криптостойкость - основная характеристика алгоритмов шифрования и указывает прежде всего на степень сложности получения исходного текста из зашифрованного без ключа k2.

Алгоритмы шифрования можно разделить на две категории: симметричного и асимметричного шифрования. Для первых соотношение ключей зашифрования и расшифрования определяется как k1 = k2 = k (т. е. функции E и D используют один и тот же ключ шифрования). При асимметричном шифровании ключ зашифрования k1 вычисляется по ключу k2 таким образом, что обратное преобразование невозможно, например, по формуле k1 = ak2 mod p (a и p - параметры используемого алгоритма).

Симметричное шифрование

Свою историю алгоритмы симметричного шифрования ведут с древности: именно этим способом сокрытия информации пользовался римский император Гай Юлий Цезарь в I веке до н. э., а изобретенный им алгоритм известен как "криптосистема Цезаря".

В настоящее время наиболее известен алгоритм симметричного шифрования DES (Data Encryption Standard), разработанный в 1977 г. До недавнего времени он был "стандартом США", поскольку правительство этой страны рекомендовало применять его для реализации различных систем шифрования данных. Несмотря на то, что изначально DES планировалось использовать не более 10-15 лет, попытки его замены начались только в 1997 г.

Мы не будем рассматривать DES подробно (почти во всех книгах из списка дополнительных материалов есть его подробнейшее описание), а обратимся к более современным алгоритмам шифрования. Стоит только отметить, что основная причина изменения стандарта шифрования - его относительно слабая криптостойкость, причина которой в том, что длина ключа DES составляет всего 56 значащих бит. Известно, что любой криптостойкий алгоритм можно взломать, перебрав все возможные варианты ключей шифрования (так называемый метод грубой силы - brute force attack). Легко подсчитать, что кластер из 1 млн процессоров, каждый из которых вычисляет 1 млн ключей в секунду, проверит 256 вариантов ключей DES почти за 20 ч. А поскольку по нынешним меркам такие вычислительные мощности вполне реальны, ясно, что 56-бит ключ слишком короток и алгоритм DES необходимо заменить на более "сильный".

Сегодня все шире используются два современных криптостойких алгоритма шифрования: отечественный стандарт ГОСТ 28147-89 и новый криптостандарт США - AES (Advanced Encryption Standard).

Стандарт ГОСТ 28147-89

Алгоритм, определяемый ГОСТ 28147-89 (рис. 1), имеет длину ключа шифрования 256 бит. Он шифрует информацию блоками по 64 бит (такие алгоритмы называются блочными), которые затем разбиваются на два субблока по 32 бит (N1 и N2). Субблок N1 обрабатывается определенным образом, после чего его значение складывается со значением субблока N2 (сложение выполняется по модулю 2, т. е. применяется логическая операция XOR - "исключающее или"), а затем субблоки меняются местами. Данное преобразование выполняется определенное число раз ("раундов"): 16 или 32 в зависимости от режима работы алгоритма. В каждом раунде выполняются две операции.

Первая - наложение ключа. Содержимое субблока N1 складывается по модулю 2 с 32-бит частью ключа Kx. Полный ключ шифрования представляется в виде конкатенации 32-бит подключей: K0, K1, K2, K3, K4, K5, K6, K7. В процессе шифрования используется один из этих подключей - в зависимости от номера раунда и режима работы алгоритма.

Вторая операция - табличная замена. После наложения ключа субблок N1 разбивается на 8 частей по 4 бит, значение каждой из которых заменяется в соответствии с таблицей замены для данной части субблока. Затем выполняется побитовый циклический сдвиг субблока влево на 11 бит.

Табличные замены (Substitution box - S-box) часто используются в современных алгоритмах шифрования, поэтому стоит пояснить, как организуется подобная операция. В таблицу записываются выходные значения блоков. Блок данных определенной размерности (в нашем случае - 4-бит) имеет свое числовое представление, которое определяет номер выходного значения. Например, если S-box имеет вид 4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1 и на вход пришел 4-бит блок "0100" (значение 4), то, согласно таблице, выходное значение будет равно 15, т. е. "1111" (0 а 4, 1 а 11, 2 а 2 ...).

Алгоритм, определяемый ГОСТ 28147-89, предусматривает четыре режима работы: простой замены, гаммирования, гаммирования с обратной связью и генерации имитоприставок. В них используется одно и то же описанное выше шифрующее преобразование, но, поскольку назначение режимов различно, осуществляется это преобразование в каждом из них по-разному.

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

K0, K1, K2, K3, K4, K5, K6, K7, K0, K1 и т. д. - в раундах с 1-го по 24-й;

K7, K6, K5, K4, K3, K2, K1, K0 - в раундах с 25-го по 32-й.

Расшифрование в данном режиме проводится точно так же, но с несколько другой последовательностью применения подключей:

K0, K1, K2, K3, K4, K5, K6, K7 - в раундах с 1-го по 8-й;

K7, K6, K5, K4, K3, K2, K1, K0, K7, K6 и т. д. - в раундах с 9-го по 32-й.

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

В режиме гаммирования каждый блок открытого текста побитно складывается по модулю 2 с блоком гаммы шифра размером 64 бит. Гамма шифра - это специальная последовательность, которая получается в результате определенных операций с регистрами N1 и N2 (см. рис. 1).

1. В регистры N1 и N2 записывается их начальное заполнение - 64-бит величина, называемая синхропосылкой.

2. Выполняется зашифрование содержимого регистров N1 и N2 (в данном случае - синхропосылки) в режиме простой замены.

3. Содержимое регистра N1 складывается по модулю (232 - 1) с константой C1 = 224 + 216 + 28 + 24, а результат сложения записывается в регистр N1.

4. Содержимое регистра N2 складывается по модулю 232 с константой C2 = 224 + 216 + 28 + 1, а результат сложения записывается в регистр N2.

5. Содержимое регистров N1 и N2 подается на выход в качестве 64-бит блока гаммы шифра (в данном случае N1 и N2 образуют первый блок гаммы).

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

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

Зашифрование и расшифрование в режиме гаммирования

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

В большинстве реализаций алгоритма ГОСТ 28147-89 синхропосылка не секретна, однако есть системы, где синхропосылка - такой же секретный элемент, как и ключ шифрования. Для таких систем эффективная длина ключа алгоритма (256 бит) увеличивается еще на 64 бит секретной синхропосылки, которую также можно рассматривать как ключевой элемент.

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

Рис. 2. Выработка гаммы шифра в режиме гаммирования с обратной связью.

Рассматривая режим генерации имитоприставок , следует определить понятие предмета генерации. Имитоприставка - это криптографическая контрольная сумма, вычисляемая с использованием ключа шифрования и предназначенная для проверки целостности сообщений. При генерации имитоприставки выполняются следующие операции: первый 64-бит блок массива информации, для которого вычисляется имитоприставка, записывается в регистры N1 и N2 и зашифровывается в сокращенном режиме простой замены (выполняются первые 16 раундов из 32). Полученный результат суммируется по модулю 2 со следующим блоком информации с сохранением результата в N1 и N2.

Цикл повторяется до последнего блока информации. Получившееся в результате этих преобразований 64-бит содержимое регистров N1 и N2 или его часть и называется имитоприставкой. Размер имитоприставки выбирается, исходя из требуемой достоверности сообщений: при длине имитоприставки r бит вероятность, что изменение сообщения останется незамеченным, равна 2-r.Чаще всего используется 32-бит имитоприставка, т. е. половина содержимого регистров. Этого достаточно, поскольку, как любая контрольная сумма, имитоприставка предназначена прежде всего для защиты от случайных искажений информации. Для защиты же от преднамеренной модификации данных применяются другие криптографические методы - в первую очередь электронная цифровая подпись.

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

Алгоритм ГОСТ 28147-89 считается очень сильным алгоритмом - в настоящее время для его раскрытия не предложено более эффективных методов, чем упомянутый выше метод "грубой силы". Его высокая стойкость достигается в первую очередь за счет большой длины ключа - 256 бит. При использовании секретной синхропосылки эффективная длина ключа увеличивается до 320 бит, а засекречивание таблицы замен прибавляет дополнительные биты. Кроме того, криптостойкость зависит от количества раундов преобразований, которых по ГОСТ 28147-89 должно быть 32 (полный эффект рассеивания входных данных достигается уже после 8 раундов).

Стандарт AES

В отличие от алгоритма ГОСТ 28147-89, который долгое время оставался секретным, американский стандарт шифрования AES, призванный заменить DES, выбирался на открытом конкурсе, где все заинтересованные организации и частные лица могли изучать и комментировать алгоритмы-претенденты.

Конкурс на замену DES был объявлен в 1997 г. Национальным институтом стандартов и технологий США (NIST - National Institute of Standards and Technology). На конкурс было представлено 15 алгоритмов-претендентов, разработанных как известными в области криптографии организациями (RSA Security, Counterpane и т. д.), так и частными лицами. Итоги конкурса были подведены в октябре 2000 г.: победителем был объявлен алгоритм Rijndael, разработанный двумя криптографами из Бельгии, Винсентом Риджменом (Vincent Rijmen) и Джоан Даймен (Joan Daemen).

Алгоритм Rijndael не похож на большинство известных алгоритмов симметричного шифрования, структура которых носит название "сеть Фейстеля" и аналогична российскому ГОСТ 28147-89. Особенность сети Фейстеля состоит в том, что входное значение разбивается на два и более субблоков, часть из которых в каждом раунде обрабатывается по определенному закону, после чего накладывается на необрабатываемые субблоки (см. рис. 1).

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

Алгоритм Rijndael выполняет четыре преобразования: BS (ByteSub) - табличная замена каждого байта массива (рис. 3); SR (ShiftRow) - сдвиг строк массива (рис. 4). При этой операции первая строка остается без изменений, а остальные циклически побайтно сдвигаются влево на фиксированное число байт, зависящее от размера массива. Например, для массива размером 4X4 строки 2, 3 и 4 сдвигаются соответственно на 1, 2 и 3 байта. Далее идет MC (MixColumn) - операция над независимыми столбцами массива (рис. 5), когда каждый столбец по определенному правилу умножается на фиксированную матрицу c(x). И, наконец, AK (AddRoundKey) - добавление ключа. Каждый бит массива складывается по модулю 2 с соответствующим битом ключа раунда, который, в свою очередь, определенным образом вычисляется из ключа шифрования (рис. 6).


Рис. 3. Операция BS.

Рис. 4. Операция SR.

Рис. 5. Операция MC.

Количество раундов шифрования (R) в алгоритме Rijndael переменное (10, 12 или 14 раундов) и зависит от размеров блока и ключа шифрования (для ключа также предусмотрено несколько фиксированных размеров).

Расшифрование выполняется с помощью следующих обратных операций. Выполняется обращение таблицы и табличная замена на инверсной таблице (относительно применяемой при зашифровании). Обратная операция к SR - это циклический сдвиг строк вправо, а не влево. Обратная операция для MC - умножение по тем же правилам на другую матрицу d(x), удовлетворяющую условию: c(x) * d(x) = 1. Добавление ключа AK является обратным самому себе, поскольку в нем используется только операция XOR. Эти обратные операции применяются при расшифровании в последовательности, обратной той, что использовалась при зашифровании.

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

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

Асимметричное шифрование

Алгоритмы асимметричного шифрования, как уже отмечалось, используют два ключа: k1 - ключ зашифрования, или открытый, и k2 - ключ расшифрования, или секретный. Открытый ключ вычисляется из секретного: k1 = f(k2).

Асимметричные алгоритмы шифрования основаны на применении однонаправленных функций. Согласно определению, функция y = f(x) является однонаправленной, если: ее легко вычислить для всех возможных вариантов x и для большинства возможных значений y достаточно сложно вычислить такое значение x, при котором y = f(x).

Примером однонаправленной функции может служить умножение двух больших чисел: N = P*Q. Само по себе такое умножение - простая операция. Однако обратная функция (разложение N на два больших множителя), называемая факторизацией, по современным временным оценкам представляет собой достаточно сложную математическую задачу. Например, разложение на множители N размерностью 664 бит при P ? Q потребует выполнения примерно 1023 операций, а для обратного вычисления х для модульной экспоненты y = ax mod p при известных a, p и y (при такой же размерности a и p) нужно выполнить примерно 1026 операций. Последний из приведенных примеров носит название - "Проблема дискретного логарифма" (DLP - Discrete Logarithm Problem), и такого рода функции часто используются в алгоритмах асимметричного шифрования, а также в алгоритмах, используемых для создания электронной цифровой подписи.

Еще один важный класс функций, используемых в асимметричном шифровании, - однонаправленные функции с потайным ходом. Их определение гласит, что функция является однонаправленной с потайным ходом, если она является однонаправленной и существует возможность эффективного вычисления обратной функции x = f-1(y), т. е. если известен "потайной ход" (некое секретное число, в применении к алгоритмам асимметричного шифрования - значение секретного ключа).

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

Алгоритм RSA

Разработанный в 1978 г. тремя авторами (Rivest, Shamir, Adleman), он получил свое название по первым буквам фамилий разработчиков. Надежность алгоритма основывается на сложности факторизации больших чисел и вычисления дискретных логарифмов. Основной параметр алгоритма RSA - модуль системы N, по которому проводятся все вычисления в системе, а N = P*Q (P и Q - секретные случайные простые большие числа, обычно одинаковой размерности).

Секретный ключ k2 выбирается случайным образом и должен соответствовать следующим условиям:

1

где НОД - наибольший общий делитель, т. е. k1 должен быть взаимно простым со значением функции Эйлера F(N), причем последнее равно количеству положительных целых чисел в диапазоне от 1 до N, взаимно простых с N, и вычисляется как F(N) = (P - 1)*(Q - 1) .

Открытый ключ k1 вычисляется из соотношения (k2*k1) = 1 mod F(N) , и для этого используется обобщенный алгоритм Евклида (алгоритм вычисления наибольшего общего делителя). Зашифрование блока данных M по алгоритму RSA выполняется следующим образом: C = M[в степени k1] mod N . Заметим, что, поскольку в реальной криптосистеме с использованием RSA число k1 весьма велико (в настоящее время его размерность может доходить до 2048 бит), прямое вычисление M[в степени k1] нереально. Для его получения применяется комбинация многократного возведения M в квадрат с перемножением результатов.

Обращение данной функции при больших размерностях неосуществимо; иными словами, невозможно найти M по известным C, N и k1. Однако, имея секретный ключ k2, при помощи несложных преобразований можно вычислить M = Ck2 mod N. Очевидно, что, помимо собственно секретного ключа, необходимо обеспечивать секретность параметров P и Q. Если злоумышленник добудет их значения, то сможет вычислить и секретный ключ k2.

Какое шифрование лучше?

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

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

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

Дополнительные источники информации

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

  1. Брассар Ж. "Современная криптология".
  2. Петров А. А. "Компьютерная безопасность: криптографические методы защиты".
  3. Романец Ю. В., Тимофеев П. А., Шаньгин В. Ф. "Защита информации в современных компьютерных системах".
  4. Соколов А. В., Шаньгин В. Ф. "Защита информации в распределенных корпоративных сетях и системах".

Полное описание алгоритмов шифрования можно найти в следующих документах:

  1. ГОСТ 28147-89. Система обработки информации. Защита криптографическая. Алгоритм криптографического преобразования. - М.: Госстандарт СССР, 1989.
  2. Алгоритм AES: http://www.nist.gov/ae .
  3. Алгоритм RSA: http://www.rsasecurity.com/rsalabs/pkcs/pkcs-1 .



Top