CreatorCray ты хоть комментарии поставь, плззззззз, я лично енту либу, кою ты юзаешь, первый раз вижу)
я так понимаю - речь идёт о таком коде(??): int fact=1, factmod=1, n,factorial, i=0; cin>>n; cin>>factorial; while(i<factorial){ fact++; factmod*=fact; factmod%=n; }
UbIvItS >> ты хоть комментарии поставь, плззззззз, я лично енту либу, кою ты юзаешь, первый раз вижу Разумеется первый раз видишь - либа то самописная ) Комментарии для людей, которые знают что такое montgomery multiplication практически не нужны. Для тех же кто не знает - надо объяснять всю теорию. Там дальше я кусок из книги запостил - считай что это и есть комменты. >> речь идёт о таком коде Ну не совсем таком, но где то близко. Вообще, если тебе надо алгоритм факториала, отличный от классического, попробуй воскурить mpz_fac_ui из GMP. Только на мой взгляд ее писали по конкретной укурке.
CreatorCray в топку етот код в топку) - метод тупого перебора и то быстрей факторизировать будет) - аля на порядок.
UbIvItS >> метод тупого перебора и то быстрей факторизировать будет А как ты собрался факторизовать с помощью вычисления факториала? Я вообще то набросал код вычисления факториала с применением того самого загадочного Откуда ты применение его к факторизации вытянул - не понятно.
Кстати, ты все еще паришься разработкой собственного алгоритма разложения на множители? Чем тебя MPQS не устраивает? Быстрее его вроде как нету ничего покуда...
CreatorCray я об этом уже говорил - смотри более рание топики. об этом я тоже говорил: сита прожорливы по памяти и на 1024 битах они смешней выглядят, чем тупой перебор возможных делителей)
UbIvItS >> сита прожорливы по памяти и на 1024 битах они смешней выглядят, чем тупой перебор возможных делителей Ну ну... Был как то в RU.CRYPT такой товарищ: Юрий Решетов, так вот ты мне его напоминаешь. )
CreatorCray считай: 2гб на 512 бит требуется - теперь посчитай на 1024 бит) - неправда ли внушает), а ведь надо матрицу ещё и сформировать
UbIvItS Потребление памяти - плата за использование самого быстрого алгоритма. Впрочем, если уж замахиваешься на факторизацию 1024 битного, то будь добр соответствуй аппаратно.
CreatorCray нафиг(??)- эти ресурсы лишь в твоих мечтах), лучше я поищу алгос - могет он есть. к тому же, допустим 512 бит колется за 8 деньков - вопрос на засыпку: скока будет биться 1024 бит. вопрос на засыпку номер два: какой дурак юзает ключ на 1024 вместо 2048 бит?????????)
UbIvItS Ну по приблизительным оценкам RSA Labs для этого понадобится ~6 терабайт памяти - в принципе довольно таки реально хотя и безумно дорого и долго... Успехов в поисках
М-да, обещал, а нашел только один листок (из двух), хотя никогда их не выкидывал, хранил... Ну да ладно, получается задача с нахождением окончания процедуры (если я, конечно, второй листок не найду), да может и не стоит на этот код смотреть. ЗЫ Я уж и не помню, что там и как, думается, профи поймут без труда Адреса последних меток специально указал, может это облегчит задачу. Код (Text): mov edx, dword ptr [k1] mov dword ptr [res+4], 0 mov eax, dword ptr [k2] mov ecx, dword ptr [k2+4] mov ebp, dword ptr [dd] mov dword ptr [res], 1 mov ebx, dword ptr [dd+4] jmp @402E05 @1: mov eax, dword ptr [k2] @2: test dword ptr [dd], 1 jz @3 mov edx, dword ptr [res] sub edx, edi xchg edx, dword ptr [res] xchg edx, dword ptr [res+4] sbb edx, esi mov dword ptr [res+4], edx jnb @3 xchg edx, dword ptr [res] add edx, eax xchg edx, dword ptr [res+4] adc edx, ecx xchg edx, dword ptr [res+4] xcgh edx, dword ptr [res] @3: shl edi, 1 rcl esi, 1 jb @4 cmp esi, ecx jb @5 ja @4 cmp edi, eax jb @5 @4: sub edi, eax sbb esi, ecx @5: mov edx, dword ptr [dd+4] shr edx, 1 xchg eax, dword ptr [dd] rcr eax, 1 mov dword ptr [dd], eax or eax, edx mov dword ptr [dd+4], edx jnz @1 @6: xor esi, esi xchg edi, ebp mov eax, edi xor ebp, ebp xchg esi, ebx mov dword ptr [tmp], eax mov edx, esi or eax, edx jz @402E60 @402DE7: test dword ptr [tmp], 1 jz @402E38 sub ebp, edi sbb ebx, esi mov eax, dword ptr [k2] ...............................................