Лекция 6 - Криптографические хэш-функции

32

Transcript of Лекция 6 - Криптографические хэш-функции

Page 1: Лекция 6 - Криптографические хэш-функции

Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè

Ëåêöèÿ 6Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè

Ìèõàèë Ëåîíèäîâè÷ Áóðÿêîâ

2012 ãîä

Page 2: Лекция 6 - Криптографические хэш-функции

Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè

Ïîíÿòèå õýø-ôóíêöèè

Õýø-ôóíêöèÿ � àëãîðèòì, ïðåîáðàçóþùèé áëîê äàííûõ

ïðîèçâîëüíîé äëèíû â âûõîäíóþ áèòîâóþ ñòðîêó

ôèêñèðîâàííîé äëèíû:

hash(m) = h

m � äàííûå, ñîîáùåíèå ïðîèçâîëüíîé äëèíû

h � õýø-çíà÷åíèå äëÿ m ôèêñèðîâàííîé äëèíû (îáû÷íî 2k :128, 192, 256 è ò. ï.)

Page 3: Лекция 6 - Криптографические хэш-функции

Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè

Ïîíÿòèå õýø-ôóíêöèè

 îáùåì ñëó÷àå èñïîëüçóþòñÿ:

I â ñòðóêòóðàõ äàííûõ

(õýø-òàáëèöû, àññîöèàòèâíûå ìàññèâû, äèíàìè÷åñêèå

ìíîæåñòâà);

I äëÿ êýøèðîâàíèÿ;

I â ôèëüòàõ Áëþìà;

I äëÿ ïðîâåðêè êîððåêòíîñòè . . .

Page 4: Лекция 6 - Криптографические хэш-функции

Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè

Ïîíÿòèå õýø-ôóíêöèè

 îáùåì ñëó÷àå èñïîëüçóþòñÿ:

I â ñòðóêòóðàõ äàííûõ

(õýø-òàáëèöû, àññîöèàòèâíûå ìàññèâû, äèíàìè÷åñêèå

ìíîæåñòâà);

I äëÿ êýøèðîâàíèÿ;

I â ôèëüòàõ Áëþìà;

I äëÿ ïðîâåðêè êîððåêòíîñòè . . .

Page 5: Лекция 6 - Криптографические хэш-функции

Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè

Ïîíÿòèå õýø-ôóíêöèè

 îáùåì ñëó÷àå èñïîëüçóþòñÿ:

I â ñòðóêòóðàõ äàííûõ

(õýø-òàáëèöû, àññîöèàòèâíûå ìàññèâû, äèíàìè÷åñêèå

ìíîæåñòâà);

I äëÿ êýøèðîâàíèÿ;

I â ôèëüòàõ Áëþìà;

I äëÿ ïðîâåðêè êîððåêòíîñòè . . .

Page 6: Лекция 6 - Криптографические хэш-функции

Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè

Ïîíÿòèå õýø-ôóíêöèè

 îáùåì ñëó÷àå èñïîëüçóþòñÿ:

I â ñòðóêòóðàõ äàííûõ

(õýø-òàáëèöû, àññîöèàòèâíûå ìàññèâû, äèíàìè÷åñêèå

ìíîæåñòâà);

I äëÿ êýøèðîâàíèÿ;

I â ôèëüòàõ Áëþìà;

I äëÿ ïðîâåðêè êîððåêòíîñòè . . .

Page 7: Лекция 6 - Криптографические хэш-функции

Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè

Ïîíÿòèå õýø-ôóíêöèè

 îáùåì ñëó÷àå èñïîëüçóþòñÿ:

I â ñòðóêòóðàõ äàííûõ

(õýø-òàáëèöû, àññîöèàòèâíûå ìàññèâû, äèíàìè÷åñêèå

ìíîæåñòâà);

I äëÿ êýøèðîâàíèÿ;

I â ôèëüòàõ Áëþìà;

I äëÿ ïðîâåðêè êîððåêòíîñòè . . .

Page 8: Лекция 6 - Криптографические хэш-функции

Ëåêöèÿ 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) ýôôåêòèâíî âû÷èñëÿåòñÿ.

Page 9: Лекция 6 - Криптографические хэш-функции

Ëåêöèÿ 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) ýôôåêòèâíî âû÷èñëÿåòñÿ.

Page 10: Лекция 6 - Криптографические хэш-функции

Ëåêöèÿ 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) ýôôåêòèâíî âû÷èñëÿåòñÿ.

Page 11: Лекция 6 - Криптографические хэш-функции

Ëåêöèÿ 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) ýôôåêòèâíî âû÷èñëÿåòñÿ.

Page 12: Лекция 6 - Криптографические хэш-функции

