Криптография: способы шифрования и дешифрования
История развития криптографии, ее основные понятия. Простейший прием дешифровки сообщения. Основные методы и способы шифрования, современный криптографический анализ. Перспективы развития криптографии. Создание легкого для запоминания и надежного пароля.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 18.12.2011 |
Размер файла | 3,9 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
АЛМАТИНСКИЙ УНИВЕРСИТЕТ ЭНЕРГЕТИКИ И СВЯЗИ
КАФЕДРА ЭЛЕКТРОНИКИ
ОРГАНИЗАЦИЯ И УПРАВЛЕНИЕ ЗИ
Курсовая работа на тему:
" Криптография: способы шифрования и дешифрования "
Выполнила: студ. гр. ЭСТк-08-1
Апсаттар Л.И.
Принял: Елеукулов Е.Н.
АЛМАТЫ 2011
Содержание
- Введение
- 1. История развития криптографии
- 1.1 Основные понятия
- 1.2 Простейший прием дешифровки сообщения
- 2. Современная криптография
- 2.1 Методы и способы шифрования
- 2.2 Современный криптоанализ.
- Перспективы развития криптографии
- Заключение
- Список литературы
- Приложение
- Создание легкого для запоминания пароля
Введение
С момента зарождения письменности у людей сразу же появилось желание сделать написанное понятным не всем, а только узкому кругу. Началось всё с условных знаков, которыми пользовались еще в древности индейские племена. Целью таких знаков являлась передача информации от одного члена племени к другому. При этом никто из соседних враждующих племен, не имея сведений об этих знаках, не мог понять смысл сообщения. С тех пор прошли тысячелетия, образовались великие цивилизации, бурно развивались письменность, культура, наука. Однако до сих пор все страны мира нуждаются в надежной защите сведений государственной важности. Ни одна разведка мира не может обойтись без кодов и шифров, только со временем они стали сложнее и эффективнее.
Цель данной работы: изучить историю развития криптографии, рассмотреть и исследовать различные способы шифрования и дешифрования.
Для этого будут рассмотрены история развития шифров, некоторые классические шифры, подвергнутся анализу отдельные способы расшифровки и математические подходы к составлению шифров.
Планируется изучить статьи отечественных и зарубежных математиков 70-80 гг. XX века, а также современных специалистов в области криптографии и криптологии.
1. История развития криптографии
1.1 Основные понятия
Возможно ещё наши предки, жившие в каменном веке, оставляли друг другу краткие послания с помощью камней, прутьев или линий на земле. Такие послания указывали более короткий путь к водопою или поляне, где росли растения, пригодные в пищу. К шифровкам они отношения не имеют и появились в связи с бедностью первобытного языка.
Индейские племена, сохранившиеся до наших дней, используют условные знаки. Цель таких знаков - передать информацию от одного члена племени к другому. Индейцы племени сиу используют для условных знаков рисуночное письмо. Ученые называют такие схематичные рисунки пиктограммами.
Вот так выглядит на языке сиу костёр, спрятанное продовольствие, враг (животное - медведь или волк), далеко (два дня пути), далеко (десять дней пути). Конечно, можно придумать свои знаки на основе индейских пиктограмм и договориться об их использовании, например, перед туристическим походом для обозначения схемы маршрута - изменений направления, развилок, привалов. Знаки легко начертить заостренной палкой на земле или мелом на камне.
Все привыкли к словам "шифр" и "код", но мало кто задумывался, что на самом деле они означают. Все шифры строятся по похожим законам. Одна буква или цифра заменяет только одну букву или цифру. "1" может означать "А" или "Я", но никак не слог "НА" или целое слово "Англия". Шифры бывают простые и сложные. В простых шифрах один знак всегда заменяет одну и ту же букву или цифру. Например, "О" всегда заменяет "К", а "9" - "Ф".
Коды устроены по-другому. Буква, знак, цифра, слог или целое слово могут заменять букву, знак, слог, слово, группу слов или даже целую мысль. Например, группа цифр "98765" означает "война с Германией", а слог "КА" - "война". Но каждый раз, когда в послании будет использоваться эта группа цифр или слово, они будут означать одно и то же. Теперь кодированием стали называть изменение исходного текста, цель которого - подготовка к передаче его с помощью каких-то технических устройств. Современные примеры кодирования нам очень хорошо известны, это телеграф или цифровая телефонная связь (в частности, все мобильные телефоны). Способ кодирования не является секретом, наоборот, он должен быть известен всем, кто использует данный способ связи. Наверное, одна из самых старых систем кодировки - флажковая азбука, которая издавна применялась на флоте (см. Приложение). В данной работе будут рассмотрены только шифры.
Криптография - тайная система изменения письма с целью сделать текст непонятным для непосвященных лиц. Начало криптографии совпадает с началом письменности, так как написанный текст мог понять только умеющий читать.
Существовали три основных способа защиты информации. Один из них предполагал защиту силовыми методами: охрана документа - носителя информации - физическими лицами, передача его специальным курьером и т.д. Второй способ получил название "стеганография" - латино-греческое сочетание слов, означающих в совокупности "тайнопись". Он заключался в сокрытии самого факта наличия информации. В данном случае использовались так называемые симпатические чернила. При соответствующем "проявлении" бумаги текст становится видимым.
Один из примеров сокрытия информации приведен в трудах древнегреческого историка Геродота. На голове раба, которая брилась наголо, записывалось нужное сообщение. И когда волосы его достаточно отрастали, раба отправляли к адресату, который снова брил его голову и считывал полученное сообщение.
Третий способ защиты информации заключался в преобразовании смыслового текста в некий набор хаотических знаков (или букв алфавита). Получатель данного донесения имел возможность преобразовать его в то же самое осмысленное сообщение, если обладал ключом к его построению. Этот способ защиты информации называется криптографическим. Криптография - слово греческое и в переводе означает "тайнопись". По утверждению ряда специалистов криптография по возрасту - ровесник египетских пирамид. В документах древних цивилизаций - Индии, Египта, Месопотамии - есть сведения о системах и способах составления шифрованных писем.
Историческим примером шифра замены является шифр Цезаря (1 век до н.э.), описанный историком Древнего Рима Светонием. Гай Юлий Цезарь использовал в своей переписке шифр собственного изобретения. Применительно к современному русскому языку он состоял в следующем. Выписывался алфавит: А, Б, В, Г, Д, Е,.,; затем под ним выписывался тот же алфавит, но со сдвигом на 3 буквы влево:
а |
б |
в |
г |
д |
е |
ж |
з |
и |
й |
к |
л |
м |
н |
о |
п |
|
г |
д |
е |
ж |
з |
и |
й |
к |
л |
м |
н |
о |
п |
р |
с |
т |
|
р |
с |
т |
у |
ф |
х |
ц |
ч |
ш |
щ |
ъ |
ы |
ь |
э |
ю |
я |
|
у |
ф |
х |
ц |
ч |
ш |
щ |
ъ |
ы |
ь |
э |
ю |
я |
а |
б |
в |
При зашифровке буква А заменялась буквой Г Б заменялась на Д, Б-Ей так далее. Так, например, слово "РИМ" превращалось в слово "УЛП". Получатель сообщения "УЛП" искал эти буквы в нижней строке и по буквам над ними восстанавливал исходное слово "РИМ". Ключом в шифре Цезаря является величина сдвига 3-й нижней строки алфавита. Преемник Юлия Цезаря - Цезарь Август - использовал тот же шифр, но с ключом - сдвиг 4. Слово "РИМ" он в этом случае зашифровал бы в буквосочетание "ФМР".
В художественной литературе классическим примером шифра замены является известный шифр "Пляшущие человечки" (К. Дойля). В нем буквы текста заменялись на символические фигурки людей. Ключом такого шифра являлись позы человечков,, заменяющих буквы.
1.2 Простейший прием дешифровки сообщения
Примерно в конце первого тысячелетия арабские ученые придумали метод, который позволял довольно быстро и легко взламывать такие шифры при условии, что имеется довольно большой кусок текста (хотя бы 2-3 сотни знаков). Дело в том, что при тщательном изучении богословами священной книги мусульман - Корана - выяснилось, что некоторые буквы алфавита появляются в текстах очень часто, а другие, наоборот, очень редко. Более внимательные наблюдения показали, что частота появления одной и той же буквы в различных текстах почти постоянна. Это значит, что если взять несколько не очень коротких текстов, для каждого из них подсчитать, сколько раз в нем встречается интересующая нас буква, и разделить это число на общее число знаков в тексте, то все полученные значения окажутся очень близкими между собой. В таблице изображена частота букв русского алфавита. Обратим внимание на то, что в ней учитываются буквы и пробел, но не учитываются знаки препинания. Как видно, в русских текстах чаще всего встречается буква "о", а реже всего буквы "ф" и "э", их частоты отличаются в 45 раз.
Таблица 1.
Буква |
пробел |
о |
е, ё |
а |
и |
т |
н |
с |
|
Частота |
0,175 |
0,090 |
0,072 |
0,062 |
0,062 |
0,053 |
0,053 |
0,045 |
|
Буква |
р |
в |
л |
к |
м |
д |
п |
у |
|
частота |
0,040 |
0,038 |
0,035 |
0,028 |
0,026 |
0,025 |
0,023 |
0,021 |
|
Буква |
я |
ы |
з |
ь, ъ |
б |
г |
ч |
й |
|
Частота |
0,018 |
0,016 |
0,016 |
0,014 |
0,014 |
0,013 |
0,012 |
0,010 |
|
Буква |
х |
ж |
ю |
ш |
ц |
щ |
э |
ф |
|
Частота |
0,009 |
0,007 |
0,006 |
0,006 |
0,004 |
0,003 |
0,002 |
0,002 |
Для расшифровки текста предлагается поступать так:
сначала для каждого символа шифрованного текста подсчитать его частоту;
затем расположить эти символы в порядке убывания частоты: сначала самый частый, потом следующий и так далее;
расположить буквы алфавита данного языка тоже в порядке убывания частоты;
заменить в шифрованном тексте первую букву первого списка на первую букву второго списка и так далее.
Рассмотрим на примере применение данного метода. Возьмем текст, зашифрованный с помощью шифра замены, представленного выше (для простоты рассуждений сохраним пробелы между словами).
Ю еивюкгзя ймнм фдтрфзо гмжлядкфджгъц,
Я гмвл гм тижийкмк гиждргию кждеи,
Фдтгмййю фъчм дг обифдэ гмедяджгдц
Ибмяйигржзцйядод йкдбеи
Гмк, фмйы ю гм лвжл - рлчи ф тифмкгдц бзжм
Фмйы взж емжмазфмк з кбмгыю лнмазк,
З йбифмг нлрл ю рдядбы ф едрблггдв взжм
Азф нлрмк сдкы дрзг еззк.
Для начала подсчитаем общее количество знаков в тексте (напомним, что учитываются только буквы и пробелы между словами, но не знаки препинания) - 270. Затем составим таблицу частоты знаков в зашифрованном тексте (таблица2).
Таблица 2.
Знак |
Пробел |
м |
д |
г |
к |
з |
ф |
и |
|
Количество |
45 |
24 |
21 |
20 |
15 |
14 |
14 |
13 |
|
Частота |
0,166 |
0,089 |
0,078 |
0,074 |
0,056 |
0,052 |
0,052 |
0,048 |
|
Знак |
ж |
й |
л |
р |
б |
е, ё |
ю |
я |
|
Количество |
12 |
10 |
10 |
9 |
8 |
7 |
7 |
7 |
|
Частота |
0,044 |
0,037 |
0,037 |
0,033 |
0,030 |
0,026 |
0,026 |
0,026 |
|
Знак |
в |
ы |
н |
т |
ц |
а |
о |
ъ, ь |
|
Количество |
6 |
5 |
4 |
4 |
4 |
3 |
3 |
2 |
|
Частота |
0,022 |
0,019 |
0,015 |
0,015 |
0,015 |
0,011 |
0,011 |
0,007 |
|
Знак |
ч |
с |
э |
п |
у |
х |
ш |
щ |
|
Количество |
2 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
|
Частота |
0,007 |
0,004 |
0,004 |
0 |
0 |
0 |
0 |
0 |
|
После этого начнем заменять буквы из зашифрованного текста сходными с ними по частоте из русского алфавита, пользуясь таблицами 1 и 2. Далее, если мы видим две буквы со схожими частотами, то будем руководствоваться правилами русского языка и просто благозвучием, например, нет слов ю, ф и т.д. Буквы "Ь" и "Д" из нашего текста имеют частоты близкие к буквам "Е" и "О". Таким образом, букву "М" следует заменить на букву "Е", нежели на "О", в таком случае "Д" меняем на "О", получим:
Ю еивюкгзя йене фотрфзо гежляокфожгъц,
Я гевл ге тижийкек гижоргию кжоеи,
Фотгеййю фъче ог обифоэ гееояожгоц
Ибеяйигржзцйяооо йкобеи
Гек, фейы ю ге лвжл - рлчи ф тифекгоц бзже
Фейы взж еежеазфек з кбегыю лнеазк,
З йбифег нлрл ю рояобы ф еорблггов взже
Азф нлрек сокы орзг еззк.
После замены можно увидеть, что в тексте часто повторяется слово "ге", что может означать только "не", следовательно, "г" меняется на "н". Далее заметим, что буквой "з" обозначается одно слово, перед которым в одном случае ставится запятая, а в другом - нет. Эта буква к тому же стоит на стыке согласных, а значит - "з" обозначает гласную букву. Предположим, что это буква "и", снова поменяем текст:
Ю еивюкния йене фотрфио нежляокфожнъц,
Я невл не тижийкек нижорнию кжоеи,
Фотнеййю фъче ог обифоэ нееояожгоц
Ибеяйинржицйяооо йкобеи
Нек, фейы ю не лвжл - рлчи ф тифекноц биже
Фейы виж еежеазфек и кбеныю лнеаик,
И йбифен нлрл ю рояобы ф еорблннов взже
Азф нлрек сокы орин еиик.
Затем мы видим, что буква "к" стоит после букв "и" и "е" в конце слова, что характерно для глаголов. Сверяясь с таблицей частотности, мы видим две согласные с похожей частотой - это "т" и "с". Кроме того, нельзя не заметить, что в тексте присутствует слово "нек", что естественно соответствует слову "нет". Таким образом "к" в данном шифре означает "т". Далее по таблице частотности у нас следует буква "ф". Она обозначает слово из одной буквы, которое не может быть ничем другим, кроме как предлогом: в или к. Но так как у буквы "в" частота встречаемости в русском алфавите больше, то значит в шифровке "ф" меняем на "т". Снова изменим текст.
Ю еивютния йене вотрвио нежляотвожнъц,
Я невл не тижийтет нижорнию тжоеи,
Вотнеййю въче ог обивоэ нееояожгоц
Ибеяйинржицйяооо йтобеи
Нет, вейы ю не лвжл - рлчи в тиветноц биже
Вейы виж еежеазвет и тбеныю лнеаит,
И йбивен нлрл ю рояобы в еорблннов взже
Азв нлрек соты орин еиит.
Теперь рассмотрим букву "и". Судя по ее расположению в словах, она означает гласную букву, а из гласных самая большая частота из нерассмотренных нами у буквы "а". Продолжим продвигаться по таблице частотности. Буква "ж" по таблице частотности соответствует букве "р", а букве "й" - "с". Кроме того, в тексте еще встречаются слова из одной буквы, которые являются предлогами. Одна из них - "я", которая как раз по частотности соответствует букве "к". Теперь снова рассмотрим текст.
Ю еавютния сене вотрвио нерляотворнъц,
К невл не тарастет нарорнаю троеа,
Вотнессю въче он обавоэ нееокоргоц
Абексинррицскооо стобеи
Нет, весы ю не лврл - рлчи в тиветноц бире
Весы вир еереазвет и тбеныю лнеаит,
И сбавен нлрл ю рокобы в еорблннов вире
Аив нлрек соты орин еиит.
Теперь мы видим, что слово "весы" соответствует слову "весь", а "соть" - "хоть". Заменим "ы" на "ь", а "с" на "х". Еще можно заметить, что "ю" составляет слово из одной буквы, из оставшихся предлогов и местоимений это может быть только "я". Буква "л" соответствует "у". Судя по расположению букв в словах "б" соответствует "л". Снова преобразуем шифровку.
Я еавятник сене вотрвио нерукотворнъц,
К невл не тарастет нарорная троеа,
Вотнессю въче он олавоэ нееокоргоц
Алексинррицскооо столеи
Нет, весь я не уврл - ручи в тиветноц лире
Весь вир еереазвет и тленью унеаит,
И славен нурл я роколь в еорллннов вире
Аив нурек хоть орин еиит.
После преобразований стало ясно, что "троеа" - "тропа", "павятник" - "памятник", "тарастет" - "зарастет", "нерукотворнъц" - "нерукотворный", "выче" - "выше", "руша" - "душа", "нуду" - "буду", "воздвио" - "воздвиг", "аив" - "жив", а "главоэ" - "главою". После проделанных операций мы видим, что перед нами отрывок из стихотворения А.С. Пушкина "Памятник":
Я памятник себе воздвиг нерукотворный,
К нему не зарастет народная тропа,
Вознесся выше он главою непокорной
Александрийского столпа
Нет, весь я не умру - душа в заветной лире
Весь мир переживет и тленья убежит,
И славен буду я доколь в подлунном мире
Жив будет хоть один пиит.
2. Современная криптография
2.1 Методы и способы шифрования
Это исторические вехи в развитии криптографии. Рассмотрим поподробнее как устроены современные шифры.
В криптографической терминологии исходное послание именуют открытым текстом (plaintext или cleartext). Изменение исходного текста так, чтобы скрыть от прочих его содержание, называют шифрованием (encryption). Зашифрованное сообщение называют шифротекстом (ciphertext). Процесс, при котором из шифротекста извлекается открытый текст называют дешифровкой (decryption). Обычно в процессе шифровки и дешифровки используется некий ключ (key) и алгоритм обеспечивает, что дешифрование можно сделать лишь зная этот ключ.
Криптография - это наука о том, как обеспечить секретность сообщения. Криптоанализ - это наука о том, как вскрыть шифрованное сообщение, то есть как извлечь открытый текст не зная ключа. Криптология - это раздел математики, изучающий математические основы криптографических методов. Криптографией занимаются криптографы, а криптоанализом занимаются криптоаналитики.
Криптография покрывает все практические аспекты секретного обмена сообщениями, включая аутенфикацию, цифровые подписи, электронные деньги и многое другое.
Асимметричные шифры (также именуемые алгоритмами с открытым ключом, или - в более общем плане - криптографией с открытым ключом) допускают, чтобы открытый ключ был доступен всем (скажем, опубликован в газете). Это позволяет любому зашифровать сообщение. Однако расшифровать это сообщение сможет только нужный человек (тот, кто владеет ключом дешифровки). Ключ для шифрования называют открытым ключом, а ключ для дешифрования - закрытым ключом или секретным ключом.
Современные алгоритмы шифровки/дешифровки достаточно сложны и их невозможно проводить вручную. Настоящие криптографические алгоритмы разработаны для использования компьютерами или специальными аппаратными устройствами. В большинстве приложений криптография производится программным обеспечением и имеется множество доступных криптографических пакетов.
Многие качественные криптографические алгоритмы доступны широко - в книжном магазине, библиотеке, патентном бюро или в Интернет. К широко известным симметричным алгоритмам относятся DES и IDEA. Наверное самым лучшим асимметричным алгоритмом является RSA.
Некоторые из асимметричных алгоритмов могут использоваться для генерирования цифровой подписи. Цифровой подписью называют блок данных, сгенерированный с использованием некоторого секретного ключа. При этом с помощью открытого ключа можно проверить, что данные были действительно сгенерированы с помощью этого секретного ключа. Алгоритм генерации цифровой подписи должен обеспечивать, чтобы было невозможно без секретного ключа создать подпись, которая при проверке окажется правильной.
Цифровые подписи используются для того, чтобы подтвердить, что сообщение пришло действительно от данного отправителя (в предположении, что лишь отправитель обладает секретным ключом, соответствующим его открытому ключу). Также подписи используются для проставления штампа времени (timestamp) на документах: сторона, которой мы доверяем, подписывает документ со штампом времени с помошью своего секретного ключа и, таким образом, подтверждает, что документ уже существовал в момент, объявленный в штампе времени.
Цифровые подписи также можно использовать для удостоверения того, что документ принадлежит определенному лицу. Это делается так: открытый ключ и информация о том, кому он принадлежит подписываются стороной, которой доверяем. При этом доверять подписывающей стороне мы можем на основании того, что ее ключ был подписан третьей стороной. Таким образом возникает иерархия доверия. Очевидно, что некоторый ключ должен быть корнем иерархии (то есть ему мы доверяем не потому, что он кем-то подписан, а потому, что мы верим a-priori, что ему можно доверять).
Цифровая подпись документа обычно создается так: из документа генерируется так называемый дайджест (message digest) и к нему добавляется информация о том, кто подписывает документ, штамп времени и прочее. Получившаяся строка далее зашифровывается секретным ключом подписывающего с использованием того или иного алгоритма. Получившийся зашифрованный набор бит и представляет собой подпись. К подписи обычно прикладывается открытый ключ подписывающего. Получатель сначала решает для себя доверяет ли он тому, что открытый ключ принадлежит именно тому, кому должен принадлежать (с помощью сети доверия или априорного знания), и затем дешифрует подпись с помощью открытого ключа. Если подпись нормально дешифровалась, и ее содержимое соответствует документу, то сообщение считается подтвержденным.
Криптографические генераторы случайных чисел производят случайные числа, которые используются в криптографических приложениях, например - для генерации ключей. Обычные генераторы случайных чисел, имеющиеся во многих языках программирования и программных средах, не подходят для нужд криптографии. Хорошие криптографические системы создаются таким образом, чтобы сделать их вскрытие как можно более трудным делом.
Длины ключей, используемых в криптографии с открытым ключом обычно значительно больше, чем в симметричных алгоритмах. Здесь проблема заключается не в подборе ключа, а в воссоздании секретного ключа по открытому. В случае RSA проблема эквивалентна разложению на множители большого целого числа, которое является произведением пары неизвестных простых чисел. В случае некоторых других криптосистем, проблема эквивалентна вычислению дискретного логарифма по модулю большого целого числа (такая задача считается примерно аналогичной по трудности задаче разложения на множители). Имеются криптосистемы, которые используют другие проблемы.
Чтобы дать представление о степени сложности вскрытия RSA, скажем, что модули длиной 256 бит легко факторизуются обычными программистами. Ключи в 384 бита могут быть вскрыты исследовательской группой университета или компании.512-битные ключи находятся в пределах досягаемости крупных государств. Ключи длиной в 768 бит вероятно не будут надежны продолжительное время. Ключи длиной в 1024 бит могут считаться безопасными до тех пор, пока не будет существенного прогресса в алгоритме факторизации; ключи длиной в 2048 большинство считает надежными на десятилетия.
Важно подчеркнуть, что степень надежности криптографической системы определяется ее слабейшим звеном. Нельзя упускать из вида ни одного аспекта разработки системы - от выбора алгоритма до политики использования и распространения ключей.
2.2 Современный криптоанализ.
Криптоанализ - это наука о дешифровке закодированных сообщений без знания ключей.
Теоретически, любой шифровальный алгоритм с использованием ключа может быть вскрыт методом перебора всех значений ключа. Если ключ подбирается методом "грубой силы" (brute force), требуемая мощность компьютера растет экспоненциально с увеличением длины ключа. Ключ длиной в 32 бита требует 232 (около 109) шагов. Такая задача под силу любому дилетанту и решается на домашнем компьютере. Системы с 40-битным ключом (например, экспортный американский вариант алгоритма RC4) требуют 240 шагов - такие компьютерные мощности имеются в большинстве университетов и даже в небольших компаниях. Системы с 56-битными ключами (DES) требуют для вскрытия заметных усилий, однако могут быть легко вскрыты с помощью специальной аппаратуры. Стоимость такой аппаратуры значительна, но доступна для мафии, крупных компаний и правительств. Ключи длиной 64 бита в настоящий момент, возможно, могут быть вскрыты крупными государствами и уже в ближайшие несколько лет будут доступны для вскрытия преступными организациями, крупными компаниями и небольшими государствами. Ключи длиной 80 бит могут в будущем стать уязвимыми. Ключи длиной 128 бит вероятно останутся недоступными для вскрытия методом "грубой силы" в обозримом будущем.
Имеется много криптоаналитических подходов. Некоторые из наиболее важных для разработчиков приведены ниже.
· Атака со знанием лишь шифрованного текста (ciphertext-only attack): Это ситуация, когда атакующий не знает ничего о содержании сообщения, и ему приходится работать лишь с самим шифрованным текстом. На практике, часто можно сделать правдоподобные предположения о структуре текста, поскольку многие сообщения имеют стандартные заголовки. Даже обычные письма и документы начинаются с легко предсказуемой информации. Также часто можно предположить, что некоторый блок информации содержит заданное слово.
· Атака со знанием содержимого шифровки (known-plaintext attack): Атакующий знает или может угадать содержимое всего или части зашифрованного текста. Задача заключается в расшифровке остального сообщения. Это можно сделать либо путем вычисления ключа шифровки, либо минуя это.
· Атака с заданным текстом (chosen-plaintext attack): Атакующий имеет возможность получить шифрованный документ для любого нужного ему текста, но не знает ключа. Задачей является нахождение ключа. Некоторые методы шифрования и, в частности, RSA, весьма уязвимы для атак этого типа. При использовании таких алгоритмов надо тщательно следить, чтобы атакующий не мог зашифровать заданный им текст.
· Атака с помощью таймера (timing attack): Этот новый тип атак основан на последовательном измерении времен, затрачиваемых на выполнение операции возведения в степень по модулю целого числа. Ей подвержены по крайней мере следующие шифры: RSA, Диффи-Хеллман и метод эллиптических кривых.
Имеется множество других криптографических атак и криптоаналитических подходов. Однако приведенные выше являются, по-видимому, наиболее важными для практической разработки систем.
Перспективы развития криптографии
Не так давно в научно-популярной математической литературе появились сведения о создании известным в научных кругах математиком Сергеем Степановым так называемого "быстрого" алгоритма разложения на множители. Если этот метод будет признан, то в теоретической науке произойдет крупный обвал. Правда, не сразу, так как здесь все не так однозначно. У теоретиков-числовиков сейчас действительно идет борьба за построение так называемого полиномиального алгоритма факторизации - алгоритма по которому легко можно было бы найти число простых множителей числа), а также полиномиального алгоритма дискретного логарифмирования, который находил бы основание степени, в которую возведено число. Но если и будет построен такой алгоритм (на что претендует С. Степанов), он может оказаться быстрым лишь в некотором абстрактном математическом смысле, и для реальных систем это ничего на практике не изменит, т.к. реальные системы состоят из огромных чисел, и применение к ним данного алгоритма будет очень затруднительно.
криптография шифрование пароль дешифрование
Но даже если алгоритм окажется реалистичным, то совсем необязательно что вся современная открытая криптография будет полностью пересмотрена. Дело в том, что для решение какой-то одной задачи существует очень много разных математических решений. Даже в последние три-четыре года были различные продвижения в той или иной области математики, которые в сумме могут привести к усовершенствованию какого-либо алгоритма. Криптография - это наука на стыке фундаментальной математики, физики и прикладной технологии. А математический аппарат - это инструмент криптографии и по сути нечто вторичное, он определяется тем, что в данный момент удобно и легко реализовывать. За много веков использовали разное - сначала вычисления записывали на бумаге, потом появились счёты, колеса и т.п. простейшие счетные устройства, потом возникла элементная база компьютеров - и каждый раз создавался адекватный математический аппарат. Это приводило к развитию различных направлений в математике. Если раньше, до Второй мировой войны, основными в этой области были комбинаторика, теория вероятности, то после появления микроэлектроники стала актуальной теория автоматов, а теперь самое важное направление - теория сложности вычислений, а также теория чисел. То, что реально применяется, это так называемые односторонние функции с секретом. Эти функции нельзя обратить (а попросту расшифровать), если не знаешь встроенный секрет, "ловушку". За последние лет 15-20 было перебрано много кандидатов на эти функции. И из всех математических задач, которые были просмотрены на этот предмет (их несколько тысяч!) только в одной - в задаче разложения на множители - органически заложена возможность для встраивания секрета.
В течение последних 3-4 лет очень много стали говорить о двух таких разделах, как квантовая криптография и динамический хаос. Вообще, надо сказать, что в науке уже давно, много веков назад так сложилось, что если появляется какое-то новое направление, то сразу ищут возможные применения его в криптографии. Именно поэтому криптография динамично развивается на протяжении многих веков
Заключение
В результате проделанной работы, были рассмотрены на практике способы шифрования и дешифрования. Самым простым из них является шифр замены (или шифр Цезаря), основанный на сдвиге алфавита на определенное количество букв. Такие шифры называют алфавитными. Однако их можно довольно легко взломать, пользуясь методом частотного анализа. Современные шифры основаны на сложных математических алгоритмах, таких как умножение двух простых чисел, или логарифмирование. Однако надежность таких шифров основана только на сложности вычислений, необходимых для нахождения ключа. Как только современная математика дойдет до такого уровня, когда сложность данных вычислений будет сведена к минимуму, тогда можно будет говорить, о поражении криптографических систем с открытым ключом и разработке новых алгоритмов шифрования.
Любая страна, заинтересованная в сохранении государственной тайны и добыче секретных сведений других государств, пользуется различными шифрами. Из-за своей востребованности наука криптография (наука о тайнописи, шифрах и т.д.) обречена на дальнейшее развитие. Это значит, что очень скоро будут придуманы новые способы шифрования, а следовательно, и новые методы для их расшифровки.
Список литературы
1. Куянов, Д.И. Секреты шифров / Шаги в науку - 2007. Материалы муниципальной конференции обучающихся муниципальных образовательных учреждений, занимающихся учебно-исследовательской деятельностью. - Омск, 2007, 56 с.
2. Сборник элективных курсов. Математика.10-11 класс. Волгоград: Учитель, 2006.
3. // Математический клуб "Кенгуру". №14 (10-11 классы): шифры и математика. СПб., 2006.
4. Ященко В.И. "Криптография, которая раньше была засекречена"/ В.И. Ященко // Компьютерра. - 2008. - №20.
5. Фролов, Г.А. Тайна тайнописи. / М., 1992.
6. Жельников В.Л. Криптография от папируса до компьютера. М., 2006.
Приложение
Пароли используются в современном информационном обществе много где: email, Вконтакте, Одноклассники, форумы, да банковский счет в конце-концов. А известно ли вам, что встречаются люди, использующие пассы наподобие “123456?, “password”, собственная дату рождения и т.д. Не стоит говорить, на сколько опасно использовать такой простой пароль, особенно если он для всех аккаунтов один и тот же. Злоумышленнику достаточно будет узнать его и все - прощайте такие дорогие и милые душе аккаунты в социалках, почте, форумах… Чтобы обезопасить себя, следует придумывать уникальные и сложные для взломов пароли.
А как придумать сложный пароль? Кроме того, как его можно запомнить, тем более не один? В статье приведено несколько “фишек”, которые помогут в этом.
Помните признаки безопасного пассворда:
он не должен присутствовать в словаре;
должен содержать специальные символы и цифры;
должен содержать символы как верхнего, так и нижнего регистра;
минимальная длина - 10 символов;
не должен быть связан с личной информацией пользователя (дата рождения, почтовый индекс, номер телефона и т.д.)
Создание легкого для запоминания пароля
Можно использовать несколько способов для того чтобы создать надежный пароль, который легко запомнить. Ниже приведены несколько советов:
случайный образом замените буквы на цифры, например, flirt можно превратить в fl1r7;
возьмите предложение, которое будет вашим ключом для создания пароля, и первые буквы каждого слова и составят ваш пароль. Например, из “Everything I Do I Do It For You" получим EIDIDIFY;
берем слово, и переворачиваем его. Например, берем neighborhood и получаем doohrobhgien.
Эти примеры, конечно не идеальны. Хотя ваш пароль и не присутствует ни в одном словаре мира, он все еще не соответствует остальным признакам безопасного. Поиграйтесь, и попробуйте найти комбинацию, которая позволила бы учесть все.
Например, после непродолжительного придумывания можно получить наш базовый - “E1d_1D! 4Y:) ”
Как видите, этот пароль соответствует всем критериям безопасного пассворда. Его нельзя найти в словаре, он содержит спец символы, буквы встречаются как верхнего так и нижнего регистра, его длина 11 символов и он не может быть вычислен по моей личной инфе (поверьте на слово:))
Будьте креативными и мыслите шире
Компьютер может считать очень и очень быстро, быстрее чем самый умный человек в мире, но он не может созидать, творить, обладать креативностью. И это самое главное наше преимущество перед ним и хакерскими программами!
Как вы можете видеть, при придумывании пароля я руководствовался простейшими правилами. Я заменил “I” на “1? или “! ”. Придумывание собственных правил для замены символов - очень полезная вещь. Например, можно еще “a” заменять на “@”, “S” на “$” и т.д. Это все сделает ваши пароли на 99% неуязвимыми.
Еще парочка советов, которые сделают ваш пароль “бронебойней” для хакеров:
не пользуйтесь всем известными общими правилами для замен, вроде вышеупомянутой замены “a” на “@”;
если в пароле есть несколько одинаковых букв, то заменять их желательно разными символами;
можно набирать слова в другой, “не родной” раскладке. Например, берем слово “пароль" и вбиваем его в английской раскладке клавиатуры. Получаем “gfhjkm”;
определите для себя какое-то правило нажатия Shift при наборе пароля. Например, каждый второй символ будет набираться с “шифтом”. Например, “password" - > “pAsSwOrD”
Проверяем пароль на надежность
Хотите проверить свой пароль на надежность? Есть специальный онлайн сервис - The Password Meter, который проанализирует ваш пассворд и скажет, на сколько он надежный. Критериев оценки много, тем лучше и объективней будет результат.
Создавайте для каждого аккаунта свои пароли
Несколькими абзацами выше мы получили базовый пароль, который будет использоваться для дальнейшей генерации пассвордов для различных аккаунтов. Например, простым добавлением 3-х символов из названия сервиса, на котором регистрируемся. Что имеется в виду? Все очень просто. Наш базовый пароль “E1d_1D! 4Y:)". Регистрируемся на gmail.com. Наш пароль “E1d_1D! 4Y:) GMa”. Вконтакте? Пожалуйста - “E1d_1D! 4Y:) VKo”. Ну и т.д.
Двойная безопасность
Чтобы еще сильнее обезопасить себя от взлома, лучше всего иметь два базовых пароля. Первый будет использоваться для очень важных аккаунтов, например PayPal, GMail, а второй при регистрации на различного рода форумах и т.д.
Периодически меняйте свой пароль
Это очень важно. Каждые три месяца, в крайнем случае каждые полгода меняйте пароли на всех своих аккаунтах. Чем чаще, тем лучше. Сделать это можно несколькими способами:
изменение базового пароля
изменяйте логику замены обычных символов на специальные;
меняйте регистр символов с верхнего на нижний и наоборот;
набирайте пароль с зажатым “шифтом”.
изменение обычного пароля
измените логику определения символов, которые будут добавляться к базовому паролю от названия сервиса, на котором зарегистированы. Например, раньше к базовому паролю добавляли первые три символа, теперь берем и приклеиваем последние три. Таким образом, наш пароль на гугл. почте из “E1d_1D! 4Y:) GMa" превращается в “E1d_1D! 4Y:) ail”. На Вконтакте меняется с “E1d_1D! 4Y:) VKo" на “E1d_1D! 4Y:) kte”;
меняйте положение символов, которые идентифицируют ваш пароль для определенного аккаунта. Например, раньше они цеплялись в конец базового пароля, теперь можно их клеить в начало. Было “E1d_1D! 4Y:) GMa”, стало “GMaE1d_1D! 4Y:) ”;
можно добавить дату изменения в конце пароля, и отметить ее где-то в календаре, или просто запомнить.
Другими словами, будьте изобретательны! Используйте преимущества человека разумного перед тупыми железяками, что из себя и представляют компьютеры. Лучше перебдеть чем недобдеть.
Жизнь современного человека временами напоминает шпионский роман… Не согласитесь? А скажите, сколько раз за день вам приходится вводить коды доступа, набирать пароли, предъявлять различные удостоверения и пропуски? А знаете ли вы, как правильно выбрать стойкий к взлому, легко запоминаемый пароль?
Давайте рассмотрим самые распространенные ошибки пользователей при выборе пароля:
1) Выбор в качестве кодового слова имени (своего, жены, мужа, любимого кота, кролика и иже с ними). Количество имен на самом деле не так велико, если рассматривать это с позиций мощности современной вычислительной техники, да и способов выведывания такой информации уже есть предостаточно.
2) Выбор в качестве кодового слова последовательности цифр (самый "мертвый" вариант - 12345), даты рождения, записанной исключительно цифрами и слитно, сочетаний букв, расположенных на клавиатуре неподалеку от друг друга ("qwerty", "фывап" и т.д.). Цифры легко поддаются перебору, а выбор клавиатурной абракадабры имеет смысл только в том случае, если буквы расположены далеко от друг друга. И при этом не в алфавитном порядке. Но тогда как вы его будете запоминать?
3) Выбор в качестве пароля слова "пароль" или "password", а также их модификаций типа "пар0ль", "p@ssw0rd". Сюда же относятся все слова и словосочетания, обозначающие пароль или код.
4) Выбор в качестве пароля значимого слова. Существуют огромные словари, с помощью которых взломщик может подобрать его автоматическими средствами.
5) Выбор в качестве пароля нецензурных слов.
6) Выбор в качестве пароля короткой последовательности символов. Чем короче пароль, тем больше вероятность, что он будет взломан.
Итак, хороший пароль обязательно должен не соответствовать критериям, описанным выше. А еще лучше, если он будет удовлетворять следующим требованиям:
1) Используется сочетание букв и цифр, например LG52X32Х52 (кому интересно, взято с панели CDROM).
2) Встречаются знаки препинания и специальные символы. К примеру, LG52-32$52% (к сожалению, использовать такой способ возможно не всегда).
3) Используется длинные, на первый взгляд бессмысленные последовательности букв, основанные на легко запоминаемой фразе. Скажем, "тише едешь - дальше будешь" можно преобразовать в "тшеш-длешбдеш".
4) Длина пароля более восьми символов.
5) Пароль достаточно часто меняется. В идеале пароль должен меняться после каждого применения (считается, что это обеспечивает непробиваемую защиту).
Как же придумать пароль, который бы отвечал всем требованиям? Для этого необходимо применить все творческое воображение и фантазию. Можно комбинировать части названий офисной техники (удобно, что всегда перед глазами), текущей даты, размера зарплаты поделенной на количество рабочих дней. Можно использовать согласные буквы имени, фамилии, отчества начальника. Можно использовать принцип ассоциаций, когда составляется длинный ряд слов, связанных между собой образами, а не смыслом. В таком случае чем длиннее ряд, тем лучше. Существуют специальные программы генерации стойких паролей - тоже вполне могут использоваться.
Главное при выборе стойкого пароля: руководствоваться принципом - чем оригинальнее, тем лучше. И пожалуйста, не храните его на бумажке, прилепленной к монитору. Удачных паролей вам!
Размещено на Allbest.ru
Подобные документы
Особенности шифрования данных, предназначение шифрования. Понятие криптографии как науки, основные задачи. Анализ метода гаммирования, подстановки и метода перестановки. Симметрические методы шифрования с закрытым ключом: достоинства и недостатки.
курсовая работа [564,3 K], добавлен 09.05.2012Основные способы криптографии, история ее развития. Принцип шифрования заменой символов, полиалфавитной подстановкой и методом перестановки. Симметричный алгоритм шифрования (DES). Открытое распределение ключей. Шифры Ривеста-Шамира-Алдемана и Эль Гамаля.
реферат [39,3 K], добавлен 22.11.2013Определения криптографии как практической дисциплины, изучающей и разрабатывающей способы шифрования сообщений. История развития шифров. Хэш-функции и понятие электронной подписи. Системы идентификации, аутентификации и сертификации открытых ключей.
реферат [77,1 K], добавлен 10.12.2011Краткая история развития криптографических методов защиты информации. Сущность шифрования и криптографии с симметричными ключами. Описание аналитических и аддитивных методов шифрования. Методы криптографии с открытыми ключами и цифровые сертификаты.
курсовая работа [1,2 M], добавлен 28.12.2014Появление шифров, история эволюции криптографии. Способ приложения знаний особенностей естественного текста для нужд шифрования. Критерии определения естественности. Способ построения алгоритмов симметричного шифрования. Криптосистема с открытым ключом.
реферат [452,2 K], добавлен 31.05.2013История криптографии. Сравнение алгоритмов шифрования, применение в операционной системе. Анализ продуктов в области пользовательского шифрования. Включение и отключение шифрования на эллиптических кривых. Использование хеш-функции. Электронная подпись.
курсовая работа [492,6 K], добавлен 18.09.2016История алгоритмов симметричного шифрования (шифрования с закрытым ключом). Стандарты на криптографические алгоритмы. Датчики случайных чисел, создание ключей. Сфера интересов криптоанализа. Системы электронной подписи. Обратное преобразование информации.
краткое изложение [26,3 K], добавлен 12.06.2013Способы кодирования переписки в Древнем мире. Методы шифрования информации в позднее Средневековье и эпоху Возрождения. Страны Европы, разрабатывающие свои методы криптографии во время мировых войн. Компьютерные ноу-хау, применяемые в современном мире.
реферат [29,7 K], добавлен 02.06.2014Понятие и значение информационной безопасности, принципы и методы ее обеспечения. Главные понятия и определения криптографии. Модели симметричного шифрования данных и их функциональные особенности. Криптосистема DES как одна из современных и популярных.
курсовая работа [326,8 K], добавлен 09.06.2014Криптография - наука о методах обеспечения конфиденциальности и аутентичности информации. Этапы развития криптографии. Криптографический протокол и требования к его безопасности. Криптографические генераторы случайных чисел. Основные методы криптоанализа.
реферат [29,3 K], добавлен 01.05.2012