首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > Java > 挑战随机序列---破解基于PRNG(Pseudo-Random Number Generator)的数字水印
【标  题】:挑战随机序列---破解基于PRNG(Pseudo-Random Number Generator)的数字水印
【关键字】:---,PRNG,Pseudo-Random,Number,Generator
【来  源】:http://www.blogjava.net/openssl/archive/2006/06/13/crack_java_png_watermark.html

挑战随机序列---破解基于PRNG(Pseudo-Random Number Generator)的数字水印

BlogJava - Java Security - 挑战随机序列---悬赏破解基于PRNG的Hacker

Java Security

UG活动将于6月3日举行,关于安全的topic分三部分:1,密码学;2,PKI;3,Java Security,4,Weblogic Security

统计

  • 随笔 - 77
  • 文章 - 11
  • 评论 - 188
  • 引用 - 0

david.turing的信任公钥

Java必读Blog

Security名人榜

SpringSide

个人收藏

关于License

好友

我加入的群

我常访问的技术Blog

我的文章

  • Weblogic Security In Action 上篇(Flash格式)
  • 上篇主要阐述WLES的概念,将按照如下的思路,让读者对Weblogic安全框架有一个明晰的理解,并在此基础上明白Weblogic基本安全要素如User,Group,Role,Resource。并探讨在WLES下实现认证和授权的方法。
  • Weblogic Security In Action中篇(SWF格式)
  • 中篇主要阐述WLES的配置,重点讲述如何在WLS中配置SSL和证书,如何配置LDAP和数据库,如何实现Windows集成安全,如何在开源技术如CAS,SAML,SPNEGO等基础上实现单点登陆(Single Sign on,即SSO)。

阅读排行榜

评论排行榜

挑战随机序列---悬赏破解基于PRNG的Hacker

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组

0.png 0_sig.png
第2组
1.png1_sig.png
第3组
2.png2_sig.png
第4组
3.png3_sig.png
第5组
4.png4_sig.png
第6组
5.png5_sig.png
第7组
6.png6_sig.png
第8组
7.png7_sig.png


第9组
8.png8_sig.png
请问第九组嵌入的内容是什么?

提示:在上述嵌入算法上,并没有涉及密码算法,即嵌入内容只是被简单地写入到PNG图片中去。

posted on 2006-06-13 09:44 david.turing 阅读(20) 评论(0)  编辑 收藏 收藏至365Key 所属分类: 随机数序列(伪随机)Java实现

【相关评论】
没有相关评论
【发表评论】
姓名:
邮件:
随机码*
评论*
      
|  首 页  |  版权声明  |  联系我们   |  网站地图  |
CopyRight © 2004-2007 软讯网络 All Rigths Reserved.