]> Sergey Matveev's repositories - stargrave-blog.git/commit
Новый GoGOST и gostls13
authorSergey Matveev <stargrave@stargrave.org>
Fri, 8 Oct 2021 19:32:34 +0000 (22:32 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Fri, 8 Oct 2021 19:32:34 +0000 (22:32 +0300)
commit7e67d10499c35e0ec7787abba48c36afb0ce2b04
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904
parent1e931fcaad5deb3f5a66515da45995eb0085f315
Новый GoGOST и gostls13

В прежних версиях 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 или
аппаратному ускорению.