Π Π°Π·Π½ΠΎΠ΅

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] Π½ΡƒΠΆΠ½ΠΎ Ρ‚Ρ€ΠΈ дСйствия:

  1. Π½Π°ΠΉΡ‚ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ Π±Π°ΠΉΡ‚ ΠΊ b Π² ΠΏΠΎΠ»Π΅ GF(28) (ноль ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ)
  2. ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ состоящий ΠΈΠ· восьми Π±ΠΈΡ‚ΠΎΠ² Π½Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ 8Γ—8 ΠΈΠ· 64 Π±ΠΈΡ‚ΠΎΠ²
  3. Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ {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-Π±ΠΈΡ‚Π½ΠΎΠΌΡƒ Π±Π»ΠΎΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ…. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ допускаСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ этих Ρ‚Ρ€Ρ‘Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²:





NkNbNr
AES-1284410
AES-1926412
AES-2568414
ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ KeyExpansion

Для ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ тСкста AES примСняСт Π½Π΅ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΈΠ»ΠΈ Ρ…Π΅Ρˆ ΠΎΡ‚ пароля, Π° Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ «расписаниС ΠΊΠ»ΡŽΡ‡Π΅ΠΉΒ» ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΠΎΠ΅ ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π°. Π­Ρ‚ΠΎ расписаниС ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ Nr + 1 ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Ρ€Π°Π·ΠΌΠ΅Ρ€Π° 4Γ—Nb. Алгоритм ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ Π΄Π΅Π»Π°Π΅Ρ‚ Nr + 1 шагов ΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС ΠΎΠ½, ΠΏΠΎΠΌΠΈΠΌΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… дСйствий, Π±Π΅Ρ€Ρ‘Ρ‚ ΠΎΠ΄Π½Ρƒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ 4Γ—Nb ΠΈΠ· «расписания» ΠΈ поэлСмСнтно добавляСт Π΅Ρ‘ ΠΊ Π±Π»ΠΎΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ….

Π¨ΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…

Алгоритм ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π½Π° Π²Ρ…ΠΎΠ΄ 128-Π±ΠΈΡ‚Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… input ΠΈ расписаниС ΠΊΠ»ΡŽΡ‡Π΅ΠΉ w, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ получаСтся послС KeyExpansion. 16-Π±Π°ΠΉΡ‚Ρ‹ΠΉ input ΠΎΠ½ записываСт Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ s Ρ€Π°Π·ΠΌΠ΅Ρ€Π° 4Γ—Nb, которая называСтся состояниСм AES, ΠΈ Π·Π°Ρ‚Π΅ΠΌ Nr Ρ€Π°Π· примСняСт ΠΊ этой ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ 4 прСобразования. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΎΠ½ записываСт ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² Π²ΠΈΠ΄Π΅ массива ΠΈ ΠΏΠΎΠ΄Π°Ρ‘Ρ‚ Π΅Π³ΠΎ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄ β€” это Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ. КаТдоС ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Ρ‘Ρ… ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ ΠΎΡ‡Π΅Π½ΡŒ простоС.

  1. AddRoundKey Π±Π΅Ρ€Ρ‘Ρ‚ ΠΈΠ· расписания ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΎΠ΄Π½Ρƒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° 4Γ—Nb ΠΈ поэлСмСнтно добавляСт Π΅Ρ‘ ΠΊ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ состояния. Если Π΄Π²Π° Ρ€Π°Π·Π° ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ AddRoundKey, Ρ‚ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ измСнится, поэтому ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅ ΠΊ AddRoundKey это ΠΎΠ½ΠΎ само.
  2. SubBytes замСняСт ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ состояния ΡΠΎΠΎΡ‚Π²Π΅Ρ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ элСмСнтом Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ SBox: sij = SBox[sij]. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ SubBytes ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠΌΠΎ. ΠžΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅ ΠΊ Π½Π΅ΠΌΡƒ находится с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ InvSBox.
  3. ShiftRows сдвигаСт i-ΡƒΡŽ строку ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ s Π½Π° i ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ Π²Π»Π΅Π²ΠΎ, считая i с нуля. ΠžΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ InvShiftRows сдвигаСт строки Π²ΠΏΡ€Π°Π²ΠΎ.
  4. 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) ΠΈ считаСтся самым бСзопасным способом Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ посСкторно.

ΠŸΠ΅Ρ€Π²ΠΎ-Π½Π°ΠΏΠ΅Ρ€Π²ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹:

  1. 256/512 Π±ΠΈΡ‚ ΠΊΠ»ΡŽΡ‡Π° (ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ SHA-256/512(соль+ΠΏΠ°Ρ€ΠΎΠ»ΡŒ) ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π²Ρ€ΠΎΠ΄Π΅ KDF)
  2. АдрСс (Π½ΠΎΠΌΠ΅Ρ€) сСктора
  3. Бобсно Π±Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… Π΄Π»ΠΈΠ½Ρ‹ ΠΊΡ€Π°Ρ‚Π½ΠΎΠΉ 128 Π±ΠΈΡ‚Π°ΠΌ (Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±Π»ΠΎΠΊΠ° AES)

Π£ΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎ, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

  1. Π Π°Π·Π±ΠΈΠ²ΠΊΠ° ΠΊΠ»ΡŽΡ‡Π° Π½Π° Π΄Π²Π°. ΠŸΠ΅Ρ€Π²Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ становится ΠΊΠ»ΡŽΡ‡ΠΎΠΌ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½Ρ‹Ρ…(k1), вторая β€” ΠΊΠ»ΡŽΡ‡ΠΎΠΌ для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ tweak value(k2)

    Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ссли Ρƒ нас ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ»ΡŽΡ‡ Π² 512 Π±ΠΈΡ‚, Ρ‚ΠΎ ΠΌΡ‹ Π΅Π³ΠΎ ΠΏΠΈΠ»ΠΈΠΌ Π½Π° 2Ρ…256 ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π² AES-256
  2. ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π½ΠΎΠΌΠ΅Ρ€ сСктора Π² массив Π±Π°ΠΉΡ‚ ΠΈ ΡˆΠΈΡ„Ρ€ΡƒΠ΅ΠΌ Π΅Π³ΠΎ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ k2. Π­Ρ‚ΠΎ нашС tweak value
  3. Π˜Π΄Ρ‘ΠΌ ΠΏΠΎ массиву Π΄Π°Π½Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠ°ΠΌΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΏΠΎ 16 Π±Π°ΠΉΡ‚ ΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°:
  4. 1.ΠšΡΠΎΡ€ΠΈΠΌ Π΅Π³ΠΎ с tweak value
  5. 2.Π¨ΠΈΡ„Ρ€ΡƒΠ΅ΠΌ/Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π²Π°Π΅ΠΌ Π΅Π³ΠΎ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ k1
  6. 3.ΠžΠΏΡΡ‚ΡŒ ксорим ΡƒΠΆΠ΅ (рас)ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… с tweak value. БохраняСм Π΅Π³ΠΎ, это ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΡƒΠΆΠ½Ρ‹ΠΉ Π½Π°ΠΌ (Π·Π°/рас)ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ сСктора
  7. 4.Π£ΠΌΠ½ΠΎΠΆΠ°Π΅ΠΌ tweak value Π½Π° ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌ Ξ± = x128+x7+x2+x+1

Π‘Π°ΠΌΠΎΠ΅ нСпонятноС Ρ‚ΡƒΡ‚ (для мСня, Π² частности) это ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌ. АлгоритмичСски это просто сдвиг всСго массива Π½Π° 1 Π±ΠΈΡ‚ + xor Π½Π° послСднСм шагС.

  1. Β 
  2. private const int GF_128_FDBK = 0x87;
  3. private const int AES_BLK_BYTES = 16;
  4. Β 
  5. // ΡƒΠΌΠ½ΠΎΠΆΠ°Π΅ΠΌ T(weak value) Π½Π° Ξ±
  6. Cin = 0; // Π±ΠΈΡ‚ пСрСноса
  7. for (j = 0; j < AES_BLK_BYTES; j++)
  8. {
  9. Β  Β  Cout = (T[j] >> 7) & 1;
  10. Β  Β  T[j] = (byte)(((T[j] << 1) + Cin) & 0xFF);
  11. Β  Β  Cin = Cout;
  12. }
  13. if (Cout != 0)
  14. {
  15. Β  Β  T[0] ^= GF_128_FDBK;
  16. }
  17. Β 

Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΊΡ€ΠΈΠΌΠΈΠ½Π°Π»Π°. ДСлаСтся это для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ± tweak value Π±Ρ‹Π» Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π²Π½ΡƒΡ‚Ρ€ΠΈ сСктора.
Вопрос ΠΊ матСматичСски ΠΏΠΎΠ΄ΠΊΠΎΠ²Π°Π½Π½ΠΎΠΉ Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΠΈ: ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π²Ρ‹Π±Ρ€Π°Π½ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌ Π² GF(2) ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ x128+x7+x2+x+1? ΠœΠΎΠΈΡ… (Π½Π΅)Π·Π½Π°Π½ΠΈΠΉ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ лишь ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚ΡƒΡ‚ Π·Π°ΠΌΠ΅ΡˆΠ°Π½Ρ‹ цикличСскиС Π³Ρ€ΡƒΠΏΠΏΡ‹, ΠΈ всё это Π½Π΅ΠΊΠΈΠΉ Π°Π½Π°Π»ΠΎΠ³ цикличСского сдвига.

Π Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠΎΠ΄ Π½Π° C#, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ стандартныС тСсты:

  1. Β 
  2. class XTS
  3. {
  4. Β  Β  private const int GF_128_FDBK = 0x87;
  5. Β  Β  private const int AES_BLK_BYTES = 16;
  6. Β 
  7. Β  Β  public static byte[] encryptSector(byte[] inData, byte[] dataEncryptionKey, byte[] tweakEncryptionKey, UInt64 sectorNumber, bool encrypt)
  8. Β  Β  {
  9. Β  Β  Β  Β  byte[] outData = new byte[inData.Length]; //Ρ‚ΡƒΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Π Π°Π·ΠΌΠ΅Ρ€ inData Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΊΡ€Π°Ρ‚Π΅Π½ 32!
  10. Β 
  11. Β  Β  Β  Β  uint i, j; // local counters
  12. Β  Β  Β  Β  var T = new byte[AES_BLK_BYTES]; // tweak value
  13. Β  Β  Β  Β  var x = new byte[AES_BLK_BYTES]; // Π±ΡƒΡ„Π΅Ρ€ для (Π·Π°/рас)ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…
  14. Β 
  15. Β  Β  Β  Β  // ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π½ΠΎΠΌΠ΅Ρ€ сСктора Π² массив Π±Π°ΠΉΡ‚
  16. Β  Β  Β  Β  Array.Copy(BitConverter.GetBytes(sectorNumber), T, 8);
  17. Β 
  18. Β  Β  Β  Β  //послС ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ Π² T Ρƒ нас tweak value. true Π·Π½Π°Ρ‡ΠΈΡ‚ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒ
  19. Β  Β  Β  Β  processAES(tweakEncryptionKey, T, true);
  20. Β  Β  Β  Β 
  21. Β  Β  Β  Β  // ΠžΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ ΠΏΠΎ AES_BLK_BYTES Π±Π°ΠΉΡ‚ Π·Π° Ρ€Π°Π·
  22. Β  Β  Β  Β  for (i = 0; i < inData.Length; i += AES_BLK_BYTES)
  23. Β  Β  Β  Β  {
  24. Β  Β  Β  Β  Β  Β  // ксорим tweak value с куском Π΄Π°Π½Π½Ρ‹Ρ…
  25. Β  Β  Β  Β  Β  Β  for (j = 0; j < AES_BLK_BYTES; j++)
  26. Β  Β  Β  Β  Β  Β  {
  27. Β  Β  Β  Β  Β  Β  Β  Β  x[j] = (byte)(inData[i + j] ^ T[j]);
  28. Β  Β  Β  Β  Β  Β  }
  29. Β 
  30. Β  Β  Β  Β  Β  Β  // ΡˆΠΈΡ„Ρ€ΡƒΠ΅ΠΌ/Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π²Π°Π΅ΠΌ Π±Π»ΠΎΠΊ
  31. Β  Β  Β  Β  Β  Β  processAES(dataEncryptionKey, x, encrypt);
  32. Β 
  33. Β  Β  Β  Β  Β  Β  Β // ксорим tweak value с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΌ Π±Π»ΠΎΠΊΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ…
  34. Β  Β  Β  Β  Β  Β  for (j = 0; j < AES_BLK_BYTES; j++)
  35. Β  Β  Β  Β  Β  Β  {
  36. Β  Β  Β  Β  Β  Β  Β  Β  outData[i + j] = (byte)(x[j] ^ T[j]);
  37. Β  Β  Β  Β  Β  Β  }
  38. Β 
  39. Β  Β  Β  Β  Β  Β  // Π£ΠΌΠ½ΠΎΠΆΠ°Π΅ΠΌ tweak value Π½Π° Ξ±
  40. Β  Β  Β  Β  Β  Β  j = AES_BLK_BYTES;
  41. Β  Β  Β  Β  Β  Β  int t = T[AES_BLK_BYTES — 1];
  42. Β  Β  Β  Β  Β  Β  while (—j != 0)
  43. Β  Β  Β  Β  Β  Β  Β  Β  T[j] = (byte)((T[j] << 1) | ((T[j — 1] & 0x80) != 0 ? 1 : 0));
  44. Β  Β  Β  Β  Β  Β  T[0] = (byte)((T[0] << 1) ^ ((t & 0x80) != 0 ? 0x87 : 0x00));
  45. Β  Β  Β  Β  }
  46. Β  Β  Β  Β  return outData;
  47. Β  Β  }
  48. Β 
  49. Β  Β  private static void processAES(byte[] k, byte[] T, bool encrypt)
  50. Β  Β  {
  51. Β  Β  Β  Β  /*AesFastEngine взят ΠΈΠ· BouncyCastle. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π° ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ
  52. Β  Β  Β  Β  * Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, Π»ΠΈΠ±ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΠΉΡ‚Π΅
  53. Β  Β  Β  Β  * Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±Π»ΠΎΠΊΠ° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ.
  54. Β  Β  Β  Β  */
  55. Β  Β  Β  Β  var engine = new AesFastEngine();
  56. Β  Β  Β  Β  engine.Init(encrypt, new KeyParameter(k));
  57. Β  Β  Β  Β  engine.ProcessBlock(T, 0, T, 0);
  58. Β  Β  }
  59. }
  60. Β 

______________________

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ 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 Π±Π°ΠΉΡ‚Π°.

.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *