# Public Key Encryption Security Model Experimental Platform2 **Repository Path**: txioa/public-key-encryption-security-model-experimental-platform2 ## Basic Information - **Project Name**: Public Key Encryption Security Model Experimental Platform2 - **Description**: 公钥加密安全模型实验平台 - **Primary Language**: Python - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-03-17 - **Last Updated**: 2026-03-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Public Key Encryption Security Model Experimental Platform2 #### 介绍 公钥加密安全模型实验平台 #### 软件架构 公钥加密安全模型实验平台是一个交互式教学软件,用于演示和实验公钥加密方案的IND-CPA/CCA安全模型。该平台集成了多种Elgamal变种加密算法,支持用户进行方案管理、安全属性测试、攻击模拟和文档生成等功能,为密码学教学提供了可视化的实验环境。 #### 核心功能 1.主界面 直观的图形化操作界面 四大功能模块:开始游戏、安全模型介绍、加密方案介绍、退出 2.安全模型学习 IND-CPA安全模型:选择明文攻击下的不可区分性 IND-CCA安全模型:选择密文攻击下的不可区分性 完整的游戏流程演示(Setup、Challenge、Guess等阶段) 3.加密方案管理 内置方案:Elgamal、Elgamal+、Elgamal++、Elgamal_star、Elgamal_star2 方案查看:详细展示方案算法原理和实现代码 方案添加:支持用户自定义添加新的加密方案 安全属性管理:记录每个方案的IND-CPA/CCA安全属性 4.交互式测试 随机测试:随机选择加密方案进行安全属性判断 指定测试:选择特定方案进行测试 答题系统:判断方案是否满足IND-CPA/CCA安全 5.攻击模拟游戏 IND-CPA攻击游戏:模拟选择明文攻击环境 IND-CCA攻击游戏:模拟选择密文攻击环境(包含午餐攻击和晚餐攻击) 代码编辑器:用户可编写Python代码实现攻击逻辑 多轮攻击:支持设置攻击轮次,统计攻击成功率 安全优势计算:自动计算攻击者的安全优势 6.文档功能 Markdown编辑器:记录攻击方法和实验心得 实时预览:支持Markdown渲染预览 PDF导出:将实验报告导出为PDF格式 数学公式支持:集成MathJax,支持LaTeX数学公式 #### 系统架构 技术栈 1.前端/UI: PyQt5(图形界面)、QWebEngineView(HTML渲染) 2.后端逻辑: Python 3.8+ 3.加密算法: gmpy2、hashlib、Crypto 4.数据存储: SQLite3、JSON、文件系统 5.文档处理: markdown、python-docx 6.数据库: SQLite(方案信息管理) #### 模块设计 1.主控制模块 (main.py):协调各功能模块,处理用户交互 2.数据库模块 (sqllite_db_code.py):管理加密方案信息的CRUD操作 3.Markdown处理模块 (markdownHandler.py):负责Markdown解析和HTML渲染 4.加密方案模块:各个加密算法的具体实现 5.攻击游戏引擎:实现IND-CPA/CCA安全游戏逻辑 #### 环境要求 1.Python 3.8 或更高版本 2.PyQt5 3.gmpy2 4.python-docx 5.markdown #### 开发指南 1.添加新的加密方案 在Encryption_scheme/目录下创建新的Python文件 按照接口规范实现四个核心函数 在Schema_introduction_md/目录下创建对应的Markdown说明文件 在setup_md/目录下创建Setup阶段说明文件 更新security_properties.json文件,添加方案的安全属性 2.扩展攻击游戏 修改AttackGameBaseWindow基类来添加新的游戏功能 在QuestionWindow中添加新的问题类型 扩展数据库结构以支持更多方案属性 3.界面定制 修改main.py中的样式表调整界面风格 扩展MarkdownRenderWindow支持更多Markdown特性 添加新的窗口组件增强用户体验 #### 参与贡献 1.Fork本仓库 2.创建功能分支 (git checkout -b feature/AmazingFeature) 3.提交更改 (git commit -m 'Add some AmazingFeature') 4.推送到分支 (git push origin feature/AmazingFeature) 5.开启Pull Request