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

RSA-степень-переполнение - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
bigbang
0 / 0 / 0
Регистрация: 06.05.2010
Сообщений: 4
06.05.2010, 08:04     RSA-степень-переполнение #1
Хай. Проблема: нужно возводить в степень большие числа (это для шифрования методом RSA). НО: если результат меньше 19 знаков, то все в порядке. А если больше - не считает, т.к. выходит за диапазон __int64 (Например, 29^13). Что делать с этим переполнением?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.05.2010, 08:04     RSA-степень-переполнение
Посмотрите здесь:

C++ Ключи RSA
RSA шифрование C++
C++ Как возвести дробное число в целую степень? К примеру 2,7 возвести в степень 2 на C++.
C++ RSA
C++ Переполнение
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
06.05.2010, 08:17     RSA-степень-переполнение #2
Использовать действительно
Цитата Сообщение от bigbang Посмотреть сообщение
большие числа
Гуглите по словам "Длинная арифметика", читайте второй том Д. Кнута и да будет Вам счастье
bigbang
0 / 0 / 0
Регистрация: 06.05.2010
Сообщений: 4
06.05.2010, 10:33  [ТС]     RSA-степень-переполнение #3
как то google ничего внятного не дал... и все-таки, без подключения библиотек есть алгоритм возведения в степень больших чисел? у меня есть не очень больших, как бы его модифицировать?
C
1
2
3
4
5
6
7
8
9
10
__int64 step(__int64 a,__int64 b)
{
__int64 t = a;
__int64 i;
if (b > 0)
for (i=0;i<b-1;i++)
a = a*t;
else a = 1;
return a;
}
Добавлено через 1 час 22 минуты
подскажите, пожалуйста, есть у кого алгоритм создания больших чисел, чтобы их потом в формулу подставить?

Добавлено через 3 минуты
И еще может кто знает, тоже по RSA - Нужно разбить сообщение на блоки, каждый из которых может быть представлен в виде числа M(i)=0,1,2..., n-1. Чтобы потом зашифровать текст по формуле C(i)=(M(I)^e)mod n.
Alexandoros
226 / 64 / 4
Регистрация: 02.06.2009
Сообщений: 280
06.05.2010, 13:51     RSA-степень-переполнение #4
http://gmplib.org/
или самому писать поразрядное умножение и возведение
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
06.05.2010, 15:10     RSA-степень-переполнение #5
bigbang, Вы хотя бы понимаете, что каким бы стандартным типом данных не пользоваться, все равно для "нормального/стойкого" шифрования ключи нужны как минимум 256 бит (самый самый минимум), ни в какой стандартный тип данных это не влезет.
Если хотите могу выложить собственные исходники длинной арифметики, если конечно не будет лень разбираться в таком количестве чужого кода.
Лучше уж и правда воспользоваться сторонними библиотеками
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,689
06.05.2010, 15:10     RSA-степень-переполнение #6
Книга Л.Аммерааль'STL для программистов на C++'
Последняя глава - "Очень большие числа".
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.05.2010, 15:41     RSA-степень-переполнение
Еще ссылки по теме:

Переполнение C++
C++ Написать программу с функцией, вычисляющей целую степень дробного числа. Учесть,что степень может быть положительной, отрицательной, нулевой
C++ RSA - иероглифы

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

Или воспользуйтесь поиском по форуму:
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
06.05.2010, 15:41     RSA-степень-переполнение #7
М. Вельшенбах. "Криптография на Си и С++ в действии"
Yandex
Объявления
06.05.2010, 15:41     RSA-степень-переполнение
Ответ Создать тему
Опции темы

Текущее время: 23:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru