reeveskeefe/Kyriotes-CSK2

GitHub: reeveskeefe/Kyriotes-CSK2

Kyriotes-CSK2是一种结合密钥和授权证明的加密方案,用于增强数据访问的安全性。

Stars: 0 | Forks: 0

Kyriotēs-CSK2

带有双门开启功能的密钥封装加密

The Kyriotēs-CSK2 logo

Kyriotēs-CSK2是一种加密方案,解密密文需要以下两个条件都为真才能安全解密: **a)** 正确的密钥材料 **b)** 有效、未被撤销的授权能力证明 Kyriotēs-CSK2将字节封装到授权状态(根、策略、权限、对象、时代、撤销),因此只有当密钥拥有和当前授权都通过密码学验证为真时,解密才成功。 ## 核心特性 传统加密通过验证密钥是否有效来工作。而Kyriotēs-CSK2在加密机制的核心中,只有当密钥有效且能力证明对于此特定的授权上下文有效时,才会解密。 ## 当前架构 Kyriotēs-CSK2使用两层加密设计。有效载荷本身使用新的随机256位数据加密密钥(DEK)通过AEAD加密,从而产生加密的有效载荷。单独地,Kyriotēs-CSK2通过从接收者共享秘密和特定时代的授权上下文中派生密钥加密密钥(KEK)来绑定对当前授权状态的访问。然后,使用该KEK封装DEK以及与授权相关的数据。 这意味着密文不是仅通过密钥拥有来打开的。接收者必须同时拥有正确的密钥材料和对象、策略、权限、时代和撤销状态的合法授权上下文。因为只有小的DEK封装与授权时代相关联,所以Kyriotēs-CSK2可以在不重新加密整个有效载荷的情况下为新时代重新封装访问权限。 ## 威胁模型诚实性 Kyriotēs-CSK2是为那些仅拥有密钥本身不足以的情况而设计的。该方案旨在在匹配的授权证明缺失或不再有效时拒绝仅密钥访问,在接收者没有正确的密钥材料时拒绝仅授权访问,防止一个对象的能力被用于另一个对象,并在当前授权策略需要新鲜授权状态时阻止过时的能力重放。 Kyriotēs-CSK2不是一个完整的端点安全系统。它不声称可以保护接收者秘密与有效能力一起被泄露,已授权的解密器选择泄露明文,完整的阈值授权被泄露,或在解密成功后机器被泄露。 ## 状态 Kyriotēs-CSK2是一个正在加强的加密构造和安全模型草案。实现是从标准原语和模式构建的,包括AEAD加密、KDFs、Merkle承诺、签名、KEM和混合KEM流、透明证明和阈值签名。 ## Rust开发状态 Kyriotēs-CSK2加密在Rust代码中公开了库crate `kyriotes_csk2`。该crate发布在crates.io上,发布检查现在在CI中运行,并使用手动发布工作流程。当前的实现专注于验证能力、检查授权状态、执行时间策略、使用新的DEK加密有效载荷、使用HKDF派生的与授权相关的KEK封装这些DEK、支持为当前授权打开的时期重封装、构建规范转述和相关数据,以及公开可插拔的授权验证器接口。 该crate围绕一组核心模块组织。Kyriotēs-CSK2数据模型和上下文哈希在`src/kyriotes_csk2/model.rs`中,而`src/kyriotes_csk2/engine.rs`包含封装、打开和重封装管道。授权验证特性和验证器实现位于`src/kyriotes_csk2/verify.rs`中。规范编码助手位于`src/encoding/codec.rs`下,而公共crate表面通过`src/lib.rs`收集。 ## 本地开发命令 使用cargo test运行测试套件,`cargo fmt`格式化代码,以及`cargo clippy --all-targets --all-features -- -D warnings`运行CI使用的严格lint配置。 ## 验证证据 CI记录当前验证证据在命名作业中: - `Coq证明检查`运行`./proofs/coq/check.sh`并上传`coq-proof-check-evidence`。 - `封装/打开具体Rust证据`运行具体的封装/打开加密放电测试并上传`seal-open-rust-evidence`。 - `封装/打开Kani证据`运行代表性的模型加密和加密合同Kani harness,并上传`seal-open-kani-evidence`。 这些工件支持范围有限的封装/打开语义等价扩展通道。它们并不证明底层加密原语本身。 ## 发布 发布是通过`.github/workflows/publish.yml`中的GitHub Actions工作流程自动化的。 - 从操作选项卡手动运行`Publish`工作流程。 - 工作流程使用存储库秘密`CARGO_REGISTRY_TOKEN`打包和发布。 对于本地预先检查,运行`cargo publish --dry-run --locked`。 ## 测试组织 集成测试按行为分组。封装、打开和重封装流程在`tests/kyriotes_csk2_flow.rs`中,而拒绝和篡改场景在`tests/kyriotes_csk2_guards.rs`中。 共享测试设置位于`tests/helpers/`下,包括授权状态固定装置、能力和证明固定装置、请求构建器、策略哈希助手以及小型场景构建器,用于组合表达式的端到端案例。 ## 项目状态 - [变更日志](CHANGELOG.md) - [验证文档](docs/verification/)
标签:可视化界面, 通知系统