Показать сообщение отдельно
Старый 29.12.2007, 21:24   #29
Новичок
 
Регистрация: 28.12.2007
Сообщений: 8
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
paraped
По умолчанию

Во первых, очень интересная тема(прям дух захватывает))), qak спасибо за ссылочку... :wink:

Прочитал все, подумал ))), насамом деле помойму нада забить на то что ксор двух вторых байтов соседних ключей равен 6D, и иногда 6С. На мой взгляд это не причина, это следствие... Постараюсь объяснить чот я имею ввиду:

Давайте еще раз посмотрим на последовательность из поста QaK'a в котором он впервые предложил делать ксор соседних ключей, НО!!! что очень важно, на время забъем на сами рез-ты ксоров и попробуем взглянуть в другом направлении. У нас там была такая после-ть ключей:

Цитата:
18-F2 0000 3EE3 5487

71-9F 0000 203F 5487

04-F2 0000 5D8E 5487

9D-9F 0000 4352 5487

F0-F2 0000 3EE3 5487

89-9F 0000 203F 5487

DC-F2 0000 5D8E 5487

B5-9F 0000 4352 5487

C8-F2 0000 3EE3 5487

A1-9F 0000 203F 5487

B4-F2 0000 5D8E 5487

CD9F 0000 4352 5487

A0-F2 0000 3EE3 5487

F9-9F 0000 203F 5487

8C-F2 0000 5D8E 5487

E5-9F 0000 4352 5487

78-F3 0000 3EE3 5487

11-9E 0000 203F 5487

64-F3 0000 5D8E 5487

3D-9E 0000 4352 5487

50-F3 0000 3EE3 5487

29-9E 0000 203F 5487

3C-F3 0000 5D8E 5487

55-9E 0000 4352 5487

28-F3 0000 3EE3 5487

41-9E 0000 203F 5487

14-F3 0000 5D8E 5487
Приглядевшись можно заметь, что второй байт ключа постоянно чередуется кусками... Вот тут та и вся соль на мой взгляд!
Здесь не один ключ, а два!! используются они по очереди, изменяясь в соответсвии с какойто последовательностью.
Вспомним как нам говорили на физ-ре в школе... На 1-й, 2-й расчитайтесь.... 2-ые три шага вперед... Нада разделить эту последовательность на четные и нечетные члены... то есть в первый список записать 1-й 3-й 5-й 7-й 9-й и т.д. члены, а во второй 2-й 4-й 6-й 8-й 10-й и т.д.:

Нечетные
Цитата:
18-F2 0000 3EE3 5487

04-F2 0000 5D8E 5487

F0-F2 0000 3EE3 5487

DC-F2 0000 5D8E 5487

C8-F2 0000 3EE3 5487

B4-F2 0000 5D8E 5487

A0-F2 0000 3EE3 5487

8C-F2 0000 5D8E 5487

78-F3 0000 3EE3 5487

64-F3 0000 5D8E 5487

50-F3 0000 3EE3 5487

3C-F3 0000 5D8E 5487

28-F3 0000 3EE3 5487

14-F3 0000 5D8E 5487
Четные
Цитата:
71-9F 0000 203F 5487

9D-9F 0000 4352 5487

89-9F 0000 203F 5487

B5-9F 0000 4352 5487

A1-9F 0000 203F 5487

CD-9F 0000 4352 5487

F9-9F 0000 203F 5487

E5-9F 0000 4352 5487

11-9E 0000 203F 5487

3D-9E 0000 4352 5487

29-9E 0000 203F 5487

55-9E 0000 4352 5487

41-9E 0000 203F 5487
Теперь попробуем сделать только первый байт ХексТоИнт , ведь второй же изменяется гораздо реже, и вычислить значения на которые они изменяются(QaK если это верный путь, то ты бал близок, нада было только разделить последовательность на четные и нечетные члены(на два ключа другими словами)):

