Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
ahamoth
0 / 0 / 0
Регистрация: 26.11.2010
Сообщений: 111
#1

Алгоритм Диффи-Хеллмана. Ошибка вычисления - C++

23.11.2012, 19:58. Просмотров 1903. Ответов 8
Метки нет (Все метки)

Добрый вечер, я реализую алгоритм Диффи-Хелмана и столкнулся со следующими проблемами
1) в программе неправильно вычисляется значение k2 хотя при пересчете значений на калькуляторе k1=k2
в чем моя ошибка ? Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;
 
int main(int argc, char *argv[])
{ 
    int q,p,na,nb,n,rez;
   long long z1,z2 ,Ya,Yb,k1,k2;
   p=17;
   q=3;
   na=3;
   nb=8;
   z1= pow(q,na);
   z2= pow(q,nb);
   Ya=z1 % p;
   Yb =z2 % p;
   int z3= pow(Yb,na);
  int z4= pow(Ya,nb);
   k1=z3 % p;
   k2=z4 % p;
   cout<<"open key Ya = "<<Ya<<endl;
   cout<<"open key Yb = "<<Yb<<endl;
   cout<<"secret key  = "<<k1<<endl;
   cout<<"secret key  = "<<k2<<endl;
   
   
    system("PAUSE");
    return EXIT_SUCCESS;
}
2) посоветуйте какую библиотеку подключить чтобы производить арифметические операции с очень большими числами (10^34)? (операционка - win7, среда разработки dev c++)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2012, 19:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Алгоритм Диффи-Хеллмана. Ошибка вычисления (C++):

Алгоритм Диффи-Хеллмана на эллиптических кривых - C++
Здравствуйте , не поможете разобраться с алгоритмом Диффи-Хелмана на эллиптических кривых? Я видимо не совсем правильно понимаю работу...

Ошибка вычислений или переполнение (протокол Диффи-Хеллмана) - C++
привет всем!! я реализовал протокол диффи хеллмана, но он работеат только с маленькими числами,что нужно изменить чтоб он работал с...

Запустить исходник Диффи-Хеллмана - C++
вот код реализации диффи хеллмана,но я не могу запустить ее: помогите разобратся)) /* * dh.c * Example source file for D-H algorithm...

Составить блок-схему, алгоритм вычисления и программу для вычисления значения кусочно заданной функции - C++
помогите пожалуйста =) заранее благодарен =) П.5.19.Правил Запрещено создавать темы в виде ссылок на задания или коды программ,...

полига-хеллмана метод - C++
Здравствуйте, нужна программа с использование метода полига-хеллмана, простенькую какую-то можно. Языки: C++,C# Желательно в течении 3...

алгоритм вычисления - C++
Дано натуральное число n и действительное число x. Вычислить 1/x+1/(x*(x+1))+...+1/(x*(x+1)*...*(x+n))

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ValeryS
Модератор
6556 / 5022 / 464
Регистрация: 14.02.2011
Сообщений: 16,763
23.11.2012, 20:12 #2
Цитата Сообщение от ahamoth Посмотреть сообщение
z1= pow(q,na);
работает с плавающими числами а у тебя кругом целочисленные возможна ошибка округления, пройди отладчиком по шагам и посмотри где начинает врать
реализуй свою функцию возведения в степень для целочисленных типа
C++
1
2
3
4
5
6
7
int MyPow(int n1,int n2)
{
int pw=1;
for(int i=0;i<n2;i++)
  pw*=n1;
return pw;
}
ahamoth
0 / 0 / 0
Регистрация: 26.11.2010
Сообщений: 111
23.11.2012, 20:48  [ТС] #3
а что на счет библиотеки?
ValeryS
Модератор
6556 / 5022 / 464
Регистрация: 14.02.2011
Сообщений: 16,763
23.11.2012, 20:49 #4
не слыхал про такие
может самому класс придется реализовывать
ahamoth
0 / 0 / 0
Регистрация: 26.11.2010
Сообщений: 111
23.11.2012, 21:05  [ТС] #5
а можешь сказать что вот эта запись означает pw*=n1?
ValeryS
Модератор
6556 / 5022 / 464
Регистрация: 14.02.2011
Сообщений: 16,763
23.11.2012, 21:07 #6
Цитата Сообщение от ahamoth Посмотреть сообщение
вот эта запись означает pw*=n1?
сокращенная запись вот этого
C++
1
pw=pw*n1;
Жасулан
1 / 1 / 0
Регистрация: 22.10.2013
Сообщений: 68
25.10.2013, 07:54 #7
привет всем! а есть у кого этот алгоритм только переменные вводимые а на заданные
gromo
370 / 269 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
25.10.2013, 08:14 #8
библиотека gmp есть.
http://gmplib.org
Жасулан
1 / 1 / 0
Регистрация: 22.10.2013
Сообщений: 68
25.10.2013, 09:59 #9
а там описывается только библиотека, а хотел бы посмотреть наглядный пример алгоритма или если это возможно простенкии и работающии исходник на с++))

Добавлено через 1 час 38 минут
gromo, а там описывается только библиотека, а хотел бы посмотреть наглядный пример алгоритма или если это возможно простенкии и работающии исходник на с++))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2013, 09:59
Привет! Вот еще темы с ответами:

алгоритм вычисления - C++
Нужна ваша помощь, не могу разобраться c заданием. Заранее спасибо. &quot;Добавить к программе алгоритм вычисления суммы последовательности...

Алгоритм вычисления CRC-8 - C++
unsigned short crc8 (unsigned short *ptr, unsigned short size ) { unsigned short sum=0; while(size&gt;0) { sum+=ptr; sum += (sum...

Алгоритм вычисления функции - C++
Помогите пожалуйста, составить алгоритм вычисления функции: P.S. очень извиняюсь за картинку вместо текста, но не знаю как это правильно...

Алгоритм вычисления значения n! - C++
рекурсивный алгоритм вычисления значения n! Постройте рекуррентное соотношение для количества основных операций. рекурсию то я...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.10.2013, 09:59
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru