Сейчас на форуме: jinoweb (+5 невидимых)

 eXeL@B —› Программирование —› Подскажите по шифрованию
Посл.ответ Сообщение

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

Создано: 03 мая 2016 19:08
· Личное сообщение · #1

Крякаю программу. Есть в коде два блока ключей или чего-то типа этого по 128 байт.
Также есть блок данных, которы зашифровывается, или наоборот расшифровывается с помощью этих двух блоков. И в коде присутствуют ссылки на дебаг где написаны коды ошибок и пути с сорцам типа: \bn\bn_exp.c
я так понял - это openssl

Я подозреваю что это что-то типа rsa...

подскажите как проверить?

Я знаю какой должен быть результат.

То есть есть исходный вариант и результат и также два блока ключей.
Все эти 4 блока по 128 байт.



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

Создано: 03 мая 2016 20:49
· Личное сообщение · #2

Проверить можно если ты разберешь алгоритм и напишешь свой тест-кейс под эти данные.
Без бинаря на кофе здесь гадать вряд ли кто-то будет.

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




Ранг: 51.8 (постоянный), 58thx
Активность: 0.03=0.03
Статус: Участник

Создано: 04 мая 2016 05:42
· Личное сообщение · #3

c0deh1der пишет:
подскажите как проверить?
Я знаю какой должен быть результат.
То есть есть исходный вариант и результат и также два блока ключей.

Раз всё есть, то посчитать (исходный_вариант ^ E) mod N и сравнить с результатом. Совпадёт - значит RSA, нет - копать дальше.



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

Создано: 04 мая 2016 12:11 · Поправил: c0deh1der
· Личное сообщение · #4

Спасибо за инфу.
Подскажите, кто в openssl силен
вот к примеру хочу щас загнать эти данные в функцию:
int BN_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m, BN_CTX *ctx)

лежит она в файле bn_exp.c

есть у меня:
_BYTE input_data[128];
_BYTE block1[128]; // думаю это p
_BYTE block2[128]; // думаю это m

как инициализировать?
BIGNUM a = BN_NEW();
a->d = (unsigned int)&input_data[0];

BN_mod_exp(rr, a, p, m, ctx);

и что в ctx ?

Добавлено спустя 4 часа 6 минут
все всем спасибо разобрался )) ключик работает))



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

Создано: 09 мая 2016 14:26
· Личное сообщение · #5

Еще один вопрос:
если мы расшифровываем данные из блока а[128] в блок b[128] c помошью функции:
int BN_mod_exp_mont(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p,
const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *in_mont)

Можно ли как-то назад данные конвертнуть?

Мне нужно расшифровать, изменить данные и обратно зашифровать.



Ранг: 51.8 (постоянный), 58thx
Активность: 0.03=0.03
Статус: Участник

Создано: 09 мая 2016 15:17
· Личное сообщение · #6

c0deh1der пишет:
Можно ли как-то назад данные конвертнуть?

Можно, если есть приватная экспонента.



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

Создано: 09 мая 2016 15:42
· Личное сообщение · #7

А какой функцией зашифровывать? Или той же самой, только другие данные ей кормить?

Добавлено спустя 17 минут
Получается, если я могу расшифровать, то зашифровать то уже в любом случае можно, так как расшифровывается закрытым ключем? Или может быть наоборот?



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

Создано: 09 мая 2016 19:22
· Личное сообщение · #8

c0deh1der пишет: Или может быть наоборот

аха

-----
...или ты работаешь хорошо, или ты работаешь много...




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

Создано: 10 мая 2016 13:49
· Личное сообщение · #9

Хм... покурил rsa...
Получается что:
a - незашифрованное входящее число
r - зашифрованный результат

e - открытый ключ(неизвестен)
d - закрытый ключ(известен)
n - произведение простых чисел(известно)

пусть будет
a = 3
d = 3
n = 33

тогда для зашифровки нужно сделать вычисление:
r = (a^e) mod n
r = (3^e) % 33 = 9

проверим, расшифровав обратно:
r = (9^3) % 33 = 3
Все сходится, остается найти 'e'

значит нужно решить уравнение:
(3^e) % 33 = 9

Ведь решаемо! ))) Или я не прав?

Я так понимаю, проблема, когда неизвестны исходные данные, результат и ключ.
А когда неизвестна только экспонента, то это реально!

Поправьте.



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

Создано: 10 мая 2016 15:00 · Поправил: VodoleY
· Личное сообщение · #10

c0deh1der это называется факторизация
рса512 вполне себе факторизируется.. 1024 .. несколько месяцев.. на очень мощьных машинах. если правильно помню
MSIEV есть такая тулза. если интересно.. скачай засунь туда свои данные

Добавлено спустя 20 минут
вообще я рекомендую тебе почитать ВиКи.. вобщем задача факторизации.. из разряда неопределнных.. не доказанно что нет решения.. и вобщемто если найдеш решение могли бы дать нобеля(ток нобеля в области матемитики не дают.. потому что математик вздрючил жену нобеля.. отменили)

-----
Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме....


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

Ранг: 30.2 (посетитель), 18thx
Активность: 0.030
Статус: Участник

Создано: 10 мая 2016 16:11
· Личное сообщение · #11

VodoleY пишет:
нобеля в области матемитики не дают


Может к лучшему? Есть из чего выбрать.

Филдсовская премия
Абелевская премия

Не будет лишней — Премия Тьюринга.



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

Создано: 10 мая 2016 18:05
· Личное сообщение · #12

Да, перечитал уже.... и вики и вс остальное...
Возник вопрос, кто знает услуги по распределенным вычислениям, какие компании предлагают, какие цены на мощности?



Ранг: 51.8 (постоянный), 58thx
Активность: 0.03=0.03
Статус: Участник

Создано: 10 мая 2016 18:32
· Личное сообщение · #13

c0deh1der, прочитайте ещё это, что ли.

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

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

Создано: 10 мая 2016 19:37
· Личное сообщение · #14

Prober, Спасибо!
У меня просто вопрос крутится в голове:
если есть два ключа, есть сообщение, то конечно трудно или почти невозможно узнать ключ, так как неизвестно также и что в зашифрованном сообщении.
Но ведь в данном случае известны все переменные кроме одной, и при этом тоже задача оказалась очень трудно-решаемой....
Неужели настолько крепок алгоритм? ))

Добавлено спустя 5 минут
Prober пишет:
c0deh1der, прочитайте ещё это, что ли.

ссылка реально интересная )) чет я ее не увидел в поиске



Ранг: 262.5 (наставник), 337thx
Активность: 0.340.25
Статус: Участник

Создано: 10 мая 2016 19:47
· Личное сообщение · #15

Все всегда зависит от алгоритма и его реализации. Можно повесить на дверь 50 плохих замков, которые вылетают от удара с ноги, а можно повесить один, который выдерживает прямое попадание ядерной ракетой.

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

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

Создано: 11 мая 2016 09:16
· Личное сообщение · #16

c0deh1der
Есть целый класс подобных проблем. На некоторых из них строится ассиметричная криптография.
Добро пожаловать в новый мир

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




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

Создано: 11 мая 2016 20:14
· Личное сообщение · #17

Все разобралсся спасибо! Атака Виннера рулит!)


 eXeL@B —› Программирование —› Подскажите по шифрованию
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати