Π¨ΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ tkip ΠΈΠ»ΠΈ aes ΠΈΠ»ΠΈ tkip – ΠšΠ»ΡŽΡ‡ сСти Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄Π΅. МоТно Π»ΠΈ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒΡΡ? Какой Ρ‚ΠΈΠΏ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ β€” TKIP ΠΈΠ»ΠΈ AES

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ – WPA2-AES, WPA2-TKIP ΠΈΠ»ΠΈ ΠΈ Ρ‚ΠΎ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅

Π’ послСднСС врСмя появилось ΠΌΠ½ΠΎΠ³ΠΎ Β«Ρ€Π°Π·ΠΎΠ±Π»Π°Ρ‡Π°ΡŽΡ‰ΠΈΡ…Β» ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΉ ΠΎ Π²Π·Π»ΠΎΠΌΠ΅ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ΠΈΠ»ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ бСспроводных сСтСй. Π’Π°ΠΊ Π»ΠΈ это Π½Π° самом Π΄Π΅Π»Π΅, Ρ‡Π΅Π³ΠΎ стоит Π±ΠΎΡΡ‚ΡŒΡΡ, ΠΈ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ доступ Π² Π²Π°ΡˆΡƒ ΡΠ΅Ρ‚ΡŒ Π±Ρ‹Π» максимально Π·Π°Ρ‰ΠΈΡ‰Π΅Π½? Π‘Π»ΠΎΠ²Π° WEP, WPA, 802.1x, EAP, PKI для вас ΠΌΠ°Π»ΠΎ Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡Π°Ρ‚? Π­Ρ‚ΠΎΡ‚ нСбольшой ΠΎΠ±Π·ΠΎΡ€ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ свСсти Π²ΠΎΠ΅Π΄ΠΈΠ½ΠΎ всС ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠ΅ΡΡ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π΄ΠΈΠΎ-доступа. Π― ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΡŽ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ настроСнная бСспроводная ΡΠ΅Ρ‚ΡŒ прСдставляСт собой Π½Π΅ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»ΠΈΠΌΡ‹ΠΉ Π±Π°Ρ€ΡŒΠ΅Ρ€ для Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠ° (Π΄ΠΎ извСстного ΠΏΡ€Π΅Π΄Π΅Π»Π°, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ).

ΠžΡΠ½ΠΎΠ²Ρ‹
Π›ΡŽΠ±ΠΎΠ΅ взаимодСйствиС Ρ‚ΠΎΡ‡ΠΊΠΈ доступа (сСти), ΠΈ бСспроводного ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, построСно Π½Π°:
  • АутСнтификации — ΠΊΠ°ΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈ Ρ‚ΠΎΡ‡ΠΊΠ° доступа ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Ρƒ ΠΈ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Ρƒ Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΎ ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ собой;
  • Π¨ΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠΈ — ΠΊΠ°ΠΊΠΎΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ скрСмблирования ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… примСняСтся, ΠΊΠ°ΠΊ гСнСрируСтся ΠΊΠ»ΡŽΡ‡ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ, ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ мСняСтся.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ бСспроводной сСти, Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π΅Π΅ имя (SSID), рСгулярно Π°Π½ΠΎΠ½ΡΠΈΡ€ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ доступа Π² ΡˆΠΈΡ€ΠΎΠΊΠΎΠ²Π΅Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… beacon ΠΏΠ°ΠΊΠ΅Ρ‚Π°Ρ…. Помимо ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹Ρ… настроСк бСзопасности, ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ поТСлания ΠΏΠΎ QoS, ΠΏΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ 802.11n, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… скорости, свСдСния ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… сосСдях ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅. АутСнтификация опрСдСляСт, ΠΊΠ°ΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ прСдставляСтся Ρ‚ΠΎΡ‡ΠΊΠ΅. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹:

  • Open — Ρ‚Π°ΠΊ называСмая открытая ΡΠ΅Ρ‚ΡŒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ всС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Π΅ устройства Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ сразу
  • Shared — ΠΏΠΎΠ΄Π»ΠΈΠ½Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΠΎΠ³ΠΎ устройства Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π° ΠΊΠ»ΡŽΡ‡ΠΎΠΌ/ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΌ
  • EAP — ΠΏΠΎΠ΄Π»ΠΈΠ½Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΠΎΠ³ΠΎ устройства Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π° ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ EAP внСшним сСрвСром
ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΡΡ‚ΡŒ сСти Π½Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ любой ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΠΉ смоТСт Π±Π΅Π·Π½Π°ΠΊΠ°Π·Π°Π½Π½ΠΎ с Π½Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π² Ρ‚Π°ΠΊΠΎΠΉ сСти Π΄Π°Π½Π½Ρ‹Π΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ совпадСниС ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‰Π΅Π³ΠΎΡΡ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ, ΠΈ соотвСтствСнно Π΅ΠΌΡƒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ установлСниС ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ соСдинСния. Алгоритмы ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ Ρ‚Π°ΠΊΠΎΠ²Ρ‹:
  • None — отсутствиС ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ, Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅
  • WEP — основанный Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅ RC4 ΡˆΠΈΡ„Ρ€ с Ρ€Π°Π·Π½ΠΎΠΉ Π΄Π»ΠΈΠ½ΠΎΠΉ статичСского ΠΈΠ»ΠΈ динамичСского ΠΊΠ»ΡŽΡ‡Π° (64 ΠΈΠ»ΠΈ 128 Π±ΠΈΡ‚)
  • CKIP — проприСтарная Π·Π°ΠΌΠ΅Π½Π° WEP ΠΎΡ‚ Cisco, Ρ€Π°Π½Π½ΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ TKIP
  • TKIP — ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Π°Ρ Π·Π°ΠΌΠ΅Π½Π° WEP с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°ΠΌΠΈ ΠΈ Π·Π°Ρ‰ΠΈΡ‚ΠΎΠΉ
  • AES/CCMP — Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, основанный Π½Π° AES256 с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°ΠΌΠΈ ΠΈ Π·Π°Ρ‰ΠΈΡ‚ΠΎΠΉ

ΠšΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡ Open Authentication, No Encryption ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² систСмах гостСвого доступа Π²Ρ€ΠΎΠ΄Π΅ прСдоставлСния Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° Π² ΠΊΠ°Ρ„Π΅ ΠΈΠ»ΠΈ гостиницС. Для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ имя бСспроводной сСти. Π—Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ комбинируСтся с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ Π½Π° Captive Portal ΠΏΡƒΡ‚Π΅ΠΌ Ρ€Π΅Π΄ΠΈΡ€Π΅ΠΊΡ‚Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ HTTP-запроса Π½Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ страницу, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ (Π»ΠΎΠ³ΠΈΠ½-ΠΏΠ°Ρ€ΠΎΠ»ΡŒ, согласиС с ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ ΠΈ Ρ‚.ΠΏ).

Π¨ΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ WEP скомпромСтировано, ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ нСльзя (Π΄Π°ΠΆΠ΅ Π² случаС динамичСских ΠΊΠ»ΡŽΡ‡Π΅ΠΉ).

Π¨ΠΈΡ€ΠΎΠΊΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹ WPA ΠΈ WPA2 ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚, фактичСски, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ (TKIP Π»ΠΈΠ±ΠΎ AES). Π’ силу Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ довольно Π΄Π°Π²Π½ΠΎ клиСнтскиС Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ WPA2 (AES), ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ TKIP Π½Π΅Ρ‚ смысла.

Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ WPA2 Personal ΠΈ WPA2 Enterprise состоит Π² Ρ‚ΠΎΠΌ, ΠΎΡ‚ΠΊΡƒΠ΄Π° бСрутся ΠΊΠ»ΡŽΡ‡ΠΈ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² ΠΌΠ΅Ρ…Π°Π½ΠΈΠΊΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° AES. Для частных (Π΄ΠΎΠΌΠ°ΡˆΠ½ΠΈΡ…, ΠΌΠ΅Π»ΠΊΠΈΡ…) ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ статичСский ΠΊΠ»ΡŽΡ‡ (ΠΏΠ°Ρ€ΠΎΠ»ΡŒ, ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠ΅ слово, PSK (Pre-Shared Key)) минимальной Π΄Π»ΠΈΠ½ΠΎΠΉ 8 символов, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ задаСтся Π² настройках Ρ‚ΠΎΡ‡ΠΊΠΈ доступа, ΠΈ Ρƒ всСх ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² Π΄Π°Π½Π½ΠΎΠΉ бСспроводной сСти ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ. ΠšΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚Π°Ρ†ΠΈΡ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° (ΠΏΡ€ΠΎΠ±ΠΎΠ»Ρ‚Π°Π»ΠΈΡΡŒ сосСду, ΡƒΠ²ΠΎΠ»Π΅Π½ сотрудник, ΡƒΠΊΡ€Π°Π΄Π΅Π½ Π½ΠΎΡƒΡ‚Π±ΡƒΠΊ) Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΉ смСны пароля Ρƒ всСх ΠΎΡΡ‚Π°Π²ΡˆΠΈΡ…ΡΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ‡Ρ‚ΠΎ рСалистично Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² случаС нСбольшого ΠΈΡ… числа. Для ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠ°ΠΊ слСдуСт ΠΈΠ· названия, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ динамичСский ΠΊΠ»ΡŽΡ‡, ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚. Π­Ρ‚ΠΎΡ‚ ΠΊΠ»ΡŽΡ‡ ΠΌΠΎΠΆΠ΅Ρ‚ пСриодичСский ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒΡΡ ΠΏΠΎ Ρ…ΠΎΠ΄Ρƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Π΅Π· Ρ€Π°Π·Ρ€Ρ‹Π²Π° соСдинСния, ΠΈ Π·Π° Π΅Π³ΠΎ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ —

Как устроСн AES / Habr

О Ρ‡Ρ‘ΠΌ эта ΡΡ‚Π°Ρ‚ΡŒΡ

Π”ΠΎΠ»Π³ΠΎΠ΅ врСмя я считал, Ρ‡Ρ‚ΠΎ криптографичСскиС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Ρ…Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ, Π²Ρ€ΠΎΠ΄Π΅ 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(2

8). Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ 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 (x

3 + 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. Если Π±ΠΈΡ‚ a

7 = 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-Π±ΠΈΡ‚Π½ΠΎΠΌΡƒ Π±Π»ΠΎΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ…. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ допускаСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ этих Ρ‚Ρ€Ρ‘Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²:

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 прСобразования. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΎΠ½ записываСт ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² Π²ΠΈΠ΄Π΅ массива ΠΈ ΠΏΠΎΠ΄Π°Ρ‘Ρ‚ Π΅Π³ΠΎ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄ β€” это Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ. КаТдоС ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Ρ‘Ρ… ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ ΠΎΡ‡Π΅Π½ΡŒ простоС.

  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.

ΠšΠ»ΡŽΡ‡ сСти Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄Π΅. МоТно Π»ΠΈ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒΡΡ? Какой Ρ‚ΠΈΠΏ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ β€” TKIP ΠΈΠ»ΠΈ AES

Если Π²Ρ‹ Π·Π°Π±Ρ‹Π»ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΎΡ‚ бСспроводной сСти, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚, Ρ‚ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· свой ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€, Π½Π΅ скачивая ΠΏΡ€ΠΈ это стороннСго софта. Данная ситуация часто встрСчаСтся, ΠΊΠΎΠ³Π΄Π° ΠΊ Π²Π°ΠΌ приходят гости ΠΈ просят Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠ΅Ρ‚ΡŒΡŽ Wi Fi, Π° Π²Ρ‹ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π°Π²Π½ΠΎ Π΅Ρ‘ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π°Π±Ρ‹Π»ΠΈ всС ΠΏΠ°Ρ€ΠΎΠ»ΠΈ. Если Ρƒ вас установлСна опСрационная систСма Windows, Ρ‚ΠΎ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ Π΄Π²Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… способа ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ бСзопасности сСти Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€. Π’ Π΄Ρ€ΡƒΠ³ΠΈΡ… ситуациях Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΅Π³ΠΎ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ Ρ‡Π΅Ρ€Π΅Π· настройки Ρ€ΠΎΡƒΡ‚Π΅Ρ€Π°. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π½Π° всС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ для сСбя Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ.

Как ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ бСзопасности сСти Π² Windows

Данная опСрационная систСма достаточно гибкая, поэтому Π²Ρ‹ Π±Π΅Π· Ρ‚Ρ€ΡƒΠ΄Π° смоТСтС ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΠ°Ρ€ΠΎΠ»ΠΈ ΠΈ ΠΊΠ»ΡŽΡ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сами ΠΆΠ΅ Π²Π²ΠΎΠ΄ΠΈΠ»ΠΈ. Π’Π°ΠΌ просто Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ доступ ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΡΠ΅Ρ‚ΡŒ Wi Fi.

Как ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ бСзопасности сСти Ρ‡Π΅Ρ€Π΅Π· Ρ‚Ρ€Π΅ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°

  • Π‘Π°ΠΌΡ‹ΠΉ быстрый способ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΎΡ‚ WiFi. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΎΡ‚Ρ‹Ρ‰ΠΈΡ‚Π΅ Π² своСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ Π·Π½Π°Ρ‡ΠΎΠΊ сСти Π² Ρ‚Ρ€Π΅Π΅. Он находится рядом с Π΄Π°Ρ‚ΠΎΠΉ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ, ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π°Π½Ρ‚Π΅Π½Π½Π° ΠΈΠ»ΠΈ Π·Π½Π°ΠΊ сСти Π² Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅.
  • Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ‚Ρƒ ΡΠ΅Ρ‚ΡŒ, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ. Π’Π°Ρˆ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΊ Π½Π΅ΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½.
    ΠšΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΏΠΎ Π΅Π΅ названию.
  • Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡƒΠ½ΠΊΡ‚ β€œΠ‘Π²ΠΎΠΉΡΡ‚Π²Π°β€ Π² появившСмся спискС.


  • ΠžΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ΡΡ ΠΎΠΊΠ½ΠΎ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ записан ваш ΠΏΠ°Ρ€ΠΎΠ»ΡŒ. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, символы пароля Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Ρ‹ настройками отобраТСния. ΠŸΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π³Π°Π»ΠΎΡ‡ΠΊΡƒ Π²ΠΎΠ·Π»Π΅ слов β€œΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ знаки”, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ.


Как ΡƒΠ·

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ Π² бСспроводных сСтях πŸ“Ά БСспроводная ΡΠ΅Ρ‚ΡŒ

WEP ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅

ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» WEP (Wired Equivalent Privacy) основан Π½Π° ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΌ ΡˆΠΈΡ„Ρ€Π΅ RC4. Π’ настоящСС врСмя Π² ΡˆΠΈΡ„Ρ€Π΅ RC4 Π±Ρ‹Π»ΠΈ Π½Π°ΠΉΠ΄Π΅Π½Ρ‹ мноТСствСнныС уязвимости, поэтому ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ WEP Π½Π΅ рСкомСндуСтся.

WEP ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ статичСским ΠΈΠ»ΠΈ динамичСским. ΠŸΡ€ΠΈ статичСском WEP-ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠ»ΡŽΡ‡ Π½Π΅ мСняСтся. ΠŸΡ€ΠΈ динамичСском, послС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° происходит смСна ΠΊΠ»ΡŽΡ‡Π° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ.

БущСствуСт Π΄Π²Π° стандартных Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° WEP:

  1. WEP с Π΄Π»ΠΈΠ½ΠΎΠΉ ΠΊΠ»ΡŽΡ‡Π° 128 Π±ΠΈΡ‚, ΠΏΡ€ΠΈ этом 104 Π±ΠΈΡ‚Π° ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌΠΈ ΠΈ 24 Π±ΠΈΡ‚Π° Π² ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Π²Π΅ΠΊΡ‚ΠΎΡ€Π΅ (IV). Π’Π°ΠΊΠΆΠ΅ этот Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π΅Ρ‰Ρ‘ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ 104-Π±ΠΈΡ‚Π½Ρ‹ΠΉ WEP.
  2. WEP с Π΄Π»ΠΈΠ½ΠΎΠΉ ΠΊΠ»ΡŽΡ‡Π° 64 Π±ΠΈΡ‚, ΠΏΡ€ΠΈ этом 40 Π±ΠΈΡ‚ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌΠΈ ΠΈ 24 Π±ΠΈΡ‚Π° Π² ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Π²Π΅ΠΊΡ‚ΠΎΡ€Π΅ (IV). Π’Π°ΠΊΠΆΠ΅ этот Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π΅Ρ‰Ρ‘ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ 40-Π±ΠΈΡ‚Π½Ρ‹ΠΉ WEP.

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π΅Ρ‰Ρ‘ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ с Π΄Π»ΠΈΠ½ΠΎΠΉ 152 Π±ΠΈΡ‚Π° ΠΈ 256 Π±ΠΈΡ‚. Но Π² случаС WEP ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ‹ ΠΊΠ»ΡŽΡ‡Π° Π½Π΅ добавляСт стойкости.

CKIP ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅

ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» CKIP (Cisco Key Integrity Protocol) Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ CISCO для Π·Π°ΠΌΠ΅Π½Ρ‹ WEP. По сути, являСтся Ρ€Π°Π½Π½Π΅ΠΉ вСрсиСй TKIP. Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ цСлостности сообщСний ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ CMIC (Cisco Message Integrity Check).

TKIP ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅

ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ TKIP (Temporal Key Integrity Protocol) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΡˆΠΈΡ„Ρ€ RC4 Ρ‡Ρ‚ΠΎ ΠΈ WEP, Π½ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€ ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π»ΠΈΠ½Ρƒ 48 Π±ΠΈΡ‚, ΠΏΠΎΠΌΠΈΠΌΠΎ этого Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Michael для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ цСлостности сообщСний (Message Integrity Check – MIC). Если Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠΈ ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ послано Π±ΠΎΠ»Π΅Π΅ Π΄Π²ΡƒΡ… Π½Π΅ ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ, Ρ‚ΠΎ бСспроводной ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° ΠΎΠ΄Π½Ρƒ ΠΌΠΈΠ½ΡƒΡ‚Ρƒ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ RC4 ΡƒΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π΅ β€œΠ² Ρ‚ΡƒΠΏΡƒΡŽβ€ ΠΊΠ°ΠΊ Π² WEP, ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΌΠ΅Ρ€Ρ‹ ΠΏΡ€ΠΎΡ‚ΠΈΠ² извСстных Π°Ρ‚Π°ΠΊ Π½Π° этот ΡˆΠΈΡ„Ρ€. Однако ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ RC4 остаётся уязвимым, Ρ‚ΠΎ ΠΈ TKIP считаСтся уязвимым.

AES-CCMP ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅

ПослСдний ΠΈΠ· Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… стандартов ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ. РаспрСдСлСниС ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° цСлостности Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ CCMP (Counter Mode with Cipher Block Chaining Message Authentication Code Protocol). Для ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡˆΠΈΡ„Ρ€ AES.

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

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