Лекция 6 - Криптографические хэш-функции
-
Upload
mikhail-buryakov -
Category
Documents
-
view
239 -
download
1
Transcript of Лекция 6 - Криптографические хэш-функции
Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
Ëåêöèÿ 6Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
Ìèõàèë Ëåîíèäîâè÷ Áóðÿêîâ
2012 ãîä
Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
Ïîíÿòèå õýø-ôóíêöèè
Õýø-ôóíêöèÿ � àëãîðèòì, ïðåîáðàçóþùèé áëîê äàííûõ
ïðîèçâîëüíîé äëèíû â âûõîäíóþ áèòîâóþ ñòðîêó
ôèêñèðîâàííîé äëèíû:
hash(m) = h
m � äàííûå, ñîîáùåíèå ïðîèçâîëüíîé äëèíû
h � õýø-çíà÷åíèå äëÿ m ôèêñèðîâàííîé äëèíû (îáû÷íî 2k :128, 192, 256 è ò. ï.)
Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
Ïîíÿòèå õýø-ôóíêöèè
 îáùåì ñëó÷àå èñïîëüçóþòñÿ:
I â ñòðóêòóðàõ äàííûõ
(õýø-òàáëèöû, àññîöèàòèâíûå ìàññèâû, äèíàìè÷åñêèå
ìíîæåñòâà);
I äëÿ êýøèðîâàíèÿ;
I â ôèëüòàõ Áëþìà;
I äëÿ ïðîâåðêè êîððåêòíîñòè . . .
Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
Ïîíÿòèå õýø-ôóíêöèè
 îáùåì ñëó÷àå èñïîëüçóþòñÿ:
I â ñòðóêòóðàõ äàííûõ
(õýø-òàáëèöû, àññîöèàòèâíûå ìàññèâû, äèíàìè÷åñêèå
ìíîæåñòâà);
I äëÿ êýøèðîâàíèÿ;
I â ôèëüòàõ Áëþìà;
I äëÿ ïðîâåðêè êîððåêòíîñòè . . .
Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
Ïîíÿòèå õýø-ôóíêöèè
 îáùåì ñëó÷àå èñïîëüçóþòñÿ:
I â ñòðóêòóðàõ äàííûõ
(õýø-òàáëèöû, àññîöèàòèâíûå ìàññèâû, äèíàìè÷åñêèå
ìíîæåñòâà);
I äëÿ êýøèðîâàíèÿ;
I â ôèëüòàõ Áëþìà;
I äëÿ ïðîâåðêè êîððåêòíîñòè . . .
Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
Ïîíÿòèå õýø-ôóíêöèè
 îáùåì ñëó÷àå èñïîëüçóþòñÿ:
I â ñòðóêòóðàõ äàííûõ
(õýø-òàáëèöû, àññîöèàòèâíûå ìàññèâû, äèíàìè÷åñêèå
ìíîæåñòâà);
I äëÿ êýøèðîâàíèÿ;
I â ôèëüòàõ Áëþìà;
I äëÿ ïðîâåðêè êîððåêòíîñòè . . .
Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
Ïîíÿòèå õýø-ôóíêöèè
 îáùåì ñëó÷àå èñïîëüçóþòñÿ:
I â ñòðóêòóðàõ äàííûõ
(õýø-òàáëèöû, àññîöèàòèâíûå ìàññèâû, äèíàìè÷åñêèå
ìíîæåñòâà);
I äëÿ êýøèðîâàíèÿ;
I â ôèëüòàõ Áëþìà;
I äëÿ ïðîâåðêè êîððåêòíîñòè . . .
Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè äîëæíû óäîâëåòâîðÿòü
ñëåäóþùèì òðåáîâàíèÿì:
1. Óñòîé÷èâîñòü ê íàõîæäåíèþ ïðîîáðàçà:
åñëè èçâåñòíî õýø-çíà÷åíèå h, òî âû÷èñëèòåëüíî ñëîæíî
íàéòè òàêîå m, ÷òî hash(m) = h.
2. Óñòîé÷èâîñòü ê íàõîæäåíèþ âòîðîãî ïðîîáðàçà:
åñëè èçâåñòíî m1 è h = hash(m1), òî âû÷èñëèòåëüíî
ñëîæíî íàéòè òàêîå m2, m1 6= m2, ÷òî hash(m2) = h.
3. Óñòîé÷èâîñòü ê íàõîæäåíèþ êîëëèçèé:
âû÷èñëèòåëüíî ñëîæíî íàéòè äâà ðàçëè÷íûõ ñîîáùåíèÿ
m1è m2 òàêèå, ÷òî hash(m1) = hash(m2).Çàìå÷àíèå: èç 3. ñëåäóåò 2.
4. Äëÿ ëþáîãî m hash(m) ýôôåêòèâíî âû÷èñëÿåòñÿ.
Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè äîëæíû óäîâëåòâîðÿòü
ñëåäóþùèì òðåáîâàíèÿì:
1. Óñòîé÷èâîñòü ê íàõîæäåíèþ ïðîîáðàçà:
åñëè èçâåñòíî õýø-çíà÷åíèå h, òî âû÷èñëèòåëüíî ñëîæíî
íàéòè òàêîå m, ÷òî hash(m) = h.
2. Óñòîé÷èâîñòü ê íàõîæäåíèþ âòîðîãî ïðîîáðàçà:
åñëè èçâåñòíî m1 è h = hash(m1), òî âû÷èñëèòåëüíî
ñëîæíî íàéòè òàêîå m2, m1 6= m2, ÷òî hash(m2) = h.
3. Óñòîé÷èâîñòü ê íàõîæäåíèþ êîëëèçèé:
âû÷èñëèòåëüíî ñëîæíî íàéòè äâà ðàçëè÷íûõ ñîîáùåíèÿ
m1è m2 òàêèå, ÷òî hash(m1) = hash(m2).Çàìå÷àíèå: èç 3. ñëåäóåò 2.
4. Äëÿ ëþáîãî m hash(m) ýôôåêòèâíî âû÷èñëÿåòñÿ.
Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè äîëæíû óäîâëåòâîðÿòü
ñëåäóþùèì òðåáîâàíèÿì:
1. Óñòîé÷èâîñòü ê íàõîæäåíèþ ïðîîáðàçà:
åñëè èçâåñòíî õýø-çíà÷åíèå h, òî âû÷èñëèòåëüíî ñëîæíî
íàéòè òàêîå m, ÷òî hash(m) = h.
2. Óñòîé÷èâîñòü ê íàõîæäåíèþ âòîðîãî ïðîîáðàçà:
åñëè èçâåñòíî m1 è h = hash(m1), òî âû÷èñëèòåëüíî
ñëîæíî íàéòè òàêîå m2, m1 6= m2, ÷òî hash(m2) = h.
3. Óñòîé÷èâîñòü ê íàõîæäåíèþ êîëëèçèé:
âû÷èñëèòåëüíî ñëîæíî íàéòè äâà ðàçëè÷íûõ ñîîáùåíèÿ
m1è m2 òàêèå, ÷òî hash(m1) = hash(m2).Çàìå÷àíèå: èç 3. ñëåäóåò 2.
4. Äëÿ ëþáîãî m hash(m) ýôôåêòèâíî âû÷èñëÿåòñÿ.
Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè äîëæíû óäîâëåòâîðÿòü
ñëåäóþùèì òðåáîâàíèÿì:
1. Óñòîé÷èâîñòü ê íàõîæäåíèþ ïðîîáðàçà:
åñëè èçâåñòíî õýø-çíà÷åíèå h, òî âû÷èñëèòåëüíî ñëîæíî
íàéòè òàêîå m, ÷òî hash(m) = h.
2. Óñòîé÷èâîñòü ê íàõîæäåíèþ âòîðîãî ïðîîáðàçà:
åñëè èçâåñòíî m1 è h = hash(m1), òî âû÷èñëèòåëüíî
ñëîæíî íàéòè òàêîå m2, m1 6= m2, ÷òî hash(m2) = h.
3. Óñòîé÷èâîñòü ê íàõîæäåíèþ êîëëèçèé:
âû÷èñëèòåëüíî ñëîæíî íàéòè äâà ðàçëè÷íûõ ñîîáùåíèÿ
m1è m2 òàêèå, ÷òî hash(m1) = hash(m2).Çàìå÷àíèå: èç 3. ñëåäóåò 2.
4. Äëÿ ëþáîãî m hash(m) ýôôåêòèâíî âû÷èñëÿåòñÿ.
Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè äîëæíû óäîâëåòâîðÿòü
ñëåäóþùèì òðåáîâàíèÿì:
1. Óñòîé÷èâîñòü ê íàõîæäåíèþ ïðîîáðàçà:
åñëè èçâåñòíî õýø-çíà÷åíèå h, òî âû÷èñëèòåëüíî ñëîæíî
íàéòè òàêîå m, ÷òî hash(m) = h.
2. Óñòîé÷èâîñòü ê íàõîæäåíèþ âòîðîãî ïðîîáðàçà:
åñëè èçâåñòíî m1 è h = hash(m1), òî âû÷èñëèòåëüíî
ñëîæíî íàéòè òàêîå m2, m1 6= m2, ÷òî hash(m2) = h.
3. Óñòîé÷èâîñòü ê íàõîæäåíèþ êîëëèçèé:
âû÷èñëèòåëüíî ñëîæíî íàéòè äâà ðàçëè÷íûõ ñîîáùåíèÿ
m1è m2 òàêèå, ÷òî hash(m1) = hash(m2).Çàìå÷àíèå: èç 3. ñëåäóåò 2.
4. Äëÿ ëþáîãî m hash(m) ýôôåêòèâíî âû÷èñëÿåòñÿ.
Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
Èñïîëüçîâàíèå êðèïòîãðàôè÷åñêèõ õýø-ôóíêöèé
1. Ïðîâåðêà öåëîñòíîñòè ñîîáùåíèé, ôàéëîâ è ò. ï.;
2. Ïðîâåðêà ïàðîëåé. Õðàíÿòñÿ íå ïàðîëè â îòêðûòîì âèäå, à
ëèøü õýø-çíà÷åíèÿ ïàðîëåé ⇒ íåëüçÿ âîññòàíîâèòü
ïàðîëü (ìîæíî òîëüêî ñáðîñèòü).
I Ñîëü � ñòðîêà ñëó÷àéíûõ äàííûõ.Ñîëü ïîäàåòñÿ íà âõîä õýø-ôóíêöèè âìåñòå ñ èñõîäíûìèäàííûìè:key =′′
for 1 to 65536 dokey = hash(key + password + salt)
� äëÿ óñëîæíåíèÿ ïîäáîðà (îòðèöàíèå 4-ãî ñâîéñòâàõýø-ôóíêöèè).
Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
Èñïîëüçîâàíèå êðèïòîãðàôè÷åñêèõ õýø-ôóíêöèé
1. Ïðîâåðêà öåëîñòíîñòè ñîîáùåíèé, ôàéëîâ è ò. ï.;
2. Ïðîâåðêà ïàðîëåé. Õðàíÿòñÿ íå ïàðîëè â îòêðûòîì âèäå, à
ëèøü õýø-çíà÷åíèÿ ïàðîëåé ⇒ íåëüçÿ âîññòàíîâèòü
ïàðîëü (ìîæíî òîëüêî ñáðîñèòü).
I Ñîëü � ñòðîêà ñëó÷àéíûõ äàííûõ.Ñîëü ïîäàåòñÿ íà âõîä õýø-ôóíêöèè âìåñòå ñ èñõîäíûìèäàííûìè:key =′′
for 1 to 65536 dokey = hash(key + password + salt)
� äëÿ óñëîæíåíèÿ ïîäáîðà (îòðèöàíèå 4-ãî ñâîéñòâàõýø-ôóíêöèè).
Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
Èñïîëüçîâàíèå êðèïòîãðàôè÷åñêèõ õýø-ôóíêöèé
1. Ïðîâåðêà öåëîñòíîñòè ñîîáùåíèé, ôàéëîâ è ò. ï.;
2. Ïðîâåðêà ïàðîëåé. Õðàíÿòñÿ íå ïàðîëè â îòêðûòîì âèäå, à
ëèøü õýø-çíà÷åíèÿ ïàðîëåé ⇒ íåëüçÿ âîññòàíîâèòü
ïàðîëü (ìîæíî òîëüêî ñáðîñèòü).
I Ñîëü � ñòðîêà ñëó÷àéíûõ äàííûõ.Ñîëü ïîäàåòñÿ íà âõîä õýø-ôóíêöèè âìåñòå ñ èñõîäíûìèäàííûìè:key =′′
for 1 to 65536 dokey = hash(key + password + salt)
� äëÿ óñëîæíåíèÿ ïîäáîðà (îòðèöàíèå 4-ãî ñâîéñòâàõýø-ôóíêöèè).
Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
Èñïîëüçîâàíèå êðèïòîãðàôè÷åñêèõ õýø-ôóíêöèé
1. Ïðîâåðêà öåëîñòíîñòè ñîîáùåíèé, ôàéëîâ è ò. ï.;
2. Ïðîâåðêà ïàðîëåé. Õðàíÿòñÿ íå ïàðîëè â îòêðûòîì âèäå, à
ëèøü õýø-çíà÷åíèÿ ïàðîëåé ⇒ íåëüçÿ âîññòàíîâèòü
ïàðîëü (ìîæíî òîëüêî ñáðîñèòü);
3. Èäåíòèôèêàöèÿ ôàéëîâ â ñèñòåìàõ êîíòðîëÿ âåðñèé (Git,
Mercurial), â peer-to-peer ñåòÿõ;
4. ÝÖÏ. Ïîäïèñûâàþòñÿ íå ñàìè äîêóìåíòû, à õýø-çíà÷åíèÿ
ýòèõ äîêóìåíòîâ � äëÿ ýôôåêòèâíîñòè.
Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
Èñïîëüçîâàíèå êðèïòîãðàôè÷åñêèõ õýø-ôóíêöèé
1. Ïðîâåðêà öåëîñòíîñòè ñîîáùåíèé, ôàéëîâ è ò. ï.;
2. Ïðîâåðêà ïàðîëåé. Õðàíÿòñÿ íå ïàðîëè â îòêðûòîì âèäå, à
ëèøü õýø-çíà÷åíèÿ ïàðîëåé ⇒ íåëüçÿ âîññòàíîâèòü
ïàðîëü (ìîæíî òîëüêî ñáðîñèòü);
3. Èäåíòèôèêàöèÿ ôàéëîâ â ñèñòåìàõ êîíòðîëÿ âåðñèé (Git,
Mercurial), â peer-to-peer ñåòÿõ;
4. ÝÖÏ. Ïîäïèñûâàþòñÿ íå ñàìè äîêóìåíòû, à õýø-çíà÷åíèÿ
ýòèõ äîêóìåíòîâ � äëÿ ýôôåêòèâíîñòè.
Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
Èñïîëüçîâàíèå êðèïòîãðàôè÷åñêèõ õýø-ôóíêöèé
1. Ïðîâåðêà öåëîñòíîñòè ñîîáùåíèé, ôàéëîâ è ò. ï.;
2. Ïðîâåðêà ïàðîëåé. Õðàíÿòñÿ íå ïàðîëè â îòêðûòîì âèäå, à
ëèøü õýø-çíà÷åíèÿ ïàðîëåé ⇒ íåëüçÿ âîññòàíîâèòü
ïàðîëü (ìîæíî òîëüêî ñáðîñèòü);
3. Èäåíòèôèêàöèÿ ôàéëîâ â ñèñòåìàõ êîíòðîëÿ âåðñèé (Git,
Mercurial), â peer-to-peer ñåòÿõ;
4. ÝÖÏ. Ïîäïèñûâàþòñÿ íå ñàìè äîêóìåíòû, à õýø-çíà÷åíèÿ
ýòèõ äîêóìåíòîâ � äëÿ ýôôåêòèâíîñòè.
Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
Êîíñòðóêöèÿ Ìåðêëà-Äàìãàðäà(Merkle�Damgard)
Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
Êîíñòðóêöèÿ Ìåðêëà-Äàìãàðäà(Merkle�Damgard)
Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
Íåäîñòàòêè íàäåæíîñòè êîíñòðóêöèè
1. Àòòàêà óäëèííåíèåì ñîîáùåíèÿ. Åñëè àòàêàþùèé çíàåò
êîëëèçèþ, òî îí ñ ëåãêîñòüþ ìîæåò íàéòè ñëåäóþùóþ;
2. Àòàêà íàõîæäåíèÿ âòîðîãî ïðîîáðàçà âñåãäà ýôôåêòèâíåå
÷åì àòàêà â ëîá;
3. Ìóëüòèêîëëèçèè ìîæíî íàéòè ïðàêòè÷åñêè ñ òàêîé æå
ëåãêîñòüþ êàê è êîëëèçèè;
4. Àòàêè Õåðäèíãà
5. Àòàêà ðàñøèðåíèåì.
Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
Íåäîñòàòêè íàäåæíîñòè êîíñòðóêöèè
1. Àòòàêà óäëèííåíèåì ñîîáùåíèÿ. Åñëè àòàêàþùèé çíàåò
êîëëèçèþ, òî îí ñ ëåãêîñòüþ ìîæåò íàéòè ñëåäóþùóþ;
2. Àòàêà íàõîæäåíèÿ âòîðîãî ïðîîáðàçà âñåãäà ýôôåêòèâíåå
÷åì àòàêà â ëîá;
3. Ìóëüòèêîëëèçèè ìîæíî íàéòè ïðàêòè÷åñêè ñ òàêîé æå
ëåãêîñòüþ êàê è êîëëèçèè;
4. Àòàêè Õåðäèíãà
5. Àòàêà ðàñøèðåíèåì.
Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
Íåäîñòàòêè íàäåæíîñòè êîíñòðóêöèè
1. Àòòàêà óäëèííåíèåì ñîîáùåíèÿ. Åñëè àòàêàþùèé çíàåò
êîëëèçèþ, òî îí ñ ëåãêîñòüþ ìîæåò íàéòè ñëåäóþùóþ;
2. Àòàêà íàõîæäåíèÿ âòîðîãî ïðîîáðàçà âñåãäà ýôôåêòèâíåå
÷åì àòàêà â ëîá;
3. Ìóëüòèêîëëèçèè ìîæíî íàéòè ïðàêòè÷åñêè ñ òàêîé æå
ëåãêîñòüþ êàê è êîëëèçèè;
4. Àòàêè Õåðäèíãà
5. Àòàêà ðàñøèðåíèåì.
Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
Íåäîñòàòêè íàäåæíîñòè êîíñòðóêöèè
1. Àòòàêà óäëèííåíèåì ñîîáùåíèÿ. Åñëè àòàêàþùèé çíàåò
êîëëèçèþ, òî îí ñ ëåãêîñòüþ ìîæåò íàéòè ñëåäóþùóþ;
2. Àòàêà íàõîæäåíèÿ âòîðîãî ïðîîáðàçà âñåãäà ýôôåêòèâíåå
÷åì àòàêà â ëîá;
3. Ìóëüòèêîëëèçèè ìîæíî íàéòè ïðàêòè÷åñêè ñ òàêîé æå
ëåãêîñòüþ êàê è êîëëèçèè;
4. Àòàêè Õåðäèíãà
5. Àòàêà ðàñøèðåíèåì.
Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
Íåäîñòàòêè íàäåæíîñòè êîíñòðóêöèè
1. Àòòàêà óäëèííåíèåì ñîîáùåíèÿ. Åñëè àòàêàþùèé çíàåò
êîëëèçèþ, òî îí ñ ëåãêîñòüþ ìîæåò íàéòè ñëåäóþùóþ;
2. Àòàêà íàõîæäåíèÿ âòîðîãî ïðîîáðàçà âñåãäà ýôôåêòèâíåå
÷åì àòàêà â ëîá;
3. Ìóëüòèêîëëèçèè ìîæíî íàéòè ïðàêòè÷åñêè ñ òàêîé æå
ëåãêîñòüþ êàê è êîëëèçèè;
4. Àòàêè Õåðäèíãà
5. Àòàêà ðàñøèðåíèåì.
Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
Ïîñòðîåíèå ñæèìàþùåé ôóíêöèè èç áëîêîâîãî øèôðà
Êîíñòðóêöèÿ Devies�Meyer
Hi = Emi (Hi−1)⊕ Hi−1
Ïðèìåðû: MD5, SHA-1, SHA-2
Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
Ïîñòðîåíèå ñæèìàþùåé ôóíêöèè èç áëîêîâîãî øèôðà
Êîíñòðóêöèÿ Matyas�Meyer�Oseas
Hi = Eg(Hi−1)(mi )⊕mi
Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
Ïîñòðîåíèå ñæèìàþùåé ôóíêöèè èç áëîêîâîãî øèôðà
Êîíñòðóêöèÿ Miyaguchi�Preneel
Hi = Eg(Hi−1)(mi )⊕mi ⊕ Hi−1
Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
Êîäû ïîâåðêè ñîîáùåíèé(MAC) � èìèòîçàùèòà
Îáåñïå÷èâàþò öåëîñòíîñòü è àóòåíòè÷íîñòü ñîîáùåíèé:
Íàïðèìåð,
hash(K ,m)K � ñåêðåòíûé êëþ÷;
m � ñîîáùåíèå;
hash(K ||m) � íå î÷åíü õîðîøàÿ êîíñòðóêöèÿ
Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
HMAC
Ñîãëàñíî RFC 2104:HMAC (K ,m) = hash((K ⊕ opad)||hash((K ⊕ ipad)||m))opad = 0x5c5c . . . 5cipad = 0x3636 . . . 36
Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
MD5
Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè
SHA-3 (Keccak)