什么是密码学?

什么是密码学?

密码学是一种通过使用编码算法、哈希和签名来保护信息的实践。此信息可以处于静态(例如硬盘驱动器上的文件)、传输中(例如两方或多方之间交换的电子通信)或使用中(在对数据进行计算时)。密码学有四个主要目标:

  • 保密性 – 仅将信息提供给授权男用户。
  • 完整性 – 确保信息未受到操控。
  • 身份验证 – 确认信息的真实性或用户的身份。
  • 不可否认性 – 防止用户否认先前的承诺或操作。

密码学使用许多低级密码算法来实现这些信息安全目标中的一个或多个。这些工具包括加密算法、数字签名算法、哈希算法和其他功能。下面将介绍一些最常用的低级加密算法。

密码学的作用?

密码学起源于在军事和政治人物之间发送敏感信息。可以对消息进行加密,使它们对除预期收件人之外的任何人来说都看起来像是随机文本。

今天,原始的加密技术已被彻底破解。它们被破解到只出现在一些报纸的益智题版块中。幸运的是,该领域在安全性方面取得了重大进展,今天使用的算法依赖严格的分析和数学来保证其安全性。

随着安全性的进步,密码学领域已经扩展到包括更广泛的安全目标。这包括消息身份验证、数据完整性、安全计算等。

密码学是现代社会的基础。它是通过安全超文本传输协议(HTTPS)、安全文本和语音通信,甚至数字货币实现的无数互联网应用程序的基础。

什么是加密?

加密算法是将纯文本消息转换为加密文字的过程。现代算法使用高级数学以及一个或多个加密密钥。这些内容使加密消息变得相对容易,但在不知道密钥的情况下几乎不可能解密。

根据密钥的功能,加密技术分为对称和非对称两类。

什么是对称密钥密码学?

对称密钥加密算法使用相同的加密密钥来加密明文和解密密文。对称加密要求所有预期的消息接收者都可以访问共享密钥。

下图显示了加密和解密如何使用对称密钥和算法,假设各方共享相同的密钥。

在第一个图示中,对称密钥和算法用于将明文消息转换为密文。第二个图示显示了用于将密文转回明文的相同密钥和对称算法。  

最流行的分组密码之一是高级加密标准(AES)。此分组密码支持 128、192 或 256 位密钥。AES 通常与伽罗瓦计数器模式(GCM)结合使用,称为 AES-GCM,以生成经过身份验证的加密算法。

AES 是在全球范围内执行加密的行业标准。它的安全性是众所周知的,高效的软件和硬件实施也很普遍。

什么是非对称(公钥)密码学?

非对称(或公钥)密码学由一组广泛的算法组成。 这些都是基于在一个方向上相对容易执行但不容易逆转的数学问题。

此类问题的一个著名示例是因式分解问题:对于精心选择的素数 p 和 q,我们可以快速计算乘积 N=p*q。但是,仅给定 N,很难恢复 p 和 q

基于因式分解问题的常见公钥密码算法是 Rivest-Shamir-Adleman (RSA) 函数。当与适当的填充方案结合使用时,RSA 可用于多种用途,包括非对称加密。

如果加密方案使用一个密钥(公钥)加密数据,并使用不同但在数学上相关的密钥(私钥)来解密数据,则称为非对称加密方案。

必须无法在只知道公钥的情况下通过计算确定私钥。因此,公钥可以广泛分发,而私钥需要保密和安全。这些密钥一起称为密钥对。

一种热门的非对称加密方案是 RSA-OAEP,它是 RSA 功能与最优非对称加密填充(OAEP)填充方案的组合。RSA-OAEP 通常仅用于加密少量数据,因为它速度慢并且具有比明文大得多的密文。

什么是混合加密?

像 RSA-OAEP 这样的公钥算法效率低于对称算法,因此不常用于直接加密数据。然而,它们通过提供一种密钥交换方式,在加密生态系统中发挥了重要作用。

为了使用对称加密,各方必须共享一个密钥。虽然这个密钥可以通过现有的加密通道发送,但如果我们已经有一个安全通道,我们就不需要新密钥了。相反,我们使用公钥密码学解决了密钥交换问题。

