{"id":315320,"date":"2020-12-22T15:00:35","date_gmt":"2020-12-22T15:00:35","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=315320"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=315320","title":{"rendered":"\u0428\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 TEA, XTEA, XXTEA"},"content":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<h2>\u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0441\u0442\u0430\u0442\u044c\u0438<\/h2>\n<ul>\n<li>\n<p>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f TEA<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f TEA<\/p>\n<\/li>\n<li>\n<p>\u0423\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u043c \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 TEA \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c XTEA (Block TEA)<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f XTEA<\/p>\n<\/li>\n<li>\n<p>\u0415\u0449\u0435 \u043b\u0443\u0447\u0448\u0435: XXTEA (Corrected Block TEA)<\/p>\n<\/li>\n<li>\n<p>\u041a\u0440\u0438\u043f\u0442\u043e\u0430\u043d\u0430\u043b\u0438\u0437 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/p>\n<\/li>\n<\/ul>\n<h2>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h2>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0434\u0432\u0430 \u0442\u0438\u043f\u0430 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f: <em>\u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u044b\u0435 <\/em>\u0438 <em>\u043d\u0435\u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u044b\u0435<\/em>. <\/p>\n<p>\u0412 <em>\u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u044b\u0445 <\/em>\u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u0445 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u043a\u043b\u044e\u0447 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0438 \u0434\u043b\u044f \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445, \u0438 \u0434\u043b\u044f \u0438\u0445 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438. \u042d\u0442\u043e\u0442 \u043a\u043b\u044e\u0447 \u0434\u043e\u043b\u0436\u043d\u044b \u0437\u043d\u0430\u0442\u044c \u0437\u043d\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044c \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044c, \u0438\u043d\u0430\u0447\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0440\u0443\u043a\u0430\u0445 \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a\u043e\u0432 \u043f\u043e \u0441\u0443\u0442\u0438 \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438. \u0427\u0435\u043b\u043e\u0432\u0435\u043a, \u0437\u043d\u0430\u044f \u043a\u043b\u044e\u0447, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0437\u043d\u0430\u0442\u044c, \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u0448\u0438\u0444\u0440\u043e\u0442\u0435\u043a\u0441\u0442 \u0438 \u0443\u0437\u043d\u0430\u0442\u044c, \u0447\u0442\u043e \u0432\u044b \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u0430 \u043a\u0443\u043f\u0438\u0442\u044c \u0432 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0435 \u043c\u0430\u043a\u0430\u0440\u043e\u043d\u044b.<\/p>\n<p>\u0412 <em>\u043d\u0435\u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u044b\u0445 <\/em>\u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u0445 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0443\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043d\u0435 \u043e\u0434\u0438\u043d \u043a\u043b\u044e\u0447, \u0430 \u0446\u0435\u043b\u044b\u0445 \u0434\u0432\u0430: <em>\u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 <\/em>\u0438 <em>\u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0439<\/em>. \u0428\u0438\u0444\u0440\u0443\u044e\u0442\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c, \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u043c. \u041e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u043a\u043b\u044e\u0447 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0434\u0430\u0442\u044c \u0432\u0441\u0435\u043c \u0436\u0435\u043b\u0430\u044e\u0449\u0438\u043c, \u0430 \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0439 \u043a\u043b\u044e\u0447 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0432 \u0442\u0430\u0439\u043d\u0435.<\/p>\n<p>TEA, XTEA, XXTEA \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f <em>\u0431\u043b\u043e\u0447\u043d\u044b\u043c\u0438 <\/em>\u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u043c\u0438 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u042d\u0442\u043e \u0432\u0438\u0434 \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u043e\u0433\u043e \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u043f\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0433\u0440\u0443\u043f\u043f\u0430\u043c\u0438 \u0431\u0438\u0442, \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0431\u043b\u043e\u043a\u0430\u043c\u0438.<\/p>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044e\u0442\u0441\u044f <em>\u0431\u043b\u043e\u0447\u043d\u044b\u0435 \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u044b\u0435<\/em> \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0444\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 <em>\u0441\u0435\u0442\u044c \u0424\u0435\u0439\u0441\u0442\u0435\u043b\u044f<\/em>, \u043a\u0430\u043a \u0438 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0431\u043b\u043e\u0447\u043d\u044b\u0445 \u0448\u0438\u0444\u0440\u043e\u0432.<\/p>\n<p>\u041e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 <em>\u0441\u0435\u0442\u044c\u044e \u0424\u0435\u0439\u0441\u0442\u0435\u043b\u044f<\/em> \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0432 <a href=\"https:\/\/habr.com\/ru\/post\/140404\/\" rel=\"noopener noreferrer nofollow\">\u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/a>. <\/p>\n<h2>TEA<\/h2>\n<p><strong>TEA<\/strong> a.k.a. <strong>Tiny Encryption Algorithm<\/strong> &#8212; \u0431\u043b\u043e\u0447\u043d\u044b\u0439 \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0414\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u043a\u0440\u043e\u043c\u043d\u044b\u0439 \u0438 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u0431\u044b\u0441\u0442\u0440 \u0432 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u0438 \u043f\u0440\u043e\u0441\u0442 \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0447\u0435\u043c\u0443 \u043d\u0430\u0448\u0435\u043b \u0448\u0438\u0440\u043e\u043a\u043e\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438. <\/p>\n<p>\u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u0441\u0430\u043c\u043e\u043c\u0443 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0443. \u0414\u0430\u043d\u043d\u044b\u0435 \u0434\u0435\u043b\u044f\u0442\u0441\u044f \u043d\u0430 \u0431\u043b\u043e\u043a\u0438 \u043f\u043e 64 \u0431\u0438\u0442, \u0430 \u043a\u043b\u044e\u0447 \u043d\u0430 \u0447\u0435\u0442\u044b\u0440\u0435 \u0447\u0430\u0441\u0442\u0438 \u043f\u043e 32 \u0431\u0438\u0442\u0430: <img class=\"formula inline\" source=\"K_0, K_1, K_2, K_3\" alt=\"K_0, K_1, K_2, K_3\">. \u0415\u0441\u043b\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0431\u0438\u0442\u043e\u0432\u043e\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043d\u0435 \u0434\u0435\u043b\u044f\u0442\u0441\u044f \u043d\u0430 64, \u0442\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0435\u0435 \u043d\u0443\u043b\u0435\u0432\u044b\u043c\u0438 \u0431\u0438\u0442\u0430\u043c\u0438. \u0414\u0430\u043b\u0435\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435: \u0446\u0435\u043b\u044b\u0439 32 <em>\u0446\u0438\u043a\u043b\u0430 <\/em>\u043f\u043e 2 <em>\u0440\u0430\u0443\u043d\u0434\u0430<\/em>. \u0420\u0430\u0443\u043d\u0434 &#8212; \u044d\u0442\u043e \u043e\u0434\u0438\u043d \u0448\u0430\u0433 \u0446\u0438\u043a\u043b\u0430. \u0422\u043e \u0435\u0441\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0446\u0438\u043a\u043b\u043e\u0432 \u0435\u0449\u0435 \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0447\u0430\u0441\u0442\u0438. \u0414\u043b\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0432\u0432\u0435\u0434\u0435\u043c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438: <\/p>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"\\delta = \\left(\\sqrt{5} - 1\\right) \\cdot 2^{31}\" alt=\"\\delta = \\left(\\sqrt{5} - 1\\right) \\cdot 2^{31}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1f0\/0f3\/bbd\/1f00f3bbdce15045758cbf1fb27fe3cb.svg\">&#8212; \u0447\u0438\u0441\u0435\u043b\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0443\u0436\u043d\u0430 \u0434\u043b\u044f \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0430\u0442\u0430\u043a\u0430\u043c. \u041c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0432\u0437\u044f\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0443, \u0430\u0432\u0442\u043e\u0440 \u0448\u0438\u0444\u0440\u0430 \u0440\u0435\u0448\u0438\u043b \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0437\u043e\u043b\u043e\u0442\u044b\u043c \u0441\u0435\u0447\u0435\u043d\u0438\u0435\u043c<\/p>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"X \\ll Y\" alt=\"X \\ll Y\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/446\/565\/11b\/44656511bf940534fc017e14058a1997.svg\">&#8212; \u043f\u043e\u0431\u0438\u0442\u043e\u0432\u044b\u0439 \u0441\u0434\u0432\u0438\u0433 \u0447\u0438\u0441\u043b\u0430 X \u043d\u0430 Y \u0431\u0438\u0442 \u0432\u043b\u0435\u0432\u043e (\u0432\u043f\u0440\u0430\u0432\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e)<\/p>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"X \\oplus Y\" alt=\"X \\oplus Y\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/37f\/4a3\/722\/37f4a3722650be5217d13f74ce378b20.svg\">&#8212; \u043f\u043e\u0431\u0438\u0442\u043e\u0432\u043e\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0435\u0435 \u0418\u041b\u0418 &#8212; XOR<\/p>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"X \\boxplus Y\" alt=\"X \\boxplus Y\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c62\/141\/d9e\/c62141d9e2c5764aeaa1b0d1302f7f6b.svg\">&#8212; \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0447\u0438\u0441\u0435\u043b \u043f\u043e \u043c\u043e\u0434\u0443\u043b\u044e <img decoding=\"async\" class=\"formula inline\" source=\"2^{32}\" alt=\"2^{32}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/51b\/f48\/eb2\/51bf48eb2970e6ce579c4d960f89b003.svg\"><\/p>\n<p>\u041d\u0430 n-\u043e\u043c \u0440\u0430\u0443\u043d\u0434\u0435 \u043d\u0430 \u0432\u0445\u043e\u0434 \u043f\u043e\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u0431\u043b\u043e\u043a, \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u0438\u0437 \u0434\u0432\u0443\u0445 \u0447\u0430\u0441\u0442\u0435\u0439: \u043f\u0440\u0430\u0432\u043e\u0439 \u0438 \u043b\u0435\u0432\u043e\u0439<img decoding=\"async\" class=\"formula inline\" source=\"\\left( L_n, R_n \\right)\" alt=\"\\left( L_n, R_n \\right)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/62c\/373\/3a4\/62c3733a42549f2255900043658f3077.svg\">, \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0442\u043e\u0436\u0435 \u0431\u043b\u043e\u043a \u0438\u0437 \u0434\u0432\u0443\u0445 \u0447\u0430\u0441\u0442\u0435\u0439<img decoding=\"async\" class=\"formula inline\" source=\"\\left( L_{n+1}, R_{n+1} \\right)\" alt=\"\\left( L_{n+1}, R_{n+1} \\right)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/aae\/641\/2a0\/aae6412a070a18d0cc113bb56a4c6dae.svg\">\u043f\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c:<\/p>\n<p>\u041f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u043c: <img decoding=\"async\" class=\"formula inline\" source=\"L_{n+1} = R_n\" alt=\"L_{n+1} = R_n\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d71\/f5c\/fa4\/d71f5cfa41cfe7372b319653566f6678.svg\"><\/p>\n<p>\u0427\u0435\u0442\u043d\u044b\u0439 \u0440\u0430\u0443\u043d\u0434:  <img class=\"formula inline\" source=\" n = 2 \\cdot i, ~~~ i \\in [1; 32]\" alt=\" n = 2 \\cdot i, ~~~ i \\in [1; 32]\">   <img class=\"formula inline\" source=\" R_{n+1} = L_n \\boxplus \\left( \\left\\{  \\left[ R_n \\ll 4 \\right] \\boxplus K_2 \\right\\} \\oplus \\left\\{ R_n \\boxplus i \\cdot \\delta \\right\\} \\oplus \\left\\{ \\left[ R_n \\gg 5 \\right] \\boxplus K_3 \\right\\} \\right)\" alt=\" R_{n+1} = L_n \\boxplus \\left( \\left\\{  \\left[ R_n \\ll 4 \\right] \\boxplus K_2 \\right\\} \\oplus \\left\\{ R_n \\boxplus i \\cdot \\delta \\right\\} \\oplus \\left\\{ \\left[ R_n \\gg 5 \\right] \\boxplus K_3 \\right\\} \\right)\"><\/p>\n<p>\u041d\u0435\u0447\u0435\u0442\u043d\u044b\u0439: <img class=\"formula inline\" source=\"n = 2 \\cdot i - 1, ~~~ i \\in [1; 32]\" alt=\"n = 2 \\cdot i - 1, ~~~ i \\in [1; 32]\">   <img class=\"formula inline\" source=\"R_{n+1} = L_n \\boxplus \\left( \\left\\{  \\left[ R_n \\ll 4 \\right] \\boxplus K_0 \\right\\} \\oplus \\left\\{ R_n \\boxplus i \\cdot \\delta \\right\\} \\oplus \\left\\{ \\left[ R_n \\gg 5 \\right] \\boxplus K_1 \\right\\} \\right)\" alt=\"R_{n+1} = L_n \\boxplus \\left( \\left\\{  \\left[ R_n \\ll 4 \\right] \\boxplus K_0 \\right\\} \\oplus \\left\\{ R_n \\boxplus i \\cdot \\delta \\right\\} \\oplus \\left\\{ \\left[ R_n \\gg 5 \\right] \\boxplus K_1 \\right\\} \\right)\"><\/p>\n<p>\u0417\u0430\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u043a\u043b\u044e\u0447. \u0414\u043b\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043c \u0431\u043b\u043e\u043a \u0441\u0445\u0435\u043c\u0430 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430:<\/p>\n<figure class=\"bordered full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/429\/286\/59b\/42928659be30503a991b4ba461cd1c7e.png\" alt=\"\u0411\u043b\u043e\u043a-\u0441\u0445\u0435\u043c\u0430 TEA\" title=\"\u0411\u043b\u043e\u043a-\u0441\u0445\u0435\u043c\u0430 TEA\" width=\"3541\" height=\"2508\"><figcaption>\u0411\u043b\u043e\u043a-\u0441\u0445\u0435\u043c\u0430 TEA<\/figcaption><\/figure>\n<h2>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f TEA<\/h2>\n<p>\u041f\u0440\u0438\u0432\u0435\u0434\u0435\u043c \u043a\u043e\u0434, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d TEA \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0421. \u0410\u0432\u0442\u043e\u0440\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f <em>\u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u0438 \u0441\u0430\u043c\u043e\u0433\u043e \u0448\u0438\u0444\u0440\u0430<\/em>: David J. Wheeler \u0438 Roger M. Needham. <a href=\"http:\/\/www.cix.co.uk\/~klockstone\/tea.pdf\" rel=\"noopener noreferrer nofollow\">\u041f\u0435\u0440\u0432\u043e\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a &#8212; \u0438\u0445 \u0441\u0442\u0430\u0442\u044c\u044f<\/a>.<\/p>\n<ul>\n<li>\n<p>k[0], k[1], k[2], k[3] &#8212; \u043a\u043b\u044e\u0447, \u0440\u0430\u0437\u0431\u0438\u0442\u044b\u0439 \u043d\u0430 \u0447\u0435\u0442\u044b\u0440\u0435 \u0447\u0430\u0441\u0442\u0438<\/p>\n<\/li>\n<li>\n<p>v[0], v[1] &#8212; \u0434\u0430\u043d\u043d\u044b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0445\u043e\u0442\u0438\u043c \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c<\/p>\n<\/li>\n<li>\n<p>encode &#8212; (true), \u043a\u043e\u0433\u0434\u0430 \u0445\u043e\u0442\u0438\u043c \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435, (false), \u043a\u043e\u0433\u0434\u0430 \u0445\u043e\u0442\u0438\u043c \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"cpp\">void tea(long* v, long* k, bool encode) {   unsigned long y = v[0];   unsigned long z = v[1];   unsigned long sum = 0;   unsigned long delta = 0x9e3779b9;   unsigned long n = 32;      if(encode) {          \/\/ encoding        while(n-- &gt; 0) {       sum += delta;       y += ((z &lt;&lt; 4) + k[0]) ^ (z + sum) ^ ((z &gt;&gt; 5) + k[1]);       z += ((y &lt;&lt; 4) + k[2]) ^ (y + sum) ^ ((y &gt;&gt; 5) + k[3]);     }      } else {          \/\/ decoding        sum = delta &lt;&lt; 5;        while(n-- &gt; 0) {       z -= ((y &lt;&lt; 4) + k[2]) ^ (y + sum) ^ ((y &gt;&gt; 5) + k[3]);       y -= ((z &lt;&lt; 4) + k[0]) ^ (z + sum) ^ ((z &gt;&gt; 5) + k[1]);       sum -= delta;     }   }      v[0] = y;   v[1] = z;      return; }<\/code><\/pre>\n<h2>XTEA<\/h2>\n<p>\u0412 TEA \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u043d\u0430\u0448\u043b\u0438 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u044b\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438, \u0447\u0442\u043e \u043d\u0430\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u043e \u043d\u0430 \u0435\u0433\u043e \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435, \u0447\u0442\u043e \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0438 \u043f\u0440\u0438\u0432\u0435\u043b\u043e \u043a \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u043d\u043e\u0432\u043e\u0433\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 XTEA.<\/p>\n<p><strong>XTEA a.k.a. eXtended TEA<\/strong> &#8212; \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u044b \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 TEA. \u041f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0442\u0435\u043c\u0438 \u0436\u0435 David J. Wheeler \u0438 Roger M. Needham. \u041a\u0430\u043a \u0438 TEA, \u043e\u043f\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0431\u043b\u043e\u043a\u0430\u043c\u0438 \u043f\u043e 64 \u0431\u0438\u0442\u0430. \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432 TEA \u043a\u043b\u044e\u0447 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0446\u0438\u043a\u043b\u0435 \u0432\u044b\u0431\u0438\u0440\u0430\u043b\u0441\u044f \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e, \u043d\u0435 \u0431\u044b\u043b\u043e \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u044f. \u0412 XTEA \u044d\u0442\u0443 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u043e\u0441\u0442\u044c \u0448\u0438\u0444\u0440\u0430 \u0443\u0431\u0440\u0430\u043b\u0438. \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u044b\u0431\u043e\u0440 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u0447\u0435\u0442\u044b\u0440\u0435\u0445 \u0447\u0430\u0441\u0442\u0435\u0439 \u043a\u043b\u044e\u0447\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0437\u043e\u043b\u043e\u0442\u043e\u0433\u043e \u0441\u0435\u0447\u0435\u043d\u0438\u044f (\u0432 \u043a\u043e\u043d\u0446\u0435 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043f\u0440\u043e\u0441\u0442\u043e \u0431\u0435\u0440\u0435\u0442\u0441\u044f \u043e\u0441\u0442\u0430\u0442\u043e\u043a \u043e\u0442 \u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043d\u0430 4). <\/p>\n<p>\u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0435.  \u041d\u0430 n-\u043e\u043c \u0440\u0430\u0443\u043d\u0434\u0435 <img decoding=\"async\" class=\"formula inline\" source=\"n \\in [1; 64]\" alt=\"n \\in [1; 64]\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/bd8\/720\/a41\/bd8720a414b1442870e56034ba96a029.svg\"> \u0441\u043d\u043e\u0432\u0430 \u043d\u0430 \u0445\u043e\u0434 \u043f\u043e\u0441\u0442\u0443\u043f\u0430\u044e\u0442 \u0434\u0430\u043d\u043d\u044b\u0435, \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u043f\u043e\u043f\u043e\u043b\u0430\u043c:<img decoding=\"async\" class=\"formula inline\" source=\"\\left( L_n, R_n \\right)\" alt=\"\\left( L_n, R_n \\right)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/62c\/373\/3a4\/62c3733a42549f2255900043658f3077.svg\">, \u0432\u044b\u0445\u043e\u0434\u044f\u0442 <img decoding=\"async\" class=\"formula inline\" source=\"\\left( L_{n+1}, R_{n+1} \\right)\" alt=\"\\left( L_{n+1}, R_{n+1} \\right)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/aae\/641\/2a0\/aae6412a070a18d0cc113bb56a4c6dae.svg\">\u043f\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c:<\/p>\n<p>\u0421\u043d\u043e\u0432\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u043c: <img decoding=\"async\" class=\"formula inline\" source=\"L_{n+1} = R_n\" alt=\"L_{n+1} = R_n\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d71\/f5c\/fa4\/d71f5cfa41cfe7372b319653566f6678.svg\"><\/p>\n<p>\u0427\u0435\u0442\u043d\u044b\u0439 \u0440\u0430\u0443\u043d\u0434: <img class=\"formula inline\" source=\"n = 2 \\cdot i, ~~~ i \\in [1; 32] \" alt=\"n = 2 \\cdot i, ~~~ i \\in [1; 32] \">     <img class=\"formula inline\" source=\"R_{n+1} = L_n \\boxplus \\left( \\left\\{  \\left[ R_n \\ll 4 \\oplus R_n \\gg 5 \\right] \\boxplus R_n \\right\\} \\oplus \\left\\{ i \\cdot \\delta \\boxplus K_{\\left( i \\cdot \\delta \\gg 11 \\right) \\wedge 3} \\right\\} \\right)\" alt=\"R_{n+1} = L_n \\boxplus \\left( \\left\\{  \\left[ R_n \\ll 4 \\oplus R_n \\gg 5 \\right] \\boxplus R_n \\right\\} \\oplus \\left\\{ i \\cdot \\delta \\boxplus K_{\\left( i \\cdot \\delta \\gg 11 \\right) \\wedge 3} \\right\\} \\right)\"><\/p>\n<p>\u041d\u0435\u0447\u0435\u0442\u043d\u044b\u0439: <img class=\"formula inline\" source=\"n = 2 \\cdot i - 1, ~~~ i \\in [1; 32]\" alt=\"n = 2 \\cdot i - 1, ~~~ i \\in [1; 32]\">     <img class=\"formula inline\" source=\"R_{n+1} = L_n \\boxplus \\left( \\left\\{  \\left[ R_n \\ll 4 \\oplus R_n \\gg 5 \\right] \\boxplus R_n \\right\\} \\oplus \\left\\{ \\left( i - 1 \\right) \\cdot \\delta \\boxplus K_{\\left( \\left( i - 1 \\right) \\cdot \\delta \\right) \\wedge 3} \\right\\} \\right)\" alt=\"R_{n+1} = L_n \\boxplus \\left( \\left\\{  \\left[ R_n \\ll 4 \\oplus R_n \\gg 5 \\right] \\boxplus R_n \\right\\} \\oplus \\left\\{ \\left( i - 1 \\right) \\cdot \\delta \\boxplus K_{\\left( \\left( i - 1 \\right) \\cdot \\delta \\right) \\wedge 3} \\right\\} \\right)\"><\/p>\n<p>\u0411\u043b\u043e\u043a \u0441\u0445\u0435\u043c\u0430:<\/p>\n<figure class=\"bordered full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/515\/15d\/6c3\/51515d6c36f66603e2c1446b1be9fad3.png\" alt=\"\u0411\u043b\u043e\u043a-\u0441\u0445\u0435\u043c\u0430 XTEA\" title=\"\u0411\u043b\u043e\u043a-\u0441\u0445\u0435\u043c\u0430 XTEA\" width=\"3541\" height=\"2508\"><figcaption>\u0411\u043b\u043e\u043a-\u0441\u0445\u0435\u043c\u0430 XTEA<\/figcaption><\/figure>\n<h2>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f XTEA<\/h2>\n<p>\u0421\u043d\u043e\u0432\u0430 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043c \u043a\u043e\u0434, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u0438 \u0448\u0438\u0444\u0440\u0430 David J. Wheeler \u0438 Roger M. Needham \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b\u0438 \u0441\u0432\u043e\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0421. \u0422\u043e, \u043a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434 (\u043e\u043d \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0438\u0447\u0435\u043c \u043d\u0435 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f), \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c <a href=\"https:\/\/www.movable-type.co.uk\/scripts\/xtea.pdf\" rel=\"noopener noreferrer nofollow\">\u0432 \u0438\u0445 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438<\/a>.<\/p>\n<ul>\n<li>\n<p>v &#8212; \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 2 \u0447\u0430\u0441\u0442\u0435\u0439<\/p>\n<\/li>\n<li>\n<p>k &#8212; \u043a\u043b\u044e\u0447 \u0438\u0437 4 \u0447\u0430\u0441\u0442\u0435\u0439<\/p>\n<\/li>\n<li>\n<p>N &#8212; \u0447\u0438\u0441\u043b\u043e \u0446\u0438\u043a\u043b\u043e\u0432 (\u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044c \u0448\u0438\u0444\u0440\u0430 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442 32)<\/p>\n<\/li>\n<li>\n<p>long &#8212; 32 \u0431\u0438\u0442\u0430<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"cpp\">void xtea(long* v, long* k, long N) {   unsigned long y = v[0];   unsigned long z = v[1];   unsigned long delta = 0x9e3779b9;      if(N &gt; 0) {          \/\/ encoding          unsigned long limit = delta * N;     unsigned long sum = 0;          while(sum != limit) {       y += (z &lt;&lt; 4 ^ z &gt;&gt; 5) + z ^ sum + k[sum &amp; 3];       sum += delta;       z += (y &lt;&lt; 4 ^ y &gt;&gt; 5) + y ^ sum + k[sum &gt;&gt; 11 &amp; 3];     }        } else {          \/\/ decoding          unsigned long sum = delta * (-N);          while (sum) {       z -= (y &lt;&lt; 4 ^ y &gt;&gt; 5) + y ^ sum + k[sum &gt;&gt; 11 &amp; 3];       sum -= delta;       y -= (z &lt;&lt; 4 ^ z &gt;&gt; 5) + z ^ sum + k[sum &amp; 3];     }        }      v[0] = y;   v[1] = z;      return; }<\/code><\/pre>\n<p>\u041e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0435 \u0443 XTEA \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u0432\u0435\u043b\u0438 \u043a \u0440\u044f\u0434\u0443 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0439: XTEA-1, XTEA-2, XTEA-3. \u041e\u0434\u043d\u0430\u043a\u043e \u043e\u043d\u0438 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0441\u0442\u043e\u043b\u044c \u0448\u0438\u0440\u043e\u043a\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435. \u0414\u0430\u043d\u043d\u044b\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u0431\u0443\u0434\u0443\u0442.<\/p>\n<h2>XXTEA<\/h2>\n<p><strong>XXTEA a.k.a. Corrected Block TEA<\/strong> (\u0442.\u043a. <em>XTEA <\/em>\u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0435\u0449\u0435 <em>Block TEA<\/em>) &#8212; \u043a\u0430\u043a \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u0438\u0437 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f, \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f XTEA. \u0410\u0432\u0442\u043e\u0440\u0430\u043c\u0438, \u0441\u043d\u043e\u0432\u0430 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f David J. Wheeler \u0438 Roger M. Needham, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u043b\u0443\u0447\u0448\u0438\u043b\u0438 \u0441\u0432\u043e\u0439 \u0441\u0442\u0430\u0440\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c. \u041e\u043d\u0438 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u044e\u0442, \u0447\u0442\u043e \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043e\u0431\u0449\u0435\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0435\u0440\u0441\u0438\u044e \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u0431\u043b\u043e\u043a\u0430\u043c\u0438, \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u043e, \u043f\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c:<\/p>\n<ul>\n<li>\n<p>\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0431\u0438\u0442\u0430 \u0438\u0437\u043c\u0435\u043d\u0438\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u0431\u0438\u0442\u043e\u0432 \u0432\u0441\u0435\u0433\u043e \u0431\u043b\u043e\u043a\u0430, \u043d\u0435 \u043e\u0441\u0442\u0430\u0432\u0438\u0432 \u0441\u043b\u0435\u0434\u0430<\/p>\n<\/li>\n<li>\n<p>\u0414\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0433\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 (\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043f\u043e \u043d\u043e\u043c\u0435\u0440\u0443 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f), \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0434\u0430\u044e\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u0430 \u0443\u0442\u0435\u0447\u043a\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0430<\/p>\n<\/li>\n<li>\n<p>\u041d\u043e\u043c\u0435\u0440 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0433\u0434\u0430 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u044d\u0442\u0430 \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u043e\u0439 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u043c\u043e\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p>\u0410\u0442\u0430\u043a\u0430 &#171;\u0447\u0435\u043b\u043e\u0432\u0435\u043a \u043f\u043e\u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435&#187;, \u0441\u0443\u0434\u044f \u043f\u043e \u0432\u0441\u0435\u043c\u0443, \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430<\/p>\n<\/li>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u043d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u043e \u0438\u043c\u0435\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u0434\u043b\u0438\u043d\u043d\u044b\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0431\u0438\u0442\u044c \u043d\u0430 \u0431\u043b\u043e\u043a\u0438, \u0441\u043a\u0430\u0436\u0435\u043c \u043f\u043e 60 \u0441\u043b\u043e\u0432, \u0438 \u0441\u0432\u044f\u0437\u0430\u0442\u044c \u0438\u0445 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u043c\u0435\u0442\u043e\u0434\u0430\u043c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u043c \u0434\u043b\u044f <a href=\"https:\/\/habr.com\/ru\/post\/532332\/\" rel=\"noopener noreferrer nofollow\">DES<\/a><\/p>\n<\/li>\n<\/ul>\n<p>\u041a\u0430\u043a \u0443\u0436\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043b\u043e\u0441\u044c \u0432\u044b\u0448\u0435, \u0432 XXTEA \u0434\u0430\u043d\u043d\u044b\u0435 \u0448\u0438\u0444\u0440\u0443\u044e\u0442\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a\u0438\u043c \u0436\u0435 \u043e\u0431\u0440\u0430\u0437\u043e\u043c. \u0421\u043d\u043e\u0432\u0430 \u0434\u0435\u043b\u0438\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u0431\u043b\u043e\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0435\u0449\u0435 \u043f\u043e\u0434\u0435\u043b\u0438\u043c \u043f\u043e\u043f\u043e\u043b\u0430\u043c, \u043a\u043b\u044e\u0447, \u043a\u0430\u043a \u0438 \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0447\u0435\u0442\u044b\u0440\u0435 \u0447\u0430\u0441\u0442\u0438. \u0417\u0430 \u043e\u0434\u0438\u043d \u0440\u0430\u0443\u043d\u0434 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e \u0441\u043b\u043e\u0432\u043e \u0438\u0437 \u0431\u043b\u043e\u043a\u0430. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 \u043d\u0430 n-\u043e\u043c \u0440\u0430\u0443\u043d\u0434\u0435:<\/p>\n<p>\u041f\u0443\u0441\u0442\u044c \u0441\u043b\u043e\u0432\u043e <img decoding=\"async\" class=\"formula inline\" source=\"LR\" alt=\"LR\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c55\/b95\/db2\/c55b95db2a9e996d6f04d4e0a04912e7.svg\"> \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u043f\u0440\u0430\u0432\u043e\u0433\u043e \u0438 \u043b\u0435\u0432\u043e\u0433\u043e \u0447\u0430\u0441\u0442\u0435\u0439. \u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"\\delta\" alt=\"\\delta\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5ea\/c52\/b0d\/5eac52b0d59c772c437e359d07531bbe.svg\"> \u0442\u0430\u043a\u0430\u044f \u0436\u0435, \u043a\u0430\u043a \u0432\u043e \u0432\u0441\u0435 \u043f\u0440\u043e\u0448\u043b\u044b\u0435 \u0440\u0430\u0437\u044b. \u0412\u044b\u0431\u0435\u0440\u0435\u043c \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u043b\u044e\u0447 (\u043e\u0434\u0438\u043d \u0438\u0437 \u0447\u0435\u0442\u044b\u0440\u0435\u0445): <img decoding=\"async\" class=\"formula inline\" source=\"K_{\\left[ \\left( \\delta \\cdot n \\gg 2 \\right) \\oplus n \\right] ~ \\text{mod} ~ 4}\" alt=\"K_{\\left[ \\left( \\delta \\cdot n \\gg 2 \\right) \\oplus n \\right] ~ \\text{mod} ~ 4}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0d2\/955\/37f\/0d295537f86f6c1708b66487c538758e.svg\">. \u0420\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0434\u0432\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430:<\/p>\n<ul>\n<li>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"\\alpha = \\left( L \\ll 2 ~ \\oplus ~ R \\gg 5 \\right) \\boxplus \\left( L \\gg 3 ~ \\oplus ~ R \\ll 4 \\right)\" alt=\"\\alpha = \\left( L \\ll 2 ~ \\oplus ~ R \\gg 5 \\right) \\boxplus \\left( L \\gg 3 ~ \\oplus ~ R \\ll 4 \\right)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cc9\/073\/21a\/cc907321a80682290a40bfaeeb030e35.svg\"><\/p>\n<\/li>\n<li>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"\\beta = \\left( \\delta \\cdot n ~ \\oplus ~ L \\right) \\boxplus \\left( K_{\\left[ \\left( \\delta \\cdot n \\gg 2 \\right) \\oplus n \\right] ~ \\text{mod} ~ 4} ~ \\oplus ~ R \\right)\" alt=\"\\beta = \\left( \\delta \\cdot n ~ \\oplus ~ L \\right) \\boxplus \\left( K_{\\left[ \\left( \\delta \\cdot n \\gg 2 \\right) \\oplus n \\right] ~ \\text{mod} ~ 4} ~ \\oplus ~ R \\right)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/8a8\/ef0\/5ec\/8a8ef05ec8b8adf45dfa1510d35f406f.svg\"><\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u043e\u0433\u0434\u0430 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f: <img decoding=\"async\" class=\"formula inline\" source=\"\\left( \\alpha ~ \\oplus ~ \\beta \\right) \\boxplus \\left( LR \\right), ~~~ LR - \\text{\u0441\u043b\u043e\u0432\u043e \u0446\u0435\u043b\u0438\u043a\u043e\u043c}\" alt=\"\\left( \\alpha ~ \\oplus ~ \\beta \\right) \\boxplus \\left( LR \\right), ~~~ LR - \\text{\u0441\u043b\u043e\u0432\u043e \u0446\u0435\u043b\u0438\u043a\u043e\u043c}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3a7\/a5d\/4ed\/3a7a5d4ed0b6fad59bbb8a89982216f8.svg\"><\/p>\n<p>\u041f\u0440\u0438\u0432\u0435\u0434\u0435\u043c \u0431\u043b\u043e\u043a-\u0441\u0445\u0435\u043c\u0443:<\/p>\n<figure class=\"bordered full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0d7\/df6\/107\/0d7df61073aa877d511aea5022f9850a.png\" alt=\"\u0411\u043b\u043e\u043a-\u0441\u0445\u0435\u043c\u0430 XXTEA\" title=\"\u0411\u043b\u043e\u043a-\u0441\u0445\u0435\u043c\u0430 XXTEA\" width=\"3541\" height=\"2508\"><figcaption>\u0411\u043b\u043e\u043a-\u0441\u0445\u0435\u043c\u0430 XXTEA<\/figcaption><\/figure>\n<h2>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f XXTEA<\/h2>\n<p>\u041f\u0440\u0438\u0432\u0435\u0434\u0435\u043c \u043a\u043e\u0434, \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u0441\u0430\u043c\u0438\u043c\u0438 \u0430\u0432\u0442\u043e\u0440\u0430\u043c\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f &#8212; David J. Wheeler \u0438 Roger M. Needham. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 <a href=\"https:\/\/www.movable-type.co.uk\/scripts\/xxtea.pdf\" rel=\"noopener noreferrer nofollow\">\u0432 \u0438\u0445 \u0441\u0442\u0430\u0442\u044c\u0435<\/a>.<\/p>\n<ul>\n<li>\n<p>v &#8212; \u0441\u043b\u043e\u0432\u043e \u0438\u0437 2 \u0447\u0430\u0441\u0442\u0435\u0439<\/p>\n<\/li>\n<li>\n<p>k &#8212; \u043a\u043b\u044e\u0447 \u0438\u0437 4 \u0447\u0430\u0441\u0442\u0435\u0439<\/p>\n<\/li>\n<li>\n<p>N &#8212; \u0447\u0438\u0441\u043b\u043e \u0446\u0438\u043a\u043b\u043e\u0432<\/p>\n<\/li>\n<li>\n<p>long &#8212; 32 \u0431\u0438\u0442\u0430<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"cpp\">#define MX (z &gt;&gt; 5 ^ y &lt;&lt; 2) + (y &gt;&gt; 3 ^ z &lt;&lt; 4) ^ (sum ^ y) + (k[p &amp; 3 ^ e] ^ z)  long xxtea(long* v, long * k, long N) {   unsigned long z = v[N - 1];   unsigned long y = v[0];   unsigned long sum = 0;   unsigned long e = 0;   unsigned long delta = 0x9e3779b9;      long m = 0;   long p = 0;   long q = 0;      if(N &gt; 1) {          \/\/ encoding          q = 6 + 52 \/ N;          while(q-- &gt; 0) {       sum += delta;       e = sum &gt;&gt; 2 &amp; 3;       for(p = 0; p &lt; N - 1; p++) {         y = v[p + 1];         z = v[p] += MX;       }       y = v[0];       z = v[N - 1] += MX;     }          return 0;   } else if(N &lt; -1) {          \/\/ decoding          N = -N;     q = 6 + 52 \/ N;     sum = q * delta;          while(sum != 0) {       e = sum &gt;&gt; 2 &amp; 3;       for(p = N - 1; p &gt; 0; p--) {         z = v[p - 1];         y = v[p] -= MX;       }       z = v[N - 1];       y = v[0] -= MX;     }          return 0;   }      return 1; }<\/code><\/pre>\n<h2>\u0410\u043d\u0430\u043b\u0438\u0437 TEA, XTEA, XXTEA<\/h2>\n<p><strong>TEA <\/strong>\u043d\u0435 \u043e\u0441\u043e\u0431\u043e \u043f\u043e\u0434\u0432\u0435\u0440\u0436\u0435\u043d \u0430\u0442\u0430\u043a\u0430\u043c \u0434\u0438\u0444\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u0440\u0438\u043f\u0442\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0430. \u0414\u043b\u044f 17 \u0440\u0430\u0443\u043d\u0434\u043e\u0432 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u043e\u0440\u044f\u0434\u043a\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"2^{123}\" alt=\"2^{123}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/689\/629\/421\/689629421ef07dd251895d9802cdd7eb.svg\">. \u041e\u0434\u043d\u0430\u043a\u043e \u043f\u0440\u0438 &#171;\u0430\u0442\u0430\u043a\u0435 \u043d\u0430 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u043a\u043b\u044e\u0447\u0430\u0445&#187; TEA \u0443\u044f\u0437\u0432\u0438\u043c, \u0442\u0430\u043a \u043a\u0430\u043a \u043a\u043b\u044e\u0447\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u0446\u0438\u043a\u043b\u0430 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 (\u0432\u0441\u0435\u0433\u0434\u0430 \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u0432\u044b\u0431\u043e\u0440). \u0415\u0449\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441 \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u044b\u043c\u0438 \u043a\u043b\u044e\u0447\u0430\u043c\u0438: \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u043a\u043b\u044e\u0447 \u0435\u0441\u0442\u044c \u0442\u0440\u0438 \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u044b\u0432\u0430\u044e\u0442 \u0438 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u044b\u0432\u0430\u044e\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0442\u0430\u043a\u0438\u043c \u0436\u0435 \u043e\u0431\u0440\u0430\u0437\u043e\u043c. <\/p>\n<p><strong>XTEA, <\/strong>\u043a\u0430\u043a \u043d\u0438 \u0441\u0442\u0440\u0430\u043d\u043d\u043e, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u0435\u0435 \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u044b\u043c, \u0447\u0435\u043c TEA. \u041d\u043e \u0438\u0437-\u0437\u0430 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 (\u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 XOR) XTEA \u0445\u0443\u0436\u0435 \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441 \u0434\u0438\u0444\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0438 \u0443\u0441\u0435\u0447\u0435\u043d\u043d\u044b\u043c\u0438 \u0434\u0438\u0444\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0430\u0442\u0430\u043a\u0430\u043c\u0438, \u0447\u0435\u043c TEA. \u041b\u0443\u0447\u0448\u0438\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0440\u0430\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u0441 XTEA \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c &#8212; \u0434\u0438\u0444\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0430\u0442\u0430\u043a\u0430 \u043d\u0430 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u043a\u043b\u044e\u0447\u0430\u0445.<\/p>\n<p><strong>XXTEA <\/strong>\u0443\u0436\u0435 \u043d\u0435\u043f\u043b\u043e\u0445. E. Yarrkov  \u0432 2010 \u0433\u043e\u0434\u0443 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 <a href=\"https:\/\/eprint.iacr.org\/2010\/254\" rel=\"noopener noreferrer nofollow\">\u0430\u0442\u0430\u043a\u0443 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430<\/a> \u043f\u0440\u043e\u0442\u0438\u0432 \u0432\u0441\u0435\u0433\u043e \u0446\u0438\u043a\u043b\u0430 XXTEA \u0441 \u0448\u0438\u0440\u043e\u043a\u0438\u043c \u0431\u043b\u043e\u043a\u043e\u043c. \u0420\u0430\u0431\u043e\u0442\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 \u0434\u0438\u0444\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u043c \u043a\u0440\u0438\u043f\u0442\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0435. \u0427\u0442\u043e\u0431\u044b \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c 212 \u0431\u0430\u0439\u0442 \u0438 \u0431\u043e\u043b\u0435\u0435, \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0432\u0441\u0435\u0433\u043e 6 \u0440\u0430\u0443\u043d\u0434\u043e\u0432, \u0430 \u0442\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0431\u0438\u0442\u043e\u0432\u044b\u0435 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u0442\u044c \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u0430\u0432\u0438\u043d\u043d\u044b\u0439 \u044d\u0444\u0444\u0435\u043a\u0442. <em>\u041d\u043e E. Yarrkov \u0433\u043e\u0432\u043e\u0440\u0438\u0442, \u0447\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u0432\u0443\u0445 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0440\u0430\u0443\u043d\u0434\u043e\u0432 \u0443\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442 \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443<\/em>.<\/p>\n<h2>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438<\/h2>\n<ul>\n<li>\n<p>Roger M. Needham and David J. Wheeler: <a href=\"http:\/\/www.cix.co.uk\/~klockstone\/tea.pdf\" rel=\"noopener noreferrer nofollow\">TEA, a Tiny Encryption Algorithm<\/a><\/p>\n<\/li>\n<li>\n<p>\u0410. Roger M. Needham and David J. Wheeler: <a href=\"https:\/\/www.movable-type.co.uk\/scripts\/xtea.pdf\" rel=\"noopener noreferrer nofollow\">TEA extensions<\/a><\/p>\n<\/li>\n<li>\n<p>David J. Wheeler, Roger M. Needham: <a href=\"https:\/\/www.movable-type.co.uk\/scripts\/xxtea.pdf\" rel=\"noopener noreferrer nofollow\">Correction to XTEA<\/a><\/p>\n<\/li>\n<li>\n<p>Elias Yarrkov: <a href=\"https:\/\/eprint.iacr.org\/2010\/254.pdf\" rel=\"noopener noreferrer nofollow\">Cryptoanalysis of XXTEA<\/a><\/p>\n<\/li>\n<\/ul>\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\/534474\/\"> https:\/\/habr.com\/ru\/post\/534474\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<h2>\u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0441\u0442\u0430\u0442\u044c\u0438<\/h2>\n<ul>\n<li>\n<p>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f TEA<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f TEA<\/p>\n<\/li>\n<li>\n<p>\u0423\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u043c \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 TEA \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c XTEA (Block TEA)<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f XTEA<\/p>\n<\/li>\n<li>\n<p>\u0415\u0449\u0435 \u043b\u0443\u0447\u0448\u0435: XXTEA (Corrected Block TEA)<\/p>\n<\/li>\n<li>\n<p>\u041a\u0440\u0438\u043f\u0442\u043e\u0430\u043d\u0430\u043b\u0438\u0437 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/p>\n<\/li>\n<\/ul>\n<h2>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h2>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0434\u0432\u0430 \u0442\u0438\u043f\u0430 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f: <em>\u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u044b\u0435 <\/em>\u0438 <em>\u043d\u0435\u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u044b\u0435<\/em>. <\/p>\n<p>\u0412 <em>\u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u044b\u0445 <\/em>\u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u0445 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u043a\u043b\u044e\u0447 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0438 \u0434\u043b\u044f \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445, \u0438 \u0434\u043b\u044f \u0438\u0445 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438. \u042d\u0442\u043e\u0442 \u043a\u043b\u044e\u0447 \u0434\u043e\u043b\u0436\u043d\u044b \u0437\u043d\u0430\u0442\u044c \u0437\u043d\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044c \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044c, \u0438\u043d\u0430\u0447\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0440\u0443\u043a\u0430\u0445 \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a\u043e\u0432 \u043f\u043e \u0441\u0443\u0442\u0438 \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438. \u0427\u0435\u043b\u043e\u0432\u0435\u043a, \u0437\u043d\u0430\u044f \u043a\u043b\u044e\u0447, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0437\u043d\u0430\u0442\u044c, \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u0448\u0438\u0444\u0440\u043e\u0442\u0435\u043a\u0441\u0442 \u0438 \u0443\u0437\u043d\u0430\u0442\u044c, \u0447\u0442\u043e \u0432\u044b \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u0430 \u043a\u0443\u043f\u0438\u0442\u044c \u0432 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0435 \u043c\u0430\u043a\u0430\u0440\u043e\u043d\u044b.<\/p>\n<p>\u0412 <em>\u043d\u0435\u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u044b\u0445 <\/em>\u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u0445 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0443\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043d\u0435 \u043e\u0434\u0438\u043d \u043a\u043b\u044e\u0447, \u0430 \u0446\u0435\u043b\u044b\u0445 \u0434\u0432\u0430: <em>\u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 <\/em>\u0438 <em>\u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0439<\/em>. \u0428\u0438\u0444\u0440\u0443\u044e\u0442\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c, \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u043c. \u041e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u043a\u043b\u044e\u0447 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0434\u0430\u0442\u044c \u0432\u0441\u0435\u043c \u0436\u0435\u043b\u0430\u044e\u0449\u0438\u043c, \u0430 \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0439 \u043a\u043b\u044e\u0447 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0432 \u0442\u0430\u0439\u043d\u0435.<\/p>\n<p>TEA, XTEA, XXTEA \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f <em>\u0431\u043b\u043e\u0447\u043d\u044b\u043c\u0438 <\/em>\u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u043c\u0438 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u042d\u0442\u043e \u0432\u0438\u0434 \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u043e\u0433\u043e \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u043f\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0433\u0440\u0443\u043f\u043f\u0430\u043c\u0438 \u0431\u0438\u0442, \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0431\u043b\u043e\u043a\u0430\u043c\u0438.<\/p>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044e\u0442\u0441\u044f <em>\u0431\u043b\u043e\u0447\u043d\u044b\u0435 \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u044b\u0435<\/em> \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0444\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 <em>\u0441\u0435\u0442\u044c \u0424\u0435\u0439\u0441\u0442\u0435\u043b\u044f<\/em>, \u043a\u0430\u043a \u0438 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0431\u043b\u043e\u0447\u043d\u044b\u0445 \u0448\u0438\u0444\u0440\u043e\u0432.<\/p>\n<p>\u041e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 <em>\u0441\u0435\u0442\u044c\u044e \u0424\u0435\u0439\u0441\u0442\u0435\u043b\u044f<\/em> \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0432 <a href=\"https:\/\/habr.com\/ru\/post\/140404\/\" rel=\"noopener noreferrer nofollow\">\u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/a>. <\/p>\n<h2>TEA<\/h2>\n<p><strong>TEA<\/strong> a.k.a. <strong>Tiny Encryption Algorithm<\/strong> &#8212; \u0431\u043b\u043e\u0447\u043d\u044b\u0439 \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0414\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u043a\u0440\u043e\u043c\u043d\u044b\u0439 \u0438 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u0431\u044b\u0441\u0442\u0440 \u0432 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u0438 \u043f\u0440\u043e\u0441\u0442 \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0447\u0435\u043c\u0443 \u043d\u0430\u0448\u0435\u043b \u0448\u0438\u0440\u043e\u043a\u043e\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438. <\/p>\n<p>\u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u0441\u0430\u043c\u043e\u043c\u0443 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0443. \u0414\u0430\u043d\u043d\u044b\u0435 \u0434\u0435\u043b\u044f\u0442\u0441\u044f \u043d\u0430 \u0431\u043b\u043e\u043a\u0438 \u043f\u043e 64 \u0431\u0438\u0442, \u0430 \u043a\u043b\u044e\u0447 \u043d\u0430 \u0447\u0435\u0442\u044b\u0440\u0435 \u0447\u0430\u0441\u0442\u0438 \u043f\u043e 32 \u0431\u0438\u0442\u0430: . \u0415\u0441\u043b\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0431\u0438\u0442\u043e\u0432\u043e\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043d\u0435 \u0434\u0435\u043b\u044f\u0442\u0441\u044f \u043d\u0430 64, \u0442\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0435\u0435 \u043d\u0443\u043b\u0435\u0432\u044b\u043c\u0438 \u0431\u0438\u0442\u0430\u043c\u0438. \u0414\u0430\u043b\u0435\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435: \u0446\u0435\u043b\u044b\u0439 32 <em>\u0446\u0438\u043a\u043b\u0430 <\/em>\u043f\u043e 2 <em>\u0440\u0430\u0443\u043d\u0434\u0430<\/em>. \u0420\u0430\u0443\u043d\u0434 &#8212; \u044d\u0442\u043e \u043e\u0434\u0438\u043d \u0448\u0430\u0433 \u0446\u0438\u043a\u043b\u0430. \u0422\u043e \u0435\u0441\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0446\u0438\u043a\u043b\u043e\u0432 \u0435\u0449\u0435 \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0447\u0430\u0441\u0442\u0438. \u0414\u043b\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0432\u0432\u0435\u0434\u0435\u043c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438: <\/p>\n<p>&#8212; \u0447\u0438\u0441\u0435\u043b\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0443\u0436\u043d\u0430 \u0434\u043b\u044f \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0430\u0442\u0430\u043a\u0430\u043c. \u041c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0432\u0437\u044f\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0443, \u0430\u0432\u0442\u043e\u0440 \u0448\u0438\u0444\u0440\u0430 \u0440\u0435\u0448\u0438\u043b \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0437\u043e\u043b\u043e\u0442\u044b\u043c \u0441\u0435\u0447\u0435\u043d\u0438\u0435\u043c<\/p>\n<p>&#8212; \u043f\u043e\u0431\u0438\u0442\u043e\u0432\u044b\u0439 \u0441\u0434\u0432\u0438\u0433 \u0447\u0438\u0441\u043b\u0430 X \u043d\u0430 Y \u0431\u0438\u0442 \u0432\u043b\u0435\u0432\u043e (\u0432\u043f\u0440\u0430\u0432\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e)<\/p>\n<p>&#8212; \u043f\u043e\u0431\u0438\u0442\u043e\u0432\u043e\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0435\u0435 \u0418\u041b\u0418 &#8212; XOR<\/p>\n<p>&#8212; \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0447\u0438\u0441\u0435\u043b \u043f\u043e \u043c\u043e\u0434\u0443\u043b\u044e <\/p>\n<p>\u041d\u0430 n-\u043e\u043c \u0440\u0430\u0443\u043d\u0434\u0435 \u043d\u0430 \u0432\u0445\u043e\u0434 \u043f\u043e\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u0431\u043b\u043e\u043a, \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u0438\u0437 \u0434\u0432\u0443\u0445 \u0447\u0430\u0441\u0442\u0435\u0439: \u043f\u0440\u0430\u0432\u043e\u0439 \u0438 \u043b\u0435\u0432\u043e\u0439, \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0442\u043e\u0436\u0435 \u0431\u043b\u043e\u043a \u0438\u0437 \u0434\u0432\u0443\u0445 \u0447\u0430\u0441\u0442\u0435\u0439\u043f\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c:<\/p>\n<p>\u041f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u043c: <\/p>\n<p>\u0427\u0435\u0442\u043d\u044b\u0439 \u0440\u0430\u0443\u043d\u0434:     <\/p>\n<p>\u041d\u0435\u0447\u0435\u0442\u043d\u044b\u0439:    <\/p>\n<p>\u0417\u0430\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u043a\u043b\u044e\u0447. \u0414\u043b\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043c \u0431\u043b\u043e\u043a \u0441\u0445\u0435\u043c\u0430 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430:<\/p>\n<figure class=\"bordered full-width\"><figcaption>\u0411\u043b\u043e\u043a-\u0441\u0445\u0435\u043c\u0430 TEA<\/figcaption><\/figure>\n<h2>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f TEA<\/h2>\n<p>\u041f\u0440\u0438\u0432\u0435\u0434\u0435\u043c \u043a\u043e\u0434, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d TEA \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0421. \u0410\u0432\u0442\u043e\u0440\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f <em>\u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u0438 \u0441\u0430\u043c\u043e\u0433\u043e \u0448\u0438\u0444\u0440\u0430<\/em>: David J. Wheeler \u0438 Roger M. Needham. <a href=\"http:\/\/www.cix.co.uk\/~klockstone\/tea.pdf\" rel=\"noopener noreferrer nofollow\">\u041f\u0435\u0440\u0432\u043e\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a &#8212; \u0438\u0445 \u0441\u0442\u0430\u0442\u044c\u044f<\/a>.<\/p>\n<ul>\n<li>\n<p>k[0], k[1], k[2], k[3] &#8212; \u043a\u043b\u044e\u0447, \u0440\u0430\u0437\u0431\u0438\u0442\u044b\u0439 \u043d\u0430 \u0447\u0435\u0442\u044b\u0440\u0435 \u0447\u0430\u0441\u0442\u0438<\/p>\n<\/li>\n<li>\n<p>v[0], v[1] &#8212; \u0434\u0430\u043d\u043d\u044b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0445\u043e\u0442\u0438\u043c \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c<\/p>\n<\/li>\n<li>\n<p>encode &#8212; (true), \u043a\u043e\u0433\u0434\u0430 \u0445\u043e\u0442\u0438\u043c \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435, (false), \u043a\u043e\u0433\u0434\u0430 \u0445\u043e\u0442\u0438\u043c \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"cpp\">void tea(long* v, long* k, bool encode) {   unsigned long y = v[0];   unsigned long z = v[1];   unsigned long sum = 0;   unsigned long delta = 0x9e3779b9;   unsigned long n = 32;      if(encode) {          \/\/ encoding        while(n-- &gt; 0) {       sum += delta;       y += ((z &lt;&lt; 4) + k[0]) ^ (z + sum) ^ ((z &gt;&gt; 5) + k[1]);       z += ((y &lt;&lt; 4) + k[2]) ^ (y + sum) ^ ((y &gt;&gt; 5) + k[3]);     }      } else {          \/\/ decoding        sum = delta &lt;&lt; 5;        while(n-- &gt; 0) {       z -= ((y &lt;&lt; 4) + k[2]) ^ (y + sum) ^ ((y &gt;&gt; 5) + k[3]);       y -= ((z &lt;&lt; 4) + k[0]) ^ (z + sum) ^ ((z &gt;&gt; 5) + k[1]);       sum -= delta;     }   }      v[0] = y;   v[1] = z;      return; }<\/code><\/pre>\n<h2>XTEA<\/h2>\n<p>\u0412 TEA \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u043d\u0430\u0448\u043b\u0438 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u044b\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438, \u0447\u0442\u043e \u043d\u0430\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u043e \u043d\u0430 \u0435\u0433\u043e \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435, \u0447\u0442\u043e \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0438 \u043f\u0440\u0438\u0432\u0435\u043b\u043e \u043a \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u043d\u043e\u0432\u043e\u0433\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 XTEA.<\/p>\n<p><strong>XTEA a.k.a. eXtended TEA<\/strong> &#8212; \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u044b \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 TEA. \u041f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0442\u0435\u043c\u0438 \u0436\u0435 David J. Wheeler \u0438 Roger M. Needham. \u041a\u0430\u043a \u0438 TEA, \u043e\u043f\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0431\u043b\u043e\u043a\u0430\u043c\u0438 \u043f\u043e 64 \u0431\u0438\u0442\u0430. \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432 TEA \u043a\u043b\u044e\u0447 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0446\u0438\u043a\u043b\u0435 \u0432\u044b\u0431\u0438\u0440\u0430\u043b\u0441\u044f \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e, \u043d\u0435 \u0431\u044b\u043b\u043e \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u044f. \u0412 XTEA \u044d\u0442\u0443 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u043e\u0441\u0442\u044c \u0448\u0438\u0444\u0440\u0430 \u0443\u0431\u0440\u0430\u043b\u0438. \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u044b\u0431\u043e\u0440 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u0447\u0435\u0442\u044b\u0440\u0435\u0445 \u0447\u0430\u0441\u0442\u0435\u0439 \u043a\u043b\u044e\u0447\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0437\u043e\u043b\u043e\u0442\u043e\u0433\u043e \u0441\u0435\u0447\u0435\u043d\u0438\u044f (\u0432 \u043a\u043e\u043d\u0446\u0435 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043f\u0440\u043e\u0441\u0442\u043e \u0431\u0435\u0440\u0435\u0442\u0441\u044f \u043e\u0441\u0442\u0430\u0442\u043e\u043a \u043e\u0442 \u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043d\u0430 4). <\/p>\n<p>\u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0435.  \u041d\u0430 n-\u043e\u043c \u0440\u0430\u0443\u043d\u0434\u0435  \u0441\u043d\u043e\u0432\u0430 \u043d\u0430 \u0445\u043e\u0434 \u043f\u043e\u0441\u0442\u0443\u043f\u0430\u044e\u0442 \u0434\u0430\u043d\u043d\u044b\u0435, \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u043f\u043e\u043f\u043e\u043b\u0430\u043c:, \u0432\u044b\u0445\u043e\u0434\u044f\u0442 \u043f\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c:<\/p>\n<p>\u0421\u043d\u043e\u0432\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u043c: <\/p>\n<p>\u0427\u0435\u0442\u043d\u044b\u0439 \u0440\u0430\u0443\u043d\u0434:      <\/p>\n<p>\u041d\u0435\u0447\u0435\u0442\u043d\u044b\u0439:      <\/p>\n<p>\u0411\u043b\u043e\u043a \u0441\u0445\u0435\u043c\u0430:<\/p>\n<figure class=\"bordered full-width\"><figcaption>\u0411\u043b\u043e\u043a-\u0441\u0445\u0435\u043c\u0430 XTEA<\/figcaption><\/figure>\n<h2>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f XTEA<\/h2>\n<p>\u0421\u043d\u043e\u0432\u0430 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043c \u043a\u043e\u0434, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u0438 \u0448\u0438\u0444\u0440\u0430 David J. Wheeler \u0438 Roger M. Needham \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b\u0438 \u0441\u0432\u043e\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0421. \u0422\u043e, \u043a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434 (\u043e\u043d \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0438\u0447\u0435\u043c \u043d\u0435 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f), \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c <a href=\"https:\/\/www.movable-type.co.uk\/scripts\/xtea.pdf\" rel=\"noopener noreferrer nofollow\">\u0432 \u0438\u0445 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438<\/a>.<\/p>\n<ul>\n<li>\n<p>v &#8212; \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 2 \u0447\u0430\u0441\u0442\u0435\u0439<\/p>\n<\/li>\n<li>\n<p>k &#8212; \u043a\u043b\u044e\u0447 \u0438\u0437 4 \u0447\u0430\u0441\u0442\u0435\u0439<\/p>\n<\/li>\n<li>\n<p>N &#8212; \u0447\u0438\u0441\u043b\u043e \u0446\u0438\u043a\u043b\u043e\u0432 (\u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044c \u0448\u0438\u0444\u0440\u0430 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442 32)<\/p>\n<\/li>\n<li>\n<p>long &#8212; 32 \u0431\u0438\u0442\u0430<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"cpp\">void xtea(long* v, long* k, long N) {   unsigned long y = v[0];   unsigned long z = v[1];   unsigned long delta = 0x9e3779b9;      if(N &gt; 0) {          \/\/ encoding          unsigned long limit = delta * N;     unsigned long sum = 0;          while(sum != limit) {       y += (z &lt;&lt; 4 ^ z &gt;&gt; 5) + z ^ sum + k[sum &amp; 3];       sum += delta;       z += (y &lt;&lt; 4 ^ y &gt;&gt; 5) + y ^ sum + k[sum &gt;&gt; 11 &amp; 3];     }        } else {          \/\/ decoding          unsigned long sum = delta * (-N);          while (sum) {       z -= (y &lt;&lt; 4 ^ y &gt;&gt; 5) + y ^ sum + k[sum &gt;&gt; 11 &amp; 3];       sum -= delta;       y -= (z &lt;&lt; 4 ^ z &gt;&gt; 5) + z ^ sum + k[sum &amp; 3];     }        }      v[0] = y;   v[1] = z;      return; }<\/code><\/pre>\n<p>\u041e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0435 \u0443 XTEA \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u0432\u0435\u043b\u0438 \u043a \u0440\u044f\u0434\u0443 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0439: XTEA-1, XTEA-2, XTEA-3. \u041e\u0434\u043d\u0430\u043a\u043e \u043e\u043d\u0438 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0441\u0442\u043e\u043b\u044c \u0448\u0438\u0440\u043e\u043a\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435. \u0414\u0430\u043d\u043d\u044b\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u0431\u0443\u0434\u0443\u0442.<\/p>\n<h2>XXTEA<\/h2>\n<p><strong>XXTEA a.k.a. Corrected Block TEA<\/strong> (\u0442.\u043a. <em>XTEA <\/em>\u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0435\u0449\u0435 <em>Block TEA<\/em>) &#8212; \u043a\u0430\u043a \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u0438\u0437 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f, \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f XTEA. \u0410\u0432\u0442\u043e\u0440\u0430\u043c\u0438, \u0441\u043d\u043e\u0432\u0430 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f David J. Wheeler \u0438 Roger M. Needham, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u043b\u0443\u0447\u0448\u0438\u043b\u0438 \u0441\u0432\u043e\u0439 \u0441\u0442\u0430\u0440\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c. \u041e\u043d\u0438 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u044e\u0442, \u0447\u0442\u043e \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043e\u0431\u0449\u0435\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0435\u0440\u0441\u0438\u044e \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u0431\u043b\u043e\u043a\u0430\u043c\u0438, \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u043e, \u043f\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c:<\/p>\n<ul>\n<li>\n<p>\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0431\u0438\u0442\u0430 \u0438\u0437\u043c\u0435\u043d\u0438\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u0431\u0438\u0442\u043e\u0432 \u0432\u0441\u0435\u0433\u043e \u0431\u043b\u043e\u043a\u0430, \u043d\u0435 \u043e\u0441\u0442\u0430\u0432\u0438\u0432 \u0441\u043b\u0435\u0434\u0430<\/p>\n<\/li>\n<li>\n<p>\u0414\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0433\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 (\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043f\u043e \u043d\u043e\u043c\u0435\u0440\u0443 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f), \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0434\u0430\u044e\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u0430 \u0443\u0442\u0435\u0447\u043a\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0430<\/p>\n<\/li>\n<li>\n<p>\u041d\u043e\u043c\u0435\u0440 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0433\u0434\u0430 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u044d\u0442\u0430 \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u043e\u0439 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u043c\u043e\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p>\u0410\u0442\u0430\u043a\u0430 &#171;\u0447\u0435\u043b\u043e\u0432\u0435\u043a \u043f\u043e\u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435&#187;, \u0441\u0443\u0434\u044f \u043f\u043e \u0432\u0441\u0435\u043c\u0443, \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430<\/p>\n<\/li>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u043d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u043e \u0438\u043c\u0435\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u0434\u043b\u0438\u043d\u043d\u044b\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0431\u0438\u0442\u044c \u043d\u0430 \u0431\u043b\u043e\u043a\u0438, \u0441\u043a\u0430\u0436\u0435\u043c \u043f\u043e 60 \u0441\u043b\u043e\u0432, \u0438 \u0441\u0432\u044f\u0437\u0430\u0442\u044c \u0438\u0445 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u043c\u0435\u0442\u043e\u0434\u0430\u043c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u043c \u0434\u043b\u044f <a href=\"https:\/\/habr.com\/ru\/post\/532332\/\" rel=\"noopener noreferrer nofollow\">DES<\/a><\/p>\n<\/li>\n<\/ul>\n<p>\u041a\u0430\u043a \u0443\u0436\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043b\u043e\u0441\u044c \u0432\u044b\u0448\u0435, \u0432 XXTEA \u0434\u0430\u043d\u043d\u044b\u0435 \u0448\u0438\u0444\u0440\u0443\u044e\u0442\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a\u0438\u043c \u0436\u0435 \u043e\u0431\u0440\u0430\u0437\u043e\u043c. \u0421\u043d\u043e\u0432\u0430 \u0434\u0435\u043b\u0438\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u0431\u043b\u043e\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0435\u0449\u0435 \u043f\u043e\u0434\u0435\u043b\u0438\u043c \u043f\u043e\u043f\u043e\u043b\u0430\u043c, \u043a\u043b\u044e\u0447, \u043a\u0430\u043a \u0438 \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0447\u0435\u0442\u044b\u0440\u0435 \u0447\u0430\u0441\u0442\u0438. \u0417\u0430 \u043e\u0434\u0438\u043d \u0440\u0430\u0443\u043d\u0434 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e \u0441\u043b\u043e\u0432\u043e \u0438\u0437 \u0431\u043b\u043e\u043a\u0430. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 \u043d\u0430 n-\u043e\u043c \u0440\u0430\u0443\u043d\u0434\u0435:<\/p>\n<p>\u041f\u0443\u0441\u0442\u044c \u0441\u043b\u043e\u0432\u043e  \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u043f\u0440\u0430\u0432\u043e\u0433\u043e \u0438 \u043b\u0435\u0432\u043e\u0433\u043e \u0447\u0430\u0441\u0442\u0435\u0439. \u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430  \u0442\u0430\u043a\u0430\u044f \u0436\u0435, \u043a\u0430\u043a \u0432\u043e \u0432\u0441\u0435 \u043f\u0440\u043e\u0448\u043b\u044b\u0435 \u0440\u0430\u0437\u044b. \u0412\u044b\u0431\u0435\u0440\u0435\u043c \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u043b\u044e\u0447 (\u043e\u0434\u0438\u043d \u0438\u0437 \u0447\u0435\u0442\u044b\u0440\u0435\u0445): . \u0420\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0434\u0432\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430:<\/p>\n<ul>\n<li>\n<\/li>\n<li>\n<\/li>\n<\/ul>\n<p>\u0422\u043e\u0433\u0434\u0430 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f: <\/p>\n<p>\u041f\u0440\u0438\u0432\u0435\u0434\u0435\u043c \u0431\u043b\u043e\u043a-\u0441\u0445\u0435\u043c\u0443:<\/p>\n<figure class=\"bordered full-width\"><figcaption>\u0411\u043b\u043e\u043a-\u0441\u0445\u0435\u043c\u0430 XXTEA<\/figcaption><\/figure>\n<h2>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f XXTEA<\/h2>\n<p>\u041f\u0440\u0438\u0432\u0435\u0434\u0435\u043c \u043a\u043e\u0434, \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u0441\u0430\u043c\u0438\u043c\u0438 \u0430\u0432\u0442\u043e\u0440\u0430\u043c\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f &#8212; David J. Wheeler \u0438 Roger M. Needham. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 <a href=\"https:\/\/www.movable-type.co.uk\/scripts\/xxtea.pdf\" rel=\"noopener noreferrer nofollow\">\u0432 \u0438\u0445 \u0441\u0442\u0430\u0442\u044c\u0435<\/a>.<\/p>\n<ul>\n<li>\n<p>v &#8212; \u0441\u043b\u043e\u0432\u043e \u0438\u0437 2 \u0447\u0430\u0441\u0442\u0435\u0439<\/p>\n<\/li>\n<li>\n<p>k &#8212; \u043a\u043b\u044e\u0447 \u0438\u0437 4 \u0447\u0430\u0441\u0442\u0435\u0439<\/p>\n<\/li>\n<li>\n<p>N &#8212; \u0447\u0438\u0441\u043b\u043e \u0446\u0438\u043a\u043b\u043e\u0432<\/p>\n<\/li>\n<li>\n<p>long &#8212; 32 \u0431\u0438\u0442\u0430<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"cpp\">#define MX (z &gt;&gt; 5 ^ y &lt;&lt; 2) + (y &gt;&gt; 3 ^ z &lt;&lt; 4) ^ (sum ^ y) + (k[p &amp; 3 ^ e] ^ z)  long xxtea(long* v, long * k, long N) {   unsigned long z = v[N - 1];   unsigned long y = v[0];   unsigned long sum = 0;   unsigned long e = 0;   unsigned long delta = 0x9e3779b9;      long m = 0;   long p = 0;   long q = 0;      if(N &gt; 1) {          \/\/ encoding          q = 6 + 52 \/ N;          while(q-- &gt; 0) {       sum += delta;       e = sum &gt;&gt; 2 &amp; 3;       for(p = 0; p &lt; N - 1; p++) {         y = v[p + 1];         z = v[p] += MX;       }       y = v[0];       z = v[N - 1] += MX;     }          return 0;   } else if(N &lt; -1) {          \/\/ decoding          N = -N;     q = 6 + 52 \/ N;     sum = q * delta;          while(sum != 0) {       e = sum &gt;&gt; 2 &amp; 3;       for(p = N - 1; p &gt; 0; p--) {         z = v[p - 1];         y = v[p] -= MX;       }       z = v[N - 1];       y = v[0] -= MX;     }          return 0;   }      return 1; }<\/code><\/pre>\n<h2>\u0410\u043d\u0430\u043b\u0438\u0437 TEA, XTEA, XXTEA<\/h2>\n<p><strong>TEA <\/strong>\u043d\u0435 \u043e\u0441\u043e\u0431\u043e \u043f\u043e\u0434\u0432\u0435\u0440\u0436\u0435\u043d \u0430\u0442\u0430\u043a\u0430\u043c \u0434\u0438\u0444\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u0440\u0438\u043f\u0442\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0430. \u0414\u043b\u044f 17 \u0440\u0430\u0443\u043d\u0434\u043e\u0432 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u043e\u0440\u044f\u0434\u043a\u0430 . \u041e\u0434\u043d\u0430\u043a\u043e \u043f\u0440\u0438 &#171;\u0430\u0442\u0430\u043a\u0435 \u043d\u0430 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u043a\u043b\u044e\u0447\u0430\u0445&#187; TEA \u0443\u044f\u0437\u0432\u0438\u043c, \u0442\u0430\u043a \u043a\u0430\u043a \u043a\u043b\u044e\u0447\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u0446\u0438\u043a\u043b\u0430 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 (\u0432\u0441\u0435\u0433\u0434\u0430 \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u0432\u044b\u0431\u043e\u0440). \u0415\u0449\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441 \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u044b\u043c\u0438 \u043a\u043b\u044e\u0447\u0430\u043c\u0438: \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u043a\u043b\u044e\u0447 \u0435\u0441\u0442\u044c \u0442\u0440\u0438 \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u044b\u0432\u0430\u044e\u0442 \u0438 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u044b\u0432\u0430\u044e\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0442\u0430\u043a\u0438\u043c \u0436\u0435 \u043e\u0431\u0440\u0430\u0437\u043e\u043c. <\/p>\n<p><strong>XTEA, <\/strong>\u043a\u0430\u043a \u043d\u0438 \u0441\u0442\u0440\u0430\u043d\u043d\u043e, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u0435\u0435 \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u044b\u043c, \u0447\u0435\u043c TEA. \u041d\u043e \u0438\u0437-\u0437\u0430 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 (\u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 XOR) XTEA \u0445\u0443\u0436\u0435 \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441 \u0434\u0438\u0444\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0438 \u0443\u0441\u0435\u0447\u0435\u043d\u043d\u044b\u043c\u0438 \u0434\u0438\u0444\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0430\u0442\u0430\u043a\u0430\u043c\u0438, \u0447\u0435\u043c TEA. \u041b\u0443\u0447\u0448\u0438\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0440\u0430\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u0441 XTEA \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c &#8212; \u0434\u0438\u0444\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0430\u0442\u0430\u043a\u0430 \u043d\u0430 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u043a\u043b\u044e\u0447\u0430\u0445.<\/p>\n<p><strong>XXTEA <\/strong>\u0443\u0436\u0435 \u043d\u0435\u043f\u043b\u043e\u0445. E. Yarrkov  \u0432 2010 \u0433\u043e\u0434\u0443 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 <a href=\"https:\/\/eprint.iacr.org\/2010\/254\" rel=\"noopener noreferrer nofollow\">\u0430\u0442\u0430\u043a\u0443 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430<\/a> \u043f\u0440\u043e\u0442\u0438\u0432 \u0432\u0441\u0435\u0433\u043e \u0446\u0438\u043a\u043b\u0430 XXTEA \u0441 \u0448\u0438\u0440\u043e\u043a\u0438\u043c \u0431\u043b\u043e\u043a\u043e\u043c. \u0420\u0430\u0431\u043e\u0442\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 \u0434\u0438\u0444\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u043c \u043a\u0440\u0438\u043f\u0442\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0435. \u0427\u0442\u043e\u0431\u044b \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c 212 \u0431\u0430\u0439\u0442 \u0438 \u0431\u043e\u043b\u0435\u0435, \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0432\u0441\u0435\u0433\u043e 6 \u0440\u0430\u0443\u043d\u0434\u043e\u0432, \u0430 \u0442\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0431\u0438\u0442\u043e\u0432\u044b\u0435 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u0442\u044c \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u0430\u0432\u0438\u043d\u043d\u044b\u0439 \u044d\u0444\u0444\u0435\u043a\u0442. <em>\u041d\u043e E. Yarrkov \u0433\u043e\u0432\u043e\u0440\u0438\u0442, \u0447\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u0432\u0443\u0445 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0440\u0430\u0443\u043d\u0434\u043e\u0432 \u0443\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442 \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443<\/em>.<\/p>\n<h2>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438<\/h2>\n<ul>\n<li>\n<p>Roger M. Needham and David J. Wheeler: <a href=\"http:\/\/www.cix.co.uk\/~klockstone\/tea.pdf\" rel=\"noopener noreferrer nofollow\">TEA, a Tiny Encryption Algorithm<\/a><\/p>\n<\/li>\n<li>\n<p>\u0410. Roger M. Needham and David J. Wheeler: <a href=\"https:\/\/www.movable-type.co.uk\/scripts\/xtea.pdf\" rel=\"noopener noreferrer nofollow\">TEA extensions<\/a><\/p>\n<\/li>\n<li>\n<p>David J. Wheeler, Roger M. Needham: <a href=\"https:\/\/www.movable-type.co.uk\/scripts\/xxtea.pdf\" rel=\"noopener noreferrer nofollow\">Correction to XTEA<\/a><\/p>\n<\/li>\n<li>\n<p>Elias Yarrkov: <a href=\"https:\/\/eprint.iacr.org\/2010\/254.pdf\" rel=\"noopener noreferrer nofollow\">Cryptoanalysis of XXTEA<\/a><\/p>\n<\/li>\n<\/ul>\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\/534474\/\"> https:\/\/habr.com\/ru\/post\/534474\/<\/a><br \/><\/br><\/br><\/p>\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-315320","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/315320","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=315320"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/315320\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=315320"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=315320"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=315320"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}