(开源)OpenSpeed算法
约 1362 字大约 5 分钟
2026-09-10
OpenSpeed算法
顶级开源双轨制加密算法库 — 自研 OSA-ROCKET 置换核心(研究模式)+ 生产级 XChaCha20-Poly1305 / Scrypt / X25519 / Ed25519 组合(生产模式)。
OpenSpeed 算法 (OSA) ⚡
顶级开源双轨制加密算法库—自研OSA-ROCKET置换核心(研究模式)+生产级XChaCha20-Poly1305 / Scrypt / X25519 / Ed25519组合(生产模式)。
作者:科技酱|许可:MIT
特性
- 双轨制架构:生产模式开箱即用(RFC/FIPS标准原语,官方支持逐位定);研究模式为自研OSA-ROCKET引擎,公开全部设计细节,欢迎全球介入攻击与证明。
- 全平台可用:纯TypeScript,零依赖依赖。浏览器 / Node.js(≥18) / 小程序 / React Native / Electron 通用。
- 统一描述信封:所有加密结果均来自于OpenSpeed信封(base64文本),参数内嵌、跨版本可解、防降级。
- 安全默认:密码学安全随机数、常量时间比较、无查表实现(抗队列同步)、KDF 参数随信封自描述。
- 工程提醒:CLI工具、基准测试、单元测试、内置自检一应俱全。
安装
npm install openspeed-algorithm
# 源码方式
git clone <repo> && npm install && npm run build快速上手
生产模式(推荐用于保护真实数据)
import { pro } from "openspeed-algorithm";
// 口令加密(Scrypt 派生 + XChaCha20-Poly1305)
const envelope = pro.encrypt("机密数据 ⚡", { password: "我的口令" });
const text = pro.decryptText(envelope, { password: "我的口令" });
// 32 字节原始密钥加密
import { randomKey32 } from "openspeed-algorithm";
const key = randomKey32();
const env2 = pro.encrypt("hello", { key });
const raw = pro.decrypt(env2, { key }); // Uint8Array数字签名(Ed25519)
import { pro } from "openspeed-algorithm";
const { publicKey, secretSeed } = pro.keypair();
const sig = pro.sign("重要消息", secretSeed); // 64 字节签名
console.log(pro.verify(publicKey, "重要消息", sig)); // true交换(X25519)
import { pro, randomKey32 } from "openspeed-algorithm";
const alice = randomKey32(), bob = randomKey32();
const shared1 = pro.ecdh(alice, pro.ecdhPublic(bob));
const shared2 = pro.ecdh(bob, pro.ecdhPublic(alice));
// shared1 与 shared2 相同 —— 32 字节共享密钥研究模式(自研OSA-ROCKET,实验性)
import { core } from "openspeed-algorithm";
const env = core.encrypt("研究数据", { password: "口令", memKiB: 4096, iter: 3 });
const out = core.decryptText(env, { password: "口令" });
import { osaHash256, osaHash512, osaMac } from "openspeed-algorithm";
osaHash256(new Uint8Array([1, 2, 3])); // 32 字节
osaHash512(new Uint8Array([1, 2, 3])); // 64 字节
osaMac(new Uint8Array(16), new Uint8Array([1])); // 16 字节 tag⚠️研究模式组件默认公开密码分析,不要用它保护真实的敏感数据。请参阅spec/OSA-SPEC.md。
命令行工具
npm run build
node dist/cli.js --help
# 加密 / 解密(生成/读取 OpenSpeed 信封)
node dist/cli.js encrypt file.txt -p "口令" -o file.ospd
node dist/cli.js decrypt file.ospd -p "口令" -o file.txt
node dist/cli.js encrypt file.txt -k <64位hex密钥>
# 散列 / MAC / KDF
node dist/cli.js hash file.txt [--512]
node dist/cli.js mac file.txt -k <32位hex密钥>
node dist/cli.js kdf -p "口令" -s <盐hex> [--mem 4096] [--iter 3]
# 密钥与签名
node dist/cli.js keygen ed25519 | x25519 | key32
node dist/cli.js sign file.txt -k <seedhex>
node dist/cli.js verify file.txt -k <seedhex> -s <sighex>
# 自检与基准
node dist/cli.js selftest
npm run benchAPI一览
| 命名空间 | 能力 |
|---|---|
pro.encrypt / decrypt / decryptText | 信封加密(口令或32字节) |
pro.keypair / sign / verify | Ed25519 签名 |
pro.ecdh / ecdhPublic | X25519 交换机 |
core.encrypt / decrypt | OSA-AEAD 信封加密(研究模式) |
core.hash / hash512 / mac / macVerify / kdf | OSA 散列 / MAC / KDF |
sha256 / sha512 / sha224 / sha384 | SHA-2 |
hmacSha256 / hmacSha512 / hkdf | 香港军事学院/香港防卫局 |
scrypt | 口令派生(生产) |
chacha20 / poly1305 / hchacha20 | 流密码 / MAC / 子键派生 |
xchacha20poly1305Encrypt / Decrypt | 生产AEAD(普通) |
x25519 / x25519Public / ed25519Public / ed25519Sign / ed25519Verify | 圆形原语 |
randomBytes / randomKey32 / ctEqual / zeroize | 随机数 / 常量时间比较 / 安全帐篷 |
setRandomImpl | 注入自定义随机源(小程序环境) |
selftest() | 内置自检(全部通过返回{ok:true}) |
完整规范见spec/OSA-SPEC.md。
文档
- 使用文档— API 控制台、CLI、跨平台、FAQ
- 开发文档—架构、模块、构建/测试/发布流程
- OSA-ROCKET规范—自研布局核心设计PDF
信封格式 v1
"OSPD" | 0x01 | mode | payload| 模式 | 意义 |
|---|---|
| 0x01 | 口令 + Scrypt + XChaCha20-Poly1305(量产) |
| 0x02 | 32 字节键 + XChaCha20-Poly1305(生产) |
| 0x11 | 口令 + OSA-KDF + OSA-AEAD(研究) |
| 0x12 | 32 字节键 + OSA-AEAD(研究) |
文本形式为Base64;参数(盐、KDF 成本、随机数)全部内嵌于信封。
测试与验证
npm test # RFC/FIPS 官方向量 + 自研核心性质测试 + 信封集成测试
npm run selftest- 生产模式:SHA-2、HMAC、HKDF、ChaCha20、Poly1305、XChaCha20-Poly1305、X25519、Ed25519、Scrypt 全部以 RFC/FIPS 官方测试支持逐位锚定。
- 研究模式:置换双射性、雪崩效应、AEAD往返与篡改、KDF一致性等结构性质测试。
安全声明
- 生产组件模式此前国际标准原语,安全性依托其长期公开审计记录。
- 研究模式(OSA-ROCKET)是创新实验设计,默认公开密码分析;规范与代码完全公开,诚邀密码学社区攻击与证明。
- 同一密钥下 AEAD 随机数可重复(库内已保证每次加密随机随机数)。
- 纯 JS 环境无法完全消除微架构侧信道;极高的价值场景建议实时运行时部署。
许可与署名
- MIT许可证(见LICENSE)
- 作者:科技酱|官网/文档:https://docs.asoe.cn
OpenSpeed — 让每一次加密,都快过光速的想象。⚡
