ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² ΡΠΈΡΡΠ΅ΠΌΡ RSA ΠΈ Π΅Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅
Π ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΡΠ°ΡΡΠ½ΠΈΠΊ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅Ρ ΠΊΠ°ΠΊ ΠΎΡΠΊΡΡΡΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ (Π°Π½Π³Π». public key), ΡΠ°ΠΊ ΠΈ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ (Π°Π½Π³Π». secret key). ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠ»ΡΡ — ΡΡΠΎ ΡΠ°ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. Π ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ RSA ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠ»ΡΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΏΠ°ΡΡ ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π». ΠΠ°ΠΆΠ΄ΡΠΉ ΡΡΠ°ΡΡΠ½ΠΈΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΠΉ ΠΎΡΠΊΡΡΡΡΠΉ ΠΈ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ. Π‘Π΅ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΈΡ Π΄Π΅ΡΠΆΠΈΡ Π² ΡΠ΅ΠΊΡΠ΅ΡΠ΅, Π° ΠΎΡΠΊΡΡΡΡΠ΅… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² ΡΠΈΡΡΠ΅ΠΌΡ RSA ΠΈ Π΅Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΠΠΠΠ‘Π’ΠΠ Π‘Π’ΠΠ ΠΠΠ ΠΠΠΠΠΠΠΠ― Π ΠΠ‘Π‘ΠΠΠ‘ΠΠΠ Π€ΠΠΠΠ ΠΠ¦ΠΠ ΠΠΠ‘ΠΠΠΠ‘ΠΠΠ ΠΠΠ‘Π£ΠΠΠ Π‘Π’ΠΠΠΠΠ«Π ΠΠΠ‘Π’ΠΠ’Π£Π’ Π ΠΠΠΠΠ’ΠΠ₯ΠΠΠΠ, ΠΠΠΠΠ’Π ΠΠΠΠΠ Π ΠΠΠ’ΠΠΠΠ’ΠΠΠ (Π’ΠΠ₯ΠΠΠ§ΠΠ‘ΠΠΠ Π£ΠΠΠΠΠ Π‘ΠΠ’ΠΠ’) Π€Π°ΠΊΡΠ»ΡΡΠ΅Ρ ΠΠ’ ΠΠ°Π·ΠΎΠ²Π°Ρ ΠΊΠ°ΡΠ΅Π΄ΡΠ° № 244
ΠΡΡΡΠΎΠ²Π°Ρ ΡΠ°Π±ΠΎΡΠ°
ΠΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Π°: ΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠΎ ΡΠ΅ΠΌΠ΅ «ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² ΡΠΈΡΡΠ΅ΠΌΡ RSA ΠΈ Π΅Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅»
Π‘ΡΡΠ΄Π΅Π½Ρ: ΠΠΈΠ½Π°Π΅Π² Π‘Π΅ΡΠ³Π΅ΠΉ ΠΠΈΡΠΈΠ»Π»ΠΎΠ²ΠΈΡ
Π£ΡΠ΅Π±Π½Π°Ρ Π³ΡΡΠΏΠΏΠ°: ΠΠ’Π-2−09
ΠΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ: ΠΠ΅ΡΡΠ΅Π½ΠΊΠΎ Π.Π.
ΠΠ°ΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ: 06.12.11
ΠΠΎΡΠΊΠ²Π°, 2011
ΠΠΠΠΠΠΠ
Π½Π° ΠΊΡΡΡΠΎΠ²ΡΡ ΡΠ°Π±ΠΎΡΡ
ΠΏΠΎ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Π΅: ΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Π‘ΡΡΠ΄Π΅Π½Ρ: ΠΠΈΠ½Π°Π΅Π² Π‘Π΅ΡΠ³Π΅ΠΉ ΠΠΈΡΠΈΠ»Π»ΠΎΠ²ΠΈΡ Π£ΡΠ΅Π±Π½Π°Ρ Π³ΡΡΠΏΠΏΠ°: ΠΠ’Π-2−09
Π’ΠΠΠ: ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² ΡΠΈΡΡΠ΅ΠΌΡ RSA ΠΈ Π΅Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅.
1. ΠΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°ΡΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π²ΠΎΠΏΡΠΎΡΠΎΠ²:
1.1. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Ρ, ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π±ΠΎΡΡ ΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°
1.2. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ ΠΊΠ»ΡΡΠ° ΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
1.3. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π²Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ΅ΠΊΡΡΠ° ΠΈ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
1.4. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° ΠΈ ΡΠ°ΡΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
2. ΠΠ΅ΡΠ΅ΡΠ΅Π½Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ²:
2.1. ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠ°Π±ΠΎΡΡ RSA
2.2. ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ
2.3. ΠΠ½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
2.4. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Ρ ΡΠ³Π΅Π½Π΅ΡΠ΅Π½Π½ΡΠΌΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈ
2.5. ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°
2.6. Π Π°ΡΡΠΈΡΡΠΎΠ²ΠΊΠ° ΠΊΠΎΠ΄Π°
3. Π‘ΡΠ°Π΄ΠΈΠΈ ΠΈ ΡΡΠ°ΠΏΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ
3.1. Π‘ΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΠ΅, ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ 5 ΡΠ΅ΠΌ. 4 Π½Π΅Π΄.
3.2. Π£ΡΠΎΡΠ½Π΅Π½ΠΈΠ΅ ΠΈ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΌ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΡΠΎΡΡΠ°Π²Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ 5 ΡΠ΅ΠΌ. 5 Π½Π΅Π΄.
3.3. ΠΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΊΠΈ 5 ΡΠ΅ΠΌ. 15 Π½Π΅Π΄.
3.4. ΠΠΏΡΡΠ½Π°Ρ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·Π΄Π΅Π»ΠΈΡ 5 ΡΠ΅ΠΌ. 15 Π½Π΅Π΄.
3.5. ΠΠ°ΡΠΈΡΠ° ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ 5 ΡΠ΅ΠΌ. 15 Π½Π΅Π΄.
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ
1. ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
2. ΠΡΠ½ΠΎΠ²Ρ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΡΡΠ΅ΠΌ
3. ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΠΈ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ΅ΠΉ
3.1 ΠΠ»Π³ΠΎΡΠΈΡΠΌ
3.2 ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅, ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ°ΡΡΡ
4. Π‘Ρ Π΅ΠΌΠ° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ
4.1 ΠΠ»Π³ΠΎΡΠΈΡΠΌ Π΄Π»Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ
4.2 ΠΠ»Π³ΠΎΡΠΈΡΠΌ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ
5. ΠΡΠΈΠΌΠ΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ
6. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ RSA Π² Π½Π°ΡΠ΅ Π²ΡΠ΅ΠΌΡ
6.1 ΠΠ°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ RSA
6.2 ΠΠΎΠΏΡΡΠΊΠΈ Π²Π·Π»ΠΎΠΌΠ° RSA
7. Π€ΡΠ½ΠΊΡΠΈΡ ΠΠΉΠ»Π΅ΡΠ°
8. ΠΡΠ΅Π½ΠΊΠ° ΡΠΈΡΡΠ΅ΠΌΡ RSA
8.1 ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΡΠΈΡΡΠ΅ΠΌΡ RSA
8.2 ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ RSA
8.3. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ RSA.
9. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ ΡΠ°ΡΡΡ
9.1 ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° RSA
9.1.1 ΠΠ»Π°ΡΡ Program. cs
9.1.2 ΠΠ»Π°ΡΡ MainForm. cs
9.2 EvklidLib
9.2.1 EvklidLib. cs
9.3 EncodeDecode
9.3.1 Encoder. cs
9.3.2 EncoderBase. cs
9.3.3 IEncoder. cs
9.3.4 Key. cs
10. ΠΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
11. ΠΡΠ²ΠΎΠ΄ ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΡ ΠΏΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ
1. ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Π°Ρ Π² Π½ΠΎΡΠ±ΡΠ΅ 1976 Π³ΠΎΠ΄Π° ΡΡΠ°ΡΡΡ Π£ΠΈΡΡΠΈΠ»Π΄Π° ΠΠΈΡΡΠΈ ΠΈ ΠΠ°ΡΡΠΈΠ½Π° Π₯Π΅Π»Π»ΠΌΠ°Π½Π° «ΠΠΎΠ²ΡΠ΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΠΈ» ΠΏΠ΅ΡΠ΅Π²Π΅ΡΠ½ΡΠ»Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , Π·Π°Π»ΠΎΠΆΠΈΠ² ΠΎΡΠ½ΠΎΠ²Ρ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΠΈ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ. Π Π°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΠΈΡΡΠΈ-Π₯Π΅Π»Π»ΠΌΠ°Π½Π°-ΠΠ΅ΡΠΊΠ»Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ» Π΄Π²ΡΠΌ ΡΡΠΎΡΠΎΠ½Π°ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΠ±ΡΠΈΠΉ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π½Π΅Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΠΉ ΠΊΠ°Π½Π°Π» ΡΠ²ΡΠ·ΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π½Π΅ ΡΠ΅ΡΠ°Π» ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ (ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π»ΠΈΠ½Π½ΠΎΡΡΠΈ ΠΊΠ»ΡΡΠ°). ΠΠ΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ², ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π½Π΅ ΠΌΠΎΠ³ Π±ΡΡΡ ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ ΠΎΠ½ ΠΎΠ±ΠΌΠ΅Π½ΡΠ»ΡΡ ΠΊΠ»ΡΡΠ°ΠΌΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π΅ΠΌΡ Π±ΡΠ» Π½ΡΠΆΠ΅Π½.
ΠΠ·ΡΡΠΈΠ² ΡΡΡ ΡΡΠ°ΡΡΡ, ΡΡΠΎΠ΅ ΡΡΠ΅Π½ΡΡ Π ΠΎΠ½Π°Π»ΡΠ΄ Π Π°ΠΉΠ²Π΅ΡΡ (Ronald Linn Rivest), ΠΠ΄ΠΈ Π¨Π°ΠΌΠΈΡ (Adi Shamir) ΠΈ ΠΠ΅ΠΎΠ½Π°ΡΠ΄ ΠΠ΄Π»Π΅ΠΌΠ°Π½ (Leonard Adleman) ΠΈΠ· ΠΠ°ΡΡΠ°ΡΡΡΠ΅ΡΡΠΊΠΎΠ³ΠΎ Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΠ½ΡΡΠΈΡΡΡΠ° (MIT) ΠΏΡΠΈΡΡΡΠΏΠΈΠ»ΠΈ ΠΊ ΠΏΠΎΠΈΡΠΊΠ°ΠΌ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ»Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π£ΠΈΡΡΠΈΠ»Π΄ΠΎΠΌ ΠΠΈΡΡΠΈ ΠΈ ΠΠ°ΡΡΠΈΠ½ΠΎΠΌ Π₯Π΅Π»Π»ΠΌΠ°Π½ΠΎΠΌ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ. ΠΠΎΡΠ»Π΅ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ 40 Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌΠΈ Π²Π°ΡΠΈΠ°Π½ΡΠ°ΠΌΠΈ, ΠΈΠΌ ΡΠ΄Π°Π»ΠΎΡΡ Π½Π°ΠΉΡΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΡΠ°Π·Π»ΠΈΡΠΈΠΈ Π² ΡΠΎΠΌ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Π³ΠΊΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΏΡΠΎΡΡΡΠ΅ ΡΠΈΡΠ»Π° ΠΈ Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ ΡΠ°ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ Π½Π° ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»ΠΈ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄Π²ΡΡ Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΡΡΡΡ ΡΠΈΡΠ΅Π», ΠΏΠΎΠ»ΡΡΠΈΠ²ΡΠΈΠΉ Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ RSA. Π‘ΠΈΡΡΠ΅ΠΌΠ° Π±ΡΠ»Π° Π½Π°Π·Π²Π°Π½Π° ΠΏΠΎ ΠΏΠ΅ΡΠ²ΡΠΌ Π±ΡΠΊΠ²Π°ΠΌ ΡΠ°ΠΌΠΈΠ»ΠΈΠΉ Π΅Ρ ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Π΅ΠΉ.
2. ΠΡΠ½ΠΎΠ²Ρ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΡΡΠ΅ΠΌ
ΠΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ ΠΎΠ΄Π½ΠΎΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ:
ΠΡΠ»ΠΈ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ x, ΡΠΎ Π²ΡΡΠΈΡΠ»ΠΈΡΡ f (x) ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ.
ΠΡΠ»ΠΈ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ y=f (x), ΡΠΎ Π΄Π»Ρ x Π½Π΅Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΏΡΡΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ.
ΠΠΎΠ΄ ΠΎΠ΄Π½ΠΎΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΡΡΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΡΡ Π½Π΅ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠ΄Π½ΠΎΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΎΡΡΡ, Π° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π°, Π·Π° ΠΎΠ±ΠΎΠ·ΡΠΈΠΌΡΠΉ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π°, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΡΠ°ΠΌΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΏΠ°ΡΡΡ Π² ΡΡΠ΅ΡΡΠΈ ΡΡΠΊΠΈ.
Π ΠΎΡΠ½ΠΎΠ²Ρ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ RSA ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π° Π·Π°Π΄Π°ΡΠ° ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΠ°Π·Π»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΎΡΡΠ°Π²Π½ΡΡ ΡΠΈΡΠ΅Π» Π½Π° ΠΏΡΠΎΡΡΡΠ΅ ΡΠΎΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»ΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ΄Π½ΠΎΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ.
Π ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΡΠ°ΡΡΠ½ΠΈΠΊ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅Ρ ΠΊΠ°ΠΊ ΠΎΡΠΊΡΡΡΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ (Π°Π½Π³Π». public key), ΡΠ°ΠΊ ΠΈ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ (Π°Π½Π³Π». secret key). ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠ»ΡΡ — ΡΡΠΎ ΡΠ°ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. Π ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ RSA ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠ»ΡΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΏΠ°ΡΡ ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π». ΠΠ°ΠΆΠ΄ΡΠΉ ΡΡΠ°ΡΡΠ½ΠΈΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΠΉ ΠΎΡΠΊΡΡΡΡΠΉ ΠΈ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ. Π‘Π΅ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΈΡ Π΄Π΅ΡΠΆΠΈΡ Π² ΡΠ΅ΠΊΡΠ΅ΡΠ΅, Π° ΠΎΡΠΊΡΡΡΡΠ΅ ΠΊΠ»ΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠΎΠ±ΡΠ°ΡΡ ΠΊΠΎΠΌΡ ΡΠ³ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΠΈΡ . ΠΡΠΊΡΡΡΡΠΉ ΠΈ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠ»ΡΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠ° ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΎΠ±ΡΠ°Π·ΡΡΡ «ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΡΡ ΠΏΠ°ΡΡ» Π² ΡΠΎΠΌ ΡΠΌΡΡΠ»Π΅, ΡΡΠΎ ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡΡΡΡ Π²Π·Π°ΠΈΠΌΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΌΠΈ.
ΠΡΠ²ΠΎΠ΄ ΠΊΠΎ Π²ΡΠΎΡΠΎΠΉ Π³Π»Π°Π²Π΅: Π² Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΠΈΡΡ Ρ ΠΈΡΡΠΎΡΠΈΠ΅ΠΉ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ RSA ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΎΠ±ΡΠΈΠΌΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΠ΅ ΠΏΠΎΠ½ΡΡΡ ΡΠΎΠ½ΠΊΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ.
3. ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΠΈ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ΅ΠΉ
3.1 ΠΠ»Π³ΠΎΡΠΈΡΠΌ
RSA-ΠΊΠ»ΡΡΠΈ Π³Π΅Π½Π΅ΡΠΈΡΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
1) ΠΡΠ±ΠΈΡΠ°ΡΡΡΡ Π΄Π²Π° ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΠΏΡΠΎΡΡΡΡ ΡΠΈΡΠ»Π° p ΠΈ q Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, 1024 Π±ΠΈΡΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅).
2) ΠΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ n = pq, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ.
3) ΠΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΠΉΠ»Π΅ΡΠ° ΠΎΡ ΡΠΈΡΠ»Π° n:
4) ΠΡΠ±ΠΈΡΠ°Π΅ΡΡΡ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ e, ΡΠ°ΠΊΠΎΠ΅ ΡΡΠΎΠ±Ρ Π²Π·Π°ΠΈΠΌΠ½ΠΎ ΠΏΡΠΎΡΡΠΎΠ΅ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ±ΡΡΠ½ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ e Π±Π΅ΡΡΡ ΠΏΡΠΎΡΡΡΠ΅ ΡΠΈΡΠ»Π°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΡΡ Π±ΠΈΡΠΎΠ² Π² Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΡΡΡΠ΅ ΡΠΈΡΠ»Π° Π€Π΅ΡΠΌΠ° 17, 257, ΠΈΠ»ΠΈ 65 537. Π§ΠΈΡΠ»ΠΎ e Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΡΠΊΡΡΡΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΉ. ΠΠ°Π»Π΅Π½ΡΠΊΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ e (ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ 3) Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠ»Π°Π±Π»ΡΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ RSA (ΡΠΌ. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ RSA.).
5) ΠΡΡΠΈΡΠ»ΡΠ΅ΠΌ ΡΠΈΡΠ»ΠΎ d, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ΄Π²ΠΎΠ»Π΅ΡΠ²ΠΎΡΡΠ΅Ρ ΡΡΠ»ΠΎΠ²ΠΈΡ, Π³Π΄Π΅ k — Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ (Π½Π΅Π²Π°ΠΆΠ½ΠΎ ΠΊΠ°ΠΊΠΎΠ΅, ΠΈΠ±ΠΎ d Π±ΡΠ΄Π΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΠΊΠ»ΡΡΠ΅). ΠΠ½ΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠΊΡΠΏΠΎΠ½Π΅Π½ΡΠΎΠΉ. Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΠ²ΠΊΠ»ΠΈΠ΄Π°.
6) ΠΠ°ΡΠ° P = (e, n) ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° RSA (Π°Π½Π³Π». RSA public key).
7) ΠΠ°ΡΠ° S = (d, n) ΠΈΠ³ΡΠ°Π΅Ρ ΡΠΎΠ»Ρ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° RSA (Π°Π½Π³Π». RSA private key) ΠΈ Π΄Π΅ΡΠΆΠΈΡΡΡ Π² ΡΠ΅ΠΊΡΠ΅ΡΠ΅.
3.2 ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅, ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ°ΡΡΡ
ΠΠ»Ρ Π·Π°ΡΠΈΡΠ΅Π½Π½ΠΎΡΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, p ΠΈ q Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π±Π»ΠΈΠ·ΠΊΠΈΠΌΠΈ ΡΠΈΡΠ»Π°ΠΌΠΈ, ΠΈΠ½Π°ΡΠ΅ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ°ΠΊΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ Π€Π΅ΡΠΌΠ°. (ΠΠ΅ΡΠΎΠ΄ ΡΠ°ΠΊΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ Π€Π΅ΡΠΌΠ° Π½Π°ΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° n ΡΠΎΡΡΠΎΠΈΡ Π² ΠΏΠΎΠΈΡΠΊΠ΅ ΡΠ°ΠΊΠΈΡ ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π» x ΠΈ y, ΡΡΠΎ x2? y2 = n, ΡΡΠΎ Π²Π΅Π΄Π΅Ρ ΠΊ ΡΠ°Π·Π»ΠΎΠΆΠ΅Π½ΠΈΡ .) ΠΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠΈΡΠ»Π° Π²ΡΠ±ΠΈΡΠ°ΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ, Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΡ ΠΈΡ Π² Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΊΡΠ°ΠΉΠ½Π΅ ΠΌΠ°Π»Π° (ΡΠΌ. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ RSA.)
Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΠΉΠ»Π΅ΡΠ° ΠΏΠΎΡΠ²ΡΡΠ΅Π½ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ°Π·Π΄Π΅Π» ΡΠ°Π±ΠΎΡΡ (ΡΠΌ. Π€ΡΠ½ΠΊΡΠΈΡ ΠΠΉΠ»Π΅ΡΠ°.)
Π Π°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΠ²ΠΊΠ»ΠΈΠ΄Π° — ΡΡΠΎ ΡΠ°ΡΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΠ²ΠΊΠ»ΠΈΠ΄Π°. ΠΡΠΎΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΡ Π΅ΠΌΡ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΡΠ΄Π° ΡΠΈΡΠ΅Π», Π½Π°ΡΠΈΠ½Π°ΡΡΠ΅Π³ΠΎΡΡ Ρ Π·Π°Π΄Π°Π½Π½ΡΡ a ΠΈ b, ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ , Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π° — ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΠΈΡΠ»ΠΎ, ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΎΡΡΠ°ΡΠΎΠΊ ΠΎΡ Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π΅:
Π’ΠΎ Π΅ΡΡΡ:
a = bq0 + r1
b = r1q1 + r2
r1 = r2q2 + r3
rk? 2 = rk? 1qk? 1 + rk
rn? 1 = rnqn
Π Π°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΠ²ΠΊΠ»ΠΈΠ΄Π° ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎ Π΄ΡΡΠ³ΠΈΠΌ ΡΠΎΡΠΌΡΠ»Π°ΠΌ:
r1 = a + b (- q0)
r2 = b? r1q1 = a (? q1) + b (1 + q1q0)
gcd (a, b) = rn = as + bt
Π³Π΄Π΅ s ΠΈ t — ΡΠ΅Π»ΡΠ΅. ΠΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅Π³ΠΎ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΠ΅Π·Ρ, Π° ΡΠΈΡΠ»Π° s ΠΈ t — ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠ°ΠΌΠΈ ΠΠ΅Π·Ρ. Π‘ΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΠ΅Π·Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ Π² Π΄ΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΡΡΡΠ²Π΅ Π»Π΅ΠΌΠΌΡ ΠΠ²ΠΊΠ»ΠΈΠ΄Π° ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ΅ΠΎΡΠ΅ΠΌΡ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠΈ.
ΠΡΠ²ΠΎΠ΄ ΠΊ ΡΡΠ΅ΡΡΠ΅ΠΉ Π³Π»Π°Π²Π΅: Π² ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠΈΠ»ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠΎΡΠΌΡΠ»Ρ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ RSA ΠΊΠ»ΡΡΠ΅ΠΉ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ.
4. Π‘Ρ Π΅ΠΌΠ° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ
4.1 ΠΠ»Π³ΠΎΡΠΈΡΠΌ Π΄Π»Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ
ΠΠ»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ:
ΠΠ»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π, ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²Π·ΡΡΡ ΠΎΡΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ (e, n) ΡΡΠΎΡΠΎΠ½Ρ Π.
ΠΠ΅ΡΠ΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π Π² Π²ΠΈΠ΄:
ΠΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠ°Ρ ΡΡΠΎΡΠΎΠ½Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ.
ΠΡΠΈΠΌΠ΅Π½ΠΈΠ² ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ (d, n), ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎ ΡΠΎΡΠΌΡΠ»Π΅:
ΠΠ±Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ (1) ΠΈ (2) ΠΎΡΠ½ΠΎΠ²Π°Π½Ρ Π½Π° ΡΠ°ΠΌΠΎΠΌ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ RSA — Π·Π° ΡΡΠ΅Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΎΡΠΊΡΡΡΡΠΉ ΠΈ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠ»ΡΡΠΈ Π²Π·Π°ΠΈΠΌΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ½Ρ, Π° Π·Π½Π°ΡΠΈΡ (Π³Π΄Π΅ D — ΡΡΠΎ Π΄Π΅ΡΠΈΡΡΠΎΠ²ΠΊΠ°, E — ΡΠΈΡΡΠΎΠ²ΠΊΠ°, Π — ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, Π° P ΠΈ S — ΠΎΡΠΊΡΡΡΡΠΉ ΠΈ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ):
Π ΠΎΠ±ΡΠ΅ΠΌ, Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΠ°ΠΊ:
Π ΠΈΡ. 1 ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠ°Π±ΠΎΡΡ RSA
4.2 ΠΠ»Π³ΠΎΡΠΈΡΠΌ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ
Π‘Ρ Π΅ΠΌΠ° ΠΎΡΡΠ°Π΅ΡΡΡ ΡΡ ΠΎΠΆΠ΅ΠΉ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΈΡΡΠΎΠ²ΡΠΌΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΌΠΈ.
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎΡΠΎΠ½Π΅, Π Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΡΡΠΎΡΠΎΠ½Π΅ Π, Ρ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΡΡ.
ΠΠ»Π³ΠΎΡΠΈΡΠΌ:
Π‘ΡΠΎΡΠΎΠ½Π°, Π ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠΈΡΡΠΎΠ²ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°
ΠΠ°ΡΠ΅ΠΌ ΠΎΠ½Π° ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΠΏΠ°ΡΡ, ΡΠΎΡΡΠΎΡΡΡΡ ΠΈΠ· ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ.
Π‘ΡΠΎΡΠΎΠ½Π° Π ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΏΠ°ΡΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° ΡΡΠΎΡΠΎΠ½Ρ, Π ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΡΠ²Π°Π΅Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΡ ΡΡΠΎΡΠΎΠ½Ρ Π, ΠΏΠΎ ΡΠΎΡΠΌΡΠ»Π΅:
Π ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π΅Π΅ ΠΈΡΡΠΈΠ½Π½ΠΎΡΡΡ ΠΈΠ»ΠΈ Π»ΠΎΠΆΠ½ΠΎΡΡΡ.
Π ΠΎΠ±ΡΠ΅ΠΌ, Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΠΊΠ°ΠΊ:
Π ΠΈΡ. 2 ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½ΠΎ, Π½ΠΎ ΡΠΎΡΠ΅ΡΠ°Ρ ΠΎΠ±Π° ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΡΠΈΡΡΠΎΠ²Π°ΡΡ ΠΈ ΡΠ°ΠΌΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΡ — Π΄Π»Ρ ΡΠ΄Π²Π°ΠΈΠ²Π°Π½ΠΈΡ Π·Π°ΡΠΈΡΡ.
ΠΡΠ²ΠΎΠ΄ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅: Π² Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΠΊΠ»ΡΡΠ°Ρ ΠΈ ΠΈΡ ΠΎΠ±ΡΡΡ ΡΡ Π΅ΠΌΡ.
5. ΠΡΠΈΠΌΠ΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ
ΠΡΠ°ΠΏ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ | Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ | |
ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ | Π²ΡΠ±ΡΠ°ΡΡ Π΄Π²Π° ΠΏΡΠΎΡΡΡΡ ΡΠΈΡΠ»Π° | ||
Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ | |||
Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΠΉΠ»Π΅ΡΠ° | |||
Π²ΡΠ±ΡΠ°ΡΡ ΠΎΡΠΊΡΡΡΡΠΉ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ | |||
Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ | |||
ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΠΎΡΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ | |||
ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ | |||
Π¨ΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ | Π²ΡΠ±ΡΠ°ΡΡ ΡΠ΅ΠΊΡΡ Π΄Π»Ρ Π·Π°ΡΠΈΡΡΠΎΠ²ΠΊΠΈ | ||
Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΡΠΈΡΡΠΎΡΠ΅ΠΊΡΡ | |||
Π Π°ΡΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ | Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ | ||
ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΈ ΠΎΠ΄Π½ΠΎΡΠ°Π·ΠΎΠ²ΠΎ, ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΆΠ΅ ΡΠΈΡΡΠΎΠ²ΠΊΠΈ-ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΠΊΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΡΠ°ΡΠ΅, ΠΏΠΎΡΠΎΠΌΡ ΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΡΡ ΠΏΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΠΌ ΡΡ Π΅ΠΌΠ°ΠΌ ΠΈ Π±ΡΡΡΡΠ΅Π΅.
ΠΡΠ΅ΠΌΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΡΡΡΡΠΎΠ³ΠΎ Π²ΠΎΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ Π² ΡΡΠ΅ΠΏΠ΅Π½Ρ, ΠΏΡΠΎΠΏΠΎΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΡΠΈΡΠ»Ρ Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΡΡ Π±ΠΈΡ Π² e.
6. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ RSA Π² Π½Π°ΡΠ΅ Π²ΡΠ΅ΠΌΡ
6.1 ΠΠ°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ RSA
ΠΠ° 2009 Π³ΠΎΠ΄ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ RSA ΡΡΠΈΡΠ°Π΅ΡΡΡ Π½Π°Π΄ΡΠΆΠ½ΠΎΠΉ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π² 1024 Π±ΠΈΡΠ°.
6.2 ΠΠΎΠΏΡΡΠΊΠΈ Π²Π·Π»ΠΎΠΌΠ° RSA
Π ΡΡΠΎΠΌ Π³ΠΎΠ΄Ρ Π³ΡΡΠΏΠΏΠ΅ ΡΡΡΠ½ΡΡ ΠΈΠ· Π¨Π²Π΅ΠΉΡΠ°ΡΠΈΠΈ, Π―ΠΏΠΎΠ½ΠΈΠΈ, Π€ΡΠ°Π½ΡΠΈΠΈ, ΠΠΈΠ΄Π΅ΡΠ»Π°Π½Π΄ΠΎΠ², ΠΠ΅ΡΠΌΠ°Π½ΠΈΠΈ ΠΈ Π‘Π¨Π ΡΠ΄Π°Π»ΠΎΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π²ΡΡΠΈΡΠ»ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅, Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° ΡΡΠ°Π½Π΄Π°ΡΡΠ° RSA Π΄Π»ΠΈΠ½ΠΎΠΉ 768 Π±ΠΈΡ. ΠΠΎ ΡΠ»ΠΎΠ²Π°ΠΌ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΏΠΎΡΠ»Π΅ ΠΈΡ ΡΠ°Π±ΠΎΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ RSA-ΠΊΠ»ΡΡΠΈ Π΄Π»ΠΈΠ½ΠΎΠΉ 1024 Π±ΠΈΡΠ° ΠΈ Π±ΠΎΠ»Π΅Π΅. ΠΡΠΈΡΡΠΌ ΠΎΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»ΡΡΠΎΠΌ Π΄Π»ΠΈΠ½ΠΎΠΉ Π² 1024 Π±ΠΈΡ ΡΡΠΎΠΈΡ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ Π² Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠ΅ ΡΡΠΈ-ΡΠ΅ΡΡΡΠ΅ Π³ΠΎΠ΄Π°, Π΄ΠΎ 2013.
ΠΠ° ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ°Π³ (Π²ΡΠ±ΠΎΡ ΠΏΠ°ΡΡ ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌΠΎΠ² ΡΡΠ΅ΠΏΠ΅Π½ΠΈ 6 ΠΈ 1) Π±ΡΠ»ΠΎ ΠΏΠΎΡΡΠ°ΡΠ΅Π½ΠΎ ΠΎΠΊΠΎΠ»ΠΎ ΠΏΠΎΠ»ΡΠ³ΠΎΠ΄Π° Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ Π½Π° 80 ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°Ρ , ΡΡΠΎ ΡΠΎΡΡΠ°Π²ΠΈΠ»ΠΎ ΠΎΠΊΠΎΠ»ΠΎ 3% Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΏΠΎΡΡΠ°ΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π½Π° Π³Π»Π°Π²Π½ΡΠΉ ΡΡΠ°ΠΏ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° (ΠΏΡΠΎΡΠ΅ΠΈΠ²Π°Π½ΠΈΠ΅), ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΡΡ Π½Π° ΡΠΎΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ² Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΠΈ Π΄Π²ΡΡ Π»Π΅Ρ. ΠΡΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎ Π²ΡΠ΅ΠΌΡ Π½Π° ΡΠ°Π±ΠΎΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° AMD Opteron 2.2ΠΠΡ Ρ 2ΠΠ± ΠΏΠ°ΠΌΡΡΠΈ, ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ Π±Ρ ΠΏΠΎΡΡΠ΄ΠΊΠ° 1500 Π»Π΅Ρ. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π΄Π°Π½Π½ΡΡ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΡΠ΅ΠΈΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΠ΅ΡΡΡΡΠΎΡΠΌΠΊΠΎΠ³ΠΎ ΡΠ°Π³Π° (Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ Π°Π»Π³Π΅Π±ΡΡ) ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π΅Π΄Π΅Π»Ρ Π½Π° ΠΌΠ°Π»ΠΎΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ². ΠΠ°ΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ°Π³ ΠΏΠΎΡΠ»Π΅ Π·Π°Π½ΡΠ» Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 12 ΡΠ°ΡΠΎΠ².
Π Π°ΡΡΠΈΡΡΠΎΠ²ΠΊΠ° ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠ»Π°ΡΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°Π·Π΄Π΅Π»ΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°Ρ ΠΈ Π΄Π»ΠΈΠ»ΠΎΡΡ ΡΡΡΡ ΠΌΠ΅Π½Π΅Π΅ 4 ΠΌΠ΅ΡΡΡΠ΅Π². ΠΡΠΈ ΡΡΠΎΠΌ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°Π·ΡΠ΅ΠΆΠ΅Π½Π½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ ΡΠΎΡΡΠ°Π²ΠΈΠ» 192 796 550×192 795 550 ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ 27 795 115 920 Π½Π΅Π½ΡΠ»Π΅Π²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² (ΡΠΎ Π΅ΡΡΡ Π² ΡΡΠ΅Π΄Π½Π΅ΠΌ 144 Π½Π΅Π½ΡΠ»Π΅Π²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π½Π° ΡΡΡΠΎΠΊΡ). ΠΠ»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΡΡ Π½Π° ΠΆΡΡΡΠΊΠΎΠΌ Π΄ΠΈΡΠΊΠ΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΠ»ΠΎΡΡ ΠΎΠΊΠΎΠ»ΠΎ 105 Π³ΠΈΠ³Π°Π±Π°ΠΉΡ. Π ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΠ»ΠΎΡΡ ΠΎΠΊΠΎΠ»ΠΎ 5 ΡΠ΅ΡΠ°Π±Π°ΠΉΡ ΡΠΆΠ°ΡΡΡ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ.
Π ΠΈΡΠΎΠ³Π΅ Π³ΡΡΠΏΠΏΠ΅ ΡΠ΄Π°Π»ΠΎΡΡ Π²ΡΡΠΈΡΠ»ΠΈΡΡ 232-ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΊΠ»ΡΡ, ΠΎΡΠΊΡΡΠ²Π°ΡΡΠΈΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΌ Π΄Π°Π½Π½ΡΠΌ.
ΠΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΠ²Π΅ΡΠ΅Π½Ρ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ°ΠΊΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ, Π²Π·Π»ΠΎΠΌΠ°ΡΡ 1024-Π±ΠΈΡΠ½ΡΠΉ RSA-ΠΊΠ»ΡΡ Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π΄Π΅ΠΊΠ°Π΄Ρ, Π΄ΠΎ 2020 Π³ΠΎΠ΄Π°.
ΠΡΠ²ΠΎΠ΄ ΠΊ ΡΠ΅ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅: Π² ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ Π±ΡΠ»ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΎ, ΡΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° RSA ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ, Π½ΠΎ Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ΅Π°Π»ΠΈΡΡ (Π½Π° ΠΊΠΎΠ½Π΅Ρ 2011 Π³ΠΎΠ΄Π°) ΠΎΠ½Π° ΡΡΠΈΡΠ°Π΅ΡΡΡ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ ΠΈ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ Π΄Π»Ρ Π²Π·Π»ΠΎΠΌΠ°, ΠΏΡΠΈ ΡΠΎΠ±Π»ΡΠ΄Π΅Π½ΠΈΠΈ ΠΎΡΠΎΠ±ΡΡ ΠΏΡΠ°Π²ΠΈΠ» Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠ»ΡΡΠ°.
7. Π€ΡΠ½ΠΊΡΠΈΡ ΠΠΉΠ»Π΅ΡΠ°
Π€ΡΠ½ΠΊΡΠΈΡ ΠΠΉΠ»Π΅ΡΠ°, Π³Π΄Π΅ n — Π½Π°ΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ, ΡΠ°Π²Π½Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ Π½Π°ΡΡΡΠ°Π»ΡΠ½ΡΡ ΡΠΈΡΠ΅Π», Π½Π΅ Π±ΠΎΠ»ΡΡΠΈΡ n ΠΈ Π²Π·Π°ΠΈΠΌΠ½ΠΎ ΠΏΡΠΎΡΡΡΡ Ρ Π½ΠΈΠΌ. ΠΠ°Π·Π²Π°Π½Π° Π² ΡΠ΅ΡΡΡ ΠΠΉΠ»Π΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» Π΅Π΅ Π² ΡΠ²ΠΎΠΈΡ ΡΠ°Π±ΠΎΡΠ°Ρ ΠΏΠΎ ΡΠ΅ΠΎΡΠΈΠΈ ΡΠΈΡΠ΅Π».
Π£ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° n ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ°ΠΊΠΈΠ΅
n=p0 * p1 * … * pk
Π’ΠΎΠ³Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ
Π³Π΄Π΅ ?i — ΡΡΠ΅ΠΏΠ΅Π½Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»Ρ Π² ΡΠ°Π·Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ n — Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΠΠΉΠ»Π΅ΡΠ°.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
+0 | +1 | +2 | +3 | +4 | +5 | +6 | +7 | +8 | +9 | ||
0+ | |||||||||||
10+ | |||||||||||
20+ | |||||||||||
30+ | |||||||||||
40+ | |||||||||||
50+ | |||||||||||
60+ | |||||||||||
70+ | |||||||||||
80+ | |||||||||||
90+ | |||||||||||
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° p ΠΈ q ΠΏΡΠΎΡΡΡΠ΅, ΡΠΎ ΠΈ n ΠΏΡΠΎΡΡΠΎΠ΅, ΠΏΡΠΈΡΠ΅ΠΌ n=p*k.
ΠΠ½Π°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΠΉΠ»Π΅ΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ ΠΊ Π·Π½Π°ΠΊΠΎΠΌΠΎΠΌΡ Π½Π°ΠΌ Π²ΠΈΠ΄Ρ:
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠ΄Π°, ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π² ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π.
ΠΠ΄Π½Π°ΠΊΠΎ, Π΄Π°Π½Π½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ»ΡΡΠ°Π΅ Π½Π΅ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° n, Π½Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΡΡΠ΄ΠΊΠ° 100 ΡΠ°Π·ΡΡΠ΄ΠΎΠ². Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΈ ΠΌΠΎΡΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠΎΠ΄ΡΡΠ΅ΡΠ°, Π² ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΡΠΎΡΡΡ Π»Π΅ΠΆΠΈΡ ΡΠΎΡ ΠΆΠ΅ ΡΠ°ΠΌΡΠΉ, Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΡ ΡΠΈΡΠ΅Π».
ΠΡΠ²ΠΎΠ΄ ΠΊ ΡΠ΅Π΄ΡΠΌΠΎΠΉ Π³Π»Π°Π²Π΅: Π² ΡΡΠΎΠΉ Π³Π»Π°Π²Ρ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΠΉΠ»Π΅ΡΠ°, ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ.
8. ΠΡΠ΅Π½ΠΊΠ° ΡΠΈΡΡΠ΅ΠΌΡ RSA
8.1 ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΡΠΈΡΡΠ΅ΠΌΡ RSA
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°ΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΡ RSA ΡΠ²Π»ΡΡΡΡΡ:
1) Π‘ΠΈΡΡΠ΅ΠΌΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ»Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΡ ΠΊΠ»ΡΡΠ°, Π½ΠΎ ΠΈ Π±ΡΡΡ ΡΠ²Π΅ΡΠ΅Π½Π½ΡΠΌ, ΡΡΠΎ ΠΎΠ±ΠΌΠ΅Π½ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π» ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ ΡΠ΅ΠΌ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» Π½ΡΠΆΠ΅Π½ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
2) ΠΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠΌΠ΅ΡΡΠΈΠΉ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ. ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ Π·Π° ΠΎΡΠΊΡΡΡΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠΎΠ΄Π»ΠΈΠ½Π½ΠΎΡΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΠΈΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
3) ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π½Π°Π΄Π΅ΠΆΠ½Π°Ρ ΠΈ Π±ΡΡΡΡΠ°Ρ, Π΄Π»Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠΈΡΡΠ΅ΠΌΠ°, Ρ ΠΎΡΠΎΡΠΎ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡΠ°Ρ Π·Π°ΠΏΡΠΎΡΠ°ΠΌ ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΡΠΎΠ΄Π°.
8.2 ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ RSA
1) ΠΠ·-Π·Π° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ³ΠΎ ΡΠΎΡΡΠ° ΠΌΠΎΡΠ½ΠΎΡΡΠ΅ΠΉ ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Ρ Π°ΠΊΠ΅ΡΠΎΠ², ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΡΠΈΠ»ΡΡΡ ΡΡΠ°ΡΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΈΡΡΠΎΠ²ΠΊΠΈ ΡΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ, ΡΡΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΡ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ, Π½ΠΎ ΠΈ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅Ρ ΠΈ Π·Π°ΠΌΠ΅Π΄Π»ΡΠ΅Ρ Π΅Π΅ ΡΠ΅ΠΌΠΏΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π² ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ.
2) ΠΠ·-Π·Π° Π½ΠΈΠ·ΠΊΠΎΠΉ ΡΠΊΠΎΡΠΎΡΡΠΈ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ (ΠΎΠΊΠΎΠ»ΠΎ 30 ΠΊΠ±ΠΈΡ/Ρ ΠΏΡΠΈ 512 Π±ΠΈΡΠ½ΠΎΠΌ ΠΊΠ»ΡΡΠ΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅ 2 ΠΠΡ), ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΈΡΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΡΠΎ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ (ΡΠ΅Π°Π½ΡΠΎΠ²ΡΠΉ ΠΊΠ»ΡΡ), Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ RSA ΡΠΈΡΡΡΡΡ Π»ΠΈΡΡ ΡΡΠΎΡ ΠΊΠ»ΡΡ. Π’Π°ΠΊΠΎΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΈΠΌΠ΅Π΅Ρ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π²Π²ΠΈΠ΄Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΡΠΈΠΏΡΠΎΡΡΠΎΠΉΠΊΠΈΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π» Π΄Π»Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ³ΠΎ ΡΠ΅Π°Π½ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΡΠΎΡΡΠΈΠΉ Π°ΡΠ°ΠΊΠ°ΠΌ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠΉ ΠΊΡΠΈΠΏΡΠΎΠ°Π»Π³ΠΎΡΠΈΡΠΌ.
8.3 Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ RSA
1) ΠΠ°ΠΊ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ Π²ΡΡΠ΅, Π½Π° ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠ΅ ΠΏΡΠΎΡΡΡΠ΅ ΡΠΈΡΠ»Π° ΠΈ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ:
p ΠΈ q Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π±Π»ΠΈΠ·ΠΊΠΈ Π΄ΡΡΠ³ ΠΊ Π΄ΡΡΠ³Ρ, ΠΈΠ½Π°ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡ Π½Π°ΠΉΡΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ°ΠΊΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ Π€Π΅ΡΠΌΠ°. ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ ΠΎΠ±Π° ΠΏΡΠΎΡΡΡΡ ΡΠΈΡΠ»Π° ΠΈ Π±ΡΠ»ΠΈ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Ρ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ, ΡΠΎ ΡΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Ρ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠΉ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ.
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ±ΠΈΡΠ°ΡΡ «ΡΠΈΠ»ΡΠ½ΡΠ΅» ΠΏΡΠΎΡΡΡΠ΅ ΡΠΈΡΠ»Π°, ΡΡΠΎΠ±Ρ Π½Π΅Π»ΡΠ·Ρ Π±ΡΠ»ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ p-1 ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΠΠΎΠ»Π»Π°ΡΠ΄Π° (Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠ°Π·Π»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π°ΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° N Π½Π° ΠΏΡΠΎΡΡΡΠ΅ ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»ΠΈ. ΠΠ½ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΡΠΎΡΡΡΡ Π΄Π΅Π»ΠΈΡΠ΅Π»Π΅ΠΉ p, Ρ ΠΊΠΎΡΠΎΡΡΡ p? 1 Ρ ΠΎΡΠΎΡΠΎ ΡΠ°ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ Π½Π° ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»ΠΈ, ΡΠΎ Π΅ΡΡΡ ΠΈΠΌΠ΅Π΅Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ.). «Π‘ΠΈΠ»ΡΠ½ΡΠΌΠΈ» ΠΏΡΠΎΡΡΡΠΌΠΈ ΡΠΈΡΠ»Π°ΠΌΠΈ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΏΡΠΎΡΡΡΠ΅ ΡΠΈΡΠ»Π°, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΡΡΠ΅Π΄Π½Π΅Π΅ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°. Π’ΠΎ Π΅ΡΡΡ:
ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° — ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠ΄ ΠΏΡΠΎΡΡΡΡ ΡΠΈΡΠ΅Π» 79, 97, 101.
97 > (79+101)/2 = 90, Π° Π·Π½Π°ΡΠΈΡ 97 — «ΡΠΈΠ»ΡΠ½ΠΎΠ΅» ΠΏΡΠΎΡΡΠΎΠ΅ ΡΠΈΡΠ»ΠΎ.
2) ΠΡΠ»ΠΈ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π·Π°ΡΠΈΡΡΠ½Π½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΅Π΄ΠΈΠ½ΡΠΉ n=p*q Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. Π‘ΡΠΎΡΠΎΠ½Π° A ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠΎΡ ΡΠ΅ΡΠ²Π΅Ρ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ M. ΠΠ΅ ΡΠΌΠΎΡΡΡ Π½Π° Π²ΠΈΠ΄ΠΈΠΌΡΡ Π½Π΅ΠΏΡΠΈΡΡΡΠΏΠ½ΠΎΡΡΡ, ΡΠ·Π½Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΡΠΎΠ½Ρ, Π ΠΌΠΎΠΆΠ½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ²ΠΎΠΈ ΡΡΠΎΠ±Ρ ΡΠ°Π·Π»ΠΎΠΆΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ n ΠΈ, Π·Π½Π°Ρ e, Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΡ ΡΠΊΡΠΏΠΎΠ½Π΅Π½ΡΡ d.
3) Π 1990 Π³ΠΎΠ΄Ρ ΠΠΈΡ Π°ΡΠ»Ρ ΠΠΈΠ½Π΅Ρ (Michael J. Wiener) ΠΏΠΎΠΊΠ°Π·Π°Π», ΡΡΠΎ Π² ΡΠ»ΡΡΠ°Π΅ ΠΌΠ°Π»ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ d Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Π²Π·Π»ΠΎΠΌ ΡΠΈΡΡΠ΅ΠΌΡ RSA, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ — Π΅ΡΠ»ΠΈ, ΡΡΠΎΠ±Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ (ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ), Π±ΡΠ»ΠΎ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΎ ΡΠΈΡΠ»ΠΎ Π½Π΅Π½ΡΠ»Π΅Π²ΡΡ Π±ΠΈΡΠΎΠ² Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠΊΡΠΏΠΎΠ½Π΅Π½ΡΡ, ΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ Π²ΡΡΠΈΡΠ»ΠΈΡΡ d.
4) Π§ΡΠΎΠ±Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΌΠ°Π»ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΡΠΊΡΡΡΠΎΠΉ ΡΠΊΡΠΏΠΎΠ½Π΅Π½ΡΡ. ΠΠ°ΠΈΠΌΠ΅Π½ΡΡΠ΅Π΅ ΠΈΠ· Π½ΠΈΡ e=3. ΠΠ΄Π½Π°ΠΊΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΠΊΡΠΈΠΏΡΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° RSA, ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ .
ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ ΡΠΈΡΡΠ°ΡΠΈΡ: Π‘ΡΠΎΡΠΎΠ½Π° ΠΎΡΡΡΠ»Π°Π΅Ρ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΉ ΠΎΡΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ, ΠΏΡΠΈΡΡΠΌ. Π‘ΡΠΎΡΠΎΠ½Π° Π·Π°ΡΠΈΡΡΠΎΠ²ΡΠ²Π°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠΎΠΎΡΠ΅ΡΡΠ΄Π½ΠΎ ΠΎΡΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΈ ΠΎΡΡΡΠ»Π°Π΅Ρ Π΅Π³ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌΡ Π°Π΄ΡΠ΅ΡΠ°ΡΡ. ΠΡΠΎΡΠΈΠ²Π½ΠΈΠΊ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°Π΅Ρ ΠΊΠ°Π½Π°Π» ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈ ΡΠΎΠ±ΠΈΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΡ ΡΠΈΡΡΠΎΡΠ΅ΠΊΡΡΠΎΠ².
Π ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π²ΡΠ΅ ΠΎΡΠΊΡΡΡΡΠ΅ ΡΠΊΡΠΏΠΎΠ½Π΅Π½ΡΡ ΡΠ°Π²Π½Ρ, ΠΏΡΠΎΡΠΈΠ²Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΡΠΈ .
ΠΡΠΎΡ ΡΠΈΠΏ Π°ΡΠ°ΠΊΠΈ Π±ΡΠ» Π½Π°Π·Π²Π°Π½ Π² ΡΠ΅ΡΡΡ Π₯Π°ΡΡΠ°Π΄Π° (Johan Hastad), ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΊΠ°Π·Π°Π», ΡΡΠΎ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΏΡΠΎΡΠΈΠ²Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π ΠΏΡΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
ΠΡΠ° Π°ΡΠ°ΠΊΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΠΌΠ°Π»ΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ ΠΎΡΠΊΡΡΡΠΎΠΉ ΡΠΊΡΠΏΠΎΠ½Π΅Π½ΡΡ, Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊΡΠΈΠΏΡΠΎΡΡΠΎΠΉΠΊΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ RSA ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΡ, Π° Π½Π΅ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ, ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ» ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½ Π²ΡΡΠ΅.
Π’Π°ΠΊ ΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π°ΡΠ°ΠΊ Π½Π° ΡΠΈΡΡΠ΅ΠΌΡ RSA ΠΏΡΠΈ ΠΌΠ°Π»ΡΡ Π΅, Π² ΡΠ²ΡΠ·ΠΈ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΡΠ΅ΠΌ ΠΌΠ΅Π½ΡΡΠ΅ Π΅, ΡΠ΅ΠΌ ΠΌΠ΅Π½ΡΡΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° Π²Π·Π»ΠΎΠΌ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΡΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡΡ .
5) ΠΡΠ°ΠΊΠ° ΠΈΠ· ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠ΅ΠΎΡΠΈΠΈ — Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ²Π°Π½ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°, Π΅ΡΠ»ΠΈ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½, ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π²Π·Π»ΠΎΠΌΠ°ΡΡ RSA, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΊΠ²Π°Π½ΡΠΎΠ²ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π¨ΠΎΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΡΡ ΡΠ°ΠΊΡΠΎΡΠΈΠ·Π°ΡΠΈΡ Π±ΠΎΠ»ΡΡΠΈΡ ΡΠΈΡΠ΅Π» Π·Π° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΊΠΎΡΠΎΡΠΊΠΎΠ΅ Π²ΡΠ΅ΠΌΡ. Π Π°Π·Π»ΠΎΠΆΠΈΠ² ΠΌΠΎΠ΄ΡΠ»Ρ n Π½Π° ΠΏΡΠΎΡΡΡΠ΅ ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»ΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ d.
6) ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· Π°ΡΠ°ΠΊ Π½Π° ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΠ΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ ΠΏΡΠΈ ΡΠΈΡΡΠΎΠ²ΠΊΠ΅ Π΄Π°Π½Π½ΡΡ , Π° ΠΏΠΎΡΠΎΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°ΡΡΠ΅Ρ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠΊΡΠΏΠΎΠ½Π΅Π½ΡΡ d. ΠΡΡ Π°ΡΠ°ΠΊΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ» ΠΠΎΠ» ΠΠΎΡ Π΅Ρ (Paul Kocher). ΠΠ»Ρ Π·Π°ΡΠΈΡΡ ΠΎΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π²Π²Π΅Π»ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ Π·Π°Π΄Π΅ΡΠΆΠΊΡ ΠΏΡΠΈ ΡΠ°ΡΡΠ΅ΡΠ΅ Π΄Π°Π½Π½ΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎ Π²Π΅ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ.
7) ΠΠ»Ρ Π·Π°ΡΠΈΡΡ ΠΎΡ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΡ Π°ΡΠ°ΠΊ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π² ΠΏΠΎΠ΄ΠΏΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π·Π°ΡΠΈΡΡ — Π²ΠΏΠΈΡΡΠ²Π°ΡΡ ΡΡΠ΄Π° Π΄Π°ΡΡ ΠΈΠ»ΠΈ Π²ΡΠ΅ΠΌΡ, ΠΈΠ±ΠΎ ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π²ΡΠΎΡΠΎΠ³ΠΎ, Π·Π°ΡΠ°Π½Π΅Π΅ ΠΏΠ΅ΡΠ΅Π΄Π΅Π»Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ, Π±Π»ΠΎΠΊΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΡ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ°ΠΉΠ»Π° — ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ RSA.
ΠΡΠ²ΠΎΠ΄ ΠΊ Π²ΠΎΡΡΠΌΠΎΠΉ Π³Π»Π°Π²Π΅: Π² Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ ΠΏΠΎΠ΄Π²Π΅Π»ΠΈ ΠΈΡΠΎΠ³ ΠΈ ΡΠ»ΠΎΠΆΠΈΠ»ΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ΅ RSA, ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π² Π΅Π΅ ΡΠΈΠ»ΡΠ½ΡΠ΅ ΠΈ ΡΠ»Π°Π±ΡΠ΅ ΡΡΠΎΡΠΎΠ½Ρ, Π° ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Ρ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΏΠΎΠΏΡΡΠΎΠΊ Π²Π·Π»ΠΎΠΌΠ° Π΅Π΅ ΡΠ»Π°Π±ΡΡ ΠΌΠ΅ΡΡ.
9. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ ΡΠ°ΡΡΡ
ΠΡΠΎΠ΅ΠΊΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ C#.
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΡΠ΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ.
9.1 ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° RSA
9.1.1 ΠΠ»Π°ΡΡ Program. cs
ΠΠΎΠΌΠΈΠΌΠΎ ΡΠΎΡΠΌΡ, Π·Π°ΠΊΡΠ΅ΠΏΠ»Π΅Π½Π½ΠΎΠΉ ΠΊ Π΄Π°Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅, Π² Π½Π΅ΠΌ Π΅ΡΡΡ ΠΊΠ»Π°ΡΡ Program.cs. Π‘ΠΎΡΡΠΎΠΈΡ ΠΎΠ½ ΠΈΠ· ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ.
9.1.2 ΠΠ»Π°ΡΡ MainForm. cs
Π€ΠΎΡΠΌΠ° Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° (ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΡΠ΅Π»ΠΎΠΌ) Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π²ΠΎΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π ΠΈΡ. 3 ΠΠ½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΠΎΠ΄ ΠΊΠ»Π°ΡΡΠ° MainForm ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ ΡΠ°ΡΡΠ΅ΡΠ° ΠΊΠΎΠ΄ΠΎΠ², Π° ΡΠ°ΠΊ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ:
OpenDocument — ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡΠΊΡΡΡΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°
gcd — ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠΈΡΠΊΠ° Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅Π³ΠΎ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ
MutuallySimple — ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠΈΡΠΊΠ° ΡΠΈΡΠ»Π° d/e, Π²Π·Π°ΠΈΠΌΠ½ΠΎ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ.
Checkpq — ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π΄Π΅Π»ΠΈΡΠ΅Π»Π΅ΠΉ p ΠΈ q. ΠΡΠ»ΠΈ Ρ Π½ΠΈΡ Π΅ΡΡΡ Π½Π΅ΠΊΠΈΠΉ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ, ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΠΎΡ Π΅Π΄ΠΈΠ½ΠΈΡΡ — Π΄Π°Π½Π½ΡΠ΅ ΡΠΈΡΠ»Π° Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π΄Π»Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°.
ApplyPQButton_Click — ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π²Π²Π΅Π΄Π΅Π½ΡΡ p ΠΈ q, ΠΏΠΎΠΈΡΠΊΠ° ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠΈΡΠ΅Π» Π΄Π»Ρ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π‘learButton_Click — ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡΠΈΡΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΠΊΠ»ΡΡΠ°
CryptButton_Click — ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ (Π²Π½Π΅ΡΠ½ΡΡ) ΡΡΠ½ΠΊΡΠΈΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ
DecryptButton_Click — ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ (Π²Π½Π΅ΡΠ½ΡΡ) ΡΡΠ½ΠΊΡΠΈΡ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ
9.2 EvklidLib
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΠ²ΠΊΠ»ΠΈΠ΄Π°
9.2.1 EvklidLib. cs
Π€ΡΠ½ΠΊΡΠΈΠΈ Π² ΠΊΠ»Π°ΡΡΠ΅:
ExtGCD — ΠΏΠΎΠΈΡΠΊ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΡΠΈΡΠ»Π° ΠΏΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΠ²ΠΊΠ»ΠΈΠ΄Π°.
9.3 EncodeDecode
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠ°Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ .
9.3.1 Encoder. cs
ΠΠ»Π°ΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ (ΠΏΠΎΡΡΠ΅Π΄Π½ΠΈΠΊ)
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ:
Encode — ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΊΠΎΠ΄ΠΈΡΡΠ΅Ρ ΡΡΡΠΎΠΊΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² (ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΡΡΠ΅Π΄Π½ΠΈΠΊ)
Decode — ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°ΡΠΊΠΎΠ΄ΠΈΡΡΠ΅Ρ ΡΡΡΠΎΠΊΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² (ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΡΡΠ΅Π΄Π½ΠΈΠΊ)
9.3.2 EncoderBase. cs
ΠΠ»Π°ΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ.
Π€ΡΠ½ΠΊΡΠΈΠΈ:
Process — ΡΡΠ½ΠΊΡΠΈΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ°ΡΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΡΠ΅Π΄ΡΠ΅Π³ΠΎ ΡΠ½Π°ΡΡΠΆΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². Π Π°Π±ΠΎΡΠ°Π΅Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠ»ΡΡΠ°.
ModularExponantiation — ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠΎΠ΄Π°-ΡΠΈΡΠ»Π° Π½Π° Π±Π°Π·Π΅ ΠΊΠ»ΡΡΠ°, ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° RSA
9.3.3 IEncoder. cs
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠ»Π°ΡΡΠ° Encode Decode.
ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ°
9.3.4 Key. cs
ΠΠ»Π°ΡΡ ΠΊΠ»ΡΡΠ°. Π‘ΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ Key, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΉ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈ Π΄Π°Π½Π½ΡΠ΅ E/D ΠΈ N.
10. ΠΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
Π‘Π½Π°ΡΠ°Π»Π° Π·Π°Π΄Π°ΡΡΡΡ ΡΠΈΡΠ»ΠΎΠ²ΡΠ΅ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΡ p ΠΈ q (Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°, Π²Π·ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅) — Π°ΠΊΡΠΈΠ²ΠΈΡΡΡΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ «Π¨ΠΈΡΡΠΎΠ²Π°ΡΡ» ΠΈ «ΠΠ΅ΡΠΈΡΡΠΎΠ²Π°ΡΡ».
Π ΠΈΡ. 4 ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Ρ ΡΠ³Π΅Π½Π΅ΡΠ΅Π½Π½ΡΠΌΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈ
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ, Π² ΠΏΠΎΠ»Π΅ «ΠΡΡ ΠΎΠ΄Π½ΡΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ» Π²Π²ΠΎΠ΄ΠΈΡΡΡ Π½Π΅ΠΊΠΈΠΉ ΡΠ΅ΠΊΡΡ, ΠΈΠ»ΠΈ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΊΠ½ΠΎΠΏΠΊΡ «ΠΡΠΊΡΡΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ…». ΠΠ°Π»Π΅Π΅ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΠ° ΡΠΈΡΡΠΎΠ²Π°ΡΡ. Π ΠΏΠΎΠ»ΡΡ «Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ» Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠ΄Ρ.
Π ΠΈΡ. 5 ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°
Π Π°ΡΡΠΈΡΡΠΎΠ²ΠΊΠ° ΠΊΠΎΠ΄ΠΎΠ² ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ «ΠΠ΅ΡΠΈΡΡΠΎΠ²Π°ΡΡ»
Π ΠΈΡ. 6 Π Π°ΡΡΠΈΡΡΠΎΠ²ΠΊΠ° ΠΊΠΎΠ΄Π°
11. ΠΡΠ²ΠΎΠ΄
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΏΡΠΎΡΡΠΎΡΠ΅, ΡΠΊΠΎΡΠΎΡΡΠΈ, Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΠΈ, Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎΠΌΡ ΡΠ²ΠΎΠ΄Ρ ΠΏΡΠ°Π²ΠΈΠ» Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π·Π°Π΄Π°Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ , ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π°ΡΠ»ΡΠΆΠΈΠ»Π° ΠΏΡΠΈΠ·Π½Π°Π½ΠΈΠ΅ ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΠΈΡΡ, Π° ΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΅ΠΉ ΠΏΠΎ Π½Π°ΡΠΈ Π΄Π½ΠΈ.
Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ²
1. ΠΠΈΠ»ΡΡ Π€Π΅ΡΠ³ΡΡΠΎΠ½, ΠΡΡΡ Π¨Π½Π°ΠΉΠ΅Ρ ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡ = Practical Cryptography: Designing and Implementing Secure Cryptographic Systems — Π.: «ΠΠΈΠ°Π»Π΅ΠΊΡΠΈΠΊΠ°», 2004 Π³.
2. Π¨Π½Π°ΠΉΠ΅Ρ Π. ΠΡΠΈΠΊΠ»Π°Π΄Π½Π°Ρ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡ. ΠΡΠΎΡΠΎΠΊΠΎΠ»Ρ, Π°Π»Π³ΠΎΡΠΈΡΠΌΡ, ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΡΠ΅ΠΊΡΡΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ΠΈ = Applied Cryptography. Protocols, Algorithms and Source Code in C — Π.: Π’ΡΠΈΡΠΌΡ, 2002 Π³.
3. Π‘ΡΠ°ΡΡΡ Π² ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ RSA (http://ru.wikipedia.org/wiki/RSA)
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π
MainForm.cs
using System;
using System.Collections.Generic;
using System. ComponentModel;
using System. Data;
using System. Drawing;
using System. Linq;
using System. Text;
using System.Windows.Forms;
using System. IO;
using System. Numerics;
using EncodeDecode;
using EvklidLib;
namespace RSA
{
public partial class MainForm: Form
{
public long P, Q, D, E, M, N = 0;// ΠΊΠΎΡΡ. ΡΠ°ΡΡΠΈΡΠ°Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΊΠ»ΡΡΠ΅ΠΉ
string Source, fn = «» ;
public long[] cipherText;
public MainForm ()
InitializeComponent ();
label1.Visible = false;
#region FileDialog Settings
openFileDialog1.DefaultExt = «txt» ;
openFileDialog1.Filter = «Π’Π΅ΠΊΡΡΠΎΠ²ΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ
/// ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡΠΊΡΡΡΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°
private void OpenDocument () // Π€ΡΠ½ΠΊΡΠΈΡ ΠΎΡΠΊΡΡΡΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°
{
openFileDialog1.FileName = string. Empty;
if (openFileDialog1.ShowDialog () == DialogResult. OK)
{
fn = openFileDialog1. FileName;
Encoding enc = Encoding. GetEncoding (1251);
try
{
// Π§ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π°
StreamReader sr = new StreamReader (fn, enc); //ΠΡΠΊΡΡΠ²Π°Π΅Ρ ΠΏΠΎΡΠΎΠΊ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π°
SourceTextBox.Text = sr. ReadToEnd (); // Π‘ΡΠΈΡΡΠ²Π°Π΅ΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ°
SourceTextBox.SelectionStart = SourceTextBox. TextLength;
sr.Close (); // ΠΠ°ΠΊΡΡΠ²Π°Π΅ΠΌ ΠΏΠΎΡΠΎΠΊ
}
catch (Exception exc) // ΠΡΠ»Π°Π²Π»ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ
{
MessageBox.Show («ΠΡΠΈΠ±ΠΊΠ° ΡΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π°. n»
+ exc. ToString (), «Error!» ,
MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
}
}
/// Π€ΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠ»Π°Π²ΠΈΡΠΈ «ΠΡΠΊΡΡΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ»
private void button3_Click (object sender, EventArgs e)
{
OpenDocument ();
TextBox1Length.Text = Convert. ToString (SourceTextBox.TextLength);
} // ΠΠ½ΠΎΠΏΠΊΠ° «ΠΡΠΊΡΡΡΡ ΠΠΎΠΊΡΠΌΠ΅Π½Ρ»
/// ΠΠΎΠΈΡΠΊ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅Π³ΠΎ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ Π΄Π»Ρ Π΄Π²ΡΡ ΡΠΈΡΠ΅Π»
/// ΠΠ΅ΡΠ²ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ
/// ΠΡΠΎΡΠΎΠ΅ ΡΠΈΡΠ»ΠΎ
/// ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΠΠ Π΄Π»Ρ Π΄Π²ΡΡ ΡΠΈΡΠ΅Π» (Π΅Π΄ΠΈΠ½ΠΈΡΠ° ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΠΠ)
private static long gcd (long x, long y)
{
long g;
g = y;//ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ g ΡΠ°Π²Π½ΠΎΠ΅ Ρ
while (x > 0) // ΠΠΎΠΊΠ° ΠΎΡΡΠ°ΡΠΎΠΊ Π½Π΅ ΡΡΠ°Π½Π΅Ρ ΡΠ°Π²Π΅Π½ Π½ΡΠ»Ρ (ΡΠΎ Π΅ΡΡΡ, Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ»ΠΎ Π½Π°ΡΠ΅Π»ΠΎ)
{
g = x; //Π² g Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ y
x = y % x;//ΠΡ ΡΠΈΡΠ»Π° Ρ «ΠΎΡΡΠ΅Π·Π°Π΅ΡΡΡ» Π»ΠΈΡΠ½ΡΡ ΡΠ°ΡΡΡ, ΠΎΡΡΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΡΠ°ΡΠΎΠΊ
y = g;//Π² Ρ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΡΠΎΡ ΠΎΡΡΠ°ΡΠΎΠΊ, Π΄Π»Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ
}
return g;//ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ»ΠΎ Π½Π°ΡΠ΅Π»ΠΎ, Π² g Ρ ΡΠ°Π½ΠΈΡΡΡ ΠΠΠ Π΄Π»Ρ Π΄Π²ΡΡ ΡΠΈΡΠ΅Π»
/// ΠΡΠ±ΠΎΡΠΊΠ° ΡΠΈΡΠ»Π° d (e), Π²Π·Π°ΠΈΠΌΠ½ΠΎ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΊ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ
/// ΠΠ°Π΄Π°Π½Π½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ, ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΏΡΠΎΡΡΡΠΌ d
/// Π§ΠΈΡΠ»ΠΎ d, Π²Π·Π°ΠΈΠΌΠ½ΠΎ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΊ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ
private static long MutuallySimple (long m)
{
Random rd = new Random (DateTime.Now.Millisecond);//Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°Π½Π΄ΠΎΠΌΠ° ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° ΡΠ΅ΠΉΡΠ°ΡΠ½Π΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ
int tmp_d;
long d = 0, check;
bool quit = false;
while (quit == false)//Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΡΠΈΡΠ»ΠΎ Π½Π΅ ΠΏΡΠΎΡΡΠΎΠ΅
{
tmp_d = rd. Next (2, 100);//Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ d, ΠΎΡ 2 Π΄ΠΎ 100
d = Convert. ToInt64(tmp_d);//ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΡΠ΅ΡΡΡ Π² Π½ΡΠΆΠ½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ
check = gcd (m, d);//ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ Π½Π° Π²Π·Π°ΠΈΠΌΠ½ΡΡ ΠΏΡΠΎΡΡΠΎΡΡ Ρ ΡΠΈΡΠ»ΠΎΠΌ m, ΠΏΡΡΠ΅ΠΌ ΠΏΠΎΠΈΡΠΊΠ° Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅Π³ΠΎ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ
if (check == 1) // ΠΡΠ»ΠΈ ΠΠΠ == 1 ΡΠΎ d — ΠΏΡΠΎΡΡΠΎΠ΅ ΡΠΈΡΠ»ΠΎ
{
quit = true;//ΠΏΠΎΠ΄Π½ΡΡΠΈΠ΅ «ΡΠ»Π°Π³Π°» ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠΈΡΠ»ΠΎ Π³ΠΎΡΠΎΠ²ΠΎ
}
}
return d;//ΡΠΈΡΠ»ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π² Π²ΡΠ·Π²Π°Π²ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ
}
/// Π€ΡΠ½ΠΊΡΠΈΡ, ΠΏΡΠΎΠ²Π΅ΡΡΡΡΠ°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ p ΠΈ q Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΎΠ±ΡΠΈΡ Π΄Π΅Π»ΠΈΡΠ΅Π»Π΅ΠΉ
/// ΠΠ΅ΡΠ²ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ
/// ΠΡΠΎΡΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ
/// ΠΡΠ°Π²Π΄Π° ΠΈΠ»ΠΈ Π»ΠΎΠΆΡ, ΠΊΠ°ΠΊ ΠΎΡΠ²Π΅Ρ Π½Π° Π²ΠΎΠΏΡΠΎΡ, Π΅ΡΡΡ Π»ΠΈ ΠΎΠ±ΡΠΈΠ΅ Π΄Π΅Π»ΠΈΡΠ΅Π»ΠΈ
public static bool Checkpq (long p, long q)
{
long t = p;//ΠΡΠ±ΠΎΡΠΊΠ° Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠ΅Π³ΠΎ ΡΠΈΡΠ»Π°
if (q < p)
t = q;
for (int i = 2; i < t-1; i++)
{
if (((p % i) == 0) && (q % i == 0))//Π΅ΡΠ»ΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ i ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠΈΠΌ Π΄Π΅Π»ΠΈΡΠ΅Π»Π΅ΠΌ
{
return true;//Π²ΡΡ ΠΎΠ΄
}
}
return false;//Π΅ΡΠ»ΠΈ ΠΎΠ±ΡΠΈΡ Π΄Π΅Π»ΠΈΡΠ΅Π»Π΅ΠΉ Π½Π΅ Π±ΡΠ»ΠΎ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ 1
}
/// Π€ΡΠ½ΠΊΡΠΈΡ, Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠ°Ρ ΠΏΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ. Π Π°ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΡ Π΄Π»Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
/// Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ
/// Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ
private void ApplyPQButton_Click (object sender, EventArgs e)
{
if (PTextBox.Text.Length == 0 && QTextBox.Text.Length == 0)// ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΎ, Π²Π²Π΅Π΄Π΅Π½Ρ Π»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
{
MessageBox.Show («ΠΠ²Π΅Π΄ΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ P ΠΈ Q!»);
return;
} else if (PTextBox.Text.Length == 0)//ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π²Π²Π΅Π΄Π΅Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π
{
MessageBox.Show («ΠΠ²Π΅Π΄ΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ P!»);
return;
}
else if (QTextBox.Text.Length == 0)//ΠΡΠΎΠ²Π΅ΡΠ° Π½Π° Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Q
{
MessageBox.Show («ΠΠ²Π΅Π΄ΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Q!»);
return;
}
P = Convert. ToUInt32(PTextBox.Text);//ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΈΡΠ»Π° Π
Q = Convert. ToUInt32(QTextBox.Text);//ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΈΡΠ»Π° Q
if (Checkpq (P, Q))//ΠΡΠΎΠ²Π΅ΡΠΊΠ°, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π»ΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΡΠΈΡΠ»Π° P ΠΈ Q
{
MessageBox.Show («ΠΠ½Π°ΡΠ΅Π½ΠΈΡ P ΠΈ Q Π½Π΅ ΡΠ΄Π²ΠΎΠ»Π΅ΡΠ²ΠΎΡΡΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌ ΠΌΠ΅ΡΠΎΠ΄Π°!»);
return;
}
N = P * Q;//ΠΠΎΠ΄ΡΡΠ΅Ρ ΠΊΠΎΡΡ. N
M = (P — 1) * (Q — 1);//ΠΏΠΎΠ΄ΡΡΠ΅Ρ ΠΊΠΎΡΡ. M
D = MutuallySimple (M);//ΠΠ΅ΡΠ²Π°Ρ Π²ΡΠ±ΠΎΡΠΊΠ° ΡΠΈΡΠ»Π° d (e), Π²Π·Π°ΠΈΠΌΠ½ΠΎ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΊ m
long tmp_E;
Evklid evk = new Evklid ();//ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΊΠ»Π°ΡΡ, Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΠ²ΠΊΠ»ΠΈΠ΄Π°
tmp_E = evk. ExtGCD (D, M);//Π°Π»ΠΎΠ³ΠΈΡΠΌΠΎΠΌ Π΅Π²ΠΊΠ»ΠΈΠ΄Π° Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ ΡΠΈΡΠ»ΠΎ Π΄Π»Ρ D ΠΈ Π
if (tmp_E <= 0)//ΠΡΠ»ΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΌΠ΅Π½ΡΡΠ΅ Π½ΡΠ»Ρ
{
while (tmp_E < 0)//ΠΈ Π΄ΠΎ ΡΠ΅Ρ , ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΎ ΠΌΠ΅Π½ΡΡΠ΅ Π½ΡΠ»Ρ
{
D = MutuallySimple (M);// ΠΈΡΠ΅ΡΡΡ Π½ΠΎΠ²ΠΎΠ΅ D, Π° Π΄Π»Ρ Π½Π΅Π³ΠΎ, ΠΈΡΠ΅ΡΡΡ Π½ΠΎΠ²ΠΎΠ΅ tmp_E
tmp_E = evk. ExtGCD (D, M);
}
}
E = Convert. ToInt64(tmp_E);//ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΠ΅ΡΡ.
p_label.Text = Convert. ToString (P);//Π²ΡΠ²ΠΎΠ΄ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π½Π° ΠΏΡΠΈΠ±ΠΎΡΠ½ΡΡ Π΄ΠΎΡΠΊΡ. Π―ΡΡ
q_label.Text = Convert. ToString (Q);//Π²ΡΠ²ΠΎΠ΄ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π½Π° ΠΏΡΠΈΠ±ΠΎΡΠ½ΡΡ Π΄ΠΎΡΠΊΡ.
e_label.Text = Convert. ToString (E);//Π²ΡΠ²ΠΎΠ΄ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π½Π° ΠΏΡΠΈΠ±ΠΎΡΠ½ΡΡ Π΄ΠΎΡΠΊΡ.
d_label.Text = Convert. ToString (D);//Π²ΡΠ²ΠΎΠ΄ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π½Π° ΠΏΡΠΈΠ±ΠΎΡΠ½ΡΡ Π΄ΠΎΡΠΊΡ.
n_label.Text = Convert. ToString (N);//Π²ΡΠ²ΠΎΠ΄ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π½Π° ΠΏΡΠΈΠ±ΠΎΡΠ½ΡΡ Π΄ΠΎΡΠΊΡ.
m_label.Text = Convert. ToString (M);//Π²ΡΠ²ΠΎΠ΄ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π½Π° ΠΏΡΠΈΠ±ΠΎΡΠ½ΡΡ Π΄ΠΎΡΠΊΡ.
CryptButton.Enabled = true;//Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΡΠΈΡΡΠ°ΡΠΈΠΈ
DecryptButton.Enabled = true;//Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΊΠ½ΠΎΠΏΠΎΠΊ Π΄Π΅ΡΠΈΡΡΠ°ΡΠΈΠΈ
}
/// ΠΠ±Π½ΡΠ»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΡΠΎΡΠΌΡ
/// Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ
/// Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ
private void ClearButton_Click (object sender, EventArgs e)
{
p_label.Text = «0» ;
q_label.Text = «0» ;
n_label.Text = «0» ;
m_label.Text = «0» ;
d_label.Text = «0» ;
e_label.Text = «0» ;
CryptButton.Enabled = false;//Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΡΠΈΡΡΠ°ΡΠΈΠΈ
DecryptButton.Enabled = false;//Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΊΠ½ΠΎΠΏΠΎΠΊ Π΄Π΅ΡΠΈΡΡΠ°ΡΠΈΠΈ
}
/// ΠΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ «Π¨ΠΈΡΡΠΎΠ²Π°ΡΡ»
/// Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ
/// Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ
private void CryptButton_Click (object sender, EventArgs e)
{
if (SourceTextBox.Text.Length == 0)//ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° Π΄Π»Ρ ΡΠΈΡΡΠ°ΡΠΈΠΈ
{
MessageBox.Show («ΠΠ΅Ρ ΡΠ΅ΠΊΡΡΠ° Π΄Π»Ρ ΡΠΈΡΡΠ°ΡΠΈΠΈ»);
return;
}
ResultTextBox.ResetText ();//ΠΎΠ±Π½ΡΠ»Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° Π² ΠΏΠΎΠ»Π΅ Π²ΡΠ²ΠΎΠ΄Π°
textBox1.ResetText ();//ΠΎΠ±Π½ΡΠ»Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° Π² ΠΏΠΎΠ»Π΅ Π²ΡΠ²ΠΎΠ΄Π°2
Key publicKey = new Key (E, N);//ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° ΠΊΠ»Π°ΡΡΠ° Key, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° ΠΏΠΎΠ΄ΡΡΠΈΡΠ°Π½Π½ΡΡ E ΠΈ N
EncodeDecode.Encoder enc = new EncodeDecode. Encoder ();//Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΡΠΈΠΊΠ°
Source = SourceTextBox. Text;
cipherText = enc. Encode (Source, publicKey);//ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ΅ΠΊΡΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»ΡΡΠ°, ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π° Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²
for (int i = 0; i < cipherText. Length; i++)
{
textBox1.Text += cipherText[i]; //Π²ΡΠ²ΠΎΠ΄ ΠΊΠΎΠ΄ΠΎΠ² Π² ΡΠ΅ΠΊΡΡ Π±ΠΎΠΊΡ ΡΠ»ΠΈΡΠ½ΠΎ
ResultTextBox.Text += cipherText[i]; //ΠΈ Ρ ΠΏΡΠΎΠ±Π΅Π»Π°ΠΌΠΈ, Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠ΅ΠΉ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡΠΈ
ResultTextBox.Text += ««;
}
TextBox2Length.Text = Convert. ToString (ResultTextBox.TextLength);//Π²ΡΠ²ΠΎΠ΄ Π΄Π»ΠΈΠ½Ρ ΠΏΠΎΠ»ΡΡΠΈΠ²ΡΠ΅Π³ΠΎΡΡ ΠΊΠΎΠ΄Π°
}
/// Π€ΡΠ½ΠΊΡΠΈΡ, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠ°Ρ Π΄Π΅ΡΠΈΡΡΠ°ΡΠΈΡ ΠΊΠΎΠ΄Π° ΠΏΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ «ΠΠ΅ΡΠΈΡΡΠΎΠ²Π°ΡΡ»
/// Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ
/// Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ
private void DecryptButton_Click (object sender, EventArgs e)
{
if (ResultTextBox.Text.Length == 0)//ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΠΎΠ»Ρ Π΄Π΅ΡΠΈΡΡΠ°ΡΠΈΠΈ
{
MessageBox.Show («ΠΠ΅Ρ ΡΠ΅ΠΊΡΡΠ° Π΄Π»Ρ Π΄Π΅ΡΠΈΡΡΠ°ΡΠΈΠΈ»);
return;
}
ResultTextBox.ResetText ();//ΡΠ±ΡΠΎΡ ΠΏΠΎΠ»Ρ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°
Key privateKey = new Key (D, N);//ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ D ΠΈ N
EncodeDecode.Encoder enc = new EncodeDecode. Encoder ();//ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° ΠΏΠΎ ΡΠΎΠΎΡΠ². ΠΊΠ»Π°ΡΡΡ
ResultTextBox.Text = enc. Decode (cipherText, privateKey);//Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π²ΡΠ²ΠΎΠ΄ Π² ΡΠ΅ΠΊΡΡ Π±ΠΎΠΊΡ
TextBox2Length.Text = Convert. ToString (ResultTextBox.TextLength);
if (SourceTextBox.Text == ResultTextBox. Text)//ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΎ, ΡΡΠΎ ΡΡΠ°ΡΡΠΎΠ²ΡΠΉ ΡΠ΅ΡΡ ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅
{
label1.Visible = true;
label1.Text = «ΠΠ΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΏΠ΅ΡΠ½ΠΎ!» ;
label1.ForeColor = Color. Green;
}
else//Π΅ΡΠ»ΠΈ Π½Π΅Ρ
{
label1.Visible = true;
label1.Text = «ΠΠ΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΡΠ΄Π°ΡΠ½ΠΎ!» ;
label1.ForeColor = Color. Red;
}
}
private void SourceTextBox_TextChanged (object sender, EventArgs e)
{
TextBox1Length.Text = Convert. ToString (SourceTextBox.TextLength);
}
}
}
Evklid.cs
using System;
using System.Collections.Generic;
using System. Linq;
using System. Text;
namespace EvklidLib
{
/// ΠΠ»Π°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠΌ ΠΠ²ΠΊΠ»ΠΈΠ΄Π°
public class Evklid
{
/// ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΠ²ΠΊΠ»ΠΈΠ΄Π°
/// ΠΠ΅ΡΠ²ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ
/// ΠΡΠΎΡΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ
/// ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΈΡΠ»ΠΎ, ΡΠ΄Π²ΠΎΠ»Π΅ΡΠ²ΠΎΡΡΡΡΠ΅Π΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ Π΄Π»Ρ Π·Π°Π΄Π°Π½Π½ΡΡ x ΠΈ y
public long ExtGCD (long x, long y)
{
long a, b, q, r, u1, u2;
long t;
a = Convert. ToInt64(x);//ΠΊΠΎΠ½Π²Π΅ΡΡΠ°ΡΠΈΡ ΡΠΈΡΠ»Π° Π°
b = Convert. ToInt64(y);// ΠΈ ΡΠΈΡΠ»Π° b
u1 = 1;
u2 = 0;
while (b ≠ 0)//ΡΠΈΠΊΠ», ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π² ΡΠΈΡΠ»ΠΎ b Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π΅Ρ 0
{
q = a / b;
r = a % b;
a = b;
b = r;
t = u2;
u2 = u1 — q * u2;
u1 = t;
}
return u1;//Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΈΡΠ»ΠΎ, Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΠ²ΠΊΠ»ΠΈΠ΄Π°
}
}
}
Encoder.cs
using System;
using System.Collections.Generic;
using System. Linq;
using System. Text;
namespace EncodeDecode
{
/// ΠΠ»Π°ΡΡ ΠΊΠΎΠ΄ΠΈΡΡΠ΅Ρ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΡΠ΅Ρ ΡΡΡΠΎΠΊΡ
public class Encoder: EncoderBase, IEncoder
{
/// ΠΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² (Π²Π½Π΅ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ)
/// Π‘ΡΡΠΎΠΊΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π΄Π»Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ
/// ΠΠ»ΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ
/// ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΠ΄ΠΎΠ² ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²
public virtual long[] Encode (string sMessage, Key oKey)
{
long[] numericMessage = new long[sMessage.Length]; //ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΊΠΎΠ΄ΠΎΠ²
int length = sMessage. Length;
for (int i = 0; i < length; i++)
{
numericMessage[i] = (long)sMessage[i]; //ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°, Π·Π°ΠΏΠΈΡΡ Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°
}
return Process (numericMessage, oKey);//ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΡΡΠΎΠΊΠΈ ΠΊΠΎΠ΄ΠΎΠ²
}
/// ΠΠ΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²
/// ΠΌΠ°ΡΡΠΈΠ² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ
/// ΠΠ»ΡΡ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ
/// ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
public virtual string Decode (long[] numericMessage, Key oKey)
{
long[] processedMessage = Process (numericMessage, oKey);//ΠΌΠ°ΡΡΠΈΠ² ΠΊΠΎΠ΄ΠΎΠ² ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π΄Π»Ρ ΡΠ°ΡΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ
StringBuilder message = new StringBuilder ();//ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΡΡΠΈΠ½Π³
int length = processedMessage. Length;
for (int i = 0; i < length; i++)
{
message.Append ((char)processedMessage[i]);//ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΊΠΎΠ΄Π° ΡΠΈΠΌΠ²ΠΎΠ»Π° Π² ΡΠΈΠΌΠ²ΠΎΠ»
}
return message. ToString ();//Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΡ ΡΡΡΠΈΠ½Π³ ΡΠ΅ΠΊΡΡΠ°
}
/// Π€ΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Ρ ΡΡΠΊΠΎΠ΄Π°
/// ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Ρ ΡΡ ΠΊΠΎΠ΄
public override int GetHashCode ()
{
return base. GetHashCode ();
}
/// ΠΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π² ΡΡΡΠΈΠ½Π³
/// ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ string
public override string ToString ()
{
return «Encoder» ;
}
}
}
EncoderBase.cs
using System;
using System.Collections.Generic;
using System. Linq;
using System. Text;
namespace EncodeDecode
{
/// ΠΠ°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ
public class EncoderBase
{
/// ΠΠ½ΡΡΡΠ΅Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ/ΡΠ°ΡΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ (Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠ»ΡΡΠ°) ΡΠ΅ΠΊΡΡΠ°
/// ΠΠ°ΡΡΠΈΠ² ΠΊΠΎΠ΄ΠΎΠ² ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΡΡΡΠΎΠΊΠΈ
/// ΠΠ»ΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ
protected long[] Process (long[] src_text, Key oKey)
{
long[] ciphertext = new long[src_text.Length]; //ΠΌΠ°ΡΡΠΈΠ² ΠΏΠ΅ΡΠ΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²
int length = src_text.Length;
for (int i = 0; i < length; i++)
{
ciphertext[i] = ModularExponantiation (src_text[i], oKey);//ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΊΠΎΠ΄Π° Π½Π° Π±Π°Π·Π΅ ΠΊΠ»ΡΡΠ°
}
return ciphertext;//Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΊΠΎΠ΄ΠΎΠ²
}
/// Π€ΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠΎΠ΄Π°-ΡΠΈΡΠ»Π° Π½Π° Π±Π°Π·Π΅ ΠΊΠ»ΡΡΠ°
/// ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠΎΠ΄
/// ΠΠ»ΡΡ
/// ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΠΈΠΌΠ²ΠΎΠ»Π°
protected long ModularExponantiation (long num, Key oKey)
{
long C = 1;
long E = 0;
while (E++ < oKey. index)
{
C = (C * num) % oKey. N;//ΠΎΡΡΠ°ΡΠΎΠΊ ΠΎΡ Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π° N ΠΊΠ»ΡΡΠ° — ΠΎΡΠ²Π΅Ρ Π΄Π»Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ RSA
}
return C;
}
}
}
IEncoder.cs
using System;
using System.Collections.Generic;
using System. Linq;
using System. Text;
namespace EncodeDecode
{
/// ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠ»Π°ΡΡΠ° Encoder (ΡΠ°Π±Π»ΠΎΠ½)
/// Π’ΠΈΠΏ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° (Π΄Π»Ρ ΡΠ°Π±Π»ΠΎΠ½Π°)
public interface IEncoder where T: struct
{
T[] Encode (string sMessage, Key oKey);
string Decode (T[] numericMessage, Key oKey);
}
}
Key.cs
using System;
using System.Collections.Generic;
using System. Linq;
using System. Text;
namespace EncodeDecode
{
/// Π‘ΡΡΡΠΊΡΡΡΠ° Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΄Π΅Π½ΠΈΡ ΠΊΠ»ΡΡΠ° ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ
public struct Key
{
public long index;
public long N;
/// ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠ»ΡΡΠ° ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ
/// ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ E (Π΄Π»Ρ ΡΠΈΡΡΠ°ΡΠΈΠΈ) ΠΈΠ»ΠΈ D (Π΄Π»Ρ Π΄Π΅ΡΠΈΡΡΠ°ΡΠΈΠΈ)
/// ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ N
public Key (long lIndex, long lN)
{
index = lIndex;
N = lN;
}
}
}
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π
1. Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎ ΠΠΠ‘Π’ 19.201−78
1.1. ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
1.1.1. ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ — «ΠΠ»Π³ΠΎΡΠΈΡΠΌ RSA».
1.1.2. ΠΡΠ°ΡΠΊΠ°Ρ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΠ½ΠΊΠΎΠ΄Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ RSA ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΄Π»Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ°ΡΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»ΡΡΠ° RSA.
1.2.1. ΠΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΡΡΡ ΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π° ΠΊΡΡΡΠΎΠ²Π°Ρ ΡΠ°Π±ΠΎΡΠ°. ΠΡΡΡΠΎΠ²Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π° Ρ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Π΅ΠΌ ΠΠΠ’Π£ ΠΠΠ ΠΠ ΠΠ΅ΡΡΠ΅Π½ΠΊΠΎ Π. Π, ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΠΠ°ΠΊΠ°Π·ΡΠΈΠΊΠΎΠΌ, ΠΈ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ ΡΡΡΠ΄Π΅Π½ΡΠΎΠΌ ΠΠΠ’Π£ ΠΠΠ ΠΠ, ΠΠΈΠ½Π°Π΅Π²ΡΠΌ Π‘. Π., ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π΅ΠΌ.
1.2.2. ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΡΠ»ΠΎΠ²Π½ΠΎΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ — «ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² ΡΠΈΡΡΠ΅ΠΌΡ RSA ΠΈ Π΅Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅».
1.2. ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
1.3.1. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ RSA, Π² ΡΡΠΎΡΠΎΠ½Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ°ΡΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
1.3.2. ΠΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΊΡΠΏΠ»ΡΠ°ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΏΠΎ ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ ΠΠ°ΠΊΠ°Π·ΡΠΈΠΊΠ°.
ΠΠΎΠ½Π΅ΡΠ½ΡΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²Π»ΡΡΡΡΡ ΠΏΠΎ ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ ΠΠ°ΠΊΠ°Π·ΡΠΈΠΊΠ°.
1.3. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌΡ ΠΈΠ·Π΄Π΅Π»ΠΈΡ
1.4.1. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ°ΠΌ
1.4.1.1. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΠΎΡΡΠ°Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ Π½ΠΈΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ:
Π°) ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ»ΡΡΠ° RSA
Π±) ΡΡΠ½ΠΊΡΠΈΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° Π²) ΡΡΠ½ΠΊΡΠΈΡ ΡΠ°ΡΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π³) ΡΡΠ½ΠΊΡΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ΅ΠΊΡΡΠ° ΠΈΠ· ΡΠ°ΠΉΠ»Π° Π² ΡΠΎΡΠΌΡ
1.4.1.2. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΡΠ΅ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π»ΠΎΠ³ΠΈΡΠ½Ρ ΠΈ Π½Π΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½Ρ Π½Π° ΠΏΠΎΠΏΡΡΠΊΡ ΠΎΡΠΎΠ·Π½Π°Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡΡΡ Π»ΡΠ±ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΈ ΡΠΈΡΡΡ, ΠΈΠΌΠ΅ΡΡΠΈΠ΅ ΠΊΠΎΠ΄ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ UTF.
1.4.1.3. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π²ΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²ΡΠ²ΠΎΠ΄ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π½Π° ΠΌΠΎΠ½ΠΈΡΠΎΡ.
1.4.1.4. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ°ΠΌ ΠΠ°ΠΆΠ΄Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΡΠΈ ΠΌΠΈΠ½ΡΡ.
1.4.2. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΠΈ
1.4.2.1. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ (ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΠ³ΠΎ) ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΠ°Π΄Π΅ΠΆΠ½ΠΎΠ΅ (ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΠ΅) ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΠ°ΠΊΠ°Π·ΡΠΈΠΊΠΎΠΌ ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΎΠ½Π½ΠΎ-ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠ΅ΡΠΎΠΏΡΠΈΡΡΠΈΠΉ, ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π½ΠΈΠΆΠ΅:
Π°) ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π±Π΅ΡΠΏΠ΅ΡΠ΅Π±ΠΎΠΉΠ½ΠΎΠ³ΠΎ ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ΅Π΄ΡΡΠ²;
Π±) ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ;
Π²) ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΉ ΠΠΈΠ½ΠΈΡΡΠ΅ΡΡΡΠ²Π° ΡΡΡΠ΄Π° ΠΈ ΡΠΎΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π²ΠΈΡΠΈΡ Π Π€, ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½ΡΡ Π² ΠΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΎΡ 23 ΠΈΡΠ»Ρ 1998 Π³. «ΠΠ± ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠΈ ΠΌΠ΅ΠΆΠΎΡΡΠ°ΡΠ»Π΅Π²ΡΡ ΡΠΈΠΏΠΎΠ²ΡΡ Π½ΠΎΡΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΌΡ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΠΠΠ ΠΈ ΠΎΡΠ³ΡΠ΅Ρ Π½ΠΈΠΊΠΈ ΠΈ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ²»;
Π³) ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΠΠ‘Π’ 51 188–98. ΠΠ°ΡΠΈΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. ΠΡΠΏΡΡΠ°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ Π²ΠΈΡΡΡΠΎΠ².
1.4.2.2. ΠΡΠ΅ΠΌΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΊΠ°Π·Π° ΠΡΠ΅ΠΌΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΊΠ°Π·Π°, Π²ΡΠ·Π²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ±ΠΎΠ΅ΠΌ ΡΠ»Π΅ΠΊΡΡΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ΅Π΄ΡΡΠ² (ΠΈΠ½ΡΠΌΠΈ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΡΠ°ΠΊΡΠΎΡΠ°ΠΌΠΈ), Π½Π΅ ΡΠ°ΡΠ°Π»ΡΠ½ΡΠΌ ΡΠ±ΠΎΠ΅ΠΌ (Π½Π΅ ΠΊΡΠ°Ρ ΠΎΠΌ) ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ ΡΡΠΎΠ»ΡΠΊΠΈΡ ΡΠΎ ΠΌΠΈΠ½ΡΡ ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ ΡΠΎΠ±Π»ΡΠ΄Π΅Π½ΠΈΡ ΡΡΠ»ΠΎΠ²ΠΈΠΉ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ².
ΠΡΠ΅ΠΌΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΊΠ°Π·Π°, Π²ΡΠ·Π²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π΅ΠΈΡΠΏΡΠ°Π²Π½ΠΎΡΡΡΡ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ΅Π΄ΡΡΠ², ΡΠ°ΡΠ°Π»ΡΠ½ΡΠΌ ΡΠ±ΠΎΠ΅ΠΌ (ΠΊΡΠ°Ρ ΠΎΠΌ) ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ³ΠΎ Π½Π° ΡΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΠΈΡΠΏΡΠ°Π²Π½ΠΎΡΡΠ΅ΠΉ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ΅Π΄ΡΡΠ² ΠΈ ΠΏΠ΅ΡΠ΅ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ².
1.4.2.3. ΠΡΠΊΠ°Π·Ρ ΠΈΠ·-Π·Π° Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΠΡΠΊΠ°Π·Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ Π²ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° (ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ) ΠΏΡΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΈ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ. ΠΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΎΡΠΊΠ°Π·ΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²ΡΡΠ΅ ΠΏΡΠΈΡΠΈΠ½Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±Π΅Π· ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΅ΠΌΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ.
1.4.3. Π£ΡΠ»ΠΎΠ²ΠΈΡ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ
1.4.3.1. ΠΠ»ΠΈΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ ΠΠΎ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΠ°ΠΊΠ°Π·ΡΠΈΠΊΠΎΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠ½ΠΊΡΠ° Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ.
1.4.3.2. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ Π²ΠΈΠ΄Π°ΠΌ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ
1.4.3.3. ΠΠΎ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΠ°ΠΊΠ°Π·ΡΠΈΠΊΠΎΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠ½ΠΊΡΠ° Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ.
1.4.3.4. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΠΈΡΠ»Π΅Π½Π½ΠΎΡΡΠΈ ΠΈ ΠΊΠ²Π°Π»ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»Π° ΠΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»Π°, ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ³ΠΎ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 2 ΡΡΠ°ΡΠ½ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡ — ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ — ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ.
Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ Π²ΡΡΡΠ΅Π΅ ΠΏΡΠΎΡΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ-ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. Π ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ Π·Π°Π΄Π°Ρ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠΌ, Π΄ΠΎΠ»ΠΆΠ½Ρ Π²Ρ ΠΎΠ΄ΠΈΡΡ:
Π°) Π·Π°Π΄Π°ΡΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ΅Π΄ΡΡΠ²;
Π±) Π·Π°Π΄Π°ΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ (ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΈ) ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² — ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ;
Π²) Π·Π°Π΄Π°ΡΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ (ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΈ) ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠΎΠ½Π΅ΡΠ½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ) Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π½Π°Π²ΡΠΊΠ°ΠΌΠΈ ΡΠ°Π±ΠΎΡΡ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠ΅ΡΡΠΎΠ½Π°Π» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π°ΡΡΠ΅ΡΡΠΎΠ²Π°Π½ Π½Π° II ΠΊΠ²Π°Π»ΠΈΡΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΡΡ Π³ΡΡΠΏΠΏΡ ΠΏΠΎ ΡΠ»Π΅ΠΊΡΡΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ (Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΎΠ½ΡΠΎΡΡΠΊΠΈΠΌ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ).
1.4.4. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΠΎΡΡΠ°Π²Ρ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ΅Π΄ΡΡΠ² Π ΡΠΎΡΡΠ°Π² ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ΅Π΄ΡΡΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ ΠΎΠ΄ΠΈΡΡ IBM-ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ (ΠΠΠΠ), Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉ Π² ΡΠ΅Π±Ρ:
Π°) ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Pentium-4 Ρ ΡΠ°ΠΊΡΠΎΠ²ΠΎΠΉ ΡΠ°ΡΡΠΎΡΠΎΠΉ, ΠΠΡ — 2, Π½Π΅ ΠΌΠ΅Π½Π΅Π΅;
Π±) ΠΆΠ΅ΡΡΠΊΠΈΠΉ Π΄ΠΈΡΠΊ ΠΎΠ±ΡΠ΅ΠΌΠΎΠΌ, ΠΠ± — 100, Π½Π΅ ΠΌΠ΅Π½Π΅Π΅;
Π²) ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΎΠ±ΡΠ΅ΠΌΠΎΠΌ, ΠΠ± — 1, Π½Π΅ ΠΌΠ΅Π½Π΅Π΅;
Π³) ΡΡΠ΅Π΄ΡΡΠ²Π° Π²Π²ΠΎΠ΄Π° ΠΈ Π²ΡΠ²ΠΎΠ΄Π°.
1.4.5. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ
1.4.5.1. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠΌ ΡΡΡΡΠΊΡΡΡΠ°ΠΌ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΠΎ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΠ°ΠΊΠ°Π·ΡΠΈΠΊΠΎΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠ½ΠΊΡΠ° Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ.
1.4.5.2. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄Π°ΠΌ ΠΈ ΡΠ·ΡΠΊΠ°ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ ΠΊΠΎΠ΄Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π½Π° ΡΠ·ΡΠΊΠ΅ C#.
1.4.5.3. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ, Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΎΠ½Π½ΠΎΠΉ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
1.4.5.4. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ Π·Π°ΡΠΈΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΠΎ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΠ°ΠΊΠ°Π·ΡΠΈΠΊΠΎΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠ½ΠΊΡΠ° Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ.
1.4.6. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²ΠΊΠ΅ ΠΈ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ΅ ΠΠΎ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΠ°ΠΊΠ°Π·ΡΠΈΠΊΠΎΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠ½ΠΊΡΠ° Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ.
1.4.7. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΠΎ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΠ°ΠΊΠ°Π·ΡΠΈΠΊΠΎΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠ½ΠΊΡΠ° Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ.
1.4.8. Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΠΎ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΠ°ΠΊΠ°Π·ΡΠΈΠΊΠΎΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠ½ΠΊΡΠ° Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ.
1.5. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
1.5.1. ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠΎΡΡΠ°Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π‘ΠΎΡΡΠ°Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ:
Π°) ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅;
Π±) ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠΈ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ;
Π²) ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°;
1.6. Π’Π΅Ρ Π½ΠΈΠΊΠΎ-ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΠΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²ΠΎΡΠ½Π°Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ Π½Π΅ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ.
1.7. Π‘ΡΠ°Π΄ΠΈΠΈ ΠΈ ΡΡΠ°ΠΏΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π‘ΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΠ΅, ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ 5 ΡΠ΅ΠΌ. 4 Π½Π΅Π΄.
Π£ΡΠΎΡΠ½Π΅Π½ΠΈΠ΅ ΠΈ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΌ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΡΠΎΡΡΠ°Π²Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ 5 ΡΠ΅ΠΌ. 5 Π½Π΅Π΄.
ΠΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΊΠΈ 5 ΡΠ΅ΠΌ. 15 Π½Π΅Π΄.
ΠΠΏΡΡΠ½Π°Ρ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·Π΄Π΅Π»ΠΈΡ 5 ΡΠ΅ΠΌ. 15 Π½Π΅Π΄.
ΠΠ°ΡΠΈΡΠ° ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ 5 ΡΠ΅ΠΌ. 15 Π½Π΅Π΄.
1.8. ΠΠΎΡΡΠ΄ΠΎΠΊ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΈ ΠΏΡΠΈΠ΅ΠΌΠΊΠΈ
1.8.1. ΠΠΈΠ΄Ρ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ ΠΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΈΡΠΏΡΡΠ°Π½ΠΈΡ ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ Π² Π Π°ΡΡΠ΅ΡΠ½ΠΎ-ΠΠΎΡΡΠ½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΠ°ΠΏΠΈΡΠΊΠ΅.
1.8.2. ΠΠ±ΡΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΏΡΠΈΠ΅ΠΌΠΊΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΠ° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ Π Π°ΡΡΠ΅ΡΠ½ΠΎ-ΠΠΎΡΡΠ½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΠ°ΠΏΠΈΡΠΊΠΈ, ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ, ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ ΠΠ°ΠΊΠ°Π·ΡΠΈΠΊΠΎΠΌ, ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΠΊΡ ΠΏΡΠΈΠ΅ΠΌΠΊΠΈ-ΡΠ΄Π°ΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π
1.1. ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠ½ΠΊΡΠ° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΠ°Π΄Π°Π½ΠΈΠΈ.
1.2. Π£ΡΠ»ΠΎΠ²ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠ½ΠΊΡΠ° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΠ°Π΄Π°Π½ΠΈΠΈ.
1.3. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»Ρ (ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ) ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠ½ΠΊΡΠ° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΠ°Π΄Π°Π½ΠΈΠΈ.
1.4. ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠ½ΠΊΡΠ° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΠ°Π΄Π°Π½ΠΈΠΈ.
1.5. Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ
Π°) ΠΏΡΠΈ Π²Π²ΠΎΠ΄Π΅ ΠΎΡΠΈΠ±ΠΎΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ p ΠΈ q ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠ΄Π°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ «ΠΠ΅Π²Π΅ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ p ΠΈ q»
Π±) ΠΏΡΠΈ ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΎΡΠΊΡΡΡΠΈΡ ΡΠ°ΠΉΠ»Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠ΄Π°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ «ΠΡΠΈΠ±ΠΊΠ° ΠΎΡΠΊΡΡΡΠΈΡ ΡΠ°ΠΉΠ»Π°»
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π
1. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠΈ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ ΠΏΠΎ ΠΠΠ‘Π’ 19.301−79
1.1.1. ΠΠ±ΡΠ΅ΠΊΡ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ
1.1.2. ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ — «ΠΠ»Π³ΠΎΡΠΈΡΠΌ RSA».
1.1.3. ΠΠ±Π»Π°ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° ΠΊ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΏΡΠΎΡΠΈΠ»ΡΠ½ΡΡ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ ΠΠ°ΠΊΠ°Π·ΡΠΈΠΊΠ°.
1.1.4. ΠΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ — «ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² ΡΠΈΡΡΠ΅ΠΌΡ RSA ΠΈ Π΅Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅».
1.2. Π¦Π΅Π»Ρ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ Π¦Π΅Π»Ρ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ — ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·Π΄Π΅Π»ΠΈΡ) ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ ΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΠΈΠ½ΡΠΌ Π²ΠΈΠ΄Π°ΠΌ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ, ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅ Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅.
1.3. ΠΠ±ΡΠΈΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
1.3.1. ΠΡΠ½ΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ ΠΡΠΏΡΡΠ°Π½ΠΈΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΡΡΡΡ ΠΏΠΎ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ΅Π½Π½ΠΎΡΡΠΈ Ρ ΠΠ°ΠΊΠ°Π·ΡΠΈΠΊΠΎΠΌ.
1.3.2. ΠΠ΅ΡΡΠΎ ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ ΠΡΠΈΠ΅ΠΌΠΎ-ΡΠ΄Π°ΡΠΎΡΠ½ΡΠ΅ ΠΈΡΠΏΡΡΠ°Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡΡΡ Π΄ΠΎ 21.12.11.
ΠΡΠΈΠ΅ΠΌΠΎ-ΡΠ΄Π°ΡΠΎΡΠ½ΡΠ΅ ΠΈΡΠΏΡΡΠ°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡΡΡ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠΉ ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π΅ΠΌ ΠΈ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΠ°ΠΊΠ°Π·ΡΠΈΠΊΠΎΠΌ ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ.
1.3.3. ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ, ΡΡΠ°ΡΡΠ²ΡΡΡΠΈΠ΅ Π² ΠΈΡΠΏΡΡΠ°Π½ΠΈΡΡ ΠΡΠΏΡΡΠ°Π½ΠΈΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΡΡΡΡ ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π΅ΠΌ ΠΈ ΠΠ°ΠΊΠ°Π·ΡΠΈΠΊΠΎΠΌ.
1.3.4. ΠΠ΅ΡΠ΅ΡΠ΅Π½Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ², ΠΏΡΠ΅Π΄ΡΡΠ²Π»ΡΠ΅ΠΌΡΡ Π½Π° ΠΈΡΠΏΡΡΠ°Π½ΠΈΡ Π‘ΠΎΡΡΠ°Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Π»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ:
Π°) ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅;
Π±) ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠΈ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ;
Π²) ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°;
1.4. ΠΠ±ΡΠ΅ΠΌ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ
1.4.1. ΠΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΡΡΠ°ΠΏΠΎΠ² ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ ΠΡΠΏΡΡΠ°Π½ΠΈΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΡΡΡΡ Π² Π΄Π²Π° ΡΡΠ°ΠΏΠ°:
1. ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΠ΅Π»ΡΠ½ΡΠΉ;
2. ΠΈΡΠΏΡΡΠ°Π½ΠΈΡ.
1.4.1.1. ΠΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ, ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠΌΡΡ Π½Π° 1 ΡΡΠ°ΠΏΠ΅ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ ΠΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ, ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠΌΡΡ Π½Π° 1 ΡΡΠ°ΠΏΠ΅ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ:
Π°) ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ;
Π±) ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΠΎΡΡΠΈ ΡΠΎΡΡΠ°Π²Π° ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ².
ΠΠ΅ΡΠΎΠ΄ΠΈΠΊΠΈ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ, Π²Ρ ΠΎΠ΄ΡΡΠΈΡ Π² ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΠΏΠΎ 1 ΡΡΠ°ΠΏΡ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ, ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Ρ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅ ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π.
1.4.1.2. ΠΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ, ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠΌΡΡ Π½Π° 2 ΡΡΠ°ΠΏΠ΅ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ ΠΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ, ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠΌΡΡ Π½Π° 2 ΡΡΠ°ΠΏΠ΅ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ:
Π°) ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ;
Π±) ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ΅ΡΠΎΠ΄ΠΈΠΊΠΈ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ, Π²Ρ ΠΎΠ΄ΡΡΠΈΡ Π² ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΠΏΠΎ 2 ΡΡΠ°ΠΏΡ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ, ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Ρ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅ ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π.
1.4.2. ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΈ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ, ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°ΡΠΈΠ΅ ΠΎΡΠ΅Π½ΠΊΠ΅
1.4.2.1. ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ, ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°ΡΠΈΠ΅ ΠΎΡΠ΅Π½ΠΊΠ΅ Π Ρ ΠΎΠ΄Π΅ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΏΡΠΈΠ΅ΠΌΠΎ-ΡΠ΄Π°ΡΠΎΡΠ½ΡΡ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ ΠΎΡΠ΅Π½ΠΊΠ΅ ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ:
Π°) ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ;
Π±) ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΠΎΡΡΡ ΡΠΎΡΡΠ°Π²Π° ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ².
1.4.2.2. ΠΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ, ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°ΡΠΈΠ΅ ΠΎΡΠ΅Π½ΠΊΠ΅ Π Ρ ΠΎΠ΄Π΅ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΏΡΠΈΠ΅ΠΌΠΎ-ΡΠ΄Π°ΡΠΎΡΠ½ΡΡ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ ΠΎΡΠ΅Π½ΠΊΠ΅ ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ (ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅) Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΠΎΠ²Π΅ΡΠΊΠ΅ ΠΏΠΎΠ΄Π»Π΅ΠΆΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ Π½ΠΈΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ:
Π°) ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ»ΡΡΠ° RSA
Π±) ΡΡΠ½ΠΊΡΠΈΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° Π²) ΡΡΠ½ΠΊΡΠΈΡ ΡΠ°ΡΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π³) ΡΡΠ½ΠΊΡΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ΅ΠΊΡΡΠ° ΠΈΠ· ΡΠ°ΠΉΠ»Π° Π² ΡΠΎΡΠΌΡ
1.4.3. ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΈ ΡΠ΅ΠΆΠΈΠΌΡ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ ΠΡΠΏΡΡΠ°Π½ΠΈΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΡΡΡΡ Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π² ΠΏ. ΠΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΡΡΠ°ΠΏΠΎΠ² ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ.
1.4.4. ΠΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΡΠ°Π±ΠΎΡ, ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠΌΡΡ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ Π² ΠΏΠΎΠ»Π½ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΌΠ΅ ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ ΠΠ°ΠΊΠ°Π·ΡΠΈΠΊΠΎΠΌ ΡΡΠ²Π΅ΡΠΆΠ΄Π°ΡΡ ΠΠΊΡ ΠΏΡΠΈΠ΅ΠΌΠΊΠΈ-ΡΠ΄Π°ΡΠΈ ΡΠ°Π±ΠΎΡ.
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΠΠ°ΠΊΠ°Π·ΡΠΈΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΈΠ·Π΄Π΅Π»ΠΈΠ΅, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ (ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ) Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΈ Ρ. Π΄.
ΠΠ΅Π»ΠΊΠΈΠ΅, Π½Π΅ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π½Π΅Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΡΡΡΠ°Π½Π΅Π½Ρ ΠΏΠΎΡΠ»Π΅ Π½Π°ΡΠ°Π»Π° ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ.
1.5. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΡΠΈ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ) ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ, ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌ Π² ΠΏ. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΠΎΡΡΠ°Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ.
1.6. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π‘ΠΎΡΡΠ°Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ:
Π°) ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅;
Π±) ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠΈ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ;
Π²) ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°;
1.7. Π£ΡΠ»ΠΎΠ²ΠΈΡ ΠΈ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ
1.7.1. Π£ΡΠ»ΠΎΠ²ΠΈΡ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ ΠΠΎ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΠ°ΠΊΠ°Π·ΡΠΈΠΊΠΎΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠ½ΠΊΡΠ° Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ.
1.7.2. Π£ΡΠ»ΠΎΠ²ΠΈΡ Π½Π°ΡΠ°Π»Π° ΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΠ°ΠΏΠΎΠ² ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌ ΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠΌ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ΠΌ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ 1 ΡΡΠ°ΠΏΠ° ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ ΠΈ Π½Π°ΡΠ°Π»Π° 2 ΡΡΠ°ΠΏΠ° ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ, ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠΌΡΡ Π½Π° 1 ΡΡΠ°ΠΏΠ΅ (ΡΠΌ. ΠΏ. ΠΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ, ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠΌΡΡ Π½Π° 1 ΡΡΠ°ΠΏΠ΅ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ).
Π£ΡΠ»ΠΎΠ²ΠΈΠ΅ΠΌ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ 2 ΡΡΠ°ΠΏΠ° ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ, ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠΌΡΡ Π½Π° 2 ΡΡΠ°ΠΏΠ΅ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ.
1.7.3. ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π² ΡΡΠ»ΠΎΠ²ΠΈΡΡ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ ΠΠΎ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΠ°ΠΊΠ°Π·ΡΠΈΠΊΠΎΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠ½ΠΊΡΠ° Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ.
1.7.4. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠ²Π»ΡΡΡΡΡ.
1.7.5. ΠΠ΅ΡΡ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΈ Π±Π΅Π·Π°Π²Π°ΡΠΈΠΉΠ½ΠΎΡΡΡ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ ΠΡΠΈ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ ΠΠ°ΠΊΠ°Π·ΡΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠΎΠ±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ ΠΠΠ‘Π’ 12.2.007.0−75, ΠΠΠ‘Π’ 12.2.007.3 — 75, «ΠΡΠ°Π²ΠΈΠ»Π°ΠΌΠΈ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ ΡΠ»Π΅ΠΊΡΡΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΎΠΊ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Π΅ΠΉ», ΠΈ «ΠΡΠ°Π²ΠΈΠ»Π°ΠΌΠΈ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ ΡΠ»Π΅ΠΊΡΡΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΎΠΊ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Π΅ΠΉ».
1.7.6. ΠΠΎΡΡΠ΄ΠΎΠΊ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΉ, ΡΡΠ°ΡΡΠ²ΡΡΡΠΈΡ Π² ΠΈΡΠΏΡΡΠ°Π½ΠΈΡΡ ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ ΡΡΡΠ½ΠΎ ΠΈΠ·Π²Π΅ΡΠ°Π΅Ρ ΠΠ°ΠΊΠ°Π·ΡΠΈΠΊΠ° ΠΎ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ ΠΊ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΏΡΠΈΠ΅ΠΌΠΎΡΠ΄Π°ΡΠΎΡΠ½ΡΡ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ Π½Π΅ ΡΠ°Π½ΡΡΠ΅, ΡΠ΅ΠΌ Π·Π° 30 ΠΌΠΈΠ½ΡΡ Π΄ΠΎ Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠΎΠΊΠ° ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ.