alternative-intelligence-cp/ncrypto

GitHub: alternative-intelligence-cp/ncrypto

用 Nitpick 语言从零原生实现的密码学算法库,无需 C 绑定即可提供对称/非对称加密、签名、哈希与密钥派生等全套原语。

Stars: 1 | Forks: 0

# ncrypto Nitpick 原生密码学算法库。 此仓库提供了标准加密哈希和非对称算法的纯 Nitpick 实现,无需使用 C shim 即可处理基本的位运算和数学原语。 ## 文档 有关导出的公共接口和函数签名的详细信息,请参阅 [API 文档](docs/API.md)。 ## 功能 ### 哈希算法 - **MD5** - **SHA-1** - **SHA-256** - **SHA-512** - **SHA-3 (Keccak)** - **BLAKE2b** ### 编码与格式 - **Base64**:带有恒定时间解码路径的编码器和解码器。 - **PEM**:证书和密钥解析器。 - **ASN.1 DER 层**:用于创建 AST 的嵌入式原生解析器和编码器(Sequences、OIDs、Octet Strings),用于在 RSA 签名和 PKCS#8/SPKI payload 中格式化 `DigestInfo`。 ### 对称加密 - **AES-GCM**:使用 Galois/Counter Mode 的高级加密标准,用于带有关联数据的认证加密(AEAD)。包含用于 GHASH 的原生恒定时间 `gf128_mul` 乘法。 - **ChaCha20-Poly1305**:高速认证加密。 ### 非对称加密 - **BigInt**:支持加法、减法、乘法、二进制长除法和模幂运算的动态任意精度算术库。 - **RSA**: - PKCS#1 v1.5 填充类型 1 和类型 2(签名和加密)。 - 恒定时间解密和验证路径,可缓解 Bleichenbacher 攻击和时序攻击。 - 内置 Miller-Rabin 素性测试和大素数生成。 - **椭圆曲线密码学 (secp256k1)**: - 基础有限域数学,包含完整的点加法和倍乘。 - 恒定时间标量乘法 (`ecc_scalar_mul_ct`),通过恒定时间交换方法抵抗时序分析。 - **ECDSA**:完整的签名生成和验证。 - **ECDH**:利用 `secp256k1` 进行共享密钥推导。 - **Curve25519 (X25519)**: - 完整的恒定时间有限域算术运算 (`gf_add`, `gf_sub`, `gf_mul`, `gf_sqr`, `gf_inv`)。 - **X25519 ECDH**:从 TweetNaCl 设计原生映射的 Montgomery ladder 实现。 - **Ed25519**: - Twisted Edwards 曲线点加法、倍乘和缩放。 - EdDSA 签名生成和验证。 ### 密钥派生函数 - **Argon2id**:符合 RFC 9106 标准的内存密集型密码哈希函数。高度优化的完全展开的内部 BLAKE2b `G` 压缩块,并且内存填充边界在堆上受到安全限制。 - **PBKDF2**:基于 HMAC 的密钥派生。 - **HKDF**:基于 HMAC 的提取与扩展密钥派生。 ## 安全性 所有依赖于私钥或数学排列的密码学结构都经过严格的设计和测试,以在 Nitpick 中实现原生的恒定时间无分支执行。本项目明确依赖 LLVM 标量降低配置来发出特定指令(例如 `cmov`、`atomicrmw`),以减少可观察的时序差异。内存泄漏和大栈问题已受到严格审计并在堆上安全管理,以符合 Nitpick 的约束。 敏感内存操作会通过 `secure_zero` 利用 `atomic` 逻辑自动擦除,以防止编译器将其作为死存储消除。 ### 持续模糊测试 所有核心 API 边界均通过在 C-ABI 兼容的测试工具中运行的差分模糊测试引擎进行了强化。针对标准 Python `cryptography`、`pynacl` 和 `argon2-cffi` 实现进行了长达数小时的广泛属性测试,确保对任意伪随机序列具有精确的内存安全性和数学边界处理能力。
标签:Nitpick, 云配置检测, 加密算法, 哈希算法, 密码学库, 对称加密, 自动化审计, 非对称加密