1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-GmSSL

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

GmSSL

GmSSL — это отечественная библиотека с открытым исходным кодом для разработки криптографических приложений, созданная в Пекинском университете. Библиотека реализует полный набор функций для работы с национальными алгоритмами шифрования, стандартами и протоколами безопасности связи. Она поддерживает основные операционные системы, включая мобильные, а также различные процессоры. GmSSL работает с такими национальными криптографическими устройствами, как ключи и смарт-карты. Библиотека предоставляет широкий спектр инструментов командной строки и интерфейсов программирования на различных языках.

Основные характеристики:

  • Лёгкость: GmSSL 3 значительно снижает требования к памяти и размер двоичного кода. Библиотека не использует динамическую память и может работать в системах без операционной системы с низким энергопотреблением (MCU, SOC и т. д.). Разработчикам легче интегрировать национальные алгоритмы шифрования и протоколы SSL в существующие проекты.
  • Соответствие стандартам: GmSSL 3 можно настроить так, чтобы он включал только национальные алгоритмы и протоколы (TLCP). Это упрощает соответствие требованиям к сертификации криптографических продуктов и предотвращает проблемы с безопасностью и соответствием, связанные с использованием несертифицированных алгоритмов и протоколов.
  • Безопасность: TLS 1.3 обеспечивает значительное улучшение безопасности и задержки связи по сравнению с предыдущими версиями TLS. GmSSL 3 поддерживает TLS 1.3 и RFC 8998, который включает национальные комплекты шифрования. По умолчанию GmSSL 3 защищает ключи с помощью шифрования, что повышает устойчивость алгоритмов шифрования к атакам с побочными каналами.
  • Кроссплатформенность: GmSSL 3 легко переносится на разные платформы. Сборка больше не зависит от Perl, и её можно легко комбинировать с Visual Studio, Android NDK и другими инструментами сборки. Разработчики могут также создавать собственные Makefile для особых сред.

Загрузка

Основная ветка GmSSL называется GmSSL-3.1.1. Эта версия улучшает кроссплатформенные возможности, особенно поддержку Windows/Visual Studio. Разработчикам, работающим с этими платформами, рекомендуется использовать эту версию.

Компиляция и установка

Для компиляции GmSSL используется система CMake. После загрузки исходного кода его необходимо распаковать и перейти в каталог с исходными файлами. Затем нужно выполнить следующие команды:

mkdir build
cd build
cmake ..
make
make test
sudo make install

После выполнения команды make install GmSSL установит команду gmssl в каталоге по умолчанию, создаст каталог gmssl в каталоге заголовков и установит библиотеки libgmssl.a и libgmssl.so в каталоге библиотек.

Среда Visual Studio

В командной строке Visual Studio выполните следующие команды:

mkdir build
cd build
cmake .. -G "NMake Makefiles" -DWIN32=ON
nmake

Функции

Алгоритмы шифрования

  • Блочные шифры: SM4 (CBC/CTR/GCM/ECB/CFB/OFB/CCM/XTS), AES (CBC/CTR/GCM)
  • Потоковые шифры: ZUC/ZUC-256, ChaCha20
  • Хеш-функции: SM3, SHA-1, SHA-224/256/384/512
  • Алгоритмы с открытым ключом: SM2 для шифрования/подписи, SM9 для шифрования/подписи
  • MAC-алгоритмы: HMAC, GHASH, CBC-MAC
  • Функции экспорта ключей: PBKDF2, HKDF
  • Генераторы случайных чисел: Intel RDRAND, HASH_DRBG (NIST.SP.800-90A)

Сертификаты и цифровые конверты

  • Цифровые сертификаты: X.509, CRL (списки отзыва сертификатов), CSR (PKCS #10)
  • Шифрование с закрытым ключом: основанные на SM4/SM3 пароли в формате PEM (PKCS #8)
  • Цифровые конверты: SM2 (GM/T 0010-2012)

Протоколы SSL

  • TLCP 1.1 с поддержкой комплекта шифрования TLS_ECC_SM4_CBC_SM3 {0xE0,0x13} (GB/T 38636-2020, GM/T 0024-2014)
  • TLS 1.2 с поддержкой комплекта шифрования TLS_ECDHE_SM4_CBC_SM3 {0xE0,0x11} (GB/T 38636-2020, GM/T 0024-2014)
  • TLS 1.3 с поддержкой комплекта шифрования TLS_SM4_GCM_SM3 {0x00,0xC6} (RFC 8998)

Интерфейсы для разных языков

GmSSL предлагает интерфейсы для различных языков программирования через свои подпроекты:

  • GmSSL-Java: реализация Java с использованием JNI
  • GmSSL-PHP: расширение PHP
  • GmSSL-Go: реализация Go с использованием CGO
  • GmSSL-Python: реализация Python с использованием ctypes
  • GmSSL-JS: чистая реализация JavaScript

Поддержка национальных криптографических устройств

GmSSL внутренне поддерживает национальные криптографические устройства, такие как SDF (обычно PCI-E или серверные карты) и SKF (обычно USB-ключи). Тестированные модели включают:

  • to be added.

Разработчики также могут использовать подпроект SoftSDF для разработки и тестирования, а затем заменить его на аппаратное обеспечение при развёртывании.

Совместимость с OpenSSL

Версия GmSSL 3.0 переписала весь код и изменила существующий API, поэтому текущая версия GmSSL несовместима с OpenSSL. Однако существует подпроект OpenSSL-Compatibility-Layer, который предоставляет слой совместимости с OpenSSL, позволяя приложениям, таким как Nginx, использовать функции GmSSL. test_sm3_speed: 273,551034 Мбайт в секунду.

sm2_sign_ctx speed (ENABLE_SM2_AMD64): 4096 подписей за 0,036916 секунд, 110 954,599632 подписи в секунду.

sm2_sign_ctx speed: 4096 подписей за 0,236611 секунд, 17 311,114023 подписи в секунду.

test_sm2_encrypt_ctx_speed (ENABLE_SM2_AMD64): 1 7879,592122 шифрования в секунду.

test_sm2_encrypt_ctx_speed: 1869,314131 шифрования в секунду.

test_sm9_z256_pairing_speed: 173 спаривания в секунду.

MacBook Air M2 2022. Apple M2. 16 GB. Sonoma 14.5.

speed_sm4_encrypt: 143,180578 Мбайт в секунду.

speed_sm4_encrypt_blocks: 190,928509 Мбайт в секунду.

speed_sm4_cbc_encrypt_blocks: 148,519447 Мбайт в секунду.

speed_sm4_cbc_decrypt_blocks: 187,305378 Мбайт в секунду.

speed_sm4_ctr_encrypt_blocks: 191,195450 Мбайт в секунду.

speed_sm4_ctr32_encrypt_blocks: 191,522725 Мбайт в секунду.

speed_zuc_generate_keystream: 344,604781 Мбайт в секунду.

speed_zuc_encrypt: 344,723575 Мбайт в секунду.

test_sm3_speed: 327,298762 Мбайт в секунду.

sm2_sign_ctx speed: 4096 подписей за 0,290709 секунд, 14 089,691066 подписи в секунду.

test_sm2_encrypt_ctx_speed: 1518,575861 шифрования в секунду.

test_sm9_z256_pairing_speed: 141 спаривание в секунду.

ChangeLog

С версии 3.1.1

  • Повышена производительность всех национальных алгоритмов шифрования и добавлены тесты производительности национальных алгоритмов в программе tests.
  • Добавлены режимы шифрования SM4 ECB/CFB/OFB/CCM/XTS, а также режимы SM4 CBC/CTR с использованием SM3-HMAC и опции для всех режимов SM4 в инструменте командной строки gmssl.
  • В инструмент командной строки gmssl добавлена опция для вычисления GHASH.
  • Предоставлена команда sdftest для тестирования правильности и совместимости, а также реализована независимая подпроектная версия SDF SoftSDF.
  • Удалены уязвимые алгоритмы шифрования, такие как RC4 и MD5.

Разработчики

Stargazers over time

Stargazers over time

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-GmSSL.git
git@api.gitlife.ru:oschina-mirror/mirrors-GmSSL.git
oschina-mirror
mirrors-GmSSL
mirrors-GmSSL
master