eXeL@B —› Основной форум —› xor |
Посл.ответ | Сообщение |
|
Создано: 15 февраля 2013 10:52 · Поправил: BfoX · Личное сообщение · #1 есть функа, которая ксорит данные по key[] длиной 12 байт Code:
есть и Code:
хочу понять, можно ли восстановить key[] вроде, по прикиду, нет. реальный пример key[] = {0x53,0x49,0x4D,0x4F,0x4E,0x45,0x44,0x55,0x44,0x55,0x4C,0x55}; в общем случае плэйн может быть произвольный набор байт, key - фиксированный ----- ...или ты работаешь хорошо, или ты работаешь много... |
|
Создано: 15 февраля 2013 11:17 · Поправил: ZaZa · Личное сообщение · #2 |
|
Создано: 15 февраля 2013 11:32 · Поправил: neomant · Личное сообщение · #3 |
|
Создано: 15 февраля 2013 11:38 · Поправил: ZaZa · Личное сообщение · #4 neomant пишет: Первый байт ключа: key[0] = Enc[0] ^ Enc[1] ^ Plain[1]. Дальше думать надо Правильно Code:
Во всех циклах байты из Key используются по порядку: сначала 2 байт, потом третий и т.д. после того, как был использован 12 байт, начинается все заново, но только с первого байта (деление по модулю на 12)... ----- One death is a tragedy, one million is a statistic. |
|
Создано: 15 февраля 2013 11:54 · Личное сообщение · #5 |
|
Создано: 15 февраля 2013 13:59 · Личное сообщение · #6 |
|
Создано: 15 февраля 2013 17:10 · Личное сообщение · #7 |
|
Создано: 15 февраля 2013 17:17 · Личное сообщение · #8 |
|
Создано: 15 февраля 2013 18:01 · Поправил: neomant · Личное сообщение · #9 Если есть плаин и зашифрованный пакеты, можно попробовать брут на первые 6 байт ключа, оставшуюся часть получаем расчётом. Code:
Если ничего не напутал. ----- Следуй за белым кроликом |
|
Создано: 15 февраля 2013 18:40 · Личное сообщение · #10 |
|
Создано: 27 марта 2013 02:23 · Поправил: maxidromm · Личное сообщение · #11 Восстановить ключ только по шифротексту C можно только перебором в данном случае. Представь такой шифр := C[i] = P[i]^k, P=plaintext, C=ciphertext, k=secret byte. Единственный способ - перебрать k. При этом криптостойкость оценивается в 8 бит. В твоем примере имеем C = A*P + B*K, где A и B - некоторые линейные матрицы. Так как это шифр, то матрица А обязана иметь обратную и ее определитель не ноль, значит информацию может дать только матрица B. При len=12n+1, матрица B теряет 1 байт информации. Все остальные случаи - не теряет. То есть, для поиска ключа имея только C нужен полный перебор множества ключей кардиналити 2^96 (или 2^88) комбинаций. Если есть пара (P, C) то достаточно len=12, просто решив матричное уравнение K=B^-1*(С-A*P), для len=12 матрица B невырожденная и имеет обратную. | Сообщение посчитали полезным: Hellspawn, plutos |
|
Создано: 27 марта 2013 17:29 · Личное сообщение · #12 |
|
Создано: 27 марта 2013 17:43 · Личное сообщение · #13 |
|
Создано: 29 марта 2013 09:18 · Личное сообщение · #14 |
eXeL@B —› Основной форум —› xor |