<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум Рутокен &mdash; Выработка двойственного ключа по алгоритму KEG]]></title>
		<link>https://forum.rutoken.ru/topic/3423/</link>
		<atom:link href="https://forum.rutoken.ru/feed/rss/topic/3423/" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Выработка двойственного ключа по алгоритму KEG».]]></description>
		<lastBuildDate>Wed, 26 Oct 2022 08:40:30 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Выработка двойственного ключа по алгоритму KEG]]></title>
			<link>https://forum.rutoken.ru/post/18679/#p18679</link>
			<description><![CDATA[<p><strong>Павел Анфимов</strong>,&nbsp; добрый день. </p><p>Написал на hotline@rutoken.ru</p>]]></description>
			<author><![CDATA[null@example.com (SergeyRT)]]></author>
			<pubDate>Wed, 26 Oct 2022 08:40:30 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/18679/#p18679</guid>
		</item>
		<item>
			<title><![CDATA[Re: Выработка двойственного ключа по алгоритму KEG]]></title>
			<link>https://forum.rutoken.ru/post/18672/#p18672</link>
			<description><![CDATA[<p><strong>SergeyRT</strong>, напишите нам, пожалуйста, на hotline@rutoken.ru - отправим пример выработки KEG.</p>]]></description>
			<author><![CDATA[null@example.com (Павел Анфимов)]]></author>
			<pubDate>Tue, 25 Oct 2022 10:26:12 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/18672/#p18672</guid>
		</item>
		<item>
			<title><![CDATA[Re: Выработка двойственного ключа по алгоритму KEG]]></title>
			<link>https://forum.rutoken.ru/post/18657/#p18657</link>
			<description><![CDATA[<p><strong>SergeyRT</strong>, добрый день!</p><p>Уже разбираемся.<br />Возможно ли предоставить минимальный пример, где вы наблюдаете ошибку?</p><p>Спасибо, что указали нам на ошибку с public полями. В ближайшей версии библиотеки исправим эту проблему.</p>]]></description>
			<author><![CDATA[null@example.com (Павел Анфимов)]]></author>
			<pubDate>Mon, 24 Oct 2022 10:58:00 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/18657/#p18657</guid>
		</item>
		<item>
			<title><![CDATA[Re: Выработка двойственного ключа по алгоритму KEG]]></title>
			<link>https://forum.rutoken.ru/post/18652/#p18652</link>
			<description><![CDATA[<p>Добрый день, коллеги. </p><p>Подскажите, пожалуйста, как выработать двойственный ключ по алгоритму KEG на java под android?<br />При выполнении функции C_DeriveKey получаю ошибку 0x00000071(недопустимый параметр механизма).</p><p>Все шаги повторяю из примера <a href="https://dev.rutoken.ru/pages/viewpage.action?pageId=13795364#id-%D0%92%D1%81%D1%82%D1%80%D0%B0%D0%B8%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%A0%D1%83%D1%82%D0%BE%D0%BA%D0%B5%D0%BD%D1%87%D0%B5%D1%80%D0%B5%D0%B7PKCS11-CKM_GOST_KEG">https://dev.rutoken.ru/pages/viewpage.a … M_GOST_KEG</a> с адаптиацией под android.</p><p>Шаги:<br />1. Сгенерировал ключевую пару по алгоритму ГОСТ Р34.10 2012-256<br />2. Сгенерировал UKM(синхропосылку) длиной 24 байта для данной ключа<br />3. Создал шаблон идентичный примеру (из сайта)<br />4. Создал класс CK_ECDH1_DERIVE_PARAMS с параметрами ukm и publicKey, kdf = 1. <br />&nbsp; &nbsp;- CK_ECDH1_DERIVE_PARAMS не удалось использовать из пакета ru.rutoken.pkcs11jna, так как свойства класса не указаны как public, из-за чего получал ошибки. Пришлось продублировать этот класс в проекте.<br />5. Генерирую CK_MECHANISM с типом CKM_GOST_KEG и параметром CK_ECDH1_DERIVE_PARAMS.</p><p>Использую SDK от 2022 04 21. (106f9f507f7ece07c7e3a5bbd0c8f721594b9b1c). Тесты провожу на Рутокен ЭЦП 3.0 NFC.</p>]]></description>
			<author><![CDATA[null@example.com (SergeyRT)]]></author>
			<pubDate>Sun, 23 Oct 2022 11:41:40 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/18652/#p18652</guid>
		</item>
		<item>
			<title><![CDATA[Re: Выработка двойственного ключа по алгоритму KEG]]></title>
			<link>https://forum.rutoken.ru/post/16094/#p16094</link>
			<description><![CDATA[<p>Спасибо за ответ!</p>]]></description>
			<author><![CDATA[null@example.com (BeanSoup)]]></author>
			<pubDate>Thu, 14 Oct 2021 13:31:55 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/16094/#p16094</guid>
		</item>
		<item>
			<title><![CDATA[Re: Выработка двойственного ключа по алгоритму KEG]]></title>
			<link>https://forum.rutoken.ru/post/16093/#p16093</link>
			<description><![CDATA[<p><strong>BeanSoup</strong>, приветствую. Сейчас только смарт-карта. В ноябре ожидается устройство Рутокен ЭЦП 3.0 NFC в форм-факторе USB-токена.</p>]]></description>
			<author><![CDATA[null@example.com (Ксения Шаврова)]]></author>
			<pubDate>Thu, 14 Oct 2021 13:30:08 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/16093/#p16093</guid>
		</item>
		<item>
			<title><![CDATA[Re: Выработка двойственного ключа по алгоритму KEG]]></title>
			<link>https://forum.rutoken.ru/post/16092/#p16092</link>
			<description><![CDATA[<div class="quotebox"><cite>Аверченко Кирилл пишет:</cite><blockquote><p>Данный документ описывает использование ключей стандарта Магма или Кузнечик в TLS 1.2.<br />CKD_NULL, так как требуется в результате получить результат выполнения VKO-256 для последующего применения функции диверсификации. Интерфейс механизма VKO_GOSTR3410_2012 не подразумевает комбинированное использование с диверсификацией по kdf_tree в общем случае. для комбинированного использования был введен механизм KEG.</p></blockquote></div><p>Спасибо за подтверждение, именно так я и предполагал.</p><div class="quotebox"><cite>Аверченко Кирилл пишет:</cite><blockquote><p>Данный документ описывает использование ключей стандарта Магма или Кузнечик в TLS 1.2.<br />ulL задает параметр согласно рекомендациям по стандартизации, то есть, общий размер вырабатываемого ключевого материала. Он может быть использован не полностью, за используемый &quot;фрагмент&quot; ключевого материала отвечает параметр ulOffset диверсификации, а также тип результирующего ключа. Таким образом, для получение 64 байтов ключевого материала требуется выставить в качестве CKA_KEY_TYPE результирующего ключа двойной ключ Магма (CKK_MAGMA_TWIN_KEY) или двойной ключ Кузнечик (CKK_KUZNECHIK_TWIN_KEY).<br />Но это все справедливо для токенов и смарт-карт с поддержкой Магмы и Кузнечика.</p></blockquote></div><p>Понятно. Да, я пытался передавать ключи CKK_MAGMA_TWIN_KEY и CKK_KUZNECHIK_TWIN_KEY в шаблон и получал соответствующую ошибку от C_Derivekey. Без ошибки отрабатывало только для CKK_GOST28147.</p><p>Теперь в целом все понятно, спасибо. Хотелось бы только уточнить есть ли какие-либо токены/смарткарты ЭЦП 3.0, поддерживающие описанный функционал, кроме этих <a href="https://www.rutoken.ru/products/catalogue/id_114.html?">https://www.rutoken.ru/products/catalogue/id_114.html?</a></p>]]></description>
			<author><![CDATA[null@example.com (BeanSoup)]]></author>
			<pubDate>Thu, 14 Oct 2021 13:21:04 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/16092/#p16092</guid>
		</item>
		<item>
			<title><![CDATA[Re: Выработка двойственного ключа по алгоритму KEG]]></title>
			<link>https://forum.rutoken.ru/post/16091/#p16091</link>
			<description><![CDATA[<p>Данный документ описывает использование ключей стандарта Магма или Кузнечик в TLS 1.2.<br />Для использования этих ключей необходим Рутокен ЭЦП 3.0.</p><p>Возвращаясь к этим вопросам, наши разработчики ответили следующее:<br /></p><div class="quotebox"><cite>BeanSoup пишет:</cite><blockquote><p>- при использовании механизма VKO_GOSTR3410_2012 в качестве параметра kdf следует передавать значение &quot;CKM_KDF_GOSTR3411_2012_256&quot; или значение &quot;CKD_NULL&quot;?</p></blockquote></div><p>CKD_NULL, так как требуется в результате получить результат выполнения VKO-256 для последующего применения функции диверсификации. Интерфейс механизма VKO_GOSTR3410_2012 не подразумевает комбинированное использование с диверсификацией по kdf_tree в общем случае. для комбинированного использования был введен механизм KEG.</p><div class="quotebox"><cite>BeanSoup пишет:</cite><blockquote><p>- почему при использовании механизма KDF_TREE_GOSTR3411_2012_256 при передаче параметру ulL (в качестве байтовой длины вырабатываемого ключевого материала) значения 64 байта функция C_DeriveKey вырабатывает последовательность длиной 32 байта?</p></blockquote></div><p>ulL задает параметр согласно рекомендациям по стандартизации, то есть, общий размер вырабатываемого ключевого материала. Он может быть использован не полностью, за используемый &quot;фрагмент&quot; ключевого материала отвечает параметр ulOffset диверсификации, а также тип результирующего ключа. Таким образом, для получение 64 байтов ключевого материала требуется выставить в качестве CKA_KEY_TYPE результирующего ключа двойной ключ Магма (CKK_MAGMA_TWIN_KEY) или двойной ключ Кузнечик (CKK_KUZNECHIK_TWIN_KEY).</p><p>Но это все справедливо для токенов и смарт-карт с поддержкой Магмы и Кузнечика.</p>]]></description>
			<author><![CDATA[null@example.com (Аверченко Кирилл)]]></author>
			<pubDate>Thu, 14 Oct 2021 12:43:51 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/16091/#p16091</guid>
		</item>
		<item>
			<title><![CDATA[Re: Выработка двойственного ключа по алгоритму KEG]]></title>
			<link>https://forum.rutoken.ru/post/16086/#p16086</link>
			<description><![CDATA[<p>Я попробую переформулировать вопрос.<br />В разделе 6.4.5.1 документа ТК26 &quot;Использование российских криптографических алгоритмов в протоколе безопасности транспортного уровня (TLS 1.2)&quot; регламентируется порядок получения ключа по алгоритму KEG. Результатом работы данного алгоритма является последовательность длиной 64 байта (этот результат затем предполагается передавать на вход алгоритма Kexp15). Итоговым выходом алгоритма KEG (256 бит) является результат работы механизма KDF_TREE_GOSTR3411_2012_256. Для определения длины вырабатываемой последовательности механизма KDF_TREE_GOSTR3411_2012_256 в соответствии с документацией рутокен используется переменная ulL, но при этом можно считать только 32 байта.<br />Пожалуйста поясните, можно ли каким-либо образом считать 64 байта выхода работы механизма KDF_TREE_GOSTR3411_2012_256?</p>]]></description>
			<author><![CDATA[null@example.com (BeanSoup)]]></author>
			<pubDate>Thu, 14 Oct 2021 10:47:50 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/16086/#p16086</guid>
		</item>
		<item>
			<title><![CDATA[Re: Выработка двойственного ключа по алгоритму KEG]]></title>
			<link>https://forum.rutoken.ru/post/16083/#p16083</link>
			<description><![CDATA[<p>Результатом работы функции C_DeriveKey является ключ стандарта ГОСТ 28147-89 размером 32 байта.<br />ulL - размер вырабатываемого ключевого материала, из которого по смещению ulOffset берется 32 байта для выходного результата.</p><div class="quotebox"><cite>BeanSoup пишет:</cite><blockquote><p>- при использовании механизма VKO_GOSTR3410_2012 в качестве параметра kdf следует передавать значение &quot;CKM_KDF_GOSTR3411_2012_256&quot; или значение &quot;CKD_NULL&quot;?</p></blockquote></div><p>В наших примерах передается CKM_KDF_GOSTR3411_2012_256</p>]]></description>
			<author><![CDATA[null@example.com (Аверченко Кирилл)]]></author>
			<pubDate>Wed, 13 Oct 2021 14:27:49 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/16083/#p16083</guid>
		</item>
		<item>
			<title><![CDATA[Re: Выработка двойственного ключа по алгоритму KEG]]></title>
			<link>https://forum.rutoken.ru/post/16082/#p16082</link>
			<description><![CDATA[<p>Благодарю за быстрый ответ.<br />В настоящий момент используются следующие параметры</p><p>CK_KDF_TREE_GOST_PARAMS x;<br />CK_MECHANISM y = { (CK_MECHANISM_TYPE)KDF_TREE_GOSTR3411_2012_256, NULL_PTR, 0 };<br />CK_UTF8CHAR z[] = { &quot;kdf tree&quot; };<br />BYTE k[8] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };</p><p>x.pLabel = (CK_BYTE_PTR)z;<br />x.ulLabelLength = 8;<br />x.pSeed = k;<br />x.ulSeedLength = 8; <br />x.ulR = 1;<br />x.ulL = 64; <br />x.ulOffset = 0;<br />x.pParameter = &amp;y;<br />x.ulParameterLen = sizeof(y);</p><br /><p>В качестве типа вырабатываемого ключа используется значение CKK_GOST28147.</p>]]></description>
			<author><![CDATA[null@example.com (BeanSoup)]]></author>
			<pubDate>Wed, 13 Oct 2021 13:44:58 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/16082/#p16082</guid>
		</item>
		<item>
			<title><![CDATA[Re: Выработка двойственного ключа по алгоритму KEG]]></title>
			<link>https://forum.rutoken.ru/post/16081/#p16081</link>
			<description><![CDATA[<p>Добрый день.<br />Можете показать значения параметров, которые вы передаете в структуру CK_KDF_TREE_GOST_PARAMS</p>]]></description>
			<author><![CDATA[null@example.com (Аверченко Кирилл)]]></author>
			<pubDate>Wed, 13 Oct 2021 13:30:00 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/16081/#p16081</guid>
		</item>
		<item>
			<title><![CDATA[Re: Выработка двойственного ключа по алгоритму KEG]]></title>
			<link>https://forum.rutoken.ru/post/16080/#p16080</link>
			<description><![CDATA[<p>Добрый день.</p><p>Прошу помочь разобраться в следующей ситуации.<br />Я продолжаю попытки реализовать алгоритм KEG с использованием устройств рутокен. При реализации стремлюсь опираться на документ ТК26 &quot;Использование российских криптографических алгоритмов в протоколе безопасности транспортного уровня (TLS 1.2)&quot;.&nbsp; Если я правильно понял представленное в нем описание, то:<br />- в качестве KEG для 512 бит можно использовать алгоритм VKO512;<br />- в качестве KEG для 256 бит можно использовать связку алгоритмов VKO256 + KDF_TREE;<br />- результатом работы KEG является последовательность длиной 64 байта.<br />Полноценного примера для использования механизма KDF_TREE_GOSTR3411_2012_256 на сайте или в SDK я не смог найти, однако заполнить структуру CK_KDF_TREE_GOST_PARAMS в соответствии с требованиями документа ТК26 и довести до рабочего состояния функцию C_DeriveKey (возвращает значение CKR_OK) удалось.<br />В итоге с вариантом KEG для 256 бит возникли следующие вопросы:<br />- при использовании механизма VKO_GOSTR3410_2012 в качестве параметра kdf следует передавать значение &quot;CKM_KDF_GOSTR3411_2012_256&quot; или значение &quot;CKD_NULL&quot;?<br />- почему при использовании механизма KDF_TREE_GOSTR3411_2012_256 при передаче параметру ulL (в качестве байтовой длины вырабатываемого ключевого материала) значения 64 байта функция C_DeriveKey вырабатывает последовательность длиной 32 байта?</p><p>Спасибо.</p>]]></description>
			<author><![CDATA[null@example.com (BeanSoup)]]></author>
			<pubDate>Wed, 13 Oct 2021 12:58:46 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/16080/#p16080</guid>
		</item>
		<item>
			<title><![CDATA[Re: Выработка двойственного ключа по алгоритму KEG]]></title>
			<link>https://forum.rutoken.ru/post/16039/#p16039</link>
			<description><![CDATA[<p>Благодарю всех за развернутые ответы!</p>]]></description>
			<author><![CDATA[null@example.com (BeanSoup)]]></author>
			<pubDate>Tue, 05 Oct 2021 10:04:45 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/16039/#p16039</guid>
		</item>
		<item>
			<title><![CDATA[Re: Выработка двойственного ключа по алгоритму KEG]]></title>
			<link>https://forum.rutoken.ru/post/16038/#p16038</link>
			<description><![CDATA[<p><strong>BeanSoup</strong>, верно, для устройств ЭЦП 2.0 доступны механизмы VKO GOST R&nbsp; 34.10-2012 и KDF_TREE_GOSTR3411_2012_256 (с ключами ГОСТ-89).</p>]]></description>
			<author><![CDATA[null@example.com (Павел Анфимов)]]></author>
			<pubDate>Tue, 05 Oct 2021 09:56:15 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/16038/#p16038</guid>
		</item>
	</channel>
</rss>
