СОДЕРЖАНИЕ
Введение | 5 |
1.Постановказадачи | 10 |
2.Алгоритм RSA | 11 |
2.1.Система шифрованияRSA | 12 |
2.2.Сложностьтеоретико-числовыхалгоритмов | 16 |
2.2.1.Алгоритмвычисления | 17 |
2.2.2.Алгоритм Евклида | 18 |
2.2.3.Алгоритм решения уравнения | 18 |
2.2.4.Алгоритмнахожденияделителеймногочлена в кольце | 21 |
3.Качественнаятеория алгоритмаRSA | 23 |
3.1. Алгоритм,доказывающий непростотучисла | 24 |
3.2.Нахождениебольших простыхчисел | 26 |
3.3.Проверка большогочисла на простоту | 30 |
4.Практическаяреализацияалгоритма | 37 |
4.1.Реализованныеалгоритмы | 37 |
4.2.Анализ результатов | 38 |
5.Выводы | 39 |
5.1Алгоритм | 39 |
5.2Алгоритм ипрограмма | 39 |
Заключение | 41 |
Списокиспользованныхисточников | 42 |
Приложение1. Листинг программы | 43 |
Приложение2. Главная формапрограммы | 46 |
Приложение3. Формабазы данныхабонентов | 47 |
Приложение4. Форманахожденияпростых чисели генерацииключей | 48 |
ВВЕДЕНИЕ
Проблемазащиты информациипутем ее преобразования,исключающегоее прочтениепостороннимлицом, волновалачеловеческийум с давнихвремен. Историякриптографии- ровесницаистории человеческогоязыка. Болеетого, первоначальнописьменностьсама по себебыла своеобразнойкриптографическойсистемой, таккак в древнихобществах еювладели толькоизбранные.Священные книгидревнего Египта,древней Индиитомупримеры.
Историякриптографииусловно можноразделить на4 этапа.
1) наивнаякриптография.
2) формальнаякриптография.
3) научнаякриптография.
4) компьютернаякриптография.
Длянаивнойкриптографии(донач. XVIвека) характерноиспользованиелюбых (обычнопримитивных)способов запутыванияпротивникаотносительносодержанияшифруемыхтекстов.На начальномэтапе для защитыинформациииспользовалисьметоды кодированияистеганографии,которыеродственны,но не тождественныкриптографии.
Большинствоиз используемыхшифров сводилиськ перестановкеилимоноалфавитнойподстановке.Однимиз первыхзафиксированныхпримеров являетсяшифр Цезаря,состоящий взамене каждойбуквы исходноготекста на другую,отстоящую отнее в алфавитена определенноечисло позиций.Другой шифр,полибианскийквадрат, авторствокоторогоприписываетсягреческомуписателю Полибию,является общеймоноалфавитнойподстановкой,которая проводитсяс помощью случайнозаполненнойалфавитомквадратнойтаблицейдлягреческогоалфавита размерсоставляет5x5). Каждая букваисходноготекстазаменяетсяна букву, стоящуюв квадратеснизу от нее.
Этапформальнойкриптографии(кон.XVвека - нач. XXвека)связан с появлениемформализованныхи относительностойкихк ручномукриптоанализушифров. В европейскихстранахэто произошлов эпоху Возрождения,когда развитиенаукии торговливызвало спросна надежныеспособы защитыинформации.Важная рольна этом этапепринадлежитЛеону БатистеАльберти,итальянскомуархитектору,который однимизпервых предложилмногоалфавитнуюподстановку.Данныйшифр, получившийимя дипломатаXVIвека БлезаВижинера, состоялв последовательном«сложении»букв исходноготекста сключом (процедуруможно облегчитьс помощью специальнойтаблицы).Его работа«Трактат ошифре» (1466) считаетсяпервойнаучной работойпо криптологии.
Однойиз первых печатныхработ, в которойобобщены исформулированыизвестные натот моменталгоритмышифрованияявляется труд«Полиграфия»(1508 г.) немецкогоаббата ИоганнаТрисемуса. Емупринадлежатдва небольших,но важныхоткрытия: способзаполненияполибианскогоквадрата (первыепозиции заполняютсяс помощью легкозапоминаемогоключевогослова, остальные- оставшимисябуквами алфавита)и шифрованиепар букв (биграмм).
Простымно стойкимспособоммногоалфавитнойзамены (подстановкибиграмм) являетсяшифр Плейфера,который былоткрытв начале XIXвека ЧарльзомУитстоном.Уитстону принадлежити важное усовершенствование- шифрование«двойнымквадратом».Шифры Плейфераи Уитстонаиспользовалисьвплотьдо первой мировойвойны, так какс трудом поддавалисьручному криптоанализу.
В XIXвеке голландецКеркхоффсформулировалглавное требованиек криптографическимсистемам, котороеостается актуальными поныне: секретностьшифров должнабыть основанана секретностиключа, но неалгоритма.
Наконец,последнимсловом в донаучнойкриптографии,которое обеспечилиеще более высокуюкриптостойкосить,а такжепозволилоавтоматизировать(в смысле механизировать)процессшифрованиястали роторныекриптосистемы.
Однойиз первых подобныхсистем сталаизобретеннаяв 1790 году ТомасомДжефферсоном,будущим президентомСШАмеханическаямашина. Многоалфавитнаяподстановкас помощьюроторной машиныреализуетсявариациейвзаимногоположениявращающихсяроторов, каждыйиз которыхосуществляет«прошитую»в нем подстановку.
Практическоераспространениероторные машиныполучили тольков начале XX века.Одной из первыхпрактическииспользуемыхмашин, сталанемецкая Enigma,разработаннаяв 1917 году ЭдвардомХеберном иусовершенствованнаяАртуром Кирхом.Роторные машиныактивно использовалисьво время второймировой войны.Помимо немецкоймашины Enigma использовалисьтакже устройстваSigaba (США), Турех(Великобритания),Red, Orange и Purple2 (Япония).Роторные системы-вершина формальнойкриптографиитак как относительнопросто реализовывалиочень стойкиешифры. Успешныекриптоатакина роторныесистемы сталивозможны толькос появлениемЭВМ в начале40-х годов.
Главнаяотличительнаячерта научнойкриптографии(30-е - 60-е годы XX века)- появлениекриптосистемсо строгимматематическимобоснованиемкриптостойкости.К началу 30-х годовокончательносформировалисьразделы математики,являющиесянаучной основойкриптологии:теория вероятностейи математическаястатистика,общая алгебра,теория чисел,начали активноразвиватьсятеория алгоритмов,теория информации,кибернетика.Своеобразнымводоразделомстала работаКлода Шеннона«Теория связив секретныхсистемах»(1949), где сформулированытеоретическиепринципыкриптографическойзащиты информации.Шеннон ввелпонятия «рассеивание»и «перемешивание»,обосновалвозможностьсоздания скольугодно стойкихкриптосистем.
В 60-х годахведущие криптографическиешколы подошлик созданиюблочных шифров,еще более стойкихпо сравнениюс роторнымикриптосистемами,однако допускающиепрактическуюреализациютолько в видецифровых электронныхустройств.
Компьютернаякриптография(с 70-х годов XX века)обязана своимпоявлениемвычислительнымсредствам спроизводительностью,достаточнойдля реализациикритосистем,обеспечивающихпри большойскорости шифрованияна несколькопорядков болеевысокую криптостойкость,чем «ручные»и «механические»шифры.
Первымклассом криптосистем,практическоеприменениекоторых сталовозможно споявлениеммощных и компактныхвычислительныхсредств, сталиблочные шифры.В 70-е годы былразработанамериканскийстандарт шифрованияDES(принят в 1978 году).Один из егоавторов, ХорстФейстел (сотрудникIBM),описал модельблочных шифров,на основе которойбыли построеныдругие, болеестойкие симметричныекриптосистемы,в том числеотечественныйстандарт шифрованияГОСТ 28147-89.
С появлениемDESобогатилсяи криптоанализ,для атак наамериканскийалгоритм былсоздано нескольконовых видовкриптоанализа(линейный,дифференциальныйи т.д.), практическаяреализациякоторых опятьже была возможнатолько с появлениеммощных вычислительныхсистем.
В середине70-х годов произошелнастоящийпрорыв в современнойкриптографии- появлениеасимметричныхкриптосистем,которые нетребовалипередачи секретногоключа междусторонами.Здесь отправнойточкой принятосчитать работу,опубликованнуюУитфилдом Диффии МартиномХеллманом в1976 году под названием«Новые направленияв современнойкриптографии».В ней впервыесформулированыпринципы обменашифрованнойинформациейбез обменасекретнымключом. Независимок идее асимметричныхкриптосистемподошел РальфМеркли. Несколькимигодами позжеРон Ривест, АдиШамир и ЛеонардАдлеман открылисистему RSA,первую практическуюасимметричнуюкриптосистему,стойкостькоторой былаоснована напроблеме факторизациибольших простыхчисел. Асимметричнаякриптографияоткрыла сразунесколько новыхприкладныхнаправлений,в частностисистемы электроннойцифровой подписи(ЭЦП) и электронныхденег.
В 80-90-егоды появилисьсовершенноновые направлениякриптографии:вероятностноешифрование,квантоваякриптографияи другие. Осознаниеих практическойценности ещевпереди. Актуальнойостается изадача совершенствованиясимметричныхкриптосистем.В 80-90-х годах былиразработанынефейстеловскиешифры (SAFER,RC6и др.), а в 2000 годупосле открытогомеждународногоконкурса былпринят новыйнациональныйстандарт шифрованияСША - AES.
1. ПОСТАНОВКАЗАДАЧИ
Безопасностьпередачи данныхпо каналамсвязи являетсяактуальной.Современныекомпьютерныесети не исключение.К сожалению,в сетевыхоперационныхсистемах (WindowsNT/XP,Novellи т.д.) иностранногопроизводства,как следствие,из-за экспортныхсоображенийуровень алгоритмовшифрованиязаметно снижен.
Задача:исследоватьсовременныеметоды шифрованияи их приложимостьк шифрованиюпотоков данных.Разработатьсобственнуюбиблиотекуалгоритмовшифрованияи программныйпродукт, демонстрирующийработу этихалгоритмовпри передачеданных в сети.
2.АЛГОРИТМ RSA
Труды Евклидаи Диофанта,Ферма и Эйлера,Гаусса, Чебышеваи Эрмита содержатостроумныеи весьма эффективныеалгоритмырешения диофантовыхуравнений,выясненияразрешимостисравнений,построениябольших по темвременам простыхчисел, нахождениянаилучшихприближенийи т.д. В последниедва десятилетия,благодаря впервую очередьзапросам криптографиии широкомураспространениюЭВМ, исследованияпо алгоритмическимвопросам теориичисел переживаютпериод бурногои весьма плодотворногоразвития.
Вычислительныемашины и электронныесредства связипроникли практическиво все сферычеловеческойдеятельности.Немыслима безних и современнаякриптография.Шифрованиеи дешифрованиетекстов можнопредставлятьсебе как процессыпереработкицелых чиселпри помощи ЭВМ,а способы, которымивыполняютсяэти операции,как некоторыефункции, определённыена множествецелых чисел.Всё это делаетестественнымпоявление вкриптографииметодов теориичисел. Крометого, стойкостьряда современныхкриптосистемобосновываетсятолько сложностьюнекоторыхтеоретико-числовыхзадач.
Но возможностиЭВМ имеютопределённыеграницы. Приходитсяразбиватьдлинную цифровуюпоследовательностьна блоки ограниченнойдлины и шифроватькаждый такойблок отдельно.Мы будем считатьв дальнейшем,что все шифруемыецелые числанеотрицательныи по величинеменьше некоторогозаданного(скажем, техническимиограничениями)числа m.Таким же условиямбудут удовлетворятьи числа, получаемыев процессешифрования.Это позволяетсчитать и те,и другие числаэлементамикольца вычетов
а число
Простейшийшифр такогорода - шифр замены,соответствуетотображению
В 1978 г. американцыР. Ривест, А. Шамири Л. Адлеман(R.L.Rivest.A.Shamir.L.Adleman)предложилипример функции
1)существуетдостаточнобыстрый алгоритмвычислениязначений
2)существуетдостаточнобыстрый алгоритмвычислениязначений обратнойфункции
3)функция
Еще до выходаиз печати статьикопия докладав МассачусетскомТехнологическоминституте,посвящённогосистеме RSA.была посланаизвестномупопуляризаторуматематикиМ. Гарднеру,который в 1977 г.в журнале ScientificAmericanопубликовалстатью посвящённуюэтой системешифрования.В русском переводезаглавие статьиГарднера звучиттак: Новый видшифра, на расшифровкукоторого потребуютсямиллионы лет.Именно этастатья сыгралаважнейшую рольв распространенииинформацииоб RSA,привлекла ккриптографиивнимание широкихкругов неспециалистови фактическиспособствовалабурному прогрессуэтой области,произошедшемув последовавшие20 лет.
2.1. системашифрованияRSA
Пусть
Для расшифровкисообщения
При некоторыхусловиях на
Для того,чтобы описатьэти условияи объяснить,как можно найтирешение, нампотребуетсяодна теоретико-числоваяфункция, такназываемаяфункция Эйлера.Эта функциянатуральногоаргумента
Если показательстепени
Такое числосуществует,поскольку
Такимобразом, впредположении
Если дополнительнопредположить,что число
Функция(1), принятая всистеме RSA,может бытьвычисленадостаточнобыстро. Обратнаяк
Для вычисленияфункции (1) достаточнознать лишьчисла
Авторысхемы RSAпредложиливыбирать число
то единственноеусловие навыбор показателястепени
Итак, лицо,заинтересованноев организациишифрованнойпереписки спомощью схемыRSA,выбирает двадостаточнобольших простыхчисла
Для иллюстрациисвоего методаРивест, Шамири Адлеманзашифровалитаким способомнекоторуюанглийскуюфразу. Сначалаона стандартнымобразом (а=01, b=02,.... z=26,пробел=00) былазаписана в видецелого числа
m=114381625757888867669325779976146612010218296721242362562561842935706935245733897830597123563958705058989075147599290026879543541
и
была обещананаграда в 100$.
Эта историязавершиласьспустя 17 лет в1994 г., когда D.Atkins,M.Graff,А. К. Lenstraи Р. С. Leylandсообщили орасшифровкефразы. Числа
Этот замечательныйрезультат(разложениена множители129-значногодесятичногочисла) был достигнутблагодаряиспользованиюалгоритмаразложениячисел на множители,называемогометодом квадратичногорешета. Выполнениевычисленийпотребовалоколоссальныхресурсов. Вработе, возглавлявшейсячетырьмя авторамипроекта, ипродолжавшейсяпосле предварительнойтеоретическойподготовкипримерно 220 дней,на добровольныхначалах участвовалооколо 600 человеки примерно 1600компьютеров,объединённыхсетью Internet.Наконец, отметим,что премия в100$ была переданав FreeSoftwareFoundation.
2.2.Сложностьтеоретико-числовыхалгоритмов
Сложностьалгоритмовтеории чиселобычно принятоизмерять количествомарифметическихопераций (сложений,вычитаний,умножений иделений с остатком),необходимыхдля выполнениявсех действий,предписанныхалгоритмом.Впрочем, этоопределениене учитываетвеличины чисел,участвующихв вычислениях.Ясно, что перемножитьдва стозначныхчисла значительносложнее, чемдва однозначных,хотя при этоми в том, и в другомслучае выполняетсялишь однаарифметическаяоперация.Поэтому иногдаучитывают ещёи величинучисел, сводядело к так называемымбитовым операциям,т. е. оцениваяколичествонеобходимыхопераций сцифрами 0 и 1, вдвоичной записичисел.
Говоряо сложностиалгоритмов,мы будем иметьв виду количествоарифметическихопераций. Припостроенииэффективныхалгоритмови обсужденииверхних оценоксложностиобычно хватаетинтуитивныхпонятий тойобласти математики,которой принадлежиталгоритм.Формализацияже этих понятийтребуется лишьтогда, когдаречь идёт оботсутствииалгоритма илидоказательственижних опеноксложности.
Приведемтеперь примерыдостаточнобыстрых алгоритмовс опенкамиих сложности.Здесь и в дальнейшеммы не будемпридерживатьсяформальногоописания алгоритмов,стараясь впервую очередьобъяснить смыслвыполняемыхдействий.
Следующийалгоритм вычисляет
2.2.1.Алгоритмвычисления
Представим
Положим
3)
Справедливостьэтого алгоритмавытекает изсравнения
легкодоказываемогоиндукцией по
Так каккаждое вычислениена шаге 2 требуетне более трёхумноженийпо модулю
Второйалгоритм - этоклассическийалгоритм Евклидавычислениянаибольшегообщего делителяцелых чисел.Мы предполагаемзаданными дванатуральныхчисла
2.2.2.АлгоритмЕвклида
Вычислим
Если
Если
Теорема1. При вычислениинаибольшегообщего делителя
Доказательство.Положим
Пусть также
Немногоподправивалгоритм Евклида,можно достаточнобыстро решатьсравнения
2.2.3.Алгоритм решения уравнения
0) Определимматрицу
1) Вычислим
Если
Если
Заменимпару чисел
Если обозначитьчерез
Три приведённыхвыше алгоритмаотносятся кразряду такназываемыхполиномиальныхалгоритмов.Это названиеносят алгоритмы,сложностькоторых оцениваетсясверху степеннымобразом в зависимостиот длины записивходящих чисел.Если наибольшееиз чисел, подаваемыхна вход алгоритма,не превосходит
Полиномиальныеалгоритмы втеории чисел- большая редкость.Да и опенкисложностиалгоритмовчаше всегоопираются накакие-либо недоказанные,но правдоподобныегипотезы, обычноотносящиесяк аналитическойтеории чисел.
Для некоторыхзадач эффективныеалгоритмывообще не известны.Иногда в такихслучаях всеже можно предложитьпоследовательностьдействий, которая,«если повезет»,быстро приводитк требуемомурезультату.Существуеткласс так называемыхвероятностныхалгоритмов,которые даютправильныйрезультат, ноимеют вероятностнуюопенку времениработы. Обычноработа этихалгоритмовзависит отодного илинесколькихпараметров.В худшем случаеони работаютдостаточнодолго. Ноудачный выборпараметраопределяетбыстрое завершениеработы. Такиеалгоритмы, еслимножество«хороших»значений параметроввелико, на практикеработают достаточноэффективно,хотя и не имеютхороших опеноксложности.
Мы будеминогда использоватьслова детерминированныйалгоритм, чтобыотличать алгоритмыв обычном смыслеот вероятностныхалгоритмов.
Как пример,рассмотримвероятностныйалгоритм, позволяющийэффективнонаходить решенияполиномиальныхсравнений попростому модулю.Пусть
Например,речь может идтио решенииквадратичныхсравнений, еслистепень многочлена
Согласномалой теоремеФерма, все элементыполя
Для вычислениямногочлена
Такимобразом, обсуждаядалее задачунахождениярешений сравнения(8), мы можем предполагать,что в кольцемногочленов
2.2.4.Алгоритм нахожденияделителеймногочлена
1)Выберемкаким-либоспособом элемент
Вычислимнаибольшийобщий делитель
Если многочлен
4) Если окажется,что
Количествоопераций нашаге 2 оцениваетсявеличиной
Количестворешений уравнения
состоитне менее, чемиз
Итак, существуетне менее
Заметим,что при опенкевероятностимы использовалитолько двакорня многочлена
Если всравнении (8)заменить простоймодуль
3.КАЧЕСТВЕННАЯТЕОРИЯ АЛГОРИТМАRSA
Существуетдовольно эффективныйспособ убедиться,что заданноечисло являетсясоставным, неразлагая эточисло на множители.Согласно малойтеореме Ферма,если число
Если жепри каком-то
К сожалению,такой подходне всегда даётто, что хотелосьбы. Имеютсясоставные числа
В 1976 г. Миллерпредложилзаменить проверку(9) проверкойнесколькоиного условия.Если
делитсяна
Пусть
1)
2)
Из сказанногоранее следует,что для простогочисла
Теперь можнопостроитьвероятностныйалгоритм, отличающийсоставныечисла от простых.
3.1. Алгоритм,доказывающий непростотучисла
Выберемслучайнымобразом число
Если хотябы одно из нихнарушается,то число
Если выполненыоба условия1) и 2) п.2, возвращаемсяк шагу 1.
Из сказанноговыше следует,что составноечисло не будетопределенокак составноепосле однократноговыполненияшагов 1-3 с вероятностьюне большей
Миллерпредложилдетерминированныйалгоритм определениясоставныхчисел, имеющийсложность
Напомнимнекоторыепонятия, необходимыедля формулировкирасширеннойгипотезы Римана.Они понадобятсянам и в дальнейшем.Пусть
С каждымхарактеромможет бытьсвязана такназываемая
В 1952 г. Анкенис помощью расширеннойгипотезы Риманадоказал, чтодля каждогопростого числа
АлгоритмМиллера принципиальноотличаетсяот алгоритма2.1., так как полученноес его помощьюутверждениео том, что число
3.2.Нахождениебольших простыхчисел
Конечноже, большиепростые числаможно строитьсравнительнобыстро. Приэтом можнообеспечитьих случайноераспределениев заданномдиапазоневеличин. В противномслучае терялабы всякийпрактическийсмысл системашифрованияRSA.Наиболее эффективнымсредствомпостроенияпростых чиселявляется несколькомодифицированнаямалая теоремаФерма.
Теорема2. Пусть
Тогда каждыйпростой делитель
Доказательство.Пусть
Обозначимбуквой
Следствие.Если выполненыусловия теоремы2 и
Действительно,пусть
Покажемтеперь, как спомощью последнегоутверждения,имея большоепростое число
Для этогоможно случайнымобразом выбиратьчисло
Если привыбранном
Предположим,что построенноечисло
Заметим,что построенноетаким способомпростое число
Обсудимтеперь некоторыетеоретическиевопросы, возникающиев связи с нахождениемчисла
Такимобразом, в настоящеевремя никакихтеоретическихгарантий длясуществованияпростого числа
Очень важенв связи с описываемымметодом построенияпростых чиселтакже вопросо расстояниимежду соседнимипростыми числамив арифметическойпрогрессии.Ведь убедившись,что при некотором
В качествеитога обсужденияв этом пунктеподчеркнёмследующее: еслипринять наверу, что наименьшеепростое число,а также расстояниемежду соседнимипростыми числамив прогрессии
Конечно,способ конструированияпростых чиселдля использованияв схеме RSAдолжен бытьмассовым, асами простыечисла должныбыть в каком-тосмысле хорошораспределёнными.Это вносит ряддополнительныхосложненийв работу алгоритмов.
Наконец,отметим, чтосуществуютметоды построениябольших простыхчисел, использующиене только простыеделители
3.3. Проверкабольшого числана простоту
Есть некотороеотличие в постановкахзадач предыдущегои настоящегопунктов. Когдамы строим простоечисло
В этом пунктемы предполагаемлишь, что намзадано некотороечисло
В настоящеевремя известныдетерминированныеалгоритмыразличнойсложности длядоказательствапростоты чисел.Мы остановимсяподробнеена одном изних, предложенномв 1983 г. в совместнойработе Адлемана.Померанца иРамели. Длядоказательствапростоты илинепростотычисла
В основеалгоритма лежитиспользованиесравнений типамалой теоремыФерма, но в кольцахцелых чиселкруговых полей,т. е. полей. порождённыхнад полем
Следующаяфункция, определённаяна множествецелых чисел.
являетсяхарактеромпо модулю
Сумма
называетсясуммой Гаусса.Формулируемаяниже теорема3 представляетсобой аналогмалой теоремыФерма, используемыйв алгоритмеАдлемана - Ленстры.
Теорема3. Пусть
Если прикаких-либочислах
В случае
где
Пример(X.Ленстра). Пусть
а крометого с некоторымцелым числом
Как ужеуказывалось,при простом
Докажем,что из выполнимости(14-15) следует, чтокаждый делитель
Не уменьшаяобщности, можносчитать, что
означающие(в силу того,что символЯкоби можетравняться лишь-1 или +1), что
При
Информациятакого родаполучаетсяи в случаепроизвольныхпростых чисел
Опишемсхему алгоритмаАдлемана - Ленстрыдля проверкипростоты
1)выбираютсяразличныепростые числа
1)для каждого
1)
для каждойпары выбранныхчисел
определяетсяне очень большоемножествочисел, с которымитолько и могутбыть сравнимыпростые делители
4)проверяется,содержит линайденноемножестводелители
Если число
Сумма Якоби
определяетсядля двух характеров
связывающеесуммы Гауссас суммами Якобии позволяющеепереписатьсравнениетеоремы 3 в терминахсумм Якоби.Так. при
где
В 1984 г. быловнесено существенноеусовершенствованиев алгоритм,позволившееосвободитьсяот требованиянеделимостичисел
Персональныйкомпьютер спроцессоромPentium-150.пользуясьреализациейэтого алгоритмана языке UBASIC,доказал простотузаписываемого65 десятичнымизнаками, большегоиз простыхчисел в примереРивеста, Шамираи Адлемана за8 секунд. Сравнениеэтих 8 секунди 17 лет, потребовавшихсядля разложенияна множителипредложенногов примере числа,конечно, впечатляет.
Отметим,что опенкасложности этогоалгоритмапредставляетсобой труднуюзадачу аналитическойтеории чисел.Как уже указывалось,количествоопераций оцениваетсявеличиной
4.ПРАКТИЧЕСКАЯРЕАЛИЗАЦИЯАЛГОРИТМА
Представленныйвыше алгоритмшифрованиябыл реализованс помощьюинтегрированногопакета фирмыBorlandDelphi5.0. Выбор данногоязыка программированияобоснован темчто, он предоставляеттакие возможности,как объектно-ориентированныйподход к программированию,основанныйна формах, интеграцияс программированиемдля Windowsи компонентнаятехнология.Среду визуальногопрограммированияDelphi5 позволяет спомощью компонентногоподхода к созданиюприложений,быстро и качественно"собрать"интерфейспрограммы ибольшую частьвремени использоватьименно на реализациюсоставленногоалгоритма.
Программапостроена потехнологииклиент/сервер,т.е. клиент передаетпо сети данныеиз стандартногопотока ввода(с клавиатуры),предварительнозашифровав,сервер, получаяпоток данных,автоматическиего расшифровывает.
Программныйпродукт состоитиз двух приложений.Первое приложениепредставляетсобой программугенерацииключей. Онавыводит всепростые числазаданногодиапазона, изкоторых потомвыбираютсячисла
4.1.Реализованныеалгоритмы
В программномпродукте былиреализованыосновные алгоритмысхемы RSA.Функция ModDegreeпроизводитвычисление
4.2.Анализ результатов
Результатомработы созданнойпрограммыявляютсязашифрованныеи расшифрованныесообщения.
Для тестированияпрограммыиспользовалсяпример приведенныйв [11]
5.ВЫВОДЫ
Перейдемк обсуждениювыводов последетальногопросмотраспецификиметода, реализованногопрограммногопродукта наоснове построенногоалгоритма, атакже представленногоанализа результатовпо обработанномуматериалу.
5.1 Алгоритм
Использованныйалгоритм RSAимеет рядпреимуществ:
1) алгоритмRSAявляетсяассиметричным,т.е. он основываетсяна распространенииоткрытых ключейв сети. Это позволяетнесколькимпользователямобмениватьсяинформацией,посылаемойпо незащищеннымканалам связи;
2) пользовательсам может менятькак числа
При всехэтих преимуществахданный алгоритмимеет существенныйнедостаток– невысокаяскорость работы.Алгоритм RSAработает болеечем в тысячураз медленнеесимметричногоалгоритма DES.
Из всеговышесказанногоможно заключить,что данныйалгоритм шифрования,хотя довольномедленный, ноон ассиметричныйи позволяетдобиватьсянужной криптостойкости,что делает егонезаменимымпри работе внезащищенныхканалах связи.
5.2 Алгоритми программа
Исходяиз проработанныхданных, попостроенномуалгоритму исозданномупрограммномупродукту сделаныследующиевыводы:
1) построенныйалгоритм, асоответственнои созданныйна его базепрограммныйпродукт, полностьюреализуетбазовые механизмысхемы RSAи, таким образомудовлетворяютосновным поставленнымзадачам;
2) данныйпрограммныйпродукт построенпо технологииклиент/сервери предназначенсохранятьконфиденциальностьпередачи информациив сети.
Такимобразом, повыводам о построенномалгоритме исозданномпрограммномпродукте можнозаключить, чтоон подходитдля решенияпроблем шифрованияинформации,связанных спередачейданных по сети.
ЗАКЛЮЧЕНИЕ
В рамках данногодипломногопроектированияперед студентомМалышевым А.А.была поставленазадача: на основеалгоритма RSAдля шифрованияблоков данных,построитьалгоритм иреализоватьпрограммныйпродукт дляшифрованияпотоков данных.
В результатевыполнениядипломногопроектированиябыл составленпринципиальныйалгоритм длярешения поставленнойзадачи. Далееон был детализовани реализованна ЭВМ. В конце,был проведёнанализ полученныхрезультатов,и сделаны необходимыевыводы.
За основу построенияалгоритма былпринят алгоритмRSA для шифрованияблоков данных,изучена соответствующаялитературапо алгоритму,и был построеналгоритм иреализованпрограммныйпродукт в средевизуальногопрограммированияDelphi 5 под ОСтипа Windows дляIBM PC-совместимыхкомпьютеров.
Созданныйпрограммныйпродукт позволяетрешить поставленнуюзадачу и, дополнительно,содержит в себенебольшую базуданных абонентов.Т.е. в результатевыполненияпрограммыисходное сообщениешифруется ипередаетсяпо сети, гдеоно расшифровывается.Также можноуказать о том,что программаимеет интуитивнопонятный интерфейс,что дополнительнопомогает пользователюс наибольшейрезультативностьюиспользоватьвсю ресурснуюбазу.
В заключении,после анализаполученныхрезультатовбыли сделанывыводы, согласнокоторым алгоритмработает иприменим дляпоставленнойзадачи.
СПИСОКИСПОЛЬЗОВАННЫХИСТОЧНИКОВ
1. ЯщенкоВ. В. Основныепонятия криптографии// Математическоепросвещение.Сер. 3. №2. 1998. С. 53-70.
2. ВиноградовИ. М. Основы теориичисел. М.: Наука.1972.
3. КарацубаА. А. Основыаналитическойтеории чисел.М.: Наука. 1983 г.
4. Кнут Д.Искусствопрограммированияна ЭВМ. Т.2: Получисленныеалгоритмы. М.:Мир. 1977.
5.Ахо А.. ХопкрофтДж.. Ульман Дж.Построениеи анализ вычислительныхалгоритмов.М.: Мир. 1979.
6. ВарновскийН. П. Криптографияи теория сложности// Математическоепросвещение.Сер. 3. №2.1998. С.71-86.
7. ВасиленкоО. Н. Современныеспособы проверкипростоты чисел// Кибернетическийсборник, вып.25. 1988. С.162-188.
8. ПрахарК. Распределениепростых чисел.М.: Мир.1967.
9.БоревичЗ.И. ШафаревичИ.Р. Теория чисел.М.: Наука. 1964.
10. КострикинА.И. Введениев алгебру. М.:Наука. 1977.
11. БрассарДж. Современнаякриптология.Мир ПК. №3. 1997.
ПРИЛОЖЕНИЕ1
Листингпрограммы
МодульKey.pas
Function Prost(n:integer):Boolean;
var k:Boolean;
i:integer;
begin
k:=true;
if n2 then
for i:=2 to trunc(sqrt(n))+1 do
if (n/i)=trunc(n/i) then
begin
k:=False;
Break;
end;
Prost:=k;
end;
{________________________________________________________}
Function Evklid(Num1,Num2:integer):integer;
var r,q1,p1:array of integer;
i,n,k:integer;
begin
if Num1>=Num2 then
begin
SetLength(r,10);
r[0]:=Num1;
r[1]:=Num2;
end
else
begin
SetLength(r,10);
r[0]:=Num2;
r[1]:=Num1;
end;
i:=1;
while r[i]0 do
begin
inc(i);
r[i]:=r[i-2] mod r[i-1];
end;
n:=i-2;
SetLength(q1,n+1);
for i:=0 to n do
q1[i]:=r[i] div r[i+1];
SetLength(p1,n+2);
p1[0]:=1;
p1[1]:=q1[0];
k:=length(q1);
if k>1 then
for i:=2 to k do
p1[i]:=q1[i-1]*p1[i-1]+p1[i-2];
Result:=trunc(power(-1,k-1))*p1[k-1] mod Num2;
end;
{________________________________________________________}
Function HOD(Num1,Num2:integer):integer;
var r:array of integer;
i:integer;
begin
if Num1>=Num2 then
begin
SetLength(r,Num2);
r[0]:=Num1;
r[1]:=Num2;
end
else
begin
SetLength(r,Num1);
r[0]:=Num2;
r[1]:=Num1;
end;
i:=1;
While r[i]0 do
begin
inc(i);
r[i]:=r[i-2] mod r[i-1];
end;
Result:=r[i-1];
end;
{________________________________________________________}
Function ModDegree(Num,Degree,n:integer):integer;
var x:array of integer;
i:integer;
begin
SetLength(x,n);
x[1]:=Num mod n;
for i:=2 to Degree do
x[i]:=x[i-1]*Num mod n;
Result:=x[Degree];
end;
ПРИЛОЖЕНИЕ2
Главная формапрограммы
ПРИЛОЖЕНИЕ3
Форма базыданных абонентов
ПРИЛОЖЕНИЕ4
Форма нахожденияпростых чисели генерацииключей
МИНИСТЕРСТВООБРАЗОВАНИЯРОССИЙСКОЙФЕДЕРАЦИИ
АМУРСКИЙГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ
Факультетматематикии информатики
Кафедраматематическогоанализа имоделирования
Специальность010200 – “прикладнаяматематика”
ДОПУСТИТЬК ЗАЩИТЕ
Зав.кафедрой____________________
___________Т.В.Труфанова
«____»_____________2002г.
ДИПЛОМНАЯРАБОТА
натему Применениеалгоритма RSAпри шифрованиипотоков данных
Исполнитель
студентгруппы 752 А. А. Малышев
Руководитель
к.ф.-м.н.,доцент А.Н.Семочкин
Нормоконтроль
к.т.н.,доцент А.Н. Гетман
Рецензент
к.ф.-м.н.,доцент Е.Ф.Алутина
Благовещенск2002
МИНИСТЕРСТВООБРАЗОВАНИЯРОССИЙСКОЙФЕДЕРАЦИИ
АМУРСКИЙГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ
Факультетматематикии информатики
Кафедраматематическогоанализа имоделирования
Утверждаю:
Зав.кафедрой
_______________________
подпись И.О.Фамилия
«__»_____________200_г.
ЗАДАНИЕ
Кдипломнойработе студентаМалышева АндреяАлександровича
1.Тема дипломнойработы Применениеалгоритма RSAпри шифрованиипотоков данных
(утвержденоприказом от____ №___________)
2. Сроксдачи студентомзаконченнойработы ________________________
3. Исходныеданные к дипломнойработе___________________________
4.Содержаниедипломнойработы (переченьподлежащихразработкевопросов)
Исследоватьсовременныеметоды шифрованияи их приложимостьк шифрованиюпотоков данных.Разработатьсобственнуюбиблиотекуалгоритмовшифрованияи программныйпродукт, демонстрирующийработу этихалгоритмовпри передачеданных в сети.
5.Дата выдачизадания « »____________2002 г.
Руководительдипломнойработы СемочкинАлександрНиколаевичк.ф.-м.н., доценткафедры МАиА.
Заданиепринял к исполнению _____________________________________
РЕФЕРАТ
Дипломнаяработа 48 стр., 11 источников,4 приложения.
АЛГОРИТМRSA,ФУНКЦИЯ ЭЙЛЕРА,ВЗАИМНО ПРОСТЫЕЧИСЛА
В данномдипломномпроекте рассматриваетсязадача анализаалгоритмашифрованиев потоках данныхRSA. Для этогопостроен алгоритми реализованпрограммныйпродукт. Программныйпродукт созданв среде визуальногопрограммированияDelphi 5.0, отлажени протестирован.На основаниианализа полученныхрезультатовсделаны выводы,указаны замечанияи рекомендацииисследователюпо практическомуиспользованиюпрограммы, атакже по дальнейшемуулучшениюалгоритма ипрограммногопродукта вцелом.