thinking in asp 之七 一个程序员的自我修养

半夜玩儿了会儿“隐写术”,觉得很有意思。在东游西晃找资料的过程中,发现其实记录下一个问题的解决思路是很有意义的一件事情。

在这个小节里,我打算回顾一下asp的解决过程。

不过,首先,我还是想先复盘一下玩儿隐写术的过程,asp持续时间太长,对于俺的历史问题,俺得跟少奇同志一样,慢慢想。


可以提前说一句的是,现在搞开发,离了google真的玩儿不转啊。。。甚至可以说,对google的使用直接反应到开发的水准上。而对google的使用技巧,最直接的体现就是keyword的设定。

对一个模糊的问题,就是通过对google查询关键词的不断尝试,逐步收敛寻找范围,直到知道到底需要什么。

google的过程,其实就是一个帮助你理清思路、发现重点和关键的过程。

这里还想吐槽一下百度,我会说每次查询google被墙,我都在微博上发一条消息:“傻X百度”么?嘿嘿。。。

顺便感谢下我老妹,俺看的好多论文都是她给俺下载的,有免费的账号混cnki和万方真是爽啊~~


好了,言归正传,以下的文字就是记录一下俺使用google的过程:


故事的起因是这样的,在网上转着玩儿的时候,发现贴吧里面有种玩法是:贴上去一张图片,肉眼看到的可能是一只猫咪,但是实质上,这张图片中隐藏了发帖者想说的文字信息。不明觉厉啊~~~~


于是,开始了我的探险之旅:

1. google keywords 图片隐藏文字,得到结果:

SilentEye 0.4.0 (图片隐藏文字加密工具) - 腾讯下载频道

download.tech.qq.com ›图形图像Translate this page
SilentEye是一款可以将文字或者文件隐藏图片的加密工具。把自己的秘密隐藏图片中,一般人无法发现图片中藏有秘密。

2. google SilentEye 得到结果:

SilentEye - Steganography is yours

www.silenteye.org/
SilentEye is a cross-platform application design for an easy use of steganography, in this case hiding messages into pictures and sounds. It provides a pretty ...

3. 好吧,我已经没有兴趣点进去看了, 真正的关键词找到了: Steganography (隐写术) 继续google:

Steganography - Wikipedia, the free encyclopedia

en.wikipedia.org/wiki/Steganography
Steganography ( Listen ) is the art and science of encoding hidden messages in such a way that no one, apart from the sender and intended recipient, suspects ...


 

4. 嗯,要找的就是这个。先猜测一下:

色彩空间指的是一个pixel 的 r g b 数值, 与数字3进行逻辑与 (& 11) 也就是取得后两位的bit值。

亮度增强85倍 是切换到HSL (hue色相、saturation饱和度、lightness亮度)再次进行计算(对L * 85)——得到猫咪。

5. 好吧,现在该考虑自己怎么实现一个的问题了。先看看别人怎么用的,在wiki的 Application : Example from modern practice 段落里,提到了这么一个东东——  least significant bit

6. google 关键词  least significant bit,找到了很多文档,个人比较喜欢这个《SLSB: Improving the Steganographic Algorithm LSB》

7. 读了一遍,看看结构图:


看到这句话:The choice of Sample Pairs analysis over other stegoanalitics methods is due to the results provided by the work of Ker [13], where this analysis shows that it is offering better results in terms of detecting hidden information.

8. 按图索骥 Reference :13 Ker, A.: Improved detection of LSB steganography in grayscale images. Proc. 6th Information Hiding Workshop. Springer LNCS, vol. 3200, pp. 97-115, 2004.

9. 继续看下载的pdf  《Improved Detection of LSB Steganography in Grayscale Images》

10. 嗯,其实ref 13 的工作是找到可疑的网络图片——这个是斯诺登(snowden)同志干的活儿啊。而《SLSB》就是根据 《Detection》反其道而行之,防止被识别。

11. 鉴于LSB是一个比较基础和简单的设计,应该把事情搞得复杂点儿。

12. 《SLSB》已经提到了一个概念,如分类为:空间域和变换域。不过一想起变换域,我脑海里就浮现出傅里叶大爷,至于文中还提到的离散余弦变换和小波变换,让我感觉非常头疼。。。

13. 算了,不想技术实现问题,先发散下,自己设计一个,比如:类似photoshop的“图形扭曲”效果?——真正的问题是:要确保变换是可逆的啊。。。

14. 好吧,keywords 设定为 图片 picture 、扭曲 twist 和 逆变换 inverse transform, google一下 “picture twist inverse transform”,得到:

CanonicalTransform

djj.ee.ntu.edu.tw/Linear%20Canonical%20Transform.docx
The inverse Fourier Transform is defined as: ..... Other image processing skill including reduce sampling rate,twisting of theimage can also be implemented by ...

15. 不知道说啥,下载了看看。

16. 如我所料,这种资料头三句必然出现傅里叶大爷的身影(Fouriertransform)。傅里叶大爷,你真大爷的啊。。。

17. 先扫读一遍吧,看到

 Reference:

1. Optimalfiltering with linear canonical transformations.

2. http://en.wikipedia.org/wiki/Arnold's_cat_map


18. cat map 是什么东东?貌似很好玩儿的样子,看看。

19. 有点儿意思了:从有序到混沌然后返回有序。下图表示:一张猫咪图片迭代300次后恢复原状。

20. 结合之前《SLSB》提到的:Randomized Algorithm——收发两方使用同样的伪随机数生成器,通过一个随机种子,使得对方获得你想告知的数字。OK,可以传递当前迭代到的序号啊。

21. 嗯,大体可以这么设计:

     a) 发送方先用SLB做一只猫咪

     b) 迭代到第N步

     c) 传递seed 告知对方 还需要 M 步

     d) 收方获得图和seed,生成器产生数字 M

     e) 迭代M步

      f) 获得原始图

      g) 解开SLB

      h) 将获得的内容byte array处理(可能还需要继续解密或者unzip等)

      i) END

22. 在玩儿的兴致差不多够了的时候,决定在看看 阿诺德的猫咪 到底是干啥的。

23. 哈哈,看来我的设想还真是靠谱:

找到这么一篇论文《一种带有猫映射动态置换盒的分组密码 》

对猫映射的混沌特性进行研究,提出一种基于迭代二维猫映射的动态置换盒(S-盒)生成方法,由此构造一种基于S-盒的加密算法。

虽然继续不明觉厉,但是,这只”猫咪“果然是干加密的”特工猫“啊~~~

24. 不过 S-盒 是干啥的呢? 抽完一支烟之后,俺决定还是洗了睡吧 -_-b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值