Сейчас на форуме: rmn, exp50848 (+7 невидимых)

 eXeL@B —› Основной форум —› Получение экспоненты RSA
Посл.ответ Сообщение

Ранг: 11.4 (новичок), 1thx
Активность: 0.010
Статус: Участник

Создано: 16 февраля 2013 14:13 · Поправил: virus_forever
· Личное сообщение · #1

Приветствую!

Столкнулся с проблемой, получения экспоненты из результата работы modPow типа(класса) BigInteger:

Код на ActionScript3, но и в других языках BigInteger есть - Java, C#...

Code:
  1. var BC1: BigInteger = new BigInteger("94be9fdb3157e6ad258986e291763b11063e3c5fb86e764aaabdcc54d09ad464d6fd4ae85abcaa42a9c0c1ccdb0c050eb740dd5c75775156e1956a1a7cc318c");
  2. var BC2: BigInteger = new BigInteger("c097855b570751a4589c55b77a82ec11dd58488fc89b9cf0fa3c72dc0b0140cea7adc125c85ff8253bb84a57dc1dff1af9bf8d15f708e61654b1cacb4470c2f9");
  3.  
  4. //------------------------------------------------------------------------
  5.  
  6. //на самом деле, ClientPrivate генерируется рандомно когда нужно в клиенте, но я не стал приводить код
  7. var ClientPrivate: String = "8a88bba7c1cb46119c357ce084fcc676f71e21761974497d5e2eb555357a5a65b70cb8386ea8b5460a870dcac8217637c0b90b855f28f3942b938c340404ecb56f2864667693d62cebfb529ac5242aa40cba66569b65834fac8bab4ed1e2cc0a64f46391a2612905fcbdf4d4687736123d21f65946e835dcc14ad23799ff6e58";
  8.  
  9. var ClientPrivateBI: BigInteger = new (ClientPrivate, 16);
  10.  
  11. var ClientPublicBI: BigInteger = BC1.modPow(ClientPrivateBI, BC2);
  12.  
  13. var ClientPublicBA: ByteArray = ClientPublicBI.toByteArray();
  14.  
  15. //ClientPublicBA посылается на сервер, 128 байт
  16.  
  17. //------------------------------------------------------------------------
  18.  
  19. //на самом деле, ServerPublicBA, приходит от сервера в пакетах, 128 байт
  20. var ServerPublicBA: ByteArray = new ByteArray();
  21.  
  22. var ServerPublicBI: BigInteger = new BigInteger(ServerPublicBA);
  23.  
  24. var ServerPrivateBI: BigInteger = ServerPublicBI.modPow(ClientPrivateBI, BC2);
  25.  
  26. var SecureKey: ByteArray = new ByteArray();
  27.  
  28. ServerPrivateBI.toByteArray().readBytes(SecureKey, 0, 16);


Я встраиваюсь между клиентом и сервером.
С сервером, я могу работать в полном объеме - все что мне нужно, я знаю - BC1, BC2, ClientPrivateBI. Посылаю свой паблик-ключ, принимаю серверный паблик-ключ. На основе последнего, BC2 и ClientPrivateBI - генерирую ключ шифрования (SecureKey). Который впоследствии используется в ARC4.

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

Я так понимаю, это RSA.

Но каким образом, можно узнать, какой у клиента ClientPrivateBI? Зная только ClientPublicBI (т.е. экспонента, как получается), BC1 (получается, что plaintext) и BC2 (получается, что модуль)



Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 16 февраля 2013 14:44
· Личное сообщение · #2

virus_forever пишет:
Но каким образом, можно узнать, какой у клиента ClientPrivateBI? Зная только ClientPublicBI (т.е. экспонента, как получается), BC1 (получается, что plaintext) и BC2 (получается, что модуль)

походу что ты называешь ClientPrivate, это ClientPublic, и его тебе нужно факторизовать, но т.к. это RSA1024, забудь об этом.



Ранг: 456.3 (мудрец), 340thx
Активность: 0.280.02
Статус: Участник
Android Reverser

Создано: 16 февраля 2013 14:51
· Личное сообщение · #3

virus_forever пишет:
Но каким образом, можно узнать, какой у клиента ClientPrivateBI?

эх, если б это было возможно, скоко софта чисто закейгенить можно б было...

-----
SaNX




Ранг: 11.4 (новичок), 1thx
Активность: 0.010
Статус: Участник

Создано: 16 февраля 2013 15:04
· Личное сообщение · #4

Да но...

Существуют как минимум 3 разные программы от 3 разных разработчиков, которые работают как соксификатор между клиентом и сервером.

Значит они как-то получают нужные данные? Бота не проблема написать, а вот соксификатор - да.

