рд╣рд╛рдЗрдмреНрд░рд┐рдб рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдФрд░ рдЕрдгреНрдбрд╛рдХрд╛рд░ рдШрдЯрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрдж

рдирдорд╕реНрдХрд╛рд░ рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВред рдПрдХ рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ рдХрд┐ рд╣рд╛рдЗрдмреНрд░рд┐рдб рдХреНрд░рд┐рдкреНрдЯреЛрдХрд░рдВрд╕реА рдХреНрдпрд╛ рд╣реИрдВ рдФрд░ рд╡реЗ рдЗрддрдиреЗ рд╡реНрдпрд╛рдкрдХ рдХреНрдпреЛрдВ рд╣реИрдВред

рддреЛ, рдпрд╣ рд╣рд╛рдЗрдмреНрд░рд┐рдб рдХреНрд░рд┐рдкреНрдЯреЛрдХрд░рдВрд╕реА рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдбреЗрдЯрд╛ рдХреА рдПрдХ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╕рдВрдЪрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕рдордорд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдИрдПрд╕ рдпрд╛ рдбреАрдИрдПрд╕) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЧреБрдкреНрдд рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдХреБрдВрдЬреА рд╕реНрд╡рдпрдВ рдПрдХ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдЕрд╕рдордорд┐рдд рд╕рд┐рдлрд░ (рдЬреИрд╕реЗ, рдХрд╣реЛ, рдЖрд░рдПрд╕рдП) рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░рд┐рдд рд╣реИред рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рд╕рдордорд┐рдд рдФрд░ рдЕрд╕рдордорд┐рдд рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреА рджреЛрдиреЛрдВ рдХреЗ рдлрд╛рдпрджреЗ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рдмреНрд▓реЙрдХ рдмрд╣реБрдд рддреЗрдЬрд╝ рд╕рдордорд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХреЗ рд╕рд╛рде рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдФрд░ рдпрд╣ рдЧрдВрднреАрд░ рд╕рдордп рдХреА рд▓рд╛рдЧрдд рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ), рдФрд░ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреБрдВрдЬреА рдХреЛ рдПрдХ рдЕрд╕рдордорд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдордЬрд╝рдмреВрддреА рд╕реЗ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдФрд░ рдпрд╣ рдХреБрдВрдЬреА рд╡рд┐рддрд░рдг рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ рд╕рдордорд┐рдд рддрд░реАрдХреЛрдВ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ)ред рдпрд╣ рд╕рдм рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдо рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪреАрдЬ, рдЕрд░реНрдерд╛рддреН рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореБрджреНрджреЛрдВ рдкрд░ рдЖрдЧреЗ рдмрдврд╝реЗрдВрдЧреЗред рдФрд░ рдпрд╣рд╛рдВ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ рдвреЗрд░ рд╕рд╛рд░реА рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рддреЗрдВред



рд╕рд╛рдорд╛рдиреНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛



рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рд╕рдмрд╕реЗ рдЗрд╖реНрдЯрддрдо рд╕рдорд╛рдзрд╛рди RSA + рдмреНрд▓реЙрдХ рд╕рд┐рдлрд░ рдХрд╛ рдПрдХ рд╕рдВрдпреЛрдЬрди рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рд╡рд┐рдзрд┐ рдХреБрдЫ рдиреБрдХрд╕рд╛рди рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рд╣реИред

рдЙрдирдореЗрдВ рд╕реЗ рд╕рдмрд╕реЗ рд╕реНрдкрд╖реНрдЯ рдЖрд░рдПрд╕рдП рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреА рд╢рдмреНрджрд╛рд░реНрдерд┐рдХ рдХрдордЬреЛрд░реА рд╣реИред рдЗрд╕рд▓рд┐рдП, RSA рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗрд╡рд▓ RSA-OAEP (рдЬреЛ рдпрд╣рд╛рдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ) рдЬреИрд╕реЗ рдРрдб-рдСрди рд╕реНрдХреАрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореБрдЭреЗ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдпрд╛рдж рд╣реИ рдХрд┐ RSA-OAEP рджреЛ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рд░реВрдк рд╕реЗ рдордЬрдмреВрдд рд╣реИрд╢ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдПрдХ рд╕рдВрджреЗрд╢ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╢реВрдиреНрдп рдмрд┐рдЯреНрд╕ рдЬреЛрдбрд╝рдиреЗ рдЬреИрд╕реА рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЖрд░рдПрд╕рдП-рдУрдПрдИрдкреА рдпреЛрдЬрдирд╛ рдХреНрдпрд╛ рд╕рдмрд╕реЗ рдХреБрд╢рд▓ рдЕрд╕рдордорд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдирд╣реАрдВ рд╣реИред рдЗрд╕ рд╕реАрдорд╛ рдХреЗ рдХрд╛рд░рдг, рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рдЖрд░рдПрд╕рдП рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕рдХреА рд╕рднреА рдЕрдкреАрд▓ рдЦреЛ рджреЗрддрд╛ рд╣реИред

рдЖрд░рдПрд╕рдП рдФрд░ рдмреНрд▓реЙрдХ рд╕рд┐рдлрд░ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рджреЛрд╖ рдкреНрд░реЗрд╖рд┐рдд рдбреЗрдЯрд╛ рдХреА рдЕрдЦрдВрдбрддрд╛ рдирд┐рдпрдВрддреНрд░рдг рдХреА рдХрдореА рд╣реИред рдФрд░ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЕрд╕рдордорд┐рдд рд╕рд┐рдлрд░ рдХреЗ рдмрдЧреАрдЪреЗ рдореЗрдВ рдПрдХ рдкрддреНрдерд░ рд╣реИ; рдлрд┐рд░ рднреА, рдЖрд░рдПрд╕рдП-рдУрдПрдИрдкреА рдкреНрд░рд╛рдкреНрдд рдЖрдВрдХрдбрд╝реЛрдВ рдХреА рдЕрдЦрдВрдбрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЕрдм рд╣рдо рд╕реАрдзреЗ рдмреНрд▓реЙрдХ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдореИрдВ рдЗрд╕ рдкрд░реЗрд╢рд╛рдиреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рд╕рднреА рдмреНрд▓реЙрдХ рд╕рд┐рдлрд░ рдСрдкрд░реЗрд╢рди рдХреЗ рдХрдИ рддрд░реАрдХреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдЖрдо рдореЛрдб рдИрд╕реАрдмреА рдФрд░ рд╕реАрдмреАрд╕реА рдереЗред рдИрд╕реАрдмреА рдореЛрдб рдореЗрдВ, рд╕реНрд░реЛрдд рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЖрдХрд╛рд░ рдХреЗ рдмреНрд▓реЙрдХ рдПрдо 1 , рдПрдо 2 , ..., рдПрдо рдПрди рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдФрд░ cryptotext рдореЗрдВ C 1 , C 2 , ..., C n , рдЬрд╣рд╛рдВ C i = E (M i ), рдФрд░ E (M i ) рдмреНрд▓реЙрдХ M i рдкрд░ рд▓рд╛рдЧреВ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдлрд╝рдВрдХреНрд╢рди рд╣реИред рджрд░рдЕрд╕рд▓, рдРрд╕реЗ рд╢рд╛рд╕рди рдХрд╛ рдиреБрдХрд╕рд╛рди рддреБрд░рдВрдд рд╕реНрдкрд╖реНрдЯ рд╣реЛрддрд╛ рд╣реИред рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рднреА рдмреНрд▓реЙрдХ C i рдХреЛ рдмреНрд▓реЙрдХ C o рд╕реЗ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдпрджрд┐ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдХреЗ рджреМрд░рд╛рди рдПрдХ рдХреБрдВрдЬреА рдХрд╛ рдХрдИ рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдорд▓рд╛рд╡рд░ рдПрдХ рдирдпрд╛ рд╕рдВрджреЗрд╢ рд░реЛрдХ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рдбреЗрдЯрд╛ рдХреЛ рдкреБрд░рд╛рдиреЗ рдХреЗ рд╕рд╛рде рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╡реИрдз рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рдиреЛрдЯрд┐рд╕ рдирд╣реАрдВ рдорд┐рд▓реЗрдЧрд╛ред

рд╕реАрдмреАрд╕реА рдореЛрдб, рдХрдИ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдмреНрд▓реЙрдХ рд╕рд┐рдлрд░ рдХреА рдЗрд╕ рдЦрд╛рдореА рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдирд╣реАрдВ рд╣реИред CBC рдореЛрдб рдореЗрдВ, рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИред рд╕реНрд░реЛрдд рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЖрдХрд╛рд░ рдХреЗ рдмреНрд▓реЙрдХ M 1 , M 2 , M n рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдФрд░ cryptotext рдореЗрдВ C 1 , C 2 , C n , рдЬрд╣рд╛рдБ C i = E (M i тКХ C i-1 ) рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рд╕рд╛рде, рднреНрд░рдо рдкреИрджрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рд╕рд┐рдлрд░рдЯреЗрдХреНрд╕реНрдЯ рдмреНрд▓реЙрдХ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВ рдФрд░ рдПрдХ рдмреНрд▓реЙрдХ рдХреЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╕реЗ рдмрд╛рдХреА рдХрд╛ рдиреБрдХрд╕рд╛рди рд╣реЛрдЧрд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред рдХрд┐рд╕реА рдПрдХ рдмреНрд▓реЙрдХ рдХреЛ рдмрджрд▓рдиреЗ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ (!) рдмреНрд▓реЙрдХ рдХреЗ рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рдкрд░ рдЕрд╕рд░ рдкрдбрд╝реЗрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрдИ рдмреНрд▓реЙрдХреЛрдВ рдХреЛ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╡реИрдз рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛, рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рдмрд╛рдж рдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рдмреНрд▓реЙрдХ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдорд╣рддреНрд╡ рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП, рд╣рд╛рдЗрдмреНрд░рд┐рдб рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмреЛрд▓рддреЗ рд╣реБрдП, рдпрд╣ рд╕рдордЭрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкреНрд░реЗрд╖рд┐рдд рдЬрд╛рдирдХрд╛рд░реА рдореЗрдВ рджреЛ рдмреНрд▓реЙрдХ рдирд╣реАрдВ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рддреАрди E asy (K) || E sym (M) || MAC K (M), рдЬрд╣рд╛рдВ E asy (K) || - рдПрдХ рдЕрд╕рдордорд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд╕рд╛рде рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛, рдИ рд╕рд┐рдорд┐рдВрдЧ (рдПрдо) - рдХреБрдВрдЬреА рдХреЗ, рдбреЗрдЯрд╛ рдПрдо, рдореИрдХ рдХреЗ (рдПрдо) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рдордорд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд╕рд╛рде рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ - рд╕рдВрджреЗрд╢ рдХреЗ рд▓рд┐рдП рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЛрдб рдЬрд┐рд╕реЗ рдХреБрдВрдЬреА рдХреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред

рдФрд░ рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ, рд╣рд╛рдЗрдмреНрд░рд┐рдб рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЖрд░рдПрд╕рдП рдЬреИрд╕реЗ рдПрдХ рдЕрд╕рдордорд┐рдд рдХреНрд░рд┐рдкреНрдЯреЛ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдЬреБрдбрд╝реА рдПрдХ рдФрд░ рдорд╛рдореВрд▓реА рдЕрд╕реБрд╡рд┐рдзрд╛ рд╣реИред рдпрд╣ рдмреЗрдорд╛рдиреА рдбреЗрдЯрд╛ рд╣реИред рд╕рдВрджреЗрд╢ рдПрдо рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХреНрд░рд┐рдкреНрдЯреЛ рдкрд╛рда рдореЗрдВ рдореИрдХ рдХреЗ (рдПрдо) рдмрд┐рдЯреНрд╕ рдХреЗ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрд░рдПрд╕рдП рднреА рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрдбрд╝реЗ рдЖрдХрд╛рд░ (2048 рдмрд┐рдЯреНрд╕ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╣реИрдВ) рдХреЗ рдХрд╛рд░рдг, рдХрдИ рдмрд╛рд░ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдП рдЧрдП рдХреБрдВрдЬреА рдХреЗ рдореВрд▓ рдЖрдХрд╛рд░ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдЕрддрд┐рд░реЗрдХ рдХреЗрд╡рд▓ 2048 рдмрд┐рдЯреНрд╕ (рдореИрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди RSA-OAEP рдХреЗ рдкреАрдЫреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХреЗ рд╕рд╛рде, рдпрд╣ рд╕рдм рдПрдХ рдФрд░ рд╣рд╛рдЗрдмреНрд░рд┐рдб рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдкрджреНрдзрддрд┐ рдХреА рддрд▓рд╛рд╢ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рд╡рд┐рдзрд┐ рд╣реИред рдФрд░ рдЗрд╕реЗ DHIES рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред



рдореБрдЦреНрдп рдмрд╛рдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ



DHIES рд╣рд╛рдЗрдмреНрд░рд┐рдб рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рд╕реНрдХреАрдо (рдбрд┐рдлреА-рд╣реЗрд▓рдореИрди рдЗрдВрдЯреАрдЧреНрд░реЗрдЯреЗрдб рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рд╕реНрдХреАрдо) рдХреЛ рддреАрди рд▓реЗрдЦрдХреЛрдВ рдорд┐рд╢реЗрд▓ рдЕрдмреНрджреБрд▓реНрд▓рд╛, рдорд┐рд╣рд┐рд░ рдмреЗрд▓рд╛рд░реЗ рдФрд░ рдлрд┐рд▓рд┐рдк рд░реЛрдЧрд╡реЗ рдиреЗ 2001 рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдерд╛ред рдпреЛрдЬрдирд╛ рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╡рд┐рдЪрд╛рд░ рдЕрд╕рддрдд рд▓рдШреБрдЧрдгрдХ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдХрдард┐рдирд╛рдИ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рд╕реНрдХреАрдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИред

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдРрд▓рд┐рд╕ рдмреЙрдм рдХреЛ рдПрдХ рд╕рдордорд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рдердо рдФрд░ рдЗрд╕ рд╕рдВрджреЗрд╢ рдХреА рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд╕рдВрджреЗрд╢ рднреЗрдЬрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рдмрддрд╛ рджреЗрдВ рдХрд┐ рдмреЙрдм рдХреЗ рдкрд╛рд╕ рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ / рдирд┐рдЬреА рдХреБрдВрдЬреА рдЬреЛрдбрд╝реА (x, G, P, Y = G x mod P) рд╣реИ, рдЬрд╣рд╛рдВ G, P, Y рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдбреЗрдЯрд╛ рдФрд░ рдмреЙрдм рдХреА x-secret рдХреБрдВрдЬреА рд╣реИред рдпрд╛рдиреА рдмреЙрдм рдХрд╛ рдкреНрд░рдореБрдЦ рд╕реЗрдЯ рдбреАрдПрд╕рдП рдФрд░ GOST R 34.10-2001 рдорд╛рдирдХреЛрдВ рдХрд╛ рдЕрдиреБрдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИ (рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреБрдВрдЬреА рдЬреЛрдбрд╝реА рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ)ред

рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдРрд▓рд┐рд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░рддреА рд╣реИ:

  1. рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ k рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред
  2. рдпреВ = рдЬреА рдХреЗ рдФрд░ рд╡реА = рд╡рд╛рдИ рдХреЗ = рдЬреА рдХреЗрдПрдХреНрд╕ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИред
  3. рдПрдХ рдЬреЛрдбрд╝реА (K1, K2) = H (V (U)) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ H () рдПрдХ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рд░реВрдк рд╕реЗ рдордЬрдмреВрдд рд╣реИрдб рдлрдВрдХреНрд╢рди рд╣реИред
  4. C = E K1 (M) рдФрд░ T = MAC K2 (C) рдвреВрдБрдврддрд╛ рд╣реИ
  5. рдмреЙрдм рдХреЛ рдлреЙрд░реНрдо U рдХрд╛ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИред C || T ||


рдРрд▓рд┐рд╕ рд╕реЗ рдПрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдмреЙрдм рдЕрдкрдиреЗ рдирд┐рдЬреА рдХреБрдВрдЬреА x рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, V = U x рдХреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред V рдФрд░ U рдХреЛ рдЬрд╛рдирдиреЗ рдХреЗ рдмрд╛рдж, рдмреЙрдм рдПрдХ тАЛтАЛрдорд╣рддреНрд╡рдкреВрд░реНрдг рдЬреЛрдбрд╝реА (K1, K2) = H (V (U)) рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред рдХреБрдВрдЬреА K2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╡рд╣ рдкреНрд░рд╛рдкреНрдд рд╕рд┐рдлрд░ T = MAC K2 (C) рдХреА рдЕрдЦрдВрдбрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░, рдпрджрд┐ рдкрд░рд┐рдгрд╛рдо рд╕рд╣реА рд╣реИ, рддреЛ рдХреБрдВрдЬреА K1, M = D K1 (C) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рда рдХреЛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рддрд╛ рд╣реИред



DHIES рдпреЛрдЬрдирд╛ рдХрд╛ рд▓рд╛рдн рдЕрд╕рдордорд┐рдд рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдЖрд╕рд╛рдиреА рд╣реИред рддреЛ, рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд╕рдордорд┐рдд рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рджреЛ рдШрд╛рддрд╛рдВрдХ рдЪрд╛рд╣рд┐рдПред рдЖрд░рдПрд╕рдП рдЬреИрд╕реА рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рднреА рдкреВрд░рдХ рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ред

рджреВрд╕рд░реЗ, рдпрд╣ рдпреЛрдЬрдирд╛ рдЕрд╕рддрдд рд▓рдШреБрдЧрдгрдХ рд╕рдорд╕реНрдпрд╛ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдгреНрдбрд╛рдХрд╛рд░ рд╡рдХреНрд░реЛрдВ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдгреНрдбрд╛рдХрд╛рд░ рд╡рдХреНрд░реЛрдВ рдкрд░ DHIES рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ G x рдХреА рдЧрдгрдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд┐рдВрджреБ x * G рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХреА рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╛рдХреА рд╕рдм рд╕рдорд╛рди рд░рд╣рддрд╛ рд╣реИред рдПрд▓рд┐рдкреНрдЯрд┐рдХ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреА рдХреЛ рдмрд╣реБрдд рдЫреЛрдЯреЗ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 2048 рдХреЗ рдмрдЬрд╛рдп 256 рдмрд┐рдЯреНрд╕)ред рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░, EC-DHIES рдпреЛрдЬрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдореЗрдВ рдирд┐рд░рд░реНрдердХ рдмрд┐рдЯреНрд╕ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдорд┐рд▓ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╣рд╛рдБ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╣рдо рдпрд╛рддрд╛рдпрд╛рдд рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдмрд╕ рдЕрддрд┐рд░реЗрдХ рдХреЛ рдХрдо рдХрд░рдирд╛ рд╕рдореНрдорд╛рди рдХреА рдмрд╛рдд рд╣реИ)ред

рдЦреИрд░, рддреАрд╕рд░реЗ рдореЗрдВ, рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ / рдирд┐рдЬреА рдХреБрдВрдЬреА рдЬреЛрдбрд╝реА рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдбреАрдПрд╕рдП рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдпрд╛ GOST R 34.10-2001 рдХреЗ рд╕рд╛рде рдПрдХ рдбрд┐рдЬрд┐рдЯрд▓ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдк рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



рдФрд░ рдмрд╕ рдереЛрдбрд╝рд╛ рд╕рд╛ рдХреЛрдб



рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЕрдгреНрдбрд╛рдХрд╛рд░ рд╡рдХреНрд░реЛрдВ рдХреЗ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдЧрдгрд┐рддреАрдп рд╕рдВрдЪрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рд╡рд░реНрдЧ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк EC-DHIES рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

//

public class ECPoint

{

public BigInteger x;

public BigInteger y;

public BigInteger a;

public BigInteger b;

public BigInteger FieldChar;



public ECPoint(ECPoint p)

{

x = px;

y = py;

a = pa;

b = pb;

FieldChar = p.FieldChar;

}



public ECPoint()

{

x = new BigInteger();

y = new BigInteger();

a = new BigInteger();

b = new BigInteger();

FieldChar = new BigInteger();

}

// P1 P2

public static ECPoint operator +(ECPoint p1, ECPoint p2)

{

ECPoint p3 = new ECPoint();

p3.a = p1.a;

p3.b = p1.b;

p3.FieldChar = p1.FieldChar;



BigInteger dy = p2.y - p1.y;

BigInteger dx = p2.x - p1.x;



if (dx < 0)

dx += p1.FieldChar;

if (dy < 0)

dy += p1.FieldChar;



BigInteger m = (dy * dx.modInverse(p1.FieldChar)) % p1.FieldChar;

if (m < 0)

m += p1.FieldChar;

p3.x = (m * m - p1.x - p2.x) % p1.FieldChar;

p3.y = (m * (p1.x - p3.x) - p1.y) % p1.FieldChar;

if (p3.x < 0)

p3.x += p1.FieldChar;

if (p3.y < 0)

p3.y += p1.FieldChar;

return p3;

}

// P c

public static ECPoint Double(ECPoint p)

{

ECPoint p2 = new ECPoint();

p2.a = pa;

p2.b = pb;

p2.FieldChar = p.FieldChar;



BigInteger dy = 3 * px * px + pa;

BigInteger dx = 2 * py;



if (dx < 0)

dx += p.FieldChar;

if (dy < 0)

dy += p.FieldChar;



BigInteger m = (dy * dx.modInverse(p.FieldChar)) % p.FieldChar;

p2.x = (m * m - px - px) % p.FieldChar;

p2.y = (m * (px - p2.x) - py) % p.FieldChar;

if (p2.x < 0)

p2.x += p.FieldChar;

if (p2.y < 0)

p2.y += p.FieldChar;



return p2;

}

// x, x

public static ECPoint multiply(BigInteger x, ECPoint p)

{

ECPoint temp = p;

while (x != 0)

{



if ((x % 2) != 0)

{

if ((temp.x==px)||(temp.y==py))

temp=Double(temp);

else

temp = temp + p;

x = x - 1;

}

x = x / 2;

p = Double(p);

}

return temp;

}

}




* This source code was highlighted with Source Code Highlighter .








рдирд┐рд╖реНрдХрд░реНрд╖



рдмреЗрд╢рдХ, рд╣рд░ рдХрд┐рд╕реА рдХреЛ рдЙрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЙрд╕реЗ рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЬреНрдЮрд╛рди рдХрднреА рднреА рд╢рд╛рдирджрд╛рд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд▓реЗрдЦ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдерд╛ рдФрд░ рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдХреЛ рдЧреБрдкреНрдд рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреНрдп рд╡рд┐рдзрд┐ (рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛ рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдВрдпреЛрдЬрди) рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХреАред рдФрд░ рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛ рдХреБрдЫ рдФрд░ рдЪреБрдирдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдХреЗрд╡рд▓ рдЖрдкрдХреЗ рд▓рд┐рдПред



рд╕рдВрджрд░реНрдн



  1. DHIES рд╡рд┐рдзрд┐ (рдкреАрдбреАрдПрдл) рдХрд╛ рд╡рд┐рд╡рд░рдг ред
  2. BigInteger рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдпрд╣рд╛рдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред
  3. рдЕрдиреБрд╢рдВрд╕рд┐рдд рдЕрдгреНрдбрд╛рдХрд╛рд░ рд╡рдХреНрд░реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА ред



All Articles