简化设定
比如给出一个 100x1024 字节长度的字符串
已知其中每 100 个字节中的前 96 个字节为有效数据负荷,最后 4 个字节为预留可以随意使用无数据负荷的字节。
我们需要在借助此无负荷部分,此 100k 字节长的字符串中,混入一个“20 字节长的隐匿数据”
并同时
1 、在数据以 100 字节为边界,拆分为 1024 组百长度的字符串;且取出 1024 组中的任意多组后,能尽最大可能量地恢复出“20 字节长的隐匿数据”
2 、尽量减小被隐匿加入的数据,在组间的可简单文本观测重复性,减少隐匿数据的被定位发现的可能
3 、研究当预留字节数由 4 改为 2 时的算法影响;以及取出组数逐步减小时,对可恢复性的影响
这是数据隐写?但可能又进一步地涉及到数据抽样、有损的情况。在文本中的隐写,与常见的图像音频中的隐写术也有很大不同。
应该去看哪些方向的文章?
1
liuxu 2021-06-25 10:52:33 +08:00
。。。。
我来给楼主重新理一下需求。。 给定 100 字节空间,每 4 个字节为一组,将 20 字节分组随机存储到空间后,如何保证占用最小空间并顺序取出不可读,且随机取出部分数据后,根据存储算法能最大恢复这 20 字节源数据 改成 2 字节为一组存储,对比和 4 个字节为一组有什么区别 给出以上算法及解释 建议楼主去看看加密解密中的软件加壳混淆和脱壳技术 |
2
misdake 2021-06-25 11:08:09 +08:00
对于“取出 1024 组中的任意多组”这件事,是否知道取出的是第几组这个信息?
|
3
RecursiveG 2021-06-25 11:11:00 +08:00
你有两个问题,“隐藏数据使得不可分辨”是隐写。“抽样后恢复数据”是错误纠正码。
有一个 20B 的 消息,用某种 Error Correction Code 编码编码到 4K,再用某种隐写技术混入你的字符串里。 |