Pages:
Author

Topic: Истинный ГСЧ (True RNG, TRNG) - page 4. (Read 14868 times)

newbie
Activity: 22
Merit: 0
February 16, 2015, 08:17:57 AM
#75
подключил СБТ-11, чувствительность по гамме у него выше раз в 5 по сравнению с СБМ-20


Сцинтилляционный детектор даёт около 120 CPS на фоне, от кафеля можно "разогнать" вдвое, от гранитной столешницы - втрое-четверо.
legendary
Activity: 3108
Merit: 1359
February 12, 2015, 11:33:06 AM
#74
подключил СБТ-11, чувствительность по гамме у него выше раз в 5 по сравнению с СБМ-20

Попробуй калийные удобрения, он на них должен очень живо реагировать.

http://www.youtube.com/watch?v=CU9n5PuzR9Q
legendary
Activity: 1302
Merit: 1008
February 12, 2015, 10:57:14 AM
#73
подключил СБТ-11, чувствительность по гамме у него выше раз в 5 по сравнению с СБМ-20
legendary
Activity: 3108
Merit: 1359
February 09, 2015, 03:31:21 AM
#72
В общем, КП501А пока на полку, они слишком разные от экземпляра к экземпляру все-таки... Запустить можно и работает, но схема получается сильно разношерстная, так что лучше на биполярниках соберу сегодня.  Roll Eyes
legendary
Activity: 3108
Merit: 1359
February 08, 2015, 06:42:08 PM
#71
еще мне не нравится как у тебя включены транзисторы оптрона
попробуй включить классически с ОЭ, эмиттеры на землю, каждый коллектор подтяни к +3.3В через 10К
Done. Подвесил так, и подключил затвор на анод счетчика через 100pF конденсатор... Форма сигнала получилась интересной:



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

Буду тестить...
legendary
Activity: 3108
Merit: 1359
February 08, 2015, 04:56:08 PM
#70
1 пФ оказалось маловато, а вот 2 пФ практически как раз, вроде бы:

Quote
Entropy = 7.961406 bits per byte.

Optimum compression would reduce the size
of this 5036 byte file by 0 percent.

Chi square distribution for 5036 samples is 262.12, and randomly
would exceed this value 50.00 percent of the times.

Arithmetic mean value of data bytes is 126.6511 (127.5 = random).
Monte Carlo value for Pi is 3.189511323 (error 1.53 percent).
Serial correlation coefficient is 0.008616 (totally uncorrelated = 0.0).

Кстати, на конденсаторах напряжение набирается веселое, если оставить в воздухе висеть второй вывод... Тряхнуло разрядом хорошо, когда пальцами полез, аж в голове прояснилось. Cheesy

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

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

Апдейт 3 - первый каскад завелся после того, как емкость конденсатора была увеличена до 100 пФ.

В общем, данная схема подключения мне кажется малость нестабильной... Попробую малость оптимизировать.
legendary
Activity: 3108
Merit: 1359
February 08, 2015, 03:57:10 PM
#69
Проверил сейчас, как работает с подключением на анод счетчиков через керамику... Добавил инкремент переменной при регистрации события и вижу, что количество событий на экране счетчика почти совпадает с количеством итераций в программе, 1094 итерации при 1100 каунтах на экране. То есть, подключение на анод через емкость дает объективно более точные сведения. Roll Eyes

Вот только непонятно, куда оно оставшиеся 6 каунтов потеряло. Перепроверил ещё раз - разница стала меньше, 1995 в программе и 2008 на экране.

еще мне не нравится как у тебя включены транзисторы оптрона
попробуй включить классически с ОЭ, эмиттеры на землю, каждый коллектор подтяни к +3.3В через 10К
появится инверсия, но ее можно будет скомпенсировать программно, или взять сигнал на затвор не с трубки, а с коллектора биполярного транзистора
Попробую, как закончу эксперименты с керамикой Smiley
legendary
Activity: 1302
Merit: 1008
February 08, 2015, 03:52:47 PM
#68
еще мне не нравится как у тебя включены транзисторы оптрона
попробуй включить классически с ОЭ, эмиттеры на землю, каждый коллектор подтяни к +3.3В через 10К
появится инверсия, но ее можно будет скомпенсировать программно, или взять сигнал на затвор не с трубки, а с коллектора биполярного транзистора
legendary
Activity: 3108
Merit: 1359
February 08, 2015, 03:43:32 PM
#67
Хотя... Чего я туплю, можно же через керамику туда подключиться, и оно мешать зарядке не будет. Сейчас попробуем через пару нанофарад законнектиться...  Roll Eyes
legendary
Activity: 3108
Merit: 1359
February 08, 2015, 03:26:51 PM
#66
Проблема в железе и фейл исключительно мой. Каждый тик почему-то дает от нуля до двух "теней" самого себя микросекунды через полторы, которые полностью повторяют его форму на графике, но имеют чуть меньшую мощность.

понятно, "звенит" каскад, выложи текущую схему с номиналами деталей, посмотрим куда можно кондёрчик вкрячить и какой  Cool
Схема примитив, в общем-то... Что и сыграло злую шутку из-за огромной чувствительности каскада, судя по тому что с вариантом "КТ3102ЕМ + резистор в цепи базы" такой проблемы не наблюдалось.



Рассматривать нужно, как продолжение двух экземпляров этой:

http://s50.radikal.ru/i127/1501/b2/2827fda39a0f.jpg

Земля у пар каскад - счетчик раздельная, взаимное влияние между ними также отсутствует.

Как вариант фикса без изменения структуры каскада - попробовать подключаться к + счетчиков через резистор достаточно большого сопротивления, чтобы не мешать его зарядке. Но 5.6 МОм для этого мало, а с большим номиналом сейчас под рукой резисторов нет..  Roll Eyes

legendary
Activity: 1302
Merit: 1008
February 08, 2015, 03:02:29 PM
#65
Проблема в железе и фейл исключительно мой. Каждый тик почему-то дает от нуля до двух "теней" самого себя микросекунды через полторы, которые полностью повторяют его форму на графике, но имеют чуть меньшую мощность.

понятно, "звенит" каскад, выложи текущую схему с номиналами деталей, посмотрим куда можно кондёрчик вкрячить и какой  Cool
legendary
Activity: 3108
Merit: 1359
February 08, 2015, 02:56:41 PM
#64
Проблема в железе и фейл исключительно мой, так что посыпаю голову пеплом. Каждый тик почему-то дает от нуля до двух "теней" самого себя микросекунды через полторы, которые полностью повторяют его форму на графике, но имеют чуть меньшую мощность.

В итоге, имеем такое поведение:

Code:
t1=67502547473

t2=67502547702
t3=675042600731

t1=67505631841

t2=67509135653
t3=675189342871

t1=67518934506

t2=67523399999
t3=675269536220

t1=67526953844
t2=67532289019
t3=675322892140

Где пустая строка - разделитель для реальных тиков, а идущие без пустой строки тики являются осцилляциями от первого.  В принципе, сей железный баг можно скомпенсировать программно, но лучше разберусь с первопричиной.
legendary
Activity: 1302
Merit: 1008
February 08, 2015, 02:06:29 PM
#63
девиация 0.01% это точно никакие не диагонали, это мощный косяк где-то в коде или в железе, взаимные помехи каналов и т.д.
посмотри что реально выдают таймеры (выводи на печать значение таймеров и их дельту), может там переполняется что-то иногда, или race condition какой-нибудь возникает при считывании значения таймера например.

у меня медленно но верно данные накапливаются в режиме "3 кванта на бит" и пока все в порядке:

Code:
root@raspberrypi:~/rng# ent out.bin 
Entropy = 7.994150 bits per byte.

Optimum compression would reduce the size
of this 31713 byte file by 0 percent.

Chi square distribution for 31713 samples is 256.95, and randomly
would exceed this value 50.00 percent of the times.

Arithmetic mean value of data bytes is 126.5888 (127.5 = random).
Monte Carlo value for Pi is 3.129612110 (error 0.38 percent).
Serial correlation coefficient is -0.007094 (totally uncorrelated = 0.0).
legendary
Activity: 3108
Merit: 1359
February 08, 2015, 12:25:09 PM
#62
Возможно случайность,  посмотрим как будет на 1280х1280.


Что же о причинах... Возможно, надо отрицательную обратную связь добавить и поставить токоограничивающие резисторы номиналом побольше.  Roll Eyes
full member
Activity: 271
Merit: 100
February 08, 2015, 12:05:46 PM
#61



Вроде все более чем прилично, однако тест проваливаем:

По-моему выделяются диагонали, одна тёмная, другая светлая.
legendary
Activity: 3108
Merit: 1359
February 08, 2015, 11:32:35 AM
#60
Небольшой апдейт:



Все-таки, крокодилы и разъемы смотрятся эргономичнее. Cheesy Ну а КП501А, благодаря охрененному входному сопротивлению, позволил выкинуть входные резисторы.

Проверка после апдейта:



Вроде все более чем прилично, однако тест проваливаем:

Code:
Entropy = 7.999279 bits per byte.

Optimum compression would reduce the size
of this 410000 byte file by 0 percent.

Chi square distribution for 410000 samples is 410.47, and randomly
would exceed this value 0.01 percent of the times.

Arithmetic mean value of data bytes is 128.4058 (127.5 = random).
Monte Carlo value for Pi is 3.121829863 (error 0.63 percent).
Serial correlation coefficient is 0.000703 (totally uncorrelated = 0.0).

Исходный набор байтов: https://docs.google.com/file/d/0B4cZ4tPn0KAtNmxzd2VuNkVOeUU/edit

На осциллографе всё в порядке, никаких неожиданностей:



Будем разбираться, ну и в процессе делаю демон для сброса генерируемой энтропии в общесистемный пул. Smiley

Между тем, следующий этап - сгенерировать картинку с разрешением 1280х1280.
legendary
Activity: 1302
Merit: 1008
February 05, 2015, 05:36:11 PM
#59

ГСЧ с помощью зомбоящика без антенны.


...будет похож на ГСЧ пока сосед сверлить рядом не начнет  Wink

legendary
Activity: 1876
Merit: 1000
February 05, 2015, 05:14:58 PM
#58

ГСЧ с помощью зомбоящика без антенны.

legendary
Activity: 3108
Merit: 1359
February 05, 2015, 04:21:35 PM
#57
велосипедисты, про  /dev/random не слышали?
смешно, шутку оценил  Smiley
Шутка была бы смешной, если бы не была грустной:

Quote
$ dd if=/dev/urandom bs=1 count=100000 | ent
Entropy = 7.998566 bits per byte.

Optimum compression would reduce the size
of this 100000 byte file by 0 percent.

Chi square distribution for 100000 samples is 198.79, and randomly
would exceed this value 99.50 percent of the times.

Arithmetic mean value of data bytes is 127.5079 (127.5 = random).
Monte Carlo value for Pi is 3.134045362 (error 0.24 percent).
Serial correlation coefficient is 0.005217 (totally uncorrelated = 0.0).
100000+0 records in
100000+0 records out
100000 bytes (100 kB) copied, 7.71541 s, 13.0 kB/s
$
$ dd if=/dev/urandom bs=1 count=100000 | ent
Entropy = 7.998009 bits per byte.

Optimum compression would reduce the size
of this 100000 byte file by 0 percent.

Chi square distribution for 100000 samples is 275.81, and randomly
would exceed this value 25.00 percent of the times.

Arithmetic mean value of data bytes is 127.2780 (127.5 = random).
Monte Carlo value for Pi is 3.146525861 (error 0.16 percent).
Serial correlation coefficient is 0.001174 (totally uncorrelated = 0.0).
100000+0 records in
100000+0 records out
100000 bytes (100 kB) copied, 7.73171 s, 12.9 kB/s
$
$ dd if=/dev/urandom bs=1 count=100000 | ent
Entropy = 7.998428 bits per byte.

Optimum compression would reduce the size
of this 100000 byte file by 0 percent.

Chi square distribution for 100000 samples is 216.93, and randomly
would exceed this value 95.00 percent of the times.

Arithmetic mean value of data bytes is 127.2716 (127.5 = random).
Monte Carlo value for Pi is 3.133085323 (error 0.27 percent).
Serial correlation coefficient is -0.000920 (totally uncorrelated = 0.0).
100000+0 records in
100000+0 records out
100000 bytes (100 kB) copied, 7.81786 s, 12.8 kB/s

Просто 4 запуска подряд, и лишь в один из них получился приличный результат по Chi2:

Quote
Entropy = 7.998072 bits per byte.

Optimum compression would reduce the size
of this 100000 byte file by 0 percent.

Chi square distribution for 100000 samples is 268.13, and randomly
would exceed this value 50.00 percent of the times.

Arithmetic mean value of data bytes is 127.2684 (127.5 = random).
Monte Carlo value for Pi is 3.134525381 (error 0.22 percent).
Serial correlation coefficient is 0.000859 (totally uncorrelated = 0.0).
100000+0 records in
100000+0 records out
100000 bytes (100 kB) copied, 7.86818 s, 12.7 kB/s

 Roll Eyes
legendary
Activity: 3108
Merit: 1359
February 04, 2015, 05:22:58 PM
#56
В виду того, что дефолтное ядро не позволяет мерить время с достаточной точностью, подправил чуть-чуть под себя:

https://github.com/CryptoManiac/rng/blob/master/rng.c

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

P.S. Хотя, провести аудит таймера намного проще, чем ГСЧ... В случае таймера достаточно сравнения результатов для двух разных железок, с ГСЧ такой прием невозможен.
Pages:
Jump to: