* [oss-gost-crypto] "Об open-source реализациях хэш-функции ГОСТ Р 34.11-2012"
@ 2019-05-02 12:41 Vitaly Chikunov
2019-05-04 21:33 ` Dmitry Eremin-Solenikov
0 siblings, 1 reply; 10+ messages in thread
From: Vitaly Chikunov @ 2019-05-02 12:41 UTC (permalink / raw)
To: Open-source aspects of GOST Cryptography
Hi,
Пишут, что реализация Streebog в libgcrypt с (давно исправленной в других
реализациях) ошибкой.
https://habr.com/ru/post/450024/
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [oss-gost-crypto] "Об open-source реализациях хэш-функции ГОСТ Р 34.11-2012"
2019-05-02 12:41 [oss-gost-crypto] "Об open-source реализациях хэш-функции ГОСТ Р 34.11-2012" Vitaly Chikunov
@ 2019-05-04 21:33 ` Dmitry Eremin-Solenikov
2019-05-25 19:53 ` [oss-gost-crypto] "Об open-source реализациях хэш-функции ГОСТ Р 34.11-2012" Dmitry Eremin-Solenikov
0 siblings, 2 replies; 10+ messages in thread
From: Dmitry Eremin-Solenikov @ 2019-05-04 21:33 UTC (permalink / raw)
To: Open-source aspects of GOST Cryptography
Спасибо, сейчас отправлю патчи.
Паралеллельно отмечу: эта ошибка не ловится тестом eeee...eeee1611...1116.
Тестовый вектор на эту ошибку (рекомендую добавить в тестовые векторы):
$ echo -ne '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'
| openssl dgst -md_gost12_512
(stdin)= 90a161d12ad309498d3fe5d48202d8a4e9c406d6a264aeab258ac5ecc37a7962aaf9587a5abb09b6bb81ec4b3752a3ff5a838ef175be5772056bc5fe54fcfc7e
Реализации с ошибкой выдают:
(stdin)= c5e8ac156e3cd7f395fa9c8bf8fb3995dcfadc0ee539d56e5138804b488e17b846fc7bccf883b21914acfd0add48e55ac359a7564f39619cd6ad9d93a35bf9a9
чт, 2 мая 2019 г. в 15:41, Vitaly Chikunov <vt@altlinux.org>:
>
> Hi,
>
> Пишут, что реализация Streebog в libgcrypt с (давно исправленной в других
> реализациях) ошибкой.
>
> https://habr.com/ru/post/450024/
>
>
> _______________________________________________
> oss-gost-crypto mailing list
> oss-gost-crypto@lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/oss-gost-crypto
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [oss-gost-crypto] "Об open-source реализациях хэш-функции ГОСТ Р 34.11-2012"
@ 2019-05-04 21:57 ` Vitaly Chikunov
2019-05-25 20:03 ` Vitaly Chikunov
0 siblings, 1 reply; 10+ messages in thread
From: Vitaly Chikunov @ 2019-05-04 21:57 UTC (permalink / raw)
To: Open-source aspects of GOST Cryptography
On Sun, May 05, 2019 at 12:50:03AM +0300, Dmitry Belyavsky wrote:
> У меня там был какой-то тестовый вектор в gost-engine. Как назывался, ща не
> помню.
На нём разницы нет.
> On Sun, May 5, 2019 at 12:33 AM Dmitry Eremin-Solenikov <
> dbaryshkov@gmail.com> wrote:
>
> > Спасибо, сейчас отправлю патчи.
> >
> > Паралеллельно отмечу: эта ошибка не ловится тестом eeee...eeee1611...1116.
> >
> > Тестовый вектор на эту ошибку (рекомендую добавить в тестовые векторы):
> >
> > $ echo -ne
> > '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'
> > | openssl dgst -md_gost12_512
> > (stdin)=
> > 90a161d12ad309498d3fe5d48202d8a4e9c406d6a264aeab258ac5ecc37a7962aaf9587a5abb09b6bb81ec4b3752a3ff5a838ef175be5772056bc5fe54fcfc7e
> >
> > Реализации с ошибкой выдают:
> > (stdin)=
> > c5e8ac156e3cd7f395fa9c8bf8fb3995dcfadc0ee539d56e5138804b488e17b846fc7bccf883b21914acfd0add48e55ac359a7564f39619cd6ad9d93a35bf9a9
К слову, достаточно 64-х "\xff".
libgcrypt (master)$ perl -E 'print "\xff" x 64'| openssl dgst -md_gost12_256 -r; perl -E 'print "\xff" x 64' | ./tests/gchash stribog256 -
964a5ab60286f106288743e2fe1a422d160898ca1bd535e831aa500cfe34d7e8 *stdin
6cad1fb10486524958e90756a6e72ab717d89842634004a0958582d256209818 -
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [oss-gost-crypto] "Об open-source реализациях хэш-функции ГОСТ Р 34.11-2012"
2019-05-04 21:33 ` Dmitry Eremin-Solenikov
@ 2019-05-25 19:53 ` Dmitry Eremin-Solenikov
2019-07-09 15:20 ` Vitaly Chikunov
1 sibling, 1 reply; 10+ messages in thread
From: Dmitry Eremin-Solenikov @ 2019-05-25 19:53 UTC (permalink / raw)
To: Open-source aspects of GOST Cryptography
Коллеги,
вс, 5 мая 2019 г. в 00:33, Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>:
> Спасибо, сейчас отправлю патчи.
Вопрос от разработчиков gcrypt. Нужна ли кому-нибудь поддержка неправильного
варианта Streebog (как сделано для whirlpool:
https://dev.gnupg.org/rC94030e44aaff805d754e368507f16dd51a531b72) или нам это
не нужно и достаточно просто исправленной версии.
> чт, 2 мая 2019 г. в 15:41, Vitaly Chikunov <vt@altlinux.org>:
> > Пишут, что реализация Streebog в libgcrypt с (давно исправленной в других
> > реализациях) ошибкой.
> >
> > https://habr.com/ru/post/450024/
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [oss-gost-crypto] "Об open-source реализациях хэш-функции ГОСТ Р 34.11-2012"
2019-05-04 21:57 ` Vitaly Chikunov
@ 2019-05-25 20:03 ` Vitaly Chikunov
2019-05-25 21:32 ` Vitaly Chikunov
0 siblings, 1 reply; 10+ messages in thread
From: Vitaly Chikunov @ 2019-05-25 20:03 UTC (permalink / raw)
To: Open-source aspects of GOST Cryptography
On Sun, May 05, 2019 at 12:57:21AM +0300, Vitaly Chikunov wrote:
>
> К слову, достаточно 64-х "\xff".
>
> libgcrypt (master)$ perl -E 'print "\xff" x 64'| openssl dgst -md_gost12_256 -r; perl -E 'print "\xff" x 64' | ./tests/gchash stribog256 -
> 964a5ab60286f106288743e2fe1a422d160898ca1bd535e831aa500cfe34d7e8 *stdin
> 6cad1fb10486524958e90756a6e72ab717d89842634004a0958582d256209818 -
Заодно тест на реализацию add512:
~/infotecs$ perl -E 'print "\xff" x 64' > ff
~/infotecs$ xxd ff
00000000: ffff ffff ffff ffff ffff ffff ffff ffff ................
00000010: ffff ffff ffff ffff ffff ffff ffff ffff ................
00000020: ffff ffff ffff ffff ffff ffff ffff ffff ................
00000030: ffff ffff ffff ffff ffff ffff ffff ffff ................
~/infotecs$ ./vipnethashcalc-tool ff --hash-alg Gost12S256
Вычисленное значение хэш-функции: 6CAD1FB10486524958E90756A6E72AB717D89842634004A0958582D256209818
Значение хэша у ViPNet Hash Calculation Tool 5.2.1.1027 соответствует
реализации с ошибкой.
ps. На всякий случай:
~/infotecs$ ./vipnethashcalc-tool ff --hash-alg Gost94
Вычисленное значение хэш-функции: 8505D4623B76E757B63A4F9ADFF2413BAB457560A6A41A7D0056B909CDDD3D6C
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [oss-gost-crypto] "Об open-source реализациях хэш-функции ГОСТ Р 34.11-2012"
2019-05-25 20:03 ` Vitaly Chikunov
@ 2019-05-25 21:32 ` Vitaly Chikunov
2020-01-13 5:07 ` Vitaly Chikunov
0 siblings, 1 reply; 10+ messages in thread
From: Vitaly Chikunov @ 2019-05-25 21:32 UTC (permalink / raw)
To: Open-source aspects of GOST Cryptography
On Sat, May 25, 2019 at 11:03:13PM +0300, Vitaly Chikunov wrote:
> On Sun, May 05, 2019 at 12:57:21AM +0300, Vitaly Chikunov wrote:
> >
> > К слову, достаточно 64-х "\xff".
> >
> > libgcrypt (master)$ perl -E 'print "\xff" x 64'| openssl dgst -md_gost12_256 -r; perl -E 'print "\xff" x 64' | ./tests/gchash stribog256 -
> > 964a5ab60286f106288743e2fe1a422d160898ca1bd535e831aa500cfe34d7e8 *stdin
> > 6cad1fb10486524958e90756a6e72ab717d89842634004a0958582d256209818 -
>
> Заодно тест на реализацию add512:
>
> ~/infotecs$ perl -E 'print "\xff" x 64' > ff
> ~/infotecs$ xxd ff
> 00000000: ffff ffff ffff ffff ffff ffff ffff ffff ................
> 00000010: ffff ffff ffff ffff ffff ffff ffff ffff ................
> 00000020: ffff ffff ffff ffff ffff ffff ffff ffff ................
> 00000030: ffff ffff ffff ffff ffff ffff ffff ffff ................
>
> ~/infotecs$ ./vipnethashcalc-tool ff --hash-alg Gost12S256
> Вычисленное значение хэш-функции: 6CAD1FB10486524958E90756A6E72AB717D89842634004A0958582D256209818
>
> Значение хэша у ViPNet Hash Calculation Tool 5.2.1.1027 соответствует
> реализации с ошибкой.
>
> ps. На всякий случай:
>
> ~/infotecs$ ./vipnethashcalc-tool ff --hash-alg Gost94
> Вычисленное значение хэш-функции: 8505D4623B76E757B63A4F9ADFF2413BAB457560A6A41A7D0056B909CDDD3D6C
~/cryptopro/linux-amd64$ /opt/cprocsp/bin/amd64/cryptcp
CryptCP 4.0 (c) "КРИПТО-ПРО", 2002-2018.
Утилита командной строки для подписи и шифрования файлов.
...
-hashAlg задать алгоритм хэширования
OID OID алгоритма хэширования: 1.2.643.2.2.9 для ГОСТ Р 34.11-94
1.2.643.7.1.1.2.2 для ГОСТ Р 34.11-2012 256 bit
1.2.643.7.1.1.2.3 для ГОСТ Р 34.11-2012 512 bit
...
~/cryptopro/linux-amd64$ perl -E 'print "\xff" x 64' > ff
~/cryptopro/linux-amd64$ /opt/cprocsp/bin/amd64/cryptcp -hash -hashAlg 1.2.643.7.1.1.2.2 ff
CryptCP 4.0 (c) "КРИПТО-ПРО", 2002-2018.
Утилита командной строки для подписи и шифрования файлов.
Папка './':
ff... OK.
[ErrorCode: 0x00000000]
~/cryptopro/linux-amd64$ xxd ff.hsh
00000000: 964a 5ab6 0286 f106 2887 43e2 fe1a 422d .JZ.....(.C...B-
00000010: 1608 98ca 1bd5 35e8 31aa 500c fe34 d7e8 ......5.1.P..4..
Значение хэша соответствует реализации без ошибки.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [oss-gost-crypto] "Об open-source реализациях хэш-функции ГОСТ Р 34.11-2012"
2019-05-25 19:53 ` [oss-gost-crypto] "Об open-source реализациях хэш-функции ГОСТ Р 34.11-2012" Dmitry Eremin-Solenikov
@ 2019-07-09 15:20 ` Vitaly Chikunov
0 siblings, 0 replies; 10+ messages in thread
From: Vitaly Chikunov @ 2019-07-09 15:20 UTC (permalink / raw)
To: Open-source aspects of GOST Cryptography
Hi,
On Sat, May 25, 2019 at 10:53:35PM +0300, Dmitry Eremin-Solenikov wrote:
> вс, 5 мая 2019 г. в 00:33, Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>:
>
> Вопрос от разработчиков gcrypt. Нужна ли кому-нибудь поддержка неправильного
> варианта Streebog (как сделано для whirlpool:
> https://dev.gnupg.org/rC94030e44aaff805d754e368507f16dd51a531b72) или нам это
> не нужно и достаточно просто исправленной версии.
Так как в ViPNet такой-же баг[1] и это сертифицированный продукт, то это
может иметь смысл.
[1] https://lists.altlinux.org/pipermail/oss-gost-crypto/2019-May/000250.html
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [oss-gost-crypto] "Об open-source реализациях хэш-функции ГОСТ Р 34.11-2012"
2019-05-25 21:32 ` Vitaly Chikunov
@ 2020-01-13 5:07 ` Vitaly Chikunov
2020-01-13 5:55 ` Wartan Hachaturow
0 siblings, 2 replies; 10+ messages in thread
From: Vitaly Chikunov @ 2020-01-13 5:07 UTC (permalink / raw)
To: Open-source aspects of GOST Cryptography
(В копилку ошибочных реализаций.)
В одном российском линуксе, хэш для данных с длинной кратной 64
считаются иначе чем у всех остальных:
$ perl -E 'print "\x00" x 0' | gostsum --gost-2012
106c0c2070522f9ed0753e143809578a3b27711c5bc99553c3eaca250de2a30a -
$ perl -E 'print "\x00" x 1' | gostsum --gost-2012
6f7305265dc0937440881f9493ef1260f61a9d47742d369e952d41bdb2a9edd1 -
$ perl -E 'print "\x00" x 64' | gostsum --gost-2012
f69e7c846ee36c5363251bd89bc4b4794aa598d5092d952415bde2d314d85eba -
$ perl -E 'print "\x00" x 65' | gostsum --gost-2012
ff494da4e950940619b06db49c4c3dac03a3823e134c22ff0b732599c85b321f -
Сравнение с adegtyarev/streebog:
$ perl -E 'print "\x00" x 0' | gost3411-2012 -2
3f539a213e97c802cc229d474c6aa32a825a360b2a933a949fd925208d9ce1bb
$ perl -E 'print "\x00" x 1' | gost3411-2012 -2
6f7305265dc0937440881f9493ef1260f61a9d47742d369e952d41bdb2a9edd1
$ perl -E 'print "\x00" x 64' | gost3411-2012 -2
df1fda9ce83191390537358031db2ecaa6aa54cd0eda241dc107105e13636b95
$ perl -E 'print "\x00" x 65' | gost3411-2012 -2
ff494da4e950940619b06db49c4c3dac03a3823e134c22ff0b732599c85b321f
Интересно что там могло пойти не так.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [oss-gost-crypto] "Об open-source реализациях хэш-функции ГОСТ Р 34.11-2012"
2020-01-13 5:07 ` Vitaly Chikunov
@ 2020-01-13 5:55 ` Wartan Hachaturow
1 sibling, 0 replies; 10+ messages in thread
From: Wartan Hachaturow @ 2020-01-13 5:55 UTC (permalink / raw)
To: Open-source aspects of GOST Cryptography
On 2020-01-13T08:07:25+0300, Vitaly Chikunov wrote:
> (В копилку ошибочных реализаций.)
> В одном российском линуксе, хэш для данных с длинной кратной 64
> считаются иначе чем у всех остальных:
В каком?
--
Regards, Wartan.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [oss-gost-crypto] Streebog padding bug Ex: "Об open-source реализациях
@ 2020-01-13 8:22 ` Vitaly Chikunov
0 siblings, 0 replies; 10+ messages in thread
From: Vitaly Chikunov @ 2020-01-13 8:22 UTC (permalink / raw)
To: Open-source aspects of GOST Cryptography
On Mon, Jan 13, 2020 at 09:51:18AM +0300, Dmitry Belyavsky wrote:
> On Mon, Jan 13, 2020 at 8:07 AM Vitaly Chikunov <vt@altlinux.org> wrote:
>
> > (В копилку ошибочных реализаций.)
> >
> > В одном российском линуксе, хэш для данных с длинной кратной 64
> > считаются иначе чем у всех остальных:
> >
> > ...
>
> >
> > Интересно что там могло пойти не так.
> >
>
> Ну как. Финализация включает в себя дополнение непрохешированного остатка
> до полного блока.
> Вот если остаток не оставить, а всё равно дополнить - будет именно это
> скорее всего.
1. По-моему мы так и делаем.
А вот они не делают заполнение _пустого блока_.
В ГОСТ (для полных блоков) они пропускают шаги 3.1, 3.2, 3.3, 3.4.
В примерах сказано "длина сообщения меньше 512, _поэтому_ происходит
заполнение неполного блока". А что же делать когда блок полный?
Кто прав?
Вот патч который дает результаты "как у них":
diff --git a/gost3411-2012-core.c b/gost3411-2012-core.c
index de582c6..55aad37 100644
--- a/gost3411-2012-core.c
+++ b/gost3411-2012-core.c
@@ -163,13 +163,15 @@ stage3(GOST34112012Context *CTX)
buf.QWORD[0] = BSWAP64(CTX->bufsize << 3);
#endif
- pad(CTX);
+ if (CTX->bufsize) {
+ pad(CTX);
- g(&(CTX->h), &(CTX->N), (const unsigned char *) &(CTX->buffer));
+ g(&(CTX->h), &(CTX->N), (const unsigned char *) &(CTX->buffer));
- add512(&(CTX->N), &buf, &(CTX->N));
- add512(&(CTX->Sigma), (const union uint512_u *) &CTX->buffer[0],
- &(CTX->Sigma));
+ add512(&(CTX->N), &buf, &(CTX->N));
+ add512(&(CTX->Sigma), (const union uint512_u *) &CTX->buffer[0],
+ &(CTX->Sigma));
+ }
g(&(CTX->h), &buffer0, (const unsigned char *) &(CTX->N));
2. Кроме того, в нашем коде есть странность:
| static inline void
| pad(GOST34112012Context *CTX)
| {
| if (CTX->bufsize > 63)
| return;
|
| memset(CTX->buffer + CTX->bufsize,
| 0x00, sizeof(CTX->buffer) - CTX->bufsize);
|
| CTX->buffer[CTX->bufsize] = 0x01;
| }
`CTX->bufsize` никогда не может быть больше 63.
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2020-01-13 8:22 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-02 12:41 [oss-gost-crypto] "Об open-source реализациях хэш-функции ГОСТ Р 34.11-2012" Vitaly Chikunov
2019-05-04 21:33 ` Dmitry Eremin-Solenikov
2019-05-04 21:57 ` Vitaly Chikunov
2019-05-25 20:03 ` Vitaly Chikunov
2019-05-25 21:32 ` Vitaly Chikunov
2020-01-13 5:07 ` Vitaly Chikunov
2020-01-13 5:55 ` Wartan Hachaturow
2020-01-13 8:22 ` [oss-gost-crypto] Streebog padding bug Ex: "Об open-source реализациях Vitaly Chikunov
2019-05-25 19:53 ` [oss-gost-crypto] "Об open-source реализациях хэш-функции ГОСТ Р 34.11-2012" Dmitry Eremin-Solenikov
2019-07-09 15:20 ` 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