Список разделов Flyback.org.ru » не HV » программерство
Тему сейчас просматривают - зарегистрированных: 0, скрытых: 0 и гостей: 0
Зарегестрированные - Нет
Ответить с цитатой

Ivani
 


Эфир послушай каким нибудь SDR в районе 433 МГц.

Добавлено: Wed Feb 27, 2019 10:44 am
2019-02-27_10-43-33.jpg (175.14 Кб)

Ответить с цитатой

Николай
 


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

Добавлено: Wed Feb 27, 2019 10:51 am
Ответить с цитатой

Behram
 


Ivani писал(а):
Эфир послушай каким нибудь SDR в районе 433 МГц.
Если регулярно слать какой-нибудь мусорный сигнал, не только при событиях, на анализаторе вообще непонятно будет что происходит.

Добавлено: Wed Feb 27, 2019 12:47 pm
Ответить с цитатой

N1X
 


Николай писал(а):
своих поделках я вернама прикрутил в критических местах
А как кстати словари синхронизируются? Допустим что передатчик отослал пакет, а приемник проебал. В итоге передатчик отбросил использованный ключ, и приемник еще нет. Или ты указываешь в каждом пакете, например, сколько ключей израсходовано?

Добавлено: Wed Feb 27, 2019 3:31 pm
Ответить с цитатой

Николай
 


когда приемник получает пакет, он ксорит с положеным по очереди куском ключа, если не сходится - передвигается на 32 байт и снова ксорит. и так 256раз. если хуй - то счетчик фейк-пакетов увеличиваем на единицу. если за сутки больше 10 фейк-пакетов, то даем тревогу и окукливаемся. и просим замену ключей
Если если сошлось сразу то все ок. Если сошлось, но не сразу, то сохраняем новый указатель на начало неиспользованной части ключа и добавляем единичку в счетчик рассогласований. Когда за сутки превышено 10 рассогласований. сообщаем об этом. Так как либо связь сбоит, либо что-то глушит канал периодически.
Так как ксор одних 32байт с другими вещь микросекундная по сути, то погулять вверх по ключу в поисках нужного куска для восстановления синхронизации ничего не стоит.

ключ у меня расходуется кусками по 32байта (чуть больше чем максимальная длина среднестатистического пакета) если потребуется больше - будет наложено два раза по 32.
флешка отдает блок 512байт, это 16 ключей по 32. когда они кончаются вычитываем следующий блок.


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

Добавлено: Wed Feb 27, 2019 6:57 pm
Ответить с цитатой

Николай
 


В ходе криптографических изысков понадобился ГСЧ на аврке. Как оказалось все не так поосто, даже с псевдослучайкой. По сути ничего и нет...
Использовал один младший бит от 12битного ацп. Вывод ацп к небольшой дорожке вокруг камня. Рожает великолепную последрвательность со скоростью прибл байт за 100 тактов. Выгнал на комп последовптедьность. Вполне белый шум выходит. Не идеал, но вполне сгодится для любого разумного бытового применения.

Добавлено: Sat Mar 09, 2019 1:22 am
Ответить с цитатой

Seriyvolk
Бездельник


Если есть какое-то асинхронное событие, для которого нужен ГСЧ, то можно по этому-же событию и дёргать значение из счётчика таймера. Я таким путём пошёл в последнем проекте, вполне себе работоспособно.

Добавлено: Sat Mar 09, 2019 1:37 am
Ответить с цитатой

Николай
 


Если это одно число. Если же последовательность, то уже ой... первое случайно, остальные нет.
Ну и таймер очень жалко обычно. Их мало, а ацп обычно дохуя

Добавлено: Sat Mar 09, 2019 1:56 am
Ответить с цитатой

Анна
 


ТЛ431, пара кондеров и резисторов и на компаратор авки (или на ацп)

Добавлено: Sat Mar 09, 2019 2:19 am
rnd_431.png (27.05 Кб)

Ответить с цитатой

Seriyvolk
Бездельник


Николай писал(а):
Ну и таймер очень жалко обычно
А чего его жалеть? Пущай своими делами занимается. Ты же просто число из его счётного регистра дёргаешь в случайный момент, таймеру вообще побоку на это.
Анна писал(а):
ТЛ431, пара кондеров и резисторов
А чего, реально шумит? Включено, как обычный стаб ведь.

