192

主题

117

回帖

4万

修为

站长

积分
101355

曼加塔第一期曼加塔第二期

图片加密(隐写)学习日记

图片加密(隐写)学习日记

(主题图不重要,但也算是给非专业人士看一眼结论,就不需要深究了)


写在前面:想具体了解原理的直接问AI吧,会比我总结的罗嗦的多,而且只有计算机逻辑,缺乏业务逻辑。
声明:开源精神,不拉踩,希望一起开拓思路和进步。只有闭源才需要对比说 谁比谁强。

好不容易参透了LBS的原理。跟豆包争论了好久,最终它才承认

假如A图是真实内容,B图是容器,那加密后肯定体积会比A大的,也就是说容器要么很大,要么自适应的根据需要加密的A图来拓展。
结论是LSBB图的3个像素来记录A图1个字节:一定要注意别混淆概念:A图的色彩不是以RGB数据写入到B图的RGB的,而是二进制文件数据写入到B图的RGB像素。
换言之,A可以是图片也可以是其他类型文件,只要是文件就行。而B图本质上只是伪装成图片的文件。

说回体积,LSB只利用了8位的末尾,会浪费7/8。 图片分辨率会加大8/3倍。
如果是用RGBA的PNG,就是容器分辨率是内容的2倍。

如果是我,我不想用LSB,因为它的目的是伪装成一个正常有意义的图像。
若是杂色图,就可以不用浪费7/8的位置,全部用来记录数据。

但最终还是绕不过一个初衷:如果加密解密方式在GitHub开源,只是弯弯绕绕提高技术门槛或者避开图像检测。
如果解密方式是公开的(哪怕有密码也容易爆破),我感觉不如直接改个后缀名算了(Safetensors就行)。如果平台可以假装不知道,那改后缀名也可以假装不知道啊,反正就是为了避免在网页端渲染,到用户手里必然是要解开。

密码我没有详细了解,应该是可以偏移像素吧。其实单纯的偏移像素也是一种加密。
再次重复一个结论:如果不是非要显示一张伪装的正常图为目的,可以显示为杂色图
如果是想严格安全的加密,用AESRSA.  好像zip的密码也是一样的效果。

以上的隐写方式,理论上是不会受到微信或其他软件转存影响的,甚至你把它们做成mov或avi视频帧,之后再导出单帧 仍然可以解密。只是MP4不行。
一般应该是还有另外一种附加文件信息的方式,就类似于你拖一张图片到comfyui就会变成工作流,那种是会受到转存影响(被移除图像以外的数据)

编解码 和 加解密 有一定的相似之处。我更愿意尝试做一个编解码的套件,不仅不增加存储体积,反而希望能够压缩。
我在这卖个关子,原理就不讲了,自己问AI去。。总之一句话:ffmpeg博大精深,我曾经研究和编译了100小时,现在又继续研究复杂命令(不是常规能接触到的参数)。顺便挂个传送门:小小丸工具箱 V1.5.4(原创)https://bbs.monster/forum.php?mod=viewthread&tid=1792

我或许会等在GitHub开源后再介绍原理 或你们自己看代码或问豆包也行,反正我现在就想卖个关子。
我最初其实是想写一个训练集编码器的,因为人脸数据我有50万张,几十个GB,我希望压缩到几百MB。
内存和时间可能经不起。但这种编码方式有点类似于训练模型权重,且信息蒸馏率仅次于模型权重。确实挺类似vae模型的,就是把你所有图片信息反复提炼到单个文件。其实这些玩法也是跟豆包学的。
刚才说如果是海量的图片 可能cpu和内存还有时间都吃不消,但是如果是几百张图片批次还是挺合适的 我觉得,当然,数量如果只有几十张那就跟MP4没区别了我坦诚讲。

再说单帧的话应该压缩率可以优于webp(众所周知webp已经优于jpg了)
好了今天先到着,准备开工


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

© 2001-2026 BBS.Monster