Отговори на тема  [ 31 мнения ]  Отиди на страница Предишна  1, 2, 3  Следваща
Генератор на случайни числа 
Автор Съобщение
Online
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30686
Местоположение: София
Мнение 
Букмарк имах, но при преинсталацията забравих да си го запазя. Ако пуснеш в google hardware RNG ще намериш доста нещо, има както чипове, така и цели модули. Сега не са ми под ръка а нямам навика да помня такива неща, ще ти постна по късно каквото съм гледал.


Сря Юни 28, 2006 2:24 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Дек 14, 2004 1:31 pm
Мнения: 3849
Мнение 
Тони мерси ориентирах се какво да гледам. Вижте на какво попаднах, какво правили Infineon

http://www.infineon.com/cgi-bin/ifx/por ... peId=17099

32-Bit Multi Application Security Controller
Peripherals
• 1408-bit Crypto Engine
(Crypto@1408, formerly Crypto2000)
for fast execution of public key crypto
algorithms
• Optimized for RSA and Elliptic
Curves GF(p) and GF(2m)
• Key lengths up to 2048-bit
• Dedicated 880 bytes of cryptocoprocessor
RAM
• DES Accelerator
• DES and 3DES in hardware
• True Random Number Generator
(TRNG), AIS-31 compliant
• Three 16-bit Timers
...
• Programmer’s Manual with application
notes (e.g.: T=0, T=1, 3DES, AES, RSA,
Elliptic Curves, SHA1, CRC etc.) and
software developer guidelines
• C libraries (e.g. Crypto library)


Сря Юни 28, 2006 2:50 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение 
Позамислих се и ми хрумва например следното за простичък генератор на случайни числа: подреди си например 20-тина променливи, така че да заемат последователни клетки в паметта ( все една са един масив ). Можеш и таймера да включиш в този масив. Предполага се, че на всяко преминаване през цикъла на главната програма, ще се променят тези променливи. Значи на всеки цикъл на главната програма изчислявай crc16 на тия 20-тина клетки.
Код:
int16 crc16;
void CRC16( char *source, char size)   {
int8 i;
int1 fCrc16Lsb;
   crc16 = 0xFFFF;
   do   {
      _CLRWDT();
      crc16 ^= *source++;
      i = 8;
      do {
         fCrc16Lsb = 0;
         if( bit_test(crc16,0)  )
            fCrc16Lsb = 1;
         crc16 >>= 1;
         if( fCrc16Lsb )
            crc16 ^= 0xA001;
      } while( --i );
   } while( --size );
}


Ако решиш да изпробваш с crc16 сподели какво се е получило.

_________________
Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....


Сря Юни 28, 2006 2:52 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Съб Юни 24, 2006 8:25 pm
Мнения: 2292
Мнение Re: Генератор на случайни числа
Хардуерен генератор на псевдослучайни числа се прави с преместващ регистър с обратна връзка - входът му е вързан към изхода на схема изключващо ИЛИ , чиито входове са вързани към строго определени разряди на самия регистър. Такива двойки изходи например са
15 и 14 -32767 псевдослучайни стойности
11 и 9 -2047 псевдослучайни стойности
10 и 7 - 1023 псевдослучайни стойности
4 и 3 - 15 псевдослучайни стойности
39 и 35 - 549755813887 псевдослучайни стойности
Такава схема съм реализирал с 4015 и с 4030. Идеята елемнтарно може да се имитира с регистрите на процесора, обаче трабва да се знае, че все пак числовата поредица е повтаряема и че винаги ще започва по един и същи начин, ако се нулира в началото регистъра. Все пак , ако дължината на регистъра е достатъчно голяма, повтаряемостта едва ли ще се забележи - може да става въпрос за период равен на живота на Земята например. "Случайната" инициализация и въобще необходимостта от нея трябва да се реши от самия разработчик.
Неграмотен съм ( не разбрам от С и oт PIC), иначе бих драснал една малка програмка.
Батко ви.


Сря Юни 28, 2006 4:35 pm
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Чет Дек 01, 2005 10:42 pm
Мнения: 301
Мнение 
shtx: Това е хардуерната реализация на полином на цикличен код за който говорим по-горе :) И страда от същите недостатъци.


Сря Юни 28, 2006 7:43 pm
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Пон Дек 26, 2005 3:19 pm
Мнения: 336
Местоположение: Varna
Мнение 
HCL написа:
zz_stefanov като спомена за тото-то :) ...
... Някой да е правил статистика на бьлгарското :D

Те уж са я публикували на http://www.toto.bg/stats/ , но бяха сменяни сферите няколко пъти.
Успех :)

_________________
http://ds-portfolio.com/bg/


Сря Юни 28, 2006 8:14 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Съб Юни 24, 2006 8:25 pm
Мнения: 2292
Мнение 
Това е хардуерната реализация на полином на цикличен код за който говорим по-горе :) И страда от същите недостатъци.

Аз предложих софтуерно решение. Ако е хардуерно, може да се направи да няма забележими недостатъци. Ще се използва външен генератор , възможно за идеята да се направи силно температурно зависим; възможно е и разрешението на генератора да се направи температурно зависимо. Така ще се намали вероятността, когато почне да го чете процесора, винаги това да става от едно и също место. Ако преместващия регистър се направи достатъчно голям, за повтаряемост (цикличност) може да забравите. Софтуерното решение също е възможно, стига да се осигури случайно инициализиране на регистрите. Не зная колко отговорно трябва да е тази случайна поредица. Ако е необходимо може да се направи и аналогов шумов генератор, който да се чете от ADC на професора. За целта може да се използва ценеров диод, кйто да работи в областта на чупката, но трябва да се прецени неговата температурна зависимост. Друг, по-"чист" вариант е да се усилва шума от високоомен резистор. По-"идеален" шум няма. За целта е необходим само достатъчен коефициент усилване на усилвателя. Можете да си играете и с честотната лента.
Проблемът е решим, въпросът е колко е отговорна задачката и дали си струва да се прави хардуерно.

Мисля, че началното установяване на преместващите регистри може да се направи и без външен бутон . Необходима е голяма RC верига (времеконстанта няколко секунди) и компаратор, който да сработва към напрежението на насищане на кондензатора (електролитен естествено). Калпавите качества на кондензатора и шумовете на компаратора би трябвало да дадат достатъчно голяма неопределеност. Трябва да се пробва.


Сря Юни 28, 2006 8:49 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Дек 14, 2004 1:31 pm
Мнения: 3849
Мнение 
На който му е интересна темата да хвьрли едно око тук. Хората са се постарали да разяснят доста неща. Има го и CRCетода на Пирев и сорс кода на Cза "аудио метода" на sthx, че и добра сбирка от линкове. Приятно четене :)

http://en.wikipedia.org/wiki/TRNG


Сря Юни 28, 2006 10:09 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение 
Връщам се пак на CRC16. Праткически няма разлика от хардуерното решение с регистри и обратна връзка с XOR елементи и самото CRC16. При CRC16 също имаш преместване, XOR операция с полином и т.н.

Предложението ми обаче за 20-тина клетки RAM ми се вижда прекалено много за изчислителните ресурси на PIC, по-скоро да се използват 4-5-6 клетки, тъй като за 20-тина клетки и PIC на 10-тина MHz, ще отидат няколко ms за изчисления, а може и да не се разполага с това време.

Първоначалното установяване на масива от клетки може евнтуално да става с TMR0, само че, се иска да се прочете какво точно прави с TMR0 един PIC след RESET, за да се види дали ще мине номера.

Може и изчисленото CRC16 да го вмъкваш наново в масива от клетки, така със сигурност ще стане голямо мазало и няма да имаш повторения на генерираните числа.

_________________
Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....


Сря Юни 28, 2006 11:17 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Юни 05, 2006 1:48 pm
Мнения: 4906
Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
Мнение Значи люде във мойте води цопнахте
Значи люде във мойте води цопнахте. По спецификата на мойта работа ми требе доста често обръщения към RNG(RNG - real number generator). Някои хора в БГ-то му викат генератор на случайни числа.Проблема е да си обясниш за себе си колко трябва да е "случаен" този генератор. Защото ако не е за нещо важно може да се ползва псевдослучаен генератор например да вземе достатъчно дълъг регистър с обратни връзки( периода на повторение може да е до 10^77). Иначе трябва да се изполва аналогов източник на шум(специализирани диоди - има руски има и на моторола) който после да се дискретизира и т.н.
и НАЙ-ВАЖНОТО:
изследванията доколко е случаен даден генератор траят до една две седмици!!!
защото се пуска да бълва данни и се изследва , и се изследва..... до скъсване

но това е например ако се занимавате с криптография иначе ползвайте си таймера на ПЦ-то с функцията rand(seed) на Borland.... и си пейте

_________________
... ако трети ден не ти се работи... това означава, че е сряда !


Чет Юни 29, 2006 12:55 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Сря Окт 26, 2005 7:17 pm
Мнения: 106
Местоположение: Sofia
Мнение Re: Значи люде във мойте води цопнахте
MYXATA написа:
Значи люде във мойте води цопнахте. По спецификата на мойта работа ми требе доста често обръщения към RNG(RNG - real number generator). ...


не че нещо ама RNG не е ли Random Number Generation, или се бъркам :oops:
:D


Чет Юни 29, 2006 1:05 pm
Профил ICQ
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Чет Ное 25, 2004 3:42 pm
Мнения: 913
Мнение 
Със псевдо случайна последователност.
Преди мнооого мнооого години в ТНТМ се заиграх по-следния начин.
Рисувам си точка с кординати Х,У
Кадето Х и У са случайни числа.
След някакво време се вижда че числата все пак са групирани има области по светли и по тъмни.
И тези области са си винаги на едни и същи места при всяко пускане.


Чет Юни 29, 2006 1:22 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Дек 14, 2004 1:31 pm
Мнения: 3849
Мнение Re: Значи люде във мойте води цопнахте
denis_hasan написа:
MYXATA написа:
Значи люде във мойте води цопнахте. По спецификата на мойта работа ми требе доста често обръщения към RNG(RNG - real number generator). ...


не че нещо ама RNG не е ли Random Number Generation, или се бъркам :oops:
:D


е то това е [Random Number Generator] на [Real] числа :D, т.е. 0 няма как да ти генерира :lol:


Чет Юни 29, 2006 2:40 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Юни 05, 2006 1:48 pm
Мнения: 4906
Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
Мнение право думаш
HCL - прав си!!

_________________
... ако трети ден не ти се работи... това означава, че е сряда !


Чет Юни 29, 2006 4:49 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Юни 05, 2006 1:48 pm
Мнения: 4906
Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
Мнение ...бе прави сте
Real Noise Generator, True Random Generator названия всякакви

_________________
... ако трети ден не ти се работи... това означава, че е сряда !


Чет Юни 29, 2006 4:54 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 31 мнения ]  Отиди на страница Предишна  1, 2, 3  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 2 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни