Aes 128 rijndael ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΠΊΠ° ΠΎΠ½Π»Π°ΠΉΠ½: AES (Rijndael) — ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ online
AES (Rijndael) — ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ online
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ:
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
Advanced Encryption Standard (AES), ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΏΠΎΠ΄ ΡΠ²ΠΎΠΈΠΌ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Rijndael — ΡΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
, ΡΠΎΠ·Π΄Π°Π½Π½Π°Ρ Π½Π°ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ ΠΠ½ΡΡΠΈΡΡΡΠΎΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ² ΠΈ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Π‘Π¨Π (NIST) Π² 2001 Π³ΠΎΠ΄Ρ.
AES ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΡΠΈΡΡΠ° Rijndael, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠ³ΠΎ Π΄Π²ΡΠΌΡ ΠΠ΅Π»ΡΠ³ΠΈΠΉΡΠΊΠΈΠΌΠΈ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠ°ΠΌΠΈ, ΠΠΈΠ½ΡΠ΅Π½ΡΠΎΠΌ Π Π΅ΠΉΠΌΠ΅Π½ΠΎΠΌ ΠΈ ΠΠΆΠΎΠ°Π½ ΠΠ°ΠΉΠΌΠ΅Π½,
ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ»ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ NIST Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΎΡΠ±ΠΎΡΠ° AES. Rijndael — ΡΡΠΎ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ ΡΠΈΡΡΠΎΠ² Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈ Π±Π»ΠΎΠΊΠΎΠ².
ΠΠ»Ρ AES NIST Π²ΡΠ±ΡΠ°Π» ΡΡΠ΅Ρ ΡΠ»Π΅Π½ΠΎΠ² ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° Rijndael, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ Π±Π»ΠΎΠΊΠ° 128 Π±ΠΈΡ, Π½ΠΎ ΡΡΠΈ ΡΠ°Π·Π½ΡΡ Π΄Π»ΠΈΠ½Ρ ΠΊΠ»ΡΡΠ°: 128, 192 ΠΈ 256 Π±ΠΈΡ.
AES Π±ΡΠ» ΠΏΡΠΈΠ½ΡΡ ΠΏΡΠ°Π²ΠΈΡΠ΅Π»ΡΡΡΠ²ΠΎΠΌ Π‘Π¨Π ΠΈ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌ ΠΌΠΈΡΠ΅. ΠΠ½ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ Π‘ΡΠ°Π½Π΄Π°ΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
(des), ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π² 1977 Π³ΠΎΠ΄Ρ.
ΠΠ»Π³ΠΎΡΠΈΡΠΌ, ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌΡΠΉ AES, ΡΠ²Π»ΡΠ΅ΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠΌ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°, ΡΠΎ Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΊΠ»ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΠΊΠΈ Π΄Π°Π½Π½ΡΡ
.
AES Π²ΡΡΡΠΏΠΈΠ» Π² ΡΠΈΠ»Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ° ΡΠ΅Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠ°Π²ΠΈΡΠ΅Π»ΡΡΡΠ²Π° 26 ΠΌΠ°Ρ 2002 Π³ΠΎΠ΄Π° ΠΏΠΎΡΠ»Π΅ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΌΠΈΠ½ΠΈΡΡΡΠΎΠΌ ΡΠΎΡΠ³ΠΎΠ²Π»ΠΈ. AES Π²ΠΊΠ»ΡΡΠ΅Π½ Π² ΡΡΠ°Π½Π΄Π°ΡΡ ISO/IEC 18033-3.
AES Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ
ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΠΏΠ°ΠΊΠ΅ΡΠ°Ρ
ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΌ (ΠΈ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ) ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ ΡΠΈΡΡΠΎΠΌ, ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π½ΡΠΌ Π°Π³Π΅Π½ΡΡΡΠ²ΠΎΠΌ Π½Π°ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ (NSA)
Π΄Π»Ρ ΡΠ²Π΅ΡΡ
ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π² ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠΌ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ NSA (ΡΠΌ. Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ AES Π½ΠΈΠΆΠ΅).
Π Π΅ΡΡΡΡΡ:
ΠΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½ AES / Π₯Π°Π±Ρ
Π ΡΡΠΌ ΡΡΠ° ΡΡΠ°ΡΡΡ
ΠΠΎΠ»Π³ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Ρ ΡΡΠΈΡΠ°Π», ΡΡΠΎ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Ρ Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π²ΡΠΎΠ΄Π΅ AES ΠΈ MD5, ΡΡΡΡΠΎΠ΅Π½Ρ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΈ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΈΡ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ ΠΏΡΠΎΡΡΠΎ, Π΄Π°ΠΆΠ΅ ΠΈΠΌΠ΅Ρ ΠΏΠΎΠ΄ ΡΡΠΊΠΎΠΉ ΠΏΠΎΠ»Π½ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ. ΠΠ°ΠΏΡΡΠ°Π½Π½ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² Π½Π° ΡΠ°Π·Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΊΡΠ΅ΠΏΠ»ΡΠ»ΠΈ ΡΡΠΎ ΠΌΠ½Π΅Π½ΠΈΠ΅. ΠΠΎ Π½Π΅Π΄Π°Π²Π½ΠΎ Ρ ΠΌΠ΅Π½Ρ ΠΏΠΎΡΠ²ΠΈΠ»ΠΎΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ Ρ ΡΠ΅ΡΠΈΠ» ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² ΡΡΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°Ρ ΠΈ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΈΡ . ΠΠΊΠ°Π·Π°Π»ΠΎΡΡ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ ΡΡΡΡΠΎΠ΅Π½Ρ ΠΈ Π΄Π»Ρ ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ Π½Π°ΠΏΠΈΡΡ ΠΊΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ AES (ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·ΡΠ²Π°ΡΡ Rijndael) ΠΈ Π½Π°ΠΏΠΈΡΡ Π΅Π³ΠΎ Π½Π° JavaScript. ΠΠΎΡΠ΅ΠΌΡ Π½Π° JavaScript? Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΡΡΠΎΠΌ ΡΠ·ΡΠΊΠ΅, Π½ΡΠΆΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ Π±ΡΠ°ΡΠ·Π΅Ρ Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Ρ ΡΠΈΡΠ°Π΅ΡΠ΅ ΡΡΡ ΡΡΠ°ΡΡΡ. Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠΊΠ°ΠΆΠ΅ΠΌ, Π½Π° C, Π½ΡΠΆΠ΅Π½ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΈ Π½Π°ΠΉΠ΄ΡΡΡΡ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΌΠ°Π»ΠΎ ΠΆΠ΅Π»Π°ΡΡΠΈΡ , Π³ΠΎΡΠΎΠ²ΡΡ ΠΏΠΎΡΡΠ°ΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΊΠΎΠ΄Π° ΠΈΠ· ΠΊΠ°ΠΊΠΎΠΉ ΡΠΎ ΡΡΠ°ΡΡΠΈ. Π ΠΊΠΎΠ½ΡΠ΅ Π΅ΡΡΡ ΡΡΡΠ»ΠΊΠ° ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°ΡΠ°ΡΡ Π°ΡΡ ΠΈΠ² Ρ html ΡΡΡΠ°Π½ΠΈΡΠ΅ΠΉ ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ js ΡΠ°ΠΉΠ»Π°ΠΌΠΈ β ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ AES Π½Π° JavaScript.
ΠΠ°ΠΊ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ AES
ΠΡΠΎΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΠΎΠ΄ΠΈΠ½ 128-Π±ΠΈΡΠ½ΡΠΉ Π±Π»ΠΎΠΊ Π² Π΄ΡΡΠ³ΠΎΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ ΠΊΠΎΡΠΎΡΡΠΉ Π½ΡΠΆΠ΅Π½ Π΄Π»Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ. ΠΠ»Ρ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΠΊΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ 128-Π±ΠΈΡΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π²ΡΠΎΡΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ. ΠΡΠ³Π»ΡΠ΄ΠΈΡ ΡΡΠΎ ΡΠ°ΠΊ:
cipher = encrypt(block, key) // ΡΠΈΡΡΡΠ΅ΠΌ block Ρ ΠΏΠΎΠΌΠΎΡΡΡ key
block = decrypt(cipher, key) // ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΡΠ²Π°Π΅ΠΌ cipher Ρ ΠΏΠΎΠΌΠΎΡΡΡ key
Π Π°Π·ΠΌΠ΅Ρ Π±Π»ΠΎΠΊΠ° Π²ΡΠ΅Π³Π΄Π° ΡΠ°Π²Π΅Π½ 128 Π±ΠΈΡ. Π Π°Π·ΠΌΠ΅Ρ ΠΊΠ»ΡΡΠ° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ. Π§ΡΠΎΠ±Ρ Π·Π°ΡΠΈΡΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡ Π»ΡΠ±ΡΠΌ ΠΏΠ°ΡΠΎΠ»Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡΡΠΏΠΈΡΡ ΡΠ°ΠΊ:
- ΠΏΠΎΠ»ΡΡΠΈΡΡ Ρ Π΅Ρ ΠΎΡ ΠΏΠ°ΡΠΎΠ»Ρ
- ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Ρ Π΅Ρ Π² ΠΊΠ»ΡΡ ΠΏΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΌ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ΅ AES
- ΡΠ°Π·Π±ΠΈΡΡ ΡΠ΅ΠΊΡΡ Π½Π° Π±Π»ΠΎΠΊΠΈ ΠΏΠΎ 128 Π±ΠΈΡ
- Π·Π°ΡΠΈΡΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π±Π»ΠΎΠΊ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ cipher
ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΊ:
hash = md5(password) // MD5 Ρ
Π΅Ρ ΠΈΠΌΠ΅Π΅Ρ Π΄Π»ΠΈΠ½Ρ 128 Π±ΠΈΡ
key = keyexpansion(hash) // ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΠΌ Ρ
Π΅Ρ Π² ΠΊΠ»ΡΡ
blocks = split(text, 16) // ΡΠ°Π·Π±ΠΈΡΡ ΡΠ΅ΠΊΡΡ Π½Π° Π±Π»ΠΎΠΊΠΈ ΠΏΠΎ 16 Π±Π°ΠΉΡ
for (i = 0; i < blocks.length; i++)
cipher[i] = encrypt(blocks[i], key)
Π§ΡΠΎΠ±Ρ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ² Π±Π»ΠΎΠΊΠΎΠ² cipher Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ Π±Π»ΠΎΠΊΡ decrypt:
hash = md5(password)
key = keyexpansion(hash)
for (i = 0; i < cipher.length; i++)
blocks[i] = decrypt(cipher[i], key)
text = merge(blocks) // ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π²ΡΠ΅ Π±Π»ΠΎΠΊΠΈ Π² ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π΄Π»ΠΈΠ½Π° ΡΠ΅ΠΊΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ ΠΊΡΠ°ΡΠ½Π° 128 Π±ΠΈΡΠ°ΠΌ. Π ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ΅ΠΊΡΡ Π½ΡΠ»ΡΠΌΠΈ Π΄ΠΎ Π½ΡΠΆΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ, Π° Π² Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±Π°ΠΉΡ Ρ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°. Π€ΡΠ½ΠΊΡΠΈΠΈ aes.encrypt ΠΈ aes.decrypt Π² ΡΠ°ΠΉΠ»Π΅ aes.js Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄.
ΠΠΎΠ»Π΅ GF(28)
AES Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ΅ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ GF(28). Π§ΡΠΎΠ±Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ AES Π½Π° JavaScript Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π·Π½Π°ΡΡ, ΡΡΠΎ ΡΡΠΎ Π·Π° ΠΏΠΎΠ»Π΅, Π½ΠΎ Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΡΡΡ AES, ΠΏΡΠΎΡΡΠΈΡΠ΅ ΡΡΠΎΡ ΡΠ°Π·Π΄Π΅Π».
ΠΠΎΠ»Π΅ GF(28) ΡΡΠΎ ΡΠΈΡΠ»Π° 0..255 Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ ΠΎΡΠΎΠ±ΠΎΠ΅ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΎΡΠΎΠ±ΠΎΠ΅ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠΎΠ·ΠΌΡΠΌ ΠΊΠ°ΠΊΠΎΠ΅ Π½ΠΈΠ±ΡΠ΄Ρ ΡΠΈΡΠ»ΠΎ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ Π΅Π³ΠΎ Π² Π²ΠΈΠ΄Π΅ Π²ΠΎΡΡΠΌΠΈ Π±ΠΈΡΠΎΠ²: a = a7a6a5a4a3a2a1a0. Π’ΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ ΡΠΈΡΠ»ΠΎ b. Π‘Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ a ΠΈ b ΡΡΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½Π°Ρ ΠΏΠΎΠ±ΠΈΡΠΎΠ²Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ xor:
a + b = a xor b
Π£ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΅ΡΡΡ ΠΏΡΠΎΡΡΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°:
a + a = 0
-a = 0 - a = a
a - b = a + (-b) = a + b
Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠ»ΠΎΠΆΠ½Π΅Π΅. ΠΠ°ΠΏΠΈΡΠ΅ΠΌ ΠΌΠ½ΠΎΠ³ΠΎΡΠ»Π΅Π½Ρ Ρ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠ°ΠΌΠΈ ΠΈΠ· Π±ΠΈΡΠΎΠ² ΡΡΠΈΡ ΡΠΈΡΠ΅Π»:
p = a7x7 + a6x6 + a5x5 + a4x4 + a3x3 + a2x2 + a1x + a0
q = b7x7 + b6x6 + b5x5 + b4x4 + b3x3 + b2x2 + b1x + b0
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ½ΠΎΠΆΠΈΠΌ ΡΡΠΈ Π΄Π²Π° ΠΌΠ½ΠΎΠ³ΠΎΡΠ»Π΅Π½Π° ΠΈ Π½Π°ΠΉΠ΄ΡΠΌ ΠΎΡΡΠ°ΡΠΎΠΊ ΠΎΡ Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π° m:
m = x8 + x4 + x3 + x + 1
r = pq mod (m)
ΠΠΎΡΠ΅ΠΌΡ Π²ΡΠ±ΡΠ°Π½ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊΠΎΠΉ m? Π£ ΡΡΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΡΠ»Π΅Π½Π° Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π²Π° Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ-ΠΌΠ½ΠΎΠ³ΠΎΡΠ»Π΅Π½Π° Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½ Π΄Π΅Π»ΠΈΡΡΡ Π±Π΅Π· ΠΎΡΡΠ°ΡΠΊΠ°: Π΅Π΄ΠΈΠ½ΠΈΡΠ° ΠΈ ΠΎΠ½ ΡΠ°ΠΌ. ΠΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ Ρ ΠΏΡΠΎΡΡΡΠΌΠΈ ΡΠΈΡΠ»Π°ΠΌΠΈ, ΠΌΠ½ΠΎΠ³ΠΎΡΠ»Π΅Π½ m Β«ΠΏΡΠΎΡΡΠΎΠΉΒ». ΠΠ°Ρ ΠΎΠ΄ΠΈΡΡ ΠΎΡΡΠ°ΡΠΎΠΊ ΠΎΡ Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ Π΄Π»Ρ ΠΎΠ±ΡΡΠ½ΡΡ ΡΠΈΡΠ΅Π»: Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΌΠ΅ΡΡ ΡΠΌΠ½ΠΎΠΆΠ°ΡΡ, ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ ΠΈ Π²ΡΡΠΈΡΠ°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠ»Π΅Π½Ρ, ΠΏΡΠΈΡΡΠΌ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π²ΡΡΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡ ΠΏΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ GF(28), Ρ.Π΅. ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π²ΡΡΠΈΡΠ°Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΡΠ»Π΅Π½ΠΎΠ² ΡΡΠΎ xor ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ°ΡΠΎΠΉ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠΎΠ². ΠΠΎΡ Π΄Π²Π° ΠΏΡΠΈΠΌΠ΅ΡΠ°:
x3 + x2 + 1 mod (x3 + 1) = x2 // Π½ΡΠΆΠ½ΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΎΡΠ½ΡΡΡ x3+1
x3 + x2 + 1 mod (x2 + 1) = (x3 + x2 + 1) - (x + 1)(x2 + 1) = -x
ΠΠ½ΠΎΠ³ΠΎΡΠ»Π΅Π½ r ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ Π² Π²ΠΈΠ΄Π΅
r = r7x7 + r6x6 + r5x5 + r4x4 + r3x3 + r2x2 + r1x + r0
ΠΠ³ΠΎ 8 ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠΎΠ² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ 8-Π±ΠΈΡΠΎΠ²ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΈΠ· ΠΏΠΎΠ»Ρ GF(28) ΠΈ ΡΡΠΎ ΡΠΈΡΠ»ΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ aβ’b. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅Π»ΡΠ·Ρ Π½Π°ΠΉΡΠΈ ΠΏΠ°ΡΠΎΠΉ ΠΏΡΠΎΡΡΡΡ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΉ ΠΌΠ½ΠΎΠ³ΠΎΡΠ»Π΅Π½ Π² ΠΏΠΎΠ»Π΅ GF(28) ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²Π΅ΡΡΠΈ ΠΊ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΡΠ»Π΅Π½ x, Π° ΡΠΌΠ½ΠΎΠΆΠΈΡΡ Π½Π° x ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΡΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ, ΠΎ ΡΡΠΌ ΠΏΠΎΠΉΠ΄ΡΡ ΡΠ΅ΡΡ Π½ΠΈΠΆΠ΅.
ΠΠ»Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠ»Π΅Π½ΠΎΠ² Π² GF(28) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ 16-ΡΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ
m = x8 + x4 + x3 + x + 1 = 100011011 = 0x011b = {01}{1b}
Π£ΠΌΠ½ΠΎΠΆΠΈΡΡ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΡΠ»Π΅Π½ x = {02} Π² ΠΏΠΎΠ»Π΅ GF(28) ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅:
xp = x(a7x7 + a6x6 + a5x5 + a4x4 + a3x3 + a2x2 + a1x + a0) =
a7x8 + a6x7 + a5x6 + a4x5 + a3x4 + a2x3 + a1x<2 + a0x
p = a7a6a5a4a3a2a1a0
xp = a7a6a5a4a3a2a1a00 // ΡΡΠΎ ΡΠ΄Π²ΠΈΠ³ Π²Π»Π΅Π²ΠΎ Π½Π° ΠΎΠ΄ΠΈΠ½ Π±ΠΈΡ
Π’Π΅ΠΏΠ΅ΡΡ Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΎΡΡΠ°ΡΠΎΠΊ ΠΎΡ Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π° m. ΠΡΠ»ΠΈ Π±ΠΈΡ a7 = 1, ΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π²ΡΡΠ΅ΡΡΡ m. ΠΡΠ»ΠΈ a7 = 0 ΡΠΎ Π²ΡΡΠΈΡΠ°ΡΡ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π½ΡΠΆΠ½ΠΎ. ΠΡΠ°ΠΊ:
r = xp mod (m) = xp - m Π΅ΡΠ»ΠΈ a7 = 1
r = xp mod (m) = xp Π΅ΡΠ»ΠΈ a7 = 0
Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° x ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ:
gf.xtime = function(b)
{
var highbit = b & 0x80
var shl = (b << 1) & 0xff
return highbit == 0 ? shl : shl ^ 0x1b
}
ΠΠ½Π°Ρ ΠΊΠ°ΠΊ ΡΠΌΠ½ΠΎΠΆΠ°ΡΡ Π½Π° x ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠ½ΠΎΠΆΠΈΡΡ Π½Π° Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΠΌΠ½ΠΎΠ³ΠΎΡΠ»Π΅Π½. ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π½Π°ΠΉΠ΄ΡΠΌ aβ’b Π³Π΄Π΅ a = {3c}, b = {a1}:
b = {a1} = 10100001 = {80} + {20} + {01}
aβ’b = aβ’{80} + aβ’{20} + aβ’{01} = aβ’x7 + aβ’x5 + a =
aβ’{02}β’{02}β’{02}β’{02}β’{02}β’{02}β’{02} + aβ’{02}β’{02}β’{02}β’{02}β’{02} + a =
{29} + {c1} + {3c} = {d4}
ΠΡΡΠ°Π»Π°ΡΡ ΠΎΠ΄Π½Π° ΠΏΡΠΎΡΡΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π² ΠΏΠΎΠ»Π΅ GF(28). Π£ Π»ΡΠ±ΠΎΠ³ΠΎ Π±Π°ΠΉΡΠ° b, ΠΊΡΠΎΠΌΠ΅ Π½ΡΠ»Ρ, Π΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ Π±Π°ΠΉΡ a = b-1 ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ aβ’b = {01}. ΠΡΠ΅ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠΎΠ»Π΅ΠΌ β ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° x, ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π²ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΡ Π±Π°ΠΉΡΠΎΠ² ΠΈ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ β Ρ ΡΠΎΠ±ΡΠ°Π» Π² ΠΌΠ°Π»Π΅Π½ΡΠΊΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ gf Π½Π° JavaScript.
Π’Π°Π±Π»ΠΈΡΠ° SBox
ΠΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ 256-Π±Π°ΠΉΡΡΠΉ ΠΌΠ°ΡΡΠΈΠ² ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π·Π°ΠΌΠ΅Π½Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Π°ΠΉΡΠ° Π΄ΡΡΠ³ΠΈΠΌ. ΠΠ΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΊΠ°ΠΊ ΠΎΠ½Π° ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π² ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΌΠ°ΡΡΠΈΠ². Π§ΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ ΡΠ΅ΠΌΡ ΡΠ°Π²Π΅Π½ ΡΠ»Π΅ΠΌΠ΅Π½Ρ SBox[b] Π½ΡΠΆΠ½ΠΎ ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ:
- Π½Π°ΠΉΡΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ Π±Π°ΠΉΡ ΠΊ b Π² ΠΏΠΎΠ»Π΅ GF(28) (Π½ΠΎΠ»Ρ ΠΎΡΡΠ°Π²ΠΈΡΡ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ)
- ΡΠΌΠ½ΠΎΠΆΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠΎΡΡΠΎΡΡΠΈΠΉ ΠΈΠ· Π²ΠΎΡΡΠΌΠΈ Π±ΠΈΡΠΎΠ² Π½Π° ΠΌΠ°ΡΡΠΈΡΡ 8Γ8 ΠΈΠ· 64 Π±ΠΈΡΠΎΠ²
- Π΄ΠΎΠ±Π°Π²ΠΈΡΡ {63}
Π ΡΡΠΌΠΌΠ΅ ΡΡΠΈ ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π΄Π°ΡΡ Π°ΡΠΈΠ½Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅:
ΠΠ΅ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΡΡΡΠΎΠ΅Π½Π° ΡΡΠ° ΠΌΠ°ΡΡΠΈΡΠ° ΠΈΠ· Π±ΠΈΡΠΎΠ². ΠΠ»Ρ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΠΈΡΠΎΠ² Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Β«andΒ», Π΄Π»Ρ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ β Β«xorΒ». ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
r0 = b0 + b4 + b5 + b6 + b7 + 1
Π€ΡΠ½ΠΊΡΠΈΡ sbox Ρ Π½Π°ΠΏΠΈΡΠ°Π» ΡΠ°ΠΊ:
aes.sbox = function(b)
{
var m = 0xf8
var r = 0
var q = gf.inv(b) || 0
for (var i = 0; i < 8; i++)
{
r = (r << 1) | bits.xorbits(q & m)
m = (m >> 1) | ((m & 1) << 7)
}
return r ^ 0x63
}
ΠΠΎΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΡΠ°Π±Π»ΠΈΡΠ° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
63 7c 77 7b f2 6b 6f c5 30 01 67 2b fe d7 ab 76
ca 82 c9 7d fa 59 47 f0 ad d4 a2 af 9c a4 72 c0
b7 fd 93 26 36 3f f7 cc 34 a5 e5 f1 71 d8 31 15
04 c7 23 c3 18 96 05 9a 07 12 80 e2 eb 27 b2 75
09 83 2c 1a 1b 6e 5a a0 52 3b d6 b3 29 e3 2f 84
53 d1 00 ed 20 fc b1 5b 6a cb be 39 4a 4c 58 cf
d0 ef aa fb 43 4d 33 85 45 f9 02 7f 50 3c 9f a8
51 a3 40 8f 92 9d 38 f5 bc b6 da 21 10 ff f3 d2
cd 0c 13 ec 5f 97 44 17 c4 a7 7e 3d 64 5d 19 73
60 81 4f dc 22 2a 90 88 46 ee b8 14 de 5e 0b db
e0 32 3a 0a 49 06 24 5c c2 d3 ac 62 91 95 e4 79
e7 c8 37 6d 8d d5 4e a9 6c 56 f4 ea 65 7a ae 08
ba 78 25 2e 1c a6 b4 c6 e8 dd 74 1f 4b bd 8b 8a
70 3e b5 66 48 03 f6 0e 61 35 57 b9 86 c1 1d 9e
e1 f8 98 11 69 d9 8e 94 9b 1e 87 e9 ce 55 28 df
8c a1 89 0d bf e6 42 68 41 99 2d 0f b0 54 bb 16
ΠΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π² ΠΊΠΎΠ΄, ΠΊΠ°ΠΊ ΡΠ°ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π° ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΠΈΡΠ»ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ sbox ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π°Π΄ΠΎΠ±Π½ΠΎΡΡΠΈ.
Π’Π°Π±Π»ΠΈΡΠ° InvSBox
ΠΠ»Ρ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ° AES ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ°Π±Π»ΠΈΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ ΠΊ SBox. Π’Π°Π±Π»ΠΈΡΠ° InvSBox ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΠΎΠ΄Π½ΠΈΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ: InvSBox[SBox[i]] = i. InvSBox Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
52 09 6a d5 30 36 a5 38 bf 40 a3 9e 81 f3 d7 fb
7c e3 39 82 9b 2f ff 87 34 8e 43 44 c4 de e9 cb
54 7b 94 32 a6 c2 23 3d ee 4c 95 0b 42 fa c3 4e
08 2e a1 66 28 d9 24 b2 76 5b a2 49 6d 8b d1 25
72 f8 f6 64 86 68 98 16 d4 a4 5c cc 5d 65 b6 92
6c 70 48 50 fd ed b9 da 5e 15 46 57 a7 8d 9d 84
90 d8 ab 00 8c bc d3 0a f7 e4 58 05 b8 b3 45 06
d0 2c 1e 8f ca 3f 0f 02 c1 af bd 03 01 13 8a 6b
3a 91 11 41 4f 67 dc ea 97 f2 cf ce f0 b4 e6 73
96 ac 74 22 e7 ad 35 85 e2 f9 37 e8 1c 75 df 6e
47 f1 1a 71 1d 29 c5 89 6f b7 62 0e aa 18 be 1b
fc 56 3e 4b c6 d2 79 20 9a db c0 fe 78 cd 5a f4
1f dd a8 33 88 07 c7 31 b1 12 10 59 27 80 ec 5f
60 51 7f a9 19 b5 4a 0d 2d e5 7a 9f 93 c9 9c ef
a0 e0 3b 4d ae 2a f5 b0 c8 eb bb 3c 83 53 99 61
17 2b 04 7e ba 77 d6 26 e1 69 14 63 55 21 0c 7d
ΠΠΈΠ΄Ρ AES
ΠΠ»Π³ΠΎΡΠΈΡΠΌ AES ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ Π±Π»ΠΎΠΊ Π΄Π»ΠΈΠ½ΠΎΠΉ 128 Π±ΠΈΡΠΎΠ² Π² Π΄ΡΡΠ³ΠΎΠΉ Π±Π»ΠΎΠΊ ΡΠΎΠΉ ΠΆΠ΅ Π΄Π»ΠΈΠ½Ρ. ΠΠ»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ΅ΠΉ w ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΠΎΠ΅ ΠΈΠ· ΠΊΠ»ΡΡΠ°. 128-Π±ΠΈΡΠ½ΡΠΉ Π±Π»ΠΎΠΊ Π² AES ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°ΡΡΠΈΡΡ 4ΓNb. Π‘ΡΠ°Π½Π΄Π°ΡΡ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Nb = 4, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π»ΠΈΠ½Π° Π±Π»ΠΎΠΊΠ° Π²ΡΠ΅Π³Π΄Π° 128 Π±ΠΈΡ, Ρ ΠΎΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π»ΡΠ±ΡΠΌ Nb. ΠΠ»ΠΈΠ½Π° ΠΊΠ»ΡΡΠ° ΡΠ°Π²Π½Π° 4Nk Π±Π°ΠΉΡ. ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π±Π»ΠΎΠΊΠ° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Nr ΡΠ°ΡΠ½Π΄ΠΎΠ² β ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ Π³ΡΡΠΏΠΏΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ 128-Π±ΠΈΡΠ½ΠΎΠΌΡ Π±Π»ΠΎΠΊΡ Π΄Π°Π½Π½ΡΡ . Π‘ΡΠ°Π½Π΄Π°ΡΡ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΡΡΠΈΡ ΡΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²:
Nk | Nb | Nr | |
AES-128 | 4 | 4 | 10 |
AES-192 | 6 | 4 | 12 |
AES-256 | 8 | 4 | 14 |
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ KeyExpansion
ΠΠ»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ° AES ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ Π½Π΅ ΠΏΠ°ΡΠΎΠ»Ρ ΠΈΠ»ΠΈ Ρ Π΅Ρ ΠΎΡ ΠΏΠ°ΡΠΎΠ»Ρ, Π° ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ΅ Β«ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ΅ΠΉΒ» ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΠΎΠ΅ ΠΈΠ· ΠΊΠ»ΡΡΠ°. ΠΡΠΎ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΠΊΠ°ΠΊ Nr + 1 ΠΌΠ°ΡΡΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° 4ΓNb. ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π΅Π»Π°Π΅Ρ Nr + 1 ΡΠ°Π³ΠΎΠ² ΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°Π³Π΅ ΠΎΠ½, ΠΏΠΎΠΌΠΈΠΌΠΎ Π΄ΡΡΠ³ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, Π±Π΅ΡΡΡ ΠΎΠ΄Π½Ρ ΠΌΠ°ΡΡΠΈΡΡ 4ΓNb ΠΈΠ· Β«ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΡΒ» ΠΈ ΠΏΠΎΡΠ»Π΅ΠΌΠ΅Π½ΡΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π΅Ρ ΠΊ Π±Π»ΠΎΠΊΡ Π΄Π°Π½Π½ΡΡ .
Π¨ΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½ΡΡ
ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π½Π° Π²Ρ ΠΎΠ΄ 128-Π±ΠΈΡΠ½ΡΠΉ Π±Π»ΠΎΠΊ Π΄Π°Π½Π½ΡΡ input ΠΈ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ΅ΠΉ w, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ KeyExpansion. 16-Π±Π°ΠΉΡΡΠΉ input ΠΎΠ½ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°ΡΡΠΈΡΡ s ΡΠ°Π·ΠΌΠ΅ΡΠ° 4ΓNb, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ AES, ΠΈ Π·Π°ΡΠ΅ΠΌ Nr ΡΠ°Π· ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΠΊ ΡΡΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΠ΅ 4 ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ. Π ΠΊΠΎΠ½ΡΠ΅ ΠΎΠ½ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΌΠ°ΡΡΠΈΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈ ΠΏΠΎΠ΄Π°ΡΡ Π΅Π³ΠΎ Π½Π° Π²ΡΡ ΠΎΠ΄ β ΡΡΠΎ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΉ Π±Π»ΠΎΠΊ. ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· ΡΠ΅ΡΡΡΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎΠ΅.
- AddRoundKey Π±Π΅ΡΡΡ ΠΈΠ· ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΎΠ΄Π½Ρ ΠΌΠ°ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° 4ΓNb ΠΈ ΠΏΠΎΡΠ»Π΅ΠΌΠ΅Π½ΡΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π΅Ρ ΠΊ ΠΌΠ°ΡΡΠΈΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. ΠΡΠ»ΠΈ Π΄Π²Π° ΡΠ°Π·Π° ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ AddRoundKey, ΡΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ΅ ΠΊ AddRoundKey ΡΡΠΎ ΠΎΠ½ΠΎ ΡΠ°ΠΌΠΎ.
- SubBytes Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΠ²ΡΡΡΠΈΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ ΡΠ°Π±Π»ΠΈΡΡ SBox: sij = SBox[sij]. ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ SubBytes ΠΎΠ±ΡΠ°ΡΠΈΠΌΠΎ. ΠΠ±ΡΠ°ΡΠ½ΠΎΠ΅ ΠΊ Π½Π΅ΠΌΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ InvSBox.
- ShiftRows ΡΠ΄Π²ΠΈΠ³Π°Π΅Ρ i-ΡΡ ΡΡΡΠΎΠΊΡ ΠΌΠ°ΡΡΠΈΡΡ s Π½Π° i ΠΏΠΎΠ·ΠΈΡΠΈΠΉ Π²Π»Π΅Π²ΠΎ, ΡΡΠΈΡΠ°Ρ i Ρ Π½ΡΠ»Ρ. ΠΠ±ΡΠ°ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ InvShiftRows ΡΠ΄Π²ΠΈΠ³Π°Π΅Ρ ΡΡΡΠΎΠΊΠΈ Π²ΠΏΡΠ°Π²ΠΎ.
- MixColumns ΡΠΌΠ½ΠΎΠΆΠ°Π΅Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΡΠΎΠ»Π±Π΅Ρ ΠΌΠ°ΡΡΠΈΡΡ s ΡΠ»Π΅Π²Π° Π½Π° ΠΎΡΠΎΠ±ΡΡ ΠΌΠ°ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° 4Γ4:
ΠΠ»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ [a b c d] = [{02} {03} {01} {01}]. ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΡΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ΅ ΠΊ MixColumns[{02} {03} {01} {01}] ΡΡΠΎ MixColumns[{0e} {0b} {0d} {09}].
Π‘Ρ Π΅ΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΠ°ΠΊ:
AddRoundKey(0)
for (var i = 1; i <= Nr - 1; i++)
{
SubBytes()
ShiftRows()
MixColumns([0x02, 003, 0x01, 0x01])
AddRoundKey(i)
}
SubBytes()
ShiftRows()
AddRoundKey(Nr)
Π Π°ΡΡΠΈΡΡΠΎΠ²ΠΊΠ°
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ, Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½ΡΡ AES ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΠΊ Π½Π΅ΠΌΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΠΌΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ. ΠΠ»Ρ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΠΊΠΈ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ
Π€ΡΠ½ΠΊΡΠΈΡ sbox ΠΈΠΌΠ΅Π΅Ρ Π²ΡΠ΅Π³ΠΎ 256 Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π²Ρ ΠΎΠ΄Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈ 256 Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π²ΡΡ ΠΎΠ΄Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. Π§ΡΠΎΠ±Ρ Π½Π΅ Π²ΡΡΠΈΡΠ»ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π· sbox Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°, Π½ΡΠΆΠ½ΠΎ ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ. ΠΠ° JavaScript ΡΡΠΎ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΌΠ΅Π½ΡΡ ΠΊΠΎΠ΄ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ ΡΠ°Π½Π΅Π΅. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ Π΄ΠΎΠΏΠΈΡΠ°ΡΡ Π½ΠΈΠΆΠ΅ Π²ΠΎΡ ΡΡΠΎ:
Function.prototype.cached = function()
{
var old = this
var cache = {}
return function(x)
{
if (cache[x] !== undefined)
return cache[x]
cache[x] = old(x)
return cache[x]
}
}
aes.sbox = aes.sbox.cached()
ΠΡΠΎΡ ΠΊΠΎΠ΄ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ sbox ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΠΊΠΎΡΠΎΡΠ°Ρ ΠΊΠ΅ΡΠΈΡΡΠ΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ sbox. Π’ΠΎΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π΄Π»Ρ Π»ΡΠ±ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ invsbox ΠΈ rcon. ΠΡΠΎΡ ΠΆΠ΅ ΠΏΡΠΈΡΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ gf.mul ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΌΠ½ΠΎΠΆΠ°Π΅Ρ Π΄Π²Π° Π±Π°ΠΉΡΠ° Π² ΠΏΠΎΠ»Π΅ GF(28), Π½ΠΎ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠ΅ΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π΅Π½ 256Γ256 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΡΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ.
Π‘ΡΡΠ»ΠΊΠΈ
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΊ AES Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ FIPS 197.
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ — ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ online
- ΠΠ΅Π· ΠΊΠ»ΡΡΠ°
- Π‘ΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠ΅
- ΠΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠ΅
- ΠΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅
Π ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΠΈ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ — ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΡΠΎΡΠΎΠ½Ρ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊ Π½Π΅ΠΌΡ Π΄ΠΎΡΡΡΠΏ, Π° ΡΠ΅, ΠΊΡΠΎ Π½Π΅ Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°Π½, Π½Π΅ ΠΌΠΎΠ³ΡΡ.
Π¨ΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΌΠΎ ΠΏΠΎ ΡΠ΅Π±Π΅ Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠΎΠΌΠ΅Ρ
ΠΈ, Π½ΠΎ ΠΎΡΡΠΈΡΠ°Π΅Ρ ΠΏΠΎΠ½ΡΡΠ½ΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠΌΡ ΠΏΠ΅ΡΠ΅Ρ
Π²Π°ΡΡΠΈΠΊΡ. Π ΡΡ
Π΅ΠΌΠ΅ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ΅ ΠΎΡΠΊΡΡΡΡΠΌ ΡΠ΅ΠΊΡΡΠΎΠΌ,
ΡΠΈΡΡΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ — ΡΠΈΡΡΠΎΠ²Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΡΠΈΡΠ°Π½ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΠΊΠ΅. ΠΠΎ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ ΡΡ
Π΅ΠΌΠ° ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ
ΠΏΡΠ΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΉ ΠΊΠ»ΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠΌ. Π Π°ΡΡΠΈΡΡΠΎΠ²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· ΠΊΠ»ΡΡΠ°, Π½ΠΎ Π΄Π»Ρ Ρ
ΠΎΡΠΎΡΠΎ ΠΏΡΠΎΠ΄ΡΠΌΠ°Π½Π½ΠΎΠΉ ΡΡ
Π΅ΠΌΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ΅Π±ΡΡΡΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅
ΡΠ΅ΡΡΡΡΡ ΠΈ Π½Π°Π²ΡΠΊΠΈ. ΠΠ²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π»Π΅Π³ΠΊΠΎ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»ΡΡΠ°, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Π΅ΠΌ ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»ΡΠΌ, Π½ΠΎ Π½Π΅ Π½Π΅Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ.
Π ΡΡ Π΅ΠΌΠ°Ρ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° ΠΊΠ»ΡΡΠΈ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ. Π‘ΠΎΠΎΠ±ΡΠ°ΡΡΠΈΠ΅ΡΡ ΡΡΠΎΡΠΎΠ½Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΊΠ»ΡΡ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ.
Π‘Ρ
Π΅ΠΌΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ ΠΊΠ»ΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΠ΅Ρ
, ΠΊΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΈ ΡΠΈΡΡΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»ΡΡΠ°ΡΡΠ°Ρ ΡΡΠΎΡΠΎΠ½Π° ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΊΠ»ΡΡΡ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΠΊΠΈ,
ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΈΡΠ°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. Π¨ΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ Π±ΡΠ»ΠΎ Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΎΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅ Π² 1973 Π³ΠΎΠ΄Ρ; Π΄ΠΎ ΡΡΠΎΠ³ΠΎ Π²ΡΠ΅ ΡΡ
Π΅ΠΌΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π±ΡΠ»ΠΈ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠΌΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈ
(ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΌΠΈ Π·Π°ΠΊΡΡΡΡΠΌΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈ).
ΠΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ AES ΠΈ RSA
ΠΠΎΡ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Boxcryptor
ΠΡ ΡΠΈΡΡΡΠ΅ΠΌ ΡΠ°ΠΉΠ»Ρ ΠΈ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΠΌ ΠΏΠΎΠ²ΡΡΠ΅Π½Π½ΡΡ Π·Π°ΡΠΈΡΡ ΠΎΡ ΡΠΏΠΈΠΎΠ½Π°ΠΆΠ° ΠΈ ΠΊΡΠ°ΠΆΠΈ Π΄Π°Π½Π½ΡΡ . ΠΠ»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ AES-256 ΠΈ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ RSA. ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΠΌ Π΄Π²Π° Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°.
Π¨ΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ AES-256
Advanced Encryption Standard (AES) — ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ, Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΡΠ΅Π³ΠΎΠ΄Π½Ρ. ΠΡΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎ, ΠΈ ΡΡΠΎ ΡΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ NSA ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² Ρ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ Β«Π‘ΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΎΒ». ΠΡΡΠΎΡΠΈΡ Π΅Π³ΠΎ ΡΡΠΏΠ΅Ρ Π° Π½Π°ΡΠ°Π»Π°ΡΡ Π² 1997 Π³ΠΎΠ΄Ρ, ΠΊΠΎΠ³Π΄Π° NIST (ΠΠ°ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΡΠΈΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ² ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ) ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎ Π½Π°ΡΠ°Π» ΠΈΡΠΊΠ°ΡΡ Π·Π°ΠΌΠ΅Π½Ρ ΡΡΠ°ΡΠ΅ΡΡΠ΅ΠΌΡ ΡΡΠ°Π½Π΄Π°ΡΡΡ DES. ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«RijndaelΒ», ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ Π±Π΅Π»ΡΠ³ΠΈΠΉΡΠΊΠΈΠΌΠΈ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠ°ΠΌΠΈ Daemen ΠΈ Rijmen, ΠΎΡΠ»ΠΈΡΠ°Π»ΡΡ ΠΏΠΎΠ²ΡΡΠ΅Π½Π½ΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡΡΡ.
ΠΠ½ Π²ΡΡΠ΅Π» Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ ΡΡΠ΅Π΄ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΎΠ² ΠΈ Π±ΡΠ» ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎ Π°Π½ΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ Π² 2001 Π³ΠΎΠ΄Ρ Π½ΠΎΠ²ΡΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ AES. ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°Ρ , ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°Ρ ΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡΡ , ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π° Π±Π»ΠΎΠΊΠ°Ρ Π΄Π°Π½Π½ΡΡ ΠΏΠΎ 16 Π±Π°ΠΉΡΠΎΠ², ΠΎΡΡΡΠ΄Π° ΡΠ΅ΡΠΌΠΈΠ½ blockcipher. ΠΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ Β«ΡΠ°ΡΠ½Π΄Π°ΠΌΠΈΒ». ΠΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΡΠ½Π΄Π° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ ΡΠ°ΡΠ½Π΄Π° ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΈΠ· ΠΊΠ»ΡΡΠ° ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ. ΠΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡΡ Π½Π° Π±Π»ΠΎΡΠ½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠ΅ AES, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ Π±ΠΈΡΠ° Π»ΠΈΠ±ΠΎ Π² ΠΊΠ»ΡΡΠ΅, Π»ΠΈΠ±ΠΎ Π² Π±Π»ΠΎΠΊΠ΅ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π΄ΡΡΠ³ΠΎΠΌΡ Π±Π»ΠΎΠΊΡ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° — ΡΠ²Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΠΌΠΈ ΡΠΈΡΡΠ°ΠΌΠΈ. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ AES-128, AES-192 ΠΈ AES-256 — ΡΡΠΎ Π΄Π»ΠΈΠ½Π° ΠΊΠ»ΡΡΠ°: 128, 192 ΠΈΠ»ΠΈ 256 Π±ΠΈΡ — Π²ΡΠ΅ ΡΠ°Π΄ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ 56-Π±ΠΈΡΠ½ΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ DES. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠ»Π»ΡΡΡΡΠ°ΡΠΈΠΈ: Π²Π·Π»ΠΎΠΌ 128-ΡΠ°Π·ΡΡΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° AES Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠΏΠ΅ΡΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° Π·Π°ΠΉΠΌΠ΅Ρ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠ΅ΠΌ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΡΠΉ Π²ΠΎΠ·ΡΠ°ΡΡ Π²ΡΠ΅Π»Π΅Π½Π½ΠΎΠΉ. Π Boxcryptor Π΄Π°ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ 256-Π±ΠΈΡΠ½ΡΠ΅ ΠΊΠ»ΡΡΠΈ! ΠΠ° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ Π°ΡΠ°ΠΊΠΈ Π½Π° AES. ΠΠΎΡΡΠΎΠΌΡ AES ΠΎΡΡΠ°Π΅ΡΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΠΏΡΠ°Π²ΠΈΡΠ΅Π»ΡΡΡΠ², Π±Π°Π½ΠΊΠΎΠ² ΠΈ ΡΠΈΡΡΠ΅ΠΌ Π²ΡΡΠΎΠΊΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΠΈΡΡ.
Π¨ΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ RSA
RSA — ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΌΡΡ ΡΡΠΏΠ΅ΡΠ½ΡΡ , Π°ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΡΠ΅Π³ΠΎΠ΄Π½Ρ. ΠΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Π½ΡΠΉ Π² 1973 Π±ΡΠΈΡΠ°Π½ΡΠΊΠΈΠΌ ΡΠ°Π·Π²Π΅Π΄ΡΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΌ Π°Π³Π΅Π½ΡΡΡΠ²ΠΎΠΌ GCHQ, ΠΎΠ½ ΠΏΠΎΠ»ΡΡΠΈΠ» ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Β«ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΎΒ». ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ±Π»Π°Π³ΠΎΠ΄Π°ΡΠΈΡΡ ΠΊΡΠΈΠΏΡΠΎΠ»ΠΎΠ³ΠΎΠ² Rivest, Shamir ΠΈ Adleman Π·Π° Π΅Π³ΠΎ Π³ΡΠ°ΠΆΠ΄Π°Π½ΡΠΊΠΎΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΠΎΡΠΊΡΡΡΠΈΠ΅ Π² 1977 Π³ΠΎΠ΄Ρ. ΠΠ½ΠΈ Π½Π°ΡΠΊΠ½ΡΠ»ΠΈΡΡ Π½Π° Π½Π΅Π³ΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠΏΡΡΠΊΠΈ ΡΠ΅ΡΠΈΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½Ρ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ, RSA ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Π΄Π²ΡΠΌΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈ: ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΌ ΠΈ ΡΠ°ΡΡΠ½ΡΠΌ. ΠΠ±Π° ΠΎΠ½ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡΡ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½ΠΈΡ , ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΅Π³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡΡΠ΅ΠΉ ΡΡΠΎΡΠΎΠ½ΠΎΠΉ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ°ΡΡΠ½ΡΠΉ ΠΊΠ»ΡΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ ΠΈΠ· ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°, ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ.
ΠΡΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠ΅ ΠΊΡΠΈΠΏΡΠΎΡΠΈΡΡΠ΅ΠΌΡ Π² ΡΠΈΡΠΎΠΊΠΎΠΌ ΡΠΏΠ΅ΠΊΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΠΈΡΡΠΎΠ²ΡΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ. Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° ΠΊ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»ΡΠ΅ΡΡΡ ΠΎΡΠΏΠ΅ΡΠ°ΡΠΎΠΊ ΠΏΠ°Π»ΡΡΠ°, Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ RSA, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΊΠ°ΠΊ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ, ΡΠ°ΠΊ ΠΈ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°. ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ RSA ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π³Π»Π°Π²Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π½Π° ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ ΡΠ°ΠΊΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅Π»ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°. Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½ΠΎ, ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠΈΡΠ»ΠΎ. ΠΡΠΈ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ Π΄ΠΎ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΠΊΠ»ΡΡΠ° ΠΈ Π΄Π΅Π»ΠΈΡΡΡ Ρ ΠΎΡΡΠ°ΡΠΊΠΎΠΌ Π½Π° ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄Π²ΡΡ ΠΏΡΠΎΡΡΡΡ ΡΠΈΡΠ΅Π». ΠΠΎΠ²ΡΠΎΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌ ΠΊΠ»ΡΡΠΎΠΌ, ΠΎΡΠΊΡΡΡΡΠΉ ΡΠ΅ΠΊΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ½ΠΎΠ²Π°. ΠΡΡΡΠΈΠΉ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠΏΠΎΡΠΎΠ± Π²Π·Π»ΠΎΠΌΠ°ΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠ°ΠΊΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΡΠΈ Π΄Π΅Π»Π΅Π½ΠΈΠΈ. Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΡΡΠΈ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠΈΡΠ΅Π», ΠΏΡΠ΅Π²ΡΡΠ°ΡΡΠΈΡ 768 Π±ΠΈΡ. ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΊΡΠΈΠΏΡΠΎΡΠΈΡΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΡ Π΄Π»ΠΈΠ½Ρ ΠΊΠ»ΡΡΠ° 3072 Π±ΠΈΡΠ°.
ΠΠ°ΠΊ Boxcryptor Π¨ΠΈΡΡΡΠ΅Ρ ΠΈ Π Π°ΡΡΠΈΡΡΠΎΠ²ΡΠ²Π°Π΅Ρ ΡΠ°ΠΉΠ»Ρ
Boxcryptor ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° Π°ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎΠΌ RSA ΠΈ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎΠΌ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠΈ AES. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°ΠΉΠ» ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ ΠΊΠ»ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠ°ΠΉΠ»Π°.
ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ AES ΠΈ Π΅Π³ΠΎ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΌΡ Π½Π° ΠΏΡΠΎΡΠ»ΠΎΠΉ Π½Π΅Π΄Π΅Π»Π΅ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π³ΠΎΡΠΎΠ²ΡΡΠΈΡ ΡΡ ΠΊ ΠΏΡΠΎΠ΄Π°ΠΆΠ΅ Π½ΠΎΠ²ΡΡ ΠΊΡΠΈΠΏΡΠΎΡΠ΅Π»Π΅ΡΠΎΠ½Π°Ρ X-Telecom Secure Mobile, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ AES-256, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π»ΡΠ΄ΠΈ ΡΡΠ°Π»ΠΈ Π·Π²ΠΎΠ½ΠΈΡΡ ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°ΡΡΡΡ, ΡΡΠΎ ΡΡΠΎ Π·Π° Π°Π»Π³ΠΎΡΠΈΡΠΌ AES, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ½ Π½Π°Π΄Π΅ΠΆΠ΅Π½ ΠΈ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ΅Ρ Π»ΠΈ ΠΎΠ½ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ.
ΠΠ»Π³ΠΎΡΠΈΡΠΌ Advanced Encryption Standard
Advanced Encryption Standard β ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π±Π»ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΡΠΈΠ½ΡΡΡΠΉ ΠΏΡΠ°Π²ΠΈΡΠ΅Π»ΡΡΡΠ²ΠΎΠΌ Π‘Π¨Π Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ° Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΊΠΎΠ½ΠΊΡΡΡΠ°, ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΈΠ½ΡΡΠΈΡΡΡΠ°ΠΌΠΈ. ΠΠ½ Π·Π°ΠΌΠ΅Π½ΠΈΠ» ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΉ Data Encryption Standard, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°Π» ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΡΡΠ»ΠΎΠΆΠ½ΠΈΠ²ΡΠΈΠΌΡΡ Π² XXI Π²Π΅ΠΊΠ΅.
ΠΡΠΎΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ, ΠΊΡΠΎΠΌΠ΅ Π°Π±Π±ΡΠ΅Π²ΠΈΠ°ΡΡΡΡ AES, ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·ΡΠ²Π°ΡΡ Π΅ΡΠ΅ Rijndael β ΡΡΠΎ Π°Π½Π°Π³ΡΠ°ΠΌΠΌΠ° ΠΈΠ· ΡΠ°ΡΡΠ΅ΠΉ ΠΈΠΌΠ΅Π½ Π±Π΅Π»ΡΠ³ΠΈΠΉΡΠΊΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² Joan Daemen ΠΈ Vinent Rijmen, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ AES. Π‘ΡΡΠΎΠ³ΠΎ Π³ΠΎΠ²ΠΎΡΡ, AES ΠΈ Rijndael β Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ AES ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π±Π»ΠΎΠΊΠ° Π² 128 Π±ΠΈΡ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ Π² 128, 192 ΠΈ 256 Π±ΠΈΡ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π΄Π»Ρ Rijndael ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π·Π°Π΄Π°Π½Ρ Π»ΡΠ±ΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΡ Π±Π»ΠΎΠΊΠ° ΠΈ ΠΊΠ»ΡΡΠ°, ΠΎΡ ΠΌΠΈΠ½ΠΈΠΌΡΠΌΠ° Π² 32 Π±ΠΈΡ Π΄ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌΠ° Π² 256 Π±ΠΈΡ.
ΠΠ»Π³ΠΎΡΠΈΡΠΌ AES Π±ΡΠ» ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ ΠΠ³Π΅Π½ΡΡΡΠ²ΠΎΠΌ Π½Π°ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π‘Π¨Π ΠΊΠ°ΠΊ ΠΏΡΠΈΠ³ΠΎΠ΄Π½ΡΠΉ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠΎΠ±ΠΎ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΡΠ°Π²ΠΈΡΠ΅Π»ΡΡΡΠ²ΠΎ ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΎ, ΡΡΠΎ AES Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄Π²Π΅ΡΠ³Π°ΡΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°ΠΌ ΠΈ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡΠΌ, ΡΡΠΎΠ±Ρ Π½Π°Π΄Π΅ΠΆΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅.
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΠΊΠ°ΠΊ ΡΠ΅ΠΊΡΠ΅ΡΠ½Π°Ρ, Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π·Π°ΡΠΈΡΠ΅Π½Π° ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ AES Ρ Π΄Π»ΠΈΠ½ΠΎΠΉ ΠΊΠ»ΡΡΠ΅ΠΉ 128, 192 ΠΈ 256 Π±ΠΈΡ. ΠΠ»Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΊΠ°ΠΊ ΠΎΡΠΎΠ±ΠΎ ΡΠ΅ΠΊΡΠ΅ΡΠ½Π°Ρ, ΡΡΠ° Π΄Π»ΠΈΠ½Π° ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ 192 ΠΈΠ»ΠΈ 256 Π±ΠΈΡ. Π‘ΡΡΡ AES Π² ΡΠΎΠΌ, ΡΡΠΎ Π»ΡΠ±Π°Ρ Β«Π»ΠΎΠ±ΠΎΠ²Π°Ρ Π°ΡΠ°ΠΊΠ°Β» Π½Π° Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ β ΡΠΎ Π΅ΡΡΡ ΠΏΠΎΠ΄Π±ΠΎΡ Π²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ β Π² ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Π΅ ΠΎΡΠ΅Π½Ρ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠ°ΡΡΡΠ³ΠΈΠ²Π°Π΅ΡΡΡ. ΠΡΠ»ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ, ΡΡΠΎ Π²Π·Π»ΠΎΠΌΡΠΈΠΊ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅Ρ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠΌΠΈ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ, ΡΠΎ Π΅ΡΡΡ ΡΠ΅Π»ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ΅ΠΉ ΡΡΠΏΠ΅ΡΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ², ΡΠΎ ΠΏΡΠΈ ΡΡΠ΅ΡΠ΄Π½ΠΎΠΌ ΡΡΠ°ΡΠ°Π½ΠΈΠΈ Π΄ΠΎΡΡΡΠΏ ΠΊ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΌ Π΄Π°Π½Π½ΡΠΌ ΠΎΠ½ ΠΌΠΎΠ³ Π±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΡΠ΅Π· Π΄Π΅ΡΡΡΠΊΠΈ Π»Π΅Ρ. ΠΡΠ»ΠΈ ΠΆΠ΅ Π² Π΅Π³ΠΎ ΡΠ°ΡΠΏΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ Π½ΠΈΡΠ΅Π³ΠΎ ΡΡΠΎΠ³ΠΎ Π½Π΅Ρ, ΡΠΎ Π²Π·Π»ΠΎΠΌ AES Π·Π°ΠΉΠΌΠ΅Ρ Π°ΡΡΡΠΎΠ½ΠΎΠΌΠΈΡΠ΅ΡΠΊΠΈ Π΄ΠΎΠ»Π³ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ.
ΠΠ°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ AES
Π‘ΡΠΈΡΠ°Π΅ΡΡΡ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π² Advanced Encryption Standard ΠΊΠ»ΡΡ Π΄Π»ΠΈΠ½ΠΎΠΉ Π² 128 Π±ΠΈΡ β Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π½Π°Π΄Π΅ΠΆΠ½Π°Ρ Π·Π°ΡΠΈΡΠ° ΠΏΡΠΎΡΠΈΠ² Π»ΠΎΠ±ΠΎΠ²ΠΎΠΉ Π°ΡΠ°ΠΊΠΈ, ΡΠΎ Π΅ΡΡΡ Ρ ΡΠΈΡΡΠΎ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠΎΠ»Ρ ΠΈΠ· Π²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ β ΡΡΡΠ΄Π½ΠΎΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΠΌΠ°Ρ Π·Π°Π΄Π°ΡΠ°. ΠΠ΅ΡΠΌΠΎΡΡΡ Π΄Π°ΠΆΠ΅ Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ AES, Π²Π·Π»ΠΎΠΌΠ°ΡΡ Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ΡΠ΅Π°Π»ΡΠ½ΠΎ.
ΠΡΠ±ΠΎΠΉ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΊΠ»ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ Π² ΡΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±ΠΈΡ, ΡΡΠΎΠ±Ρ Π·Π°ΡΠΈΡΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΡ Π΅ΠΌΠ΅ β1.
ΠΠ»ΠΈΠ½Π° ΠΊΠ»ΡΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ ΠΏΡΠΈ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ°, Π²Π΅Π΄Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΡ Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΠ½Π½ΡΠΌΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈ ΡΠΊΡΠΏΠΎΠ½Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ Π²Π·Π»ΠΎΠΌΠ°ΡΡ, ΡΠ΅ΠΌ Ρ ΠΊΠΎΡΠΎΡΠΊΠΈΠΌΠΈ.
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° 4-Π±ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°:
ΠΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ 16 ΡΡΠ°Π΄ΠΈΠΉ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΊΠ°ΠΆΠ΄ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ Β«0000Β». ΠΠΎΠ±ΠΎΠ²Π°Ρ Π°ΡΠ°ΠΊΠ° Π·Π° Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠ±ΠΈΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΡΡΠΎΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ.
Π’Π°Π±Π»ΠΈΡΠ° Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΉ Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΊΠ»ΡΡΠ°:
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΊΠ»ΡΡΠ° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΉ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π΅Ρ ΡΠΊΡΠΏΠΎΠ½Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ. ΠΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π΄ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΡΡΠΎ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠ»ΡΡΠ° Π² 128 Π±ΠΈΡ Π½Π°Π΄Π΅ΠΆΠ½Π΅ΠΉΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π·Π°ΡΠΈΡΠ°Π΅Ρ ΠΎΡ Π»ΠΎΠ±ΠΎΠ²ΠΎΠΉ Π°ΡΠ°ΠΊΠΈ:
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΄Π°ΠΆΠ΅ ΡΡΠΏΠ΅ΡΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΠ»ΠΎΡΡ Π±Ρ Π½Π΅ΠΈΡΡΠΈΡΠ»ΠΈΠΌΠΎ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΠΎΠ΄ Π·Π°ΡΠΈΡΠΎΠΉ AES ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Π»ΠΎΠ±ΠΎΠ²ΠΎΠΉ Π°ΡΠ°ΠΊΠΈ.
ΠΠ»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ: Π²ΠΎΠ·ΡΠ°ΡΡ ΠΡΠ΅Π»Π΅Π½Π½ΠΎΠΉ β Π³Π΄Π΅-ΡΠΎ ΠΌΠ΅ΠΆΠ΄Ρ 13 ΠΈ 14 ΠΌΠΈΠ»Π»ΠΈΠ°ΡΠ΄Π°ΠΌΠΈ Π»Π΅Ρ. ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ, ΡΡΠΎ Π½Π΅ΠΊΠΈΠΉ ΡΡΠΏΠ΅Ρ-ΡΡΠΏΠ΅ΡΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ ΠΌΠΎΠ³ Π±ΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠΌ DES Π·Π° ΠΎΠ΄Π½Ρ ΡΠ΅ΠΊΡΠ½Π΄Ρ, ΡΠΎ Π½Π° Π²Π·Π»ΠΎΠΌ AESΒ Ρ Π½Π΅Π³ΠΎ ΡΡΠ»ΠΎ Π±Ρ ΠΎΠΊΠΎΠ»ΠΎ 149 ΡΡΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² Π»Π΅Ρ.
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΊΠ»ΡΡΠ° Π² 128 Π±ΠΈΡ Π²ΠΏΠΎΠ»Π½Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, Ρ ΠΎΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΡΠ΅ΠΊΡΠ΅ΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΡΠΈΡΡΡΠ΅ΡΡΡ Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ Π² 256 Π±ΠΈΡ. Π‘Π»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡ 128 Π±ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠΌ ΠΈ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ.
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅:
- ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ Π½Π° ΠΠ΅ΠΌΠ»Π΅ ΠΈΠΌΠ΅Π΅Ρ Π΄Π΅ΡΡΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ²
- Π½Π° ΠΠ΅ΠΌΠ»Π΅ ΡΠ΅ΠΌΡ ΠΌΠΈΠ»Π»ΠΈΠ°ΡΠ΄ΠΎΠ² ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ
- ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΡΡΠΈΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΌΠΈΠ»Π»ΠΈΠ°ΡΠ΄ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΉ Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ
- ΠΊΠ»ΡΡ ΡΡΠΈΡΠ°Π΅ΡΡΡ Π²Π·Π»ΠΎΠΌΠ°Π½Π½ΡΠΌ, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½ΠΎ 50% Π²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΉ
ΠΡΠΈ Π²ΡΠ΅Ρ ΡΡΠΈΡ ΡΡΠ»ΠΎΠ²ΠΈΡΡ Π²ΡΠ΅ Π½Π°ΡΠ΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π½Π΅ΡΡ ΡΠΌΠΎΠ³Π»ΠΎ Π±Ρ Π²Π·Π»ΠΎΠΌΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΊΠ»ΡΡβ¦ Π·Π° 77,000,000,000,000,000,000,000,000 Π»Π΅Ρ.
ΠΡΠΈ ΡΡΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΠΊΠ»ΡΡΠ° Π² 128 Π±ΠΈΡ ΠΈ 256 Π±ΠΈΡ Π½Π΅ ΡΠ°ΠΊ ΡΠΆ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½Π°. ΠΡΠ»ΠΈ Π±Ρ ΠΊΡΠΎ-ΡΠΎ ΠΏΡΠΈΠ΄ΡΠΌΠ°Π» Π±Ρ Π½Π΅ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠΏΠΎΡΠΎΠ±Π½ΡΡ Π²Π·Π»ΠΎΠΌΠ°ΡΡ 128-Π±ΠΈΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠΎ 256 Π±ΠΈΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π³Π΅Π½ΠΈΡ Π½Π΅ Π±ΡΠ»ΠΈ Π±Ρ ΠΏΠΎΠΌΠ΅Ρ ΠΎΠΉ.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π·Π° AES Π³ΠΎΠ²ΠΎΡΠΈΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ°: Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΠ΅ ΡΡΠΈΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠΌ Π΄Π°Π½Π½ΡΠ΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡΠ»ΠΈ Π²Π·Π»ΠΎΠΌΠ°Π½Ρ. ΠΠΏΡΠΎΡΠ΅ΠΌ, Π²ΡΠ΅ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ΅ ΠΊΠ»ΡΡΠ° ΠΌΠΈΠ½ΠΈΠΌΡΠΌ Π² 128 Π±ΠΈΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π½Π½ΠΈΠ΅ ΡΠΈΡΡΠΎΠ²Π°Π»ΡΠ½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ Π²ΡΠ΅ ΠΆΠ΅ Π½Π΅ Π²ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Π»ΠΈ ΠΈΡΠΏΡΡΠ°Π½ΠΈΡ Π½Π° ΠΏΡΠΎΡΠ½ΠΎΡΡΡ.
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΠΊΠΎΡΠΎΡΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ² ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ Π² Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠΈΠΈ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ Π·Π°ΠΊΠΎΠ½Ρ ΠΡΡΠ°, 128-Π±ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° Π²ΠΏΠΎΠ»Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ Π²Π°ΡΠΈΡΡ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ Π²ΠΏΠ΅ΡΠ΅Π΄.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²ΡΠ΅ Π·Π²ΠΎΠ½ΠΊΠΈ ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΠΊΡΠΈΠΏΡΠΎΡΠ΅Π»Π΅ΡΠΎΠ½Π°Ρ X-Telecom ΡΠΈΡΡΡΡΡΡΡ ΠΎΡΠ΅Π½Ρ Π½Π°Π΄Π΅ΠΆΠ½ΠΎ, Π²Π΅Π΄Ρ ΠΊΡΠΎΠΌΠ΅ AES-256 Π΅ΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ Twofish ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² β Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ΅ ΡΡΠΎ Π΄Π°Π΅Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΡΡ 100%-ΡΡ Π·Π°ΡΠΈΡΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΡ ΠΏΡΠΎΡΠ»ΡΡΠΊΠΈ Π»ΡΠ±ΡΠΌΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ.
ΠΡΡΡ Π»ΠΈ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ aes-128-cbc ΠΈ AES-128?
Π― Ρ ΠΎΡΡ Π·Π½Π°ΡΡ, Π΅ΡΡΡ Π»ΠΈ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ Π΄Π²ΡΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ? Π― Π½ΠΈΠΊΠΎΠ³Π΄Π° ΡΠ°Π½ΡΡΠ΅ ΡΡΠΈΠΌ Π½Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ. ΠΠΎΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΏΠΎΠΏΡΠΎΡΠΈΠ» ΠΌΠ΅Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ AES-128, Π½ΠΎ ΠΊΠΎΠ³Π΄Π° Ρ Π΅Π³ΠΎ google, ΠΎΠ½ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΌΠ½Π΅ «aes-128-cbc», «aes-128-ctr», «aes-256-cbc» ΠΈΠ»ΠΈ «aes-256-ctr», ΠΏΠΎΡΡΠΎΠΌΡ Ρ Ρ ΠΎΡΡ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· Π½ΠΈΡ Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡ ΠΎΠΆ Π½Π° AES-128?
ΡΡΡΠ»ΠΊΠΈ : Π·Π΄Π΅ΡΡ Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ
10
Π°Π²ΡΠΎΡ: Umair Malik
4 ΠΎΡΠ²Π΅ΡΠΎΠ²
3 Π²Π΅ΡΠΈ:
- AES: ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ ΡΡΠ°Π½Π΄Π°ΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ (symmetric encryption). ΠΡΡΠ³ΠΈΠ΅ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ: DES, 3-DES ΠΈ Ρ. Π΄.
- 128: ΡΡΠΎ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠ»ΡΡΠ°. Π¨ΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ AES ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ 3 ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΊΠ»ΡΡΠ΅ΠΉ (128 Π±ΠΈΡ, 192 Π±ΠΈΡ ΠΈ 256 Π±ΠΈΡ). Π Π°Π·ΠΌΠ΅Ρ Π±Π»ΠΎΠΊΠ° Π² AES ΡΠ°ΠΊΠΆΠ΅ 128 Π±ΠΈΡ.
- CBC: ΡΡΠΎ ΡΠ΅ΠΆΠΈΠΌ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΆΠΈΠΌΠΎΠ² ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΡΠΎΠ³ΠΎ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΡΡΡΡΠΎ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ Π²Π°Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠ°Π±ΠΎΡΠ°Π», ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌ ΠΈ ΡΡΠΎΠ²Π΅Π½Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ. ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΆΠΈΠΌΠΎΠ² ΡΠ²Π»ΡΡΡΡΡ CBC (ΡΠΈΡΡ Π±Π»ΠΎΠΊ ΡΠ΅ΠΏΠΎΡΠΊΠΈ), ECB(ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½Π°Ρ ΠΊΠΎΠ΄ΠΎΠ²Π°Ρ ΠΊΠ½ΠΈΠ³Π°), CFB (ΡΠΈΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ), CTR (ΡΡΠ΅ΡΡΠΈΠΊ) ΠΈ Ρ.Π΄.
ΡΠ΅ΠΏΠ΅ΡΡ Π²Π°Ρ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΏΠΎΠΏΡΠΎΡΠΈΠ» Π²Π°Ρ Π·Π°ΡΠΈΡΡΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ AES-128. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ AES Ρ 128 Π±ΠΈΡΠ½ΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ. ΠΡΠ±ΠΎΠΉ ΡΠ΅ΠΆΠΈΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, Π±ΡΠ΄Π΅Ρ Π²Π°ΡΠΈΠΌ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΠ΅ΠΌ. Π― Π±Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ΅Π» ΠΠΠ‘.
ΠΏΡΠΎΡΡΠΎ ΠΊΠΎΡΠΎΡΠΊΠ°Ρ Π·Π°ΠΌΠ΅ΡΠΊΠ° ΠΎ CBC ΠΏΡΠΎΡΠΈΠ² ΠΠ¦Π. ΠΡΠΈ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ECB ΠΊΠ°ΠΆΠ΄ΡΠΉ 128 Π±ΠΈΡ (Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π±Π»ΠΎΠΊΠ°) Π΄Π°Π½Π½ΡΡ ΡΠΈΡΡΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΊΠ»ΡΡΠΎΠΌ. ΠΡΠ»ΠΈ Π² ΠΎΡΠΊΡΡΡΠΎΠΌ ΡΠ΅ΠΊΡΡΠ΅ Π΅ΡΡΡ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΡΠ°Π±Π»ΠΎΠ½, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠΌ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΡΠΎΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ¦Π:
Plain text: aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa
---------------- ---------------- ----------------
Encrypted: bdefjakjapqeiowp bdefjakjapqeiowp bdefjakjapqeiowp
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ CBC, ΠΏΠ΅ΡΠ²ΡΠΉ Π±Π»ΠΎΠΊ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ XOR’D Ρ IV (Π²Π΅ΠΊΡΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ) ΠΈ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½ ΠΊΠ»ΡΡΠΎΠΌ, Π° Π²ΡΠΎΡΠΎΠΉ Π±Π»ΠΎΠΊ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ XOR’D Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ½Π°ΡΠ°Π»Π° Π±Π»ΠΎΠΊ, Π° Π·Π°ΡΠ΅ΠΌ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»ΡΡΠ°, ΡΡΠ΅ΡΠΈΠΉ ΡΠΎ Π²ΡΠΎΡΡΠΌ. ΠΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΡΠΈΡΡ ΡΠΎΠ³Π΄Π° ΠΌΠ΅Π½Π΅Π΅ ΡΡΠ·Π²ΠΈΠΌ Π΄Π»Ρ ΡΠ°ΡΡΠΎΡΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°.
ΡΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²Π·ΡΡΠΎ ΠΈΠ· Wikimedia Commons, ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΡ ΠΌΠ΅Π΄ΠΈΠ°
Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΡΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅/Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ Π±Π»ΠΎΠΊΠ°, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅. ΠΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΡΡΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
Π³Π»ΡΠ΄Ρ Π½Π° ΡΡΡΠ»ΠΊΡ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Π²ΠΊΠ»ΡΡΠΈΠ»ΠΈ, ΠΎΠ½ Π³ΠΎΠ²ΠΎΡΠΈΡ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ΅ΠΆΠΈΠΌΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ CBC. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π½Π΅Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ AES-128-CBC. Π Π΅ΠΆΠΈΠΌ CBC-ΡΡΠΎ Ρ ΠΎΡΠΎΡΠΈΠΉ ΡΠ΅ΠΆΠΈΠΌ. ΠΠ°ΠΌ ΡΠ°ΠΊΠΆΠ΅ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ½ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ PKCS#5 ΠΈΠ»ΠΈ PKCS#7, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°) ΠΈ Π²Π΅ΠΊΡΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, IV, ΡΡΠΎΠ±Ρ ΡΠ΅ΠΆΠΈΠΌ CBC ΡΠ°Π±ΠΎΡΠ°Π» ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ.
ΠΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ΅ΠΆΠΈΠΌ ECB, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ΅Π½ ΠΈ ΠΏΡΠΎΡΠ΅ΠΊΠ°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ.
Π·Π΄Π΅ΡΡ aes-128-cbc
ΠΈ aes-128
. aes
ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ advanced encryption service,128
— ΡΡΠΎ Π±ΠΈΡΠΎΠ²Π°Ρ ΡΠΊΠΎΡΠΎΡΡΡ, ΠΈ CBC
ΡΠ΅ΠΆΠΈΠΌ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΎΠ΄Π½Π°ΠΊΠΎ, ΡΡΠΎ ΡΠΈΡΠ°Π΅ΡΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² OPEN SSL
ΡΠΎΡΠΌΠ°ΡΡ. ΠΠΎ ΠΎΡΠΊΡΡΡΠΈΡ SSL PHP ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» mcrypt_encrypt
ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ (Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΡΠ΅ Π²Π΅ΡΡΠΈΠΈ PHP).
aes-128
ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΡΠ°ΠΆΠ΅Π½Π° ΠΊΠ°ΠΊ rijndael
ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ mcrypt
.
0
Π°Π²ΡΠΎΡ: Raghu Veera
ΠΠ΅ ΡΠ°ΠΊΠΎΠΉ ΡΠΆ ΡΡ ΠΈ ΡΡΡΠ°ΡΠ½ΡΠΉ, XTS-AES / Π₯Π°Π±Ρ
ΠΡΠΈΠ²Π΅ΡΡΡΠ²ΡΡ, %username%!
Π‘Π΅Π³ΠΎΠ΄Π½ΡΡΠ½ΡΡ ΡΡΠ°ΡΡΡ Π½Π°Π²Π΅ΡΠ½Π° ΠΌΡΡΠ»ΡΠΌΠΈ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ Π°Π½Π°Π»ΠΎΠ³ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π² DropBox, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π°ΡΠΏΠ΅ΠΊΡΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ° ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΠΎΡΠ΅ΠΊΡΠΎΡΠ½ΠΎ (Π΄Π»Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠΈΡΠ°ΡΡ\ΠΏΠΈΡΠ°ΡΡ ΠΈΠ·/Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ)
ΠΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ XTS-AES, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠΌ Π²ΠΎ Π²ΡΠ΅Ρ
ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ
Π΄ΠΈΡΠΊΠΎΡΠΈΡΡΠΎΠ²Π°Π»ΠΊΠ°Ρ
(TrueCrypt, DiskCryptor).
ΠΠ½ ΠΎΠΏΠΈΡΠ°Π½ Π² IEEE P1619β’/D16 (Standard for Cryptographic Protection of Data on Block-Oriented Storage Devices) ΠΈ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΡΠ°ΠΌΡΠΌ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ Ρ
ΡΠ°Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΡΠ΅ΠΊΡΠΎΡΠ½ΠΎ.
ΠΠ΅ΡΠ²ΠΎ-Π½Π°ΠΏΠ΅ΡΠ²ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ:
- 256/512 Π±ΠΈΡ ΠΊΠ»ΡΡΠ° (ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ SHA-256/512(ΡΠΎΠ»Ρ+ΠΏΠ°ΡΠΎΠ»Ρ) ΠΈΠ»ΠΈ ΡΡΠΎ Π½ΠΈΠ±ΡΠ΄Ρ Π²ΡΠΎΠ΄Π΅ KDF)
- ΠΠ΄ΡΠ΅Ρ (Π½ΠΎΠΌΠ΅Ρ) ΡΠ΅ΠΊΡΠΎΡΠ°
- Π‘ΠΎΠ±ΡΠ½ΠΎ Π±Π»ΠΎΠΊ Π΄Π°Π½Π½ΡΡ Π΄Π»ΠΈΠ½Ρ ΠΊΡΠ°ΡΠ½ΠΎΠΉ 128 Π±ΠΈΡΠ°ΠΌ (ΡΠ°Π·ΠΌΠ΅Ρ Π±Π»ΠΎΠΊΠ° AES)
Π£ΠΏΡΠΎΡΠ΅Π½Π½ΠΎ, Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ:
- Π Π°Π·Π±ΠΈΠ²ΠΊΠ° ΠΊΠ»ΡΡΠ° Π½Π° Π΄Π²Π°. ΠΠ΅ΡΠ²Π°Ρ ΡΠ°ΡΡΡ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΊΠ»ΡΡΠΎΠΌ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
(k1), Π²ΡΠΎΡΠ°Ρ β ΠΊΠ»ΡΡΠΎΠΌ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ tweak value(k2)
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΅ΡΠ»ΠΈ Ρ Π½Π°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ»ΡΡ Π² 512 Π±ΠΈΡ, ΡΠΎ ΠΌΡ Π΅Π³ΠΎ ΠΏΠΈΠ»ΠΈΠΌ Π½Π° 2Ρ 256 ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π² AES-256 - ΠΠΎΠ½Π²Π΅ΡΡΠΈΡΡΠ΅ΠΌ Π½ΠΎΠΌΠ΅Ρ ΡΠ΅ΠΊΡΠΎΡΠ° Π² ΠΌΠ°ΡΡΠΈΠ² Π±Π°ΠΉΡ ΠΈ ΡΠΈΡΡΡΠ΅ΠΌ Π΅Π³ΠΎ ΠΊΠ»ΡΡΠΎΠΌ k2. ΠΡΠΎ Π½Π°ΡΠ΅ tweak value
- ΠΠ΄ΡΠΌ ΠΏΠΎ ΠΌΠ°ΡΡΠΈΠ²Ρ Π΄Π°Π½Π½ΡΡ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΠΏΠΎ 16 Π±Π°ΠΉΡ ΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°:
- 1.ΠΡΠΎΡΠΈΠΌ Π΅Π³ΠΎ Ρ tweak value
- 2.Π¨ΠΈΡΡΡΠ΅ΠΌ/ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΡΠ²Π°Π΅ΠΌ Π΅Π³ΠΎ ΠΊΠ»ΡΡΠΎΠΌ k1
- 3.ΠΠΏΡΡΡ ΠΊΡΠΎΡΠΈΠΌ ΡΠΆΠ΅ (ΡΠ°Ρ)ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΉ Π±Π»ΠΎΠΊ Π΄Π°Π½Π½ΡΡ Ρ tweak value. Π‘ΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ Π΅Π³ΠΎ, ΡΡΠΎ ΠΈ Π±ΡΠ΄Π΅Ρ Π½ΡΠΆΠ½ΡΠΉ Π½Π°ΠΌ (Π·Π°/ΡΠ°Ρ)ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΉ Π±Π»ΠΎΠΊ ΡΠ΅ΠΊΡΠΎΡΠ°
- 4.Π£ΠΌΠ½ΠΎΠΆΠ°Π΅ΠΌ tweak value Π½Π° ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌ Ξ± = x128+x7+x2+x+1
Π‘Π°ΠΌΠΎΠ΅ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΠΎΠ΅ ΡΡΡ (Π΄Π»Ρ ΠΌΠ΅Π½Ρ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ) ΡΡΠΎ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌ. ΠΠ»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠ΄Π²ΠΈΠ³ Π²ΡΠ΅Π³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° Π½Π° 1 Π±ΠΈΡ + xor Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΡΠ°Π³Π΅.
- Β
- private const int GF_128_FDBK = 0x87;
- private const int AES_BLK_BYTES = 16;
- …
- Β
- // ΡΠΌΠ½ΠΎΠΆΠ°Π΅ΠΌ T(weak value) Π½Π° Ξ±
- Cin = 0; // Π±ΠΈΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ°
- for (j = 0; j < AES_BLK_BYTES; j++)
- {
- Β Β Cout = (T[j] >> 7) & 1;
- Β Β T[j] = (byte)(((T[j] << 1) + Cin) & 0xFF);
- Β Β Cin = Cout;
- }
- if (Cout != 0)
- {
- Β Β T[0] ^= GF_128_FDBK;
- }
- Β
Π ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΊΡΠΈΠΌΠΈΠ½Π°Π»Π°. ΠΠ΅Π»Π°Π΅ΡΡΡ ΡΡΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ± tweak value Π±ΡΠ» ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½ΡΡ
Π²Π½ΡΡΡΠΈ ΡΠ΅ΠΊΡΠΎΡΠ°.
ΠΠΎΠΏΡΠΎΡ ΠΊ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠΎΠ²Π°Π½Π½ΠΎΠΉ Π°ΡΠ΄ΠΈΡΠΎΡΠΈΠΈ: ΠΠΎΡΠ΅ΠΌΡ Π²ΡΠ±ΡΠ°Π½ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌ Π² GF(2) ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ x128+x7+x2+x+1? ΠΠΎΠΈΡ
(Π½Π΅)Π·Π½Π°Π½ΠΈΠΉ Ρ
Π²Π°ΡΠ°Π΅Ρ Π»ΠΈΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ, ΡΡΠΎ ΡΡΡ Π·Π°ΠΌΠ΅ΡΠ°Π½Ρ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π³ΡΡΠΏΠΏΡ, ΠΈ Π²ΡΡ ΡΡΠΎ Π½Π΅ΠΊΠΈΠΉ Π°Π½Π°Π»ΠΎΠ³ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΄Π²ΠΈΠ³Π°.
Π Π°Π±ΠΎΡΠΈΠΉ ΠΊΠΎΠ΄ Π½Π° C#, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π°ΠΆΠ΅ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡ:
- Β
- class XTS
- {
- Β Β private const int GF_128_FDBK = 0x87;
- Β Β private const int AES_BLK_BYTES = 16;
- Β
- Β Β public static byte[] encryptSector(byte[] inData, byte[] dataEncryptionKey, byte[] tweakEncryptionKey, UInt64 sectorNumber, bool encrypt)
- Β Β {
- Β Β Β Β byte[] outData = new byte[inData.Length]; //ΡΡΡ Π±ΡΠ΄Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. Π Π°Π·ΠΌΠ΅Ρ inData Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΊΡΠ°ΡΠ΅Π½ 32!
- Β
- Β Β Β Β uint i, j; // local counters
- Β Β Β Β var T = new byte[AES_BLK_BYTES]; // tweak value
- Β Β Β Β var x = new byte[AES_BLK_BYTES]; // Π±ΡΡΠ΅Ρ Π΄Π»Ρ (Π·Π°/ΡΠ°Ρ)ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½ΡΡ
- Β
- Β Β Β Β // ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΡΠ΅ΠΌ Π½ΠΎΠΌΠ΅Ρ ΡΠ΅ΠΊΡΠΎΡΠ° Π² ΠΌΠ°ΡΡΠΈΠ² Π±Π°ΠΉΡ
- Β Β Β Β Array.Copy(BitConverter.GetBytes(sectorNumber), T, 8);
- Β
- Β Β Β Β //ΠΏΠΎΡΠ»Π΅ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π² T Ρ Π½Π°Ρ tweak value. true Π·Π½Π°ΡΠΈΡ ΡΠΈΡΡΠΎΠ²Π°ΡΡ
- Β Β Β Β processAES(tweakEncryptionKey, T, true);
- Β Β Β Β
- Β Β Β Β // ΠΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌ ΠΏΠΎ AES_BLK_BYTES Π±Π°ΠΉΡ Π·Π° ΡΠ°Π·
- Β Β Β Β for (i = 0; i < inData.Length; i += AES_BLK_BYTES)
- Β Β Β Β {
- Β Β Β Β Β Β // ΠΊΡΠΎΡΠΈΠΌ tweak value Ρ ΠΊΡΡΠΊΠΎΠΌ Π΄Π°Π½Π½ΡΡ
- Β Β Β Β Β Β for (j = 0; j < AES_BLK_BYTES; j++)
- Β Β Β Β Β Β {
- Β Β Β Β Β Β Β Β x[j] = (byte)(inData[i + j] ^ T[j]);
- Β Β Β Β Β Β }
- Β
- Β Β Β Β Β Β // ΡΠΈΡΡΡΠ΅ΠΌ/ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΡΠ²Π°Π΅ΠΌ Π±Π»ΠΎΠΊ
- Β Β Β Β Β Β processAES(dataEncryptionKey, x, encrypt);
- Β
- Β Β Β Β Β Β Β // ΠΊΡΠΎΡΠΈΠΌ tweak value Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΌ Π±Π»ΠΎΠΊΠΎΠΌ Π΄Π°Π½Π½ΡΡ
- Β Β Β Β Β Β for (j = 0; j < AES_BLK_BYTES; j++)
- Β Β Β Β Β Β {
- Β Β Β Β Β Β Β Β outData[i + j] = (byte)(x[j] ^ T[j]);
- Β Β Β Β Β Β }
- Β
- Β Β Β Β Β Β // Π£ΠΌΠ½ΠΎΠΆΠ°Π΅ΠΌ tweak value Π½Π° Ξ±
- Β Β Β Β Β Β j = AES_BLK_BYTES;
- Β Β Β Β Β Β int t = T[AES_BLK_BYTES — 1];
- Β Β Β Β Β Β while (—j != 0)
- Β Β Β Β Β Β Β Β T[j] = (byte)((T[j] << 1) | ((T[j — 1] & 0x80) != 0 ? 1 : 0));
- Β Β Β Β Β Β T[0] = (byte)((T[0] << 1) ^ ((t & 0x80) != 0 ? 0x87 : 0x00));
- Β Β Β Β }
- Β Β Β Β return outData;
- Β Β }
- Β
- Β Β private static void processAES(byte[] k, byte[] T, bool encrypt)
- Β Β {
- Β Β Β Β /*AesFastEngine Π²Π·ΡΡ ΠΈΠ· BouncyCastle. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ
- Β Β Β Β * ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ, Π»ΠΈΠ±ΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΎΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ, ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΈΡΡΠ²Π°ΠΉΡΠ΅
- Β Β Β Β * ΡΠ°Π·ΠΌΠ΅Ρ Π±Π»ΠΎΠΊΠ° ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ.
- Β Β Β Β */
- Β Β Β Β var engine = new AesFastEngine();
- Β Β Β Β engine.Init(encrypt, new KeyParameter(k));
- Β Β Β Β engine.ProcessBlock(T, 0, T, 0);
- Β Β }
- }
- Β
______________________
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ AES, ΠΊΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ, Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ. ΠΡΠ°Π²Π΄Π°, ΠΎΠ± ΡΡΠΎΠΌ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ΅.
ΠΠΎΠΌΠ°ΡΠ½ΠΈΠΌ Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ Π±ΡΠ΄Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΠ΅ΠΊΡΠΎΡΠ° Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² Π½Π΅ ΠΊΡΠ°ΡΠ½ΡΡ
32.
Π Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΈΡΡΠΎΠ²Π°Π»ΠΊΠΈ Π΄Π»Ρ DropBox)
ΠΠ½Π»Π°ΠΉΠ½-ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ AES
Advanced Encryption Standard (AES) — ΡΡΠΎ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎΠ΅ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅.
Π°Π»Π³ΠΎΡΠΈΡΠΌ. ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ AES ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΡΠ°ΡΠ»Π΅Π²ΡΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ 128, 192 ΠΈ 256 Π±ΠΈΡ.
Π±ΠΈΡΠΎΠ²ΠΎΠ΅ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅. Π‘ΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎΠ΅ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΡΠ΅Π½Ρ Π±ΡΡΡΡΠΎ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Π°ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠΌ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.
Π° ΡΠ°ΠΊΠΆΠ΅
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΡΠ°ΠΊΠΈΡ
ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
, ΠΊΠ°ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ° Π±Π°Π· Π΄Π°Π½Π½ΡΡ
.ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ AES.
Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠ°ΡΠΎΠ»Ρ ΠΈ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°ΡΡ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠ°ΡΠΎΠ»Ρ AES. ΠΠ½ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π΄Π²Π° ΡΠ΅ΠΆΠΈΠΌΠ°
ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠ¦Π
ΠΈ ΡΠ΅ΠΆΠΈΠΌ CBC. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠΈ AES ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅ ΡΡΠΎ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅
Π½Π° ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠΈ AES.
Π’Π°ΠΊΠΆΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ½ΠΈΠΌΠΊΠ° ΡΠΊΡΠ°Π½Π° Π½ΠΈΠΆΠ΅:
ΠΠ°ΡΠΈΡΡΠΎΠ²Π°ΡΡ
ΠΡΡ ΠΎΠ΄ Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ AES:
Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
ΠΡΠ±ΠΎΠΉ Π²Π²ΠΎΠ΄ ΠΈΠ»ΠΈ Π²ΡΠ²ΠΎΠ΄ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Π²Π²ΠΎΠ΄ΠΈΡΠ΅ ΠΈΠ»ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΠ΅, Π½Π΅ ΡΠΎΡ
ΡΠ°Π½ΡΠ΅ΡΡΡ Π²
ΡΡΠΎΡ ΡΠ°ΠΉΡ,
ΡΡΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· URL-Π°Π΄ΡΠ΅Ρ HTTPS, ΡΡΠΎΠ±Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΊΡΠ°ΠΆΠΈ ΡΠ΅ΠΊΡΡΠ°.
ΠΠ»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π²Π΅ΡΡΠΈ ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡ, ΠΏΠ°ΡΠΎΠ»Ρ, ΡΠ°ΠΉΠ» ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ .txt.
ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ Π·Π°ΡΠΈΡΡΠΎΠ²Π°ΡΡ. Π’Π΅ΠΏΠ΅ΡΡ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠ΅ΠΆΠΈΠΌ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π±Π»ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ.
ECB (ΠΠ»Π΅ΠΊΡΡΠΎΠ½Π½Π°Ρ ΠΊΠΎΠ΄ΠΎΠ²Π°Ρ ΠΊΠ½ΠΈΠ³Π°) — ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ΅ΠΆΠΈΠΌ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ, Π½Π΅ ΡΡΠ΅Π±ΡΡΡΠΈΠΉ IV
Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡ
ΠΎΠ΄ΡΡΠΈΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ΅ΠΊΡΡ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ Π½Π° Π±Π»ΠΎΠΊΠΈ, ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π±Π»ΠΎΠΊ Π±ΡΠ΄Π΅Ρ
Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ, ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Ρ Π²
ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°.Π Π΅ΠΆΠΈΠΌ CBC Π΅ΡΡΡ
Π½Π°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈ ΡΡΠ΅Π±ΡΠ΅Ρ IV, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ. ΠΡΠ»ΠΈ IV Π½Π΅ Π²Π²Π΅Π΄Π΅Π½
ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π·Π΄Π΅ΡΡ Π΄Π»Ρ ΡΠ΅ΠΆΠΈΠΌΠ° CBC, Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ — Ρ Π½ΡΠ»Ρ.
Π±Π°ΠΉΡ [16].
ΠΠ»Π³ΠΎΡΠΈΡΠΌ AES ΠΈΠΌΠ΅Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ Π±Π»ΠΎΠΊΠ° 128 Π±ΠΈΡ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ Π΄Π»ΠΈΠ½Π° Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠ»ΡΡΠ°
256, 192 ΠΈΠ»ΠΈ 128 Π±ΠΈΡ. ΠΠΎΠ³Π΄Π° ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ΅Π±ΡΠ΅Ρ IV, Π΄Π»ΠΈΠ½Π° IV Π΄ΠΎΠ»ΠΆΠ½Π°
Π±ΡΡΡ ΡΠ°Π²Π½ΡΠΌ ΡΠ°Π·ΠΌΠ΅ΡΡ Π±Π»ΠΎΠΊΠ° ΡΠΈΡΡΠ°.Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π²Ρ Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ 128-Π±ΠΈΡΠ½ΡΠΉ IV (16
Π±Π°ΠΉΡΠΎΠ²) Ρ ΠΏΠΎΠΌΠΎΡΡΡ AES.
AES ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° 128, 192 ΠΈ 256 Π±ΠΈΡ Π΄Π»Ρ
ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠΌΠ½ΠΈΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΠ΅
128 Π±ΠΈΡ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠΎΠ³Π΄Π° ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ Π΄Π»ΠΈΠ½Ρ 16 Π±ΠΈΡ ΠΈ 24 ΠΈ 32 Π±ΠΈΡ Π΄Π»Ρ
192 ΠΈ 256 Π±ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΊΠ»ΡΡΠ°. Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π²Π΅ΡΡΠΈ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ
ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ Π² base64
Π½ΠΎ Ρ Π²Π°Ρ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠ±ΡΠ°ΡΡ ΡΠΎΡΠΌΠ°Ρ Π²ΡΠ²ΠΎΠ΄Π° ΠΊΠ°ΠΊ HEX.
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΄Π»Ρ ΡΠ°ΠΉΠ»Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΠ°ΠΉΠ»Π° .txt Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½Π°Ρ ΡΠΎΡΠΌΠ° Π±ΡΠ΄Π΅Ρ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π° Π² Base64.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΡΠ½ΠΈΠΌΠΎΠΊ ΡΠΊΡΠ°Π½Π°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ AES.
Π Π°ΡΡΠΈΡΡΠΎΠ²ΠΊΠ°
AES ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΏΡΠΎΡΠ΅ΡΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ Π²Π²Π΅Π΄Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π²
Base64.ΠΠ° Π²Ρ
ΠΎΠ΄Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ΅ Base64 ΠΈΠ»ΠΈ Hex, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ°ΠΉΠ» .txt. Π
ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ
ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΉ Π²ΡΠ²ΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΡΡΡΠΎΠΊΠΎΠΉ Base64. ΠΡΠ»ΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΡΠΉ Π²ΡΠ²ΠΎΠ΄ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ΅ΠΊΡΡ, ΡΠΎΠ³Π΄Π° ΠΎΠ½
ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ Π² ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡ Π½Π° ΠΌΠ΅ΡΡΠ΅.
ΠΠΎ Π΅ΡΠ»ΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ — ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ» .txt, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎ
ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ²ΠΎΠ΄Π° Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ΅ base64 Π² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.
.
AES (Rijndael) — ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ½Π»Π°ΠΉΠ½
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ:
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
Advanced Encryption Standard (AES), ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΏΠΎΠ΄ ΡΠ²ΠΎΠΈΠΌ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΡΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Rijndael, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
.
ΠΠ°Π½Π½ΡΠ΅ ΡΠΎΠ·Π΄Π°Π½Ρ ΠΠ°ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ ΠΈΠ½ΡΡΠΈΡΡΡΠΎΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ² ΠΈ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ (NIST) Π² 2001 Π³ΠΎΠ΄Ρ.
AES — ΡΡΠΎ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΈΡΡΠ° Rijndael, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠ³ΠΎ Π΄Π²ΡΠΌΡ Π±Π΅Π»ΡΠ³ΠΈΠΉΡΠΊΠΈΠΌΠΈ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠ°ΠΌΠΈ, ΠΠΈΠ½ΡΠ΅Π½ΡΠΎΠΌ Π ΡΠΉΠΌΠ°Π½ΠΎΠΌ ΠΈ ΠΠΆΠΎΠ°Π½ ΠΡΠ΅ΠΌΠ΅Π½,
ΠΊΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ» ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² NIST Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΎΡΠ±ΠΎΡΠ° AES. Rijndael — ΡΡΠΎ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ ΡΠΈΡΡΠΎΠ² Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈ Π±Π»ΠΎΠΊΠΎΠ².
ΠΠ»Ρ AES NIST Π²ΡΠ±ΡΠ°Π» ΡΡΠ΅Ρ ΡΠ»Π΅Π½ΠΎΠ² ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° Rijndael, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ Π±Π»ΠΎΠΊΠ° 128 Π±ΠΈΡ, Π½ΠΎ ΡΡΠΈ ΡΠ°Π·Π½ΡΠ΅ Π΄Π»ΠΈΠ½Ρ ΠΊΠ»ΡΡΠ°: 128, 192 ΠΈ 256 Π±ΠΈΡ.
AES Π±ΡΠ» ΠΏΡΠΈΠ½ΡΡ ΠΏΡΠ°Π²ΠΈΡΠ΅Π»ΡΡΡΠ²ΠΎΠΌ Π‘Π¨Π ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌ ΠΌΠΈΡΠ΅. ΠΠ½ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ Π‘ΡΠ°Π½Π΄Π°ΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
(des), ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡΠΉ Π² 1977 Π³ΠΎΠ΄Ρ.
ΠΠ»Π³ΠΎΡΠΈΡΠΌ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ AES, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ Ρ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ, ΡΠΎ Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΊΠ»ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ.
AES Π²ΡΡΡΠΏΠΈΠ» Π² ΡΠΈΠ»Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ° ΡΠ΅Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠ°Π²ΠΈΡΠ΅Π»ΡΡΡΠ²Π° 26 ΠΌΠ°Ρ 2002 Π³. ΠΏΠΎΡΠ»Π΅ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΌΠΈΠ½ΠΈΡΡΡΠΎΠΌ ΡΠΎΡΠ³ΠΎΠ²Π»ΠΈ.AES Π²ΠΊΠ»ΡΡΠ΅Π½ Π² ISO / IEC 18033-3.
AES Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ
ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΠΏΠ°ΠΊΠ΅ΡΠ°Ρ
ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΌ (ΠΈ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ) ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π½ΡΠΌ ΠΠ³Π΅Π½ΡΡΡΠ²ΠΎΠΌ Π½Π°ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ (NSA).
Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π² ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠΌ NSA ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ (ΡΠΌ. Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ AES Π½ΠΈΠΆΠ΅).
Π Π΅ΡΡΡΡΡ:
.
Rijndael Encryption — ΠΡΠΎΡΡΠΎΠ΅ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠΎΠΊ ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²
Symmetric Ciphers Online ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΡΠΈΡΡΠΎΠ²Π°ΡΡ ΠΈΠ»ΠΈ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ
ΠΎΡΠΎΡΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ
ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ
Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ AES, 3DES ΠΈΠ»ΠΈ BLOWFISH.
Π‘ΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ (ΠΈΠ»ΠΈ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ
ΠΎΠΆΠΈΠ΅ Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ
view) ΠΊΠ»ΡΡΠΈ ΠΊΠ°ΠΊ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΠ½ΠΈ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ
Π±ΡΡΡ Π»Π΅Π³ΠΊΠΎ Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌΡΠΌ ΠΈ ΡΠΏΠΎΡΠΎΠ±Π½ΡΠΌ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π΄Π°ΠΆΠ΅ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΡ ΡΠ΄ΠΎΠ±Π½Ρ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π½Π°Π΅Ρ
ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠΉ Π΄Π»Ρ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΠΊΠΈ Π΅Π³ΠΎ
ΡΠ°ΡΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ — Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΡΠ½ΠΎΠ²Π°Π½Ρ Π½Π°
ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΡ. ΠΡΠ»ΠΈ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ
ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΡΠΎΡΠΎΠ½Π°ΠΌΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠΌΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈ
Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ. Π’Π°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
Π³ΠΈΠ±ΡΠΈΠ΄Π½ΡΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄
ΡΡΠΎ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
Π°ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΡ.
Π‘ΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΡ ΡΠ²Π»ΡΡΡΡΡ Π±Π°Π·ΠΎΠ²ΡΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ
ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠΈΡΡΠ΅ΠΌ ΠΈ
ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠΌΠΏΠ΅Π½ΡΠΈΡΡΡΡ ΠΈΡ
Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ.
Π‘ΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΡ ΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π»ΠΈΠ±ΠΎ Π²
Π±Π»ΠΎΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ ΠΈΠ»ΠΈ Π²
ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΎΠ±Π° ΡΠ΅ΠΆΠΈΠΌΠ°, Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ΅ΠΆΠΈΠΌ.
Π Π±Π»ΠΎΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠ°Π·Π±ΠΈΠ²Π°Π΅Ρ Π²Ρ
ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π°
ΠΌΠ°ΡΡΠΈΠ² Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ
Π±Π»ΠΎΠΊΠΎΠ² ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°, Π° Π·Π°ΡΠ΅ΠΌ ΡΠΈΡΡΡΠ΅Ρ ΠΈΠ»ΠΈ Π΄Π΅ΡΠΈΡΡΡΠ΅Ρ Π±Π»ΠΎΠΊΠΈ
ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ. Π ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΠΈΡΡΠ° (ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ΄ΠΈΠ½ Π±ΠΈΡ) Π²Π²ΠΎΠ΄Π°
ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΡΡΠ΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ.
Π Π±Π»ΠΎΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ, Π΅ΡΠ»ΠΈ Π±Π»ΠΎΠΊΠΈ Π±ΡΠ»ΠΈ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ
Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΡ
Π°ΡΠ°ΠΊ.ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, Π΅ΡΠ»ΠΈ Π±Ρ Π±ΡΠ»ΠΎ Π΄Π²Π° ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΡ
Π±Π»ΠΎΠΊΠ°, Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΡ
Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΡ ΠΈ ΠΊΠ»ΡΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ
ΡΠΎΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΠΌ. ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ Π±Π»ΠΎΡΠ½ΡΠ΅ ΡΠΈΡΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠ΅ΠΆΠΈΠΌΡ ΡΠ°Π±ΠΎΡΡ.
Π Π΅ΠΆΠΈΠΌΡ ΡΠ°Π±ΠΎΡΡ Π²Π²ΠΎΠ΄ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ
ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ°ΡΡΠ΅ΡΠ°. Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ / Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ
ΠΏΡΠΎΡΠ΅ΡΡ ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Ρ Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΡΠΌΡΠ³ΡΠ°Π΅Ρ
ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ ΡΠ»ΡΠΆΠΈΡΡ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ
ΡΠ΅Π»Π΅ΠΉ.Π
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ
Π²Π΅ΠΊΡΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. Π
ΡΠ°Π·Π»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΠΆΠΈΠΌΠ°ΠΌΠΈ ΡΠ°Π±ΠΎΡΡ Π±Π»ΠΎΡΠ½ΡΡ
ΡΠΈΡΡΠΎΠ² Π·Π°ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π² ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΠΎΡΠ΅ΡΠ°ΡΡΡΡ
Π²Π΅ΠΊΡΠΎΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ (ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ) Ρ Π²Ρ
ΠΎΠ΄Π½ΡΠΌ Π±Π»ΠΎΠΊΠΎΠΌ ΠΈ ΠΏΡΡΡ Π²Π΅ΠΊΡΠΎΡΠ°
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°ΡΡΠ΅ΡΠ°. ΠΠΎΡΠΎΠΊΠΎΠ²ΡΠ΅ ΡΠΈΡΡΡ ΡΠΎΡ
ΡΠ°Π½ΡΡΡΡΡ ΠΈ ΠΌΠ΅Π½ΡΡΡΡΡ
ΠΈΡ
Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Ρ ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ²Π½ΡΠΉ Π²Ρ
ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΠΊΡΠΎΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π° ΠΈΡ
Π²Ρ
ΠΎΠ΄Π΅.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΏΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ: Π΄Π°Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΏΠΎ ΡΠ΅ΡΠΈ Π² Π½Π΅Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ !
ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π½Π΅ Π²Π²ΠΎΠ΄ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΡΠΎΡΠΌΡ Π²ΡΡΠ΅
ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π°ΠΌ, ΡΡΠΎ Π²Π°ΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π½Π΅ Π±ΡΠ΄ΡΡ ΡΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠΈΡΠΎΠ²Π°Π½Ρ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Π²ΡΠ±ΠΎΡ Π’ΠΈΠΏ Π²Ρ
ΠΎΠ΄Π° , Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠΈΠΏ Π²Ρ
ΠΎΠ΄Π° —
ΡΠ΅ΠΊΡΡΠΎΠ²Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ». Π ΡΠ»ΡΡΠ°Π΅ Π²Π²ΠΎΠ΄Π° ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΠ²ΠΎΠΉ Π²Π²ΠΎΠ΄
Π² ΠΡ
ΠΎΠ΄Π½ΠΎΠΉ ΡΠ΅ΠΊΡΡ textarea 1,2 .
Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Β«ΠΠ±Π·ΠΎΡΒ», ΡΡΠΎΠ±Ρ Π²ΡΠ±ΡΠ°ΡΡ Π²Ρ
ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΠΉΠ» Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ. ΠΠ°ΡΠ΅ΠΌ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ
Ρ
ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΏΠΎΠ»Π΅ Π€ΡΠ½ΠΊΡΠΈΡ .
Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΠ»Π΅ ΠΠ΅ΠΊΡΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ (IV) ΠΈΠΌΠ΅Π΅Ρ Π²ΠΈΠ΄
ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΈΠ»ΠΈ ΡΠΊΡΡΡΠΎ.ΠΠ΅ΠΊΡΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ — ΡΡΠΎ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π±Π°ΠΉΡΠΎΠ², ΠΊΠ°ΠΆΠ΄ΡΠΉ Π±Π°ΠΉΡ
Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π² ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΠΎΠΉ ΡΠΎΡΠΌΠ΅.
ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°Π±ΠΎΡΡ Π² ΠΏΠΎΠ»Π΅ Mode ΠΈ Π²Π²Π΅Π΄ΠΈΡΠ΅ ΠΊΠ»ΡΡ Π²
ΠΏΠΎΠ»Π΅ Key . ΠΠΎΠΏΡΡΡΠΈΠΌΠ°Ρ Π΄Π»ΠΈΠ½Π° ΠΊΠ»ΡΡΠ΅ΠΉ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ
ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΡΠ½ΠΊΡΠΈΠΉ
ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π½ΠΈΠΆΠ΅. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΡΠΊΠ°ΠΆΠ΅ΡΠ΅ ΠΊΠ»ΡΡ Ρ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠΉ Π΄Π»ΠΈΠ½ΠΎΠΉ, ΠΊΠ»ΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ΄Π»Π΅Π½ Π½Π°
ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½ΡΠ»Π΅Π²ΡΡ
Π±Π°ΠΉΡΠΎΠ² Π² ΠΊΠΎΠ½ΡΠ΅. ΠΡΠΈ ΡΠΌΠ΅Π½Π΅ ΠΊΠ»ΡΡΠ° ΠΏΡΠ΅ΡΠΈΠΊΡ ΡΡΠ½ΠΊΡΠΈΠΈ sha1 (key) Π±ΡΠ΄Π΅Ρ
Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π΅ IV.ΠΡ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ IV.
Π€ΡΠ½ΠΊΡΠΈΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΄ΠΎΠ±ΡΡΠ²Π°. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Π΅ΠΉ ΠΏΠΎΠ΄
ΠΠ»ΡΡ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ, Π²Π²ΠΎΠ΄ΠΈΡΡΡ Π»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ°
ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡ ΠΈΠ»ΠΈ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π½Π°ΠΆΠΌΠΈΡΠ΅ Β«ΠΠ°ΡΠΈΡΡΠΎΠ²Π°ΡΡ!Β» ΠΈΠ»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡ Β«Π Π°ΡΡΠΈΡΡΠΎΠ²Π°ΡΡ!Β» ΠΊΠ½ΠΎΠΏΠΊΠ°
Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, Ρ
ΠΎΡΠΈΡΠ΅ Π»ΠΈ Π²Ρ, ΡΡΠΎΠ±Ρ Π²Ρ
ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½ΠΎ ΠΈΠ»ΠΈ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°Π½ΠΎ.
ΠΡΡ
ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π² ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°Π³ΡΡΠΆΠ΅Π½ΠΎ ΠΊΠ°ΠΊ
Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΡΠ°ΠΉΠ».Π€ΠΎΡΠΌΠ°Ρ Π²ΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° — ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ Π΄Π°ΠΌΠΏ Π΄Π²ΠΎΠΈΡΠ½ΡΡ
Π΄Π°Π½Π½ΡΡ
.
ΠΠ΅ΠΊΡΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΊ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π° Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π°.
ΠΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ | ΠΠ»ΠΈΠ½Π° ΠΊΠ»ΡΡΠ° | ΠΠ»ΠΈΠ½Π° Π²Π΅ΠΊΡΠΎΡΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ (Π²ΡΠ΅ ΡΠ΅ΠΆΠΈΠΌΡ) | ||
---|---|---|---|---|
Π Π±Π°ΠΉΡΠ°Ρ | Π Π±ΠΈΡΠ°Ρ | Π Π±Π°ΠΉΡΠ°Ρ | Π Π±ΠΈΡΠ°Ρ | |
AES | 16, 24 ΠΈΠ»ΠΈ 32 | 128, 192 ΠΈΠ»ΠΈ 256 | 16 | 128 |
DES | 1-8 Π±Π°ΠΉΡΠΎΠ² | 8-64 | 16 | 128 |
Π’Π ΠΠΠΠΠΠ | ΠΡ 1 Π΄ΠΎ 24 | ΠΎΡ 8 Π΄ΠΎ 192 | 16 | 128 |
BLOWFISH | 1 Π΄ΠΎ 56 | 8 Π΄ΠΎ 448 | 16 | 128 |
BLOWFISH-compat | ΠΎΡ 1 Π΄ΠΎ 56 | ΠΎΡ 8 Π΄ΠΎ 448 | 16 | 128 |
RIJNDAEL-256 | ΠΎΡ 1 Π΄ΠΎ 32 | ΠΎΡ 8 Π΄ΠΎ 256 | 64 | 512 |
R4 | 1 Π΄ΠΎ 256 | 8 Π΄ΠΎ 2048 | — | — |
SERPENT | 1 Π΄ΠΎ 32 | 8 Π΄ΠΎ 256 | 32 | 256 |
ΠΠΠ Π Π«ΠΠΠ | ΠΎΡ 1 Π΄ΠΎ 32 | ΠΎΡ 8 Π΄ΠΎ 256 | 32 | 256 |
Π’Π°Π±Π»ΠΈΡΠ° 1.ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ Π΄Π»ΠΈΠ½Ρ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈ Π΄Π»ΠΈΠ½Ρ IV
1 ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΡΠ°Π±ΡΠ»ΡΡΠΎΡΡ ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΡΠ²Π°Π΅ΡΠ΅ ΡΡΡΠΎΠΊΡ.
2 Π Π²Π°ΡΠ΅ΠΌ ΡΠ°ΡΠΏΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π°Π²ΡΠΎΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π²Π²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°.
ΠΠ²ΡΠΎΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π»ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠΎΠ»Ρ ΠΡ
ΠΎΠ΄Π½ΠΎΠΉ ΡΠ΅ΠΊΡΡ Π²
ΡΠΎΡΠΌΠ° ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° ΠΈΠ»ΠΈ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ,
Π½Π°ΠΆΠ°Π² Π½Π° Β«ΠΠ«ΠΠΒ» ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠΈΠΏ Π²Π²ΠΎΠ΄Π° ΠΏΠΎΠ΄ Π’Π΅ΠΊΡΡ Π²Π²ΠΎΠ΄Π°
ΠΏΠΎΠ»Π΅.
ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π²Π²ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ — 131 072 ΡΠΈΠΌΠ²ΠΎΠ»Π°.
ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π²Ρ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° — 2 097 152 Π±Π°ΠΉΡΠ°.
.Π¨ΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅
AES — ΠΡΠΎΡΡΠΎΠ΅ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠΎΠΊ ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²
Symmetric Ciphers Online ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΡΠΈΡΡΠΎΠ²Π°ΡΡ ΠΈΠ»ΠΈ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ
ΠΎΡΠΎΡΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ
ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ
Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ AES, 3DES ΠΈΠ»ΠΈ BLOWFISH.
Π‘ΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ (ΠΈΠ»ΠΈ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ
ΠΎΠΆΠΈΠ΅ Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ
view) ΠΊΠ»ΡΡΠΈ ΠΊΠ°ΠΊ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΠ½ΠΈ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ
Π±ΡΡΡ Π»Π΅Π³ΠΊΠΎ Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌΡΠΌ ΠΈ ΡΠΏΠΎΡΠΎΠ±Π½ΡΠΌ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π΄Π°ΠΆΠ΅ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΡ ΡΠ΄ΠΎΠ±Π½Ρ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π½Π°Π΅Ρ
ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠΉ Π΄Π»Ρ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΠΊΠΈ Π΅Π³ΠΎ
ΡΠ°ΡΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ — Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΡΠ½ΠΎΠ²Π°Π½Ρ Π½Π°
ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΡ. ΠΡΠ»ΠΈ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ
ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΡΠΎΡΠΎΠ½Π°ΠΌΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠΌΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈ
Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ. Π’Π°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
Π³ΠΈΠ±ΡΠΈΠ΄Π½ΡΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄
ΡΡΠΎ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
Π°ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΡ.
Π‘ΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΡ ΡΠ²Π»ΡΡΡΡΡ Π±Π°Π·ΠΎΠ²ΡΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ
ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠΈΡΡΠ΅ΠΌ ΠΈ
ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠΌΠΏΠ΅Π½ΡΠΈΡΡΡΡ ΠΈΡ
Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ.
Π‘ΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΡ ΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π»ΠΈΠ±ΠΎ Π²
Π±Π»ΠΎΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ ΠΈΠ»ΠΈ Π²
ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΎΠ±Π° ΡΠ΅ΠΆΠΈΠΌΠ°, Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ΅ΠΆΠΈΠΌ.
Π Π±Π»ΠΎΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠ°Π·Π±ΠΈΠ²Π°Π΅Ρ Π²Ρ
ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π°
ΠΌΠ°ΡΡΠΈΠ² Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ
Π±Π»ΠΎΠΊΠΎΠ² ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°, Π° Π·Π°ΡΠ΅ΠΌ ΡΠΈΡΡΡΠ΅Ρ ΠΈΠ»ΠΈ Π΄Π΅ΡΠΈΡΡΡΠ΅Ρ Π±Π»ΠΎΠΊΠΈ
ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ. Π ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΠΈΡΡΠ° (ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ΄ΠΈΠ½ Π±ΠΈΡ) Π²Π²ΠΎΠ΄Π°
ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΡΡΠ΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ.
Π Π±Π»ΠΎΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ, Π΅ΡΠ»ΠΈ Π±Π»ΠΎΠΊΠΈ Π±ΡΠ»ΠΈ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ
Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΡ
Π°ΡΠ°ΠΊ.ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, Π΅ΡΠ»ΠΈ Π±Ρ Π±ΡΠ»ΠΎ Π΄Π²Π° ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΡ
Π±Π»ΠΎΠΊΠ°, Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΡ
Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΡ ΠΈ ΠΊΠ»ΡΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ
ΡΠΎΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΠΌ. ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ Π±Π»ΠΎΡΠ½ΡΠ΅ ΡΠΈΡΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠ΅ΠΆΠΈΠΌΡ ΡΠ°Π±ΠΎΡΡ.
Π Π΅ΠΆΠΈΠΌΡ ΡΠ°Π±ΠΎΡΡ Π²Π²ΠΎΠ΄ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ
ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ°ΡΡΠ΅ΡΠ°. Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ / Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ
ΠΏΡΠΎΡΠ΅ΡΡ ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Ρ Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΡΠΌΡΠ³ΡΠ°Π΅Ρ
ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ ΡΠ»ΡΠΆΠΈΡΡ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ
ΡΠ΅Π»Π΅ΠΉ.Π
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ
Π²Π΅ΠΊΡΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. Π
ΡΠ°Π·Π»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΠΆΠΈΠΌΠ°ΠΌΠΈ ΡΠ°Π±ΠΎΡΡ Π±Π»ΠΎΡΠ½ΡΡ
ΡΠΈΡΡΠΎΠ² Π·Π°ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π² ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΠΎΡΠ΅ΡΠ°ΡΡΡΡ
Π²Π΅ΠΊΡΠΎΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ (ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ) Ρ Π²Ρ
ΠΎΠ΄Π½ΡΠΌ Π±Π»ΠΎΠΊΠΎΠΌ ΠΈ ΠΏΡΡΡ Π²Π΅ΠΊΡΠΎΡΠ°
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°ΡΡΠ΅ΡΠ°. ΠΠΎΡΠΎΠΊΠΎΠ²ΡΠ΅ ΡΠΈΡΡΡ ΡΠΎΡ
ΡΠ°Π½ΡΡΡΡΡ ΠΈ ΠΌΠ΅Π½ΡΡΡΡΡ
ΠΈΡ
Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Ρ ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ²Π½ΡΠΉ Π²Ρ
ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΠΊΡΠΎΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π° ΠΈΡ
Π²Ρ
ΠΎΠ΄Π΅.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΏΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ: Π΄Π°Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΏΠΎ ΡΠ΅ΡΠΈ Π² Π½Π΅Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ !
ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π½Π΅ Π²Π²ΠΎΠ΄ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΡΠΎΡΠΌΡ Π²ΡΡΠ΅
ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π°ΠΌ, ΡΡΠΎ Π²Π°ΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π½Π΅ Π±ΡΠ΄ΡΡ ΡΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠΈΡΠΎΠ²Π°Π½Ρ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Π²ΡΠ±ΠΎΡ Π’ΠΈΠΏ Π²Ρ
ΠΎΠ΄Π° , Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠΈΠΏ Π²Ρ
ΠΎΠ΄Π° —
ΡΠ΅ΠΊΡΡΠΎΠ²Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ». Π ΡΠ»ΡΡΠ°Π΅ Π²Π²ΠΎΠ΄Π° ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΠ²ΠΎΠΉ Π²Π²ΠΎΠ΄
Π² ΠΡ
ΠΎΠ΄Π½ΠΎΠΉ ΡΠ΅ΠΊΡΡ textarea 1,2 .
Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Β«ΠΠ±Π·ΠΎΡΒ», ΡΡΠΎΠ±Ρ Π²ΡΠ±ΡΠ°ΡΡ Π²Ρ
ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΠΉΠ» Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ. ΠΠ°ΡΠ΅ΠΌ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ
Ρ
ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΏΠΎΠ»Π΅ Π€ΡΠ½ΠΊΡΠΈΡ .
Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΠ»Π΅ ΠΠ΅ΠΊΡΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ (IV) ΠΈΠΌΠ΅Π΅Ρ Π²ΠΈΠ΄
ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΈΠ»ΠΈ ΡΠΊΡΡΡΠΎ.ΠΠ΅ΠΊΡΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ — ΡΡΠΎ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π±Π°ΠΉΡΠΎΠ², ΠΊΠ°ΠΆΠ΄ΡΠΉ Π±Π°ΠΉΡ
Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π² ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΠΎΠΉ ΡΠΎΡΠΌΠ΅.
ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°Π±ΠΎΡΡ Π² ΠΏΠΎΠ»Π΅ Mode ΠΈ Π²Π²Π΅Π΄ΠΈΡΠ΅ ΠΊΠ»ΡΡ Π²
ΠΏΠΎΠ»Π΅ Key . ΠΠΎΠΏΡΡΡΠΈΠΌΠ°Ρ Π΄Π»ΠΈΠ½Π° ΠΊΠ»ΡΡΠ΅ΠΉ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ
ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΡΠ½ΠΊΡΠΈΠΉ
ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π½ΠΈΠΆΠ΅. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΡΠΊΠ°ΠΆΠ΅ΡΠ΅ ΠΊΠ»ΡΡ Ρ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠΉ Π΄Π»ΠΈΠ½ΠΎΠΉ, ΠΊΠ»ΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ΄Π»Π΅Π½ Π½Π°
ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½ΡΠ»Π΅Π²ΡΡ
Π±Π°ΠΉΡΠΎΠ² Π² ΠΊΠΎΠ½ΡΠ΅. ΠΡΠΈ ΡΠΌΠ΅Π½Π΅ ΠΊΠ»ΡΡΠ° ΠΏΡΠ΅ΡΠΈΠΊΡ ΡΡΠ½ΠΊΡΠΈΠΈ sha1 (key) Π±ΡΠ΄Π΅Ρ
Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π΅ IV.ΠΡ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ IV.
Π€ΡΠ½ΠΊΡΠΈΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΄ΠΎΠ±ΡΡΠ²Π°. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Π΅ΠΉ ΠΏΠΎΠ΄
ΠΠ»ΡΡ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ, Π²Π²ΠΎΠ΄ΠΈΡΡΡ Π»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ°
ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡ ΠΈΠ»ΠΈ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π½Π°ΠΆΠΌΠΈΡΠ΅ Β«ΠΠ°ΡΠΈΡΡΠΎΠ²Π°ΡΡ!Β» ΠΈΠ»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡ Β«Π Π°ΡΡΠΈΡΡΠΎΠ²Π°ΡΡ!Β» ΠΊΠ½ΠΎΠΏΠΊΠ°
Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, Ρ
ΠΎΡΠΈΡΠ΅ Π»ΠΈ Π²Ρ, ΡΡΠΎΠ±Ρ Π²Ρ
ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½ΠΎ ΠΈΠ»ΠΈ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°Π½ΠΎ.
ΠΡΡ
ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π² ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°Π³ΡΡΠΆΠ΅Π½ΠΎ ΠΊΠ°ΠΊ
Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΡΠ°ΠΉΠ».Π€ΠΎΡΠΌΠ°Ρ Π²ΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° — ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ Π΄Π°ΠΌΠΏ Π΄Π²ΠΎΠΈΡΠ½ΡΡ
Π΄Π°Π½Π½ΡΡ
.
ΠΠ΅ΠΊΡΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΊ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π° Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π°.
ΠΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ | ΠΠ»ΠΈΠ½Π° ΠΊΠ»ΡΡΠ° | ΠΠ»ΠΈΠ½Π° Π²Π΅ΠΊΡΠΎΡΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ (Π²ΡΠ΅ ΡΠ΅ΠΆΠΈΠΌΡ) | ||
---|---|---|---|---|
Π Π±Π°ΠΉΡΠ°Ρ | Π Π±ΠΈΡΠ°Ρ | Π Π±Π°ΠΉΡΠ°Ρ | Π Π±ΠΈΡΠ°Ρ | |
AES | 16, 24 ΠΈΠ»ΠΈ 32 | 128, 192 ΠΈΠ»ΠΈ 256 | 16 | 128 |
DES | 1-8 Π±Π°ΠΉΡΠΎΠ² | 8-64 | 16 | 128 |
Π’Π ΠΠΠΠΠΠ | ΠΡ 1 Π΄ΠΎ 24 | ΠΎΡ 8 Π΄ΠΎ 192 | 16 | 128 |
BLOWFISH | 1 Π΄ΠΎ 56 | 8 Π΄ΠΎ 448 | 16 | 128 |
BLOWFISH-compat | ΠΎΡ 1 Π΄ΠΎ 56 | ΠΎΡ 8 Π΄ΠΎ 448 | 16 | 128 |
RIJNDAEL-256 | ΠΎΡ 1 Π΄ΠΎ 32 | ΠΎΡ 8 Π΄ΠΎ 256 | 64 | 512 |
R4 | 1 Π΄ΠΎ 256 | 8 Π΄ΠΎ 2048 | — | — |
SERPENT | 1 Π΄ΠΎ 32 | 8 Π΄ΠΎ 256 | 32 | 256 |
ΠΠΠ Π Π«ΠΠΠ | ΠΎΡ 1 Π΄ΠΎ 32 | ΠΎΡ 8 Π΄ΠΎ 256 | 32 | 256 |
Π’Π°Π±Π»ΠΈΡΠ° 1.ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ Π΄Π»ΠΈΠ½Ρ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈ Π΄Π»ΠΈΠ½Ρ IV
1 ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΡΠ°Π±ΡΠ»ΡΡΠΎΡΡ ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΡΠ²Π°Π΅ΡΠ΅ ΡΡΡΠΎΠΊΡ.
2 Π Π²Π°ΡΠ΅ΠΌ ΡΠ°ΡΠΏΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π°Π²ΡΠΎΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π²Π²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°.
ΠΠ²ΡΠΎΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π»ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠΎΠ»Ρ ΠΡ
ΠΎΠ΄Π½ΠΎΠΉ ΡΠ΅ΠΊΡΡ Π²
ΡΠΎΡΠΌΠ° ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° ΠΈΠ»ΠΈ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ,
Π½Π°ΠΆΠ°Π² Π½Π° Β«ΠΠ«ΠΠΒ» ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠΈΠΏ Π²Π²ΠΎΠ΄Π° ΠΏΠΎΠ΄ Π’Π΅ΠΊΡΡ Π²Π²ΠΎΠ΄Π°
ΠΏΠΎΠ»Π΅.
ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π²Π²ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ — 131 072 ΡΠΈΠΌΠ²ΠΎΠ»Π°.
ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π²Ρ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° — 2 097 152 Π±Π°ΠΉΡΠ°.
.