Witam, przeszukuję forum pod kątem jak najprostrzych sprzętowych generatorów losowych bitów, ponieważ w jednym projekcie na AVR ATTiny85 chciałbym zastąpić programowy generator sprzętowym ze względu na ograniczone możliwości obliczeniowe.
Nie jest to projekt kryptograficzny, ale być może z ciekawości chciałbym jakość generowanych bitów sprawdzić.
W tym projekcie wykorzystuję 3y ADC do pomiaru prądu napięcia i ustawień potencjometru,
przy czym pomiar prądu jest na czujniku pola magnetycznego SS495A.
Zastanawiam się czy po prostu po odczytaniu 10bitowych wartości z ADC nie wziąć najmniej znaczącego bitu i jego użyć jako źródła 0/1 ?
Sam SS495A jest ciekawy bo prawdopodobnie jest zakłocany nieznacznie przez pole magnetyczne z otoczenia i tym samym być może byłby dobrym źródłem TRNG?
Idea jest taka że biorę 3y odczyty z ADCi robię XOR + maska na najmniej znaczący bit:
TRNG= (ADC1^ADC2^ADC3^ADC4)& 0x01;
Ma też ten AVR wbudowany czujnik temperatury, więc dodatkowo 4y odczyt z tego ADC4 mogę dodać.
Myślałem też winnym projekcie dedykowanym do takiego generatora użyć rezystora LDR oświetlanego jakąś diodą albo kilkoma i mierzyć natężenie światła i oczywiście też ostatni najmniej znaczący bit jako TRNG użyć.
Tutaj jest bardzo zaawansowana metoda:
https://www.elektroda.pl/rtvforum/topic1117456.html#5628959
w tym PDF:
http://arxiv.org/PS_cache/quant-ph/pdf/9912/9912118v1.pdf
Ale być może taki TRNG z tych 4ech ADC AVRa też by był nienajgorszy?
Ktoś kojarzy oprogramowanie do testowania RNG?
Np. mam ciąg 01001010101000100101 w pliku tekstowym, czy binarnym bajty z losowymi bitami w ilości 20000 czyli ok. 2.5kB i jakimś programem (najlepiej Open Source) pod Linux analizuję jakość tak wygenerowanych ciągów?
Update: W tym PDF wyżej jest estymacja PI metodą Monte-Carlo opisana jako sposobu oszacowania jakości generowanych liczb losowych i na potrzeby tego projektu powinno to wystarczyć-wystarczy napisać kilka lini kodu w C lub Java i analizować bity w ten sposób:
Nie jest jakimś problemem dla mnie przesłanie tych bitów z AVR na PC.... nawet bezprzewodowo z optoizolacją (za pomocą światła z jednej diody LED), więc pozostaje sprawdzić jakiej jakości te losowe bity będą z takiego TRNG na AVR ATiny85
Nie jest to projekt kryptograficzny, ale być może z ciekawości chciałbym jakość generowanych bitów sprawdzić.
W tym projekcie wykorzystuję 3y ADC do pomiaru prądu napięcia i ustawień potencjometru,
przy czym pomiar prądu jest na czujniku pola magnetycznego SS495A.
Zastanawiam się czy po prostu po odczytaniu 10bitowych wartości z ADC nie wziąć najmniej znaczącego bitu i jego użyć jako źródła 0/1 ?
Sam SS495A jest ciekawy bo prawdopodobnie jest zakłocany nieznacznie przez pole magnetyczne z otoczenia i tym samym być może byłby dobrym źródłem TRNG?
Idea jest taka że biorę 3y odczyty z ADCi robię XOR + maska na najmniej znaczący bit:
TRNG= (ADC1^ADC2^ADC3^ADC4)& 0x01;
Ma też ten AVR wbudowany czujnik temperatury, więc dodatkowo 4y odczyt z tego ADC4 mogę dodać.
Myślałem też winnym projekcie dedykowanym do takiego generatora użyć rezystora LDR oświetlanego jakąś diodą albo kilkoma i mierzyć natężenie światła i oczywiście też ostatni najmniej znaczący bit jako TRNG użyć.
Tutaj jest bardzo zaawansowana metoda:
https://www.elektroda.pl/rtvforum/topic1117456.html#5628959
w tym PDF:
http://arxiv.org/PS_cache/quant-ph/pdf/9912/9912118v1.pdf
Ale być może taki TRNG z tych 4ech ADC AVRa też by był nienajgorszy?
Ktoś kojarzy oprogramowanie do testowania RNG?
Np. mam ciąg 01001010101000100101 w pliku tekstowym, czy binarnym bajty z losowymi bitami w ilości 20000 czyli ok. 2.5kB i jakimś programem (najlepiej Open Source) pod Linux analizuję jakość tak wygenerowanych ciągów?
Update: W tym PDF wyżej jest estymacja PI metodą Monte-Carlo opisana jako sposobu oszacowania jakości generowanych liczb losowych i na potrzeby tego projektu powinno to wystarczyć-wystarczy napisać kilka lini kodu w C lub Java i analizować bity w ten sposób:
Nie jest jakimś problemem dla mnie przesłanie tych bitów z AVR na PC.... nawet bezprzewodowo z optoizolacją (za pomocą światła z jednej diody LED), więc pozostaje sprawdzić jakiej jakości te losowe bity będą z takiego TRNG na AVR ATiny85
