{"id":314869,"date":"2020-12-14T21:01:27","date_gmt":"2020-12-14T21:01:27","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=314869"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=314869","title":{"rendered":"AES \u043f\u0440\u043e\u0442\u0438\u0432 \u043e\u0441\u0446\u0438\u043b\u043b\u043e\u0433\u0440\u0430\u0444\u0430"},"content":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/164\/bae\/afc\/164baeafccd50bfb2f25b2f52e9ed0de.jpg\" width=\"1280\" height=\"720\"><figcaption><\/figcaption><\/figure>\n<p>\u0421\u043b\u043e\u0432\u043e &#171;\u0445\u0430\u043a\u0435\u0440&#187; \u043e\u0431\u0440\u0435\u043b\u043e \u0441\u0432\u043e\u0435 \u043d\u044b\u043d\u0435\u0448\u043d\u0435\u0435 \u0437\u0432\u0443\u0447\u0430\u043d\u0438\u0435 \u043b\u0438\u0448\u044c \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0435 XX \u0432\u0435\u043a\u0430 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0436\u0443\u0440\u043d\u0430\u043b\u0438\u0441\u0442\u0430\u043c. \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0445\u0430\u043a\u0435\u0440\u0430\u043c\u0438 \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043b\u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u043e\u0432, \u043e\u0431\u043b\u0430\u0434\u0430\u044e\u0449\u0438\u0445 \u043e\u0431\u0448\u0438\u0440\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u043d\u0438\u044f\u043c\u0438 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u0445 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u0438 \u0443\u043c\u0435\u044e\u0449\u0438\u0445 \u0432\u0438\u0440\u0442\u0443\u043e\u0437\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0438\u0445. \u0418\u043c\u0435\u043d\u043d\u043e \u043e \u0434\u0435\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0433\u0440\u0443\u043f\u043f \u0442\u0430\u043a\u0438\u0445 \u0445\u0430\u043a\u0435\u0440\u043e\u0432 \u043f\u043e\u0439\u0434\u0435\u0442 \u0440\u0435\u0447\u044c \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435.<\/p>\n<h2>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h2>\n<p>\u0412 2007 \u0433\u043e\u0434\u0443 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Nvidia \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0430 \u043f\u0435\u0440\u0432\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e CUDA \u2014 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e-\u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u0443\u044e \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0443\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u0435\u043b\u0438 \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u0437\u0430\u0434\u0430\u0447, \u043d\u0435\u0436\u0435\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439. \u041f\u0435\u0440\u0435\u0432\u0435\u0434\u044f \u0441\u0432\u043e\u0438 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u044b \u0438\u0437 \u0440\u0430\u0437\u0440\u044f\u0434\u0430 GPU \u0432 \u0440\u0430\u0437\u0440\u044f\u0434 <abbr title=\"General Purpose GPU\">GPGPU<\/abbr> (General Purpose GPU), Nvidia \u0441\u0434\u0435\u043b\u0430\u043b\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u043d\u043e-\u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0435\u0435 \u0434\u043b\u044f \u0448\u0438\u0440\u043e\u043a\u043e\u0433\u043e \u043a\u0440\u0443\u0433\u0430 \u0437\u0430\u0434\u0430\u0447. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u0432\u0438\u0434\u0435\u043e\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u044b \u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u044b \u043a \u0437\u0430\u0434\u0430\u0447\u0430\u043c \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u044c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043a\u0430\u043a \u0438 \u043b\u044e\u0431\u044b\u0435 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u044b \u0438\u0437\u043b\u0443\u0447\u0430\u044e\u0442 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043c\u0430\u0433\u043d\u0438\u0442\u043d\u044b\u0435 \u0432\u043e\u043b\u043d\u044b, \u0438 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440 \u044d\u0442\u043e\u0433\u043e \u0438\u0437\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430. \u041f\u0440\u0438\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 \u0437\u0430 \u0442\u0430\u043a\u0438\u043c \u0438\u0437\u043b\u0443\u0447\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u043e \u0433\u0440\u0443\u043f\u043f\u0435 \u0443\u0447\u0435\u043d\u044b\u0445 \u0438\u0437 <abbr title=\" University of Chinese Academy of Sciences\">UCAS<\/abbr> <a href=\"https:\/\/ieeexplore.ieee.org\/document\/8455921\" rel=\"noopener noreferrer nofollow\">\u0432\u0437\u043b\u043e\u043c\u0430\u0442\u044c<\/a> \u0448\u0438\u0444\u0440 AES, \u0443\u0437\u043d\u0430\u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430.<\/p>\n<h2>\u041a\u0440\u0430\u0442\u043a\u043e\u0435 \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0435<\/h2>\n<p>\u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043a \u0430\u0442\u0430\u043a\u0435, \u043d\u0435\u043b\u0438\u0448\u043d\u0438\u043c \u0431\u0443\u0434\u0435\u0442 \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0442\u044c \u043e\u0441\u043d\u043e\u0432\u044b CUDA \u0438 AES:<\/p>\n<details class=\"spoiler\">\n<summary>CUDA<\/summary>\n<div class=\"spoiler__content\">\n<p>CUDA (Compute Unified Device Architecture) \u2014 \u044d\u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e-\u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439, \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u0430\u044f \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0435\u0439 Nvidia \u0434\u043b\u044f \u0441\u0432\u043e\u0438\u0445 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u0432 \u043e\u0431\u0449\u0435\u0433\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 CUDA \u0441 \u0434\u0432\u0443\u0445 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0440\u0430\u043a\u0443\u0440\u0441\u043e\u0432.<\/p>\n<h4>\u0421 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430<\/h4>\n<p>\u041f\u0440\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0445 CUDA, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0438\u043c\u0435\u0435\u0442 \u0434\u0435\u043b\u043e \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c\u0438:<\/p>\n<ol>\n<li>\n<p>\u044f\u0434\u0440\u043e (kernel) \u2014 \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u0430\u044f \u043d\u0430 <abbr title=\"General Purpose GPU\">GPGPU<\/abbr>;<\/p>\n<\/li>\n<li>\n<p>\u0441\u0435\u0442\u043a\u0430 (grid) \u2014 \u0433\u0440\u0443\u043f\u043f\u0430 \u043f\u043e\u0442\u043e\u043a\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u044e\u0449\u0438\u0445 \u043a\u043e\u0434 \u043e\u0434\u043d\u043e\u0433\u043e \u044f\u0434\u0440\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0431\u043b\u043e\u043a (block) \u2014 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0430\u044f \u0441\u0435\u0442\u043a\u0438. \u041a\u0430\u0436\u0434\u044b\u0439 \u0431\u043b\u043e\u043a &#8212; \u044d\u0442\u043e \u0441\u043e\u0432\u043e\u043a\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043e\u0431\u0449\u0435\u0439 \u043f\u0430\u043c\u044f\u0442\u0438;<\/p>\n<\/li>\n<li>\n<p>\u043d\u0438\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f (\u043f\u043e\u0442\u043e\u043a, thread) \u2014 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0430\u044f \u0431\u043b\u043e\u043a\u0430.<\/p>\n<\/li>\n<\/ol>\n<p>\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0441\u0430\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0447\u0438\u0441\u043b\u043e \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0432 \u0431\u043b\u043e\u043a\u0435 \u0438 \u0431\u043b\u043e\u043a\u043e\u0432 \u0432 \u0441\u0435\u0442\u043a\u0435, \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u0440\u0435\u0448\u0430\u0435\u043c\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u0440\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c CUDA \u043c\u043e\u0436\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c <a href=\"https:\/\/arxiv.org\/pdf\/1202.4347.pdf\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a> \u0438 <a href=\"http:\/\/developer.download.nvidia.com\/compute\/cuda\/3%5C_1\/toolkit\/docs\/NVIDIA%5C_CUDA%5C_C%5C_ProgrammingGuide%5C_3.1.pdf\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a>.<\/p>\n<p>\u0414\u043b\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u043c\u0438 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u043a\u0430\u043a \u043e\u043d\u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u0441 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 <abbr title=\"General Purpose GPU\">GPGPU<\/abbr>.<\/p>\n<h4>\u0421 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f CUDA<\/h4>\n<p>\u0421 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f CUDA, <abbr title=\"General Purpose GPU\">GPGPU<\/abbr> \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c (\u043d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0434\u0432\u0438\u0436\u0435\u043c\u0441\u044f \u0441\u043d\u0438\u0437\u0443 \u0432\u0432\u0435\u0440\u0445):<\/p>\n<ol>\n<li>\n<p>\u0421\u043a\u0430\u043b\u044f\u0440\u043d\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 (Scalar Processor, <abbr title=\"Scalar Processor\">SP<\/abbr>) \u2014 \u044f\u0434\u0440\u043e, \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u044e\u0449\u0435\u0435 \u0435\u0434\u0438\u043d\u043e\u043c\u043e\u043c\u0435\u043d\u0442\u043d\u043e \u043e\u0434\u0438\u043d \u043f\u043e\u0442\u043e\u043a;<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0442\u043e\u043a\u043e\u0432\u044b\u0439 \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 (Streaming Multiprocessor, <abbr title=\"Streaming Multiprocessor\">SM<\/abbr>) \u2014 \u0441\u043e\u0432\u043e\u043a\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 <abbr title=\"Scalar Processor\">SP<\/abbr>, \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 32-\u0431\u0430\u0439\u0442\u043d\u044b\u0445 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0438 \u043e\u0431\u0449\u0435\u0433\u043e \u0431\u043b\u043e\u043a\u0430 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434 (Instruction Unit). \u0422\u0430\u043a\u0436\u0435 <abbr title=\"Streaming Multiprocessor\">SM<\/abbr> \u043e\u0431\u043b\u0430\u0434\u0430\u0435\u0442 L1-\u043a\u044d\u0448\u0435\u043c, \u043e\u0431\u0449\u0438\u043c \u0434\u043b\u044f \u0432\u0441\u0435\u0445 <abbr title=\"Scalar Processor\">SP<\/abbr>. \u041f\u0440\u0438 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438 \u0440\u0430\u0431\u043e\u0442 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u043c \u043a\u0430\u0436\u0434\u043e\u043c\u0443 <abbr title=\"Streaming Multiprocessor\">SM<\/abbr> \u0434\u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0439 \u043d\u0430\u0431\u043e\u0440 \u0431\u043b\u043e\u043a\u043e\u0432 \u0441\u0435\u0442\u043a\u0438, \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0445 \u043f\u043e \u043e\u0447\u0435\u0440\u0435\u0434\u0438;<\/p>\n<\/li>\n<li>\n<p>GPU \u2014 \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u0437 <abbr title=\"Streaming Multiprocessor\">SM<\/abbr>, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u0431\u043b\u043e\u043a\u0438.<\/p>\n<\/li>\n<\/ol>\n<p>\u0415\u0449\u0451 \u043e\u0434\u043d\u0430 \u0432\u0430\u0436\u043d\u0430\u044f \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b <abbr title=\"General Purpose GPU\">GPGPU<\/abbr>, \u043d\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u043d\u0430\u044f \u0441\u0442\u043e\u043b\u044c \u044f\u0432\u043d\u043e, \u0441\u0432\u044f\u0437\u0430\u043d\u0430 \u0441 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435\u043c \u0431\u043b\u043e\u043a\u043e\u0432. \u041a\u0430\u0436\u0434\u044b\u0439 \u0431\u043b\u043e\u043a \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0433\u0440\u0443\u043f\u043f\u0430\u043c\u0438 \u043f\u043e 32 \u043d\u0438\u0442\u0438 (warp). \u0412\u043d\u0443\u0442\u0440\u0438 \u0442\u0430\u043a\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b \u0432\u0441\u0435 \u043f\u043e\u0442\u043e\u043a\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u043e\u0434\u043d\u0443 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u043d\u0430\u0434 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u0442\u043e \u0435\u0441\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0442 \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u0443\u044e SIMT-\u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443 (Single Instruction Multiple Threads).<\/p>\n<p>\u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u043b\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b <abbr title=\"General Purpose GPU\">GPGPU<\/abbr> \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 <a href=\"https:\/\/www.nvidia.com\/content\/PDF\/fermi_white_papers\/NVIDIA_Fermi_Compute_Architecture_Whitepaper.pdf\" rel=\"noopener noreferrer nofollow\">\u0411\u0435\u043b\u043e\u0439 \u043a\u043d\u0438\u0433\u0435<\/a>, \u043d\u0430 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Thread_block_(CUDA_programming)\" rel=\"noopener noreferrer nofollow\">\u0412\u0438\u043a\u0438<\/a> \u0438 \u0432 <a href=\"https:\/\/docs.nvidia.com\/cuda\/cuda-c-programming-guide\/index.html\/#hardware-implementation\" rel=\"noopener noreferrer nofollow\">\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a>. \u041f\u043e\u043b\u0435\u0437\u043d\u044b\u043c \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u0438 \u044d\u0442\u043e <a href=\"https:\/\/stackoverflow.com\/questions\/10460742\/how-do-cuda-blocks-warps-threads-map-onto-cuda-cores\" rel=\"noopener noreferrer nofollow\">\u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0435<\/a>.<\/p>\n<p>\u0414\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0430\u0442\u0430\u043a\u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e.<\/p>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>AES<\/summary>\n<div class=\"spoiler__content\">\n<p>Advanced Encryption Standard (AES), \u0442\u0430\u043a\u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u043a\u0430\u043a Rijndael \u2014 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0439 \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0431\u043b\u043e\u0447\u043d\u043e\u0433\u043e \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041e\u043d \u043e\u043f\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0431\u043b\u043e\u043a\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u0438\u043d\u044b 128 \u0431\u0438\u0442 \u043f\u0440\u0438 \u0434\u043b\u0438\u043d\u0435 \u043a\u043b\u044e\u0447\u0430 128, 192 \u0438\u043b\u0438 256 \u0431\u0438\u0442. \u0422\u0430\u043a \u043a\u0430\u043a \u0430\u0442\u0430\u043a\u0430 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u043d\u0430 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0441 \u0434\u043b\u0438\u043d\u043e\u0439 \u043a\u043b\u044e\u0447\u0430 128 \u0431\u0438\u0442, \u043f\u043e\u043a\u0430 \u0443\u0431\u0435\u0440\u0435\u043c \u043f\u0440\u043e\u0447\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0438\u0437 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u044f \u0438 \u0441\u0444\u043e\u043a\u0443\u0441\u0438\u0440\u0443\u0435\u043c\u0441\u044f \u043d\u0430 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0435 \u0434\u043b\u044f \u0434\u043b\u0438\u043d\u044b \u043a\u043b\u044e\u0447\u0430 128 \u0431\u0438\u0442.<\/p>\n<p>AES-128 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u0445\u043e\u0434\u043d\u043e\u0439 \u0431\u043b\u043e\u043a \u0442\u0435\u043a\u0441\u0442\u0430 \u0432 \u0432\u0438\u0434\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b S \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 4 \u043d\u0430 4 \u0431\u0430\u0439\u0442\u0430, \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0439 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u043c (state), \u0438 11 \u0440\u0430\u0437 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 \u043a \u043d\u0435\u043c\u0443 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438:<\/p>\n<ol>\n<li>\n<p>SubBytes \u2014 \u0437\u0430\u043c\u0435\u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 \u0431\u0430\u0439\u0442\u043e\u0432 \u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043d\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0435 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0437\u0430\u043c\u0435\u043d SBox. \u042d\u0442\u043e \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 16 \u043d\u0430 16, \u0432 \u044f\u0447\u0435\u0439\u043a\u0430\u0445 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u044b \u043d\u043e\u0432\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0431\u0430\u0439\u0442\u043e\u0432. \u0417\u0430\u043c\u0435\u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u043c\u0443 \u043f\u0440\u0430\u0432\u0438\u043b\u0443: \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u0431\u0430\u0439\u0442 <img decoding=\"async\" class=\"formula inline\" source=\"b\" alt=\"b\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/36e\/169\/503\/36e169503c3375512f1177e012608c44.svg\"> \u0432 \u0432\u0438\u0434\u0435 <img decoding=\"async\" class=\"formula inline\" source=\"\\{x, y\\}\" alt=\"\\{x, y\\}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/421\/49e\/1ee\/42149e1eeccb794bf9785f5cddab09dd.svg\">, \u0433\u0434\u0435 <img decoding=\"async\" class=\"formula inline\" source=\"x\" alt=\"x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/16f\/de6\/9d4\/16fde69d4f2065512eb4bb2caad656d0.svg\"> \u0438 <img decoding=\"async\" class=\"formula inline\" source=\"y\" alt=\"y\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5b1\/cfe\/796\/5b1cfe796e1715f9e75fa9d40919ae3b.svg\"> \u2014 \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043d\u044b\u0435 \u0446\u0438\u0444\u0440\u044b, \u043c\u044b \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u043c \u0435\u0433\u043e \u043d\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043b\u0435\u0436\u0430\u0449\u0435\u0435 \u043d\u0430 \u043f\u0435\u0440\u0435\u0447\u0435\u0441\u0435\u043d\u0438\u0438 <img decoding=\"async\" class=\"formula inline\" source=\"x\" alt=\"x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/12c\/9fc\/c73\/12c9fcc734de70f2a972155379249dca.svg\">-\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0438 <img decoding=\"async\" class=\"formula inline\" source=\"y\" alt=\"y\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6c6\/6c9\/5fd\/6c66c95fdf1d7680185c601d1d4ed999.svg\">-\u043e\u0433\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b SBox. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438,  \u043f\u0440\u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0447\u043d\u043e\u043c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 (Row-Major Ordering) \u0438\u0441\u043a\u043e\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u043c\u0435\u0449\u0435\u043d\u043e \u043d\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"b\" alt=\"b\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2a4\/3ea\/c24\/2a43eac24dbfd8f1b9ee4215529ba365.svg\"> \u043f\u043e\u0437\u0438\u0446\u0438\u0439 \u043e\u0442 \u043d\u0430\u0447\u0430\u043b\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cfc\/5e4\/853\/cfc5e4853a76abbb1bfa541aded25341.png\" width=\"720\" height=\"330\"><figcaption><\/figcaption><\/figure>\n<p>\u041d\u0430\u043c \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u043a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0437\u0430\u043c\u0435\u043d, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u043d\u0435\u0439 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b \u0438 \u0443\u0436\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u044b \u0438 \u044f\u0432\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u044b \u0432 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0435. \u0412 \u0446\u0435\u043b\u044f\u0445 \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043e\u0431\u0449\u0435\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0443\u0436\u0435 \u0433\u043e\u0442\u043e\u0432\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 SBox, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c SBoxLUT (Look Up Table).<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3c6\/da7\/ecf\/3c6da7ecf8eff52ec1cf2e51e66dbaef.png\" width=\"1158\" height=\"587\"><figcaption><\/figcaption><\/figure>\n<\/li>\n<li>\n<p>ShiftRows \u2014 \u0446\u0438\u043a\u043b\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u0434\u0432\u0438\u0433 \u0441\u0442\u0440\u043e\u043a \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f. \u041f\u0435\u0440\u0432\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u043d\u0435 \u0441\u0434\u0432\u0438\u0433\u0430\u0435\u0442\u0441\u044f, \u0432\u0442\u043e\u0440\u0430\u044f \u0441\u0434\u0432\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043e\u0434\u043d\u0443 \u043f\u043e\u0437\u0438\u0446\u0438\u044e, \u0442\u0440\u0435\u0442\u044c\u044f \u043d\u0430 \u0434\u0432\u0435 \u0438 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0430\u044f \u043d\u0430 \u0442\u0440\u0438.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2f6\/f0a\/cae\/2f6f0acae139e261877e13321129ea33.png\" width=\"864\" height=\"561\"><figcaption><\/figcaption><\/figure>\n<\/li>\n<li>\n<p>MixColumns \u2014 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443, \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u044e\u0449\u0435\u0435 \u043b\u0438\u043d\u0435\u0439\u043d\u044b\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430\u0434 \u0441\u0442\u043e\u0431\u043b\u0446\u0430\u043c\u0438 \u2014 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0438 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u043d\u0430 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0443. \u041a\u0430\u043a \u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 SBox, \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043c\u044b \u043e\u0441\u0442\u0430\u0432\u0438\u043c \u0437\u0430 \u043a\u0430\u0434\u0440\u043e\u043c, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u0435\u0435 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/116\/a0d\/38f\/116a0d38ffae2f08722d193b4c9ee379.png\" width=\"711\" height=\"379\"><figcaption><\/figcaption><\/figure>\n<\/li>\n<li>\n<p>AddRoundKey \u2014 \u043f\u043e\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043d\u043e\u0435 \u043f\u0440\u0438\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b RounKey \u0442\u043e\u0433\u043e \u0436\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 4 \u043d\u0430 4, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0439 \u0440\u0430\u0443\u043d\u0434\u043e\u0432\u044b\u0439 \u043a\u043b\u044e\u0447. \u041f\u0435\u0440\u0435\u0434 \u043d\u0430\u0447\u0430\u043b\u043e\u043c \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c AES \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0435 &#171;\u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u043b\u044e\u0447\u0435\u0439&#187; \u2014 \u043d\u0430\u0431\u043e\u0440 \u0438\u0437 11 \u043c\u0430\u0442\u0440\u0438\u0446, \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0445 \u0440\u0430\u0443\u043d\u0434\u043e\u0432\u044b\u043c\u0438 \u043a\u043b\u044e\u0447\u0430\u043c\u0438, \u043f\u043e \u043e\u0434\u043d\u043e\u0439 \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u044d\u0442\u0430\u043f \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0435\u0439 KeyExpansion \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/733\/06a\/dd9\/73306add9102a3a4a2c10c3b375f6492.png\" width=\"865\" height=\"360\"><figcaption><\/figcaption><\/figure>\n<\/li>\n<\/ol>\n<p>\u041a\u0430\u043a \u0443\u0436\u0435 \u0431\u044b\u043b\u043e \u0437\u0430\u043c\u0435\u0447\u0435\u043d\u043e \u0432\u044b\u0448\u0435, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f 11 \u0440\u0430\u0437. \u041a\u0430\u0436\u0434\u044b\u0439 \u0442\u0430\u043a\u043e\u0439 \u0446\u0438\u043a\u043b \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0443\u043d\u0434\u043e\u043c. \u0412 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, 11-\u044b\u0439 \u0440\u0430\u0443\u043d\u0434 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0434\u0435\u0441\u044f\u0442\u0438, \u0442\u0430\u043a \u0447\u0442\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0432\u0438\u0434\u0435:<\/p>\n<pre><code class=\"cpp\">AddRoundKey(0)  for (i = 1; i &lt;= 10; i += 1) {     SubBytes()     ShiftRows()     MixColumns()     AddRoundKey(i) }  SubBytes() ShiftRows() AddRoundKey(11)<\/code><\/pre>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0432\u0441\u0435 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u043f\u043e\u043b\u0435 <img decoding=\"async\" class=\"formula inline\" source=\"GF(2^8)\" alt=\"GF(2^8)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c5f\/b9f\/ec9\/c5fb9fec940e26d596b4e7efa987a079.svg\">. \u041f\u0440\u043e\u0441\u0442\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u0432\u0443\u0445 \u0431\u0430\u0439\u0442\u043e\u0432 \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044e \u043a \u043d\u0438\u043c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0418\u0421\u041a\u041b\u042e\u0427\u0410\u042e\u0429\u0415\u0415-\u0418\u041b\u0418, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0442\u044c \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u043c <img decoding=\"async\" class=\"formula inline\" source=\"\\oplus\" alt=\"\\oplus\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/da8\/b03\/6d7\/da8b036d748eb97c912440c04b1b49ed.svg\">.<\/p>\n<p>\u041f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u0442\u043e\u043d\u043a\u043e\u0441\u0442\u0435\u0439 \u0438 \u043d\u044e\u0430\u043d\u0441\u043e\u0432, \u0440\u0430\u0432\u043d\u043e \u043a\u0430\u043a \u0438 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 \u0448\u0430\u0433\u043e\u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430, \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0437\u0430 \u0440\u0430\u043c\u043a\u0438 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438, \u043e\u0434\u043d\u0430\u043a\u043e \u0438\u0441\u0447\u0435\u0440\u043f\u044b\u0432\u0430\u044e\u0449\u0435\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0430\u0439\u0434\u0435\u043d\u043e \u0432 <a href=\"https:\/\/nvlpubs.nist.gov\/nistpubs\/FIPS\/NIST.FIPS.197.pdf\" rel=\"noopener noreferrer nofollow\">\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0435<\/a>. \u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u044f \u0441 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043d\u0430\u0439\u0434\u0435\u043d\u044b \u0432 \u043d\u0430 \u0425\u0430\u0431\u0440\u0435 <a href=\"https:\/\/habr.com\/ru\/post\/112733\/\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a> \u0438 <a href=\"https:\/\/habr.com\/ru\/post\/212235\/\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n<p>\u0413\u043e\u0432\u043e\u0440\u044f \u043e\u0431 AES, \u043d\u0435\u043b\u044c\u0437\u044f \u043d\u0435 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044c <a href=\"http:\/\/www.moserware.com\/2009\/09\/stick-figure-guide-to-advanced.html\" rel=\"noopener noreferrer nofollow\">\u043f\u044c\u0435\u0441\u0443 \u043f\u0440\u043e AES<\/a>, \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u2014 <a href=\"http:\/\/4.bp.blogspot.com\/_Zfbv3mHcYrc\/Sre5MXZdxnI\/AAAAAAAABoE\/KzWFtoYJbKU\/s576\/aes_act_3_scene_02_agreement_576.png\" rel=\"noopener noreferrer nofollow\">\u0430\u043a\u0442 \u0442\u0440\u0435\u0442\u0438\u0439, \u0441\u0446\u0435\u043d\u0430 \u0432\u0442\u043e\u0440\u0430\u044f<\/a>.<\/p>\n<\/div>\n<\/details>\n<h2>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0430\u0442\u0430\u043a\u0438<\/h2>\n<p>\u0411\u0443\u0434\u0435\u043c \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0434\u043b\u0438\u043d\u044b 32&#215;16 \u0431\u0430\u0439\u0442\u043e\u0432, \u043f\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0437\u0430\u0434\u0430\u0447\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A7%D1%80%D0%B5%D0%B7%D0%B2%D1%8B%D1%87%D0%B0%D0%B9%D0%BD%D0%B0%D1%8F_%D0%BF%D0%B0%D1%80%D0%B0%D0%BB%D0%BB%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C\" rel=\"noopener noreferrer nofollow\">\u0447\u0440\u0435\u0437\u0432\u044b\u0447\u0430\u0439\u043d\u043e \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0439<\/a> (Embarrassingly Parallel): \u0434\u043b\u044f \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0439\u0434\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0430 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u0433\u0440\u0443\u043f\u043f\u0430 \u043f\u043e\u0442\u043e\u043a\u043e\u0432, \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c, \u0447\u0442\u043e \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a \u043c\u043e\u0436\u0435\u0442 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u0442\u0435\u043a\u0441\u0442 \u0438 \u0447\u0438\u0442\u0430\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0448\u0438\u0444\u0440\u043e\u0442\u0435\u043a\u0441\u0442, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u0431\u043b\u0430\u0434\u0430\u0435\u0442 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u043c \u043a \u0430\u0442\u0430\u043a\u0443\u0435\u043c\u043e\u0439 \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u0435.<\/p>\n<p>\u041e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c\u0430\u044f \u0430\u0442\u0430\u043a\u0430 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 \u043a \u043a\u043b\u0430\u0441\u0441\u0443 \u0430\u0442\u0430\u043a \u043f\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0435\u043c\u0443 \u043a\u0430\u043d\u0430\u043b\u0443. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u0430 \u0438\u0441\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043c\u0430\u0433\u043d\u0438\u0442\u043d\u043e\u0435 \u0438\u0437\u043b\u0443\u0447\u0435\u043d\u0438\u0435, \u0437\u0430\u0432\u0438\u0441\u044f\u0449\u0435\u0435 \u043e\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u0432\u0435\u043b\u0438\u0447\u0438\u043d. \u041d\u0438\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d \u043a\u0440\u0430\u0442\u043a\u0438\u0439 \u043f\u043b\u0430\u043d \u0430\u0442\u0430\u043a\u0438.<\/p>\n<ol>\n<li>\n<p>\u041b\u043e\u043a\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u0447\u043a\u0443 \u043d\u0430\u0434 \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u043e\u0439, \u0438\u0441\u043f\u0443\u0441\u043a\u0430\u044e\u0449\u0435\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b;<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u0442\u0435\u043a\u0441\u0442 \u0434\u043b\u044f \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f;<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0438\u0437\u043c\u0435\u0440\u0438\u0442\u044c \u043f\u043e\u043b\u0435 \u0432 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0435;<\/p>\n<\/li>\n<li>\n<p>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0433\u043e \u043d\u0430 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u043c \u0440\u0430\u0443\u043d\u0434\u0435 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u044f \u043f\u043e \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 16 \u0431\u0430\u0439\u0442\u043e\u0432:<\/p>\n<ol>\n<li>\n<p>\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0431\u0430\u0439\u0442 \u0441 \u043d\u043e\u043c\u0435\u0440\u043e\u043c <img decoding=\"async\" class=\"formula inline\" source=\"l\" alt=\"l\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/10d\/028\/fa3\/10d028fa3ffdf11e162e54398556eb1d.svg\">;<\/p>\n<\/li>\n<li>\n<p>\u041f\u0435\u0440\u0435\u0431\u0440\u0430\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 256 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 <img decoding=\"async\" class=\"formula inline\" source=\"k^{guess}_l\" alt=\"k^{guess}_l\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b8c\/f25\/f50\/b8cf25f50b98e21a45366ed0bfe71ff3.svg\">:<\/p>\n<ol>\n<li>\n<p>\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <img decoding=\"async\" class=\"formula inline\" source=\"r_l^1\" alt=\"r_l^1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/102\/345\/b6e\/102345b6e76d3b03f50a3c2ab0c1466c.svg\"><em> \u0438 <img decoding=\"async\" class=\"formula inline\" source=\"r_l^2\" alt=\"r_l^2\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4e4\/bcd\/2fc\/4e4bcd2fc3a6b329fb7109eca691a77d.svg\"><\/em> \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e <img decoding=\"async\" class=\"formula inline\" source=\"k^{guess}_l\" alt=\"k^{guess}_l\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d25\/eb4\/b1d\/d25eb4b1d0ee55231fde7e56a1747bdc.svg\">;<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0432 \u043f\u0443\u043d\u043a\u0442\u0435 3 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u043d\u0430 \u0434\u0432\u0435 \u0433\u0440\u0443\u043f\u043f\u044b \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 <img decoding=\"async\" class=\"formula inline\" source=\"r_l^1\" alt=\"r_l^1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/8eb\/e39\/aee\/8ebe39aeede023b6480bffcceadb61c9.svg\"><em> <\/em>\u0438<em> <img decoding=\"async\" class=\"formula inline\" source=\"r_l^2\" alt=\"r_l^2\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/11b\/e4e\/410\/11be4e41006b35b827be9aaafffca664.svg\"><\/em>;<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0443 <img decoding=\"async\" class=\"formula inline\" source=\"\\Delta\" alt=\"\\Delta\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/42c\/c86\/ac4\/42cc86ac4aa31af31b5770c822acec44.svg\">, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u0434\u0430\u043d\u043d\u043e\u043c\u0443 <img decoding=\"async\" class=\"formula inline\" source=\"k^{guess}_l\" alt=\"k^{guess}_l\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4c0\/298\/5b5\/4c02985b553a71cf624808cd5b445093.svg\">;<\/p>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<p>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0438\u0441\u043a\u043e\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0431\u0430\u0439\u0442\u0430 \u043a\u0430\u043a <img decoding=\"async\" class=\"formula inline\" source=\"k_l^{guess}\" alt=\"k_l^{guess}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4c0\/a36\/579\/4c0a3657914ca14164460ea1d57ccee3.svg\">, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <img decoding=\"async\" class=\"formula inline\" source=\"\\Delta\" alt=\"\\Delta\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4b2\/694\/c13\/4b2694c1368d9f764a49713441333ffd.svg\">;<\/p>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<p>\u0417\u043d\u0430\u044f \u0432\u0441\u0435 \u0431\u0430\u0439\u0442\u044b \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0440\u0430\u0443\u043d\u0434\u043e\u0432\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430, \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043a\u043b\u044e\u0447.<\/p>\n<\/li>\n<\/ol>\n<p>\u0412 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u043c \u043f\u043b\u0430\u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0432\u0432\u0435\u0434\u0435\u043d\u044b \u043f\u043e\u0437\u0436\u0435. \u041e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0432\u0448\u0438\u0441\u044c \u0441 \u043f\u043b\u0430\u043d\u043e\u043c, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u043c\u0443 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u044e \u0448\u0430\u0433\u043e\u0432, \u043f\u043e\u0441\u043b\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0441\u0442\u0430\u043d\u0435\u0442 \u043f\u043e\u043d\u044f\u0442\u043d\u0435\u0435.<\/p>\n<h3>\u0424\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u0441\u043d\u043e\u0432\u044b<\/h3>\n<p>\u0412 \u043e\u0441\u043d\u043e\u0432\u0435 \u0430\u0442\u0430\u043a\u0438 \u043b\u0435\u0436\u0438\u0442 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 \u0437\u0430 \u0431\u043b\u0438\u0436\u043d\u0438\u043c \u043f\u043e\u043b\u0435\u043c \u2014 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043c\u0430\u0433\u043d\u0438\u0442\u043d\u044b\u043c \u0438\u0437\u043b\u0443\u0447\u0435\u043d\u0438\u0435\u043c \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438, \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0439 \u043e\u0442 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u043d\u0435 \u0431\u043e\u043b\u0435\u0435, \u0447\u0435\u043c \u043d\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"1\/2\\pi\" alt=\"1\/2\\pi\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/8fd\/168\/98c\/8fd16898c57b71639ebb891d3f003d9c.svg\"> \u0434\u043b\u0438\u043d\u044b \u0432\u043e\u043b\u043d\u044b. \u0410\u0432\u0442\u043e\u0440\u044b \u0437\u0430\u043c\u0435\u0442\u0438\u043b\u0438, \u0447\u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u044f\u0432\u043d\u0430\u044f \u0441\u0432\u044f\u0437\u044c \u043c\u0435\u0436\u0434\u0443 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c\u0438, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u043c\u0438 GPGPU, \u0438 \u0432\u0438\u0434\u043e\u043c \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043c\u0430\u0433\u043d\u0438\u0442\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044f, \u0438\u0437\u043b\u0443\u0447\u0430\u0435\u043c\u043e\u0433\u043e \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u043e\u0439. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430\u0431\u043e\u0440 \u0442\u043e\u0447\u0435\u043a, \u0441\u043d\u044f\u0442\u044b\u0445 \u0441 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0433\u043e \u043e\u0441\u0446\u0438\u043b\u043b\u043e\u0433\u0440\u0430\u0444\u0430 \u0438 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0437\u0443\u044e\u0449\u0438\u0445 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u0438\u0441\u0441\u043b\u0435\u0434\u0443\u0435\u043c\u043e\u0433\u043e \u043f\u043e\u043b\u044f \u043e\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0434\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0440\u0430\u0443\u043d\u0434\u0430 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041a\u0430\u0436\u0434\u043e\u0435 \u0442\u0430\u043a\u043e\u0435 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0435 \u0438\u043c\u0435\u0435\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0442\u043e\u0447\u0435\u043a, \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0412 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u0442\u043e\u0447\u043a\u0438 \u043e\u0442\u0441\u0447\u0435\u0442\u0430\u043c\u0438.<\/p>\n<p>\u041e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043c\u0435\u0441\u0442\u0430 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439. \u041f\u0435\u0447\u0430\u0442\u043d\u044b\u0435 \u043f\u043b\u0430\u0442\u044b, \u043a\u043e\u0438\u043c\u0438 \u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f GPGPU, \u0438\u043c\u0435\u044e\u0442 \u0432 \u0441\u0432\u043e\u0435\u043c \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u0441\u043e\u0442\u043d\u0438 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442, \u043e\u0434\u043d\u0430\u043a\u043e \u043d\u0435 \u0432\u0441\u0435 \u043e\u043d\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u043c\u0438 \u0443\u0442\u0435\u0447\u0435\u043a \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438. \u0410\u0432\u0442\u043e\u0440\u044b \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 \u0443\u0442\u0435\u0447\u0435\u043a \u043b\u0438\u0448\u044c \u0441\u0430\u043c \u0447\u0438\u043f \u0438 \u0435\u043c\u043a\u043e\u0441\u0442\u0438 \u043d\u0430 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0435\u0433\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u0435, \u0447\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0443\u0436\u0430\u0435\u0442 \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u043f\u043e\u0438\u0441\u043a\u0430. \u0414\u0430\u043b\u0435\u0435 \u0432 \u0446\u0438\u043a\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0438 \u0442\u043e\u0433\u043e \u0436\u0435 \u0442\u0435\u043a\u0441\u0442\u0430 \u0438 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u0442\u0441\u044f \u0432\u0438\u0434 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u043d\u0430 \u043e\u0441\u0446\u0438\u043b\u043b\u043e\u0433\u0440\u0430\u0444\u0435 \u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0442\u043e\u0447\u043a\u0430\u0445 \u0432\u0431\u043b\u0438\u0437\u0438 GPGPU. \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a \u0443\u0432\u0438\u0434\u0438\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0439\u0441\u044f \u0441\u0438\u0433\u043d\u0430\u043b, \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0435\u043a\u0440\u0430\u0442\u0438\u0442\u044c \u043f\u043e\u0438\u0441\u043a\u0438 \u0438 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0435 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u0432 \u044d\u0442\u043e\u0439 \u0442\u043e\u0447\u043a\u0435.<\/p>\n<h3>\u041a\u044d\u0448-\u043a\u043e\u043b\u043b\u0438\u0437\u0438\u0438<\/h3>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u043d\u0430\u0434\u0435\u0436\u043d\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e\u0449\u0435\u0439 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u043c\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b, \u0430\u0432\u0442\u043e\u0440\u044b \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044e\u0442 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043a\u044d\u0448-\u043a\u043e\u043b\u043b\u0438\u0437\u0438\u044e (Simultaneous Cache Collision, <abbr title=\"Simultaneous Cache Collision\">SCC<\/abbr>). \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0432\u0441\u0435 \u043f\u043e\u0442\u043e\u043a\u0438, \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0449\u0438\u0435 \u043e\u0434\u043d\u043e\u0439 warp-\u0433\u0440\u0443\u043f\u043f\u0435, \u043c\u043e\u0433\u0443\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a \u0434\u0430\u043d\u043d\u044b\u043c, \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u043c\u0441\u044f \u0432 \u043e\u0434\u043d\u043e\u0439 (\u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 <abbr title=\"Simultaneous Cache Collision\">SCC<\/abbr>) \u0438\u043b\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 (<abbr title=\"Simultaneous Cache Collision\">SCC<\/abbr> \u043d\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442) \u043a\u044d\u0448-\u043b\u0438\u043d\u0438\u044f\u0445. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043c\u0430\u0433\u043d\u0438\u0442\u043d\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f.<\/p>\n<p>\u0417\u0430\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u0434\u043b\u0438\u043d\u0430 \u043a\u044d\u0448-\u043b\u0438\u043d\u0438\u0438 GPGPU \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b Fermi, \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u043c\u043e\u0439 \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0435, \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 128 \u0431\u0430\u0439\u0442\u043e\u0432. \u0420\u0430\u0437\u043c\u0435\u0440 \u0436\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b SBoxLUT, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0439 \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 SubBytes, \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 256 \u0431\u0430\u0439\u0442\u043e\u0432, \u0442\u043e \u0435\u0441\u0442\u044c \u0434\u043b\u044f \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u0432\u0435 \u043a\u0435\u0448-\u043b\u0438\u043d\u0438\u0438, \u043f\u043e \u043e\u0434\u043d\u043e\u0439 \u043d\u0430 \u043f\u0435\u0440\u0432\u0443\u044e \u0438 \u0432\u0442\u043e\u0440\u0443\u044e \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443. \u041e\u0442\u0441\u044e\u0434\u0430 \u0436\u0435 \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043d\u0430\u043b\u0438\u0447\u0438\u0435 <abbr title=\"Simultaneous Cache Collision\">SCC<\/abbr> \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e\u0431 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0438 \u0432\u0441\u0435\u043c\u0438 \u043f\u043e\u0442\u043e\u043a\u0430\u043c\u0438 \u043a SBoxLUT \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c \u043b\u0438\u0431\u043e \u0438\u0437 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"D_1 = \\{0~..~127\\}\" alt=\"D_1 = \\{0~..~127\\}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/825\/cff\/bde\/825cffbde91671924e9aee6c09f8a869.svg\">, \u043b\u0438\u0431\u043e \u0438\u0437 <img decoding=\"async\" class=\"formula inline\" source=\"D_2 = \\{128~..~255\\}\" alt=\"D_2 = \\{128~..~255\\}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/384\/77c\/1ca\/38477c1cab420fd1c899cfc8f628e754.svg\">.<\/p>\n<h3>\u0410\u0442\u0430\u043a\u0430<\/h3>\n<h4>\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0443\u0442\u0435\u0447\u043a\u0438<\/h4>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0440\u0430\u0443\u043d\u0434 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0435\u043a\u0441\u0442\u0430. \u041e\u043d \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435\u043c:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"c_l = SBox(r_l) \\oplus k_l, ~l \\in \\{0, 1, ..., 15\\},\" alt=\"c_l = SBox(r_l) \\oplus k_l, ~l \\in \\{0, 1, ..., 15\\},\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/126\/6ce\/eb3\/1266ceeb36292b0861a3c1e6b42addd4.svg\" width=\"280\" height=\"20\"><\/p>\n<p>\u0433\u0434\u0435 <img decoding=\"async\" class=\"formula inline\" source=\"c_{l}\" alt=\"c_{l}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/95f\/3ef\/246\/95f3ef246435fc07472f6db0594bb54b.svg\"> \u0438 <img decoding=\"async\" class=\"formula inline\" source=\"k_{l}\" alt=\"k_{l}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/46a\/4a7\/f2b\/46a4a7f2bf2fc84880d414f86fb25cff.svg\">\u2014 <img decoding=\"async\" class=\"formula inline\" source=\"l\" alt=\"l\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/05c\/19d\/0a3\/05c19d0a3920bbe71911bd600bcbbf5d.svg\">-\u044b\u0439 \u0431\u0430\u0439\u0442 \u0448\u0438\u0444\u0440\u043e\u0442\u0435\u043a\u0441\u0442\u0430 \u0438 <img decoding=\"async\" class=\"formula inline\" source=\"l\" alt=\"l\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/de7\/ffb\/27d\/de7ffb27d9e10332b1ec82b364cf5f13.svg\">-\u044b\u0439 \u0431\u0430\u0439\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0440\u0430\u0443\u043d\u0434\u043e\u0432\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0430 <img decoding=\"async\" class=\"formula inline\" source=\"r_{l}\" alt=\"r_{l}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5e0\/0cd\/2a9\/5e00cd2a9c1ed55a909d5ad4b730fe42.svg\"><em> <\/em>\u2014 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u0417\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c, \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u043a\u043b\u044e\u0447 <img decoding=\"async\" class=\"formula inline\" source=\"k^{guess}\" alt=\"k^{guess}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/080\/340\/0cd\/0803400cd71b353a76205a5c60611d27.svg\">. \u0412 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0437\u043d\u0430\u044f <img decoding=\"async\" class=\"formula inline\" source=\"c_{l}\" alt=\"c_{l}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ab2\/a9e\/dc6\/ab2a9edc6ffd0d4c6a7686d3f4832c42.svg\">, \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0443 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0431\u0430\u0439\u0442\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"r_{l}\" alt=\"r_{l}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/bb4\/2b1\/f7c\/bb42b1f7cb2528740f97df204c040235.svg\">:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"r_l = InvSBox(c_l \\oplus k^{guess}_l),~l \\in \\{0, 1, ..., 15\\},\" alt=\"r_l = InvSBox(c_l \\oplus k^{guess}_l),~l \\in \\{0, 1, ..., 15\\},\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d3c\/3e1\/b0f\/d3c3e1b0f7e1767282c203815d84890a.svg\" width=\"334\" height=\"22\"><\/p>\n<p>\u0433\u0434\u0435 InvSBox \u2014 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0437\u0430\u043c\u0435\u043d\u044b, \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430\u044f \u0438\u0437 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430 \u0438 \u043e\u0431\u043b\u0430\u0434\u0430\u044e\u0449\u0430\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e\u043c <img decoding=\"async\" class=\"formula inline\" source=\"InvSBox( SBox(i) ) = i\" alt=\"InvSBox( SBox(i) ) = i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3af\/fd4\/cae\/3affd4caef120492e72f566105a8bf02.svg\">, \u0430 <img decoding=\"async\" class=\"formula inline\" source=\"k^{guess}_l\" alt=\"k^{guess}_l\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0c5\/0d1\/cca\/0c50d1cca6cbf52f6621b364d255be9b.svg\">\u2014 <img decoding=\"async\" class=\"formula inline\" source=\"l\" alt=\"l\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cab\/9db\/67f\/cab9db67fc397d5f0169b534a9a663fa.svg\">-\u044b\u0439 \u0431\u0430\u0439\u0442 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u043c\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430<img decoding=\"async\" class=\"formula inline\" source=\"k^{guess}\" alt=\"k^{guess}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f58\/ff5\/1e8\/f58ff51e83e289eead2e12d25d8aeaed.svg\">. \u041c\u044b \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043b\u0438, \u0447\u0442\u043e \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a \u043c\u043e\u0436\u0435\u0442 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u0442\u0435\u043a\u0441\u0442. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u0442\u0435\u043a\u0441\u0442, \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u0432\u0441\u0435\u0433\u043e \u0438\u0437 \u0434\u0432\u0443\u0445 \u0442\u0438\u043f\u043e\u0432 \u0431\u043b\u043e\u043a\u043e\u0432. \u041f\u0440\u0438 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0442\u0430\u043a\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <img decoding=\"async\" class=\"formula inline\" source=\"l\" alt=\"l\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ea6\/f0f\/2fe\/ea6f0f2fed51d16f839cef50e4cd9d97.svg\">-\u0433\u043e \u0431\u0430\u0439\u0442\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"r_{l}\" alt=\"r_{l}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0be\/4dd\/0cd\/0be4dd0cdaa5869971538ba5b7c1a8d5.svg\">, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u043a\u0430\u0436\u0434\u044b\u043c \u0438\u0437 \u043f\u043e\u0442\u043e\u043a\u043e\u0432, \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0432\u0441\u0435\u0433\u043e \u0434\u0432\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f: <img decoding=\"async\" class=\"formula inline\" source=\"r_{l}^1\" alt=\"r_{l}^1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e77\/53e\/23b\/e7753e23bb04e1e83d4559866e06b4fe.svg\"> \u0438 <img decoding=\"async\" class=\"formula inline\" source=\"r_{l}^2\" alt=\"r_{l}^2\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c17\/0f3\/8e2\/c170f38e2967b725a7c3ab0d6e960ac3.svg\">. \u0411\u0443\u0434\u0443\u0447\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u0442\u0430\u0431\u043b\u0438\u0446\u0435 SBoxLUT, \u043e\u043d\u0438 \u043b\u0438\u0431\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0443\u0442 \u043a \u043a\u044d\u0448-\u043a\u043e\u043b\u043b\u0438\u0437\u0438\u0438, \u043b\u0438\u0431\u043e \u043d\u0435\u0442. \u0417\u043d\u0430\u044f <img decoding=\"async\" class=\"formula inline\" source=\"r_{l}^1\" alt=\"r_{l}^1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/709\/35e\/224\/70935e224f7e0b7ffb99e16f249c71bb.svg\"> \u0438 <img decoding=\"async\" class=\"formula inline\" source=\"r_{l}^2\" alt=\"r_{l}^2\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/67b\/dfc\/ca1\/67bdfcca11c138e98f7c953c6d31a2c7.svg\">, \u043e\u0442\u043b\u0438\u0447\u0438\u0442\u044c \u044d\u0442\u0438 \u0441\u043b\u0443\u0447\u0430\u0438 \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u043e: \u043a\u043e\u043b\u043b\u0438\u0437\u0438\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u0433\u0434\u0430 \u043e\u0431\u0435 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u044b \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0442 \u043e\u0434\u043d\u043e\u043c\u0443 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0443: <img decoding=\"async\" class=\"formula inline\" source=\"D_1\" alt=\"D_1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/8d4\/5bd\/824\/8d45bd8242baffd3516f9708665222cf.svg\">\u0438\u043b\u0438 <img decoding=\"async\" class=\"formula inline\" source=\"D_2\" alt=\"D_2\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a0f\/c9d\/a00\/a0fc9da00b631b1b0372c0ac6da2b9ce.svg\">.<\/p>\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 \u042d\u041c-\u043f\u043e\u043b\u044f \u043d\u0430 \u0434\u0432\u0435 \u0433\u0440\u0443\u043f\u043f\u044b <img decoding=\"async\" class=\"formula inline\" source=\"G_1\" alt=\"G_1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d16\/68c\/9fb\/d1668c9fb15faa4544c01c9e9657d1f2.svg\"> \u0438 <img decoding=\"async\" class=\"formula inline\" source=\"G_2\" alt=\"G_2\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9a0\/d22\/0dc\/9a0d220dc8c8251882fdd58ab2975fdd.svg\">\u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u043c <img decoding=\"async\" class=\"formula inline\" source=\"r_l^1\" alt=\"r_l^1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e1d\/8a7\/e65\/e1d8a7e65fef560d67566add62b5268d.svg\"> \u0438 <img decoding=\"async\" class=\"formula inline\" source=\"r_l^2\" alt=\"r_l^2\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d8c\/10e\/383\/d8c10e383d17ed208b68fe04f9b01fba.svg\">: \u0433\u0434\u0435 \u043a\u043e\u043b\u043b\u0438\u0437\u0438\u0438 \u0431\u044b\u043b\u0438 \u0438 \u0433\u0434\u0435 \u0438\u0445 \u043d\u0435 \u0431\u044b\u043b\u043e. \u0424\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0442\u0430\u043a:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"G_1 = \\{ \\vec{T_i}~|~(r_l^1 \\in D_1~\\text{\u0438}~r_l^2 \\in D_1)~\\text{\u0438\u043b\u0438}~(r_l^1 \\in D_2~\\text{\u0438}~r_l^2 \\in D_2) \\},\" alt=\"G_1 = \\{ \\vec{T_i}~|~(r_l^1 \\in D_1~\\text{\u0438}~r_l^2 \\in D_1)~\\text{\u0438\u043b\u0438}~(r_l^1 \\in D_2~\\text{\u0438}~r_l^2 \\in D_2) \\},\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d6d\/b87\/3a7\/d6db873a7e59950a5139a09dff539480.svg\" width=\"433\" height=\"32\"><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"G_2 = \\{ \\vec{T_i}~|~(r_l^1 \\in D_1~\\text{\u0438}~r_l^2 \\in D_2)~\\text{\u0438\u043b\u0438}~(r_l^1 \\in D_2~\\text{\u0438}~r_l^2 \\in D_1) \\},\" alt=\"G_2 = \\{ \\vec{T_i}~|~(r_l^1 \\in D_1~\\text{\u0438}~r_l^2 \\in D_2)~\\text{\u0438\u043b\u0438}~(r_l^1 \\in D_2~\\text{\u0438}~r_l^2 \\in D_1) \\},\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f97\/a88\/5bf\/f97a885bf44a16895f2b4ed636ae18e8.svg\" width=\"433\" height=\"32\"><\/p>\n<p>\u0433\u0434\u0435 \u043f\u043e\u0434 <img decoding=\"async\" class=\"formula inline\" source=\"\\vec{T_i}\" alt=\"\\vec{T_i}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cdc\/82d\/0c7\/cdc82d0c7d2ef3c743b21e9f13746180.svg\"> \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0431\u043e\u0440 \u0442\u043e\u0447\u0435\u043a, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043e\u0434\u043d\u043e\u043c\u0443 \u0440\u0430\u0443\u043d\u0434\u0443 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u0410\u0432\u0442\u043e\u0440\u044b \u0437\u0430\u043c\u0435\u0442\u0438\u043b\u0438, \u0447\u0442\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u044b, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043d\u0430\u043b\u0438\u0447\u0438\u044e \u043a\u043e\u043b\u043b\u0438\u0437\u0438\u0438, \u043f\u043e\u0445\u043e\u0436\u0438 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439, \u043d\u043e \u0441\u0438\u043b\u044c\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u043e\u0442 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u0432 \u0435\u0451 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435, \u0438 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0443<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\vec{\\Delta} = \\left| \\frac{1}{n_1}\\sum_{\\vec{T_i} \\in G_1} \\vec{T_i} - \\frac{1}{n_2}\\sum_{\\vec{T_i} \\in G_2} \\vec{T_i} \\right|,\" alt=\"\\vec{\\Delta} = \\left| \\frac{1}{n_1}\\sum_{\\vec{T_i} \\in G_1} \\vec{T_i} - \\frac{1}{n_2}\\sum_{\\vec{T_i} \\in G_2} \\vec{T_i} \\right|,\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/369\/ec9\/c80\/369ec9c805fd815f84349d93fa895a10.svg\" width=\"241\" height=\"72\"><\/p>\n<p>\u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0443\u044e, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0438\u043b\u044c\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u0441\u0440\u0435\u0434\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432, \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u043d\u044b\u0445 \u0432 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"G_1\" alt=\"G_1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b45\/a41\/40a\/b45a4140ac1c15f17cad9782feebf028.svg\">\u0438 <img decoding=\"async\" class=\"formula inline\" source=\"G_2\" alt=\"G_2\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/bd3\/cc4\/235\/bd3cc4235624c10f058dae638640217e.svg\">. \u041f\u043e\u0434 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0435\u0439 \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u0434\u0435\u0441\u044c \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043e\u0442\u0441\u0447\u0435\u0442\u043e\u0432 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432, \u0430 \u043f\u043e\u0434 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438 <img decoding=\"async\" class=\"formula inline\" source=\"n_1\" alt=\"n_1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ca3\/f69\/73f\/ca3f6973f3d8bef9f059711db4faa68d.svg\"> \u0438 <img decoding=\"async\" class=\"formula inline\" source=\"n_2\" alt=\"n_2\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7b4\/27d\/b28\/7b427db287c190fbaef2dcf66c428c94.svg\"> \u2014 \u043c\u043e\u0449\u043d\u043e\u0441\u0442\u0438 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432 <img decoding=\"async\" class=\"formula inline\" source=\"G_1\" alt=\"G_1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fe3\/928\/d2c\/fe3928d2c65584824b1990a89aff65b4.svg\"> \u0438 <img decoding=\"async\" class=\"formula inline\" source=\"G_2\" alt=\"G_2\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/46a\/1cf\/697\/46a1cf697f4bc582bc09ae4f917714ac.svg\">, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u0417\u0434\u0435\u0441\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u043d\u0430 \u0433\u0440\u0443\u043f\u043f\u044b \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 <img decoding=\"async\" class=\"formula inline\" source=\"k^{guess}_l\" alt=\"k^{guess}_l\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9ab\/e7b\/9cc\/9abe7b9cc6848a818d0ddecc3e36b806.svg\">, \u0442\u043e \u0438 <img decoding=\"async\" class=\"formula inline\" source=\"\\vec{\\Delta}\" alt=\"\\vec{\\Delta}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/548\/36f\/4c9\/54836f4c965f6a97f3077ecdc1cfb53e.svg\"> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 \u043e\u0442 <img decoding=\"async\" class=\"formula inline\" source=\"k^{guess}_l\" alt=\"k^{guess}_l\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b27\/805\/1ba\/b278051bada05bacabc3dd8db191e292.svg\">: <img decoding=\"async\" class=\"formula inline\" source=\"\\vec{\\Delta} = \\vec{\\Delta}(k^{guess}_l)\" alt=\"\\vec{\\Delta} = \\vec{\\Delta}(k^{guess}_l)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2f4\/1d0\/c2d\/2f41d0c2de08e2944f6aeccc09de379d.svg\">.<\/p>\n<h4>\u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043b\u044e\u0447\u0430<\/h4>\n<p>\u0415\u0441\u043b\u0438 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u043c\u044b\u0439 \u043a\u043b\u044e\u0447 <img decoding=\"async\" class=\"formula inline\" source=\"k^{guess}\" alt=\"k^{guess}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ded\/c12\/af9\/dedc12af9967dccb085adfc7b54e421a.svg\"> \u0441\u043e\u0432\u043f\u0430\u043b \u0441 \u043a\u043b\u044e\u0447\u043e\u043c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0434\u043b\u044f \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0442\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <img decoding=\"async\" class=\"formula inline\" source=\"r_l^1\" alt=\"r_l^1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9db\/1f8\/c3b\/9db1f8c3b55ba5c9a15be8bee03765fc.svg\"> \u0438 <img decoding=\"async\" class=\"formula inline\" source=\"r_l^2\" alt=\"r_l^2\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/319\/31f\/90c\/31931f90cfafb11eff0e7cdafe507726.svg\"> \u0441\u043e\u0432\u043f\u0430\u0434\u0443\u0442 \u0441 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u043f\u0440\u0438 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0438, \u0438 \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a \u0432\u0435\u0440\u043d\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442 \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u043f\u043e \u0433\u0440\u0443\u043f\u043f\u0430\u043c. \u041d\u0430\u043e\u0431\u043e\u0440\u043e\u0442, \u043f\u0440\u0438 \u043e\u0448\u0438\u0431\u043e\u0447\u043d\u043e\u043c \u0432\u044b\u0431\u043e\u0440\u0435 <img decoding=\"async\" class=\"formula inline\" source=\"k_{guess}\" alt=\"k_{guess}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/11e\/741\/b13\/11e741b13b79d39c1417f7489d20df1a.svg\">\u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u0433\u0440\u0443\u043f\u043f\u044b \u043f\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u043c \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c <img decoding=\"async\" class=\"formula inline\" source=\"r_l^1\" alt=\"r_l^1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/052\/1ee\/822\/0521ee822f6065fb4f67e3319b03be4a.svg\"> \u0438 <img decoding=\"async\" class=\"formula inline\" source=\"r_l^2\" alt=\"r_l^2\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/348\/71a\/eab\/34871aeaba5170ace3bd09b19e5cc745.svg\"> \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u043a \u0440\u0430\u0432\u043d\u043e\u043c\u0435\u0440\u043d\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u0448\u0430\u043d\u043d\u044b\u043c \u0441\u0438\u0433\u043d\u0430\u043b\u0430\u043c. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 <img decoding=\"async\" class=\"formula inline\" source=\"\\vec{\\Delta}(k^{guess}_l)\" alt=\"\\vec{\\Delta}(k^{guess}_l)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/068\/ef5\/6a0\/068ef56a048283858ade231a60b2fcb1.svg\"> \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u043f\u0440\u0435\u0432\u043e\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u043c. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0434\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f <img decoding=\"async\" class=\"formula inline\" source=\"l\" alt=\"l\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4e5\/cac\/99b\/4e5cac99b3639bac11964be81bd0a84b.svg\">-\u0433\u043e \u0431\u0430\u0439\u0442\u0430 \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430 \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a\u0443 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0431\u0440\u0430\u0442\u044c 256 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0438 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0442\u043e, \u043f\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u043c <img decoding=\"async\" class=\"formula inline\" source=\"\\vec{\\Delta}(k^{guess}_l)\" alt=\"\\vec{\\Delta}(k^{guess}_l)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0c5\/4dc\/56a\/0c54dc56a2a8c090aad0a3cc8c739467.svg\"> \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u0414\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0430\u0432\u0442\u043e\u0440\u044b \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\DeclareMathOperator*{\\argmax}{argmax} k_l^{correct} = \\argmax_k \\left( \\max_{k\\in\\{0~..~255\\}} \\left( \\max_{i} \\Delta_i \\right) \\right),\" alt=\"\\DeclareMathOperator*{\\argmax}{argmax} k_l^{correct} = \\argmax_k \\left( \\max_{k\\in\\{0~..~255\\}} \\left( \\max_{i} \\Delta_i \\right) \\right),\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/87f\/905\/d62\/87f905d621bd4bb1ed93ff43c491055d.svg\" width=\"307\" height=\"44\"><\/p>\n<p>\u0433\u0434\u0435 <img decoding=\"async\" class=\"formula inline\" source=\"\\Delta_i\" alt=\"\\Delta_i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/8f9\/ac9\/6ef\/8f9ac96ef182b680e967c365aa963b1c.svg\"> \u2014 <img decoding=\"async\" class=\"formula inline\" source=\"i\" alt=\"i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/071\/09a\/58f\/07109a58f6262ea4d7541eed80e5a54f.svg\">-\u044f \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"\\vec{\\Delta}\" alt=\"\\vec{\\Delta}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f35\/a38\/484\/f35a384840b871791f322a1936688308.svg\">. \u0424\u043e\u0440\u043c\u0443\u043b\u0430 \u043b\u0435\u0433\u043a\u043e \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f: \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0438\u0437 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 <img decoding=\"async\" class=\"formula inline\" source=\"k\" alt=\"k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b04\/3ef\/13b\/b043ef13b7ebc2b4c007bea5f886cb31.svg\"> \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u0435\u043a\u0442\u043e\u0440 <img decoding=\"async\" class=\"formula inline\" source=\"\\vec{\\Delta}(k)\" alt=\"\\vec{\\Delta}(k)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c2c\/bbf\/7fd\/c2cbbf7fd5f4f348f8b8b113878c388a.svg\">\u0441 \u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0435\u0439 <img decoding=\"async\" class=\"formula inline\" source=\"i\" alt=\"i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d05\/9f3\/05e\/d059f305e277a1bf5f7d6ec20726f0e0.svg\">-\u043e\u0439 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0439. \u0417\u0430\u043f\u043e\u043c\u043d\u0438\u0432 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b, \u0438\u0437 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0445 256 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043d\u0443\u0436\u043d\u043e \u0441\u043d\u043e\u0432\u0430 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0435\u0435. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u0435\u043c\u0443 <img decoding=\"async\" class=\"formula inline\" source=\"k\" alt=\"k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d80\/031\/da3\/d80031da3165126e7f56dcecc14fe934.svg\"> \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0437\u0430 \u0438\u0441\u043a\u043e\u043c\u044b\u0439 \u0431\u0430\u0439\u0442 \u043a\u043b\u044e\u0447\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"k^{correct}_l\" alt=\"k^{correct}_l\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/aed\/a4d\/e6c\/aeda4de6ca992784b409b6a87adfce4c.svg\">. \u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0432 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u0443\u044e \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e <img decoding=\"async\" class=\"formula inline\" source=\"l \\in \\{ 0~..~15 \\}\" alt=\"l \\in \\{ 0~..~15 \\}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a2f\/95d\/3a4\/a2f95d3a4c0944f119467bd0807c6aef.svg\">, \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a \u0441\u043c\u043e\u0436\u0435\u0442 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0440\u0430\u0443\u043d\u0434\u043e\u0432\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430 \u0432 \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u0438. \u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0433\u043e \u043f\u0440\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044f, \u0438\u0437 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0440\u0430\u0443\u043d\u0434\u043e\u0432\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430 \u0434\u043b\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 AES-128 \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d \u0438 \u0443\u0436\u0435 \u043e\u0431\u0441\u0443\u0436\u0434\u0430\u043b\u0441\u044f <a href=\"https:\/\/crypto.stackexchange.com\/questions\/15200\/how-secure-is-the-aes-master-key-if-round-keys-are-founda\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a> \u0438\u043b\u0438 <a href=\"https:\/\/crypto.stackexchange.com\/questions\/50543\/in-aes-keyschedule-infer-all-round-keys-and-cipher-key-from-last-round-key\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n<p>\u0412 \u0440\u0430\u0431\u043e\u0442\u0435 \u0430\u0432\u0442\u043e\u0440\u044b \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442, \u0447\u0442\u043e \u0434\u043b\u044f \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0433\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043b\u044e\u0447\u0430 \u0442\u0430\u043a\u0438\u043c \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u0440\u044f\u0434\u043a\u0430 1000 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0439, \u0447\u0442\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043f\u043e\u0440\u044f\u0434\u043a\u0430 100 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434. \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043a\u043b\u044e\u0447\u0435\u0439 <a href=\"https:\/\/eprint.iacr.org\/2011\/610.pdf\" rel=\"noopener noreferrer nofollow\">KEA<\/a> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u0442\u044c \u0447\u0438\u0441\u043b\u043e \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 \u0434\u043e 600.<\/p>\n<p>\u0421\u0435\u0439\u0447\u0430\u0441, \u0438\u0437\u0443\u0447\u0438\u0432 \u0430\u0442\u0430\u043a\u0443 \u0432 \u0434\u0435\u0442\u0430\u043b\u044f\u0445, \u0441\u0442\u043e\u0438\u0442 \u0435\u0449\u0451 \u0440\u0430\u0437 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u0435\u0451 \u043f\u043b\u0430\u043d \u2014 \u0442\u0435\u043f\u0435\u0440\u044c \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u0435\u0435.<\/p>\n<h2>\u0412\u043c\u0435\u0441\u0442\u043e \u0437\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f<\/h2>\n<p>\u041d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u043b\u0438\u0448\u044c \u043e\u0431 \u043e\u0434\u043d\u043e\u0439 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439 \u0430\u0442\u0430\u043a\u0435, \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c. \u042d\u0442\u0443 \u0430\u0442\u0430\u043a\u0443 \u043f\u0440\u043e\u0432\u0435\u043b\u0438 \u0441\u0430\u043c\u0438 \u0430\u0432\u0442\u043e\u0440\u044b \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0442\u0430\u043a\u0443\u0435\u043c\u043e\u0439 \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u044b \u0431\u044b\u043b\u0430 \u0432\u044b\u0431\u0440\u0430\u043d\u0430 Nvidia GeForce GT 620 \u0441 \u043e\u0431\u044a\u0435\u043c\u043e\u043c \u0432\u0438\u0434\u0435\u043e\u043f\u0430\u043c\u044f\u0442\u0438 454MiB. \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0430\u044f \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u2014 <a href=\"https:\/\/tls.mbed.org\" rel=\"noopener noreferrer nofollow\">PolarSSL<\/a>. \u0414\u043b\u044f \u0434\u0435\u0442\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043c\u0430\u0433\u043d\u0438\u0442\u043d\u044b\u0445 \u0441\u043b\u0435\u0434\u043e\u0432 \u0430\u0432\u0442\u043e\u0440\u0430\u043c\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u043e\u0441\u0446\u0438\u043b\u043b\u043e\u0433\u0440\u0430\u0444 Agilent KeySight DSO9104A \u0441 \u043f\u0440\u043e\u0431\u043d\u0438\u043a\u043e\u043c \u043c\u0430\u0433\u043d\u0438\u0442\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044f Rohde&amp;Schwarz RF B.<\/p>\n<p>\u0414\u0430\u043d\u043d\u0430\u044f \u0430\u0442\u0430\u043a\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u0437\u043d\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0440\u0430\u0443\u043d\u0434\u043e\u0432\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f AES-128 \u044d\u0442\u043e\u0433\u043e <a href=\"https:\/\/crypto.stackexchange.com\/questions\/50543\/in-aes-keyschedule-infer-all-round-keys-and-cipher-key-from-last-round-key\" rel=\"noopener noreferrer nofollow\">\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e<\/a>, \u0447\u0442\u043e\u0431\u044b \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430, \u043e\u0434\u043d\u0430\u043a\u043e \u0432\u0435\u0440\u0441\u0438\u0438 AES-192 \u0438 AES-256 \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u044b\u043c\u0438 \u043a \u0432\u0437\u043b\u043e\u043c\u0443 \u0434\u0430\u043d\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0437\u043d\u0430\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0440\u0430\u0443\u043d\u0434\u043e\u0432\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430 AES-256 \u043b\u0438\u0448\u044c \u0441\u0443\u0436\u0430\u0435\u0442 \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0441 2<sup>256<\/sup> \u0434\u043e 2<sup>128<\/sup>, \u0438 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0439 \u043f\u043e\u0434\u0431\u043e\u0440 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0438\u043c.<\/p>\n<p>\u0410\u0442\u0430\u043a\u0430 \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0435 \u042d\u041c-\u0443\u0442\u0435\u0447\u0435\u043a \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043a \u0432\u0437\u043b\u043e\u043c\u0443 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 GPGPU \u0438 \u0432\u043e \u043c\u043d\u043e\u0433\u043e\u043c \u043f\u0440\u0435\u0432\u043e\u0441\u0445\u043e\u0434\u0438\u0442 \u0434\u0440\u0443\u0433\u0438\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u0430\u0442\u0430\u043a\u0438 \u043f\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0435\u043c\u0443 \u043a\u0430\u043d\u0430\u043b\u0443. \u0422\u0430\u043a, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u043d\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043d\u0430 \u0442\u0440\u0438 \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u043c\u0435\u043d\u044c\u0448\u0435 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439, \u0447\u0435\u043c \u0430\u0442\u0430\u043a\u0430, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u0430\u044f \u0432 \u043f\u043e\u0445\u043e\u0436\u0435\u0439 <a href=\"https:\/\/ieeexplore.ieee.org\/document\/7357115\" rel=\"noopener noreferrer nofollow\">\u0440\u0430\u0431\u043e\u0442\u0435<\/a>.<\/p>\n<p>\u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0430\u0442\u0430\u043a\u0438 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0436\u0438\u0437\u043d\u0438 \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0437\u0430\u0442\u0440\u0443\u0434\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u043e\u043d\u0430 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439 \u0441 \u043d\u0430\u0443\u0447\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0438 \u043c\u043e\u0436\u0435\u0442 \u0434\u0430\u0442\u044c \u0442\u043e\u043b\u0447\u043e\u043a \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c\u0443 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044e \u0438\u0434\u0435\u0439 \u0432 \u0438\u0441\u0441\u043b\u0435\u0434\u0443\u0435\u043c\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438. <\/p>\n<p>P.S. \u041d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043e\u0442\u043b\u0438\u0447\u0438\u044f \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0444\u043e\u0440\u043c\u0443\u043b \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435 \u0438 \u043f\u0440\u0438 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435 \u043f\u043e\u0441\u0442\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u0434\u0438\u0432\u0438\u043b\u044f\u044e\u0442, \u0432 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u044e\u0441\u044c \u0441 \u044d\u0442\u0438\u043c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f.<\/p>\n<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/533012\/\"> https:\/\/habr.com\/ru\/post\/533012\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0421\u043b\u043e\u0432\u043e &#171;\u0445\u0430\u043a\u0435\u0440&#187; \u043e\u0431\u0440\u0435\u043b\u043e \u0441\u0432\u043e\u0435 \u043d\u044b\u043d\u0435\u0448\u043d\u0435\u0435 \u0437\u0432\u0443\u0447\u0430\u043d\u0438\u0435 \u043b\u0438\u0448\u044c \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0435 XX \u0432\u0435\u043a\u0430 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0436\u0443\u0440\u043d\u0430\u043b\u0438\u0441\u0442\u0430\u043c. \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0445\u0430\u043a\u0435\u0440\u0430\u043c\u0438 \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043b\u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u043e\u0432, \u043e\u0431\u043b\u0430\u0434\u0430\u044e\u0449\u0438\u0445 \u043e\u0431\u0448\u0438\u0440\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u043d\u0438\u044f\u043c\u0438 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u0445 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u0438 \u0443\u043c\u0435\u044e\u0449\u0438\u0445 \u0432\u0438\u0440\u0442\u0443\u043e\u0437\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0438\u0445. \u0418\u043c\u0435\u043d\u043d\u043e \u043e \u0434\u0435\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0433\u0440\u0443\u043f\u043f \u0442\u0430\u043a\u0438\u0445 \u0445\u0430\u043a\u0435\u0440\u043e\u0432 \u043f\u043e\u0439\u0434\u0435\u0442 \u0440\u0435\u0447\u044c \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435.<\/p>\n<h2>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h2>\n<p>\u0412 2007 \u0433\u043e\u0434\u0443 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Nvidia \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0430 \u043f\u0435\u0440\u0432\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e CUDA \u2014 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e-\u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u0443\u044e \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0443\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u0435\u043b\u0438 \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u0437\u0430\u0434\u0430\u0447, \u043d\u0435\u0436\u0435\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439. \u041f\u0435\u0440\u0435\u0432\u0435\u0434\u044f \u0441\u0432\u043e\u0438 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u044b \u0438\u0437 \u0440\u0430\u0437\u0440\u044f\u0434\u0430 GPU \u0432 \u0440\u0430\u0437\u0440\u044f\u0434 <abbr title=\"General Purpose GPU\">GPGPU<\/abbr> (General Purpose GPU), Nvidia \u0441\u0434\u0435\u043b\u0430\u043b\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u043d\u043e-\u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0435\u0435 \u0434\u043b\u044f \u0448\u0438\u0440\u043e\u043a\u043e\u0433\u043e \u043a\u0440\u0443\u0433\u0430 \u0437\u0430\u0434\u0430\u0447. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u0432\u0438\u0434\u0435\u043e\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u044b \u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u044b \u043a \u0437\u0430\u0434\u0430\u0447\u0430\u043c \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u044c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043a\u0430\u043a \u0438 \u043b\u044e\u0431\u044b\u0435 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u044b \u0438\u0437\u043b\u0443\u0447\u0430\u044e\u0442 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043c\u0430\u0433\u043d\u0438\u0442\u043d\u044b\u0435 \u0432\u043e\u043b\u043d\u044b, \u0438 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440 \u044d\u0442\u043e\u0433\u043e \u0438\u0437\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430. \u041f\u0440\u0438\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 \u0437\u0430 \u0442\u0430\u043a\u0438\u043c \u0438\u0437\u043b\u0443\u0447\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u043e \u0433\u0440\u0443\u043f\u043f\u0435 \u0443\u0447\u0435\u043d\u044b\u0445 \u0438\u0437 <abbr title=\" University of Chinese Academy of Sciences\">UCAS<\/abbr> <a href=\"https:\/\/ieeexplore.ieee.org\/document\/8455921\" rel=\"noopener noreferrer nofollow\">\u0432\u0437\u043b\u043e\u043c\u0430\u0442\u044c<\/a> \u0448\u0438\u0444\u0440 AES, \u0443\u0437\u043d\u0430\u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430.<\/p>\n<h2>\u041a\u0440\u0430\u0442\u043a\u043e\u0435 \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0435<\/h2>\n<p>\u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043a \u0430\u0442\u0430\u043a\u0435, \u043d\u0435\u043b\u0438\u0448\u043d\u0438\u043c \u0431\u0443\u0434\u0435\u0442 \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0442\u044c \u043e\u0441\u043d\u043e\u0432\u044b CUDA \u0438 AES:<\/p>\n<details class=\"spoiler\">\n<summary>CUDA<\/summary>\n<div class=\"spoiler__content\">\n<p>CUDA (Compute Unified Device Architecture) \u2014 \u044d\u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e-\u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439, \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u0430\u044f \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0435\u0439 Nvidia \u0434\u043b\u044f \u0441\u0432\u043e\u0438\u0445 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u0432 \u043e\u0431\u0449\u0435\u0433\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 CUDA \u0441 \u0434\u0432\u0443\u0445 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0440\u0430\u043a\u0443\u0440\u0441\u043e\u0432.<\/p>\n<h4>\u0421 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430<\/h4>\n<p>\u041f\u0440\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0445 CUDA, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0438\u043c\u0435\u0435\u0442 \u0434\u0435\u043b\u043e \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c\u0438:<\/p>\n<ol>\n<li>\n<p>\u044f\u0434\u0440\u043e (kernel) \u2014 \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u0430\u044f \u043d\u0430 <abbr title=\"General Purpose GPU\">GPGPU<\/abbr>;<\/p>\n<\/li>\n<li>\n<p>\u0441\u0435\u0442\u043a\u0430 (grid) \u2014 \u0433\u0440\u0443\u043f\u043f\u0430 \u043f\u043e\u0442\u043e\u043a\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u044e\u0449\u0438\u0445 \u043a\u043e\u0434 \u043e\u0434\u043d\u043e\u0433\u043e \u044f\u0434\u0440\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0431\u043b\u043e\u043a (block) \u2014 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0430\u044f \u0441\u0435\u0442\u043a\u0438. \u041a\u0430\u0436\u0434\u044b\u0439 \u0431\u043b\u043e\u043a &#8212; \u044d\u0442\u043e \u0441\u043e\u0432\u043e\u043a\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043e\u0431\u0449\u0435\u0439 \u043f\u0430\u043c\u044f\u0442\u0438;<\/p>\n<\/li>\n<li>\n<p>\u043d\u0438\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f (\u043f\u043e\u0442\u043e\u043a, thread) \u2014 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0430\u044f \u0431\u043b\u043e\u043a\u0430.<\/p>\n<\/li>\n<\/ol>\n<p>\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0441\u0430\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0447\u0438\u0441\u043b\u043e \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0432 \u0431\u043b\u043e\u043a\u0435 \u0438 \u0431\u043b\u043e\u043a\u043e\u0432 \u0432 \u0441\u0435\u0442\u043a\u0435, \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u0440\u0435\u0448\u0430\u0435\u043c\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u0440\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c CUDA \u043c\u043e\u0436\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c <a href=\"https:\/\/arxiv.org\/pdf\/1202.4347.pdf\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a> \u0438 <a href=\"http:\/\/developer.download.nvidia.com\/compute\/cuda\/3%5C_1\/toolkit\/docs\/NVIDIA%5C_CUDA%5C_C%5C_ProgrammingGuide%5C_3.1.pdf\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a>.<\/p>\n<p>\u0414\u043b\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u043c\u0438 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u043a\u0430\u043a \u043e\u043d\u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u0441 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 <abbr title=\"General Purpose GPU\">GPGPU<\/abbr>.<\/p>\n<h4>\u0421 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f CUDA<\/h4>\n<p>\u0421 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f CUDA, <abbr title=\"General Purpose GPU\">GPGPU<\/abbr> \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c (\u043d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0434\u0432\u0438\u0436\u0435\u043c\u0441\u044f \u0441\u043d\u0438\u0437\u0443 \u0432\u0432\u0435\u0440\u0445):<\/p>\n<ol>\n<li>\n<p>\u0421\u043a\u0430\u043b\u044f\u0440\u043d\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 (Scalar Processor, <abbr title=\"Scalar Processor\">SP<\/abbr>) \u2014 \u044f\u0434\u0440\u043e, \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u044e\u0449\u0435\u0435 \u0435\u0434\u0438\u043d\u043e\u043c\u043e\u043c\u0435\u043d\u0442\u043d\u043e \u043e\u0434\u0438\u043d \u043f\u043e\u0442\u043e\u043a;<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0442\u043e\u043a\u043e\u0432\u044b\u0439 \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 (Streaming Multiprocessor, <abbr title=\"Streaming Multiprocessor\">SM<\/abbr>) \u2014 \u0441\u043e\u0432\u043e\u043a\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 <abbr title=\"Scalar Processor\">SP<\/abbr>, \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 32-\u0431\u0430\u0439\u0442\u043d\u044b\u0445 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0438 \u043e\u0431\u0449\u0435\u0433\u043e \u0431\u043b\u043e\u043a\u0430 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434 (Instruction Unit). \u0422\u0430\u043a\u0436\u0435 <abbr title=\"Streaming Multiprocessor\">SM<\/abbr> \u043e\u0431\u043b\u0430\u0434\u0430\u0435\u0442 L1-\u043a\u044d\u0448\u0435\u043c, \u043e\u0431\u0449\u0438\u043c \u0434\u043b\u044f \u0432\u0441\u0435\u0445 <abbr title=\"Scalar Processor\">SP<\/abbr>. \u041f\u0440\u0438 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438 \u0440\u0430\u0431\u043e\u0442 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u043c \u043a\u0430\u0436\u0434\u043e\u043c\u0443 <abbr title=\"Streaming Multiprocessor\">SM<\/abbr> \u0434\u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0439 \u043d\u0430\u0431\u043e\u0440 \u0431\u043b\u043e\u043a\u043e\u0432 \u0441\u0435\u0442\u043a\u0438, \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0445 \u043f\u043e \u043e\u0447\u0435\u0440\u0435\u0434\u0438;<\/p>\n<\/li>\n<li>\n<p>GPU \u2014 \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u0437 <abbr title=\"Streaming Multiprocessor\">SM<\/abbr>, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u0431\u043b\u043e\u043a\u0438.<\/p>\n<\/li>\n<\/ol>\n<p>\u0415\u0449\u0451 \u043e\u0434\u043d\u0430 \u0432\u0430\u0436\u043d\u0430\u044f \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b <abbr title=\"General Purpose GPU\">GPGPU<\/abbr>, \u043d\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u043d\u0430\u044f \u0441\u0442\u043e\u043b\u044c \u044f\u0432\u043d\u043e, \u0441\u0432\u044f\u0437\u0430\u043d\u0430 \u0441 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435\u043c \u0431\u043b\u043e\u043a\u043e\u0432. \u041a\u0430\u0436\u0434\u044b\u0439 \u0431\u043b\u043e\u043a \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0433\u0440\u0443\u043f\u043f\u0430\u043c\u0438 \u043f\u043e 32 \u043d\u0438\u0442\u0438 (warp). \u0412\u043d\u0443\u0442\u0440\u0438 \u0442\u0430\u043a\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b \u0432\u0441\u0435 \u043f\u043e\u0442\u043e\u043a\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u043e\u0434\u043d\u0443 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u043d\u0430\u0434 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u0442\u043e \u0435\u0441\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0442 \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u0443\u044e SIMT-\u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443 (Single Instruction Multiple Threads).<\/p>\n<p>\u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u043b\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b <abbr title=\"General Purpose GPU\">GPGPU<\/abbr> \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 <a href=\"https:\/\/www.nvidia.com\/content\/PDF\/fermi_white_papers\/NVIDIA_Fermi_Compute_Architecture_Whitepaper.pdf\" rel=\"noopener noreferrer nofollow\">\u0411\u0435\u043b\u043e\u0439 \u043a\u043d\u0438\u0433\u0435<\/a>, \u043d\u0430 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Thread_block_(CUDA_programming)\" rel=\"noopener noreferrer nofollow\">\u0412\u0438\u043a\u0438<\/a> \u0438 \u0432 <a href=\"https:\/\/docs.nvidia.com\/cuda\/cuda-c-programming-guide\/index.html\/#hardware-implementation\" rel=\"noopener noreferrer nofollow\">\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a>. \u041f\u043e\u043b\u0435\u0437\u043d\u044b\u043c \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u0438 \u044d\u0442\u043e <a href=\"https:\/\/stackoverflow.com\/questions\/10460742\/how-do-cuda-blocks-warps-threads-map-onto-cuda-cores\" rel=\"noopener noreferrer nofollow\">\u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0435<\/a>.<\/p>\n<p>\u0414\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0430\u0442\u0430\u043a\u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e.<\/p>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>AES<\/summary>\n<div class=\"spoiler__content\">\n<p>Advanced Encryption Standard (AES), \u0442\u0430\u043a\u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u043a\u0430\u043a Rijndael \u2014 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0439 \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0431\u043b\u043e\u0447\u043d\u043e\u0433\u043e \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041e\u043d \u043e\u043f\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0431\u043b\u043e\u043a\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u0438\u043d\u044b 128 \u0431\u0438\u0442 \u043f\u0440\u0438 \u0434\u043b\u0438\u043d\u0435 \u043a\u043b\u044e\u0447\u0430 128, 192 \u0438\u043b\u0438 256 \u0431\u0438\u0442. \u0422\u0430\u043a \u043a\u0430\u043a \u0430\u0442\u0430\u043a\u0430 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u043d\u0430 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0441 \u0434\u043b\u0438\u043d\u043e\u0439 \u043a\u043b\u044e\u0447\u0430 128 \u0431\u0438\u0442, \u043f\u043e\u043a\u0430 \u0443\u0431\u0435\u0440\u0435\u043c \u043f\u0440\u043e\u0447\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0438\u0437 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u044f \u0438 \u0441\u0444\u043e\u043a\u0443\u0441\u0438\u0440\u0443\u0435\u043c\u0441\u044f \u043d\u0430 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0435 \u0434\u043b\u044f \u0434\u043b\u0438\u043d\u044b \u043a\u043b\u044e\u0447\u0430 128 \u0431\u0438\u0442.<\/p>\n<p>AES-128 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u0445\u043e\u0434\u043d\u043e\u0439 \u0431\u043b\u043e\u043a \u0442\u0435\u043a\u0441\u0442\u0430 \u0432 \u0432\u0438\u0434\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b S \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 4 \u043d\u0430 4 \u0431\u0430\u0439\u0442\u0430, \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0439 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u043c (state), \u0438 11 \u0440\u0430\u0437 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 \u043a \u043d\u0435\u043c\u0443 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438:<\/p>\n<ol>\n<li>\n<p>SubBytes \u2014 \u0437\u0430\u043c\u0435\u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 \u0431\u0430\u0439\u0442\u043e\u0432 \u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043d\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0435 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0437\u0430\u043c\u0435\u043d SBox. \u042d\u0442\u043e \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 16 \u043d\u0430 16, \u0432 \u044f\u0447\u0435\u0439\u043a\u0430\u0445 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u044b \u043d\u043e\u0432\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0431\u0430\u0439\u0442\u043e\u0432. \u0417\u0430\u043c\u0435\u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u043c\u0443 \u043f\u0440\u0430\u0432\u0438\u043b\u0443: \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u0431\u0430\u0439\u0442  \u0432 \u0432\u0438\u0434\u0435 , \u0433\u0434\u0435  \u0438  \u2014 \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043d\u044b\u0435 \u0446\u0438\u0444\u0440\u044b, \u043c\u044b \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u043c \u0435\u0433\u043e \u043d\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043b\u0435\u0436\u0430\u0449\u0435\u0435 \u043d\u0430 \u043f\u0435\u0440\u0435\u0447\u0435\u0441\u0435\u043d\u0438\u0438 -\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0438 -\u043e\u0433\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b SBox. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438,  \u043f\u0440\u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0447\u043d\u043e\u043c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 (Row-Major Ordering) \u0438\u0441\u043a\u043e\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u043c\u0435\u0449\u0435\u043d\u043e \u043d\u0430  \u043f\u043e\u0437\u0438\u0446\u0438\u0439 \u043e\u0442 \u043d\u0430\u0447\u0430\u043b\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041d\u0430\u043c \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u043a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0437\u0430\u043c\u0435\u043d, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u043d\u0435\u0439 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b \u0438 \u0443\u0436\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u044b \u0438 \u044f\u0432\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u044b \u0432 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0435. \u0412 \u0446\u0435\u043b\u044f\u0445 \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043e\u0431\u0449\u0435\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0443\u0436\u0435 \u0433\u043e\u0442\u043e\u0432\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 SBox, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c SBoxLUT (Look Up Table).<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<\/li>\n<li>\n<p>ShiftRows \u2014 \u0446\u0438\u043a\u043b\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u0434\u0432\u0438\u0433 \u0441\u0442\u0440\u043e\u043a \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f. \u041f\u0435\u0440\u0432\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u043d\u0435 \u0441\u0434\u0432\u0438\u0433\u0430\u0435\u0442\u0441\u044f, \u0432\u0442\u043e\u0440\u0430\u044f \u0441\u0434\u0432\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043e\u0434\u043d\u0443 \u043f\u043e\u0437\u0438\u0446\u0438\u044e, \u0442\u0440\u0435\u0442\u044c\u044f \u043d\u0430 \u0434\u0432\u0435 \u0438 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0430\u044f \u043d\u0430 \u0442\u0440\u0438.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<\/li>\n<li>\n<p>MixColumns \u2014 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443, \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u044e\u0449\u0435\u0435 \u043b\u0438\u043d\u0435\u0439\u043d\u044b\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430\u0434 \u0441\u0442\u043e\u0431\u043b\u0446\u0430\u043c\u0438 \u2014 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0438 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u043d\u0430 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0443. \u041a\u0430\u043a \u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 SBox, \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043c\u044b \u043e\u0441\u0442\u0430\u0432\u0438\u043c \u0437\u0430 \u043a\u0430\u0434\u0440\u043e\u043c, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u0435\u0435 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<\/li>\n<li>\n<p>AddRoundKey \u2014 \u043f\u043e\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043d\u043e\u0435 \u043f\u0440\u0438\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b RounKey \u0442\u043e\u0433\u043e \u0436\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 4 \u043d\u0430 4, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0439 \u0440\u0430\u0443\u043d\u0434\u043e\u0432\u044b\u0439 \u043a\u043b\u044e\u0447. \u041f\u0435\u0440\u0435\u0434 \u043d\u0430\u0447\u0430\u043b\u043e\u043c \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c AES \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0435 &#171;\u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u043b\u044e\u0447\u0435\u0439&#187; \u2014 \u043d\u0430\u0431\u043e\u0440 \u0438\u0437 11 \u043c\u0430\u0442\u0440\u0438\u0446, \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0445 \u0440\u0430\u0443\u043d\u0434\u043e\u0432\u044b\u043c\u0438 \u043a\u043b\u044e\u0447\u0430\u043c\u0438, \u043f\u043e \u043e\u0434\u043d\u043e\u0439 \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u044d\u0442\u0430\u043f \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0435\u0439 KeyExpansion \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<\/li>\n<\/ol>\n<p>\u041a\u0430\u043a \u0443\u0436\u0435 \u0431\u044b\u043b\u043e \u0437\u0430\u043c\u0435\u0447\u0435\u043d\u043e \u0432\u044b\u0448\u0435, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f 11 \u0440\u0430\u0437. \u041a\u0430\u0436\u0434\u044b\u0439 \u0442\u0430\u043a\u043e\u0439 \u0446\u0438\u043a\u043b \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0443\u043d\u0434\u043e\u043c. \u0412 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, 11-\u044b\u0439 \u0440\u0430\u0443\u043d\u0434 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0434\u0435\u0441\u044f\u0442\u0438, \u0442\u0430\u043a \u0447\u0442\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0432\u0438\u0434\u0435:<\/p>\n<pre><code class=\"cpp\">AddRoundKey(0)  for (i = 1; i &lt;= 10; i += 1) {     SubBytes()     ShiftRows()     MixColumns()     AddRoundKey(i) }  SubBytes() ShiftRows() AddRoundKey(11)<\/code><\/pre>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0432\u0441\u0435 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u043f\u043e\u043b\u0435 . \u041f\u0440\u043e\u0441\u0442\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u0432\u0443\u0445 \u0431\u0430\u0439\u0442\u043e\u0432 \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044e \u043a \u043d\u0438\u043c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0418\u0421\u041a\u041b\u042e\u0427\u0410\u042e\u0429\u0415\u0415-\u0418\u041b\u0418, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0442\u044c \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u043c .<\/p>\n<p>\u041f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u0442\u043e\u043d\u043a\u043e\u0441\u0442\u0435\u0439 \u0438 \u043d\u044e\u0430\u043d\u0441\u043e\u0432, \u0440\u0430\u0432\u043d\u043e \u043a\u0430\u043a \u0438 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 \u0448\u0430\u0433\u043e\u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430, \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0437\u0430 \u0440\u0430\u043c\u043a\u0438 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438, \u043e\u0434\u043d\u0430\u043a\u043e \u0438\u0441\u0447\u0435\u0440\u043f\u044b\u0432\u0430\u044e\u0449\u0435\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0430\u0439\u0434\u0435\u043d\u043e \u0432 <a href=\"https:\/\/nvlpubs.nist.gov\/nistpubs\/FIPS\/NIST.FIPS.197.pdf\" rel=\"noopener noreferrer nofollow\">\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0435<\/a>. \u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u044f \u0441 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043d\u0430\u0439\u0434\u0435\u043d\u044b \u0432 \u043d\u0430 \u0425\u0430\u0431\u0440\u0435 <a href=\"https:\/\/habr.com\/ru\/post\/112733\/\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a> \u0438 <a href=\"https:\/\/habr.com\/ru\/post\/212235\/\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n<p>\u0413\u043e\u0432\u043e\u0440\u044f \u043e\u0431 AES, \u043d\u0435\u043b\u044c\u0437\u044f \u043d\u0435 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044c <a href=\"http:\/\/www.moserware.com\/2009\/09\/stick-figure-guide-to-advanced.html\" rel=\"noopener noreferrer nofollow\">\u043f\u044c\u0435\u0441\u0443 \u043f\u0440\u043e AES<\/a>, \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u2014 <a href=\"http:\/\/4.bp.blogspot.com\/_Zfbv3mHcYrc\/Sre5MXZdxnI\/AAAAAAAABoE\/KzWFtoYJbKU\/s576\/aes_act_3_scene_02_agreement_576.png\" rel=\"noopener noreferrer nofollow\">\u0430\u043a\u0442 \u0442\u0440\u0435\u0442\u0438\u0439, \u0441\u0446\u0435\u043d\u0430 \u0432\u0442\u043e\u0440\u0430\u044f<\/a>.<\/p>\n<\/div>\n<\/details>\n<h2>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0430\u0442\u0430\u043a\u0438<\/h2>\n<p>\u0411\u0443\u0434\u0435\u043c \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0434\u043b\u0438\u043d\u044b 32&#215;16 \u0431\u0430\u0439\u0442\u043e\u0432, \u043f\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0437\u0430\u0434\u0430\u0447\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A7%D1%80%D0%B5%D0%B7%D0%B2%D1%8B%D1%87%D0%B0%D0%B9%D0%BD%D0%B0%D1%8F_%D0%BF%D0%B0%D1%80%D0%B0%D0%BB%D0%BB%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C\" rel=\"noopener noreferrer nofollow\">\u0447\u0440\u0435\u0437\u0432\u044b\u0447\u0430\u0439\u043d\u043e \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0439<\/a> (Embarrassingly Parallel): \u0434\u043b\u044f \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0439\u0434\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0430 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u0433\u0440\u0443\u043f\u043f\u0430 \u043f\u043e\u0442\u043e\u043a\u043e\u0432, \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c, \u0447\u0442\u043e \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a \u043c\u043e\u0436\u0435\u0442 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u0442\u0435\u043a\u0441\u0442 \u0438 \u0447\u0438\u0442\u0430\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0448\u0438\u0444\u0440\u043e\u0442\u0435\u043a\u0441\u0442, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u0431\u043b\u0430\u0434\u0430\u0435\u0442 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u043c \u043a \u0430\u0442\u0430\u043a\u0443\u0435\u043c\u043e\u0439 \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u0435.<\/p>\n<p>\u041e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c\u0430\u044f \u0430\u0442\u0430\u043a\u0430 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 \u043a \u043a\u043b\u0430\u0441\u0441\u0443 \u0430\u0442\u0430\u043a \u043f\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0435\u043c\u0443 \u043a\u0430\u043d\u0430\u043b\u0443. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u0430 \u0438\u0441\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043c\u0430\u0433\u043d\u0438\u0442\u043d\u043e\u0435 \u0438\u0437\u043b\u0443\u0447\u0435\u043d\u0438\u0435, \u0437\u0430\u0432\u0438\u0441\u044f\u0449\u0435\u0435 \u043e\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u0432\u0435\u043b\u0438\u0447\u0438\u043d. \u041d\u0438\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d \u043a\u0440\u0430\u0442\u043a\u0438\u0439 \u043f\u043b\u0430\u043d \u0430\u0442\u0430\u043a\u0438.<\/p>\n<ol>\n<li>\n<p>\u041b\u043e\u043a\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u0447\u043a\u0443 \u043d\u0430\u0434 \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u043e\u0439, \u0438\u0441\u043f\u0443\u0441\u043a\u0430\u044e\u0449\u0435\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b;<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u0442\u0435\u043a\u0441\u0442 \u0434\u043b\u044f \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f;<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0438\u0437\u043c\u0435\u0440\u0438\u0442\u044c \u043f\u043e\u043b\u0435 \u0432 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0435;<\/p>\n<\/li>\n<li>\n<p>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0433\u043e \u043d\u0430 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u043c \u0440\u0430\u0443\u043d\u0434\u0435 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u044f \u043f\u043e \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 16 \u0431\u0430\u0439\u0442\u043e\u0432:<\/p>\n<ol>\n<li>\n<p>\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0431\u0430\u0439\u0442 \u0441 \u043d\u043e\u043c\u0435\u0440\u043e\u043c ;<\/p>\n<\/li>\n<li>\n<p>\u041f\u0435\u0440\u0435\u0431\u0440\u0430\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 256 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 :<\/p>\n<ol>\n<li>\n<p>\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <em> \u0438 <\/em> \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e ;<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0432 \u043f\u0443\u043d\u043a\u0442\u0435 3 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u043d\u0430 \u0434\u0432\u0435 \u0433\u0440\u0443\u043f\u043f\u044b \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 <em> <\/em>\u0438<em> <\/em>;<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0443 , \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u0434\u0430\u043d\u043d\u043e\u043c\u0443 ;<\/p>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<p>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0438\u0441\u043a\u043e\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0431\u0430\u0439\u0442\u0430 \u043a\u0430\u043a , \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 ;<\/p>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<p>\u0417\u043d\u0430\u044f \u0432\u0441\u0435 \u0431\u0430\u0439\u0442\u044b \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0440\u0430\u0443\u043d\u0434\u043e\u0432\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430, \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043a\u043b\u044e\u0447.<\/p>\n<\/li>\n<\/ol>\n<p>\u0412 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u043c \u043f\u043b\u0430\u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0432\u0432\u0435\u0434\u0435\u043d\u044b \u043f\u043e\u0437\u0436\u0435. \u041e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0432\u0448\u0438\u0441\u044c \u0441 \u043f\u043b\u0430\u043d\u043e\u043c, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u043c\u0443 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u044e \u0448\u0430\u0433\u043e\u0432, \u043f\u043e\u0441\u043b\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0441\u0442\u0430\u043d\u0435\u0442 \u043f\u043e\u043d\u044f\u0442\u043d\u0435\u0435.<\/p>\n<h3>\u0424\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u0441\u043d\u043e\u0432\u044b<\/h3>\n<p>\u0412 \u043e\u0441\u043d\u043e\u0432\u0435 \u0430\u0442\u0430\u043a\u0438 \u043b\u0435\u0436\u0438\u0442 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 \u0437\u0430 \u0431\u043b\u0438\u0436\u043d\u0438\u043c \u043f\u043e\u043b\u0435\u043c \u2014 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043c\u0430\u0433\u043d\u0438\u0442\u043d\u044b\u043c \u0438\u0437\u043b\u0443\u0447\u0435\u043d\u0438\u0435\u043c \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438, \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0439 \u043e\u0442 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u043d\u0435 \u0431\u043e\u043b\u0435\u0435, \u0447\u0435\u043c \u043d\u0430  \u0434\u043b\u0438\u043d\u044b \u0432\u043e\u043b\u043d\u044b. \u0410\u0432\u0442\u043e\u0440\u044b \u0437\u0430\u043c\u0435\u0442\u0438\u043b\u0438, \u0447\u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u044f\u0432\u043d\u0430\u044f \u0441\u0432\u044f\u0437\u044c \u043c\u0435\u0436\u0434\u0443 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c\u0438, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u043c\u0438 GPGPU, \u0438 \u0432\u0438\u0434\u043e\u043c \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043c\u0430\u0433\u043d\u0438\u0442\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044f, \u0438\u0437\u043b\u0443\u0447\u0430\u0435\u043c\u043e\u0433\u043e \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u043e\u0439. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430\u0431\u043e\u0440 \u0442\u043e\u0447\u0435\u043a, \u0441\u043d\u044f\u0442\u044b\u0445 \u0441 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0433\u043e \u043e\u0441\u0446\u0438\u043b\u043b\u043e\u0433\u0440\u0430\u0444\u0430 \u0438 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0437\u0443\u044e\u0449\u0438\u0445 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u0438\u0441\u0441\u043b\u0435\u0434\u0443\u0435\u043c\u043e\u0433\u043e \u043f\u043e\u043b\u044f \u043e\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0434\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0440\u0430\u0443\u043d\u0434\u0430 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041a\u0430\u0436\u0434\u043e\u0435 \u0442\u0430\u043a\u043e\u0435 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0435 \u0438\u043c\u0435\u0435\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0442\u043e\u0447\u0435\u043a, \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0412 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u0442\u043e\u0447\u043a\u0438 \u043e\u0442\u0441\u0447\u0435\u0442\u0430\u043c\u0438.<\/p>\n<p>\u041e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043c\u0435\u0441\u0442\u0430 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439. \u041f\u0435\u0447\u0430\u0442\u043d\u044b\u0435 \u043f\u043b\u0430\u0442\u044b, \u043a\u043e\u0438\u043c\u0438 \u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f GPGPU, \u0438\u043c\u0435\u044e\u0442 \u0432 \u0441\u0432\u043e\u0435\u043c \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u0441\u043e\u0442\u043d\u0438 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442, \u043e\u0434\u043d\u0430\u043a\u043e \u043d\u0435 \u0432\u0441\u0435 \u043e\u043d\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u043c\u0438 \u0443\u0442\u0435\u0447\u0435\u043a \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438. \u0410\u0432\u0442\u043e\u0440\u044b \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 \u0443\u0442\u0435\u0447\u0435\u043a \u043b\u0438\u0448\u044c \u0441\u0430\u043c \u0447\u0438\u043f \u0438 \u0435\u043c\u043a\u043e\u0441\u0442\u0438 \u043d\u0430 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0435\u0433\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u0435, \u0447\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0443\u0436\u0430\u0435\u0442 \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u043f\u043e\u0438\u0441\u043a\u0430. \u0414\u0430\u043b\u0435\u0435 \u0432 \u0446\u0438\u043a\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0438 \u0442\u043e\u0433\u043e \u0436\u0435 \u0442\u0435\u043a\u0441\u0442\u0430 \u0438 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u0442\u0441\u044f \u0432\u0438\u0434 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u043d\u0430 \u043e\u0441\u0446\u0438\u043b\u043b\u043e\u0433\u0440\u0430\u0444\u0435 \u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0442\u043e\u0447\u043a\u0430\u0445 \u0432\u0431\u043b\u0438\u0437\u0438 GPGPU. \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a \u0443\u0432\u0438\u0434\u0438\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0439\u0441\u044f \u0441\u0438\u0433\u043d\u0430\u043b, \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0435\u043a\u0440\u0430\u0442\u0438\u0442\u044c \u043f\u043e\u0438\u0441\u043a\u0438 \u0438 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0435 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u0432 \u044d\u0442\u043e\u0439 \u0442\u043e\u0447\u043a\u0435.<\/p>\n<h3>\u041a\u044d\u0448-\u043a\u043e\u043b\u043b\u0438\u0437\u0438\u0438<\/h3>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u043d\u0430\u0434\u0435\u0436\u043d\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e\u0449\u0435\u0439 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u043c\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b, \u0430\u0432\u0442\u043e\u0440\u044b \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044e\u0442 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043a\u044d\u0448-\u043a\u043e\u043b\u043b\u0438\u0437\u0438\u044e (Simultaneous Cache Collision, <abbr title=\"Simultaneous Cache Collision\">SCC<\/abbr>). \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0432\u0441\u0435 \u043f\u043e\u0442\u043e\u043a\u0438, \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0449\u0438\u0435 \u043e\u0434\u043d\u043e\u0439 warp-\u0433\u0440\u0443\u043f\u043f\u0435, \u043c\u043e\u0433\u0443\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a \u0434\u0430\u043d\u043d\u044b\u043c, \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u043c\u0441\u044f \u0432 \u043e\u0434\u043d\u043e\u0439 (\u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 <abbr title=\"Simultaneous Cache Collision\">SCC<\/abbr>) \u0438\u043b\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 (<abbr title=\"Simultaneous Cache Collision\">SCC<\/abbr> \u043d\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442) \u043a\u044d\u0448-\u043b\u0438\u043d\u0438\u044f\u0445. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043c\u0430\u0433\u043d\u0438\u0442\u043d\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f.<\/p>\n<p>\u0417\u0430\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u0434\u043b\u0438\u043d\u0430 \u043a\u044d\u0448-\u043b\u0438\u043d\u0438\u0438 GPGPU \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b Fermi, \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u043c\u043e\u0439 \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0435, \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 128 \u0431\u0430\u0439\u0442\u043e\u0432. \u0420\u0430\u0437\u043c\u0435\u0440 \u0436\u0435<\/p>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-314869","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/314869","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=314869"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/314869\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=314869"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=314869"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=314869"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}