Есть черный ящик, ему на вход даем 4 байта, он возвращает 6. Нужно узнать алгоритм шифрования/ключ. Любые комбинации входных/выходных значений могут быть предоставлены. При изменении последнего входного байта меняются пара последних байт на выходе. При изменении старших байт изменяется весь выходной набор. Что за алгоритм неизвестно. Оплата 30.000р Связь в лс. все биты = 0 00 00 00 00 = 33 E7 94 57 53 48 один бит =1, остальные =0 (32 комбинации) 00 00 00 01 = 33 E7 94 57 4E 76 00 00 00 02 = 33 E7 94 57 EE 4F 00 00 00 04 = 33 E7 94 57 00 A6 00 00 00 08 = 33 E7 94 57 BB 4B 00 00 00 10 = 33 E7 94 57 F4 95 00 00 00 20 = 33 E7 94 57 AD EA 00 00 00 40 = 33 E7 94 57 19 BD 00 00 00 80 = 33 E7 94 57 38 A5 00 00 01 00 = 3E F6 6B 8F A2 F6 00 00 02 00 = E6 69 6E EC A5 7C 00 00 04 00 = BD 00 2D BF 71 C2 00 00 08 00 = 71 24 A5 80 96 13 00 00 10 00 = AB 61 FD 00 AF AE 00 00 20 00 = 48 68 C6 07 D8 F1 00 00 40 00 = D4 FE E1 9E 94 1B 00 00 80 00 = AA 1A C4 68 D4 B1 00 01 00 00 = E6 48 C3 E6 A2 3E 00 02 00 00 = 2F 5B 3A 75 E3 24 00 04 00 00 = 41 B0 1B 2F B4 3A 00 08 00 00 = 75 06 43 DB 36 B5 00 10 00 00 = FD C1 88 61 29 71 00 20 00 00 = A6 57 CC 64 BE 7C 00 40 00 00 = CB DA 63 22 75 30 00 80 00 00 = E4 DC 5A 0F 5F 61 01 00 00 00 = C8 9E E1 EE E7 49 02 00 00 00 = AB 16 F7 9C FE D3 04 00 00 00 = 43 67 E5 BF A2 BF 08 00 00 00 = 48 D3 E8 CB 5C B0 10 00 00 00 = 8B A8 78 84 1C E4 20 00 00 00 = 32 00 17 25 FA C1 40 00 00 00 = 3B AD 0C DE 1A 8D 80 00 00 00 = 3B BF 0C 7D 91 14 все биты =1 FF FF FF FF = 4E 51 92 BB A9 95 Все биты = 1, кроме одного бита FF FF FF FE = 4E 51 92 BB EB A3 FF FF FF FD = 4E 51 92 BB 64 B2 FF FF FF FB = 4E 51 92 BB 80 55 FF FF FF F7 = 4E 51 92 BB 67 37 FF FF FF EF = 4E 51 92 BB 02 B2 FF FF FF DF = 4E 51 92 BB 15 82 FF FF FF BF = 4E 51 92 BB 8B 92 FF FF FF 7F = 4E 51 92 BB D3 4A FF FF FE FF = 98 C6 E1 D4 C6 4E FF FF FD FF = C2 87 9A EB 85 E1 FF FF FB FF = CA 51 CE ED 2C D7 FF FF F7 FF = 00 8E B3 BA 7F FB FF FF EF FF = 13 11 CC A6 D9 CF FF FF DF FF = 14 E6 53 F8 C3 28 FF FF BF FF = 35 69 16 02 40 94 FF FF 7F FF = 18 53 04 9C E5 34 FF FE FF FF = F3 0C 28 F5 E8 CC FF FD FF FF = 2D 11 1E D4 B3 10 FF FB FF FF = C3 2D BA 1D BA F9 FF F7 FF FF = 78 9B A7 CB 52 7E FF EF FF FF = F2 E4 C8 6D 09 B7 FF DF FF FF = 25 7C B1 A5 F3 F9 FF BF FF FF = 5C 6B 50 0A 9D 9E FF 7F FF FF = 66 F6 C4 4F 17 DA FE FF FF FF = 9E 29 FE 77 0D 8B FD FF FF FF = 36 91 91 EF 8F 66 FB FF FF FF = 5A 60 AC 51 33 40 F7 FF FF FF = 64 3D E4 3F 51 BB EF FF FF FF = 67 1A CE 71 EF F6 DF FF FF FF = 64 C0 21 79 DB F9 BF FF FF FF = F7 DC 8A 83 6A 30 7F FF FF FF = CA 4D 21 53 72 40 Дополнительно 00 00 00 03 = 33 E7 94 57 79 3B 00 00 00 05 = 33 E7 94 57 0D 08
Интересно выглядит. Пока что видно следующее: Шифрование не поточное. Шифрование без вектора инициализации (или же он всегда одинаковый) Первые 3 байта полностью влияют на первых 4 байта на выходе.
Эта тема не для этого форума, надо идти к криптографическим спецам. Могу предложить: перебрать все значения и записать в файл. Будет 24Гб, не так уж и много. Дальше пишется простейшая прога, которая выбирает нужное значение из этого файла. Способ тупой конечно, зато 100% рабочий, не надо голову ломать над алгоритмом.
Я так понимаю, ТС надо сделать копию черного ящика. На форуме была похожая тема, найти не могу, наверно удалили.
Нельзя перебрать. Практически нельзя. На получение каждого ответа нужно время около 0.2-1 секунды. Это около сотни лет. Можно взять сотню черных ящиков конечно, сделать за год таблицу, но метод не ахти, с учетом того, что алгоритм нужно встроить потом в мобильное приложение
FF FF FF 01 = 4E 51 92 BB 08 41 FF FF FF 10 = 4E 51 92 BB 2A F6 Если нужны будут ещё варианты, для оперативности можно в телеграм picrus