- 密 钥
- 公钥、私钥
- 外文名
- Asymmetric encryption
- 中文名
- 非对称加密
- 典型算法
- RSA算法
-
2022-03-12 15:51:04
在现代社会中,我们很多信息都需要通过互联网来传输,这些信息中难免会包含一些私密或者机密的内容,如果直接通过明文传输是非常不安全的,这就需要使用密钥并使用一定的算法对这些明文信息进行加密形成密文后再进行传输,最后接收方对密文进行解密,以获取里面的明文内容,这就涉及到密码学了。
我们先了解几个概念,虽然很简单,但是对于从未接触过加密的人来说还是有必要提一下的。
明文: 明文指的是未被加密过的原始数据。
密文: 明文被某种加密算法加密之后,会变成密文,从而确保原始数据的安全。密文也可以被解密,得到原始的明文。
密钥: 密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数。密钥分为对称密钥与非对称密钥,分别应用在对称加密和非对称加密上。事实上,密码学出现的非常早,只是早期的密码学基本都是使用替换法和移位法进行加密。在之前只用纸和笔进行运算的时代,这些方式或许还是有效的,但在计算机出现之后,这些方法就显得不堪一击了,于是现代密码学应运而生。
现代密码体制有两种: 对称密码体制( 又称为单钥密码体制) 和非对称密码体制( 又称为双钥密码体制或公钥密码体制) 。
对称密码体制:使用相同的密钥对消息进行加密或解密,系统的保密性主要由密钥的安全性决定,而与算法是否保密无关。
对称密码体制设计和实现基本思想是: 用何种方法产生满足保密要求的密钥以及通过何种方法将密钥安全又可靠地分配给通信双方。对称密码体制可以通过分组密码或流密码来实现,它既可以用于数据加密,又可以用于消息认证。
非对称密码体制:使用公钥加密消息,使用私钥来解密,或使用私钥加密消息,使用公钥进行解密。使用非对称密码体制可增强通信的安全性。
在密码学体系中,对称加密、非对称加密、单向散列函数、消息认证码、数字签名和伪随机数生成器被统称为密码学家的工具箱。其中,对称加密和非对称加密主要是用来保证机密性;单向散列函数用来保证消息的完整性;消息认证码的功能主要是认证;数字签名保证消息的不可抵赖性。
对称加密
对称加密又称单密钥加密,整个加密过程中只使用一个密钥。所谓对称其实就是使用一把密钥加密,并使用同一把密钥进行解密。对称加密由于加解和解密使用的是同一个密钥算法,故而在加解密的过程中速度比较快,适合于数据量比较大的加解密。
对称加密的优点:算法公开、计算量小、由于使用统一密钥算法所以加密解密速度比较快,适合于数据量比较大的加解密。
对称加密的缺点:密钥的管理与分配存在风险,一旦泄露,密文内容就会被外人破解;另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的独一密钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。
常用的对称加密算法:DES、3DES、AES、TDEA、Blowfish、RC2、RC4 和 RC5 等
对称算法适用场景:鉴于其具有更快的运算速度,对称加密在现代计算机系统中被广泛用于保护信息。例如,美国政府使用高级加密标准(AES)来加密和分类和感信息。AES取代了之前的数据加密标准(DES)。
非对称加密
非对称加密:在加密过程中,使用密钥对(分别是私钥和公钥。公钥可以对外发布,人人可见。而私钥则自己保管,不外泄)中的一个密钥进行加密,另一个密钥进行解密。比如用公钥加密,那么用私钥解密;用私钥加密,就用公钥来解密。由于加密和解密使用了两个不同的密钥,这就是非对称加密“非对称”的原因。
非对称加密优点:安全性高,解决了对称加密中密钥管理和分发可能存在不安全的问题。
非对称加密缺点:加密和解密花费时间长、速度慢,并且由于它们的密钥长度非常长,因此需要更多的计算资源,只适合对少量数据进行加密。
常用的非对称加密算法:RSA、Elgamal、Rabin、D-H、ECC(椭圆曲线加密算法)等
非对称加密适用场景:非对称加密通常用于大量用户需要同时加密和解密消息或数据的系统中,尤其是在运算速度和计算资源充足的情况下。该系统的一个常用案例就是加密电子邮件,其中公钥可以用于加密消息,私钥可以用于解密。
问题:为什么私钥可以解密被公钥加密的数据?
答:欧拉函数 欧拉定理 互为质数。具体的咱也不懂。需要注意的是,在许多应用中,对称和非对称加密会一起使用。这种混合系统的典型案例是安全套接字层(SSL)和传输层安全(TLS)加密协议,该协议被用于在因特网内提供安全通信。SSL协议现在被认为是不安全的,应该停止使用。相比之下,TLS协议目前被认为是安全的,并且已被主流的Web浏览器所广泛使用。
数字证书
数字证书有点类似于我们的居民身份证,只是数字证书是基于互联网通信的,用于标记通信双方身份的一种方式。数字证书是由权威机构Certificate Authority发行的,又称之为证书授权,简称为:CA。人们在网上可以根据它来识别对方身份信息。
数字证书绑定了公钥及其持有者的真实身份,它类似于现实生活中的居民身份证,所不同的是数字证书不再是纸质的证照,而是一段含有证书持有者身份信息并经过认证中心审核签发的电子数据,广泛用在电子商务和移动互联网中。
数字签名
除了非对称加密,数字签名也是非对称密码学常见用法。
数字签名是指将摘要信息使用接收者的公钥进行加密,与密文一起发送给接收者。接收者使用自己的私钥对摘要信息进行解密,然后使用Hash函数对收到的密文产生一个摘要信息,然后将摘要信息与发送着传输过来解密后的摘要信息对比是否一致。如果一致,则表明数据信息没有被篡改。
也就是说,数字签名能够验证收到的信息的完整性,避免中途信息被劫持篡改或丢失。对方可以根据数字签名来判断获取到的数据信息是最原始的数据。
需要注意,并非所有的数字签名系统都使用加密技术,即使它们用到了公钥和私钥。实际上,可以仅对消息进行数字签名而不进行加密。 RSA是用于对加密消息进行签名的示例算法,但比特币使用的数字签名算法(名为ECDSA)根本没有用到加密功能。
密钥长度
对称和非对称加密之间的另一个功能差异与密钥的长度有关,密钥的长度以比特为单位,并且与每个加密算法提供的安全级别直接相关。
在对称加密中,密钥是随机选择的,其长度通常设置为128或256位,具体长度取决于所需的安全级别。然而,在非对称加密中,公钥和私钥之间在数学上相关联,这意味着两者之间存在算术联系。攻击者可能利用该模式破解密文,因此非对称密钥需要更长的密钥长度,才能提供相同级别的安全性。密钥长度的差异是如此明显,以至于128位的对称密钥和2,048位非对称密钥才能提供大致相同的安全级别。
更多相关内容 -
非对称加密JAVA实现
2020-08-06 12:50:58非对称加密JAVA实现,实现对超长内容进行加密 -
前后端RSA非对称加密解密(代码示例).rar
2020-02-10 21:00:42登录时,用户的密码用明文传输...非对称加密算法常用RSA算法,秘钥使用base64编码成字符串,后端使用jdk8的标准API,前端使用jsencrypt.js进行RSA的对应操作。经过测试,本例中的前后端代码的加密解密计算结果是一致的。 -
ThinkPHP实现的rsa非对称加密类示例
2020-10-18 11:50:41主要介绍了ThinkPHP实现的rsa非对称加密类,结合实例形式分析了thinkPHP引入密钥文件实现rsa加密解密的相关操作技巧,需要的朋友可以参考下 -
C#对称加密与非对称加密实例
2020-12-31 03:27:39本文实例讲述了C#对称加密与非对称加密的原理与实现方法,分享给大家供大家参考。具体分析如下: 一、对称加密(Symmetric Cryptography) 对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密... -
对称加密与非对称加密优缺点详解
2021-01-19 19:34:47对称加密:双方使用的同一个密钥,既可以加密又可以解密,这种加密方法称为对称加密,也称为单密钥加密。 优点:速度快,对称性加密通常在消息发送方需要加密大量数据时使用,算法公开、计算量小、加密速度快、加密... -
C#实现简单的RSA非对称加密算法示例
2020-08-29 14:24:30主要介绍了C#实现简单的RSA非对称加密算法,结合实例形式分析了C#实现RSA加密的具体步骤与相关操作技巧,需要的朋友可以参考下 -
文件非对称加密解密工具(RSA).exe
2019-07-25 10:24:42本工具是用于golang编写的,用于rsa非对称加密技术实现的对字符串的加密解密工具,可以对文件进行加密解密(txt、docx、xls文档等)。对文档加密会对文档同目录下生成一个后缀名加.hh的文档。 操作说明: 一、对字符... -
Android 安全加密:非对称加密详解
2021-01-04 21:00:39以上学习所有内容,对称加密、非对称加密、消息摘要、数字签名等知识都是为了理解数字证书工作原理而作为一个预备知识。数字证书是密码学里的终极武器,是人类几千年历史总结的智慧的结晶,只有在明白了数字证书工作... -
5.Java+js RSA非对称加密.rar
2020-04-29 10:14:10Java+js实现前后端非对称加密,采用rsa技术进行加密,前后端代码已上传,包括js文件,简单易懂。 -
RSA非对称加密算法
2019-02-14 23:12:03主要介绍RSA非对称加密算法的由来和应用场景,以及加密原理 -
MFC实现AES非对称加密解密算法
2020-02-25 03:30:39利用MFC实现AES非对称加密算法,其中有详细的算法注释 -
C# 非对称加密 私钥加密 公钥解密实现
2020-11-18 08:55:07C# RSA非对称加密 实现私钥加密 公钥解密;可以用于生成授权码。 RSA生成一下随机值,然后都是用BigInteger类字符串跟字节数组互转 -
常见加密算法方式(对称加密和非对称加密)
2018-03-26 16:29:29对称加密:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6和AES 非对称加密:RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用) -
Rsa非对称加密Java实现和举例
2018-06-09 13:55:53* RAS用来加密机密数据:密码/转账资金... * RAS非对唱加密Java实现: * 1.采用分组加密的方式,明文可以比较长,理论上无线长,但是太耗费时间 * 2. 不采用分组加密,直接整个元数据加密的话,每次最多加 117 bytes, -
RSA非对称加密和DES对称加密代码示例
2018-11-20 15:11:35RSA非对称加密和DES对称加密代码示例包含(commons-lang3-3.1 commons-codec-1.4.jar) -
智能卡的用非对称加密算法变换动态密钥
2020-11-14 14:48:39图1 用对称和非对称相结合的加密算法变换密钥的方法举例(首先产生一个 加密的动态对称密钥,然后用非对称加密算法在两个实体问进行变换, 产生和交换密钥对的非对称加密算法是事先单独进行的未在图中示出) ... -
java非对称加密demo(秘钥文件\字符秘钥)
2018-06-06 11:31:30自己整理的非对称加密demo,包含生成秘钥文件、生成字符转秘钥两种方式。 -
RSA非对称加密验签参考demo
2018-12-10 15:05:13RSA非对称加密 通过私钥加密,公钥解密来实现数据的安全交互。公钥私钥存放在单独的文本中,自己替换即可。 -
Python3非对称加密算法RSA实例详解
2020-09-19 21:28:56主要介绍了Python3非对称加密算法RSA,结合实例形式分析了Python3 RSA加密相关模块安装及使用操作技巧,需要的朋友可以参考下 -
PHP基于openssl实现的非对称加密操作示例
2020-12-19 23:05:35使用非对称加密主要是借助openssl的公钥和私钥,用公钥加密私钥解密,或者私钥加密公钥解密。 1.安装openssl和php的openssl扩展 2.生成私钥:openssl genrsa 用于生成rsa私钥文件,生成是可以指定私钥长度和密码保护... -
支持对称加密、非对称加密、文件哈希的软件
2019-07-13 11:51:47本加密软件支持对称加密(AES、SM4)、非对称加密(RSA、SM2)、文件哈希(SHA2、SHA3系列); 支持系统:win10 x64 平台,其他平台未测试,但需要 64 位 Windows 操作系统 -
RSA非对称加密前端加密后端解密
2016-12-29 15:08:30基于.Net的MVC模拟登录,RSA非对称加密,web前端加密,C#后端解密。 -
对称加密、非对称加密深度解析
2022-03-15 21:23:26* 对称加密: 加密密钥和解密密钥相同 * 非对称加密: 加密密钥和解密密钥不相同密码学的发展
加密的发展史随着人类的进化逐步复杂、严谨也更安全,对于早期的移位和字母对应等加密方式我们不难理解。
- 移位 : 比如恺撒密码, 简单点说将 26个英文字母的顺序打乱,得到一个新的字母顺序,之后的英文或是拼英组成的单词就无法直接看出是什么了。
- 字母对应 :比如使用一个密码本, 原文通过对应的字母进行转换。
后来出现了更高级的使用密钥的方式加密,加密和解密使用相同的密钥, 密钥越长,解密就越难。 到1976年出现了非对称加密。
加密的分类
按照密文是否可以被还原,可以将加密分为可逆加密和不可逆加密。严格意义上说,不可逆加密应该算不上加解密的范畴,但是实际开发过程中,还是会使用到使用不可逆加密的方法对某些信息进行加密,比如用户的登录密码。
不可逆加密和可逆加密
- 不可逆加密: 信息摘要和安全散列。将任意大小的原始数据变换成规定长度的输出,获取内容的数字指纹。算法比如MD5,SHA1,PBKDF2,bcrypt。
- 可逆加密: 基于算法,可逆加密又分为对称加密和非对称加密。
对称加密和非对称加密
- 对称加密: 加密密钥和解密密钥相同
- 非对称加密: 加密密钥和解密密钥不相同
在对称加密中,密钥就是一个数字,长度越长, 破解越困难,加解密流程如下:
非对称加密有两个密钥,一个公钥一个私钥。 加密和解密使用不同的密钥。加解密流程如下:
除了公钥加密,私钥解密;也可以使用私钥加密,公钥解密。两者都有着实际的应用。
- 公钥加密,私钥解密。主要用于通信
- 私钥加密(签名),公钥解密(验证), 用于数字签名
加密算法汇总
不同的加密类型,对应的加密算法有:
- 基于算法的加密算法, 也称为古典加密算法, 比如base64, 比特币生成地址使用的base58。 这类算法对原始内容进行置换和替换得到密文, 安全性依赖于算法是否外泄。
- 对称加密算法。 加解密使用同一个密钥。算法常见的有DES、3DES、AES。安全性从依赖算法转向依赖于密钥。
- 非对称加密。 加解密使用同不同的密钥。常见算法:RSA, DH , ECC。
对称加密 非对称加密 DES , AES ,3DES,PBE RSA ,DH, ECC - DES已经被AES所取代
对称加密算法
- DES , 数据加密算法
DEA( Data Encryption Algorithm, 数据加密算法)。
- 1997 年 DES标准正式发布, 分组长度64比特,其中8比特为奇偶校验位, 所以实际长度为56比特。
DES密钥的实质长度是56比特(7个字节)。
示例:- 二进制: 01010001 11101100 01001011 00010010 00111101 01000010 00000010
- 十六进制:51 EC 4B 12 3D 42 02
- 十进制:2305928028626269954
可以使用两个DES密钥(DES-EDE2)和三个DES密钥(DES-EDE3)。DES-EDE2长度112比特(14个字节),DES-EDE3长度168比特(21字节)。
示例:- DES-EDE2: 51 EC 4B 12 3D 42 03 30 04 D8 98 95 93 3F
- DES-EDE3: 51 EC 4B 12 3D 42 03 30 04 D8 98 95 93 3F 24 9F 61 2A 2F D9 96
-
AES
密钥长度可以从128、192和256个比特中选择。 -
PBE 基于口令的密码
PBE ( Password Based Encryption, 基于口令的密码)。是一种基于口令生成密钥, 并使用该密钥进行加密的方法。
加密和解密使用的是同一个密钥。
-
如同饭菜上加盐会改变饭菜的味道, 口令中加盐会改变生成的KEK值。
-
KEK (Key Encryting Key,密钥加密密钥), 将盐和口令通过单向散列函数, 得到的散列值就是用来加密密钥的密钥。
在Java语言中使用PBE 加密可以参考:
Java使用PBE算法进行对称加解密最简入门和示例非对称加密的理解
非对称加密来源于数学中的大质因数分解很难的问题,基于欧几里得的证明, 每个数只有一种质因数分解, 一个大整数分解成一堆质数很难。
理解非对称加密, 需要回顾一下下面的数学概念:- 素数:又称质数,指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。
- 互质,又称互素。若N个整数的最大公因子是1,则称这N个整数互质。
- 模运算即求余运算。比如 10%3 , 10除以3的余数是1, 所以求模的结果是1。
- 欧拉函数
任意给定正整数n,请问在小于等于n的正整数之中,有多少个与n构成互质关系?
计算这个值的方法就叫做欧拉函数,以φ(n)表示举例来说:
对于一个很小的数 7, 分解为两个质因数的乘积很容易。但是对于一个大一点的数 589 就很难直接得到答案了(589 =19*31),如果一个更大的数呢?比如54225。
以RSA算法为例,公钥与私钥虽然是一对密钥,但密钥值不同,这对密钥值的生成就建基于大素数的乘积与分解上。如果上面对非对称加密还不够了解的话,也可以从颜色的角度理解非对称加密的公私钥。
颜色的比喻
混合颜色是一个单向函数, 两个颜色混合输出第三种颜色很简单, 但是反过来就很难。
首先了解一下什么是互补色:每个颜色都有一个互补色,两个互补色叠加得到白光。
- 张三选了两个互补的颜色, 将其中一个作为公钥发给李四
- 李四选了一个颜色, 他将这个颜色和张三混合色的颜色发给张三
- 张三使用自己保留的颜色,叠加到李四的混合色上面。就得到了李四的颜色。
即使李四混合后的颜色被别人知道了, 也很难破译出李四的颜色。
对称加密和非对称加密的优缺点和应用
- 对称加密速度快
- 非对称加密更安全
非对称加密在实际中会结合对称加密使用。常用的使用非对称算法获得共享密钥,使用对称加密处理数据。这也是https 采用的方式。
-
对称加密和非对称加密
2021-07-12 08:58:411. 对称加密 加密和解密使用同一个秘钥,所以叫做对称加密。常见的对称加密算法:DES,AES等。 其过程可以描述为: 加密:原文 + 密匙 = 密文 解密:密文 - 密匙 = 原文 对称加密通常使用的是相对较小的密钥,一般...1. 对称加密
加密和解密使用同一个秘钥,所以叫做对称加密。常见的对称加密算法:
DES
,AES
等。其过程可以描述为:
- 加密:原文 + 密匙 = 密文
- 解密:密文 - 密匙 = 原文
对称加密通常使用的是相对较小的密钥,一般小于
256 bit
。如果你的密钥有1 MB
大,黑客们可能永远也无法破解,但加密和解密的过程要花费很长的时间。密钥的大小既要照顾到安全性,也要照顾到效率,是一个trade-off
。面临的最大的问题为:秘钥的分发。就是说,解密方如何获得加密方的秘钥呢?在发送密钥的过程中,密钥有很大的风险会被黑客们拦截。现实中通常的做法是将对称加密的密钥进行非对称加密,然后传送给需要它的人。
1.1
DES
全称为
Data Encryption Standard
,即数据加密标准。1977年被美国联邦政府的国家标准局确定为联邦资料处理标准,并授权在非密级政府通信中使用,随后该算法在国际上广泛流传开来。DES
的密钥长度为64
位,由于第n*8(n=1,2,…8)
是校验位,因此实际参与加密的长度为56
位,密钥空间含有2^56
个密钥。DES
算法是一种分组加密机制,将明文分成N
个组,然后对各个组进行加密,形成各自的密文,最后把所有的分组密文进行合并,形成最终的密文。DES
加密算法在计算机速度提升后的今天被认为是不安全的。(可破解)1.2
AES
全称为
Advanced Encryption Standard
,即高级加密标准。又称Rijndael
加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES
。在
AES
标准规范中,分组长度只能是128
位,也就是说,每个分组为16
个字节(每个字节8
位)。密钥的长度可以使用128
位、192
位或256
位。密钥的长度不同,推荐加密轮数也不同,如下表所示:2. 非对称加密
非对称加密之所以不对称,指的就是加密用一个密钥,而解密的时候用的是另外一个密钥。公钥和私钥是一对,如果用公钥对数据加密,那么只能用对应的私钥解密。如果用私钥对数据加密,只能用对应的公钥进行解密。因为加密和解密用的是不同的密钥,所以称为非对称加密。
(1) A 要向 B 发送信息,A 和 B 都要产生一对用于加密和解密的公钥和私钥。
(2) A 的私钥保密,A 的公钥告诉 B;B 的私钥保密,B 的公钥告诉 A。
(3) A 要给 B 发送信息时,A 用 B 的公钥加密信息,因为 A 知道 B 的公钥。
(4) A 将这个消息发给 B (已经用 B 的公钥加密消息)。
(5) B 收到这个消息后,B 用自己的私钥解密 A 的消息。其他所有收到这个报文的人都无法解密,因为只有 B 才有 B 的私钥。上面流程来自博客:加解密篇 - 非对称加密算法 (RSA、DSA、ECC、DH)
也就是说,在网上所传递的只是公钥,而对于传递的数据来说,一般都使用(对方)公钥加密、(自己)私钥解密,而私钥自由自己知道,故而可以保证信息不被破解。
虽然信息可以保证不被破解,但是因为其双方公钥公开,故而可以尝试伪造数据。也就是,报文在发送中途存在着被替换的风险,对于
A
而言我们需要确保这个数据确实是B
发过来的,而这里就需要使用到数字签名。2.1 数字签名
我们知道
hash
算法不可逆,比如MD5
。对于任意文件或者数据,我们都可以得到一个摘要,即hash
值。首先可以
A
将要发送信息进行Hash
函数,生成信件的摘要。再将摘要用私钥加密,这个加密后的摘要就是数字签名。注意数字签名是用私钥进行加密的,而不是用公钥。然后将发送信息和数字签名发给
B
。B
将数字签名用A
的公钥解密进行解密,得到信件的摘要。再对发送信息使用Hash
函数,将得到的结果,与上一步得到的摘要进行对比。如果两者一致,就证明这封信未被修改过。再用
A
的公钥对数字签名进行解密。然后将解密后的文件用hash
得出摘要,再与数字签名的结果进行对比,如果摘要相同,就证明是A发的。但这个对比是基于
A
已经确保收到的公钥确实是B
的前提,但是这个过程如果存在一个中间人,也给A
发送自己的公钥,那么如何确保A
收到的就是B
的公钥?(无法确定公钥是否真的属于目标对象。)2.2 数字证书
显然,我们需要一种技术来确保发送发获取的公钥是目标对象的公钥。也就是:数字证书(
Digital Certificate
)。两人无法互相相信时,此时就需要一个权威的第三者,这是一个签发数字证书的权威机构,叫”证书中心"(
certificate authority
,简称CA
)。要有这个机构的数字证书,不仅包括了公钥,还包括了域名,签发机构,有效期,签名等,
CA
机构的认证很严格,跟我们的身份认证一样,因此可以相信。数字证书就像身份证,
CA
机构就是派出所。A
作为服务器一端,需要把自己的证书给B
看。然后B
到CA
查看此证书是否是真实的。那么,如何确保这个CA不是第三方伪造的呢?
答案是:直接把最权威的几个
CA
机构证书放到用操作系统中。其实,之后只需要使用信任链,即机构1
说机构2
可以信任,那我们就可以信任2
,机构2
说机构3
信任,那我们就可以信任机构3
。这样我们就可以信任很多个CA
机构分发的证书了。2.3 常见的非对称加密算法
常见的非对称加密算法有
RSA
、DSA
。2.3.1
RSA
RSA
是一种目前应用非常广泛、历史也比较悠久的非对称秘钥加密技术,在1977年被麻省理工学院的罗纳德·李维斯特、阿迪·萨莫尔和伦纳德·阿德曼三位科学家提出,由于难于破解,RSA 是目前应用最广泛的数字加密和签名技术,比如国内的支付宝就是通过RSA
算法来进行签名验证。它的安全程度取决于秘钥的长度,目前主流可选秘钥长度为
1024
位、2048
位、4096
位等,理论上秘钥越长越难于破解。支付宝的官方文档上推荐也是2048
位,当然更长的秘钥更安全,但也意味着会产生更大的性能开销。2.3.2
DSA
即
Digital Signature Algorithm
,数字签名算法,他是由美国国家标准与技术研究所(NIST)与1991年提出。和RSA
不同的是DSA
仅能用于数字签名,不能进行数据加密解密,其安全性和RSA相当,但其性能要比RSA快。
3. 对比总结
- 对称加密技术的优点加密一计算量小,速度快。缺点是,加密方和解密方必须协商好秘钥,且保证秘钥安全,如果一方泄露了秘钥整个通信就会被破解,加密信息就不再安全了。
- 非对称机密技术使用两个秘钥进行加解密,一个叫做公钥,一个叫做私钥,私钥自己来保管,公钥可以公开,使用公钥加密的数据必须使用私钥解密,反之亦然。非对称加密技术安全性更好,但性能更慢。
4. 混合加密
前文提到了:
- 对称加密运算快,但是秘钥的分发问题确是其难点;
- 非对称加密运算慢,但是安全性能通过公私钥对、数字签名、数字证书等可以得到保证,但是速度慢;
在混合加密机制中,交换密钥的环节使用非对称加密,之后的通信则使用对称加密。
也就是说只要保证了在对称加密中的密钥的安全性,就可以使用更加快速的对称加密技术来进行消息的通信。
混合加密(
hybrid encryption
)是2018
年全国科学技术名词审定委员会公布的计算机科学技术名词。具体的实现思路是先使用对称加密算法对数据进行加密,然后使用非对称加密算法对对称加密的密钥进行非对称加密,之后再把加密后的密钥和加密后的数据发送给接收方。
Thanks
-
对称加密非对称加密
2016-11-15 13:23:37rsa加密 非对称加密 -
ECC非对称加密|椭圆加密算法示例-易语言
2021-06-12 17:00:23椭圆曲线密码编码学,是目前已知的公钥体制中,对每比特所提供加密强度 最 高的一种体制。在软件注册保护方面起到很大的作用,一般的... 简单地说,对称加密不如非对称加密,非对称加密里面的几种算法目前又以ECC最强. -
使用openssl实现rsa非对称加密算法示例
2020-10-26 08:44:50主要介绍了使用openssl实现rsa非对称加密算法的示例,大家参考使用吧