Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];

Вниз

Большая степень числа   Найти похожие ветки 

 
Близнец   (2006-01-31 06:22) [0]

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


 
MBo ©   (2006-01-31 08:20) [1]

Цель какая?


 
palva ©   (2006-01-31 08:46) [2]

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


 
Gero ©   (2006-01-31 09:21) [3]

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

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


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

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

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


 
Gero ©   (2006-01-31 09:34) [5]

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

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


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

2 Gero

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

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

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

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


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

2 Gero

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

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

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

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


 
Gero ©   (2006-01-31 09:42) [8]

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

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

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

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


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

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

алгоритм 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 возводи!


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

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


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

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


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

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


 
MBo ©   (2006-02-01 06:33) [12]

FGInt поищи


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

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


 
yaroslav ©   (2006-02-01 09:47) [14]

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


 
Kerk ©   (2006-02-01 13:02) [15]

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


 
Kerk ©   (2006-02-01 13:02) [16]

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


 
kaZaNoVa ©   (2006-02-01 13:48) [17]

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


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

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

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


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

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



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 3.281 c
2-1138731187
Arazel
2006-01-31 21:13
2006.02.19
Error: Ambiguous colum name C_Cost (ADOTable.SQL)


2-1138553720
SergV
2006-01-29 19:55
2006.02.19
Измирение темпиратуры чипсетов в Delphi


1-1137873251
Volf_555
2006-01-21 22:54
2006.02.19
Как определить запускаемые задачи из C: WINDOWS Tasks ?


2-1138686739
Bratskiy
2006-01-31 08:52
2006.02.19
создание Wizard а


2-1138943572
hunn
2006-02-03 08:12
2006.02.19
заголовок stringgrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский