对称密钥算法

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

常见的对称加密算法有:

DES:分组式加密算法,以64位为分组对数据加密,加解密使用同一个算法。
  3DES:三重数据加密算法,对每个数据块应用三次DES加密算法。
  AES:高级加密标准算法,是美国联邦政府采用的一种区块加密标准,用于替代原先的DES,目前已被广泛应用。
  Blowfish:是一个64位分组及可变密钥长度的对称密钥分组密码算法,可用来加密64比特长度的字符串。

优点:

  1. 算法公开、计算量小、对称加密算法采用单密钥加密,在通信过程中,数据发送方将原始数据分割成固定大小的块,加密速度快,经过密钥和加密算法逐个加密后,发送给接收方,接收方收到加密后的报文后,结合密钥和解密算法解密组合后得出原始数据,解密速度快
  2. 加密效率高、密钥管理简单、适宜一对一的信息加密传输,加密算法简单
  3. 使用长密钥时安全性较高破解困难

缺点:

  1. 密钥单一安全性得不到保证
    由于加解密算法是公开的,因此在这过程中,密钥的安全传递就成为了至关重要的事了,交易双方都使用相同的密钥。在数据传送前,发送方和接收方必须商定好密钥,如果一方的密钥被泄露,那么加密信息失去安全性。而密钥通常来说是通过双方协商,以物理的方式传递给对方,或者利用第三方平台传递给对方,一旦这过程出现了密钥泄露,不怀好意的人就能结合相应的算法拦截解密出其加密传输的内容
  2. 密钥管理比较困难
    对称加密算法在分布式网络系统上使用较为困难,每对用户每次使用对称加密算法时,都需要使用其他人不知道的惟一钥匙,这会使得发收信双方所拥有的钥匙数量呈几何级数增长,密钥管理成为用户的负担,使用成本较高。
    假设两个用户需要使用对称密钥算法加密然后交换数据,则用户最少需要2个密钥并交换使用,如果企业内用户有n个,则整个企业共需要n×(n-1) 个密钥,密钥的生成和分发将极为困难。
  3. 使用范围不如公钥算法
    而与公开密钥加密算法比起来,对称加密算法能够提供加密和认证却缺乏了签名功能,使得使用范围有所缩小。

公钥算法

这是一种不对称加密算法。公钥算法包括快速公钥算法与传统公钥算法。快速公钥算法与传统公钥算法相比具有更广泛地应用前景,对快速公钥系统的研究是当前公钥系统研究的一个热点。
公钥算法使用两把完全不同但又是完全匹配的一对公钥和私钥。其基本原理是,如果发信方想发送只有收信方才能解读的加密信息,发信者使用收信者的公钥加密信件,收信者使用自己的私钥钥解密信件。

常见的公钥算法有:

RSA:RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公 开作为加密密钥,可用于加密,也能用于签名。
  DSA:数字签名算法,仅能用于签名,不能用于加解密。
  DSS:数字签名标准,技能用于签名,也可以用于加解密。
  ELGamal:利用离散对数原理对数据进行加解密或数据签名,其速度非常慢。

优点:

  1. 安全性高
    算法强度复杂,非对称密码体制有两种密钥,其中一个是公开的,这样就可以不需要像对称密码那样传输对方的密钥了,提高了安全性。由于不对称算法拥有两个密钥,因而特别适用于分布式系统中的数据加密。

缺点:

  1. 效率低
    加解密耗时长、速度慢,只适合对少量数据进行加密,效率非常低,不适合经常为大量的原始信息进行加密。我们可以先用单密钥机制对原始信息进行加密,然后再通过公钥机制对这个单密钥进行加密。算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快。
  2. 公钥认证问题
    有时有些简单的非对称加密算法的应用其安全性比对称加密算法来说要高,但是其不足之处在于无法确认公钥的来源合法性以及数据的完整性。

对称密钥算法和公钥算法的优缺点相关推荐

  1. 国密算法和国际算法的区别

    国密算法 国密即国家密码局认定的国产密码算法,即商用密码. 国密算法是国家密码局制定标准的一系列算法.其中包括了对称加密算法,椭圆曲线非对称加密算法,杂凑算法.具体包括SM1,SM2,SM3等,其中: ...

  2. 公钥和私钥的完全解释(包括对称算法和非对称算法、RSA解释)

    密钥分为两种:对称密钥与非对称密钥 对称密钥加密,又称私钥加密,即信息的发送方和接收方用一个密钥去加密和解密数据.它的最大优势是加/解密速度快,适合于对大数据量进行加密,但密钥管理困难. 非对称密钥加 ...

  3. 国密算法:利用python进行sm4算法的加解密,对称密钥

    本篇利用python中的gmssl库进行sm4算法的加解密演示. 国密算法sm4特点: 密钥长度:16bytes(128bits) 分组长度和密钥长度均为128bits: 是对称加密算法:分为ecb模 ...

  4. java生成sm4算法的对称密钥_技术分享丨这是一篇简单的小科普——什么是对称加密算法?(下)...

    原标题:技术分享丨这是一篇简单的小科普--什么是对称加密算法?(下) 大家好~我是贾正经,又到了干货满满的技术分享趴啦~ 上期我们讲解了对称加密算法的小知识,并介绍了国密算法中SM4算法的原理. 本期 ...

  5. 国密算法java语言的实现:利用bcprov和hutool库分别实现国密SM4算法工具类,对称密钥

    SM4算法成为行业标准: SM4分组密码算法是2012年3月21日实施的一项行业标准: 2021年6月25日,我国SM4分组密码算法作为国际标准ISO/IEC 18033-3:2010/AMD1:20 ...

  6. 【计算机网络】网络安全 : 公钥密码体质 ( 公钥 - 加密密钥 | 私钥 - 解密密钥 | 与对称密钥体质对比 | 特点 | 数字签名引入 )

    文章目录 一.公钥密码体质 二.公钥密码体质 中的 加密密钥 与 解密密钥 三.公钥密码体质 与 对称密钥体质对比 四.公钥密码体质算法特点 五.公钥密码体质 与 数字签名 一.公钥密码体质 公钥密码 ...

  7. C#中用RSA算法生成公钥和私钥

    转自:https://www.cnblogs.com/micenote/p/7862989.html C#中用RSA算法生成公钥和私钥 方法一: 公钥密钥生成后,保存在同名文件夹下面,如下图: 公钥密 ...

  8. k均值聚类算法优缺点_聚类算法之——K-Means算法

    聚类算法属于无监督学习,它将相似的对象归到同一个簇中.K-Means算法是聚类算法中最常用到算法: 1. 预备知识点 距离计算 闵可夫斯基距离 点 之间的闵可夫斯基距离为 欧式距离 点 之间的欧氏距离 ...

  9. etc的常见算法_几个常用算法的适应场景及其优缺点(非常好)

    本文主要回顾下几个常用算法的适应场景及其优缺点! 机器学习算法太多了,分类.回归.聚类.推荐.图像识别领域等等,要想找到一个合适算法真的不容易,所以在实际应用中,我们一般都是采用启发式学习方式来实验. ...

最新文章

  1. PS色调均化滤镜的快捷实现(C#源代码)。
  2. TTL传输中过期的解决办法
  3. Flink异步io应用场景之流表join维表
  4. Go 性能优化技巧 7/10
  5. iOS开发-Bug锦囊
  6. 离散数学复习--第二章:一阶逻辑
  7. 多元函数法曲率和主曲率的几何解释
  8. 超市系统服务器,超市收银系统 服务器 配置
  9. python 人工智能项目代码_7个Python实战项目代码,让你分分钟晋级大神!
  10. 搜索引擎和网站中的高级搜索技巧
  11. [GNSS] GNSS原理:多模导航卫星精密定轨理论
  12. 参与流片是一种怎样的体验?
  13. Intellij IDEA 神级插件
  14. 腾讯云服务器安装win10
  15. 笔记本 原因代码: 0x500ff 关机类型: 关闭电源_图吧垃圾佬关于笔记本电池更换的几项建议...
  16. linux根文件系统目录结构
  17. 闲话链表的诞生以及它与数组亲缘关系的故事
  18. 我的HTML5新的一天新的知识
  19. 阿里云——NLP自学习平台产品体验
  20. 云控系统针对抖音和快手功能是一样的吗?

热门文章

  1. 移臂调度算法java_C语言 磁盘调度模拟
  2. 灾难等级排列 那些尴尬的智能家居设备
  3. Foreign Language_english_感叹句
  4. 把程序作为人生,把人生当作程序
  5. xp系统如何查看计算机用户,xp查看电脑配置、查看电脑型号详细教程和命令
  6. Oracle 时间段查询
  7. 2022.7.19 防火墙知识点
  8. 凯捷面试(1):JavaSE、MySQL数据库、前端
  9. 2018-ACM省赛
  10. Python中的pillow(PIL)