| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Алгоритмы > Криптография |
| Автор: SAVANE 3.10.2006, 17:25 |
| Нашел много литературы по теории шифрования даных оч интересно, но я пишу курсовую и задание написать алгоритм шифрования. Можо конечн написать алгоритм Цезаря, но это не интересно. Подскажите какой алгоритм можна рассмотреть. |
| Автор: maxim1000 3.10.2006, 17:40 |
| можно немного модифицировать алгоритм Цезаря, чтобы он перестал ломаться слишком просто: самый простой метод определить сдвиг, использованный при шифровании - посмотреть на статистику зашифрованного текста, найти там самый частый элемент и сравнить его с самым частым элементом в обычных текстах (пробел - один из хороших кандидатов) перебрать несколько наиболее частых вариантов и получить несколько сдвигов, попробовать каждый и посмотреть, какой даст читаемый результат усложнение состоит в том, что статистика символов текста "выравнивается" например, есть всего три буквы и пробел, каждая буква встречается с вероятностью 0.1, а пробел - 0.7, тогда есть смысл добавить в алфавит ещё 6 фиктивных пробелов и когда пробел будет шифроваться, заменять его на один из 7 доступных символов (выбирать нужно случайным образом), буквы шифровать как есть при дешифровке каждый из 7 пробельных символом заменять пробелом тогда каждый символ будет иметь одинаковую частоту появления, что немного затруднит взлом... вот в качестве курсовой и можно подумать, какие фиктивные символы добавить, сколько и для каких знаков (а то в реальности распределение не будет таким простым, как у меня в примере) |
| Автор: spin2 3.10.2006, 18:12 |
| Можно наш ГОСТ или AES |
| Автор: cardinal 3.10.2006, 20:59 |
| А можно стеганографию! http://vingrad.ru/VB-VB-002142 |
| Автор: SparF 3.10.2006, 23:56 |
| В свое время я реализовывал RC5 - не очень сложно, но сам алгоритм - достойный ) Можно, конечно )) вот только стоит ли сразу за такие алгоритмы браться? |
| Автор: SAVANE 4.10.2006, 10:11 |
| Нашел статью прикольную! Материал, изложенный в данной статье, первоначально составлял содержание секретного доклада «Математическая теория криптографии», датированного 1 сентября 1945 г, который в настоящее время рассекречен. Оказуется алгоритм Цезаря это часный случай алгоритма Виженера. Его и буду расматривать. Довольно просто, но можно накладывать разные методы на один текст получается довольно прикольно. Кому интересно могу выслать статейку, ссылки не дам потому как не помню где нашел. |
| Автор: spin2 4.10.2006, 10:12 |
| Конечно стоит! Смысл реализовывать нестойкий алгоритм?? А в ГОСТе уж точно ничего сложного нет, лучше пока есть возможность наоборот познакомиься с ними поближе, может и пригодится потом. |
| Автор: SparF 4.10.2006, 10:36 |
| spin2, Это ты не про RC5 случайно? )))))) SAVANE, если для тебя важна стойкость - лучше реализуй один из сущестующих алгоритмов -- они проверены временем. Хочешь придумать что-то свое -- респект, вот только стойкость этой штуки вряд ли будет очень высокой. |
| Автор: spin2 4.10.2006, 11:25 |
| Я как раз про то, что не все алгоритмы, проверенные временем, являются стойкими |
| Автор: SparF 4.10.2006, 11:40 |
| spin2, Ну так надо перед реализацией почитать, инфу поискать, сравнить существующие по надежности, скорости и т.д.)) ИМХО "проверенные временем" == "стойкие" == те, над которыми бились десятки криптоаналитиков, но так и не нашли лучшего способа кроме перебора. |
| Автор: Romikgy 4.10.2006, 12:26 |
а разве RC5 не стойкий алгоритм? |
| Автор: SparF 4.10.2006, 12:59 |
| Romikgy, про то и разговор, что достаточно стойкий. |
| Автор: spin2 4.10.2006, 13:12 |
| Так как раз и стоит подумать о том, что именно стойкие алгоритмы скорее сделают стандартом. Зачем же в Америке объвляли конкурс на алгоритм для стандарта, если есть такие чудесные стойкие и проверенные временем алгоритмы? |
| Автор: MaxB 4.10.2006, 14:16 |
| На счёт RC5 не знаю. Но я считаю, что алгоритм RSA один из самых стойких, хотя и медленный. Вот его реализация. Тестируйте кому интересно. http://www.forum.vingrad.ru/index.php?showtopic=113936 |
| Автор: SAVANE 4.10.2006, 14:42 |
| Не мне надо не сложный алгоритм, он не для практического использования, а для того чтоб на нем методичиски можно было показать принцып работы, посчитать все характеристики. Учусь в Пед университете. Про RSA прочитал, но алгоритма шифрования не знаю, потому ничего не могу сказать! Хотя респект автору! |
| Автор: Romikgy 4.10.2006, 14:43 |
| MaxB, имхо это рекламой называется! А ее здесь не сильно любять! ИМХО! ЗЫ тем более ты исходники досих пор не выложил! |
| Автор: spin2 4.10.2006, 16:04 |
| Если для себя, то можно Энигму сделать |
| Автор: MaxB 4.10.2006, 18:51 | ||||
Romikgy, Почему реклам?
SAVANE, Я б не сказал, что RSA сильно сложная. А если и сложная то только из-за необходимости производить операции с большими числами, но в курсовой можно показать работу с малыми числами. Я помню даже на парах в универе, вручную шифровали и расшифровывали. Вот теория: http://algolist.manual.ru/defence/well_known/rsa.php |
| Автор: Romikgy 4.10.2006, 22:33 | ||
вот это помощь
а это реклама своего продукта! |
| Автор: SectoR 5.10.2006, 00:08 | ||||||
Вот xor:
Добавлено @ 00:11 или вот тебе функция шифрования (она же ф-я дешифрования) однократным гаммированием (1024 битная гамма):
Если пишешь в консоли, то как ты уже догадался - замени:
на cout<<text; |