数据加密技术——对称加密和非对称加密

2024-03-13 19:40

本文主要是介绍数据加密技术——对称加密和非对称加密,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、数据加密技术

        加密是指对数据进行编码变换,使其看起来毫无意义,但同时却仍可以保持其可恢复的形式的过程。在这个过程中,被变换的数据称为明文,它可以是一段有意义的文字或者数据,变换后的数据称为密文。加密机制有助于保护信息的机密性和完整性,有助于识别信息的来源,它是最广泛使用的安全机制。

        传统加密算法主要包括代换加密和置换加密两种。代换加密的方法是,首先构造一个或多个密文字母表,然后用密文字母表中的字母或字母组来代替明文字母或字母组,各字母或字母组的相对位置不变,但其本身改变了;置换加密将明文中的字母重新排列,字母本身不变,但其位置改变了。传统加密算法具有设计简单的特点,曾经得到大量使用。但它们的一个主要弱点是,算法和密钥密切相关。攻击者可以根据字母的统计和语言学知识,相对容易破译密文,尤其是在计算机技术高度发展的今天,可以充分利用计算机进行密文分析。

        从 20 世纪 60 年代开始,随着电子技术、计算机技术的迅速发展,以及结构代数、可计算性和计算复杂性理论等学科的研究,密码学又进入了一个新的发展时期。在 20 世纪 70 年代后期,对称加密算法和非对称加密算法的出现,成为了现代密码学发展史中的两个重要里程碑。

二、对称加密

        对称加密算法也称为私钥加密算法,是指加密密钥和解密密钥相同,或者虽然不同,但从其中的任意一个可以很容易地推导出另一个。其优点是具有很高的保密强度,但密钥的传输需要经过安全可靠的途径。对称加密算法有两种基本类型,分别是分组密码和序列密码。分组密码是在明文分组和密文分组上进行运算,序列密码是对明文和密文数据流按位或字节进行运算。

        对称加密是一种使用相同密钥进行加密和解密的加密技术。在对称加密过程中,加密和解密所使用的密钥是相同的,如下图所示。

对称加密的基本步骤

  1. 明文数据(原始数据):需要进行加密的数据。

  2. 密钥生成:选择一个安全的密钥,长度通常为128位、192位或256位等。

  3. 加密算法:将明文数据和密钥作为输入,通过特定的加密算法生成密文数据(加密后的数据)。

  4. 密文数据传输:通过网络或其他渠道安全地传输密文数据。

  5. 解密算法:接收方使用相同的密钥和相同的加密算法对密文数据进行解密。

  6. 解密:解密算法将密文数据和密钥作为输入,并还原出原始的明文数据。

对称加密的优点

  • 效率高:对称加密的加解密速度快,适用于大量数据的加密和解密。
  • 实现简单:对称加密算法通常比非对称加密算法更容易实现和部署。
  • 适用性广泛:对称加密可以用于保护数据的机密性和隐私性。

对称加密的缺点

  • 密钥分发和管理:发送方和接收方需要事先共享相同的密钥,且密钥的安全性和保密性非常重要。
  • 安全性限制:对称加密算法的安全性依赖于密钥的安全性,如果密钥泄露,可能会导致数据的机密性被破坏。
  • 双方通信:对称加密适用于两个相互信任的通信方,但如果需要实现多方通信,密钥的分发和管理将变得更加困难。

对称加密的适用场景:

  1. 数据传输保密性:对称加密可用于保护敏感数据在网络传输过程中的机密性。例如,当通过互联网或内部网络传输敏感数据时,对称加密可确保只有授权用户能够解密和读取数据。

  2. 存储介质加密:对称加密可用于保护存储介质上的数据。例如,硬盘或移动存储设备上的数据可以使用对称加密算法进行加密,以免遭到未经授权的访问和泄露。

  3. 数据库加密:对称加密可用于数据库中的敏感数据的加密。这样做可以保护数据库中的数据,即使数据库被非法访问或备份文件被窃取,敏感数据也不会暴露。

  4. 身份验证和权限控制:对称加密可用于身份验证和权限控制的场景。例如,在登录过程中,可以使用对称加密算法来加密和验证用户提供的凭据信息,确保只有合法用户能够进行访问。

  5. 文件加密:对称加密可用于加密单个文件或文档。这对于需要在本地计算机上保护某些文件或文档的机密性非常有用,确保只有授权用户能够解密和访问这些文件。

