65
пайдалануын ұсынады. Еліктеу ендірмені құрастыру үшін осы түрімен симметриялық
шифрлаудың кез келген блокты шифрын пайдалануға болады.
Хеш-кодты жасау үшін блокты шифрдың басқа пайдалану тәсілі келесі болу
мүмкін. Бастапқы хабар блоктар ретімен өңделеді. Соңғы блок қажет болса нөлмен
толтырылады, кейде соңғы блокқа екілік сан түрінде хабар ұзындығын қосады. Әрбір
кезеңде бұрынғы кезеңде алынған хеш-мәнің шифрлаймыз, кілт ретінде хабардың ағымды
блогын аламыз. Соңғы алынған шифрланған мәні ақырғы хеш-нәтижесі болады.
Сонымен, егер М хабардың блокты f шифры көмегімен К кілтте кәдімгі шифрлау
схемасын біз былай жазсақ E=f(M, K), онда h хеш-кодты алу схемасын былай көрсетуге
болады
h
i
= f(h
i-1
,M)
Бастапқы h
0
хеш-коды ретінде кейбір константаны алады. Шифрлау қарапайым
ауыстыру тәртібінде өтеді. Айтылған тәсілді пайдаланғанда блок өлшемі кілт
ұзындығымен сәйкес келеді және хеш-мәнің өлшемі бұл блок ұзындығы.
Блокты шифрдың қарапайым ауыстыру тәртібінде пайдалануының тағы бір тәсілі
бар: хабар элементі бұрынғы кезеңде алынған хеш-мәнімен шифрланады:
h
i
= 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
Достарыңызбен бөлісу: |