Ëåêöèÿ 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) ýôôåêòèâíî âû÷èñëÿåòñÿ.

Page 13: Лекция 6 - Криптографические хэш-функции

Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè

Èñïîëüçîâàíèå êðèïòîãðàôè÷åñêèõ õýø-ôóíêöèé

1. Ïðîâåðêà öåëîñòíîñòè ñîîáùåíèé, ôàéëîâ è ò. ï.;

2. Ïðîâåðêà ïàðîëåé. Õðàíÿòñÿ íå ïàðîëè â îòêðûòîì âèäå, à

ëèøü õýø-çíà÷åíèÿ ïàðîëåé ⇒ íåëüçÿ âîññòàíîâèòü

ïàðîëü (ìîæíî òîëüêî ñáðîñèòü).

I Ñîëü � ñòðîêà ñëó÷àéíûõ äàííûõ.Ñîëü ïîäàåòñÿ íà âõîä õýø-ôóíêöèè âìåñòå ñ èñõîäíûìèäàííûìè:key =′′

for 1 to 65536 dokey = hash(key + password + salt)

� äëÿ óñëîæíåíèÿ ïîäáîðà (îòðèöàíèå 4-ãî ñâîéñòâàõýø-ôóíêöèè).

Page 14: Лекция 6 - Криптографические хэш-функции

Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè

Èñïîëüçîâàíèå êðèïòîãðàôè÷åñêèõ õýø-ôóíêöèé

1. Ïðîâåðêà öåëîñòíîñòè ñîîáùåíèé, ôàéëîâ è ò. ï.;

2. Ïðîâåðêà ïàðîëåé. Õðàíÿòñÿ íå ïàðîëè â îòêðûòîì âèäå, à

ëèøü õýø-çíà÷åíèÿ ïàðîëåé ⇒ íåëüçÿ âîññòàíîâèòü

ïàðîëü (ìîæíî òîëüêî ñáðîñèòü).

I Ñîëü � ñòðîêà ñëó÷àéíûõ äàííûõ.Ñîëü ïîäàåòñÿ íà âõîä õýø-ôóíêöèè âìåñòå ñ èñõîäíûìèäàííûìè:key =′′

for 1 to 65536 dokey = hash(key + password + salt)

� äëÿ óñëîæíåíèÿ ïîäáîðà (îòðèöàíèå 4-ãî ñâîéñòâàõýø-ôóíêöèè).

Page 15: Лекция 6 - Криптографические хэш-функции

Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè

Èñïîëüçîâàíèå êðèïòîãðàôè÷åñêèõ õýø-ôóíêöèé

1. Ïðîâåðêà öåëîñòíîñòè ñîîáùåíèé, ôàéëîâ è ò. ï.;

2. Ïðîâåðêà ïàðîëåé. Õðàíÿòñÿ íå ïàðîëè â îòêðûòîì âèäå, à

ëèøü õýø-çíà÷åíèÿ ïàðîëåé ⇒ íåëüçÿ âîññòàíîâèòü

ïàðîëü (ìîæíî òîëüêî ñáðîñèòü).

I Ñîëü � ñòðîêà ñëó÷àéíûõ äàííûõ.Ñîëü ïîäàåòñÿ íà âõîä õýø-ôóíêöèè âìåñòå ñ èñõîäíûìèäàííûìè:key =′′

for 1 to 65536 dokey = hash(key + password + salt)

� äëÿ óñëîæíåíèÿ ïîäáîðà (îòðèöàíèå 4-ãî ñâîéñòâàõýø-ôóíêöèè).

Page 16: Лекция 6 - Криптографические хэш-функции

Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè

Èñïîëüçîâàíèå êðèïòîãðàôè÷åñêèõ õýø-ôóíêöèé

1. Ïðîâåðêà öåëîñòíîñòè ñîîáùåíèé, ôàéëîâ è ò. ï.;

2. Ïðîâåðêà ïàðîëåé. Õðàíÿòñÿ íå ïàðîëè â îòêðûòîì âèäå, à

ëèøü õýø-çíà÷åíèÿ ïàðîëåé ⇒ íåëüçÿ âîññòàíîâèòü

ïàðîëü (ìîæíî òîëüêî ñáðîñèòü);

3. Èäåíòèôèêàöèÿ ôàéëîâ â ñèñòåìàõ êîíòðîëÿ âåðñèé (Git,

Mercurial), â peer-to-peer ñåòÿõ;

4. ÝÖÏ. Ïîäïèñûâàþòñÿ íå ñàìè äîêóìåíòû, à õýø-çíà÷åíèÿ

ýòèõ äîêóìåíòîâ � äëÿ ýôôåêòèâíîñòè.

