ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Поделитесь классом для работы с RSA
  #1  
Старый 27.10.2009, 11:37
ZagZag
Участник форума
Регистрация: 22.02.2007
Сообщений: 213
Провел на форуме:
388345

Репутация: 58
По умолчанию Поделитесь классом для работы с RSA

Уже не первый день сижу и изобретаю велосипед.
Написал процедуру генерации ключей, но с процедурой шифрования сплошные траблы.
Использую библиотеку gmp для работы с большими числами, но лучше бы от нее избавиться.
Прошу ссылок на вменяемые классы для работы с RSA
 
Ответить с цитированием

  #2  
Старый 27.10.2009, 13:46
desTiny
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
Провел на форуме:
3008839

Репутация: 1502


По умолчанию

http://openssl.org/
__________________
Bedankt euch dafür bei euch selbst.

H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ
 
Ответить с цитированием

  #3  
Старый 27.10.2009, 14:44
ZagZag
Участник форума
Регистрация: 22.02.2007
Сообщений: 213
Провел на форуме:
388345

Репутация: 58
По умолчанию

Мне нужен класс только для RSA. Без сторонних библиотек и наворотов.
 
Ответить с цитированием

  #4  
Старый 27.10.2009, 14:56
desTiny
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
Провел на форуме:
3008839

Репутация: 1502


По умолчанию

ну подруби только то, что нужно, из хедеров.
__________________
Bedankt euch dafür bei euch selbst.

H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ
 
Ответить с цитированием

  #5  
Старый 28.10.2009, 10:17
ZagZag
Участник форума
Регистрация: 22.02.2007
Сообщений: 213
Провел на форуме:
388345

Репутация: 58
По умолчанию

Всеравно эта либа огромная. Вчера полвечера проплясал с бубном в одной руке и напильником в другой, пытаясь скомпилить OpenSSL без лишних модулей. MD5, HMAC и SHA отключить так и не удалось. В итоге получилась либа libcrypto.a 2Мб и libssl.a 390Кб, а простой экзешник с генерацией ключей и шифрованием файла занимает 700+ Кб.
Еще линкер требует из-за libcrypto подключать libgdi32, т.к. отсутствуют функции CreateDC и т.п.
К плюсам OpenSSL можно отнести простоту написания программы, все очень удобно.
Но мне придется искать другие варианты. Кроме OpenSSL еще что-нибудь можете посоветовать?
 
Ответить с цитированием

  #6  
Старый 28.10.2009, 13:04
ZagZag
Участник форума
Регистрация: 22.02.2007
Сообщений: 213
Провел на форуме:
388345

Репутация: 58
По умолчанию

Вот релиз от z0mbie, но на TASM32: http://z0mbie.daemonlab.org/rsalib6.zip
Размер 3Кб, но как его приделать к проекту на C++?
 
Ответить с цитированием

  #7  
Старый 28.10.2009, 14:03
desTiny
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
Провел на форуме:
3008839

Репутация: 1502


По умолчанию

Код:
; input:
;   IN  ECX      = length    = l  (in BITs)
;   IN  ESI[ECX] = dividend  = x
;   IN  EDI[ECX] = divisor   = y
;   OUT EAX[ECX] = result    = d
;   OUT EDX[ECX] = remainder = m
; modify:
;   none

x                       =       [esp].pusha_esi
y                       =       [esp].pusha_edi
d                       =       [esp].pusha_eax
m                       =       [esp].pusha_edx

divmod:                 pusha

                        lea     ebx, [ecx-1]    ; for (i=KEYLEN-1; i>=0; i--)

                        shr     ecx, 5          ; EBP = length in DWORD's
                        mov     ebp, ecx

                        mov     edi, eax        ; d = 0
                        xor     eax, eax
                        rep     stosd

                        mov     edi, edx        ; m = 0
                        mov     ecx, ebp
                        rep     stosd
__main_cycle:                                   ; {//for i

                        mov     edi, d          ;   d <<= 1
                        mov     ecx, ebp
                        clc
                        RCL_CYCLE

                        mov     eax, x          ;   CF = x.bit[i]
                        bt      [eax], ebx
                        ; CF

                        mov     edi, edx        ;   m = (m << 1) | CF
                        mov     ecx, ebp
                        RCL_CYCLE

                        mov     edi, edx        ;   if (m >= y)
                        mov     esi, y          ;   {
                        mov     ecx, ebp
                        CMP_CYCLE __b, __ae
__ae:
                        mov     ecx, ebp        ;     m -= y
                        clc
                        SBB_CYCLE

                        mov     eax, d          ;     d |= 1
                        or      byte ptr [eax], 1
__b:                                            ;   }
                        dec     ebx
                        jns     __main_cycle    ; }//for i

                        popa
                        retn
Если деление реализовано так, то работать оно будет меедлеенно
__________________
Bedankt euch dafür bei euch selbst.

H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обзор легального бесплатного ПО Sinay Soft - Windows 48 24.04.2010 20:08
Начальный практикум в Code Igniter Kuzya Авторские статьи 9 20.02.2009 23:12
Взлом Unix а silveran *nix 4 21.12.2005 22:46



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