因其加密效率较高,适合对数据量较大的信息进行加密。

对称加密的常见算法

  1. DES(Data Encryption Standard):是一种广泛使用的对称加密算法,具有56位密钥长度。它已经被AES所取代,但在某些遗留系统中仍在使用。

  2. 3DES(Triple Data Encryption Standard):使用三个独立的DES操作来加密数据,提供更高的安全性。它的密钥长度可以为56位或168位。

  3. AES(Advanced Encryption Standard):是一种高级加密标准,目前被广泛认可和采用。它支持128位、192位和256位密钥长度,提供更高的安全性和性能。

  4. RC4(Rivest Cipher 4):是一种流密码,被广泛用于加密通信和保护数据的机密性。然而,由于某些安全性弱点,现在已经不推荐使用。

  5. Blowfish:是一种快速且高度安全的对称加密算法,可适用于各种应用场景。它支持可变长度密钥,最长可达到448位。

  6. IDEA(International Data Encryption Algorithm):是一种块密码算法,常用于加密通信。它使用128位密钥,并以64位为单位处理数据。

扩展

3DES加解密的简略过程:

3DES(三重DES):两个56位的密钥K1、K2
                                加密: K1加密 -> K2解密 -> K1加密
                                解密: K1解密 -> K2加密 -> K1解密

三、非对称加密

        非对称加密(Asymmetric Encryption)是一种加密算法,使用两个不同但相关联的密钥进行加密和解密操作。这两个密钥被称为公钥(Public Key)和私钥(Private Key)。

        公钥是可以公开分享的密钥,用于加密数据或验证数字签名。私钥是保密的,并且只有密钥的所有者可以使用它来解密数据或生成数字签名。

        非对称加密算法的工作原理基于数学上的难题,例如大数分解、离散对数等。这些问题被认为在计算上是耗费巨大的,因此使得破解密钥变得非常困难。

        非对称加密算法也称为公钥加密算法,是指加密密钥和解密密钥完全不同,其中一个为公钥,另一个为私钥,并且不可能从任何一个推导出另一个。它的优点在于可以适应开放性的使用环境,可以实现数字签名与验证,其加解密过程如下图所示。

过程解释:

  1. 密钥生成阶段:

    • 接收方生成一对密钥:公钥和私钥。
    • 公钥可以公开给其他人使用,私钥必须保密。
  2. 加密阶段:

    • 发送方使用接收方的公钥对要传输的数据进行加密。
    • 发送方只能使用公钥进行加密,无法解密被加密的数据。
  3. 传输阶段:

    • 加密后的数据通过不安全的通道传输给接收方。
  4. 解密阶段:

    • 接收方使用自己的私钥对加密的数据进行解密。
    • 只有接收方拥有私钥,可以解密被加密的数据。

非对称加解密的使用场景:

  1. 安全通信:非对称加密可用于保护敏感信息在不安全的网络上的传输。发送方使用接收方的公钥加密数据,而只有接收方持有私钥才能解密数据。这样可以确保数据在传输过程中的机密性和完整性。

  2. 数字签名:非对称加密可用于生成和验证数字签名,以确保数据的完整性和身份验证。发送方使用自己的私钥对数据进行签名,接收方使用发送方的公钥验证签名的真实性。

  3. 密钥交换:非对称加密可用于安全地交换对称密钥。发送方使用接收方的公钥加密对称密钥,接收方使用自己的私钥解密对称密钥。之后,发送方和接收方可以使用对称密钥进行加密和解密数据,以提高效率。

  4. 身份验证:非对称加密可用于用户身份验证。用户可以通过生成一个密钥对,并将公钥存储在服务器上。当用户进行登录时,服务器使用用户的公钥加密一个随机挑战,用户使用私钥解密挑战并发送回服务器,以证明其拥有相应的私钥。

  5. 安全协议:非对称加密被广泛应用于安全协议,如SSL/TLS协议用于加密网站的传输层通信,SSH协议用于安全远程登录和文件传输,以及PGP(Pretty Good Privacy)协议用于电子邮件和文件加密等。

非对称加解密的优点:

  1. 安全性:非对称加密算法提供了更高的安全性。与对称加密算法不同,非对称加密使用一对相关联的密钥,即公钥和私钥。公钥用于加密数据,而私钥用于解密数据或生成数字签名。私钥保持机密,只有密钥的所有者可以解密数据或生成数字签名,从而保护了数据的机密性。

  2. 密钥交换:非对称加密算法可用于安全地交换对称密钥。在对称加密中,如果要在不安全的通信渠道上传输对称密钥,存在密钥泄露的风险。而非对称加密算法通过使用对方的公钥来加密对称密钥,可以安全地将对称密钥传输给通信方,从而避免了这个风险。

  3. 灵活性:非对称加密算法在密钥管理和分发方面更加灵活。由于公钥可以公开分享,使得密钥的分发更加便捷,适用于多方通信和复杂的网络环境。

非对称加解密的缺点:

  1. 计算复杂性:相比对称加解密算法,非对称加解密算法的计算复杂性更高。由于使用了大数运算和复杂的数学算法,非对称加解密需要更多的计算资源和时间。

  2. 处理速度较慢:由于计算复杂性的增加,非对称加解密的处理速度较慢。相对于对称加解密算法,在相同的硬件环境下,非对称加解密需要更长的时间来完成加解密操作。

  3. 密钥长度较长:为了保证足够的安全性,非对称加解密所使用的密钥长度通常较长。长密钥长度会增加密钥的存储和传输的开销,对于资源受限的设备或网络通信中可能带来不便。

  4. 密钥管理困难:非对称加解密需要管理和保护两个相关联的密钥,即公钥和私钥。对于大规模应用或者复杂的网络环境,密钥的生成、分发、存储和撤销等管理过程相对较为复杂。

  5. 安全性依赖私钥保护:非对称加解密的安全性依赖于私钥的保护。如果私钥被泄露、遗失或者被破解,将会对系统的安全性产生重大威胁。

常见的非对称加密算法:

  1. RSA(Rivest-Shamir-Adleman):RSA是最常用的非对称加密算法之一。它基于大数分解的困难性问题,使用公钥和私钥进行加密和解密操作。

  2. Diffie-Hellman 密钥交换:Diffie-Hellman密钥交换算法用于在不安全的通信渠道上安全地交换对称密钥。它允许两个实体在不共享密钥的情况下协商出一个共享的密钥。

  3. Elliptic Curve Cryptography(ECC):ECC是一种基于椭圆曲线理论的非对称加密算法。相对于传统的非对称加密算法,ECC可以提供相同的安全性,但使用更短的密钥长度,因此在资源受限的设备上更加高效。

  4. DSA(Digital Signature Algorithm):DSA是一种用于数字签名的非对称加密算法。它主要用于身份验证、数据完整性保护和防止抵赖。

  5. ECDSA(Elliptic Curve Digital Signature Algorithm):ECDSA是基于椭圆曲线的数字签名算法,与RSA和DSA相比,具有更短的密钥长度和更高的计算效率。

这篇关于数据加密技术——对称加密和非对称加密的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/805986

相关文章

【服务器运维】MySQL数据存储至数据盘

查看磁盘及分区 [root@MySQL tmp]# fdisk -lDisk /dev/sda: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical)

SQL Server中,查询数据库中有多少个表,以及数据库其余类型数据统计查询

sqlserver查询数据库中有多少个表 sql server 数表:select count(1) from sysobjects where xtype='U'数视图:select count(1) from sysobjects where xtype='V'数存储过程select count(1) from sysobjects where xtype='P' SE

数据时代的数字企业

1.写在前面 讨论数据治理在数字企业中的影响和必要性,并介绍数据治理的核心内容和实践方法。作者强调了数据质量、数据安全、数据隐私和数据合规等方面是数据治理的核心内容,并介绍了具体的实践措施和案例分析。企业需要重视这些方面以实现数字化转型和业务增长。 数字化转型行业小伙伴可以加入我的星球,初衷成为各位数字化转型参考库,星球内容每周更新 个人工作经验资料全部放在这里,包含数据治理、数据要

如何在Java中处理JSON数据?

如何在Java中处理JSON数据? 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将探讨在Java中如何处理JSON数据。JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,在现代应用程序中被广泛使用。Java通过多种库和API提供了处理JSON的能力,我们将深入了解其用法和最佳

两个基因相关性CPTAC蛋白组数据

目录 蛋白数据下载 ①蛋白数据下载 1,TCGA-选择泛癌数据  2,TCGA-TCPA 3,CPTAC(非TCGA) ②蛋白相关性分析 1,数据整理 2,蛋白相关性分析 PCAS在线分析 蛋白数据下载 CPTAC蛋白组学数据库介绍及数据下载分析 – 王进的个人网站 (jingege.wang) ①蛋白数据下载 可以下载泛癌蛋白数据:UCSC Xena (xena

Java实现MD5加密总结

Java实现MD5加密总结 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 1. 什么是MD5加密 MD5是一种常用的哈希算法,用于将任意长度的数据通过哈希运算转换为固定长度的数据串,通常为128位的二进制串,常用于对密码等敏感信息进行加密存储或传输。 2. Java实现MD5加密的方法 2.1 使用java.sec

中国341城市生态系统服务价值数据集(2000-2020年)

生态系统服务反映了人类直接或者间接从自然生态系统中获得的各种惠益,对支撑和维持人类生存和福祉起着重要基础作用。目前针对全国城市尺度的生态系统服务价值的长期评估还相对较少。我们在Xie等(2017)的静态生态系统服务当量因子表基础上,选取净初级生产力,降水量,生物迁移阻力,土壤侵蚀度和道路密度五个变量,对生态系统供给服务、调节服务、支持服务和文化服务共4大类和11小类的当量因子进行了时空调整,计算了

【计算机网络篇】数据链路层(12)交换机式以太网___以太网交换机

文章目录 🍔交换式以太网🛸以太网交换机 🍔交换式以太网 仅使用交换机(不使用集线器)的以太网就是交换式以太网 🛸以太网交换机 以太网交换机本质上就是一个多接口的网桥: 交换机的每个接口考研连接计算机,也可以理解集线器或另一个交换机 当交换机的接口与计算机或交换机连接时,可以工作在全双工方式,并能在自身内部同时连通多对接口,使每一对相互通信的计算机都能像

使用Jsoup抓取数据

问题 最近公司的市场部分布了一个问题,到一个网站截取一下医院的数据。刚好我也被安排做。后来,我发现为何不用脚本去抓取呢? 抓取的数据如下: Jsoup的使用实战代码 结构 Created with Raphaël 2.1.0 开始 创建线程池 jsoup读取网页 解析Element 写入sqlite 结束

Excel实用技巧——二级下拉菜单、数据验证

EXCEL系列文章目录   Excel系列文章是本人亲身经历职场之后萌发的想法,为什么Excel覆盖如此之广,几乎每个公司、学校、家庭都在使用,但是它深藏的宝藏功能却很少被人使用,PQ、BI这些功能同样适用于数据分析;并且在一些需要简单及时的数据分析项目前,Excel是完胜python、R、SPSS这些科学专业的软件的。因此决心开启Excel篇章。 数据分析为什么要学Excel Excel图表