标签: steganography

更新PDF以包含加密的,隐藏的唯一标识符?

背景

这个想法是这样的:

  • 人提供在线图书购买的联系信息
  • Book,作为PDF,标有唯一的哈希
  • 人下载书
  • PDF密码很容易规避或分享

理想的过程如下:

  1. 根据联系信息生成哈希
  2. 在数据库中存储联系信息和哈希
  3. 获取书锁
  4. 使用哈希文本更新"包含"文件
  5. 以PDF格式生成图书(使用pdflatex)
  6. 将哈希应用于预订
  7. 发行书锁
  8. 发送带书籍下载链接的电子邮件

技术

可以使用以下技术(其他编程语言也可以,但库可能仅限于主机提供的那些):

  • C,Java,PHP
  • LaTeX文件
  • PDF文件
  • Linux的

我应该调查哪些编程技术(或开源软件):

  • 将唯一的哈希(或其他标记)嵌入到PDF中
  • 创建一个抗共谋攻击标记
  • 开发一个非脆弱的(例如,PDF -> EPS -> PDF仍然包含标记)解决方案

研究

我看过以下几种可能性:

  • 隐写术
  • 自然语言处理(NLP)
  • 将PDF中的空白页面转换为图像; 标记这些图像; 重新组装PDF
  • LaTeX水印包
  • ImageMagick的

问题

我研究过的可能解决方案存在以下问题:

  • 隐写术.(a)需要图像的主副本,这些副本被转换为EPS,这是CPU密集型和耗时的; (b)水印是否存在PDF -> EPS -> PDF,或其他类型的转换; (c)大多数图像是图画或屏幕截图,而不是PNG格式的照片.
  • 胶乳.创建图像缓存; 任何隐写解决方案都必须以某种方式拦截该过程.
  • NLP.介绍语法错误; 可以改变技术词汇的含义.
  • 空白页.马上怀疑; 很容易替换可疑的空白页面.
  • 水印套餐.绘制可见标记.
  • ImageMagick的.绘制可见标记.

还有哪些其他解决方案?

相关链接

谢谢!

watermark steganography pdflatex

9
推荐指数
1
解决办法
3765
查看次数

生成一个包含160位可恢复信息的伪诗

我有160位随机数据​​.

只是为了好玩,我想生成一个英文伪诗来"存储"这些信息.我希望能够从这首诗中恢复这些信息.(对于任何一种诗歌,这里的"诗"是一个含糊的术语.)

注意:这不是一个安全问题,我不在乎别人是否能够恢复信息甚至检测到它是否存在.

更好的诗的标准:

  • 更好的aestetics
  • 更好的押韵和脚
  • 唯一性
  • 更短的长度

我要说的是,可接受的诗不超过三行每节四行.(但另一种,既定的诗歌形式,如十四行诗也很好.)

我喜欢这个想法,但是,我担心,我对如何使用英语计算机生成的诗歌完全无能为力.(当我年轻的时候,我为俄罗斯编程了,但看起来这种体验对我来说无济于事.)

那么,有什么线索吗?

注意:我已经问了类似的问题.我想试试这两种方法.请注意好的诗歌标准与并行问题中的好词组有何不同.请记住,这只是"为了好玩".

另外,我必须注意到这一点:在某些相关问题上有一个RFC 1605.但它没有提出任何实施细节,所以对我来说这对我没有用,对不起.<G>

nlp steganography

9
推荐指数
1
解决办法
345
查看次数

是否有用于隐写术的Java库?

通过库我的意思是使用就绪.jar分布.

图像隐写就足够了.使用JPEG,PNG和BMP也足够了.

谷歌没有产生可用的结果 - 主要是解释和指南,但没有图书馆.

java steganography

8
推荐指数
1
解决办法
5638
查看次数

如何在PHP中实现隐写术

在某个地方我发现了隐写术......在另一个信息中存储或隐藏信息的方式......有时某些图像也被用来隐藏信息..我可以得到一个例子或任何进一步知道如何实现这一点的事情. ..或者如果可以的话,可以在php中使用它

php steganography

7
推荐指数
2
解决办法
6768
查看次数

Python中的隐写术 - Stepic

使用Stepic 0.3.我正在执行命令将消息编码为JPG图像.我使用的代码如下:

from PIL import Image
import stepic

im = Image.open ("tester.jpg")
im2 = stepic.encode(im, '0987639987069730979076409784690y7689734')
im2.save('stegtest.jpg')
im1 = Image.open('stegtest.jpg')
s = stepic.decode(im1) 
print s
data = s.decode() 
print data
Run Code Online (Sandbox Code Playgroud)

然而,打印S和打印数据给我一个值:6`或其他一些奇怪的字符.我想我正在使用它们应该使用的功能,为什么我没有得到正确的结果?

python steganography stepic

7
推荐指数
1
解决办法
5755
查看次数

结合semacodes和隐写术?

更新 我很久以前就问过这个问题了,如果我提出这个问题,我是否感兴趣?

我甚至不知道这种算法是否有一个术语,我想如果还没有人发明它的话就不会有.然而,它也使谷歌搜索有点困难.有谁知道这个算法/​​原理是否有一个术语呢?


这是我一直在考虑的一个想法,但我不太清楚如何解决它.我想知道是否存在这样的解决方案,或者你们是否知道如何实现这一点.

隐写术

隐写术基本上是隐藏信息的艺术.在现代,我们通过例如修改图像中的最低有效位来进行数字化,如下所示.因此,对于每个像素和该像素的每个颜色分量,我们可能能够隐藏一个或两个字节.

这种交替不是肉眼可见的,但是分析最不重要的比特可能揭示暴露隐藏信息的存在和可能内容的模式.为了解决这个问题,我们只需在将消息嵌入图像之前加密消息,这样可以保证消息的安全,并有助于防止发现隐藏消息的存在.

因此,原则上,隐写术提供以下内容:

  • 隐藏任何类型的媒体数据中的加密消息.(图像,音乐,视频等)
  • 在没有正确密钥的情况下完全否定隐藏消息的存在.
  • 使用正确的密钥提取隐藏的消息.

http://www.cs.vu.nl/~ast/books/mos2/zebras.jpg

Semacodes

Semacodes是一种以可视化表示方式对数据进行编码的方式,可以轻松地进行打印,复制和扫描.下面显示的数据矩阵是包含着名的Lorem Ipsum文本的semacode示例.这本质上是一个具有更高容量的二维条码,通常是条形码.用于生成semacodes的程序很容易获得,并且同样适用于阅读它们的软件,特别是对于手机.Semacodes通常包含纠错码,通常非常强大,并且可以在非常损坏的条件下读取.

因此,semacodes具有以下属性:

  • 可以打印和复制的数据编码.
  • 即使在受损(脏)的情况下也可以进行扫描和解释,并且通常是非常强大的编码.

结合它

所以我的想法是创建一些将这两者结合起来的东西,以及所有组合属性.这意味着它必须:

  • 在任何媒体中嵌入加密邮件,可能是扫描图像.
  • 即使图像被打印和扫描,甚至部分损坏,该消息也应该是可提取的.
  • 如果没有用于加密的密钥,则无法检测到嵌入消息的存在.

那么,首先我想知道是否有任何解决方案,算法或研究?其次,我想听听有关如何做到这一点的任何想法/想法?

我真的希望能够很好地讨论实现这样的事情的可能性和可行性,我期待着阅读你的答案.

更新

感谢您对此的所有良好投入.当我有更多时间时,我可能会更多地研究这个想法.我确信它一定是可能的.想想在音乐和电影中嵌入水印的研究.

algorithm encoding persistence steganography barcode

6
推荐指数
1
解决办法
1502
查看次数

C中的隐写术

尝试在PPM图像上进行基本的隐写术.

我已完成基本算法.读入文件,检查标题以P6开头,获取图像的宽度和高度,以及像素数据.

我需要总共有四种方法:ReadPPM,WritePPM,WriteMsg和ReadMsg.

我有ReadImg和WriteImg方法,但我遇到的是我的WriteMsg方法.这是基本的隐写术,只是将字符串的每个位写入每个字节的最后一位.假设前8个字节包含被隐藏的字符串的大小,然后每个字节开始隐藏的消息.

我的想法是创建一个大型数组,其中包含字符串大小的二进制代码,然后是字符串本身的二进制代码.我只想弄清楚如何将该数组添加到图像中的每个字节.

任何帮助深表感谢.这是我目前的代码:

#include<stdio.h>
#include<stdlib.h>

typedef struct {
     unsigned char red,green,blue;
} PPMPixel;

typedef struct {
     int x, y;
     PPMPixel *data;
} PPMImage;

#define CREATOR "RPFELGUEIRAS"
#define RGB_COMPONENT_COLOR 255

static PPMImage *readPPM(const char *filename)
{
    char buff[16];
    PPMImage *img;
    FILE *fp;
    int c, rgb_comp_color;
    //open PPM file for reading
    fp = fopen(filename, "rb");
    if (!fp) {
         fprintf(stderr, "Unable to open file '%s'\n", filename);
         exit(1);
    }

    //read image format
    if (!fgets(buff, sizeof(buff), fp)) {
         perror(filename);
         exit(1);
    }

    //check …
Run Code Online (Sandbox Code Playgroud)

c steganography pixel image-processing ppm

6
推荐指数
1
解决办法
7548
查看次数

如何将DWT用于LSB替代隐写术

在隐写术中,最低有效位(LSB)替换方法将秘密位嵌入来自覆盖介质的位的位置,例如图像像素.在一些方法中,采用图像的离散小波变换(DWT)并且将秘密比特嵌入DWT系数中,之后使用逆变换来重建隐秘图像.

但是,DWT产生浮点系数,对于LSB替换方法,需要整数值.我读过的大多数论文都使用2D Haar Wavelet,但他们的方法并不清楚.我已经看到变换是根据低通和高通滤波器(浮点变换)定义的,或者是取对值的和与差,或者平均值和平均值之差等.

更明确地,无论是正向变换还是反向变换(但不一定取决于所使用的公式),最终将出现浮点数.我不能将它们用于系数,因为替换不起作用,我不能将它们用于重建的像素,因为图像需要整数值来存储.

例如,让我们考虑一对像素,AB作为一维数组.低频系数由和,即s = A + B高频系数和差值定义,即d = A - B.然后我们可以用B = (s - d) / 2和重建原始像素A = s - B.然而,在任何与系数混合的位之后,s - d可能不再是偶数,并且浮点值将出现用于重建的像素.

对于2D情况,1D变换分别应用于行和列,因此最终会在某处出现4除法.这可能导致具有浮动余数.00,.25,.50和.75的值.我只遇到过一篇解决这个问题的论文.其余的方法都很模糊,我很难复制它们.然而,DWT已经广泛用于图像隐写术.

我的问题是,既然我读过的一些文献没有启发,那怎么可能呢?如何使用引入浮点值的变换,但整个隐写方法需要整数?

steganography dwt haar-wavelet wavelet-transform

6
推荐指数
1
解决办法
1867
查看次数

PDF文件中的隐写术

有人可以告诉我,哪里可以将一些数据隐藏到PDF文件中?换句话说,隐藏在PDF文件中.有没有算法可以做到这一点?

pdf file-format steganography file

6
推荐指数
1
解决办法
1万
查看次数

能够承受 jpeg 压缩的图像隐写术

我正在尝试实现一种隐写算法,其中隐藏的消息可以在 jpeg 压缩中幸存下来。

典型场景如下:

  1. 隐藏图像中的数据
  2. 使用 jpeg 压缩图像
  3. 隐藏数据不会被jpeg压缩破坏并且可以恢复

我尝试使用不同的描述算法但没有成功。例如,我尝试使用简单的重复代码,但 jpeg 压缩破坏了隐藏数据。我还尝试实现以下文章描述的算法: http://nas.takming.edu.tw/chkao/lncs2001.pdf http://www.securiteinfo.com/ebooks/palm/irvine-stega-jpg。 pdf

您知道有什么算法可以真正经受住 jpeg 压缩吗?

compression jpeg steganography

5
推荐指数
1
解决办法
1万
查看次数