powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / ready to pay. GOST and XML encryption
4 сообщений из 4, страница 1 из 1
ready to pay. GOST and XML encryption
    #39578700
cutecode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нужно сделать шифрование электронного больничного XML файла по стандарту "XML Encryption Syntax and Processing (W3C)"
согласно инструкции ФСС "Шифрование сессионного ключа и данных происходит по алгоритму ГОСТ 28147-89"

Вот шаблон зашифрованного XML файла
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
<xenc:EncryptedData 
xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Content" 
xmlns:ds="http://www.w3.org/2000/09/xmldsig#" 
xmlns:sch="http://gost34.ibs.ru/WrapperService/Schema" 
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" 
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
	<xenc:EncryptionMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gost28147"/>
	<ds:KeyInfo>
		<xenc:EncryptedKey xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
			<xenc:EncryptionMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:transport-gost2001"/>
			<ds:KeyInfo>
				<ds:X509Data>
					<ds:X509Certificate></ds:X509Certificate>
				</ds:X509Data>
			</ds:KeyInfo>
			<xenc:CipherData>
				<xenc:CipherValue></xenc:CipherValue>
			</xenc:CipherData>
		</xenc:EncryptedKey>
	</ds:KeyInfo>
	<xenc:CipherData>
		<xenc:CipherValue></xenc:CipherValue>
	</xenc:CipherData>
</xenc:EncryptedData>



Если кто знает, то подскажите, согласно описанию
Код: sql
1.
xenc:EncryptionMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gost28147"


Какой режим gost89 надо использовать?
Код: sql
1.
2.
3.
4.
1. простой замены
2. гаммирование
3. гаммирование с обратной связью
4. режим выработки имитовставки.



В сети очень много инструментов для шифрования, но ни все знают что такое русский ГОСТ
Если у кого-то уже есть готовый инструмент, то я готов купить
...
Рейтинг: 0 / 0
ready to pay. GOST and XML encryption
    #39578799
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У Брюса Шнайера можно почитать теорию про режимы "сцепления блоков".
Первый из них тривиален - не делает никакого сцепления. А все остальные
- комбинируют различные варианты межблочных связей.

Кажется в openssl это называется CBC/ECB/OFB...

Как это относится к ГОСТ я к сожалению не знаю. Слишком мало инфы о нем.
Но скорее всего блочные операции у него такие-же как и у всяких там "Дутых Рыб",
и прочих AES.

Какой режим вам выбрать - пофиг. Если над вами нет контролирующей организации
то нет смысла чего-то там искать.
...
Рейтинг: 0 / 0
ready to pay. GOST and XML encryption
    #39578940
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
openssl до 1.1 включал встроенную поддержку госта в режимах CFB, CNT. Можно его применить в режиме статической сборки, чтобы не зависеть от поставляемых с ОС более свежих openssl, где гост выкинули .
Если нужен openssl 1.1 и выше то там гост реализуется с помощью внешней библиотеки, которую надо подключить в список движков.
Как этим всем пользоваться легко гуглится.
...
Рейтинг: 0 / 0
ready to pay. GOST and XML encryption
    #39591348
cutecode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я согласен пока и на динамическую сборку openssl, это пока не важно.
вот что сказано в файле readme.gost
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
ALGORITHMS SUPPORTED

...

GOST 28147-89 - Symmetric cipher  with 256-bit key. Various modes are
   defined in the standard, but only CFB and CNT modes are implemented
   in the engine. To make statistical analysis more difficult, key
   meshing is supported (see RFC 4357).

GOST 28147-89 MAC mode. Message authentication code. While most MAC
    algorithms  out there are based on hash functions using HMAC
	algorithm, this algoritm is based on symmetric cipher. 
	It has 256-bit symmetric key and only 32 bits of MAC value
	(while HMAC has same key size and value size). 

	It is implemented as combination of EVP_PKEY type and EVP_MD type.



походу, вроде, 3 режима поддерживаюся
Код: sql
1.
2.
3.
2. гаммирование (CNT)
3. гаммирование с обратной связью (CFB)
4. режим выработки имитовставки. (MAC)



По поводу openssl, я с ним уже давно разобрался. Гост поддерживается начиная с версии 1.0.1

Код: sql
1.
2.
3.
4.
5.
6.
>openssl version
OpenSSL 1.0.1a 19 Apr 2012

>openssl engine
(dynamic) Dynamic engine loading support
(gost) Reference implementation of GOST engine



Пробовал шифровать и с openssl и с КриптоПро, но пока одни "танцы с бубном".

не подскажите, кто знает, действовать надо вроде как то так:
1. генерируем 8 байт IV
2. генерируем 32 байт сессионного ключа
3. c помощью IV и сессионного ключа шифруем данные алгоритмом ГОСТ 89
4. к полученным зашифрованным данным добавляем префикс из IV (8 байт)
5. из последнего делаем 64encoding и записываем в XML файл
6. шифруем сессионный ключ, открытым ключом ФСС алгоритмом ГОСТ 2001
7. из последнего делаем 64encoding и записываем в XML файл
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / ready to pay. GOST and XML encryption
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]