你好,欢迎收听众享区块链大讲堂,上节课我们学习了哈希散列算法, 今天我们来学习另一种密码学算法“对称加解密算法”。
“加密算法”乍一听貌似和大部分人的日常生活十分遥远,但实际却密切相关。从网络层到主机文件层,无论哪层加密应用或协议背后都是由各种加密算法所支撑。即便你不用任何加密产品,凡是使用https的网站都已经使用了加密协议TLS/SSL。你也被动享受了加密算法带来的隐私保护及通讯安全。
历史
其实加密的概念从古到今一直都出现在人们的生活中,只是会以不同的形式表现出来。加密算法的需要符合以下三点诉求:
第一点“机密性”:保证数据即使被盗取,也无法解密数据;
第二点“完整性”:保证数据在传输过程中若被劫持篡改,接收方能够发现信息已其他方篡改,而选择换掉;
第三点“可用性”:保证加密算法的成本、复杂度都在可用范围。
结合上述诉求,加密算法的发展主要经历了古典密码和现代密码两个历史阶段。
古代人民怎么加密
历史上最早的加密算法出自于古中国周朝兵书《六韬.龙韬》, 其中的《阴符》和《阴书》便记载了周武王问姜子牙关于征战时与主将通讯的方式:根据其中内容描述,阴符是以八等长度的符来表达不同的消息和指令,属于密码学中的替代法,在应用中是把信息转变成敌人看不懂的符号,但知情者知道这些符号代表的含义。
古典密码主要采用的就是移动法和替换法。经过逐渐发展和完善,最有名的莫过于凯撒密码。凯撒密码有两种方式——移位法和替换法。古典密码后期发展出维吉尼亚密码、ROT5/13/18/47、摩尔斯密码等一系列密码种类。但都是以替换法和移位法为核心基础,安全性也主要是靠算法不公开来保证。所使用的加密算法只能算是现在加密算法的雏形,或者仅作为可以借鉴的最初加密思路。
现代人更科学的加密算法
古典加密算法本质上主要考虑的是语言学上模式的改变。直到20世纪中叶,香农发表了《秘密体制的通信理论》一文,标志着加密算法的重心转移往应用数学上的转移。于是,逐渐衍生出了当今重要的三类加密算法:非对称加密、对称加密以及哈希算法。
这三类算法在现实场景中也往往组合起来使用,以发挥最佳效果,
这里我们主要讲解下“对称加密算法”。
定义
对称加密算法是使用最广泛的加密算法之一。我们来看一下对称加密算法的定义:“对称加密算法”又称为对称加密、共享密钥加密,是密码学中的一种加密算法。这种算法在加密和解密时使用相同的密钥,或是使用两个可以简单地相互推算的密钥。实际上,这组密钥成为在两个或多个成员间的共同秘密,以便维持专属的通讯联系。你可以这么理解,一方通过密钥将信息加密后,把密文传给另一方,另一方通过这个相同的密钥将密文解密,转换成可以理解的明文。他们之间的关系如下:
明文 密钥 密文 密钥 明文
那么我们现在有哪些现成的对称加密算法可以用么?当然有:常用的对称性加密算法有DES算法、AES算法、3DES算法、TDEA算法、Blowfish算法、RC5算法、IDEA算法等……
领取专属 10元无门槛券
私享最新 技术干货