реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> Возможно ли?
Adv
сообщение Aug 1 2009, 17:40
Сообщение #16


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 6-08-05
Из: Винница
Пользователь №: 7 407



Цитата(scifi @ Aug 1 2009, 20:00) *
Тогда подскажите, какие арифметические операции доступны и над какими операндами. Вы упоминали +,-,*,/,XOR,табличное преобразование, некую маску (с неким ограничением по число битов?). Есть ли ограничение на число операций? Поскольку, похоже, недоступны ветвления (типа IF-THEN-ELSE), то нужны какие-то "нелинейные" операции типа побитового OR или AND. Табличные преобразования могут делать почти всё, но опять же, какие есть ограничения, связанные с ними?


Табличное преобразование - макс. ОБЩИЙ объём памяти для ВСЕХ преобразований (В СУММЕ) 64 кбайта. Арифметические - любые, над любым операндом. Сдвиг любой. В приципе не оговаривается число самих операций, но хотелось бы по-менее (аппаратура не резиновая, к сожалению). Для начала рассмотрим ЛЮБОЕ количество операций. IF-THEN-ELSE - нет. Побитовые логические - любые.
Go to the top of the page
 
+Quote Post
scifi
сообщение Aug 1 2009, 17:51
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Как насчёт такого варианта:
Берём введённый код 0xAABBCCDD и наклыдываем на него при помощи XOR первый код доступа (32 бита). В результате - ноль, если числа совпали, а иначе - не ноль. Далее то же самое с вторым кодом доступа, третьим и т.д. В результате получаем набор чисел, и если одно из них - ноль, то есть одно совпадение. Перемножив все эти числа, получаем 0, если одно из них 0, а иначе в произведении будет не ноль.
Подойдёт?
Go to the top of the page
 
+Quote Post
Adv
сообщение Aug 1 2009, 18:13
Сообщение #18


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 6-08-05
Из: Винница
Пользователь №: 7 407



Цитата(scifi @ Aug 1 2009, 20:51) *
Как насчёт такого варианта:
Берём введённый код 0xAABBCCDD и наклыдываем на него при помощи XOR первый код доступа (32 бита). В результате - ноль, если числа совпали, а иначе - не ноль. Далее то же самое с вторым кодом доступа, третьим и т.д. В результате получаем набор чисел, и если одно из них - ноль, то есть одно совпадение. Перемножив все эти числа, получаем 0, если одно из них 0, а иначе в произведении будет не ноль.
Подойдёт?


Нет. Все коды доступа надо хранить. Это опять простая дешифрация при помощи масок (кодов доступа). Они известны, но в качестве масок прямого поиска использованы быть НЕ могут. Только для формирования чего-ль то в табличных преобразованиях и то - не на аппаратуре пользователя. Только при прграммировании устройства.
30 лет работаю - такое попало впервые....

Сообщение отредактировал Adv - Aug 1 2009, 18:16
Go to the top of the page
 
+Quote Post
scifi
сообщение Aug 1 2009, 18:31
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Adv @ Aug 1 2009, 22:13) *
Нет. Все коды доступа надо хранить. Это опять простая дешифрация при помощи масок (кодов доступа). Они известны, но в качестве масок прямого поиска использованы быть НЕ могут. Только для формирования чего-ль то в табличных преобразованиях и то - не на аппаратуре пользователя. Только при прграммировании устройства.
30 лет работаю - такое попало впервые....

Я опять запутался. Значит, есть аппаратура пользователя и есть устройство, которое надо программировать. А где происходит дешифрация? И почему нельзя использовать маски прямого поиска? Чтобы пользователь не раскрыл код, что ли? А ещё говорите, что всё договариваете...
Как говорила Алиса, "Curiouser and curiouser!"
Go to the top of the page
 
+Quote Post
Adv
сообщение Aug 1 2009, 18:41
Сообщение #20


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 6-08-05
Из: Винница
Пользователь №: 7 407



Цитата(scifi @ Aug 1 2009, 21:31) *
Я опять запутался. Значит, есть аппаратура пользователя и есть устройство, которое надо программировать. А где происходит дешифрация? И почему нельзя использовать маски прямого поиска? Чтобы пользователь не раскрыл код, что ли? А ещё говорите, что всё договариваете...
Как говорила Алиса, "Curiouser and curiouser!"


Естественно - дешифрация происходит в аппаратуре пользователя. Хотя в моём случае - это тоже весьма условное понятие (Один чип программирует другой, причём есть разное программирование стартовое или текущее - "на лету").
И я не умею НЕ договаривать. Молчать - умею. Проверяли. И не надо на эту тему (не договаривания) далее. Скажу ВСЁ, что поможет делу.

По существу - формирование таблиц для табличных преобразований выполняется ВНЕ устройства (чипа) во втором устройстве (чипе) при старте системы из этих двух (и других, разумеется ) чипов. В устройство (чип) выполняющий эту математическую "дешифрацию" (назовём это так) можно достучаться только при старте. Поэтому и все данные туда могу попасть только при старте. Ресурсы чипа - ограничены крайне (в известном смысле - для кого-то их там ну просто завались на первый взгляд 15000 ячеек), а дешифрировать надо 12-18 тысяч ключей (масок). И памяти - нет (достаточной....).

Сообщение отредактировал Adv - Aug 1 2009, 18:50
Go to the top of the page
 
+Quote Post
scifi
сообщение Aug 1 2009, 18:49
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Если за это время мы не нашли решение, то дальше продолжать смысла не вижу.
Может быть, кто-то ещё подключится.
Удачи!
Go to the top of the page
 
+Quote Post
Adv
сообщение Aug 1 2009, 18:58
Сообщение #22


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 6-08-05
Из: Винница
Пользователь №: 7 407



Цитата(scifi @ Aug 1 2009, 21:49) *
Если за это время мы не нашли решение, то дальше продолжать смысла не вижу.
Может быть, кто-то ещё подключится.
Удачи!


Спасибо.
Go to the top of the page
 
+Quote Post
тау
сообщение Aug 1 2009, 19:07
Сообщение #23


.
******

Группа: Участник
Сообщений: 2 424
Регистрация: 25-12-08
Пользователь №: 42 757



Сорри за идиотизм с моей стороны, но почему бы не разделить входное адресное пространство на 2 одинаковых половины по 2^31 комбинаций. За валидность отвечает какой-нить бит, хоть первый хоть последний хоть средний.

Требований то по криптозащите нетути никаких.
Go to the top of the page
 
+Quote Post
Adv
сообщение Aug 1 2009, 19:12
Сообщение #24


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 6-08-05
Из: Винница
Пользователь №: 7 407



Цитата(тау @ Aug 1 2009, 22:07) *
Сорри за идиотизм с моей стороны, но почему бы не разделить входное адресное пространство на 2 одинаковых половины по 2^31 комбинаций. За валидность отвечает какой-нить бит, хоть первый хоть последний хоть средний.

Требований то по криптозащите нетути никаких.


Допустим, а далее??
Go to the top of the page
 
+Quote Post
тау
сообщение Aug 1 2009, 19:40
Сообщение #25


.
******

Группа: Участник
Сообщений: 2 424
Регистрация: 25-12-08
Пользователь №: 42 757



Что далее? проще не бывает же. Сообщаете на старте некоему приемному контроллеру что 3-й (например) бит будет служить выходной величиной "1-Да, 0-нет" и автоматом любые адреса с установленным в 1 -цу третьим битом оказываются "своими" , остальные "чужимим". И всё.

Слишком примитивно? Ну так Вы же не сказали сколько "своих" значений а сколько "чужих " и в какой пропорции из множества 2^32 возможных комбинаций. Криптозащиты никакой. Но она вам ,похоже, и не нужна.
А если нужна - опишите как-нибудь.
Go to the top of the page
 
+Quote Post
Adv
сообщение Aug 1 2009, 19:48
Сообщение #26


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 6-08-05
Из: Винница
Пользователь №: 7 407



Цитата(тау @ Aug 1 2009, 22:40) *
Что далее? проще не бывает же. Сообщаете на старте некоему приемному контроллеру что 3-й (например) бит будет служить выходной величиной "1-Да, 0-нет" и автоматом любые адреса с установленным в 1 -цу третьим битом оказываются "своими" , остальные "чужимим". И всё.

Слишком примитивно? Ну так Вы же не сказали сколько "своих" значений а сколько "чужих " и в какой пропорции из множества 2^32 возможных комбинаций. Криптозащиты никакой. Но она вам ,похоже, и не нужна.
А если нужна - опишите как-нибудь.


Простите, но выше по теме я указал количество ПРАВИЛЬНЫХ ключей - 12000-18000..... Значения - любые из возможных в 32-х битном коде.
Как вы говорите, сорри за идиотизм но разъясните твердолобому что Вы предлагаете?

Сообщение отредактировал Adv - Aug 1 2009, 19:49
Go to the top of the page
 
+Quote Post
тау
сообщение Aug 1 2009, 20:25
Сообщение #27


.
******

Группа: Участник
Сообщений: 2 424
Регистрация: 25-12-08
Пользователь №: 42 757



Цитата(Adv @ Aug 1 2009, 23:48) *
Простите, но выше по теме я указал количество ПРАВИЛЬНЫХ ключей - 12000-18000..... Значения - любые из возможных в 32-х битном коде.

предположим Вам нужно 16536==2^14 валидных ключей с простейшей механикой определения из множества всех 32 битных входных величин.
Вырабатываете маску , в которой любые 14 бит из 32-х имеющихся устанавливаете в 1-цу. Это получится некое число M.
Сообщаете приемному контроллеру эту маску на старте. при поступлении входных величин (32 разряда) приемник тупо делает AND с инверсией маски М. Анализируете результат операции AND . Если не равен 0 - входная переменная не соответсвует критерию отбора , то есть на выходе ЛОЖЬ. Таким образом приемник выдаст на выход ИСТИНА только для тех комбинаций , где после AND получится 0. Замаскированные 14 бит при этом представляют подмножество валидных ключей, точное значение каждого из которых уже Вас и Ваш приемный контроллер вроде и не интересуют. А если интересуют - то дальше можно по сжатой таблице с 14 разрядным адресом 1 битных результатов или 11 разрядным адресом 8-битных результатов , взятых из под бит маски из входной величины, получить уникальное значение для каждого девайса , если эту таблицу в девайсах прописывать на старте.

Это если я Вас правильно понял.
Go to the top of the page
 
+Quote Post
asdf
сообщение Aug 1 2009, 20:32
Сообщение #28


Знающий
****

Группа: Свой
Сообщений: 775
Регистрация: 11-05-05
Пользователь №: 4 913



Цитата(Adv @ Aug 1 2009, 23:48) *
Простите, но выше по теме я указал количество ПРАВИЛЬНЫХ ключей - 12000-18000..... Значения - любые из возможных в 32-х битном коде.
Как вы говорите, сорри за идиотизм но разъясните твердолобому что Вы предлагаете?

Может быть я тоже не правильно понял задачу, но почему нельзя в качестве маски или ключа использовать какие нибудь последовательности, генерируемые аппаратно, например М - последовательности, или расширенные?
Go to the top of the page
 
+Quote Post
Adv
сообщение Aug 1 2009, 20:51
Сообщение #29


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 6-08-05
Из: Винница
Пользователь №: 7 407



Цитата(тау @ Aug 1 2009, 23:25) *
предположим Вам нужно 16536==2^14 валидных ключей с простейшей механикой определения из множества всех 32 битных входных величин.
Вырабатываете маску , в которой любые 14 бит из 32-х имеющихся устанавливаете в 1-цу. Это получится некое число M.
Сообщаете приемному контроллеру эту маску на старте. при поступлении входных величин (32 разряда) приемник тупо делает AND с инверсией маски М. Анализируете результат операции AND . Если не равен 0 - входная переменная не соответсвует критерию отбора , то есть на выходе ЛОЖЬ. Таким образом приемник выдаст на выход ИСТИНА только для тех комбинаций , где после AND получится 0. Замаскированные 14 бит при этом представляют подмножество валидных ключей, точное значение каждого из которых уже Вас и Ваш приемный контроллер вроде и не интересуют. А если интересуют - то дальше можно по сжатой таблице с 14 разрядным адресом 1 битных результатов или 11 разрядным адресом 8-битных результатов , взятых из под бит маски из входной величины, получить уникальное значение для каждого девайса , если эту таблицу в девайсах прописывать на старте.

Это если я Вас правильно понял.


Т.е если я правильно разобрался, в каждом из таблично мною запрограммированных числах должен быть указан один из 14-ти битных кодов?
Если во всех 4-х числах этот код один и тотже, то число в 14 бит валидное, соответсвует принятому адресу и может подлежать сокращённой дешифровке? Так?

Цитата(asdf @ Aug 1 2009, 23:32) *
Может быть я тоже не правильно понял задачу, но почему нельзя в качестве маски или ключа использовать какие нибудь последовательности, генерируемые аппаратно, например М - последовательности, или расширенные?


Беда - в повторениях, или ложных срабатываниях дешифратора. Понимаете, для ОДНОГО И ТОГОЖЕ ВХОДНОГО ЧИСЛА НЕЛЬЗЯ поставить ДВА РАЗНЫХ КЛЮЧА ( доп. числа, и проч. подобное). Т.е. есть код FF AA 00 22, это одна комбинация(адрес), 00 AA 77 11 - вторая, но внё входит одно и тоже число AA. Разумеется такое возможно не только для двух адресов - для намного большего количества. Выше я приводил точную аналогию с ОЗУ. Адреса - любые.....

ЗЫ. Для ОРИГИНАЛЬНЫХ (в которых ни один байт не порвторяется с другими адресами, подлежащими дешифрации) адресов такое прекрасно работает.

Сообщение отредактировал Adv - Aug 1 2009, 20:41
Go to the top of the page
 
+Quote Post
тау
сообщение Aug 1 2009, 20:54
Сообщение #30


.
******

Группа: Участник
Сообщений: 2 424
Регистрация: 25-12-08
Пользователь №: 42 757



Что значит " во всех 4-х числах этот код один и тот же " ?
Я принял как факт что на входе у вас 32 разряда, то есть 4 байта по 8 бит. Все вместе 32 этих бита используются в операции с заранее переданной маской М в приемнике. Тогда 14 бит сразу после AND говорят - попали во множество валидных ключей или нет. А потом уже, если надо, делаете доп дешифровку или по маленькой табличке (если выходных переменных много , как у Вас выходов мультиплексора) либо простым сравнением с другим ,уникальным для девайса, 14-битным числом.
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3 >
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 14:58
Рейтинг@Mail.ru


Страница сгенерированна за 0.01504 секунд с 7
ELECTRONIX ©2004-2016