ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ DES
K15: 111 001 111 101 001 092 243 074 060 157 634 973 361 267 277 824. K14: 111 001 001 101 010 998 059 482 094 711 931 670 654 892 376 064. K13: 111 000 011 011 011 000 939 049 842 415 079 330 264 872 124 416. K12: 111 100 011 011 111 006 933 689 321 523 306 216 537 517 457 408. K11: 111 100 001 010 111 018 488 754 359 724 041 485 134 021 525 504. K10… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ DES (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΠ°ΡΠ΅Π΄ΡΠ°: ΠΠ‘ΠΠΠΈΠ£
ΠΠ°Π±ΠΎΡΠ°ΡΠΎΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ°
«ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ DES»
ΠΏΠΎ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Π΅
«ΠΠ΅ΡΠΎΠ΄Ρ ΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π° Π·Π°ΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ»
ΠΠΎΡΠΊΠ²Π° 2009 Π³.
- Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ 3
- ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ DES. 3
- Π Π°Π±ΠΎΡΠ° Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° 4
- 1 ΡΠ°Π³. ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π±ΠΈΡΠΎΠ² ΠΊΠ»ΡΡΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°Π±Π»ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΎΠΊ. 5
- 2 ΡΠ°Π³. Π Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ°. 6
- 3 ΡΠ°Π³. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ 16-ΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅ΠΉ ΠΏΡΡΠ΅ΠΌ ΡΠ΄Π²ΠΈΠ³Π°. 7
- 4 ΡΠ°Π³. ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π±ΠΈΡΠΎΠ² ΠΊΠ»ΡΡΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°Π±Π»ΠΈΡΡ PC1. 8
- ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ 9
- ΠΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ 15
Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅
1. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ DES Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ C++.
2. ΠΡΠΎΠ²Π΅ΡΡΠΈ ΡΠ΅ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ DES
Π€ΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ΅ΠΉ — Π°Π»Π³ΠΎΡΠΈΡΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠΎΡΠΎΡΠΊΠΎΠΌΡ ΠΊΠ»ΡΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ°ΡΠ½Π΄ΠΎΠ²ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ.
ΠΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅: ΠΠ»ΡΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· 8 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈΠ»ΠΈ 8 Π±Π°ΠΉΡ. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΊΠ»ΡΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ 64 Π±Π°ΠΉΡΠ°. ΠΠΎ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠ»ΡΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ (Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ ). Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΊΠ°ΠΆΠ΄ΡΠΉ 8 Π±ΠΈΡ ΠΎΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΡΡΡ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠ»ΡΡΠ° — 56 Π±ΠΈΡ.
Π Π°Π±ΠΎΡΠ° Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°
1 ΡΠ°Π³. ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π±ΠΈΡΠΎΠ² ΠΊΠ»ΡΡΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°Π±Π»ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΎΠΊ.
ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π²Π²Π΅Π΄Π΅ΠΌ:
olga1234
ΠΠ°Π΄Π°Π½Π½ΡΠΉ ΠΊΠ»ΡΡ Π² Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ:
Π Π½Π°ΡΠ°Π»Π΅ Π½Π°Π΄ ΠΊΠ»ΡΡΠΎΠΌ ΡΠΈΡΡΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ B, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ Π²ΡΠ±ΠΎΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π±ΠΈΡ ΠΈ ΠΈΡ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅, ΠΊΠ°ΠΊ ΡΡΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ. ΠΡΠΈΡΠ΅ΠΌ, ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΠ΅ΡΡΡΠ΅ ΡΡΡΠΎΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ, ΠΊΠ°ΠΊ Π²ΡΠ±ΠΈΡΠ°ΡΡΡΡ Π±ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ C (0) (ΠΏΠ΅ΡΠ²ΡΠΌ Π±ΠΈΡΠΎΠΌ C (0) Π±ΡΠ΄Π΅Ρ Π±ΠΈΡ 57 Π±ΠΈΡ ΠΊΠ»ΡΡΠ° ΡΠΈΡΡΠ°, Π·Π°ΡΠ΅ΠΌ Π±ΠΈΡ 49 ΠΈ Ρ. Π΄., Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌΠΈ Π±ΠΈΡΠ°ΠΌΠΈ Π±ΠΈΡΡ 44 ΠΈ 36 ΠΊΠ»ΡΡΠ° ΡΠΈΡΡΠ°), Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ΅ΡΡΡΠ΅ ΡΡΡΠΎΠΊΠΈ — ΠΊΠ°ΠΊ Π²ΡΠ±ΠΈΡΠ°ΡΡΡΡ Π±ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ D (0) (Ρ.Π΅. ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ D (0) Π±ΡΠ΄Π΅ΠΌ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· Π±ΠΈΡΠΎΠ² 63,55,…, 12, 4 ΠΊΠ»ΡΡΠ° ΡΠΈΡΡΠ°).
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΊΠ»ΡΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
2 ΡΠ°Π³. Π Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ°
ΠΠ° ΡΡΠΎΠΌ ΡΠ°Π³Π΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ° Π½Π° 2 ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ C0 ΠΈ D0. ΠΠ°ΠΆΠ΄Π°Ρ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ 28 Π±ΠΈΡ.
C0:
D0:
3 ΡΠ°Π³. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ 16-ΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅ΠΉ ΠΏΡΡΠ΅ΠΌ ΡΠ΄Π²ΠΈΠ³Π°
ΠΠΎΡΠ»Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ C (0) ΠΈ D (0) ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ C (i) ΠΈ D (i), i=1,2,…, 16. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ΄Π²ΠΈΠ³Π° Π²Π»Π΅Π²ΠΎ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π΄Π²Π° Π±ΠΈΡΠ° Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π½ΠΎΠΌΠ΅ΡΠ° ΡΠ°Π³Π° ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠ°ΠΊ ΡΡΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ «Π€ΡΠ½ΠΊΡΠΈΡ ΡΠ΄Π²ΠΈΠ³Π° Si». ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ΄Π²ΠΈΠ³Π° Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ C (i) ΠΈ D (i) Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ C (3) ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ, ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΡΠ΄Π²ΠΈΠ³Π° Π²Π»Π΅Π²ΠΎ Π½Π° Π΄Π²Π΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ C (2), Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ D (3) — ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΡΠ΄Π²ΠΈΠ³Π° Π²Π»Π΅Π²ΠΎ Π½Π° Π΄Π²Π΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ D (2). Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΄Π²ΠΈΠ³ Π²Π»Π΅Π²ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΡΠΉ ΡΠ΄Π²ΠΈΠ³ Π²Π»Π΅Π²ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ C (i) ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ Π±ΠΈΡ C (i) ΡΡΠ°Π½Π΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π±ΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ: 2,3,…, 28,1.
Π’Π°Π±Π»ΠΈΡΠ° «Π€ΡΠ½ΠΊΡΠΈΡ ΡΠ΄Π²ΠΈΠ³Π° Si»
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ΄Π²ΠΈΠ³Π° ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠ°ΡΡ
ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΄Π²ΠΈΠ³ΠΎΠ² | Π‘ΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ ΠΏΠ°ΡΡ | |
C1: 1 111 111 111 111 110 958 252 032 D1: 1 011 101 011 001 011 018 768 842 752 | ||
C2: 11 111 111 111 111 110 924 697 600 D2: 111 010 110 010 110 003 273 269 248 | ||
C3: 1 111 111 111 111 111 049 520 087 040 D3: 1 101 011 001 010 999 988 292 943 872 | ||
C4: 1 111 111 111 111 100 054 403 809 280 D4: 101 100 101 100 001 112 874 811 392 | ||
C5: 1 111 111 111 109 999 993 020 219 392 D5: 110 010 110 000 110 999 986 765 824 | ||
C6: 1 111 111 111 000 000 039 414 136 832 D6: 1 001 011 000 011 100 071 959 461 888 | ||
C7: 1 111 111 100 000 000 005 881 462 784 D7: 101 100 001 110 011 003 971 567 616 | ||
C8: 1 111 110 000 000 000 088 587 894 784 D8: 110 000 111 001 101 106 094 800 896 | ||
C9: 1 111 100 000 000 001 165 320 257 536 D9: 1 100 001 110 011 011 164 027 224 064 | ||
C10: 1 110 000 000 000 111 084 665 044 992 D10: 111 001 101 110 101 099 413 504 | ||
C11: 1 000 000 000 011 111 128 042 045 440 D11: 11 100 110 111 010 109 270 261 760 | ||
C12: 1 111 111 111 111 111 040 D12: 1 110 011 011 101 010 961 385 914 368 | ||
C13: 111 111 111 111 111 098 368 D13: 1 001 101 110 101 100 037 079 564 288 | ||
C14: 11 111 111 111 111 109 246 976 D14: 110 111 010 110 010 110 142 054 400 | ||
C15: 1 111 111 111 111 110 958 252 032 D15: 1 011 101 011 001 011 018 768 842 752 | ||
C16: 11 111 111 111 111 110 924 697 600 D16: 111 010 110 010 110 003 273 269 248 | ||
4 ΡΠ°Π³. ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π±ΠΈΡΠΎΠ² ΠΊΠ»ΡΡΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°Π±Π»ΠΈΡΡ PC1
ΠΠΎ ΡΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π±ΠΈΡΠΎΠ² ΠΊΠ»ΡΡΠ΅ΠΉ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ°ΡΡ Π΄Π°Π½Π½ΡΡ . ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±ΠΈΡΠΎΠ²ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° CnDn, Π³Π΄Π΅ 1<=n<=16 ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΡΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ°Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΠΎ ΡΠ°Π±Π»ΠΈΡΠ΅ (ΡΠΌ Π½ΠΈΠΆΠ΅), ΡΠΎΡΠΌΠΈΡΡΡ ΠΊΠ»ΡΡΠΈ. Π’ΠΎΠ»ΡΠΊΠΎ 48 Π±ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΠΎΠΉ ΠΏΠ°ΡΡ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ Π² ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠ»ΡΡΠ΅.
ΠΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈ:
K1: 111 001 111 101 001 092 243 074 060 157 634 973 361 267 277 824
K2: 111 001 101 101 001 107 721 237 540 316 952 537 235 177 078 784
K3: 101 011 111 101 001 117 515 036 501 726 181 191 184 008 871 936
K4: 1 111 100 101 001 111 071 266 220 861 411 838 578 514 722 816
K5: 1 111 100 101 100 110 938 648 569 921 509 201 795 832 872 960
K6: 111 110 110 100 111 011 766 109 170 246 261 414 270 337 024
K7: 111 100 110 110 110 010 880 971 150 177 903 362 975 989 760
K8: 10 111 100 010 110 110 009 909 817 545 550 520 596 475 936 768
K9: 10 110 111 010 110 109 478 352 929 600 940 579 708 683 157 504
K10: 110 110 001 010 110 006 507 254 065 878 814 590 007 093 755 904
K11: 111 100 001 010 111 018 488 754 359 724 041 485 134 021 525 504
K12: 111 100 011 011 111 006 933 689 321 523 306 216 537 517 457 408
K13: 111 000 011 011 011 000 939 049 842 415 079 330 264 872 124 416
K14: 111 001 001 101 010 998 059 482 094 711 931 670 654 892 376 064
K15: 111 001 111 101 001 092 243 074 060 157 634 973 361 267 277 824
K16: 111 001 101 101 001 107 721 237 540 316 952 537 235 177 078 784
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄
#include
#include
#include
#include
int main (int argc, char *argv[]) {
int
i, b, y, r, j, v, p, m, l, f, u, k, a, s, q, D[100] [100], Y[100] [100], U[100] [100], X[1000] [1000], E[100] [100], G[100] [100], W[100] [100], P[100] [1 $
double z;
int key[16]={1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1};
char A[1000];
char B[200];
char N[200];
char T[200];
char C[1000];
char Z[43];
char R[43];
char L[43];
char *str2;
char *str;
char *str1;
char *str3;
char *str4;
char *str5;
char d[100];
printf («nVvedite keyn»);
str=(char *) (malloc (1000));
for (i=0; i<1000; i++) {
scanf («%c»,&str[i]);
if (str[i]==(char) 10) {
m=i;
break;
}
if (str[i]==(char) 32) {
str[i]=157;}
}
if (m≠8) {
printf («nKey neverenn»);
}
for (i=0; i
A[i]=str[i]; }
for (i=0; i
B[i]=(int) A[i];
printf («%dn», B[i]);
}
for (i=0; i
f=B[i];
for (j=0; j<8; j++) {
if (f<1) {
X[j] [i]=0;
goto Metka;}
s=f/2;
/*printf («%d», s);*/
z=fmod (f, 2);
if (z≠0)
X[j] [i]=1;
else
X[j] [i]=0;
f=s;
Metka:printf («%d», X[j] [i]);}
printf («n»);
}
printf («n»);
k=0;
for (i=0; i
k=i*8;
for (j=0; j<8; j++) {
N [j+k]=X [8-j-1] [i];
}
}
for (i=0; i<64; i++) {
printf («%d», N[i]);}
printf («n»);
C[0]=N[57]; C[1]=N[49]; C[2]=N[41]; C[3]=N[33]; C[4]=N[25]; C[5]=N[17]; C[6]=N[9]; C[7]=N[1];
C[8]=N[58]; C[9]=N[50]; C[10]=N[42]; C[11]=N[34]; C[12]=N[26]; C[13]=N[18]; C[14]=N[10];
C[15]=N[2]; C[16]=N[59]; C[17]=N[51]; C[18]=N[43]; C[19]=N[35]; C[20]=N[27]; C[21]=N[19];
C[22]=N[11]; C[23]=N[3]; C[24]=N[60]; C[25]=N[52]; C[26]=N[44]; C[27]=N[36]; C[28]=N[63];
C[29]=N[55]; C[30]=N[47]; C[31]=N[39]; C[32]=N[31]; C[33]=N[23]; C[34]=N[15]; C[35]=N[7];
C[36]=N[62]; C[37]=N[54]; C[38]=N[46]; C[39]=N[38]; C[40]=N[30]; C[41]=N[22]; C[42]=N[14];
C[43]=N[6]; C[44]=N[61]; C[45]=N[53]; C[46]=N[45]; C[47]=N[37]; C[48]=N[29]; C[49]=N[21];
C[50]=N[13]; C[51]=N[5]; C[52]=N[28]; C[53]=N[20]; C[54]=N[12]; C[55]=N[4];
for (i=0; i<56; i++) {
printf («%d», C[i]);
}
for (i=0; i<56; i++) {
if (i<28) {
Z[i]=C[i]; }
if (i>27) {
R [i-28]=C[i]; }
}
printf («n»);
for (i=0; i<28; i++) {
printf («%d», Z[i]);}
printf («n»);
for (i=0; i<28; i++) {
printf («%d», R[i]);}
printf («n»);
printf («n»);
for (j=0; j<16; j++) {
v=key[j];
for (i=0; i<28; i++) {
if (v==2) {
Y[26] [j]=Z[0];
Y[27] [j]=Z[1];
U[26] [j]=R[0];
U[27] [j]=R[1];
}
if (v==1) {
Y[27] [j]=Z[1];
U[27] [j]=R[1];
}
if (i<(28-v)) {
Y[i] [j]=Z [i+v];
U[i] [j]=R [i+v]; }
Z[i]=Y[i] [j];
R[i]=U[i] [j];
/*printf («%d», U[i] [j]);*/
}
/*printf («n»);*/
}
for (j=0; j<16; j++) {
for (i=0; i<56; i++) {
if (i<28) {
W[i] [j]=Y[i] [j]; }
if (i>27) {
W[i] [j]=U [i-28] [j]; }
printf («%d», W[i] [j]);
}
printf («n»);
}
for (j=0; j<16; j++) {
P[0] [j]=W[14] [j]; P[1] [j]=W[17] [j]; P[2] [j]=W[11] [j]; P[3] [j]=W[24] [j]; P[4] [j]=W[1] [j]; P[5] [j]=W[5] [j];
P[6] [j]=W[3] [j]; P[7] [j]=W[28] [j]; P[8] [j]=W[15] [j]; P[9] [j]=W[6] [j]; P[10] [j]=W[21] [j]; P[11] [j]=W[10] [j];
P[12] [j]=W[23] [j]; P[13] [j]=W[19] [j]; P[14] [j]=W[12] [j]; P[15] [j]=W[4] [j]; P[16] [j]=W[26] [j]; P[17] [j]=W[8] [j];
P[18] [j]=W[16] [j]; P[19] [j]=W[7] [j]; P[20] [j]=W[27] [j]; P[21] [j]=W[20] [j]; P[22] [j]=W[13] [j]; P[23] [j]=W[2] [j];
P[24] [j]=W[41] [j]; P[25] [j]=W[52] [j]; P[26] [j]=W[31] [j]; P[27] [j]=W[37] [j]; P[28] [j]=W[47] [j]; P[29] [j]=W[55] [j];
P[30] [j]=W[30] [j]; P[31] [j]=W[40] [j]; P[32] [j]=W[51] [j]; P[33] [j]=W[45] [j]; P[34] [j]=W[33] [j]; P[35] [j]=W[48] [j];
P[36] [j]=W[44] [j]; P[37] [j]=W[49] [j]; P[38] [j]=W[39] [j]; P[39] [j]=W[56] [j]; P[40] [j]=W[34] [j]; P[41] [j]=W[53] [j];
P[42] [j]=W[46] [j]; P[43] [j]=W[42] [j]; P[44] [j]=W[50] [j]; P[45] [j]=W[36] [j]; P[46] [j]=W[29] [j]; P[47] [j]=W[32] [j];
}
for (j=0; j<16; j++) {
for (i=0; i<48; i++) {
printf («%d», P[i] [j]);
}
printf («n»);
}
}
ΠΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