LavanyaKatna/Blind-Sight-Privacy-Preserving-Medical-Analytics-using-Hybrid-Homomorphic-Encryption-

GitHub: LavanyaKatna/Blind-Sight-Privacy-Preserving-Medical-Analytics-using-Hybrid-Homomorphic-Encryption-

一个使用混合同态加密的隐私保护心脏病预测系统,实现加密数据的实时预测与安全邮件通知。

Stars: 0 | Forks: 0

# Blind-Sight: 安全医疗分析 使用混合同态加密的隐私保护心脏病预测系统。 ## 📧 实时邮件通知 **✅ 已实现:** 当医生完成心脏病预测后,系统会自动向患者发送邮件通知。 ### 邮件功能: - ✅ **实时投递** - 预测完成后立即发送邮件 - ✅ **专业 HTML 模板** - 美观、响应式的邮件设计 - ✅ **安全通知** - 包含预测结果和建议 - ✅ **SMTP 配置** - 支持 Gmail 及其他 SMTP 服务器 ### 设置邮件(Gmail 示例): 1. **启用双重验证** 于您的 Gmail 账户 2. **生成应用密码:** - 进入 Google 账号 → 安全 → 两步验证 → 应用密码 - 为“邮件”生成密码 3. **在 `config.py` 中配置:** SMTP_USERNAME = 'your-email@gmail.com' SMTP_PASSWORD = 'your-16-char-app-password' 或使用环境变量: ``` $env:SMTP_USERNAME="your-email@gmail.com" $env:SMTP_PASSWORD="your-app-password" ``` ## 🔐 安全实时预测请求 **✅ 已实现:** 本系统实现了安全的实时预测,支持按需计算: ### 工作原理: 1. **医生点击“预测”** → 触发实时预测请求 2. **系统加载加密的患者数据** → 从数据库检索加密的密文 3. **解密患者详情** → 将密文转换为明文(仅用于计算) 4. **特征拆分:** - **非敏感特征**(前 8 个):`age, sex, cp, trestbps, chol, fbs, restecg, thalach` → **明文机器学习计算**(高效) - **敏感特征**(后 5 个):`exang, oldpeak, slope, ca, thal` → **安全 HE/混合计算**(加密状态) 5. **合并结果** → 返回预测分数 6. **按需执行** → 计算在实时进行,**非预计算** ### 安全特性: - ✅ 加密数据存储(AES) - ✅ 实时按需预测 - ✅ 混合计算(明文 + 加密) - ✅ 无预计算 —— 预测在请求时生成 ## 🚀 快速启动命令 ### 步骤 1:安装依赖 ``` # 导航到项目目录 cd C:\Users\user\Desktop\BlindSight # 安装所有必需的软件包 pip install -r requirements.txt ``` **注意:** 如果在 Windows 上 `pyfhel` 安装失败(主要适用于 Linux),系统将自动使用安全降级模式。 ### 步骤 2:运行应用 ``` # 运行 Flask 应用程序 python app.py ``` ### 步骤 3:访问应用 打开浏览器并访问: ``` http://127.0.0.1:5000 ``` 或 ``` http://localhost:5000 ``` ## 📋 完整安装说明 ### 针对 Windows(PowerShell): 1. **打开 PowerShell**,进入项目目录 2. **创建虚拟环境(推荐):** ``` python -m venv venv .\venv\Scripts\Activate.ps1 ``` 3. **安装依赖:** ``` pip install -r requirements.txt ``` 4. **运行应用:** ``` python app.py ``` 5. **浏览器访问:** - 访问:`http://127.0.0.1:5000` - 将自动跳转到登录页面 ## 🔐 首次设置 ### 注册医生: 1. 访问 `/register` 或点击登录页面的“在此注册” 2. 选择“医生”选项 3. 填写:全名、用户名、邮箱(可选)、密码 4. 点击“注册” 5. 使用凭据登录 ### 注册患者: 1. 访问 `/register` 2. 选择“患者”选项 3. 填写您的详细信息 4. 点击“注册” 5. 使用凭据登录 ## 📝 使用流程 ### 患者流程: 1. 以患者身份登录 2. 点击“进入医疗详情” 3. 填写 13 个医疗特征 4. 提交(数据加密并存储) ### 医生流程: 1. 以医生身份登录 2. 查看所有患者列表 3. 点击任意患者的“查看与预测” 4. 查看加密的患者数据 5. 点击“预测心脏病” 6. 查看预测结果 ## 🛠️ 故障排除 ### 如果遇到“模块未找到”错误: ``` pip install flask numpy pandas scikit-learn cryptography ``` ### 如果 pyfhel 安装失败: - 这在 Windows 上是正常的 - 系统将自动使用安全降级模式 - 除完整的同态加密外,所有功能均可使用(使用降级模式) ### 如果端口 5000 已被占用: 编辑 `app.py` 并修改: ``` app.run(debug=True, port=5001) # Use different port ``` ## 📦 项目结构 ``` BlindSight/ ├── app.py # Main Flask application ├── requirements.txt # Python dependencies ├── database/ │ └── db.py # Database functions ├── encryption/ │ ├── aes_utils.py # AES encryption utilities │ └── he_utils.py # Homomorphic encryption ├── ml/ │ └── model.py # ML model and preprocessing ├── templates/ # HTML templates └── static/ # CSS and static files ``` ## 🔒 安全特性 - ✅ 密码哈希(SHA256) - ✅ 会话管理 - ✅ 基于角色的访问控制 - ✅ 患者数据的 AES 加密 - ✅ 预测的混合同态加密 - ✅ 加密数据库存储 ## 📞 支持 如有问题或疑问,请查看各模块中的代码注释或文档。
标签:AES, Gmail配置, HE, HTML邮件模板, Hybrid Homomorphic Encryption, ON-DEMAND计算, SMTP, 临床决策支持, 健康预测, 加密数据库, 医学机器学习, 医疗分析, 医疗数据安全, 同态加密, 后端开发, 安全计算, 安全通知, 实时计算, 实时通知, 实时预测, 应用密码, 心脏病预测, 敏感特征, 数据加密, 机器学习安全部署, 混合加密, 特征分割, 病人数据保护, 网络安全, 蓝队防御, 逆向工具, 邮件提醒, 邮件通知, 隐私保护, 非敏感特征, 预测系统