Бекіту сұрақтары:
AES дегеніміз не?
Ашық кілтті криптожүйені қалай түсінесіз?
RSA криптожүйесі дегеніміз не?
Алгоритм Диффи-Хеллмананың жұмысы қандай?
Гибрид криптожүйелер туралы не білесіз?
Дәріс 7. Бір бағытты хэш функциялар. Идентификация, аутентификация, авторизация. Ашық криптожүйеде кілт басқару. Сертификация
Мақсаты: Бір бағытты хэш функциялармен, идентификация, аутентификация, авторизация ұғымдарымен танысу. Ашық криптожүйеде кілт басқару және сертификация алу жолдары.
Жоспар:
Бір бағытты хэш функциялар.
Идентификация
Аутентификация
Авторизация
Ашық криптожүйеде кілт басқару
Сертификация
Бір бағытты хэш функциялар
Хэш функциялар ең көп пайдаланылатын криптографиялық құрылғы болып табылады. Олар шифрлау, аутентификация, қол қою үшін қолданылады. Хэш функциялар ұзындығы кез келген хабарларды өңдеп ұзындығы бекітілген нәтиже береді. Нәтиже ұзындығы негізінен 128-ден 512-ге дейін барады.
Бір бағытты хэш функциялардың келесі қасиеті бар: берілген М аргументі бойынша h(M) функциясының мәні оңай есептелінеді; ал М санын берілген h(M) мәнін есептеп шығару қиын. Алайда М мәнін функцияның барлық мүмкін мәндерін теріп шығып нәтижесімен тексеріп табуға болатындығы түсінікті.
Коллизия h(M1)=h(M2) орындалатындай M1 және M2 мәндерін атайды. Шабуылдың осы түріне мысал келтірейік.
Айгүл екі құжат дайындайды.
Айгүл бастапқы құжатқа бірнеше маңызды емес өзгерістер (бос орын, жаңа жолға көшу) енгізіп бірнеше құжат жасайды. Хэш функция көмегімен барлығының мәндерін табады.
Алынған сандарды салыстырып арасынан өзара тең сандарын іздейді.
Айгүл Болатқа құжаттың хэш мәніне оның қол қоюын сұрайды.
Айгүл Болатқа қолайлы құжатпен алмастырады.
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 раундтың әрқайсысында сәйкесінше келесі функциялар қолданылады.
F1 (x,y,z) = (x y) ( x z)
F2 (x,y,z) = (x y) ( x z)
F3 (x,y,z) = (x y z )
F4 (x,y,z) = y ( x z)
Келесі белгілеу енгізілген:
- XORоперациясы
- NOTоперациясы
- ANDоперациясы
- OR операциясы
Mj хабардың j-шы бөлігі болсын, x<<i деп 223 * abc(sin(i)) өрнегігің бүтін мәндері белгіленген. K-шы раундта x айнымалысына келесі мәндер меншіктеледі:
X=FFk(x,y,z,v,Mj, s,tj);
FFk(x,y,z,v,Mj,s,ti)= y+((x+Fk(y,z,v) + Mj+ti)<<
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 коллизиясын 264 есептеу жасап табуға болады.
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 алгоритмінде келесі сызықсыз функциялар жиыны қолданылады.
ft (x, y, z) = (x y) (( x) z), t=0..19
ft (x, y, z) = (x y z) , t=20..39
ft (x, y, z) = (x y) (x z) (y z), t=40..59
ft (x, y, z) = (x y z) , t=60..79
Алгоритмде келесі 4 тұрақты қолданылады:
k0=0x5a827999; k1-0x6ed9eba1;
k2=0x8flbbcdc;k3=0xCa62c1d6;
Мәлімет блогы 32 разрядты 16 сөзден 32 разрядты 80 сөзге түрлендіріледі.
wi=Mi, i=0...15
wi=(wi-3 wi-8 wi-14 wi-16) <<<1, i=16 ... 79
х айнымалысына келесі мәндер меншіктеледі:
x=(x<<<5)+ft (y,z,v)+r+Wt+Kj
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, Е айнымалыларымен біріктіріледі.
Алдында айтылып кеткен ескерту бойынша алғашқы коллизияны 280 есептеулерді орындап күтуге болады.
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 алгоритмнің есептеу уақытымен шамамен бірдей. Бірақ айтылғанды кемшілік ретінде қарастырмау жөн, өйткені хэш функция проблемасы шифрлауға қарағанда қиын.
Симметриялық алгоритмдерді қолдану
Хэш функция құрастыру үшін симметриялы алгоритмдерді қолдануға болады. Алгоритм сенімділігі қолданылып отырған блоктық алгоритмнің сенімділігіне тәуелді болады. Төменде осындай типті алгоритмдердің сүлбесі көрсетілген (1-сурет)
H0=IH, мұндағы IH кездейсоқ бастапқы сан.
Hi=EA(B) C
A, B, C cандары Mi, Hi-1, (Mi Hi-1)сандарының біреуіне тең болуы мүмкін. Бастапқы хабарды симметриялы алгоритмге сәйкес ұзындығы бекітілген блоктарға бөлу керек.
1-сурет
Достарыңызбен бөлісу: |