Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЗахКриптология курс лекций 2 - копия.docx
Скачиваний:
5
Добавлен:
24.09.2019
Размер:
5.15 Mб
Скачать

Лекция№4 Получениепростыхчисел.

Померетогокакмыбудемизучатькурс«Математическиеосновыкриптологии»мыбудемвозвращатьсякэтойтеме.

Задачаполучениепростыхчиселвомногомзависитоттогокакставитьэтузадачу.

Методы:

1)Самыйдревнийспособполученияпростыхчисел,какмыужезнаем,-

решетоЭратосфена.

2)Формульныйметод.Спомощьюформулможнополучитьнекотороемножествочисел,нооноограниченно.Простейшие:

а)целочисленныеполиномы(вобщемслучаенерешаютзадачуполучениебесконечногомножествапростыхчисел.)

бкспоненциальнаяфункция.(множествополучаемоенаосноведанногоспособа,какмыужеговорили,ограниченопомощности.

этотспособимеетбольшийинтересдляанализакриптошифра.

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

3.ТЕСТИРОВАНИЕ

Заданонекотороечислоmипроверяетсяпоопределенномуалгоритму,являетсялионопростым.Такназываемоетестированиенапростоту.Этотспособиспользуетсявсовременныхкриптографическихсистемахсоткрытымключём.Беретсянекотороебольшоечисло(сотнидесятичныхзнаков)ипоотношениюкэтомучислуначинаетсятестирование.

Существует2методатестированиянапростоту:

1)строгиетесты(детерминированные).

отвечаютнавопроспростоеилисоставноеоднозначно.

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

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

Метод,объединяющийвсебекаквероятностные,такидетерминированныеметодыназываетсякомбинированнымметодом.Т.е.сначаламывыясняем,снекоторойвероятностью,чточислоmпростоеипотомпоотношениюкнемуприменяемстрогийметодивитогеэтоболееоптимальночемсразуприменятькнекоторомубольшомучислустрогийтест.

Спонятием«строгиетесты»связаннотакоепонятиекак«факторизация».Факторизация–разложениезаданногочисланапростыесомножители.

В 19векепредложентестпроверкичиселМерсенанапростоту.Этобылодинизпервыхстрогихтестов.

ТаккакжеопределитьявляетсяличислоМерсенапростымилисоставным?Существуетметод,причемдостаточноэффективныйдлябольшихчисел.

РешетоЭратосфена

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

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

Вназванииалгоритмазвучитслово"решето"потому,чтоонпозволяетизряданечетныхнатуральныхчисел"просеивать"составныечисла,апростые-"задерживать".Четныечисланеиспользуются,таккаквсеони,кроме2,составные.

Цельалгоритма-определитьвсеположительныепростыечисла,меньшиенекоторойверхнейграницып,гдеnN.Вначалевыписываютсявсенечетныецелыемежду3иn.

Далеерядпросеивается.Первоечисловнем3.Вычеркиваютсяизспискавсечисла,кратныетремибольшиетрех.Теперьвыбираетсянаименьшеечислоизсписка,превосходящее3,котороеещенебыловычеркнуто-число5.Вычеркиваетсякаждоечислоизсписка,кратноепятиибольшеепяти.Этапроцедурапродолжаетсядотехпор,поканебудутрассмотренывсечисладоп.

Привычеркиваниичисел,кратныхр,отсчетначинаетсясчислар+2,итомслучае,еслир+2быловычеркнутонапредыдущихшагахалгоритма.

Пример1.3ляп=41списокнечетныхчиселследующий:

3 5 7 9 11 13 15 17 19 21

23 25 27 29 31 33 35 37 39 41

Вычеркнувкаждоечисло,кратноетреминачинаяспяти,получим

3 5 7 9 11 13 15 17 19 21

23 25 27 29 31 33 35 37 39 41

Теперьвычеркиваемчисла,кратныепятииначинаяссеми,что

дает

3 5 7 9 11 13 15 17 19 21

23 25 27 29 31 33 35 37 39 41

Далее,ниодноизчисел,оставшихсявсписке,небудетвычеркнуто

наследующихэтапахпросеивания.Такимобразом,положительныенечетныепростыечисла,непревосходящие41,это

3 5 7 11 13 17 19 23 29 31 37 41.

Можно отметить следующие замечания к алгоритму "решето

Эратосфена".

1.Некоторыечиславычеркиваютсябольше,чемодинраз.

2.Хотяпроцессвычеркиванияповторяетсявплотьдограничногочисла

п,новсесоставныечиславычеркиваютсяраньшедостиженияэтойграницы.

Вмодифицированномалгоритмесделаныследующиеизменения.

1.Простейшееусовершенствование-этоначинатьпроцессвычеркиваниянесчислар+2,аснаименьшегократногорчисла,котороенеделитсянапростоечисло,меньшеер.Найдемего.

Положительныечисла,кратныер,записываютсяввидеkр,гдеk-натуральное.Еслиk<р,тоkрделитсяначисло,меньшеер,аименнонаk.Новсечисла,меньшиеp,ужебыливалгоритмерассмотреныранее.Значит,k=pипервоекратноерчисло,котороенеделитсянапростое,меньшеерчисло,естьр2.

Такимобразом,достаточновычеркиватьвсечисла,кратныер,начинаяср2.Однаковсеравнобудутоставатьсячисла,которыебудутвычеркиватьсяболееодногораза.

2.Можнозакончитьпросеиваниераньшеn-гошага.Пустьвычеркиваетсякаждоер−оечисло.Изпункта1следует,чтопервоечисло,подлежащеевычеркиванию,равнор2.Ноеслир2>п,тотакогочисланетв

списке.Тогдаприемлемымявляетсядиапазонр2пp[− n; n]иpN

p[1; n].

Витоге,необходимовычеркиватькаждоер-оедотехпор,покар≤]n[(есличислозаключаетсявквадратныескобки,тоданноечислоокругляетсякнаименьшемуцелому)примере,разобранномвыше,]41[=6.Поэтому

отбрасываниечисел,кратных3и5,былодостаточнодлявычеркиваниявсех

составныхчиселизсписка.

Таккаквычеркиваютсявсенечетныечиславдиапазоне

3,n,томожно

использоватьвекторVпризнаков"зачеркнутости"чисел.Дляхраненияпризнака"зачеркивания"одногочислатребуется1битинформации:двавозможныхзначения-1или0,невычеркнутоиливычеркнуто.ВекторVсостоитиз(n-1)/2ячеек,пооднойдлякаждогонечетногоцелогочисла2j+1.

Инициализациявекторааключаетсявпроставленииединицывовсехячейках.Привычеркиваниинекоторогочислаp(числопомечаетсякаксоставное)вячейкусиндексом(p−3)/2векторааписывается0(перваяячейкавектораимеетиндекс0).

Модифицированное "решето Эратосфена" имеет следующие

особенности:

1.Вмассивехранятсянечисла,алогическиефлагивычеркиваниячисел;поиндексумассиваможнооднозначнополучитьзаданноеиндексомчисло.

2.Нехранятсячетныечисла.

3.Зачеркиваютсявсекратныечисладлячиселиздиапазона

p3, n.

4.Длятекущеговыбранногочислаp,длякоторогобудутвычеркиватьсявсекратныеемучисла,процессвычеркиваниябудетначинатьсянесp+2,асp2,сшагом2p(таккакнеучитываютсячетныечисла).

Модифицированное "решето Эратосфена" имеет следующие

недостатки:

1.Ононеэффективноприпоискеоченьбольшихпростыхчисел.Такойпоискневыполним,еслиграницаслишкомвелика.

2.Дляработыалгоритматребуетсябольшойобъемкомпьютернойпамятидлябольшихчисел.

Алгоритмработы.

Представим алгоритм работы модифицированного "решета

Эратосфена".

ПустьчислоадаетсяввектореVподиндексом(p-3)/2,аотсчетвмассивеначинаетсяснуля(нулевойэлементадаетфлагпростотычисла

3).

1.Вводчислаn,докотороговключительнонадонайтипростыечисла.

2.Еслиn<2,товыход.

3.Еслиn=2,товыводпростогочисла2,выход.

4.ВычислениеразмерапамятиподвекторV:size=(n-1)/2бит(можнозадаватьмассивстатичногоразмера;тогданеобходимопроверять,чторазмерsize,требуемыйподвекторV,небольшеразмераданногомассива).

5.Выделениепамятиподвекторразмераsize,установкавкаждойячейкезначения1(флага,чтосоответствующеечислоневычеркнуто).

6.Еслипамятьнебылавыделена,тобылзапрошенслишкомбольшой

блокданных,выход.

7.Для

p3,

n(даннуюконструкциюлучшереализоватьспомощью

операторацикласпредусловием,наподобиеwhile):

7.а.Еслидляданногочислаpзначениеввекторененулевое(элементподиндексом(p−3)/2):V[(p−3)/2]≠0,то

7.а.1ля

t

p2,n

(даннуюконструкциюлучшереализоватьс

помощьюоператорацикласпредусловием,наподобиеwhile),

7.а.1.1.Еслидлятекущегочислаtсоответствующеезначениеввекторенеравнонулю:V[(t-3)/2]≠0,тозначениевячейкезаменяемна0(вычеркиваемчислоt).

7.а.1.2.Увеличиваемчислоtна2?p.