Эллиптикалық криптография

Автор: Пользователь скрыл имя, 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 файл

Диплом Аскара.doc

— 948.50 Кб (Скачать)

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' битті болады. Хабар  жіберушіде және алушыда бірдей кілт болады.Қолданыстан кейін биттер жойылады және келесіде басқа биттер қолданылады.

Ағынды  шифрлар Симметриялық шифрлеудің жылдам алгоритмдері, әдетте оперирленетін битті болады, блоктық болмайды. Бірқолданысқа жарайтын кілттердің көшірмесі ретінде жасалды, алайда қауіпсіздікті қамтамасыз ете алмайды.

     3.3 Асимметриялық (ашық) әдістемелер мен алгоритмдер

 

     Бұл әдістемеде кілттер бір уақытта  жасалынғанмен, олардың шифрлары мен  оларды бұзатын кілттер әртүрлі  болады. Бір кілт бәріне белгілі  болып жасалынады, екіншісі құпияда  болады.Бір кілттегі мәлімет тек  екінші кілттің шифрын бұзу арқылы белгілі болады.

     Барлық асимметриялық криптожүйелер кілттердің тікелей таңдаудың обьектісінің шабуылының нәтижесі болып табылады, сондықтан бұларда әлдеқайда ұзақ кілттер қолданылу керек. Бұл бірден шифрлеу үшін қолданылатын есептеу ресурстарында білінеді, эллипстік қисық алгоритмдерінде шифрлеу бұл мәселені жеңілдете алады.

     Асимметриялық шифрлеу алгоритмінде төмен жылдамдықтан құтылу үшін әр хабарлама үшін уақытша  симметриялық кілт генерацияланады  және тек қана ол асимметриялық алгоритммен  шифрленеді. Хабарламаның өзі уақытша  кілтпен шифрленеді. Содан кейін бұл кілт хабар алушының асимметриялық кілтінің көмегімен шифрленеді. Осыдан кейін шифрленген сеанстық кілт шифрленген хабарламамен хабар алушыға жіберіледі.  Хабар алушы асимметриялық  шифрлеудің дәл сол алгоритмін және сеанстық кілт шифрын бұзу үшін өзінің құпия кілтін пайдаланады, алынған сеанстық кілт хабарламаның шифрын бұзу үшін қолданылады.

     Асимметриялық криптожүйелерде сеанстық кілт пен  асимметриялық кілттер қауіпсіздік  деңгейі жағынан бірдей болу керек. Егер қысқа сеанстық кілт (мысалы, 40-биттік DES) қолданса, онда асимметриялық кілттер қанша ақпарат жинақтай алатындығын айтудың қажеті де жоқ. Асимметриялық ашық кілттер шабуылдарға әлсіз болып келеді, оның себебі, оларды алмастыру қиын болғандықтан. Егер шабуылдаушы құпиялыасимметриялық кілтті білсе, онда ағымды ғана емес, сонымен бірге одан әрі қарай алынатын хабарлар компрометирленеді.

Асимметриялық кілттерді пайдалану реті:

  1. Асимметриялық ашық және құпия кілттер қауіпсіз жасалынады. Құпия асимметриялық кілттер оның иесіне беріледі.Ашық асимметриялық кілт мәілметтер базасында сақталынады және сертификат беру орталығымен әкімшілденеді.Тұтынушылар мұндай базада кілттерді қауіпсіз жасау,сақтау, тарату жүзеге асатындығына сенімді болу керек. Кілтті жасаушы оларды жойып жібергендігі туралы тұтынушы сенімді болу керек.
  2. Хабар жіберуші мәтін үшін хэш-функциясын есептеу арқылы электрондық қолтаңба жасайды және алынған қатарды мәтінге тіркейді.
  3. Хабар жіберуші шифрлеудің жылдам симметриялық алгоритмдерін қолданады- шифрленген мәтінді алу үшін алынған пакетке симметриялық құпия кілтін тіркеу арқылы шифрды бұзу тәсілін анықтайды.  Осы тәсілмен аудентификация  жүреді, себебі хабар жіберуші симметриялық құпия кілтін біледі және бұл пакет шифрын бұза алады.
  4. Енді сеанстық кілтті тарату мәселесін шешу керек.
  5. Хабар жіберуші сертификат беруші орталықтың ашық асимметриялық кілтін алу керек.Шифрленбеген сұранысты қағып алу шабуылдың ең кең тараған түрі болып саналады. Кілттің сапасын кепілдейтін сертификаттар қатары болады.
  6. Хабар жіберуші запрашивает сертификат орталығынан асимметриялық ашық кілтті хабар алушыға сұратады.Бұл процесс шабуылға әлсіз, хабар алмасу кезінде трафикке ұшырау мүмкін. Сондықтан ашық асимметриялық кілтке сертификат орталығында хабар жіберушімен қол қойылынады. Бұл дегеніміз сертификат орталығы шифрлеуге хабар алушының асимметриялық ашық кілтін пайдаланды деген сөз. Тек сертификат орталығында асимметриялық кілттер туралы мәлімет болады.
  7. Хабар алынған соң асимметриялық ашық  кілт асимметриялық кілттер  арқылы шифры бұзылады. Егер ол компрометирленген болса, онда ол қалыптан барлық тұтынушылар жүйесін шығарады. Сондықтан басқа тұтынушылардың ашық кілтін өздігінен шифрлеп тастауға болады, бірақ ол компрометирленген дегенге сенім қайда?
  8. Енді асимметриялық алгоритмді қолдану арқылы сеанстық кілтті және хабар алушының асимметриялық кілтін  қолдану арқылы шифрлеу және оны бұзу орындалады.
  9. Ашифрленген сеанстық кілт шифрленген мәтінге қосылады.
  10. Барлық алынған мәліметтер пакеті хабар алушыға жіберіледі. Шифрленген сеанстық кілт қорғалмаған тор арқылы жіберілгендіктен, әртүрлі шабуылдар үшін қолайлы болады.
  11. Хабар алушы шифрленген сеанстық кілтті алынған пакетті бөліп алады.
  12. Енді хабар алушыға сеанстық кілттің шифрын анықтау керек.
  13. Хабар алушыда сертификат беру орталығының  асимметриялық болу керек.
  14. Өзінің асимметриялық құпия кілтін қолдана отырып, хабар алушы сеанстық кілтті ашады.
  15. Хабар алушы  дәл сол шифрлеу-шифрды бұзудың симметриялық алгоритмін қолданады және ашылған симметриялық кілт шифрленген мәтінге қосылып, бастапқы мәтін мен электронды қолтаңбаны алады.
  16. Хабар алушы электронды қолтаңбаны бастапқы мәтіннен бөледі.
  17. Хабар алушы сертификат беру орталығынан хабар жіберушінің асимметриялық ашық кілтін алады.
  18. Бұл кілт алынған соң, хабар алушы оның шифрын бұзады.
  19. Содан кейін мәтіннің хэш-функциясының шифры хабар жіберушінің ашық кілтімен және шифрлеу-шифрды бұзудың асимметриялық алгоритмін қолдану арқылы бұзылады.
  20. Алынған бастапқы мәтіннің хэш-функциясы қайта тексеріледі.
  21. Осы екі хэш-функциялар бастапқы мәтін өзгеріске ұшырамас үшін тексеріледі.
 

Асимметриялық алгоритмдер асимметриялық криптожүйелерде  симметриялық сеанстық кілттерді шифрлеу  үшін қолданылады.

Екі әртүрлі кілт қолданылады – біріншісі  барлығына белгілі, екіншісі құпияда  болады. Бірақ бір кілтпен шифрленген мәліметті тек екінші кілттің шифрын анықтаған соң ашуға болады.

2-кесте. Асимметриялық алгоритмдер сипаттамасы

Тип Сипаттамасы
RSA Асимметриялық шифрлеудің кең қолданылатын алгоритмі, тұрақтылығы үлкен сандар факторизациясының күрделілігіне байланысты.
ECC(эллипстік қисықтарға негізделген  криптограмма) Алгебралық жүйені қолданады, эллипстік қисықтар нүктесінде сипатталады, қызметке келтіру үшін асимметриялық шифрлеу алгоритмін қолданады.Басқа асимметриялық шифрлеу алгоритмдерінің қарсыласы болып саналады, себебі қысқа кілтті шифрлар үлкен ақпаратты сақтауда зор рөл атқарады. Оның қазіргі қолданысы ашық кілтті алгоритмдермен салыстырғанда әлдеқайда тиімді екендігін көрсетіп. Оның өнімділігі RSA, Диффи-Хеллман және  DSA-ға қарағанда бір деңгейге жоғары.
Эль-Гамаль. Диффи-Хеллман нұсқасы, электрондық қолтаңбаны шифрлеу үшін де қолданылады.

 

      4 АШЫҚ КІЛТТІ ҚОЛДАНАТЫН АЛГОРИТМДЕР

 

     Ашық  кілтті қолданатын криптография тұжырымын  Уитфилд Диффи және Мартин Хеллман, сондай-ақ Ральф Меркл ұсынған  болатын. Олардың криптографияға енгізген салымы – кілтті жұбымен қолану – шифрлеу кілті және дешифрлеу кілті – және біреуінен екіншісін алу мүмкін еместік сенімі. Ең алғаш рет 1976-жылы Диффи және Хеллман өз ойын Ұлттық компьютерлік конференциясында (National Computer Confrens) көрсетіп, бірнеше айдан кейін олардың жұмысының негізі болатын “New Directions in Cryptography” («Криптографияның жаңа бағыты») басылып шықты.

     1976-жылдан  кейін көптеген ашық кілтті  қолданатын криптографиялық алгоритмдер  ұсынылған. Олардың көбі қауіпсіз  емес. Ал қауіпсіз дегендердің көбі жүзеге асыруға жарамсыз  болып келеді.

     Әрі өнімді, әрі қауіпсіз болып келетін  алгоритмдер көп емес. Әдетте бұндай алгоритмдер негізгі  қиын мәселеге негізделген. Осы әрі қауіпсіз, әрі  өнімді алгоритмдердің кейбіреуі кілттерді  бөлуге ғана жарамды. Басқалары шифрлеуге және кілттерді бөлуге де жарамды. Үшіншілері тек цифрлі жазуға ғана жарамды болып келеді. Тек қана үш алгоритм кілтті бөлуге де, шифрлеуге де, цифрлі жазуға да жарамды: RSA, ELGamal және Rabin. Бұл алгоритмдердің барлығы баяу. Олар симметриялы алгоритмге қарағанда шифрлеуді де, дешифрлеуді де баяу жасайды. Әдетте олардың жылдамдығы үлкен мәліметтер көлемін шифрлеуге аз болады.

     Будан криптожүйелер оқиғаларды жылдамдатуға мүмкіндік береді: хабарламаны шифрлеуде  кездейсоқ кілтті симметриялы алгоритм  қолданылады, ал ашық кілтті қолданатын алгоритм кездейсоқ сеансты кілтті шифрлеуге қолданылады.

     4.1 Ашық кілтті қолданатын алгоритмдердің қауіпсіздігі

 

     Криптоаналитиканың  ашық кілтке қолданатын кірісінің болуы, оның шифрлеуге кез-келген хабарламаны алуына мүмкіндік береді. Яғни, криптоаналитик берілгеннен Р болжап, оны оңай тексере алады. Егер жеткілікті іздеуге мүмкіндік беретін, ашылған мәтіннің мүмкін саны сонша аз болса, бұл күрделі мәселе болып табылады, бірақ бұл мәселені кездейсоқ биттер жолының хаттамасымен  толтыра оңай шешуге болады. Бұл біртекті ашық мәтіндерге әр түрлі шифромәтіндер сәйкес келуіне әкеледі.

     Егер  ашық кілтті қолданатын алгоритм сеансты  кілтті шифрлеу үшін қолданылса әсіресе  маңызды болады. Ева Бобаның ашық кілтпен қолданатын шифрлеуін сеансты кілттердің барлық мүмкін мәліметтер базасын жасай алады. Әрине, бұл көп уақыт пен жады орнын алады, бірақ экспортқа рұқсат етілген 40биттік немесе 56биттік кілт DES-тегі күшпен бұзу  қайда қалай көп уақыт пен жадтағы орынды қажет етеді. Ева осындай мәліметтер базасын жасай салысымен Бобтың кілтін алып, оның почтасын оқи алады. Ашық кілтті қолданатын алгоритмдер  таңдалған ашық мәтінді ашуға қарсы тұра алатындай құрылған. Оның қауіпсіздігі құпия кілтті ашық бойынша алу қиыншылығына негізделген болса, сол сияқты ашық мәтінді шифромәтін бойынша алу қиыншылығына да негізделген. Егер шифрлеу мен жазбаға бірдей кілттер қолданса, жүйеде шифрлеумен өңделген операциялар цифрлік жазбаға үшін бұл ашуды болдырмау мүмкін емес. Сондықтан қрамды бөлігін ғана емес, жүйенің барлығын толығымен көру қажет.

     4.2 Қол қапшық алгоритмі

 

     Ашық  кілтті қолданатын шифрлеуді тарату үшін ең алғашқы алгоритм Ральф Меркл  мен Мартин Хеллман өңдеген қол  қапшық алгоритмі болды. Ол тек шифрлеу үшін ғана қолданылатын, бірақ кейіннен Ади Шамир цифрлі жазбаға бейімдеді. Қол қапшық алгоритмінің қауіпсіздігі  қол қапшық мәселесі – NP толық мәселесіне сүйенеді. Бірақ кейіннен оның қауіпсіз еместігі белгілі болды, ол NP толық мәселесін ашық кілтті қолданатынті криптографияда қолдану мүмкіншілігін көрсетті.

     Қол қапшық мәселесі қиын емес. Әр түрлі  салмақта көп заттар берілген болса, қол қапшықтың салмағы белгілі  бір мәнге ие болатындай етіп, кейбір заттарды қол қапшыққа салуға болады ма? Формальді түрде, М1,М2…Мn және қосындысы S, bi мәнін есепте, егер 

                                                                      (17) 

     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.

Информация о работе Эллиптикалық криптография