VirgilCryptoPythia 0.17.1

VirgilCryptoPythia 0.17.1

Sergey SeroshtanSanjoDeundiakOleksandr DeundiakEvgenyEvgeny 维护。



 
依赖关系
VirgilCryptoFoundation= 0.17.1
VSCCrypto/Common= 0.17.1
VSCCrypto/Foundation= 0.17.1
VSCCrypto/Pythia= 0.17.1
 

  • 贡献者
  • Virgil Security

License

Virgil Security Crypto Library for C

分支 构建
master Build Status
开发 Build Status

介绍

此库旨在为多种加密算法提供一个小巧、灵活且方便的包装。因此,它既可用于微控制器,也可用于高负载服务器应用程序。它还提供了几种自定义混合算法,将这些不同的加密算法结合起来,以简单的方式解决常见复杂的加密问题。这消除了开发者对强大加密技能的要求。

此库适用于不同的平台,并包含其他语言的包装器。

功能

Virgil Security Crypto C 库被分解成具有特定目的的小库。开发者可以自由选择库的子集。

库:基础

该库包含基本的加密算法,可以用作构建复杂解决方案的基本块。

算法目的 实现细节
密钥生成、伪随机数生成器 (PRNG) CTR_DRBG NIST SP 800-90A
密钥派生 KDF1, KDF2HKDFPBKDF2
密钥交换 X25519RSAECDH
密钥封装机制 Round5,ECIES-KEM
哈希算法 SHA-2 (224/256/384/512)
消息认证码 HMAC
数字签名 Ed25519RSASSA-PSSECDSAFalcon
熵源 Linux,macOS /dev/urandom
Windows CryptGenRandom()
对称算法 AES-256-GCMAES-256-CBC
加密方案 PBES2
椭圆曲线 Ed25519Curve25519secp256R1
后量子密码学 FalconRound5

库:PHE

密码强化加密(PHE)协议的加密背景,该协议为开发者提供技术来保护用户密码免受离线攻击,即使数据库被破坏,被盗的密码也变得无用。服务实现可以在这里找到:这里

库:Pythia

Pythia PRF 服务的加密背景。

库:Ratchet

双扩散算法的实现。

平台和语言

平台 语言/二进制文件
基础 所有 C, Swift, Java, JS, Python, Go, PHP
pythia Linux, Mac OS C, Swift, Java, JS, Python, Go, PHP
phe 所有 C, PHP, Java, JS, Python, Go, PHP
ratchet 所有 C, Swift, Java, JS, Python, Go

从源码构建

先决条件

  • 编译器
    • gcc (版本 >= 4.8.2),或
    • clang (版本 >= 3.6),或
    • msvc (版本 >= 14.0)
  • 构建工具
    • cmake (版本 >= 3.12)
    • python (版本 >= 3)
    • python-protobuf

构建和安装

git clone https://github.com/VirgilSecurity/virgil-crypto-c.git
cd virgil-crypto-c
cmake -Bbuild -H.
cmake --build build
cmake --build build --target install

运行基准测试

cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_BENCHMARKING=ON \
      -DED25519_AMD64_RADIX_64_24K=ON -DED25519_REF10=OFF \
      -Bbuild -H.

cmake --build build -- -j10

./build/benchmarks/foundation/bench

支持

我们的开发者支持团队在此为您提供帮助。

您可以在 Twitter 或发送电子邮件至 [email protected]

此外,您还可以在 Slack 获取我们支持团队的额外帮助。

许可证

BSD 3-Clause。详情请参阅 LICENSE