ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² ΡƒΡ‡Ρ‘Π±Π΅, ΠΎΡ‡Π΅Π½ΡŒ быстро...
Π Π°Π±ΠΎΡ‚Π°Π΅ΠΌ вмСстС Π΄ΠΎ ΠΏΠΎΠ±Π΅Π΄Ρ‹

Π”Π΅ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅. 
Π‘ΠΈΠΌΠΌΠ΅Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Rijndael

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

Π“Π΄Π΅ сномСр столбца массива state ΠΈ 0 Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ умноТСния, Π±Π°ΠΉΡ‚Ρ‹ столбца с Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ся, соотвСтствСнно Π½Π° Π±Π°ΠΉΡ‚Ρ‹: ΠŸΡ€ΠΎΡ†Π΅ΡΡ умноТСния ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌΠΎΠ² эквивалСнтСн ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½ΠΎΠΌΡƒ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡŽ: Π‘Ρ…Π΅ΠΌΠ° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ криптопрСобразования ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ записана Ρ‚Π°ΠΊ: InvSubBytes — обратная Π·Π°ΠΌΠ΅Π½Π° Π±Π°ΠΉΡ‚ΠΎΠ² state ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π·Π°ΠΌΠ΅Π½. InvSubBytes — обратная Π·Π°ΠΌΠ΅Π½Π° Π±Π°ΠΉΡ‚ΠΎΠ² state ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π·Π°ΠΌΠ΅Π½. Рисунок 6 — ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π”Π΅ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π‘ΠΈΠΌΠΌΠ΅Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Rijndael (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ВсС прСобразования ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½Ρ‹ ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‚. Π΅. ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΄Π΅ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ для Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° AES.

Π‘Ρ…Π΅ΠΌΠ° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ криптопрСобразования ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ записана Ρ‚Π°ΠΊ:

  • 1. Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π° KeyExpansion.
  • 2. 9 Ρ€Π°ΡƒΠ½Π΄ΠΎΠ² ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… шагов ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ:
  • 2.1 AddRoundKey — суммированиС с Ρ€Π°ΡƒΠ½Π΄ΠΎΠ²Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ.
  • 2.2 InvMixColumns — обратная пСрСстановка столбцов state.
  • 2.3 InvShiftRows — ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ цикличСский сдвиг строк state.
  • 2.4 InvSubBytes — обратная Π·Π°ΠΌΠ΅Π½Π° Π±Π°ΠΉΡ‚ΠΎΠ² state ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π·Π°ΠΌΠ΅Π½.
  • 3. Π—Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ 10-ΠΉ Ρ€Π°ΡƒΠ½Π΄:
  • 3.1 AddRoundKey — суммированиС с Ρ€Π°ΡƒΠ½Π΄ΠΎΠ²Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ.
  • 3.2 InvShiftRows — ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ цикличСский сдвиг строк state.
  • 3.3 InvSubBytes — обратная Π·Π°ΠΌΠ΅Π½Π° Π±Π°ΠΉΡ‚ΠΎΠ² state ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π·Π°ΠΌΠ΅Π½.

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ InvMixColumns. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ InvMixColumns являСтся ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΌ для прСобразования MixColumns. Π’ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ InvMixColumns, столбцы состояния (state) Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌΡ‹ Π½Π°Π΄ ΠΏΠΎΠ»Π΅ΠΌ F (28) ΠΈ ΡƒΠΌΠ½ΠΎΠΆΠ°ΡŽΡ‚ся ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ x4 + 1 с ΠΏΠΎΡΡ‚оянным ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌΠΎΠΌ d (x) = a-1(x), Π² ΠΏΠΎΠ»Π΅ F (28):

d (x) = 0Bhx3 + 0Dhx2 + 09hx + 0Eh.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ умноТСния ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌΠΎΠ² эквивалСнтСн ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½ΠΎΠΌΡƒ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡŽ:

Π”Π΅ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π‘ΠΈΠΌΠΌΠ΅Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Rijndael.

=.

Π”Π΅ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π‘ΠΈΠΌΠΌΠ΅Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Rijndael.

Π³Π΄Π΅ сномСр столбца массива state ΠΈ 0 Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ умноТСния, Π±Π°ΠΉΡ‚Ρ‹ столбца с Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ся, соотвСтствСнно Π½Π° Π±Π°ΠΉΡ‚Ρ‹:

Π”Π΅ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π‘ΠΈΠΌΠΌΠ΅Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Rijndael.

;

;

;

Π”Π΅ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π‘ΠΈΠΌΠΌΠ΅Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Rijndael.
Π”Π΅ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π‘ΠΈΠΌΠΌΠ΅Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Rijndael.
Π”Π΅ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π‘ΠΈΠΌΠΌΠ΅Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Rijndael.
Π”Π΅ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π‘ΠΈΠΌΠΌΠ΅Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Rijndael.

;

Π”Π°Π½Π½ΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ рассмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

Π”Π΅ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π‘ΠΈΠΌΠΌΠ΅Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Rijndael.

=.

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ InvShiftRows. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ InvShiftRows ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ ShiftRows. Π‘Π°ΠΉΡ‚Ρ‹ послСдних Ρ‚Ρ€Π΅Ρ… рядов массива state цикличСски ΡΠ΄Π²ΠΈΠ³Π°ΡŽΡ‚ΡΡ Π²ΠΏΡ€Π°Π²ΠΎ. Π‘Ρ‚Ρ€ΠΎΠΊΠ° 1 (нумСрация с Π½ΡƒΠ»Ρ) смСщаСтся Π½Π° 1 Π±Π°ΠΉΡ‚, строка 2 — Π½Π° 2 Π±Π°ΠΉΡ‚Π°, строка 3 — Π½Π° 3 Π±Π°ΠΉΡ‚Π°.

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ сдвига InvShiftRows.
Рисунок 6 - ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ сдвига InvShiftRows.

Рисунок 6 — ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ сдвига InvShiftRows.

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ InvSubBytes. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ InvSubBytes выполняСт ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ Π·Π°ΠΌΠ΅Π½Ρƒ Π±Π°ΠΉΡ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π°ΠΌΠ΅Π½. ΠžΠ±Ρ€Π°Ρ‚Π½Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π° Π·Π°ΠΌΠ΅Π½ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π½ΠΈΠΆΠ΅:

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

a.

b.

c.

d.

e.

f.

6a.

d5.

a5.

bf.

a3.

9e.

f3.

d7.

fb.

7c.

e3.

9b.

2f.

ff.

8e.

c4.

de.

e9.

cb.

7b.

a6.

c2.

3d.

ee.

4c.

0b.

fa.

c3.

4e.

2e.

a1.

d9.

b2.

5b.

a2.

6d.

8b.

d1.

f8.

f6.

d4.

a4.

5c.

cc.

5d.

b6.

6c.

fd.

ed.

b9.

da.

5e.

a7.

8d.

9d.

d8.

ab.

8c.

bc.

d3.

0a.

f7.

e4.

b8.

b3.

d0.

2c.

1e.

8f.

ca.

3f.

0f.

c1.

af.

bd.

8a.

6b.

3a.

4f.

dc.

ea.

f2.

cf.

ce.

f0.

b4.

e6.

ac.

e7.

ad.

e2.

f9.

e8.

1c.

df.

6e.

a0.

f1.

1a.

1d.

c5.

6f.

b7.

0e.

aa.

be.

1b.

b0.

fc.

3e.

4b.

c6.

d2.

9a.

db.

c0.

fe.

cd.

5a.

f4.

c0.

1f.

dd.

a8.

c7.

b1.

ec.

5f.

d0.

7f.

a9.

b5.

4a.

0d.

2d.

e5.

7a.

9f.

c9.

9c.

ef.

e0.

a0.

e0.

3b.

4d.

ae.

2a.

f5.

b0.

c8.

eb.

bb.

3c.

f0.

2b.

7e.

ba.

d6.

e1.

0c.

7d.

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅ AddRoundKey. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ AddRoundKey, описанноС Π² ΠΏΡƒΠ½ΠΊΡ‚Π΅ Ρ€Π°Π½Π΅Π΅ Π² ΠΏΡƒΠ½ΠΊΡ‚Π΅ 4.4, являСтся ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΌ для самого сСбя, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ XOR.

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