diff --git a/CHANGELOG.md b/CHANGELOG.md index bf28ab4..2d86d09 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,10 @@ -# 更新日志 +# 🔄️更新日志 + +## v2.0.0.0 + +- 增加**非对称加密**,一密双文,被胁迫**可否认暗密文的存在** +- 调整UI,调整对称加密逻辑 +- **隐藏用法**详见项目文档 ## v1.6.0.0 diff --git a/README.md b/README.md index 037c861..daeec30 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ ## 🌟 特点 - ㊙️**密文**:支持 `中文/Base64/Emoji/零宽/日语/韩语/象形` 密文 -- 🔐**密钥**:`Argon2id + HKDF-SHA512`,有效抵御暴力破解 +- 🔐**密钥**:`ECDH-X25519 + ECDH-P521`、`Argon2id + HKDF-SHA512`,有效抵御暴力破解 - 🔒**级联算法**:采用 `AES256-CTR` 与 `ChaCha20-Poly1305-IETF` 级联加密,**安全性极高** - 📄**数据**:所有操作在本地完成,数据不离开设备 @@ -104,11 +104,16 @@ J7ni11NnCUEe1+GtZcIWoJcKNgzsyN8K8BQBKnDn/1mLPkv2ul1VUcedyoIgZpXcNUKfy3HhZI6soaa5 - 密文总长度没有变,只是**转为不可见字符藏在两个可见字符中间**,是为了让人知道密文在哪,方便复制。 - 可以,只需**手动替换**密文中的可见字符(零宽密文**只是对人不可见**,机器是秒识别的,但识别不代表能解密)。 -#### 有增加非对称加密的计划吗? +#### 非对称加密的光、暗密钥对都要生成?光暗密钥对的位置可以互换? -- 有,视Stars情况再考虑,太少人用没有增加的必要。 +- 如果没有特别的需求,不用生成暗密钥对。 +- 填入密钥对时,光暗密钥对的位置**可以互换**,但**需要保持加/解密时一致的位置**。 -## 相关项目 +#### 非对称加密的对方公钥框,填自己的公钥会怎么样? + +- 会导致密文只有自己可以解密,这**不是BUG**,而是隐藏用法,特别留给有藏日记到暗密文需求的人。 + +## 🫧相关项目 [文图变 - 文件藏到图片](https://github.com/fzxx/FileImgSwap) diff --git a/SECURITY.md b/SECURITY.md index 70fd2cc..cde9be6 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -1,6 +1,4 @@ -## 🛡️ 安全细节 - -### 对称加密流程 +## 🛡️对称加密流程 ```plaintext 明文 → 压缩 → AES256-CTR加密 → ChaCha20-Poly1305加密 → Base64编码 → 密文 @@ -51,11 +49,43 @@ IV(16字节)、Nonce(12字节),随机 ↳ 解密 → Deflate解压 → [明文] ``` -### 非对称加密算法流程 -待开发...... -### 安全要素 +## 🛡️非对称加密流程 + +```plaintext +光文本 → 压缩||暗文本 → 压缩 + ↳ 分别进行 AES256-CTR加密 → ChaCha20-Poly1305加密 → Base64编码 → 密文 + ↳ 映射 中文/Emoji/零宽... → 密文 +``` + +### 密钥、IV、Nonce派生流程 + +#### v2.0.0.0及以上 + +``` +(Shared Secret + 随机Seed)Argon2id + ↳(MasterKey + Seed)HKDF-SHA512 + ↳ 派生AES-CTR密钥(256位) + ↳ 派生ChaCha20密钥(256位) + ↳ 派生AES-CTR IV(16字节) + ↳ 派生ChaCha20 Nonce(12字节) +``` + +### 数据结构 + +#### v2.0.0.0及以上 + +``` +[中文、Emoji、零宽.../Base64 密文] + ↳ 映射→解码/解码 + ↳[光密文||暗密文] + ↳ Seed + ChaCha20密文 + ↳ 解密 → AES-CTR密文 + ↳ 解密 → Deflate-raw解压 → [光文本/暗文本] +``` + +## 🎭安全要素 | 要素 | 长度 | 方式 | 用途 | | -------------- | ------- | --------------- | ------------------------ | @@ -65,10 +95,17 @@ IV(16字节)、Nonce(12字节),随机 | 盐 (Salt) | 16 字节 | 随机种子派生 | 确保每次加密生成唯一密钥 | | AES-CTR IV | 16 字节 | 随机种子派生 | 计数器初始值 | | ChaCha20 Nonce | 12 字节 | 随机种子派生 | 一次性随机数 | +| Shared Secret | 98 字节 | X25519 + P521 |共享密钥| - 设备需保证安全,无病毒木马、无可疑的窃听软件 - 包括不限于**不受信任的浏览器、输入法、杀毒软件** -### 漏洞报告 +## 🗣️漏洞报告 + +如需私密提交,请用作者的公钥加密,**并附上你的公钥** + +```key +📢:FXzJX6BENBPuvG17hxrkSh+k31SvVD4mgZ7qkbIHWXEEAEH5NfpF/e/banniB9ZfWEG5qHRp6jHZL5Wfjv0KimZFiSP/56eX42mIKkRtGyOBF/5jPQ2Ul2EZr8ule303wH0xAWw3nma2ymOz+VqSfkR/uVe3Ca/AeN7WULXH8uZSLOsb1D/IsmTL1ZMCo5ua5XhTmtHHR5c+kQci87S77UTcRAu0 +``` [![漏洞报告](https://img.shields.io/badge/%E6%BC%8F%E6%B4%9E%E6%8A%A5%E5%91%8A-gold?style=for-the-badge&logo=github&&logoColor=black)](https://github.com/fzxx/XiangYue/security/advisories/new)