写点什么

Java 进阶 (八)Java 加密技术之对称加密、非对称加密、不可逆加密算法

作者:Java-fenn
  • 2022 年 9 月 09 日
    湖南
  • 本文字数:1498 字

    阅读完需:约 5 分钟

根据密钥类型不同可以将现代密码技术分为两类:对称加密算法(私钥密码体系)和非对称加密算法(公钥密码体系)

一、对称加密算法

原理

对称加密算法中,数据加密和解密采用的都是同一个密钥,因而其安全性依赖于所持有密钥的安全性。

优点

加密和解密速度快,加密强度高,且算法公开。

缺点

实现密钥分发困难,在大量用户的情况下密钥管理复杂,而且无法完成身份认证等功能,不便于应用在网络开放的环境中。

特点

算法公开、计算量小、加密速度快、加密效率高。

1.1 著名算法

目前最著名的对称加密算法有数据加密标准 DES ,但传统的 DES 由于只有 56 位的密钥,因此已经不适应当今分布式开放网络对数据加密安全性的要求。欧洲数据加密标准 IDEA 等,目前加密强度最高的对称加密算法是高级加密标准 AES , AES 提供 128 位密钥,128 位 AES 的加密强度是 56 位 DES 加密强度的 1021 倍还多。。

1.2 过程

对称加密算法过程是将数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。

不足之处是,交易双方都使用同样钥匙,安全性得不到保证。假设两个用户需要使用对称加密方法加密然后交换数据,则用户最少需要 2 个密钥并交换使用,如果企业内用户有 n 个,则整个企业共需要 n×(n-1)  个密钥。

二、非对称加密算法

原理

非对称加密算法使用两把完全不同但又是完全匹配的一对钥匙(即一把公开密钥或加密密钥和专用密钥或解密密钥)—公钥和私钥。在使用不对称加密算法加密文件时,只有使用匹配的一对公钥和私钥,才能完成对明文的加密和解密过程。加密明文时采用公钥加密,解密密文时使用私钥才能完成,而且发信方(加密者)知道收信方的公钥,只有收信方(解密者)才是唯一知道自己私钥的人。

非对称加密算法的基本原理是,如果发信方想发送只有收信方才能解读的加密信息,发信方必须首先知道收信方的公钥,然后利用收信方的公钥来加密原文;收信方收到加密密文后,使用自己的私钥才能解密密文。

优点

非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要。

缺点

加密和解密花费时间长、速度慢,它不适合于对文件加密而只适用于对少量数据进行加密。

2.1 著名算法

广泛应用的非对称加密算法有 RSA 算法和美国国家标准局提出的 DSA 。

三、不可逆加密算法

原理

不可逆加密算法的特征是加密过程中不需要使用密钥,输入明文后由系统直接经过加密算法处理成密文,这种加密后的数据是无法被解密的,只有重新输入明文,并再次经过同样不可逆的加密算法处理,得到相同的加密密文并被系统重新识别后,才能真正解密。显然,在这类加密过程中,加密是自己,解密还得是自己,而所谓解密,实际上就是重新加一次密,所应用的“密码”也就是输入的明文。

优点

不可逆加密算法不存在密钥保管和分发问题,非常适合在分布式网络系统上使用。

缺点

因加密计算复杂,工作量相当繁重,通常只在数据量有限的情形下使用,如广泛应用在计算机系统中的口令加密,利用的就是不可逆加密算法。近年来,随着计算机系统性能的不断提高,不可逆加密的应用领域正在逐渐增大。

3.1 著名算法

在计算机网络中应用较多不可逆加密算法的有 RSA 公司发明的 MD5 算法和由美国国家标准局建议的不可逆加密标准 SHS (Secure Hash Standard:安全杂乱信息标准)等。

对称加密算法、非对称加密算法和不可逆加密算法可以分别应用于数据加密、身份认证和数据安全传输。

用户头像

Java-fenn

关注

需要Java资料或者咨询可加我v : Jimbye 2022.08.16 加入

还未添加个人简介

评论

发布
暂无评论
Java 进阶 (八)Java 加密技术之对称加密、非对称加密、不可逆加密算法_Java_Java-fenn_InfoQ写作社区