以下是交换对称密钥的两种常用方法。

  • 非对称加密 一方生成对称密钥,然后使用 RSA-OAEP 等算法将密钥加密为另一方的公钥。接收者可以使用他们的私钥解密密文以恢复对称密钥。
  • Diffie-Hellman 密钥交换 –(DH)。Diffie-Hellman 是一种不同类型的公钥加密算法,专门设计用于帮助各方在没有安全通道的情况下就对称密钥达成一致。Diffie-Hellman 基于与 RSA 函数不同的数学问题,并且不如 RSA 灵活。但是,它确实具有更有效的结构,这使其在某些使用场景中更受欢迎。

这种用于密钥交换的公钥加密和用于批量数据加密的对称加密的组合称为混合加密

混合加密使用公钥密码学的独特属性,可以在不受信任的通道上交换秘密信息,并且效率与对称加密相当。这为数据隐私实现了实用的端到端解决方案。

混合加密广泛用于 Web 的数据传输协议,例如传输层安全性协议(TLS)。当您连接到使用 HTTPS(使用 TLS 的 HTTP 安全)的网站时,您的浏览器将协商保护您的连接的加密算法。其中包括用于密钥交换、对称加密和数字签名的算法。

什么是数字签名?

数字签名方案是一种公钥密码学,可确保数据的完整性、真实性和不可否认性。

签名过程可以被认为与使用私钥加密文件非常相似。签名者使用他们的私钥在数字文档(例如文件或一段代码)上生成“签名”。

此签名对于文档/私钥对是唯一的,可以附加到文档并使用签名者的公钥进行验证。数字签名的两种常见算法是带有概率签名方案的 RSA(RSA-PSS)和数字签名算法(DSA)。

什么是消息验证码?

消息验证码(MAC)是数字签名的对称版本。使用 MAC,两方或多方共享一个密钥。一方创建一个 MAC 标签,即数字签名的对称版本,并将其附加到文档中。另一方可以使用用于创建标签的相同密钥来验证消息的完整性。

请注意,多方共享用于创建 MAC 标签的密钥,因此 MAC 不能用于身份验证或不可否认性,因为不清楚是哪一方创建了标签。

MAC 可以是独立的算法,例如 HMAC 散列消息认证码。然而,由于消息完整性几乎总是一种有价值的保证,因此它经常被集成到对称加密算法中,如 AES-GCM。

什么是椭圆曲线密码学?

椭圆曲线密码学(ECC)是一种基于椭圆曲线数学理论的公钥密码学。

ECC 的最大优势在于它可以提供与更传统技术类似的保护级别,但密钥更小,运算更快。ECC 的效率使其非常适合用于计算能力相对较低的设备,例如手机。

ECC 可用于使用 Diffie-Hellman (ECDH) 的椭圆曲线变体进行有效的密钥交换,或使用椭圆曲线数字签名算法(ECDSA)进行数字签名。由于其速度和灵活性,ECC 在互联网上的许多应用程序中被广泛使用。

什么是密码学中的哈希?

加密哈希函数是一种将任意数据转换为固定长度“指纹”的工具。哈希函数经过设计,很难找到两个不同的输入具有相同的指纹,也很难找到指纹与固定值匹配的消息。

与加密方案、签名方案和 MAC 不同,哈希函数没有密钥。任何人都可以计算给定输入的哈希值,并且哈希函数将始终在相同的输入上产生相同的输出。

哈希函数是大型密码算法和协议中的重要组成部分。其中包括数字签名算法、专用 MAC 算法、身份验证协议和密码存储。

什么是加密货币?

加密货币是一种数字货币,其中,交易由去中心化系统而不是由中央权威机构验证和维护。加密货币是密码学应用的一个示例。

加密货币使用许多不同的低级加密算法来创建一个可信且安全的平台。加密货币使用了本页讨论的许多概念 — 椭圆曲线密码学、数字签名、哈希函数等等。将这些算法结合起来,可以在没有集中权限的情况下建立信任和问责制。

什么是后量子密码学?

在过去的几十年里,人们在量子计算方面进行了大量的投资。量子计算机使用量子物理学,可以解决经典计算机无法计算的数学问题,例如因式分解问题。

大型量子计算机将破解我们今天使用的公钥密码系统,包括基于 Rivest-Shamir-Adleman (RSA) 函数的密码系统。这些算法的破解将意味着我们今天使用的许多应用程序和协议丧失机密性和身份验证功能。

尽管当今存在小型量子计算机,但它们太小,无法破解密码算法。目前尚不清楚密码相关的量子计算机(CRQC)是否或何时可用。开发 CRQC 需要重大的科学突破。

后量子密码学(PQC)是指在我们今天使用的计算机上运行的密码算法,并且不知道是否容易受到大规模量子计算机的攻击。

在 AWS Post-Quantum Cryptography 上进一步了解 AWS 研究和工程参与抗量子密码学项目以及与全球密码学界合作的工作组。

什么是加密计算?

到目前为止介绍的工具让您可以使用静态加密和传输中的加密。传统上,数据必须先解密,然后才能用于计算。加密计算通过提供直接对受密码保护的数据进行操作的工具来填补这一空白。

“加密计算”一词涵盖了一系列技术,包括安全多方计算、同态加密和可搜索加密。尽管这些技术在细节上有所不同,但它们都以加密方式保护数据,允许您对受保护的数据执行计算,同时保持该数据的机密性。

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

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

相关文章

设计模式-结构性模式-桥接模式

1.桥接模式定义 桥接模式就是将抽象部分与他的实现部分分离,使他们都可以独立的变化; 桥接模式用一种巧妙地方式处理多层继承存在的问题,用抽象关联来取代传统的多层继承,将类之间的静态继承关系转变为动态的组合关系,…

Leetcode JAVA刷刷站(99)恢复二叉搜索树

一、题目概述 二、思路方向 要解决这个问题,我们可以采用中序遍历二叉搜索树(BST)的方法,因为中序遍历BST会返回一个有序的数组。由于只有两个节点被错误地交换了,所以中序遍历的结果中将有两个位置上的元素是逆序的。…

什么是数据库 DevOps?

原文地址 https://www.bytebase.com/blog/what-is-database-devops/ 在深入研究数据库 DevOps 之前,先回顾一下什么是 DevOps。它没有统一的定义,但我们知道它起源于软件开发方法与部署和运维的结合。 大约 2007 年和 2008 年,软件开发和 I…

.NET8 Web 利用BAT命令 一键部署 IIS - CI-CD基础

1. Windows Server 前置准备 1.1 IIS安装好 1.2 .NET8 Sdk 运行时 安装 官方下载地址:https://dotnet.microsoft.com/zh-cn/download/dotnet/8.0 1.3 创建一个.NET8 WebMvc项目 生成发布包 微软MVC这个项目模板直接创建,发布 2. 利用 BAT 来一键部署…

【STM32】FMC

FMC功能与FSMC类似,但比FSMC更强大,但仅在F4 / F7 / H7等高级一点的MCU上支持,F1不支持。虽然我的是F103,但顺便都看了。 大部分图片来源:正点原子HAL库课程 专栏目录:记录自己的嵌入式学习之路-CSDN博客 目…

Vue 和 Element Plus 弹框组件详解:从基本实现到异步数据加载与自定义内容(实战)

目录 前言1. 基本知识2. 模版3. 实战 前言 主要是通过一个按钮触发一个按钮框,多种方式的逻辑,多种场景 原先通过实战总结,基本的知识推荐阅读: 详细分析Element Plus中的ElMessageBox弹窗用法(附Demo及模版&#x…

秋招复习笔记——嵌入式裸机开发

底层相关的内容,之前掌握的不扎实,现在重新把相关重点记录一下,做个笔记记诵。 相关基础知识 ST简单内容 用的F103ZET6,72MHz,FLASH是512KB,SRAM是64KB,144个引脚,2基本定时器&am…

目标 CDC实例数据库更改密码,预定启动报错SQL 错误代码为“-30082”。SQL 状态为:08001。

更改完CDC目标端实例密码后,登录MC更新存储器密码,存储器可正常连接,启动预定报错如下: 源 IBM Data Replication 未获授权,无法复制到该目标。 登录认证失败。 发生 SQL 异常。SQL 错误代码为“-30082”。SQL 状态…

嵌入式学习——ARM学习(1)

1、存储器 高速缓存(Cache)通常分为三级:L1、L2 和 L3。它们的主要功能和特点如下: 这三级缓存的设计旨在通过层次化存储来优化数据访问速度和处理器性能。 1、L1 缓存: 位置:直接集成在处理器核心内。 大小…

打手机检测算法源码样本展示打手机检测算法实际应用场景介绍

打手机检测算法是一种利用计算机视觉技术来监测和识别人们在特定区域如驾驶舱、考场或其他敏感区域非法使用手机的行为。这种算法对于提高安全性和确保规则的遵守具有重要意义。以下是关于打手机检测算法源码及其实际应用的详细阐述: 1. 算法实现 - 深度学习框架&a…

【selenium点选下拉框】解决无法选中对应选项的问题

需求 使用selenium点击下拉框,选中【是】选项。 代码 方法1 # 点击下拉框 driver.find_element(xpath,//*[id"basicProcessDetail"]/div[2]/div[2]/div[1]/div/div[2]/div/div/div/div[1]/div[2]/form/div[11]/div[1]/div/div/div[1]/div[1]/div/i).…

雷达图概述以及实例

目录 一.雷达图概述1.何为雷达图2.雷达图的构成要素 二.实例(以Excel、Python为例 )1.Excel(2021版)2.Python 一.雷达图概述 1.何为雷达图 雷达图,是一种展现多维度数据间相对重要性或程度的可视化图形。以中心点为起…

LabVIEW高速数据采集关键问题

在LabVIEW进行高速数据采集时,需要关注以下几个关键问题: 数据采集硬件的选择: 高速数据采集需要高性能的数据采集硬件,例如NI PXIe、USB DAQ等模块。硬件的选择应根据采集速率、通道数、精度、以及应用场景的具体需求来确定。 采集速率与带…

ByteBuffer详解

文章目录 1. ByteBuffer是抽象类,他的主要实现类为2. 获取方式3. 核心结构4. 核心API5. 字符串操作 1. ByteBuffer是抽象类,他的主要实现类为 HeapByteBuffer 堆ByteBuffer JVM内的堆内存 —> 读写操作 效率低 会受到GC影响MappedByteBuffer(DirectB…

桥接模式-多类型登录方式的思考

桥接模式-SSO单点登录 背景:(业务细节已脱敏)需求:问题:解决方式: OAuth2.0 实现单点登录四种授权模式桥接模式优化问题代码实现 背景:(业务细节已脱敏) 基于实习期间的一个代码重构的思考——业务细节已脱敏 基于内部旧框架实现业务toB管理系统,需要迁移数据并新的…

uni-app 手记集。

1、uni-app 是一个使用 Vue.js 开发的前端应用的框架&#xff0c;所以不会Vue.js的小伙伴可以先去看看Vue.js的基础教学。 2、.vue文件结构 <template><div class"container"></div> </template><script type"text/ecmascript-6&q…

【DiskGenius硬盘分区】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

TCP系列相关内容

一、TCP上传文件 loop——本地回环测试地址。 void *memset&#xff08;void *s,int c,size_t n&#xff09;——给一个变量设定一个值。 1、“粘包”问题 两次分别发送的数据&#xff0c;被一起接收形成该现象。 原因&#xff1a;TCP流式套接字&#xff0c;数据与数据间没…

前端速通面经八股系列(二)—— HTML篇

HTML高频面经八股目录 1. src和href的区别2. 对HTML语义化的理解3. DOCTYPE(⽂档类型) 的作⽤4. script标签中defer和async的区别5. 常⽤的meta标签有哪些6. HTML5有哪些更新1. 语义化标签2. 媒体标签3. 表单4. 进度条、度量器5.DOM查询操作6. Web存储7. 其他 7. img的srcset属…

三种通过代码创建矢量文件的方法及例子

现有四个点&#xff1a;(1, 1), (2, 2), (3, 3), (4, 4) 以这四个点围起来就是一个面。 如何通过python创建矢量文件。 我们以创建一个面矢量文件为例子&#xff0c;进行阐释。 我们可以使用geopandas、fiona、gdal库完成矢量创建。 geopandas 假设我们创建的矢量文件格式…