ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠ° ΡΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠΎΠ² ΡΠΈΡΡΠ° Β«BlowfishΒ»
Π¨ΠΈΡΡΠ°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ , Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΡΡ ΡΠ°ΡΠ½Π΄ΠΎΠ²ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ΅ΡΠ΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΠΈ Π€Π΅ΠΉΡΡΠ΅Π»Ρ, ΡΠΎΡΡΠΎΡΡΠ΅ΠΉ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΈΠ· 16 ΡΠ°ΡΠ½Π΄ΠΎΠ², Π½ΠΎ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΠΌΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΡΠ½Π΄ΠΎΠ²ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ (Π ΠΈΡ.2). Π ΡΡΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π±Π»ΠΎΠΊΠΎΠ² ΠΊΠΎΠ΄ΠΈΡΡΠ΅ΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠ»ΡΡΠ° (ΡΠΈΡ.6). ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²ΠΎ ΡΡΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° — ΠΏΡΠΎΡΡΠΎΡΠ°… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠ° ΡΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠΎΠ² ΡΠΈΡΡΠ° Β«BlowfishΒ» (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΠΈΠ½ΠΈΡΡΠ΅ΡΡΡΠ²ΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π½Π°ΡΠΊΠΈ Π Π€ ΠΠ Π―ΠΠ‘ΠΠΠ ΠΠΠ‘Π£ΠΠΠ Π‘Π’ΠΠΠΠΠ«Π Π’ΠΠ₯ΠΠΠ§ΠΠ‘ΠΠΠ Π£ΠΠΠΠΠ Π‘ΠΠ’ΠΠ’ ΠΠ°ΡΠ΅Π΄ΡΠ° «ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΠ° ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅»
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠ° ΡΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠΎΠ² ΡΠΈΡΡΠ° «BlowFish»
ΠΠ£Π Π‘ΠΠΠΠ― Π ΠΠΠΠ’Π Π ΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ Π΄ΠΎΡ. ΠΠ΅ΡΠ³Π°ΡΠ΅Π² Π.Π.
Π‘ΡΡΠ΄Π΅Π½Ρ Π Π΅Π΄Π΅Π½ΠΊΠΎΠ² Π.Π.
ΠΠ Π―ΠΠ‘Π 2013
1. ΠΠΠΠΠΠ’ΠΠ§ΠΠ‘ΠΠΠ― Π§ΠΠ‘Π’Π¬
1.1 Blowfish
1.2 DES
1.3 IDEA
1.4 ΠΠΠ‘Π’ 28 147–89
1.5 ΠΡΠ²ΠΎΠ΄
1.6 Π Π΅ΠΆΠΈΠΌΡ ΡΠ°Π±ΠΎΡΡ
1.6.1 Π Π΅ΠΆΠΈΠΌ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ (ECB)
1.6.2 Π Π΅ΠΆΠΈΠΌ ΡΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠΎΠ² (CBC)
1.6.3 Π Π΅ΠΆΠΈΠΌ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ ΠΏΠΎ ΡΠΈΡΡ-ΡΠ΅ΠΊΡΡΡ
1.6.4 Π Π΅ΠΆΠΈΠΌ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ ΠΏΠΎ Π²ΡΡ ΠΎΠ΄Ρ (OFB)
2. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡΠΊΠ°Ρ ΡΠ°ΡΡΡ
2.1 ΠΠ±ΡΠΈΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ
2.2 Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ°
2.3 Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΠΈ Π€Π΅ΠΉΡΡΠ΅Π»Ρ
2.4 Π Π΅ΠΆΠΈΠΌ ΡΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠΎΠ²
3. ΠΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΡΠ°ΡΡΡ
3.1 Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
3.2 ΠΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΡ
3.2.1 Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ
3.2.2 ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΠ΅Π³ΠΎ Π²Π΅ΠΊΡΠΎΡΠ°
3.2.3 ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ
3.2.4 ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΏΠΎΡΠ΅ΡΡ ΡΠ°ΡΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ
3.2.5 ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΡΡΠ΅Π³ΠΎ Π±Π»ΠΎΠΊΠ° Π‘ΠΏΠΈΡΠΎΠΊ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΡ
ΠΠ»Π³ΠΎΡΠΈΡΠΌ Blowfish Π±ΡΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ ΠΡΡΡΠΎΠΌ Π¨Π½Π°ΠΉΠ΅ΡΠΎΠΌ Π² 1994 Π³. ΠΠ²ΡΠΎΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ» Π΅Π³ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π°ΠΌΠ΅Π½Ρ ΡΡΠ°Π½Π΄Π°ΡΡΡ DES.
ΠΡΠ»ΠΈΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΠΌΠΈ ΡΡΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΡΠ°Π»Π° Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠ°Ρ ΡΡΠ΅ΠΏΠ΅Π½Ρ ΠΊΡΠΈΠΏΡΠΎΡΡΠΎΠΉΠΊΠΎΡΡΠΈ, Π½Π΅ΠΆΠ΅Π»ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° DES (Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π·Π° ΡΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ ΠΊΠ»ΡΡΠ°, Π΄ΠΎ 448 Π±ΠΈΡ), Π²ΡΡΠΎΠΊΠ°Ρ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ/Π΄Π΅ΡΠΈΡΡΠ°ΡΠΈΠΈ (Π·Π° ΡΡΠ΅Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΠ°Π±Π»ΠΈΡ Π·Π°ΠΌΠ΅Π½Ρ) ΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ — Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΅Π³ΠΎ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π»Ρ Π»ΡΠ±ΡΡ ΡΠ΅Π»Π΅ΠΉ.
ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡΠ°ΠΏΠΎΠ² ΡΠ°Π±ΠΎΡΡ: ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ° ΠΎΡ 448 Π±ΠΈΡ Π΄ΠΎ 4168 Π±Π°ΠΉΡ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΈΠ³Π»ΠΎΠ±ΡΡΡ ΠΎΠΉ ΡΡΠ±Π΅ (Π°Π½Π³Π». Blowfish).
ΠΊΠ»ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΎΡΠΈΠ±ΠΊΠ° ΡΠΈΡΡ blowfish
1. ΠΠΠΠΠΠ’ΠΠ§ΠΠ‘ΠΠΠ― Π§ΠΠ‘Π’Π¬
1.1 Blowfish
BlowFish — Π°Π»Π³ΠΎΡΠΈΡΠΌ 64-Π±ΠΈΡΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΡΠ° Ρ ΠΊΠ»ΡΡΠΎΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ (Π΄ΠΎ 448 Π±ΠΈΡ).
Π ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π΄Π²ΡΡ ΡΡΠ°ΠΏΠΎΠ² — ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ° ΠΈ ΡΠΈΡΡΠ°ΡΠΈΡ/Π΄Π΅ΡΠΈΡΡΠ°ΡΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ (Π ΠΈΡ.1).
Π ΠΈΡ. 1 ΠΠ±ΡΠΈΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ
Π¨ΠΈΡΡΠ°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ , Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΡΡ ΡΠ°ΡΠ½Π΄ΠΎΠ²ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ΅ΡΠ΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΠΈ Π€Π΅ΠΉΡΡΠ΅Π»Ρ, ΡΠΎΡΡΠΎΡΡΠ΅ΠΉ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΈΠ· 16 ΡΠ°ΡΠ½Π΄ΠΎΠ², Π½ΠΎ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΠΌΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΡΠ½Π΄ΠΎΠ²ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ (Π ΠΈΡ.2).
Π ΠΈΡ. 2 ΠΠ·ΠΌΠ΅Π½Π΅Π½Π½Π°Ρ ΡΠ΅ΡΡ Π€Π΅ΠΉΡΡΠ΅Π»Ρ Π€ΡΠ½ΠΊΡΠΈΡ ΡΠ°ΡΠ½Π΄Π° F Π²Π΅ΡΡΠΌΠ° ΠΏΡΠΎΡΡΠ° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ XOR ΠΈ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ 232.
ΠΠ° ΡΡΠ°ΠΏΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΊΠ»ΡΡΠ°, ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠ»ΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΡΡΡ Π² ΠΌΠ°ΡΡΠΈΡΡ ΡΠ°ΡΠ½Π΄ΠΎΠ²ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ (P) ΠΈ ΠΌΠ°ΡΡΠΈΡΡ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ (S, Substitution-box) (ΠΈΠ»ΠΈ Π·Π°ΠΌΠ΅Π½Ρ), ΠΎΠ±ΡΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΌΠΎΠΌ Π² 4168 Π±Π°ΠΉΡ. ΠΡΠΈ ΡΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ 521 ΠΏΠΎΠ»Π½Π°Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ ΡΠ΅ΡΠΈ Π€Π΅ΠΉΡΡΠ΅Π»Ρ. ΠΡΡ ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π΅ΡΡΠΌΠ° ΡΡΡΠ΄ΠΎΠ·Π°ΡΡΠ°ΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ΅ΠΉ, ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠΎΠΌΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ Blowfish Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΌ, Π³Π΄Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ°ΡΡΠ°Ρ ΡΠΌΠ΅Π½Π° ΠΊΠ»ΡΡΠ°.
1.2 DES
Π‘ΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠΉ Π±Π»ΠΎΡΠ½ΡΠΉ ΡΠΈΡΡ Ρ Π΄Π»ΠΈΠ½ΠΎΠΉ ΠΊΠ»ΡΡΠ° 56 Π±ΠΈΡ.
ΠΡΠΎΡΠ΅ΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π±ΠΈΡΠΎΠ² 64-Π±ΠΈΡΠΎΠ²ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ, ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠΈ ΡΠΈΠΊΠ»Π°Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π±ΠΈΡΠΎΠ² (ΡΠΈΡ.3). Π¦ΠΈΠΊΠ» ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ΅ΡΡ Π€Π΅ΠΉΡΡΠ΅Π»Ρ. ΠΠ·-Π·Π° Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ (Π²ΡΠ΅Π³ΠΎ 256), ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° Π½Π° Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡΠ΅ΠΉ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΈΠΊΠ΅ Π·Π° ΡΠ΅Π°Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ.
Π ΠΈΡ. 3 ΠΠ»Π³ΠΎΡΠΈΡΠΌ DES
1.3 IDEA
Π‘ΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠΉ Π±Π»ΠΎΡΠ½ΡΠΉ ΡΠΈΡΡ Ρ Π΄Π»ΠΈΠ½ΠΎΠΉ ΠΊΠ»ΡΡΠ° 128 Π±ΠΈΡ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ Π±Π»ΠΎΠΊΠ° 64 Π±ΠΈΡΠ°.
ΠΡΠΎΡΠ΅ΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π²ΠΎΡΡΠΌΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΡ ΡΠ°ΡΠ½Π΄ΠΎΠ² ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ. ΠΡΡ ΠΎΠ΄Π½ΡΠΉ Π½Π΅Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ Π΄Π΅Π»ΠΈΡΡΡ Π½Π° Π±Π»ΠΎΠΊΠΈ ΠΏΠΎ 64 Π±ΠΈΡΠ°. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°ΠΊΠΎΠΉ Π±Π»ΠΎΠΊ Π΄Π΅Π»ΠΈΡΡΡ Π½Π° ΡΠ΅ΡΡΡΠ΅ ΠΏΠΎΠ΄Π±Π»ΠΎΠΊΠ° ΠΏΠΎ 16 Π±ΠΈΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ. Π ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°ΡΠ½Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ²ΠΎΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅ΠΉ. ΠΠ°Π΄ 16-Π±ΠΈΡΠ½ΡΠΌΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΠΌΠΈ ΠΈ ΠΏΠΎΠ΄Π±Π»ΠΎΠΊΠ°ΠΌΠΈ Π½Π΅Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ:
Β· ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ 216 + 1 = 65 537, ΠΏΡΠΈΡΠ΅ΠΌ Π²ΠΌΠ΅ΡΡΠΎ Π½ΡΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ 216
Β· ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ 216
Β· ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠ΅Π΅ ΠΠΠ ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΡ ΠΏΠΎΠ΄Π±Π»ΠΎΠΊΠΎΠ² D1', D2', D3' ΠΈ D4' ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ. ΠΠ°ΡΠ΅ΠΌ Π±Π΅ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ 64-Π±ΠΈΡΠ½ΡΠΉ Π±Π»ΠΎΠΊ Π½Π΅Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΡΡΡ. Π’Π°ΠΊ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°ΡΠΈΡΡΡΡΡΡΡ Π²ΡΠ΅ 64-Π±ΠΈΡΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° (ΡΠΈΡ. 4).
Π ΠΈΡ. 4 ΠΠ»Π³ΠΎΡΠΈΡΠΌ IDEA
1.4 ΠΠΠ‘Π’ 28 147–89
ΠΠ»ΠΎΡΠ½ΡΠΉ ΡΠΈΡΡ Ρ 256-Π±ΠΈΡΠ½ΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ ΠΈ 32 ΡΠΈΠΊΠ»Π°ΠΌΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ, ΠΎΠΏΠ΅ΡΠΈΡΡΡΡΠΈΠΉ 64-Π±ΠΈΡΠ½ΡΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ. ΠΡΠ½ΠΎΠ²Π° Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠΈΡΡΠ° — ΡΠ΅ΡΡ Π€Π΅ΠΉΡΡΠ΅Π»Ρ. ΠΠ»Ρ Π·Π°ΡΠΈΡΡΠΎΠ²ΡΠ²Π°Π½ΠΈΡ Π² ΡΡΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ 64-Π±ΠΈΡΠ½ΡΠΉ Π±Π»ΠΎΠΊ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° ΡΠ½Π°ΡΠ°Π»Π° ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° Π΄Π²Π΅ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ (ΠΌΠ»Π°Π΄ΡΠΈΠ΅ Π±ΠΈΡΡ — A, ΡΡΠ°ΡΡΠΈΠ΅ Π±ΠΈΡΡ — B). ΠΠ° i-ΠΎΠΌ ΡΠΈΠΊΠ»Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡ Ki:
Ai+1 = Bi?f (Ai, Ki)
Bi+1 = Ai
ΠΠ»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ 256-Π±ΠΈΡΠ½ΡΠΉ ΠΊΠ»ΡΡ ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° Π²ΠΎΡΠ΅ΠΌΡ 32-Π±ΠΈΡΠ½ΡΡ Π±Π»ΠΎΠΊΠΎΠ²: K1…K8.
ΠΠ»ΡΡΠΈ K9…K24 ΡΠ²Π»ΡΡΡΡΡ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠ»ΡΡΠ΅ΠΉ K1…K8 (Π½ΡΠΌΠ΅ΡΡΡΡΡΡ ΠΎΡ ΠΌΠ»Π°Π΄ΡΠΈΡ Π±ΠΈΡΠΎΠ² ΠΊ ΡΡΠ°ΡΡΠΈΠΌ). ΠΠ»ΡΡΠΈ K25…K32 ΡΠ²Π»ΡΡΡΡΡ ΠΊΠ»ΡΡΠ°ΠΌΠΈ K8…K1.
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ 32 ΡΠ°ΡΠ½Π΄ΠΎΠ² Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°, Π±Π»ΠΎΠΊΠΈ A33 ΠΈ B33 ΡΠΊΠ»Π΅ΠΈΠ²Π°ΡΡΡΡ (ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΠ°ΡΡΠΈΠΌ Π±Π»ΠΎΠΊΠΎΠΌ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ A33, Π° ΠΌΠ»Π°Π΄ΡΠΈΠΌ — B33) — ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π΅ΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΠΠ‘Π’Π° ΡΠ²ΡΠ·Π°Π½Ρ Ρ Π½Π΅ΠΏΠΎΠ»Π½ΠΎΡΠΎΠΉ ΡΡΠ°Π½Π΄Π°ΡΡΠ° Π² ΡΠ°ΡΡΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈ ΡΠ°Π±Π»ΠΈΡ Π·Π°ΠΌΠ΅Π½.
Π ΠΈΡ. 5 Π¨ΠΈΡΡΠ°ΡΠΈΡ ΠΠΠ‘Π’ 28 147–89
1.6 Π Π΅ΠΆΠΈΠΌΡ ΡΠ°Π±ΠΎΡΡ
1.6.1 Π Π΅ΠΆΠΈΠΌ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ (ECB)
Π ΡΡΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π±Π»ΠΎΠΊΠΎΠ² ΠΊΠΎΠ΄ΠΈΡΡΠ΅ΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠ»ΡΡΠ° (ΡΠΈΡ.6). ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²ΠΎ ΡΡΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° — ΠΏΡΠΎΡΡΠΎΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ — ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»Π°Π±Π°Ρ ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡ ΠΏΡΠΎΡΠΈΠ² ΠΊΡΠΈΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·Π°.
Π ΠΈΡ. 6 Π Π΅ΠΆΠΈΠΌ ECB
1.6.2 Π Π΅ΠΆΠΈΠΌ ΡΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠΎΠ² (CBC)
Π ΡΡΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π±Π»ΠΎΠΊ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ 2 Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌ Π±Π»ΠΎΠΊΠΎΠΌ ΡΠΈΡΡ-ΡΠ΅ΠΊΡΡΠ°. Π‘Π°ΠΌΡΠΉ ΠΏΠ΅ΡΠ²ΡΠΉ Π±Π»ΠΎΠΊ ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ ΡΠΎ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ Π±Π»ΠΎΠΊΠΎΠΌ — Π²Π΅ΠΊΡΠΎΡΠΎΠΌ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ IV, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π² Π½Π°ΡΠ°Π»ΠΎ ΡΠΈΡΡ-ΡΠ΅ΠΊΡΡΠ° (ΡΠΈΡ.7).
Π Π΅ΠΆΠΈΠΌ CBC ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΌΠΎΠ²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΠΈΠΌΡΡ. ΠΡΠΈΠ±ΠΊΠ° Π² ΡΠΈΡΡ-ΡΠ΅ΠΊΡΡΠ΅ Π²Π»ΠΈΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π·Π° Π½ΠΈΠΌ Π±Π»ΠΎΠΊ. ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π±Π»ΠΎΠΊ ΡΠΈΡΡ-ΡΠ΅ΠΊΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΠΆΠΈΡΡ ΠΊΠΎΠ΄ΠΎΠΌ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
Π ΠΈΡ. 7 Π Π΅ΠΆΠΈΠΌ CBC
1.6.3 Π Π΅ΠΆΠΈΠΌ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ ΠΏΠΎ ΡΠΈΡΡ-ΡΠ΅ΠΊΡΡΡ
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ°ΠΉΠ» ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ t-Π±ΠΈΡΠΎΠ²ΡΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ (t <= 64). 64-Π±ΠΈΡΠΎΠ²ΡΠΉ ΡΠ΄Π²ΠΈΠ³ΠΎΠ²ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ Π²Π½Π°ΡΠ°Π»Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²Π΅ΠΊΡΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ IV, Π²ΡΡΠ°Π²Π½Π΅Π½Π½ΡΠΉ ΠΏΠΎ ΠΏΡΠ°Π²ΠΎΠΌΡ ΠΊΡΠ°Ρ.
ΠΠ»Ρ Π²ΡΠ΅Ρ i = 1… n Π±Π»ΠΎΠΊ ΡΠΈΡΡΡΠ΅ΠΊΡΡΠ° C (i) ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
C (i) = M (i) XOR P (i-1) ,
Π³Π΄Π΅ P (i-1) — ΡΡΠ°ΡΡΠΈΠ΅ t Π±ΠΈΡΠΎΠ² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Crypt (Π‘ (i-1)).
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ΄Π²ΠΈΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ° ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π΅Π³ΠΎ ΡΡΠ°ΡΡΠΈΡ t Π±ΠΈΡΠΎΠ² ΠΈ Π΄ΠΎΠΏΠΈΡΡΠ²Π°Π½ΠΈΡ ΡΠΏΡΠ°Π²Π° C (i)(ΡΠΈΡ. 8).
ΠΡΠΎΡ ΡΠ΅ΠΆΠΈΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΈΡΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΊΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ, Π½Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡ Π΅Π³ΠΎ Π΄ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°.
Π ΠΈΡ. 8 Π Π΅ΠΆΠΈΠΌ CFB
1.6.4 Π Π΅ΠΆΠΈΠΌ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ ΠΏΠΎ Π²ΡΡ ΠΎΠ΄Ρ (OFB)
ΠΠ°Π½Π½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ CFB ΡΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΄Π²ΠΈΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ° (ΡΠΈΡ. 9).
Π Π΅ΠΆΠΈΠΌ OFB ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΡΠ΅ΠΆΠΈΠΌΠΎΠΌ CFB: ΠΎΡΠΈΠ±ΠΊΠΈ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΠ΅ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΏΠΎ ΠΊΠ°Π½Π°Π»Ρ Ρ ΡΡΠΌΠΎΠΌ, ΠΏΡΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠΈ Π½Π΅ «ΡΠ°Π·ΠΌΠ°Π·ΡΠ²Π°ΡΡΡΡ» ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΈΡΡΠΎΡΠ΅ΠΊΡΡΡ, Π° Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΡΡΡΡΡ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°. ΠΠ΄Π½Π°ΠΊΠΎ, ΡΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π΄Π°Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π΄Π»Ρ ΠΊΡΠΈΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·Π°, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π°Π½Π½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ (Π²ΡΡΠΎΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΠΎΠΌΠ΅Ρ ).
Π ΠΈΡ. 9 Π Π΅ΠΆΠΈΠΌ OFB
1.6 ΠΡΠ²ΠΎΠ΄
Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ DES IDEA Π² Π΄Π²Π° ΡΠ°Π·Π° Π±ΡΡΡΡΠ΅Π΅, ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΊΠΎΡΠΎΡΡΠΈ, Π΄Π»ΠΈΠ½Π° ΠΊΠ»ΡΡΠ° Ρ IDEA ΠΈΠΌΠ΅Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ 128 Π±ΠΈΡ, ΠΏΡΠΎΡΠΈΠ² 56 Π±ΠΈΡ Ρ DES, ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Ρ ΠΎΡΠΎΡΠΈΠΌ ΡΠ»ΡΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΡΠΈΠ² ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° ΠΊΠ»ΡΡΠ΅ΠΉ. ΠΠ΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ»Π°Π±ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΎΡΠ΅Π½Ρ ΠΌΠ°Π»Π° ΠΈ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ 2-64. IDEA Π±ΡΡΡΡΠ΅Π΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΠΠ‘Π’ 28 147–89. ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Ρ ΠΎΡΠΎΡΠ°Ρ ΠΈΠ·ΡΡΠ΅Π½Π½ΠΎΡΡΡ ΠΈ ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡ ΠΊ ΠΎΠ±ΡΠ΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΌ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌ ΠΊΡΠΈΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·Π°.
Blowfish ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΡΡΠ° Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅ΠΉ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ½ ΠΎΠΏΠ΅ΡΠ΅ΠΆΠ°Π΅Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ DES, IDEA. ΠΠ° ΠΎΡΡΡΠ°Π²Π°Π½ΠΈΠ΅ IDEA Π²Π»ΠΈΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ 232+1.
Π₯ΠΎΡΡ Blowfish ΠΏΠΎ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΎΠΏΠ΅ΡΠ΅ΠΆΠ°Π΅Ρ Π΅Π³ΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈ, Π½ΠΎ ΠΏΡΠΈ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠΈ ΡΠ°ΡΡΠΎΡΡ ΡΠΌΠ΅Π½Ρ ΠΊΠ»ΡΡΠ° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΡ Π±ΡΠ΄Π΅Ρ ΡΡ ΠΎΠ΄ΠΈΡΡ Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΡΠ°ΠΏ, ΡΡΠΎ Π² ΡΠΎΡΠ½ΠΈ ΡΠ°Π· ΡΠΌΠ΅Π½ΡΡΠ°Π΅Ρ Π΅Π³ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ.
Π‘ΡΠ΅Π΄ΠΈ ΡΠ΅ΠΆΠΈΠΌΠΎΠ² ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ CBC ΠΈ CFB, Π·Π° ΡΡΠ΅Ρ Π²ΡΡΠΎΠΊΠΎΠΉ ΠΊΡΠΈΠΏΡΠΎΡΡΠΎΠΉΠΊΠΎΡΡΠΈ. ΠΡΠ±ΠΎΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΏΠΎΡΠΎΠ±Π° ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΈΡΡΠ° — Π±Π»ΠΎΡΠ½ΡΠΉ ΠΈΠ»ΠΈ ΠΏΠΎΡΠΎΡΠ½ΡΠΉ.
2. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡΠΊΠ°Ρ ΡΠ°ΡΡΡ
2.1 ΠΠ±ΡΠΈΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ
Π ΠΈΡ. 10 ΠΠ±ΡΠΈΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠ°Π±ΠΎΡΡ
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠΌ Blowfish.
ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΊΠ»Π°ΡΡΠ°, ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π½Π° Π²Ρ ΠΎΠ΄ ΠΊΠ»ΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΡΠ°Π·Ρ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ.
public BlowFish (string hexKey)
{
randomSource = new RNGCryptoServiceProvider ();
SetupKey (HexToByte (hexKey));
}
Π¨ΠΈΡΡΠ°ΡΠΈΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠΎΠ² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Crypt_CBC (byte[] text, bool decrypt), ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π½Π° Π²Ρ ΠΎΠ΄ ΡΠ΅ΠΊΡΡ Π΄Π»Ρ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΈ ΡΠ»Π°Π³ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.
2.2 Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ°
Π ΠΈΡ. 11 ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΊΠ»ΡΡΠ°
Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ° ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ SetupKey (byte[] cipherKey), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π½Π° Π²Ρ ΠΎΠ΄ ΠΌΠ°ΡΡΠΈΠ² Π±Π°ΠΉΡΠΎΠ² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°.
private void SetupKey (byte[] cipherKey)
{
bf_P = SetupP ();
bf_s0 = SetupS0();
bf_s1 = SetupS1();
bf_s2 = SetupS2();
bf_s3 = SetupS3();
key = new byte[cipherKey.Length];
Buffer.BlockCopy (cipherKey, 0, key, 0, cipherKey. Length);
int j = 0;
for (int i = 0; i < 18; i++)
{
uint d = (uint)(((key[j % cipherKey. Length] * 256 + key[(j + 1) % cipherKey. Length]) * 256 + key[(j + 2) % cipherKey. Length]) * 256 + key[(j + 3) % cipherKey. Length]);
bf_P[i] ^= d;
j = (j + 4) % cipherKey. Length;
}
xl_par = 0;
xr_par = 0;
for (int i = 0; i < 18; i += 2)
{
encipher ();
bf_P[i] = xl_par;
bf_P[i + 1] = xr_par;
}
for (int i = 0; i < 256; i += 2)
{
encipher ();
bf_s0[i] = xl_par;
bf_s0[i + 1] = xr_par;
}
for (int i = 0; i < 256; i += 2)
{
encipher ();
bf_s1[i] = xl_par;
bf_s1[i + 1] = xr_par;
}
for (int i = 0; i < 256; i += 2)
{
encipher ();
bf_s2[i] = xl_par;
bf_s2[i + 1] = xr_par;
}
for (int i = 0; i < 256; i += 2)
{
encipher ();
bf_s3[i] = xl_par;
bf_s3[i + 1] = xr_par;
}
}
2.3 Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΠΈ Π€Π΅ΠΉΡΡΠ΅Π»Ρ
Π ΠΈΡ. 12 Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΠΈ Π€Π΅ΠΉΡΡΠ΅Π»Ρ
Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΡΠ΅ΡΡ Π€Π΅ΠΉΡΡΠ΅Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ encipher (). Π€ΡΠ½ΠΊΡΠΈΡ round (uint a, uint b, uint n) ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ. ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ a ΠΈ b — Π»Π΅Π²ΡΠΉ ΠΈ ΠΏΡΠ°Π²ΡΠΉ ΠΏΠΎΠ΄Π±Π»ΠΎΠΊΠΈ, n — Π½ΠΎΠΌΠ΅Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ.
private void encipher ()
{
xl_par ^= bf_P[0];
for (uint i = 0; i < 16; i+= 2)
{
xr_par = round (xr_par, xl_par, i + 1);
xl_par = round (xl_par, xr_par, i + 2);
}
xr_par = xr_par ^ bf_P[17];
uint swap = xl_par;
xl_par = xr_par;
xr_par = swap;
}
private uint round (uint a, uint b, uint n)
{
uint x1 = (bf_s0[wordByte0(b) ] + bf_s1[wordByte1(b) ]) ^ bf_s2[wordByte2(b) ];
uint x2 = x1 + bf_s3[this.wordByte3(b) ];
uint x3 = x2 ^ bf_P[n];
return x3 ^ a;
}
2.4 Π¨ΠΈΡΡΠ°ΡΠΈΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠΎΠ²
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠΎΠ².
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Crypt_CBC (byte[] text, bool decrypt), Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡΠΈΠΉ ΡΠΈΠΊΠ» ΡΠΈΡΡΠ°ΡΠΈΠΈ ΡΠ΅ΠΊΡΡΠ°.
Π€ΡΠ½ΠΊΡΠΈΡ XorBlock () ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ XOR Π½Π°Π΄ Π΄Π²ΡΠΌΡ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ .
Π€ΡΠ½ΠΊΡΠΈΡ BlockEncrypt (ref byte[] block) Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠΈΡΡΡΠ΅Ρ Π±Π»ΠΎΠΊ Π΄Π°Π½Π½ΡΡ .
for (int i = 0; i < plainText. Length; i += 8)
{
Buffer.BlockCopy (plainText, i, block, 0, 8);
XorBlock (ref block, iv);
BlockEncrypt (ref block);
Buffer.BlockCopy (block, 0, iv, 0, 8);
Buffer.BlockCopy (block, 0, plainText, i, 8);
}
private void BlockEncrypt (ref byte[] block)
{
SetBlock (block);
encipher ();
GetBlock (ref block);
}
3. ΠΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΡΠ°ΡΡΡ
3.1 Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π΄Π²ΡΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ (ΡΠΈΡ.13).
ΠΠΎΡΠ»Π΅ Π½Π°ΠΆΠ°ΡΠΈΡ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ «ΠΠ°ΡΠΈΡΡΠΎΠ²Π°ΡΡ» ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ Π²ΡΠ±ΡΠ°ΡΡ ΡΠ°ΠΉΠ» Ρ ΠΊΠ»ΡΡΠΎΠΌ, ΡΠ°ΠΉΠ» Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΡΠ΅ΠΊΡΡΠΎΠΌ ΠΈ ΡΠ°ΠΉΠ» Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°.
ΠΠΎΡΠ»Π΅ Π½Π°ΠΆΠ°ΡΠΈΡ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ «Π Π°ΡΡΠΈΡΡΠΎΠ²Π°ΡΡ» ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ Π²ΡΠ±ΡΠ°ΡΡ ΡΠ°ΠΉΠ» Ρ ΠΊΠ»ΡΡΠΎΠΌ, ΡΠ°ΠΉΠ» Ρ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ΅ΠΊΡΡΠΎΠΌ ΠΈ ΡΠ°ΠΉΠ» Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°.
Π ΠΈΡ. 13 Π‘ΠΊΡΠΈΠ½ΡΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΡΠ΅ΠΊΡΡΠ°ΠΌΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΌΠΈ ΡΡΡΡΠΊΠΈΠ΅ ΠΈ Π»Π°ΡΠΈΠ½ΡΠΊΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, Ρ ΡΠ΅ΠΊΡΡΠ°ΠΌΠΈ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°.
3.2 ΠΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΡ
3.2.1 Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ | ΡΠ΅ΠΊΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ΅ΠΆΠΈΠΌΠ° ΡΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠΎΠ² Π΄Π»ΠΈΠ½ΠΎΠΉ 62 ΡΠΈΠΌΠ²ΠΎΠ»Π°. | |
ΠΠ»ΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ | 04B915BA43FEB5B6 | |
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΠΈΠΉ Π²Π΅ΠΊΡΠΎΡ | ||
ΠΠ°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ (16-ΡΠΈΡΠ½ΡΠΉ Π²ΠΈΠ΄) | d7ae29a6195c7a557fa72ddff622990beebf851210eea1424d42f92dd54350b73c7ebddada4d40c4bc1950bcccd385deadd0d6eba2699f8739439cbb019c607c7b757046f51b936294eddca4697b34b66b8e2a9443b6f900a7ff05b6920fe116c25f99ca380ad0d068141ce41e2242ac47d6f7d8853eea3e3885917d4568b7d1c42b5f619af5479a | |
ΠΠ»ΡΡ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ | 04B915BA43FEB5B6 | |
Π Π°ΡΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ | ΡΠ΅ΠΊΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ΅ΠΆΠΈΠΌΠ° ΡΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠΎΠ² Π΄Π»ΠΈΠ½ΠΎΠΉ 62 ΡΠΈΠΌΠ²ΠΎΠ»Π°. | |
3.2.2 ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΠ΅Π³ΠΎ Π²Π΅ΠΊΡΠΎΡΠ°
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ | ΡΠ΅ΠΊΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ΅ΠΆΠΈΠΌΠ° ΡΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠΎΠ² Π΄Π»ΠΈΠ½ΠΎΠΉ 62 ΡΠΈΠΌΠ²ΠΎΠ»Π°. | |
ΠΠ»ΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ | 04B915BA43FEB5B6 | |
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΠΈΠΉ Π²Π΅ΠΊΡΠΎΡ (ΠΎΠΏΡΡ № 1) | ||
ΠΠ°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ (ΠΎΠΏΡΡ № 1) | d7ae29a6195c7a557fa72ddff622990beebf851210eea1424d42f92dd54350b73c7ebddada4d40c4bc1950bcccd385deadd0d6eba2699f8739439cbb019c607c7b757046f51b936294eddca4697b34b66b8e2a9443b6f900a7ff05b6920fe116c25f99ca380ad0d068141ce41e2242ac47d6f7d8853eea3e3885917d4568b7d1c42b5f619af5479a | |
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΠΈΠΉ Π²Π΅ΠΊΡΠΎΡ (ΠΎΠΏΡΡ № 2) | ||
ΠΠ°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ (ΠΎΠΏΡΡ № 2) | 066df32b01f65e7633a2e65324fd3679796f7402119fbe869f5ef8f97c94e8eca3efe60a28ce3820e3e09c57858337fb6266395139efbd6981ddcc03d1c4c7985a25a9b0484be0fc25ed960f20c7fcd19554375bca984d1a044b659f9301d2b1cc47f9d85430b951dbecefb427ca9490834fdba59c4694471810977aa00b36dfe0b720c50c3feee4 | |
ΠΠ»ΡΡ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ | 04B915BA43FEB5B6 | |
Π Π°ΡΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ | ΡΠ΅ΠΊΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ΅ΠΆΠΈΠΌΠ° ΡΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠΎΠ² Π΄Π»ΠΈΠ½ΠΎΠΉ 62 ΡΠΈΠΌΠ²ΠΎΠ»Π°. | |
3.2.3 ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ | ΡΠ΅ΠΊΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ΅ΠΆΠΈΠΌΠ° ΡΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠΎΠ² Π΄Π»ΠΈΠ½ΠΎΠΉ 62 ΡΠΈΠΌΠ²ΠΎΠ»Π°. | |
ΠΠ»ΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ | 04B915BA43FEB5B6 | |
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΠΈΠΉ Π²Π΅ΠΊΡΠΎΡ | ||
ΠΠ°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ (16-ΡΠΈΡΠ½ΡΠΉ Π²ΠΈΠ΄) | 97b75b39ecbd8a94032ded5893076f5400e72e27cd14b08013ed9dd0847b352e8e2646357a449f0989eae21921476cdfe047a2bfbedf7e31195ada2573293622de72fd3721c355537c931ff28063d2b20da5c41e3ea38d2355be14f9bda0253741a23ee5444bfbe3f88b21e8bc542b1c52eebc1b16e78d65ffe3c41c0550f8cbd4e75a61f38efad3 | |
ΠΠ°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ Ρ Π²Π½Π΅ΡΠ΅Π½Π½ΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ (16-ΡΠΈΡΠ½ΡΠΉ Π²ΠΈΠ΄) | 97b75b39ecbd8a94032ded5893076f5400e72e27cd14b08013ed9dd0847b352e8e2646357a449f0989eae21921476cdfe047a2bfbedf7e31195ada2573293622de72fd37212355537c931ff28063d2b20da5c41e3ea38d2355be14f9bda0253741a23ee5444bfbe3f88b21e8bc542b1c52eebc1b16e78d65ffe3c41c0550f8cbd4e75a61f38efad3 | |
ΠΠ»ΡΡ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ | 04B915BA43FEB5B6 | |
Π Π°ΡΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ | ΡΠ΅ΠΊΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ΅ΠΆΠΈΠΌΠ° ΡΡ??? Π½ΠΈ? Π±Π»ΠΎΠΊΠΎΠ² Π΄Π»ΠΈΠ½ΠΎΠΉ 62 ΡΠΈΠΌΠ²ΠΎΠ»Π°. | |
3.2.4 ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΏΠΎΡΠ΅ΡΡ ΡΠ°ΡΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ | ΡΠ΅ΠΊΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ΅ΠΆΠΈΠΌΠ° ΡΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠΎΠ² Π΄Π»ΠΈΠ½ΠΎΠΉ 62 ΡΠΈΠΌΠ²ΠΎΠ»Π°. | |
ΠΠ»ΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ | 04B915BA43FEB5B6 | |
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΠΈΠΉ Π²Π΅ΠΊΡΠΎΡ | ||
ΠΠ°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ (16-ΡΠΈΡΠ½ΡΠΉ Π²ΠΈΠ΄) | ebdbe6c99212b816c4ee3404534068294d0b555141446fbe29693ae69bc45628f39d5d99cb687741648fa0ea6a0df5339eb196411e86205370df42882650e0a3e4adca789a4c8693d34ca4b3343957a533dbf9516a9981fc0d8a9c890e692599e9935ef29bb43c2a38a90254179e6a2509df160eea2d12d8d195cb480e9aa4a51475178ae683536c | |
ΠΠ°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ Ρ ΠΏΠΎΡΠ΅ΡΡΠ½Π½ΡΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ (16-ΡΠΈΡΠ½ΡΠΉ Π²ΠΈΠ΄) | 97b75b39ecbd8a94032ded5893076f5400e72e27cd14b08013ed9dd0847b352e8e2646357a449f0989eae21921476cdfe047a2bfbedf7e31195ada2573293622de72fd37212355537c931ff28063d2b20da5c41e3ea38d2355be14f9bda0253741a23ee5444bfbe3f88b21e8bc542b1c52eebc1b16e78d65ffe3c41c0550f8cbd4e75a61f38efad3 | |
ΠΠ»ΡΡ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ | 04B915BA43FEB5B6 | |
Π Π°ΡΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ | ΡΠ΅ΠΊΡΡ Π΄Π»?-Ρ???ΡΡ???"Β°???Π°o???ΡH?βΊΠ?+?ΡΡ???Β°??ΠΠ²ΠQ???ΠΠ?Β΅Ρ??? | |
3.2.5 ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΡΡΠ΅Π³ΠΎ Π±Π»ΠΎΠΊΠ°
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ (ΠΎΠΏΡΡ № 1) | ΡΠ΅ΠΊΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ΅ΠΆΠΈΠΌΠ° ΡΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠΎΠ² Π΄Π»ΠΈΠ½ΠΎΠΉ 62 ΡΠΈΠΌΠ²ΠΎΠ»Π°. | |
ΠΠ»ΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ (ΠΎΠΏΡΡ № 1) | 04B915BA43FEB5B6 | |
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΠΈΠΉ Π²Π΅ΠΊΡΠΎΡ (ΠΎΠΏΡΡ № 1) | ||
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π±Π»ΠΎΠΊ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° (ΠΎΠΏΡΡ № 1) | c75ca11b9856676b | |
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ (ΠΎΠΏΡΡ № 2) | ΡΠ΅ΠΊΡΡ Π΄Π»Ρ ΠΏΡΠ°Π²Π΅ΡΠΊΠΈ ΡΠ΅ΠΆΠΈΠΌΠ° ΡΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠΎΠ² Π΄Π»ΠΈΠ½ΠΎΠΉ 62 ΡΠΈΠΌΠ²ΠΎΠ»Π°. | |
ΠΠ»ΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ (ΠΎΠΏΡΡ № 2) | 04B915BA43FEB5B6 | |
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΠΈΠΉ Π²Π΅ΠΊΡΠΎΡ (ΠΎΠΏΡΡ № 2) | ||
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π±Π»ΠΎΠΊ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° (ΠΎΠΏΡΡ № 2) | 435ed02780008efb | |
1. IT ΠΏΠΎΡΡΠ°Π» [http://habrahabr.ru].
2. A blog covering security and security technology [www.schneier.com].
3. Π. ΠΠ°ΡΠ»Π΅Π½Π½ΠΈΠΊΠΎΠ², ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡ / ΠΠ°ΡΠ»Π΅Π½Π½ΠΈΠΊΠΎΠ² Π. — Π‘ΠΏΠ±.: ΠΠ₯Π-ΠΠ΅ΡΠ΅ΡΠ±ΡΡΠ³, 2003. — 458 Ρ.
4. Π‘. ΠΠ°Π½Π°ΡΠ΅Π½ΠΊΠΎ, ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ / ΠΠ°Π½Π°ΡΠ΅Π½ΠΊΠΎ Π‘. — Π‘ΠΠ±.: ΠΠ₯Π-ΠΠ΅ΡΠ΅ΡΠ±ΡΡΠ³, 2009. — 576 Ρ.
5. Π. Π―ΡΠ΅Π½ΠΊΠΎ, ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΠΈ / Π―ΡΠ΅Π½ΠΊΠΎ Π. Π. — Π.: ΠΠΎΡΠΊΠ²Π°, 2003.