Page 17: Лекция 6 - Криптографические хэш-функции

Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè

Èñïîëüçîâàíèå êðèïòîãðàôè÷åñêèõ õýø-ôóíêöèé

1. Ïðîâåðêà öåëîñòíîñòè ñîîáùåíèé, ôàéëîâ è ò. ï.;

2. Ïðîâåðêà ïàðîëåé. Õðàíÿòñÿ íå ïàðîëè â îòêðûòîì âèäå, à

ëèøü õýø-çíà÷åíèÿ ïàðîëåé ⇒ íåëüçÿ âîññòàíîâèòü

ïàðîëü (ìîæíî òîëüêî ñáðîñèòü);

3. Èäåíòèôèêàöèÿ ôàéëîâ â ñèñòåìàõ êîíòðîëÿ âåðñèé (Git,

Mercurial), â peer-to-peer ñåòÿõ;

4. ÝÖÏ. Ïîäïèñûâàþòñÿ íå ñàìè äîêóìåíòû, à õýø-çíà÷åíèÿ

ýòèõ äîêóìåíòîâ � äëÿ ýôôåêòèâíîñòè.

Page 18: Лекция 6 - Криптографические хэш-функции

Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè

Èñïîëüçîâàíèå êðèïòîãðàôè÷åñêèõ õýø-ôóíêöèé

1. Ïðîâåðêà öåëîñòíîñòè ñîîáùåíèé, ôàéëîâ è ò. ï.;

2. Ïðîâåðêà ïàðîëåé. Õðàíÿòñÿ íå ïàðîëè â îòêðûòîì âèäå, à

ëèøü õýø-çíà÷åíèÿ ïàðîëåé ⇒ íåëüçÿ âîññòàíîâèòü

ïàðîëü (ìîæíî òîëüêî ñáðîñèòü);

3. Èäåíòèôèêàöèÿ ôàéëîâ â ñèñòåìàõ êîíòðîëÿ âåðñèé (Git,

Mercurial), â peer-to-peer ñåòÿõ;

4. ÝÖÏ. Ïîäïèñûâàþòñÿ íå ñàìè äîêóìåíòû, à õýø-çíà÷åíèÿ

ýòèõ äîêóìåíòîâ � äëÿ ýôôåêòèâíîñòè.

Page 19: Лекция 6 - Криптографические хэш-функции

Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè

Êîíñòðóêöèÿ Ìåðêëà-Äàìãàðäà(Merkle�Damgard)

Page 20: Лекция 6 - Криптографические хэш-функции

Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè

Êîíñòðóêöèÿ Ìåðêëà-Äàìãàðäà(Merkle�Damgard)

Page 21: Лекция 6 - Криптографические хэш-функции

Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè

Íåäîñòàòêè íàäåæíîñòè êîíñòðóêöèè

1. Àòòàêà óäëèííåíèåì ñîîáùåíèÿ. Åñëè àòàêàþùèé çíàåò

êîëëèçèþ, òî îí ñ ëåãêîñòüþ ìîæåò íàéòè ñëåäóþùóþ;

2. Àòàêà íàõîæäåíèÿ âòîðîãî ïðîîáðàçà âñåãäà ýôôåêòèâíåå

÷åì àòàêà â ëîá;

3. Ìóëüòèêîëëèçèè ìîæíî íàéòè ïðàêòè÷åñêè ñ òàêîé æå

ëåãêîñòüþ êàê è êîëëèçèè;

4. Àòàêè Õåðäèíãà

5. Àòàêà ðàñøèðåíèåì.

Page 22: Лекция 6 - Криптографические хэш-функции

Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè

Íåäîñòàòêè íàäåæíîñòè êîíñòðóêöèè

1. Àòòàêà óäëèííåíèåì ñîîáùåíèÿ. Åñëè àòàêàþùèé çíàåò

êîëëèçèþ, òî îí ñ ëåãêîñòüþ ìîæåò íàéòè ñëåäóþùóþ;

2. Àòàêà íàõîæäåíèÿ âòîðîãî ïðîîáðàçà âñåãäà ýôôåêòèâíåå

÷åì àòàêà â ëîá;

3. Ìóëüòèêîëëèçèè ìîæíî íàéòè ïðàêòè÷åñêè ñ òàêîé æå

ëåãêîñòüþ êàê è êîëëèçèè;

4. Àòàêè Õåðäèíãà

5. Àòàêà ðàñøèðåíèåì.

Page 23: Лекция 6 - Криптографические хэш-функции

Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè

Íåäîñòàòêè íàäåæíîñòè êîíñòðóêöèè

1. Àòòàêà óäëèííåíèåì ñîîáùåíèÿ. Åñëè àòàêàþùèé çíàåò

êîëëèçèþ, òî îí ñ ëåãêîñòüþ ìîæåò íàéòè ñëåäóþùóþ;

2. Àòàêà íàõîæäåíèÿ âòîðîãî ïðîîáðàçà âñåãäà ýôôåêòèâíåå

÷åì àòàêà â ëîá;

3. Ìóëüòèêîëëèçèè ìîæíî íàéòè ïðàêòè÷åñêè ñ òàêîé æå

ëåãêîñòüþ êàê è êîëëèçèè;

4. Àòàêè Õåðäèíãà

5. Àòàêà ðàñøèðåíèåì.

Page 24: Лекция 6 - Криптографические хэш-функции

Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè

Íåäîñòàòêè íàäåæíîñòè êîíñòðóêöèè

1. Àòòàêà óäëèííåíèåì ñîîáùåíèÿ. Åñëè àòàêàþùèé çíàåò

êîëëèçèþ, òî îí ñ ëåãêîñòüþ ìîæåò íàéòè ñëåäóþùóþ;

2. Àòàêà íàõîæäåíèÿ âòîðîãî ïðîîáðàçà âñåãäà ýôôåêòèâíåå

÷åì àòàêà â ëîá;

3. Ìóëüòèêîëëèçèè ìîæíî íàéòè ïðàêòè÷åñêè ñ òàêîé æå

ëåãêîñòüþ êàê è êîëëèçèè;

4. Àòàêè Õåðäèíãà

5. Àòàêà ðàñøèðåíèåì.

Page 25: Лекция 6 - Криптографические хэш-функции

Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè

Íåäîñòàòêè íàäåæíîñòè êîíñòðóêöèè

1. Àòòàêà óäëèííåíèåì ñîîáùåíèÿ. Åñëè àòàêàþùèé çíàåò

êîëëèçèþ, òî îí ñ ëåãêîñòüþ ìîæåò íàéòè ñëåäóþùóþ;

2. Àòàêà íàõîæäåíèÿ âòîðîãî ïðîîáðàçà âñåãäà ýôôåêòèâíåå

÷åì àòàêà â ëîá;

3. Ìóëüòèêîëëèçèè ìîæíî íàéòè ïðàêòè÷åñêè ñ òàêîé æå

ëåãêîñòüþ êàê è êîëëèçèè;

4. Àòàêè Õåðäèíãà

5. Àòàêà ðàñøèðåíèåì.

Page 26: Лекция 6 - Криптографические хэш-функции

Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè

Ïîñòðîåíèå ñæèìàþùåé ôóíêöèè èç áëîêîâîãî øèôðà

Êîíñòðóêöèÿ Devies�Meyer

Hi = Emi (Hi−1)⊕ Hi−1

Ïðèìåðû: MD5, SHA-1, SHA-2

Page 27: Лекция 6 - Криптографические хэш-функции

Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè

Ïîñòðîåíèå ñæèìàþùåé ôóíêöèè èç áëîêîâîãî øèôðà

Êîíñòðóêöèÿ Matyas�Meyer�Oseas

Hi = Eg(Hi−1)(mi )⊕mi

Page 28: Лекция 6 - Криптографические хэш-функции

Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè

Ïîñòðîåíèå ñæèìàþùåé ôóíêöèè èç áëîêîâîãî øèôðà

Êîíñòðóêöèÿ Miyaguchi�Preneel

Hi = Eg(Hi−1)(mi )⊕mi ⊕ Hi−1

Page 29: Лекция 6 - Криптографические хэш-функции

Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè

Êîäû ïîâåðêè ñîîáùåíèé(MAC) � èìèòîçàùèòà

Îáåñïå÷èâàþò öåëîñòíîñòü è àóòåíòè÷íîñòü ñîîáùåíèé:

Íàïðèìåð,

hash(K ,m)K � ñåêðåòíûé êëþ÷;

m � ñîîáùåíèå;

hash(K ||m) � íå î÷åíü õîðîøàÿ êîíñòðóêöèÿ

Page 30: Лекция 6 - Криптографические хэш-функции

Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè

HMAC

Ñîãëàñíî RFC 2104:HMAC (K ,m) = hash((K ⊕ opad)||hash((K ⊕ ipad)||m))opad = 0x5c5c . . . 5cipad = 0x3636 . . . 36

Page 31: Лекция 6 - Криптографические хэш-функции

Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè

MD5

Page 32: Лекция 6 - Криптографические хэш-функции

Ëåêöèÿ 6 Êðèïòîãðàôè÷åñêèå õýø-ôóíêöèè

SHA-3 (Keccak)