Open-source aspects of GOST Cryptography
 help / color / mirror / Atom feed
* [oss-gost-crypto] ГОСТ 34.10 и CryptoAPI (FYI progress update)
@ 2018-12-15 18:02 Vitaly Chikunov
    2018-12-15 23:39 ` Vitaly Chikunov
  0 siblings, 2 replies; 6+ messages in thread
From: Vitaly Chikunov @ 2018-12-15 18:02 UTC (permalink / raw)
  To: oss-gost-crypto

Hi,

1. Я сделал рабочую реализацию проверки подписи ГОСТ 34.10 для ядра
в очень _черновом_ варианте:

  https://github.com/vt-alt/linux/commits/ecrdsa
  https://github.com/vt-alt/linux/blob/ecrdsa/crypto/ecrdsa.c

2. CryptoAPI ядра RSA-центрично и поэтому сделать поддержку ECDSA
не меняя его не возможно. Поэтому, там есть пара коммитов со сменой
akcipher API (вводится новый вызов verify2). Я отсылал RFC патчсет и его
восприняли без негатива. (Правда этого все равно будет не достаточно для
out-of-tree реализаций. Но наша планируется in-tree, так что это не
проблема).

3. По кривым. Рекомендовано использовать 7 кривых:

4. Поддержку двух скрученных кривых Эжвардса я не стал делать, так как
gost-engine их не поддерживает. Это

    id-tc26-gost-3410-2012-256-paramSetA
    id-tc26-gost-3410-2012-512-paramSetC

Из оставшихся:

    id-GostR3410-2001-CryptoPro-A-ParamSet (256-bit)
    id-tc26-gost-3410-12-512-paramSetA

Работают (более менее) оптимизированные алгоритмы, но надо ещё точнее
проверить скорость. Субъективно 512-битный вариант работает "быстрее
чем 0.1 в секунду", что можно оценить как "очень плохо".

5. Смышляев (2015) в выступлении "Российская криптография: так ли всё
грустно?" (слайды https://www.slideshare.net/phdays/ss-48934331 страница
22) приводит статистику (без указания мощностей на которых производилось
тестирование): 256-битная подпись 9700 проверок в секунду, 512-битная
подпись 1850 проверок в секунду.

6. В статье Комарова, Менщиков, Коробейников. Анализ и сравнение алгоритмов
электронной цифровой подписи ГОСТ Р 34. 10-1994, ГОСТ Р 34. 10-2001 и ГОСТ Р
34. 10-2012 // Вопросы кибербезопасности. 2017. №1 (19). URL:

  https://cyberleninka.ru/article/n/analiz-i-sravnenie-algoritmov-elektronnoy-tsifrovoy-podpisi-gost-r-34-10-1994-gost-r-34-10-2001-i-gost-r-34-10-2012

приводится статистика (для Core i5-3317U, реализация Pygost на питоне:
оба теста для подписей 256 бит: ГОСТ 2012 дал 100 проверок
подписи за 35 секунд, ГОСТ 2001 года (то есть по сути одинаковый с
2012) дал 100 проверок за 8 секунд.

7. Для сравнения, `openssl speed ecdsa` дает:

                                    sign    verify    sign/s verify/s
 256 bits ecdsa (nistp256)        0.0001s   0.0002s  16439.1   5080.8
 256 bits ecdsa (brainpoolP256r1) 0.0010s   0.0008s   1005.5   1202.2
 256 bits ecdsa (brainpoolP256t1) 0.0010s   0.0008s    996.3   1260.9
 521 bits ecdsa (nistp521)        0.0060s   0.0039s    167.1    259.5
 253 bits EdDSA (Ed25519)         0.0001s   0.0002s  17557.8   5296.4

 456 bits EdDSA (Ed448)           0.0002s   0.0009s   4400.9   1167.3
 571 bits ecdsa (nistk571)        0.0084s   0.0171s    118.5     58.6
 571 bits ecdsa (nistb571)        0.0096s   0.0185s    104.4     54.1
 512 bits ecdsa (brainpoolP512r1) 0.0041s   0.0030s    245.0    336.2
 512 bits ecdsa (brainpoolP512t1) 0.0041s   0.0028s    242.7    356.9

8. Для этих двух кривых используется не эффективное разложение по модулю,
но это я планирую исправить, чтоб стало как у предыдущих двух:

  id-GostR3410-2001-CryptoPro-B-ParamSet (256-bit)
  id-tc26-gost-3410-12-512-paramSetB

7. Реализация в ядре умножения скаляра на точку (сделанная по статье Matthieu
Rivain, 2011) оказалась не способна правильно умножить если у точки в
координате X содержится 0. Поэтому, эта кривая вообще не работает, так как там
в генераторе X=0.

  id-GostR3410-2001-CryptoPro-C-ParamSet (256-bit)

Пожалуй, я эту кривую просто выкину до лучших времен.

8. После анализа производительности и вылизывания кода планирую заняться
прикручиванием этого к IMA.

Спасибо за внимание.



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [oss-gost-crypto] ГОСТ 34.10 и CryptoAPI (FYI progress update)
  @ 2018-12-15 21:40   ` Dmitry Eremin-Solenikov
  2018-12-16 22:52     ` Wartan Hachaturow
  0 siblings, 1 reply; 6+ messages in thread
From: Dmitry Eremin-Solenikov @ 2018-12-15 21:40 UTC (permalink / raw)
  To: Open-source aspects of GOST Cryptography

сб, 15 дек. 2018 г. в 23:48, Dmitry Belyavsky <beldmit@gmail.com>:
> On Sat, Dec 15, 2018 at 9:02 PM Vitaly Chikunov <vt@altlinux.org> wrote:
>
> См.
>
>  https://github.com/openssl/openssl/pull/6999
>  https://github.com/openssl/openssl/pull/7000
>
> Собственно, я бы как-нибудь на эту тему пива/чая попил, есть у меня некоторые мысли.

Если будете собираться в офисных условиях, можно телеконференцию устроить.
Я бы тоже послушал/поучаствовал.

Как вариант -- я 22 и 23 декабря в Москве.


-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [oss-gost-crypto] ГОСТ 34.10 и  CryptoAPI (FYI progress update)
  2018-12-15 18:02 [oss-gost-crypto] ГОСТ 34.10 и CryptoAPI (FYI progress update) Vitaly Chikunov
  @ 2018-12-15 23:39 ` Vitaly Chikunov
  1 sibling, 0 replies; 6+ messages in thread
