InfoTex рдЕрдХрд╛рджрдореА рдиреЗ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ "рдлрд╛рд╕реНрдЯ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдл" рдХреЗ рд▓рд┐рдП рд╕реНрд╡реАрдХрд╛рд░ рдЖрд╡реЗрджрди рдЦреЛрд▓ рджрд┐рдП рд╣реИрдВ

рд╣рдо рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдХреЗ рдврд╛рдВрдЪреЗ рдореЗрдВ рдПрдХ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╡рд┐рдЬреЗрддрд╛рдУрдВ рдХреЛ 350,000 рд░реВрдмрд▓ рддрдХ рдХрд╛ рдмреЛрдирд╕ рдорд┐рд▓реЗрдЧрд╛ред

рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЦрд╛рддреЗ рдореЗрдВ рдкрдВрдЬреАрдХрд░рдг рдФрд░ рд╡реЗрдмрд╕рд╛рдЗрдЯ academy.infotecs.ru рдкрд░ рдпрд╛ рдИ-рдореЗрд▓ рдЕрдХрд╛рджрдореА @infotecs.ru рджреНрд╡рд╛рд░рд╛ рдЖрд╡реЗрджрди рдкрддреНрд░ рднрд░рдХрд░ рдЖрд╡реЗрджрди рдФрд░ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ 15 рдЬреБрд▓рд╛рдИ, 2014 рддрдХ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдХрд╛рд░реНрдп рдХрд╛ рд╡рд┐рд╡рд░рдг : рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдб рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдЬреЛ GOST R 34.10.12 рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ A рдХреЗ рд╕реЗрдЯ рдХреЗ рдЕрдиреБрд╕рд╛рд░ EDS рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред

рдкреНрд░рддрд┐рднрд╛рдЧреА рдХреЛ рдкреНрд░рд╕реНрддреБрддрд┐рдпрд╛рдБ : рдкрд░реАрдХреНрд╖рдг рдЙрдкрдпреЛрдЧрд┐рддрд╛ред

рдкреНрд░рддрд┐рднрд╛рдЧреА рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддреБрдд рд╕рд╛рдордЧреНрд░реА : рд╡рд┐рдВрдбреЛрдЬ / рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХрд▓рд┐рдд .dll / .so рдкреБрд╕реНрддрдХрд╛рд▓рдп, рдХреНрд░рдорд╢рдГ, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдПрдХ рддрдХрдиреАрдХреА рд╡рд┐рд╡рд░рдг, "рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛" рдкреНрд░рд╛рд░реВрдк ( academy.infotecs.ru рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЦрд╛рддреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╕реНрддреБрдд) рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ рдЪрдпрдирд┐рдд рдХрд╛рд░реНрдп рдореЗрдВ рднрд╛рдЧреАрджрд╛рд░реА рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡реЗрджрдиред

рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ : рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ 1 рдПрдордПрд╕ рд╕реЗ рдХрдо рдореЗрдВ рдбрд┐рдЬрд┐рдЯрд▓ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП; рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, precomputations рдХреЗ рд╕рд╛рде, рдЪреЛрдЯреА рдореЗрдВ 500 kb рд╕реЗ рдЕрдзрд┐рдХ RAM рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

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

рдореВрд▓реНрдпрд╛рдВрдХрди рдорд╛рдирджрдВрдб : рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдиреЗ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рддрдХрдиреАрдХреА рд╡рд┐рд╡рд░рдг рдФрд░ рд╕рдВрдХрд▓рд┐рдд .dll рдпрд╛ .so рдЬрдорд╛ рдХрд┐рдпрд╛ред рдкреНрд░рджрд░реНрд╢рди рдореВрд▓реНрдпрд╛рдВрдХрди рд╡рд┐рдВрдбреЛрдЬ (рд╕рд┐рд╕реНрдЯрдо рдкреИрд░рд╛рдореАрдЯрд░ - рд╡рд┐рдВрдбреЛрдЬ 7 / рд▓рд┐рдирдХреНрд╕ (Ubuntu 12.04.3 LTS), рдЗрдВрдЯреЗрд▓ рдХреЛрд░ i7 3Ghz, 8 рдЬреАрдмреА рд░реИрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЙрдкрдпреЛрдЧрд┐рддрд╛ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рд▓рд┐рдирдХреНрд╕ (рдкреИрд░рд╛рдореАрдЯрд░ рд╕рдорд╛рди рд╣реИрдВ) рдХреЗ рд▓рд┐рдП .dll рдпрд╛ рдкрд░реАрдХреНрд╖рдг рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред .soред рдореВрд▓реНрдпрд╛рдВрдХрди рдкреНрд░рдХреНрд░рд┐рдпрд╛: Init рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 10 рдирд┐рдпрдВрддреНрд░рдг рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреЛ рд╕рд╣реА рд╣реИ, рдЙрд╕рдХреЗ рдмрд╛рдж 100 рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдЕрдВрдХрдЧрдгрд┐рддреАрдп рдорд╛рдзреНрдп рд╕рдордп рдХреЗ рд╕рд╛рде рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЧрддрд┐ рдХрд╛ рдЕрдиреБрдорд╛рди рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рддрд┐рднрд╛рдЧреАред рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдкрд░рд┐рдгрд╛рдо рдкреБрдирдГ рд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди :
├Ш рдирд┐рдЬреА рдХреБрдВрдЬреА рд▓рдВрдмрд╛рдИ - 512 рдмрд┐рдЯреНрд╕
R GOST R 34.10-2012 рдХреЗ рд▓рд┐рдП рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ
Id-tc26-gost-3410-12-512-paramSetA рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдирд╛рдо рдХреЗ рддрд╣рдд:
рдЖрдзрд╛рд░ рдмрд┐рдВрджреБ x0, y0 рд╣реИред
рдкреА = 2512-569
= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF рдЬрд╛рдХрд░ рджреЗрдЦ рдХрд░ рдорд┐рд▓рд╛
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC7
a = -3
b = 1219058002426623015618942475834009407551484406473623125220877233782539746
44785404234189810743227188994270390889972216099473545205904486839481353008
24418144
= 0xE8C2505DEDFC86DDC1BD0B2B6667F1DA34B82574761CB0E879BD081CFD0B6265EE3CB
090F30D27614CB4574010DA90DD862EF9D4EBEE4761503190785A71C760
q = 134078079299425970995740249982058461274793658205923933777272356144372176403
00734492323182905858176364980496286125565968995006252799064166539938754747
42293109
= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF рдЦрдмрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ 69532F48D8
9116FF22B8D4E0560609B4B38ABFAD2B85DCACDB1411F10B275
x = 3853452105860264218778890654706527906026604279459289955551120582909395547
47882918040052696236470125318998193509935045490934848810464089934235752576
2740253
= 0x499348131417DA6AAB081BB82DF02527396F4910E811A8028F87AEC258274DBE7BA9A4
2DB869CE0B1F589BE2CE8F2815FC50F4313E58B424A10E9AE12171101D
y = 1688313433072864606929546771533903342456879622505050511009464799956062112
84138894578141310850192134681662858031772135238282527432586244180292898750
7272087
= 0x203C4DD6567E36EA8EA0F97A29128BA8E9A9A6ADD6D2BD2BD2F88FE574C2D9DDFF334A
88BD8383975837B43FEEED4C1EE62CBF061661954017B17B9399E7402997
x0 = 3
y0 = 6128567132159368375550676650534153371826708807906353132296049546866464545
47260711913452922170333692151640510736902860619109774773836757192446669423
6795556
= 0x7503CFE87A836AE3A61B8816E25450E6CE5E1C93ACF1ABC1778064FDCBEFA921DF1626
BE4FD036E93D75E6A50E3A41E98028FE5FC235F5B889A589CB5215F2A4
QWORD b [8] =
{0x503190785A71C760,
0x862EF9D4EBEE4761,
0x4CB4574010DA90DD,
0xEE3CB090F30D2761,
0x79BD081CFD0B6265,
0x34B82574761CB0E8,
0xC1BD0B2B6667F1DA,
0xE8C2505DEDFC86DD};
QWORD q [8] =
{0xCACDB1411F10B275,
0x9B4B38ABFAD2B85D,
0x6FF22B8D4E056060,
0x27E69532F48D8911,
0xFFFFFFFFFFFFFFFF,
0xFFFFFFFFFFFFFFFF,
0xFFFFFFFFFFFFFFFF,
0xFFFFFFFFFFFFFFFF};
QWORD x [8] =
{0xA10E9AE12171101D,
0xFC50F4313E58B424,
0x1F589BE2CE8F2815,
0x7BA9A42DB869CE0B,
0x8F87AEC258274DBE,
0x396F4910E811A802,
0xAB081BB82DF02527,
0x499348131417DA6A};
QWORD y [8] =
{0xB17B9399E7402997,
0x2CBF061661954017,
0x37B43FEEED4C1EE6,
0x334A88BD83839758,
0xF88FE574C2D9DDFF,
0x8E9A9A6ADD6D2BD2,
0xA8EA0F97A29128BA,
0x203C4DDD6567E36E};
QWORD y0 [8] =
{0x89A589CB5215F2A4
0x8028FE5FC235F5B8,
0x3D75E6A50E3A41E9,
0xDF1626BE4FD036E9,
0x778064FDCBEFA921,
0xCE5E1C93ACF1ABC1,
0xA61B8816E25450E6,
0x7503CFE87A836AE3};

Source: https://habr.com/ru/post/In212319/


All Articles