Автор: Пользователь скрыл имя, 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 жүйесінің программалық коды . ??
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР ТІЗІМІ
тең болғаннан
кейін,
.
Яғни, RSA
жүйесі арқылы шифрлейтін хат алысуда
жеткілікті үлкен сан
және
алынады. Олардың көбейтіндісі
тең. Одан кейін
саны таңдалады, ол (25) шартын қанағаттандырады.
санын (24) көмегімен есептеледі және
d саны (21) көмегімен есептеледі.
және
жарияланады, d құпия болып қалады.
Ривест,
Шамир және Адлеман өз әдісін мысал
ретінде көрсету үшін ағылшын
сөйлемін осы әдіспен шифрлеген.
Алдымен стандартты түрде (а=01, b=02, ....
z=26, пробел=00)
бүтін сан түрінде жазылған болатын,
содан кейін (1) елестету көмегімен
m=
және
. Бұл екі сан жарияланған, сонымен
қатар 64 және 65 ондық жүйесінде сәйкесінше
жазылған,
қосымша айтылған. Бұл сөйлемді бірінші
шифрленген түрін тапқан адамға 100$
жүлде беруге ант етілген.
,
Бұл
оқиға тек 17 жыл өткеннен кейін
ғана, 1994 жылы D. Atkins, M. Graff, А. К. Lenstra және
Р. С. Leyland сөйлемнің шифрленген түрін айтқанда
ғана біткен.
және
сандары тең болып шыққан.
,
Бұл керемет шешім алгоритмнің көбейткіштерге жіктелуінен пайда болған, ол квадраттық решета деп аталған. Есептеудің орындалуы ресурстарды қажет етті.
RSA
қауіпсіздігі үлкен сандарды
көейткіштерге жіктеу
Басқа
сөзбен айтқанда,
d мен n өзара жай сандар екенін айта кетелік. және - бұл ашық кілттер, ал саны - жабық.
m
хатты шифрлеу үшін алдымен
цифрлік блоктарға бөлінеді, кішісі
(екілік мәліметтерге 2 санының ең
үлкен дәрежесі таңдалады, кішісі
). Яғни, егер
және
- 100 разрядты жәй сандар болса,
200 разрядқа жуық болады, және әр
хат блогының ұзындығы 200 разрядқа
жуық болуға тиіс. Шифрленген
хаты сол бұрынғы ұзындықтан тұратын
блоктан тұрады. Шифрлеу формуласы
келесідегідей:
Хатты
расшифровка жасау үшін шифрленген
блогының әр қайсысын алып, есепте:
Бұл формула
хатты қалпына келтіреді.
RSA
шифрлеуі
Ашық кілт:
n – p және q екі жәй сандарының туындысы (p және q құпия болуы керек)
e
–
өзара жай сан
Жабық
кілт:
d
= e-1 mod ((p-1)(q-1))
Шифрлеу
Дешифрлеу
Дәл сол сияқты хат d көмегімен шифрлене алады, ал кез келген таңдау е көмегімен шифрлене алады.
Қысқаша мысал келтірейік. Егер p=47 және q=71 болса, онда n=pq=3337
Кілт е ортақ көбейтіндісі болмауы керек.
(p-1)(q-1)=46*70=3220
-ні -ға тең деп алайық. Бұл жағдайда
Бұл санды
есептеуде Эвклидтің
Алдымен
оны кішкентай блоктарға
Бірінші блок түрінде шифрленеді.
Келесі блоктарға да осындай операциялар орындалады, хаттың шифромәтіні құрылады:
Дешифрлеу үшін дешифрлеу кілтін қолдану арқылы алдындағы тәрізді дәрежеге шығару жасау керек.
Осыған ұқсас хаттың қалған бөлігі қалпына келеді.
RSA алгоритмінің қолтаңбасын шифрлеу мен оны бұзуда, жасалу мен тексеру үшін де көбейтулер қатары есебінде орындалатын дәрежеге келтіру. Негізінен ашық кілтті қосымшалар үшін салыстырмалы түрде жоғары емес көрсеткішті қолданады, көбінесе әртүрлі модульды бірдей ашық кілттер қолданылады. Мұнда мәліметтерді шифрлеу шифрды бұзуға қарағанда, қолтаңбаны тексеру қол қоюға қарағанда тез жүреді. Егер k – модульдегі биттің саны болса, онда RSA үшін әдетте қолданылатын алгоритмдерді орындау үшін қолданылатын ашық кілтті пайдалану қадамы k –ның екінші дәрежесіне пропорционал болады, жеке кілттің қадам саны k-ның үшінші дәрежесіне, кілт жасау үшін орындалатын операциялар саны – k-ның тқртінші дәрежесіне пропорционал.
"Тез
көбейту" әдістері – мысалы,
Фурьені тез түрлендіру
RSA
алгоритмі DES-ке және басқа
блоқтық шифрларға қарағанда
баяу. DES-тің бағдарламалық
3-кесте.
Биттік ашық кілтпен
512 бит | 768 бит | 1024 бит | |
Шифрлеу
Дешифрлеу Жазба Тексеру |
0.03с
0.16с 0.16с 0.02с |
0.05с
0.48с 0.52с 0.07с |
0.08с
0.93с 0.97с 0.08с |
RSA
қауіпсіздігі толығымен үлкен
сандарды көбейткіштерге
RSA-ны
( p-1)( q-1) мәндерін анықтау арқылы
табуға болады. Бұл әдіс үлкен
сандарды көбейткіштерге
Әрине, криптоаналитик барлық мүмкін d-ларды дұрыс мән іздеп тапқанша қарастыра алады. Бұл әдіс n көбейткіштерге жіктеуге қарағанда әлдеқайда күрделі және тиімсіз. Уақыт өте келе RSA-ны анықтаудың тиімді жолы табылуда деген хабарлар шығып жатыр, бірақ бұлардың осы күнге дейін ешқайсысы да дәлелдене қойған жоқ. Мысалы, 1993 жылы Вильям Пейннің мақаласында Ферманың кіші теоремасына негізделген әдіс ұсынылды. Өкінішке орай, бұл әдіс көбейткіштерге жіктеу әдісіне қарағанда ұзақ болып шықты.
Сонымен
қатар, р және q жай сандарын көптеген
жалпы қабылданған есептеу
RSA қарсы шифромәтіннің таңдалуымен ашу
Кейбір
анықтаулар RSA-ның таратылуына қарсы
жұмыс жасайды. Олар оның базалық
алгоритмін емес, ал онымен өңделген протоколды
бұзады. RSA-ны қолданудың өзі қауіпті екендігін
білген жөн.
1-сценарий:
Алисаның әңгімелесу линиясын
ақырын тыңдай алған Ева
x= re mod n
y= x c mod n
t= c mod n
есептелінеді.
Егер
x= re mod n болса, онда r=x d mod n болады.
Содан кейін Алисадан у-ті жабық кілтпен
жазуын сұрайды, осылайша у-тің шифрін
табады.Алисаның у-ті ешқашан көрмегенін
ұмытпаңыз.Алиса Еваға U= yd mod n жібереді.
Енді Ева, t*u mod n= r -1
yd mod = r-1xdcd mod n=
c d mod n=m табады.
2-сценарий: Трент- бұл компьютер-нотариус. Егер Алиса құжатты рәсімдегісі келсе, онда ол оны трентке жібереді. Трент оны RSA-ның сандық қолымен рәсімдеп, тездетіп қайтарады. Мэллори Тренттің қалыпты жағдайда ешқашан қол қоймайтын құжатын рәсімдегенін қалайды. Бұл авторы басқа адам хабарламасы немесе жалған уақытша хабар болсын, бәрібір, Трент оған ешқашан қолын қоймайды. Оны біз mr хабарлама деп атайық. Алдымен Мэллори х-тің кез-келген мәнің таңдайды және y= xе mod n есептейді. е мәнін ол оңай алады- бұл Тренттің ашық кілті. Енді Мэллори m= уmr mod n есептейді және Трентке m-ге қол қою үшін жібереді. Трент md mod n қайтарады.Енді Мэллори (md mod n) х-1 mod n есептейді, ол n d mod n болады және қолы mr болады.
Шындығына
келгенде, Мэллори бұл есепті бірнеше
тәсілмен шығара алады. Мұндай анықтаулар
жүргізудің әлсіз жақтары болып, дәрежеге
келтіру кезіндегі кірудің мультипликативті
құрылымның сақталуы болып табылады. Яғни,
(хm) d mod n =х d m d mod n