symbolicsoft/kyber-k2so

GitHub: symbolicsoft/kyber-k2so

符合 NIST FIPS 203 标准的纯 Go 实现,为 Go 项目提供简洁易集成的后量子密钥封装机制。

Stars: 127 | Forks: 17

# Kyber-K2SO [![Kyber-K2SO](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/68ad007b42113806.svg)](https://github.com/symbolicsoft/kyber-k2so/actions) [![GoDoc](https://godoc.org/github.com/symbolicsoft/kyber-k2so?status.svg)](https://pkg.go.dev/github.com/symbolicsoft/kyber-k2so?tab=overview) [![Go Report Card](https://goreportcard.com/badge/github.com/symbolicsoft/kyber-k2so)](https://goreportcard.com/report/github.com/symbolicsoft/kyber-k2so) ![GitHub](https://img.shields.io/github/license/symbolicsoft/kyber-k2so) **[Kyber-K2SO](https://github.com/symbolicsoft/kyber-k2so)** 是 Symbolic Software 对 [ML-KEM](https://csrc.nist.gov/pubs/fips/203/final) (FIPS 203) 的清晰实现,这是 NIST 标准化的基于模格的密钥封装机制。ML-KEM 是一种 IND-CCA2 安全的密钥封装机制 (KEM),其安全性基于在模格上求解容错学习 (LWE) 问题的难度。 ## 安全免责声明 🚨 我们已付出巨大努力以确保本库的正确性、互操作性、安全性和可靠性。此外,该 API 未来不太可能发生变更。虽然此库可能已准备好用于生产环境,但它是按原样提供的,不提供任何保证。 ## 功能与用法 在牢记上述安全免责声明的前提下,Kyber-K2SO 似乎适用于 Go 支持的任何环境:客户端应用程序、服务端应用程序等。在常规计算硬件上,所有操作仅需几毫秒。 ### 功能 * **代码短小精悍,易于阅读。** Kyber-K2SO 保持简单,旨在提高可维护性并成为良好的教学资源。 * **API 简单。** 使用 `KemKeypair768()` 生成私钥和公钥,`KemEncrypt768(publicKey)` 生成并加密共享密钥,以及 `KemDecrypt768(ciphertext, privateKey)` 解密共享密钥。除了 ML-KEM-768,还提供 ML-KEM-512 和 ML-KEM-1024。 * **性能良好。** Kyber-K2SO 在 Go 编程语言支持的任何环境中进行常规使用都绰绰有余。 * **常量时间(大概率)。** 据我们所知,解密操作似乎以常量时间执行。鼓励进行进一步分析。 ### 使用 Kyber-K2SO ``` go get -u github.com/symbolicsoft/kyber-k2so ``` ``` package main import ( kyberk2so "github.com/symbolicsoft/kyber-k2so" ) func main() { privateKey, publicKey, _ := kyberk2so.KemKeypair768() ciphertext, ssA, _ := kyberk2so.KemEncrypt768(publicKey) ssB, _ := kyberk2so.KemDecrypt768(ciphertext, privateKey) } ``` 将上述函数名中的 `768` 替换为 `512` 或 `1024`,即可调用 ML-KEM-512 或 ML-KEM-1024 来代替 ML-KEM-768。 ### 运行测试 ``` > go test -v === RUN TestSelf512 --- PASS: TestSelf512 (0.09s) === RUN TestSelf768 --- PASS: TestSelf768 (0.14s) === RUN TestSelf1024 --- PASS: TestSelf1024 (0.21s) === RUN TestMLKEM512Vector --- PASS: TestMLKEM512Vector (0.00s) === RUN TestMLKEM768Vector --- PASS: TestMLKEM768Vector (0.00s) === RUN TestMLKEM1024Vector --- PASS: TestMLKEM1024Vector (0.00s) PASS ok github.com/symbolicsoft/kyber-k2so 0.431s ``` ### 运行基准测试 ``` > go test -bench=. goos: linux goarch: amd64 pkg: github.com/symbolicsoft/kyber-k2so cpu: Intel(R) Core(TM) Ultra 9 275HX BenchmarkKemKeypair512-24 52944 22653 ns/op BenchmarkKemKeypair768-24 29696 40083 ns/op BenchmarkKemKeypair1024-24 19209 60778 ns/op BenchmarkKemEncrypt512-24 48856 23307 ns/op BenchmarkKemEncrypt768-24 32428 39273 ns/op BenchmarkKemEncrypt1024-24 19483 57528 ns/op BenchmarkKemDecrypt512-24 36138 33402 ns/op BenchmarkKemDecrypt768-24 25008 47869 ns/op BenchmarkKemDecrypt1024-24 17690 67303 ns/op PASS ok github.com/symbolicsoft/kyber-k2so 15.135s ``` ## 关于 Kyber-K2SO Kyber-K2SO 由 [Symbolic Software](https://symbolic.software) 发布,采用 MIT 许可证。
标签:Client-side, EVTX分析, FIPS 203, Go, KEM, Kyber, LWE, ML-KEM, NIST标准化, Ruby工具, Server-side, 加密算法, 后量子密码学, 学习容错, 密码学库, 密钥封装机制, 抗量子计算, 日志审计, 格密码学, 模块格, 网络安全, 隐私保护, 零知识证明