128 Π±ΠΈΡ‚Π½ΠΎΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ это

Как устроСн AES

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

Π”ΠΎΠ»Π³ΠΎΠ΅ врСмя я считал, Ρ‡Ρ‚ΠΎ криптографичСскиС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Ρ…Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ, Π²Ρ€ΠΎΠ΄Π΅ AES ΠΈ MD5, устроСны ΠΎΡ‡Π΅Π½ΡŒ слоТно ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΡ… совсСм Π½Π΅ просто, Π΄Π°ΠΆΠ΅ имСя ΠΏΠΎΠ΄ Ρ€ΡƒΠΊΠΎΠΉ ΠΏΠΎΠ»Π½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ. Π—Π°ΠΏΡƒΡ‚Π°Π½Π½Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ этих Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… языках программирования Ρ‚ΠΎΠ»ΡŒΠΊΠΎ укрСпляли это ΠΌΠ½Π΅Π½ΠΈΠ΅. Но Π½Π΅Π΄Π°Π²Π½ΠΎ Ρƒ мСня появилось ΠΌΠ½ΠΎΠ³ΠΎ свободного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ я Ρ€Π΅ΡˆΠΈΠ» Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² этих Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°Ρ… ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΡ…. Оказалось, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΎΡ‡Π΅Π½ΡŒ просто устроСны ΠΈ для ΠΈΡ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½ΡƒΠΆΠ½ΠΎ совсСм Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я Π½Π°ΠΏΠΈΡˆΡƒ ΠΊΠ°ΠΊ устроСн Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ AES (ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Rijndael) ΠΈ Π½Π°ΠΏΠΈΡˆΡƒ Π΅Π³ΠΎ Π½Π° JavaScript. ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π½Π° JavaScript? Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° этом языкС, Π½ΡƒΠΆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ эту ΡΡ‚Π°Ρ‚ΡŒΡŽ. Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, скаТСм, Π½Π° C, Π½ΡƒΠΆΠ΅Π½ компилятор ΠΈ найдётся совсСм ΠΌΠ°Π»ΠΎ ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΡ…, Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ ΠΊΠΎΠ΄Π° ΠΈΠ· ΠΊΠ°ΠΊΠΎΠΉ Ρ‚ΠΎ ΡΡ‚Π°Ρ‚ΡŒΠΈ. Π’ ΠΊΠΎΠ½Ρ†Π΅ Π΅ΡΡ‚ΡŒ ссылка ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΠ² с html страницСй ΠΈ нСсколькими js Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ β€” это ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ AES Π½Π° JavaScript.

Как ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ AES

Π­Ρ‚ΠΎΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΎΠ΄ΠΈΠ½ 128-Π±ΠΈΡ‚Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ сСкрСтный ΠΊΠ»ΡŽΡ‡ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ΅Π½ для Ρ‚Π°ΠΊΠΎΠ³ΠΎ прСобразования. Для Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ 128-Π±ΠΈΡ‚Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ с Ρ‚Π΅ΠΌ ΠΆΠ΅ сСкрСтным ΠΊΠ»ΡŽΡ‡ΠΎΠΌ. Выглядит это Ρ‚Π°ΠΊ:

Π Π°Π·ΠΌΠ΅Ρ€ Π±Π»ΠΎΠΊΠ° всСгда Ρ€Π°Π²Π΅Π½ 128 Π±ΠΈΡ‚. Π Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ»ΡŽΡ‡Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ фиксированный Ρ€Π°Π·ΠΌΠ΅Ρ€. Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ тСкст Π»ΡŽΠ±Ρ‹ΠΌ ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ Ρ‚Π°ΠΊ:

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒ массив Π±Π»ΠΎΠΊΠΎΠ² cipher Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Π±Π»ΠΎΠΊΡƒ decrypt:

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π΄Π»ΠΈΠ½Π° тСкста ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ ΠΊΡ€Π°Ρ‚Π½Π° 128 Π±ΠΈΡ‚Π°ΠΌ. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ тСкст нулями Π΄ΠΎ Π½ΡƒΠΆΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹, Π° Π² Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ нСсколько Π±Π°ΠΉΡ‚ с Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ тСкста. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ aes.encrypt ΠΈ aes.decrypt Π² Ρ„Π°ΠΉΠ»Π΅ aes.js Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ этот ΠΏΠΎΠ΄Ρ…ΠΎΠ΄.

ПолС GF(2 8 )

AES Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ GF(2 8 ). Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ AES Π½Π° JavaScript Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это Π·Π° ΠΏΠΎΠ»Π΅, Π½ΠΎ Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ AES, ΠΏΡ€ΠΎΡ‡Ρ‚ΠΈΡ‚Π΅ этот Ρ€Π°Π·Π΄Π΅Π».

ПолС GF(2 8 ) это числа 0..255 для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ особоС ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ особоС слоТСниС. Π’ΠΎΠ·ΠΌΡ‘ΠΌ ΠΊΠ°ΠΊΠΎΠ΅ Π½ΠΈΠ±ΡƒΠ΄ΡŒ число ΠΈΠ· этого поля ΠΈ прСдставим Π΅Π³ΠΎ Π² Π²ΠΈΠ΄Π΅ восьми Π±ΠΈΡ‚ΠΎΠ²: a = a7a6a5a4a3a2a1a0. Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ прСдставим число b. Π‘Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ a ΠΈ b это извСстная побитовая опСрация xor:

Π£ слоТСния Π΅ΡΡ‚ΡŒ простыС свойства:

Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ опрСдСляСтся слоТнСС. Π—Π°ΠΏΠΈΡˆΠ΅ΠΌ ΠΌΠ½ΠΎΠ³ΠΎΡ‡Π»Π΅Π½Ρ‹ с коэффициСнтами ΠΈΠ· Π±ΠΈΡ‚ΠΎΠ² этих чисСл:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ½ΠΎΠΆΠΈΠΌ эти Π΄Π²Π° ΠΌΠ½ΠΎΠ³ΠΎΡ‡Π»Π΅Π½Π° ΠΈ Π½Π°ΠΉΠ΄Ρ‘ΠΌ остаток ΠΎΡ‚ дСлСния Π½Π° m:

m = x 8 + x 4 + x 3 + x + 1
r = pq mod (m)

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π²Ρ‹Π±Ρ€Π°Π½ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ m? Π£ этого ΠΌΠ½ΠΎΠ³ΠΎΡ‡Π»Π΅Π½Π° Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° дСлитСля-ΠΌΠ½ΠΎΠ³ΠΎΡ‡Π»Π΅Π½Π° Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ дСлится Π±Π΅Π· остатка: Π΅Π΄ΠΈΠ½ΠΈΡ†Π° ΠΈ ΠΎΠ½ сам. По Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с простыми числами, ΠΌΠ½ΠΎΠ³ΠΎΡ‡Π»Π΅Π½ m «простой». ΠΠ°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ остаток ΠΎΡ‚ дСлСния ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ для ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… чисСл: для этого достаточно ΡƒΠΌΠ΅Ρ‚ΡŒ ΡƒΠΌΠ½ΠΎΠΆΠ°Ρ‚ΡŒ, ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Π²Ρ‹Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΡ‡Π»Π΅Π½Ρ‹, ΠΏΡ€ΠΈΡ‡Ρ‘ΠΌ слоТСниС ΠΈ Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ производят ΠΏΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ GF(2 8 ), Ρ‚.Π΅. слоТСниС ΠΈ Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΡ‡Π»Π΅Π½ΠΎΠ² это xor ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ°Ρ€ΠΎΠΉ коэффициСнтов. Π’ΠΎΡ‚ Π΄Π²Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°:

ΠœΠ½ΠΎΠ³ΠΎΡ‡Π»Π΅Π½ r прСдставим Π² Π²ΠΈΠ΄Π΅

Π•Π³ΠΎ 8 коэффициСнтов ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой 8-Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ число ΠΈΠ· поля GF(2 8 ) ΠΈ это число называСтся ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ aβ€’b. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ слоТСния, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ нСльзя Π½Π°ΠΉΡ‚ΠΈ ΠΏΠ°Ρ€ΠΎΠΉ простых ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Однако ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ½ΠΎΠ³ΠΎΡ‡Π»Π΅Π½ Π² ΠΏΠΎΠ»Π΅ GF(2 8 ) ΠΌΠΎΠΆΠ½ΠΎ свСсти ΠΊ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡŽ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΡ‡Π»Π΅Π½ x, Π° ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ Π½Π° x ΠΌΠΎΠΆΠ½ΠΎ нСсколькими ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ опСрациями, ΠΎ Ρ‡Ρ‘ΠΌ ΠΏΠΎΠΉΠ΄Ρ‘Ρ‚ Ρ€Π΅Ρ‡ΡŒ Π½ΠΈΠΆΠ΅.

Для обозначСния ΠΌΠ½ΠΎΠ³ΠΎΡ‡Π»Π΅Π½ΠΎΠ² Π² GF(2 8 ) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ 16-Ρ€ΠΈΡ‡Π½Ρ‹Π΅ Ρ†ΠΈΡ„Ρ€Ρ‹. НапримСр

m = x 8 + x 4 + x 3 + x + 1 = 100011011 = 0x011b = <01><1b>

Π£ΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΡ‡Π»Π΅Π½ x = <02>Π² ΠΏΠΎΠ»Π΅ GF(2 8 ) ΠΎΡ‡Π΅Π½ΡŒ просто. Рассмотрим ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ остаток ΠΎΡ‚ дСлСния Π½Π° m. Если Π±ΠΈΡ‚ a7 = 1, Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π²Ρ‹Ρ‡Π΅ΡΡ‚ΡŒ m. Если a7 = 0 Ρ‚ΠΎ Π²Ρ‹Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ. Π˜Ρ‚Π°ΠΊ:

Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° x ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ:

Зная ΠΊΠ°ΠΊ ΡƒΠΌΠ½ΠΎΠΆΠ°Ρ‚ΡŒ Π½Π° x ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ Π½Π° любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΌΠ½ΠΎΠ³ΠΎΡ‡Π»Π΅Π½. Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π½Π°ΠΉΠ΄Ρ‘ΠΌ aβ€’b Π³Π΄Π΅ a = <3c>, b = :

Π’Π°Π±Π»ΠΈΡ†Π° SBox

Π­Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° прСдставляСт собой 256-Π±Π°ΠΉΡ‚Ρ‹ΠΉ массив ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Π°ΠΉΡ‚Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ. НС ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΠ½Π° получаСтся, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ просто ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ этот массив. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ Ρ‡Π΅ΠΌΡƒ Ρ€Π°Π²Π΅Π½ элСмСнт SBox[b] Π½ΡƒΠΆΠ½ΠΎ Ρ‚Ρ€ΠΈ дСйствия:

Π’ суммС эти Ρ‚Ρ€ΠΈ дСйствия Π΄Π°ΡŽΡ‚ Π°Ρ„ΠΈΠ½Π½ΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅:

НСслоТно ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΊΠ°ΠΊ построСна эта ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° ΠΈΠ· Π±ΠΈΡ‚ΠΎΠ². Для умноТСния Π±ΠΈΡ‚ΠΎΠ² Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Β«andΒ», для слоТСния β€” Β«xorΒ». НапримСр:

Π€ΡƒΠ½ΠΊΡ†ΠΈΡŽ sbox я написал Ρ‚Π°ΠΊ:

ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½Π½Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π° выглядит Ρ‚Π°ΠΊ:

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

Для ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ [a b c d] = [ <02><03><01><01>]. МоТно ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅ ΠΊ MixColumns[ <02><03><01><01>] это MixColumns[ <0e><0b><0d><09>].

Π‘Ρ…Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊ:

Π Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠ°

Как Π²ΠΈΠ΄Π½ΠΎ, для ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… AES ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ примСняСт ΠΊ Π½Π΅ΠΌΡƒ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠΌΡ‹Ρ… ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ. Для Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Π΅ прСобразования Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС.

НСмного ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ

Ѐункция sbox ΠΈΠΌΠ΅Π΅Ρ‚ всСго 256 Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ 256 Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π· sbox для ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, Π½ΡƒΠΆΠ½ΠΎ ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹. На JavaScript это нСслоТно ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΄Π°ΠΆΠ΅ Π½Π΅ мСняя ΠΊΠΎΠ΄ написанный Ρ€Π°Π½Π΅Π΅. Для этого Π½ΡƒΠΆΠ½ΠΎ всСго лишь Π΄ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π½ΠΈΠΆΠ΅ Π²ΠΎΡ‚ это:

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ замСняСт sbox Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ которая ΠΊΠ΅ΡˆΠΈΡ€ΡƒΠ΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ sbox. Π’ΠΎΠΆΠ΅ самоС ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ для любой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для invsbox ΠΈ rcon. Π­Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΏΡ€ΠΈΡ‘ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ gf.mul которая ΡƒΠΌΠ½ΠΎΠΆΠ°Π΅Ρ‚ Π΄Π²Π° Π±Π°ΠΉΡ‚Π° Π² ΠΏΠΎΠ»Π΅ GF(2 8 ), Π½ΠΎ Π² этом случаС Ρ€Π°Π·ΠΌΠ΅Ρ€ кСша Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π΅Π½ 256Γ—256 элСмСнтов, Ρ‡Ρ‚ΠΎ довольно ΠΌΠ½ΠΎΠ³ΠΎ.

Бсылки

ДокумСнтация ΠΊ AES Π½Π° английском называСтся FIPS 197.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Алгоритм ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ DES (Data Encryption Standard) [9] c 1977 Π³ΠΎΠ΄Π° являСтся стандартом симмСтричного ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ БША (ΠΊΡ€ΠΎΠΌΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½ΠΎΠΉ стСпСни сСкрСтности). Π’ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… 20 Π»Π΅Ρ‚ Β«DES стойко Π²Ρ‹Π΄Π΅Ρ€ΠΆΠ°Π» 20 Π»Π΅Ρ‚ массового всСмирного ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ°Π½Π°Π»ΠΈΠ·Π°Β» [7] Β— дСсятилСтия ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ°Π½Π°Π»ΠΈΠ·Π° (Ρ‚.Π΅. Π½Π°ΡƒΠΊΠΈ, посвящСнной поиску уязвимостСй ΠΈ, соотвСтствСнно, Π²Π·Π»ΠΎΠΌΡƒ криптографичСских Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ) Π½Π΅ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΈ ΠΊ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΡŽ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Ρ… уязвимостСй Π² Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅ (ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎ ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ°Π½Π°Π»ΠΈΠ·Π΅ DES см. [18]).

ЀактичСски, DES Π΄Π°Π» Π½Π΅Π²ΠΈΠ΄Π°Π½Π½Ρ‹ΠΉ досСлС Ρ‚ΠΎΠ»Ρ‡ΠΎΠΊ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΡŽ ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ°Π½Π°Π»ΠΈΠ·Π°. Π’Ρ‹ΡˆΠ»ΠΈ сотни Ρ‚Ρ€ΡƒΠ΄ΠΎΠ², посвящСнных Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ°Π½Π°Π»ΠΈΠ·Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΊ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ DES, Π° Ρ‚Π°ΠΊΠΆΠ΅ дСталям самого Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΈ ΠΈΡ… влиянию Π½Π° ΠΊΡ€ΠΈΠΏΡ‚ΠΎΡΡ‚ΠΎΠΉΠΊΠΎΡΡ‚ΡŒ DES. МоТно ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ благодаря DES появились Ρ†Π΅Π»Ρ‹Π΅ направлСния ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ°Π½Π°Π»ΠΈΠ·Π°. DES Π΄ΠΎ сих ΠΏΠΎΡ€ считаСтся ΡΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ Π²ΠΎ всСм, ΠΊΡ€ΠΎΠΌΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΊΠ»ΡŽΡ‡Π° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ. 56-Π±ΠΈΡ‚Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ DES явно нСдостаточСн ΠΈ ΠΏΡ€ΠΈ соврСмСнных Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… рСсурсах ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ вскрыт ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Β«Π³Ρ€ΡƒΠ±ΠΎΠΉ силы», Ρ‚.Π΅. ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ΠΎΠΌ всСх Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΊΠ»ΡŽΡ‡Π° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ³Ρ€Π°Ρ„Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π»ΠΈ это Π΅Ρ‰Π΅ Π΄ΠΎ принятия DES Π² качСствС стандарта [22], Π° ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ увСличСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΊΠ»ΡŽΡ‡Π° DES Π±Π΅Π· измСнСния самого Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π½Π°Ρ‡Π°Π»ΠΈΡΡŒ ΡƒΠΆΠ΅ Π² 1978 Π³ΠΎΠ΄Ρƒ (см. [18]). Однако, DES ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π» Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² качСствС стандарта БША.

Π­Ρ‚ΠΈ трСбования оказались достаточно ТСсткими ΠΈ частично ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡Π°Ρ‰ΠΈΠΌΠΈ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Ρƒ; ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΈΠ· ΡƒΡ‡Π°ΡΡ‚Π²ΠΎΠ²Π°Π²ΡˆΠΈΡ… Π² конкурсС прСдставлял собой Π½Π΅ΠΊΠΈΠΉ Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΉ Π°Π²Ρ‚ΠΎΡ€Π°ΠΌΠΈ компромисс ΠΌΠ΅ΠΆΠ΄Ρƒ соотвСтствиями Π΄Π°Π½Π½Ρ‹ΠΌ трСбованиям.

Заявки ΠΎΡ‚ участников конкурса NIST ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π» Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡƒΡ‚ΠΎΡ€Π° Π»Π΅Ρ‚, послС Ρ‡Π΅Π³ΠΎ всС присланныС Π½Π° конкурс Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΈΠ·ΡƒΡ‡Π°Π»ΠΈΡΡŒ ΠΈ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Π»ΠΈΡΡŒ ΠΊΠ°ΠΊ Π² самом институтС NIST, Ρ‚Π°ΠΊ ΠΈ всСми ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΠΌΠΈ. Π‘Ρ‚ΠΎΠΈΡ‚ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² NIST ΠΏΡ€ΠΈΡˆΠ»ΠΎ Π½Π΅ΠΌΠ°Π»ΠΎ ΠΎΡ‚Π·Ρ‹Π²ΠΎΠ², всС ΠΎΠ½ΠΈ находятся Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ доступС ΠΈ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° web-сайтС института (см. Π²Ρ‹ΡˆΠ΅).

ВсСго Π² конкурсС приняли участиС 15 Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ [1, 13]:

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ этапа конкурса Π±Ρ‹Π»ΠΈ Π²Ρ‹Π±Ρ€Π°Π½Ρ‹ 5 Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Π±Π΅Π· явно Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹Ρ… нСдостатков: MARS, RC6, Rijndael, Serpent ΠΈ Twofish. ΠΠ°Ρ‡Π°Π»ΠΎΡΡŒ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ этих Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² (Ρ‡Ρ‚ΠΎ Π½Π°Π·Ρ‹Π²Π°Π»ΠΎΡΡŒ Β«Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ этапом» ΠΈΠ»ΠΈ Β«Ρ„ΠΈΠ½Π°Π»ΠΎΠΌΒ» конкурса AES), ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π²ΡˆΠ΅Π΅ΡΡ Π΅Ρ‰Π΅ Π³ΠΎΠ΄ с нСбольшим. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»Π΅ΠΌ конкурса стал Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Rijndael; Π΅ΠΌΡƒ Π±Ρ‹Π»ΠΎ присвоСно Π½Π°Π·Π²Π°Π½ΠΈΠ΅ AES, ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ½ ΡƒΠΆΠ΅ достаточно ΡˆΠΈΡ€ΠΎΠΊΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΈ, Π²ΠΈΠ΄ΠΈΠΌΠΎ, ΠΏΠΎ ΡˆΠΈΡ€ΠΎΡ‚Π΅ распространСния ΠΎΠ±ΠΎΠΉΠ΄Π΅Ρ‚ своСго ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΈΠΊΠ° Β— Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ DES.

Π‘Ρ‚ΠΎΠΈΡ‚ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ Rijndael посвящСно ΡƒΠΆΠ΅ мноТСство статСй ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² ΠΊΠ½ΠΈΠ³ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, [20, 21]), поэтому рассмотрим здСсь ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹, Π²Ρ‹ΡˆΠ΅Π΄ΡˆΠΈΠ΅ Π² Ρ„ΠΈΠ½Π°Π», Π° ΠΊ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ Rijndael, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, вСрнСмся Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… статСй.Алгоритм Serpent

Как Π±Ρ‹Π»ΠΎ сказано Π²Ρ‹ΡˆΠ΅, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Serpent Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ трСмя ΠΈΠ·Π²Π΅ΡΡ‚Π½Π΅ΠΉΡˆΠΈΠΌΠΈ ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ»ΠΎΠ³Π°ΠΌΠΈ: Россом АндСрсоном, Π­Π»ΠΈ Π‘ΠΈΡ…Π°ΠΌΠΎΠΌ ΠΈ Ларсом ΠšΠ½ΡƒΠ΄ΡΠ΅Π½ΠΎΠΌ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… Π·Π½Π°ΠΌΠ΅Π½ΠΈΡ‚ своими криптоаналитичСскими Ρ€Π°Π±ΠΎΡ‚Π°ΠΌΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΌΠΈ Ρ€Π°Π½Π΅Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌΠΈ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡˆΠΈΡ€ΠΎΠΊΡƒΡŽ ΠΈΠ·Π²Π΅ΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Bear ΠΈ Leon, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ АндСрсоном ΠΈ Π‘ΠΈΡ…Π°ΠΌΠΎΠΌ [2]; Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ извСстСн Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Square, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ Π°Π²Ρ‚ΠΎΡ€Π°ΠΌΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Rijndael Π”ΠΆΠΎΠ°Π½ Π”Π΅ΠΉΠΌΠ΅Π½ (Joan Daemen) ΠΈ ВинсСнтом Π ΠΈΠ΄ΠΆΠΌΠ΅Π½ΠΎΠΌ (Vincent Rijmen) ΠΏΡ€ΠΈ участии Ларса ΠšΠ½ΡƒΠ΄ΡΠ΅Π½Π° [8]). ИмСнно Π­Π»ΠΈ Π‘ΠΈΡ…Π°ΠΌΠ° Π±Π΅Π· прСувСличСния ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ Π²Π΅Π»ΠΈΡ‡Π°ΠΉΡˆΠΈΠΌ ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΎΠΌ соврСмСнности Β— Π΅Π³ΠΎ авторству (часто Π² соавторствС с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ спСциалистами) ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ мноТСство Ρ€Π°Π±ΠΎΡ‚, посвящСнных ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ вскрытия Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… извСстных Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ.

Π•Ρ‰Π΅ Π΄ΠΎ конкурса AES появился Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Serpent-0, ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΠΉΡΡ ΠΎΡ‚ присланного Π½Π° конкурс Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Serpent-1 (ΠΈΠ»ΠΈ просто Serpent) Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΌ Π±Ρ‹Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π°ΠΌΠ΅Π½ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° DES (Π² Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅). Π’ Serpent ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡƒΠΆΠ΅ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π°ΠΌΠ΅Π½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, ΠΏΠΎ словам Π°Π²Ρ‚ΠΎΡ€ΠΎΠ² [3], Π²ΠΊΡƒΠΏΠ΅ с Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΊΠ»ΡŽΡ‡Π° усилили Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΡ€ΠΎΡ‚ΠΈΠ² Π΄ΠΈΡ„Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ°Π½Π°Π»ΠΈΠ·Π°.

Рассмотрим здСсь ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΎΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Serpent, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» прислан Π½Π° конкурс AES ΠΈ стал ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π΅Π³ΠΎ финалистов.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°

Serpent прСдставляСт собой SP-ΡΠ΅Ρ‚ΡŒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… Π² процСссС ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ разбиваСтся Π½Π° 4 субблока ΠΏΠΎ 32 Π±ΠΈΡ‚Π° (см. рис. 1) [3].128 Π±ΠΈΡ‚Π½ΠΎΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ 128 Π±ΠΈΡ‚Π½ΠΎΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ 128 Π±ΠΈΡ‚Π½ΠΎΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ это. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ 128 Π±ΠΈΡ‚Π½ΠΎΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ это. Π€ΠΎΡ‚ΠΎ 128 Π±ΠΈΡ‚Π½ΠΎΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ это

Алгоритм выполняСт 32 Ρ€Π°ΡƒΠ½Π΄Π° ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ; ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Ρ€Π°ΡƒΠ½Π΄ΠΎΠΌ выполняСтся Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ пСрСстановка IP, послС Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π°ΡƒΠ½Π΄Π° Β— Ρ„ΠΈΠ½Π°Π»ΡŒΠ½Π°Ρ пСрСстановка FP. ΠΠ°Ρ‡Π°Π»ΡŒΠ½Π°Ρ пСрСстановка ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

0326496133659723466983356799
43668100537691016387010273971103
8407210494173105104274106114375107
124476108134577109144678110154779111
164880112174981113185082114195183115
205284116215385117225486118235587119
245688120255789121265890122275991123
286092124296193125306294126316395127

Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π±ΠΈΡ‚ 0 остаСтся Π½Π° своСм мСстС, Π±ΠΈΡ‚ 32 Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ значСния становится Π±ΠΈΡ‚ΠΎΠΌ 1, Π±ΠΈΡ‚ 64 Β— Π±ΠΈΡ‚ΠΎΠΌ 2 ΠΈ Ρ‚.Π΄.

Ѐинальная пСрСстановка являСтся инвСрсной Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ пСрСстановкС ΠΈ выглядит Ρ‚Π°ΠΊ:

04812162024283236404448525660
646872768084889296100104108112116120124
15913172125293337414549535761
656973778185899397101105109113117121125
261014182226303438424650545862
667074788286909498102106110114118122126
371115192327313539434751555963
677175798387919599103107111115119123127

Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ€Π°ΡƒΠ½Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ΄Π½Π° ΠΈ Ρ‚Π° ΠΆΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Π°; всСго ΠΆΠ΅ Π² Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ 8 Ρ‚Π°Π±Π»ΠΈΡ† Π·Π°ΠΌΠ΅Π½ S0. S7, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ цикличСски ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² 32 Ρ€Π°ΡƒΠ½Π΄Π°Ρ… ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ:

S03815110651114134270912
S11512279051011114861334
S28679312101513114401152
S30151181296313124107514
S41158312011625410914713
S51552114109120314813671
S67212584611149115133100
S71131501482117412109356

Π―Ρ‡Π΅ΠΉΠΊΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ содСрТат Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ значСния; Π²Ρ…ΠΎΠ΄Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ опрСдСляСт Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€ столбца. НапримСр, Ρ‚Π°Π±Π»ΠΈΡ†Π° S0 мСняСт 0 Π½Π° 3, 1 Π½Π° 8 ΠΈ Ρ‚.Π΄.

КаТдая ячСйка Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ соотвСтствуСт Π±ΠΈΡ‚Ρƒ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ значСния (ΠΎΡ‚ 0 Π΄ΠΎ 127); Π² ячСйкС пСрСчислСны Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π±ΠΈΡ‚Ρ‹, XOR ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Π°Π΅Ρ‚ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. НапримСр:

Π›ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΠΊΠ°ΠΊ Π² Π²ΠΈΠ΄Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Ρ‚Π°ΠΊ ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… вычислСний (см. рис. 2):

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ g() ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ 32-Π±ΠΈΡ‚Π½Ρ‹Ρ… Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ субблок Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ пСрСчислСнных Π½ΠΈΠΆΠ΅ шагов (см. рис. 4):128 Π±ΠΈΡ‚Π½ΠΎΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ 128 Π±ΠΈΡ‚Π½ΠΎΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ 128 Π±ΠΈΡ‚Π½ΠΎΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ это. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ 128 Π±ΠΈΡ‚Π½ΠΎΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ это. Π€ΠΎΡ‚ΠΎ 128 Π±ΠΈΡ‚Π½ΠΎΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ это

128 Π±ΠΈΡ‚Π½ΠΎΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ 128 Π±ΠΈΡ‚Π½ΠΎΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ 128 Π±ΠΈΡ‚Π½ΠΎΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ это. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ 128 Π±ΠΈΡ‚Π½ΠΎΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ это. Π€ΠΎΡ‚ΠΎ 128 Π±ΠΈΡ‚Π½ΠΎΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ это

