ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Π°Ρ рСализация Ρ€Π΅ΠΆΠΈΠΌΠ° сцСплСния Π±Π»ΠΎΠΊΠΎΠ² ΡˆΠΈΡ„Ρ€Π° Β«BlowfishΒ»

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Шифрация Π΄Π°Π½Π½Ρ‹Ρ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Ρ€Π°ΡƒΠ½Π΄ΠΎΠ²Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΈ ΠΏΠΎΠ΄ΡΡ‚Π°Π½ΠΎΠ²ΠΊΠΈ, происходит Ρ‡Π΅Ρ€Π΅Π· использованиС сСти ЀСйстСля, состоящСй Π² ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΈΠ· 16 Ρ€Π°ΡƒΠ½Π΄ΠΎΠ², Π½ΠΎ Ρ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ особСнностями Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ Ρ€Π°ΡƒΠ½Π΄ΠΎΠ²Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ (Рис.2). Π’ ΡΡ‚ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π±Π»ΠΎΠΊΠΎΠ² кодируСтся нСзависимо с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠ»ΡŽΡ‡Π° (рис.6). ОсновноС достоинство этого Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° — простота… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Π°Ρ рСализация Ρ€Π΅ΠΆΠΈΠΌΠ° сцСплСния Π±Π»ΠΎΠΊΠΎΠ² ΡˆΠΈΡ„Ρ€Π° Β«BlowfishΒ» (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠœΠΈΠ½ΠΈΡΡ‚Π΅Ρ€ΡΡ‚Π²ΠΎ образования ΠΈ Π½Π°ΡƒΠΊΠΈ Π Π€ Π‘Π Π―ΠΠ‘ΠšΠ˜Π™ Π“ΠžΠ‘Π£Π”ΠΠ Π‘Π’Π’Π•ΠΠΠ«Π™ Π’Π•Π₯ΠΠ˜Π§Π•Π‘ΠšΠ˜Π™ Π£ΠΠ˜Π’Π•Π Π‘Π˜Π’Π•Π’ ΠšΠ°Ρ„Π΅Π΄Ρ€Π° «Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ° ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС»

программная РСализация Ρ€Π΅ΠΆΠΈΠΌΠ° сцСплСния Π±Π»ΠΎΠΊΠΎΠ² ΡˆΠΈΡ„Ρ€Π° «BlowFish»

ΠšΠ£Π Π‘ΠžΠ’ΠΠ― Π ΠΠ‘ΠžΠ’Π Π ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ Π΄ΠΎΡ†. Π”Π΅Ρ€Π³Π°Ρ‡Π΅Π² К.Π’.

Π‘Ρ‚ΡƒΠ΄Π΅Π½Ρ‚ Π Π΅Π΄Π΅Π½ΠΊΠΎΠ² А.Н.

Π‘Π Π―ΠΠ‘Πš 2013

1. ΠΠΠΠ›Π˜Π’Π˜Π§Π•Π‘ΠšΠΠ― ЧАБВЬ

1.1 Blowfish

1.2 DES

1.3 IDEA

1.4 Π“ΠžΠ‘Π’ 28 147–89

1.5 Π’Ρ‹Π²ΠΎΠ΄

1.6 Π Π΅ΠΆΠΈΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹

1.6.1 Π Π΅ΠΆΠΈΠΌ элСктронной ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (ECB)

1.6.2 Π Π΅ΠΆΠΈΠΌ сцСплСния Π±Π»ΠΎΠΊΠΎΠ² (CBC)

1.6.3 Π Π΅ΠΆΠΈΠΌ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи ΠΏΠΎ ΡˆΠΈΡ„Ρ€-тСксту

1.6.4 Π Π΅ΠΆΠΈΠΌ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи ΠΏΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Ρƒ (OFB)

2. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ΡΠΊΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ

2.1 ΠžΠ±Ρ‰ΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ

2.2 Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π°

2.3 РСализация сСти ЀСйстСля

2.4 Π Π΅ΠΆΠΈΠΌ сцСплСния Π±Π»ΠΎΠΊΠΎΠ²

3. Π­ΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ

3.1 Руководство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

3.2 ЭкспСримСнты

3.2.1 Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ сцСнарий

3.2.2 ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° использования ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ Π²Π΅ΠΊΡ‚ΠΎΡ€Π°

3.2.3 ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° распространСния ошибки

3.2.4 ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΠΏΠΎΡ‚Π΅Ρ€ΡŽ части сообщСния

3.2.5 ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ Π±Π»ΠΎΠΊΠ° Бписок Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

Алгоритм Blowfish Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π‘Ρ€ΡŽΡΠΎΠΌ Π¨Π½Π°ΠΉΠ΅Ρ€ΠΎΠΌ Π² 1994 Π³. ΠΠ²Ρ‚ΠΎΡ€ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» Π΅Π³ΠΎ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Π·Π°ΠΌΠ΅Π½Ρ‹ стандарту DES.

ΠžΡ‚Π»ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ особСнностями этого Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° стала Π±ΠΎΠ»Π΅Π΅ высокая ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ криптостойкости, Π½Π΅ΠΆΠ΅Π»ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° DES (Π² Ρ‚ΠΎΠΌ числС Π·Π° ΡΡ‡Π΅Ρ‚ использования ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ ΠΊΠ»ΡŽΡ‡Π°, Π΄ΠΎ 448 Π±ΠΈΡ‚), высокая ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΡˆΠΈΡ„Ρ€Π°Ρ†ΠΈΠΈ/Π΄Π΅ΡˆΠΈΡ„Ρ€Π°Ρ†ΠΈΠΈ (Π·Π° ΡΡ‡Π΅Ρ‚ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ‚Π°Π±Π»ΠΈΡ† Π·Π°ΠΌΠ΅Π½Ρ‹) ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ — Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΅Π³ΠΎ свободного примСнСния для Π»ΡŽΠ±Ρ‹Ρ… Ρ†Π΅Π»Π΅ΠΉ.

НазваниС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° символизируСт ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡ‚Π°ΠΏΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹: Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π° ΠΎΡ‚ 448 Π±ΠΈΡ‚ Π΄ΠΎ 4168 Π±Π°ΠΉΡ‚, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΈΠ³Π»ΠΎΠ±Ρ€ΡŽΡ…ΠΎΠΉ Ρ€Ρ‹Π±Π΅ (Π°Π½Π³Π». Blowfish).

ΠΊΠ»ΡŽΡ‡ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ошибка ΡˆΠΈΡ„Ρ€ blowfish

1. ΠΠΠΠ›Π˜Π’Π˜Π§Π•Π‘ΠšΠΠ― ЧАБВЬ

1.1 Blowfish

BlowFish — Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ 64-Π±ΠΈΡ‚Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΡ‡Π½ΠΎΠ³ΠΎ ΡˆΠΈΡ„Ρ€Π° с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ (Π΄ΠΎ 448 Π±ΠΈΡ‚).

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ состоит ΠΈΠ· Π΄Π²ΡƒΡ… этапов — Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π° ΠΈ ΡˆΠΈΡ„рация/Π΄Π΅ΡˆΠΈΡ„Ρ€Π°Ρ†ΠΈΡ исходных Π΄Π°Π½Π½Ρ‹Ρ… (Рис.1).

Рис. 1 ΠžΠ±Ρ‰ΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ

Шифрация Π΄Π°Π½Π½Ρ‹Ρ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Ρ€Π°ΡƒΠ½Π΄ΠΎΠ²Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΈ ΠΏΠΎΠ΄ΡΡ‚Π°Π½ΠΎΠ²ΠΊΠΈ, происходит Ρ‡Π΅Ρ€Π΅Π· использованиС сСти ЀСйстСля, состоящСй Π² ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΈΠ· 16 Ρ€Π°ΡƒΠ½Π΄ΠΎΠ², Π½ΠΎ Ρ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ особСнностями Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ Ρ€Π°ΡƒΠ½Π΄ΠΎΠ²Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ (Рис.2).

Рис. 2 ИзмСнСнная ΡΠ΅Ρ‚ΡŒ ЀСйстСля Ѐункция Ρ€Π°ΡƒΠ½Π΄Π° F Π²Π΅ΡΡŒΠΌΠ° проста ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ XOR ΠΈ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ 232.

На ΡΡ‚Π°ΠΏΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΊΠ»ΡŽΡ‡Π°, исходный ΠΊΠ»ΡŽΡ‡ прСобразуСтся Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Ρ€Π°ΡƒΠ½Π΄ΠΎΠ²Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ (P) ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ подстановки (S, Substitution-box) (ΠΈΠ»ΠΈ Π·Π°ΠΌΠ΅Π½Ρ‹), ΠΎΠ±Ρ‰ΠΈΠΌ объСмом Π² 4168 Π±Π°ΠΉΡ‚. ΠŸΡ€ΠΈ этом выполняСтся 521 полная итСрация сСти ЀСйстСля. Всё это являСтся вСсьма Ρ‚Ρ€ΡƒΠ΄ΠΎΠ·Π°Ρ‚Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ, ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ поэтому Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Blowfish Π½Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅Ρ‚ся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΌ, Π³Π΄Π΅ трСбуСтся частая смСна ΠΊΠ»ΡŽΡ‡Π°.

1.2 DES

Π‘ΠΈΠΌΠΌΠ΅Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΡ‡Π½Ρ‹ΠΉ ΡˆΠΈΡ„Ρ€ с Π΄Π»ΠΈΠ½ΠΎΠΉ ΠΊΠ»ΡŽΡ‡Π° 56 Π±ΠΈΡ‚.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ пСрСстановкС Π±ΠΈΡ‚ΠΎΠ² 64-Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚ΠΈ Ρ†ΠΈΠΊΠ»Π°Ρ… ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ пСрСстановкС Π±ΠΈΡ‚ΠΎΠ² (рис.3). Π¦ΠΈΠΊΠ» ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ прСдставляСт собой ΡΠ΅Ρ‚ΡŒ ЀСйстСля. Из-Π·Π° нСбольшого числа Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ (всСго 256), появляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡ… ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° Π½Π° Π±Ρ‹ΡΡ‚Ρ€ΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ΅ Π·Π° Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ΅ врСмя.

Рис. 3 Алгоритм DES

1.3 IDEA

Π‘ΠΈΠΌΠΌΠ΅Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΡ‡Π½Ρ‹ΠΉ ΡˆΠΈΡ„Ρ€ с Π΄Π»ΠΈΠ½ΠΎΠΉ ΠΊΠ»ΡŽΡ‡Π° 128 Π±ΠΈΡ‚ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π±Π»ΠΎΠΊΠ° 64 Π±ΠΈΡ‚Π°.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ состоит ΠΈΠ· Π²ΠΎΡΡŒΠΌΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… Ρ€Π°ΡƒΠ½Π΄ΠΎΠ² ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ прСобразования. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ Π½Π΅Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ тСкст дСлится Π½Π° Π±Π»ΠΎΠΊΠΈ ΠΏΠΎ 64 Π±ΠΈΡ‚Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚Π°ΠΊΠΎΠΉ Π±Π»ΠΎΠΊ дСлится Π½Π° Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΏΠΎΠ΄Π±Π»ΠΎΠΊΠ° ΠΏΠΎ 16 Π±ΠΈΡ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ. Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ€Π°ΡƒΠ½Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ свои ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈ согласно Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅ΠΉ. Над 16-Π±ΠΈΡ‚Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ ΠΈ ΠΏΠΎΠ΄Π±Π»ΠΎΠΊΠ°ΠΌΠΈ Π½Π΅Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ тСкста производятся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ:

Β· ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ 216 + 1 = 65 537, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ вмСсто нуля ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ 216

Β· слоТСниС ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ 216

Β· ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π΅ Π˜Π›Π˜ ПослС выполнСния Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ прСобразования конкатСнация ΠΏΠΎΠ΄Π±Π»ΠΎΠΊΠΎΠ² D1', D2', D3' ΠΈ D4' прСдставляСт собой Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ тСкст. Π—Π°Ρ‚Π΅ΠΌ бСрСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ 64-Π±ΠΈΡ‚Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ Π½Π΅Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ тСкста ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ повторяСтся. Π’Π°ΠΊ продолТаСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°ΡˆΠΈΡ„Ρ€ΡƒΡŽΡ‚ΡΡ всС 64-Π±ΠΈΡ‚Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ исходного тСкста (рис. 4).

Рис. 4 Алгоритм IDEA

1.4 Π“ΠžΠ‘Π’ 28 147–89

Π‘Π»ΠΎΡ‡Π½Ρ‹ΠΉ ΡˆΠΈΡ„Ρ€ с 256-Π±ΠΈΡ‚Π½Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ ΠΈ 32 Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ прСобразования, ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ 64-Π±ΠΈΡ‚Π½Ρ‹ΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ. Основа Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΡˆΠΈΡ„Ρ€Π° — ΡΠ΅Ρ‚ΡŒ ЀСйстСля. Для Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π²Π°Π½ΠΈΡ Π² ΡΡ‚ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ 64-Π±ΠΈΡ‚Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ тСкста сначала разбиваСтся Π½Π° Π΄Π²Π΅ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ‹ (младшиС Π±ΠΈΡ‚Ρ‹ — A, ΡΡ‚Π°Ρ€ΡˆΠΈΠ΅ Π±ΠΈΡ‚Ρ‹ — B). На i-ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ Ki:

Ai+1 = Bi?f (Ai, Ki)

Bi+1 = Ai

Для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅ΠΉ исходный 256-Π±ΠΈΡ‚Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ разбиваСтся Π½Π° Π²ΠΎΡΠ΅ΠΌΡŒ 32-Π±ΠΈΡ‚Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ²: K1…K8.

ΠšΠ»ΡŽΡ‡ΠΈ K9…K24 ΡΠ²Π»ΡΡŽΡ‚ΡΡ цикличСским ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ K1…K8 (Π½ΡƒΠΌΠ΅Ρ€ΡƒΡŽΡ‚ΡΡ ΠΎΡ‚ ΠΌΠ»Π°Π΄ΡˆΠΈΡ… Π±ΠΈΡ‚ΠΎΠ² ΠΊ ΡΡ‚Π°Ρ€ΡˆΠΈΠΌ). ΠšΠ»ΡŽΡ‡ΠΈ K25…K32 ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ K8…K1.

ПослС выполнСния всСх 32 Ρ€Π°ΡƒΠ½Π΄ΠΎΠ² Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°, Π±Π»ΠΎΠΊΠΈ A33 ΠΈ B33 ΡΠΊΠ»Π΅ΠΈΠ²Π°ΡŽΡ‚ΡΡ (ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΡΡ‚Π°Ρ€ΡˆΠΈΠΌ Π±Π»ΠΎΠΊΠΎΠΌ становится A33, Π° ΠΌΠ»Π°Π΄ΡˆΠΈΠΌ — B33) — Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π΅ΡΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π“ΠžΠ‘Π’Π° связаны с Π½Π΅ΠΏΠΎΠ»Π½ΠΎΡ‚ΠΎΠΉ стандарта Π² Ρ‡Π°ΡΡ‚ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΈ Ρ‚Π°Π±Π»ΠΈΡ† Π·Π°ΠΌΠ΅Π½.

Рис. 5 Шифрация Π“ΠžΠ‘Π’ 28 147–89

1.6 Π Π΅ΠΆΠΈΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹

1.6.1 Π Π΅ΠΆΠΈΠΌ элСктронной ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (ECB)

Π’ ΡΡ‚ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π±Π»ΠΎΠΊΠΎΠ² кодируСтся нСзависимо с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠ»ΡŽΡ‡Π° (рис.6). ОсновноС достоинство этого Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° — простота Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. НСдостаток — ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ слабая ΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΡ‚ΠΈΠ² ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ°Π½Π°Π»ΠΈΠ·Π°.

Рис. 6 Π Π΅ΠΆΠΈΠΌ ECB

1.6.2 Π Π΅ΠΆΠΈΠΌ сцСплСния Π±Π»ΠΎΠΊΠΎΠ² (CBC)

Π’ ΡΡ‚ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π±Π»ΠΎΠΊ исходного тСкста складываСтся ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ 2 с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ Π±Π»ΠΎΠΊΠΎΠΌ ΡˆΠΈΡ„Ρ€-тСкста. Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π±Π»ΠΎΠΊ складываСтся со ΡΠ»ΡƒΡ‡Π°ΠΉΠ½ΠΎ сгСнСрированным Π±Π»ΠΎΠΊΠΎΠΌ — Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠΌ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ IV, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ добавляСтся Π² Π½Π°Ρ‡Π°Π»ΠΎ ΡˆΠΈΡ„Ρ€-тСкста (рис.7).

Π Π΅ΠΆΠΈΠΌ CBC являСтся ΡΠ°ΠΌΠΎΠ²ΠΎΡΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌΡΡ. Ошибка Π² ΡˆΠΈΡ„Ρ€-тСкстС влияСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π·Π° Π½ΠΈΠΌ Π±Π»ΠΎΠΊ. ПослСдний Π±Π»ΠΎΠΊ ΡˆΠΈΡ„Ρ€-тСкста ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ΠΎΠΌ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ сообщСния.

Рис. 7 Π Π΅ΠΆΠΈΠΌ CBC

1.6.3 Π Π΅ΠΆΠΈΠΌ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи ΠΏΠΎ ΡˆΠΈΡ„Ρ€-тСксту

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» считываСтся ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ t-Π±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ (t <= 64). 64-Π±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΉ сдвиговый рСгистр Π²Π½Π°Ρ‡Π°Π»Π΅ содСрТит Π²Π΅ΠΊΡ‚ΠΎΡ€ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ IV, Π²Ρ‹Ρ€Π°Π²Π½Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎ ΠΏΡ€Π°Π²ΠΎΠΌΡƒ ΠΊΡ€Π°ΡŽ.

Для всСх i = 1… n Π±Π»ΠΎΠΊ ΡˆΠΈΡ„Ρ€Ρ‚Π΅ΠΊΡΡ‚Π° C (i) опрСдСляСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

C (i) = M (i) XOR P (i-1) ,

Π³Π΄Π΅ P (i-1) — ΡΡ‚Π°Ρ€ΡˆΠΈΠ΅ t Π±ΠΈΡ‚ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Crypt (Π‘ (i-1)).

ОбновлСниС сдвигового рСгистра осущСствляСтся ΠΏΡƒΡ‚Π΅ΠΌ удалСния Π΅Π³ΠΎ ΡΡ‚Π°Ρ€ΡˆΠΈΡ… t Π±ΠΈΡ‚ΠΎΠ² ΠΈ Π΄ΠΎΠΏΠΈΡΡ‹Π²Π°Π½ΠΈΡ справа C (i)(рис. 8).

Π­Ρ‚ΠΎΡ‚ Ρ€Π΅ΠΆΠΈΠΌ позволяСт ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒ тСкст ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹, Π½Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡ Π΅Π³ΠΎ Π΄ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°.

Рис. 8 Π Π΅ΠΆΠΈΠΌ CFB

1.6.4 Π Π΅ΠΆΠΈΠΌ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи ΠΏΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Ρƒ (OFB)

Π”Π°Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ отличаСтся ΠΎΡ‚ CFB Ρ‚ΠΎΠ»ΡŒΠΊΠΎ способом формирования сдвигового рСгистра (рис. 9).

Π Π΅ΠΆΠΈΠΌ OFB ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ прСимущСство ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Ρ€Π΅ΠΆΠΈΠΌΠΎΠΌ CFB: ошибки, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠ΅ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΠΎ ΠΊΠ°Π½Π°Π»Ρƒ с ΡˆΡƒΠΌΠΎΠΌ, ΠΏΡ€ΠΈ Π΄Π΅ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π΅ «Ρ€Π°Π·ΠΌΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ся» ΠΏΠΎ Π²ΡΠ΅ΠΌΡƒ ΡˆΠΈΡ„Ρ€ΠΎΡ‚Π΅ΠΊΡΡ‚Ρƒ, Π° Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΡƒΡŽΡ‚ся Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°. Однако, это свойство Π΄Π°Π΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ для ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ°Π½Π°Π»ΠΈΠ·Π°, поэтому Π΄Π°Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ нСобходимости (высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΠΎΠΌΠ΅Ρ…).

Рис. 9 Π Π΅ΠΆΠΈΠΌ OFB

1.6 Π’Ρ‹Π²ΠΎΠ΄

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с DES IDEA Π² Π΄Π²Π° Ρ€Π°Π·Π° быстрСС, Ρ‡Ρ‚ΠΎ являСтся сущСствСнным ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ΠΌ скорости, Π΄Π»ΠΈΠ½Π° ΠΊΠ»ΡŽΡ‡Π° Ρƒ IDEA ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ 128 Π±ΠΈΡ‚, ΠΏΡ€ΠΎΡ‚ΠΈΠ² 56 Π±ΠΈΡ‚ Ρƒ DES, Ρ‡Ρ‚ΠΎ являСтся Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΡ‚ΠΈΠ² ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° ΠΊΠ»ΡŽΡ‡Π΅ΠΉ. Π’Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ использования слабых ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ°Π»Π° ΠΈ ΡΠΎΡΡ‚авляСт 2-64. IDEA быстрСС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π“ΠžΠ‘Π’ 28 147–89. ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠΌ Ρ‚Π°ΠΊΠΆΠ΅ являСтся Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ ΠΈΠ·ΡƒΡ‡Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΈ ΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ ΠΊ ΠΎΠ±Ρ‰Π΅ΠΈΠ·Π²Π΅ΡΡ‚Π½Ρ‹ΠΌ срСдствам ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ°Π½Π°Π»ΠΈΠ·Π°.

Blowfish ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ высокиС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΏΡ€ΠΈ использовании кэша для хранСния всСх ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅ΠΉ. Π’ ΡΡ‚ΠΎΠΌ случаС ΠΎΠ½ ΠΎΠΏΠ΅Ρ€Π΅ΠΆΠ°Π΅Ρ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ DES, IDEA. На ΠΎΡ‚ставаниС IDEA влияСт опСрация слоТСния ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ 232+1.

Π₯отя Blowfish ΠΏΠΎ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΠΈ ΠΎΠΏΠ΅Ρ€Π΅ΠΆΠ°Π΅Ρ‚ Π΅Π³ΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈ, Π½ΠΎ ΠΏΡ€ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠΈ частоты смСны ΠΊΠ»ΡŽΡ‡Π° основноС врСмя Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ этап, Ρ‡Ρ‚ΠΎ Π² ΡΠΎΡ‚Π½ΠΈ Ρ€Π°Π· ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ Π΅Π³ΠΎ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ.

Π‘Ρ€Π΅Π΄ΠΈ Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ CBC ΠΈ CFB, Π·Π° ΡΡ‡Π΅Ρ‚ высокой криптостойкости. Π’Ρ‹Π±ΠΎΡ€ зависит ΠΎΡ‚ ΡΠΏΠΎΡΠΎΠ±Π° примСнСния ΡˆΠΈΡ„Ρ€Π° — Π±Π»ΠΎΡ‡Π½Ρ‹ΠΉ ΠΈΠ»ΠΈ ΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ.

2. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ΡΠΊΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ

2.1 ΠžΠ±Ρ‰ΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ

Рис. 10 ΠžΠ±Ρ‰ΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹

РСализация Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° осущСствляСтся классом Blowfish.

ΠŸΡ€ΠΈ создании экзСмпляра класса, конструктор ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π° Π²Ρ…ΠΎΠ΄ ΠΊΠ»ΡŽΡ‡ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΡ€Π°Π·Ρƒ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ.

public BlowFish (string hexKey)

{

randomSource = new RNGCryptoServiceProvider ();

SetupKey (HexToByte (hexKey));

}

Шифрация Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ сцСплСния Π±Π»ΠΎΠΊΠΎΠ² производится ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Crypt_CBC (byte[] text, bool decrypt), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π° Π²Ρ…ΠΎΠ΄ тСкст для ΡˆΠΈΡ„Ρ€Π°Ρ†ΠΈΠΈ ΠΈ Ρ„Π»Π°Π³ дСйствия.

2.2 Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π°

Рис. 11 Алгоритм Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΊΠ»ΡŽΡ‡Π°

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ SetupKey (byte[] cipherKey), которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π° Π²Ρ…ΠΎΠ΄ массив Π±Π°ΠΉΡ‚ΠΎΠ² исходного ΠΊΠ»ΡŽΡ‡Π°.

private void SetupKey (byte[] cipherKey)

{

bf_P = SetupP ();

bf_s0 = SetupS0();

bf_s1 = SetupS1();

bf_s2 = SetupS2();

bf_s3 = SetupS3();

key = new byte[cipherKey.Length];

Buffer.BlockCopy (cipherKey, 0, key, 0, cipherKey. Length);

int j = 0;

for (int i = 0; i < 18; i++)

{

uint d = (uint)(((key[j % cipherKey. Length] * 256 + key[(j + 1) % cipherKey. Length]) * 256 + key[(j + 2) % cipherKey. Length]) * 256 + key[(j + 3) % cipherKey. Length]);

bf_P[i] ^= d;

j = (j + 4) % cipherKey. Length;

}

xl_par = 0;

xr_par = 0;

for (int i = 0; i < 18; i += 2)

{

encipher ();

bf_P[i] = xl_par;

bf_P[i + 1] = xr_par;

}

for (int i = 0; i < 256; i += 2)

{

encipher ();

bf_s0[i] = xl_par;

bf_s0[i + 1] = xr_par;

}

for (int i = 0; i < 256; i += 2)

{

encipher ();

bf_s1[i] = xl_par;

bf_s1[i + 1] = xr_par;

}

for (int i = 0; i < 256; i += 2)

{

encipher ();

bf_s2[i] = xl_par;

bf_s2[i + 1] = xr_par;

}

for (int i = 0; i < 256; i += 2)

{

encipher ();

bf_s3[i] = xl_par;

bf_s3[i + 1] = xr_par;

}

}

2.3 РСализация сСти ЀСйстСля

Рис. 12 РСализация сСти ЀСйстСля

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΡΠ΅Ρ‚ΡŒ ЀСйстСля Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ encipher (). Ѐункция round (uint a, uint b, uint n) Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ a ΠΈ b — Π»Π΅Π²Ρ‹ΠΉ ΠΈ ΠΏΡ€Π°Π²Ρ‹ΠΉ ΠΏΠΎΠ΄Π±Π»ΠΎΠΊΠΈ, n — Π½ΠΎΠΌΠ΅Ρ€ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ.

private void encipher ()

{

xl_par ^= bf_P[0];

for (uint i = 0; i < 16; i+= 2)

{

xr_par = round (xr_par, xl_par, i + 1);

xl_par = round (xl_par, xr_par, i + 2);

}

xr_par = xr_par ^ bf_P[17];

uint swap = xl_par;

xl_par = xr_par;

xr_par = swap;

}

private uint round (uint a, uint b, uint n)

{

uint x1 = (bf_s0[wordByte0(b) ] + bf_s1[wordByte1(b) ]) ^ bf_s2[wordByte2(b) ];

uint x2 = x1 + bf_s3[this.wordByte3(b) ];

uint x3 = x2 ^ bf_P[n];

return x3 ^ a;

}

2.4 Шифрация Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ сцСплСния Π±Π»ΠΎΠΊΠΎΠ²

РСализация ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ сцСплСния Π±Π»ΠΎΠΊΠΎΠ².

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Crypt_CBC (byte[] text, bool decrypt), Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Ρ†ΠΈΠΊΠ» ΡˆΠΈΡ„Ρ€Π°Ρ†ΠΈΠΈ тСкста.

Ѐункция XorBlock () ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ XOR Π½Π°Π΄ двумя Π±Π»ΠΎΠΊΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

Ѐункция BlockEncrypt (ref byte[] block) нСпосрСдствСнно ΡˆΠΈΡ„Ρ€ΡƒΠ΅Ρ‚ Π±Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ….

for (int i = 0; i < plainText. Length; i += 8)

{

Buffer.BlockCopy (plainText, i, block, 0, 8);

XorBlock (ref block, iv);

BlockEncrypt (ref block);

Buffer.BlockCopy (block, 0, iv, 0, 8);

Buffer.BlockCopy (block, 0, plainText, i, 8);

}

private void BlockEncrypt (ref byte[] block)

{

SetBlock (block);

encipher ();

GetBlock (ref block);

}

3. Π­ΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ

3.1 Руководство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ состоит ΠΈΠ· Π΄Π²ΡƒΡ… ΠΊΠ½ΠΎΠΏΠΎΠΊ (рис.13).

ПослС наТатия Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π—Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒ» ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ прСдлагаСтся Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ, Ρ„Π°ΠΉΠ» с ΠΈΡΡ…ΠΎΠ΄Π½Ρ‹ΠΌ тСкстом ΠΈ Ρ„Π°ΠΉΠ» для сохранСния Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ тСкста.

ПослС наТатия Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒ» ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ прСдлагаСтся Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ, Ρ„Π°ΠΉΠ» с Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ тСкстом ΠΈ Ρ„Π°ΠΉΠ» для сохранСния Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ тСкста.

Рис. 13 Π‘ΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Ρ‚Скстами содСрТащими русскиС ΠΈ Π»Π°Ρ‚инскиС символы, с Ρ‚Скстами большого Ρ€Π°Π·ΠΌΠ΅Ρ€Π°.

3.2 ЭкспСримСнты

3.2.1 Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ сцСнарий

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ тСкст

тСкст для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ° сцСплСния Π±Π»ΠΎΠΊΠΎΠ² Π΄Π»ΠΈΠ½ΠΎΠΉ 62 символа.

ΠšΠ»ΡŽΡ‡ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ

04B915BA43FEB5B6

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€

Π—Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ тСкст (16-Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Π²ΠΈΠ΄)

d7ae29a6195c7a557fa72ddff622990beebf851210eea1424d42f92dd54350b73c7ebddada4d40c4bc1950bcccd385deadd0d6eba2699f8739439cbb019c607c7b757046f51b936294eddca4697b34b66b8e2a9443b6f900a7ff05b6920fe116c25f99ca380ad0d068141ce41e2242ac47d6f7d8853eea3e3885917d4568b7d1c42b5f619af5479a

ΠšΠ»ΡŽΡ‡ Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ

04B915BA43FEB5B6

Π Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ тСкст

тСкст для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ° сцСплСния Π±Π»ΠΎΠΊΠΎΠ² Π΄Π»ΠΈΠ½ΠΎΠΉ 62 символа.

3.2.2 ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° использования ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ Π²Π΅ΠΊΡ‚ΠΎΡ€Π°

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ тСкст

тСкст для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ° сцСплСния Π±Π»ΠΎΠΊΠΎΠ² Π΄Π»ΠΈΠ½ΠΎΠΉ 62 символа.

ΠšΠ»ΡŽΡ‡ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ

04B915BA43FEB5B6

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€ (ΠΎΠΏΡ‹Ρ‚ № 1)

Π—Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ тСкст (ΠΎΠΏΡ‹Ρ‚ № 1)

d7ae29a6195c7a557fa72ddff622990beebf851210eea1424d42f92dd54350b73c7ebddada4d40c4bc1950bcccd385deadd0d6eba2699f8739439cbb019c607c7b757046f51b936294eddca4697b34b66b8e2a9443b6f900a7ff05b6920fe116c25f99ca380ad0d068141ce41e2242ac47d6f7d8853eea3e3885917d4568b7d1c42b5f619af5479a

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€ (ΠΎΠΏΡ‹Ρ‚ № 2)

Π—Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ тСкст (ΠΎΠΏΡ‹Ρ‚ № 2)

066df32b01f65e7633a2e65324fd3679796f7402119fbe869f5ef8f97c94e8eca3efe60a28ce3820e3e09c57858337fb6266395139efbd6981ddcc03d1c4c7985a25a9b0484be0fc25ed960f20c7fcd19554375bca984d1a044b659f9301d2b1cc47f9d85430b951dbecefb427ca9490834fdba59c4694471810977aa00b36dfe0b720c50c3feee4

ΠšΠ»ΡŽΡ‡ Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ

04B915BA43FEB5B6

Π Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ тСкст

тСкст для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ° сцСплСния Π±Π»ΠΎΠΊΠΎΠ² Π΄Π»ΠΈΠ½ΠΎΠΉ 62 символа.

3.2.3 ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° распространСния ошибки

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ тСкст

тСкст для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ° сцСплСния Π±Π»ΠΎΠΊΠΎΠ² Π΄Π»ΠΈΠ½ΠΎΠΉ 62 символа.

ΠšΠ»ΡŽΡ‡ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ

04B915BA43FEB5B6

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€

Π—Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ тСкст (16-Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Π²ΠΈΠ΄)

97b75b39ecbd8a94032ded5893076f5400e72e27cd14b08013ed9dd0847b352e8e2646357a449f0989eae21921476cdfe047a2bfbedf7e31195ada2573293622de72fd3721c355537c931ff28063d2b20da5c41e3ea38d2355be14f9bda0253741a23ee5444bfbe3f88b21e8bc542b1c52eebc1b16e78d65ffe3c41c0550f8cbd4e75a61f38efad3

Π—Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ тСкст с Π²Π½Π΅ΡΠ΅Π½Π½ΠΎΠΉ ошибкой (16-Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Π²ΠΈΠ΄)

97b75b39ecbd8a94032ded5893076f5400e72e27cd14b08013ed9dd0847b352e8e2646357a449f0989eae21921476cdfe047a2bfbedf7e31195ada2573293622de72fd37212355537c931ff28063d2b20da5c41e3ea38d2355be14f9bda0253741a23ee5444bfbe3f88b21e8bc542b1c52eebc1b16e78d65ffe3c41c0550f8cbd4e75a61f38efad3

ΠšΠ»ΡŽΡ‡ Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ

04B915BA43FEB5B6

Π Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ тСкст

тСкст для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ° сц??? Π½ΠΈ? Π±Π»ΠΎΠΊΠΎΠ² Π΄Π»ΠΈΠ½ΠΎΠΉ 62 символа.

3.2.4 ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΠΏΠΎΡ‚Π΅Ρ€ΡŽ части сообщСния

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ тСкст

тСкст для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ° сцСплСния Π±Π»ΠΎΠΊΠΎΠ² Π΄Π»ΠΈΠ½ΠΎΠΉ 62 символа.

ΠšΠ»ΡŽΡ‡ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ

04B915BA43FEB5B6

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€

Π—Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ тСкст (16-Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Π²ΠΈΠ΄)

ebdbe6c99212b816c4ee3404534068294d0b555141446fbe29693ae69bc45628f39d5d99cb687741648fa0ea6a0df5339eb196411e86205370df42882650e0a3e4adca789a4c8693d34ca4b3343957a533dbf9516a9981fc0d8a9c890e692599e9935ef29bb43c2a38a90254179e6a2509df160eea2d12d8d195cb480e9aa4a51475178ae683536c

Π—Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ тСкст с ΠΏΠΎΡ‚Срянным символом (16-Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Π²ΠΈΠ΄)

97b75b39ecbd8a94032ded5893076f5400e72e27cd14b08013ed9dd0847b352e8e2646357a449f0989eae21921476cdfe047a2bfbedf7e31195ada2573293622de72fd37212355537c931ff28063d2b20da5c41e3ea38d2355be14f9bda0253741a23ee5444bfbe3f88b21e8bc542b1c52eebc1b16e78d65ffe3c41c0550f8cbd4e75a61f38efad3

ΠšΠ»ΡŽΡ‡ Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ

04B915BA43FEB5B6

Π Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ тСкст

тСкст Π΄Π»?-Ρ‹???Ρ’Ρ—???"Β°???Π°o???ќH?β€ΊΠˆ?+?јэ???Β°??Π™Π²Π•Q???АБ?Β΅Ρ€???

3.2.5 ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ Π±Π»ΠΎΠΊΠ°

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ тСкст (ΠΎΠΏΡ‹Ρ‚ № 1)

тСкст для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ° сцСплСния Π±Π»ΠΎΠΊΠΎΠ² Π΄Π»ΠΈΠ½ΠΎΠΉ 62 символа.

ΠšΠ»ΡŽΡ‡ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ (ΠΎΠΏΡ‹Ρ‚ № 1)

04B915BA43FEB5B6

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€ (ΠΎΠΏΡ‹Ρ‚ № 1)

ПослСдний Π±Π»ΠΎΠΊ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ тСкста (ΠΎΠΏΡ‹Ρ‚ № 1)

c75ca11b9856676b

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ тСкст (ΠΎΠΏΡ‹Ρ‚ № 2)

тСкст для ΠΏΡ€Π°Π²Π΅Ρ€ΠΊΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ° сцСплСния Π±Π»ΠΎΠΊΠΎΠ² Π΄Π»ΠΈΠ½ΠΎΠΉ 62 символа.

ΠšΠ»ΡŽΡ‡ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ (ΠΎΠΏΡ‹Ρ‚ № 2)

04B915BA43FEB5B6

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€ (ΠΎΠΏΡ‹Ρ‚ № 2)

ПослСдний Π±Π»ΠΎΠΊ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ тСкста (ΠΎΠΏΡ‹Ρ‚ № 2)

435ed02780008efb

1. IT ΠΏΠΎΡ€Ρ‚Π°Π» [http://habrahabr.ru].

2. A blog covering security and security technology [www.schneier.com].

3. М. МаслСнников, ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ криптография / МаслСнников М. — Π‘ΠΏΠ±.: Π‘Π₯Π’-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³, 2003. — 458 с.

4. Π‘. ПанасСнко, Алгоритмы ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ / ПанасСнко Π‘. — Π‘Пб.: Π‘Π₯Π’-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³, 2009. — 576 с.

5. И. Π―Ρ‰Π΅Π½ΠΊΠΎ, ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ матСматичСскиС понятия ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ / Π―Ρ‰Π΅Π½ΠΊΠΎ И. Π’. — Πœ.: Москва, 2003.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