各种加解密算法比较

2023-05-16


一、加密算法介绍

对称加密算法

对称加密算法用来对敏感数据等信息进行加密,常用的算法包括:

DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合。

3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。

AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高;

AES与3DES的比较

算法名称

算法类型

密钥长度

速度

解密时间(建设机器每秒尝试255个密钥)

资源消耗

AES

对称block密码

128、192、256位

1490000亿年

3DES

对称feistel密码

112位或168位

46亿年

非对称加密算法

RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的;

DSA(Digital Signature Algorithm):数字签名算法,是一种标准的 DSS(数字签名标准);

ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学。

ECC和RSA相比,在许多方面都有对绝对的优势,主要体现在以下方面:

抗攻击性强。相同的密钥长度,其抗攻击性要强很多倍。

计算量小,处理速度快。ECC总的速度比RSA、DSA要快得多。

存储空间占用小。ECC的密钥尺寸和系统参数与RSA、DSA相比要小得多,意味着它所占的存贮空间要小得多。这对于加密算法在IC卡上的应用具有特别重要的意义。

带宽要求低。当对长消息进行加解密时,三类密码系统有相同的带宽要求,但应用于短消息时ECC带宽要求却低得多。带宽要求低使ECC在无线网络领域具有广泛的应用前景。

下面两张表示是RSA和ECC的安全性和速度的比较。

攻破时间(MIPS年)

RSA/DSA(密钥长度)

ECC密钥长度

RSA/ECC密钥长度比

104

512

106

5:1

108

768

132

6:1

1011

1024

160

7:1

1020

2048

210

10:1

1078

21000

600

35:1

 

攻破时间(MIPS年)

RSA/DSA(密钥长度)

ECC密钥长度

RSA/ECC密钥长度比

104

512

106

5:1

108

768

132

6:1

1011

1024

160

7:1

1020

2048

210

10:1

1078

21000

600

35:1

RSA和ECC安全模长得比较

功能

Security Builder 1.2

BSAFE 3.0

163位ECC(ms)

1,023位RSA(ms)

密钥对生成

3.8

4,708.3

签名

2.1(ECNRA)

228.4

3.0(ECDSA)

认证

9.9(ECNRA)

12.7

10.7(ECDSA)

Diffie—Hellman密钥交换

7.3

1,654.0

RSA和ECC速度比较

散列加密算法

散列是信息的提炼,通常其长度要比信息小得多,且为一个固定长度。加密性强的散列一定是不可逆的,这就意味着通过散列结果,无法推出任何部分的原始信息。任何输入信息的变化,哪怕仅一位,都将导致散列结果的明显变化,这称之为雪崩效应。散列还应该是防冲突的,即找不出具有相同散列结果的两条信息。具有这些特性的散列结果就可以用于验证信息是否被修改。

单向散列函数一般用于产生消息摘要,密钥加密等,常见的有:

l         MD5(Message Digest Algorithm 5):是RSA数据安全公司开发的一种单向散列算法,非可逆,相同的明文产生相同的密文。

l         SHA(Secure Hash Algorithm):可以对任意长度的数据运算生成一个160位的数值;


SHA-1与MD5的比较

因为二者均由MD4导出,SHA-1和MD5彼此很相似。相应的,他们的强度和其他特性也是相似,但还有以下几点不同:

l         对强行供给的安全性:最显著和最重要的区别是SHA-1摘要比MD5摘要长32 位。使用强行技术,产生任何一个报文使其摘要等于给定报摘要的难度对MD5是2128数量级的操作,而对SHA-1则是2160数量级的操作。这样,SHA-1对强行攻击有更大的强度。

l         对密码分析的安全性:由于MD5的设计,易受密码分析的攻击,SHA-1显得不易受这样的攻击。

l         速度:在相同的硬件上,SHA-1的运行速度比MD5慢。


对称与非对称算法比较

    以上综述了两种加密方法的原理,总体来说主要有下面几个方面的不同:

l         在管理方面:公钥密码算法只需要较少的资源就可以实现目的,在密钥的分配上,两者之间相差一个指数级别(一个是n一个是n2)。所以私钥密码算法不适应广域网的使用,而且更重要的一点是它不支持数字签名。

l         在安全方面:由于公钥密码算法基于未解决的数学难题,在破解上几乎不可能。对于私钥密码算法,到了AES虽说从理论来说是不可能破解的,但从计算机的发展角度来看。公钥更具有优越性。

l         从速度上来看:AES的软件实现速度已经达到了每秒数兆或数十兆比特。是公钥的100倍,如果用硬件来实现的话这个比值将扩大到1000倍。

三.     

二、加密算法的选择