Если кому-то одному и сливают ключи, то врядли он сливает эти-же ключи остальным двум конкурентам.




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 16 февраля 2013 16:48 · Поправил: ARCHANGEL
· Личное сообщение · #5

virus_forever пишет:
Существуют как минимум 3 разные программы от 3 разных разработчиков...

Так вот там и кроются разгадки. Реверсите эти программы и смотрите, как и что они получают.

-----
Stuck to the plan, always think that we would stand up, never ran.




Ранг: 11.4 (новичок), 1thx
Активность: 0.010
Статус: Участник

Создано: 16 февраля 2013 17:19
· Личное сообщение · #6

ARCHANGEL пишет:
Так вот там и кроется разгадки. Реверсите эти программы и смотрите, как и что они получают.


Одна защищена Themida, другая защищена ExcelsiorJET, третья не знаю - но тоже защищена.




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 16 февраля 2013 17:26
· Личное сообщение · #7

Как я уже писал одному обратившемуся с этим же вопросом товарищу, это не рса, а скорее эль-гамаль. И при такой длине ключа брут не представляется возможным. Так что лучше бы смотреть другие софтины.



Ранг: 11.4 (новичок), 1thx
Активность: 0.010
Статус: Участник

Создано: 16 февраля 2013 18:08
· Личное сообщение · #8

Archer пишет:
Как я уже писал одному обратившемуся с этим же вопросом товарищу, это не рса, а скорее эль-гамаль. И при такой длине ключа брут не представляется возможным. Так что лучше бы смотреть другие софтины.


Да, этот, уважаемый товарищ, брался за разбор шифрования в флешке... Но как-то пропустили мы этот момент. Я обратил внимание на это, когда сегодня разбирал свеженькую флешку. Ибо сегодня планировал начать (и возможно завершить работу с пакетами).

На сколько я понял, это может быть эль-гамаль.
Но сомнение в том, что длина оригинала и шифрограммы одинакова.
Да и используется в конце только первые 16 байт.
Может быть все таки можно, что-либо сделать с этим?

По поводу исследования других программ...
Themida там используется последняя скорее всего, c# прога совсем на себя не похожа.

Может быть кто-то поможет безвозмездно? Я и так в долги влез ради этой "шифровки", обрадовался, что наконец за 4 месяца простоя решилась проблема... Но не тут то было...




Ранг: 462.8 (мудрец), 468thx
Активность: 0.280
Статус: Участник
Only One!

Создано: 16 февраля 2013 18:42
· Личное сообщение · #9

virus_forever пишет:
Может быть кто-то поможет безвозмездно?

Обязательно и ключи от квартиры где деньги лежат...

-----
aLL rIGHTS rEVERSED!




Ранг: 11.4 (новичок), 1thx
Активность: 0.010
Статус: Участник

Создано: 16 февраля 2013 18:53 · Поправил: virus_forever
· Личное сообщение · #10

OnLyOnE пишет:
Обязательно и ключи от квартиры где деньги лежат...

Ну да, конечно, деньги деньги деньги... А вот просто так помочь человеку в трудной ситуации - не судьба видимо, правда?
И еще одного не понимаю, зачем сыпать соль на рану, если можно просто пройти мимо?



Ранг: 11.4 (новичок), 1thx
Активность: 0.010
Статус: Участник

Создано: 16 февраля 2013 21:26
· Личное сообщение · #11

Еще вопрос:

можно-ли как-то на лету подобрать ARC4 ключ, длиной 16 байт. В тексте из 6 байт? Мб не долго будет занимать?




Ранг: 337.6 (мудрец), 224thx
Активность: 0.210.1
Статус: Участник
born to be evil

Создано: 17 февраля 2013 00:39 · Поправил: ajax
· Личное сообщение · #12

virus_forever пишет:
можно-ли как-то на лету подобрать ARC4 ключ

"голландская синица морозов не боится и может на лету..." (с) фольклор
тут явно об этом не расскажут
и так в долги влез ради этой "шифровки", обрадовался, что наконец за 4 месяца простоя решилась проблема
думать надо. хотя, все мы были молодыми про реализацию именно Гамаля, позволю усомниться

добавил: из-за modPow. хз, кода не видать. да, и вкуривать щас не буду - сб-вс - тетки, водка, природа

-----
От многой мудрости много скорби, и умножающий знание умножает печаль


| Сообщение посчитали полезным: virus_forever

Ранг: 11.4 (новичок), 1thx
Активность: 0.010
Статус: Участник

Создано: 24 февраля 2013 18:12
· Личное сообщение · #13

Решение найдено. Помог исходник одной из программ, который достал один друг. Тему можно закрыть.

| Сообщение посчитали полезным: artyavmu
 eXeL@B —› Основной форум —› Получение экспоненты RSA
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати