34
Сосын алынған екілік сандарды бір бірінің астында жазу керек және әрбір қос
символдарды екі модулі бойынша қосу керек. Екі екілік белгіні қосқан кезде 0 аламыз,
егер бастапқы екілік символдар бірдей болса, және 1 аламыз, егер цифрлар әртүрлі:
0 0 = 0;
0 1 = 1;
1 0 = 1;
1 1 = 0.
Екі модулі бойынша екі екілік санды 1110 және 1100 қосайық:
Бастапқы сан 1 1 1 0
Гамма 1 1 0 0
Нәтижесі 0 0 1 0
Қосу нәтижесінде біз алдық екілік сан 0010. Егер оны ондық түрге ауыстырсақ,
аламыз 2. Сонымен, 14 санға 12 кілті бар гаммалауды қолдап, нәтижесінде алдық 2 санды.
Дешифрлауды қалай орындаймыз? Шифрланған сан 2 екілік түрде жазылады және
қайтадан екі модулі бойынша кілтпен қосу жүргізіледі:
Шифрланған сан 0 0 1 0
Гамма 1 1 0 0
Нәтижесі 1 1 1 0
Алынған екілік мәнінің 1110 ондық түрге ауыстырамыз және аламыз 14, яғни бұл
бастапқы сан.
Сонымен, 2 модулі бойынша гаммалау кезінде шифрлау үшін да дешифрлау үшін
да бірдей операцияны пайдалану керек. Бұл бірдей алгоритмды және оған сәйкес
программалық жүзеге асыруда бірдей программаны пайдалануға мүмкіндік береді.
Екі модулі бойынша қосу операциясы компьютерде өте тез орындалады (басқа
арифметикалық операцияларға қарағанда), сондықтан тіпті үлкен ашық мәтінге гамманың
салуы лезде жасалынады. Сол себептен, қазіргі техникалық жүйелерде гаммалау әдісі кең
қолданылады.
Жалпы жағдайда екі модулі бойынша гаммалау қалай орындалатының
тұжырымдайық:
бастапқы мәтіннің символдары мен гамма екілік кодта беріледі және бір бірінің
астында орналасады, бұл кезде кілт (гамма) неше рет қажет болса сол рет
жазылады;
екілік белгілердің әрбір жұбы екі модулі бойынша қосылады;
алынған екілік белгілердің тізбегі таңдалған коды бойынша алфавит
символдарымен кодталады.
2.5 суретте орыс символдарынан тұратын мәтінге гаммалаудың қолдануы
көрсетілген. Қабылданған кодтауға сәйкес символдар кодталады, ал сосын екі модулі
бойынша қосу орындалады.
Гаммалау әдісті пайдаланғанда қосуды орындайтын тізбек - гамма кілт болып
табылады. Егер гамма шифрлауға арналған хабардан қысқа болса, онда гамма қажетті рет
қайталанады. Мысалы, 2.5 суретте бастапқы хабардын ұзындығы 12 байтқа тең, ал кілт
ұзындығы – 5 байт. Сондықтан, шифрлау үшін гамма екі рет толық қайталану керек және
бір рет жартылай.
Кілт негұрлым ұзын болса, соғұрлым гаммалау шифрлау әдісінің сенімділігі
жоғары. Тәжірибеде кілт ұзындығы деректер алмасу аппаратураның және есептеуіш
техниканың мүмкіндігімен шектелген. Яғни кілтке бөлінген жад көлемімен, хабарды
өңдеу уақытымен, және кілттер тізбегін дайындау мен жазу аппаратураның
мүмкіншілігімен. Одан басқа, кілтті пайдалану үшін, алдымен кейбір сенімді жолмен оны
хабарлармен алмасатын екі жаққа жеткізу қажет. Бұл кілттерді үлестіру проблемасына
әкеледі, оның шешу күрделігі кілттің ұзындығының және абонентер санының өсуімен
көбейеді.
35
Сурет 2.5. Гаммалау механизмы
2.3 Орын ауыстыру әдістер
Орын ауыстыру шифрларын пайдалану кезінде бастапқы мәтіннің кіріс ағыны
блоктарға бөлінеді, олардың әрбіреуінде символдардың орын ауыстыруы орындалады.
Классикалық «компьютерге» дейін криптографияда, орын ауыстыру геометриялық
пішіннің түрлі жолдары бойынша бастапқы мәтінді жазу және шифрланған мәтінді оқу
нәтижесінде алынатын.
Орын ауыстырудың қарапайым мысалы - тіркелген d периоды бар орын ауыстыру.
Бұл әдісте хабар d символы бар блоктарға бөлінеді және әрбір блокта бірдей орын
ауыстыру жүргізіледі. Орын ауыстыруды орындайтын ереже кілт болып табылады және
бірінші d натурал сандардың кейбір орын ауыстыруымен берілу мүмкін. Нәтижесінде
хабардың әріптері өзгермейді, бірақ басқа ретімен беріледі.
Мысалы, d=6 үшін орын ауыстыру кілтін 436215 деп алуға болады. Бұл көрсетеді: 6
символдан тұратын әрбір блокта төртінші символ бірінші орынға қойылады, үшінші
символ – екінші орынға, алтыншы – үшіншіге және т.с.с. Мынадай мәтінді шифрлау керек
болсын:
ЭТО_ТЕКСТ_ДЛЯ_ШИФРОВАНИЯ
Бастапқы хабарда символдар саны 24, сондықтан хабарды 4 блокқа бөлу керек.
Орын ауыстыру 436215 көмегімен шифрлаудың нәтижесі мұндай хабар болады
_ОЕТЭТ_ТЛСКДИШР_ЯФНАЯВОИ
Теорияда, егер блок d символдан тұратын болса, онда мүмкін болатын орын
ауыстырулар саны
d! = 1*2*...*(d-1)*d.
36
Соңғы мысалда d=6, сондықтан орын ауыстырудың саны
6! = 1*2*3*4*5*6 = 720.
Сонымен, егер қарсылас шифрланған хабарды қолына ұстап алса, онда оған бастапқы
хабарды (блок мөлшері белгілі болса) ашып оқу үшін 720 артық емес әрекет қажет
болады.
Криптоберіктікті күшейту үшін шифрланатын хабарға екі не одан көп түрлі
периоды бар орын ауыстыруларды қолдауға болады.
Орын ауыстырулардың басқа мысалы - кесте бойынша орын ауыстыру. Бұл әдісте
бастапқы мәтін кейбір кестенің жолдары бойынша жазылады және ол сол кестенің
бағандары бойынша оқылады. Жолдарды толтыру және бағандарды оқу реті әртүрлі болу
мүмкін және кілт арқылы беріледі.
Мысал қарастырайық. Кодтау кестеде 4 баған мен 3 жолы болсын (блок мөлшері
тең 3*4=12 символ). Мына мәтінді шифрлайық:
ЭТО ТЕКСТ ДЛЯ ШИФРОВАНИЯ
Бастапқы хабарда символдар саны 24, сондықтан хабарды 2 блокқа бөлу керек.
Әрбір блокты өзінің кестесіне жолдар бойынша жазайық (2.10 кесте).
Кесте 2.10. Кесте бойынша орын ауыстыру әдісімен шифрлау
1 блок
Э
Т
О
Т
Е
К
С
Т
Д
Л
2 блок
Я
Ш
И
Ф
Р
О
В
А
Н
И
Я
Сосын әрбір блокты кестеден бағандар бойынша оқып отырамыз:
ЭТТТЕ ОКД СЛЯФА РНШОИИВЯ
Бағандарды рет-ретімен емес те оқуға болады, мысалы былай: үшінші, екінші,
бірінші, төртінші:
ОКДТЕ ЭТТ СЛШОИ РНЯФАИВЯ
Бұл жағдайда бағандарды оқу реті кілт болып табылады.
Егер хабар ұзындығы блок мөлшеріне еселі болмаса, онда хабарды мағынасын
бұзбайтын кейбір символдармен толтыруға болады, мысалы ақ жерілермен. Бірақ, былай
істеуге болмайды, өйткені қарсылас криптограмманы ұстап алса, онда пайдаланатың орын
ауыстыру кестенің мөлшерін (блок ұзындығын) біліп қояды. Блок ұзындығын
анықтағаннан кейін қарсылас блок ұзындығының бөлгіштерінің арасында кілт ұзындығын
да (кестенің бағандар санын) табалады.
Орын ауыстыру кестенің мөлшеріне ұзындығы еселі емес хабарды қалай шифрлап
дешифрлауға болатының қарап шығайық. Мына сөзді шифрлайық
ПЕРЕМЕНКА
Бастапқы хабарда символдар саны 9. Хабарды кестеге жолдар бойынша жазайық
(2.11 кесте), ал соңғы үш ұяшықты бос қалдырамыз.
Кесте 2.11. Кесте бойынша орын ауыстыру әдісімен толық емес блокты шифрлау
П
Е
Р
Е
М
Е
Н
К
А
Достарыңызбен бөлісу: |