Добавлено: Sat Mar 09, 2019 10:44 am
Ответить с цитатой

AlexDark
CyberGoth


так стабы вполне шумят. В каком-то журнале видел ГСЧ на диоде (или стабилитроне - не помню уж), каждое полученное число подавалось на цап, который менял напряжение на диоде

Добавлено: Sat Mar 09, 2019 11:03 am
Ответить с цитатой

Анна
 


Ну зачем мне врать?

Вот, специально спаяла:

масштаб 10мв/дел, 1мсек/дел

Если это подать на один вход компаратора, а на другой - это же самое через усреднение (ну пусть 100ком+ 0.1мк) для выделения нулевой постоянной составляющей, то на выходе будет двоичный рандомный поток.
Мат. характеристики - не знаю, не измеряла. Хотя надо бы. Интересно, какое там распределение, спектр, плотность и всё такое.

Добавлено: Sat Mar 09, 2019 11:05 am
IMG_4125[1].JPG (72.57 Кб)

IMG_4126[1].JPG (50.31 Кб)

Ответить с цитатой

Николай
 


Таймер жалко, потому что их очень мало, и они ведь далеко не всегда работают непрерывно и на большой частоте. У меня например делители почти всегда на максимуме и сами таймеры запускаются и останавливаются. Но последовательность не родишь. Слцчайнпя последовательность будет на том же ацп в младших разрядах. Что на вход не подавай. Там все равно мусор выходит -). В случае с TL можно и весь байт брать. А в случае с висящей ножкой лучше один младший бит.
Ань, благодарен за ТЛку. Клевый генератор. Просто берем байт из регистра ацп и все.

Добавлено: Sat Mar 09, 2019 1:49 pm
Ответить с цитатой

Анна
 


У меня в самодельном компе такой генератор. Только там компаратор и результат дальше уходит в плисину, где можно или сэмплировать биты с заданной частотой, или "подкармливать" этими битами стандартный циклический псевдослучайный регистр на полиноме (с обратными связями по XOR), превращая его в случайный (если нужна большая скорость генерации). Правда это извращенный вариант, с еще более непонятной математикой

С ацп - ну не знаю, амплитуда без усиления там небольшая, первые десятки миливольт. Если только младшие биты.
Лучше еще приделать транзистор, мелкий оу, или еще одну тлку для усиления Только прикинуть уровень так чтобы не было клиппинга, иначе будет вообще фиг знает что

Добавлено: Sat Mar 09, 2019 2:26 pm
Ответить с цитатой

Behram
 


По уму нужно еще хешировать данные с такого генератора, но не всегда на это хватает ресурсов.

Добавлено: Sat Mar 09, 2019 2:45 pm
Ответить с цитатой

Анна
 


Да у меня там это было не для криптографии Smile

Добавлено: Sat Mar 09, 2019 2:47 pm
Ответить с цитатой

Николай
 


> По уму нужно еще хешировать данные с такого генератора, но не всегда на это хватает ресурсов.
А смысл? дополнительно отбеливать? проще брать тогда младшие биты ацп только. там совсем совсем белый.
интересно, а кто-нибудь реально проводил атаку на шумовой генератор? имхо это чисто теоретическая вещь. ну брутфорс будет занимать не мильен лет, а полмильена, если узнаем что вероятность каких-то цыферок чуть больше.
псевдослучайка это одно. там можно впринципе выловить какую последовательность. но в ацп жеж шум. но не псевдо, а случаен.

ктому-же хэш это вещь такая, возьмет и найдется какая закономерность.

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

вообщем я всеже за истинную случайность.

Добавлено: Sat Mar 09, 2019 3:23 pm
Ответить с цитатой

Анна
 


Можно еще сделать например 32шт таких генератора с компараторами (на выходные векторы в 32 бит Smile Только питание им желательно сделать хотя бы через разделительные RC цепочки, чтобы они никак не могли влять друг на друга

Добавлено: Sat Mar 09, 2019 3:39 pm
Ответить с цитатой

Vcoder
Магистр


Есть тут спецы по С++?

Диспозиция такая: есть некий класс MyClass. И есть функция void MyFunc(const MyClass& class_item), принимающая объект типа MyClass в качестве параметра. Мне нужно один раз вызвать некий метод класса, который что-то внутри сделает, и передать результат в функцию.

Так работает:
Код:
MyClass temp_obj; // объявляем переменную типа нашего класса
temp_obj.do_some_stuff(); // вызываем метод, который что-то там делает с данными в экземпляре класса
MyFunc(temp_obj); // вызываем функцию


Но моему внутреннему перфекционисту не нравится необходимость держать целый экземпляр класса в памяти ради одного раза. Я хочу написать пусть мудрёную, но одну строку, в которой автоматически будет создан экземпляр класса, в этом экземпляре вызван метод do_some_stuff(), затем экземпляр передан в функцию и после этого уничтожен. Но я не знаю, как это сделать.

Вот так тоже работает:
Код:
MyFunc(MyClass());

Здесь в функцию передаётся свежесозданный экземпляр класса

А вот так уже не работает:
Код:
MyFunc(MyClass().do_some_stuff());


Реализуемо ли то, что я задумал? И если да, то как?


Добавлено: Tue Nov 09, 2021 8:42 pm
Ответить с цитатой

N1X
 


Vcoder писал(а):
И есть функция void MyFunc(const MyClass& class_item), принимающая объект типа MyClass в качестве параметра
Принимающая ССЫЛКУ на объект.
А нельзя в конструкторе у класса прописать do_some_stuff()? Тогда оно само вызовется сразу при создании? Или это рафинированный пример и реально нужны разные функции?

Добавлено: Tue Nov 09, 2021 8:55 pm
Ответить с цитатой

Vcoder
Магистр


Да, ты прав, конечно же ссылку.
Вообще в C и C++ всё, что не число (int и иже с ними), обычно передаётся ссылкой. Поэтому и позволил себе вольность не уточнить про ссылку.

И в том, что это рафинированный пример, ты тоже прав. В реальности это очень сложный объект в сторонней библиотеке, лазить куда хоть теоретически и возможно, но уж точно не стоит. Поэтому вариант "прописать нужное в конструкторе" не канает.

Или всё же подобный финт с созданием временного объекта прокатывает только с вызовом конструктора, и методы здесь недоступны?

Добавлено: Tue Nov 09, 2021 9:01 pm
Ответить с цитатой

Кейс
 


Этот ваш С++ в enclosure уметь должен
Код:
int main() {
   {
      MyClass temp_obj;
      temp_obj.do_some_stuff();
      MyFunc(temp_obj);
   };
}

работает?


Добавлено: Tue Nov 09, 2021 10:22 pm
Ответить с цитатой

sergh
 


а че объект можно не только создавать, но и удалять.
Есть ссылка на него - делай что хош, только не обращайся к нему после того как удалил.
https://www.google.com/search?q=%D1%81%D0%BE%D0%...%BE%D0%B2+c%2B%2B

Добавлено: Wed Nov 10, 2021 1:03 pm
Ответить с цитатой

Vcoder
Магистр


Спасибо всем откликнувшимся.
Оказывается, я тупил и вызывал не ту функцию.
Спать больше надо.

Вот рабочий код:
Код:
MyFunc(MyClass::do_some_similar_stuff());


Технические подробности:

MyClass::do_some_stuff() делает с объектом что надо, но возвращает int. В результате компилятор сильно удивляется и непонятно ругается, что в функцию вместо указателя на объект прилетает int.

MyClass::do_some_similar_stuff() делает то же самое, но возвращает экземпляр объекта (ну то есть указатель на него). В результате в функцию MyFunc() прилетает то что надо, компилятор доволен, все довольны.


Добавлено: Wed Nov 10, 2021 6:18 pm
Список разделов Flyback.org.ru » не HV » программерство
На страницу Пред.  1, 2, 3, 4, 5, 6, 7     Просмотр темы целиком



Лицензионное соглашение

(c)Flyback.org.ru
Российское общество любителей высоких напряжений.
Использование материалов с данного сайта и форума возможно только с разрешения администрации.