Дипломдық ЖҰмыс 5B100200 «Ақпараттық қауіпсіздік жүйелері»



бет4/14
Дата19.01.2022
өлшемі1,11 Mb.
#129475
түріДиплом
1   2   3   4   5   6   7   8   9   ...   14
Байланысты:
Дипломдық жұмыс Talgat

Сурет 6 Вернам жүйесінің патенті

Вернам шифрының жабық кілтін кездейсоқ сандармен генерациялайтын кодты Python тілінде жүзеге асыру [14] (7 - сурет):





Сурет 7 Вернам шифрының Python тілінде орындалуы

Жоғарыдағы программада Вернам шифрының жабық кілті 0 мен 32 сандарының арасында кездесетін сандармен кездейсоқ генерацияланып, ашық хабарламаны шифрлауы көрсетілген, шыққан нәтиже келесі (8 – сурет):





Сурет 8 Программа нәтижесі

Вернам шифрының кемшіліктернің бірі кездейсоқ сандарды дұрыс генерациялау болып табылады. Дұрыс генерациялау сөзінің мағынасы, генерацияланған сандар мен әрептердің ешқандай алгоритм реттіліктерін қолданбау. Егер, сандар мен әріптер белгілі бір ретті қолданатын алгоритммен генерацияланса, онда ол псевдокездейсоқ генерацияға жатады.



      1. Жай сандарды генерациялау алгоритмі және оларды қарапайымдылықты тексеру

Криптографияда кездейсоқ жай сан деп екілік жазбада белгілі бір шектеулер қойылатын k берілген биттер саны бар қарапайым сан түсініледі. Кездейсоқ қарапайым сандарды алу RSA және ElGamal қоса алғанда, көптеген криптографиялық алгоритмдерде кілттерді өңдеу рәсімдерінің ажырамас бөлігі болып табылады.

Үлкен сандардың қарапайымдылығын тестілеу айтарлықтай уақыт шығындарын талап ететіндіктен, алынған санның қарапайымдылық талабы бірнеше түрлі кездейсоқ негіздер бойынша күшті псевдопостыққа дейін жиі әлсірейді. Ең жақсы белгілі қарапайымдылықты тестілеу алгоритмдерін жылдамырақ ретпен күшті псевдопостотты тестілеу алгоритмдері. Сонымен қатар, бірнеше кездейсоқ негіздер бойынша күшті жалған жайтты тестілеуден сәтті өткен сандар өте қарапайым болып табылады, және де бұл ықтималдылық тестілеу өткізілетін негіздер санының өсуімен өсуде.

Кездейсоқ қарапайым сандарды генерациялау алгоритмдеріне қойылатын талаптар:


  • Алынған қарапайым сандарды бөлу барлық k-биттік қарапайымсандардың жиынында біркелкі болуы керек. Бұл талаптың орындалуын қамтамасыз етудің бірнеше жолы бар.

  • Нақты кездейсоқ жай санның генерациялау процесін алгоритмнің егжей-тегжейін және оны іске асыруды біле де, жаңғыртуға болмайды. Әдетте бұл талаптарды орындау криптотөзімді ГПССЧ пайдалануымен қамтамасыз етіледі, ол сырттан алынатын кейбір кілтпен (яғни алгоритмнің бір бөлігі немесе оны жүзеге асыру болып табылмайды). Кілт ретінде, мысалы, пайдаланушыда сұралатын құпия фразадан криптографиялық хэш функциясының мәні болуы мүмкін.



    1. Үлкен сандармен жұмыс жасауға арналған арнайы кітапханаларалар

Дипломдық жұмысымның практикалық бөлімінде криптографияда үлкен сандармен жұмыс жасағанда қолданылатын кітапханаларды қарастыратын боламын. Ол үшін мен Java, Python, C++ тілдерін таңдалып алынды. Ондағы негізгі мақсат, осы программалау тілдеріндегі қазіргі заманғы криптографияда үлкен сандармен жұмыс жасауға арналған кітапханаларды анықтап, олардың криптоберіктігін зерттеу болып табылады.

Криптографиямен жұмыс істеу кезінде жиі үлкен сандармен арифметика қажеттілігі туындайды. Бұл бөлімде C/C++ әр түрлі кітапханаларының екі үлкен сандарды көбейту мысалында қалай жұмыс жасайтынын қарастырылады.

Кейде есептер пайда болады, онда бүтін сандармен операциялар үшін Int және int64 стандартты типтерінің разрядтылығы жетіспейді. Мысалы, 100!=1*2*...*99*100 есептеу керек. Үлкен сандармен жұмыс істеу үшін кітапхана үлкен разрядтық бүтін сандармен нақты операцияларды орындауға мүмкіндік береді. Онда bigunsigned және BigInteger белгісі бар сандарға арналған класс бар. Сынып сандардың ішкі көрінісі он алтылық. Сондай-ақ, ерекшеліктер үшін BigNumber Exception класы қолданылады (1 - кесте).

Кесте 1


C/C++, Java, Python тілдерінде үлкен сандармен жұмыс жасауға арналған кітапханалар мен пакеттер



Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   ...   14




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет