ПОӘК 042-18.39.1.206/01-2013
10.09.2013 ж. № 1 басылым
81 беттің 33
Дәріс 7. Бір бағытты хэш функциялар. Идентификация, аутентификация, авторизация.
Ашық криптожүйеде кілт басқару. Сертификация
Мақсаты: Бір бағытты хэш функциялармен, идентификация, аутентификация, авторизация
ұғымдарымен танысу. Ашық криптожүйеде кілт басқару және сертификация алу жолдары.
Жоспар:
- Бір бағытты хэш функциялар.
- Идентификация
- Аутентификация
- Авторизация
- Ашық криптожүйеде кілт басқару
- Сертификация
Бір бағытты хэш функциялар
Хэш функциялар ең көп пайдаланылатын криптографиялық құрылғы болып табылады.
Олар шифрлау, аутентификация, қол қою үшін қолданылады. Хэш функциялар ұзындығы кез
келген хабарларды өңдеп ұзындығы бекітілген нәтиже береді. Нәтиже ұзындығы негізінен 128-
ден 512-ге дейін барады.
Бір бағытты хэш функциялардың келесі қасиеті бар: берілген М аргументі бойынша h(M)
функциясының мәні оңай есептелінеді; ал М санын берілген h(M) мәнін есептеп шығару қиын.
Алайда М мәнін функцияның барлық мүмкін мәндерін теріп шығып нәтижесімен тексеріп табуға
болатындығы түсінікті.
Коллизия h(M
1
)=h(M
2
) орындалатындай M
1
және M
2
мәндерін атайды. Шабуылдың осы
түріне мысал келтірейік.
1. Айгүл екі құжат дайындайды.
2. Айгүл бастапқы құжатқа бірнеше маңызды емес өзгерістер (бос орын, жаңа жолға көшу)
енгізіп бірнеше құжат жасайды. Хэш функция көмегімен барлығының мәндерін табады.
3. Алынған сандарды салыстырып арасынан өзара тең сандарын іздейді.
4. Айгүл Болатқа құжаттың хэш мәніне оның қол қоюын сұрайды.
5. Айгүл Болатқа қолайлы құжатпен алмастырады.
1-ші кеңес: Әрқашан қол қояр алдында құжатқа маңызды емес өзгерістер енгізіңіз.
2-ші кеңес: Нәтижесі ұзын хэш-функциялар қолданыңыз.
Хэш функциялардың ішінде ең көп тараған екеуіне тоқталайық.
MD5
Бұл алгоритмді Рон Ривест ойлап тапқан. Алгоритм 512 разряд бастапқы мәтін блоктарын
өңдейді. Функция нәтижесінің ұзындығы 128 разряд.
Келесі төрт айнымалы енгізіледі
A=0x01234567; B=0x89ABCDEF;
C=0xFEDCBA98; D=0x76543210
a=A; b=B; c=C; d=D; меншіктеу операциясы орындалады. MD5 4 раунд қолданылады. Әр раундта
16 операция есептелінеді. Бір операция a, b, c және d жиынындағы үш айнымалыға қолданылатын
сызықты емес функция. 4 раундтың әрқайсысында сәйкесінше келесі функциялар қолданылады.
F
1
(x,y,z) = (x
y)
(
x
z)
F
2
(x,y,z) = (x
y)
( x
z)
F
3
(x,y,z) = (x
y
z )
F
4
(x,y,z) = y
( x
z)
Келесі белгілеу енгізілген:
- XORоперациясы
- NOTоперациясы
- ANDоперациясы
- OR операциясы
ПОӘК 042-18.39.1.206/01-2013
10.09.2013 ж. № 1 басылым
81 беттің 34
M
j
хабардың j-шы бөлігі болсын, x<<
i
деп 2
23
*
abc(sin(i)) өрнегігің бүтін мәндері белгіленген. K-шы раундта x айнымалысына келесі мәндер
меншіктеледі:
X=FF
k
(x,y,z,v,M
j
, s,t
j
);
FF
k
(x,y,z,v,M
j
,s,t
i
)= y+((x+F
k
(y,z,v) + M
j
+t
i
)<<
K = 1..4,j = 0..15.
Мұнда x, y, z, v ретімен a, b, c және d мәндерін қабылдайды.Раунд соңынан a, b, c, d
мәндері A, B, C, D мәндерімен біріктіріледі. Келесі блоктың кезегі келеді. Ақыры нәтиженің
мәндері A, B, C, D айнымалыларымен біріктіріледі.
Ескерту. MD5 хэш функциясының 128 биттік ұзындығы көп жағдайда жеткіліксіз болуы
мүмкін «Туған күндер» шабуылын қолданып, MD5 коллизиясын 2
64
есептеу жасап табуға болады.
Secure Hash Algorithm (SHA)
NIST және NSA SHA-1 алгоритмін DSS қол қою стандартымен бірге қолдану үшін жасап
шыққан. SHA-1-ді әдетте жай ғана SHA деп атайды. Алгоритм 512 разряд бастапқы текст
блоктарын өңдейді. Функция нәтижесінің ұзындығы 160 разряд.
Келесі төрт айнымалы енгізіледі.
A=0x67452301; B=0xEFCDAB89; C=0x98BADCFE;
D=0x10325476; E=0xC3D2E1F0;
a=A; b=B; c=C; d=D; меншіктеу операциясы орындалады. Негізгі цикл 4 раундтан тұрады,
әрқайсысында 20 операция бар. SHA алгоритмінде келесі сызықсыз функциялар жиыны
қолданылады.
f
t
(x, y, z) = (x
y)
((
x)
z), t=0..19
f
t
(x, y, z) = (x
y
z) , t=20..39
f
t
(x, y, z) = (x
y)
(x
z)
(y
z), t=40..59
f
t
(x, y, z) = (x
y
z) , t=60..79
Алгоритмде келесі 4 тұрақты қолданылады:
k0=0x5a827999; k1-0x6ed9eba1;
k2=0x8flbbcdc;k3=0xCa62c1d6;
Мәлімет блогы 32 разрядты 16 сөзден 32 разрядты 80 сөзге түрлендіріледі.
w
i
=M
i
, i=0...15
w
i
=(w
i
-3
w
i
-8
w
i
-14
w
i
-16) <<<1, i=16 ... 79
х айнымалысына келесі мәндер меншіктеледі:
x=(x<<<5)+f
t
(y,z,v)+r+W
t
+K
j
t=0..79, j=0..3
x, y, z, v, r айнымалылары ретімен a, b, c, d, e мәндерін қабылдайды.
Раунд соңынан a, b, c, d, e мәндері A, B, C, D, Е мәндерімен біріктіріледі. Келесі блоктың
кезегі келеді. Ақыры нәтиженің мәндері A, B, C, D, Е айнымалыларымен біріктіріледі.
Алдында айтылып кеткен ескерту бойынша алғашқы коллизияны 2
80
есептеулерді орындап
күтуге болады.
SHA-256, SHA-384 SHA-512
Жақында
NIST
3
хэш
функциясы
бар
жаңа
стандартты
жариялады.
(
http://csrc.nist/encryption/shs/dfips-180-2.pdf.[89б.]қара
).
Функциялардың нәтижелері сәйкесінше 256-, 384-, және 512-бит қабылдайды. SHA-256
алгоритмі SHA-1-ге қарағанда әдеуір баяу. Ұзындығы үлкен хабардар үшін хэш нәтиже есептеу
уақыты AES алгоритмнің есептеу уақытымен шамамен бірдей. Бірақ айтылғанды кемшілік
ретінде қарастырмау жөн, өйткені хэш функция проблемасы шифрлауға қарағанда қиын.
Симметриялық алгоритмдерді қолдану