From 7e67d10499c35e0ec7787abba48c36afb0ce2b04 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Fri, 8 Oct 2021 22:32:34 +0300 Subject: [PATCH] =?utf8?q?=D0=9D=D0=BE=D0=B2=D1=8B=D0=B9=20GoGOST=20=D0=B8?= =?utf8?q?=20gostls13?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit В прежних версиях gostls13 tls.LoadX509KeyPair не загружал ГОСТовые ключи и сертификаты: crypto/x509 модуль то их парсил, но уже в самом tls helper-е switch/if-ы ничего не знали про ГОСТ. Исправил и теперь ГОСТ вообще без трудностей можно использовать самыми штатными средствами. Ну и занялся оптимизацией Кузнечика-MGM. А главным образом MGM: переделав его работу на кручение/верчение пары 64-битных чисел. Если чистая Си-шная реализация Кузнечик-MGM выдаёт чуть более 5MiB/sec, то GoGOST показывает более 3MiB. Как-раз чаще всего я видел что на Go аналогичные программы где-то на треть медленнее, что тут и получилось, означая что я почти всё выжал что можно было. 3-5 MiB/sec выглядит как-то медленно. Ну... и AES не шибко быстр, если реализовать его без многих лет научных изысканий по оптимизации. И если забыть про SIMD и ассемблер. Плюс MGM два раза шифрует (и GF^128 делает соответственно), что в два раза сбавляет скорости. Но конечно штатно мы все уже привыкли или к быстрым Salsa20-like шифрам, или SIMD или аппаратному ускорению. -- 2.48.1