由于非对称加密算法的运行速度比对称加密算法的速度慢很多,当我们需要加密大量的数据时,建议采用对称加密算法,提高加解密速度。

对称加密算法不能实现签名,因此签名只能非对称算法。

由于对称加密算法的密钥管理是一个复杂的过程,密钥的管理直接决定着他的安全性,因此当数据量很小时,我们可以考虑采用非对称加密算法。

在实际的操作过程中,我们通常采用的方式是:采用非对称加密算法管理对称算法的密钥,然后用对称加密算法加密数据,这样我们就集成了两类加密算法的优点,既实现了加密速度快的优点,又实现了安全方便管理密钥的优点。

那采用多少位的密钥呢? RSA建议采用1024位的数字,ECC建议采用160位,AES采用128为即可。.       

     

三、密码学在现代的应用

保密通信:保密通信是密码学产生的动因。使用公私钥密码体制进行保密通信时,信息接收者只有知道对应的密钥才可以解密该信息。

数字签名:数字签名技术可以代替传统的手写签名,而且从安全的角度考虑,数字签名具有很好的防伪造功能。在政府机关、军事领域、商业领域有广泛的应用环境。

秘密共享:秘密共享技术是指将一个秘密信息利用密码技术分拆成n个称为共享因子的信息,分发给n个成员,只有k(k≤n)个合法成员的共享因子才可以恢复该秘密信息,其中任何一个或m(m≤k)个成员合作都不知道该秘密信息。利用秘密共享技术可以控制任何需要多个人共同控制的秘密信息、命令等。

认证功能:在公开的信道上进行敏感信息的传输,采用签名技术实现对消息的真实性、完整性进行验证,通过验证公钥证书实现对通信主体的身份验证。

密钥管理:密钥是保密系统中更为脆弱而重要的环节,公钥密码体制是解决密钥管理工作的有力工具;利用公钥密码体制进行密钥协商和产生,保密通信双方不需要事先共享秘密信息;利用公钥密码体制进行密钥分发、保护、密钥托管、密钥恢复等。

基于公钥密码体制可以实现以上通用功能以外,还可以设计实现以下的系统:安全电子商务系统、电子现金系统、电子选举系统、电子招投标系统、电子彩票系统等。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

各种加解密算法比较 的相关文章

  • MissionPlanner-开发历程-1

    1 Mission Planner 简介 Mission Planner是使用C 开发的开源飞控地面站软件 xff0c 使用MavLink通信协议 xff0c 浏览官方网站 Mission Planner是ArduPilot开源自动驾驶项目
  • 关于SpringSecurity配置中的一些问题解决(登录页面不跳转,报错302)

    1 为何在自定义的登录页面中登录完页面不跳转 xff1f 主要是SpringSecurity在校验csrf跨域时候 xff0c 会传一个csrf相关的随机token值 xff01 在SpringSecurity 4 之后 xff0c 其cs
  • DAY2. jetson nx gpio

    更新 扩展接口说明 xff0c 官方说明文档 xff1a Jetson Xavier NX DevKit Carrier Board Specification v1 0 pdf 分割线 参照这个文档 xff1a https www jet
  • 使用kinect2进行目标跟踪-ROS平台

    之前闲得无聊 xff0c 在ROS平台上调用Kinect摄像头进行目标跟踪检测 首先 xff0c 要在ubuntu下安装好Kinect2和ROS的接口 xff0c 参考http www mamicode com info detail 15
  • 在ROS中使用opencv-灰度处理

    没什么好说的 xff0c 直接看代码理解吧 xff1a include lt ros ros h gt ros标准库头文件 include lt iostream gt C 43 43 标准输入输出库 cv bridge中包含CvBridg
  • GCC的编译流程分为了四个步骤:

    GCC的编译流程分为了四个步骤 1 预处理 xff0c 生成预编译文件 xff08 文件 xff09 xff1a Gcc E hello c o hello i 2 编译 xff0c 生成汇编代码 xff08 s文件 xff09 xff1a
  • Android自定义控件基础

    采用自定义控件解决重复编写代码的问题 总共分三步 1 写好一个自定义模板布局 title XML span class hljs pi lt xml version 61 34 1 0 34 encoding 61 34 utf 8 34
  • String,StringBuffer,StringBuilder的区别(优缺点)

    最近学习到StringBuffer xff0c 心中有好些疑问 xff0c 搜索了一些关于String xff0c StringBuffer xff0c StringBuilder的东西 xff0c 现在整理一下 关于这三个类在字符串处理中
  • nginx+tomcat重复请求

    好久不写技术文章了 xff0c 越发的觉得单纯的讲技术没啥意思 怪不得知乎越来越火 xff0c 因为大家都喜欢看故事 xff0c 不喜欢硬生生的技术文章 笔者今天就来就给大家讲故事 最近网站压力突然增大 xff0c 把带宽都占满了 xff0
  • Android真机获得root权限修改文件权限

    好久没有更新博客了 xff0c 最近因为重装了系统导致所有的配置都不存在了 xff0c 当要修改Android权限去查看数据库文件的时候 xff0c 发现又忘记了怎么去获得修改权限 xff08 其实第一次弄这个内容的时候就费了很大的劲 xf
  • Android完全自定义控件并且实现监听事件

    本篇文章带来Android的完全自定义控件 载体是自定义一个开关的控件 xff0c 并且能够响应事件 xff0c 首先我们先创一个项目 xff0c 名字就叫ToggleView xff0c 修改MainActivity span class
  • 2016年总结,辛勤劳作的一年

    直到刚才听到门外的爆竹声 才意识到这一年 xff0c 快结束了 今天是11月26号 xff0c 其实离2017年还有一段距离 xff0c 趁着今天有空 xff0c 给自己写一篇文章 其实 xff0c 我是很不想说 xff0c 你好 xff0
  • Android屏幕适配实战

    说一下在项目里面遇到的一个问题 xff0c 和解决思路 需求来源于运营小姐姐 xff0c 她们希望在App的搜索关键字前面加上图片醒目效果图如下 布局很简单左边一个SimpleDraweeView xff0c 右边一个TextView xf
  • 定制阿里代码检查,实现你自己的代码规范检查

    几个月前 xff0c 阿里开源了p3c xff0c 我也接到了老大交给我的技术改造 是这样的 xff0c app是老项目了 xff0c 半年前接入了ARouter xff0c 由于Activity繁多 xff0c 就没有去全局支持ARout
  • Fresco内部诟病引起的初次从网络加载PNG图片失败

    如题描述 xff0c 这个问题在项目中存在已久 xff0c 今天由于自己的功能在首页 xff0c 初次启动的体验极其糟糕 xff0c 所以硬下头皮把这个问题解决了 先来描述一下怎么样一个差的体验吧 就是当我第一次加载网络PNG xff08
  • 不用第三方写一个简单的推流软件

    https github com iOSSinger SGLivingPublisher 不用第三方写一个简单的推流软件 6 commits 1 branch 0 releases 1 contributor Objective C 100
  • 【安防百科】视频监控中常用的分辨率

    http www 360doc com content 17 0317 10 33642774 637585058 shtml 在上一节跟大家谈了摄像机的线数 xff0c 线 是模拟时代的产物 xff0c 当今世界早已是数字化的世界 xff
  • ubuntu20.04下的录屏与视频剪辑软件

    ubuntu20 04下的录屏与视频剪辑 一 录屏软件SimpleScreenRecorder安装与使用1 安装2 设置录制窗口参数3 开始录制 二 视频剪辑软件kdenlive的安装1 安装2 启动 一 录屏软件SimpleScreenR
  • 八、Gazebo 学习笔记:附加网格(Mesh)

    官网教程链接 xff1a http gazebosim org tutorials tut 61 attach meshes 概述 先决条件 xff1a 创建一个移动机器人 网格可以在视觉上和传感器上增加模型的真实感 本教程演示了用户如何使
  • Can I become a good programmer without math and algorithms knowledge?

    Knowledge of algorithms has very little to do with programming skill As some random dude on the internet once said 34 Wh

随机推荐

  • MOXA串口服务器的配置

    1 配置AP 步骤一 xff1a 连接网线 xff0c 如果遇到无法连接本地网络就先查看宽带驱动有没有装好 xff0c 另外换一根网线试试 打开网络连接 点属性打开本地连接属性 步骤二 xff1a 更改电脑的IP地址 xff0c 如192
  • 什么是人工智能?

    Extinguished philosophies lie about the cradle of every science as the strangled snakes beside that of Hercules adapted
  • 【基于Python的ROS学习】

    基于Python的ROS学习 1 订阅topic def span class token function listener span span class token punctuation span span class token
  • P2P中DHT网络介绍

    一 P2P 及 DHT 网络简单介绍 xff1a P2P在思想上可以说是 internet 思想 精神 哲学非常集中的体现 xff0c 共同的参与 xff0c 透明的开放 xff0c 平等的分享 xff08 让我想起之前学习过的 xff0c
  • C++ 库

    基础类 1 Dinkumware C 43 43 Library 参考站点 xff1a http www dinkumware com P J Plauger编写的高品质的标准库 P J Plauger博士是Dr Dobb 39 s程序设计
  • APM(PX4-v2) 定高模式相关(AltHold)

    1 分析log文件 xff0c 及其消息的赋值 LOG CONTROL TUNING MSG sizeof log Control Tuning 34 CTUN 34 34 Qhhfffecchh 34 34 TimeUS ThrIn An
  • APM的解锁(ARM)流程

    解锁检测函数 解锁检测函数是arm motors check xff08 xff09 xff0c 作为scheduler每秒运行10此 xff0c 定义在motors cpp中 xff0c 定义如下 define ARM DELAY 20
  • 智能运维就是 由 AI 代替运维人员?

    本文整理自 GOPS2017 上海站演讲 从说到做 大型企业智能运维的360度解析 讲师简介 孙杰 xff0c 国内一线运维专家 xff0c 从业十几载的IT老兵 xff0c 专注于系统 运维 云计算和数据中心管理 xff0c 先后在外企
  • AIOps 风向标!GOPS2018深圳站实录(附白皮书及PPT)

    本文相关下载资料 xff1a 本次大会精彩演讲 PPT 企业级 AIOps 实施建议 白皮书 DevOps 标准体系及能力成熟度模型 盼星星盼月亮 xff0c 2018 GOPS 深圳站终于到来了 xff01 hia hia hia hia
  • Linux UART接口调试技巧

    在嵌入式项目中 xff0c UART接口的使用频率很高 xff0c 多种模块 2G通信模组 蓝牙模块 xff0c 等等 都会通过UART接口与主控MCU相连 本文将梳理UART接口调试流程 xff0c 为调试工作提供参考 xff0c 解决调
  • What do software developers age 30 and over know now that they wish they had known in their 20s?

    Here are a few thoughts I 39 d also recommend a thorough read of Joe Wezorek 39 s answer to this question Life is long I
  • 两款主流摄像头OV7620与OV7670 By Demok

    如今 xff0c 市场上提到可以应用在智能车上的摄像头 xff0c 多如牛毛 到底那一款最适合用在智能车上呢 xff0c 这里DEMOK选取了2款典型的摄像头OV7670与OV7620 xff0c 从其特性和性能等角度 xff0c 剖析摄像
  • 树莓派3B+(07):外网访问Pi Dashboard

    外网访问Pi Dashboard Pi Dashboard Pi 仪表盘 是一个开源的 IoT 设备监控工具 xff0c 目前主要针对树莓派平台 xff0c 也尽可能兼容其他类树莓派硬件产品 你只需要在树莓派上安装好 PHP 服务器环境 x
  • 深度学习的GPU:深度学习中使用GPU的经验和建议

    向AI转型的程序员都关注了这个号 大数据挖掘DT数据分析 公众号 xff1a datadw 深度学习是一个计算需求强烈的领域 xff0c 您的GPU的选择将从根本上决定您的深度学习体验 在没有GPU的情况下 xff0c 这可能看起来像是等待
  • Git仓库集成到VScode

    前提是一种安装了Git xff0c 这里就不再介绍安装过程 xff0c 进入Git官网进行下载安装即可 这里用Gitee作为远程仓库演示 xff0c 首先在gitee上新建仓库 新建完毕 xff0c 生成了HTTPS地址 xff0c 复制该
  • Docker镜像打标签(Tag)和保存镜像的操作

    Docker镜像打Tag标签和保存镜像的操作 示例 xff1a docker tag 192 168 180 204 19080 ai box redis soc 1 0 eve redis soc 1 0 保存镜像 示例 xff1a do
  • 我的2013,梦在路上

    我的2013 xff0c 在路上 今年最后一次给姐姐打电话 xff0c 她在那里像我炫耀自己和爸爸妈妈一起跨年 xff0c 说1314的意义 xff0c 而我还在北京苦逼着 回想2013年对于我来说 xff0c 或许是不错的一年 这一年我进
  • MFC 的CList,CPtrList,CObList,CStringList 的用法之CList

    CList 类 C 43 43 中实现通用数据结构 在程序设计当中经常会出现使用同种数据结构的不同实例的情况 例如 在一个 程序中可以使用多个队列 树 图等结构来组织数据 同种结构的不同实例 也 许只在数据元素的类型或数量上略有差异 如果对
  • 事务是什么?

    事务 xff1a 简单来说 xff0c 事务就是几个操作要作为一个处理单元来完成 xff0c 要么全部完成 xff0c 要么全部不完成 事务可以是一条SQL语句 xff0c 也可以是多条SQL语句或者整个程序 事务日志 xff1a 重做日志
  • 各种加解密算法比较

    一 加密 算法介绍 对称加密算法 对称加密算法用来对敏感数据等信息进行加密 xff0c 常用的算法包括 xff1a DES xff08 Data Encryption Standard xff09 xff1a 数据加密标准 xff0c 速度