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

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


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

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



Уважаемые Знатоки!
Есть следующая задача:
имеются четыре восьмиразрадных числа, которые образуют уникальное сочетание (адрес, например),
над каждым из них может быть выполненна табличная операция по кодированию в 36-ти (или в 32-х) битное число,
далее ВОПРОС:
какие математические действия необходимо произвести над полученными (или исходными) числами, чтоды однозначно убедиться, что это то самое уникальное сочетание четырех восьмиразрадных чисел? Какой (и существует ли) алгоритм такой операции?

ЗЫ: Что такое дешифратор мне известно....
Go to the top of the page
 
+Quote Post
scifi
сообщение Aug 1 2009, 13:58
Сообщение #2


Гуру
******

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



Попробуйте выразить это математическими терминами. Они более или менее общеприняты, из-за чего будет понятно, о чём идёт речь. Возьмите для примера книгу по математике. В нынешнем виде постановка задачи совсем непонятна (мне, по крайней мере).
Или не секретничайте выдайте жизненную ситуацию, в которой возникла эта задача. Так тоже будет понятнее.
Go to the top of the page
 
+Quote Post
stells
сообщение Aug 1 2009, 14:24
Сообщение #3


внештатный сотрудник
******

Группа: Участник
Сообщений: 2 458
Регистрация: 10-05-08
Из: МО, Медвежьи озера
Пользователь №: 37 401



Цитата(Adv @ Aug 1 2009, 17:09) *
какие математические действия необходимо произвести над полученными (или исходными) числами, чтоды однозначно убедиться, что это то самое уникальное сочетание четырех восьмиразрадных чисел?

действительно непонятно... исходные они и есть исходные, а над полученными - провести обратную табличную операцию
Go to the top of the page
 
+Quote Post
Adv
сообщение Aug 1 2009, 14:30
Сообщение #4


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

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



Цитата(scifi @ Aug 1 2009, 16:58) *
Попробуйте выразить это математическими терминами. Они более или менее общеприняты, из-за чего будет понятно, о чём идёт речь. Возьмите для примера книгу по математике. В нынешнем виде постановка задачи совсем непонятна (мне, по крайней мере).
Или не секретничайте выдайте жизненную ситуацию, в которой возникла эта задача. Так тоже будет понятнее.


Так я про дешифратор-то не зря написал.... И с постановкой задачи , вроде, корректно....
И так, повторяю, есть адрес. Надо убедиться, что он действительный (требуемый для срабатывания системы в дальнейшем, для пропуска данных в обработку, например). Сделать надо аппаратно. Маски большого размера неприемлимы - у меня их негде хранить (адрес может быть более 4-х восьми разрядных чисел, скажем, 6 или 10) . Есть ли математическое решение (разделить, умножить, сложить, вычесть, закодировать исходные числа перед математическими операциями и т.п.) этой задачи?
Пропустил важное - в ходе решения результат должен выдаваться как бит. ВСЕ ЧЕТЫРЕ ЧИСЛА ПРАВИЛЬНЫЕ и их ПОРЯДОК (1-ое,2-ое,3-ие,4-ое правильная; 1-ое,3-ие,2-ое,4-ое - неправильная) правильный.

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


Гуру
******

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



Цитата(Adv @ Aug 1 2009, 18:30) *
И так, повторяю, есть адрес.

Почтовый адрес?

Цитата(Adv @ Aug 1 2009, 18:30) *
Надо убедиться, что он действительный

То есть прогнать этот адрес по полному списку всех действительных почтовых адресов?

Я же говорю, непонятно. Тут телепатов нет, чудес не ждите.
Go to the top of the page
 
+Quote Post
Adv
сообщение Aug 1 2009, 14:53
Сообщение #6


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

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



Цитата(scifi @ Aug 1 2009, 17:44) *
Почтовый адрес?.


Да хоть адрес для ОЗУ. Разница-то какая?? Адрес - он и есть адрес.
В нём НЕТ признаков любого кодирования.


Цитата(scifi @ Aug 1 2009, 17:44) *
То есть прогнать этот адрес по полному списку всех действительных почтовых адресов?.


Нет. По списку ДЛЯ КОНКРЕТНОГО УСТРОЙСТВА ОТБОРА (т.е моего устройства)

Цитата(scifi @ Aug 1 2009, 17:44) *
Я же говорю, непонятно. Тут телепатов нет, чудес не ждите.


Не жду. Потому спрашиваю. Известно ли для этого математическое решение или я просто зря в это ввязался.
Это дешифратор адреса, по сути. И у меня в распоряжении только операции табличного преобразования входных чисел и математические операции.

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


Гуру
******

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



Цитата(Adv @ Aug 1 2009, 18:53) *
Да хоть адрес для ОЗУ. Разница-то какая?? Адрес - он и есть адрес.

Разница огромная. Такие понятия, как "адрес" и "действительный адрес" могут быть сильно разными.
К примеру, IP-адрес. Это 4 числа от 0 до 255, разделённые точками. "Действительным" IP-адресом можно считать любой IP-адрес, не попадающий в один из известных диапазонов "приватных" IP-адресов (можно придумать ещё пару простых правил). То есть задача определения "действительного адреса" может быть очень простой.
Если же речь идёт о почтовых адресах, то тут, к примеру, можно считать "действительным адресом" такой адрес, который входит в КЛАДР (Классификатор адресов России). Это довольно большая таблица, и её хранение и поиск по ней может быть довольно накладным.
Поэтому и спрашиваю. У задачи в такой расплывчатой формулировке общего решения быть не может.
Надо определиться, что такое "адрес" и что такое "действительный адрес".
Go to the top of the page
 
+Quote Post
Adv
сообщение Aug 1 2009, 15:37
Сообщение #8


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

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



Это протосто входной адрес.
Пример того, что я хотел бы получить (сильно упрощённый, но точный).
Допустим, есть дешифратор адреса 8-ми разрядного кода. На выходе 255 шин ДА\НЕТ. Используются 1, 3, 8, 23, 46, 74, 124, 234, 245 шины. Такое - только математически, и только для требуемых шин.
Go to the top of the page
 
+Quote Post
scifi
сообщение Aug 1 2009, 15:48
Сообщение #9


Гуру
******

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



Цитата(Adv @ Aug 1 2009, 19:37) *
Это протосто входной адрес.
Пример того, что я хотел бы получить (сильно упрощённый, но точный).
Допустим, есть дешифратор адреса 8-ми разрядного кода. На выходе 255 шин ДА\НЕТ. Используются 1, 3, 8, 23, 46, 74, 124, 234, 245 шины. Такое - только математически, и только для требуемых шин.

Вы всё время что-то недоговариваете. Есть дешифратор, понятно. А дальше что? В чём состоит задача?
Go to the top of the page
 
+Quote Post
Adv
сообщение Aug 1 2009, 15:53
Сообщение #10


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

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



Цитата(scifi @ Aug 1 2009, 18:48) *
Вы всё время что-то недоговариваете. Есть дешифратор, понятно. А дальше что? В чём состоит задача?


Простите, чего недоговариваю-то??
Ранее написано - используются ОПРЕДЕЛЁННЫЕ комбинации из множества входных кодов адреса -1, 3, 8, 23, 46, 74, 124, 234, 245 шины.
Аппаратно это просто. А возможно ли математически??
Или ещё пример - есть ОЗУ с 8-ми битным входным адресом в котором при поступлении на вход адресов 1, 3, 8, 23, 46, 74, 124, 234, 245 на выходе будет еденица (ДА). Для остальных адресов -ноль (НЕТ).

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


Гуру
******

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



Цитата(Adv @ Aug 1 2009, 19:53) *
Простите, чего недоговариваю-то??
Ранее написано - используются ОПРЕДЕЛЁННЫЕ комбинации из множества входных кодов адреса -1, 3, 8, 23, 46, 74, 124, 234, 245 шины.
Аппаратно это просто. А возможно ли математически??

То есть это что-то похожее на кодовой замок, где отпирающий код - это последовательность определённого числа (неповторяющихся) 8-разрядных чисел, введённых в определённом порядке?
И нужно работу такого замка описать операциями табличного преобразования и арифметическими операциями на неком (пока неизвестном) языке программмирования?

Предположим, речь идёт о кодовом замке, где код - это 4 8-разрядных числа.
Делаем так. При вводе первого 8-разрядного числа (условно 0xAA) табличным преобразованием делаем из него 32-разрядное число 0xAA000000. При вводе второго 0xBB делаем из него 0x00BB0000. Потом 0x0000CC00 и 0x000000DD. Потом полученные 4 32-разрядных числа складываем и получаем 0xAABBCCDD. Далее сравниваем с верным кодом и говорим "да" или "нет".
Для примера таблица первого преобразования очень простая:
0x00 -> 0x00000000
0x01 -> 0x01000000
0x02 -> 0x02000000
...
0xFF -> 0xFF000000 (всего 256 строк)
Go to the top of the page
 
+Quote Post
Adv
сообщение Aug 1 2009, 16:35
Сообщение #12


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

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



Цитата(scifi @ Aug 1 2009, 19:05) *
То есть это что-то похожее на кодовой замок, где отпирающий код - это последовательность определённого числа (неповторяющихся) 8-разрядных чисел, введённых в определённом порядке?
И нужно работу такого замка описать операциями табличного преобразования и арифметическими операциями на неком (пока неизвестном) языке программмирования?

Предположим, речь идёт о кодовом замке, где код - это 4 8-разрядных числа.
Делаем так. При вводе первого 8-разрядного числа (условно 0xAA) табличным преобразованием делаем из него 32-разрядное число 0xAA000000. При вводе второго 0xBB делаем из него 0x00BB0000. Потом 0x0000CC00 и 0x000000DD. Потом полученные 4 32-разрядных числа складываем и получаем 0xAABBCCDD. Далее сравниваем с верным кодом и говорим "да" или "нет".
Для примера таблица первого преобразования очень простая:
0x00 -> 0x00000000
0x01 -> 0x01000000
0x02 -> 0x02000000
...
0xFF -> 0xFF000000 (всего 256 строк)


И храним длинную маску 0xAABBCCDD. Если правильных кодов много - то и массив масок большой и громоздкий. Для этого у меня нет ресурсов.
Это тот же самый ПРОСТОЙ, или ПРЯМОЙ, дешифратор. Можно прямо введённый код дешифровать, без сложения, байтам просто вес присваивается - первому - старший, второму - третий, третьему - второй ну и четвёртому младший. Тот же 32-х разрядный адрес, что и Вы сформировали.
ВОПРОС есть ли какая-нибудь последовательность действий ТИПА (возможны любые, но МАТЕМАТИЧЕСКИЕ):
- кодирование первого числа
- кодирование второго числа
- кодирование третьегочисла
- кодирование четвёртого числа
- сумма первое + второе + третье + четвёртое
- деление на костанту
- XOR байтов остатка
- результат (ДА или НЕТ)

число операций может быть другим , действия - тоже.
НО тут не должно быть МАСОК (и устройтв для их хранения) Допускается наличие нескольких констант.

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


Гуру
******

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



Цитата(Adv @ Aug 1 2009, 20:35) *
ВОПРОС есть ли какая-нибудь последовательность действий ТИПА (возможны любые, но МАТЕМАТИЧЕСКИЕ):
- кодирование первого числа
- кодирование второго числа
- кодирование третьегочисла
- кодирование четвёртого числа
- сумма первое + второе + третье + четвёртое
- деление на костанту
- XOR байтов остатка
- результат (ДА или НЕТ)

число операций может быть другим , действия - тоже.
НО тут не должно быть МАСОК (и устройтв для их хранения) Допускается наличие нескольких констант.

Если я правильно понял условия задачи, то это невозможно. Ведь если верный код - это 4 ПРОИЗВОЛЬНЫХ 8-разрядных числа, то они требуют 32 бита для хранения. Если таких кодов много, то и битов для их хранения нужно много.
Однако, если набор верных кодов доступа известен заранее (перед составлением алгоритма декодирования), то теоретически можно попытаться использовать это знание, чтобы упростить алгоритм декодирования (но только для этих известных заранее кодов). Но это в общем случае весьма нетривиальная задача, наверное. Есть над чем подумать...
Go to the top of the page
 
+Quote Post
Adv
сообщение Aug 1 2009, 16:52
Сообщение #14


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

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



Цитата(scifi @ Aug 1 2009, 19:49) *
Если я правильно понял условия задачи, то это невозможно. Ведь если верный код - это 4 ПРОИЗВОЛЬНЫХ 8-разрядных числа, то они требуют 32 бита для хранения. Если таких кодов много, то и битов для их хранения нужно много.
Однако, если набор верных кодов доступа известен заранее (перед составлением алгоритма декодирования), то теоретически можно попытаться использовать это знание, чтобы упростить алгоритм декодирования (но только для этих известных заранее кодов). Но это в общем случае весьма нетривиальная задача, наверное. Есть над чем подумать...


