Кездейсоқ сандар генераторымен бағдарламалау ерекшеліктері

КЕЗДЕЙСОҚ САНДАР ГЕНЕРАТОРЫМЕН БАҒДАРЛАМАЛАУ ЕРЕКШЕЛІКТЕРІ
Студент: 1304000 "Электронды есептеу техникасы және бағдарламалық қамсыздандыру" мамандығы 2-курс, 1221 топ
Серікбаев Нұрдәулет Талғатұлы
"Ақтөбе ауылшаруашылық колледжі" МКҚК
Қазақстан Республикасы
АННОТАЦИЯ
Бұл ғылыми жобада кездейсоқ сандар генераторы, оның мүмкіндіктері мен түрлері туралы ой қамтылған және тұрмыста, ғылым мен техникада кездейсоқ сандар генераторын қолдану ерекшеліктері қарастырылған. Сонымен қатар, Turbo Pascal, С#, С++ бағдарламалау тілдерінде кездейсоқ сандар генераторымен бағдарламалау мүмкіндіктері талданып, Delphi интегралды ортасында кездейсоқ сандармен жұмыс жасайтын қосымша құру үлгісі көрсетілген.
В этом научном проекте указаны генераторы случайных чисел, его возможности, виды и их разнообразие использования в быту, в науках и в технике. А так же указаны возможности программирования генераторов случайных чисел на языке Turbo Pascal, C#, C++ и примеры приложения с случайными числами в интегрированный среде Delphi.
This science project is about random number of generator, their abilities and types. The random number of generator is peculiarities of consided and uses in common life, science and technic. Also the Turbo Pascal, C#, C++ language programme was consideced by random number of generator and additional model random number of generator showed in the middle of Delphi integral
Әлемдегі барлық процесс кездейсоқтықтан немесе алдын ала қарастырылған жоспар не болмаса заңдылық негізінде өтіп жатады. Кездейсоқ оқиғалар - әркез өмірімізде кездесетін жайттардын бірі болып саналады. Ғылымдардың көбісі бұрыннан кездейсоқ оқиғалардың заңдылықтарын зерттеумен айналысып келген болатын. Иә, онысы рас, кездейсоқ оқиғалардың өз заңдылықтары да бар және оларды біліп-тану біз үшін маңызды. Себебі, кездейсоқ оқиғанын заңдылығын біле отырып, лотерея ұтысынан бастап ғылыми тәжірибенің статистикалық өңдеуіне дейін жетуге болады. Нақты алғанда өміріміздің кез - келген саласында кездейсоқ сан қолданамыз.
Кездейсоқ сандар генераторы - кездейсоқ сандар беретін құрылым немесе бағдарлама. Әдетте, кездейсоқ сандар генераторы - бағдарламалау тілдерінде стандартты функциялар мен процедуралар құрамына кіретін бағдарлама.
Кездейсоқ сандардың аппараттық генераторы - өтіп жатқан физикалық процесс параметрлері негзінде кездейсоқ сандар тізбегін генерациялайтын құрылғы. Кездейсоқ сандардың аппараттық генераторы - жай жұмыс жасайды немесе аралас тізбек өндіреді. Мұндай генераторларды қолдану пәндік обылыстың және генератордың өзінің құралдарынан тәуелді. Кездейсоқ сандар генераторын қолдану деңгейі әртүрлі, яғни қарапайым ойыншықтан күрделі шифрлауға дейін. Сәйкесінше генераторға қойылатын талап та күшейеді.
Кілтті генерациялау үшін бізге кездейсоқ сандарды генерациялауыш (random number generator - RNG) керек. Жақсы кездейсоқтықтың генерациясы - расында да көптеген криптографиялық операциялардың ең қажетті және сонымен қатар аса ауыр бөліктерінің бірі.
Біз кездейсоқтықтың өзімен расында нені білдіретінін онша толық қарастырмаймыз. Осы терминнің көптеген әдемі математикалық анықтамалары бар, бірақ олардың бәрі бұл жобада қарастыру үшін өте ауыр. Ал формальсыз емес жағынан егер де қолданушы кездейсоқтықпен күресу үшін белсенді әрекеттер қолданатын болса да, кездейсоқтықты қаскүнем үшін болжамсыз мәліметтер мәндері ретінде анықтауға болады.
Көптеген криптографиялық функцияларға жақсы кездейсоқ сандардың генераторлары керек. Біз А және Б қолданушыларға белгілі кілт бар деп жорамалдадық. Бұл кілт бір жерде шығарылу керек. Кілттерді таңдау үшін кілттерді басқару жүйесі кездейсоқ сандардың генераторын қолданады. Егер генератор онша мықты болмаса, нашар кілт алынады. Тап осы жағдай Netscape шолушысының ерте нұсқаларының бірінде болды.
Кездейсоқтықтың өлшемі энтропия (entropy) деп аталады. Мен бұл жерде осы сұрақтың математикалық бөліктерін келтіріп жатпаймын, жай ғана энтропияның не екенін түсіндіру үшін барлығын жасауға тырысамын. Егер бізде мүлде кездейсоқ түрмен таңдалатын 32-биттік сөз болса, онда оның 32 бит энтропиясы болады. Егер де 32-биттік сөз әрқайсысының шығу ықтималдығы 25%-ға тең тек 4 мән қабылдай алатын болса, онда бұл сөз тек 2 бит энтропияға ие болады. Энтропия мәндегі биттің санын емес, осы мәнде сіздің қаншаға сенімсіз екендігіңізді көрсетеді. Көбірек суреттеу үшін энтропияны қысудың тамаша алгоритімін қолдану кезінде мәнді беру үшін керек биттің орташа саны ретінде қарастыруға болады. Назар аударыңыздар, мәннің энтропиясы осы мән туралы қанша білетініңізге байланысты. 32-биттік кездейсоқ сөздің 32 бит энтропиясы бар. Енді осы сөздің мәні туралы келесілер нақты белгілі деп қарастырайық: сөздің 18 биті 0-ге тең, ал 16 бит - 1-ге тең. Бұндай талаптарға жуықтап 2 28, 8 мән қанағаттандырады, осыдан шығатыны, сөздің энтропиясы тек 28, 8 битті құрайды. Басқа сөзбен айтқанда, неғұрлым мән туралы көбірек білсек, соғұрлым оның энтропиясы аз болады.
Кездейсоқ үлестірілуі бір қалыпты болмайтын мәндер үшін энтропияны есептеп шығару біраз қиындау.
Тамаша әлемде «ақиқат кездейсоқ» сандарды қолданған дұрыс болар еді. Өкінішке орай, біздің әлем тамаша емес және онда шындығында кездейсоқ мәліметтер табу өте қиын.
Кәдімгі компьютерлерде энтропияның бірнеше көздері бар. Осындай көздердің мысалы ретінде көбінесе перненің дәл басылу уақыты мен тышқанның орын ауыстыруының дәл уақыты келтіріледі. Кезінде кейбір ғалымдар қатты дискіге жету уақытының оның корпусының ішіндегі турбуленттікпен шақырылған тербелістерінің кездейсоқтығына зертеулер жүргізген. Осы барлық энтропиялардың көздері күмән туғызады, өйткені кейбір нақты жағдайларда қаскүнем кездейсоқтықтың көзінің үстінен есептеулер жүргізуі немесе осы көзге әсер етуі мүмкін.
Кездейсоқ сандардың аппараттық генераторы - өтіп жатқан физикалық процесс параметрлері негзінде кездейсоқ сандар тізбегін генерациялайтын құрылғы. Мұндай құрылғылар жұмысы фотоэлекрлік эффектілер, жылылық шулар секілді кванттық құбылыстардағы энтропияның сенімді көзі ретінде қолдануға негізделген. Кванттық процеске негізделген кездейсоқ сандар генераторы көбіне арнайы күшейткіштен және түрлендіргіштен тұрады. Күшейткіш өтіп жатқан физикалық құбылыс нәтижесінде алынған өте әлсіз сигналдарды күшейтеді. Түрлендіргіш сигналдарды цифрлық түрге түрлендіреді.
Ақиқат кездейсоқ сандарды біз тек жалғанкездейсоқ сандардың генераторларына кіріс беретін бастапқы сандарды табу үшін ғана қолданамыз. Бізде бастапқы сан табылғаннан кейін генератор өмірге кездейсоқ (толығырақ жалғанкездейсоқ) сандардың кез-келген санын шығара алады. Керек болған жағдайда біз ақиқат кездейсоқ сандарды кездейсоқ сандардың генераторының бастапқы санына қоса аламыз. Бұл, егер қаскүнем қандай да бір түрмен бастапқы санды біліп алған болса да, ақырғының шығыс мәліметтері ешқашан толық болжамды болмайтындығына кепілдік бере алады.
Ақиқат кездейсоқ сандар жалғанкездейсоқ сандардан гөрі жақсырақ деген теориялық ой бар. Кейбір криптографиялық хаттамалар үшін ақиқат кездейсоқ сандарды қолдану кезінде шабуылдың белгілі кейбір түрлері мүмкін болмайтындығын дәлелдеуге болады. Мұндай хаттама сөзсіз қорғалған (unconditionally secure) деп аталады. Егер де жалғанкездейсоқ сандардың генераторларын қолданатын болсақ, хаттама қаскүнем бұл генераторды бұза алмайды деген шарт болған жағдайда ғана қауіпсіз болады. Мұндай хаттама есептеулер бойынша қорғалған (computationally secure) деп аталады. Бұл айырмашылықтың толық білетін теоретиктер үшін ғана мағынасы болады. Барлық криптографиялық хаттамалар көбіне арқашан есептеуіш жақындалуға негізделген. Бұндай жақындалудың нақты бір шабуыл түріне байланысты шығарылуы жақсы жақсаруға әкелмейді. Сонымен қатар, сөзсіз сақталуды қамтамасыз етуге қажетті ақиқат кездейсоқ сандардың шығаруы соншалықты қиын, мұндай сандарды қолдану әрекеті жүйенің қауіпсіздігін тек бұзуы мүмкін. Ақиқат кездейсоқ сандардың генераторының кез-келген нашар орны қауіпсіздіктің жоғалуына әкеліп соғады. Басқа жағынан қарағанда, егер ақиқат кездейсоқ сандарды жалғанкездейсоқ сандардың генераторына бастапқы санды табу үшін ғана қолдансақ, онда өзімізге әр түрлі энтропиялардың көздерін қолдануды жасай алу, сөзсіз, біздің расында да қауіпсіз жүйені құруымыздың мүмкіндіктерін көтереді.
Генератор белгіленген ұзындықтың кейбір жағдайын кез келген ұзындықтың шығыс мәліметтеріне ауыстырады. Өзінің мәні бойынша генератор - бұл тек қана есептеуіш жағдайында жұмыс жасайтын блоктық шифр. Еске салайық, есептеуіш жағдайы немесе CTR мәліметтердің біз шығыстар ретінде қолданатын кездейсоқ ағынын генерациялайды. Егер қолданушы немесе қосымша кездейсоқ мәліметтер сұрайтын болса, генератор өзінің алгоритмін қосып жалғанкездейсоқ мәліметтер шығарады. Енді қаскүнем генератордың күйін кезекті сұраныстан кейін алуға мүмкіндігі болсын деп есептейік. Егер генератормен берілген алдыңғы нәтижелер дескридитацияланбаса жақсы болар еді. Ол үшін әрбір сұраныстан кейін тағы 256 бит жалғанкездейсоқ мәліметтерді генерациялаймыз және оларды шифрлаудың жаңа кілті ретінде қолданамыз. Ескі кілт осы кезде алдыңғы сұраныстар туралы ақпараттың шығуын болдыртпау үшін жойылады.
Генерацияланған мәліметтер статистикалық кездейсоқтыққа ие болуы үшін бір мезгілде аса көп мәліметтерді генерациялап керегі жоқ. Расында да, ақиқат кездейсоқ мәліметтерде блоктың мәндері қайталануы мүмкін, ал есептеуіш режиміндегі шығыс мәліметтері ешқашан қайталанатын блоктарды шығармайды. Бұл мәселені шешудің бірнеше жолдары бар. Мысалы, практика жағынан блогтың ақиқат кездейсоқ кезегінен статистикалық ауытқуын болдырмайтын тексті шифрлаудың блогының тек бір жартысын қолдануға болады. Блогтық шифрлаудың орнына екінің бірі ретінде жалғанкездейсоқ функцияны (pseudorandom function) қолдануға болады, бірақ бізге әлі жақсы зерттелген және тиімді ұсыныстар кездескен жоқ. Осы жағдайда жасауға болатындардың ең оңайы - ол бір сұранысқа берілетін кездейсоқ мәліметтердің байт санын шектеу. Бұл ақиқат кездейсоқ кезектіктен статистикалық ауытқуын қиындатады.
Генератор өзі өте пайдалы модуль болып табылады. Ол көптеген орындауларда тек Fortuna ЖКСГ (жалған кездейсоқ сандар генераторы) компоненті ретінде ғана емес, сонымен қатар оның интерфейсінің бөлігі ретінде қолданылуы мүмкін деп есептейміз. Мысалға Монте-Карло әдісімен модельдеуді орындайтын бағдарламаны алсақ. Біз бұл моделдеу кездейсоқ болуын қалаймыз делік. Онымен қоса, біз керек болған кезде керекті есептеулерді (мысалы, отладка немесе тексеру үшін) жасауға болатындай болуы керек. Ол үшін бағдарлама басында бір рет операциялық жүйенің орнатылған кездейсоқ сандар генераторын шақыруға болады. Оның көмегімен біз кездейсоқ бастапқы санды аламыз. Бұл сан бағдарламаның шығыс мәліметтерінің бөлігі ретінде алынуы мүмкін, одан кейін біздің генератормен моделдеуге керекті қалған кездейсоқ мәліметтерді есептеуге қолданылуы мүмкін. Генератордың шығыс бастапқы санын біле отырып барлық есептеулердің дұрыстығын бақылап отыруға болады. Ол үшін бағдарламаны тағы да сол кіріс мәліметтерімен және бастапқы сандарымен жіберу жеткілікті.
Кездейсоқ сандардың аппараттық генераторы - жай жұмыс жасайды немесе аралас тізбек өндіреді. Мұндай генераторларды қолдану пәндік обылыстың және генератордың өзінің құралдарынан тәуелді.
Кездейсоқ сандар генераторын қолдану деңгейі әртүрлі, яғни қарапайым ойыншықтан күрделі шифрлауға дейін. Сәйкесінше генераторға қойылатын талап та күшейеді. Генераторлар сапасын бағалауға арналған арнайы тесттер бар. Оның негізгілері:
- Жиілік тест - биттер тізбегі мен тізбегінен тұрады. және саны шамамен тең болуы керек.
- Бірдей биттер тізбегіне тест 000 . . . 0 немесе 111 . . . 1 түріндегі бірдей биттер қатары ізделінеді. Ұзындығынан тәуелді кездейсоқ қатарлар орналасу жиілігі ақиқат кездейсоқ сандар орналасуына сәйкес келуі керек.
- Спектрлік тест - шыққан тізбекке Фурье үзілісті түрлендіруі қолданылады. Алынған спектр тізбектің периодтық құрылымында айтылғандай маңызы бар бос орын болмауы керек.
- Автокорреляциялық тест- бір - біріне қатысты тізбек көшірмелерінің арасындағы корреляцияны есептейді.
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.

Ақпарат
Қосымша
Email: info@stud.kz