Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
gr-PHYSEC — 用于物理层安全的GNU Radio模块,采用深度学习信道指纹识别、特征量化以及从SDR IQ样本生成SHA3-512密钥。 | Kitploit
工具/GitHubGitHub/c2a2-at-florida-atlantic-university/gr-physec
加密/解密工具无线安全密码学硬件与物联网安全机器学习
GitHubc2a2-at-florida-atlantic-university/gr-physec

gr-PHYSEC

用于物理层安全的GNU Radio模块,采用深度学习信道指纹识别、特征量化以及从SDR IQ样本生成SHA3-512密钥。

查看仓库

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
215个月前尚未审核

gr-PHYSEC:用于物理层安全的 GNU Radio 模块

该 GNU Radio 模块利用深度学习模型,为物理层安全应用提供信道指纹识别能力。

特性

  • 信道指纹识别:从 IQ 样本中提取独特的信道特征
  • 深度学习集成:使用训练好的模型(QExtractor.h5)进行特征提取
  • 特征量化:将提取的特征转换为二进制值
  • 隐私放大:应用加密哈希(SHA3-512)进行密钥生成
  • 实时处理:从 SDR 设备实时处理 IQ 样本
  • 多模型支持:同时支持 TripletNet 和 QuadrupletNet 架构

要求

  • GNU Radio 3.10+
  • Python 3.8+
  • TensorFlow 2.x
  • NumPy
  • Hashlib(内置)

安装

1. 克隆仓库

root@kitploit:~
git clone <your-repo-url>/gr-PHYSEC.git
cd gr-PHYSEC

2. 创建构建目录

root@kitploit:~
mkdir build
cd build

3. 配置并构建

root@kitploit:~
cmake ..
make -j$(nproc)

4. 安装

root@kitploit:~
sudo make install
sudo ldconfig

5. 验证安装

root@kitploit:~
gnuradio-companion

你应该会看到一个新的类别 [PHYSEC],其中包含 PHYSEC Fingerprint Block。

用法

GNU Radio Companion (GRC)

  1. 打开 GNU Radio Companion
  2. 查找 [PHYSEC] 类别
  3. 拖放 PHYSEC Fingerprint Block
  4. 配置参数:
    • Model Path:你的 QExtractor.h5 文件路径
    • Model Type:在 "quadruplet" 或 "triplet" 之间选择
    • Spectrogram Size:FFT 大小(默认:512)
    • Sample Rate:SDR 采样率,单位为 Hz
    • Center Frequency:SDR 中心频率,单位为 Hz
    • Key Length:所需密钥长度,单位为比特

Python 脚本

root@kitploit:~
from gnuradio import gr
from gnuradio import PHYSEC

# Create decoupled PHYSEC blocks
spectrogram = PHYSEC.spectrogram_block(
    vector_size=512,
    sample_rate=1e6,
    center_freq=2.4e9
)

feature_extractor = PHYSEC.feature_extraction_block(
    model_path="/path/to/QExtractor.onnx"
)

feature_quantizer = PHYSEC.feature_quantization_block(
    threshold_type="mean"
)

parity_generator = PHYSEC.parity_generation_block(
    key_length=512
)

reconciler = PHYSEC.reconciliation_block(
    key_length=512
)

privacy_amplifier = PHYSEC.privacy_amplification_block()

示例流图

参见 examples/decoupled_physic_example.grc,了解使用解耦 PHYSEC 模块的完整示例流图。

模块参数

频谱图模块

特征提取模块

参数类型默认值描述
model_pathstring-ONNX 模型文件路径

特征量化模块

参数类型默认值描述
threshold_typestring"mean"阈值方法:"mean"、"median" 或 "zero"

奇偶校验生成模块

参数类型默认值描述
key_lengthint512用于奇偶校验生成的二进制密钥长度

协调模块

参数类型默认值描述
key_lengthint512用于协调的二进制密钥长度

隐私放大模块

参数类型默认值描述
无需参数--应用 SHA3-512 哈希

输入/输出

频谱图模块

  • 输入:来自 SDR 的复数 IQ 样本
  • 输出:频谱图数据(204×31 个浮点值)

特征提取模块

  • 输入:频谱图数据(204×31 个浮点值)
  • 输出:特征向量(512 个浮点值)

特征量化模块

  • 输入:特征向量(512 个浮点值)
  • 输出:二进制特征(512 个 uint8 值)

奇偶校验生成模块

  • 输入:二进制特征(512 个 uint8 值)
  • 输出:奇偶校验位(字符串)

协调模块

  • 输入:二进制特征 + 奇偶校验位
  • 输出:协调后的二进制密钥(字符串)

隐私放大模块

  • 输入:二进制特征(512 个 uint8 值)
  • 输出:最终加密密钥(128 字节)

消息格式

指纹输出消息包含:

root@kitploit:~
{
    "fingerprint": "generated_hash_string",
    "block_count": 123,
    "sample_rate": 1000000.0,
    "center_freq": 2400000000.0,
    "spectrogram_size": 512
}

处理流水线

  1. IQ 样本采集:使用 Stream to Vector 缓冲传入的 IQ 样本
  2. 频谱图创建:使用 STFT、RMS 归一化和频率裁剪将 IQ 样本转换为频谱图
  3. 特征提取:使用 ONNX 模型提取信道特征
  4. 特征量化:使用可配置阈值将特征转换为二进制值
  5. 奇偶校验生成:生成 Reed-Solomon 奇偶校验位以进行纠错
  6. 密钥协调:使用奇偶校验位纠正错误
  7. 隐私放大:应用 SHA3-512 哈希以生成最终密钥
  8. 输出:模块之间基于流的通信

模型要求

你的 ONNX 模型应:

  • 接受输入形状:(batch, 204, 31) 的频谱图数据
  • 输出长度为 512 的特征向量
  • 与 ONNX Runtime 兼容
  • 支持 float32 输入/输出

故障排除

常见问题

  1. 找不到模型:确保 QExtractor.h5 的路径正确
  2. TensorFlow 错误:验证 TensorFlow 安装和兼容性
  3. 内存问题:降低 spectrogram_size 以减少内存使用
  4. 性能:如果可用,使用 GPU 加速

调试输出

该模块提供大量调试信息:

  • 处理状态的控制台输出
  • 中间结果的消息端口
  • 带信息性消息的错误处理

开发

添加新功能

  1. 修改相应的专用模块(例如 spectrogram_block.py)
  2. 更新 grc/ 中对应的 GRC 模块定义
  3. 重新构建模块
  4. 使用示例进行测试

测试

运行示例脚本:

root@kitploit:~
cd examples
python3 fingerprint_example.py

许可证

本项目采用 GPL-3.0-or-later 许可证。

贡献

  1. Fork 仓库
  2. 创建功能分支
  3. 进行修改
  4. 如适用,添加测试
  5. 提交 pull request

支持

如有问题和疑问:

  1. 查看故障排除部分
  2. 查看示例文件
  3. 在仓库中提交 issue
  4. 联系开发团队

致谢

  • 基于 PHYSEC 信道指纹识别研究
  • 使用 TensorFlow 进行深度学习推理
  • 与 GNU Radio 集成以进行 SDR 处理
下载工具
参数类型默认值描述
vector_sizeint512用于创建频谱图的 FFT 大小
sample_ratefloat1e6SDR 采样率,单位为 Hz
center_freqfloat2.4e9SDR 中心频率,单位为 Hz