From: Vitaly Chikunov @ 2018-12-15 23:39 UTC (permalink / raw)
  To: oss-gost-crypto

On Sat, Dec 15, 2018 at 09:02:49PM +0300, Vitaly Chikunov wrote:
>     id-GostR3410-2001-CryptoPro-A-ParamSet (256-bit)
>     id-tc26-gost-3410-12-512-paramSetA
> 
> Работают (более менее) оптимизированные алгоритмы, но надо ещё точнее
> проверить скорость. Субъективно 512-битный вариант работает "быстрее
> чем 0.1 в секунду", что можно оценить как "очень плохо".
> 
> 8. Для этих двух кривых используется не эффективное разложение по модулю,
> но это я планирую исправить, чтоб стало как у предыдущих двух:
> 
>   id-GostR3410-2001-CryptoPro-B-ParamSet (256-bit)
>   id-tc26-gost-3410-12-512-paramSetB

Я посчитал статистику точнее (на одном ядре Xeon E5630 2.53GHz):

  кривая: 100 проверок / время = проверок в секунду

  gost2012_256-A: 100 / 0.462106 = 216.4
  gost2012_256-B: 100 / 6.567137 =  15.2
  gost2012_512-A: 100 / 3.159222 =  31.6
  gost2012_512-B: 100 / 50.422690 =  1.98

Как уже говорил, gost2012_256-B можно сделать по скорости как
gost2012_256-A, а gost2012_512-B как gost2012_512-A.



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [oss-gost-crypto] ГОСТ 34.10 и CryptoAPI (FYI progress update)
  2018-12-15 21:40   ` Dmitry Eremin-Solenikov
@ 2018-12-16 22:52     ` Wartan Hachaturow
    0 siblings, 1 reply; 6+ messages in thread
From: Wartan Hachaturow @ 2018-12-16 22:52 UTC (permalink / raw)
  To: Open-source aspects of GOST Cryptography


On 2018-12-16T00:40:24+0300, Dmitry Eremin-Solenikov wrote:
 > Если будете собираться в офисных условиях, можно телеконференцию устроить.
 > Я бы тоже послушал/поучаствовал.
 > Как вариант -- я 22 и 23 декабря в Москве.

Я 22 и 23 тоже могу. Правда, это суббота и воскресенье :)

-- 
Regards, Wartan.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [oss-gost-crypto] ГОСТ 34.10 и  CryptoAPI (FYI progress update)
  @ 2018-12-17  0:12         ` Vitaly Chikunov
    0 siblings, 1 reply; 6+ messages in thread
From: Vitaly Chikunov @ 2018-12-17  0:12 UTC (permalink / raw)
  To: Open-source aspects of GOST Cryptography

Hi,

On Mon, Dec 17, 2018 at 02:04:56AM +0300, Aleksey Novodvorsky wrote:
>    пн, 17 дек. 2018 г., 1:53 Wartan Hachaturow
>    <[1]wartan.hachaturow@gmail.com>:
> 
>      On 2018-12-16T00:40:24+0300, Dmitry Eremin-Solenikov wrote:
>       > Если будете собираться в офисных условиях, можно телеконференцию
>      устроить.
>       > Я бы тоже послушал/поучаствовал.
>       > Как вариант -- я 22 и 23 декабря в Москве.
>      Я 22 и 23 тоже могу. Правда, это суббота и воскресенье :)
> 
>    Дмитрий Белявский, Виталий, вы сможете на выходных?

Нет. Лучше в обычный день, тогда больше народу сможет присоединится
(ldv? Антон? sem?) и после праздников вернется Глеб из отпуска (вдруг он
тоже захочет пообщаться).

> 
>    Если всем удобно, узнаю завтра, какой порядок приглашения в офис без
>    пропуска на следующие выходные.
>    Rgrds, Алексей
> 
> References
> 
>    1. mailto:wartan.hachaturow@gmail.com

> _______________________________________________
> oss-gost-crypto mailing list
> oss-gost-crypto@lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/oss-gost-crypto



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [oss-gost-crypto] ГОСТ 34.10 и  CryptoAPI (FYI progress update)
  @ 2018-12-17 12:25             ` Vitaly Chikunov
  0 siblings, 0 replies; 6+ messages in thread
From: Vitaly Chikunov @ 2018-12-17 12:25 UTC (permalink / raw)
  To: Open-source aspects of GOST Cryptography

Hi,

On Mon, Dec 17, 2018 at 09:14:13AM +0300, Dmitry Belyavsky wrote:
>    Привет!
>    On Mon, Dec 17, 2018 at 3:12 AM Vitaly Chikunov <[1]vt@altlinux.org>
>    wrote:
> 
>      Hi,
>      On Mon, Dec 17, 2018 at 02:04:56AM +0300, Aleksey Novodvorsky wrote:
>      >    пн, 17 дек. 2018 г., 1:53 Wartan Hachaturow
>      >    <[1][2]wartan.hachaturow@gmail.com>:
>      >
>      >      On 2018-12-16T00:40:24+0300, Dmitry Eremin-Solenikov wrote:
>      >       > Если будете собираться в офисных условиях, можно
>      телеконференцию
>      >      устроить.
>      >       > Я бы тоже послушал/поучаствовал.
>      >       > Как вариант -- я 22 и 23 декабря в Москве.
>      >      Я 22 и 23 тоже могу. Правда, это суббота и воскресенье :)
>      >
>      >    Дмитрий Белявский, Виталий, вы сможете на выходных?
>      Нет. Лучше в обычный день, тогда больше народу сможет присоединится
>      (ldv? Антон? sem?) и после праздников вернется Глеб из отпуска
>      (вдруг он
>      тоже захочет пообщаться).
> 
>    Я, например, могу в среду ближе к вечеру добраться.

В эту среду я буду до позднего вечера.



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2018-12-17 12:25 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-15 18:02 [oss-gost-crypto] ГОСТ 34.10 и CryptoAPI (FYI progress update) Vitaly Chikunov
2018-12-15 21:40   ` Dmitry Eremin-Solenikov
2018-12-16 22:52     ` Wartan Hachaturow
2018-12-17  0:12         ` Vitaly Chikunov
2018-12-17 12:25             ` Vitaly Chikunov
2018-12-15 23:39 ` Vitaly Chikunov

Open-source aspects of GOST Cryptography

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/oss-gost-crypto/0 oss-gost-crypto/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 oss-gost-crypto oss-gost-crypto/ http://lore.altlinux.org/oss-gost-crypto \
		oss-gost-crypto@lists.altlinux.org oss-gost-crypto@lists.altlinux.ru oss-gost-crypto@lists.altlinux.com
	public-inbox-index oss-gost-crypto

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.oss-gost-crypto


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git