888 888 8888888 8888888b. 8888888888 d8888 .d8888b. 8888888888 888b d888
888 888 888 888 "Y88b 888 d88888 d88P Y88b 888 8888b d8888
888 888 888 888 888 888 d88P888 888 888 888 88888b.d88888
8888888888 888 888 888 8888888 d88P 888 888 8888888 888Y88888P888
888 888 888 888 888 888 d88P 888 888 88888 888 888 Y888P 888
888 888 888 888 888 888 d88P 888 888 888 888 888 Y8P 888
888 888 888 888 .d88P 888 d8888888888 Y88b d88P 888 888 " 888
888 888 8888888 8888888P" 8888888888 d88P 888 "Y8888P88 8888888888 888 888
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▄ ____ ______ ____ ▄ ▄
█ / / \ \ HIDEAGEM STEGANOGRAPHY PLATFORM █ . . █
█ /___ /________\ ___\ █ .-. .-. '.___.' █
█ \ \ / / ASTRAL SOFTWARE FROM THE FUTURE █ (_ \ / _) .' `. █
█ \ \ / / █ | : : █
█ \ \ / / COPYRIGHT 2024 WWW.CYBERGEM.NET █ | : : █
█ \ \ / / █ | `.___.' █
█ \/ LET'S DO COMPUTER STUFF ALL DAY █ █
█ █ █
█ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ █ ._____. .--. █
█ MMMMMSSSSSSSSSSSSSSSSSSSSSSSSSSddMMMMMSSSSSSMSSSSSSSSSS; █ | | / _`. █
█ MMMMSSSSSSSSSSSSSSSSSMSSSSS; ;SSdMMMMSSSSSSMMSSSSSSSSSS, █ | | (_) ( ) █
█ MMSSSSSSSMSSSSSMSSSSMMMSS."-.-":MMMMMSSSSMMMMSSMSSSMMSS █ _|_|_ '. / █
█ MSSSSSSSMSSSSMMMSSMMMPTMM;"-/\":MMM^" MMMSSMMMSSMM █ ' ' `--' █
█ SSSSSSSMMSSMMMMMMMMMP-.MMM : ;.;P dMMMMMMMMMP' █ █
█ SSMSSSMMMSMMMMMMMMMP :M;`: ;.'+"""t+dMMMMMMMMMMP █ _ █
█ MMMSSMMMMMMMMPTMMMM"""":P `.\// ' ""^^MMMMMMMP' █ .--. ' `:--.--. █
█ MMMMMMPTMMMMP="TMMMsg, \/ db`c" dMMMMMP" █ ( ) | | |_ █
█ MMMMMM TMMM d$$$b ^ /T$; ;-/TMMMP' Let's █ (_) / | | | ) █
█ MMMMM; .^`M; d$P^T$$b : $$ ::MMMMP hide some █ (_, | | |/ █
█ MMMMMM .-+d$$ $$$; ;. $$ ;;MMMP, Gems ! █ (J █
█ MMMMMMb _d$$$ $$$$ :$$$; :MMMMMMp. █ █
█ MMMMMM" " T$$$._.$$$; T$P.'MMMSSSSSSb █ _ █
█ MMM`TMb -")T$$$$$$P' `._ "" :MMSSSMMP' █ __ ' `:--.--. █
█ MMM / \ ' "T$$P" / :MMMMMMP' █ ___.' '.___ | | | █
█ MMSb`. ; " :MMMMMM' █ ____________ | | | █
█ MMSSb_lSSSb. .___. MMMMMP ,d88b.d88b, █ | | | .., █
█ MMMMSSSSSSSSb. .MMMMMM. 88888888888 █ `--': █
█ MMMMMMMMMMMSSSb .dMMMMMMMP `Y8888888Y' █ █
█ MMMMMMMMMMMMMSS; .dMMMMMMMMMM' `Y888Y' █ ... _ █
█ MMMMGEMMAMMMMb`;"-. .dMMMMMMMMMMP' `Y' █ .': \ /_) █
█ MMMMMMMMMMMMMMb: `'--.___.dMMMMMMMMMPP' █ .' \ /`. █
█ MMMMMMMMMMMMMMMb; dMMMMMMMMPPR █ `..' \ / ; █
█ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ █ .'`. \/ __.' █
█ █ █
█ ░░░░░░░░ ▒▒▒▒▒▒▒▒ ░░░░░░░░ █ █
█ ▓▓▓░░ ████████ ███▒▒ ▓▓▓▓▓▓▓▓ ▓▓▓░░ ████████ █ `-. .-' █
█ ▒▒▒▓▓ ░░ ██ ▒▒▒▒▒▒░░░██ ▒▒ ▓▓ ░░░░░░▒▒▒▓▓ ░░ ██+§¥µ██ █ .-"-._.-"-._.- : : █
█ ███▒▒ ▓▓ ░░░██ ▒▒ ▓▓▓░░ ██ ▒▒▒▓▓ ░░ ███▒▒ ▓▓ ░░░██$@¢¶██ █ .-"-._.-"-._.- --:--:-- █
█ ██ ▒▒ ▓▓▓▓▓▓███▒▒ ▓▓ ░░ ██████▓▓▓░░ ██ ▒▒ ▓▓▓▓▓▓████████ █ : : █
█ ██ ▒▒▒▒▒▒▒▒ ▒▒▒▓▓ ░░░░░░░░ ░░░██ ▒▒▒▒▒▒▒▒ █ .-' `-. █
█ ████████ ▓▓▓▓▓▓▓▓ ████████ CYBERGEM █ █
▀ ▀ ▀
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
HIDEAGEM 是一个实验性工具,用于在图像中隐藏文件。
它使用 C++ 编写,可通过 Python CLI 以及在 ComfyUI for Stable Diffusion 中的自定义节点使用。
警告: HIDEAGEM 是实验性软件!它可能存在未知缺陷或漏洞。使用风险自负!
警告: HIDEAGEM 尚未经过研究以确定其对隐写分析(例如,计算图像中隐藏信息存在概率的工具)的抵抗力。因此,请假设攻击者有可能检测到图像是否“可疑”。
关于 HIDEAGEM 的算法和设计的深入解释,请参阅此文章。
开发更新和支持可在 Discord 上获取。
现在可以在浏览器中使用 HIDEAGEM,访问 WWW.HIDEAGEM.COM !
隐写术是关于隐藏信息的存在;它旨在掩盖通信的存在。
HIDEAGEM 旨在成为一个下一代隐写平台,结合现代密码学和隐写技术,以在载体介质中实现快速、安全和稳健的信息隐藏。
除了追求隐写术的传统目标(隐蔽通信)之外,我们还在探索将信息比特隐藏在大比特集合中的其他安全属性。
HIDEAGEM 设计为可扩展和自适应,是一个平台,可以从中启动各种隐写算法和技术,以在多种载体介质类型中隐藏数据。
随着时间的推移,可以将新的隐写算法集成到程序中,以支持更多文件类型并利用新技术。
通用功能列表及潜在的未来发展方向。
当前功能 | 未来发展
-------------------------------|---------------------------------------------------
Unicode 密码 | 密钥文件
防篡改 Gem 数据 | 移动应用
512 位对称密钥 | 更多隐写算法
安全内存处理 | 更多载体介质类型
每个密码多个文件 | 跨图像分割文件
每个图像多个密码 | Web 应用(本地执行)
离线暴力破解防护 | 浏览器扩展(例如,上下文菜单提取 Gem)
在密码中使用你想要的任何疯狂 Unicode 字符:你甚至可以使用你最喜欢的表情符号;没人能阻止你!🐬
注意:以下信息仅适用于 HIDEAGEM 当前的空间域算法,这些算法仅兼容无损图像格式,如 PNG、TIFF 和 BMP。
如果成功提取出一个 Gem 并且 Gem 哈希正确,那么几乎可以保证它与隐藏在图像中的 Gem 逐位相同。
如果 Gem 像素(隐藏了 Gem 数据的像素)中的哪怕一个比特被损坏,Gem 提取都将失败。
防篡改以脆弱性为代价:对 Gem 图像的微小更改可能导致数据无法恢复。它们很脆弱,如果调整大小、裁剪或更改包含 Gem 数据的像素,就可能被破坏。
HIDEAGEM 使用一个实验性的对称密钥系统,旨在与其隐写算法协同工作。
512 位密钥通过 libsodium 的 Argon2id 密码哈希函数和用户提供的密码生成。
选择 Argon2id 是因为它提供了可配置的暴力破解防护参数(例如内存需求),并且能够抵抗 GPU 暴力破解攻击。
Gem 数据使用从 512 位密钥派生的 256 位密钥进行加密,然后使用 512 位密钥隐藏在载体介质中。必须首先使用 512 位密钥提取整个加密的 Gem,然后才能使用 256 位密钥解密其任何比特。
你可以在此处了解有关密钥系统的更多信息此处。
注意:密钥的最终强度仅取决于密码的强度。要利用全部 512 位密钥,
需要一个非常长/随机的密码。
要使用 ASCII 字符集在密码中实现 512 位熵,
密码长度必须 >= ~74 个字符,并且每个字符完全随机。
为了尝试缓解潜在的侧信道攻击,使用了 libsodium 的低级内存管理函数来安全擦除嵌入/提取过程中生成的密钥、Gem 文件和其他敏感数据的内存。
它还用于防止敏感数据(如密钥)被交换到磁盘。
你可以将图像视为加密的一次性写入文件夹或归档。
你可以使用单个密码在图像中隐藏任意数量的文件,仅受图像的嵌入容量限制。当输入正确密码时,它们将同时被提取出来。
Gem Stream 的开销为 52 字节,每个 Gem File 的开销为 8 字节。
HIDEAGEM 尝试在加密之前使用 miniz (zlib) 压缩所有 Gem File,这有时可以显著减少嵌入的字节数。
每个 Gem File 的最大文件大小以及每个 Ocean 可嵌入的最大字节数为 16 EB(艾字节)。
HIDEAGEM 目前支持使用多个密码和单个图像隐藏多组文件,但尚未开发用于使用此功能的 UI。
其工作方式也有点特殊,是分层的:要访问下一组文件,你需要该文件集密码之前的所有密码。
因此,请将此视为一个隐藏功能,目前可能并无实际用途。
Argon2id 密码哈希函数用于使用用户提供的密码生成密钥。
主密钥是使用 INTERACTIVE 密钥参数生成的,与使用常规哈希函数生成密钥相比,这提供了显著的密码暴力破解防护能力。
HIDEAGEM 使用 C++ 编写,可通过一个微小的 API 在 Python 中使用。
ComfyUI Stable Diffusion 平台的自定义节点可用,使其易于集成到 2D 生成式 AI 工作流中。
使用了以下外部库:
所有密码学操作,例如 Gem 数据加密、哈希和随机数生成,均使用 libsodium 的函数完成。
密钥生成: BLAKE2b 哈希函数和 Argon2id 密码哈希算法
Gem 数据加密: XChaCha20-Poly1305 对称加密算法(256 位密钥 + 192 位 nonce)
CSPRNG 实现: BLAKE2b 哈希和 XChaCha20 流密码(256 位种子 + 192 位 nonce)