RSA — ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ online
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ:
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅: RSA (Rivest-Shamir-Adleman) ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΠ΅ΡΠ²ΡΡ ΠΊΡΠΈΠΏΡΠΎΡΠΈΡΡΠ΅ΠΌ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ ΠΈ ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ . Π ΡΠ°ΠΊΠΎΠΉ ΠΊΡΠΈΠΏΡΠΎΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠ»ΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΊΠ»ΡΡΠ° ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² ΡΠ΅ΠΊΡΠ΅ΡΠ΅ (private). Π RSA ΡΡΠ° Π°ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡ ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ°ΠΊΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ Π΄Π²ΡΡ Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΡΡΡΡ ΡΠΈΡΠ΅Π», «ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³Π°». ΠΠ±Π±ΡΠ΅Π²ΠΈΠ°ΡΡΡΠ° RSA ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π½Π°ΡΠ°Π»ΡΠ½ΡΡ Π±ΡΠΊΠ² ΡΠ°ΠΌΠΈΠ»ΠΈΠΉ Π ΠΎΠ½Π° Π ΠΈΠ²Π΅ΡΡΠ°, ΠΠ΄ΠΈ Π¨Π°ΠΌΠΈΡΠ° ΠΈ ΠΠ΅ΠΎΠ½Π°ΡΠ΄Π° ΠΠ΄Π»Π΅ΠΌΠ°Π½Π°, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Π»ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π² 1978 Π³ΠΎΠ΄Ρ. ΠΠ»ΠΈΡΡΠΎΡΠ΄ ΠΠΎΠΊΡ, Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Π² ΠΡΠΈΡΠ°Π½ΡΠΊΠΎΠΌ ΡΠ°Π·Π²Π΅Π΄ΡΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΠΏΡΠ°Π²ΠΈΡΠ΅Π»ΡΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ (GCHQ), ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π» ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π² 1973 Π³ΠΎΠ΄Ρ, Π½ΠΎ ΡΡΠΎ Π½Π΅ Π±ΡΠ»ΠΎ ΡΠ°ΡΡΠ΅ΠΊΡΠ΅ΡΠ΅Π½ΠΎ Π΄ΠΎ 1997 Π³ΠΎΠ΄Π°.

ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ RSA ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅Ρ ΠΎΡΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π΄Π²ΡΡ Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΡΡΡΡ ΡΠΈΡΠ΅Π» Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ. ΠΡΠΎΡΡΡΠ΅ ΡΠΈΡΠ»Π° Π΄ΠΎΠ»ΠΆΠ½Ρ Ρ ΡΠ°Π½ΠΈΡΡΡΡ Π² ΡΠ΅ΠΊΡΠ΅ΡΠ΅. ΠΡΠ±ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡΡ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΈ Π΅ΡΠ»ΠΈ ΠΎΡΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²Π΅Π»ΠΈΠΊ, ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΡ, ΠΊΡΠΎ Π·Π½Π°Π΅Ρ ΠΏΡΠΎΡΡΡΠ΅ ΡΠΈΡΠ»Π°, ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. ΠΠ°ΡΡΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ RSA ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ ΠΊΠ°ΠΊ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° RSA. ΠΡΡΠ°Π΅ΡΡΡ ΠΎΡΠΊΡΡΡΡΠΌ Π²ΠΎΠΏΡΠΎΡ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³Π°.
RSA ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠΌ, ΠΈ ΠΈΠ·-Π·Π° ΡΡΠΎΠ³ΠΎ ΠΎΠ½ ΡΠ΅ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΡΡΠΌΠΎΠ³ΠΎ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ
Π΄Π°Π½Π½ΡΡ
.
Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ RSA ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΎΠ±ΡΠΈΠ΅ ΠΊΠ»ΡΡΠΈ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΌΠ°ΡΡΠΎΠ²ΡΠ΅
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ-Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠΉ ΡΠΊΠΎΡΠΎΡΡΠΈ.
Π Π΅ΡΡΡΡΡ:
SHA512 — ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ online
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅: SHA512 — Ρ Π΅Ρ-ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ· ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² SHA-2 ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Β«ΠΎΡΠΏΠ΅ΡΠ°ΡΠΊΠΎΠ²Β» ΠΈΠ»ΠΈ Β«Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡΠΎΠ²Β» Π΄Π»Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ. ΠΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ , ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ Π·Π°ΡΠΈΡΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.

SHA-256 ΠΈ SHA-512 ΡΠ²Π»ΡΡΡΡΡ Π½ΠΎΠ²ΡΠΌΠΈ Ρ
ΡΡ-ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ, Π²ΡΡΠΈΡΠ»Π΅Π½Π½ΡΠΌΠΈ Ρ 32-ΡΠ°Π·ΡΡΠ΄Π½ΡΠΌΠΈ ΠΈ 64-ΡΠ°Π·ΡΡΠ΄Π½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ. ΠΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ΄Π²ΠΈΠ³Π° ΠΈ Π°Π΄Π΄ΠΈΡΠΈΠ²Π½ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ,
Π½ΠΎ ΠΈΡ
ΡΡΡΡΠΊΡΡΡΡ Π² ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½Ρ, ΠΎΡΠ»ΠΈΡΠ°ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ°ΡΠ½Π΄ΠΎΠ². SHA-224 ΠΈ SHA-384 ΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠΎΡΡΠΎ ΡΡΠ΅ΡΠ΅Π½Π½ΡΠΌΠΈ Π²Π΅ΡΡΠΈΡΠΌΠΈ ΠΏΠ΅ΡΠ²ΡΡ
Π΄Π²ΡΡ
, Π²ΡΡΠΈΡΠ»Π΅Π½Π½ΡΠΌΠΈ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ
Π½Π°ΡΠ°Π»ΡΠ½ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ. SHA-512/224 ΠΈ SHA-512/256 ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΡΡΠ΅ΡΠ΅Π½Π½ΡΠΌΠΈ Π²Π΅ΡΡΠΈΡΠΌΠΈ SHA-512, Π½ΠΎ Π½Π°ΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π³Π΅Π½Π΅ΡΠΈΡΡΡΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π² ΡΠ΅Π΄Π΅ΡΠ°Π»ΡΠ½ΡΡ
ΡΡΠ°Π½Π΄Π°ΡΡΠ°Ρ
ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ (FIPS) PUB 180-4. SHA-2 Π±ΡΠ»ΠΎ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ Π² 2001 ΠΠ°ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ ΠΠ½ΡΡΠΈΡΡΡΠΎΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ² ΠΈ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ (NIST) Π€Π΅Π΄Π΅ΡΠ°Π»ΡΠ½ΡΠΉ ΡΡΠ°Π½Π΄Π°ΡΡ Π‘Π¨Π (FIPS).
Π Π΅ΡΡΡΡΡ:
ΠΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½ 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 = a7a6a5a4a3a2

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(2
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 + r4
ΠΠ³ΠΎ 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. 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}
Π ΡΡΠΌΠΌΠ΅ ΡΡΠΈ ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π΄Π°ΡΡ Π°ΡΠΈΠ½Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅:
ΠΠ΅ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΡΡΡΠΎΠ΅Π½Π° ΡΡΠ° ΠΌΠ°ΡΡΠΈΡΠ° ΠΈΠ· Π±ΠΈΡΠΎΠ². 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.
ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ 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 ΠΈ ΡΠ»ΡΠΆΠ±Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΠΊΠ»ΡΡΠ΅ΠΉ
- 000Z» data-article-date-source=»ms.date»>04/01/2019
- Π§ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ 11Β ΠΌΠΈΠ½
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅
Π‘Π»ΡΠΆΠ±Ρ ΠΌΡΠ»ΡΡΠΈΠΌΠ΅Π΄ΠΈΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ HTTP Live Streaming (HLS) ΠΈ Smooth Streaming, Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ 128-Π±ΠΈΡΠ½ΡΡ
ΠΊΠ»ΡΡΠ΅ΠΉ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ AES.You can use Media Services to deliver HTTP Live Streaming (HLS) and Smooth Streaming encrypted with the AES by using 128-bit encryption keys. ΠΠ½ΠΈ ΡΠ°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ ΡΠ»ΡΠΆΠ±Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΠΊΠ»ΡΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠ»ΡΡΠΈ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ.Media Services also provides the key delivery service that delivers encryption keys to authorized users. ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ Π·Π°ΡΠΈΡΡΠΎΠ²Π°ΡΡ ΡΠ΅ΡΡΡΡ-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»ΡΠΆΠ± ΠΌΡΠ»ΡΡΠΈΠΌΠ΅Π΄ΠΈΠ°, ΡΠΎ ΡΠ²ΡΠΆΠΈΡΠ΅ Ρ Π½ΠΈΠΌ ΠΊΠ»ΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π½Π°ΡΡΡΠΎΠΉΡΠ΅ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ Π΄Π»Ρ ΠΊΠ»ΡΡΠ°. If you want Media Services to encrypt an asset, you associate an encryption key with the asset and also configure authorization policies for the key. ΠΠΎΠ³Π΄Π° ΠΏΠΎΡΠΎΠΊ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°ΡΠ΅Π»Π΅ΠΌ, ΡΠ»ΡΠΆΠ±Ρ ΠΌΡΠ»ΡΡΠΈΠΌΠ΅Π΄ΠΈΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΊΠ»ΡΡ Π΄Π»Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ AES.When a stream is requested by a player, Media Services uses the specified key to dynamically encrypt your content by using AES encryption. Π§ΡΠΎΠ±Ρ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°ΡΡ ΠΏΠΎΡΠΎΠΊ, ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°ΡΠ΅Π»Ρ Π·Π°ΠΏΡΠΎΡΠΈΡ ΠΊΠ»ΡΡ Ρ ΡΠ»ΡΠΆΠ±Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΠΊΠ»ΡΡΠ΅ΠΉ.To decrypt the stream, the player requests the key from the key delivery service. Π§ΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, Π΅ΡΡΡ Π»ΠΈ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠ°Π²ΠΎ Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ°, ΡΠ»ΡΠΆΠ±Π° ΠΎΡΠ΅Π½ΠΈΠ²Π°Π΅Ρ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ, Π·Π°Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΊΠ»ΡΡΠ°.To determine whether the user is authorized to get the key, the service evaluates the authorization policies that you specified for the key.
Π‘Π»ΡΠΆΠ±Ρ ΠΌΡΠ»ΡΡΠΈΠΌΠ΅Π΄ΠΈΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ ΠΊΠ»ΡΡΠΈ.Media Services supports multiple ways of authenticating users who make key requests. ΠΠ»Ρ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠ»ΡΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ: ΠΎΡΠΊΡΡΡΠ°Ρ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ ΠΈΠ»ΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ°ΡΠΊΠ΅ΡΠ°.The content key authorization policy can have one or more authorization restrictions, either open or token restrictions. ΠΡΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ°ΡΠΊΠ΅ΡΠ° ΠΊ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΈΠ»Π°Π³Π°ΡΡΡΡ ΠΌΠ°ΡΠΊΠ΅Ρ, Π²ΡΠ΄Π°Π½Π½ΡΠΉ ΡΠ»ΡΠΆΠ±ΠΎΠΉ ΠΌΠ°ΡΠΊΠ΅ΡΠΎΠ² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ (STS).The token-restricted policy must be accompanied by a token issued by a security token service (STS). Π‘Π»ΡΠΆΠ±Ρ ΠΌΡΠ»ΡΡΠΈΠΌΠ΅Π΄ΠΈΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΌΠ°ΡΠΊΠ΅ΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ°Ρ
ΠΏΡΠΎΡΡΠΎΠ³ΠΎ Π²Π΅Π±-ΠΌΠ°ΡΠΊΠ΅ΡΠ° (SWT) ΠΈ JSON Web Token (JWT).Media Services supports tokens in the simple web token (SWT) and JSON Web Token (JWT) formats. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΌ. Π² ΡΡΠ°ΡΡΠ΅ ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ Π΄Π»Ρ ΠΊΠ»ΡΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ.For more information, see Configure the content key’s authorization policy.
Π§ΡΠΎΠ±Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°ΠΌΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠ΅ΡΡ ΡΠ΅ΡΡΡΡ-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π½Π°Π±ΠΎΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠΊΠΎΡΠΎΡΡΠ½ΡΡ
MP4-ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΠΊΠΎΡΠΎΡΡΠ½ΡΡ
ΠΈΡΡ
ΠΎΠ΄Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² Smooth Streaming. To take advantage of dynamic encryption, you need to have an asset that contains a set of multi-bitrate MP4 files or multi-bitrate Smooth Streaming source files. ΠΠ°ΠΌ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΡ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ Π΄Π»Ρ ΡΠ΅ΡΡΡΡΠ°-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° (ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π΄Π°Π»Π΅Π΅ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅).You also need to configure the delivery policy for the asset (described later in this article). Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΡΠΌΠ°ΡΠ°, ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π² URL-Π°Π΄ΡΠ΅ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ, ΡΠ΅ΡΠ²Π΅Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΏΠΎ Π·Π°ΠΏΡΠΎΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΏΠΎ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΌΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ.Then, based on the format specified in the streaming URL, the on-demand streaming server ensures that the stream is delivered in the protocol you selected. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Ρ
ΡΠ°Π½ΠΈΡΡ ΠΈ ΠΎΠΏΠ»Π°ΡΠΈΠ²Π°ΡΡ ΡΠ°ΠΉΠ»Ρ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ.As a result, you need to store and pay only for the files in single storage format. Π‘Π»ΡΠΆΠ±Ρ ΠΌΡΠ»ΡΡΠΈΠΌΠ΅Π΄ΠΈΠ° ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΎΡΠ²Π΅Ρ Ρ ΡΡΠ΅ΡΠΎΠΌ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΊΠ»ΠΈΠ΅Π½ΡΠ°.Media Services builds and serves the appropriate response based on requests from a client.
ΠΡΠ° ΡΡΠ°ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΌΡΠ»ΡΡΠΈΠΌΠ΅Π΄ΠΈΠ°.This article is useful to developers who work on applications that deliver protected media. Π Π½Π΅ΠΉ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ Π΄Π»Ρ ΡΠ»ΡΠΆΠ±Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΠΊΠ»ΡΡΠ΅ΠΉ, ΡΡΠΎΠ±Ρ ΡΠΎΠ»ΡΠΊΠΎ Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΊΠ»ΡΡΠΈ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ,The article shows you how to configure the key delivery service with authorization policies so that only authorized clients can receive encryption keys. Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ.It also shows how to use dynamic encryption.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠΈΡΡΠΎΠ²Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Advanced Encryption Standard (AES) Π΄Π»Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ Π² Safari Π½Π° macOS, ΡΠΌ. Π² ΡΡΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Π±Π»ΠΎΠ³Π°.For information on how to encrypt content with the Advanced Encryption Standard (AES) for delivery to Safari on macOS, see this blog post.
ΠΠ±Π·ΠΎΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π·Π°ΡΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΌΡΠ»ΡΡΠΈΠΌΠ΅Π΄ΠΈΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ AES ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π² ΡΡΠΎΠΌ Π²ΠΈΠ΄Π΅ΠΎ.For an overview of how to protect your media content with AES encryption, see this video.
Π Π°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ AES-128 ΠΈ ΡΠ»ΡΠΆΠ±Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΠΊΠ»ΡΡΠ΅ΠΉAES-128 dynamic encryption and key delivery service workflow
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π½ΠΈΠΆΠ΅ ΠΎΠ±ΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ AES, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ»ΡΠΆΠ±Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΠΊΠ»ΡΡΠ΅ΠΉ ΡΠ»ΡΠΆΠ± ΠΌΡΠ»ΡΡΠΈΠΌΠ΅Π΄ΠΈΠ° ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅.Perform the following general steps when you encrypt your assets with AES by using the Media Services key delivery service and also by using dynamic encryption:
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ΅ΡΡΡΡ ΠΈ ΠΎΡΠΏΡΠ°Π²ΡΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π² ΡΠ΅ΡΡΡΡ.Create an asset, and upload files into the asset.
ΠΠ°ΠΊΠΎΠ΄ΠΈΡΡΠΉΡΠ΅ ΡΠ΅ΡΡΡΡ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ Π² Π½Π°Π±ΠΎΡ MP4-ΡΠ°ΠΉΠ»ΠΎΠ² Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠΊΠΎΡΠΎΡΡΡΡ.Encode the asset that contains the file to the adaptive bitrate MP4 set.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΠ»ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΈ ΡΠ²ΡΠΆΠΈΡΠ΅ Π΅Π³ΠΎ Ρ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ΅ΡΡΡΡΠΎΠΌ-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠΌ.Create a content key, and associate it with the encoded asset. Π ΡΠ»ΡΠΆΠ±Π°Ρ ΠΌΡΠ»ΡΡΠΈΠΌΠ΅Π΄ΠΈΠ° ΠΊΠ»ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠ»ΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠ°.In Media Services, the content key contains the asset’s encryption key.
ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΡ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠ»ΡΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ.Configure the content key’s authorization policy. ΠΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΡ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ Π΄Π»Ρ ΠΊΠ»ΡΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ.You must configure the content key authorization policy. ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΊΠ»ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ Π² ΠΊΠ»ΠΈΠ΅Π½Ρ, Π΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΎΠΉ.The client must meet the policy before the content key is delivered to the client.
ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΡ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ Π΄Π»Ρ ΡΠ΅ΡΡΡΡΠ°-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°.Configure the delivery policy for an asset. ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ URL-Π°Π΄ΡΠ΅Ρ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠ»ΡΡΠ° ΠΈ Π²Π΅ΠΊΡΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ (IV).The delivery policy configuration includes the key acquisition URL and an initialization vector (IV). (ΠΠ»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΠΊΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ AES-128 ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ Π²Π΅ΠΊΡΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ.) ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠ°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, MPEG-Π’ΠΠ Π, HLS, Smooth Streaming ΠΈΠ»ΠΈ Π²ΡΠ΅) ΠΈ ΡΠΈΠΏ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ½Π²Π΅ΡΡ ΠΈΠ»ΠΈ Π±Π΅Π· Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ).
(AES-128 requires the same IV for encryption and decryption.) The configuration also includes the delivery protocol (for example, MPEG-DASH, HLS, Smooth Streaming, or all) and the type of dynamic encryption (for example, envelope or no dynamic encryption).
Π ΡΠ°Π·Π½ΡΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π² ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠ΅ΡΡΡΡΠ°.You can apply a different policy to each protocol on the same asset. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ PlayReady ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Smooth ΠΈΠ»ΠΈ DASH ΠΈ ΠΊΠΎΠ½Π²Π΅ΡΡΠ½ΠΎΠ΅ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ AES ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ HLS.For example, you can apply PlayReady encryption to Smooth/DASH and an AES envelope to HLS. ΠΠΎΡΠΎΠΊΠΎΠ²Π°Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΏΠΎ ΡΠ΅ΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π² ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ΅ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ.Any protocols that aren’t defined in a delivery policy are blocked from streaming. (ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠ΅ΠΉ ΡΠΎΠ»ΡΠΊΠΎ HLS Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°.) ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΡΠ΅ΡΡΡΡΠΎΠ².(An example is if you add a single policy that specifies only HLS as the protocol.
) The exception is if you have no asset delivery policy defined at all. Π’ΠΎΠ³Π΄Π° Π²ΡΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π½Π΅Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅.Then, all protocols are allowed in the clear.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ OnDemand, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ URL-Π°Π΄ΡΠ΅Ρ Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ.Create an OnDemand locator to get a streaming URL.
Π ΡΡΠ°ΡΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ ΠΊΠ»ΡΡ Ρ ΡΠ»ΡΠΆΠ±Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΠΊΠ»ΡΡΠ΅ΠΉ.The article also shows how a client application can request a key from the key delivery service.
Π ΠΊΠΎΠ½ΡΠ΅ ΡΡΠ°ΡΡΠΈ Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ .NET.You can find a complete .NET example at the end of the article.
ΠΠ° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ.The following image demonstrates the workflow previously described. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄Π»Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΠ°ΡΠΊΠ΅Ρ.Here, the token is used for authentication.
Π ΠΎΡΡΠ°Π²ΡΠ΅ΠΉΡΡ ΡΠ°ΡΡΠΈ ΡΡΠ°ΡΡΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΡΡ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΡ, ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π° ΠΈ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΡΠ°ΡΡΠΈ Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ
Π²ΡΡΠ΅ Π·Π°Π΄Π°Ρ. The remainder of this article provides explanations, code examples, and links to topics that show you how to achieve the tasks previously described.
Π’Π΅ΠΊΡΡΠΈΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡCurrent limitations
ΠΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΡΠ΅ΡΡΡΡΠΎΠ² Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π°Π»ΠΈΡΡ Π²ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ.If you add or update your asset’s delivery policy, you must delete any existing locator and create a new locator.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΡΠ°-ΠΊ
ΠΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ 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 Encryption — ΠΡΠΎΡΡΠΎΠ΅ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠΎΠΊ ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²
Symmetric Ciphers Online ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΡΠΈΡΡΠΎΠ²Π°ΡΡ ΠΈΠ»ΠΈ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΡΠΎΡΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ AES, 3DES ΠΈΠ»ΠΈ BLOWFISH.
Π‘ΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ (ΠΈΠ»ΠΈ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ
ΠΎΠΆΠΈΠ΅ Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ
view) ΠΊΠ»ΡΡΠΈ ΠΊΠ°ΠΊ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΠ½ΠΈ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ
Π±ΡΡΡ Π»Π΅Π³ΠΊΠΎ Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌΡΠΌ ΠΈ ΡΠΏΠΎΡΠΎΠ±Π½ΡΠΌ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π΄Π°ΠΆΠ΅ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΡ ΡΠ΄ΠΎΠ±Π½Ρ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π½Π°Π΅Ρ
ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠΉ Π΄Π»Ρ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΠΊΠΈ Π΅Π³ΠΎ
ΡΠ°ΡΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ — Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΡΠ½ΠΎΠ²Π°Π½Ρ Π½Π°
ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΡ. ΠΡΠ»ΠΈ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ
ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΡΠΎΡΠΎΠ½Π°ΠΌΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠΌΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈ
Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ. Π’Π°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
Π³ΠΈΠ±ΡΠΈΠ΄Π½ΡΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄
ΡΡΠΎ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
Π°ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΡ.
Π‘ΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΡ ΡΠ²Π»ΡΡΡΡΡ Π±Π°Π·ΠΎΠ²ΡΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ
ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠΈΡΡΠ΅ΠΌ ΠΈ
ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠΌΠΏΠ΅Π½ΡΠΈΡΡΡΡ ΠΈΡ
Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ.
Π‘ΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΡ ΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π»ΠΈΠ±ΠΎ Π²
Π±Π»ΠΎΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ ΠΈΠ»ΠΈ Π²
ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΎΠ±Π° ΡΠ΅ΠΆΠΈΠΌΠ°, Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ΅ΠΆΠΈΠΌ.
Π Π±Π»ΠΎΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠ°Π·Π±ΠΈΠ²Π°Π΅Ρ Π²Ρ
ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π°
ΠΌΠ°ΡΡΠΈΠ² Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ
Π±Π»ΠΎΠΊΠΎΠ² ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°, Π° Π·Π°ΡΠ΅ΠΌ ΡΠΈΡΡΡΠ΅Ρ ΠΈΠ»ΠΈ Π΄Π΅ΡΠΈΡΡΡΠ΅Ρ Π±Π»ΠΎΠΊΠΈ
ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ. Π ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΠΈΡΡΠ° (ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ΄ΠΈΠ½ Π±ΠΈΡ) Π²Π²ΠΎΠ΄Π°
ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΡΡΠ΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ.
Π Π±Π»ΠΎΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ, Π΅ΡΠ»ΠΈ Π±Π»ΠΎΠΊΠΈ Π±ΡΠ»ΠΈ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ
Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΡ
Π°ΡΠ°ΠΊ.ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, Π΅ΡΠ»ΠΈ Π±Ρ Π±ΡΠ»ΠΎ Π΄Π²Π° ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΡ
Π±Π»ΠΎΠΊΠ°, Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΡ
Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΡ ΠΈ ΠΊΠ»ΡΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ
ΡΠΎΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΠΌ. ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ Π±Π»ΠΎΡΠ½ΡΠ΅ ΡΠΈΡΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠ΅ΠΆΠΈΠΌΡ ΡΠ°Π±ΠΎΡΡ.
Π Π΅ΠΆΠΈΠΌΡ ΡΠ°Π±ΠΎΡΡ Π²Π²ΠΎΠ΄ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ
ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ°ΡΡΠ΅ΡΠ°. Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ / Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ
ΠΏΡΠΎΡΠ΅ΡΡ ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Ρ Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΡΠΌΡΠ³ΡΠ°Π΅Ρ
ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ ΡΠ»ΡΠΆΠΈΡΡ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ
ΡΠ΅Π»Π΅ΠΉ.Π
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ
Π²Π΅ΠΊΡΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. Π
ΡΠ°Π·Π»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΠΆΠΈΠΌΠ°ΠΌΠΈ ΡΠ°Π±ΠΎΡΡ Π±Π»ΠΎΡΠ½ΡΡ
ΡΠΈΡΡΠΎΠ² Π·Π°ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π² ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΠΎΡΠ΅ΡΠ°ΡΡΡΡ
Π²Π΅ΠΊΡΠΎΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ (ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ) Ρ Π²Ρ
ΠΎΠ΄Π½ΡΠΌ Π±Π»ΠΎΠΊΠΎΠΌ ΠΈ ΠΏΡΡΡ Π²Π΅ΠΊΡΠΎΡΠ°
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°ΡΡΠ΅ΡΠ°. ΠΠΎΡΠΎΠΊΠΎΠ²ΡΠ΅ ΡΠΈΡΡΡ ΡΠΎΡ
ΡΠ°Π½ΡΡΡΡΡ ΠΈ ΠΌΠ΅Π½ΡΡΡΡΡ
ΠΈΡ
Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Ρ ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ²Π½ΡΠΉ Π²Ρ
ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΠΊΡΠΎΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π° ΠΈΡ
Π²Ρ
ΠΎΠ΄Π΅.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΏΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ: Π΄Π°Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΏΠΎ ΡΠ΅ΡΠΈ Π² Π½Π΅Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ! ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π½Π΅ Π²Π²ΠΎΠ΄ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΡΠΎΡΠΌΡ Π²ΡΡΠ΅ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π°ΠΌ, ΡΡΠΎ Π²Π°ΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π½Π΅ Π±ΡΠ΄ΡΡ ΡΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠΈΡΠΎΠ²Π°Π½Ρ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Π²ΡΠ±ΠΎΡ Π’ΠΈΠΏ Π²Ρ
ΠΎΠ΄Π° , Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠΈΠΏ Π²Ρ
ΠΎΠ΄Π° —
ΡΠ΅ΠΊΡΡΠΎΠ²Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ». Π ΡΠ»ΡΡΠ°Π΅ Π²Π²ΠΎΠ΄Π° ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΠ²ΠΎΠΉ Π²Π²ΠΎΠ΄
Π² ΠΡ
ΠΎΠ΄Π½ΠΎΠΉ ΡΠ΅ΠΊΡΡ textarea 1,2 .
Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Β«ΠΠ±Π·ΠΎΡΒ», ΡΡΠΎΠ±Ρ Π²ΡΠ±ΡΠ°ΡΡ Π²Ρ
ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΠΉΠ» Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ. ΠΠ°ΡΠ΅ΠΌ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ
Ρ
ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΏΠΎΠ»Π΅ Π€ΡΠ½ΠΊΡΠΈΡ .
Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΠ»Π΅ ΠΠ΅ΠΊΡΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ (IV) ΠΈΠΌΠ΅Π΅Ρ Π²ΠΈΠ΄
ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΈΠ»ΠΈ ΡΠΊΡΡΡΠΎ.ΠΠ΅ΠΊΡΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ — ΡΡΠΎ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π±Π°ΠΉΡΠΎΠ², ΠΊΠ°ΠΆΠ΄ΡΠΉ Π±Π°ΠΉΡ
Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π² ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΠΎΠΉ ΡΠΎΡΠΌΠ΅.
ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°Π±ΠΎΡΡ Π² ΠΏΠΎΠ»Π΅ Mode ΠΈ Π²Π²Π΅Π΄ΠΈΡΠ΅ ΠΊΠ»ΡΡ Π² ΠΏΠΎΠ»Π΅ Key . ΠΠΎΠΏΡΡΡΠΈΠΌΠ°Ρ Π΄Π»ΠΈΠ½Π° ΠΊΠ»ΡΡΠ΅ΠΉ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π½ΠΈΠΆΠ΅. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΡΠΊΠ°ΠΆΠ΅ΡΠ΅ ΠΊΠ»ΡΡ Ρ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠΉ Π΄Π»ΠΈΠ½ΠΎΠΉ, ΠΊΠ»ΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ΄Π»Π΅Π½ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½ΡΠ»Π΅Π²ΡΡ Π±Π°ΠΉΡΠΎΠ² Π² ΠΊΠΎΠ½ΡΠ΅. ΠΡΠΈ ΡΠΌΠ΅Π½Π΅ ΠΊΠ»ΡΡΠ° ΠΏΡΠ΅ΡΠΈΠΊΡ ΡΡΠ½ΠΊΡΠΈΠΈ sha1 (ΠΊΠ»ΡΡ) Π±ΡΠ΄Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π΅ 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 ΠΡΠΈ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΠΊΠ΅ ΡΡΡΠΎΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΡΠ°Π±ΡΠ»ΡΡΠΎΡΡ ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ.
2 Π Π²Π°ΡΠ΅ΠΌ ΡΠ°ΡΠΏΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π°Π²ΡΠΎΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π²Π²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°. ΠΠ²ΡΠΎΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π»ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠΎΠ»Ρ ΠΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ΅ΠΊΡΡ Π² ΡΠΎΡΠΌΠ° ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° ΠΈΠ»ΠΈ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ, Π½Π°ΠΆΠ°Π² Π½Π° Β«ΠΠ«ΠΠΒ» ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠΈΠΏ Π²Π²ΠΎΠ΄Π° Π² ΠΏΠΎΠ»Π΅ Π’Π΅ΠΊΡΡ Π²Π²ΠΎΠ΄Π° ΠΏΠΎΠ»Π΅.
ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π²Π²ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ — 131 072 ΡΠΈΠΌΠ²ΠΎΠ»Π°. ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° — 2 097 152 Π±Π°ΠΉΡΠ°.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ: |
|
|
---|
void | mbedtls_aes_init (mbedtls_aes_context * ctx) | AES_context * ctxΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ …||
void | mbedtls_aes_free (mbedtls_aes_context * ctx) | ||
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ ΠΈ ΠΎΡΠΈΡΠ°Π΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ AES. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ … | |||
void | mbedtls_aes_xts_init (mbedtls_aes_xts_context * ctx) | ||
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ AES XTS.![]() | |||
void | mbedtls_aes_xts_free (mbedtls_aes_xts_context * ctx) | ||
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ ΠΈ ΠΎΡΠΈΡΠ°Π΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ AES XTS.ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ … | |||
int | mbedtls_aes_setkey_enc (mbedtls_aes_context * ctx, const unsigned char * key, unsigned int keybits) | ||
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΊΠ»ΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ … | |||
int | mbedtls_aes_setkey_dec (mbedtls_aes_context * ctx, const unsigned char * key, unsigned int keybits) | ||
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΊΠ»ΡΡ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ.ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ … | |||
int | mbedtls_aes_xts_setkey_enc (mbedtls_aes_xts_context * ctx, const unsigned char * key, unsigned int keybits) | ||
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ΄Π³ΠΎΡΠ°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ XTS ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ XTS ΠΊΠ»ΡΡ.![]() | |||
int | mbedtls_aes_xts_setkey_dec (mbedtls_aes_xts_context * ctx, const unsigned char * key, unsigned int keybits) | ||
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ΄Π³ΠΎΡΠ°Π²Π»ΠΈΠ²Π°Π΅Ρ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ XTS ΠΈ ΠΊΠ»ΡΡ.ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ … | |||
int | mbedtls_aes_crypt_ecb (mbedtls_aes_context * ctx, int mode, const unsigned char input [16], unsigned char output [16]) | ||
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΠ΄Π½ΠΎΠ±Π»ΠΎΡΠ½ΠΎΠ΅ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ AES. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ … | |||
int | mbedtls_aes_crypt_cbc (mbedtls_aes_context * ctx, int mode, size_t length, unsigned char iv [16], const unsigned char * input, unsigned char * output) | ||
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ AES-CBC Π΄Π»Ρ ΠΏΠΎΠ»Π½ΡΡ
Π±Π»ΠΎΠΊΠΎΠ².![]() | |||
int | mbedtls_aes_crypt_xts (mbedtls_aes_xts_context * ctx, int mode, size_t length, const unsigned char data_unit [16], const unsigned char * input, unsigned char * output) | ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ AES-XTS Π΄Π»Ρ Π²ΡΠ΅Π³ΠΎ Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½ΡΡ
XTS. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ … | |
int | mbedtls_aes_crypt_cfb128 (mbedtls_aes_context * ctx, int mode, size_t length, size_t * iv_off, unsigned char iv [16], const unsigned char * input, unsigned char * input) | ||
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ AES-CFB128.ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ … | |||
int | mbedtls_aes_crypt_cfb8 (mbedtls_aes_context * ctx, int mode, size_t length, unsigned char iv [16], const unsigned char * input, unsigned char * output) | ||
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ AES-CFB8.![]() | |||
int | mbedtls_aes_crypt_ofb (mbedtls_aes_context * ctx, size_t length, size_t * iv_off, unsigned char iv [16], const unsigned char * input, unsigned char * output) | ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ AES-OFB (ΡΠ΅ΠΆΠΈΠΌ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ ΠΏΠΎ Π²ΡΡ
ΠΎΠ΄Ρ).ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ … | |
int | mbedtls_aes_crypt_ctr (mbedtls_aes_context * ctx, size_t length, size_t * nc_off, unsigned char nonce_counter [16], unsigned char stream_block [16], unsigned char stream_block [16], unsigned char stream_block [16] char * output) | ||
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ AES-CTR. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ … | |||
int | mbedtls_internal_aes_encrypt (mbedtls_aes_context * ctx, const unsigned char input [16], unsigned char output [16]) | ||
ΠΠ½ΡΡΡΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π±Π»ΠΎΠΊΠ° AES.![]() | |||
int | mbedtls_internal_aes_decrypt (mbedtls_aes_context * ctx, const unsigned char input [16], unsigned char output [16]) | ||
ΠΠ½ΡΡΡΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π±Π»ΠΎΠΊΠ° AES. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ … | |||
MBEDTLS_DEPRECATED void | mbedtls_aes_encrypt (mbedtls_aes_context * ctx, const unsigned char input [16], unsigned char output [16]) | ||
Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π±Π΅Π· Π·Π½Π°ΠΊΠ° [16]) Π±Π΅Π· Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ … | |||
MBEDTLS_DEPRECATED void | mbedtls_aes_decrypt (mbedtls_aes_context * ctx, const unsigned char input [16], unsigned char output [16]) | ||
c Π±Π΅Π· Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.![]() | |||
int | mbedtls_aes_self_test (int verbose) | ||
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ.ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ … | |||
ΠΈΠ½Ρ mbedtls_aes_crypt_cfb128 | ( | mbedtls_aes_context * | CTX , |
Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ | ΡΠ΅ΠΆΠΈΠΌ , | ||
size_t | Π΄Π»ΠΈΠ½Π° , | ||
ΡΠ°Π·ΠΌΠ΅Ρ_Ρ * | iv_off , | ||
Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» | iv [16], | ||
const Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» * | Π²Ρ ΠΎΠ΄ , | ||
Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» * | Π²ΡΡ ΠΎΠ΄ | ||
) |
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ AES-CFB128.
ΠΠ½ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ mode
(ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅), Π² Π±ΡΡΠ΅ΡΠ΅ Π²Ρ
ΠΎΠ΄Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ input
.
ΠΠ»Ρ CFB Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ mbedtls_aes_setkey_enc (), Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠΎ Π΅ΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° mode
. ΠΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ CFB ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ΅ΠΉ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ.
- ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
- ΠΡΠΈ Π²ΡΡ ΠΎΠ΄Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ IV ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ, ΡΠ°ΠΊ ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ½ΠΎΠ²Π° Π²ΡΠ·Π²Π°ΡΡ ΡΡ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ Π±Π»ΠΎΠΊΠ΅ (Π°Ρ ) Π΄Π°Π½Π½ΡΡ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ ΠΎΠ½ Π±ΡΠ» Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½ Π·Π° ΠΎΠ΄ΠΈΠ½ Π²ΡΠ·ΠΎΠ².ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Β«ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠ΅Β» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅. ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ IV, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π»ΠΈΠ±ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π΅Π³ΠΎ Π²ΡΡΡΠ½ΡΡ, Π»ΠΈΠ±ΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ.
- ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
ctx ΠΠΎΠ½ΡΠ΅ΠΊΡΡ AES, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ ΠΈ ΠΏΡΠΈΠ²ΡΠ·Π°Π½ ΠΊ ΠΊΠ»ΡΡΡ.
ΡΠ΅ΠΆΠΈΠΌ ΠΠΏΠ΅ΡΠ°ΡΠΈΡ AES: MBEDTLS_AES_ENCRYPT ΠΈΠ»ΠΈ MBEDTLS_AES_DECRYPT. length ΠΠ»ΠΈΠ½Π° Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ Π² Π±Π°ΠΉΡΠ°Ρ . iv_off Π‘ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π² IV (ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ). ΠΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ size_t
.iv ΠΠ΅ΠΊΡΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ (ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ). ΠΡΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΈΡΠ°Π΅ΠΌΡΠΉ ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌΡΠΉ Π±ΡΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 16
Π±Π°ΠΉΡΠ°.input ΠΡΡΠ΅Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. ΠΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΈΡΠ°Π΅ΠΌΡΠΌ ΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ , Π΄Π»ΠΈΠ½Π°
Π±Π°ΠΉΡΠ°.output ΠΡΡΠ΅Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅.ΠΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌΡΠΌ ΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ , Π΄Π»ΠΈΠ½Π°
Π±Π°ΠΉΡΠ°.
- ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ
-
0
Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π°.
ΠΈΠ½Ρ mbedtls_aes_crypt_ctr | ( | mbedtls_aes_context * | CTX , |
size_t | Π΄Π»ΠΈΠ½Π° , | ||
ΡΠ°Π·ΠΌΠ΅Ρ_Ρ * | nc_off , | ||
Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» | nonce_counter [16], | ||
Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» | Π±Π»ΠΎΠΊ_ΠΏΠΎΡΠΎΠΊΠ° [16], | ||
const Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» * | Π²Ρ ΠΎΠ΄ , | ||
Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» * | Π²ΡΡ ΠΎΠ΄ | ||
) |
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ AES-CTR.
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ mode
(ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ / Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅), Π² Π±ΡΡΠ΅ΡΠ΅ Π²Ρ
ΠΎΠ΄Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ input
.
ΠΠ·-Π·Π° Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ° CTR Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ΅ΠΉ Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ, ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ mbedtls_aes_setkey_enc () ΠΊΠ°ΠΊ Π΄Π»Ρ MBEDTLS_AES_ENCRYPT, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ MBEDTLS_AES_DECRYPT.
- ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅
- ΠΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅Π»ΡΠ·Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄Π½ΠΎΡΠ°Π·ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΊΠ»ΡΡΠΎΠΌ.ΠΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ Π°Π½Π½ΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π²ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΎΠ΄Π½ΠΎΡΠ°Π·ΠΎΠ²ΠΎΠ³ΠΎ Π½ΠΎΠΌΠ΅ΡΠ° ΠΈ ΠΊΠ»ΡΡΠ°.
ΠΡΡΡ Π΄Π²Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΡΠ°Π·ΠΎΠ²ΡΠΌΠΈ Π½ΠΎΠΌΠ΅ΡΠ°ΠΌΠΈ Ρ CTR:
- ΠΡ ββΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π²ΡΠ΅ ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ
nonce_counter
ΠΈnc_off
Π½Π° 0 Π΄Π»Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°, Π° Π·Π°ΡΠ΅ΠΌ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡnonce_counter
,nc_off
ΠΈstream_block
Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ.
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠΎΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ Π²Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΈΡΡΠΎΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ 2 ** 128 Π±Π»ΠΎΠΊΠΎΠ² Π΄Π°Π½Π½ΡΡ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΊΠ»ΡΡΠΎΠΌ.
- ΠΡ ββΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΡΠΈΡΡΠΎΠ²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΡΠ°Π·Π΄Π΅Π»ΠΈΠ² Π±ΡΡΠ΅Ρ
nonce_counter
Π½Π° Π΄Π²Π΅ ΠΎΠ±Π»Π°ΡΡΠΈ: ΠΏΠ΅ΡΠ²Π°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΡΠ°Π·ΠΎΠ²ΠΎΠ³ΠΎ Π½ΠΎΠΌΠ΅ΡΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Π²Π°ΠΌΠΈ, Π° Π²ΡΠΎΡΠ°Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ Π²Π½ΡΡΡΠ΅Π½Π½Π΅.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ²ΡΠ΅ 12 Π±Π°ΠΉΡΠΎΠ² Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΡΠ°Π·ΠΎΠ²ΠΎΠ³ΠΎ Π½ΠΎΠΌΠ΅ΡΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ 4 Π±Π°ΠΉΡΠ° — Π΄Π»Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π² Π½ΠΎΠ²ΠΎΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΈ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ΅ΡΠ²ΡΠ΅ 12 Π±Π°ΠΉΡΠΎΠ² nonce_counter
Π½Π° Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ nonce, ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ 4 Π½Π° 0 ΠΈ nc_off
Π½Π° 0 (ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ stream_block
Π±ΡΠ΄Π΅Ρ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ).Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΡΠΈΡΡΠΎΠ²Π°ΡΡ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 2 ** 96 ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ
Π΄ΠΎ 2 ** 32 Π±Π»ΠΎΠΊΠΎΠ², ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΊΠ»ΡΡΠΎΠΌ.
ΠΠ΄Π½ΠΎΡΠ°Π·ΠΎΠ²ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ (ΠΈΠ»ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½Π°Ρ Π΄Π»Ρ Π΅Π³ΠΎ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ) Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ Ρ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ΅ΠΊΡΡΠΎΠΌ ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΡΡΡ — ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ΅ΡΡΠΈΠΊ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²ΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ
ΠΎΠ΄Π½ΠΎΡΠ°Π·ΠΎΠ²ΡΡ
Π½ΠΎΠΌΠ΅ΡΠΎΠ², Π½ΠΎ ΡΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π°Π΄Π΅ΠΆΠ½ΠΎ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Ρ: Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ 96-Π±ΠΈΡΠ½ΡΠΌΠΈ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌΠΈ ΠΎΠ΄Π½ΠΎΡΠ°Π·ΠΎΠ²ΡΠΌΠΈ Π½ΠΎΠΌΠ΅ΡΠ°ΠΌΠΈ Π²Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΈΡΡΠΎΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ 2 ** 32 ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΊΠ»ΡΡΠΎΠΌ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π΄Π»Ρ ΠΎΠ±ΠΎΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΈΠ·ΠΌΠ΅ΡΡΡΡΡΡ Π² Π±Π»ΠΎΠΊΠ°Ρ , Π° ΡΠ°Π·ΠΌΠ΅Ρ Π±Π»ΠΎΠΊΠ° AES ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ 16 Π±Π°ΠΉΡΠΎΠ².
- ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅
- ΠΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΠΈ
stream_block
ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. ΠΠ³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΎ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ.
- ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
ctx ΠΠΎΠ½ΡΠ΅ΠΊΡΡ AES, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ ΠΈ ΠΏΡΠΈΠ²ΡΠ·Π°Π½ ΠΊ ΠΊΠ»ΡΡΡ. Π΄Π»ΠΈΠ½Π° ΠΠ»ΠΈΠ½Π° Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ . nc_off Π‘ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ stream_block
Π΄Π»Ρ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΏΠΎΡΠΎΠΊΠ΅ ΡΠΈΡΡΠΎΠ². Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ°Π²Π΅Π½ 0 Π² Π½Π°ΡΠ°Π»Π΅ ΠΏΠΎΡΠΎΠΊΠ°. ΠΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΉsize_t
.nonce_counter 128-Π±ΠΈΡΠ½ΡΠΉ ΠΎΠ΄Π½ΠΎΡΠ°Π·ΠΎΠ²ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΠΈ ΡΡΠ΅ΡΡΠΈΠΊ. ΠΡΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π±ΡΡΠ΅Ρ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΡΡΠ΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΠΈΡΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 16
Π±Π°ΠΉΡΠ°.stream_block Π‘ΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΠΉ Π±Π»ΠΎΠΊ ΠΏΠΎΡΠΎΠΊΠ° Π΄Π»Ρ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ.ΠΡΠΎ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ. ΠΡΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π±ΡΡΠ΅Ρ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΡΡΠ΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΠΈΡΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 16
Π±Π°ΠΉΡΠ°.input ΠΡΡΠ΅Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. ΠΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΈΡΠ°Π΅ΠΌΡΠΌ ΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ , Π΄Π»ΠΈΠ½Π°
Π±Π°ΠΉΡΠ°.output ΠΡΡΠ΅Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. ΠΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌΡΠΌ ΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ , Π΄Π»ΠΈΠ½Π°
Π±Π°ΠΉΡΠ°.
- ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ
-
0
Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π°.
ΠΈΠ½Ρ mbedtls_aes_crypt_ofb | ( | mbedtls_aes_context * | CTX , |
size_t | Π΄Π»ΠΈΠ½Π° , | ||
ΡΠ°Π·ΠΌΠ΅Ρ_Ρ * | iv_off , | ||
Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» | iv [16], | ||
const Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» * | Π²Ρ ΠΎΠ΄ , | ||
Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» * | Π²ΡΡ ΠΎΠ΄ | ||
) |
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ AES-OFB (ΡΠ΅ΠΆΠΈΠΌ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ ΠΏΠΎ Π²ΡΡ ΠΎΠ΄Ρ).
ΠΠ»Ρ OFB Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ mbedtls_aes_setkey_enc (), Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ OFB ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ΅ΠΉ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠΏΠ΅ΡΠ°ΡΠΈΡ OFB ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½Π° Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°Π±ΠΎΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ.
- ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
- ΠΡΠΈ Π²ΡΡ ΠΎΠ΄Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ iv, Π²Π΅ΠΊΡΠΎΡΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ, ΡΠ°ΠΊ ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ½ΠΎΠ²Π° Π²ΡΠ·Π²Π°ΡΡ ΡΡ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ Π±Π»ΠΎΠΊΠ΅ (Π°Ρ ) Π΄Π°Π½Π½ΡΡ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ ΠΎΠ½ Π±ΡΠ» Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½ Π·Π° ΠΎΠ΄ΠΈΠ½ Π²ΡΠ·ΠΎΠ² .ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Β«ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΒ», ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡ iv_off Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ 0 ΠΏΠ΅ΡΠ΅Π΄ ΠΏΠ΅ΡΠ²ΡΠΌ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡ Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ.
ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±Π΅Π· ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ iv Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ, Π° iv_off ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π² 0 ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅.
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π²Π΅ΠΊΡΠΎΡΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π»ΠΈΠ±ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π΅Π³ΠΎ Π²ΡΡΡΠ½ΡΡ, Π»ΠΈΠ±ΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ.
- ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅
- ΠΠ»Ρ ΡΠ΅ΠΆΠΈΠΌΠ° OFB Π²Π΅ΠΊΡΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ.ΠΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π΅ΠΊΡΠΎΡΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΡΡΠ°Π²ΠΈΡ ΠΏΠΎΠ΄ ΡΠ³ΡΠΎΠ·Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ.
- ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
ctx ΠΠΎΠ½ΡΠ΅ΠΊΡΡ AES, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ ΠΈ ΠΏΡΠΈΠ²ΡΠ·Π°Π½ ΠΊ ΠΊΠ»ΡΡΡ. Π΄Π»ΠΈΠ½Π° ΠΠ»ΠΈΠ½Π° Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ . iv_off Π‘ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π² IV (ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ). ΠΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ size_t
.iv ΠΠ΅ΠΊΡΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ (ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ).ΠΡΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΈΡΠ°Π΅ΠΌΡΠΉ ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌΡΠΉ Π±ΡΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 16
Π±Π°ΠΉΡΠ°.input ΠΡΡΠ΅Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. ΠΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΈΡΠ°Π΅ΠΌΡΠΌ ΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ , Π΄Π»ΠΈΠ½Π°
Π±Π°ΠΉΡΠ°.output ΠΡΡΠ΅Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. ΠΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌΡΠΌ ΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ , Π΄Π»ΠΈΠ½Π°
Π±Π°ΠΉΡΠ°.