Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (ΡΡΠ°Π½Π΄Π°ΡΡ DES)
Π Π°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΡ DES (Data Encryption Standard). Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ/ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ°Ρ : ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½Π°Ρ ΠΊΠΎΠ΄ΠΎΠ²Π°Ρ ΠΊΠ½ΠΈΠ³Π° ΠΠ‘Π, ΡΡΠ΅ΠΏΠ»Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΎΠ² ΡΠΈΡΡΠ° Π‘ΠΠ‘, ΡΡΠΎΠΉΠ½ΠΎΠΉ DES (EEE3, EDE3, EEE2 ΠΈ EDE2). ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠ΄Π°Π²Π°ΡΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ/ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ° Π³Π»Π°Π²Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (ΡΡΠ°Π½Π΄Π°ΡΡ DES) (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
Π€Π΅Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π±ΡΠ΄ΠΆΠ΅ΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΡΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π²ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΠ°Π»ΡΠ½Π΅Π²ΠΎΡΡΠΎΡΠ½ΡΠΉ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅Ρ ΠΏΡΡΠ΅ΠΉ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΠ°ΡΠ΅Π΄ΡΠ° «ΠΠ’ΠΈΠ‘»
ΠΡΡΡΠΎΠ²ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ
«Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (ΡΡΠ°Π½Π΄Π°ΡΡ DES)»
ΠΡΠΏΠΎΠ»Π½ΠΈΠ»: ΠΠΈΠ½Π°Π΅Π² Π. Π‘.,
ΡΡΡΠ΄Π΅Π½Ρ Π³ΡΡΠΏΠΏΡ 23Π.
ΠΡΠΎΠ²Π΅ΡΠΈΠ»: ΠΠ½ΠΈΡΠΈΠΌΠΎΠ² Π.Π.
Π₯Π°Π±Π°ΡΠΎΠ²ΡΠΊ 2013 Π³.
1. ΠΡΠ°ΡΠΊΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ΅ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ DES
2. Π Π΅ΠΆΠΈΠΌ DES-ECB
2.1 ΠΠ±ΡΠ°Ρ ΡΡ Π΅ΠΌΠ° ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ
2.2 ΠΡΠΈΠΌΠ΅Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ
3. Π Π΅ΠΆΠΈΠΌ DES-CBC
3.1 ΠΠ±ΡΠ°Ρ ΡΡ Π΅ΠΌΠ° ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ
3.2 ΠΡΠΈΠΌΠ΅Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ
4. Π Π΅ΠΆΠΈΠΌ ΡΡΠΎΠΉΠ½ΠΎΠΉ DES
4.1 ΠΠ±ΡΠΈΠ΅ ΡΡ Π΅ΠΌΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ
4.2 ΠΡΠΈΠΌΠ΅Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ
5. Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
- 5.1 ΠΠ±ΡΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ
- 5.2 ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
- 5.3 ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π°
- 5.4 ΠΡ ΠΎΠ΄Π½ΡΠ΅ ΠΈ Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅
- 5.5 ΠΠ²ΠΎΠ΄ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ΅Π΄ΡΡΠ²Π°
- 5.5.1 ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ
- 5.5.2 ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ΅Π΄ΡΡΠ²Π°
- 6. ΠΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΠ°Π΄Π°Π½ΠΈΠ΅ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°
Π Π°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΡ DES (Data Encryption Standard). Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ/ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ°Ρ : ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½Π°Ρ ΠΊΠΎΠ΄ΠΎΠ²Π°Ρ ΠΊΠ½ΠΈΠ³Π° ΠΠ‘Π, ΡΡΠ΅ΠΏΠ»Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΎΠ² ΡΠΈΡΡΠ° Π‘ΠΠ‘, ΡΡΠΎΠΉΠ½ΠΎΠΉ DES (EEE3, EDE3, EEE2 ΠΈ EDE2). ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠ΄Π°Π²Π°ΡΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ/ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ.
1. ΠΡΠ°ΡΠΊΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ΅ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ DES
DES (Data Encryption Standard) ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ ΡΠΈΡΠΌΠΎΠΉ IBM ΠΈ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½Π½ΡΠΉ ΠΏΡΠ°Π²ΠΈΡΠ΅Π»ΡΡΡΠ²ΠΎΠΌ Π‘Π¨Π Π² 1977 Π³ΠΎΠ΄Ρ ΠΊΠ°ΠΊ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΡΠ°Π½Π΄Π°ΡΡ (FIPS 46−3). DES ΠΈΠΌΠ΅Π΅Ρ Π±Π»ΠΎΠΊΠΈ ΠΏΠΎ 64 Π±ΠΈΡΠ° ΠΈ 16 ΡΠΈΠΊΠ»ΠΎΠ²ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΡΠ΅ΡΠΈ Π€Π΅ΠΉΡΡΠ΅Π»Ρ. ΠΠ»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΊΠ»ΡΡ Ρ Π΄Π»ΠΈΠ½ΠΎΠΉ 56 Π±ΠΈΡ. ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½ΡΡ (S-Π±Π»ΠΎΠΊΠΈ) ΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΡ (ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ E, IP, IP-1) ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ. ΠΠ»Ρ DES ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΆΠΈΠΌΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
Β· ΡΠ΅ΠΆΠΈΠΌ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ (ECB — Electronic Code Book),
Β· ΡΠ΅ΠΆΠΈΠΌ ΡΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠΎΠ² (Π‘ΠΠ‘ — Cipher Block Chaining),
Β· ΡΠ΅ΠΆΠΈΠΌ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ ΠΏΠΎ ΡΠΈΡΡΠΎΡΠ΅ΠΊΡΡΡ (CFB — Cipher Feed Back),
Β· ΡΠ΅ΠΆΠΈΠΌ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ ΠΏΠΎ Π²ΡΡ ΠΎΠ΄Ρ (OFB — Output Feed Back).
ΠΡΡΠΌΡΠΌ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ΠΌ DES Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Triple DES.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π° Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° DES:
Β· ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΊΠ»ΡΡ Π΄Π»ΠΈΠ½ΠΎΠΉ 56 Π±ΠΈΡΠΎΠ²;
Β· Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π² ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°, Π΄Π»Ρ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΠΊΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ;
Β· ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΏΡΠΎΡΡΠΎΡΠ° Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π²ΡΡΠΎΠΊΡΡ ΡΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ;
Β· Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΡΡΠΎΠΊΠ°Ρ ΡΡΠΎΠΉΠΊΠΎΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°.
2. Π Π΅ΠΆΠΈΠΌ DES-ECB
Π ΡΡΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ°ΠΉΠ» M ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° 64-Π±ΠΈΡΠΎΠ²ΡΠ΅ Π±Π»ΠΎΠΊΠΈ (ΠΏΠΎ 8 Π±Π°ΠΉΡΠΎΠ²): M = M (1)M (2)…M (n). ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΡΡΠΈΡ Π±Π»ΠΎΠΊΠΎΠ² ΠΊΠΎΠ΄ΠΈΡΡΠ΅ΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠ»ΡΡΠ° ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²ΠΎ ΡΡΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° — ΠΏΡΠΎΡΡΠΎΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ — ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»Π°Π±Π°Ρ ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡ ΠΏΡΠΎΡΠΈΠ² ΠΊΠ²Π°Π»ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΊΡΠΈΠΏΡΠΎΠ°Π½Π°Π»ΠΈΡΠΈΠΊΠΎΠ². Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°Π±ΠΎΡΡ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ EXE ΡΠ°ΠΉΠ»ΠΎΠ², ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΆΠ΅ Π±Π»ΠΎΠΊ — Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΠ°ΠΉΠ»Π°, ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΏΠΎΠ»Π½Π΅ ΡΠ΄Π°ΡΠ½ΡΠΌ Π½Π°ΡΠ°Π»ΠΎΠΌ Π΄Π»Ρ Π²Π·Π»ΠΎΠΌΠ° Π²ΡΠ΅Π³ΠΎ ΡΠΈΡΡΠ°.
Π ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΈΠ·Π½Π°ΡΡ, ΡΡΠΎ ΡΡΠΎΡ ΡΠ΅ΠΆΠΈΠΌ Π² ΡΠΈΠ»Ρ ΡΠ²ΠΎΠ΅ΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½.
2.1 ΠΠ±ΡΠ°Ρ ΡΡ Π΅ΠΌΠ° ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ
ΠΡΠΎΡΠ΅ΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π±ΠΈΡΠΎΠ² 64-Π±ΠΈΡΠΎΠ²ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°, ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠΈ ΡΠΈΠΊΠ»Π°Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π±ΠΈΡΠΎΠ² (ΡΠΈΡΡΠ½ΠΎΠΊ 1). ΠΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈ ΠΊΠΎΠ΄Ρ Π² ΡΠ°Π±Π»ΠΈΡΠ°Ρ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°Π½Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π·Π°ΡΡΡΠ΄Π½ΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΠΊΠΈ ΠΏΡΡΠ΅ΠΌ ΠΏΠΎΠ΄Π±ΠΎΡΠ° ΠΊΠ»ΡΡΠ°. Π‘ΡΡΡΠΊΡΡΡΠ° Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° DES ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 2.
Π ΠΈΡΡΠ½ΠΎΠΊ 1. ΠΠ±ΠΎΠ±ΡΠ΅Π½Π½Π°Ρ ΡΡ Π΅ΠΌΠ° ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΠ· ΡΠΈΡΡΡΠ΅ΠΌΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π±Π°ΠΉΡ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ 8-Π±Π°ΠΉΡΠΎΠ²ΡΠΉ Π±Π»ΠΎΠΊ T, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ°ΡΡΠΈΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ IP (ΡΠ°Π±Π»ΠΈΡΠ° 1) ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: Π±ΠΈΡ 58 Π±Π»ΠΎΠΊΠ° T ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π±ΠΈΡΠΎΠΌ 1, Π±ΠΈΡ 50 — Π±ΠΈΡΠΎΠΌ 2 ΠΈ Ρ. Π΄., ΡΡΠΎ Π΄Π°ΡΡ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅: T (0) = IP (T).
ΠΠΎΠ»ΡΡΠ΅Π½Π½Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π±ΠΈΡΠΎΠ² T (0) ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΡΡΡ Π½Π° Π΄Π²Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΠΎ 32 Π±ΠΈΡΠ° ΠΊΠ°ΠΆΠ΄Π°Ρ: L (0) — Π»Π΅Π²ΡΠ΅ ΠΈΠ»ΠΈ ΡΡΠ°ΡΡΠΈΠ΅ Π±ΠΈΡΡ, R (0) — ΠΏΡΠ°Π²ΡΠ΅ ΠΈΠ»ΠΈ ΠΌΠ»Π°Π΄ΡΠΈΠ΅ Π±ΠΈΡΡ.
Π ΠΈΡΡΠ½ΠΎΠΊ 2. Π‘ΡΡΡΠΊΡΡΡΠ° Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ DES
Π’Π°Π±Π»ΠΈΡΠ° 1. ΠΠ°ΡΡΠΈΡΠ° Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ IP
ΠΠ°ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅, ΡΠΎΡΡΠΎΡΡΠ΅Π΅ ΠΈΠ· 16 ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ i-ΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΡΠΎΡΠΌΡΠ»Π°ΠΌΠΈ:
Π€ΡΠ½ΠΊΡΠΈΡ f Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ — ΡΡΠΎ 32-Π±ΠΈΡΠΎΠ²Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ R (i-1), ΠΏΠΎΠ»ΡΡΠ΅Π½Π½Π°Ρ Π½Π° (i-1)-ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ, ΠΈ 48-Π±ΠΈΡΠΎΠ²ΡΠΉ ΠΊΠ»ΡΡ K (i), ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ 64-Π±ΠΈΡΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° K.
ΠΠ° 16-ΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ R (16) ΠΈ L (16) (Π±Π΅Π· ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½ΠΈΡΡΡΡ Π² 64-Π±ΠΈΡΠΎΠ²ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ R (16)L (16). ΠΠ°ΡΠ΅ΠΌ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π±ΠΈΡΠΎΠ² ΡΡΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π²Π»ΡΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΌΠ°ΡΡΠΈΡΠ΅ΠΉ (Π’Π°Π±Π»ΠΈΡΠ° 2).
Π’Π°Π±Π»ΠΈΡΠ° 2. ΠΠ°ΡΡΠΈΡΠ° ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ
ΠΠ°ΡΡΠΈΡΡ IP-1 ΠΈ IP ΡΠΎΠΎΡΠ½ΠΎΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 1-Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΠ°ΡΡΠΈΡΡ ΡΠ°Π²Π½ΠΎ 40, Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 40-Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΠ°ΡΡΠΈΡΡ IP ΡΠ°Π²Π½ΠΎ 1, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 2-Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΠ°ΡΡΠΈΡΡ ΡΠ°Π²Π½ΠΎ 8, Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 8-Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΠ°ΡΡΠΈΡΡ IP ΡΠ°Π²Π½ΠΎ 2 ΠΈ Ρ. Π΄.
ΠΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ f ΡΠ²Π»ΡΡΡΡΡ 32-Π±ΠΈΡΠΎΠ²ΡΠΉ Π²Π΅ΠΊΡΠΎΡ ΠΈ 48-Π±ΠΈΡΠΎΠ²ΡΠΉ ΠΊΠ»ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ 56-Π±ΠΈΡΠΎΠ²ΠΎΠ³ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° ΡΠΈΡΡΠ° K.
ΠΠ»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ f ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ E, ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ 2 Ρ ΠΊΠ»ΡΡΠΎΠΌ, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ S, ΡΠΎΡΡΠΎΡΡΠ΅Π΅ ΠΈΠ· 8 ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ S-Π±Π»ΠΎΠΊΠΎΠ², ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° P.
Π€ΡΠ½ΠΊΡΠΈΡ E ΡΠ°ΡΡΠΈΡΡΠ΅Ρ 32-Π±ΠΈΡΠΎΠ²ΡΠΉ Π²Π΅ΠΊΡΠΎΡ Π΄ΠΎ 48-Π±ΠΈΡΠΎΠ²ΠΎΠ³ΠΎ Π²Π΅ΠΊΡΠΎΡΠ° E ΠΏΡΡΡΠΌ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π±ΠΈΡΠΎΠ² ΠΈΠ·. ΠΠΎΡΡΠ΄ΠΎΠΊ Π±ΠΈΡΠΎΠ² Π²Π΅ΠΊΡΠΎΡΠ° ΡΠΊΠ°Π·Π°Π½ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ 3.
ΠΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π±Π»ΠΎΠΊ ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ 2 Ρ ΠΊΠ»ΡΡΠ°ΠΌΠΈ ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ Π²ΠΎΡΡΠΌΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ Π±Π»ΠΎΠΊΠΎΠ².
Π’Π°Π±Π»ΠΈΡΠ° 3. Π€ΡΠ½ΠΊΡΠΈΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ E
ΠΠ°ΠΆΠ΄ΡΠΉ Π±Π»ΠΎΠΊ ΡΠ²Π»ΡΠ΅ΡΡΡ 6-Π±ΠΈΡΠΎΠ²ΡΠΌ Π±Π»ΠΎΠΊΠΎΠΌ. ΠΠ°Π»Π΅Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π±Π»ΠΎΠΊΠΎΠ² ΡΡΠ°Π½ΡΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ Π² 4-Π±ΠΈΡΠΎΠ²ΡΠΉ Π±Π»ΠΎΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠ·Π»Π° Π·Π°ΠΌΠ΅Π½Ρ Sj (ΡΠ°Π±Π»ΠΈΡΠ° 3).
Π’Π°Π±Π»ΠΈΡΠ° 4. Π£Π·Π»Ρ Π·Π°ΠΌΠ΅Π½Ρ
ΠΡΠ»ΠΈ Π½Π° Π²Ρ ΠΎΠ΄ Sj ΠΏΠΎΡΡΡΠΏΠ°Π΅Ρ Π±Π»ΠΎΠΊ, ΡΠΎ Π΄Π²ΡΡ Π±ΠΈΡΠΎΠ²ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½ΠΎΠΌΠ΅Ρ ΡΡΡΠΎΠΊΠΈ ΠΌΠ°ΡΡΠΈΡΡ, Π° ΡΠ΅ΡΡΡΡΡ Π±ΠΈΡΠΎΠ²ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ — Π½ΠΎΠΌΠ΅Ρ ΡΡΠΎΠ»Π±ΡΠ° Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΡΠ·Π»ΠΎΠ² Π·Π°ΠΌΠ΅Π½. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ·Π»Π° Π·Π°ΠΌΠ΅Π½Ρ Sj ΠΊ Π±Π»ΠΎΠΊΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠΈΡΠ»ΠΎ (ΠΎΡ 0 Π΄ΠΎ 15), ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΡΡΡ Π² .
ΠΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π²ΠΎΡΠ΅ΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² tj Π²Π½ΠΎΠ²Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ Π² 32-Π±ΠΈΡΠΎΠ²ΡΠΉ Π±Π»ΠΎΠΊ H'. Π H' Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π±ΠΈΡΠΎΠ² P (ΡΠ°Π±Π»ΠΈΡΠ° 5).
Π’Π°Π±Π»ΠΈΡΠ° 5. ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΡ ΠΎΠ΄Π½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ .
ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π²ΡΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΈΠ· ΠΊΠ»ΡΡΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ΄Π²ΠΈΠ³ΠΎΠ² ΠΈ Π±ΠΈΡΠΎΠ²ΡΡ Π²ΡΠ±ΠΎΡΠΎΠΊ-ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΎΠΊ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΎΡΡΠΎΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ· Π±ΠΈΡΠΎΠ² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°, «ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΎΠ²Π°Π½Π½ΡΡ » Π² ΡΠ°Π·Π»ΠΈΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅. Π‘Ρ Π΅ΠΌΠ° Π²ΡΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 3.
Π ΠΈΡΡΠ½ΠΎΠΊ 3. Π‘Ρ Π΅ΠΌΠ° Π²ΡΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΊΠ»ΡΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· 56 Π±ΠΈΡ. ΠΠΎ Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ ΠΊΠ»ΡΡΠ° ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΡΠ΅ΡΠ½ΠΎΡΡΠΈ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ 56 Π±ΠΈΡΠ½ΡΠΉ ΠΊΠ»ΡΡ ΡΠ°Π·Π±ΠΈΠ²Π°ΡΡ Π½Π° Π±Π»ΠΎΠΊΠΈ ΠΏΠΎ 7 Π±ΠΈΡ ΠΈ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ Π±Π»ΠΎΠΊΡ Π΄ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ Π²ΠΎΡΡΠΌΠΎΠΉ Π±ΠΈΡ, ΡΠ²Π»ΡΡΡΠΈΠΉΡΡ Π±ΠΈΡΠΎΠΌ ΡΠ΅ΡΠ½ΠΎΡΡΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΊΠ»ΡΡ ΠΈΠ· 64 Π±ΠΈΡ.
ΠΡΡΠ°Π±ΠΎΡΠΊΠ° ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ· ΠΊΠ»ΡΡΠ° K Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΡΠΎ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ Π²ΡΠ±ΠΎΡΠΊΠΈ-ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π±ΠΈΡΠΎΠ² PC1 (ΡΠ°Π±Π»ΠΈΡΠ° 6), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠ±ΠΈΡΠ°Π΅Ρ 56 ΠΈΠ· 64 Π±ΠΈΡΠΎΠ² ΠΊΠ»ΡΡΠ° ΠΈ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅Ρ ΠΈΡ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
Π’Π°Π±Π»ΠΈΡΠ° 6. ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° PC1
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠ±ΠΎΡΠΊΠΈ-ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ K* ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΡΡΡ Π½Π° Π΄Π²Π΅ 28-Π±ΠΈΡΠΎΠ²ΡΠ΅ ΡΠ°ΡΡΠΈ: ΡΡΠ°ΡΡΡΡ Π‘1 ΠΈ ΠΌΠ»Π°Π΄ΡΡΡ D1. Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π½ΠΎΠΌΠ΅ΡΠ° ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΎΠ±Π΅ ΡΠ°ΡΡΠΈ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΄Π²ΠΈΠ³Π°ΡΡΡΡ Π½Π° 1 ΠΈΠ»ΠΈ 2 Π±ΠΈΡΠ° Π²Π»Π΅Π²ΠΎ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΠ°Π±Π»ΠΈΡΠ΅ 7.
Π’Π°Π±Π»ΠΈΡΠ° 7. Π¦ΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΄Π²ΠΈΠ³ ΠΠ· ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ Π±Π»ΠΎΠΊΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΉ Π±ΠΈΡΠΎΠ²ΠΎΠΉ Π²ΡΠ±ΠΎΡΠΊΠΈ-ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ PC2 (ΡΠ°Π±Π»ΠΈΡΠ° 8) ΠΎΡΠ±ΠΈΡΠ°ΡΡΡΡ ΠΏΠ΅ΡΠ²ΡΠ΅ 48 Π±ΠΈΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈ ΡΠΎΡΠΌΠΈΡΡΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ.
Π’Π°Π±Π»ΠΈΡΠ° 8. ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° PC2
ΠΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½Ρ, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ki. ΠΡΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠΈ Π΄Π°Π½Π½ΡΡ Π²ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅. Π 16 ΡΠΈΠΊΠ»Π°Ρ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ c ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΡΠΌΠΎΠ³ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΡΡ Π€Π΅ΠΉΡΡΠ΅Π»Ρ, Π·Π΄Π΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΡΡ Π€Π΅ΠΉΡΡΠ΅Π»Ρ.
Π‘Ρ Π΅ΠΌΠ° Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΊΠ°Π·Π°Π½Π° Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 4.
Π ΠΈΡΡΠ½ΠΎΠΊ 4. Π‘Ρ Π΅ΠΌΠ° Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° DES
2.2 ΠΡΠΈΠΌΠ΅Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ: Pinaev
ΠΠ»ΡΡ: Pavelll
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ Π±Π»ΠΎΠΊ Π±ΠΈΡ… ΠΠ»ΠΎΠΊ № 0:
1 010 10 010 110 1 110 110 10 000 110 10 100 110 1 101 110 0 0
ΠΠ΅ΡΠ΅Π²Π΅ΡΠ½ΡΡΡΠ΅ Π±ΠΈΡΡ Π² Π±Π»ΠΎΠΊΠ΅…:
1 010 000 1 101 001 1 101 110 1 100 001 1 100 101 1 110 110 0 0
ΠΠ»ΡΡ ΠΈΠ· 56 Π±ΠΈΡ:
101 000__11 000__101 110__1 100 110__101 011__110 001__1 011 000__1 101 100__
ΠΠ»ΡΡ ΠΈΠ· 64 Π±ΠΈΡΠ°, ΠΏΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π±ΠΈΡ ΡΠ΅ΡΠ½ΠΎΡΡΠΈ:
1 010 000 110 000 1 011 100 11 001 100 1 010 110 1 100 011 10 110 001 11 011 000
**********************Π¨ΠΠ€Π ΠΠΠΠΠΠ**********************
ΠΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅:
1 010 000 1 101 001 1 101 110 1 100 001 1 100 101 1 110 110 0 0
ΠΠ°ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° IP:
111 111 100 001 110 100 11 010 0 111 110 110 100 100
HPart:
111 111 100 001 110 100 11 010
LPart:
0 111 110 110 100 100
ΠΠ»ΡΡ 64 Π±ΠΈΡΠ°. Π‘ Π±ΠΈΡΠ°ΠΌΠΈ ΡΠ΅ΡΠ½ΠΎΡΡΠΈ:
1 010 000 110 000 1 011 100 11 001 100 1 010 110 1 100 011 10 110 001 11 011 000
ΠΊΠ»ΡΡ (56). ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π Π‘1:
11 001 000 10 111 101 1 100 010 11 010 011 1 11 001 000 11 000 111
ΠΊΠ»ΡΡ (28C (Left)):
1100 1000 1011 1101 0110 0010 1101
ΠΊΠ»ΡΡ (28D (Right)):
0011 0000 0001 1100 1000 1100 0111
ΠΡΠ΅ΡΠ°ΡΠΈΡ № 1
ΠΠ»ΡΡ ΠΈΠ· 56 Π±ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΄Π²ΠΈΠ³Π°, ΠΈΡΠ΅ΡΠ°ΡΠΈΡ 1:
1 001 000 101 111 010 080 195 608 576 110 000 000 111 000 993 746 911 232
ΠΠ»ΡΡ ΠΈΠ· 48 Π±ΠΈΡ. ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π Π‘2:
1 111 001 10 010 011 1 001 010 10 100 111 11 110 1 000 000
LPart, ΠΠ°ΡΠ°Π»Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ f:
0 111 110 110 100 100
ΠΠ΅ΡΠ΅Π²Π΅Π»ΠΈ 32 Π² 48. ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π:
0 1 11 111 100 0 11 000 001 1 000
Xor. ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΠΎ ΡΡΠΌΠΌΠΈΡΡΠ΅ΠΌ ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ 2:
1 111 001 10 010 010 10 110 110 10 100 111 11 011 111 1 001 000
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π»ΠΈ 48 Π² 32. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ·Π»ΠΎΠ² Π·Π°ΠΌΠ΅Π½Ρ:
1 110 110 111 110 11 000 110 110
ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π±ΠΈΡ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° P:
1 110 110 1 000 010 10 010 110 1 110 110
HPart ΠΏΠΎΡΠ»Π΅ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. HPart XOR f (LPart, Key):
1 001 001 1 100 011 10 100 010 1 101 100
ΠΠΎΡΠ»Π΅ ΠΎΠ±ΠΌΠ΅Π½Π° HPart:
0 111 110 110 100 100
ΠΠΎΡΠ»Π΅ ΠΎΠ±ΠΌΠ΅Π½Π° LPart:
1 001 001 1 100 011 10 100 010 1 101 100
…
ΠΡΠ΅ΡΠ°ΡΠΈΡ № 16
ΠΠ»ΡΡ ΠΈΠ· 56 Π±ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΄Π²ΠΈΠ³Π°, ΠΈΡΠ΅ΡΠ°ΡΠΈΡ 16:
1 100 100 010 111 100 980 075 429 888 11 000 000 011 100 100 663 181 312
ΠΠ»ΡΡ ΠΈΠ· 48 Π±ΠΈΡ. ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π Π‘2:
10 101 101 1 110 10 100 011 10 100 101 1 000 101 11 001
LPart, ΠΠ°ΡΠ°Π»Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ f:
11 100 110 11 110 001 10 001 000 11 001 010
ΠΠ΅ΡΠ΅Π²Π΅Π»ΠΈ 32 Π² 48. ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π:
1 110 000 11 010 111 10 100 011 11 000 101 10 110 1 010 101
Xor. ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΠΎ ΡΡΠΌΠΌΠΈΡΡΠ΅ΠΌ ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ 2:
11 011 101 11 011 001 0 1 100 000 1 010 011 1 001 100
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π»ΠΈ 48 Π² 32. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ·Π»ΠΎΠ² Π·Π°ΠΌΠ΅Π½Ρ:
11 101 011 1 000 111 11 010 100 11 011
ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π±ΠΈΡ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° P:
11 101 011 11 001 111 11 011 010 1 000
HPart ΠΏΠΎΡΠ»Π΅ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. HPart XOR f (LPart, Key):
1 101 001 11 000 010 1 110 111 11 011 110
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π±Π»ΠΎΠΊΠ°. ΠΠΎΠ½Π΅ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° IP-1:
1 100 100 10 010 111 10 000 101 1 001 011 100 101 11 100 100 11 110 111 10 111 011
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π±Π»ΠΎΠΊΠ° Π±ΠΈΡ Π΄ΠΎ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ (ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π΅Π΄ΠΎΡΠ΅ΡΠ° BitArray)… ΠΠ»ΠΎΠΊ № 0:
1 100 100 10 010 111 10 000 101 1 001 011 100 101 11 100 100 11 110 111 10 111 011
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π±Π»ΠΎΠΊΠ° Π±ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ…:
100 110 11 101 001 10 100 001 11 010 010 10 100 100 100 111 11 101 111 11 011 101
ΠΡΡ ΠΎΠ΄Π½ΠΎΠ΅ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅: d—…K%Π΄Ρ"
ΠΠ»ΡΡ: Pavelll
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ Π±Π»ΠΎΠΊ Π±ΠΈΡ… ΠΠ»ΠΎΠΊ № 0:
100 110 11 101 001 10 100 001 11 010 010 10 100 100 100 111 11 101 111 11 011 101
ΠΠ΅ΡΠ΅Π²Π΅ΡΠ½ΡΡΡΠ΅ Π±ΠΈΡΡ Π² Π±Π»ΠΎΠΊΠ΅…:
1 100 100 10 010 111 10 000 101 1 001 011 100 101 11 100 100 11 110 111 10 111 011
ΠΠ»ΡΡ ΠΈΠ· 56 Π±ΠΈΡ:
101 000__11 000__101 110__1 100 110__101 011__110 001__1 011 000__1 101 100__
ΠΠ»ΡΡ ΠΈΠ· 64 Π±ΠΈΡΠ°, ΠΏΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π±ΠΈΡ ΡΠ΅ΡΠ½ΠΎΡΡΠΈ:
1 010 000 110 000 1 011 100 11 001 100 1 010 110 1 100 011 10 110 001 11 011 000
**********************ΠΠ΅Π¨ΠΠ€Π ΠΠΠΠΠΠ**********************
ΠΠ°ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° IP:
1 101 001 11 000 010 1 110 111 11 011 110 11 100 110 11 110 001 10 001 000 11 001 010
HPart:
1 101 001 11 000 010 1 110 111 11 011 110
LPart:
11 100 110 11 110 001 10 001 000 11 001 010
ΠΠ»ΡΡ 64 Π±ΠΈΡΠ°. Π‘ Π±ΠΈΡΠ°ΠΌΠΈ ΡΠ΅ΡΠ½ΠΎΡΡΠΈ:
1 010 000 110 000 1 011 100 11 001 100 1 010 110 1 100 011 10 110 001 11 011 000
ΠΊΠ»ΡΡ (56). ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π Π‘1:
11 001 000 10 111 101 1 100 010 11 010 011 1 11 001 000 11 000 111
ΠΊΠ»ΡΡ (28C (Left)):
1100 1000 1011 1101 0110 0010 1101
ΠΊΠ»ΡΡ (28D (Right)):
0011 0000 0001 1100 1000 1100 0111
ΠΡΠ΅ΡΠ°ΡΠΈΡ № 1
ΠΠ»ΡΡ ΠΈΠ· 56 Π±ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΄Π²ΠΈΠ³Π°, ΠΈΡΠ΅ΡΠ°ΡΠΈΡ 16:
1 100 100 010 111 100 980 075 429 888 11 000 000 011 100 100 663 181 312
ΠΠ»ΡΡ ΠΈΠ· 48 Π±ΠΈΡ. ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π Π‘2:
10 101 101 1 110 10 100 011 10 100 101 1 000 101 11 001
LPart, ΠΠ°ΡΠ°Π»Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ f:
11 100 110 11 110 001 10 001 000 11 001 010
ΠΠ΅ΡΠ΅Π²Π΅Π»ΠΈ 32 Π² 48. ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π:
1 110 000 11 010 111 10 100 011 11 000 101 10 110 1 010 101
Xor. ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΠΎ ΡΡΠΌΠΌΠΈΡΡΠ΅ΠΌ ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ 2:
11 011 101 11 011 001 0 1 100 000 1 010 011 1 001 100
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π»ΠΈ 48 Π² 32. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ·Π»ΠΎΠ² Π·Π°ΠΌΠ΅Π½Ρ:
11 101 011 1 000 111 11 010 100 11 011
ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π±ΠΈΡ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° P:
11 101 011 11 001 111 11 011 010 1 000
HPart ΠΏΠΎΡΠ»Π΅ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. HPart XOR f (LPart, Key):
10 000 010 1 101 10 101 101 11 010 110
ΠΠΎΡΠ»Π΅ ΠΎΠ±ΠΌΠ΅Π½Π° HPart:
11 100 110 11 110 001 10 001 000 11 001 010
ΠΠΎΡΠ»Π΅ ΠΎΠ±ΠΌΠ΅Π½Π° LPart:
10 000 010 1 101 10 101 101 11 010 110
…
ΠΡΠ΅ΡΠ°ΡΠΈΡ № 16
ΠΠ»ΡΡ ΠΈΠ· 56 Π±ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΄Π²ΠΈΠ³Π°, ΠΈΡΠ΅ΡΠ°ΡΠΈΡ 1:
1 001 000 101 111 010 080 195 608 576 110 000 000 111 000 993 746 911 232
ΠΠ»ΡΡ ΠΈΠ· 48 Π±ΠΈΡ. ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π Π‘2:
1 111 001 10 010 011 1 001 010 10 100 111 11 110 1 000 000
LPart, ΠΠ°ΡΠ°Π»Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ f:
0 111 110 110 100 100
ΠΠ΅ΡΠ΅Π²Π΅Π»ΠΈ 32 Π² 48. ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π:
0 1 11 111 100 0 11 000 001 1 000
Xor. ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΠΎ ΡΡΠΌΠΌΠΈΡΡΠ΅ΠΌ ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ 2:
1 111 001 10 010 010 10 110 110 10 100 111 11 011 111 1 001 000
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π»ΠΈ 48 Π² 32. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ·Π»ΠΎΠ² Π·Π°ΠΌΠ΅Π½Ρ:
1 110 110 111 110 11 000 110 110
ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π±ΠΈΡ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° P:
1 110 110 1 000 010 10 010 110 1 110 110
HPart ΠΏΠΎΡΠ»Π΅ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. HPart XOR f (LPart, Key):
111 111 100 001 110 100 11 010
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π±Π»ΠΎΠΊΠ°. ΠΠΎΠ½Π΅ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° IP-1:
1 010 000 1 101 001 1 101 110 1 100 001 1 100 101 1 110 110 0 0
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π±Π»ΠΎΠΊΠ° Π±ΠΈΡ Π΄ΠΎ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ (ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π΅Π΄ΠΎΡΠ΅ΡΠ° BitArray)… ΠΠ»ΠΎΠΊ № 0:
1 010 000 1 101 001 1 101 110 1 100 001 1 100 101 1 110 110 0 0
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π±Π»ΠΎΠΊΠ° Π±ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ…:
1 010 10 010 110 1 110 110 10 000 110 10 100 110 1 101 110 0 0
ΠΠΎΡΠ»Π΅ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅: Pinaev
3. Π Π΅ΠΆΠΈΠΌ DES-CBC
3.1 ΠΠ±ΡΠ°Ρ ΡΡ Π΅ΠΌΠ° ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ
Π ΡΡΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ Π½Π°Π±ΠΎΡ Π±Π°ΠΉΡ M ΡΠ°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ECB, ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° 64-Π±ΠΈΡΠΎΠ²ΡΠ΅ Π±Π»ΠΎΠΊΠΈ: M = M (1)M (2)…M (n). ΠΠ΅ΡΠ²ΡΠΉ Π±Π»ΠΎΠΊ M (1) ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ 2 Ρ 64-Π±ΠΈΡΠΎΠ²ΡΠΌ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΌ Π²Π΅ΠΊΡΠΎΡΠΎΠΌ IV, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ ΠΈ Π΄Π΅ΡΠΆΠΈΡΡΡ Π² ΡΠ΅ΠΊΡΠ΅ΡΠ΅. ΠΠΎΠ»ΡΡΠ΅Π½Π½Π°Ρ ΡΡΠΌΠΌΠ° Π·Π°ΡΠ΅ΠΌ ΡΠΈΡΡΡΠ΅ΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ»ΡΡΠ° DES, ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ³ΠΎ ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ, ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. ΠΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ 64-Π±ΠΈΡΠΎΠ²ΡΠΉ Π±Π»ΠΎΠΊ ΡΠΈΡΡΡΠ΅ΠΊΡΡΠ° C (1) ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ 2 ΡΠΎ Π²ΡΠΎΡΡΠΌ Π±Π»ΠΎΠΊΠΎΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°, ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠΈΡΡΡΠ΅ΡΡΡ ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π²ΡΠΎΡΠΎΠΉ 64-Π±ΠΈΡΠΎΠ²ΡΠΉ Π±Π»ΠΎΠΊ ΡΠΈΡΡΡΠ΅ΠΊΡΡΠ° C (2) ΠΈ Ρ. Π΄. ΠΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΡΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Ρ Π²ΡΠ΅ Π±Π»ΠΎΠΊΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° (ΡΠΈΡΡΠ½ΠΎΠΊ 5).
Π ΠΈΡΡΠ½ΠΎΠΊ 5. ΠΠ±ΡΠ°Ρ ΡΡ Π΅ΠΌΠ° ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΠ»ΡΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°ΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅. ΠΠ»ΠΎΠΊ M (i) ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΡΠΎΠ»ΡΠΊΠΎ C (i-1) ΠΈ C (i). ΠΠΎΡΡΠΎΠΌΡ ΠΎΡΠΈΠ±ΠΊΠ° ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΏΠΎΡΠ΅ΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π²ΡΡ Π±Π»ΠΎΠΊΠΎΠ² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°.
3.2 ΠΡΠΈΠΌΠ΅Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ: Pinaev
ΠΠ»ΡΡ: Pavelll
ΠΠ°ΡΠ°Π»ΡΠ½ΡΠΉ Π²Π΅ΠΊΡΠΎΡ: 11 111 111
ΡΡ ΠΎΠ΄Π½ΡΠΉ Π±Π»ΠΎΠΊ Π±ΠΈΡ… ΠΠ»ΠΎΠΊ № 0:
1 010 10 010 110 1 110 110 10 000 110 10 100 110 1 101 110 0 0
ΠΠ΅ΡΠ΅Π²Π΅ΡΠ½ΡΡΡΠ΅ Π±ΠΈΡΡ Π² Π±Π»ΠΎΠΊΠ΅…:
1 010 000 1 101 001 1 101 110 1 100 001 1 100 101 1 110 110 0 0
ΠΠ»ΡΡ ΠΈΠ· 56 Π±ΠΈΡ:
101 000__11 000__101 110__1 100 110__101 011__110 001__1 011 000__1 101 100__
ΠΠ»ΡΡ ΠΈΠ· 64 Π±ΠΈΡΠ°, ΠΏΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π±ΠΈΡ ΡΠ΅ΡΠ½ΠΎΡΡΠΈ:
1 010 000 110 000 1 011 100 11 001 100 1 010 110 1 100 011 10 110 001 11 011 000
**********************Π¨ΠΠ€Π ΠΠΠΠΠΠ**********************
ΠΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅:
1 010 000 1 101 001 1 101 110 1 100 001 1 100 101 1 110 110 0 0
ΠΠ°ΡΠ°Π»ΡΠ½ΡΠΉ Π²Π΅ΠΊΡΠΎΡ:
110 001 110 001 110 001 110 001 110 001 110 001 110 001 110 001
ΠΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ XOR Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ Π²Π΅ΠΊΡΠΎΡ:
1 100 001 1 011 000 1 011 111 1 010 000 1 010 100 1 000 111 110 001 110 001
ΠΠ°ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° IP:
111 111 11 011 110 110 100 11 100 101 0 11 000 001 110 100 100
HPart:
111 111 11 011 110 110 100 11 100 101
LPart:
0 11 000 001 110 100 100
ΠΠ»ΡΡ 64 Π±ΠΈΡΠ°. Π‘ Π±ΠΈΡΠ°ΠΌΠΈ ΡΠ΅ΡΠ½ΠΎΡΡΠΈ:
1 010 000 110 000 1 011 100 11 001 100 1 010 110 1 100 011 10 110 001 11 011 000
ΠΊΠ»ΡΡ (56). ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π Π‘1:
11 001 000 10 111 101 1 100 010 11 010 011 1 11 001 000 11 000 111
ΠΊΠ»ΡΡ (28C (Left)):
1100 1000 1011 1101 0110 0010 1101
ΠΊΠ»ΡΡ (28D (Right)):
0011 0000 0001 1100 1000 1100 0111
ΠΡΠ΅ΡΠ°ΡΠΈΡ № 1
ΠΠ»ΡΡ ΠΈΠ· 56 Π±ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΄Π²ΠΈΠ³Π°, ΠΈΡΠ΅ΡΠ°ΡΠΈΡ 1:
1 001 000 101 111 010 080 195 608 576 110 000 000 111 000 993 746 911 232
ΠΠ»ΡΡ ΠΈΠ· 48 Π±ΠΈΡ. ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π Π‘2:
1 111 001 10 010 011 1 001 010 10 100 111 11 110 1 000 000
LPart, ΠΠ°ΡΠ°Π»Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ f:
0 11 000 001 110 100 100
ΠΠ΅ΡΠ΅Π²Π΅Π»ΠΈ 32 Π² 48. ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π:
0 10 110 10 10 000 000 11 000 001 1 000
Xor. ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΠΎ ΡΡΠΌΠΌΠΈΡΡΠ΅ΠΌ ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ 2:
1 111 001 10 000 101 1 001 000 100 111 11 011 111 1 001 000
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π»ΠΈ 48 Π² 32. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ·Π»ΠΎΠ² Π·Π°ΠΌΠ΅Π½Ρ:
1 111 100 1 010 000 1 001 000 110 110
ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π±ΠΈΡ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° P:
10 110 1 111 10 000 110 110 010
HPart ΠΏΠΎΡΠ»Π΅ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. HPart XOR f (LPart, Key):
101 001 11 010 001 10 110 010 11 010 111
ΠΠΎΡΠ»Π΅ ΠΎΠ±ΠΌΠ΅Π½Π° HPart:
0 11 000 001 110 100 100
ΠΠΎΡΠ»Π΅ ΠΎΠ±ΠΌΠ΅Π½Π° LPart:
101 001 11 010 001 10 110 010 11 010 111
…
ΠΡΠ΅ΡΠ°ΡΠΈΡ № 16
ΠΠ»ΡΡ ΠΈΠ· 56 Π±ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΄Π²ΠΈΠ³Π°, ΠΈΡΠ΅ΡΠ°ΡΠΈΡ 16:
1 100 100 010 111 100 980 075 429 888 11 000 000 011 100 100 663 181 312
ΠΠ»ΡΡ ΠΈΠ· 48 Π±ΠΈΡ. ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π Π‘2:
10 101 101 1 110 10 100 011 10 100 101 1 000 101 11 001
LPart, ΠΠ°ΡΠ°Π»Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ f:
1 110 011 11 000 111 10 111 111 11 111 000
ΠΠ΅ΡΠ΅Π²Π΅Π»ΠΈ 32 Π² 48. ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π:
111 010 1 111 110 1 111 11 011 111 11 111 111 11 110 000
Xor. ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΠΎ ΡΡΠΌΠΌΠΈΡΡΠ΅ΠΌ ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ 2:
10 010 111 1 110 000 10 101 100 1 111 010 10 111 010 11 101 001
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π»ΠΈ 48 Π² 32. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ·Π»ΠΎΠ² Π·Π°ΠΌΠ΅Π½Ρ:
10 001 100 111 10 010 101 1 000 100
ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π±ΠΈΡ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° P:
10 100 001 11 011 000 110 000 111 000
HPart ΠΏΠΎΡΠ»Π΅ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. HPart XOR f (LPart, Key):
11 111 110 111 111 111 001 11 000 111
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π±Π»ΠΎΠΊΠ°. ΠΠΎΠ½Π΅ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° IP-1:
10 111 101 11 111 001 1 111 001 1 011 110 11 011 110 11 011 110 11 100 011 1 101 011
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π±Π»ΠΎΠΊΠ° Π±ΠΈΡ Π΄ΠΎ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ (ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π΅Π΄ΠΎΡΠ΅ΡΠ° BitArray)… ΠΠ»ΠΎΠΊ № 0:
10 111 101 11 111 001 1 111 001 1 011 110 11 011 110 11 011 110 11 100 011 1 101 011
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π±Π»ΠΎΠΊΠ° Π±ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ…:
10 111 101 10 011 111 10 011 110 1 111 010 1 111 011 1 111 011 11 000 111 11 010 110
ΠΡΡ ΠΎΠ΄Π½ΠΎΠ΅ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅:
ΠΠ»ΡΡ: Pavelll
ΠΠ°ΡΠ°Π»ΡΠ½ΡΠΉ Π²Π΅ΠΊΡΠΎΡ: 11 111 111
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ Π±Π»ΠΎΠΊ Π±ΠΈΡ… ΠΠ»ΠΎΠΊ № 0:
10 111 101 10 011 111 10 011 110 1 111 010 1 111 011 1 111 011 11 000 111 11 010 110
ΠΠ΅ΡΠ΅Π²Π΅ΡΠ½ΡΡΡΠ΅ Π±ΠΈΡΡ Π² Π±Π»ΠΎΠΊΠ΅…:
10 111 101 11 111 001 1 111 001 1 011 110 11 011 110 11 011 110 11 100 011 1 101 011
ΠΠ»ΡΡ ΠΈΠ· 56 Π±ΠΈΡ:
101 000__11 000__101 110__1 100 110__101 011__110 001__1 011 000__1 101 100__
ΠΠ»ΡΡ ΠΈΠ· 64 Π±ΠΈΡΠ°, ΠΏΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π±ΠΈΡ ΡΠ΅ΡΠ½ΠΎΡΡΠΈ:
1 010 000 110 000 1 011 100 11 001 100 1 010 110 1 100 011 10 110 001 11 011 000
**********************ΠΠ΅Π¨ΠΠ€Π ΠΠΠΠΠΠ**********************
ΠΠ°ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° IP:
11 111 110 111 111 111 001 11 000 111 1 110 011 11 000 111 10 111 111 11 111 000
HPart:
11 111 110 111 111 111 001 11 000 111
LPart:
1 110 011 11 000 111 10 111 111 11 111 000
ΠΠ»ΡΡ 64 Π±ΠΈΡΠ°. Π‘ Π±ΠΈΡΠ°ΠΌΠΈ ΡΠ΅ΡΠ½ΠΎΡΡΠΈ:
1 010 000 110 000 1 011 100 11 001 100 1 010 110 1 100 011 10 110 001 11 011 000
ΠΊΠ»ΡΡ (56). ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π Π‘1:
11 001 000 10 111 101 1 100 010 11 010 011 1 11 001 000 11 000 111
ΠΊΠ»ΡΡ (28C (Left)):
1100 1000 1011 1101 0110 0010 1101
ΠΊΠ»ΡΡ (28D (Right)):
0011 0000 0001 1100 1000 1100 0111
ΠΡΠ΅ΡΠ°ΡΠΈΡ № 1
ΠΠ»ΡΡ ΠΈΠ· 56 Π±ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΄Π²ΠΈΠ³Π°, ΠΈΡΠ΅ΡΠ°ΡΠΈΡ 16:
1 100 100 010 111 100 980 075 429 888 11 000 000 011 100 100 663 181 312
ΠΠ»ΡΡ ΠΈΠ· 48 Π±ΠΈΡ. ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π Π‘2:
10 101 101 1 110 10 100 011 10 100 101 1 000 101 11 001
LPart, ΠΠ°ΡΠ°Π»Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ f:
1 110 011 11 000 111 10 111 111 11 111 000
ΠΠ΅ΡΠ΅Π²Π΅Π»ΠΈ 32 Π² 48. ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π:
111 010 1 111 110 1 111 11 011 111 11 111 111 11 110 000
Xor. ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΠΎ ΡΡΠΌΠΌΠΈΡΡΠ΅ΠΌ ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ 2:
10 010 111 1 110 000 10 101 100 1 111 010 10 111 010 11 101 001
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π»ΠΈ 48 Π² 32. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ·Π»ΠΎΠ² Π·Π°ΠΌΠ΅Π½Ρ:
10 001 100 111 10 010 101 1 000 100
ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π±ΠΈΡ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° P:
10 100 001 11 011 000 110 000 111 000
HPart ΠΏΠΎΡΠ»Π΅ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. HPart XOR f (LPart, Key):
1 011 111 11 100 111 1 001 11 111 111
ΠΠΎΡΠ»Π΅ ΠΎΠ±ΠΌΠ΅Π½Π° HPart:
1 110 011 11 000 111 10 111 111 11 111 000
ΠΠΎΡΠ»Π΅ ΠΎΠ±ΠΌΠ΅Π½Π° LPart:
1 011 111 11 100 111 1 001 11 111 111
…
ΠΡΠ΅ΡΠ°ΡΠΈΡ № 16
ΠΠ»ΡΡ ΠΈΠ· 56 Π±ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΄Π²ΠΈΠ³Π°, ΠΈΡΠ΅ΡΠ°ΡΠΈΡ 1:
1 001 000 101 111 010 080 195 608 576 110 000 000 111 000 993 746 911 232
ΠΠ»ΡΡ ΠΈΠ· 48 Π±ΠΈΡ. ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π Π‘2:
1 111 001 10 010 011 1 001 010 10 100 111 11 110 1 000 000
LPart, ΠΠ°ΡΠ°Π»Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ f:
0 11 000 001 110 100 100
ΠΠ΅ΡΠ΅Π²Π΅Π»ΠΈ 32 Π² 48. ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π:
0 10 110 10 10 000 000 11 000 001 1 000
Xor. ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΠΎ ΡΡΠΌΠΌΠΈΡΡΠ΅ΠΌ ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ 2:
1 111 001 10 000 101 1 001 000 100 111 11 011 111 1 001 000
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π»ΠΈ 48 Π² 32. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ·Π»ΠΎΠ² Π·Π°ΠΌΠ΅Π½Ρ:
1 111 100 1 010 000 1 001 000 110 110
ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π±ΠΈΡ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° P:
10 110 1 111 10 000 110 110 010
HPart ΠΏΠΎΡΠ»Π΅ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. HPart XOR f (LPart, Key):
111 111 11 011 110 110 100 11 100 101
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π±Π»ΠΎΠΊΠ°. ΠΠΎΠ½Π΅ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° IP-1:
1 100 001 1 011 000 1 011 111 1 010 000 1 010 100 1 000 111 110 001 110 001
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ XOR Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ Π²Π΅ΠΊΡΠΎΡ:
1 010 000 1 101 001 1 101 110 1 100 001 1 100 101 1 110 110 0 0
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π±Π»ΠΎΠΊΠ° Π±ΠΈΡ Π΄ΠΎ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ (ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π΅Π΄ΠΎΡΠ΅ΡΠ° BitArray)… ΠΠ»ΠΎΠΊ № 0:
1 010 000 1 101 001 1 101 110 1 100 001 1 100 101 1 110 110 0 0
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π±Π»ΠΎΠΊΠ° Π±ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ…:
1 010 10 010 110 1 110 110 10 000 110 10 100 110 1 101 110 0 0
ΠΠΎΡΠ»Π΅ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅: Pinaev
4. Π Π΅ΠΆΠΈΠΌ ΡΡΠΎΠΉΠ½ΠΎΠΉ DES
Triple DES (3DES) — ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠΉ Π±Π»ΠΎΡΠ½ΡΠΉ ΡΠΈΡΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Π£ΠΈΡΡΠΈΠ»Π΄ΠΎΠΌ ΠΠΈΡΡΠΈ, ΠΠ°ΡΡΠΈΠ½ΠΎΠΌ Π₯Π΅Π»Π»ΠΌΠ°Π½ΠΎΠΌ ΠΈ Π£ΠΎΠ»ΡΠΎΠΌ Π’Π°ΡΠΌΠ°Π½Π½ΠΎΠΌ Π² 1978 Π³ΠΎΠ΄Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° DES, Ρ ΡΠ΅Π»ΡΡ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ — ΠΌΠ°Π»ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ ΠΊΠ»ΡΡΠ° (56 Π±ΠΈΡ), ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²Π·Π»ΠΎΠΌΠ°Π½ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° ΠΊΠ»ΡΡΠ°. Π‘ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ 3DES Π² 3 ΡΠ°Π·Π° Π½ΠΈΠΆΠ΅, ΡΠ΅ΠΌ Ρ DES, Π½ΠΎ ΠΊΡΠΈΠΏΡΠΎΡΡΠΎΠΉΠΊΠΎΡΡΡ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΡΠ΅ — Π²ΡΠ΅ΠΌΡ, ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ΅ Π΄Π»Ρ ΠΊΡΠΈΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·Π° 3DES, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π² ΠΌΠΈΠ»Π»ΠΈΠ°ΡΠ΄ ΡΠ°Π· Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ Π²ΡΠ΅ΠΌΡ, Π½ΡΠΆΠ½ΠΎΠ΅ Π΄Π»Ρ Π²ΡΠΊΡΡΡΠΈΡ DES. 3DES ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ°ΡΠ΅, ΡΠ΅ΠΌ DES, ΠΊΠΎΡΠΎΡΡΠΉ Π»Π΅Π³ΠΊΠΎ Π»ΠΎΠΌΠ°Π΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ (Π² 1998 Π³ΠΎΠ΄Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Electronic Frontier Foundation, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ DES Cracker, Π²ΡΠΊΡΡΠ»Π° DES Π·Π° 3 Π΄Π½Ρ). 3DES ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΡΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠ² DES. ΠΠ»Π³ΠΎΡΠΈΡΠΌ 3DES ΠΏΠΎΡΡΡΠΎΠ΅Π½ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ DES, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ DES.
3DES Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈ ΠΈΠΌΠ΅Π΅Ρ Π΄Π»ΠΈΠ½Ρ ΠΊΠ»ΡΡΠ° ΡΠ°Π²Π½ΡΡ 168 Π±ΠΈΡ, Π½ΠΎ ΠΈΠ·-Π·Π° Π°ΡΠ°ΠΊ «Π²ΡΡΡΠ΅ΡΠ° ΠΏΠΎΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅» ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π°Ρ ΠΊΡΠΈΠΏΡΠΎΡΡΠΎΠΉΠΊΠΎΡΡΡ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ 112 Π±ΠΈΡ. Π Π²Π°ΡΠΈΠ°Π½ΡΠ΅ DES-EDE, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ k1=k3, ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΊΠ»ΡΡ ΠΈΠΌΠ΅Π΅Ρ Π΄Π»ΠΈΠ½Ρ 80 Π±ΠΈΡ.
ΠΠ»Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ Π°ΡΠ°ΠΊΠΈ Π½Π° 3DES ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΠΊΠΎΠ»ΠΎ Π±ΠΈΡ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ³ΠΎ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°, ΡΠ°Π³ΠΎΠ², ΡΠΈΠΊΠ»ΠΎΠ² DES-ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π±ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ.
4.1 ΠΠ±ΡΠΈΠ΅ ΡΡ Π΅ΠΌΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ
Π‘Ρ Π΅ΠΌΠ° Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° (ΡΠΈΡΡΠ½ΠΎΠΊ 6) 3DES ΠΈΠΌΠ΅Π΅Ρ ΡΠ°ΠΊΠΎΠΉ Π²ΠΈΠ΄:
Π³Π΄Π΅ — ΠΊΠ»ΡΡΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ DES-ΡΠ°Π³Π°, M — Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΠΈΡΡΠΎΠ²Π°ΡΡ. ΠΡΠΎ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΠΊΠ°ΠΊ Π² ΠΠΠ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΈ DES ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.
Π ΠΈΡΡΠ½ΠΎΠΊ 6. Π‘Ρ Π΅ΠΌΠ° Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° 3DES
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ 3 ΡΠΈΠΏΠ° Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° 3DES:
Β· DES-EEE3: Π¨ΠΈΡΡΡΠ΅ΡΡΡ ΡΡΠΈ ΡΠ°Π·Π° Ρ ΡΡΠ΅ΠΌΡ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈ (ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅-ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅-ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅).
Β· DES-EDE3: 3DES ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΈΡΡΠΎΠ²ΠΊΠ°-ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΠΊΠ°-ΡΠΈΡΡΠΎΠ²ΠΊΠ° Ρ ΡΡΠ΅ΠΌΡ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈ.
Β· DES-EEE2 ΠΈ DES-EDE2: ΠΠ°ΠΊ ΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΈ ΡΡΠ΅ΡΡΠ΅ΠΌ ΡΠ°Π³Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΉ ΠΊΠ»ΡΡ.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π°Ρ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΡ 3DES — ΡΡΠΎ DES-EDE3, Π΄Π»Ρ Π½Π΅Π³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
Π¨ΠΈΡΡΠΎΠ²ΠΊΠ°:
Π Π°ΡΡΠΈΡΡΠΎΠ²ΠΊΠ°:
4.2. ΠΡΠΈΠΌΠ΅Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Triple DES EDE3
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ: Pinaev
ΠΠ»ΡΡ: 1 234 567
ΠΡΠΎΡΠΎΠΉ ΠΊΠ»ΡΡ: 2 345 678
Π’ΡΠ΅ΡΠΈΠΉ ΠΊΠ»ΡΡ: 3 456 789
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ Π±Π»ΠΎΠΊ Π±ΠΈΡ… ΠΠ»ΠΎΠΊ № 0:
1 010 10 010 110 1 110 110 10 000 110 10 100 110 1 101 110 0 0
ΠΠ΅ΡΠ΅Π²Π΅ΡΠ½ΡΡΡΠ΅ Π±ΠΈΡΡ Π² Π±Π»ΠΎΠΊΠ΅…:
1 010 000 1 101 001 1 101 110 1 100 001 1 100 101 1 110 110 0 0
ΠΠ»ΡΡ ΠΈΠ· 56 Π±ΠΈΡ:
11 000__1 001 100__1 000 110__110 011__100 001__1 010 100__1 101 100__110 111__
ΠΠ»ΡΡ ΠΈΠ· 64 Π±ΠΈΡΠ°, ΠΏΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π±ΠΈΡ ΡΠ΅ΡΠ½ΠΎΡΡΠΈ:
110 000 10 011 001 10 001 101 1 100 110 1 000 010 10 101 001 11 011 000 1 101 111
**********************Π¨ΠΠ€Π ΠΠΠΠΠΠ**********************
ΠΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅:
1 010 000 1 101 001 1 101 110 1 100 001 1 100 101 1 110 110 0 0
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π±Π»ΠΎΠΊΠ°. ΠΠΎΠ½Π΅ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° IP-1:
10 011 10 010 001 11 010 011 11 111 011 10 011 110 11 011 11 011 101 11 111
ΠΠ΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎ Π²ΡΠΎΡΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ: 2 345 678
ΠΠ»ΡΡ 64 Π±ΠΈΡΠ°. Π‘ Π±ΠΈΡΠ°ΠΌΠΈ ΡΠ΅ΡΠ½ΠΎΡΡΠΈ:
110 011 11 000 11 001 100 10 000 111 1 010 011 10 110 001 11 011 101 1 110 001
ΠΊΠ»ΡΡ (56). ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π Π‘1:
1 101 100 11 010 100 10 100 001 11 110 001 10 010 100 11 000 100 1 100 011
**********************ΠΠ΅Π¨ΠΠ€Π ΠΠΠΠΠΠ**********************
ΠΠ°ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° IP:
10 011 011 10 111 001 10 100 000 1 001 100 1 111 1 001 000 11 001 011 11 011
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π±Π»ΠΎΠΊΠ°. ΠΠΎΠ½Π΅ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° IP-1:
10 010 010 11 011 011 1 11 011 110 110 011 10 101 011 11 000 11 001 001
Π¨ΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ΅ΡΡΠΈΠΌ ΠΊΠ»ΡΡΠΎΠΌ: 3 456 789
ΠΠ»ΡΡ 64 Π±ΠΈΡΠ°. Π‘ Π±ΠΈΡΠ°ΠΌΠΈ ΡΠ΅ΡΠ½ΠΎΡΡΠΈ:
110 011 10 011 010 1 100 10 100 110 1 100 011 10 111 000 11 100 001 1 110 010
ΠΊΠ»ΡΡ (56). ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π Π‘1:
1 101 010 11 010 000 11 111 001 10 101 001 10 110 000 11 000 010 1 100 011 11 011
**********************Π¨ΠΠ€Π ΠΠΠΠΠΠ**********************
ΠΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅:
10 010 010 11 011 011 1 11 011 110 110 011 10 101 011 11 000 11 001 001
ΠΠ°ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° IP:
10 001 010 1 011 011 1 000 10 110 110 10 101 011 110 000 11 101 010 111 011
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π±Π»ΠΎΠΊΠ°. ΠΠΎΠ½Π΅ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° IP-1:
11 001 111 11 110 100 11 011 000 1 101 1 100 110 101 111 110 111 1 100 101
ΠΠ°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅: ΠΡΠ¨f/7e
ΠΡΡ ΠΎΠ΄Π½ΠΎΠ΅ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅: ΠΡΠ¨f/7e
ΠΠ»ΡΡ: 1 234 567
ΠΡΠΎΡΠΎΠΉ ΠΊΠ»ΡΡ: 2 345 678
Π’ΡΠ΅ΡΠΈΠΉ ΠΊΠ»ΡΡ: 3 456 789
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ Π±Π»ΠΎΠΊ Π±ΠΈΡ… ΠΠ»ΠΎΠΊ № 0:
11 110 011 101 111 11 011 10 110 000 1 100 110 11 110 100 11 101 100 10 100 110
ΠΠ΅ΡΠ΅Π²Π΅ΡΠ½ΡΡΡΠ΅ Π±ΠΈΡΡ Π² Π±Π»ΠΎΠΊΠ΅…:
11 001 111 11 110 100 11 011 000 1 101 1 100 110 101 111 110 111 1 100 101
ΠΠ»ΡΡ ΠΈΠ· 56 Π±ΠΈΡ:
11 001__1 001 101__110__1 010 011__110 001__1 011 100__1 110 000__111 001__
ΠΠ»ΡΡ ΠΈΠ· 64 Π±ΠΈΡΠ°, ΠΏΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π±ΠΈΡ ΡΠ΅ΡΠ½ΠΎΡΡΠΈ:
110 011 10 011 010 1 100 10 100 110 1 100 011 10 111 000 11 100 001 1 110 010
**********************ΠΠ΅Π¨ΠΠ€Π ΠΠΠΠΠΠ**********************
ΠΠ°ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° IP:
10 010 111 1 000 110 11 111 011 11 101 001 111 11 110 010 101 101 1 110 001
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π±Π»ΠΎΠΊΠ°. ΠΠΎΠ½Π΅ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° IP-1:
10 010 010 11 011 011 1 11 011 110 110 011 10 101 011 11 000 11 001 001
Π¨ΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠΎΡΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ: 2 345 678
ΠΠ»ΡΡ 64 Π±ΠΈΡΠ°. Π‘ Π±ΠΈΡΠ°ΠΌΠΈ ΡΠ΅ΡΠ½ΠΎΡΡΠΈ:
110 011 11 000 11 001 100 10 000 111 1 010 011 10 110 001 11 011 101 1 110 001
ΠΊΠ»ΡΡ (56). ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π Π‘1:
1 101 100 11 010 100 10 100 001 11 110 001 10 010 100 11 000 100 1 100 011
**********************Π¨ΠΠ€Π ΠΠΠΠΠΠ**********************
ΠΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅:
10 010 010 11 011 011 1 11 011 110 110 011 10 101 011 11 000 11 001 001
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π±Π»ΠΎΠΊΠ°. ΠΠΎΠ½Π΅ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° IP-1:
10 011 10 010 001 11 010 011 11 111 011 10 011 110 11 011 11 011 101 11 111
ΠΠ΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ΅ΡΡΠΈΠΌ ΠΊΠ»ΡΡΠΎΠΌ: 3 456 789
ΠΠ»ΡΡ 64 Π±ΠΈΡΠ°. Π‘ Π±ΠΈΡΠ°ΠΌΠΈ ΡΠ΅ΡΠ½ΠΎΡΡΠΈ:
110 000 10 011 001 10 001 101 1 100 110 1 000 010 10 101 001 11 011 000 1 101 111
ΠΊΠ»ΡΡ (56). ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π Π‘1:
1 100 110 11 011 000 10 101 001 1 001 001 10 001 000 11 001 110 1 100 011
**********************ΠΠ΅Π¨ΠΠ€Π ΠΠΠΠΠΠ**********************
ΠΠ°ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° IP:
1 001 100 11 111 111 11 010 000 11 101 111 1 011 110 1 000 11 111 000 10 111 101
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π±Π»ΠΎΠΊΠ°. ΠΠΎΠ½Π΅ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° IP-1:
1 010 000 1 101 001 1 101 110 1 100 001 1 100 101 1 110 110 0 0
ΠΠΎΡΠ»Π΅ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅: Pinaev
5. Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
5.1 ΠΠ±ΡΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ — ΠΠΈΠ½Π°Π΅Π² ΠΠ°Π²Π΅Π» Π‘Π΅ΡΠ³Π΅Π΅Π²ΠΈΡ, ΡΡΡΠ΄Π΅Π½Ρ Π³ΡΡΠΏΠΏΡ 23Π.
ΠΠ°ΡΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ — ΠΈΡΠ½Ρ 2013 Π³ΠΎΠ΄Π°.
Π―Π·ΡΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ — Π‘#.
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ° — ΡΠ°ΠΉΠ»: DES.exe.
5.2 ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ DES. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΡ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΡΠΌΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° DES: DES ECB, DES CBC, Triple DES EEE3, Triple DES EEE2, Triple DES EDE3, Triple DES EDE2.
5.3 ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π°
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° — Windows XP, Vista, 7, 8
Π‘Π²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π½Π° ΠΆΠ΅ΡΡΠΊΠΎΠΌ Π΄ΠΈΡΠΊΠ΅ — Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 50 ΠΠ±
ΠΠ±ΡΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ — 128 ΠΠ± ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΡΠΎΡΠ΅ΡΡΠΎΡ Intel Core i3 ΠΈ Π²ΡΡΠ΅ ΠΠΈΠ΄Π΅ΠΎΠΊΠ°ΡΡΠ° 512 ΠΠ±
5.4 ΠΡ ΠΎΠ΄Π½ΡΠ΅ ΠΈ Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅
ΠΡ ΠΎΠ΄Π½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ²Π»ΡΡΡΡΡ ΡΠΈΡΡΡΠ΅ΠΌΠΎΠ΅ ΠΈ Π΄Π΅ΡΠΈΡΡΡΠ΅ΠΌΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π΄Π°ΡΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ.
ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ — Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΈ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.
5.5 ΠΠ²ΠΎΠ΄ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ΅Π΄ΡΡΠ²Π°
ΠΠ°Π½Π½ΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½Π° ΠΠ. ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π²Π° ΡΠ°Π·Π° ΡΠ΅Π»ΠΊΠ½ΡΡΡ Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ DES.exe.
ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΡΠΊΡΠΎΠ΅ΡΡΡ ΠΎΠΊΠ½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (ΡΠΈΡΡΠ½ΠΎΠΊ 7).
Π ΠΈΡΡΠ½ΠΎΠΊ 7. ΠΠ»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
5.5.1 ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ
ΠΠ° Π³Π»Π°Π²Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ ΡΠ΅ΠΊΠ±ΠΎΠΊΡΡ Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΡΠΈΠΏΠ° ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΠΏΠΎΠ»Ρ Π²Π²ΠΎΠ΄Π° ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΊΠ»ΡΡΠ΅ΠΉ, Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π²Π΅ΠΊΡΠΎΡΠ°. Π ΡΠΎΠΎΡΠ²Π΅ΡΡΠ²ΡΡΡΠΈΡ ΠΏΠΎΠ»ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ (Π΄Π΅)ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Ρ Π΅ΡΠ»ΠΈ Π±ΡΠ΄ΡΡ Π½Π°ΠΆΠ°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ. ΠΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΎΠΊΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° (Π΄Π΅)ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ.
5.5.2 ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ΅Π΄ΡΡΠ²Π°
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ:
Β· Π¨ΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ DES ECB (ΡΠΈΡΡΠ½ΠΎΠΊ 8);
Β· Π¨ΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ DES CBC (ΡΠΈΡΡΠ½ΠΎΠΊ 9);
Β· Π¨ΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Triple DES EEE3 (ΡΠΈΡΡΠ½ΠΎΠΊ 10);
Β· Π¨ΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Triple DES EDE3 (ΡΠΈΡΡΠ½ΠΎΠΊ 11);
Β· Π¨ΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Triple DES EEE2 (ΡΠΈΡΡΠ½ΠΎΠΊ 12);
Β· Π¨ΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Triple DES EDE2 (ΡΠΈΡΡΠ½ΠΎΠΊ 13);
Π ΠΈΡΡΠ½ΠΎΠΊ 8. Π¨ΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ DES ECB
Π ΠΈΡΡΠ½ΠΎΠΊ 9. Π¨ΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ DES CBC
Π ΠΈΡΡΠ½ΠΎΠΊ 10. Π¨ΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Triple DES EEE3
Π ΠΈΡΡΠ½ΠΎΠΊ 11. Π¨ΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Triple DES EDE3
Π ΠΈΡΡΠ½ΠΎΠΊ 12. Π¨ΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Triple DES EEE2
Π ΠΈΡΡΠ½ΠΎΠΊ 13. Π¨ΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Triple DES EDE2
ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡ
6. ΠΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
using System;
using System. Collections;
using System.Collections.Generic;
using System. ComponentModel;
using System. Data;
using System. Drawing;
using System. Linq;
using System. Text;
using System.Windows.Forms;
namespace DES
{
public partial class Form1: Form
{
public Form1()
{
InitializeComponent ();
}
public string bufff;
public string bufff1;
public string IshSoobshen;
public byte[] T;
public bool Shifr;
public BitArray btIsh = new BitArray (64);
public BitArray[] btTransp;
public BitArray bt1;
public BitArray bt2;
public BitArray btKluch1;
public BitArray btKluch2;
public BitArray[] KLUCHI;
public BitArray[] KLUCHIPREDVORITELNII;
public BitArray kluchC0;
public BitArray kluchD0;
public BitArray kluchC1;
public BitArray kluchD1;
public BitArray[] L0;
public BitArray[] H0;
public BitArray[] L1;
public BitArray[] H1;
public BitArray[] LPart;
public BitArray[] HPart;
public BitArray[] HHH;
public BitArray[] b2b3b4b5;
public BitArray[] b1b6;
public BitArray[] TTT;
public BitArray HShtrih;
public BitArray Funk;
public BitArray[] ItogPredv;
public BitArray[] Itog;
public BitArray[] CBCItog;
public int[] NStr;
public int[] NStolb;
public int[,] UzelZam;
public int buf;
public int buf2;
public BitArray buf3;
public bool steck;
public bool kluch;
public bool vector;
public BitArray Vekt;
public bool EEE2;
public bool EEE3;
public bool EDE2;
public bool EDE3;
public int[] IP = {58,50,42,34,26,18,10,2,
60,52,44,36,28,20,12,4,
62,54,46,38,30,22,14,6,
64,56,48,40,32,24,16,8,
57,49,41,33,25,17,9,1,
59,51,43,35,27,19,11,3,
61,53,45,37,29,21,13,5,
63,55,47,39,31,23,15,7};
public int[] IP1 = {40,8,48,16,56,24,64,32,
39,7,47,15,55,23,63,31,
38,6,46,14,54,22,62,30,
37,5,45,13,53,21,61,29,
36,4,44,12,52,20,60,28,
35,3,43,11,51,19,59,27,
34,2,42,10,50,18,58,26,
33,1,41,9,49,17,57,25};
public int[] E = {32,1,2,3,4,5,
4,5,6,7,8,9,
8,9,10,11,12,13,
12,13,14,15,16,17,
16,17,18,19,20,21,
20,21,22,23,24,25,
24,25,26,27,28,29,
28,29,30,31,32,1};
public int[] P = {16,7,20,21,29,12,28,17,
1,15,23,26,5,18,31,10,
2,8,24,14,32,27,3,9,
19,13,30,6,22,11,4,25};
public int[] S10 = { 14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9, 0, 7 };
public int[] S11 = { 0, 15, 7, 4, 14, 2, 13, 1, 10, 6, 12, 11, 9, 5, 3, 8 };
public int[] S12 = { 4, 1, 14, 8, 13, 6, 2, 11, 15, 12, 9, 7, 3, 10, 5, 0 };
public int[] S13 = { 15, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3, 14, 10, 0, 6, 13 };
public int[] S20 = { 15, 1, 8, 14, 6, 11, 3, 4, 9, 7, 2, 13, 12, 0, 5, 10 };
public int[] S21 = { 3, 13, 4, 7, 15, 2, 8, 14, 12, 0, 1, 10, 6, 9, 11, 5 };
public int[] S22 = { 0, 14, 7, 11, 10, 4, 13, 1, 5, 8, 12, 6, 9, 3, 2, 15 };
public int[] S23 = { 13, 8, 10, 1, 3, 15, 4, 2, 11, 6, 7, 12, 0, 5, 14, 9 };
public int[] S30 = { 10, 0, 9, 14, 6, 3, 15, 5, 1, 13, 12, 7, 11, 4, 2, 8 };
public int[] S31 = { 13, 7, 0, 9, 3, 4, 6, 10, 2, 8, 5, 14, 12, 11, 15, 1 };
public int[] S32 = { 13, 6, 4, 9, 8, 15, 3, 0, 11, 1, 2, 12, 5, 10, 14, 7 };
public int[] S33 = { 1, 10, 13, 0, 6, 9, 8, 7, 4, 15, 14, 3, 11, 5, 2, 12 };
public int[] S40 = { 7, 13, 14, 3, 0, 6, 9, 10, 1, 2, 8, 5, 11, 12, 4, 15 };
public int[] S41 = { 13, 8, 11, 5, 6, 15, 0, 3, 4, 7, 2, 12, 1, 10, 14, 9 };
public int[] S42 = { 10, 6, 9, 0, 12, 11, 7, 13, 15, 1, 3, 14, 5, 2, 8, 4 };
public int[] S43 = { 3, 15, 0, 6, 10, 1, 13, 8, 9, 4, 5, 11, 12, 7, 2, 14 };
public int[] S50 = { 2, 12, 4, 1, 7, 10, 11, 6, 8, 5, 3, 15, 13, 0, 14, 9 };
public int[] S51 = { 14, 11, 2, 12, 4, 7, 13, 1, 5, 0, 15, 10, 3, 9, 8, 6 };
public int[] S52 = { 4, 2, 1, 11, 10, 13, 7, 8, 15, 9, 12, 5, 6, 3, 0, 14 };
public int[] S53 = { 11, 8, 12, 7, 1, 14, 2, 13, 6, 15, 0, 9, 10, 4, 5, 3 };
public int[] S60 = { 12, 1, 10, 15, 9, 2, 6, 8, 0, 13, 3, 4, 14, 7, 5, 11 };
public int[] S61 = { 10, 15, 4, 2, 7, 12, 9, 5, 6, 1, 13, 14, 0, 11, 3, 8 };
public int[] S62 = { 9, 14, 15, 5, 2, 8, 12, 3, 7, 0, 4, 10, 1, 13, 11, 6 };
public int[] S63 = { 4, 3, 2, 12, 9, 5, 15, 10, 11, 14, 1, 7, 6, 0, 8, 13 };
public int[] S70 = { 4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1 };
public int[] S71 = { 13, 0, 11, 7, 4, 9, 1, 10, 14, 3, 5, 12, 2, 15, 8, 6 };
public int[] S72 = { 1, 4, 11, 13, 12, 3, 7, 14, 10, 15, 6, 8, 0, 5, 9, 2 };
public int[] S73 = { 6, 11, 13, 8, 1, 4, 10, 7, 9, 5, 0, 15, 14, 2, 3, 12 };
public int[] S80 = { 13, 2, 8, 4, 6, 15, 11, 1, 10, 9, 3, 14, 5, 0, 12, 7 };
public int[] S81 = { 1, 15, 13, 8, 10, 3, 7, 4, 12, 5, 6, 11, 0, 14, 9, 2 };
public int[] S82 = { 7, 11, 4, 1, 9, 12, 14, 2, 0, 6, 10, 13, 15, 3, 5, 8 };
public int[] S83 = { 2, 1, 14, 7, 4, 10, 8, 13, 15, 12, 9, 0, 3, 5, 6, 11 };
public int[] PC1 = { 57,49,41,33,25,17,9,
1,58,50,42,34,26,18,
10,2,59,51,43,35,27,
19,11,3,60,52,44,36,
63,55,47,39,31,23,15,
7,62,54,46,38,30,22,
14,6,61,53,45,37,29,
21,13,5,28,20,12,4};
public int[] PC2 = { 14,17,11,24,1,5,
3,28,15,6,21,10,
23,19,12,4,26,8,
16,7,27,20,13,2,
41,52,31,37,47,55,
30,40,51,45,33,48,
44,49,39,56,34,53,
46,42,50,36,29,32};
public int[] SDVIGG = { 1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1};
//Π²Π΅ΠΊΡΠΎΡ Π² Π±ΠΈΡΡ
public void VectorToByte ()
{
buf = 0;
vector = false;
if (IshSoobshen.Length == 8)
{
//ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠΌ Π² Π±Π°ΠΉΡΡ
vector = true;
byte[] T = Encoding.Default.GetBytes (IshSoobshen);
//Π² Π±ΠΈΡΡ
Vekt = new BitArray (T);
////ΠΏΠ΅ΡΠ΅Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π΅ΠΌ
for (int g = 0; g < Vekt. Length / 8; g++)
{
buf = 0;
for (int i = 0; i < 4; i++)
{
steck = Vekt[i + (g * 8)];
Vekt[i + (g * 8)] = Vekt[i + (g * 8) + 7 — buf];
Vekt[i + (g * 8) + 7 — buf] = steck;
buf += 2;
}
}
}
else
{
MessageBox.Show («ΠΠ΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ Π²Π΅ΠΊΡΠΎΡ»);
kluch = false;
}
}
//ΠΊΠ»ΡΡ Π² Π±ΠΈΡΡ
public void KeyToByte ()
{
buf = 0;
kluch = false;
if (IshSoobshen.Length == 7)
{
//ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠΌ Π² Π±Π°ΠΉΡΡ
kluch = true;
byte[] T = Encoding.Default.GetBytes (IshSoobshen);
//Π² Π±ΠΈΡΡ
btKluch1 = new BitArray (T);
////ΠΏΠ΅ΡΠ΅Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π΅ΠΌ
for (int g = 0; g < btKluch1. Length / 8; g++)
{
buf = 0;
for (int i = 0; i < 4; i++)
{
steck = btKluch1[i + (g * 8)];
btKluch1[i + (g * 8)] = btKluch1[i + (g * 8) + 7 — buf];
btKluch1[i + (g * 8) + 7 — buf] = steck;
buf += 2;
}
}
}
else
{
MessageBox.Show («ΠΠ΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ»);
kluch = false;
}
}
//ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² Π±ΠΈΡΡ
public void MessToByte ()
{
buf = 0;
//ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠΌ Π² Π±Π°ΠΉΡΡ
byte[] T = Encoding.Default.GetBytes (IshSoobshen);
//Π² Π±ΠΈΡΡ
bt2 = new BitArray (T);
if (bt2.Length % 64≠ 0)
{//ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΠΊΡΠ°ΡΠ½ΠΎΡΡΡ 64 Π±ΠΈΡ
bt1 = new BitArray (bt2.Length + (64 — bt2. Length % 64));
for (int y = 0; y < bt2. Length; y++)
{
bt1[y] = bt2[y];
}
}
else
{
bt1 = new BitArray (bt2.Length);
for (int y = 0; y < bt2. Length; y++)
{
bt1[y] = bt2[y];
}
}
//ΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ Π±ΠΈΡΡ Π² Π±Π»ΠΎΠΊΠ°Ρ
for (int g = 0; g < bt1. Length / 8; g++)
{
buf = 0;
for (int i = 0; i < 4; i++)
{
steck = bt1[i + (g * 8)];
bt1[i + (g * 8)] = bt1[i + (g * 8) + 7 — buf];
bt1[i + (g * 8) + 7 — buf] = steck;
buf += 2;
}
}
}
//Π΄Π΅Π»ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π±Π»ΠΎΠΊΠΈ ΠΏΠΎ 8 Π±ΠΈΡ
public void CutForBlock ()
{
//ΠΊΠΎΠ»-Π²ΠΎ Π±Π»ΠΎΠΊΠΎΠ²
buf = bt1. Length / 64;
//Π΄Π΅Π»ΠΈΠΌ Π½Π° ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ
btTransp = new BitArray[buf];
for (int i = 0; i < buf; i++)
{
btTransp[i] = new BitArray (64);
}
buf2 = 0;
for (int g = 0; g < buf; g++)
{
for (int h = g * 64; h < (g + 1) * 64; h++)
{
if (g == 0)
{
btTransp[buf2][h] = bt1[IP[h] - 1];
}
else
{
btTransp[buf2][h — g * 64] = bt1[IP[h — g * 64] - 1 + g * 64];
}
}
buf2++;
}
}
//Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠ»ΡΡ Π±ΠΈΡΠΎΠΌ ΡΠ΅ΡΠ½ΠΎΡΡΠΈ
public void KeyTo64()
{
// Π±ΠΈΡ ΡΠ΅ΡΠ½ΠΎΡΡΠΈ
buf = 0;
buf2 = 0;
buf3 = new BitArray (8);
for (int y = 0; y < 8; y++)
{
for (int u = 0; u < 7; u++)
{
if (btKluch1[y * 7 + u] == true)
{
buf++;
}
}
if ((buf % 2 == 0) || (buf == 0))
{
buf3[buf2] = false;
}
else { buf3[buf2] = true; }
buf = 0;
buf2++;
}
//Π·Π°Π½ΠΎΡΠΈΠΌ Π±ΠΈΡ ΡΠ΅ΡΠ½ΠΎΡΡΠΈ Π² ΠΊΠ»ΡΡ
buf = 0;
buf2 = 0;
btKluch2 = new BitArray (64);
for (int k = 0; k < 64; k++)
{
if ((k == 7) || (k == 15) || (k == 23) || (k == 31) || (k == 39) || (k == 47) || (k == 55) || (k == 63))
{
btKluch2[k] = buf3[buf2];
buf2++;
}
else
{
btKluch2[k] = btKluch1[buf];
buf++;
}
}
}
//ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π° 2 ΡΠ°ΡΡΠΈ
public void OneToTwo ()
{
H0 = new BitArray[17];
L0 = new BitArray[17];
H1 = new BitArray[17];
L1 = new BitArray[17];
HHH = new BitArray[8];
TTT = new BitArray[8];
b1b6 = new BitArray[8];
Itog = new BitArray[btTransp.Length];
ItogPredv = new BitArray[btTransp.Length];
b2b3b4b5 = new BitArray[8];
NStolb = new int[8];
NStr = new int[8];
UzelZam = new int[16, 8];
HShtrih = new BitArray (32);
Funk = new BitArray (32);
for (int gh = 0; gh < btTransp. Length; gh++)
{
Itog[gh] = new BitArray (64);
ItogPredv[gh] = new BitArray (64);
}
for (int qwe = 0; qwe < 8; qwe++)
{
TTT[qwe] = new BitArray (4);
HHH[qwe] = new BitArray (6);
b1b6[qwe] = new BitArray (2);
b2b3b4b5[qwe] = new BitArray (4);
}
HPart = new BitArray[btTransp.Length];
LPart = new BitArray[btTransp.Length];
for (int i = 0; i < 17; i++)
{
H0[i] = new BitArray (32);
L0[i] = new BitArray (32);
H1[i] = new BitArray (48);
L1[i] = new BitArray (48);
}
for (int e = 0; e < btTransp. Length; e++)
{
HPart[e] = new BitArray (32);
LPart[e] = new BitArray (32);
}
for (int s = 0; s < btTransp. Length; s++)
{
for (int d = 0; d < 32; d++)
{
HPart[s][d] = btTransp[s][d];
LPart[s][d] = btTransp[s][d + 32];
}
}
}
//Π²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ print Π²ΡΠ²ΠΎΠ΄ΡΡ ΡΠ°Π³ΠΈ Π½Π° ΡΠΊΡΠ°Π½
public void Print1()
{
buf = 0;
bufff = «» ;
for (int k = 0; k < bt1. Length / 64; k++)
{
listBox1.Items.Add ((k + 1) + «ΠΉ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ Π±Π»ΠΎΠΊ Π±ΠΈΡ:»);
for (int y = 0; y < 64; y++)
{
if ((y == 7) || (y == 15) || (y == 23) || (y == 31) || (y == 39) || (y == 47) || (y == 55) || (y == 63))
{
bufff += (bt1[64 * k + y]? 1: 0).ToString ();
bufff += ««;
}
else
{
bufff += (bt1[64 * k + y]? 1: 0).ToString ();
}
}
listBox1.Items.Add (bufff);
bufff = «» ;
}
}
public void Print2()
{
bufff = «» ;
for (int k = 0; k < btTransp. Length; k++)
{
listBox1.Items.Add ((k + 1) + «ΠΉ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ Π±Π»ΠΎΠΊ Π±ΠΈΡ:»);
for (int y = 0; y < 64; y++)
{
if ((y == 7) || (y == 15) || (y == 23) || (y == 31) || (y == 39) || (y == 47) || (y == 55) || (y == 63))
{
bufff += (btTransp[k][y]? 1: 0).ToString ();
bufff += ««;
}
else
{
bufff += (btTransp[k][y]? 1: 0).ToString ();
}
}
listBox1.Items.Add (bufff);
bufff = «» ;
}
}
public void Print3()
{
bufff = «» ;
buf = 0;
listBox1.Items.Add («ΠΠ»ΡΡ ΠΈΠ· 56 Π±ΠΈΡ:»);
for (int y = 0; y < 64; y++)
{
if ((y == 7) || (y == 15) || (y == 23) || (y == 31) || (y == 39) || (y == 47) || (y == 55) || (y == 63))
{
bufff += «* «;
buf++;
}
else
{
bufff += (btKluch1[y — buf]? 1: 0).ToString ();
}
}
listBox1.Items.Add (bufff);
bufff = «» ;
}
public void Print4()
{
bufff = «» ;
listBox1.Items.Add («ΠΠ»ΡΡ ΠΈΠ· 64 Π±ΠΈΡ:»);
for (int y = 0; y < 64; y++)
{
if ((y == 7) || (y == 15) || (y == 23) || (y == 31) || (y == 39) || (y == 47) || (y == 55) || (y == 63))
{
bufff += (btKluch2[y]? 1: 0).ToString ();
bufff += ««;
}
else
{
bufff += (btKluch2[y]? 1: 0).ToString ();
}
}
listBox1.Items.Add (bufff);
bufff = «» ;
}
//ΠΌΠ΅ΡΠΎΠ΄ ECB
public void ECB ()
{
//ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠΌ ΠΊΠ»ΡΡ Π² Π±ΠΈΡΡ
IshSoobshen = textBox4. Text;
KeyToByte ();
if (Shifr == true)
{
IshSoobshen = textBox2. Text;
}
else
{
IshSoobshen = textBox3. Text;
}
if ((IshSoobshen≠ «»)&&(kluch==true))
{
//ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² Π±ΠΈΡΡ
MessToByte ();
buf = bt1. Length / 64;
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡΠ°Π½
listBox1.Items.Add («—————————————-ΠΠΠΠΠΠ’ΠΠΠΠ—————————————-»);
listBox1.Items.Add («Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Ρ » + buf + «64 Π±ΠΈΡΠ½ΡΡ Π±Π»ΠΎΠΊΠΎΠ²»);
Print1();
//Π΄Π΅Π»ΠΈΠΌ Π½Π° Π±Π»ΠΎΠΊΠΈ
CutForBlock ();
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡΠ°Π½
Print2();
////Π²ΡΠ²ΠΎΠ΄ Π½Π° ΡΠΊΡΠ°Π½ ΠΊΠ»ΡΡ
Print3();
//Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠ»ΡΡ Π΄ΠΎ 64 Π±ΠΈΡ
KeyTo64();
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΊΠ»ΡΡ 64 Π±ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½
Print4();
//ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
KEYS ();
//ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ΠΊΠΈ
OneToTwo ();
//ΡΡΠ½ΠΊΡΠΈΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ
FUNKCIY ();
}
else
{
if (kluch == true)
{
MessageBox.Show («ΠΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ!»);
}
}
}
//Π°Π»Π³ΠΎΡΠΈΡΠΌ DES-CBC
public void CBC ()
{
//ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠΌ ΠΊΠ»ΡΡ Π² Π±ΠΈΡΡ
IshSoobshen = textBox4. Text;
KeyToByte ();
//ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠΌ Π²Π΅ΠΊΡΠΎΡ Π² Π±ΠΈΡΡ
IshSoobshen = textBox6. Text;
VectorToByte ();
if (Shifr == true)
{
IshSoobshen = textBox2. Text;
}
else
{
IshSoobshen = textBox3. Text;
}
if ((IshSoobshen≠ «») && (kluch == true)&&(vector==true))
{
//ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² Π±ΠΈΡΡ
MessToByte ();
buf = bt1. Length / 64;
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡΠ°Π½
listBox1.Items.Add («—————————————-ΠΠΠΠΠΠ’ΠΠΠΠ—————————————-»);
listBox1.Items.Add («Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Ρ » + buf + «64 Π±ΠΈΡΠ½ΡΡ Π±Π»ΠΎΠΊΠΎΠ²»);
Print1();
//Π΄Π΅Π»ΠΈΠΌ Π½Π° Π±Π»ΠΎΠΊΠΈ
CutForBlock ();
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡΠ°Π½
Print2();
////Π²ΡΠ²ΠΎΠ΄ Π½Π° ΡΠΊΡΠ°Π½ ΠΊΠ»ΡΡ
Print3();
//Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠ»ΡΡ Π΄ΠΎ 64 Π±ΠΈΡ
KeyTo64();
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΊΠ»ΡΡ 64 Π±ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½
Print4();
//ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
KEYS ();
//XOR Ρ Π²Π΅ΠΊΡΠΎΡΠΎΠΌ
if (Shifr == true)
{
btTransp[0]. Xor (Vekt);
}
//ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ΠΊΠΈ
OneToTwo ();
//ΡΡΠ½ΠΊΡΠΈΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ
FUNKCIY ();
}
else
{
if ((kluch == true)&&(vector==true))
{
MessageBox.Show («ΠΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ!»);
}
}
}
//EEE
public void EEE ()
{
if (((EEE3==true)&&(textBox4.Text.Length == 7) && (textBox7.Text.Length == 7) && (textBox8.Text.Length == 7))||((EEE2==true)&&(textBox4.Text.Length == 7) && (textBox7.Text.Length == 7)))
{
if (Shifr == true)
{
//ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠΌ ΠΊΠ»ΡΡ Π² Π±ΠΈΡΡ
IshSoobshen = textBox4. Text;
KeyToByte ();
IshSoobshen = textBox2. Text;
if ((IshSoobshen≠ «») && (kluch == true))
{
//ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² Π±ΠΈΡΡ
MessToByte ();
buf = bt1. Length / 64;
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡΠ°Π½
listBox1.Items.Add («—————————————-ΠΠΠΠΠΠ’ΠΠΠΠ—————————————-»);
listBox1.Items.Add («Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Ρ » + buf + «64 Π±ΠΈΡΠ½ΡΡ Π±Π»ΠΎΠΊΠΎΠ²»);
Print1();
//Π΄Π΅Π»ΠΈΠΌ Π½Π° Π±Π»ΠΎΠΊΠΈ
CutForBlock ();
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡΠ°Π½
Print2();
////Π²ΡΠ²ΠΎΠ΄ Π½Π° ΡΠΊΡΠ°Π½ ΠΊΠ»ΡΡ
Print3();
//Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠ»ΡΡ Π΄ΠΎ 64 Π±ΠΈΡ
KeyTo64();
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΊΠ»ΡΡ 64 Π±ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½
Print4();
//ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
KEYS ();
//ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ΠΊΠΈ
OneToTwo ();
//ΡΡΠ½ΠΊΡΠΈΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ
FUNKCIY ();
IshSoobshen = textBox7. Text;
KeyToByte ();
IshSoobshen = textBox3. Text;
textBox3.Clear ();
//ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² Π±ΠΈΡΡ
MessToByte ();
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡΠ°Π½
listBox1.Items.Add (««);
Print1();
//Π΄Π΅Π»ΠΈΠΌ Π½Π° Π±Π»ΠΎΠΊΠΈ
CutForBlock ();
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡΠ°Π½
Print2();
////Π²ΡΠ²ΠΎΠ΄ Π½Π° ΡΠΊΡΠ°Π½ ΠΊΠ»ΡΡ
Print3();
//Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠ»ΡΡ Π΄ΠΎ 64 Π±ΠΈΡ
KeyTo64();
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΊΠ»ΡΡ 64 Π±ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½
Print4();
//ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
KEYS ();
//ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ΠΊΠΈ
OneToTwo ();
//ΡΡΠ½ΠΊΡΠΈΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ
FUNKCIY ();
if (EEE3 == true)
{
IshSoobshen = textBox8. Text;
}
if (EEE2 == true)
{
IshSoobshen = textBox4. Text;
}
KeyToByte ();
IshSoobshen = textBox3. Text;
textBox3.Clear ();
//ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² Π±ΠΈΡΡ
MessToByte ();
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡΠ°Π½
listBox1.Items.Add (««);
Print1();
//Π΄Π΅Π»ΠΈΠΌ Π½Π° Π±Π»ΠΎΠΊΠΈ
CutForBlock ();
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡΠ°Π½
Print2();
////Π²ΡΠ²ΠΎΠ΄ Π½Π° ΡΠΊΡΠ°Π½ ΠΊΠ»ΡΡ
Print3();
//Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠ»ΡΡ Π΄ΠΎ 64 Π±ΠΈΡ
KeyTo64();
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΊΠ»ΡΡ 64 Π±ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½
Print4();
//ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
KEYS ();
//ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ΠΊΠΈ
OneToTwo ();
//ΡΡΠ½ΠΊΡΠΈΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ
FUNKCIY ();
}
else
{
if (kluch == true)
{
MessageBox.Show («ΠΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ!»);
}
}
}
else
{
//ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠΌ ΠΊΠ»ΡΡ Π² Π±ΠΈΡΡ
if (EEE3 == true)
{
IshSoobshen = textBox8. Text;
}
if (EEE2 == true)
{
IshSoobshen = textBox4. Text;
}
KeyToByte ();
IshSoobshen = textBox3. Text;
if ((IshSoobshen≠ «») && (kluch == true))
{
//ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² Π±ΠΈΡΡ
MessToByte ();
buf = bt1. Length / 64;
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡΠ°Π½
listBox1.Items.Add («—————————————-ΠΠΠΠΠΠ’ΠΠΠΠ—————————————-»);
listBox1.Items.Add («Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Ρ » + buf + «64 Π±ΠΈΡΠ½ΡΡ Π±Π»ΠΎΠΊΠΎΠ²»);
Print1();
//Π΄Π΅Π»ΠΈΠΌ Π½Π° Π±Π»ΠΎΠΊΠΈ
CutForBlock ();
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡΠ°Π½
Print2();
////Π²ΡΠ²ΠΎΠ΄ Π½Π° ΡΠΊΡΠ°Π½ ΠΊΠ»ΡΡ
Print3();
//Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠ»ΡΡ Π΄ΠΎ 64 Π±ΠΈΡ
KeyTo64();
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΊΠ»ΡΡ 64 Π±ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½
Print4();
//ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
KEYS ();
//ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ΠΊΠΈ
OneToTwo ();
//ΡΡΠ½ΠΊΡΠΈΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ
FUNKCIY ();
IshSoobshen = textBox7. Text;
KeyToByte ();
IshSoobshen = textBox5. Text;
textBox5.Clear ();
//ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² Π±ΠΈΡΡ
MessToByte ();
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡΠ°Π½
listBox1.Items.Add (««);
Print1();
//Π΄Π΅Π»ΠΈΠΌ Π½Π° Π±Π»ΠΎΠΊΠΈ
CutForBlock ();
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡΠ°Π½
Print2();
////Π²ΡΠ²ΠΎΠ΄ Π½Π° ΡΠΊΡΠ°Π½ ΠΊΠ»ΡΡ
Print3();
//Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠ»ΡΡ Π΄ΠΎ 64 Π±ΠΈΡ
KeyTo64();
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΊΠ»ΡΡ 64 Π±ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½
Print4();
//ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
KEYS ();
//ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ΠΊΠΈ
OneToTwo ();
//ΡΡΠ½ΠΊΡΠΈΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ
FUNKCIY ();
IshSoobshen = textBox4. Text;
KeyToByte ();
IshSoobshen = textBox5. Text;
textBox5.Clear ();
//ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² Π±ΠΈΡΡ
MessToByte ();
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡΠ°Π½
listBox1.Items.Add (««);
Print1();
//Π΄Π΅Π»ΠΈΠΌ Π½Π° Π±Π»ΠΎΠΊΠΈ
CutForBlock ();
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡΠ°Π½
Print2();
////Π²ΡΠ²ΠΎΠ΄ Π½Π° ΡΠΊΡΠ°Π½ ΠΊΠ»ΡΡ
Print3();
//Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠ»ΡΡ Π΄ΠΎ 64 Π±ΠΈΡ
KeyTo64();
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΊΠ»ΡΡ 64 Π±ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½
Print4();
//ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
KEYS ();
//ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ΠΊΠΈ
OneToTwo ();
//ΡΡΠ½ΠΊΡΠΈΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ
FUNKCIY ();
}
else
{
if (kluch == true)
{
MessageBox.Show («ΠΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ!»);
}
}
}
}
else
{
MessageBox.Show («ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΊΠ»ΡΡΠΈ. ΠΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ.»);
}
}
//EDE
public void EDE ()
{
if (((EDE3 == true) && (textBox4.Text.Length == 7) && (textBox7.Text.Length == 7) && (textBox8.Text.Length == 7)) || ((EDE2 == true) && (textBox4.Text.Length == 7) && (textBox7.Text.Length == 7)))
{
if (Shifr == true)
{
//ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠΌ ΠΊΠ»ΡΡ Π² Π±ΠΈΡΡ
IshSoobshen = textBox4. Text;
KeyToByte ();
IshSoobshen = textBox2. Text;
if ((IshSoobshen≠ «») && (kluch == true))
{
//ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² Π±ΠΈΡΡ
MessToByte ();
buf = bt1. Length / 64;
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡΠ°Π½
listBox1.Items.Add («—————————————-ΠΠΠΠΠΠ’ΠΠΠΠ—————————————-»);
listBox1.Items.Add («Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Ρ » + buf + «64 Π±ΠΈΡΠ½ΡΡ Π±Π»ΠΎΠΊΠΎΠ²»);
Print1();
//Π΄Π΅Π»ΠΈΠΌ Π½Π° Π±Π»ΠΎΠΊΠΈ
CutForBlock ();
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡΠ°Π½
Print2();
////Π²ΡΠ²ΠΎΠ΄ Π½Π° ΡΠΊΡΠ°Π½ ΠΊΠ»ΡΡ
Print3();
//Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠ»ΡΡ Π΄ΠΎ 64 Π±ΠΈΡ
KeyTo64();
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΊΠ»ΡΡ 64 Π±ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½
Print4();
//ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
KEYS ();
//ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ΠΊΠΈ
OneToTwo ();
//ΡΡΠ½ΠΊΡΠΈΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ
FUNKCIY ();
Shifr = false;
IshSoobshen = textBox7. Text;
KeyToByte ();
IshSoobshen = textBox3. Text;
textBox3.Clear ();
//ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² Π±ΠΈΡΡ
MessToByte ();
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡΠ°Π½
listBox1.Items.Add (««);
Print1();
//Π΄Π΅Π»ΠΈΠΌ Π½Π° Π±Π»ΠΎΠΊΠΈ
CutForBlock ();
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡΠ°Π½
Print2();
////Π²ΡΠ²ΠΎΠ΄ Π½Π° ΡΠΊΡΠ°Π½ ΠΊΠ»ΡΡ
Print3();
//Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠ»ΡΡ Π΄ΠΎ 64 Π±ΠΈΡ
KeyTo64();
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΊΠ»ΡΡ 64 Π±ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½
Print4();
//ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
KEYS ();
//ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ΠΊΠΈ
OneToTwo ();
//ΡΡΠ½ΠΊΡΠΈΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ
FUNKCIY ();
Shifr = true;
if (EDE3 == true)
{
IshSoobshen = textBox8. Text;
}
if (EDE2 == true)
{
IshSoobshen = textBox4. Text;
}
KeyToByte ();
IshSoobshen = textBox5. Text;
textBox5.Clear ();
//ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² Π±ΠΈΡΡ
MessToByte ();
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡΠ°Π½
listBox1.Items.Add (««);
Print1();
//Π΄Π΅Π»ΠΈΠΌ Π½Π° Π±Π»ΠΎΠΊΠΈ
CutForBlock ();
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡΠ°Π½
Print2();
////Π²ΡΠ²ΠΎΠ΄ Π½Π° ΡΠΊΡΠ°Π½ ΠΊΠ»ΡΡ
Print3();
//Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠ»ΡΡ Π΄ΠΎ 64 Π±ΠΈΡ
KeyTo64();
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΊΠ»ΡΡ 64 Π±ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½
Print4();
//ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
KEYS ();
//ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ΠΊΠΈ
OneToTwo ();
//ΡΡΠ½ΠΊΡΠΈΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ
FUNKCIY ();
}
else
{
if (kluch == true)
{
MessageBox.Show («ΠΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ!»);
}
}
}
else
{
//ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠΌ ΠΊΠ»ΡΡ Π² Π±ΠΈΡΡ
if (EDE3 == true)
{
IshSoobshen = textBox8. Text;
}
if (EDE2 == true)
{
IshSoobshen = textBox4. Text;
}
KeyToByte ();
IshSoobshen = textBox3. Text;
bufff1 = textBox3. Text;
if ((IshSoobshen≠ «») && (kluch == true))
{
//ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² Π±ΠΈΡΡ
MessToByte ();
buf = bt1. Length / 64;
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡΠ°Π½
listBox1.Items.Add («—————————————-ΠΠΠΠΠΠ’ΠΠΠΠ—————————————-»);
listBox1.Items.Add («Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Ρ » + buf + «64 Π±ΠΈΡΠ½ΡΡ Π±Π»ΠΎΠΊΠΎΠ²»);
Print1();
//Π΄Π΅Π»ΠΈΠΌ Π½Π° Π±Π»ΠΎΠΊΠΈ
CutForBlock ();
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡΠ°Π½
Print2();
////Π²ΡΠ²ΠΎΠ΄ Π½Π° ΡΠΊΡΠ°Π½ ΠΊΠ»ΡΡ
Print3();
//Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠ»ΡΡ Π΄ΠΎ 64 Π±ΠΈΡ
KeyTo64();
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΊΠ»ΡΡ 64 Π±ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½
Print4();
//ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
KEYS ();
//ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ΠΊΠΈ
OneToTwo ();
//ΡΡΠ½ΠΊΡΠΈΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ
FUNKCIY ();
Shifr = true;
IshSoobshen = textBox7. Text;
KeyToByte ();
IshSoobshen = textBox5. Text;
textBox5.Clear ();
textBox3.Clear ();
//ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² Π±ΠΈΡΡ
MessToByte ();
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡΠ°Π½
listBox1.Items.Add (««);
Print1();
//Π΄Π΅Π»ΠΈΠΌ Π½Π° Π±Π»ΠΎΠΊΠΈ
CutForBlock ();
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡΠ°Π½
Print2();
////Π²ΡΠ²ΠΎΠ΄ Π½Π° ΡΠΊΡΠ°Π½ ΠΊΠ»ΡΡ
Print3();
//Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠ»ΡΡ Π΄ΠΎ 64 Π±ΠΈΡ
KeyTo64();
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΊΠ»ΡΡ 64 Π±ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½
Print4();
//ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
KEYS ();
//ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ΠΊΠΈ
OneToTwo ();
//ΡΡΠ½ΠΊΡΠΈΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ
FUNKCIY ();
Shifr = false;
IshSoobshen = textBox4. Text;
KeyToByte ();
IshSoobshen = textBox3. Text;
textBox3.Clear ();
textBox3.Text = bufff1;
//ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² Π±ΠΈΡΡ
MessToByte ();
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡΠ°Π½
listBox1.Items.Add (««);
Print1();
//Π΄Π΅Π»ΠΈΠΌ Π½Π° Π±Π»ΠΎΠΊΠΈ
CutForBlock ();
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡΠ°Π½
Print2();
////Π²ΡΠ²ΠΎΠ΄ Π½Π° ΡΠΊΡΠ°Π½ ΠΊΠ»ΡΡ
Print3();
//Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠ»ΡΡ Π΄ΠΎ 64 Π±ΠΈΡ
KeyTo64();
//Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΊΠ»ΡΡ 64 Π±ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½
Print4();
//ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
KEYS ();
//ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ΠΊΠΈ
OneToTwo ();
//ΡΡΠ½ΠΊΡΠΈΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ
FUNKCIY ();
}
else
{
if (kluch == true)
{
MessageBox.Show («ΠΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ!»);
}
}
}
}
else
{
MessageBox.Show («ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΊΠ»ΡΡΠΈ. ΠΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ.»);
}
}
private void button1_Click (object sender, EventArgs e)
{
listBox1.Items.Clear ();
textBox3.Clear ();
textBox5.Clear ();
Shifr = true;
kluch = false;
vector = false;
EEE3 = false;
EEE2 = false;
EDE3 = false;
EDE2 = false;
if (radioButton1.Checked == true)
{
ECB ();
}
if (radioButton2.Checked == true)
{
CBC ();
}
if (radioButton3.Checked == true)
{
EEE3 = true;
EEE ();
}
if (radioButton4.Checked == true)
{
EDE3 = true;
EDE ();
}
if (radioButton5.Checked == true)
{
EEE2 = true;