Вот что получается с нечетными:
Цитата:
18-F2 0000 3EE3 5487 24
-20
04-F2 0000 5D8E 5487 4
-20 (ведь максимальное значение байта в десятичном представлении 256)
F0-F2 0000 3EE3 5487 240
-20
DC-F2 0000 5D8E 5487 220
-20
C8-F2 0000 3EE3 5487 200
-20
B4-F2 0000 5D8E 5487 180
-20
A0-F2 0000 3EE3 5487 160
-20
8C-F2 0000 5D8E 5487 140
-20
78-F3 0000 3EE3 5487 120 (вот здесь второй байт инкрементируется на еденицу, об этом ниже)
-20
64-F3 0000 5D8E 5487 100
-20
50-F3 0000 3EE3 5487 80
-20
3C-F3 0000 5D8E 5487 60
-20
28-F3 0000 3EE3 5487 40
-20
14-F3 0000 5D8E 5487 20
Эххххх, если бы эта цепь была подлиннее можно было бы еще помозговать, а из этой видно лишь одно изменение второго байта "нечетного" ключа(если можно так выразится)...
Главный вопрос у меня,почему второй байт ключа изменился там где 140 переходит в 120, а не там где 4 переходит в 240 как бы "обнуляя" счетчик. И почему он вообще увеличился, ведь первый байт постоянно уменьшается на 20.

Если произвести те же манипуляции с последовательностью "четных" ключей (с вашего позваления ))), то картинка посложнее получается:
Цитата:
71-9F 0000 203F 5487 113
+44
9D-9F 0000 4352 5487 157
-20
89-9F 0000 203F 5487 137
+44
B5-9F 0000 4352 5487 181
-20
A1-9F 0000 203F 5487 161
+44
CD-9F 0000 4352 5487 205
+44
F9-9F 0000 203F 5487 249
-20
E5-9F 0000 4352 5487 229
+38 (????? вот это странно)
11-9E 0000 203F 5487 11 (9F -> 9E, то есть второй байт тут уменьшается на еденицу, не смотря на то что все изменения первого байта в конечном итоге носят характер прибавления. Но тут хотя бы по всей видимости второй байт меняется при обнулении первого)
+50 (???)
3D-9E 0000 4352 5487 61
-20
29-9E 0000 203F 5487 41
+44
55-9E 0000 4352 5487 85
-20
41-9E 0000 203F 5487 65
p.s. а ксор двух вторых байтов соседних ключей равен 6D, это факт... 6С он становится равен тогда, когда у одного из соседних ключей второй байт прибавляется на ед., а у второго еще не успел прибавится.....Опа... я понял почему у "нечетного" ключа второй байт прибавился на ед. при переходе первого с 140 на 120.... Потому что он сменился прям перед тем как сменился второй байт из "четного" ключа, который в свою очередь сменился в тот момент когда проскочил "0" своего первого байта.... ТАААКККССС...

то есть имеем такие свойства действия XOR:

9F xor F2 = 6D
F2 xor 9F = 6D

и если например программа видит что второй байт одного из ключей сменится сейчас на ед., она заблаговременно меняет второй байт второго ключа чтоб рез-тат действия xor оставался 6D, причем если один прибавился на единицу, то другой должен уменьшится для того чтоб рез-тат был 6D:

F2+1 = F3
F3 xor 9F = 6C
9F-1 = 9E
F3 xor 9E = 6D

В случае с 6А один из вторых байтов изменился с 02 на 05 (т.е. +3), поэтому рез-тат xor стал 6А.
Но второй байт другого ключа тут же изменился на сколько? првильно, на -3, и рез-тат опять стал 6D.))

p.s.s. Мне кажется нада забить на рез-таты ксоров, просто нада понимать что имеем дело с комбинацией двух чередующихся ключей которые между собой связаны рядом закономерностей...

(Сорри за такое большое сообщение)

Добавлено спустя 3 часа 52 минуты 19 секунд:
Ребят вы че молчите? Задумались чтоль? )) Отписывайтесь по теме плз..))
paraped вне форума   Ответить с цитированием