|
13 / 13 / 2
Регистрация: 01.10.2008
Сообщений: 116
|
|
ГОСТ 3410 / Работа с длинными числами01.10.2008, 12:20. Показов 18756. Ответов 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
|
|
| 01.10.2008, 12:20 | |
|
Ответы с готовыми решениями:
75
Работа с длинными числами Работа с длинными числами Работа с длинными числами |
|
13 / 13 / 2
Регистрация: 01.10.2008
Сообщений: 116
|
||||||
| 21.10.2008, 15:40 [ТС] | ||||||
|
*bkmz, Вот нашел
http://slil.ru/26258183 - распознаный ГОСТ 34.10-94 http://slil.ru/26258197 - методичка какой-то конторы по шифрам Добавлено через 7 минут 24 секунды Еще пара вопросов: 1) Есть ли константа (или чего-то еще) с названием NULL? 2) Чем отличаются (__int64) T, от __int64 T;? 3) Макрос #define MakeLong (A,B) ((A)|((__int64)(B)<<m)); при его вызове выдает ошибки [C++ Error] Unit1_math.cpp(161): E2451 Undefined symbol 'B' - мол не знаю, что за B. Потом исправил на #define MakeLong ( A,int B) ((A)|((__int64)(B)<<m));. Выдает ошибку [C++ Error] Unit1_math.cpp(161): E2188 Expression syntax. Вот, код функции:
0
|
||||||
|
1 / 1 / 0
Регистрация: 21.10.2008
Сообщений: 25
|
|
| 21.10.2008, 16:10 | |
|
IS, Ну все же там есть вещи которые настораживают.. например пункт 7 в процедуре A(Генерация простых чисел), где 2 возводится в 161 степень.
Методичка кокой-то конторы по шифрам - это вещь!!!
0
|
|
|
Почетный модератор
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
| 21.10.2008, 17:01 | |
|
IS, 1) NULL есть
2) отличие в том, что в первом случае - это приведение переменно к типу __int64, а во втором - это объявление переменной 3) покажи текст, где ты макрос объявляешь, потому что вставил твой первый вариант, билдер нормально съел...
0
|
|
|
13 / 13 / 2
Регистрация: 01.10.2008
Сообщений: 116
|
||||||
| 21.10.2008, 17:15 [ТС] | ||||||
|
Это?
0
|
||||||
|
Почетный модератор
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
||||||
| 21.10.2008, 17:45 | ||||||
|
у меня прошел такой вариант:
0
|
||||||
|
13 / 13 / 2
Регистрация: 01.10.2008
Сообщений: 116
|
|
| 21.10.2008, 19:15 [ТС] | |
|
Вы новый код использовали? У меня не работает
0
|
|
|
1 / 1 / 0
Регистрация: 21.10.2008
Сообщений: 25
|
|
| 22.10.2008, 01:25 | |
|
IS, У тебя 34.10-2001 (эллиптические кривые) или 34.10-94?
0
|
|
|
13 / 13 / 2
Регистрация: 01.10.2008
Сообщений: 116
|
||||||||||||||||||||||||||
| 22.10.2008, 08:16 [ТС] | ||||||||||||||||||||||||||
|
*bkmz, у меня эллиптические кривые, гост 2001 года. Кстати, какая у тебя специальность?
Добавлено через 5 минут 12 секунд WooDooMan, если нельзя устранить проблему с макросом #define MakeLong (A,B) ((A)|((__int64)(B)<<m));,то, может, его можно заменить аналогичным по смыслу кодом? А в этом цикле:
И здесь тоже:
Еще проблема. Не очень понятно, что хотели сделать авторы следующим циклом:
И, что за постфиксная запись q-? в коде:
P.S Коды в книге приведены на языке C.
0
|
||||||||||||||||||||||||||
|
Почетный модератор
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
| 22.10.2008, 09:40 | |
|
IS, прикрепи свой код в посте, а то я уже запутался, что там у тебя и где... а вообще можно просветить, что это за госты-то такие, вы где, товарисчи, учитесь?
0
|
|
|
13 / 13 / 2
Регистрация: 01.10.2008
Сообщений: 116
|
|||||||||||
| 22.10.2008, 09:55 [ТС] | |||||||||||
|
Последная версия кода:
Unit1_math.h
О ГОСТе Р 34.10-2001: Настоящий стандарт содержит описание процессов формирования и проверки электронной цифровой подписи (ЭЦП), реализуемой с использованием операций группы точек эллиптической кривой, определенной над конечным простым полем. Стандарт разработан взамен ГОСТ Р 34.10-94. Необходимость разработки настоящего стандарта вызвана потребностью в повышении стойкости ЭЦП к несанкционированным изменениям. Стойкость ЭЦП основывается на сложности вычисления дискретного логарифма в группе точек эллиптической кривой, а также на стойкости используемой хэш-функции по ГОСТ Р 34.11.
0
|
|||||||||||
|
1 / 1 / 0
Регистрация: 21.10.2008
Сообщений: 25
|
|
| 22.10.2008, 10:06 | |
|
Петербургский государственный университет путей сообщения,
специальность "090105 - Комплексное обеспечение информационной безопасности автоматизированных систем" 34.10 - государственный стандарт реализации электронно-цифровой подписи. (ныне действует версия 2001 года, хотя есть много систем где осталась версия 94 года, например Банк-Клиент). 34.11 - стандарт, описывающий HASH функцию. (Она нужна при выработке подписи, так как подписывается и проверяется именно ее значение) 28147 - старенький стандарт симметричного шифрования, нужен при работе функции хеширования. ---- Повторился про госты, ну не страшно. IS, да у нас одинаковые специальности как я вижу!)
0
|
|
|
Почетный модератор
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
| 22.10.2008, 10:47 | |
|
точки с запятой после макросов ставить не надо
0
|
|
|
13 / 13 / 2
Регистрация: 01.10.2008
Сообщений: 116
|
|
| 23.10.2008, 10:19 [ТС] | |
|
WooDooMan, не помогло
. Может, какие-то настройки надо изменить?Добавлено через 1 минуту 51 секунду *bkmz, предмет по которому курсовик называется КМЗИ - криптографические методы защиты нформации?
0
|
|
|
Почетный модератор
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
| 23.10.2008, 10:28 | |
|
не понимаю я ЧЕГО-то, у меня эти макросы нормально компилятся
0
|
|
|
13 / 13 / 2
Регистрация: 01.10.2008
Сообщений: 116
|
|
| 23.10.2008, 13:07 [ТС] | |
|
WooDooMan, Сможешь выложить свой проект?
0
|
|
|
Почетный модератор
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
| 23.10.2008, 13:29 | |
|
прикрепи свой, а я его компильну
0
|
|
|
13 / 13 / 2
Регистрация: 01.10.2008
Сообщений: 116
|
||||||
| 23.10.2008, 14:03 [ТС] | ||||||
|
WooDooMan, Спасибо, но уже не надо. Я плюнул на этот макрос и заменил его соответствующим текстом.
Например:
0
|
||||||
|
Почетный модератор
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
| 23.10.2008, 14:19 | |
|
IS, ну тоже вариант, лишь бы корректно работало)))
0
|
|
|
1 / 1 / 0
Регистрация: 21.10.2008
Сообщений: 25
|
|
| 23.10.2008, 14:23 | |
|
IS, да, именно так
0
|
|
|
13 / 13 / 2
Регистрация: 01.10.2008
Сообщений: 116
|
|
| 24.10.2008, 09:49 [ТС] | |
|
WooDooMan, скажите, как можно узнать, сколько элементов в массиве?
0
|
|
| 24.10.2008, 09:49 | |
|
Помогаю со студенческими работами здесь
40
Работа с длинными числами (Delphi 7) Функция с++ (работа с длинными числами - вывод результата в файл) Действия с длинными числами Сочетания с длинными числами Операции с длинными числами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
делаю науч статью по влиянию грибов на сукцессию
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-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|