# 密码学作业 **Repository Path**: liu-yubooool/cryptography-homework ## Basic Information - **Project Name**: 密码学作业 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-02 - **Last Updated**: 2026-03-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SecureTalk: 基于可搜索加密的端到端隐私聊天系统 本项目是一个基于密码学原理与软件工程思想构建的隐私聊天系统。系统采用 C/S 架构,实现了**端到端加密 (E2EE)** 与 **对称可搜索加密 (SSE)**。即使服务器被攻破,攻击者也无法获取任何明文聊天记录或用户的搜索意图。 本系统将密码学逻辑与业务逻辑解耦(见 `crypto_core.py`),核心原语如下: 1. **密钥派生 (Key Derivation)** 使用 PBKDF2 从用户口令中安全派生出独立的加密密钥 $K_{enc}$ 和索引密钥 $K_{idx}$。 2. **端到端加密 (E2EE)** 采用带有认证加密 (AEAD) 特性的 **AES-256-GCM** 算法,保证消息的机密性与完整性。 加密过程:$C = \text{AES-GCM}(K_{enc}, \text{Nonce}, M)$ 3. **可搜索加密 (Searchable Encryption)** 构建安全倒排索引。客户端通过提取关键字 $w$,利用 HMAC-SHA256 生成搜索陷门 (Trapdoor)。 陷门生成:$T = \text{HMAC}(K_{idx}, w)$ 服务器仅进行 $T$ 的密文匹配,实现“盲搜”。 ## 软件工程设计 * **不可信服务器模型 (Untrusted Server)**:`server.py` 仅负责套接字通信、路由转发与密文持久化,不包含任何密码学依赖。 * **低耦合**:客户端 UI 交互、网络异步接收与密码引擎分离,便于后续更换加密算法(如替换为 ChaCha20)。 ### 1. 安装依赖 ```bash pip install cryptography