5年前,写过一篇伪随机序列的文章 http://www.nsfocus.net/index.php?act=magazine&do=view&mid=990 这篇文章是从TCP/IP协议层一个广为人知的TCP Spoof攻击方法说起,深入地讨论伪随机数PRNG原理及其设计方法。Secure PRNG并不容易设计,Knuth经常教导我们,计算机本身不能产生安全的随机数,当你看到一串3193 337 7511 3013 784 1707 7139 2721 4078 7814 1942 4236 4964 6859 3756 5277 2806 7207 5792 5599 6955 2538 8146 3736 4295 3378 1754 2958 6365 2721 8798 178 1773 5128 1766 5947 6987 874 9263 7792 4746 3576 7238......你觉得非常得意,但这串东西最终会回滚,然后又从3193 337 7511 3013 784 开始重新来过!我不认为这是一个笑话,随机数理论被认为是密码学领域里面的第一要素。为什么我们需要随机数来确保信息的安全性?因为如果没有随机特性,所有的加密算法将变成白痴算法。我举一个很简单的事实:世界上有很多恐怖分子,他们不依赖于BBS/移动电话/电子邮件而能够阻止策划恐怖活动,靠的就是协议。有人认为,密码协议可能会其作用,但拉登很难通过公众渠道向他的部属发送指令,在互联网上,他们以赖于一些信息隐藏技术来传达指令。在这种情况下,密码协议的作用通常不大,因为密码协议是Protect信息本身,它无法Protect密码协议的对等实体。信息隐藏技术通常称之为水印技术,它最终被引用于信息版权领域,它可以防止你盗用别人的图库并用于你的客户,改用途已经被恐怖分子所利用。他们光明正大地在论坛,网站,邮件中抄送一些看上去很普通的图片(或者文本),然而,恐怖分子的行动通过图片放到AOL的贴图区,7月3日,你看到名为littlegirl用户发了一个美女图片,你毫不在意,但图片中嵌入了:"自杀式炸弹将于7月4日袭击美国驻约旦大使馆!"这样的协议非常依赖于恐怖分子如何在图像中嵌入信息(先不讨论密码技术),这里一个非常重要的原则是,每次嵌入信息到图片中,每Byte信息在图像中的位置是随机的(这是一个非常重要的原则!),否则NSA必定可以轻松察觉这些图片的规律。为了抛砖引玉,我提出这样一个小游戏,悬赏破解随机数序列的Cracker。游戏是这样的:我使用Java的随机数PRNG(算法是SHA1PRNG)生成一个基础序列,然后,我按照这个序列嵌入信息到一个PNG流中去。请你根据未嵌入随机序列的图像和已嵌入随机序列的图像,来判断其余图像中的随机序列。1,我将一个字符串变成通用的Bytes数组2,Byte数组按Byte嵌入到带Alpha通道的ARGB PNG流中(即32Bit的支持透明的PNG图像)3,我告诉你前7组(原图和嵌入了内容的图像4,我提供一组未知嵌入内容的图像6,如果你答对了,你将挑选一份Dev2dev的礼物(http://dev2dev.bea.com.cn/bbs/gift!default.jspa)另外,我在第1组到第8组图片(见下面的图片)中都随机嵌入了
sex is not sexy, check his link on http: // unruledboy.cnblogs.com /
注意:左边是原图,右面是嵌入了上述信息的图片第1组 第2组第3组第4组第5组第6组第7组第8组第9组请问第九组嵌入的内容是什么?提示:在上述嵌入算法上,并没有涉及密码算法,即嵌入内容只是被简单地写入到PNG图片中去。
posted on 2006-06-13 09:44 david.turing 阅读(3954) 评论(5) 编辑 收藏
对你研究的内容非常感兴趣,可以交流一下吗?MSN:hefehoo@hotmail.com 回复 更多评论
@Hefe 我目前做了一些改善,比如通过LSB来改善图像质量,你看到上面的图片上是有一些很微细的点,经过LSB处理,会感觉不到水印的存在。 回复 更多评论
能否对你的研究多给出点资料呢.msn:qu.jingbo@hotmail.com,十分感谢. 回复 更多评论
能否多给点资料呢 谢谢 msn:liyizao@163.com 回复 更多评论
hehe...ms很高深。。其实怎么讲呢。。。你给的这个命题本身就是不完全的命题,做法也不对比如,你没有告诉我,在进行了加权的加权值是不是固定,或说是按某一种随机数或者字符编码进行加权。。如果是按随机数进行加权,有个0加权的情况存在,这是必须考虑的其次,你把生成的图像进行了滤镜处理,这对水印恢复是一个大忌任何一种水印算法,能从被处理成1bit的灰度图中提取水印么?总有一个水印恢复的抗干扰强度而且你要别人在不知道你编码以及水印算法的前提下进行算法逆推,还过了一道滤镜的确,还是有可能逆推出来的。。只不过。。。。有这个能力的人应该也懒得解这种没什么意义的题 回复 更多评论
Powered by: BlogJava Copyright © david.turing