Разработка устройства криптоанализа
ВВЕДЕНИЕ
Проблема защиты информации волновала человеческий ум с давних времен. История криптографии ¾ ровесница истории человеческого языка. Более того, первоначально письменность сама по себе была криптографической системой, так как в древних обществах ею владели только избранные. Священные книги Древнего Египта, Древней Индии тому примеры.
На заре цивилизации ценные сведения сохранялись в материальной форме: вырезались на каменных табличках, позже записывались на бумагу. Для их защиты использовались такие же материальные объекты: стены, рвы.
Информация часто передавалась с посыльным и в сопровождении охраны. И эти меры себя оправдывали, поскольку единственным способом получения чужой информации было ее похищение. К сожалению, физическая защита имела крупный недостаток. При захвате сообщения враги узнавали все, что было написано в нем. Еще Юлий Цезарь принял решение защищать ценные сведения в процессе передачи. Он изобрел шифр Цезаря. Этот шифр позволял посылать сообщения, которые никто не мог прочитать в случае перехвата.
С широким распространением письменности криптография стала формироваться как самостоятельная наука. Первые криптосистемы встречаются уже в начале нашей эры. Так, Цезарь в своей переписке использовал уже систематический шифр, получивший его имя.
Бурное развитие криптографические системы получили в годы первой и второй мировых войн. Начиная с послевоенного времени и по нынешний день, появление вычислительных средств ускорило разработку и совершенствование криптографических методов.
Проблема использования криптографических методов в информационных системах стала в настоящий момент особо актуальна.
С одной стороны, расширилось использование компьютерных сетей, в частности глобальной сети Интернет, по которым передаются большие объемы информации государственного, военного, коммерческого и частного характера, не допускающего возможность доступа к ней посторонних лиц.
С другой стороны, появление новых мощных компьютеров, технологий сетевых и нейронных вычислений сделало возможным дискредитацию криптографических систем еще недавно считавшихся практически не раскрываемыми.
Проблемой защиты информации путем ее преобразования занимается криптология (kryptos - тайный, logos - наука). Криптология разделяется на два направления - криптографию и криптоанализ. Цели этих направлений прямо противоположны.
- Криптография занимается поиском и исследованием математических методов преобразования информации из исходного вида в нечитаемую без знания некоторой дополнительной информации (ключа) форму.
- Криптоанализ занимается поиском и исследованием математических методов расшифровки информации без знания ключей.
Современная криптография включает в себя четыре крупных раздела:
- Симметричные криптосистемы.
- Криптосистемы с открытым ключом.
- Системы электронной подписи.
- Управление ключами.
Основные направления использования криптографических методов - передача конфиденциальной информации по каналам связи (например, электронная почта), установление подлинности передаваемых сообщений, хранение информации (документов, баз данных) на носителях в зашифрованном виде.
1 ИСТОРИЯ КРИПТОЛОГИИ
До настоящего времени криптография занималась исключительно обеспечением конфиденциальности сообщений (т.е. шифрование) - преобразованием сообщений из понятной формы в непонятную и обратное восстановление на стороне получателя, делая его невозможным для прочтения для того, кто перехватил или подслушал без секретного знания (а именно ключа, необходимого для дешифровки сообщения). В последние десятилетия сфера применения криптографии расширилась и включает не только тайную передачу сообщений, но и методы проверки целостности сообщений, идентификации отправителя / получателя (аутентификация), цифровые подписи, интерактивные подтверждения и технологии безопасного общения и т.д..
Самые формы тайнописи требовали
не более чем аналог карандаша
и бумаги, поскольку в те времена
большинство людей не могли читать. Распространение
письменности, или письменности среди
врагов, вызвало потребность именно в
криптографии. Основными типами классических
шифров является перестановочное шифры,
которые изменяют порядок букв в сообщении,
и подстановочные шифры, которые систематически
заменяют буквы или группы букв другими
буквами или группами букв. Простые варианты
обоих типов предлагали слабую защиту
от опытных противников. Одним из ранних
подстановочных шифров был шифр Цезаря,
в котором каждая буква в сообщении заменялась
буквой через несколько позиций с азбуки.
Этот шифр получил имя Юлия Цезаря, который
его использовал, со смещением в 3 позиции,
для общения с генералами во время военных
кампаний, подобно кода EXCESS-3 в булевой
алгебре.
Криптография и криптоанализ составляют криптологию, как единую науку о создании и взломе шифров.
Исторические основы криптологии
Понятие "Безопасность" охватывает широкий круг интересов как отдельных лиц, так и целых государств. В наше мобильное время видное место отводится проблеме информированной безопасности, обеспечению защиты конфиденциальной информации от ознакомления с ней конкурирующих групп
О важности сохранения информации в тайне знали уже в древние времена, когда с появлением письменности появилась и опасность прочтения ее нежелательными лицами.
Существовали три основных способа защиты информации. Один из них предполагал защиту ее чисто силовыми методами: охрана документа - носителя информации -физическими лицами, передача его специальным курьером и т.д.
Второй способ получил название "стеганография" (латино-греческое сочетание слов, означающих в совокупности "тайнопись").
Он заключался в сокрытии самого факта наличия информации. В данном случае использовались так называемые симпатические чернила. При соответствующем "проявлении" бумаги текст становится видимым. Один из примеров сокрытия информации приведен в трудах древнегреческого историка Геродота. На голове раба, которая брилась наголо, записывалось нужное сообщение. И когда волосы его достаточно отрастали, раба отправляли к адресату, который снова брил его голову и считывал полученное сообщение.
Третий способ защиты информации заключался в преобразовании смыслового текста в некий набор хаотических знаков (или букв алфавита). Получатель данного донесения имел возможность преобразовать его в то же самое осмысленное сообщение, если обладал ключом к его построению. Этот способ защиты информации называется криптографическим. Криптография - слово греческое и в переводе означает "тайнопись". По утверждению ряда специалистов криптография по возрасту - ровесник египетских пирамид. В документах древних цивилизаций - Индии, Египта, Месопотамии - есть сведения о системах и способах составления шифрованных писем.[9]
История криптографии насчитывает около 4 тысяч лет. В качестве основного критерия периодизации криптографии возможно использовать технологические характеристики используемых методов шифрования.
Первый период (приблизительно с 3-го тысячелетия до н. э.) характеризуется господством моноалфавитных шифров (основной принцип — замена алфавита исходного текста другим алфавитом через замену букв другими буквами или символами).
Второй период (хронологические рамки — с IX века на Ближнем Востоке (Ал-Кинди) и с XV века в Европе (Леон Баттиста Альберти) — до начала XX века) ознаменовался введением в обиход полиалфавитных шифров.
Третий период (с начала и до середины XX века) характеризуется внедрением электромеханических устройств в работу шифровальщиков. При этом продолжалось использование полиалфавитных шифров.
Четвёртый период — с середины до 70-х годов XX века — период перехода к математической криптографии. В работе Шеннона появляются строгие математические определения количества информации, передачи данных, энтропии, функций шифрования.
Обязательным этапом создания шифра
считается изучение его уязвимости к раз
личным известным атакам линейному и дифференциа
Современный период развития криптографии (с конца 1970-х годов по настоящее время) отличается зарождением и развитием нового направления — криптография с открытым ключом. Её появление знаменуется не только новыми техническими возможностями, но и сравнительно широким распространением криптографии для использования частными лицами. Правовое регулирование использования криптографии частными лицами в разных странах сильно различается — от разрешения до полного запрета.
Наиболее полные и достоверные сведения о шифрах относятся к Древней Греции.
Основное понятие криптографии - шифр (от арабского "цифра"; арабы первыми стали заменять буквы на цифры с целью защиты исходного текста). Секретный элемент шифра, недоступный посторонним, называется ключом шифра. Как правило, в древние времена использовались так называемые шифры замены и шифры перестановки.
Историческим примером шифра замены является шифр Цезаря (1 век до н.э.), описанный историком Древнего Рима Светонием. Гай Юлий Цезарь использовал в своей переписке шифр собственного изобретения. Применительно к современному русскому языку он состоял в следующем. Выписывался алфавит: А, Б, В, Г, Д,Е,...,; затем под ним выписывался тот же алфавит, но со сдвигом на 3 буквы влево.
Таким образом, можно утверждать, что основы криптологии были заложены еще в древности и, естественно, после многовекового развития нашли широкое применение в современной жизни.
1.2 Криптография в современном мире
Современная криптография образует отдельное
научное направление на стыке математики и информатики
На протяжении всей своей многовековой истории, вплоть до совсем недавнего времени, это искусство криптографии немногим, в основном верхушке общества, не выходя за пределы резиденций глав государств, посольств и – конечно же – разведывательных миссий. И лишь несколько десятилетий назад все изменилось коренным образом – информация приобрела самостоятельную коммерческую ценность и стала широко распространенным, почти обычным товаром. Ее производят, хранят, транспортируют, продают и покупают, а значит – воруют и подделывают – и, следовательно, ее необходимо защищать. Современное общество все в большей степени становится информационно–обусловленным, успех любого вида деятельности все сильней зависит от обладания определенными сведениями и от отсутствия их у конкурентов. И чем сильней проявляется указанный эффект, тем больше потенциальные убытки от злоупотреблений в информационной сфере, и тем больше потребность в защите информации.
Среди всего спектра методов защиты данных от нежелательного доступа особое место занимают криптографические методы. В отличие от других методов, они опираются лишь на свойства самой информации и не используют свойства ее материальных носителей, особенности узлов ее обработки, передачи и хранения. Образно говоря, криптографические методы строят барьер между защищаемой информацией и реальным или потенциальным злоумышленником из самой информации. Конечно, под криптографической защитой в первую очередь подразумевается шифрование данных. Раньше эта операция выполнялось человеком вручную или с использованием различных приспособлений. Поэтому развитие криптологии сдерживалось проблемой реализации шифра.
Проблема использования криптографических методов в информационных системах (ИС) стала в настоящий момент особо актуальна. С одной стороны, расширилось использование компьютерных сетей, в частности глобальной сети Интеpнет, по которым передаются большие объемы информации государственного, военного, коммерческого и частного характера, не допускающего возможность доступа к ней посторонних лиц. С другой стороны, появление новых мощных компьютеров, технологий сетевых и нейронных вычислений сделало возможным дискредитацию криптографических систем еще недавно считавшихся практически не раскрываемыми.
С конца 1990 годов начинается процесс
открытого формирования государственных
стандартов на криптографические протоколы.
Самым известным является начатый в 1997 году конкурс AES, в результате которого в 2000 году государственным стандартом США для
криптографии с секретным ключом был принят
шифр Rijndael, сейчас уже более известный как AES. Аналогичные
инициативы носят названия NESSIE (англ. New European Schemes for Signatures, Integrity, and Encryptions) вЕвропе и CRYPTREC (англ. Cryp
В самих алгоритмах
в качестве операций, призванных затруднить линейный и дифферен
Также развиваются принципиально новые направления. На стыке квантовой физики и математики развиваются квантовые вычисления и квантовая криптография. Хотя квантовые компьютеры лишь дело будущего, уже сейчас предложены алгоритмы для взлома существующих «надёжных» систем (например, алгоритм Шора). С другой стороны, используя квантовые эффекты, возможно построить и принципиально новые способы надёжной передачи информации. Активные исследования в этой области идут с конца 1980-х годов.
В современном мире криптография находит множество различных применений. Кроме очевидных — собственно, для передачи информации, она используется в сотовой связи, платном цифровом телевидении при подключении к Wi-Fi и на транспорте для защиты билетов от подделок, и в банковских операциях, и даже для защиты электронной почты от спама.[10]
2 ОСНОВНЫЕ ПОНЯТИЯ КРИПТОГРАФИИ
Разработкой методов преобразования (шифрования) информации с целью ее защиты от незаконных пользователей занимается криптография. Такие методы и способы преобразования информации называются шифрами.
Криптоанализ (от др.-греч. κρυ πτός — скрытый и анализ) — наука о методах расшифровки зашифрованной
информации без предназначенного для
такой расшифровки ключа.
Термин был введён американским криптографом Уильямом Ф. Фридманом в 1920 году. Неформально криптоанализ называют также взломом шифра.
В большинстве
случаев под криптоанализом понимается
выяснение ключа; криптоанализ включает также методы
выявления уязвимости криптографических
алгоритмов или протоколов.
Попытку раскрытия
конкретного шифра с применением методов
криптоанализа называют криптографической
атакой на этот шифр. Криптографическую
атаку, в ходе которой раскрыть шифр удалось,
называют взломом или вскрытием.
Шифрование (зашифрование) ― процесс применения шифра к защищаемой информации, т.е. преобразование защищаемой информации (открытого текста) в шифрованное сообщение (шифртекст, криптограмму) с помощью определенных правил, содержащихся в шифре. Дешифрование ― процесс, обратный шифрованию, т.е. преобразование шифрованного сообщения в защищаемую информацию с помощью определенных правил, содержащихся в шифре (на основе ключа шифрованный текст преобразуется в исходный).
Под ключом в криптографии понимают сменный элемент шифра, который применяется для шифрования конкретного сообщения. Например, ключом может быть величина сдвига букв шифртекста относительно букв открытого текста.
Вскрытие (взламывание) шифра ― процесс получения защищаемой информации из шифрованного сообщения без знания примененного шифра.
Способность шифра противостоять всевозможным атакам на него называют стойкостью шифра.
Под атакой на шифр понимают попытку вскрытия этого шифра.
Шифр замены осуществляет преобразование замены букв или других «частей» открытого текста на аналогичные «части» шифрованного текста.
Алфавит – конечное множество используемых для кодирования информации знаков.
Текст - упорядоченный набор из элементов алфавита.
Ключ - информация, необходимая для беспрепятственного шифрования и дешифрования текстов.
Криптографическая система представляет собой семейство T преобразований открытого текста. Члены этого семейства индексируются, или обозначаются символом k; параметрk является ключом. Пространство ключей K – это набор возможных значений ключа. Обычно ключ представляет собой последовательный ряд букв алфавита.
Криптосистемы разделяются на симметричные и с открытым ключом.
В симметричных криптосистемах и для шифрования, и для дешифрования используется один и тот же ключ.
Моно- и многоалфавитные подстановки ― это вид преобразований, заключающийся в замене символов исходного текста на другие (того же алфавита) по более или менее сложному правилу. Для обеспечения высокой криптостойкости требуется использование больших ключей. Многоалфавитная подстановка определяется ключом p=(p1, p2, …), содержащим не менее двух различных подстановок.
Гаммирование заключается в наложении на исходный текст некоторой псевдослучайной последовательности, генерируемой на основе ключа.
Наложение ― это обычно позначное (побуквенное) сложение или вычитание по тому или иному модулю.
Шифрмашина (шифровальное устройство) ― машина, реализующая какой-либо алгоритм шифрования.
2.1 Основные задачи и принципы криптографической защиты
Криптография — наука о методах обеспечения конфиденциальности и аутентичности информации. Математическая криптография возникла как наука о шифровании информации, т.е. как наука о криптосистемах. В классической модели системы секретной связи имеют место два полностью доверяющих друг другу участника, которым необходимо передавать между собой информацию, не предназначенную для третьих лиц. Такая информация называется конфиденциальной или секретной. Задача обеспечения конфиденциальности, т.е. защита секретной информации от противника - первая задача криптографии.
Часто возникает ситуация, когда информация не является конфиденциальной, но важен факт поступления сообщений в неискаженном виде, т.е. наличие гарантии, что сообщение не было подделано. Такая гарантия называется обеспечением целостности информации и составляет вторую задачу криптографии.
При передаче электронных документов (в том числе и через Интернет) возможна как их подмена или редактура, так и — в случае секретного текста — доступ посторонних лиц к передаваемой информации. Таким образом, электронные документы также нуждаются в криптографической защите.
Возникают две основные задачи по их защите от несанкционированного доступа:
- Обеспечение уверенности получателя в том, что документ подлинный и корректный, т.е. при передаче не был подменен или отредактирован;
- Обеспечение невозможности доступа посторонних лиц к содержанию документа.[10]
Когда речь идет об электронных документах, первая задача решается применением электронной цифровой подписи, вторая — зашифрованием документа.
Электронная цифровая подпись (ЭЦП) — цифровой аналог ручной подписи, обеспечивающий возможность проверки подлинности и корректности документа. Существует техническая возможность проверки электронной подписи: если документ подменен или искажен при передаче, подпись при проверке будет признана некорректной.
Зашифрование документа — видоизменение текста документа таким образом, что только тот или те, для кого текст документа предназначен, в состоянии восстановить исходный текст.
2.2 Криптографические программные продукты
Для защиты информации используются специальные пользовательские программные продукты. Они разделяются на две основные группы.
Первая группа, очень широко распространенная — это криптопровайдеры (или CSP, Cryptographic Service Providers). CSP не являются самостоятельными приложениями, они предоставляют криптографические функции другим приложениям — например, таким, как почтовые программы. Пользователь фактически не имеет дела непосредственно с CSP, работая с привычным ему пользовательским интерфейсом. CSP обладают универсальностью — один и тот же CSP может использоваться для работы со множеством различных программ. Примером такого продукта производства ООО «Криптоком» является криптопровайдер МагПро CSP.
Вторая группа — это библиотеки криптографических функций. Такие библиотеки содержат готовые функции, решающие криптографические задачи, и могут использоваться для создания новых приложений. Примером такого продукта производства ООО «Криптоком» является программный продукт «МагПро КриптоПакет».[10]
2.3 Криптографические алгоритмы
Для того чтобы с помощью электронной цифровой подписи можно было установить факт подмены или редактуры документа при передаче, необходимо, чтобы электронная цифровая подпись вырабатывалась на основе самого текста документа. Т.е. ЭЦП представляет собой последовательность символов, связанную с текстом документа так, что при изменении документа нарушается заданное соответствие между ЭЦП и текстом. Таким образом, для получения ЭЦП под документом нужно провести некоторое преобразование текста документа.
Для получения зашифрованного текста исходный текст также преобразовывается так, чтобы восстановление исходного текста было практически невозможным без знания определенной информации. Лица, обладающие этой информацией, должны быть в состоянии восстановить исходный текст. Очевидно, что информация, необходимая для восстановления текста (расшифрования), должна быть известна только адресатам.
Совокупность операций, которые производятся над текстом при криптографическом преобразовании, называется криптографическим алгоритмом.
В настоящее время существует множество криптографических алгоритмов, используемых для решения различных криптографических задач.
Алгоритмы, т.е. сами последовательности действий, не являются секретными.
На криптографические алгоритмы существуют стандарты. Надежность алгоритмов, соответствующих стандартам, тщательно анализируется специалистами. При работе с официальной документацией разрешается пользоваться только алгоритмами, соответствующими стандартам.
В разных странах существуют различные стандарты на алгоритмы. В программном обеспечении широко используются алгоритмы, соответствующие американским стандартам, чаще всего это алгоритм RSA.
Для выработки и проверки электронной подписи, а также зашифрования и расшифрования документов используются определенные последовательности действий, называемые криптографическими алгоритмами.
Криптографический алгоритм — это серьезная разработка, требующая немалого труда специалистов и отвечающая определенным требованиям. Одним и тем же алгоритмом может пользоваться для защиты информации большое количество пользователей, т.к. алгоритмы не являются секретной информацией.
На криптографические алгоритмы существуют стандарты, т.е. официально оформленные совокупности требований, которым эти алгоритмы должны отвечать. Эти стандарты различны в разных странах и изменяются со временем. Популярные американские алгоритмы — RSA, DSA и т.д. — которые часто используются в распространенных программных продуктах, отвечают американским стандартам.[10]
2.4 Криптографические ключи
В качестве секретной информации используются криптографические ключи.
Криптографический ключ представляет собой последовательность символов, выработанную по определенным правилам. Эта последовательность используется при криптографических преобразованиях текстов. Для каждого криптографического алгоритма существуют свои требования, в соответствии с которыми создаются ключи. Каждый ключ создается для определенного алгоритма.
Для того чтобы обеспечить невоспроизводимость электронной подписи и невозможность прочтения зашифрованных текстов посторонними людьми, в криптографии применяются криптографические ключи.
Современный криптографический ключ — это последовательность чисел определенной длины, созданная по определенным правилам на основе последовательности случайных чисел. Для каждого ключа последовательность случайных чисел создается заново, ни одна последовательность не используется более одного раза. Для генерации последовательностей случайных чисел используются специальные программные объекты или устройства, называемые датчиками случайных чисел.
Каждый алгоритм предъявляет собственные требования к ключам, поэтому любой криптографический ключ создается для определенного алгоритма и используется только с этим алгоритмом.
Если выработка электронной подписи и ее проверка, или зашифрование и расшифрование текста выполняются с помощью одного и того же ключа, такой подход называется симметричной криптографией (соответственно симметричные алгоритмы и симметричные ключи). Операции симметричной криптографии выполняются быстро и сравнительно просты. Но они требуют знания ключа по меньшей мере двумя людьми, что значительно повышает риск их компрометации (т.е. доступа к ним посторонних лиц).
Поэтому сейчас в основном используется асимметричная криптография. В асимметричной криптографии выработка электронной подписи или зашифрование выполняются на одном ключе, а проверка подписи или расшифрование — на другом, парном ключе.
В асимметричной криптографии применяются так называемые ключевые пары (key pairs). Каждая такая пара состоит из двух связанных между собой ключей. Один из этих ключей — закрытый (private key). Он известен только владельцу ключа и ни при каких условиях не должен быть доступен никому другому. Другой ключ — открытый (public key), он может быть доступен любому желающему.
Для выработки ЭЦП необходим закрытый ключ автора сообщения, для проверки — открытый. Таким образом, создать ЭЦП может только владелец закрытого ключа, а проверить — любой пользователь, получивший соответствующий открытый ключ.
Для зашифрования текста применяется открытый ключ адресата, для расшифрования — закрытый. Таким образом, зашифровать сообщение может любой человек, а расшифровать — только владелец соответствующего закрытого ключа, т.е. адресат.
Ключевая пара, используемая для работы с ЭЦП (выработки и проверки ЭЦП), называется ключами подписи (signature keys). Ключевая пара, используемая для зашифрования и расшифрования сообщений, называется ключами обмена (exchange keys).