Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Большая степень числа [D7]


Близнец ©   (2006-01-31 06:22:00) 

Какого типа необходимо использовать переменную для возведения числа в большую степень (например, 320 в 2156 степени) , и как ею оперировать в математических выражениях?


Близнец   (2006-02-02 06:15:00) [1]

Всем спасибо за желание помочь, пока времени не было разбираться (сегодня 3 экзамена), думаю скоро будут вопросы ;)


palva   (2006-02-01 18:06:00) [2]

> Какого типа необходимо использовать переменную
> P=251, Q=331, D=165131
Достаточно использовать переменную типа Integer
Только это не будет возведение в степень. Потому что при возведении в степень нужно после каждого умножения делить результат на модуль и брать остаток. Приблизительно об этом говорил yaroslav

Почитайте здесь http://www.racal.ru/rsp/rsa.htmНаколько я понимаю это компиляция из книги Брюса Шнайера "Прикладная криптография"


kaZaNoVa   (2006-02-01 13:48:00) [3]

а в чем алгоритм состоит?)
если я правильно понял -  P=251, Q=331, D=165131
надо P^Q mod D  - по калькулятору Windows получим 59800


Kerk   (2006-02-01 13:02:00) [4]

http://kladovka.net.ru/index.cgi?pid=list&rid=322


Kerk   (2006-02-01 13:02:00) [5]

http://kladovka.net.ru/index.cgi?pid=list&rid=53


yaroslav   (2006-02-01 09:47:00) [6]

2 Близнец
будут вопросы - пиши на мыло, отвечу с радостью...


Близнец   (2006-02-01 06:40:00) [7]

2 MBo
спасибо, это тоже посмотрю


MBo   (2006-02-01 06:33:00) [8]

FGInt поищи


Близнец   (2006-02-01 06:33:00) [9]

2 yaroslav
спасибо большое за разъяснение, буду пробовать реализовать


> я понимаю, что заочник - но странно: что вам там дают преподы

а ничего практически не дают, вот рассмотрели по-быстрому, как число 5 зашифровать, где p, q и n однозначные числа, а в нагрузку выдали задание в электронном виде, а препода уже до экзамена не увидем (и в институте не найдешь)


yaroslav   (2006-01-31 12:12:00) [10]

Здесь другая арифметика - МОДУЛЬНАЯ!!
А в ней другие правила...


yaroslav   (2006-01-31 12:10:00) [11]

ерунду тебе пишут!!!

алгоритм RSA (как практически ЛЮБОЙ криптографический алгоритм) берет не степень, а СТЕПЕНЬ ПО МОДУЛЮ!!!

не нужно считать 2^24 mod 25 (числа из головы ради примера) как сначала x:=2^24, а потом y:=x mod 25.

Делается так: (я понимаю, что заочник - но странно: что вам там дают преподы?)

2^24 mod 25 = 2^(6+6+6+6) mod 25 = (2^6)*(2^6)*(2^6)*(2^6) mod 25;

2^6 = 64 (это найти просто, и подсилу компьютеру),
а дальше (!) берется 64 mod 25 = 14 (вот уж точно - устный счет)
и наконец (2^6)*(2^6)*(2^6)*(2^6) mod 25 = 14*14*14*14 mod 25. согласись, что это проще, чем 64*64*64*64 mod 25 ?!
Дальше в том же духе, пока не "спустишься" до совсем уж элементарных чисел... Таким вот образом, кстати, "ручками" и считают (ну или считали).
Счет, действительно - УСТНЫЙ!

А задача для программирования - как раз разбиение "большого" числа на "маленькие" и применение уже к ним операции mod. Тут хоть longint в longint возводи!


Gero   (2006-01-31 09:42:00) [12]

> но это нереально ручками сделать

Почему же, вполне реально. Я делал когда-то.

> И как его использовать можно в данном случае?

См. http://algolist.manual.ru-> Длинная арифметика.


Близнец   (2006-01-31 09:39:00) [13]

2 Gero

> Ну так не зря дали. Ты должен этот тип написать самостоятельно.

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

>
> Составного. Лучше всего подойдет record.

И как его использовать можно в данном случае?


Gem   (2006-01-31 09:39:00) [14]

2 Gero

> Ну так не зря дали. Ты должен этот тип написать самостоятельно.

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

>
> Составного. Лучше всего подойдет record.

И как его использовать можно в данном случае?


Gero   (2006-01-31 09:34:00) [15]

> Задание дали на учебе (заочная форма):

Ну так не зря дали. Ты должен этот тип написать самостоятельно.


Близнец   (2006-01-31 09:33:00) [16]

2 MBo
Задание дали на учебе (заочная форма): реализация алгоритма RSA, даны  P=251, Q=331, D=165131

2 palva
Спасибо, буду знать, что таких типов нет, а то уже пол инета перерыто ;)


Gero   (2006-01-31 09:21:00) [17]

> Какого типа необходимо использовать переменную для возведения
> числа в большую степень

Составного. Лучше всего подойдет record.


palva   (2006-01-31 08:46:00) [18]

В делфи таких типов нет. Вы должны привлечь разработки сторонних фирм или написать свою.


MBo   (2006-01-31 08:20:00) [19]

Цель какая?


Наверх

Титульная страница Поиск, карта сайта Написать письмо