在加密数据时,如何选择合适的算法?

news2024/10/6 0:31:39

我们将分解两种主要类型的加密 - 对称和非对称 - 然后深入研究 5 种最常用的加密算法列表,以前所未有的方式简化它们

加密经常被指责为政治实体隐藏恐怖活动,是始终成为头条新闻的网络安全话题之一。任何对不同类型的加密有充分了解的人都可能会觉得对这种非凡的技术不公正,这是互联网安全和隐私的核心。加密是一种将数据转换为无法破译的格式的方法,以便只有授权方才能访问信息。

加密密钥与加密算法相结合,使加密过程成为可能。而且,根据这些密钥的应用方式,主要使用两种类型的加密方法:“对称加密”和“非对称加密”。这两种方法都使用不同的数学算法(即我们刚才提到的那些加密算法)来扰乱数据。此常见加密算法列表包括 RSA、ECC、3DES、AES 等。

在本文中,我们将了解对称和非对称加密及其用于加密数据的流行加密算法。

让我们讨论一下。

加密类型#1:对称加密

对称加密方法,顾名思义,使用单个加密密钥来加密和解密数据。对两个操作使用单个密钥使其成为一个简单的过程,因此称为“对称”。以下是对称加密工作原理的直观细分:

让我们通过一个简单的例子来了解对称加密过程:

有两个非常亲密的朋友,名叫鲍勃和爱丽丝住在纽约。出于某种原因,爱丽丝不得不搬出城市。他们彼此沟通的唯一方式是通过邮寄。但有一个问题:鲍勃和爱丽丝害怕有人能读到他们的信。

下载:证书生命周期管理 15 个最佳实践指南免费 PDF。

为了保护他们的字母免受某人的注意,他们决定以这样一种方式编写他们的消息,即消息的每个字母都被字母表中七个位置的字母替换。因此,他们不会写“Apple”,而是写“hwwsl”(A -> H,P -> W,L -> S,E -> L)。为了将数据恢复到原始形式,他们必须将字母替换在字母顺序上的七个位置。

当然,这对你来说可能听起来太简单了——事实确实如此。那是因为这种技术在几个世纪前被罗马皇帝和军事将领尤利乌斯·凯撒使用。这种方法被称为“凯撒的密码”,适用于字母替换技术。

今天的加密方法并没有那么简单。广泛使用的加密算法非常复杂,即使是许多超级计算机的综合计算能力也无法破解它们。这就是为什么我们可以放松并无后顾之忧地发送我们的信用卡信息。

是什么让对称加密成为一项伟大的技术

对称加密最突出的特点是其过程简单。这种加密的简单性在于使用单个密钥进行加密和解密。因此,对称加密算法:

  • 比他们的非对称加密对应物快得多(我们将在稍后讨论),
  • 需要更少的计算能力,并且
  • 不要降低互联网速度。

这意味着,当有大量数据需要加密时,对称加密被证明是一个不错的选择。

3 种常见的对称加密算法类型

就像我们在凯撒的密码中看到的那样,每种加密方法背后都有特定的逻辑来扰乱数据。今天使用的加密方法依赖于高度复杂的数学函数,这使得几乎不可能破解它们。

您可能意识到也可能没有意识到的是,存在数百种对称密钥算法!一些最常见的加密方法包括AES,RC4,DES,3DES,RC5,RC6等。在这些算法中,DES 和 AES 算法是最知名的。虽然我们无法涵盖所有不同类型的加密算法,但让我们来看看三种最常见的。

1. DES对称加密算法

DES(数据加密标准)于1976年推出,是最古老的对称加密方法之一。它由IBM开发,用于保护敏感的非机密电子政府数据,并于1977年正式被联邦机构采用。DES使用56位加密密钥,它基于由名叫Horst Feistel的密码学家设计的Feistel结构。DES 加密算法是 TLS(传输层安全性)版本 1.0 和 1.1 中包含的算法之一。

DES 通过将 64 位明文数据块分成两个单独的 32 位块并独立地对每个块应用加密过程,将明文数据块转换为密文。这涉及 16 轮各种过程——例如扩展、排列、替换或使用圆形密钥的 XOR 操作——数据将在加密时经历这些过程。最终,生成 64 位加密文本块作为输出。

今天,DES不再使用,因为它被许多安全研究人员破解。2005 年,DES 被正式弃用,取而代之的是 AES 加密算法,我们稍后会讨论。DES 的最大缺点是其加密密钥长度低,这使得暴力破解变得容易。TLS 1.2是当今使用最广泛的TLS协议,不使用DES加密方法。

2. 3DES对称加密算法

3DES(也称为TDEA,代表三重数据加密算法),顾名思义,是已发布的DES算法的升级版本。3DES的开发是为了克服DES算法的缺点,并于1990年代后期投入使用。为此,它将 DES 算法应用于每个数据块三次。因此,这个过程使3DES比其前身DES更难破解。它也成为金融行业支付系统、标准和技术中广泛使用的加密算法。它也成为加密协议的一部分,如TLS,SSH,IPsec和OpenVPN。

所有加密算法最终都屈服于时间的力量,3DES 也不例外。研究人员Karthikeyan Bhargavan和Gaëtan Leurent发现的Sweet32漏洞消除了3DES算法中存在的安全漏洞。这一发现导致安全行业考虑弃用该算法,美国国家标准与技术研究院 (NIST) 在 2019 年发布的指南草案中宣布弃用。

根据该草案,3DES的使用将在2023年之后的所有新应用程序中取消。同样值得注意的是,SSL / TLS协议的最新标准TLS 1.3也停止了3DES的使用。

3. AES对称加密算法

AES代表“高级加密系统”,是最普遍使用的加密算法类型之一,是作为DES算法的替代品而开发的。AES也被称为Rijndael,在2001年获得NIST的批准后成为加密标准。与 DES 不同,AES 是一系列分组密码,由不同密钥长度和块大小的密码组成。

AES致力于替换和排列的方法。首先,将明文数据转换为块,然后使用加密密钥应用加密。加密过程由各种子过程组成,例如子字节、移位行、混合列和添加轮次键。根据密钥的大小,执行 10、12 或 14 次此类轮次。值得注意的是,最后一轮不包括为加密数据而执行的所有其他子流程中的混合列的子进程。

使用 AES 加密算法的优势

所有这些归结为AES是安全,快速和灵活的。与 DES 相比,AES 是一种更快的算法。多个密钥长度选项是您拥有的最大优势,因为密钥越长,破解它们的难度就越大。

今天,AES是使用最广泛的加密算法 - 它用于许多应用程序,包括:

  • 无线安全,
  • 处理器安全和文件加密,
  • SSL/TLS 协议(网站安全),
  • 无线网络安全,
  • 移动应用加密,
  • 大多数VPN(虚拟专用网络)等。

包括国家安全局 (NSA) 在内的许多政府机构都依靠 AES 加密算法来保护其敏感信息。

加密类型#2:非对称加密

与对称加密方法相比,非对称加密涉及用于加密和解密数据的多个密钥。非对称加密包含两个在数学上相互关联的不同加密密钥。其中一个密钥称为“公钥”,另一个称为“私钥”。因此,为什么非对称加密方法也被称为“公钥加密”。

正如我们在上面的例子中看到的,当Alice和Bob想要交换信息时,对称加密效果很好。但是,如果鲍勃想与数百人安全地通信怎么办?如果他为每个人使用不同的数学键,这是否可行?不是真的,因为那会有很多关键要玩杂耍。

为了解决这个问题,Bob 使用公钥加密,这意味着他将公钥提供给向他发送信息的每个人,并将私钥留给自己。他指示他们使用公钥加密信息,以便只能使用他拥有的私钥解密数据。这消除了密钥泄露的风险,因为数据只能使用 Bob 拥有的私钥进行解密。

是什么让非对称加密成为一项伟大的技术

这种类型的加密的第一个(也是最明显的)优点是它提供的安全性。在这种方法中,公钥(公开可用)用于加密数据,而数据的解密则使用需要安全存储的私钥完成。这可确保数据免受中间人 (MiTM) 攻击。对于每分钟连接到数十万个客户端的Web/电子邮件服务器来说,非对称加密无疑是一个福音,因为它们只需要管理和保护单个密钥。另一个关键点是公钥加密允许创建加密连接,而无需先离线交换密钥。

非对称加密提供的第二个关键功能是身份验证。正如我们所看到的,由公钥加密的数据只能使用与之相关的私钥解密。因此,它确保数据仅由应该接收它的实体查看和解密。简单来说,它验证您正在与您认为自己的人或组织交谈。

非对称加密算法的 2 种主要类型

1. RSA 非对称加密算法

RSA由Ron Rivest,Adi Shamir和Leonard Adleman(因此称为“RSA”)于1977年发明,是迄今为止使用最广泛的非对称加密算法。它的效力在于它所依赖的“素数分解”方法。基本上,这种方法涉及两个巨大的随机素数,这些数字相乘以创建另一个巨型数。这里的难题是从这个巨大的乘法数中确定原始素数。

事实证明,对于今天的超级计算机来说,这个难题几乎是不可能的——如果使用用足够的熵生成的正确密钥长度,更不用说人类了。2010年,一组研究人员进行了研究,他们花了1,500多年的计算时间(分布在数百台计算机上)来破解RSA-768位密钥 - 这远远低于当今使用的标准2048位RSA密钥。

使用 RSA 加密算法的优势

RSA 提供的一大优势是其可扩展性。它有各种加密密钥长度,例如 768 位、1024 位、2048 位、4096 位等。因此,即使成功暴力破解了较低的密钥长度,您也可以使用较高密钥长度的加密,因为暴力破解密钥的难度随着密钥长度的扩展而增加。

RSA 基于一种简单的数学方法,这就是为什么它在公钥基础结构 (PKI) 中的实现变得简单明了的原因。这种对PKI的适应性及其安全性使RSA成为当今使用最广泛的非对称加密算法。RSA 广泛用于许多应用程序,包括 SSL/TLS 证书、加密货币和电子邮件加密。

2. ECC非对称加密算法

1985年,两位名叫Neal Koblitz和Victor S. Miller的数学家提议在密码学中使用椭圆曲线。近二十年后,当ECC(椭圆曲线密码学)算法于2004-05年投入使用时,他们的想法变成了现实。

在 ECC 加密过程中,椭圆曲线表示满足数学方程 (y2= x3+ 斧头 + b)。

与RSA一样,ECC也遵循不可逆性原则。简而言之,在一个方向上计算它很容易,但要逆转它并到达原始点却非常困难。在 ECC 中,表示曲线上一个点的数字乘以另一个数字,并在曲线上给出另一个点。现在,要破解这个难题,您必须找出曲线上的新点。ECC的数学构建方式使得即使您知道原始点,也几乎不可能找出新点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/683963.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

内网穿透工具cpolar——将内网站点发布至公网、远程连接公司内网电脑

在现代互联的时代,我们经常需要将局域网中的服务器或提供给外部网络进行访问。然而,由于内网通常使用私有IP地址,在没有合适的配置和设置的情况下,对外部网络是不可见的。这就引出了内网穿透技术,它允许我们在不暴露真…

从三个角度分析B端产品帮助中心的发展趋势和创新思路

随着企业级(B端)产品在市场上的快速增长,优秀的帮助中心对于提升用户体验和满意度变得尤为重要。本文将从三个维度讨论B端产品帮助中心的发展趋势和创新思路,以帮助企业构建更优秀的帮助体系。 个性化化的帮助体验 在B端产品帮助…

基于瑞芯微camera学习原创文章汇总pdf分享给大家

前面一段时间基于瑞芯微3568平台编写了camera系列文章, 一共12篇,目前更新完毕。 《瑞芯微文章合集》 camera系列文章编写前后一共花费2个月时间, 期间查阅了很多资料,做了很多实验, 根据自己的理解, …

实训笔记6.25

实训笔记6.25 6.25一、座右铭二、知识回顾2.1 JavaSE2.1.1 基本语法2.1.2 数组2.1.3 JVM内存2.1.4 面向对象2.1.5 Java常用类2.1.6 Java异常机制2.1.7 Java泛型2.1.8 Java集合2.1.9 JavaIO流2.1.10 Java注解2.1.11 Java反射机制2.1.12 Java多线程2.1.13 Java网络编程 三、Java多…

利用SpringBoot和javafx进行桌面开发

原文合集地址如下,有需要的朋友可以关注 本文地址 合集地址 众所周知,SpringBoot是一款强大的Javaweb开发程序,这得益于其构造了一个Spring容器,然后通过依赖注入和控制反转,维护起一套Java对象和实例的管理机制&…

Chatgpt三大新功能曝光:记住你是谁/文件上传/切换工作区

今日,一张神秘的截图,曝光了chatgpt还没发布的三个新功能: 除截图外,其对应的源代码也被扒了出来,甚至还有人为此建立了GitHub仓库,以此来追踪代码的变化情况。 根据观察,相关部分代码正在更新…

制作看大片一样的推拉镜头效果,刚一个月AI绘图神器 Midjourney 又又更新了

5.1 版本刚更新一个月,官方又宣布 5.2 版本更新了:改进的美观性、连贯性、更好的文本理解、更清晰的图像、更高的变化模式、缩小绘画,以及用于分析提示符号的新命令 /short 命令‍‍‍‍‍‍‍‍‍ 视觉效果最神奇的功能要数 “Zoom Out” 缩…

使用Rabbitmq死信队列解锁库存

一、库存解锁的场景 RabbitMQ库存解锁的场景有很多,以下是一些常见的场景: 订单取消和订单回滚。下订单成功,订单过期没有支付被系统自动取消、被用户手动取消。都要解锁库存。 下订单成功,库存锁定成功,接下来的业务…

《面试1v1》Redis持久化

🍅 作者简介:王哥,CSDN2022博客总榜Top100🏆、博客专家💪 🍅 技术交流:定期更新Java硬核干货,不定期送书活动 🍅 王哥多年工作总结:Java学习路线总结&#xf…

css基础知识七:元素水平垂直居中的方法有哪些?如果元素不定宽高呢?

一、背景 在开发中经常遇到这个问题,即让某个元素的内容在水平和垂直方向上都居中,内容不仅限于文字,可能是图片或其他元素 居中是一个非常基础但又是非常重要的应用场景,实现居中的方法存在很多,可以将这些方法分成…

3.用python写网络爬虫,下载缓存

目录 3.1 为链接爬虫添加缓存支持 3.2 磁盘缓存 3.2.1 实现 3.2.2缓存测试 3.2.3节省磁盘空间 3.2.4 清理过期数据 3.2.5缺点 3.3 数据库缓存 3.3.1 NoSQL 是什么 3.3.2 安装 MangoDB 3.3.3 MongoDB 概述 3.3.4 MongoDB 缓存实现 3.3.5 压缩 3.3.6 缓存测试 3.4 本章…

变分自编码(VAE,Variational Auto-Encoder)知识点速览

目录 1. 主要思想 2. 训练和推理过程 3. 编码器和解码器的结构 4. 主要用途 5. 相较于 auto-encoder 的优劣 1. 主要思想 变分自编码器(Variational AutoEncoder,简称VAE)是一种生成模型,它通过对数据的隐含表示(l…

红日靶场(一)外网到内网速通

红日靶场(一) 下载地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/ win7:双网卡机器 win2003:域内机器 win2008域控 web阶段 访问目标机器 先进行一波信息收集,扫一下端口和目录 扫到phpmyadmin,还有一堆…

韶音和cleer、南卡对比哪个好?韶音、南卡、Cleer开放式耳机横评

现如今,不管是通勤路上还是在家休闲娱乐,又或者是运动时,经常能看见很多人佩戴着耳机听音乐,但是,经常佩戴耳机听音乐的小伙伴都知道,入耳式耳机佩戴久了,容易造成耳部酸痛感、胀痛感&#xff0…

Android 安卓开发语言kotlin与Java该如何选择

一、介绍 如今在Android开发中,应用层开发语言主要是Java和Kotlin,Kotlin是后来加入的,主导的语言还是Java。kotlin的加入仿佛让会kotlin语言的开发者更屌一些,其实不然。 有人说kotlin的引入是解决开发者复杂的逻辑,并…

【VSCode】设置关键字高亮的插件 | Highlight Word

目录 一、概述二、安装 highlight-words 插件三、配置 highlight-words 插件3.1 默认配置3.2 修改 settings.json 配置文件 四、设置高亮快捷键F8五、效果演示 一、概述 本文主要介绍在 VSCode 看代码时,怎样使某个单词高亮显示,主要通过以下三步实现&am…

Docker的run流程

底层原理 Docker怎么工作? Docker为什么比VM虚拟机块? 1.Docker有比虚拟机更少的抽象层 2.docker利用的是宿主机的内核,vm需要是Guest OS 所以说,新建一个容器的时候,docker不需要像虚拟机一样加载一个系统内核&am…

[conda]tf_agents和tensorflow-gpu安装傻瓜式教程

1.打开终端或Anaconda Prompt&#xff08;Windows用户&#xff09;。 2.输入以下命令创建新的Python环境&#xff1a; conda create --name <env_name> python<version>其中&#xff0c;<env_name>是您想要创建的环境名称&#xff0c;<version>是您想…

保留纵向连续性的迭代次数估算方法

( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 让网络的输入有3个节点&#xff0c;训练集AB各由5张二值化的图片组成&#xff0c;让B全是0&#xff0c;让差值结构中有6个1.其中有3组 差值结构 A-B 迭代次数 行分布 列分布 0 1 1 0 1 1 3*5*1*2*0-0*0*0*0*0 3977.834 0 1 …

springboot中自定义JavaBean返回的json对象属性名称大写变小写问题

文章目录 springboot中自定义JavaBean返回的json对象属性名称大写变小写问题一、继承类二、手动添加Get方法三、JsonProperty四、spring-boot json(jackson)属性命名策略 springboot中自定义JavaBean返回的json对象属性名称大写变小写问题 开发过程中发现查询返回的数据出现自…