Π³Π΄Π΅ g0. g3 Β— Π±Π°ΠΉΡ‚Ρ‹ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ значСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ g().
Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ выполняСтся Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΏΠΎΠ»Π΅ GF(2 8 ) с ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌΠΎΠΌ x 8 + x 6 + x 5 + x 3 + 1.
ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° M1 ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ (здСсь ΠΈ Π΄Π°Π»Π΅Π΅ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… ΡƒΠΊΠ°Π·Π°Π½Ρ‹ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Π΅ значСния):

01EF5B5B
5BEFEF01
EF5B01EF
EF01EF5B

Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ€Π°ΡƒΠ½Π΄Π°, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ послСднСго, субблоки A (Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄ΠΎ описанной Π²Ρ‹ΡˆΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ) ΠΈ C ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ мСстами; субблоки B (Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ) ΠΈ D Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ мСстами.

ΠŸΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Ρ€Π°ΡƒΠ½Π΄ΠΎΠΌ выполняСтся Π²Ρ…ΠΎΠ΄Π½ΠΎΠ΅ ΠΎΡ‚Π±Π΅Π»ΠΈΠ²Π°Π½ΠΈΠ΅ Β— Π½Π°Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ XOR Π½Π° ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ субблоки Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° K0. K3. Аналогично выполняСтся Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ΅ ΠΎΡ‚Π±Π΅Π»ΠΈΠ²Π°Π½ΠΈΠ΅ Β— послС послСднСго Ρ€Π°ΡƒΠ½Π΄Π° с использованиСм ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅ΠΉ K4. K7.

Как Π²ΠΈΠ΄Π½ΠΎ, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Twofish ΠΈΠΌΠ΅Π΅Ρ‚ сущСствСнно Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ структуру, Ρ‡Π΅ΠΌ Serpent, Ρ‡Ρ‚ΠΎ компСнсируСтся Π²Π΄Π²ΠΎΠ΅ мСньшим количСством Ρ€Π°ΡƒΠ½Π΄ΠΎΠ².

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΊΠ»ΡŽΡ‡Π°

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΊΠ»ΡŽΡ‡Π° Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ 40 32-Π±ΠΈΡ‚Π½Ρ‹Ρ… ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅ΠΉ для использования Π² 16 Ρ€Π°ΡƒΠ½Π΄Π°Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΈ для выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ отбСливания. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π° основС ΠΊΠ»ΡŽΡ‡Π° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π°ΠΌΠ΅Π½ S0. S3.

Аналогично Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ Serpent, Twofish ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠ»ΡŽΡ‡ΠΈ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ любого Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π΄ΠΎ 256 Π±ΠΈΡ‚ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ. Однако, Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π° выполняСтся нСсколько ΠΈΠ½Π°Ρ‡Π΅: исходный ΠΊΠ»ΡŽΡ‡, ΠΏΡ€ΠΈ нСобходимости, дополняСтся Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌΠΈ Π±ΠΈΡ‚Π°ΠΌΠΈ Π΄ΠΎ блиТайшСго стандартного Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Ρ‚.Π΅. Π΄ΠΎ 128, 192 ΠΈΠ»ΠΈ 256 Π±ΠΈΡ‚. ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΊΠ»ΡŽΡ‡Π° ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΉ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΊΠ»ΡŽΡ‡.

Π‘Π½Π°Ρ‡Π°Π»Π° выполняСтся ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠ»ΡŽΡ‡Π°, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π°Ρ Π² сСбя ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги:

128 Π±ΠΈΡ‚Π½ΠΎΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ 128 Π±ΠΈΡ‚Π½ΠΎΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ 128 Π±ΠΈΡ‚Π½ΠΎΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ это. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ 128 Π±ΠΈΡ‚Π½ΠΎΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ это. Π€ΠΎΡ‚ΠΎ 128 Π±ΠΈΡ‚Π½ΠΎΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ это

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° M2 ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

01A455875A58DB9E
A45682F31EC668E5
02A1FCC147AE3D19
A455875A58DB9E03

ГСнСрация ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅ΠΉ k0. k39 производится Π½Π° основС вычислСнных Π½Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ этапС массивов Me ΠΈ Mo ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π° функция h() заслуТиваСт ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ³ΠΎ описания.

Данная функция схСматично прСдставлСна Π½Π° рис. 5.128 Π±ΠΈΡ‚Π½ΠΎΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ 128 Π±ΠΈΡ‚Π½ΠΎΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ 128 Π±ΠΈΡ‚Π½ΠΎΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ это. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ 128 Π±ΠΈΡ‚Π½ΠΎΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ это. Π€ΠΎΡ‚ΠΎ 128 Π±ΠΈΡ‚Π½ΠΎΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ это

Она выполняСтся Π² нСсколько шагов, состав ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… зависит ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° Π² 64-Π±ΠΈΡ‚Π½Ρ‹Ρ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ…, Ρ‚.Π΅. ΠΎΡ‚ описанного Π²Ρ‹ΡˆΠ΅ значСния k. Π’ качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² функция h() ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ 32-Π±ΠΈΡ‚Π½ΠΎΠ΅ слово ΠΈ массив 32-Π±ΠΈΡ‚Π½Ρ‹Ρ… слов Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒΡŽ k. ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ выполнСния Ρ‚Π°ΠΊΠΎΠ²Π°:

Π³Π΄Π΅ x Β— Π²Ρ…ΠΎΠ΄Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅,
y Β— Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅,
>>>4 Β— опСрация цикличСского вращСния Π²ΠΏΡ€Π°Π²ΠΎ 4-Π±ΠΈΡ‚Π½Ρ‹Ρ… Π²Π΅Π»ΠΈΡ‡ΠΈΠ½, Ρ‚.Π΅. Ρ€Π°Π·Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½ΠΈΠ±Π»Π° ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Π±Π°ΠΉΡ‚Π°;
ti Β— Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Π΅ Π·Π°ΠΌΠ΅Π½Ρ‹, Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ для q0 ΠΈ q1; для q0 Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ выглядят Ρ‚Π°ΠΊ:

t0817D6F320B59ECA4
t1ECB81235F4A6709D
t2BA5E6D90C8F32471
t3D7F4126E9B3085CA

Π’Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ бСрСтся ΠΈΠ· ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ; Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, t1 замСняСт 0 Π½Π° E, 1 Π½Π° C ΠΈ Ρ‚.Π΄.

Π’Π°Π±Π»ΠΈΡ†Ρ‹ для q1 ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

t028BDF76E31940AC5
t11E2B4C376DA5F908
t24C75169A0ED82B3F
t3B951C3DE647F208A

ΠžΡΡ‚Π°Π»ΠΎΡΡŒ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ ΠΊΠ»ΡŽΡ‡Π° Ρ‚Π°Π±Π»ΠΈΡ† Π·Π°ΠΌΠ΅Π½ S0. S3. ЀактичСски, Π² Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ вмСсто описанной Π²Ρ‹ΡˆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ g() ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ функция h(), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π°Ρ Π² качСствС Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ значСния 32-Π±ΠΈΡ‚Π½Ρ‹ΠΉ субблок A ΠΈΠ»ΠΈ B, Π° Π² качСствС Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ массива Β— описанный Ρ€Π°Π½Π΅Π΅ массив V. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π·Π°ΠΌΠ΅Π½Π° выполняСтся Π½Π° основС Ρ‚Π΅Ρ… ΠΆΠ΅ Ρ‚Π°Π±Π»ΠΈΡ† t0. t3, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΊΠ»ΡŽΡ‡Π°.

Π’ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΊΠ»ΡŽΡ‡Π° являСтся слоТной ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ нСсравнимо большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‡Π΅ΠΌ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…. Авторы Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π² Π΅Π³ΠΎ спСцификации [16] описали нСсколько Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΊΠ»ΡŽΡ‡Π°, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°, исходя ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²:

ΠžΠ±Ρ‰ΠΈΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ состоит Π² поисках Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ³ΠΎ компромисса ΠΌΠ΅ΠΆΠ΄Ρƒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ выполнСния ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΊΠ»ΡŽΡ‡Π°: Ρ‡Π΅ΠΌ быстрСС Π½ΡƒΠΆΠ½ΠΎ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‚Π΅ΠΌ дольшС Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π°, ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.

Twofish-FK

Помимо описанного Π²Ρ‹ΡˆΠ΅ «стандартного» Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Twofish, Π°Π²Ρ‚ΠΎΡ€Ρ‹ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ»ΠΈ Π΅Ρ‰Π΅ ΠΈ Twofish Family Key (ΠΈΠ»ΠΈ Twofish-FK) Β— шаблон для формирования Π½Π° основС Twofish Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°, нСсовмСстимых ΠΌΠ΅ΠΆΠ΄Ρƒ собой ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, для ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΎΠ±ΠΎΡ€ΠΎΡ‚Π°.

ΠΠ΅ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² достигаСтся ΠΏΡƒΡ‚Π΅ΠΌ примСнСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° (FK), константного для всСх ΡΡƒΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΡ… ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΈΠ· Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Twofish-FK. Π’.Π΅. ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ FK Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π΅ΠΊΠΈΠΉ Β«ΠΊΠΎΠ½Ρ‚ΡƒΡ€ совмСстимости» криптосрСдств, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ… Twofish-FK.

Π³Π΄Π΅ EFK(N) Β— Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ Twofish Π½Π° ΠΊΠ»ΡŽΡ‡Π΅ FK 128-Π±ΠΈΡ‚Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π±Π°ΠΉΡ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ содСрТит Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ N, Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π±Π°ΠΉΡ‚Ρ‹ ΠΎΠ±Π½ΡƒΠ»Π΅Π½Ρ‹,
| Β— опСрация ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

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

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