Коды известны заранее. Это именно так. Не тривиальная... потому и обратился к народу....
Если что-то прийдёт на ум - не сочтите за труд, известите. Мне пока не пришло, к сожалению.
Благодарен всем кто откликнулся.
С уважением Adv.

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


Гуру
******

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



Цитата(Adv @ Aug 1 2009, 20:52) *
Коды известны заранее. Это именно так. Не тривиальная... потому и обратился к народу....

Тогда подскажите, какие арифметические операции доступны и над какими операндами. Вы упоминали +,-,*,/,XOR,табличное преобразование, некую маску (с неким ограничением по число битов?). Есть ли ограничение на число операций? Поскольку, похоже, недоступны ветвления (типа IF-THEN-ELSE), то нужны какие-то "нелинейные" операции типа побитового OR или AND. Табличные преобразования могут делать почти всё, но опять же, какие есть ограничения, связанные с ними?
Go to the top of the page
 
+Quote Post
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
Adv
сообщение Aug 1 2009, 21:13
Сообщение #31


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

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



Цитата(тау @ Aug 1 2009, 23:54) *
Что значит " во всех 4-х числах этот код один и тот же " ?


Это после предполагаемого табличного кодирования 8-ми разрядного числа в 32-х разрядное. Хотя, я уже вижу , что не понял Вас правильно в этом месте.

Цитата(тау @ Aug 1 2009, 23:54) *
Я принял как факт что на входе у вас 32 разряда, то есть 4 байта по 8 бит. Все вместе 32 этих бита используются в операции с заранее переданной маской М в приемнике. Тогда 14 бит сразу после AND говорят - попали во множество валидных ключей или нет. А потом уже, если надо, делаете доп дешифровку или по маленькой табличке (если выходных переменных много , как у Вас выходов мультиплексора) либо простым сравнением с другим ,уникальным для девайса, 14-битным числом.


Ключи (адреса) я не задаю, требуется определить (точно) пришедший адрес из списка, или нет. АДРЕСА МОГУТ БЫТЬ ЛЮБЫЕ. Их в 14 разрядов не впихнёшь. Подчёркиваю - ЛЮБЫЕ, и в ЛЮБОМ СОЧЕТАНИИ и 12000 - 18000 адресов. А было бы здорово , если это было возможно....
И это несколько в сторону от вопроса - "математического дешифратора"
Это уже простой двухступенчатый дешифратор
(хотя, правды ради он делается немного по-другому: компаратарами дешифрируются несколько десятков (до сотни, больше трудно впихнуть не используя память, у меня же её и нет) старших 16-ти бит адреса, а потом полная дешифрация оставшихся 16-ти бит, но это уже серьёзное ограничение на парамерты дешифрации)
требующий ресурсов (хоть и меньше, но достаточно много). Да, в ряде случаев - это решение. Но не в этом. Посмотрите исходные для задачи и задачу в начале темы.

Сообщение отредактировал Adv - Aug 1 2009, 21:21
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Aug 2 2009, 05:40
Сообщение #32


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(Adv @ Aug 1 2009, 15:53) *
Или ещё пример - есть ОЗУ с 8-ми битным входным адресом в котором при поступлении на вход адресов 1, 3, 8, 23, 46, 74, 124, 234, 245 на выходе будет еденица (ДА). Для остальных адресов -ноль (НЕТ).

Сделайте неполный дешифратор, делов-то. Не более 8 инверторов, 9 восьмивходовых элементов И, и один девятивходовый элемент ИЛИ. После оптимизации логического выражения (возможно) получится еще меньше. Если входные коды могут быть произвольными, то можно целенаправленно подобрать их так, что результирующее логическое выражение будет наиболее простым. Но часто лучше оптимизировать сразу схему, скажем, по числу корпусов, а не логическое выражение.
Go to the top of the page
 
+Quote Post
тау
сообщение Aug 2 2009, 05:54
Сообщение #33


.
******

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



Цитата(Adv @ Aug 1 2009, 21:40) *
Табличное преобразование - макс. ОБЩИЙ объём памяти для ВСЕХ преобразований (В СУММЕ) 64 кбайта.

