Сейчас на форуме: Magister Yoda, johnniewalker, Kybyx, vsv1, r0lka, -Sanchez-, testrev1337 (+3 невидимых)

 eXeL@B —› Крэки, обсуждения —› RSA?
Посл.ответ Сообщение

Ранг: 2.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 07 апреля 2011 00:33
· Личное сообщение · #1

Всем привет!
Имеется таргет, использующий что то на вроде RSA (канал не определяет, так что я могу и ошибаться).
Суть в следующем. Имеется два 256-битных числа, первое, a - преобразованный ключ, второе, c - константа в коде. Выполняется функция powmod (d = a^b mod c). b = 101h.
В дампе:
a: 0017C89C 48 E5 3A 76 43 C8 46 E1 6A 4C 84 68 F7 00 00 00 Hе:vCИFбjL„hч...
c: 0017C87C E1 55 D1 62 34 60 99 AB E5 D1 FE 26 1B 00 00 00 бUСb4`™«еСю&...
d: 0017C8C0 DD 49 2C 2A 70 28 96 55 11 CC 2C 1F 02 00 00 00 ЭI,*p(–UМ,...

Вопрос, собственно, РСА ли это, и как мне, зная b, c и d, получить a?



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 07 апреля 2011 00:50
· Личное сообщение · #2

Dy5phoRiC пишет:
РСА ли это

Да. Для взлома нужно факторизовать c. Я это уже сделал:

PRIME FACTOR: 6C9C021156EAA1F
PRIME FACTOR: 3FFFFBFFFFF

Далее получаем секретную экспоненту: e = 3B2A2347DE7A0C1950E8EAECD

Теперь, чтобы получить желаемый d, шифруем его:
d_crypted = d ^ e mod c

Далее a = d_crypted и a делаем ключом по схеме, обратной схеме его декодирования.



Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 07 апреля 2011 00:56 · Поправил: tihiy_grom
· Личное сообщение · #3

читайте про "китайскую теорему об остатках"



Ранг: 2.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 07 апреля 2011 01:33 · Поправил: Dy5phoRiC
· Личное сообщение · #4

Спасибо за ответы, но я по прежнему не могу понять как получить исходный ключ...
Код:
C=M^E mod N
M=C^D mod N
Code:
  1. mov M_,$invoke (bs_create,0)
  2. mov dword ptr [eax],0Dh
  3. mov dword ptr [eax+4],0763AE548h
  4. mov dword ptr [eax+8],0E146C843h
  5. mov dword ptr [eax+12],068844C6Ah
  6. mov dword ptr [eax+16],0F7h
  7. mov D_,$invoke (bs_create,0)
  8. mov dword ptr [eax],0Dh
  9. mov dword ptr [eax+4],034A2B203h
  10. mov dword ptr [eax+8],0C1A0E77Dh
  11. mov dword ptr [eax+12],0AE8E0E95h
  12. mov dword ptr [eax+16],0CDh
  13. mov N_,$invoke (bs_create,0)
  14. mov dword ptr [eax],0Dh
  15. mov dword ptr [eax+4],062D155E1h
  16. mov dword ptr [eax+8],0AB996034h
  17. mov dword ptr [eax+12],026FED1E5h
  18. mov dword ptr [eax+16],01Bh
  19. mov C_,$invoke (bs_create,0)
  20. mov E_,$invoke (bs_create,101h)
  21. invoke bs_powmod,M_,E_,N_,C_
  22. invoke bs_powmod,C_,D_,N_,M_

нужного результата не дает . Где ошибка?



Ранг: 590.4 (!), 408thx
Активность: 0.360.18
Статус: Модератор

Создано: 07 апреля 2011 11:00
· Личное сообщение · #5

Тебе ж написали уже приват-ключ.
Смотри описание RSA. После разложения ты имешь материал для вычисления ключей.

-----
старый пень




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 07 апреля 2011 14:59
· Личное сообщение · #6

Dy5phoRiC
Дай описание иходника, откуда взята функция bs_create. Какой порядок байт используется?

D неверно. Откуда ты его взял? Я же написал:

e = 3 B2A2347D E7A0C195 0E8EAECD (твое D). Значит, если все остальное верно, то:
Code:
  1. mov D_,$invoke (bs_create,0)
  2. mov dword ptr [eax],0Dh
  3. mov dword ptr [eax+4],0E8EAECDh
  4. mov dword ptr [eax+8],0E7A0C195h
  5. mov dword ptr [eax+12],0B2A2347Dh
  6. mov dword ptr [eax+16],3h

Но сдается мне, что порядок байт в DWORD'ах должен быть другим. Попробуй оба варианта.



Ранг: 2.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 07 апреля 2011 17:28
· Личное сообщение · #7

Wtf?
M=C^D mod N исходного значения не дала, но, повторно выполненная C=M^E mod N с новым M, выдала нужную C. Это нормально для RSA?



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 07 апреля 2011 17:52
· Личное сообщение · #8

А в чем проблема?

M = C^D mod N
Далее подставляем C=(C^D mod N) ^ E mod N = C ^ DE mod N = C mod N = C

Dy5phoRiC пишет:
исходного значения не дала

Исходного, это какого? Точно не путаешь E и D, или M и C?



Ранг: 2.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 08 апреля 2011 02:57
· Личное сообщение · #9

Разобрался, кейген готов. int, спасибо за помощь.


 eXeL@B —› Крэки, обсуждения —› RSA?
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати