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, 临床决策支持, 健康预测, 加密数据库, 医学机器学习, 医疗分析, 医疗数据安全, 同态加密, 后端开发, 安全计算, 安全通知, 实时计算, 实时通知, 实时预测, 应用密码, 心脏病预测, 敏感特征, 数据加密, 机器学习安全部署, 混合加密, 特征分割, 病人数据保护, 网络安全, 蓝队防御, 逆向工具, 邮件提醒, 邮件通知, 隐私保护, 非敏感特征, 预测系统