перемножение байт из массива и сложение. Что это за алгоритм?

Тема в разделе "WASM.CRYPTO", создана пользователем Aids, 24 июн 2011.

  1. gorodon

    gorodon New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2009
    Сообщения:
    301
    Да, матрица K4 вырожденная, решений у СЛАУ
    D*K4=M2

    видимо, 256, т.к. ранг матрицы 51 вместо 52...
    Видимо, если найти все решения уравнения D*K4=M2, то одно из них будет вполне удобоваримым...
     
  2. gorodon

    gorodon New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2009
    Сообщения:
    301
    ...а найти все решения можно след-м образом:
    1) Привести СЛАУ
    D*K4=M2
    к верхнетреугольному виду методом Гаусса. При этом - 52 элемент будет неизвестен (матрица имеет ранг 51).

    2)Подставляя в вектор решений числа от 0 до 255 на место 52 элемента и прогоняя СЛАУ обратным ходом метода Гаусса, получим 256 векторов решений...
     
  3. gorodon

    gorodon New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2009
    Сообщения:
    301
    Ну, собственно, я проделал, то, что писал выше - одно решение оказалось приемлемым и благозвучным:

    Код (Text):
    1. Only the Dark Lords of the Sith know of our weakness
    :)
     
  4. Aids

    Aids New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2007
    Сообщения:
    275
    gorodon

    Что вы подразумеваете под вектором решений?
     
  5. Aids

    Aids New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2007
    Сообщения:
    275
    gorodon
    я тоже хочу решить эту задачку)
     
  6. gorodon

    gorodon New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2009
    Сообщения:
    301
    Не совсем правильно выразился в вашей терминологии, сорри...
    В данном случае - это искомая матрица-строка D.

    Просто я привык к работе через вектор-столбец...
    Поэтому для себя я записал уравнение:
    M = K3*(K1*D+K2)
    где M,D,K2 - вектора-столбцы
    Тогда
    K1*D = K3^-1 *M-K2 = M2

    M2 = K3^-1 *M-K2

    -вычисляется.
    Код (Text):
    1. Calculate M2 = K3^-1 * M - K2:
    2. 21,D2,1D,10,ED,63,92,42,5A,A0,B9,C3,B8,5A,C8,38,51,FA,65,F1,4F,0E,55,72,17,41,4D,08,F1,A5,C8,98,62,D6,6E,76,0C,CC,E1,E6,A4,D8,3C,9A,A6,F0,27,54,B6,18,EF,ED,
    Далее - решаем СЛАУ:

    K1*D = M2

    52 строка получается вырожденной...

    Подставляя в D52 числа от 0 до 256 рассчитываем остальные элементы D51-D1.
     
  7. gorodon

    gorodon New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2009
    Сообщения:
    301
    Прикол в том, что creator может в D и M засунуть любые фразы, задав при этом нужный K2:

    K2 = K1 * D - K3^-1 * M
     
  8. Aids

    Aids New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2007
    Сообщения:
    275
    gorodon

    Спасибо вечером попробую решить
    Это я сразу просёх, то что выходной вектор подгоняется к нужному значению для последующего перемножения. Вот только зачем они сделали одну матрицу вырожденной? Хотели усложнить задачу.
     
  9. Aids

    Aids New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2007
    Сообщения:
    275
    это как обратным ходом. я никак не могу понять.
    M=(D*K1+K2)*K3=> M=D*K1*K3+K2*K3=>M-K2*K3=D*K1*K3=>

    M2=D*K4

    Решаю СЛАУ и получаю решение вида

    E D
    1 0 x1 | a
    0 1 x2 | b
    0 0 0 | y

    где E еденичный вектор, но так как система вырождена то имеем последний столбец и D с какими то значениями.
    потом подставляем y=0..256, и считаем СЛАУ в обратном направлении - это как должно выглядеть уравнение?
    В обратном порядке мы же должны найти снова M2? но ни как не D
     
  10. Aids

    Aids New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2007
    Сообщения:
    275
    И я никак не могу понять подставляя в D 52 элемент, как у нас в последствии меняется D?
     
  11. Aids

    Aids New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2007
    Сообщения:
    275
    gorodon
    Всё я понял что вы мне объясняли.
    Я думал метод Гауса и метод Жордана Гауса одно и тоже, и в вики читал метод Жордана-Гауса, в результате Вас совершенно не понимал.
    http://ru.wikipedia.org/wiki/Метод_Гаусса
     
  12. gorodon

    gorodon New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2009
    Сообщения:
    301
    Aids
    Да, общее решение СЛАУ, приведенное в #69 будет выглябеть так
    |a-x1*y|
    D=|b-x2*y| mod 256
    | y |

    Задавая все возможные значения у из Z(256) и рассчитывая остальные элементы вектора D - мы получаем все возможные решения-вектора D(y=0), D(y=1),...D(y=255).
     
  13. Aids

    Aids New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2007
    Сообщения:
    275
    Всем большое спасибо за помощь