Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.77/91: Рейтинг темы: голосов - 91, средняя оценка - 4.77
IS
13 / 13 / 2
Регистрация: 01.10.2008
Сообщений: 116

ГОСТ 3410 / Работа с длинными числами

01.10.2008, 12:20. Показов 18772. Ответов 75
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Начал делать курсовик по реализации ЭЦП по ГОСТ 34.10 (и соответственно 34.11 и 28147 ). В качестве среды разработки выбрал C++ Builder.
Возник вопрос: Как работать с большими числами размером в 256,512,1024 бит? Они, ведь, ни в один тип данных не лезут (int только 32 бита). В контрольком примере дано число 5789604461865809771178549250434395392663 4992332820282019728792003956564821041.
P.S Чужая реализация 3410-01 Но, есть сильное подозрение а то, что препода "кинули" - подсунили ему в место ГОСТ 3410-2001, забугорский ECDSA.
Мой курсовик:
Недостатки:
1) Результат проверки не совпадает с генерированой подписью. Проблема в математике.
2) Нет создания хэша функции по ГОСТ 3411
3) Нет вычисленя параметров ЭК.
4) Длительное время работы (прога не зависла - она считает)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.10.2008, 12:20
Ответы с готовыми решениями:

Работа с длинными числами
Не работает программа с длинными числами...подскажите как поправить (3ab-4c) / d^2 .model small .stack 100h .data a db 10 ...

Работа с длинными числами
Мне нужно прочитать из файла 22-х значные целые числа для количественного сравнения. int и long int не сохраняют полную длину числа. Какой...

Работа с длинными числами
Здравствуйте! На программировании в вузе дали индивидуальную задачу которая предусматривает работу с большими числами: 1 <= N...

75
IS
13 / 13 / 2
Регистрация: 01.10.2008
Сообщений: 116
17.11.2008, 15:05  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от WooDooMan Посмотреть сообщение
погоди, ну так на глаз - у тебя же цикл с 1 начинается, а вообще трассировать надо, мутноватый у тебя лог, если честно
А при чем здесь это? Я ведь ни где в BufMas1[0] нуль не присваиваю?
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
17.11.2008, 16:23
догнал, хотя все это странно выходит... почему он 0, слей проект, потрассировать надо, так сказать что-то сложно...
0
IS
13 / 13 / 2
Регистрация: 01.10.2008
Сообщений: 116
17.11.2008, 16:51  [ТС]
WooDooMan, вот - http://slil.ru/26340978
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
17.11.2008, 17:18
честно говоря, я не могу понять, как это оно у тебя обнуляло в суммировании второе число, потом гляну, но я кое-какие внес изменения в прикрепленном архиве - глянь, так должно работать или нет?
Вложения
Тип файла: rar 3410.rar (12.5 Кб, 67 просмотров)
0
IS
13 / 13 / 2
Регистрация: 01.10.2008
Сообщений: 116
17.11.2008, 18:50  [ТС]
WooDooMan, Спасибо, тоже помогло. Я сам просто создал новую переменную и передавал значение через нее, обходя проблемный код.
Code
1
memset(BufMas1, 0, sizeof(int)*100);
Эта строчка просто выделяет память под массив или обнуляет массив? Если первое, то как можно обнулить массив без использования цикла for?
0
0 / 0 / 0
Регистрация: 17.11.2008
Сообщений: 12
17.11.2008, 19:10
мучаюсь с ГПСЧ.
long поддерживает 8значные числа насколько знаю, но надо умножить 2 восьмизначных числа, насколько я понимаю в переменную типа long это не влезет?
может кто-нибудь посоветовать как это сделать?
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
18.11.2008, 09:34
Code
1
memset(BufMas1, 0, sizeof(int)*100);
- забивает память нулями или чем захочешь

Добавлено через 24 секунды
deathklaat, длинная африметика вам в помощь
0
IS
13 / 13 / 2
Регистрация: 01.10.2008
Сообщений: 116
18.11.2008, 16:57  [ТС]
WooDooMan, Как можно узнать какое наибольшее число влезает в тип int?
Я знаю, что 4294967295, но мне интересно как это можно узнать.
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
18.11.2008, 18:43
опытным путем, впиши максимальное и инкрементируй и глянь, что получится
0
IS
13 / 13 / 2
Регистрация: 01.10.2008
Сообщений: 116
20.11.2008, 10:34  [ТС]
WooDooMan, еще несколько вопросов:
1) Как можно провести табуляцию (сдвиг) сразу для всего текста кода?
2) Как можно копировать из одного массива в другой без цикла for?
3) Как можно быстро увеличить размер всех элементов форм в 1,5 раза?
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
20.11.2008, 10:51
1) shift + alt позволяют выделять полоски, их можно использовать как табуляции
2)
Code
1
memmove(fib0, fib1, sizeof(int)*N);
3) а вот с этим сложнее, тут разве что пробежать в цикле по всем компонентам и увеличить их размеры, других способов не знаю
0
IS
13 / 13 / 2
Регистрация: 01.10.2008
Сообщений: 116
20.11.2008, 13:37  [ТС]
WooDooMan, езще вопрос:
4) как лучше сделать индикатор, показывающий, что программа работает и не зависла? ProgressBar не очень подходит т.к используетя много функций и нет единного счетчика.
5) Как показать время работы программы т.е сколько потребовалось ей времени для расчета?
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
20.11.2008, 14:00
4) ты во всех длительных операциях не забывай вставлять Application->ProcessMessages или такие операции в отдельные процессы отправляй...
5) ну это просто запоминаешь в tdatetime begin = now(); в конце кода tdatetime end = now();, а потом label1->text = timetostr(end - begin);
0
IS
13 / 13 / 2
Регистрация: 01.10.2008
Сообщений: 116
06.12.2008, 19:22  [ТС]
WooDooMan, Спасибо за помощь.
0
 Аватар для QenT
40 / 40 / 8
Регистрация: 29.01.2009
Сообщений: 244
30.01.2009, 20:26
Знать алгоритмы с большими числами, полезно, но может кто нибудь уже нашел тип переменной, больше(unsigned __int64)? Буду очень благодарен тому, кто скажет!!!
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
31.01.2009, 01:27
в принципе я видел библиотеку, в которой уже алгоритмы реализованы... но к сожалению, я ее не использовал и ее название кануло в лету... сам все писал... поэтому гугль вам поможет...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.01.2009, 01:27
Помогаю со студенческими работами здесь

Работа с длинными числами (Delphi 7)
подскажите как написать программу в делфи 7 длинные числа(произведение)!плз!!

Функция с++ (работа с длинными числами - вывод результата в файл)
У меня есть проэкт с++ который использует динамическую библиотеку для работы с длинными числами. В проэкте я перегружаю операторы +,-,...

Действия с длинными числами
Ребята, нужна помощь. Информации нигде нет. Задача такова. Нужно провести арифметичексие действия с целыми числами не превышающие 30 цифр....

Сочетания с длинными числами
Нужно создать программу, которая вычисляла бы количество комбинаций для сочетания без повторения. По сути, сочетания C=n!/(m!(n-m)!)....

Операции с длинными числами
Друзья! Помогите пожалуйста. Мне надо составить программу, которая будет вычислять (сложить, вычитать, умножать) длинных чисел до 50 цифр. ...


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

Или воспользуйтесь поиском по форуму:
76
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru