Форум
» Назад на решение задач по физике и термеху
Регистрация | Профиль | Войти | Забытый пароль | Присутствующие | Справка | Поиск

» Добро пожаловать, Гость: Войти | Регистрация
    Форум
    Математика
        Решение системы уравнений (XOR)
Отметить все сообщения как прочитанные   [ Помощь ]
» Добро пожаловать на форум "Математика" «

Переход к теме
<< Назад Вперед >>
Одна страница
Модераторы: Roman Osipov, RKI, attention, paradise
  

iwork


Удален

Здравствуйте! Вот уже долгое время мучаюсь с решением подобной системы:

================================
S(0 + K) (+) S(8 + K) = 1
S(0 + K) (+) S(4 + K) = B
S(0 + K) (+) S(2 + K) = A
S(0 + K) (+) S(1 + K) = 9

S(1 + K) (+) S(9 + K) = E
S(1 + K) (+) S(5 + K) = D
S(1 + K) (+) S(3 + K) = 7

S(2 + K) (+) S(A + K) = 2
S(2 + K) (+) S(6 + K) = 8
S(2 + K) (+) S(3 + K) = 4

S(3 + K) (+) S(B + K) = 3
S(3 + K) (+) S(7 + K) = 2

S(4 + K) (+) S(C + K) = D
S(4 + K) (+) S(6 + K) = 9
S(4 + K) (+) S(5 + K) = F

S(5 + K) (+) S(D + K) = 7
S(5 + K) (+) S(7 + K) = 8

S(6 + K) (+) S(E + K) = D
S(6 + K) (+) S(7 + K) = E

S(7 + K) (+) S(F + K) = 9

S(8 + K) (+) S(C + K) = 7
S(8 + K) (+) S(A + K) = 9
S(8 + K) (+) S(9 + K) = 6

S(9 + K) (+) S(D + K) = 4
S(9 + K) (+) S(B + K) = A

S(A + K) (+) S(E + K) = 7
S(A + K) (+) S(B + K) = 5

S(B + K) (+) S(F + K) = 8

S(C + K) (+) S(E + K) = 9
S(C + K) (+) S(D + K) = 5

S(D + K) (+) S(F + K) = 6

S(E + K) (+) S(F + K) = A
================================

, где
S(x) - обратимая функция, которая отображает множество {1,...,F} в себя (подстановка).
+ - операция сложения по модулю 16 (F)
(+) - побитовое сложение
K - неизвестный параметр

Необходимо найти K, и всю подстановку S.

В данном случае правая часть системы фиксирована, но, в принципе, может быть почти любой: число <= F, а также не может == 0.

Помогите, пожалуйста, разобраться с этим! Очень уж надо!

С уважением, Евгений.

Всего сообщений: N/A | Присоединился: N/A | Отправлено: 15 дек. 2005 3:40 | IP
Guest



Новичок

Во-первых, можно считать, что K=0. Дело в том, что если существует решение для ненулевого K, то его можно превратить в решение для нулевого K так S'(x) = S(x + K) (по сути K является циклическим сдвигом).

Далее, введем 64 бинарных переменных s[i,j], где i=0..15, j=0..3 и s[i,j] определена как j-й бит числа S(i). Тогда исходная система уравнений превращается в систему линейных уравнений над полем из двух элементов F={0,1}: каждому уравнению исходной системы соответствует 4 уравнения новой системы, например,
S(8) (+) S(A) = 9
превращается в
s[8,0] + s[10,0] = 1
s[8,1] + s[10,1] = 0
s[8,2] + s[10,2] = 0
s[8,3] + s[10,3] = 1
Ну а дальше работает линейная алгебра.

Можно также заменить, что переменные при разных j не могут появится в одном уравнении. Поэтому вместо одной большой системы над 64 переменными можно решать 4 меньших с фиксированным j=0,1,2,3, каждая над 16 переменными.








Всего сообщений: Нет | Присоединился: Never | Отправлено: 15 дек. 2005 5:12 | IP
iwork


Удален

Хотя я уже решил эту систему, все равно спасибо!

Проблема только в том, что система имеет не одно решение! Это не есть хорошо!
Видимо, надо искать пути нахождения точного значения одной из подстановки.


А смысл вообще такой:

Есть устройство, в котором "зашиты" число K, а также таблица подстановки S.

Устройство работает с 4х-битными числами. (1..F)

На вход подается число R.

Неизвестным (но определенным) образом вычисляется число Q, зависящее от R.

На выходе же этого устройства получается число

S(R + K) (+) Q
Q = f(R) - неизвестно

+ - сложение по модулю 16,
(+) - по модулю 2 (XOR)

Мы не имеем возможности "залезть" внутрь этого "черного ящика".
Однако у этого устройства есть переключатель, который может находится в одном из 5-ти положений: 0, 1, 2, 3, 4.
Этот переключатель инвертирует соответствующий бит числа R (0 - без инверсии, 1 - первый бит числа и т.д.)
Инверсия происходит после того, как вычислено число Q.
Т.о. на выходе получаем

S(R' + K) (+) Q
Q = f(R) - неизвестно
R' - число R с ошибкой в одном бите.


Задача: найти K и S.


Что делаю я:

Подаю на вход R, записываю результат.
Затем задействую переключатель (записываю все 4 попытки)
Получаю систему:

A = S(R + K) (+) Q
A' = S(R' + K) (+) Q
A'' = S(R'' + K) (+) Q
A''' = S(R''' + K) (+) Q
A'''' = S(R'''' + K) (+) Q

, где кол-во штрихов равно номеру бита с инверсией.
Чтобы избавиться от Q, просто XOR-ю первое уравнение поочередно с остальными и получаю

A (+) A' = S(R + K) (+) S(R' + K)
A (+) A'' = S(R + K) (+) S(R'' + K)
A (+) A''' = S(R + K) (+) S(R''' + K)
A (+) A'''' = S(R + K) (+) S(R'''' + K)

Затем беру другое R и повторяю процедуру. Получаю систему из 4*16 уравнений. Однако среди всех уравнений каждое имеет одинаковцю пару. => всего уравнений 32.

Получается система, которая определенно имеет решение (поскольку числа не произвольные, а именно посчитанные прибором).
Однако система эта имеет не одно решение...

В общем,я уже нифига не соображаю... Помогите, пожалуйста! Может есть какие-нибудь идеи?

Всего сообщений: N/A | Присоединился: N/A | Отправлено: 15 дек. 2005 8:44 | IP
Guest



Новичок

От неоднозначности избавиться не удастся, и проблемы здесь теоретического, а не практического плана.

Дело в том, что если (S,f,K) является решением, то решением будет также являться (S',f,K'), где K' - любое число от 0 до 15 и
S'(x) = S(x-K'+K)

Легко проверить, что для любого Q
S'(Q+K') = S(Q+K'-K'+K) = S(Q+K)
и, значит,
S'(Q+K') (+) f(Q) = S(Q+K) (+) f(Q)
то есть черные ящики задаваемые параметрами (S,f,K) и (S',f,K') будут неразличимы извне.

Всего сообщений: Нет | Присоединился: Never | Отправлено: 15 дек. 2005 9:11 | IP
iwork


Удален

Моя ошибка - не упомянул, что число Q в общем зависит не только от входного числа R, но также и от параметров системы (S, K)

Всего сообщений: N/A | Присоединился: N/A | Отправлено: 15 дек. 2005 10:00 | IP
Guest



Новичок

если природа этой зависимости неизвестна, то ничего путного извлечь не удастся

Всего сообщений: Нет | Присоединился: Never | Отправлено: 15 дек. 2005 10:17 | IP

Отправка ответа:
Имя пользователя   Вы зарегистрировались?
Пароль   Забыли пароль?
Сообщение

Использование HTML запрещено

Использование IkonCode разрешено

Смайлики разрешены

Опции отправки

Добавить подпись?
Получать ответы по e-mail?
Разрешить смайлики в этом сообщении?
Просмотреть сообщение перед отправкой? Да   Нет
 

Переход к теме
<< Назад Вперед >>
Одна страница

Форум работает на скрипте © Ikonboard.com