目录
对称密码算法(Symmetric-key Algorithm)
非对称密码算法(Asymmetric-key Algorithm)
基本定义:
密码学不仅仅研究加密解密的数学算法。更多的时候,密码学研究保护信息安全的策略,我们可以称之为“协议”。在已有的数学模型基础上,我们往往忽略具体的数学实现方法,转而专注地研究借助这些数学工具能够构建的安全措施。
只要破译者无法在他能承受的成本(时间,人力或者其他资源)下完成破译,我们就可以认为这个密码很安全
密码的评估标准:
1.安全性:实际安全,随机性,可靠性,其他安全因素
2.成本:专利要求,计算效率,存储空间效率
3.算法和执行特性:灵活性,简洁性
正文:
密码算法主要分为三类:对称密码算法、 非对称密码算法、摘要算法。
对称密码算法(Symmetric-key Algorithm)
对称算法 是指加密秘钥和解密秘钥相同的密码算法,又称为 秘密秘钥算法 或 单密钥算法 。
该算法又分为 分组密码算法(Block cipher) 和 流密码算法(Stream cipher) 。
- 分组密码算法
- 又称块加密算法
- 加密步骤一:将明文拆分为 N 个固定长度的明文块
- 加密步骤二:用相同的秘钥和算法对每个明文块加密得到 N 个等长的密文块
- 加密步骤三:然后将 N 个密文块按照顺序组合起来得到密文
- 流密码算法
- 又称序列密码算法
- 每次只加密\解密一位或一字节明文
在单钥加密的情况下,密钥只有一把,所以密钥的保存变得很重要。一旦密钥泄漏,密码也就被破解。
非对称密码算法(Asymmetric-key Algorithm)
非对称算法 是指加密秘钥和解密秘钥不同的密码算法,又称为 公开密码算法 或 公钥算法,该算法使用一个秘钥(公开的)进行加密,用另外一个秘钥进行(不公开的)解密。
双钥加密的原理如下:
a) 公钥和私钥是一一对应的关系,有一把公钥就必然有一把与之对应的、独一无二的私钥,反之亦成立。
b) 所有的(公钥, 私钥)对都是不同的。
c) 用公钥可以解开私钥加密的信息,反之亦成立,即,公钥用来加密信息,私钥用来数字签名。
d) 同时生成公钥和私钥应该相对比较容易,但是从公钥推算出私钥,应该是很困难或者是不可能的。
因为任何人都可以生成自己的(公钥,私钥)对,所以为了防止有人散布伪造的公钥骗取信任,就需要一个可靠的第三方机构来生成经过认证的(公钥,私钥)对。目前,世界上最主要的数字服务认证商是位于美国加州的Verisign公司,它的主要业务就是分发RSA数字证书。
目前,通用的单钥加密算法为AES,通用的双钥加密算法为RSA,都产生于上个世纪70年代。
摘要算法(Digest Algorithm)
摘要算法 它把数据压缩成摘要,使得数据变小,将数据点格式固定下来(任意长的数据经过哈希算法,都会输出一段固定长度的数据,称为“哈希值”)又称为 散列函数 、 哈希函数 、 杂凑函数 、单向函数 等。
摘要算法所产生的固定长度的输出数据称为 摘要值 、 散列值 或 哈希值 ,摘要算法无秘钥。
摘要算法 通常用来做数据完整性的判定,即对数据进行哈希计算然后比较 摘要值 是否一致。
摘要算法主要分为三大类:MD(Message Digest,消息摘要算法)、SHA-1(Secure Hash Algorithm,安全散列算法)和 MAC(Message Authentication Code,消息认证码算法);另国密标准 SM3 也属于摘要算法。
原文有一丁点修改,摘要都截然不同。
结语:
我们已经讲解过经典的RSA非对称密码算法和SHA256摘要算法,以后会单独出一篇文章讲解AES对称密码算法。
在我看来,密码学真正有意思的地方在于:我们想在网络上保护自己的隐私。千百年来,人们一直在尝试,探索,但过去的技术还不能实现高度隐私,而电子技术却有望其成为现实。它让一切古典密码都黯然失色(20世纪后期,如凯撒,维吉尼亚,ENIGMA)。但同时,它也将落于纸笔和思维游戏的密码,借着机器上升至人力无法驾驭的程度。让一切想窥探人们隐私的坏家伙望尘莫及
将信任置于日光之下,将秘密藏于共识之中。