关于SecretPixel
SecretPixel是一款先进的隐写术工具,旨在安全地隐藏图像中的敏感信息。它结合了先进的加密、压缩和种子最低有效位 (LSB) 技术,为隐藏数据提供了一种不可检测的强大解决方案,在数字隐写术领域脱颖而出。
功能介绍
1、高级加密:SecretPixel 使用 AES-256 加密数据,并使用 RSA 公钥加密技术进一步加密会话密钥。这种双层加密确保只有相应 RSA 私钥的持有者才能解密隐藏信息,从而提供高水平的安全性;
2、压缩:加密前,使用 zlib 压缩数据以减小其大小。这不仅使流程更加高效,还有助于最大限度地减少可能被隐写分析工具检测到的模式;
3、种子 LSB 隐写术:该工具采用种子随机数生成器来确定用于嵌入数据的像素位置。这种方法将隐藏位分散到整个图像中,使其更能抵抗 zsteg 等隐写分析工具的检测;
4、文件名存储:SecretPixel 将隐藏数据的原始文件名存储在图像中。这样可以使用原始名称提取文件,从而提供额外的便利并保持文件身份。
5、跨平台兼容性:SecretPixel 用 Python 编写,是跨平台的,可以在安装了 Python 的任何系统上使用;
安全性和隐秘性
SecretPixel 的设计充分考虑了安全性和隐秘性。加密过程可确保隐藏数据的机密性,而数据的压缩和随机分布使隐秘分析工具极难检测到嵌入信息的存在。使用种子随机数生成器增加了额外的安全性,因为如果不知道种子,就无法预测嵌入数据的模式。
支持的图片文件类型
PNG
BMP
TGA
TIFF
工具要求
cryptography>=42.0.2
Pillow>=9.0.1
numpy>=1.21.6
工具安装
由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好最新版本的Python 3环境。
接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:
git clone https://github.com/x011/SecretPixel.git
然后切换到项目目录中,使用pip命令和项目提供的requirements.txt安装该工具所需的其他依赖组件:
cd SecretPixel pip install -r requirements.txt
生成 RSA 密钥
SecretPixel 使用 RSA 公钥加密来保护嵌入的数据。首先,您需要生成一对 RSA 密钥:一个私钥和一个公钥。我们提供了一个辅助 Python 脚本来促进此过程。
密钥生成脚本
generate_keys.py脚本会创建一个 4096 位 RSA 密钥对。要生成密钥,请按以下步骤操作:
1、使用 Python 运行脚本:
python generate_keys.py
2、出现提示时,输入 RSA 私钥的密码。此密码使用 AES-256 加密私钥,增加了一层安全性,确保即使密钥被泄露,如果没有密码也无法使用。选择强大而复杂的密码以获得最大程度的保护。
3、成功完成后,脚本将在当前目录中创建两个文件:
myprivatekey.pem:您的 RSA 私钥,使用您提供的密码加密。
mypublickey.pem:您的 RSA 公钥,可以安全地与他人共享。
工具使用
隐藏文件
下列命令可以将一个文件隐藏在一张图片中:
python secret_pixel.py hide host.png secret.txt mypublickey.pem output.png
该命令使用公钥mypublickey.pem将secret.txt嵌入到了host.png里面,并将隐写图像保存为output.png。
提取文件
下列命令可以从图片中提取一个隐藏文件:
python secret_pixel.py extract carrier.png myprivatekey.pem [extracted.txt]
该命令可以使用私钥myprivatekey.pem从carrier.png中提取隐藏文件。如果没有提供extracted.txt,则提取出的文件会使用原始文件名命名。
许可证协议
本项目的开发与发布遵循GPL-3.0开源许可协议。
项目地址
SecretPixel:【GitHub传送门】