Цитата(Adv @ Aug 2 2009, 01:13) *
АДРЕСА МОГУТ БЫТЬ ЛЮБЫЕ. Их в 14 разрядов не впихнёшь. Подчёркиваю - ЛЮБЫЕ, и в ЛЮБОМ СОЧЕТАНИИ и 12000 - 18000 адресов. А было бы здорово , если это было возможно....


Теперь ясно , что Вы не можете влиять на генерацию входных ключей, для Вас они случайные 32-битные числа.
Но есть возможность использовать таблицу 64кБ. Это тоже самое что в таблицу вы можете запихнуть 16к 32 битных величин . Ну так и запишите в нее все допустимые ключи. При приеме сравниваете поступившую комбинацию с содержимым всей заполненной таблицы. При совпадении с одним из табличных - на выход 1-цу.
Go to the top of the page
 
+Quote Post
Adv
сообщение Aug 2 2009, 09:11
Сообщение #34


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

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



Цитата(тау @ Aug 2 2009, 08:54) *
Теперь ясно , что Вы не можете влиять на генерацию входных ключей, для Вас они случайные 32-битные числа.
Но есть возможность использовать таблицу 64кБ. Это тоже самое что в таблицу вы можете запихнуть 16к 32 битных величин . Ну так и запишите в нее все допустимые ключи. При приеме сравниваете поступившую комбинацию с содержимым всей заполненной таблицы. При совпадении с одним из табличных - на выход 1-цу.


Спасибо. Вы предложили неплохое решение. Но у него есть (как и у всего) недостаток - как и любой поиск по маске (а это ВСЁ ТОТЖЕ ПОИСК ПО МАСКЕ) требует ресурсов, причём правильной конфигурации (ОЗУ 16К х 32 бит). Аппаратно у меня их НЕТ. Из-за этого я вылез с темой-то!! 64К - это память с разрядностью 1 бит . Она может быть переконфигурирована в любую из списка: 8кх8, 4Кх16, 2Кх32(36) если использовать и бит паритета. это блоки М9К Алтеры. А задача поставлена была вообще классно - получить МАКСИМАЛЬНО ВОЗМОЖНОЕ количество ключей, это потом одумались хоть сократили... Послушав всех прихожу к выводу, что кроме ступенчатой дешифрации решенй для задачи нет.
Но всё равно - спасибо всем, кто откликнулся.

ЗЫ. Но здорово было бы узнать, так есть ли МАТЕМАТИЧЕСКОЕ решение для задачи, а не применение только комбинации схемотехнических?? Последние сильно ограничивает возможности поиска, из-за наложения ограничений на совместно используемые ключи (адреса). Надеюсь, для Вас, тау это тоже не безинтересно....

Сообщение отредактировал Adv - Aug 2 2009, 09:38
Go to the top of the page
 
+Quote Post
тау
сообщение Aug 3 2009, 19:17
Сообщение #35


.
******

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



Как уже правильно Вам сказал scifi, решение задачи невозможно , у Вас слишком ограниченные ресурсы.
Вы мечтаете ужать совершенно случайную информацию объемом 64 килобайта до размеров ваших ресурсов, которые заведомо меньше. А это невозможно. Никакая арифметика тут не поможет. Белый шум (ваши ключи) , если он действительно белый , если бы можно было сжимать без потерь, то был бы сурьезный прорыв в науках. А его нет.

Сообщение отредактировал тау - Aug 3 2009, 19:19
Go to the top of the page
 
+Quote Post
lead_seller
сообщение Aug 27 2009, 14:19
Сообщение #36


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 27-10-08
Пользователь №: 41 225



Делите свой 4-х байтный код на две части по 2 байта. 1 - ю часть для валидного кода назначаете (т.о. у вас будет 32+ тысячи валидных кодов). 2 - ю часть вычисляете по какому нибудь алгоритму (главное обратимому) из первой части, например инвертируете все разряды. Т.о. если применить обратный алгоритм кодирования к второй части валидного адреса (кода) первая и вторая половина совпадут, если же код не валиден то вероятность совпадения достаточно мала.

Сообщение отредактировал lead_seller - Aug 27 2009, 14:20
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 25th August 2025 - 07:44
Рейтинг@Mail.ru


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