Лекция 3 - Блочные шифры, часть i
TRANSCRIPT
Ëåêöèÿ 3 Áëî÷íûå øèôðû
Ëåêöèÿ 3Áëî÷íûå øèôðû
Ìèõàèë Ëåîíèäîâè÷ Áóðÿêîâ
2012 ãîä
Ëåêöèÿ 3 Áëî÷íûå øèôðû
Îïðåäåëåíèå
Áëî÷íûé øèôð � àëãîðèòì, îïåðèðóþùèé íàä ãðóïïàìè áèòîâôèêñèðîâàííîé äëèíû (áëîêàìè), ïðåîáðàçîâàíèå êîòîðîãîîïðåäåëÿåòñÿ êëþ÷îì è ÿâëÿåòñÿ íåèçìåííûì [âî âðåìåíè], òîåñòü îäèíàêîâûå áëîêè ïðè èñïîëüçîâàíèè îäíîãî êëþ÷àïðåîáðàçóþòñÿ â îäèíàêîâûå áëîêè.
Ëåêöèÿ 3 Áëî÷íûå øèôðû
Ñèììåòðè÷åñêèå/àññèììåòðè÷íûå áëî÷íûå øèôðû
Ñèììåòðè÷íûé áëî÷íûé øèôð
I ñåêðåòíûé êëþ÷ � ∼ 100 áèò
I áûñòðàÿ ñêîðîñòü øèôðîâàíèÿ
Àñèììåòðè÷íûé áëî÷íûé øèôð
I îòêðûòûé/ñåêðåòíûé êëþ÷ � ∼ c · 1000 áèò
I ìåäëåííàÿ ñêîðîñòü øèôðîâàíèÿ (< â 1000 ðàç)
Ëåêöèÿ 3 Áëî÷íûå øèôðû
Ñèììåòðè÷åñêèå/àññèììåòðè÷íûå áëî÷íûå øèôðû
Ñèììåòðè÷íûé áëî÷íûé øèôð
I ñåêðåòíûé êëþ÷ � ∼ 100 áèò
I áûñòðàÿ ñêîðîñòü øèôðîâàíèÿ
Àñèììåòðè÷íûé áëî÷íûé øèôð
I îòêðûòûé/ñåêðåòíûé êëþ÷ � ∼ c · 1000 áèò
I ìåäëåííàÿ ñêîðîñòü øèôðîâàíèÿ (< â 1000 ðàç)
Ëåêöèÿ 3 Áëî÷íûå øèôðû
Ñèììåòðè÷åñêèå/àññèììåòðè÷íûå áëî÷íûå øèôðû
Ñèììåòðè÷íûé áëî÷íûé øèôð
I ñåêðåòíûé êëþ÷ � ∼ 100 áèò
I áûñòðàÿ ñêîðîñòü øèôðîâàíèÿ
Àñèììåòðè÷íûé áëî÷íûé øèôð
I îòêðûòûé/ñåêðåòíûé êëþ÷ � ∼ c · 1000 áèò
I ìåäëåííàÿ ñêîðîñòü øèôðîâàíèÿ (< â 1000 ðàç)
Ëåêöèÿ 3 Áëî÷íûå øèôðû
Ñèììåòðè÷åñêèå/àññèììåòðè÷íûå áëî÷íûå øèôðû
Ñèììåòðè÷íûé áëî÷íûé øèôð
I ñåêðåòíûé êëþ÷ � ∼ 100 áèò
I áûñòðàÿ ñêîðîñòü øèôðîâàíèÿ
Àñèììåòðè÷íûé áëî÷íûé øèôð
I îòêðûòûé/ñåêðåòíûé êëþ÷ � ∼ c · 1000 áèò
I ìåäëåííàÿ ñêîðîñòü øèôðîâàíèÿ (< â 1000 ðàç)
Ëåêöèÿ 3 Áëî÷íûå øèôðû
Ñèììåòðè÷åñêèå/àññèììåòðè÷íûå áëî÷íûå øèôðû
Ñèììåòðè÷íûé áëî÷íûé øèôð
I ñåêðåòíûé êëþ÷ � ∼ 100 áèò
I áûñòðàÿ ñêîðîñòü øèôðîâàíèÿ
Àñèììåòðè÷íûé áëî÷íûé øèôð
I îòêðûòûé/ñåêðåòíûé êëþ÷ � ∼ c · 1000 áèò
I ìåäëåííàÿ ñêîðîñòü øèôðîâàíèÿ (< â 1000 ðàç)
Ëåêöèÿ 3 Áëî÷íûå øèôðû
Ïåðâûå áëî÷íûå øèôðû
Lucifer � èññëåäîâàòåëüñêèé ïðîåêò ôèðìû IBM 1970-õ ãîäîâïî ñîçäàíèþ êðèïòîóñòîé÷èâîãî áëî÷íîãî øèôðà.
Ðåçóëüòàòîì ïðîåêòà ñòàëè:
I ñåòü Ôåéñòåëÿ;
I SP-ñåòü.
Ëåêöèÿ 3 Áëî÷íûå øèôðû
Îñíîâíûå îïðåäåëåíèÿ
Ïðîöåäóðà øèôðîâàíèÿ
EK (P) := E (K ,P) : {0, 1}k × {0, 1}n → {0, 1}n
Ïðîöåäóðà ðàñøèôðîâàíèÿ
E−1K (C ) := DK (C ) = D(K ,C ) : {0, 1}k × {0, 1}n → {0, 1}n,
ïðè÷åì ∀K : DK (EK (P)) = P .
EK äëÿ ôèêñèðîâàííîãî K ÿâëÿåòñÿ ïåðåñòàíîâêîé íàìíîæåñòâå áëîêîâ îòêðûòîãî òåêñòà.
Ëåêöèÿ 3 Áëî÷íûå øèôðû
Îñíîâíûå îïðåäåëåíèÿ
Ïðîöåäóðà øèôðîâàíèÿ
EK (P) := E (K ,P) : {0, 1}k × {0, 1}n → {0, 1}n
Ïðîöåäóðà ðàñøèôðîâàíèÿ
E−1K (C ) := DK (C ) = D(K ,C ) : {0, 1}k × {0, 1}n → {0, 1}n,
ïðè÷åì ∀K : DK (EK (P)) = P .
EK äëÿ ôèêñèðîâàííîãî K ÿâëÿåòñÿ ïåðåñòàíîâêîé íàìíîæåñòâå áëîêîâ îòêðûòîãî òåêñòà.
Ëåêöèÿ 3 Áëî÷íûå øèôðû
Îñíîâíûå îïðåäåëåíèÿ
Ïðîöåäóðà øèôðîâàíèÿ
EK (P) := E (K ,P) : {0, 1}k × {0, 1}n → {0, 1}n
Ïðîöåäóðà ðàñøèôðîâàíèÿ
E−1K (C ) := DK (C ) = D(K ,C ) : {0, 1}k × {0, 1}n → {0, 1}n,
ïðè÷åì ∀K : DK (EK (P)) = P .
EK äëÿ ôèêñèðîâàííîãî K ÿâëÿåòñÿ ïåðåñòàíîâêîé íàìíîæåñòâå áëîêîâ îòêðûòîãî òåêñòà.
Ëåêöèÿ 3 Áëî÷íûå øèôðû
Äîïîëíåíèå áëîêîâ (padding)
Ïðîáëåìà: äëèíà ñîîáùåíèÿ íå êðàòíà äëèíå áëîêà, êàêøèôðîâàòü?
Ðåøåíèå: äîïîëíåíèå áèòàìè/áàéòàìè
Ïðîñòî äîáàâèòü, íàïðèìåð, íóëè � ïëîõîé âàðèàíò
. . . |DDDDDDDDDDDDDDDD|DDDDDDDD00000000|
Ëåêöèÿ 3 Áëî÷íûå øèôðû
Äîïîëíåíèå áëîêîâ (padding)
Ïðîáëåìà: äëèíà ñîîáùåíèÿ íå êðàòíà äëèíå áëîêà, êàêøèôðîâàòü?
Ðåøåíèå: äîïîëíåíèå áèòàìè/áàéòàìè
Ïðîñòî äîáàâèòü, íàïðèìåð, íóëè � ïëîõîé âàðèàíò
. . . |DDDDDDDDDDDDDDDD|DDDDDDDD00000000|
Ëåêöèÿ 3 Áëî÷íûå øèôðû
Äîïîëíåíèå áëîêîâ (padding)
Ïðîáëåìà: äëèíà ñîîáùåíèÿ íå êðàòíà äëèíå áëîêà, êàêøèôðîâàòü?
Ðåøåíèå: äîïîëíåíèå áèòàìè/áàéòàìè
Ïðîñòî äîáàâèòü, íàïðèìåð, íóëè � ïëîõîé âàðèàíò
. . . |DDDDDDDDDDDDDDDD|DDDDDDDD00000000|
Ëåêöèÿ 3 Áëî÷íûå øèôðû
Äîïîëíåíèå áëîêîâ (padding)
Ïðîáëåìà: äëèíà ñîîáùåíèÿ íå êðàòíà äëèíå áëîêà, êàêøèôðîâàòü?
Ðåøåíèå: äîïîëíåíèå áèòàìè/áàéòàìè
1. ANSI X.923
. . . |DDDDDDDDDDDDDDDD|DDDDDDDD00000004|2. ISO 10126
. . . |DDDDDDDDDDDDDDDD|DDDDDDDD81A62304|3. PKCS7 (RFC 5652)
. . . |DDDDDDDDDDDDDDDD|DDDDDDDD04040404|4. ISO/IEC 7816-4
. . . |DDDDDDDDDDDDDDDD|DDDDDDDD80000000|
Ëåêöèÿ 3 Áëî÷íûå øèôðû
Äîïîëíåíèå áëîêîâ (padding)
Ïðîáëåìà: äëèíà ñîîáùåíèÿ íå êðàòíà äëèíå áëîêà, êàêøèôðîâàòü?
Ðåøåíèå: äîïîëíåíèå áèòàìè/áàéòàìè
1. ANSI X.923
. . . |DDDDDDDDDDDDDDDD|DDDDDDDD00000004|
2. ISO 10126
. . . |DDDDDDDDDDDDDDDD|DDDDDDDD81A62304|3. PKCS7 (RFC 5652)
. . . |DDDDDDDDDDDDDDDD|DDDDDDDD04040404|4. ISO/IEC 7816-4
. . . |DDDDDDDDDDDDDDDD|DDDDDDDD80000000|
Ëåêöèÿ 3 Áëî÷íûå øèôðû
Äîïîëíåíèå áëîêîâ (padding)
Ïðîáëåìà: äëèíà ñîîáùåíèÿ íå êðàòíà äëèíå áëîêà, êàêøèôðîâàòü?
Ðåøåíèå: äîïîëíåíèå áèòàìè/áàéòàìè
1. ANSI X.923
. . . |DDDDDDDDDDDDDDDD|DDDDDDDD00000004|2. ISO 10126
. . . |DDDDDDDDDDDDDDDD|DDDDDDDD81A62304|
3. PKCS7 (RFC 5652)
. . . |DDDDDDDDDDDDDDDD|DDDDDDDD04040404|4. ISO/IEC 7816-4
. . . |DDDDDDDDDDDDDDDD|DDDDDDDD80000000|
Ëåêöèÿ 3 Áëî÷íûå øèôðû
Äîïîëíåíèå áëîêîâ (padding)
Ïðîáëåìà: äëèíà ñîîáùåíèÿ íå êðàòíà äëèíå áëîêà, êàêøèôðîâàòü?
Ðåøåíèå: äîïîëíåíèå áèòàìè/áàéòàìè
1. ANSI X.923
. . . |DDDDDDDDDDDDDDDD|DDDDDDDD00000004|2. ISO 10126
. . . |DDDDDDDDDDDDDDDD|DDDDDDDD81A62304|3. PKCS7 (RFC 5652)
. . . |DDDDDDDDDDDDDDDD|DDDDDDDD04040404|
4. ISO/IEC 7816-4
. . . |DDDDDDDDDDDDDDDD|DDDDDDDD80000000|
Ëåêöèÿ 3 Áëî÷íûå øèôðû
Äîïîëíåíèå áëîêîâ (padding)
Ïðîáëåìà: äëèíà ñîîáùåíèÿ íå êðàòíà äëèíå áëîêà, êàêøèôðîâàòü?
Ðåøåíèå: äîïîëíåíèå áèòàìè/áàéòàìè
1. ANSI X.923
. . . |DDDDDDDDDDDDDDDD|DDDDDDDD00000004|2. ISO 10126
. . . |DDDDDDDDDDDDDDDD|DDDDDDDD81A62304|3. PKCS7 (RFC 5652)
. . . |DDDDDDDDDDDDDDDD|DDDDDDDD04040404|4. ISO/IEC 7816-4
. . . |DDDDDDDDDDDDDDDD|DDDDDDDD80000000|
Ëåêöèÿ 3 Áëî÷íûå øèôðû
Äîïîëíåíèå áëîêîâ (padding)
Ïðîáëåìà: äëèíà ñîîáùåíèÿ íå êðàòíà äëèíå áëîêà, êàêøèôðîâàòü?
Ðåøåíèå: äîïîëíåíèå áèòàìè/áàéòàìè
Âî âñåõ ñëó÷àÿõ ïðîèñõîäèò óäëèíåíèå ïåðåäàâàåìîãîñîîáùåíèÿ (äàæå â ñëó÷àå, êîãäà äëèíà èñõîäíîãî ñîîáùåíèÿêðàòíà äëèíå áëîêà).
Ëåêöèÿ 3 Áëî÷íûå øèôðû
Ïîõèùåíèå øèôð-òåêñòà (ciphertext stealing)
Íåò óäëèííåíèÿ ñîîáùåíèÿ
Ëåêöèÿ 3 Áëî÷íûå øèôðû
Èòåðàòèâíûå áëî÷íûå øèôðû
EK = πqr+1 ◦ ϕqr ◦ ϕqr−1 ◦ . . . ◦ ϕq1 ◦ δq0(P)
E−1K = δ−1
q0 ◦ ϕ−1q1 ◦ ϕ
−1q2 ◦ . . . ◦ ϕ
−1qr ◦ π
−1qr+1
(C )
ϕq � ñåìåéñòâî áèåêòèâíûõ îòîáðàæåíèé (ñåìåéñòâî çàâèñèòîò q);ϕqi � ðàóíäîâàÿ ôóíêöèÿ, i-é ðàóíä øèôðîâàíèÿ;qi � ðàóíäîâûé êëþ÷;qi = θi (K ) � ïðîöåäóðà ôîðìèðîâàíèÿ ðàóíäîâûõ êëþ÷åé(êëþ÷åâîå ðàñïèñàíèå);δq0 � âõîäíîå îòîáðàæåíèå; πqr+1 � âûõîäíîå îòîáðàæåíèå.
Ëåêöèÿ 3 Áëî÷íûå øèôðû
Èòåðàòèâíûå áëî÷íûå øèôðû
EK = πqr+1 ◦ ϕqr ◦ ϕqr−1 ◦ . . . ◦ ϕq1 ◦ δq0(P)
E−1K = δ−1
q0 ◦ ϕ−1q1 ◦ ϕ
−1q2 ◦ . . . ◦ ϕ
−1qr ◦ π
−1qr+1
(C )
δq0 � âõîäíîå îòîáðàæåíèå; πqr+1 � âûõîäíîå îòîáðàæåíèå.Âõîäíîå è âûõîäíîå îòîáðàæåíèÿ ìîãóò
I íå çàâèñåòü îò êëþ÷à (DES),
I îòñóòñòâîâàòü (NewDES),
I ïðèñóòñòâîâàòü òîëüêî îäíî (ÃÎÑÒ) è ò.ï.
Ëåêöèÿ 3 Áëî÷íûå øèôðû
Îòáåëèâàíèå (whitening)
δq0(x) = x ⊕ q0
δqr+1(x) = x ⊕ qr+1
q0, qr+1 � êëþ÷è îòáåëèâàíèÿÓñëîæåíèå àòàêè ïîëíûì ïåðåáîðîì
Ëåêöèÿ 3 Áëî÷íûå øèôðû
Ñåòè ïîäñòàíîâêè-ïåðåñòàíîâêè (SP-ñåòè)
Ëåêöèÿ 3 Áëî÷íûå øèôðû
Ñåòè Ôåéñòåëÿ
Øèôðîâàíèå
Li = Ri−1 ⊕ f (Li−1,Ki−1)
Ri = Li−1
f � íåêîòîðàÿ ôóíêöèÿ (íå îáÿçà-òåëüíî âçàèìíî-îäíîçíà÷íàÿ)Ki−1 � i-é ðàóíäîâûé êëþ÷
Ëåêöèÿ 3 Áëî÷íûå øèôðû
Ñåòè Ôåéñòåëÿ
Ðàñøèôðîâàíèå
Li−1 = Ri ⊕ f (Li ,Ki−1)
Ri−1 = Li
f � íåêîòîðàÿ ôóíêöèÿ (íå îáÿçà-òåëüíî âçàèìíî-îäíîçíà÷íàÿ)Ki−1 � i-é ðàóíäîâûé êëþ÷
Ëåêöèÿ 3 Áëî÷íûå øèôðû
Ñåòè Ôåéñòåëÿ
Äîñòîèíñòâà
I Ïðîñòîòà àïïàðàòíîé ðåàëèçàöèè íà ñîâðåìåííîéýëåêòðîííîé áàçå
I Ïðîñòîòà ïðîãðàììíîé ðåàëèçàöèè â ñèëó òîãî, ÷òîçíà÷èòåëüíàÿ ÷àñòü ôóíêöèé ïîääðåæèâàåòñÿ íààïïàðàòíîì óðîâíå â ñîâðåìåííûõ êîìïüþòåðàõ (íàïðèìåð,ñëîæåíèå ïî ìîäóëþ 2n, óìíîæåíèå ïî ìîäóëþ 2n, è ò.ä.)
I Õîðîøàÿ èçó÷åííîñòü àëãîðèòìîâ íà îñíîâå ñåòåéÔåéñòåëÿ
Íåäîñòàòêè
I Çà îäèí ðàóíä øèôðóåòñÿ òîëüê ïîëîâèíà âõîäíîãî áëîêà
Ëåêöèÿ 3 Áëî÷íûå øèôðû
Ñåòè Ôåéñòåëÿ
Äîñòîèíñòâà
I Ïðîñòîòà àïïàðàòíîé ðåàëèçàöèè íà ñîâðåìåííîéýëåêòðîííîé áàçå
I Ïðîñòîòà ïðîãðàììíîé ðåàëèçàöèè â ñèëó òîãî, ÷òîçíà÷èòåëüíàÿ ÷àñòü ôóíêöèé ïîääðåæèâàåòñÿ íààïïàðàòíîì óðîâíå â ñîâðåìåííûõ êîìïüþòåðàõ (íàïðèìåð,ñëîæåíèå ïî ìîäóëþ 2n, óìíîæåíèå ïî ìîäóëþ 2n, è ò.ä.)
I Õîðîøàÿ èçó÷åííîñòü àëãîðèòìîâ íà îñíîâå ñåòåéÔåéñòåëÿ
Íåäîñòàòêè
I Çà îäèí ðàóíä øèôðóåòñÿ òîëüê ïîëîâèíà âõîäíîãî áëîêà
Ëåêöèÿ 3 Áëî÷íûå øèôðû
Ñåòè Ôåéñòåëÿ
Äîñòîèíñòâà
I Ïðîñòîòà àïïàðàòíîé ðåàëèçàöèè íà ñîâðåìåííîéýëåêòðîííîé áàçå
I Ïðîñòîòà ïðîãðàììíîé ðåàëèçàöèè â ñèëó òîãî, ÷òîçíà÷èòåëüíàÿ ÷àñòü ôóíêöèé ïîääðåæèâàåòñÿ íààïïàðàòíîì óðîâíå â ñîâðåìåííûõ êîìïüþòåðàõ (íàïðèìåð,ñëîæåíèå ïî ìîäóëþ 2n, óìíîæåíèå ïî ìîäóëþ 2n, è ò.ä.)
I Õîðîøàÿ èçó÷åííîñòü àëãîðèòìîâ íà îñíîâå ñåòåéÔåéñòåëÿ
Íåäîñòàòêè
I Çà îäèí ðàóíä øèôðóåòñÿ òîëüê ïîëîâèíà âõîäíîãî áëîêà
Ëåêöèÿ 3 Áëî÷íûå øèôðû
Ñåòè Ôåéñòåëÿ
Äîñòîèíñòâà
I Ïðîñòîòà àïïàðàòíîé ðåàëèçàöèè íà ñîâðåìåííîéýëåêòðîííîé áàçå
I Ïðîñòîòà ïðîãðàììíîé ðåàëèçàöèè â ñèëó òîãî, ÷òîçíà÷èòåëüíàÿ ÷àñòü ôóíêöèé ïîääðåæèâàåòñÿ íààïïàðàòíîì óðîâíå â ñîâðåìåííûõ êîìïüþòåðàõ (íàïðèìåð,ñëîæåíèå ïî ìîäóëþ 2n, óìíîæåíèå ïî ìîäóëþ 2n, è ò.ä.)
I Õîðîøàÿ èçó÷åííîñòü àëãîðèòìîâ íà îñíîâå ñåòåéÔåéñòåëÿ
Íåäîñòàòêè
I Çà îäèí ðàóíä øèôðóåòñÿ òîëüê ïîëîâèíà âõîäíîãî áëîêà
Ëåêöèÿ 3 Áëî÷íûå øèôðû
Ñåòè Ôåéñòåëÿ
Äîñòîèíñòâà
I Ïðîñòîòà àïïàðàòíîé ðåàëèçàöèè íà ñîâðåìåííîéýëåêòðîííîé áàçå
I Ïðîñòîòà ïðîãðàììíîé ðåàëèçàöèè â ñèëó òîãî, ÷òîçíà÷èòåëüíàÿ ÷àñòü ôóíêöèé ïîääðåæèâàåòñÿ íààïïàðàòíîì óðîâíå â ñîâðåìåííûõ êîìïüþòåðàõ (íàïðèìåð,ñëîæåíèå ïî ìîäóëþ 2n, óìíîæåíèå ïî ìîäóëþ 2n, è ò.ä.)
I Õîðîøàÿ èçó÷åííîñòü àëãîðèòìîâ íà îñíîâå ñåòåéÔåéñòåëÿ
Íåäîñòàòêè
I Çà îäèí ðàóíä øèôðóåòñÿ òîëüê ïîëîâèíà âõîäíîãî áëîêà
Ëåêöèÿ 3 Áëî÷íûå øèôðû
Ñåòè Ôåéñòåëÿ
Äîñòîèíñòâà
I Ïðîñòîòà àïïàðàòíîé ðåàëèçàöèè íà ñîâðåìåííîéýëåêòðîííîé áàçå
I Ïðîñòîòà ïðîãðàììíîé ðåàëèçàöèè â ñèëó òîãî, ÷òîçíà÷èòåëüíàÿ ÷àñòü ôóíêöèé ïîääðåæèâàåòñÿ íààïïàðàòíîì óðîâíå â ñîâðåìåííûõ êîìïüþòåðàõ (íàïðèìåð,ñëîæåíèå ïî ìîäóëþ 2n, óìíîæåíèå ïî ìîäóëþ 2n, è ò.ä.)
I Õîðîøàÿ èçó÷åííîñòü àëãîðèòìîâ íà îñíîâå ñåòåéÔåéñòåëÿ
Íåäîñòàòêè
I Çà îäèí ðàóíä øèôðóåòñÿ òîëüê ïîëîâèíà âõîäíîãî áëîêà