Автор: Пользователь скрыл имя, 24 Октября 2011 в 17:52, дипломная работа
Осыған орай дипломдық жұмыстың мақсаты – RSA алгоритмін қазіргі таңдағы технологияларды пайдалана отырып, ақпаратты қорғау саласында кеңінен қолдана алатын автоматтандыру жүйесін құру.
Жұмыстың мақсаты дипломдық жұмыс барысында шешілген келесі міндеттерді анықтады:
Сандар теориясын, оның бөлімдерінің бірі жан сандарды зерттеу. Өте үлкен жай сандарды іздеу
Екілік жүйедегі сандармен жұмыс жасау
Ашық және жабық кілттердің құрылымын зерттеу
Бір компьютерден екінші бір компьютерге ақпаратты шифрлеп жібергенде, барлық қауіпсіздік ережелерін сақтау және зерттеу
КІРІСПЕ 3
КРИПТОГРАФИЯ НЕГІЗДЕМЕСІ 5
1 Криптографияның негізгі түсініктемелері мен тарихы 5
2 Математикалық негіздемелер 9
2.1 Күрделілік теориясы 9
2.2 Сандар теориясы 13
2.3 Жай сандар генерациясы 18
3 Криптожүйелердің жұмыс істеу принциптері 20
3.1 Криптографиялық кілттерді басқару 21
3.2 Симметриялық (құпиялы) әдістемелер мен алгоритмдер 22
3.3 Асимметриялық (ашық) әдістемелер мен алгоритмдер 25
4 АШЫҚ КІЛТТІ ҚОЛДАНАТЫН АЛГОРИТМДЕР 29
4.1 Ашық кілтті қолданатын алгоритмдердің қауіпсіздігі 29
4.2 Қол қапшық алгоритмы 30
4.3 RSA алгоритмі 33
4.4. RSA шифрлеу жүйесі 35
4.5 RSA алгоритмінің жұмыс істеу жылдамдығы 39
4.6 RSA қауіпсіздігі 40
4.7 RSA бағдарламалық жабдықтаманың сипаттамасы 48
5 .Эллиптикалық криптография ??
5.1 ??
5.2 . ??
5.3 . ??
5.4 ??
5.5 . ??
6 .Программалық коды ??
6.1 Эллиптикалық қисықтың программалық коды ??
6.2 RSA жүйесінің программалық коды . ??
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР ТІЗІМІ
3-сценарий: Ева Алиса оған m3 –ке қол қойғанын қалайды. Ол m1 және m2 екі хабарлама жасайды. Мұнда m3 =m1m2 (mod n) болады. Егер Ева Алисаға m1 мен m2 –ге қол қойдыра алса, ол m3-ті былай есептей алады: m 3d=(m1dmod n)(m2 dmod n)
Демек,
RSA алгоритмін ешқашан кездейсоқ
құжаттарға қол қою үшін қолданбаңыз.
Әрқашан ең алдымен бірбағытты хэш-функцияны
қолданыңыз. ISO 9796 блок форматтары бұл
анықтаудың алдын алады.
RSA криптожүйесін бұзу тәсілдері
RSA-ны
бұзудың бірнеше тәсілдері бар.
RSA-ны бұзудың басқа амалы mod n-нен е дәрежесінің түбірлерін анықтау әдістерін іздеуде. С=M (mod n) болса, онда mod n-нен е дәрежесінің түбірі болып М хабарламасы табылады.түбірді анықтағаннан соң шифрленген хабарламаларды ашып, қолтаңбаны жалған қоюды жабық кілтті анықтамай-ақ орындауға болады. Мұндай шабуыл факторингке эквивалентті емес, алайда қазіргі уақытта RSA-ны бұл тәсілмен бұзуға болатын әдістер белгілі. Алайда, ерекше жағдайда осы хабарламаларды бұзуға болатын әдістер белгілі. Хабарламаға жалғыз шабуыл - ұсынылған ашық мәтінге шабуыл. Шабуылдаушы шифрленген мәтін арқылы бұл хабарламада белгілі бір мәтін бар екендігін жормалдап, содан кейін оны алынған шифрленген мәтінмен салыстырады. Мұндай шабуылды мәтін соңына кездейсоқ биттер қосу арқылы болдырмауға болады. Жалғыз хабарламаның басқа шабуылы егер бірдей М хабарламасы 3 тілшіге берілсе, оның әрқайсысы ортақ e = 3 көрсеткішін пайдаланады. Мұны біле отырып шабуылдаушы ақпаратты қағып алып, М хабарламасын оқи алады. Мұндай шабуылды әр шифрлеуде кездейсоқ биттер қосу арқылы болдырмауға болады. Шифрленген мәтінге шабуылдаушы мәтін жасап, соған сәйкес ашық мәтін алып, жалған жолмен хабарлама шифрын анықтауға тырысатын тағы да бір әдіс белгілі.
Криптожүйеге
бағытталған шабуылдар да болады. Мұндай
шабуылдар RSA-ны бұзатын шабуылдар ретінде
қарастырылмайды, себебі, ол RSA-ның әлсіздігін
емес, оның алгоритмінің әлсіздігін білдірмейді,
мұнда оның таратылымының әлсіздігі қарастырылынады.Мысалы,
шабуылдаушы жабық кілтке иелік ете алады,
егер мәліметтер базасында қауіпсіздік
ережелері дұрыс сақталмаса.
Тұрақты сандар және олардың RSA криптожүйесінде қолданылуы
RSA
алгоритмін сипаттайтын
Кілттің ұсынылатын ұзындығы
RSA
алгоритміндегі кілт өлшемі n модулінің
өлшемімен байланысты. p және q екі
саны туындысы модуль болып
табылатын, шамамен
M = (p+q)/2 деп алайық. p < q болса, онда 0 м – sqrt (n) (q - p) .
p = M*( ) болғандықтан, p мен q мәндерін p - q айырмасы өте аз болса, оңай табуға болады.
Модульдің оптимальды өлшемі қауіпсіздік талаптарымен анықталады: жоғары өлшемді модуль жоғары қауіпсіздікпен қамтамасыз етеді, бірақ RSA алгоритмінің жұмысын баяулатады. Модуль ұзындығы ең алдымен таңдалынады, мұнда қорғалынатын ақпарат мәні ескеріледі.Қорғаудың жақсы сараптамасы модуль ұзындығымен анықталады, Rivest [Riv92a] дискреттік логарифм модулі қолданады. RSA – мен кейін ұсынылатын қорғау факторинг арқылы талданады. 1997-жылы жүргізілген бағалау RSA 512-битті кілті факторингпен 1,000,000$ және 8 айда бұзылына алатындығын көрсетті. Бұл дегеніміз 512-битті кілттердің қауіпсіздікті қамтамасыз ете алмайды деген сөз.
Қазіргі таңда RSA лабораториясы қарапайым есептер үшін 1024 битті кілттерді ұсынады, ал маңызды есептер үшін - 2048 битті. Жақында орнатылған стандарт бойынша кілт 1024 битті болу керек. Бағалығы аздау ақпарат 768-битті өлшемді бола алады, себебі мұндай кілтті осы күнге дейін бұзбаған.Қауіпсіздік деңгейін бағалау үшін Lenstra мен Verheul модельдерін қолдануға болады.
Әдетте осы жеке кілттердің
жарамдылық мерзімі болады. Мерзімі
өткен соң тұтынушы жаңа кілт
жасау керек, криптожүйелер
RSA криптожүйесі үшін жай сандар жиыны
Эвклидпен
2 мың жыл бұрын дәлелденгендей
жай сандардың шексіз саны бар. RSA
алгоритмі белгілі бір өлшемді
кілттермен жұмыс жасағандықтан, жай
сандар саны өте жоғары. Жай сандар туралы
теорема бойынша кейбір n-нің жай сандар
мөлшері n = ln(n)-ге асимптоталық түрде жылжиды.
512 битті өлшемді кілттер ұзындығы шамамен
10150 болады. Бұл ғаламшарда белгілі
атомдар санынан да артық.
Баланстан шығарылған RSA
RSA
криптожүйеісінің модулі
Шамир (А. Shamir) RSA-модульды шешудің жаңа әдістерін ұсынды. Шамир әдісімен құрылған модулі бар криптожүйе «Баланстан шығарылған RSA» атына ие болды. Мұндай криптожүйеде n = pq разрядтылығы он есе үлкейтілген,ал р бөліндісінің разрядтылығы 2 есе арттырылған. Сәйкесінше q бөліндісіне 4500 биттен келеді. Бөлінділердің осындау таңдауы Шамир бойынша он жылдап сақталынатын криптотұрақтылықты әкеледі.
Негізгі мәселе оның қолданылуы 1000 есе төмен болуында:енді бір операцияны бір минутқа кешіктіру секунд пенасымен өлшегенде 16 минутты құрайды. Ал. Ол дегеніміз тиімсіз.
RSA қолдануында кілттік синхронизм орнату кезінде в процедуре шифрленетін хабарламалар р модулінен аспау керек: тіпті үшөлшемді DES шифрлеуін үш әртүрлі кілтке қолданатын болсақ та хабарлама 168 биттен аспау керек. Осылайша, шифрленетін блок [0,р-1] сандық интервалында орналасытындығын жорамалдауға болады.
RSA
тиімділігін шифрлеу кезінде
тиімділігн арттыру үшін
Шамир барлық амалдарды қолдану міндетті емес деген қарапайым ой тастады. Расында да, анықтама бойынша m1(mod р)болады. m ашық мәтіні р-дан кіші, олай болса m (mod p)= т. Бұл дегеніміз т1= т және т2 –ні q модулі бойынша келтіру дәл сол нәтижеге алып келеді.
Баланстан шығарылған RSA және стандартты криптожүйелер көп жадты қажет етуі 10 есе артады.Осы кемшілікті жою үшін бірнеше әдістер ұсынылды.Әртүрлі қосымшалар үшін еркін жадтық өлшемді қарастырайық.
Дербес компьютер үшін жадтың артуы елеулі салдарға әкеледі. Алайда, интеллектуалды карталар үшін (Smart Card) олардың құны жадына тура пропорционал болады.Оған қоса, көптеген интеллектуалды карталарды 512-битті модуль базасына маманданған RSA-процессорде қолданды. Сол себепті олардың модулінің артуы негативті реакцияға әкеліп соғады. Практикалық қосымшаларда интеллектуалды карталар қуатты дербес компьютерлермен бірге қолданылады. Осылайша, шифрлеу мен дешифрлеу амалдарын орындаудың технологиялық базасын таңдауға мүмкіндік береді. Мысалы, дербес компьютер алғашқы шифрленген кілтті генерациялай алады және шифрлік мәтін тізбекті интерфейс картаның кіруіне р модулі бойынша беріледі. Есептеулер барысында интеллектуалды карталардың RSA-процессорының 512-битті регистры қолданады. Бұның тиімділігі модульды өзгертпей қазіргі заманғы интеллектуалды карталардың есептеу ресурстарын пайдалана алуда.
Тағы
бір кемшілік ашық кілттер жадының
10 есе артуында. Алайда ашық кілттерді
баланстан шығарып, бұл мәселені
шешуге болады. G арқылы псевдокездейсоқ
тізбектер генераторын
Баланстан шығару RSA өнімділігін екі еселеу үшін қолданылады. Мұнда МА-қолтаңбасы үшін р бөліндісі белгісіз. Сонымен қатар белгіленген қысқа ашық кілт ұзын болып саналады.
Гилберт (Н.Gilbert), Гупта (D. Gupta), Одлыжко (А. Odlyzko) және Квискватер (J.J Quisquater) баланстан шығарылған RSA хабар алушы мен діберушінің арасындағы қатынастың балансы орнатылғанда сәтті шабуылданады.
и мен е — Бобтың ашық кілті. Алисаның мақсаты — р мен q ашу. т > р хабарламасын шифрлейді және Бобқа шифрлік мәтін me mod п жібереді. Боб шифрлік мәтінді дешифрлеп, m-ді алады. m > р болса, онда m # m. Ал, енді что Алиса қандай да бір жолмен т хабарламасын алды деп жорамалдайық, сонда ол p½(m-m) тексере алады. 0 < т, m < n және т # т шектеулерін сақтағанда Қытайлық теоремадан q † (т — т шығады). Яғни, Алиса р-ні қайта қалпына келтіре алады, егер (m-m,n) ЕҮОЕ-н анықтаса. Кейбір жағдайларда Боб Алисаға m бере алады. Қосымша мүмкіндіктер интеллектуалды карталарда пайда болуда (Smart Card), олар автоматты түрде m –ді криптографиялық кілт есебінде бере алады. Қарсы әсер ету хабарламада кейбір арнайы идентификациялық тізбектің пайда болуына байланысты.
Ал,
енді мынадай түрдегі хабарламадан тұратын
мысалды қарастырайық «Боб есебіне
101,74 долл. Мөлшеріндегі қаржыны менің
123 шотымнан Замухрышина қ. Аударуыңыз
ды сұраймын.». Егер m > р, т
хабарламасы жүзеге
аспайды. Егер m < р және m = m,онда
хабарлама қабылданып, ақша аударылады.Ақша
аударымы туралы факт Алисаға m < р екендігін
білдіреді. Мұндай стратегия р битін
ашуға көмектеседі. Бір битті р анықтауды
азайтуға болады, егер 100 дол.сомадан аз
болмаса. Алиса р шекарасын
анықтай алда деп есептейік, мысалы, 6´2k
< р < 7´2k.
Сонда бинарлық іздеу арқылы Алиса
шамамен m –ді 13 ´2k-1
есебінде анықтай алады. Алайда Алиса
р битін тізбекті жылжу әдісі арқылы орындай
алады. Әдіс 4 битті біреуінің құнымен
анықтауға мүмкіндік береді. Әдіс көп
амалдарды талап ететіндігін атап өтейік.
Жоғарыда көрсетілген шабуыл ойластырылған
болып көрінуі мүмкін, алайда ол әртүрлі
жағдайларда шынайы болып табылады.Бұл
шабуыл толық баланстанған RSA-ның компрометациясына
алып келмейді, бірақ хабар алушы ешқашан
дешифрленген хабарламаны алмайтындығына
кепілдік берілу керек.