Перейти к содержимому

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

  • автор:

№1 — Основные понятия и термины алгебраической криптографии#

Шифрование – преобразование текста с целью скрыть его содержание от несанкционированного прочтения.

Криптография – наука составления шифров и шифропротоколов.

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

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

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

Если ключ шифрования открыт, то есть не является секретным, то такие системы называются асимметричными, или системами с открытым ключом.

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

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

Основное правило шифрования#

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

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

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

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

Для шифрования используют одностороние функции y = f(x) с секретом.

1) для f существует f^ <-1>
2) f^ <-1>можно найти эффективно, зная секрет

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

Алфавит#

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

Алфавит может иметь обычный смысл: 33 буквы от А до Я или 26 букв от А до Z

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

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

Текстом будем называть упорядоченный набор знаков.

Имеется ещё одно понятие — единницы текста. Самая простая единица текста — знак. В качестве единицы текста можно считать, например, пары знаков – диграфы или тройки – триграфы.

При k \geq 2 последний k -граф текста может оказаться неполным, тогда его пополняют знаками выбраннрого вида.

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

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

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

Текст a\&21\_\& оцифровывается ккак 015473. Допустим теперь, что в алфавите мы в качестве единицы текста выберем диграфы. Паре \alpha ,2 \iff 2 \text < >5 отвечается запись числа (2,5) . В 8-ричной системе исчисления : (2,5)_ <8>= 5 + 2 * 8 = 21 . Всевозмодных пар 8^2 = 64 . Все они нумируются двузначными числами в 8-ричных системе исчиления от (0,0)_ <8>= 0 до
(7,7)_<8>=7+7*8=7+56=63

Если мы рассмотрим k -граф (a_,a_,\dots,a_<0>) , то ему можно сопоставить число

Для русского алфавита удобно выбрать нумерацию 33-ричной системе
\text <ГОД >\iff 3,15,4

Три графу поставим в соответствие число (3,15,4)_<33>=4+15*33+3*33^2=3766

Обозначим m \in \<0,1\>^* означает m -бинарная последовательность (последовательность нулей и единиц).

При использовании бинарных последовательностей удобно, чтобы алфавит содержал 2^k знаков.

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

Иногда платформы исходного и зашифрованного текста разные.

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

Уроки 125 — 135
Хэширование и пароли. Безопасность в Интернете
§78. Шифрование. §79. Хэширование и пароли. §80. Современные алгоритмы шифрования. §81. Стеганография. §82. Безопасность в Интернете

Один из методов защиты информации от неправомерного доступа — это шифрование, т. е. кодирование специального вида.

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

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

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

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

Криптография — это наука о способах шифрования информации.

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

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

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

Все шифры (системы шифрования) делятся на две группы — симметричные и несимметричные (с открытым ключом).

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

Криптостойкость шифра — это устойчивость шифра к расшифровке без знания ключа.

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

Шифр Цезаря 1 — один из самых известных и самых древних шифров. В этом шифре каждая буква заменяется на другую, расположенную в алфавите на заданное число позиций k вправо от неё. Алфавит замыкается в кольцо, так что последние символы заменяются на первые. На рисунке 10.2 — пример шифра Цезаря (со сдвигом 3) 2 .

1 Назван в честь римского императора Гая Юлия Цезаря, использовавшего его для секретной переписки.

2 Будем считать, что буквы «Е» и «Ё» совпадают.

Рис. 10.2

Рис. 10.2

Будем считать, что буквы «Е» и «Ё» совпадают.

Знаменитая фраза «ПРИШЕЛ УВИДЕЛ ПОБЕДИЛ» при использовании шифра Цезаря со сдвигом 3 будет закодирована так:

ТУЛЫИО ЦЕЛЗИО ТСДИЗЛО

Если первая буква алфавита имеет код 0, вторая — код 1 и т. д., алгоритм шифрования может быть выражен формулой

где х — код исходного символа, k — величина сдвига, y — код символа-замены, n — количество символов в алфавите, а запись (х + k) mod n обозначает остаток от деления х + k на n. Операция взятия остатка от деления необходима для того, чтобы замкнуть алфавит в кольцо. Например, при использовании русского алфавита (32 буквы, без буквы «Ё») для буквы «Я» (код 31) получаем код заменяющего символа (31 + 3) mod 32 = 2, это буква «В».

Ключом для шифра Цезаря служит сдвиг k, если его знать, то сообщение легко расшифровать. Для этого используется формула

х = (y — k + n) mod n.

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

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

3 Назван по имени Блеза Виженера, швейцарского дипломата XVI века.

Например, пусть ключевое слово — «ЗАБЕГ». По таблице (рис. 10.3) определяем коды букв.

Рис. 10.3

Рис. 10.3

Получаем: «3» — 7, «А» — 0, «Б» — 1, «Е» — 5, «Г» — 3. Это значит, что для кодирования первой буквы любого текста используется сдвиг 7, для кодирования второй — 0 (символ не меняется) и т. д. Для пятой буквы используется сдвиг 3, а для шестой — снова 7 (начинаем «проходить» кодовое слова с начала). Фраза «ПРИШЕЛ УВИДЕЛ ПОБЕДИЛ» при использовании шифра Виженера с ключом «ЗАБЕГ» будет закодирована в виде «ЦРЙЭИТ УГНЗМЛ РУДМДЙР».

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

Следующая страница Вопросы и задания

Cкачать материалы урока

Что такое криптография и как она стала частью нашей жизни

Фото: Unsplash

Криптография — это технология шифрования исходного сообщения в секретный код или шифр и его последующего дешифрования. Термин происходит от древнегреческих kryptós — скрытый, и graphein — писать.

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

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

Фото:Shutterstock

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

Алгоритмы шифрования

Алгоритмы шифрования в криптографии делятся на два основных класса:

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

Фото: Otus.ru

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

Фото: Otus.ru

Как развивалась криптография

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

Прародители криптографии и ее развитие до XX века

Первые сведения об осознанно измененных символах датируются [1] 1900 годом до н. э. — это были видоизмененные иероглифы, найденные археологами в гробнице древнеегипетского аристократа Хнупхотепа II. При этом историки предполагают, что подмена символов использовалась не с целью шифрования, а скорее для привлечения внимания, предлагая желающим потренироваться в разгадывании закодированного текста.

Со временем криптография стала использоваться государственными деятелями в военном деле и для общения с доверенными лицами. Так появился шифр Цезаря [2], названный в честь римского диктатора. Известно, что он отправлял приказы своим генералам на фронт в зашифрованном виде. Цезарь использовал моноалфавитный шифр или шифр простой замены. Он работает по принципу сдвига: буквы заменяются на следующие в алфавитном ряду через определенный шаг. Например, при тройном сдвиге, буква A заменяется на D, B — на E и так далее.

Шифр Цезаря.

В Средние века криптографией уже пользовались почти все западноевропейские правители. Сложность шифрования почти не менялась в течение многих веков. Пока в XV веке итальянский ученый Леон Баттиста Альберти по заказу папской канцелярии не разработал полиалфавитный шифр на смену моноалфавитным кодам, что вывело криптографию на новый уровень [3]. Его метод заключался в использовании медного шифровального диска с двумя кольцами, на каждом из которых был начертан алфавит. За счет их прокрутки осуществлялось двойное шифрование.

От мировых войн к первым компьютерам

В XX веке активно развивалась радиосвязь. Военные стали использовать ее для оперативной отправки приказов. При этом у нее был существенный недостаток: стратегически важные данные стали более уязвимыми для перехвата. Это послужило толчком к новому этапу развития криптографии [4].

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

В разгар Второй мировой войны британскому математику Алану Тьюрингу и его коллегам по Правительственной школе кодов и шифров Великобритании была поручена важнейшая миссия — научиться перехватывать и расшифровывать сообщения немецкого командования. Результатом их работы стала вычислительная машина «Бомба», предназначенная для взлома шифров, которые генерировала «Энигма». После окончания войны Уинстон Черчилль сказал королю Георгу VI, что именно проект Тьюринга помог стране обеспечить преимущество над противником. А «Бомба» и последовавшие за ней вычислительные машины стали прототипами современных компьютеров [5].

Криптография для всех

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

В начале 1970-х годов компания IBM создала алгоритм Lucifer — первый блочный (шифрующий данные блоками фиксированной длины) шифр для гражданского применения [6]. Как раз в это время происходил бурный рост экономики США, а вместе с ним закладывались основы глобальной финансовой системы, которая все активнее использовала электронные транзакции. Надежный алгоритм для защиты этих данных стал необходимостью.

Далее, уже по заказу Национального бюро стандартов США, на основе алгоритма Lucifer был разработан шифр DES (Data Encryption Standard) [7]. Этот шифр заложил основу симметричного шифрования, предполагающего наличие одного секретного кода. Начиная с 1977 года, государственные органы США были обязаны использовать DES для защиты конфиденциальной информации в правительственных компьютерных системах и сетях. Этот стандарт применялся до начала 2000-х годов, пока ему на смену не пришел более совершенный AES (Advanced Encryption Standard) [8].

С развитием интернета в 1990-е годы встал вопрос защиты данных простых людей. Независимые криптографы работали над продвинутыми методами шифрования, которые стали бы доступны всем пользователям. При этом ученые стремились добавить дополнительный — по сравнению с симметричным шифрованием — уровень защиты, предложив использовать два ключа вместо одного. В 1977 году появился алгоритм RSA, название которого образовано от первых букв фамилий его разработчиков из Массачусетского технологического института — Рона Ривеста, Ади Шамира и Леонарда Адлемана. Именно он стал наиболее распространенным асимметричным алгоритмом.

В 1991 году американский программист Фил Циммерман написал программу шифрования, которой дал ироничное название PGP (Pretty Good Privacy) — в дословном переводе «достаточно хорошая приватность». Она стала первой общедоступной кодовой программой: Циммерман, будучи настоящим энтузиастом и фанатом своего дела, бесплатно опубликовал ее в интернете. И тут же у него начались проблемы с законом [9]. То, что сейчас является инструментом обеспечения безопасности каждого в интернете, тогда держалось в секрете. Против Циммермана возбудили уголовное дело за нарушение Закона о контроле за экспортом оружия — в США в то время криптографическое программное обеспечение все еще считалось военным ресурсом. Хотя уже в 1996 году расследование было прекращено без предъявления обвинений, а PGP стала де-факто стандартом для защиты электронной почты.

Другим важным событием в развитии криптографии стало создание командой Netscape протокола SSL (Secure Sockets Layer) для обеспечения шифрованного соединения между веб-сервером и веб-браузером [10]. Разработанный в 1990-е годы SSL является предшественником шифрования TLS (Transport Layer Security), используемого сегодня. Веб-сайт, реализующий SSL/TLS, имеет в своем URL-адресе «HTTPS» вместо «HTTP». Маркировка «S» свидетельствует о дополнительном уровне защиты.

Принципы современной криптографии

Современная криптография использует ряд ключевых принципов, без соблюдения которых ни один алгоритм не может считаться безопасным [11]:

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

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

Невозможность отказа от ответственности — благодаря инструментам определения источника данных, отказ от авторства собственного сообщения не представляется возможным. Этот принцип гарантирует, что у человека не получится отказаться от своего же сообщения, обвинив алгоритм в подмене: сообщение закреплено за автором. Его можно удалить, но поменять авторство — нет.

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

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

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

У принципа Кергоффса есть альтернативы, например, концепция «безопасность через неясность» (Security through obscurity или STO), которая предполагает, что злоумышленник не сможет узнать об уязвимостях системы благодаря секретности ее алгоритмов [13].

Как применяется криптография

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

Аутентификация

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

Фото:Shutterstock

Яркий пример, продемонстрировавший неотделимость цифровой подписи от человека, — скандал с утечкой данных с компьютера Хантера Байдена, сына кандидата (на тот момент) в президенты Джо Байдена [14]. Эксперты-криптологи, сотрудничавшие с газетой Washington Post, смогли подтвердить подлинность части писем именно благодаря электронным подписям и временным меткам. Так как письма были отправлены через почтовый сервис Google, использующий тщательно защищенные сертификаты, не оставалось сомнений, что письма действительно отправлялись Хантером Байденом, а не были подделкой хакеров.

Безопасное соединение между сервером и браузером

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

Шифрование жестких дисков

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

Сквозное шифрование ( end-to-end encryption)

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

Фото:Markus Spiske / Unsplash

Электронные деньги

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

Криптовалюты

В 2009 году появилась первая в мире криптовалюта, полностью основанная на шифрах и неподконтрольная ни одному государству в мире — биткоин [15]. О его создателях известно только то, что протокол криптовалюты опубликовал человек или группа людей под псевдонимом Сатоси Накамото. Биткоин, как и некоторые другие криптовалюты, в том числе созданная позже Ethereum, базируется на криптографии эллиптических кривых. Безопасность транзакций обеспечивает асимметричное шифрование через два ключа — публичный и приватный. Популярность криптовалют во многом базируется на их полной математичности, которая исключает человеческий фактор, позволяя при этом осуществлять транзакции между незнакомцами, которые не доверяют друг другу.

Квантовая криптография

Это технология защиты информации, основанная на принципах квантовой механики. Специалисты называют ее криптографией будущего. Из-за своей высокой стоимости и сложности применения она пока является «‎проектом в разработке»‎ и еще на пути к практическому использованию. При этом ведущие технологические гиганты уже рассказывают о своих успехах в этом направлении [16].

Задание на итоговый проект модуля 1

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

1. Криптология и ее составляющие

Криптология — это область знаний, которая включает в себя:

Криптографию (науку о шифрах).

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

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

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

2. Криптографический ключ

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

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

Разновидности криптографических ключей:

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

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

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

3. Алфавит в криптографии

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

4. Подходы к криптоанализу

Существует много разных подходов и методов к криптоанализу (взлому шифров).

Опишем самые простые из них:

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

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

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

Минус этого подхода — зависимость от языка, авторство текста и его стилистика.

5. Шифр Цезаря

Это один из самых простых и известных методов шифрования. Назвали его, само собой, в честь императора Гая Юлия Цезаря, применявшего его для секретной переписки с генералами.

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

Допустим, мы устанавливаем сдвиг на 3. В таком случае А заменится на Г, Б станет Д, и так далее.

Это минимум теоретических данных, которые понадобятся тебе для выполнения итогового проекта. Переходим к описанию задания!

Итоговый проект к модулю Java Syntax. Пишем криптоанализатор

Задача: написать программу, которая работает с шифром Цезаря.

За основу криптографического алфавита возьми все буквы русского алфавита и знаки пунктуации (. , ”” : — ! ? ПРОБЕЛ). Если попадаются символы, которые не входят в наш криптографический алфавит, просто пропусти их.

Обязательные требования

У программы должно быть 2 режима:

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

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

Криптоанализ методом brute force

Программа должна взламывать зашифрованный текст, переданный в виде текстового файла.

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

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

Дополнительные требования(опционально)

1. Криптоанализ методом статистического анализа

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

2. User Interface

Все диалоговые окна с пользователем делай на свое усмотрение. При желании можно использовать графические фреймворки Swing, JavaFX.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *