对称加密什么是对称密钥加密(SymmetricKeyEncryption)?对称加密采用对称密码编码技术,其特点是使用相同的密钥进行加密和解密。使用这个密钥既可以加密也可以解密。基本流程:甲方(主导方或服务端)生成加密密钥,私密分享给乙方(客户端或观众方)。加密生成密文或密文解密生成明文常用对称加密算法:DES、3DES、Blowfish、IDEA、RC4、RC5、RC6和AES常用对称加密算法:AES、DES优点:生成密钥的算法是公开的、可计算的量小,加密速度快,加密效率高,密钥短缺点:一方面:双方共用密钥,如果一方的密钥被盗,双方都会受到影响。另一方面:如果为每个客户生成不同的密钥,密钥数量巨大,密钥管理压力大。应用场景:登录信息用户名和密码加密、传输加密、命令加密(如推演、订单操作)非对称加密什么是非对称加密(AsymmetricKeyEncryption)?非对称加密算法需要一对密钥(twoKey):公钥(publickey)和私钥(privatekey)(简称公钥、私钥)。公钥和私钥在生成时是一对。用公钥加密只能用对应的私钥解密。同样,用私钥加密也只能用对应的公钥解密。基本流程:甲方(主导方或服务器端)生成一对密钥(即公钥和私钥),并将其中一个公钥对外公开或私下共享;获得公钥的乙方使用公钥对机密信息进行加密后发送给甲方;甲方再使用自己保存的另一把对应的私钥对加密后的信息进行解密。相当于甲方和乙方各持有一把钥匙。此时,乙方可以是一个“人”,也可以是多个“人”。常用非对称加密算法:RSA、ECC、Diffie-Hellman、ElGamal、DSA(用于数字签名)、计算量大、效率低应用场景:HTTPS(ssl)证书创建、CRS请求证书、金融通讯加密、蓝牙等硬件信息加密配对传输、密钥登录信息验证。RSA和ECC的比较这两种生成公私密钥对的算法都是基于当前计算机中未解决的数学问题。RSA分解极大整数的难度决定了RSA算法的可靠性。ECC椭圆曲线密码学研究。RSA一般加密少量数据,ECC多用于移动设备。与同一个安全ECC密钥相比,两者更短更快。传输的数据量很小。(1)RSA签名算法适用于Verify操作频率高,Sign操作频率低的应用场景。例如,分布式系统中基于能力的访问控制就是这样一种场景。(2)ECDSA签名算法适用于Sign和Verify操作频率相等的应用场景。例如点对点安全通道的建立,阐述了对称加密和非对称加密在管理上的对比:非对称加密比对称加密更有优势,而对称加密在密钥管理和分发上更难,这不是很安全并且会给密钥管理带来负担。非常重。在安全方面:非对称加密算法基于未解决的数学问题,几乎不可能破解。说到对称加密AES,虽然从理论上来说是不可能破解的,但是从计算机发展的角度来说。非对称加密安全性更优越;在速度方面:例如对称加密方式AES的软件实现速度已经达到每秒几兆或几十兆。是非对称加密公钥的100倍,如果用硬件实现,这个比例将扩大到1000倍。对称加密的优缺点:与非对称加密算法相比,对称加密的加密和解密效率要高得多,加密速度也更快。非对称加密的优缺点:安全性更高,公钥公开,密钥自己保管,不需要把私钥给别人。缺点:加解密耗时长,速度慢,只适合加密少量数据。Summary(哈希算法)Summary的特殊之处在于它是一种单向算法。单向哈希函数通常用于生成消息摘要。用户可以通过哈希算法为目标信息生成一个特定长度的唯一哈希值,但不能通过该哈希值反向获取目标的原始信息。(对原始明文不可逆,相同的明文产生相同的摘要)常用Hash算法MD2、MD4、MD5、HAVAL、SHA、SHA-1常用的Hash算法MD5、SHA-1应用场景:1、Hash算法有常用于不可逆密码存储和信息完整性验证。2、文档、音视频文件、软件安装包等进行新旧汇总对比(收到的文件是否被修改过)3、用户名或密码加密存入数据库(大部分数据库不明文存储密钥信息,就像很多登录功能一样,忘记密码无法找回,只能重新设置)4、数字签名和数据找回。SHA-1和MD5的比较:因为都是从MD4派生出来的,所以SHA-1和MD5非常相似。因此,它们的强度和其他特性是相似的。安全性:最显着和最重要的区别是SHA-1摘要比MD5摘要长32位。使用强力技术,生成任何消息使得其摘要等于给定消息的摘要的难度是MD5的2128阶操作和SHA-1的2160阶操作。这样,SHA-1对暴力攻击的抵抗力更强;针对密码分析的安全性:由于MD5的设计,它容易受到密码分析的攻击,而SHA-1似乎不太容易受到此类攻击;速度:在同样的硬件上,SHA-1比MD5运行速度慢数字签名数字签名很简单,就是对上面的摘要进行加密后得到的数字签名。也就是说,数字签名是由明文本身的内容通过哈希算法计算出digest摘要,然后用甲方(或发起人或直接代号A)的私钥加密得到的。简单理解就是数字签名=加密摘要。主要解决你给了我摘要,谁知道摘要是不是你的摘要的问题。如何确保您提供的摘要在到达我之前没有被修改。所以用对方的私钥来加密摘要。如果此时不是个人,而是受信任机构的签名,其实就是公证。数字证书上面提到的非对称加密和Hashdigest的应用场景都是指数字证书。也就是说,数字证书是基于它们生成的。数字证书由甲方(或甲方)向数字证书中心(CA)申请,用CA的私钥对甲方的个人(或甲方组织、企业)信息、公钥等进行加密后获得。相当于公证。数字证书颁发机构(CA)是根证书的制作单位。许多Windows系统中浏览器的根证书是由一个或多个受信任的根证书颁发机构颁发的。(微软和苹果也有根证书颁发机构)。流程如下:1.生成数字证书请求(求你盖章,我准备了东西)。由于原文可能有大量数据,非对称加密和解密比较耗时,导致网络传输数据时间长、量大,所以证书生成请求时,需要进行哈希对原始文本或信息进行摘要(MD5或SHA),这样无论原始信息多长,都可以获得固定的短消息摘要,然后用A(或甲方)的私钥进行数字签名(加密摘要)。然后将签名+个人(或组织、企业)信息+公钥三要素组合成一个CRS(certificaterequest),让CA(数字证书中心)生成数字证书(即CA私钥加密),或者你可以盖章。这样CA会给你一个等同于公证认可的数字证书。生成证书请求2,得到CA签发的证书后解密流程【PS:证书可以上下联动。比如通过根证书得到的子证书的组织也可以生成一个证书,相当于多次加密。此时,证书被解密。需要的过程会分层CA公钥解密】应用场景:常见的https证书,区块链证书,一些金融开户或者蓝牙链接传输等。
