А. Ж. Асамбаев криптография негіздері


Кері  байланысы  бар  гаммалау  тәртібі



Pdf көрінісі
бет8/19
Дата15.03.2017
өлшемі2,01 Mb.
#9839
1   ...   4   5   6   7   8   9   10   11   ...   19

Кері  байланысы  бар  гаммалау  тәртібі  гаммалау  тәртібіне  ұқсайды  және  тек 
гамма  элементтерін  жасау  тәсілімен  ғана  ерекшеленеді.  Кері  байланысы  бар  гаммалауда 
кезекті  64-битты  гамма  элементі  ГОСТ  28147-89  алгоритмдың  базалық  циклы  бойынша 
бұрыңғы  шифрланған  деректер  блокты  түрлендіру  нәтижесі  ретінде  жасалынады. 
Деректер  массивының  бірінші  блогын  шифрлау  үшін  гамма  элементі  синхрожөнелту 
циклы  бойынша  түрлендіру  нәтижесі  ретінде  жасалынады.  Осымен  блоктар  тіркелуіне 
жетеді – бұл тәртіпте әрбір шифрмәтін блогы ашық мәтіннің сәйкес және барлық бұрыңғы 
блоктарына  тәуелді.  Сондықтан,  берілген  тәртіпті  кейде  блоктар  тіркелуі  бар  гаммалау 
деп атайды. Шифр беріктігіне блоктар тіркелуі ешқандай әсер етпейді.  
Шифрланған  деректер  массивінде  бұрмалауды  табу  үшін  ГОСТ  28147-89-да 
криптографиялық түрлендірудің қосымша тәртібі бар – еліктеу ендірмені жасау. Еліктеу 
ендірме  –  бұл  ашық  деректерге  және  құпиялы  кілттік  ақпаратқа  тәуелді  бақылау 

 
61 
комбинациясы.  Еліктеу  ендірменің  пайдалану  мақсаты  ақпарат  масивінде  барлық 
кездейсоқ немесе  әдейі  өзгертулерді  табу. Еліктеу ендірмені  жасау тәртібінде кіру  мәтін 
блоктар арқылы келесі түрде өңделеді: 
Y = f((X
i-1
), K)      1-ден n-ға дейін барлық  i үшін, 
мұндағы  f - ГОСТ 28147-89 бойынша базалық цикл;  X
i-1
 – бастапқы мәтіннің 64-разрядты 
блогы; К – кілт. 
Еліктеу ендірме ретінде шығуда алынған Y
n
  блоктың бөлігі  алынады,  әдетте  оның 
32 кіші биты. 
Сонымен,  қаскүнем  шифрлау  кілтті  білмей,  берілген  ашық  ақпарат  массивы  үшін 
еліктеу ендірмені есептей алмайды, және берілген еліктеу ендірме үшін ашық деректерді 
таңдап алалмайды.   
 
5.4 ГОСТ 28147-89 және DES шифрлау алгоритмдарының айырмашылығы 
 
ГОСТ  28147-89  алгоритмның  сенімділіг  жеткілікті,  себебі  шифрлау  кілттің 
ұзындығы үлкен. 
Біз  білеміз,  шифрланған  хабардың  құпиялығы  кілттің  құпиялығымен  анықталу 
керек. Яғни криптоталдаушыға шифрлау алгоритмы белгілі болса да, сәйкес кілті қолында 
болмағанда,  хабарды  ашып  оқуға  мүмкіндігі  болмау  керек.  Барлық  классикалық  блокты 
шифрлар, сонын қатарында DES пен ГОСТ 28147-89, осы принципке сәйкес және оларды 
ашу үшін барлық кілттер кеңістігі (яғни барлық мүмкін кілт мәні) бойынша толық іріктеп 
алуды  жүргізу  керек.  Әрине,  осындай  шифрлардың  беріктігі  пайдаланатын  кілт 
өлшемімен анықталады.  
ГОСТ 28147-89-да жүзеге асырылатын шифрда 256-битты кілт пайдаланады, және 
кілттер кеңістігінің көлемі 2
256
. Егер шифрды бұзуға іріктеп алу мүмкіндігі 10
12
 (бұл жуық 
тең 2
40
) кілттер бір секундта бар есептеуіш жүенің барлық күштері жұмсалса, онда барлық 
2
256
  кілттерді  толық  іріктеп  алу  үшін  қажет  болады  2
216
  секунд  (бұл  уақыт  миллиард 
жылдан астам). 
Айтылған  айырмашылықтарға  келесіні  қосуға  болады.  DES-ң  негізгі  раундында 
бастапқы  хабардың  жүйесіз  орын  ауыстырулары  қолданылады.  ГОСТ  28147-89-да  11-
битты  солға  қарай  циклдық  ығысу  пайдаланады.  Соңғы  операция  бағдарламалық  жүзеге 
асыру  үшін  анағұрлым  ыңғайлы.  Бірақ,  DES  орын  ауыстыру  көшкін  эффекті  күшейтеді. 
ГОСТ 28147-89-да бір кіру биттын өзгеруі бір ауыстыру раундта бір 4-битты блокқа әсер 
етеді,  ол  сосын  келесі  раундтың  екі  4-битты  блогына,  келесінің  үш  блогына  әсерлеседі 
және т.б. ГОСТ 28147-89-да 8 раунд қажет, сосын ғана бір кіру биттын өзгеруі нәтиженің 
әрбір битіне әсер етеді; DES-та осы үшін тек 5 раунд қажет. 
 Және  де  айту  керек,  DES-қа  қарағанда,  ГОСТ  28147-89-де  ауыстыру  операцияны 
орындау  үшін    ауыстыру  кестесін  еркінше  өзгертуге  болады,  яғни  ауыстыру  кестесі 
қосымша 512-битты кілт болып табылады.  
 
Негізгі ұғымдар 
 
ГОСТ  28147-89  –  симметриялық  шифрлаудың  блокты  алгоритмның  ресей 
стандарты. 
 
Сұрақтар 
 
1.  Деректердің  криптографиялық  түрлендіру  ГОСТ  28147-89  алгоритмы  қандай 
мақсат үшін пайдалану мүмкін? 
2. Симметриялық шифрлаудың ГОСТ 28147-89 алгоритмнын негізгі параметрлерін 
айтып беріңіз. 
3. Блокты шифрлау ГОСТ 28147-89 алгоритмда қандай операциялар пайдаланады? 

 
62 
4.  Шифрлау  ГОСТ  28147-89  алгоритмның  DES  алгоритмнан  қандай  негізгі 
айырмашылығы бар? 
5.  ГОСТ  28147-89  стандартты  алгоритмды  пайдаланғанда,  құпиялы  кілттен  басқа 
қандай ақпарат хабарды ашып оқу үшін қажет? 
6.  Криптографиялық  түрлендіру  ГОСТ  28147-89  алгоритмы  көмегімен  қандай 
тәртіпте деректер шифрлауы орындалу мүмкін? 
7.  Еліктеу  ендірме  деген  не?  Қандай  мақсат  үшін  еліктеу  ендірме  пайдалану 
мүмкін? 
 
Жаттығулар 
 
1. Кіру хабардын әрбір үш биты келесі ауыстыру кестесі бойынша ауыстырылсын: 
 
Кіру  Шығу 
000 
011 
001 
101 
010 
000 
011 
111 
100 
010 
101 
110 
110 
001 
111 
100 
 
Бастапқы хабарды үш битты блоктарға бөліңіз және блок бойы ауыстыруды келесі 
цифрлық хабарлар үшін орындаңыз: 
 
1010 1100 1100
(2)

 
2356
(10)

 
0В57
(16)

Ескерту: ондық және он алтылық сандарды алдымен екілік түрге айналдыру қажет. 
 
2. Қарсылас келесі  блокты кодты пайдаланатыны белгілі болсын:  шифрлауда кіру 
хабардың  әрбір  төрт  биты  арнайы  ауыстыру  кесте  арқылы  басқа  төрт  битпен 
ауыстырылады.  Бір  «бастапқы  мәтін  –  шифрланған  мәтін»  жұп  хабары  қолға  түсті. 
Қарсылас  пайдаланатын  ауыстыру  кестесін  анықтаңыз.  Барлық  хабарлар  он  алтылық 
форматта берілген. 
Бастапқы хабар:       5A 43 63 19 1E D0 C7 4B F0 8A 
Шифрланған хабар: 92 37 A7 C0 CE 6B F1 35 8B D2 
 
3.  Блокты  шифрды  ашқаннан  кейін  (2-ші  жаттығу)  қарсылас  пайдаланатын 
шифрлау схемасын келесі түрмен күрделендіреді: шифрлауда хабар сегіз битты блоктарға 
бөлінеді; кіру хабардың бірінші төрт биты бір ауыстыру кесте арқылы басқа төрт битпен 
ауыстырылады, ал екінші төрт биты - басқа ауыстыру кесте арқылы. Екі «бастапқы мәтін 
–  шифрланған  мәтін»  жұп  хабары  қолға  түсті.  Қарсылас  пайдаланатын  ауыстыру 
кестесін анықтаңыз. Барлық хабарлар он алтылық форматта берілген. 
Бастапқы хабар 1:       5A 4D 6B 19 1E 3F 7C 47 F8 
Шифрланған хабар 1: 98 35 AC C1 CE 79 12 34 8D 
Бастапқы хабар 2:       A3 D0 84 F1 96 C8 E5 77 2B 
Шифрланған хабар 2: 2B 66 D0 8A 0F FD E7 14 4C 
 

 
63 
6 КРИПТОГРАФИЯЛЫҚ ХЕШ
-
ФУНКЦИЯЛАР
 
 
Бұл  бөлімде  хеш-функция  ұғымы  тұжырымдалған,  және  хеш-функцияны 
құрастыру  алгоритмдардың  қысқа  шолуы  берілген.  Одан  басқа,  хеш-функцияны 
құрастыру үшін шифрлау блокты алгоритмның пайдалану мүмкіндігі қарастырылған.  
Бөлім  мақсаты:  «хеш-функция»  ұғымымен  және  осындай  функцияның  жұмыс 
принципімен таңысу. 
 
6.1 Хеш-функция ұғымы 
 
Хеш-функция  (hash  function)  -  бұл  кез  келген  ұзындығы  бар  жол  үшін  кейбір 
бүтін  мәнді  немесе  кейбір  тіркелген  ұзындығы  бар  басқа  жолды  есептейтің 
математикалық немесе басқа функция. Математикалық түрде былай жазуға болады: 
h = H(M), 
мұндағы  М  –  бастапқы  хабар  (кейде  болашақ  үлгісі  деп  аталады);  h  –  нәтиже,  хеш-
функция  мәні  деп  аталады  (және  де  хеш-коды  немесе  хабар  дайджесы  –  ағыл.  message 
digest).  
Хеш-функцияның  мағынасы  болашақ  үлгінің  сиппаты  белгісін  -  хеш-функция 
мәнің  анықтау.  Әдетте  бұл  мәнде  тіркелген  өлшемі  болады,  мысалы,  64  немесе  128  бит. 
Хеш-кодты  әрі  қарай  кейбір  есепті  шешу  үшін  талдауға  болады.  Мысалы,  хеширлау 
деректерді  салыстыру  үшін  қолданылу  мүмкін:  егер  екі  деректер  массивінде  хеш-коды 
әртүрлі болса, массивтер міндетті түрде әртүрлі; егер бірдей болса – массивтер де бірдей. 
Жалпы  жағдайда  бастапқы  деректер  мен  хеш-коды  арасында  бір  мәнді  сәйкестік  жоқ, 
өйткені  хеш-функция  мәндерінің  саны  кіру  деректер  варианттарынан  әрқашан  кем. 
Сондықтан,  бірдей  хеш-кодты  беретің  кіру  хабардың  бірнеше  көптігі  бар  (осындай 
жағдайды  коллизия  деп  атайды).  Коллизияның  болу  ықтималдығы  хеш-функцияның 
сапасын бағалауда үлкен роль ойнайды.  
Хеш-функциялар қазіргі криптографияда жиі қолданылады. 
Ең  қарапайым  хеш-функция  «модулі  2  бойынша  қосынды»  операцияны 
пайдалануымен  құрастырылу  мүмкін:  кіру  жолды  аламыз,  модулі  2  бойынша  барлық 
байтты қосамыз және байт-нәтижені хеш-функция мәні ретінде қайтарамыз. Хеш-функция 
мәнің ұзындығы бұл жағдайда, кіру хабардың өлшеміне тәуелсіз, 8 бит болады.   
Мысалы, цифрлық  түрге айналдырған бастапқы хабар келесі  болсын (он  алтылық 
форматта): 
3E 54 A0 1F B4 
Хабарды  екілік  түрге  ауыстырайық,  байттарды  бір  бірінің  астында  жазайық  және 
әрбір бағанда биттерді модулі 2 бойынша қосайық: 
0011 1110 
0101 0100 
1010 0000 
0001 1111 
1011 0100 
---------- 
0110 0101 
 
Нәтиже (0110 0101
(2)
 немесе 65
(16)
) хеш-функцияның мәні болып табылады.  
Бірақ  мұндай  хеш-функцияны  криптографиялық  мақсаты  үшін  пайдалануға 
болмайды,  мысалы,  электронды  қолды  құрастыру  үшін,  өйткені  бақылау  қосындыны 
өзгертпей қол қойылған хабардың мазмұның өзгерту оңай.  
Сондықтан  қарастырылған  хеш-функция  криптографиялық  қолдануға  келмейді. 
Криптографияда хеш-функция жақсы деп саналады, егер бірдей хеш-функция мәні бар екі 

 
64 
болашақ  үлгіні  жасауға  қиын  болса,  және  де  егер  функция  шығуының  кіруден  анық 
тәуелділігі жоқ болса.  
Криптографиялық хеш-функцияларға қойылатын талаптарды тұжырымдайық: 
- хеш-функция кез келген өлшемі бар хабарларға қолданылу болу керек; 
- функция мәнің есептеуі жеткілікті тез орындалу керек
-  хеш-функция мәні  белгілі  болғанда, сәйкес болашақ үлгіні  М  табу қиын (мүмкін 
емес) болу керек; 
- хабар М белгілі болғанда, осындай хеш-функция мәні бар басқа хабарды  табу 
қиын болу керек; 
-  қандай  да  болса  кездейсоқ  әртүрлі  бірдей  хеш-функция  мәні  бар  жұп  хабарды 
табу қиын болу керек. 
Айтылған талаптарға қанағаттандырылатын хеш-функцияны жасау оңай емес. Есте 
сақтау  қажет,  функция  кіруіне  кез  келген  өлшемі  бар  деректер  түседі,  ал  хеш-нәтижесі 
олар үшін бірдей болмау керек. 
Қазіргі  уақытта  тәжірибеде  хеш-функция  ретінде  кіру  хабарды  блок  блокпен 
өңдейтің  және  кіру  хабардың  әрбір  M
i
  блогы  үшін  хеш-мәнің  h
i
  есептейтің  функциялар 
қолданылады  
h

H(M
i
,h
i-1
), 
мұндағы h
i-1
 – кіру деректердің бұрыңғы блогы үшін хеш-функцияны есептеу нәтижесі. 
Нәтижесінде  хеш-функциянын  шығуы  h
n
  кіру  хабардың  барлық  n  блоктарының 
функциясы болып табылады
 
6.2 Хеш-функцияны құрастыру үшін шифрлау блокты алгоритмды пайдалану 
 
Хеш-функция  ретінде  симметриялық  шифрлаудың  блокты  алгоритмын 
пайдалануға болады. Егер пайдаланатын блокты алгоритм криптографиялық берікті болса, 
онда оның негізіндегі хеш-функция да сенімді болады.  
Хеш-кодты  алу  үшін  блокты  алгоритмды  пайдалануының  ең  қарапайым  тәсілі  - 
CBC  тәртіпте  хабарды  шифрлау.  Бұл  жағдайда  хабар,  ұзындығы  шифрлау  алгоритмның 
блок ұзындығына тең блок тізбегі ретінде беріледі. Қажет болғанда, керекті ұзындығы бар 
блокты алу үшін соңғы блок оң жағынан нөлмен толтырылады. Хеш-мәні мәтіннің соңғы 
шифрланған блогы болады. Сенімді блокты шифрлау алгоритмды пайдаланғанда алынған 
хеш-мәннің келесі қасиеті болады: 
-  шифрлау  кілтті  білмей,  берілген  ашық  ақпарат  массивы  үшін  хеш-мәнің  есептеу 
мүмкін емес; 
-  шифрлау  кілтті  білмей,  берілген  хеш-функцияның  мәні  үшін  ашық  деректерді 
іріктеп алу мүмкін емес. 
Осылай құрастырылған хеш-мәнің әдетте еліктеу ендірме немесе аутентификатор 
деп  атайды  және  хабардың  тұтастығын  тексеру  үшін  пайдаланылады.  Сонымен,  еліктеу 
ендірме  –  бұл  ашық  деректерге  және  құпиялы  кілттік  ақпаратқа  тәуелді  бақылау 
комбинациясы.  Еліктеу  ендірменің  пайдалану  мақсаты  ақпарат  масивінде  барлық 
кездейсоқ  немесе  әдейі  өзгертулерді  табу.  Кіру  хабарды  өңдегенде  хеш-функциямен 
алынған  мәні  хабарға  қосылады,  егер  хабар  дұрыстығы  белгілі  болса.  Алушы  хабардың 
еліктеу  ендірмесін  есептеп  және  алынған  хеш-кодпен  салыстырып  хабар  тұтастығын 
тексереді.  Хеш-коды  қауіпсіздік  тәсілмен  берілу  керек,  мысалы,  еліктеу  ендірмені 
жіберушінің  жабық  кілтімен  шифрлау,  яғни  қолды  жасау.  Алынған  хеш-кодты 
симметриялық  шифрлау  алгоритмы  мен  де  шифрлауға  болады,  егер  жіберуші  мен 
алушыда симметриялық шифрлаудың ортак кілті болса.  
Көрсетілген  еліктеу  ендірмені  алу  және  пайдалану  процесі  ресей  стандартында 
ГОСТ 28147-89 бейнеленген. Стандарт берілетің хабар тұтастығын тексеру үшін, тіркелу 
тіртібінде  барлық  хабарды  шифрлаудың  шығуында  алынған  блоктың,  кіші  32  битын 

 
65 
пайдалануын  ұсынады.  Еліктеу  ендірмені  құрастыру  үшін  осы  түрімен  симметриялық 
шифрлаудың кез келген блокты шифрын пайдалануға болады. 
Хеш-кодты  жасау  үшін  блокты  шифрдың  басқа  пайдалану  тәсілі  келесі  болу 
мүмкін.  Бастапқы  хабар  блоктар  ретімен  өңделеді.  Соңғы  блок  қажет  болса  нөлмен 
толтырылады,  кейде  соңғы  блокқа  екілік  сан  түрінде  хабар  ұзындығын  қосады.  Әрбір 
кезеңде бұрынғы кезеңде алынған хеш-мәнің шифрлаймыз, кілт ретінде хабардың ағымды 
блогын аламыз. Соңғы алынған шифрланған мәні ақырғы хеш-нәтижесі болады.   
Сонымен, егер  М хабардың блокты  f шифры көмегімен  К кілтте кәдімгі шифрлау 
схемасын біз былай жазсақ  E=f(MK), онда хеш-кодты алу схемасын былай көрсетуге 
болады  
h

f(h
i-1
,M
Бастапқы  h

хеш-коды  ретінде  кейбір  константаны  алады.  Шифрлау  қарапайым 
ауыстыру  тәртібінде  өтеді.  Айтылған  тәсілді  пайдаланғанда  блок  өлшемі  кілт 
ұзындығымен сәйкес келеді және хеш-мәнің өлшемі бұл блок ұзындығы.  
Блокты  шифрдың  қарапайым  ауыстыру  тәртібінде  пайдалануының  тағы  бір  тәсілі 
бар: хабар элементі бұрынғы кезеңде алынған хеш-мәнімен шифрланады: 
h

f(M,h
i-1

Толық  айтқанда,  хеш-функцияны  құрастыру  үшін  блокты  шифрдың  тағы  бірнеше 
пайдалану схемалары болу мүмкін. 
М
i
  –  бастапқы  хабардың  блогы;  h
i
  –  i-ші  кезеңдегі  хеш-функцияның  мәні;  f  – 
қарапайым ауыстыру тәртібінде пайдаланылатын блокты шифрлау алгоритмы;   – модулі 
2 бойынша қосу операциясы болсын. Онда мысалы, хеш-функцияны құрастырудың келесі 
схемалары болу мүмкін:  
h
i
 = f(M
i
h
i-1
)   M
i

h
i
 = f(M
i
h
i-1
)   h
i-1 
 M
i

h
i
 = f(h
i-1
, M
i
)   h
i

h
i
 = f(h
i-1 
 M
i
, M
i
)   h
i
 
Осы  барлық  схемаларда  хеш-мәннің  ұзындығы  шифрлаудағы  блок  ұзындығына 
тең. Бұл схемалар тәжірибеде қолданылу мүмкін. 
Блокты  алгоритм  негізінде  жобаланған  хеш-функцияның  негізгі  кемшілігі 
салыстырмалы 
кішкентай 
жұмыс 
жылдамдығы. 
Хеширлаудың 
жылдамдырақ 
алгоритмдары  бар,  олар  криптоберіктік  талаптарға  сай  жобаланған  (олардың  ең  кең 
таралғаны - MD5, SHA-1, SHA-2 және ГОСТ Р 34.11-94). 
 
6.3 Хеш-функцияны құрастыру алгоритмдарды шолу 
 
Қазір  хеш-функцияны  есептеу  үшін  ұсынылған  және  тәжірибелік  пайдаланады 
түрлі  арнайы  алгоритмдар.  Ең  танымал  алгоритмдар  MD5,  SHA-1,  SHA-2  және  SHA-ң 
басқа версиялары, және де ресей алгоритмы ГОСТ Р 34.11-94. 
MD5  алгоритмы  ХХ  ғасырдың  90-ші  жылдары  шықты.  «MD»  символдары 
көрсетеді  Message  Digest  –  хабардың  қысқаша  мазмұндамасы.  Алгоритм  авторы  – 
Р.Ривест  (R.Rivest).  MD5  пайдалану  нәтижесінде  кез  келген  хабар  үшін  128-битты  хеш-
мәні  құрастырылады.  Кіру  деректер  512  битты  блоктармен  өңделеді.  Алгоритмда 
элементар  логикалық  операциялар  пайдаланады  (инверсия,  конъюнкция,  модулі  2 
бойынша  қосу,  циклдық  ығысу  және  т.б.),  және  де  кәдімгі  арифметикалық  қосу.  Осы 
элементар  функциялардың  комплекстік  қайталауы  нәтиженің  жақсы  араластыруын 
қамтамасыз  етеді.  Сондықтан  кездейсоқ  таңдап  алынған  хабарларда  бірдей  хеш-коды 
болмайды.  MD5  алгоритмның  келесі  қасиеті  бар:  алынған  хеш-мәннің  әрбір  биты  кіру 
әрбір биттын функциясы болып табылады. 128-битты хеш-мәні үшін MD5 ең күшті хеш-
функция деп саналады.  
SHA  (Secure  Hash  Algorithm  –  қауіпсіз  хеш-алгоритм)  алгоритмы  АҚШ-ң  ұлттық 
стандарттар  және  технологиялар  институтында  (NIST)    жасалынған  және  американ 

 
66 
федерал  ақпараттық  стандарт  ретінде  1993  жылы  жарияланған  болатын.  SHA-1 
алгоритмда бастапқы хабардың 512 битты блоктармен өңдеу нәтижесінде 160-битты хеш-
мәні құрастырылады. MD5 алгоритмдағыдай SHA-1 алгоритмда да қарапайым логикалық 
және  арифметикалық  операциялар  пайдаланады.  MD5-тен  SHA-1-ң  ең  маңызды 
айырмашылығы мынадай: SHA-1-ң хеш-коды MD5-ң хеш-кодынан 32 битке ұзын. Екуінің 
де күрделігі бірдей болғанда SHA-1-ң беріктігі жоғары.  
2001  жылы  АҚШ-ң  ұлттық  стандарттар  және  технологиялар  институты  стандарт 
ретінде,  хеш-коды  SHA-1-ден  ұзыңырақ  үш  хеш-функцияны  қабылдады.  Осы  хеш-
функцияларды  жиі  SHA-2  немесе  SHA-256,  SHA-384  және  SHA-512  деп  атайды  (яғни 
атында  хеш-код  ұзындығы  берілген).  Бұл  алгоритмдарда  өңделетін  блок  ұзындығы  да 
үлкен (SHA-256-да блок ұзындығы – 512 бит, SHA-384 және SHA-512-де блок ұзындығы – 
1024 бит).  
Ресейде хеш-функция үшін стандарты ГОСТ Р34.11-94. Оның құрылымы SHA-1,2 
немесе  MD5-тен  қатты  ерекшеленеді.  ГОСТ  Р34.11-94  жасайтын  хеш-код  ұзындығы  256 
бит.  Алгоритм  бастапқы  хабарады  256  битты  блоктармен  оң  жақтан  солға  қарай  рет-
ретімен өңдейді. Алгоритм параметрі бастапқы хаширлау векторы – ұзындығы 256 бит кез 
келген  тіркелген  мәні.  ГОСТ  Р34.11-94  алгоритмда  ауыстыру  операциялар,  ығысу, 
арифметикалық  қосу,  модулі  2  бойынша  қосу  пайдаланады.  Көмекші  функция  ретінде 
қарапайым ауыстыру тіртібінде ГОСТ 28147-89 алгоритмы пайдаланады.  
 
Негізгі ұғымдар 
Нash function – хеш-функция. 
ГОСТ Р34.11-94 – хеширлау функцияға ресей стандарты. 
Хеш-функция  –  кез  келген  ұзындығы  бар  жол  үшін  кейбір  бүтін  мәнді  немесе 
кейбір  тіркелген  ұзындығы  бар  басқа  жолды  есептейтің  математикалық  немесе  басқа 
функция. 
Хеш-коды – хеш-функцияның жұмыс нәтижесі, кіру деректер массивының кейбір 
сипатты «белгісі». 
Сұрақтар 
1. Криптографияда нені хеш-функция деп атайды? 
2. Хеш-функциялар қандай мақсаты үшін пайдаланады? 
3. Хеш-функцияларға қойылатын негізгі талаптарды айтып беріңіз. 
4. Криптографиялық хеш-функцияның мысалдарын айтып беріңіз. 
5.  Криптографиялық  хеш-функцияны  құрастыру  алгоритмға  қандай  ресей 
стандарты бар? 
6.  Хеш-функцияны  құрастыру  үшін  блокты  шифрлау  алгоритмды  қалай 
пайдалануға болады? 
Жаттығулар 
Хеш-функция  y=h(x
1
x
2
x
n
)  екілік хабардың барлық биты үшін бит бойы «модулі 2 
бойынша  қосынды»  операцияның  орындау  нәтижесі  болып  анықталсын.  Хеш-код 
ұзындығы тең 8 бит. Сол жақ бағанда жазылған әрбір  алты хабар үшін оң жақ бағаннан 
хеш-функцияның сәйкес есептеу нәтижесін табыңыз. Барлық хабарлар және хеш-функция 
мәндері он алтылық форматта берілген. 
Хабарлар 
Хеш-функция  мәндері 
0A3 69 2C 
82 0F B5 
0DA 14 90 
32 01 BF 
9E A6 23 
10 ВE 57 
38 
1B 
0F9 
8C 
0E6 
5E 
 

 
67 

АҒЫНДЫ ШИФРЛАР ЖӘНЕ КЕЗДЕЙСОҚ ТӘРІЗДЕС САНДАРДЫҢ 
ГЕНЕРАТОРЛАРЫ
 
1 бөлім
 
 
Бұл  бөлімнен  нақты  уақыт  тәртібінде  деректер  берілгенде  қалай  шифрлау 
орындалатының білуге болады. Ағынды шифрлауда кездейсоқ кілттер генераторларының 
пайдалану  принциптері  көрсетілген.  Кездейсоқ  тәріздес  (псевдокездейсоқ)  сандардың 
кейбір  қарапайым  генераторлары  қарастырылады:  сызықтық  конгруэнтты,  кешігуі  бар 
Фибоначчи әдісі бойынша генератор, BBS алгоритм негізіндегі кездейсоқ тәріздес сандар 
генераторы. Әрбір алгоритмның сипаттауы мысалмен бірге беріледі.  
Бөлім  мақсаты:  «ағынды  шифр»  ұғымымен  және  ағынды  шифрлауда  кездейсоқ 
тәріздес (псевдокездейсоқ) сандар генераторларының пайдалану принциптерімен таңысу. 
 
7.1 Ағынды шифрлар 
 
Блокты алгоритм белгілі бір ұзындығы бар блоктарды шифрлауға арналған. Бірақ, 
деректерді  блоктармен  емес,  мысалы,  символдар  бойынша  шифрлаудың  қажеті  болу 
мүмкін.  Ағынды шифр (stream cipher)  кіру  хабардың биттерін (немесе байттарын) бір-
бірден  түрлендіріп  бір  операцияны  орындайды.  Ағынды  шифрлау  алгоритмы  хабарды 
бүтін  сандар  блоктарға  бөлуді  қажет  етпейді,  сондықтан  ол  нақты  уақытта  істей  алады. 
Сонымен, егер символдар ағыны берілсе, әрбір символ шифрланып бірден беріледі.   
Типті ағынды шифрдың жұмысы 7.1 суретте көрсетілген. 
 
 
 
Сурет 7.1. Ағынды шифрдың жұмыс принципі 
 
Кілттер генераторы биттер ағының k
i
 шығарады, олар гамма ретінде пайдаланатын 
болады.  Хабар  көзі  ашық  мәтіннің  х
i
  биттерін  генерациялайды,  олар  гаммамен  модулі  2 
бойынша қосылады, нәтижесінде шифрланған хабардың у
i
 биттері алынады: 
y
i
 = x
i
   k
i
,     = 1, 2,…, n 
Шифрмәтіннен y
1
y
2
,..., y
n
 хабарды x
1
x
2
,..., x
n
 қалпына келтіру үшін тура шифрлау 
кезіндегідей кілттік тізбекті k

генерациялау қажет y
k
,..., k
n
, және ашып оқу үшін  
x
i
 y
i
   k
i
,     = 1, 2,…, n 
формуланы пайдалану керек. 
Әдетте  бастапқы  хабар  мен  кілттік  тізбегі  тәуелсіз  бит  ағыны  болып  табылады. 
Сонымен, барлық ағынды шифрлар үшін шифрлайтын (және дешифрлайтын) түрлендіруі 
бірдей  болғандықтан,  олар  тек  кілттер  генераторын  жасау  тәсілдерімен  ажыратылады. 
Осыдан, жүйенің қауіпсіздігі кілттер ағын генератордың қасиетіне толық тәуелді болады. 
Егер кілттер ағын генераторы тек нөлден (немесе бірден) тұратын тізбекті жасап шығарса, 
онда шифрланған хабар тура бастапқы биттер ағыны сияқты болады. Егер гамма ретінде 
бір  символ  (мысалы,  сегіз  битты)  пайдаланса,  онда  шифрланған  хабар  бастапқыға 
ұқсамасада,  жүйенің  қауіпсіздігі  нашар  болады.  Бұл  жағдайда  мәтін  ұзындығы  бойынша 

 
68 
кілт кодын көп рет қайталағанда, оны статистикалық әдістер арқылы ашуға болады. Мұны 
қарапайым  мысал  көмегімен  түсіндірейік  -  цифрлық  мәтін  кілттін  қысқа  цифрлық 
кодымен гаммалау әдіс арқылы жабылған. 

Достарыңызбен бөлісу:
1   ...   4   5   6   7   8   9   10   11   ...   19




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет