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

рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд╕рдВрджреЗрд╢
Enc (M) рдФрд░ рдХреБрдЫ рдЧрдгрд┐рддреАрдп рдлрд╝рдВрдХреНрд╢рди
f () рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрдВ рдЗрдирдкреБрдЯ
рд╣реИрдВ ред рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдкрд░рд┐рдгрд╛рдо
рдПрдо 2 = рдПрдл (рдПрдо) рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд╕рдВрджреЗрд╢
рдПрди (рдПрдо 2 ) рд╣реИ ред
рдПрдХ рд╣реЛрдореЛрдореЛрд░реНрдлрд┐рдХ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рд╕реНрдХреАрдо рдХреЛ рд╕рд╣реА рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐ рдХрд┐рд╕реА рднреА рдкреНрд░рдореБрдЦ рдЬреЛрдбрд╝реА
рдПрд╕рдХреЗ, рдкреАрдХреЗ рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рднреА рдлрд╝рдВрдХреНрд╢рди
f () рдХреЗ рд▓рд┐рдП , рд╕рд┐рдлрд░рдЯреЗрдХреН
рд╕ рдХреЗ рдХрд┐рд╕реА рднреА рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП
C = {c 1 , c 2 , .., c n } рдФрд░ рд╕рд╛рджреАрдЯреЗрдХреН рдЯ рдХреЗ рд╕реЗрдЯ
= = {m 1 , m 2 , .., m n } рдЬреИрд╕реЗ рдХрд┐
C = Enc (M) рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрдерд┐рддрд┐ рд╕рдВрддреБрд╖реНрдЯ рд╣реИ:
рдпрджрд┐
рдЖрд░ = рдПрд╡рд▓ (рдкреАрдХреЗ, рд╕реА, рдПрдл) рддреЛ
рдбреЗрд╕реАрдкреНрдЯ (рдПрд╕рдХреЗ, рдЖрд░) = рдПрдл (рдПрдо 1 , рдПрдо 2 , .., рдПрдо рдПрди )редрдЬреЗрдВрдЯреНрд░реА рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдпреЛрдЬрдирд╛ рдЗрд╕ рд╢рд░реНрдд рдХреЛ рдкреВрд░рд╛ рдХрд░рддреА рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣реЛрдореЛрдореЛрд░реНрдлрд┐рдХ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЬреЗрдВрдЯреНрд░реА рдпреЛрдЬрдирд╛
рд╣рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдпреЛрдЬрдирд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВред
KeyGenрдирд┐рдЬреА рдХреБрдВрдЬреА: рдмрдбрд╝реА рднреА рд╕рдВрдЦреНрдпрд╛
рдПрдиредрд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА: рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ
{ 1 , 2 , .., рдПрдХ i } рдРрд╕рд╛ рд╣реИ рдХрд┐
рдПрдХ i mod N = 2e i , рдЬрд╣рд╛рдВ
e i рд╕рдВрдЦреНрдпрд╛
N рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╣реИ
редрдПрдиреНрдХреНрд░рд┐рдкреНрдЯрд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рд╕реЗ рд╣рдо рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛
b = рдпрд╛рджреГрдЪреНрдЫрд┐рдХ-рд╕рдмрд╕реЗрдЯ-рдпреЛрдЧ {a i } рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВред рд╕реВрдЪрдирд╛ рдХрд╛ 1 рдмрд┐рдЯ to
{0,1} рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рд╣рдо рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ
рд╕реА = рдмреА + рдПрдордбрд┐рдХреНрд░рд┐рдкреНрдЯрдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рд▓рд┐рдП, рд╣рдо рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ
рд╕реА рдореЙрдб рдПрди = рдПрдо + 2 * рдкреА
рдИ рдореИрдВ2 * рдирдВрдмрд░
рдИ i рдХреЛ рд╢реЛрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрджрд┐ рдЧрдгрдирд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдпрд╣ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕рдВрдЦреНрдпрд╛
рдПрди рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рддреЛ рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рдЕрд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред
рдореЛрдбреБрд▓реЛ рджреЛ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдореВрд▓ рд╕рдВрджреЗрд╢ рдорд┐рд▓рддрд╛ рд╣реИред
evalрдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдП рдЧрдП рддрддреНрд╡реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдпрд╛ рдЙрдиреНрд╣реЗрдВ рдбреАрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдЧреБрдгрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХреЗрд╡рд▓ рд╕рд┐рдлрд░рдЯреЗрдХреНрд▓реЗрдЯ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдпрд╛ рдЧреБрдгрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред
рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдпрд╣ рдпреЛрдЬрдирд╛ рдмрд┐рд▓реНрдХреБрд▓ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИ, рдпрд╣ рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдХреЗрд╡рд▓ 1 рдмрд┐рдЯ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рд╣рдо рдПрдХ рдРрд╕реА рдпреЛрдЬрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рд╕реЗ рд╣рдо рд╕рдВрдЦреНрдпрд╛ рдХреЛ 15 рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░ рд╕рдХреЗрдВред
KeyGenрдирд┐рдЬреА рдХреБрдВрдЬреА: рдПрдХ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛
рдПрди , рдЬреИрд╕реЗ рдХрд┐
рдЬреАрд╕реАрдбреА (рдПрди, 15) = 1 ред
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА: рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ
{ 1 , 2 , .., рдПрдХ i } рдРрд╕рд╛ рд╣реИ рдХрд┐
рдПрдХ i mod N = 15e i , рдЬрд╣рд╛рдВ
e i рд╕рдВрдЦреНрдпрд╛
N рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╣реИ
редрдПрдиреНрдХреНрд░рд┐рдкреНрдЯрд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рд╕реЗ рд╣рдо рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛
b = рдпрд╛рджреГрдЪреНрдЫрд┐рдХ-рд╕рдмрд╕реЗрдЯ-рдпреЛрдЧ {a i } рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВред 0 рд╕реЗ 15 рддрдХ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ
рд╕реА = рдмреА + рдПрдордбрд┐рдХреНрд░рд┐рдкреНрдЯрдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рд▓рд┐рдП, рд╣рдо рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ
C mod N = m + 15 * P
e iрдореЛрдбреБрд▓реЛ 15 рдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдореВрд▓ рд╕рдВрджреЗрд╢ рдорд┐рд▓рддрд╛ рд╣реИред
рд╕реА # рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рдореБрдЦ рдкреАрдврд╝реА, рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдФрд░ рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рдлрд╝рдВрдХреНрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдЖрдк рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдЬреЛ рдпрд╣рд╛рдВ рд╕реЗ 1000
рддрдХ рдХреА рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛
рд╣реИ ред
рдирд┐рд╖реНрдХрд░реНрд╖
рдЕрдВрдд рдореЗрдВ, рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХреНрд░рд┐рдкреНрдЯреЛрд╕рд┐рд╕реНрдЯрдо рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдореБрдЦреНрдп рдЙрджреНрджреЗрд╢реНрдп рдПрдХ рд╣реЛрдореЛрдореЛрд░реНрдлрд┐рдХ рдХреНрд░рд┐рдкреНрдЯреЛрд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рд╕рд╛рде рд░реБрдЪрд┐ рд░рдЦрдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЛ рдкрд░рд┐рдЪрд┐рдд рдХрд░рдирд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣реЛрдореЛрдореЛрд░реНрдлрд┐рдХ рдпреЛрдЬрдирд╛рдПрдВ рдкреВрд░реНрдгрд╛рдВрдХ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдмрд╣реБрдкрдж рдЫрд▓реНрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдЧрдгрдирд╛ рдХреЗ рдмрд╛рдж рд╢реЛрд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдФрд░ рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рдХреЛ рдЕрд╕рдВрднрд╡ рдирд╣реАрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЗ modulo рдХрдо рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред
рд╕реВрддреНрд░реЛрдВ рдХреЗ рд╣рд╡рд╛рд▓реЗ рд╕реЗ