6
a
5
a
4
a
3
a
2
a
1
a
0
s
2
s
1
s
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
s
i
функцияны модулі 2 бойынша үйірткі ретінде қарастыра отырып, аламыз:
s
0
= a
0
a
3
a
5
a
6
s
1
= a
1
a
3
a
4
a
6
s
2
= a
2
a
3
a
4
a
5
s
i
функциялар оларды құрастыратын разрядтын біреуінде қателік болғанда бірге
айналады, және нөлге – қателік болмағанда. Осы талапты қамтамасыз етуге болады, егер
130
разрядтардын бір бөлігі арнайы түрде құрастырылатын болса. a
0
, a
1
, a
2
разрядтарды басқа
разрядтардың модулі 2 бойынша үйірткісі ретінде қарастыруға болады, олар келесі
теңдеуге қатысады:
a
0
= a
3
a
5
a
6
a
1
= a
3
a
4
a
6
a
2
= a
3
a
4
a
5
Табылған тәуелсіздіктер берілген ақпараттық сөздер бойынша кодты сөздерді
генерациялаға, және де қабылданған кодты сөздер үшін синдромды есептеуге мүмкіндік
береді.
Бастапқы ақпараттық сөз 1101 тең болсын, яғни a
6
=1, a
5
=1, a
4
=1, a
3
=1. Бөгеуілге
тұрақты Хэмминг (7,4)-кодының мүмкін кодты сөзіне оны түрлендіру үшін бақылау
разрядтарды есептейік:
a
1
= 1 0
1 = 1,
a
1
= 1 0
1 = 0,
a
2
= 1 0
1 = 0.
Сонымен, бақылау разрядтарды еске алғанда кодты сөз 1101001 тең болады.
Егер беру немесе сақтау процесінде сөз бұрмаланбаған болып қалса, онда оның
синдромы s
0
… s
2
сәйкес тең болады:
s
0
= 1 1 1
1 = 0,
s
1
= 0 1 0
1 = 0,
s
2
= 0 1 0
1 = 0.
Тек нөлден ғана тұратын синдром қателік жоқ дегенді көрсетеді және нөлдік
қателік векторға сәйкес.
Беру немесе сақтау барысында сыртқы факторлар әсерінен кодты сөздің жеке
разряды бұрмаланған болсын. Мысалы, 1101001 сөздің орнына 1001001 сөз қабылданды.
Бұл жағдайда синдром нөлге тең болмайды: s
0
… s
2
сәйкес тең болады:
s
0
= 1 1 0
1 = 1,
s
1
= 0 1 0
1 = 0,
s
2
= 0 1 0
0 = 1.
Синдром 101 қателік векторға 0100000 сай болады, бұл кезде бірлік қателік болған
разрядты көрсетеді. Оны түзету үшін қабылданған бұзылған кодты сөзді қателік векторы
мен модулі 2 бойынша қосу жеткілікті.
Хэмминг (7,4)-кодының артықтығын есептейік:
%
43
%
100
7
4
7
%
100
n
k
Q
Бұл өте үлкен мән. Тәжірибеде одан күрделі кодтар жиі қолданылады, олар
бөгеуілге тұрақты жақсығырақ сипаттамаларын қамсыздандырады.
14.3 Деректерді сығу принциптері
Жоғарыда айтылғандай, шифрлауға деректерді дайындаудың маңызды есебінің бірі
олардың артықтығын азайту және қолданатын тілдің статистикалық заңдылықтарын
тегістеу. Артықтықты жарым-жартылай жоюына деректерді сығу арқылы жетеді.
Ақпаратты сығу бұл бастапқы хабарды бір кодты жүйеден басқаға түрлендіру
процесі, нәтижесінде хабар мөлшері азаяды. Ақпаратты сығу үшін арналған
алгоритмдарды екі үлкен топқа бөлуге болады: шығынсыз сығу (қайтымды сығу) және
шығыны бар сығу (қайтымсыз сығу).
Қайтымды сығу декодтаудан кейін деректерді абсолют дәл қалпына келтіруді
айтады және ол кез келген ақпаратты сығу үшін қолданылу мүмкін. Ол әрқашан
ақпараттық құрылымын жоғалтпай ақпараттың шығу ағын көлемінің азаюына әкеледі.
Онан әрі, шығу ағыннан, қайталанатын немесе декомпресстау алгоритмы көмегімен, кіру
131
ағынды алуға болады, ал қалпына келтіру процесі декомпрессия немесе түйіншекті шешу
деп аталады. Шығынсыз сығу мәтін, орындалу файлдар, сапалы дыбыс және графика үшін
қолданылады.
Қайтымсыз сығуда әдетте сығу дәрежесі салыстырмалы жоғары, бірақ декодталған
деректердің бастапқыдан кейбір ауытқулар болу мүмкін. Тәжірибеде декомпрессиядан
кейін бастапқы ақпаратты дәл қалпына келтіруді талап етпейтін бірнеше міндеттер бар:
дыбыс, фото- немесе видео бейнелер. Мысалы, мультимедиалық ақпарат форматта JPEG
пен MPEG қайтымсыз сығу қолданылады. Қайтымсыз сығу криптографиялық
шифрлаумен бірге әдетте пайдаланбайды, себебі криптожүйеге қойылатын негізгі талап
дешифрланған деректердің бастапқыға толық ұқсастығы.
Деректерді қайтымсыз сығудың кейбір ең кең таралған тәсілдерін қарап шығайық.
Ең танымал қарапайым жол және ақпаратты қайтымсыз сығу алгоритмы – бұл
тізбектер сериясын кодтау (Run Length Encoding – RLE). Осы жолдың мағынасы –
қайталанатың байт тізбектерін немесе серияларын бір кодтайтын байт-толтырушыға және
олардың қайталау санын есептеуішке ауыстыру. Осындай барлық ұқсас әдістердің
проблемасы - нәтижелі байттар ағынында кодталған серияны басқа кодталмаған байттар
тізбектерінен айыру. Проблеманы кодталған тізбектердің басына белгілер қойып шешуге
болады. Осындай белгілер ретінде кодталған серияның бірінші байттағы биттердің
сипатты мәні және кодталған серияның бірінші байт мәні болу мүмкін. RLE әдістің
кемшілігі төмен сығу дәрежесі немесе аз сериялар саны бар файлды кодтау бағасы.
Ақпаратты бір қалыпты кодтауда хабарға, оның пайда болу ықтималдығына
қарамастан, бірдей бит саны бөлінеді. Сонымен қатар, егер жиі кездесетін хабарларды
қысқа кодты сөздермен кодтаса, ал сирек кездесетіндерді - ұзынырақ сөздермен кодтаса,
онда берілетің хабарлардың жалпы ұзындығы азаяды деп болжау жасауға болады. Мұнда
айнымалы ұзындығы бар кодты сөзден тұратын кодты пайдалану қажеттілігіне
байланысты проблемалар туады. Осындай кодты құруға бірнеше жолдар бар.
Тәжірибеде кең қолданылатылардың біреуі сөздік әдістер, олардың негізгі өкілдері
Зива мен Лемпел алгоритмдары. Оның негізгі идеясы - кіру ағынның фрагменттері
(«сөйлемдер») мәтінде бұрын болған орынға көрсететін сілтегішпен ауыстырылады.
Әдебиетте осындай алгоритмдар LZ сығу алгоритмы деп белгіленеді.
Сол сияқты әдіс мәтін құрылымына тез лайықтанады және қысқа функционалды
сөздерді кодтай алады, себебі олар мәтінде жиі кездеседі. Жаңа сөздер мен сөйлемдер
бұрын кездескен сөздердің бөліктерінен де құрастырылу мүмкін. Сығылған мәтіннің
декодтауы тікелей жүргізіледі, - сілтегішті сөздіктен алынған дайын сөйлеммен
ауыстырады. Тәжірибеде LZ-әдісі жақсы сығуды жеткізе алады, оның маңызды қасиеті
декодердің өте жылдам жұмысы.
Ақпаратты сығудың тағы бір жолы кодер мен декодеры қарапайым аппараттық
жүзеге асыруы бар Хаффман коды болып табылады. Алгоритмның идеясы мұндай:
хабарға символдардың кіру ықтималдығын біле отырып, айнымалы ұзындығы бар бүтін
бит санынан тұратын кодты құру процедурасын бейнелеуге болады. Үлкен ықтималдығы
бар символдарға қысқа код беріледі, ал сирек кездесетін символдарға – ұзынырақ. Осы
себептен кодты сөздің орта ұзындығы қысқарады және сығудың тиімділігі өседі. Хаффман
кодында бірегей префиксы (кодты сөздің басы) бар, сондықтан оларды айнымалы
ұзындығына қарамастан бір мәнді декодтауға болады.
Хаффман классикалық кодын синтездеу процедурасын жүргізу үшін хабар көзінің
статистикалық сипаттамасы туралы априорды ақпарат болу қажет. Басқаша айтқанда,
хабарды құрайтын қандай да болса символдардың пайда болу ықтималдығы
құрастырушыға белгілі болу керек. Хаффман кодының синтезін қарапайым мысал
көмегімен қарастырайық.
Ақпарат көзі төрт әртүрлі символды S
1
… S
4
генерациялайтын болсын, олардың
шығу ықтималдығы p( S
1
)=0,2, p( S
2
)=0,15, p( S
3
)=0,55, p( S
4
)=0,1. Символдарды шығу
ықтималдығы азаю бойынша сұрыптайық және кесте түрінде көрсетейік (сурет 14.3, а).
132
Кодты синтездеу процедурасы үш негізгі кезеңнен тұрады. Бірінші кезеңде кесте
жолдары бүктеледі: ең кіші ықтималдығы бар символдарға сәйкес екі жол жиынтық
ықтималдығы бар бір жолға ауыстырылады, осыдан кейін кесте қайта реттеледі. Үйірткі,
кестеде жиынтық ықтималдығы бірге тең, бір жол ғана қалғанша жүргізіледі (сурет 14.3,
б).
Сурет 14.3. Хаффман кодтаудың бірінші кезеңі
Екінші кезеңде бүктеулі кесте бойынша кодты ағашты құру жүзеге асырылады
(сур. 14.4, а). Ағаш кестенің соңғы бағаннан бастап салынады.
Ағаш түбірін соңғы бағанда орналасқан бірлік құрайды. Қарастырылған мысалда
бұл бірлік ағаштың екі торап түрінде көрсетілген 0,55 және 0,45 ықтималдықтан
жасалынады. Олардың біріншісі S
3
символға сәйкес, және осы тораптың онан әрі
бұтақтануы болмайды.
Екінші 0,45 ықтималдықпен белгіленген торап, үшінші деңгейдің ықтималдықтары
0,25 және 0,2 екі торабымен қосылады. 0,2 ықтималдық S
1
символға сәйкес, ал 0,25
ықтималдығы S
2
символдың пайда болуының ықтималдығынан 0,15 және S
4
символдың
пайда болуының ықтималдығынан 0,1 құрылады.
Сурет 14.4. Хаффман кодтаудың екінші кезеңі
Кодты ағаштың жеке тораптарын қосатын қабырғалар 0 және 1 цифрымен
нөмірленеді (мысалы, сол жақ қабырғалар – 0, ал оң жақтылары - 1).
Үшінші, соңғы кезеңде, кесте құрылады, онда көз символдары және оларға сәйкес
Хаффман кодының кодты сөздері салғастырылады. Осы кодты сөздер қабырғаларды
белгілейтін цифрларды оқудан пайда болады, қабырғалар ағаш түбірінен сәйкес символға
жолды құрайды. Қарастырылған мысал үшін Хаффман коды оң жақ кестеде көрсетілген
түрге келеді (сур. 14.4, б).
133
Бірақ классикалық Хаффман алгоритмның бір маңызды кемшіліг бар. Сығылған
хабар мазмұнын қалпына келтіру үшін кодтаушы пайдаланған жиілік кестесін декодер
білу керек. Демек, сығылған хабардың ұзындығы жиілік кестенін ұзындығына өсу керек.
Ол деректер алдында жіберілу қажет, сондықтан хабарды сығуға жұмсалған күштер босқа
кету мүмкін.
Статикалық Хаффман кодтаудың басқа варианты - кіру ағынды қарап шығу және
жиналған статистика негізінде кодтауды құрастыру. Мұнда файл бойынша екі өту қажет
болады – біреуі статистикалық ақпаратты қарау және жинау үшін, екіншісі – кодтау үшін.
Статикалық Хаффман кодтауда кіру символдарға (түрлі ұзындығы бар бит тізбектері)
айнымалы ұзындығы бар бит тізбектері сәйкестікке қойылады (олардың коды). Әрбір
символдың код ұзындығы оның жиілігінің теріс таңбалы екілік логарифмына
пропорционал алынады. Ал барлық кездескен түрлі символдардың ортақ жиынтығы ағын
алфавиті болып табылады.
Басқа да әдіс бар – адаптивті немесе динамикалық Хаффман кодтауы. Оның жалпы
принципі – кіру ағынның өзгерісіне байланысты кодтау схеманы өзгерту. Осындай жолда
бір өтімді алгоритм алынады және пайдаланған кодтау туралы ақпаратты айқын түрде
сақтауды қажет етпейді. Адаптивті кодтау статикалыққа қарағанда үлкен сығу дәрежесін
береді, өйткені кіру ағын жиілігінің өзгерістері толығырақ еске алынады.
Хаффман әдістері жеткілікті жоғары жылдамдық және сығудың орташа жақсы
сапасын береді. Бірақ Хаффман кодтауында минимал артықтық болады, егер әрбір символ
екі биттен {0, 1} тұратын жеке тізбекпен кодталатын болса. Осы әдістің негізгі кемшілігі -
сығу дәрежесінің символдар ықтималдықтарының 2-нің кейбір теріс дәрежесіне
жақындығына тәуелділігі, өйткені әрбір символ бүтін бит санымен кодталады.
Әбден басқа шешімді арифметикалық кодтау ұсынады. Бұл әдіс кіру ағынды
қалқыма нүктесі бар бір санға түрлендіруге негізделген. Арифметикалық кодтау кіру
алфавиттің символдарын шығынсыз буып-түюге мүмкіндік береді, егер осы
символдардың жиілік үлестіруі белгілі болса.
Арифметикалық кодтау әдісі арқылы сығуда қажетті символдар тізбегі кейбір [0, 1)
аралығындағы екілік бөлшек ретінде қарастырылады. Сығу нәтижесі осы бөлшек жазудың
екілік цифрлар тізбегімен ұсынылады. Әдіс идеясы келесі: бастапқы мәтін осы бөлшектің
жазуы болып қарастырылады, мұнда әрбір кіру символ шығу ықтималдығына
пропорционал салмағы бар «цифр» болып табылады. Осымен ағында символ шығуының
минимал және максимал ықтималдығына сәйкес интервал түсіндіріледі.
Қарастырылған әдістер деректердің қайтымды сығуын қамтамасыз етеді.
Тәжірибеде олардың программалық пен аппараттық іске асыруы қолданылады. Сығу
коэффициенті сығылатын ақпарат типіне байланысты 20-40% болу мүмкін.
Сонымен, криптографиялық шифрлау, бөгеуілге тұрақты кодтау және сығу бір
бірін аздап толықтырады, олардың комплекстік қолдануы берілетін ақпаратты сенімді
қорғау үшін байланыс арналарды тиімді пайдалануына көмектеседі.
Негізгі терминдер
Артықтық - қәдімгі бөгеуілге тұрақты емес кодпен салыстырғанда, кодты сөздің
ұзыңдығы қаншаға үлкейгенің көрсететін бөгеуілге тұрақты кодтың сипаттамасы. Көп
бөгеуілге тұрақты кодтар үшін артықтықты бақылау разрядтар санның кодты сөздің
жалпы разряд санына қатынасы ретінде анықтауға болады.
Код – белгілер жиынтығы және ақпаратты осы белгілер жинағы түрінде ұсынатын
ережелер жүйесі.
Кодты сөз – пайдаланатын ережелер жүйесіне сәйкес мүмкін болатын белгілердің
кез келген қатары.
Минимал кодтық ара қашықтық – кодты құрайтын кез келген қос түрлі кодты
сөздер үшін ең кіші Хэмминг бойынша қашықтық.
134
Бөгеуілге тұрақты код – хабарларды сақтау мен берудегі қателіктерді табуға және
түзетуге мүмкіндік беретін код.
Хэмминг бойынша қашықтық – кодты сөздердің разрядтар саны, оларда сөздер
әртүрлі.
Ақпаратты сығу – бастапқы хабарды бір кодты жүйеден басқаға түрлендіру
процесі, нәтижесінде хабар мөлшері азаяды.
Көршілес кодты сөздер – тек бір разряд мәнімен ерекшеленетің кодты сөздер.
Сұрақтар
1. Ақпаратты комплексті қорғау үшін ақпараттың қандай түрлендіру түрі
пайдаланады?
2. Хабарларды бөгеуілге тұрақты кодтаудың негізгі принциптері қандай?
3. Хэмминг кодымен хабарларды кодтаған кезде қателік синдромы қалай
пайдаланады?
4. Хабарлардың сығуын қамтамасыз ететін код мысалдарын келтіріңіз.
5. Хаффман әдісімен хабарларды кодтаған кезде хабарлардың сығуы нелікпен
қамтамасыз етіледі?
6. Хаффман кодты сөзі қалай құрастырылады?
7. Шығыны бар сығу алгоритмды қандай деректер типі үшін пайдалану орынды?
Бұл немен байланысты?
Жаттығулар
1. Блокты бөгеуілге тұрақты кодтың блок ұзындығы 8 бит. Оның артықтығы 25%
тең. Ондағы ақпараттық разрядтар саны қаншаға тең?
2. Ақпарат көзі пайда болу ықтималдығы p(S
1
)=0,1, p(S
2
)=0,3, p(S
3
)=0,5, p(S
4
)=0,1
бар төрт әртүрлі символ S
1
…S
4
генерацияласын. Осы мәлімет бойынша Хаффман
классикалық код синтезін жасаңыз.
Қорытынды
Берілген курста қазіргі уақытта ең кең тараған ақпаратты криптографиялық қорғау
әдістері қарастырылған. Бірақ криптографиялық ғылым, басқа ғылымдар сияқты, орында
тұрмай дамы береді. Мамандар криптографиялық қорғаудың жаңа әдістерін іздеп табуға
тырысады.
Криптографияның жаңа «саласы» - ассиметриялық криптография бәріне дағдылы
болды. Ашық кілті бар шифрлау алгоритмдар он шақты болса да, ассиметриялық
шифрлаудың жаңа әдістерін іздеп табу жалғаса береді. Мысалы, эллипстік қисықтардағы
алгоритмдер ХХ ғасырдың аяғанда ғана ұсынылған болатын, ал қазіргі уақытта
тәжірибеде белсенді пайдаланады.
Криптографияның басқа салыстырмалы жас тармағы – криптографиялық
протоколдарды зерттеу. Алғашқы протоколдар ХХ ғасырдың екінші жартысында пайда
болсада, қазір бірнеше ондаған әртүрлі протоколдар бар. Криптографиялық протоколдар
теориялық криптографияның зерттеу объектілердің негізгі біреуі болып табылады. Жыл
сайын мамандар жаңа криптографиялық протоколдарды ұсынады, ал криптоталдаушылар
осы протоколдардың сенімділігін дұрыс бағалау керек.
Криптографияның тағы бір салыстырмалы жаңа әзірлеуі кванттық криптография,
ол кванттық физиканың белгілі құбылыстарына негізделген. Кванттық жүйелерде
ақпаратты жарық кванты (фотон) көмегімен оптоволоконды арналар арқылы жіберілу
мүмкін. Кванттық құбылыстарды пайдаланып, білдірмей тыңдауды әрқашан табатын
135
байланыс жүйені жобалауға болады деген пікір бар. Кванттық криптографияның
тәжірибелік жүзеге асыруы әлі алыста және бұл жолда көп кедергілер бар.
Сонымен, криптографиялық әдістердің дамуы тоқтамайды. Олар кең пайдаланады
және ақпаратты комплекстік қорғау тәсілдердің құрамында келешекте қолданылады.
Қолданылған әдебиеттер
1.
Алферов А.П., Зубов А.Ю., Кузьмин А.С. и др. Основы криптографии. – М.:
Гелиос АРВ, 2001. – 122 с.
2.
Брассар Ж. Современная криптология. – М.: Полимед, 1999. – 286 с.
3.
Василенко О.Н. Теоретико-числовые алгоритмы в криптографии. — М.:
МЦНМО, 2003. – 185 с.
4.
ГОСТ 28147-89. Защита криптографическая. Алгоритм криптографического
преобразования. — М.: Изд-во стандартов, 1996.
5.
ГОСТ Р 34.10-94. Криптографическая защита информации. Процедуры
выработки и проверки электронной цифровой подписи на базе асимметричного
криптографического алгоритма. — М.: Изд-во стандартов, 1994.
6.
ГОСТ Р 34.11-94. Криптографическая защита информации. Функция
хэширования. — М.: Изд-во стандартов, 1994.
7.
Зензин О.С., Иванов М.А. Стандарт криптографической защиты – AES. Конечные
поля. – М.: КУДИЦ-ОБРАЗ, 2002. – 176 с.
8.
Коблиц Н. Курс теории чисел и криптографии. — М.: ТВП, 2001. – 261 с.
9.
Мельников В.П. Информационная безопасность и защита информации. – М.: Изд.
центр «Академия», 2008. – 336 с.
10.
Смарт Н. Криптография. - М.: Техносфера, 2005. – 528 с.
11.
Смит Р.Э. Аутентификация: от паролей до открытых ключей. – М.: Изд. дом
«Вильямс», 2002. – 432 с.
12.
Тилборг ван Х.К.А. Основы криптологии. – М.: Мир, 2006. – 471 с.
13.
Фергюссон Н., Шнайер Б. Практическая криптография. - М.: Изд. дом
«Вильямс», 2005. – 424 с.
14.
Фомичев В.М. Дискретная математика и криптология. – М.: ДИАЛОГ-МИФИ,
2003. - 400 с.
15.
Харин Ю.С. и др. Математические основы криптологии. – Мн.: БГУ, 1999. – 319
с.
16.
Щербаков Л.Ю., Домашев А.В. Прикладная криптография. Использование и
синтез криптографических интерфейсов. – М.: Рус. редакция, 2003. – 416 с.
136
ГЛОССАРИЙ
AES (Advanced Encryption Standard) – АҚШ-та 2001 жылдан деректерді шифрлау
облыста мемлекеттік стандарт ретінде пайдаланатын шифрлау алгоритмы. Стандарт
негізінде Rijndael шифры жатыр. Rijndael / AES шифры (яғни ұсынылатын стандарт) 128
битты блокпен, кілт ұзындығымен 128, 192 немесе 256 бит және кілт ұзындығына тәуелді
раундтар санымен 10, 12 немесе 14 сипатталады. Rijndael негізін сызықты-ауыстырылу
деп аталатын түрлендірулер құрайды. Rijndael құрылымын 32-ге еселі блок пен кілттің
түрлі мөлшеріне лайықтауға болады және раунд санын өзгертуге болады. Алгоритмда
кестелік есептер кең пайдаланады, барлық қажетті кестелер тұрақты түрде беріледі, яғни
не кілтке не деректерге тәуелді емес.
Ciphertext – шифрланған хабар (жабық мәтін, криптограмма).
CTR – блокты шифрдың жұмыс тәртібі, ақпаратты ағынды шифрлауда кілттерді
генерациялауға мүмкіндік береді.
Deciphering – ашып оқу, дешифрлау.
DES (Data Encryption Standard) – АҚШ-та 1977 жылдан 2001 жылға дейін
деректерді шифрлау облыста мемлекеттік стандарт ретінде пайдаланған шифрлау
алгоритмы. DES-ң негізгі параметрі: блок өлшемі 64 бит, кілт ұзындығы 56 бит, раунд
саны – 16. DES бұл екі бұтағы бар классикалық Фейштель желісі. Алгоритм бірнеше
раундта деректердің 64-битты кіру блогын 64-битты шығу блокка түрлендіреді. DES
стандарты орын ауыстыруды, алмастыруды және гаммалауды араластырып пайдаланады.
Достарыңызбен бөлісу: |