【原理入门】第二课:加解密原理
@qqiirer 依然是这位兄弟的请教,在此写一篇简单的加解密入门的文章吧……小白们放心,本文低能,请放心食用。其他课程传送门:
第一课:压缩原理
更多加密方式和历史信息等参见度娘。
0x01:从很久很久以前开始……
Z国正在和R国打仗,而Z国要给前线的人传递一个信息,但中途万一给R国的人看到就不好玩了,所以Z国想了个办法,如图
这样就可以用一只皮卡丘代替“炸弹在A区”这个信息了,R国的人就一脸蒙蔽……这就是一个最简单的替换加密啦~
0x02:伟大的摩斯电码
早起无线电发明后人们要想办法用简单的方法传递信息,一只皮卡丘似乎不能通过无线电传送……所以伟大的摩尔斯电码就出现了!
这个实际上也是一种替换加密,将各个字符替换成了短停(皮卡丘)和长停(小火龙),你要是不想让别人知道简单的把顺序换一下或者什么加加减减就可以啦……这种东西二战时很流行,方法也千奇百怪,不过万变不离其宗都属于替换加密的一种。
0x03:AES加密
然而,随着计算机的出现,普通的替换加密强度渐渐弱了,人们可以利用频度分析,枚举的方法干掉(看不懂?没事,反正就是替换加密法不够用了)
不过道高一尺魔高一丈,人们也可以用计算机来加密,现在流行的是AES加密算法,由老美制定的标准,经过了无数人的试验终于认可了它的安全性。
具体来讲就是你指定一个密码,然后通过一系列复杂的替换和运算算法把你的信息变成一堆乱码,然后你可以用这个密码来还原。这种常见的一个密钥加密和解密的我们称之为对称加密算法,大家可以试试在线AES加解密网站
虽然密文几乎无法手工破解,不过人们可以通过枚举密码的方式破解,这就要看你电脑的速度如何了……
0x04:神奇的RSA加密
这种加密方法非常神奇,它有两个密码,一个称之为公钥,一个称之为私钥(只是为了区分,两个密码地位是一样的)。用一个密钥加密的内容只有用另一个密钥才能解密(用自己不能解密!)我们称之为非对称加密算法
这样你可以吧公钥公开出去,自己保留私钥,就会有很多用途比如:
1、证明自己的身份:你跟别人说,只有用你们手上公钥解密出“我是XXX”的字样的就是我发的消息,因为只有用你手中的私钥才能加密出只有公钥解密的内容,别人用公钥企图伪装的是无法被其他人解密的,这样就证明了你自己(而AES因为只有一个密码,公开了其他人也能加密出相同的内容)。
2、防止信息被修改:同样的,别人无法在没有私钥的情况下修改你的信息,因为这样做用公钥解密就会出现乱码,别人就知道这个东西被修改了。
……
至于安全性,RSA算法基于一个数学难题:质因数分解,只要没有数学dalao找到更快的方式解决这个问题,以现有的数学水平和现有的计算机速度基本上是安全的。
0x05:加解密算法的应用
臭名昭著的wannacry就是用的RSA加密算法加密了你的文件,它用公钥来加密文件,而这个公钥是放到程序里的,你想看就看,然而只有用黑客手中的私钥才能成功解密,这就是为什么那么多逆向大牛虽然找到了“控制开关”,甚至反编译了整个程序http://www.52pojie.cn/thread-611500-1-1.html但是对加密后的文件依然束手无策。
不过简单的加密文件的程序用AES就可以了(网上资料很多),毕竟你只要记住一个短密码就可以啦~(RSA的密钥很长很长……)
这不过是加解密的简单入门,也只是简单介绍了一下替换法和现代常用的的计算机加密法,要学习的还有很多,各位加油吧~ 我仔细研究过 从公元前1世纪到二战时期的密码学成果,结果发现,现在的加密通讯自从引入了质数开方 公私钥保护机制 以及 高达2048位 密文后,只要保证通讯渠道不被破坏 密码传输的整个过程都是安全的,包括现在的量子技术也是致力于次。至于密码学对软件工程算法方面的影响其实是微乎其微的,因为我们根本不可能用有限的加密后的密文逆向出其伪加密算法甚至是真实的明文。所以现代密码学主要是通讯渠道是否安全,以及软件算法是否可以被窥探,或者网络验证服务器本身是否安全,其算法的具体实现过程已经不是那么的显著了,除非搞数学家学术研究否则完全没有研究的必要,真正的骇客才不会研究这些密码学呢,因为时间成本难以控制 smile1110 发表于 2017-7-20 00:40
我仔细研究过 从公元前1世纪到二战时期的密码学成果,结果发现,现在的加密通讯自从引入了质数开方 公私钥 ...
确实现在各种加密技术已经近似成熟了,除非找出快速碰撞的方法,否则增加点密钥长度多加密验证几次基本上不可能被破译了。
不过最重要的还是社会工程学,4096位RSA都挡不住的神奇学科…… 好深奥的说啊,不懂 居然让我很清晰了再一次理解了一下AES加密的神奇之处,给力 看完了,还是不懂! 我小白一个,还没看懂 讲得不错 感谢分享{:301_997:} 可汗学院有一期关于加解密原理的公开课,生动有趣直观,十分推荐入门学习。我想说人家老美的思想就是比咱们强,尤其是RSA算法的入门上,你随便找本国内的书,基本是出比这论文抄,一大堆公式摆给你,一般人很难看懂。但是人家就用几种生活常见的事例做比喻,知道那天我才真正明白其中的原理,汗一个!