Автор: Пользователь скрыл имя, 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 жүйесінің программалық коды . ??
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР ТІЗІМІ
1-кестенің жалғасы.
Типі | Сипаттамасы |
RC4 | Ағынды шифр,
байт-ориентирлік, айнымалы өлшемді
кілті болады.DES-ке қарағанда екі
есе жылдам жүреді.
RSA Data Security иелік ететін конфиденциалды алгоритм |
RC5 | 32, 64 или 128 битті блок өлшемді, 0-ден 2048 битке дейінгі кілті болады, 0-ден 255-ке дейін өтілім болады. RSA Data Security иелік ететін алгоритм |
CAST | 64-битті блоктық
шифратор, 40 - 64 битті кілттері, 8 өтілімі
болады.
Тікелей таңдаудан басқа бұзу әдістері белгісіз. |
Blowfish | 64-битті блоктық шифратор, 448 битті кілттері, 16 өтілімі болады, әр өтілімде ауыстырулар болады, ол кілтке және ауыстыруға байланысты. DES –тен жылдам.32-битті машиналар үшін жасалған. |
Бір қолданысқа жарайтын кілттері бар құрылғылар | Бұзуға болмайтын
шифратор.Кілті болып
келесі
осы құрылғыда сақталынатын массивтен
таңдалынған 'n' битті болады. Хабар
жіберушіде және алушыда бірдей кілт
болады.Қолданыстан кейін |
Ағынды шифрлар | Симметриялық шифрлеудің жылдам алгоритмдері, әдетте оперирленетін битті болады, блоктық болмайды. Бірқолданысқа жарайтын кілттердің көшірмесі ретінде жасалды, алайда қауіпсіздікті қамтамасыз ете алмайды. |
Бұл әдістемеде кілттер бір уақытта жасалынғанмен, олардың шифрлары мен оларды бұзатын кілттер әртүрлі болады. Бір кілт бәріне белгілі болып жасалынады, екіншісі құпияда болады.Бір кілттегі мәлімет тек екінші кілттің шифрын бұзу арқылы белгілі болады.
Барлық асимметриялық криптожүйелер кілттердің тікелей таңдаудың обьектісінің шабуылының нәтижесі болып табылады, сондықтан бұларда әлдеқайда ұзақ кілттер қолданылу керек. Бұл бірден шифрлеу үшін қолданылатын есептеу ресурстарында білінеді, эллипстік қисық алгоритмдерінде шифрлеу бұл мәселені жеңілдете алады.
Асимметриялық шифрлеу алгоритмінде төмен жылдамдықтан құтылу үшін әр хабарлама үшін уақытша симметриялық кілт генерацияланады және тек қана ол асимметриялық алгоритммен шифрленеді. Хабарламаның өзі уақытша кілтпен шифрленеді. Содан кейін бұл кілт хабар алушының асимметриялық кілтінің көмегімен шифрленеді. Осыдан кейін шифрленген сеанстық кілт шифрленген хабарламамен хабар алушыға жіберіледі. Хабар алушы асимметриялық шифрлеудің дәл сол алгоритмін және сеанстық кілт шифрын бұзу үшін өзінің құпия кілтін пайдаланады, алынған сеанстық кілт хабарламаның шифрын бұзу үшін қолданылады.
Асимметриялық
криптожүйелерде сеанстық кілт пен
асимметриялық кілттер
Асимметриялық кілттерді пайдалану реті:
Асимметриялық
алгоритмдер асимметриялық
Екі әртүрлі кілт қолданылады – біріншісі барлығына белгілі, екіншісі құпияда болады. Бірақ бір кілтпен шифрленген мәліметті тек екінші кілттің шифрын анықтаған соң ашуға болады.
2-кесте. Асимметриялық алгоритмдер сипаттамасы
Тип | Сипаттамасы |
RSA | Асимметриялық шифрлеудің кең қолданылатын алгоритмі, тұрақтылығы үлкен сандар факторизациясының күрделілігіне байланысты. |
ECC(эллипстік қисықтарға негізделген криптограмма) | Алгебралық жүйені қолданады, эллипстік қисықтар нүктесінде сипатталады, қызметке келтіру үшін асимметриялық шифрлеу алгоритмін қолданады.Басқа асимметриялық шифрлеу алгоритмдерінің қарсыласы болып саналады, себебі қысқа кілтті шифрлар үлкен ақпаратты сақтауда зор рөл атқарады. Оның қазіргі қолданысы ашық кілтті алгоритмдермен салыстырғанда әлдеқайда тиімді екендігін көрсетіп. Оның өнімділігі RSA, Диффи-Хеллман және DSA-ға қарағанда бір деңгейге жоғары. |
Эль-Гамаль. | Диффи-Хеллман нұсқасы, электрондық қолтаңбаны шифрлеу үшін де қолданылады. |
Ашық кілтті қолданатын криптография тұжырымын Уитфилд Диффи және Мартин Хеллман, сондай-ақ Ральф Меркл ұсынған болатын. Олардың криптографияға енгізген салымы – кілтті жұбымен қолану – шифрлеу кілті және дешифрлеу кілті – және біреуінен екіншісін алу мүмкін еместік сенімі. Ең алғаш рет 1976-жылы Диффи және Хеллман өз ойын Ұлттық компьютерлік конференциясында (National Computer Confrens) көрсетіп, бірнеше айдан кейін олардың жұмысының негізі болатын “New Directions in Cryptography” («Криптографияның жаңа бағыты») басылып шықты.
1976-жылдан
кейін көптеген ашық кілтті
қолданатын криптографиялық
Әрі өнімді, әрі қауіпсіз болып келетін алгоритмдер көп емес. Әдетте бұндай алгоритмдер негізгі қиын мәселеге негізделген. Осы әрі қауіпсіз, әрі өнімді алгоритмдердің кейбіреуі кілттерді бөлуге ғана жарамды. Басқалары шифрлеуге және кілттерді бөлуге де жарамды. Үшіншілері тек цифрлі жазуға ғана жарамды болып келеді. Тек қана үш алгоритм кілтті бөлуге де, шифрлеуге де, цифрлі жазуға да жарамды: RSA, ELGamal және Rabin. Бұл алгоритмдердің барлығы баяу. Олар симметриялы алгоритмге қарағанда шифрлеуді де, дешифрлеуді де баяу жасайды. Әдетте олардың жылдамдығы үлкен мәліметтер көлемін шифрлеуге аз болады.
Будан криптожүйелер оқиғаларды жылдамдатуға мүмкіндік береді: хабарламаны шифрлеуде кездейсоқ кілтті симметриялы алгоритм қолданылады, ал ашық кілтті қолданатын алгоритм кездейсоқ сеансты кілтті шифрлеуге қолданылады.
Криптоаналитиканың ашық кілтке қолданатын кірісінің болуы, оның шифрлеуге кез-келген хабарламаны алуына мүмкіндік береді. Яғни, криптоаналитик берілгеннен Р болжап, оны оңай тексере алады. Егер жеткілікті іздеуге мүмкіндік беретін, ашылған мәтіннің мүмкін саны сонша аз болса, бұл күрделі мәселе болып табылады, бірақ бұл мәселені кездейсоқ биттер жолының хаттамасымен толтыра оңай шешуге болады. Бұл біртекті ашық мәтіндерге әр түрлі шифромәтіндер сәйкес келуіне әкеледі.
Егер ашық кілтті қолданатын алгоритм сеансты кілтті шифрлеу үшін қолданылса әсіресе маңызды болады. Ева Бобаның ашық кілтпен қолданатын шифрлеуін сеансты кілттердің барлық мүмкін мәліметтер базасын жасай алады. Әрине, бұл көп уақыт пен жады орнын алады, бірақ экспортқа рұқсат етілген 40биттік немесе 56биттік кілт DES-тегі күшпен бұзу қайда қалай көп уақыт пен жадтағы орынды қажет етеді. Ева осындай мәліметтер базасын жасай салысымен Бобтың кілтін алып, оның почтасын оқи алады. Ашық кілтті қолданатын алгоритмдер таңдалған ашық мәтінді ашуға қарсы тұра алатындай құрылған. Оның қауіпсіздігі құпия кілтті ашық бойынша алу қиыншылығына негізделген болса, сол сияқты ашық мәтінді шифромәтін бойынша алу қиыншылығына да негізделген. Егер шифрлеу мен жазбаға бірдей кілттер қолданса, жүйеде шифрлеумен өңделген операциялар цифрлік жазбаға үшін бұл ашуды болдырмау мүмкін емес. Сондықтан қрамды бөлігін ғана емес, жүйенің барлығын толығымен көру қажет.
Ашық кілтті қолданатын шифрлеуді тарату үшін ең алғашқы алгоритм Ральф Меркл мен Мартин Хеллман өңдеген қол қапшық алгоритмі болды. Ол тек шифрлеу үшін ғана қолданылатын, бірақ кейіннен Ади Шамир цифрлі жазбаға бейімдеді. Қол қапшық алгоритмінің қауіпсіздігі қол қапшық мәселесі – NP толық мәселесіне сүйенеді. Бірақ кейіннен оның қауіпсіз еместігі белгілі болды, ол NP толық мәселесін ашық кілтті қолданатынті криптографияда қолдану мүмкіншілігін көрсетті.
Қол
қапшық мәселесі қиын емес. Әр түрлі
салмақта көп заттар берілген болса,
қол қапшықтың салмағы белгілі
бір мәнге ие болатындай етіп, кейбір
заттарды қол қапшыққа салуға болады
ма? Формальді түрде, М1,М2…Мn
және қосындысы S, bi мәнін есепте,
егер
bi ноль немесе бір ғана бола алады. Бір қол қапшыққа затты салады дегенді білдіреді, ал ноль салмайды дегенді білдіреді. Мысалға заттардың салмағы 1,5,6,11,14 және 20 деген мәндерге ие болсын. Сіз қол қапшыққа 5,6 және 11 мәндерін қолдана салмағы 22 болатындай етіп сала аласыз. Қол қапшыққа 24 болатындай етіп сала алмайсыз. Бұл мәселе заттардың санынң өсуіне байланысты өзгереді, яғни мәселні шешуге болады.
Маркл–Хеллмен
қол қапшық алгоритмінің негізінде
хатты шифрлеу идеясы жатыр. Үйіндіден
заттарды таңдау ашық мәтінді блок
көмегімен, ұзындығы үйіндідегі зат
санына сәйкес келеді, ал шифромәтін алынған
қосынды болып келеді. Қол қапшық мәселесі
көмегімен шифрлеудің шифромәтіні көрсетілген:
Ашық мәтін 1 1 1 0 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0
Қол қапшық 156 11 14 20 156 11 14 20 156 11 14 20 156 11 14 20
Шифромәтін 1+5+6+20=32
5+11+14=30 0=0
5+6=11
Негізінде
қол қапшықтың екі түрлі
Күрт өсетін қол қапшықтар
Қол қапшықтың оңай мәселесі деген не? Салмақ тізімі күрт өсетін қатар болса, алынған қол қапшық мәселесін оңай шешуге болады. Күрт өсетін қатар– бұл әр мүшесі алдыңғы мүшелерінің қосындысынан үлкен болатын қатар. Мысалға, {1,3,6,13,27,52} қатар күрт өсетін, ал {1,3,4,9,15,25} қатары – жоқ.
Күрт өсетін қол қапшықтың шешімін табу оңай. Толық салмақты алып, қатардың ең үлкен санымен салыстыр. Егер толық салмақ алынған саннан кіші болса, оны қол қапшыққа салмаймыз. Егер толық салмақ саннан үлкен немесе тең болса, онда қол қапшыққа саламыз. Қол қапшық салмағын осы санға кемітіп, қатардың үлкендігі бойынша келесі мәнге ауысамыз. Бұл процессті біткенше қайталаймыз. Егер толық салмақ нөлге теңессе, онда шешімі табылғаны. Қарсы жағдайда, there isn’t.