-
- Квантовый пойдет? KT(1 знак., 06.12.2021 14:08, ссылка)
- Берите младший бит с АЦП (можно без остановки ядра) и пропускайте
через "von Neumann whitening algorithm". Пример можно посмотреть в
библиотеке TrueRandom. Если это будет слишком медленно для вас,
можно таким образом сформировать только начальное значение, которым
инициализируется любой равномерный ГПСП. Длину повторения ПСП
выберите сами, исходя из вашей задачи. Алгоритмы генерации ПСП
можете посмотреть у Кнута в "Искусство программирования. Том 2",
там целая глава arhiv6(16 знак., 04.12.2021 10:35, ссылка)
- И ногу у контроллера прикрутить к длинной дорожке, чтобы весь мусор
собирала как антенна. - Costic(04.12.2021 14:52)
- у ТС предполагается MESH - значит антенна уже будет. RSSI (да ещё по разным каналам) - и усё - Vit(04.12.2021 17:38)
- И ногу у контроллера прикрутить к длинной дорожке, чтобы весь мусор
собирала как антенна. - Costic(04.12.2021 14:52)
- Берем какой-нибудь блочный шифр (я брал ГОСТовскую "Магму", можно DES, AES) и пережевываем им свой же выход, поксоренный с каким-нибудь Samx(523 знак., 04.12.2021 07:27)
- как вариант - взять Cortex M23/33, например, M2351 - на борту True
random number generator (TRNG) с хорошей родословной:) - Vit(03.12.2021 23:06)
- Это не интересно. Так каждый может. Где полет фантазии, искусство,
анженерное изумление изучающих, уважение коллег... вот это вот всё? - RxTx(03.12.2021 23:13)
- На макс10 делал 12 пспешек с разными константами и получал
распределение по гауссу, с частотой выдачи 500 ксемплов. Meteor(90 знак., 04.12.2021 10:39)
- ТС пытается что то на АТмега сколхозить, а вы про ФПГА сразу... - Visitor(04.12.2021 11:00)
- Так на меге тоже самое, только умножитель один. Будет еле-еле, но ему может и скорости не нужны. - Meteor(04.12.2021 16:58)
- ТС пытается что то на АТмега сколхозить, а вы про ФПГА сразу... - Visitor(04.12.2021 11:00)
- :) - Vit(04.12.2021 08:18)
- На макс10 делал 12 пспешек с разными константами и получал
распределение по гауссу, с частотой выдачи 500 ксемплов. Meteor(90 знак., 04.12.2021 10:39)
- Это не интересно. Так каждый может. Где полет фантазии, искусство,
анженерное изумление изучающих, уважение коллег... вот это вот всё? - RxTx(03.12.2021 23:13)
- Robust, low-cost, auditable random number generation for embedded
system security RxTx(31 знак., 03.12.2021 22:35, ссылка)
- чот мне кажется, что лёгкая асимметрия в схеме - и вот уже ноликов
и единичек будет неравное количество. - Mahagam(03.12.2021 22:45)
- Не знаю. Мопед не мой :) Вспоминается только что неумеючи-то можно и агрегат сломать :) - RxTx(03.12.2021 22:51)
- чот мне кажется, что лёгкая асимметрия в схеме - и вот уже ноликов
и единичек будет неравное количество. - Mahagam(03.12.2021 22:45)
- Например такой источник энтропии: взять, там где доступен,
внутренний генератор или генераторы. Там где недоступен - внешние
генераторы. Завести генераторы на апп.счетчики. Счетчики XOR'ить.
Выходом параметрически управлять третьим генератором, выход
которого на счетчик (примерная схема из раздела Clock drift,
процессор VIA C3 по ссылке что я дал). - RxTx(03.12.2021 22:19)
- +1. Низкочастотные RC, в т.ч. для всяких сторожей, часто не сильно точные и плывут. У мелкочипа даже аппликуха есть меряют температуру по утеканию генератора через сторож - AN828. Из внешнего припомнилось использование светодиода как фотодиода - шумит оно не так чтобы супер, но немного словить можно. Ну и начальных - серийников взять, да этой энтропии, да пробежаться хэшом по всей прошивке - уже что-то будет. Если радиоприёмник на борту еть, то RSSI, да по разным каналам, Vit(412 знак., 04.12.2021 09:16, ссылка, ссылка)
- О постановке задачи. ПСП это псевдо-случайная последовательность?
Нужно алгоритмическое решение или аппаратное? Если алгоритмическое
(Псевдо-случайная последовательность генерируется программными
генераторами) то причем тут АЦП и аппаратные решения. Если нужен
аппаратный генератор (истинно случайных чисел), то причем тут
"Псевдо". - RxTx(03.12.2021 20:45)
- Это полиномы в полях Галуа максимально длинные. М -
последовательности, кажется. - Visitor(03.12.2021 21:58)
- Сам генератор это сдвиговый регистр и логика XOR на которую заведены выводы регистра. Главное чтобы регистр можно было сбросить из состояния "все 1". И хотя правило взятия отводов выбирается в соответствии с "неприводимым полиномами в полях..." но так как не все агрономы (:-))) для инженеров есть табличка с правильно выбранными отводами. Boвa(23 знак., 04.12.2021 10:29, ссылка)
- аппаратный (на базе АЦП на борту МК) это тоже не идеал, программный
так же, скрестив
ужа и ежаих хочется получить нечто качественное и простое в реализации. - Adept(03.12.2021 21:10)- «© Всё уже придумано до нас». Знание/отыскание правильного термина
заменяет дни и месяцы работы и предотвращает ошибки. Термины: TRNG,
HRNG (см. статью по ссылке). Типичная схема: 1. Аппаратный источник
энтропии. 2. Та или иная аппаратная схема вырабатывающая
псевдо-случайные последовательности для скорости генерации и
инициализирующаяся (seed) аппаратным источником энтропии. Понятно
что в твоем случае нет ни 1 ни 2 и ты хочешь их симулировать
простыми способами на RxTx(449 знак., 03.12.2021 22:11, ссылка)
"и то и другое, и можно без хлеба" (С)последние два случая наиболее близки к желаемой цели, т.к. под конкретную задачу (MESH-net, ну и изготовленияигрушкиподелки с сыном) всё реализуется с приемлемой (но всегда же хочется лучше) степенью точности довольно простыми и известными методами. Adept(126 знак., 05.12.2021 16:26)
- «© Всё уже придумано до нас». Знание/отыскание правильного термина
заменяет дни и месяцы работы и предотвращает ошибки. Термины: TRNG,
HRNG (см. статью по ссылке). Типичная схема: 1. Аппаратный источник
энтропии. 2. Та или иная аппаратная схема вырабатывающая
псевдо-случайные последовательности для скорости генерации и
инициализирующаяся (seed) аппаратным источником энтропии. Понятно
что в твоем случае нет ни 1 ни 2 и ты хочешь их симулировать
простыми способами на RxTx(449 знак., 03.12.2021 22:11, ссылка)
- Это полиномы в полях Галуа максимально длинные. М -
последовательности, кажется. - Visitor(03.12.2021 21:58)
- [xoshiro128] Инициализируем рандомом и серийником, потом постоянно "подкармливаем" генератор от какого-нибудь источника энтропии. lloyd(1 знак., 03.12.2021 19:56, ссылка)
- спасибо всем! - ушёл думать.... вариантов-то в общем немного.
Аппаратный "генератор случайной величины" - только АЦП, похоже.
Основная мысль - генерация быстрой ПСП программно с коррекцией
значения по "аппаратному" коэффициенту (в разных вариантах, от
простого перемножения/xor до случайной выборки элемента вектора
ПСП, или комбинация этих методов) В общем Adept(298 знак., 03.12.2021 19:36)
- Выскажу ещё соображения, не совсем относящиеся к топику. У MSP430
довольно жручий АЦП, а раз MESH - то предположу автономное
использование. Можно шумы АЦП оставить на инициализации, но в целом
стоит рассмотреть альтернативы, как например счётчик тактов ядра
(где есть: SYSTICK on STM32) или таймер во время приёма пакета (не
только своего). Ну и несколько хэш-функций с гистограммами Dingo(1 знак., 04.12.2021 07:08, ссылка)
- все таймеры и тайминги приёма пакетов (не только свои) в той или
иной мере синхронизированы с сетевым обменом и тактовым
генератором. Т.е. все приёмники посредством сети как-то
синхронизированы между собой и вот как раз хотелось бы эту
синхронизацию разбавить случайным выбором Adept(402 знак., 04.12.2021 10:40)
- а ёпт. так тебе любой псевдорандом годится. LFSR и изредка ему
байтик ксорить с байтом CRC от принятых пакетов. LFSR даст
прекрасное нормальное распределение. а xor с уникальным для каждого
узла байтом даст независимость последовательности между узлами.
никакого АЦП не нужно. - Mahagam(04.12.2021 16:13)
- конкретно в этой задаче, да, идеального RND не надо, но как я уже
говорил, качественный RND малой кровью, работающий в широком ряду
МК - весьма интересная и полезная штука. Чёб не сбацать, если есть
возможность (тем более, что всё равно что-то сейчас придётся делать
для проекта, вот и решил копнуть глЫбжее :)) - Adept(05.12.2021 00:31)
- Самые простенькие RNG'шки ты конечно же найдешь на форумах
посвящнных 8-биткам. Z80, 6502, PIC, может быть и AVR. RxTx(908 знак., 05.12.2021 05:19, ссылка)
- с нечто подобным, как с одним из худших вариантов, работать конечно
можно, особенно, если разбавить его ещё "случайностью" с АЦП, но
вообще, конечно хотелось бы покачественней (по крайней мере без
изначальных изъянов, видимых невооружённым взглядом) Adept(1283 знак., 05.12.2021 16:14)
- Я давно бросил затею иметь универсальные самые-лучшие инструменты.
Типа, иметь стамеску на все случаи жизни и на всю жизнь. Приходится
хватать что есть... Иногда это оказывается такая клевая, маленькая
стамесочка, что прямо приятно. Вот и с алгоритмами то же самое. Код
что я привел выше выглядит каким-то примитивом, но если требуется
залить шумом экран или вывести его на динамик - разницы никакой
никто не увидит. А вот если нужно будет формировать на экране
звёзды как RxTx(144 знак., 05.12.2021 22:22)
- возможно в плане универсального инструмента Вы правы. По факту -
набор спецотвёрток всегда лучше одной универсальной. Вероятно
придётся-таки сделать несколько реализаций от самых простых до
самых сложных (в рамках моей компетенции, конечно :)) по крайней
мере вырисовывается как минимум 4 типа - 2 группы: - с
использованием аппаратного источника энтропии и без, и в каждой
группе ещё 2 класса : оптимизация по скорости/ресурсам и по
качеству. - Adept(06.12.2021 00:38)
- Перфекционизм - психическое заболевание :)) - MBedder(06.12.2021 03:05)
- согласен :) вот щас, похоже ремиссия, ибо здравые мысли одолевают чаще желания сделать всё "ну прям, что б конфетка" :)) - Adept(06.12.2021 12:30)
- Вполне серьёзно. Недавно смотрел видосик "10 глупых вопросов
психиатру". Вот он и объясняет, кому неплохо было бы обратиться к
мозговеду. Вот есть люди, которые зацикливаются на совершенно
второстепенных вещах, забывая о главном. "Блин!" — подумал я. Как
минимум каждого второго надо направить, и это в лучшем случае. SciFi(1 знак., 06.12.2021 07:58, youtube)
- вопрос в том, что считать главным, здесь и сейчас?? Если человек в
состоянии расставлять приоритеты, и справляться, в общем-то с
поставленными задачами, то желание "прикрутить рюшечки, чтоб было
красивоидеально", то более, чем чудачеством и прихотью это не назовёшь. А вот если он, к примеру, постоянно, т.е. всегда раскладывает предметы "по возрастанию", строго выполняет в быту какие-то последовательности действий, и прочее, такое, второстепенное, что Adept(1227 знак., 06.12.2021 12:50)
- вопрос в том, что считать главным, здесь и сейчас?? Если человек в
состоянии расставлять приоритеты, и справляться, в общем-то с
поставленными задачами, то желание "прикрутить рюшечки, чтоб было
- 👍 - RxTx(06.12.2021 01:01)
- Перфекционизм - психическое заболевание :)) - MBedder(06.12.2021 03:05)
- Есть такой RNG как XORSHIFT. Генераторы Xorshift являются одними из
самых быстрых криптографически нестойких генераторов случайных
чисел. Данный алгоритм доказал свою стойкость пройдя тесты DIEHARD
и может использоваться практически во всех областях. Рекомендован
Марсальей в качестве универсального. RxTx(699 знак., 05.12.2021 22:53, ссылка)
- спасибо, надо будет изучить с пристрастием их качество при разных
значениях ABC, если подбавить энтропии откуда-нить (АЦП - совсем
хорошо, но можно попробовать и с какого-нить асинхронного таймера,
к примеру). Сам код конечно
прост как ситцевые трусыпримитивен донельзя (скорость выполнения - соответствует), но примитивность, конечно настораживает :(( - Adept(06.12.2021 00:34) - Чуть не забыл. Не наколись: в переменной у XORSHIFT'а конечно же никогда не должно быть на старте нуля. - RxTx(06.12.2021 00:25)
- Спасибо, раньше не слыхал. - Vit(05.12.2021 23:04)
- Ты смилостивился, закончил буйствовать? :) - RxTx(05.12.2021 23:13)
- Та нужен ты мне:) - Vit(05.12.2021 23:16)
- :) - RxTx(05.12.2021 23:18)
- У мну вот тут горе наступило - винда обновилась и угандонила весь
блюпуп выхлоп звука. А уши только блюпупные остались. В последних
маргинальных (полупроводных - блюпуп плюс шнурок) - оправка
сломалась... Есть колонки с очень неплохим звуком, но они тоже
блюпуп TWS... В раздумьях. И уже ж Билл Гейтс как бы не сильно
виноват... - Vit(05.12.2021 23:30)
- Погугли "как откатить windows 10 после последнего обновления".
Вроде откатывается. Сам я не пробовал, но не должны же мелкомягкие
быть настолько сумасшедшими чтобы апдейтиться без бэкапа. - RxTx(05.12.2021 23:34)
- они периодически поправляют, а потом опять. пока наверно попробую
на лялихе. или как-то хранилище к трубе прикрутить. ещё валяются
какие-то Pi без дела. пока думаю как будет удобнее MPD прикрутить - Vit(05.12.2021 23:46)
- Зацепил грибок CSR 4.0 к компу с лялихом LMDE4 (ядро искаропки 4.19
- заменил на 5.10 - вроде как LTS). Пока уши работают. - Vit(06.12.2021 00:20)
- А чего не убунта? Они вроде бы самые продвинутые по мультимедиям? - Cкpипaч(06.12.2021 00:24)
- У юбунт 18+, в т.ч. у Linux Mint на них, траблы с управлением питанием на всех моих железяках, и ещё несколько хреней, которые не лечатся. В голом Debian в Cinnamon и Xfce есть пара грустностей насчет языковых настроек. В Deepin-Linux rolling-обновления ломают всё. Q4OS с языками, кроме аглицкого, вааще не дружит. Оптимальными оказались LMDE4 (Linux Mint Cinnamon на Debian 10) и MX Linux (тоже на Debian 10). Пока к LMDE4 претензий не много - некоторые тормоза при Vit(251 знак., 06.12.2021 01:05)
- А чего не убунта? Они вроде бы самые продвинутые по мультимедиям? - Cкpипaч(06.12.2021 00:24)
- Зацепил грибок CSR 4.0 к компу с лялихом LMDE4 (ядро искаропки 4.19
- заменил на 5.10 - вроде как LTS). Пока уши работают. - Vit(06.12.2021 00:20)
- Сам-то я поставил на работе 10ю винду LTS (long term suport) - а та
апдейтится очень редко, это для мериканского офиса. (Частые апдейты
они на домашних хомфячках првоеряют). И прошелся по ней вдобавок
DWS (destroy windows spying) выключив автоматические апдейты. И вот
еще недавно узнал про O&O ShutUp10++ вроде фришная, но сам ее
пока не юзал. oo-software.com - RxTx(05.12.2021 23:41)
- Что-то мне с дистрами LTSx не везло. Какие-то подделки попадались.
Через несколько месяцев начинали вести себя как покалеченная
обычная - начинало тащить апдейт, ставило его и откатывалось, на
чём и зацикливалось. Оно потом лечится отключением обновления, как
для обычной, но остаётся покалеченным в других местах. Например,
когда теряет подпись у китайских дров на MIO, начинает уходить в
BSOD при включении - Vit(05.12.2021 23:53)
- Наша контора ставит винду на промышленные компы. И в последне время - Windows 10. Давно поняли (еще с 7-ки) что усё "волшебство" в том чтобы сразу вырубить автоматический апдейт. Иначе всем будет плохо. Да, понятно там "Security" и сколько раз слышал в интернетах крики "вы что, никогда так не делайте!!!111!!". На серваках выставленных в сеть - может быть. А так страхи примерно в десять тысяч раз преувеличены. Апдейтится надо, но "сервис-паками", раз в год или в пару лет, RxTx(165 знак., 06.12.2021 00:42)
- Что-то мне с дистрами LTSx не везло. Какие-то подделки попадались.
Через несколько месяцев начинали вести себя как покалеченная
обычная - начинало тащить апдейт, ставило его и откатывалось, на
чём и зацикливалось. Оно потом лечится отключением обновления, как
для обычной, но остаётся покалеченным в других местах. Например,
когда теряет подпись у китайских дров на MIO, начинает уходить в
BSOD при включении - Vit(05.12.2021 23:53)
- они периодически поправляют, а потом опять. пока наверно попробую
на лялихе. или как-то хранилище к трубе прикрутить. ещё валяются
какие-то Pi без дела. пока думаю как будет удобнее MPD прикрутить - Vit(05.12.2021 23:46)
- Погугли "как откатить windows 10 после последнего обновления".
Вроде откатывается. Сам я не пробовал, но не должны же мелкомягкие
быть настолько сумасшедшими чтобы апдейтиться без бэкапа. - RxTx(05.12.2021 23:34)
- У мну вот тут горе наступило - винда обновилась и угандонила весь
блюпуп выхлоп звука. А уши только блюпупные остались. В последних
маргинальных (полупроводных - блюпуп плюс шнурок) - оправка
сломалась... Есть колонки с очень неплохим звуком, но они тоже
блюпуп TWS... В раздумьях. И уже ж Билл Гейтс как бы не сильно
виноват... - Vit(05.12.2021 23:30)
- :) - RxTx(05.12.2021 23:18)
- Та нужен ты мне:) - Vit(05.12.2021 23:16)
- Ты смилостивился, закончил буйствовать? :) - RxTx(05.12.2021 23:13)
- спасибо, надо будет изучить с пристрастием их качество при разных
значениях ABC, если подбавить энтропии откуда-нить (АЦП - совсем
хорошо, но можно попробовать и с какого-нить асинхронного таймера,
к примеру). Сам код конечно
- возможно в плане универсального инструмента Вы правы. По факту -
набор спецотвёрток всегда лучше одной универсальной. Вероятно
придётся-таки сделать несколько реализаций от самых простых до
самых сложных (в рамках моей компетенции, конечно :)) по крайней
мере вырисовывается как минимум 4 типа - 2 группы: - с
использованием аппаратного источника энтропии и без, и в каждой
группе ещё 2 класса : оптимизация по скорости/ресурсам и по
качеству. - Adept(06.12.2021 00:38)
- даже с CRC не всё так просто - есть тьма разных вариантов: сразу
расчёт на месте, таблица с заготовкой её во флешке, таблица с
функцией её расчёта при инициализации. каждый вариант хорош по
своему. - Mahagam(05.12.2021 16:21)
- С кодированием БЧХ просто, набор сверток XOR, а с декодированием
сложнее, пришлось алгебру в полях Галуа изучить, что бы это с нуля
сделать, потом в сети код нашел в 3 х вариантах:-) Один фиг на проц
адаптировать и отлаживать самому надо. Пока отлаживал, настроил
сканер RF на частоту пэйджинга, смотрю номер знакомый, оказывается
любовница еще с кем то затеяла, я как то и не расстроился, гнать
пора было. - Visitor(05.12.2021 16:47)
- Поля Галуа... звучит как нечто страшное. Математики любят себе набивать цену чтобы показать что они не даром хлеб едят. Но всегда оказывается что это простая и тупая вещь. Сначала надо знать что на языке математиков "полем" названо просто множество или набор чисел, но не какое попало, а чтобы с этим множеством работали умножение и сложение и чтобы при этом сохранялись ассоциативные и коммутативные законы. «Поле Галуа», оно же конечное поле, в переносе на компьютеры есть RxTx(173 знак., 05.12.2021 23:12)
- ну для моих задач (как правило это обсчёт лету блоков до нескольких сот байт, при UART обмене на скоростях максимум до мегабита, в реальном времени), вполне хватает максимально экономного безтабличного CRC16-CCITT. Adept(323 знак., 05.12.2021 16:33)
- С кодированием БЧХ просто, набор сверток XOR, а с декодированием
сложнее, пришлось алгебру в полях Галуа изучить, что бы это с нуля
сделать, потом в сети код нашел в 3 х вариантах:-) Один фиг на проц
адаптировать и отлаживать самому надо. Пока отлаживал, настроил
сканер RF на частоту пэйджинга, смотрю номер знакомый, оказывается
любовница еще с кем то затеяла, я как то и не расстроился, гнать
пора было. - Visitor(05.12.2021 16:47)
- Я давно бросил затею иметь универсальные самые-лучшие инструменты.
Типа, иметь стамеску на все случаи жизни и на всю жизнь. Приходится
хватать что есть... Иногда это оказывается такая клевая, маленькая
стамесочка, что прямо приятно. Вот и с алгоритмами то же самое. Код
что я привел выше выглядит каким-то примитивом, но если требуется
залить шумом экран или вывести его на динамик - разницы никакой
никто не увидит. А вот если нужно будет формировать на экране
звёзды как RxTx(144 знак., 05.12.2021 22:22)
- с нечто подобным, как с одним из худших вариантов, работать конечно
можно, особенно, если разбавить его ещё "случайностью" с АЦП, но
вообще, конечно хотелось бы покачественней (по крайней мере без
изначальных изъянов, видимых невооружённым взглядом) Adept(1283 знак., 05.12.2021 16:14)
- Самые простенькие RNG'шки ты конечно же найдешь на форумах
посвящнных 8-биткам. Z80, 6502, PIC, может быть и AVR. RxTx(908 знак., 05.12.2021 05:19, ссылка)
- конкретно в этой задаче, да, идеального RND не надо, но как я уже
говорил, качественный RND малой кровью, работающий в широком ряду
МК - весьма интересная и полезная штука. Чёб не сбацать, если есть
возможность (тем более, что всё равно что-то сейчас придётся делать
для проекта, вот и решил копнуть глЫбжее :)) - Adept(05.12.2021 00:31)
- На форуме Микрочипа человек делал контроллеры "свечей" в люстру. И проблема у него была, что сразу после включения, все свечи мерцают синхронно. Nikolay_Po(395 знак., 04.12.2021 15:05)
- а ёпт. так тебе любой псевдорандом годится. LFSR и изредка ему
байтик ксорить с байтом CRC от принятых пакетов. LFSR даст
прекрасное нормальное распределение. а xor с уникальным для каждого
узла байтом даст независимость последовательности между узлами.
никакого АЦП не нужно. - Mahagam(04.12.2021 16:13)
- все таймеры и тайминги приёма пакетов (не только свои) в той или
иной мере синхронизированы с сетевым обменом и тактовым
генератором. Т.е. все приёмники посредством сети как-то
синхронизированы между собой и вот как раз хотелось бы эту
синхронизацию разбавить случайным выбором Adept(402 знак., 04.12.2021 10:40)
- Для большего чада кутежа, стабилитрон больше 5В(чтобы пробой был лавинный, а не туннельный), запитать током, раз в 10 меньшим минимального и, по переменке, усилить, на АЦП. Ку усилителя подобрать по вкусу. - mse homjak(03.12.2021 19:38)
- Выскажу ещё соображения, не совсем относящиеся к топику. У MSP430
довольно жручий АЦП, а раз MESH - то предположу автономное
использование. Можно шумы АЦП оставить на инициализации, но в целом
стоит рассмотреть альтернативы, как например счётчик тактов ядра
(где есть: SYSTICK on STM32) или таймер во время приёма пакета (не
только своего). Ну и несколько хэш-функций с гистограммами Dingo(1 знак., 04.12.2021 07:08, ссылка)
- Как-то делал 2 захода замеров, кидая 20-гранную кость (dice) больше
500 раз и фиксируя результат на бумажке. Нифига неравномерно, но
каждый раз разные гистограммы. - Dingo(03.12.2021 18:54)
- "Азартный ты, Парамоша!" (с) :)) - MBedder(03.12.2021 19:39)
- надо было, чтоб 500 человек кидали (каждый по-своему), думаю было
бы равномерно :) - Adept(03.12.2021 18:57)
- Ну так то можно казино обыграть и с программированием не париться:-) - Visitor(03.12.2021 19:05)
- Слишком много исходных данных пропущено. Какая разрядность
результата? Сколько времени на генерацию очередного случайного
можно потратить? Сколько времени на инициализацию можно потратить?
На сколько важно "качество" полученного результата, какие свойства
важнее? AlexBi(368 знак., 03.12.2021 17:59)
- варианты генерации RND как бы есть, но
врождённый перфекционизЬм свербит в задницехочется сделать красиво, хорошо и универсально (как говорится "делай хорошо, а плохо. - оно само получится" :)) по техническим характеристикам, кроме "чем случайней, - тем лучше" и разрядности - 8 бит, пожалуй важно время генерации. Очень хотелось бы уложиться в интервал менее 1mS при загрузке 10MIPS CPU до 50-70% - Adept(03.12.2021 18:27) - В ходе обсуждения выясняется, что ТС говорит "ПСП", а имеет в виду ГСЧ. - SciFi(03.12.2021 18:09)
- варианты генерации RND как бы есть, но
- На AVR делал так: (XOR всех используемых каналов АЦП) XOR
(содержимое всех работающих таймеров при прерывании сторожевого) и
реверс бит результата. При желании можно добавить XOR c
какой-нибудь достаточно длинной М-последовательностью. PS argus98(183 знак., 03.12.2021 17:19)
- 32 разрядная переменная maleon(466 знак., 03.12.2021 17:37)
- таймера же синхронны, какой смысл тащить их данные в ПСП?? XOR каналов АЦП так же вызывает сомнения в полезности. Вся периферия синхронизирована с программой, выполняемой МК. Должно получаться совсем хреново в плане "случайности" - Adept(03.12.2021 17:20)
- В серии STM32 есть True Random Number Generator, TRNG. Причем, он к
блоку АЦП относится, возможно, что правда, на каком то извращенном
п - н переходе сделан. Тестировать нужды не было. Если очень надо,
могу программера попросить на ЦАП это вывести, записать осциллом и
фурье сделать. Но не быстро, своих дел есть. - Visitor(03.12.2021 17:06)
- спасибо, но не надо (не буду отвлекать от дел праведных) тем более
STM - не мой целевой камень. А про идею c ЦАП-пом спасибо надо
будет попробовать (у меня как раз есть пара макетов с прошлых
проектов с иксмегой, и выведенным наружу ЦАПом. Попробую
поэкспериментирую на нём. Главное - можно сразу на
спектранализаторе смотреть в реалтайме, не загоняя числа в
какую-нить "статистику" - Adept(03.12.2021 17:54)
- К этому делу можно творчески подойти, сгенерить несколько линейных
последовательностей разной длины и с смешать с разными
коэффициентами умножения / деления. Такая фигня получится, сам черт
не разберет:-) - Visitor(03.12.2021 18:11)
- эт да, но важный нюанс (надоть уместиться бы в 1mS и не занимать
ресурсов CPU (ну, скажем при 10MIPS), более, чем на 50-70%) сорри,
что сразу не обрисовал. Мне это критично для проекта с MESH-сеткой - Adept(03.12.2021 18:24)
- Можно от балды стебануться:-) Ставим копеечный китайский модуль ФМ
радио, что оцифровали, то и есть ключ. А в какие миллисекунды он
принят был и сам не знаешь. Главное, на рекламу не попасть:-) - Visitor(03.12.2021 18:39)
- ну, с внешними компонентами любой дурак сможет :) хочется совсем без них, в крайнем случае один - на вход АЦП, а то и вовсе без него. - Adept(03.12.2021 18:44)
- Любой медленный генератор инициализирует ПСП, запросы получают
результат с выхода ПСП. По мере готовности "шумовых значений" ПСП
переинициализируется новыми числами. - Dingo(03.12.2021 18:37)
- да, спасибо, мысль хорошая, - не готовить ПСП в спешке каждую миллисекунду, а простым алгоритмом достаточно быстро его генерить, а "медленными" шумоподобными данными реинициализировать. Процедуры, которым нужен RND-байт берут его из достаточно быстро обновляемой ячейки (кстати нужно всё равно делать какие-то флаги, по которым будет ясно, что RND ещё не обновлено, чтоб внешняя процедура чуть подождала готовности) - Adept(03.12.2021 18:41 - 19:21)
- Можно от балды стебануться:-) Ставим копеечный китайский модуль ФМ
радио, что оцифровали, то и есть ключ. А в какие миллисекунды он
принят был и сам не знаешь. Главное, на рекламу не попасть:-) - Visitor(03.12.2021 18:39)
- эт да, но важный нюанс (надоть уместиться бы в 1mS и не занимать
ресурсов CPU (ну, скажем при 10MIPS), более, чем на 50-70%) сорри,
что сразу не обрисовал. Мне это критично для проекта с MESH-сеткой - Adept(03.12.2021 18:24)
- К этому делу можно творчески подойти, сгенерить несколько линейных
последовательностей разной длины и с смешать с разными
коэффициентами умножения / деления. Такая фигня получится, сам черт
не разберет:-) - Visitor(03.12.2021 18:11)
- спасибо, но не надо (не буду отвлекать от дел праведных) тем более
STM - не мой целевой камень. А про идею c ЦАП-пом спасибо надо
будет попробовать (у меня как раз есть пара макетов с прошлых
проектов с иксмегой, и выведенным наружу ЦАПом. Попробую
поэкспериментирую на нём. Главное - можно сразу на
спектранализаторе смотреть в реалтайме, не загоняя числа в
какую-нить "статистику" - Adept(03.12.2021 17:54)
- Идея на обсуждение: несмотря на неслучайность шума АЦП, можно брать
младший разряд, и перед взятием следующего выжидать n
тактов/микросекунд/попугаев до взятия следующего бита или битов. В
следующее значение задержки попадут уже n+1 бит шума АЦП, Dingo(230 знак., 03.12.2021 16:59)
- спасибо интересно, если чуть развить идею - на основе считанного значения (последовательности последних N значений) генерировать временной интервал для вычитывания последующего "шумового бита" - идея вполне может уменьшить детерминированность. Надо поэкспериментировать. Вообще, с АЦП проблема в том, Adept(386 знак., 03.12.2021 17:53)
- насколько я читал, народ делает источник шума на диоде, подбирая ток и напряжение, потом 1-2 каскада усиления. из отечественных хорошо шумит по описания какая-то серия стабилитронов. я повторял конструкцию из инета, там в основе stm32 и вывод на usb в линуксе, как генератора true rng чисел. долго тестил специально обученным пакетом для проверки на надежность и длительность ПСП, часть тестов браковалась, пробовал подбирать элементы. ну такое себе занятие.. jury093(155 знак., 03.12.2021 16:56, )
- АЦП — это не ПСП по определению. Ну и нужно знать, для чего
случайность нужна. Бывают такие требования, что просто не получится
с имеющимися в наличии средствами. А бывают такие, что подойдёт
вообще всё, что угодно. Например, вот: SciFi(2 знак., 03.12.2021 16:23, ссылка, картинка)
- "АЦП — это не ПСП по определению" - именно младший разряд АЦП даёт весьма качественный цифровой шум,
т.е. не псевдо, а настоящую случайную последовательность (ну почти)
правда при остановленном ядре (как-то баловался этим лет 15 назад,
но потом бросил :) а применение-то Adept(556 знак., 03.12.2021 17:13)
- Качественный понятие растяжимое. Все зависит куда его используют.
Для крипты например небольшое отличие от белого шума просто подарок
для того кто будет взамывать твой код. - Codavr(03.12.2021 20:56)
- да, эт понятно, просто попала в голову шальная мысль, а то вдруг с
помощью АЦП и хитрых алгоритмов генерации ПСП
на халявунесложно получить сильно качественный RND генератор :)) Оно как б ы и не надо сильно качественный, но ежели "на халяву" - сам Бог велел такое сделать :)) - Adept(03.12.2021 21:14)- В качестве алгоритма генерации ПСП можно использовать, если есть,
аппаратный AES (он нынче много где есть). Исходное число шифровать,
потом шифровать зашифрованное и тыды. Спектр будет хорошо размазан. - LightElf(03.12.2021 21:42)
- Если не ошибаюсь, шифровать зашифрованное никакого смысла нет, спектр не изменится от слова вааще. Определяется только глубиной ПСП алгоритма. - Codavr(04.12.2021 11:00)
- о, для иксмеги может подойти (но мне нужно и для тинек, шоб работало - Adept(03.12.2021 21:51)
- Сильно качественный RND и халява понятия несовместимые. Время жизни
Вселенной накладывает жесткие ограничения ;) - Codavr(03.12.2021 21:18)
- ну, хотя бы "псевдо" лет на "цать" :)) - Adept(03.12.2021 21:20)
- Тогда 1/f шум обязательно насрет. - Codavr(03.12.2021 21:22)
- 1/f это распределение, а характер его случаен(при фликкер-шум же
базар?? буржуины называют его "шум лопающейся кукурузы" :)) так шо
хрен с ним - сильно не помешает Adept(152 знак., 03.12.2021 21:29)
- пардон, эт я с дробовым спутал (он, впрочем тоже будет иметь место, т.к. кремний, а не лампы какие-нить :)) Adept(165 знак., 03.12.2021 21:35)
- Любое уклоннние спектра от белого шума это фиаско. - Codavr(03.12.2021 21:30)
- вычислить тренд и корректировать программно :)) - Adept(03.12.2021 21:32)
- Гы. Алгоритм изобрази на пальцах :))) - Codavr(03.12.2021 21:37)
- не ну бред конечно, нафиг оно надо, но если в порядки шутки, то могло бы быть так :) Adept(944 знак., 03.12.2021 21:50)
- Гы. Алгоритм изобрази на пальцах :))) - Codavr(03.12.2021 21:37)
- вычислить тренд и корректировать программно :)) - Adept(03.12.2021 21:32)
- 1/f это распределение, а характер его случаен(при фликкер-шум же
базар?? буржуины называют его "шум лопающейся кукурузы" :)) так шо
хрен с ним - сильно не помешает Adept(152 знак., 03.12.2021 21:29)
- Тогда 1/f шум обязательно насрет. - Codavr(03.12.2021 21:22)
- ну, хотя бы "псевдо" лет на "цать" :)) - Adept(03.12.2021 21:20)
- В качестве алгоритма генерации ПСП можно использовать, если есть,
аппаратный AES (он нынче много где есть). Исходное число шифровать,
потом шифровать зашифрованное и тыды. Спектр будет хорошо размазан. - LightElf(03.12.2021 21:42)
- да, эт понятно, просто попала в голову шальная мысль, а то вдруг с
помощью АЦП и хитрых алгоритмов генерации ПСП
- Качественный понятие растяжимое. Все зависит куда его используют.
Для крипты например небольшое отличие от белого шума просто подарок
для того кто будет взамывать твой код. - Codavr(03.12.2021 20:56)
- "АЦП — это не ПСП по определению" - именно младший разряд АЦП даёт весьма качественный цифровой шум,
т.е. не псевдо, а настоящую случайную последовательность (ну почти)
правда при остановленном ядре (как-то баловался этим лет 15 назад,
но потом бросил :) а применение-то Adept(556 знак., 03.12.2021 17:13)