O`ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA
KOMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI
TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
URGANCH FILIALI
KOMPYUTER INJINIRING FAKULTETI
DASTURIY INJINIRING KAFEDRASI
C++ TILIDA DASTURLASH FANIDAN
KURS ISHI
Mavzu : VISUAL C++ MUXITIDA AXBOROTNI VIJINER USULIDA
SHIFRLOVCHI VA DESHIFRLOVCHI DASTUR TUZISH
Bajardi
912-14 guruh
talabasi
Bekchanova
Anabibi
Ilmiy raxbar
Dasturiy injiniring
kafedrasi assistienti
Yusupov Ozod
Urganch 2016
MUNDARIJA
Kirish .…………………………………………………………………....
Masalaning qo’yilishi………………………………………..……….…..
Asosiy qism…………...……………………...………………..……….…
1.1.
Axborotlarni shifrlash bo`yicha umumiy
ma`lumot……………………………………..........................................
1.2. Shifrlashning Vijiner usuli……………...........................................
1.3.Vijiner usulida shifrlash algoritmi ….……………………….....…..
Xulosa ….………………………………..……………….…………….....
Foydalanilgan adabiyotlar……………...……………………….………
Ilova ……………………………………….……………………….……..
Kirish
Bizning оldimizda algоritmlarni EHM tushunadigan tilda yozish masalasi
turadi, buning uchun maхsus algоritmik tillar mavjud. EHM paydо bo’lganidan
bеri juda ko’plab algоritmik tillar yaratilgan. Ularni shartli ravishda uch tipga
ajratish mumkin:
- Quyi darajadagi prоgrammalash tillari (mashina tillari)
- O’rta darajadagi prоgrammalash tillari
- Yuqоri bоsqichli prоgrammalash tillari
Quyi darajadagi prоgrammalash tillarida buyruqlar va amallar ma’lum
kоdlar (raqamlar) bilan ifоdalangan bo’lib, ular EHM qurilmalari adrеslari bilan
bеvоsita ishlashga mo’ljallangan va mashina tili dеb ham yuritiladi.
O’rta darajadagi prоgrammalash tillarida amallar va buyruqlarni
(kоmandalar)ni ifоdalash uchun оdam tushunishi uchun qulay bo’lgan har хil
qisqartma so’zlardan fоydalaniladi. Bunda ham prоgramma tuzuvchi EHM
qurilmalari adrеslari bilan ishlashi lоzim. Bu qiskartmalar-mnеmоkоdlar
dеyiladi, bu turdagi prоgrammalash tillari assеmblеrlar dеb ataladi.
Yuqоri darajadagi prоgrammalash tillarida ko’rsatmalar insоn tiliga yaqin
bo’lgan so’zlar va birikmalardan ibоrat bo’lib, prоgramma tuzish uchun juda
qulay va birоr maхsus amallardan tashqari hоllarda adrеslar va qurilmalar bilan
bеvоsita bоg’liq ko’rsatmalarni bilish zarur emas. Yuqоri bоsqich
prоgrammalash tillariga misоl sifatida FОRTRAN, Algоl, RL-1, BASIC,
PASCAL, C, C
tillarini kеltirish mumkin.
Infоrmatsiоn tехnоlоgiyalarining jadal suratlar bilan rivоjlanishi,
Internetning paydо bo’lishi, yangidan yangi va ma’lum maqsadlarga
mo’ljallangan prоgrammalash tillari va muhitlari yaratildi va yaratilmоqda.
Ularga misоl sifatida dBase, KARAT, LISP, FохPrо, Simula, Delphi,
Visual Basic, Visual C
, HTML, Java, Java Script kabi tillar va
prоgrammalash muhitlarini kеltirish mumkin. Hоzirgi kunga kеlib оb’еktga
yo’naltirilgan va vizual prоgrammalash tехnоlоgiyalari kеng tarqalmоqda.
Masalaning qo`yilishi..
Menga berilgan topshiriqda berilgan axborotlarni Vijiner usuliga tayangan
holda himoyalash yani shifrlash jarayonini amalga oshirishdir.
Himoyalangan axborotlarni ochishda deshifrlash jarayoni bo’lib bu
maxfiylashgan axborotni ochishib o’qishda qo’l keladi.Buning uchun bizga
asosan kalit kerak bo’ladi. Kalit asosan “so`z” ya`ni harflardan iborat
ko’rinishida bo’lib bu axborotni himoyalashda va uni ochishda kerak
bo’ladi.Agar kalitni bilmagan odam bu axborotni qo’liga tushsa bu so’zning nima
haqda ekanligini bilaolmaydi.
Bu mavzuning asosiy vazifasi ham anashunda hisoblanadi. Axborot faqat
kelishilgan tomonlar tarafidan o’qiy olish mumkin.
Qadimgi urush davrlarda ham axborotlar dushman qo’liga tushib qolishi
mumkinligini hisobga olib axborotlani himoyalangan holda aloqa qilishgan.Kalit
faqat axborotni qabul qlishi kerak bo’lgan tomon va axborotni yuborgan tomon
tarafi biladi. Shuning uchun ham bu hatni kelishilgan tomonlar o’qiy oladi .
Bu mavzuning afvzalligi shundaki Vijiner ususli shifrlash
usullari ichida eng himoyalangan usul hisoblanadi, bu shifr kaliti “kalit so`z”
ko’rinishida bo’ladi.Shifrlashni amalga oshirishda ochiq tekst va ochiq kalit
kerak bo’ladi.
Bizga Matn berilgan bo’lsin bu matnni shifrlash uchun avvalo kalit so`z
kerak. Bu kalit so`z yordamida berilganmatnni shifrlaymiz Vijiner shifrini ishlash
prinspining asosini misol yordamida ko`radigan bo`lsak “ABCDEF” so`zini kalit
so`z deb qaraydigan bo`lsak, berilgan “TATU URGANCH FILIALI” so`zini
shifrlash uchun kalit so`zdagi harflar bilan ishlaydi va quyidagicha shifrlaydi
“TBVX YWGBEK JNLJCOM”. Endi biz yashirilgan ya’ni shifrlangan axborotni
ochishimiz uchun berilgan mtnni teskari tartibda shu kalit so`z yordamida
deshifrlaymiz.
Endi menga berilgan bu Vijiner usulida shifrlash va deshifrlash jarayonini
dasturini tuzish vazifasi yuklatilgan bo’lib, men bu dasturni Visual C++ 2010
Windows Form da dasturini yaratdim.
Visual C++ 2010 dasturida bunday dasturlarni yaratish juda oson
hisoblanadi
negaki bu dasturda tayyor komponentalar mavjud bo’lib biz bundan to’g’ri
foydalana bilsak eng yaxshi dasturni yarata olishimiz mumkin. Endi men bu
dasturni yaratishimda kerak bo’ladigan komponentalar bilan tanishtirib
chiqaman.
1.Form oynasi komponentalarni joylashtirish uchun oyna.
2.Button komponentasi bu komponentaning asosiy vazifasi shundan
iboratki u orqali men shifrlash, deshifrlash, oynalarni tozalash kalit so`z va
matnlarni kiritishda kerak boladi.
3.Textbox komponentasi bu asosan text kiritishimizda va text xosil
qilishimizda kerak bo’ladi.
4.Label
komponentasi
bu
komponenta
menga
Form
oynada
komponentalar-
ni nomini ko’rsatib berish uchun kerak yani nishon hisoblanadi.
5. Menu Strip bu komponenta menga fayl va yordam degan bo’limlarni
qo’shishimda kerak bo’ldi.
6.Open file Dialog komponentasi bu komponenta menga txt faylni ochib
berish va txt faylni saqlash uchun kerak bo’ldi.
Shular orqali bizning Vijiner shifrlovchi va deshifrlovchi dasturimiz yaratildi.
Vijiner shifrlsh usuli orqali biz muxim xabarlarni kalit so`z yordamida shifrlash
va deshiferlash mumkin.
Axborotni shifrlash haqida umumiy ma`lumot
Ochiq kalitli RSA kriptoalgoritmi. RSA bir tomonli funktsyasiga
asoslangan tartib va qoidalarni boshqarish kriptotizimi hisoblanadi. Bu
kriptotizimini kalitlarni taqsimlash tartib va qoidalarini boshqarish kriptotizimi
uchun ham qo’llash mumkin. Tartib va qoidalarni boshqarish masalalari,
kriptotizimilariga doir kriptologik ilmiy izlanishlar hozirda, zamonaviy, bardoshli
kriptografik tizimlarni yaratishda keng va jadal rivojlanib bormoqda. Bu sohada
RSA bir tomonli funktsiyasidan foydalanishning qulayligi o’zini har tomonlama
oqlab kelmoqda.
RSA algoritmini qo’llanishiga doir kichik bir misol keltiramiz.
Misol: Uchta harfdan iborat bo’lgan “SAV” ma’lumotini shifrlaymiz.
Biz qulaylik uchun kichik tub sonlardan foydalanamiz Amalda esa
mumkin qadar katta tub sonlar bilan ish ko’riladi.
1. Tub bo’lgan r=3 va q=11 sonlarini tanlab olamiz.
2. Ushbu n=pq=3*11=33 sonini aniqlaymiz.
So’ngra,
20
10
2
)
1
)(
1
(
)
33
(
q
р
sonini topamiz, hamda bu son
bilan 1 dan farqli biror umumiy bo’luvchiga ega bo’lmagan d sonini, misol uchun
d=3 sonini, olamiz.
3. Yuqorida keltirilgan (24) shartni qanoatlantiruvchi ye sonini 3e=1 (mod
20) tenglikdan topamiz. Bu son ye= 7
4. SHifrlanishi kerak bo’lgan «SAV» ma’lumotini tashkil etuvchi
harflarni: A
1, V
2, S
3 mosliklar bilan sonli ko’rinishga o’tkazib olib, bu
ma’lumotni musbat butun sonlarning, ketma-ketligidan iborat deb qaraymiz. U
holda ma’lumot (3,1,2)ko’rinishda bo’ladi va uni {e;n}={7;33} ochiq kalit bilan
)
33
(mod
)
(
7
x
x
f
z
bir tomonli funktsiya bilan shifrlaymiz:
x=3da
SHM1=(3
7
)(mod33)=2187(mod33)=9,
x=1da
SHM2=(1
7
) (mod33)=1,
x=2da
SHM3=(2
7
) (mod33)=128(mod33)=29
5. Bu olingan shifrlangan (9,1,29) ma’lumotni mahfiy {d;n}={3;33} kalit
bilan
(mod33)
3
1
)
(
y
y
f
z
ifoda orqali deshifrlaymiz:
u=9 da
OM1=(9
3
) (mod33)=729(mod33)=3,
u=1 da
OM2=(1
3
) (mod33)=1(mod33)=1,
u=29 da
OM3=(29
3
) (mod33)=24389(mod33)=2.
Shunday
qilib, kriptotizimilarda RSA algoritmining qo’llanishi
quyidagicha: har bir foydalanuvchi ikkita yetarli darajada katta bo’lmagan p va q
tub sonlarni tanlaydilar va yuqorida keltirilgan algoritm bo’yicha d va ye tub
sonlarini ham tanlab oladi. Bunda n=pq bo’lib, {e;n} ochiq kalitni {d;n}esa
mahfiy kalitni tashkil etadi. Ochiq kalit ochiq ma’lumotlar kitobiga kiritiladi.
Ochiq kalit bilan shifrlangan shifrmatnni shu kalit bilan deshifrlash imkoniyati
yo’q bo’lib, deshifrlashning mahfiy kaliti faqat shifr ma’lumotining xaqiqiy
egasigagina ma’lum.
EL– GAMAL KRIPTOTIZIMI. EL – GAMAL TIZIMI RSA TIZIMIGA
MUQOBIL
(ALTERNATIV)
BO’LIB, BU KRIPTOTIZIMILARNING
KALITLARINING O’LCHOV UZUNLIKLARI TENG BO’LGANDA BIR –
XIL KRIPTOBARDOSHLILIKGA EGA BO’LADILAR.
El – Gamal kriptotizimi Diffi-Xellman algoritmiga o’xshash bo’lib, diskret
logarifmlarni hisoblash masalasi yechimining murakkabligiga asoslangan. Bu
kriptotizimi asosini tub bo’lgan r va va butun bo’lgan g sonlari tashkil etadi.
quyida ushbu tizimning mohiyatini ochib beruvchi misolni keltiramiz.
Biror foydalanuvchi (A) mahfiy kalit a sonini tanlab oladi va
p
g
y
a
mod
bo’lgan ochiq kalitni hisoblaydi.
Agarda mana shu foydalanuvchi (A) bilan biror boshqa foydalanuvchi (B)
mahfiy ma’lumotni jo’natmoqchi bo’lsa, u holda (B) r sonidan kichik bo’lgan
biror kriptotizimi sonini tanlab olib
p
g
y
k
mod
1
va
k
y
m
y
2
,
sonlarini hisoblaydi, bu yerda
belgisi 2 modul bo’yicha bitlarni qo’shish
amalini bildiradi, ya’ni m va y
k
sonlari ikkilik sanoq tizimida, deb tushiniladi.
So’ngra (B) (y
1
>y
2
) ma’lumotlarini (A)ga jo’natadi. o’z navbatida (A) bu
shifrlangan ma’lumotni qabul qilib, quyidagi
m
y
p
y
a
2
1
)
mod
(
bo’lgan hisoblash bilan ma’lumotning ochiq matnini tiklaydi.
Shifrlashni kombinatsion usuli. Shifrlashning kombinatsiyalangan usullari.
Qudratli kompyuterlar, tarmoq texnologiyalari va neyronli hisoblashlarning
paydo bo’lishi hozirgacha umuman fosh qilinmaydi deb hisoblangan kriptografik
tizimlarni obro’sizlantirilishiga sabab bo’ldi. Bu esa o’z navbatida yuqori
bardoshlikka ega kriptografik tizimlarni yaratish ustida ishlashni taqozo etdi.
Bunday kriptografik tizimlarni yaratish usullaridan biri shifrlash usullarini
kombinatsiyalashdir. Quyida eng kam vaqt sarfida kriptobardoshlikni jiddiy
oshishini ta’minlovchi shifrlashning kombinatsiyalangan usuli ustida so’z boradi.
Shifrlashning ushbu kombinatsiyalangan usuliga binoan ma’lumotlarni shifrlash
ikki bosqichda amalga oshiriladi. Birinchi bosqichda ma’lumotlar standart usul
(masalan, DES usul) yordamida shifrlansa, ikkinchi bosqichda shifrlangan
ma’lumotlar maxsus usul bo’yicha qayta shifrlanadi. Maxsus usul sifatida
ma’lumotlar vektorini elementlari noldan farqli bo’lgan son matritsasiga
ko’paytirishdan foydalanish mumkin.
Gammalashni qo’llashda agar shifr gammasi sifatida raqamlarning
takrorlanmaydigan ketma-ketligi ishlatilsa shifrlangan matnni fosh qilish juda
qiyin.
Odatda shifr gammasi har bir shifrlanuvchi so’z uchun tasodifiy o’zgarishi
lozim. Agar shifr gammasi shifrlangan so’z uzunligidan katta bo’lsa va dastlabki
matnning hech qanday qismi ma’lum bo’lmasa, shifrni faqat to’g’ridan-to’gri
saralash orqali fosh etish mumkin. Bunda kriptobardoshlik kalit o’lchami orqali
aniqlanadi. Shifrlashning bu usulidan ko’pincha himoya tizimining dasturiy
amalga oshirilishida foydalaniladi va shifrlashning bu usuliga asoslangan
tizimlarda bir sekundda ma’lumotlarning bir necha yuz Kbaytini shifrlash
imkoniyati mavjud. Rasshifrovka jarayoni-kalit ma’lum bo’lganida shifr
gammasini qayta generatsiyalash va uni shifrlangan ma’lumotlarga singdirishdan
iborat.
Shifrlangan ma’lumotlar vektorini matritsaga ko’paytirishni qo’llashda
shifrlangan matn bir bayt uzunlikdagi
i
f
vektorlarga ajratiladi va har bir vektor
kvadrat matritsa
ij
M
ga ko’paytiriladi va shifrlangan vektorlar shakllantiriladi:
ij
i
i
M
f
f
Bu usulning asosiy afzalligi sifatida uning ma’lumotlar ishlanishining turli
jabxalaridagi moslanuvchanligini ko’rsatish mumkin. Har bir vektor alohida
shifrlanganligi sababli ma’lumotlar blokini uzatish va dasturlangan
ma’lumotlardan ixtiyoriy foydalanish imkoniyati tug’iladi. Ushbu usulni apparat
yoki dasturiy usulda amalga oshirish mumkin.
Deshifrlash jarayonida shifrlangan
f
vektorlarni teskari matritsa
1
ij
M
ga ko’paytiriladi.
1
ij
i
i
M
f
f
Kombinatsiyalangan usullarning yuqori samaradorligiga uning ikkala
bosqichini apparat usulda amalga oshirish orqali erishish mumkin. Ammo bu
uskuna xarajatlarining jiddiy oshishiga olib keladi. Dasturiy usulda amalga
oshirilishida esa ma’lumotlarni shifrlash va Deshifrlash vaqti oshib ketadi. SHu
sababli kombinatsiyalangan usularni apparat-dasturiy usulda, ya’ni usulning bir
bosqichi apparat usulda, ikkinchi bosqichi dasturiy usulda amalga oshirilishi
maqsadga muvofiq hisoblanadi.
Shifrlash – xabarni berilgan kanal bo`yich uzatish uchun qulay xolga
keltirish. Oddiy misol tariqasida xabarni telegramma ko`rinishida uzatishni
ko`rsatish mumkin. Bunda barcha simvollar telegraf kodini kodlanadi.
Deshifrlash – qabul qilingan xabarni tiklash amali. Aloqa sistemasida
kodlash va dekodlash uchun qurilmalari ko`zda tutilishi lozim.
Shovqinli aloqa kanalining informatsiya modeli…Kodlash nazariyasining
asosiy tushunchalari. Informatsiyalarni kodlash masalasini raqamli ma`lumotlarni
berilgan sistemasida qandaydir o`zgartirish sifatida qarash mumkin.
Xususiy xolda ushbu amal simvollarni guruxlash (triadalar yoki tetradalar
ko`rinishida ifodalash)yoki pozitsion sanoq sistemasidagi simvollar (raqamlar)
ko`rinishida ifodalashga keltirilishi mumkin.
Xar qanday pozitsion sistemda ortiqcha information bo`lmaganligi va
barcha kod kombinatsiyalari ruxsat etilganligi sababli, bunday sistemalardan
nazoratlashda foydalanish mumkin emas…
Axborot muxofazasining kriptologik uslublari ochiq ma`lumotlarni
o`zgartirib, faqat kalit ma`lum bo`lgandagina uni asl holatga qaytarish imkonini
beradi.
Shifrlash va deshifrlash masalalariga tegishli bo`lgan, ma`lum bir alifboda
tuzilgan ma`lumotlar matnlarni tashkil etadi.
Alifbo axborotni kodlash uchun foydalaniladigancheklisondagi belgilar
to`plami. Misol sifatida.
O`ttiz oltita belgidan (xarfdan) iborat o`zbek tili alifbosi
O`ttiz ikkita belgidan(xarfdan) iborat rus tili alifbosi
Yigirma sakkizta belgidan (xarfdan) iborat lotin alifbosi
Ikki yuz ellik oltita belgidan iborat ASCII va KOI standart kompyuter
kodlarining alifbosi
Binary alifbo, ya`ni 0 va 1 belgilardan iborat alifbo
Sakkizlik va o`n oltilik sanoq tizimlarini belgilaridan iborat alifbolarni
keltirish mumkin
Axborotni muxofaza qilish maqsadida shifrlash sifatida kalitning maxfiy
saqlanishi va shifrlashning kriptobardoshliligining darajasiga bog`liq.
Kriptotizimlrga quyidagi talablar qo`yiladi.
Ma`lumotlarni muxofaza qilish muxim masalalar bilan bevosita munosabatda
bo`lmagan kishilar axborot-komunikatsiya tizimida ma`lumotlarni muxofaza
qilish qoidalarini buzishi mumkin bo`lgan sabablar son va sifat jihatdan
serqirraligini, tabiiyki ma`lum bir qolipda tasavvur qila olmaydi.
Quyida ko`p uchraydigan vanisbatan yaqqolroq xis qilish mumkin bo`lgan
muhofaza qilish qoidalarining ba`zi buzilish sabablari keltirilgan.
Ma`lumotlar muxofaza qilish qoidalarini buzuvchining maqsadi va uni amalga
oshirish uslublari.Kodlash yordamida informatsiyani himoyalash.
Qisqacha nazariy ma'lumot.
Axborotni ximoyalash mexanizmlarining asosini shifrlash tashkil etadi.
Informatsiyani shifrlash deganda ochiq informatsiyani (dastlabki matnni)
shifrlangan informatsiyaga o‘zgartirish (shifrlash) va aksincha (rasshifrovka
qilish) jarayoni tushuniladi. Shifrlangan matn shifrmatn deb yuritiladi.
Shifrlashning ko‘pgina turli usullari mavjud.
Quyida keng tarqalgan shifrlardan biri – Vijiner shifri ustida so‘z boradi.
Bunda shifrlashning ishonchlilik darajasi alfavit harflarining paydo bo‘lish
statistik qonuniyatlarining buzilishi evaziga ortadi. Vijiner shifriga binoan
alfavitning xar biriga nomer beriladi. Masalan, o‘zbek alfaviti harflariga 0 (A =
0) dan to 34 (Ҳ = 34) gacha raqamlar moslashtiriladi.
Kalit qandaydir so‘z yoki xabarlar tagiga qaytarilib yoziladigan harflar
ketma– ketligi sifatida ifodalanadi. Shifrmatnning har bir harfiga raqamli
ekvivalent xabar harfi raqamli ekvivalentini uning tagidagi kalit harfi raqamli
ekvivalentiga 35 ning moduli bo‘yicha jamlash orqali aniqlanadi.
5.1- misol. “ҒЎЗА” kaliti yordamida “ПАХТАКОР” dastlabki matnni
shifrlash va rasshifrovka qilish talab etilsin.
Yechish. Shifrlash va rasshifrovka qilish quyida keltirilgan.
Dastlabki matn П А Х Т А К О Р
Kalit Ғ Ў З А Ғ Ў З А
Shifrmatn Н Ў Я T Ғ ЖС R
Kalit Ғ Ў З А Ғ Ў З А
Dastlabki matn П А Х Т А К О Р
Shifrlangan matnni deshifrlash(rasshifrovka) qilish.Shifrlangan so’zni
deshifrlash qilish quyidagicha amalga oshiriladi:
Shifrlangan so`zni deshifrlash (rasshifrovka qilish) uchun berilgan so`zni shu
kalit so`z orqali deshifrlasak bizga asosiy so`z kelib chiqadi. Biz yuqorida
“TATU URGANCH FILIALI” so`zini shifrladik va quyidagi so`zga ega bo`ldik.
“TBVX YWGBEK JNLJCOM” bu so`zni deshifrlash uchun
“ABCDEF” kalit so`zi orqali qayta rasshifrovka qilsak “TATU URGANCH
FILIALI” so`zi kelib chiqadi. Agar ma’lumotni yuboruvchi va qabul qiluvchi
tomonlar qutblanishning biror bir usulini tanlab olishmagan bo’lsa, qabul
qiluvchi yuboruvchi tomonidan berilgan ma’lumotlardan hech qanday foydali
ma’lumot olisha olmaydi.
Shunga asoslanib, axborotni uzatishda boshqa kimsalar tomonidan ushlab
qolinishida himoya qilish uchun ma’lumot uzatish kanallari quriladi. Qabul
qiluvchi kelayotgan axborotni boshqa odamlar tomonidan ushlab qolinganligini
aniqlashi mumkin va bu aniqlanganidan keyin uzatuvchi tomonga ma’lumotlarni
boshqa kalit bo’yicha qayta uzatishni so’raydi.
Yuboruvchi ma’lumotlarni biror bir kvantli tuzilish bo’yicha kodlashtiradi.
Qabul qiluvchi esa, bu tuzilishlarni ro’yxatdan o’tkazadi. Keyin yuboruvchi va
qabul qiluvchi tomonlar birgalikda kuzatish natijalarini tahlil qilishadi. Natijada,
yuborilgan va qabul qilingan ma’lumotlarning bir xilliliga ishonch hosil qilinadi.
Natijalarni tahlil qilishda quyidagilarga e’tibor beriladi: xatoliklar, shovqin va
buzg’unchilar keltirib chiqargan xatoliklar. Ma’lumotlarni aniqligi tahlil qilinadi,
lekin bit bo’yicha tahlil qilinmaydi. Ma’lumotlarni uzatish vaqtida fotonlarning
joylashuvi nazorat qilinadi.
Vijiner shifri haqida
Foydalanuvchi kaliti deb nomlangan k=(k
0,
k
1,
k
2
…k
n
) kalitning oxirgi
ketma ketligidan boshlaymiz va uzluksiz ketma ketlikkacha cho`zamiz, shunday
qilib
К=(к
0
к
1.
...... к
n
) к
j
=к
(j mod r)
0<=j<∞
Shunday kalitga ega bo`lamiz.
Masalan : r =∞ ва 15, 8,2,10,11,4,18.
Foydalanuvchi kalitida ishchi kalit davriy ketma ketlikka aylanadi.
15,8,2,10,11,4,18,15,8,2,10,11,4,18.
AniqlashV/6
k
Vijiner o`rniga qo`yish quyidagi formula bilan topiladi.
V/6
k
(х
0
х
1
….х
n-1
)→(y
0
y
1
….y
n-1
)=(x
0
+к х
1
+к .... х
n-1
+к)
Shunday qilib
1)
X dastlabki matn r ga fragmentga bo`linadi
2)
Х
i
=(x
i
x
i+2
… x
i+2(n-1)
) 0<=i
3)
x
i
dastlabki matnning I fragmenti с
к
Sezarning o`rniga qo`yish
yordamida shifrlanadi.
4)
Х
i
=(x
i
x
i+2
… x
i+2(n-1)
) →(у
i
у
i+2
…у
i+2(n-1)
) Vijiner o`rniga qo`yish
sistemasi variant M=2 daVernam sistemasi deyiladi (1971-y) bu vaqtda
(х
0
х
1
….х
n-1
) kalit qog`oz lentaga yoziladi.
Bodo kodini qo`llagan xolda G bitli simvolga o`giradi. Bodo dastlabki
matnga (2-model bo`yicha) kalit qo`shiladi.
AT&T firmning eski teletaypini AQSH armiya aloqa korpusi sifatida
qo`llardi. Bu teletayp Verkam qurilmasi va shifrlash asbobiga ega.
Maxfiylik nuqtai nazaridan K=(k
0
k
1.
...... k
n
) oson esda saqlash uchun kalit
sifatida so`z yoki fraza qo`llash keng fraza qo`llash keng tarqalgan.
Information sistemada axborot xavfsizligini ta`minlash uchun buni qo`llab
bo`lmaydi, kalitlar xosil qilishda kalitlarning tasodifiy generatsiyasining dasturiy
va optimal varianti ishlatiladi.
Masalan : Dastlabki matn
НЕ_CЛЕДУЕМ_ВЫБИРАТЪ_НЕСЛУЧАЙНЫЙ_КЛЮЧ_
Vijiner o`rniga sistemasi yordamida matn xosil qilish (r=4). Kalit:ключ
(Vijiner jadvalini qo`llagan xolda) ularga kalit qo`shamiz.
H+K=R E+L=P va ….
Shifrlangan matn xosil qilamiz.
ЧРЕЗ ХРБИЙ ПЭЭШ ДМЭЖ КЕЩЦ ЧРОБ ЭБЮ ЧЭЖЦ ФЦЫИ
Vijinerning shifrlash tizimi. Birinchi bo’lib Vijiner tizimi 1586-yilda
chop etilgan va u ko’p alfavitli tizimga nisbatan yuqoriroq o’rinda turadi. Bleza
Vijinera o’zini XVI asrning frantsuz diplomati deb hisoblaydi. U kriptografiya
tizimiga, ya’ni uning rivojlanishiga o’z hissasini qo’shgan. Vijiner tizimi TSezar
shifrlash tizimiga qaraganda mukammalroq hisoblanib, unda kalit harfidan harfga
almashtiriladi. Bunday ko’p alfavitli almashtirish shifrini shifrlash jadvali orqali
ifodalash mumkin. Quyidagi jadvalda Vijinerning ingliz alfaviti uchun mos
keluvchi jadval ko’rsatilgan.
Bu jadvaldan matnni shifrlash va uni ochish uchun ishlatiladi.
Jadvalning ikkita kirishi bo’lib:
Yuqori qatordagi xarflardan kiruvchi ochiq yozuv uchun
foydalaniladi.
CHap ustundan esa kalit harflaridan foydaniladi.
Misol uchun kalit ketma-ketligini r-deb olaylik, u holda kalit r-alfavitli r-
satrdan iborat bo’ladi.
π=(π
0
, π
1
,…,π
r-1
);
Vijinerning shifrlash tizimida ochiq matn x=(x
0
,x
1
,…,x
n-1
) va shifrlangann
matn y=(y
0
,y
1
,…,y
n-1
) ko’rinishga ega. π=(π
0
, π
1
,…,π
r-1
) kalit yordamida
quyidagicha munosabatda bo’ladi.
x=(x
0
,x
1
,…,x
n-1
)
y= (y
0
,y
1
,…,y
n-1
);
(y
0
,y
1
,…,y
n-1
)=(π
0
(x
0
),π
1
(x
1
),…,π
n-1
(x
n-1
));
Quyida Vijiner jadvali berilgan undan foydalanib biz berilgan kalit so`z
yordamida axborotni shifrlaganimizda qanday kod kelib chiqishini hisoblab
olishimiz mumkin va bundan tashqari shifrlangan ma`lumotni o`zimiz
mustaqil programmasiz deshifrlashimiz mumkin. Ushbu jadavalda kalit so`z
va matnni oson o`qib olish va tushunish imkoni mavjuddir.
Yuqoridagi ifodadan ma’lumki Vijiner jadvali orqali shifrlashda matnning
(axborotning) har bir harfiga mos keluvchi kalitning har bir harfi orqali ularning
ustun va satrlari kesishmasiga mos keluvchi harflar olinadi. Agar o’zbek – kiril
alfaviti ishlatilsa, Vijiner matritsasi [36x36] o’lchamga ega bo’ladi. Masalan,
Agar kalit sifatida so’zi tanlangan bo’lsa, shifrlash matritsasi beshta
qatordan iborat bo’ladi.
ABVGDEYoJZIYKLMNOPRSTUFXTSCHSH’EYuYaO’QG’H_
KLMNOPRSTUFXTSCHSH’EYuYaO’QG’H_ABVGDEYoJZIY
O’QG’H_ABVGDEYoJZIYKLMNOPRSTUFXTSCHSH’EYuYa
ZIYKLMNOPRSTUFXTSCHSH’EYuYaO’QG’H_ABVGDEYoJ
ABVGDEYoJZIYKLMNOPRSTUFXTSCHSH’EYuYaO’QG’H_
Misol. K= kaliti yordamida T= dastlabki
matni shifrlansin.
Ochiq matn
B
A
Y
R
A
M
_
K
U
N
I
Kalit
K
O’ Z
A
K
O’ Z
A
K
O’ Z
SHifrlangan
matn
L
O’ S
R
K
Z
J
K
O’ I
R
T
1
=LO’SR_KZJK_O’IR
*
k
y
x
k
k
y=x
k=x
Kiruvchi yozuv
Shifrlangan yozuv
Tiklangan yozuv
Kalit ketma-ketligi
XULOSA
Internet texnologiyalarining yaratilish turli manbalardan tez va oson yo’l
bilan axborot olish imkoniyatlarini hamma uchun - oddiy fuqarodan tortib yirik
tashkilotlargacha misli ko’rilmagan darajada oshirib yubordi. Davlat
muassasalari, fan-ta'lim muassasalari, tijorat korxonalari va alohida shaxslar
axborotni elektron shaklda yaratib, saqlay boshladilar.
Bu muhit avvalgi fizikaviy saqlashga nisbatan katta qulayliklar tug’diradi:
saqlash juda ixcham, uzatish esa bir onda yuz beradi va tarmoq orqali boy
ma'lumotlar bazalariga murojaat qilish imkoniyatlari juda keng. Axborotdan
samarali foydalanish imkoniyatlari axborot miqdorining tez ko’payishiga olib
keldi. Biznes qator tijorat soxalarida bugun axborotni o’zining eng qimmatli
mulki deb biladi. Bu albatta ommaviy axborot va hamma bilishi mumkin bo’lgan
axborot haqida gap borganda o’ta ijobiy hodisa. Lekin pinhona (konfidensial) va
maxfiy axborot oqimlari uchun Internet qulayliklari bilan bir qatorda yangi
muammolar keltirib chiqardi. Internet muhitida axborot xavfsizligiga tahdid
keskin oshdi.
Yuqorida yaratilgan Shifrlash – deshifrlash dasturi axborotni uzatish va
qabul qilish ishlarida himoyalash maqsadida ishlatiladi.Ma’lumki hozirgi
kunda ko’pgina sohalarda axborot eng qimmatli mulk hisoblanadi.Yaratilgan
dastur bir oz bo’lsada yuborilayotgan matnli axborotni himoyalashga xizmat
qiladi.Yuborilayotgan matnda albatta kalit ham joylashgan , lekin shifrlangan
matnni faqat shifrlash usulini va kalitni bilganlargina ochish imkoniyatiga ega
bo’ladi. Vijiner shifrining qulayligi bu bizga yuborilayotgan ma`lumotni o`rta
holatdagi ishonchlilik bilan shifrlash mumkin. Ma`lumotlar bazasi, electron
xujjatlar va boshqa maxfiy ma`lumotlarni shifrlash shifrlovchi va deshifrlovchi
o`rtasida ma`limotlarni ishonchli yo`l orqali yetkazish imkonini beradi.
Bu dastur foydalanuvchilarga qulay va tushunarliligi hamda barcha
hisoblashlar shifrlash va deshifrlashlar barchasi bir oynaga joylashtirilganligi
bilan osonlik tug`diradi..
Vijiner shifrining kamchiligi – yuqori ishonchlilikni ta'minlash uchun
aytarlicha uzun kalitlarning talab etilishi. Bitta harfdan iborat kalitla shifr Sezar
shifri, chegaralanmagan qaytarilmaydigan kalitli shifr Vernam shifri sifatida
ma'lum. Shifrlash uchun faqat harflardan foydalanish ya`ni raqamlarni shifrlab
bo`lmaslik ham dastur kamchiligi hisoblnadi. Kalit so`zlar uzun 5ta harfdan kam
bo`lmagan holda foydalanuvchini yodida tez saqlanmasligi mumkin hisoblanadi.
Ma`lumotlarni muxofazalash uslublarining amalga qo`llanilishi masalasi
quyidagi o`zining muxim tomonlariga ega.
Kriptografik algoritmlarning amalda qo`llanilishini ta`minlovchi
vositalarni yaratish va ishlab chiqarish
Yaratilgan yoki ishlab chiqarilgan vositalardan foydalanish
uslublari.
Shifrlash va deshifrlash amallarining asbob uskunalari vositasida
ta`minlanishimaxsus electron sxemalar asosida amalga oshiriladi va unda
gammalashtirish uslubi yuqori darajadagi kriptobardoshlilikni ta`minlab nisbatan
soddaroq amaliy qo`llanilish imkoniyatlariga ham ega. Gammalashtirishning
asosini tashkil etuvchi tasodifiy bitlar ketma ketligini ishlab chiqaruvchi
generator sifatida chiziqli va chiziqli bo`lmgan amallarni bajaruvchi qo`shish
registrlaridan iborat foydalaniladi
Foydalanilgan adabiyotlar
1. Гради Буч. Объектно –ориентированной анализ и проектирование с
примерами приложений на С++. Невский диалект, 560 стр, 2001 г.
2. Грехем И. Объектно ориентированные методы. Принципы и
практика. Вильямс. 879 стр, 2004 г.
3. Иванова
Г.С. Объектно ориентированное программирование.
Учебник. МГТУ им Баумана. 320 стр, 2003 г.
4. Фаулер М., Скотт К. UML в кратком изложении. Применение
стандартного языка объектного моделирования. М., Мир, 1999.
5. Буч Г., Рамбо Д., Джекобсон А. Язык UML: руководство
пользователя. М., ДМК, 2000.
6. Пол Айра. Объектно-ориентированное программирование на С++.
Второе издание.
М.: Бином, 1999.
7. Подбельский В.В. Язык С++
М.: Финансы и статистика, 1996.
8. Akbarov Davlatali Yigitalievich “Axborot havfsizligini ta`minlashning
kriptografik usullari va ularning qo`llanilishi” Toshkent 2009
9. http//msdn.microsoft.com
10. http//stackoverfloor.com
11. http//cyberForm.ru
12. http//cplusplus.com
Ilova
Vijiner usulida axborotni shifrlovchi va deshifrlovchi dastur kodi
quyidagicha bo`ladi..
#include
#include
using
namespace
std;
#pragma
once
class
MyClass
{
public
:
string key;
MyClass(
void
);
void
GetReady(string key){
for
(
int
i = 0; i < key.length(); ++i){
if
(key[i] >=
'A'
&& key[i] <=
'Z'
)
this
->key += key[i];
else
if
(key[i] >=
'a'
&& key[i] <=
'z'
)
this
->key += key[i] +
'A'
-
'a'
;
}
}
string encrypt(string text){
string out;
for
(
int
i = 0, j = 0; i < text.length(); ++i){
char
c = text[i];
if
(c >=
'a'
&& c <=
'z'
)
c +=
'A'
-
'a'
;
else
if
(c <
'A'
|| c >
'Z'
){
out += c;
continue
;
}
out += (c + key[j] - 2*
'A'
) % 26 +
'A'
;
j = (j + 1) % key.length();
}
return
out;
}
string decrypt(string text){
string out;
for
(
int
i = 0, j = 0; i < text.length(); ++i){
char
c = text[i];
if
(c >=
'a'
&& c <=
'z'
)
c +=
'A'
-
'a'
;
else
if
(c <
'A'
|| c >
'Z'
){
out += c;
continue
;
}
out += (c - key[j] + 26) % 26 +
'A'
;
j = (j + 1) % key.length();
}
return
out;
}
};
Ushbu kod orqali Visual Studio 2010 dasturida axborotni shifrlash va
deshifrlash mumkin.
1-rasm
Yuqoridagi rasmda Vijiner shifrlash dasturini *exe faylda “?” tugmachasi
mavjud va u orqali dastur haqida ma`lumot olish imkoniga ega bo`lasiz.. “?”
tugmachasi bosilganda
“Bu dastur 912-14 guruhi talabasi Bekchanova Anabibi tomonidan
yaratildi. Dastur yordamida kalit so'zlar orqali so'zlarni Vijiner shiflash
usuli yordamida shifrlash va deshifrlash mumkin.
Dasturda shifrlash fayllar tomonidan amalga oshirilishi mumkin bo'lib,
shifrlanishi yoki deshifrlanishi zarur bo'lgan matn *.txt kengaytmali fayl
yozdamida o'qib olinishi mumkin, dastur natijasini ham xuddi shuningdek
*.txt kengaytmada saqlab qo'yish mumkin” matni berilgan.. Bu matnga asosan
dastur nima haqida ekanligi va undan qanday foydalanish qisman ma`lumot olish
imkoniga ega bo`lamiz. (1-rasm). Dastur foydalanuvchiga qulay bo`lishi uchun
qisqacha ma`lumot berib o`tilgan. Va bulardan tashqari oynani kattalashtirish
imkoni, dasturni olib qo`yish yoki undan butun oyna bilan foydalanish imkoni
mavjud hisoblanadi….
// Virgenere_Crypth.cpp : main project file.
#include
"stdafx.h"
#include
"Form1.h"
#include
#include
using
namespace
std;
using
namespace
Virgenere_Crypth;
[STAThreadAttribute]
int
main(
array
^args){
// Enabling Windows XP visual effects before any controls are created
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(
false
);
// Create the main window and run it
Application::Run(
gcnew
Form1());
return
0;
}
Bu kod Vijiner shifrlash dasturida shifrlovchi oyna yaratish kodidir….
2-rasm
Bu dasturning asosiy oynasi hisoblanib unda shifrlash va deshifrlashlar
hisoblaniladi. Bu oyna *exe fayl ko`rinishida kompyuter hotirasiga saqlangan
bo`lib undan foydalanish uchun foydalanuvchiga qulay joyga ko`chirib olib
qo`sak ham bo`ladi. Hozir oynada aynan ma`lumotni shifrlash ko`rsatilgan
bo`lib,
bunda kalit so`z va matn kiritiladi javob tariqasida esa TVBX YWGBPFL
KIMKDPN.Bundan tashqari matnlarni fayldan o`qish va faylga saqlash mumkin.
3-rasm
3-rasmda aynan fayldan o`qib olish ko`rsatilgan. Bu ilova orqali
kompyuter hotirasida berilgan xoxlagan *txt faylni yuklab olib uni shifrlash va
qabul qiluvchiga jo`natish mumkin. Bundan foydalanish asosan uzun matnlarni
shifrlaganda uni har safar qayta qayta yozmasdan aksincha fayldan o`qib olib
Shifrlash va jo`natish oson va qulaylik tug`diruvchi avzalliklaridan biri
hisoblanadi
4-rasm
4-rasmda berilgan axborotni deshifrlash keltirilgan, bunda axborotni kalit
so`z orqali deshifrlab berilgan matn rasshifrovka qilingan. Berilgan matnni
deshifrlagandan so`ng uni faylga saqlash mumkin keying ya`ni 5-rasmda
deshifrlangan matnni saqlash ko`rsatilgan.
Ushbu rasmda deshifrlangan ma`lumotni *txt fayl ko`rinishida kompyuter
hotirasiga saqlash imkonini berivchi oyna ko`rsatilgan. Bunda matnni
deshifrlagandan so`ng matnni ozini jo`natish uchun qulay usulda xotiraga saqlab
keyinchalik jo`natish ma`qul topiladi.
Aynan ushbu oynada biz openFileDialog1 nomi bilan kompyuter hotirasiga
ma`lumotni saqlab undan har safar foydalanish imkoniga egamiz.
Demak biz matnni bir marta deshifrlasak kifoya undan foydalanish cheksiz
martalik imkoniyatni beradi (o`chirib tashlashdan boshqa hollarda).Ushbu rasm
faylga *txt fayl qilib saqlab qo`yish imkonini beradi. Bunda xoxlagan (C,D)
diskdan joy ajratib saqlab qo`yish mumkin.
Do'stlaringiz bilan baham: |