Всем криптопривет!
В этой небольшой публикации я покажу вам, как можно зашифровать информацию, которую практически невозможно будет расшифровать за обозримое время (пока не придумали квантовые компьютеры).
Не буду томить вас долгой теорией, как математически осуществляется преобразование в разных алгоритмах, скажу лишь, что в 1С уже есть готовые объекты, которые позволяют производить шифрование / расшифровку с помощью цифровых сертификатов. Под сертификатом в данной статье понимается ключевая пара, состоящая из открытого ключа (непосредственно сам сертификат) и закрытого ключа, которые содержат ещё некоторую метаинформацию. Сертификаты могут быть самоподписанными, когда они не состоят в зависимости от других сертификатов, а могут быть в цепочке сертификатов, где каждый вышестоящий сертификат подписывает своего потомка. На вершине цепочки стоят корневые центры сертификации. По сути, сила этой цепочки основана на доверии.
Внутри этой кухни используется 2 вида шифрования:
- симметричное (для шифрования и расшифровки используется один и тот же ключ), в котором применяется блочный шифр для кодирования данных - блок, длиной с размер открытого ключа шифрует такой же по размеру блок данных и переходит к следующему блоку и т.д., причём возможны 5 вариантов шифрования цепочки блоков данных;
- асимметричное шифрование (открытый_ключ <> закрытый_ключ), в котором данные шифруются открытым ключом, который можно всем светить и пересылать по открытым каналам любому и каждому, а расшифровываются закрытым ключом, который нужно держать в строгом секрете.
Обычно для шифрования применяется следующий подход: данные любого размера быстро шифруются блочным шифром с использованием симметричного ключа, который типа рандомно генерится только для текущего конкретного шифрования (этого сеанса), а потом созданный короткий сеансовый ключ уже шифруется асимметричным алгоритмом, т.к. он работает медленно и предназначен для шифрования малых объемов данных.
Если нет закрытого ключа, расшифровать информацию НЕ получится. На этом принципе построена защита данных в современном мире.
Запомните: для шифрования и проверки электронной подписи используем открытый ключ, а для расшифровки и подписи данных - закрытый ключ!
В своей небольшой обработке я накидал возможность двустороннего шифрования/расшифровки plain-текста:

и произвольного файла (с ограничением ~100 MB):

Причём двумя разными алгоритмами: на основе амеровского RSA и на основе нашего ГОСТ.
Обратите внимание, что 12 символов на первом скрине превратились в большой шифрованный текст. Это потому что к зашифрованным данным присоединяется открытый ключ (~1 KB). И информацию я вывожу в base64, чтобы можно было пересылать зашифрованный текст. Плюс к этому base64 увеличивает длину сообщения на треть!
Для выбора сертификата разработана форма выбора из персонального хранилища:

После обработки произвольного файла можно увидеть, что его внутренности качественно пошифровались:

Если у вас нет сертификатов от доверенных центров сертификации, то можете сами создать ключевую пару самоподписанного сертификата - это относительно несложно.

Но если будут трудности, к статье приложены скрипты для генерации.
Для RSA с помощью встроенных в Windows инструментов (gen_RSA_cert.7z):

и для ГОСТ с помощью КриптоПро (gen_GOST_cert.7z):

Можете применять наработки данной публикации в своих решениях, чтобы скрыть от чужих глаз неположенную им инфу.
Обработка из статьи протестирована на платформе 8.3.27.1989 (использована асинхронность). Но будет работать с 8.3.18 . Если перевести на синхронный режим, будет работать с 8.3.10 .
Обновление от 02.09.2026 :
1) скорректирована статья в сторону большего занудства технического правдоподобия по требованию комментаторов
2) расширение установлено .p7m для совместимости с другим ПО
3) добавлена интерактивная форма выбора сертификата
4) добавлена возможность указания пароля для доступа к контейнеру закрытого ключа
Держите ваши чувствительные данные в секретах!
но на моём ГитХабе ещё больше интересного
Проверено на следующих конфигурациях и релизах:
- 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.11.466
Вступайте в нашу телеграмм-группу Инфостарт