Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Алгоритм Диффи-Хелмана (http://forum.oszone.net/showthread.php?t=64319)

Artya 13-04-2006 23:47 427648

Алгоритм Диффи-Хелмана
 
Добрый день. помогите ктото реализовать этот самый алгоритм на паскале.
а то у меня с математичискими функциями не очень получаеца в паскале :(
вот попробЫвал вот так зделать:

var
v,n,x,y,a,b,k,k2:integer;
begin
randomize;
v:=123450;
n:=987612;
x:=random(500);
y:=random(500);
a:=(power(v,x)) mod n;
b:=(power(v,y))mod n;
k:=(power(((power(v,y))mod n),x))mod n;
k2:=(power((trunc(power(v,x))mod n),y))mod n;
writeln(inttostr(k));
writeln(inttostr(k2));
но шото оно не хочет работать так...

DillerInc 14-04-2006 15:37 427853

Artya
Значит так:
1. Если ты пользуешься математической функцией Power, то тебе необходимо использовать вещественный тип(Extended),а не целый(Integer).
2. Почему у тебя никак не используются переменные a и b ?
3. Для вещественных чисел можно и нужно использовать операцию деления без отбрасывания дробной части(символ /).
mod тут походу не подходит.

А вообще так трудно пытаться заставить алгоритм правильно работать без теории последнего.Дай что-ли краткое описание или ссылку какую-нибудь.

Artya 17-04-2006 00:52 428482

http://book.itep.ru/6/difi_646.htm

DillerInc 17-04-2006 16:47 428712

Artya
Что-то больно сухо...
Я вобще не понял,надо ли использовать вещественный тип...в частности степень??
Дело в том,что немного изменив вышеприведённый код,его удастся скомпилировать,но приложение будет падать из-за ошибки переполнения плавающей точки.


Время: 08:20.

Время: 08:20.
© OSzone.net 2001-