区块链技术与密码学学习之加密算法解读

crawler
crawler 2018-10-12 12:19
0 8
文章来源:博客园
原文链接:http://www.cnblogs.com/bruceshao/p/8535324.html
著权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
根据加解密的密钥是否相同,算法可以分为对称加密(symmetric cryptography,又称公共密钥加密,common-key cryptography)和非对称加密(asymmetric cryptography,又称公钥加密,public-key cryptography)。两种模式适用于不同的需求,恰好形成互补,很多时候也可以组合使用,形成混合加密机制。
并非所有加密算法的强度都可以从数学上进行证明。公认的高强度加密算法是在经过长时间各方面实践论证后,被大家所认可,不代表其不存在漏洞。
但任何时候,自行发明加密算法都是一种不太明智的行为。
对称加密
顾名思义,加解密的密钥是相同的。
对称密码从实现原理上可以分为两种:分组密码和序列密码。前者将明文切分为定长数据块作为加密单位,应用最为广泛。后者则只对一个字节进行加密,且密码不断变化,只用在一些特定领域,如数字媒介的加密等。
代表算法包括DES、3DES、AES、IDEA等。
非对称加密
非对称加密是现代密码学历史上最为伟大的发明,可以很好的解决对称加密需要的提前分发密钥问题。
顾名思义,加密密钥和解密密钥是不同的,分别称为公钥和私钥。
公钥一般是公开的,人人可获取的,私钥一般是个人自己持有,不能被他人获取。
非对称加密算法的安全性往往需要基于数学问题来保障,目前主要有基于大数质因子分解、离散对数、椭圆曲线等几种思路。
代表算法包括:RSA、ElGamal、椭圆曲线(EllipticCurveCrytosystems,ECC)系列算法。
一般适用于签名场景或密钥协商,不适于大量数据的加解密。
RSA 算法等已被认为不够安全,一般推荐采用椭圆曲线系列算法。
混合加密
即先用计算复杂度高的非对称加密协商一个临时的对称加密密钥(会话密钥,一般相对内容来说要短的多),然后双方再通过对称加密对传递的大量数据进行加解密处理。
典型的场景是现在大家常用的HTTPS机制。HTTPS实际上是利用了Transport Layer Security/Secure Socket Layer(TLS/SSL)来实现可靠的传输。TLS为SSL的升级版本,目前广泛应用的为TLS1.0,对应到SSL3.1版本。
建立安全连接的具体步骤如下:
文章发布只为分享区块链技术内容,版权归原作者所有,观点仅代表作者本人,绝不代表区块链兄弟赞同其观点或证实其描述。

游客
登录后才可以回帖,登录 或者 注册