很久没有更新博客了,今天打算开一个大新坑。
我注意到很多程序员,开发者,甚至是一些信息安全从业者,密码学这块似乎经常搞错一些东西。经常有一些误解。
所以网络上面也流传了很多误解。比如
- TLS,很多人认为是用RSA加密的。
- base64, md5加密。
- TLS无用。
- 自己开发自己的密码,黑客破不了。
如果以上说法,你没看出有什么问题,那么这篇文章就是给你写的。
唉,难道简中网络上就没有好的密码学资料吗?有是有的。但是似乎都有一定的阅读门槛,对自学的人并不友好。
所以我打算开一个坑,尽量用简单的话说明白:
“我们在某个场景中遇到了什么问题,所以我们需要什么”的这种思路。尽可能往原理上讲。
恩…当然我尽量不搬出公式,不会有证明,s盒之类的出现。
这篇文章这是第五个(现在是第六个)版本了,万事开头难。再来一遍吧。
所以密码学解决了什么
恩,密码学在解决什么?加密?破解密码?实际上远远不止这些。
想象一下,你上课开小差,传纸条。
你想传情书,你这纸条经过那么多人的手,大家都看得到。你可不想这八卦就这么传开。
你收到了情书,你又怎么确定这纸条就是某人传来的?不会是某人整你吧?
你想塞盒子里上个锁,但是钥匙你要怎么送出去…
别急,除了加密解密以外,密码学还解决了“这是谁发的”,“对抗情书伪造”,“怎么在众目睽睽下商讨一个没人知道的秘密”等等。
当然,这也太麻烦了。这样子搞,你这辈子找不到对象。
所以…我能自己想一个方法然后私底下偷偷用吗?比如,写拼音,然后每个字母往后移一点,,,
于是你写了:
kjo ujbo oj aipoh zv kjbp xp njoh aj mf, tvj sbo kjbp dvp mf, ebo tij nfj hvbo yj xp nb tiboh hbj
但是感觉这样不安全,因为有些统计学得好的nerd发现,怎么这些字母貌似有规律?比如每个单词的第二个字母经常是j
…推测就是元音字母!拼音中i
出现频率很高。于是找到i
到j
位移距离,直接就能推回拼音了。
(你的女神并不在乎别的nerd说不安全也不在意八卦,她觉得你用位移的方法浪漫又聪明(其实是她自己解出来后她觉得她自己很聪明(节目效果,请勿当舔狗)))
当然nerd这时候出来就要告诉你了,
请不要自己发明算法。密码算法非常脆弱。请用经过审计的,安全的,已经很健壮的库。
保护安全的只是密钥,你不应该指望通过保密加密的方法来保密。(柯克霍夫原则)
你不信邪,你相信你的智商,你自己做了一个密码机。一台就能实现加密解密。在校园里非常流行。
然而你的体育老师没收了一台。你的体育老师也绝非等闲之辈,他拆开了密码机并且搞懂了你的原理,还发现了算法缺陷。于是他偷偷监听着你们这群学生…在讨论他为什么总是生病。
由于机器原理并不公开,也没有太多人在研究你的密码机,所以你们很长一段时间都不知道…这些缺陷以已经被利用,你们被监听了。
下一章节我们谈谈,如何验证消息是否被篡改了呢?
Comments
(no comments...maybe you can be the first?)