浅谈密码学

文章目录

  • 每日一句正能量
  • 前言
  • 什么是密码学
  • 对称加密简述
  • 加密语法
  • Kerckhoffs原则
  • 常用的加密算法
  • 现代密码学的原则
    • 威胁模型(按强度增加的顺序)
  • 密码学的应用领域
  • 后记

在这里插入图片描述

每日一句正能量

人生在世,谁也不能做到让任何人都喜欢,所以没必要去讨好别人,更不必纠结于别人对自己的评价,珍惜那些珍惜自己的人,忽略哪些忽略我们的人,做自己喜欢的自己就好。

前言

密码学作为一门研究信息安全的学科,扮演着保护我们数字化生活的重要角色。在当今信息时代,我们的个人和商业数据面临着越来越多的威胁,如黑客攻击、数据泄露等。而密码学的出现为我们提供了一种科学的方法,能够确保我们的信息在传输和存储过程中不被未授权的人访问和篡改。本文将简要介绍密码学的基本原理和应用领域,以及其在保护数字化生活中的重要性。通过了解密码学的基础知识,我们将能更好地保护个人隐私和敏感信息,建立一个安全可信的网络环境。

什么是密码学

密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学,总称密码学。电报最早是由美国的摩尔斯在1844年发明的,故也被叫做摩尔斯电码。它由两种基本信号和不同的间隔时间组成:短促的点信号 .,读 的 (Di);保持一定时间的长信号—,读答 (Da)。间隔时间:滴,1t;答,3t;滴答间,1t;字母间,3t;字间,5t。

引用自百度百科

官方定义:密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学,总称密码学。

通俗理解:密码学是隐藏信息的科学和艺术,因此它们是保密的,然后"取消隐藏"它们,以便只有预期的接收者才能阅读它们。基本上,我们可以说密码学是秘密消息传递的科学。

对称加密简述

经典密码学关注的是对密码的设计和使用,使得在有第三方窃听者监听消息的情况下,双方能够发送消息而不被监听者看到。监听者可以监视他们之间的所有消息。上面所说的“密码”就是后面我们要说的“加密方案”。所有经典密码学的安全性都依赖于一个秘密——密钥 (key)——由通信双方提前生成并交换而窃听者无法获取。这种方式就是private-key encryption。

在密码学中,我们将加密方案分为private-key (symmetric) encryption和public-key (asymmetric) encryption。

在private-key encryption中,当通信双方想要秘密通信的时候,提前交换一个key。其中一方可以使用这个key来加密一条消息,或者叫明文 (plaintext),然后发送给另一方。因此可以说,其中一方将一个密文ciphertext发送给了另一方。接收者使用key解密这个密文,得到了原始消息。这里的key都是相同的,并且用于明文和密文之间的转换。这也是为什么人们将之称为symmetric encryption。然而asymmetric encryption与之相反,其加密和解密使用的是不同的key。

加密语法

正式地,一个private-key encryption方案由一个消息空间M和三个算法 (Gen 、Enc和Dec) 组成。

  • Gen:密钥生成算法

  • Enc:加密算法

  • Dec:解密算法

这三个算法的功能描述如下:

  1. Gen是一个概率算法,根据某种分布,输出一个密钥k。

  2. Enc将一个密钥k和一个明文消息m作为输入,输出一个密文c,即Enck(m)表示用密钥k对明文消息m进行加密。

  3. Dec将一个密钥k和一个密文c作为输入,输出一个明文消息m。即Deck©表示用密钥k对密文消息c进行解密。

所有由Gen生成的密钥k组成了一个密钥空间,记为K。由Dec生成的密文c 组成了一个明文空间,记为C。

一个加密方案必须满足如下确定性要求:对于每一个由Gen输出的密钥k和每一个明文消息m∈M,Deck (Enck(m) = m

对称加密流程:运行Gen来生成密钥k,当一方想要发送明文消息m给另一方时,

他计算c : = Enck(m),

然后在公开信道中将密文c发送给对方。

接收者收到密文c后,

计算m : = Deck©来得到原始消息。

“ := ”表示确定性等式,假设此处的Enc是确定性的,Enc是概率性的算法

Kerckhoffs原则

“加密方案没有必要保密,它可以被敌人轻易获得。”

也就是说,即使窃听者知道加密方案的所有细节,只要攻击者不知道正在使用的密钥k,这个加密方案应该是安全的。故,Kerckhoffs的原则要求安全性仅仅依赖于密钥k的保密。

理由:

  1. 保密一个密钥k比保密一个相对复杂的加密方案更加容易,尤其是在加密方案被广泛使用的情况下。

  2. 如果诚实方共享的秘密信息被泄漏,更换密钥比更换加密方案容易得多。此外,生成一个新的随机密钥是相对简单的,而设计一个新的加密方案则是一个巨大的工程。

  3. 在广泛部署加密方案之前,鼓励公众对该方案进行审查以检查可能存在的弱点,这是一个显著的好处。进一步地,标准化加密方案可以确保不同用户之间的兼容性,公众将使用经过公开审查的强大的加密方案。这更加令人信服。

故,广泛、公开地传播加密方案的全部细节是有利的。

常用的加密算法

常用的加密算法包括以下几种:

  1. 对称加密算法:对称加密算法使用相同的密钥来进行加密和解密。常见的对称加密算法有DES(Data Encryption Standard)、AES(Advanced Encryption Standard)和3DES(Triple Data Encryption Algorithm)。

  2. 非对称加密算法:非对称加密算法使用一对密钥,一个是公钥用于加密,另一个是私钥用于解密。常见的非对称加密算法有RSA(Rivest-Shamir-Adleman)、Diffie-Hellman和ECC(Elliptic Curve Cryptography)。

  3. 散列算法:散列算法将任意长度的数据转换为定长的哈希值。常见的散列算法有MD5(Message Digest 5)、SHA-1(Secure Hash Algorithm 1)、SHA-256等。

  4. 数字签名算法:数字签名算法使用私钥对消息进行签名,以确保消息的完整性、认证性和不可否认性。常见的数字签名算法有RSA、DSA(Digital Signature Algorithm)和ECDSA(Elliptic Curve Digital Signature Algorithm)。

  5. 密码哈希函数:密码哈希函数是对输入的密码进行哈希运算,以便在存储密码时保护用户的隐私。常见的密码哈希函数有bcrypt、PBKDF2(Password-Based Key Derivation Function 2)和scrypt。

这些加密算法在不同的应用场景中有不同的优势和适用性,选择适合的加密算法取决于安全需求和性能要求。

现代密码学的原则

  • 原则一:形式化定义:明确“安全”到底是什么意思

  • 原则二:精确的假设:事实证明,大多数密码证明依赖于关于某些数学问题的算法难度的目前未被证明的假设

  • 原则三:安全性证明:任何这样的假设都必须明确并精确地陈述。

安全的加密方案应该保证:不管攻击者已经拥有什么信息,密文都不应该泄露关于底层明文的额外信息。

威胁模型(按强度增加的顺序)

  1. 唯密文攻击(Ciphertext-only attack):敌手只观察一个密文(或多个密文),并试图确定关于底层明文(或多个明文)的信息。

  2. 已知明文攻击(Known-plaintext attack):在这里,对手能够学习使用某个密钥生成的一个或多个明文/密文对。然后,对手的目标是推断使用相同密钥产生的其他密文的基础明文的信息。

  3. 选择明文攻击(Chosen-plaintext attack):在这种攻击中,对手可以获得如上所述的明文/密文对,用于其选择的明文。

  4. 选择密文攻击(Chosen-ciphertext attack):攻击者能够额外获得其选择的密文的解密(一些信息),例如,解密攻击者选择的一些密文是否会产生有效的消息。同样,对手的目标是了解使用相同密钥生成的其他密文(对手无法直接获得其解密)的底层明文信息。

密码学的应用领域

密码学的应用领域非常广泛,包括但不限于以下几个方面:

  1. 数据保护和隐私保护:密码学可以用于保护个人数据、商业数据和政府数据的安全。例如,通过加密算法对敏感数据进行加密,使其只能被授权的用户或组织访问。

  2. 网络安全:密码学在网络通信和互联网安全中起着重要作用。例如,SSL/TLS协议使用公钥加密算法和数字签名算法来保证网络通信的安全性和完整性。

  3. 数字货币和区块链:密码学技术支持数字货币(如比特币)的安全交易和账本的可靠性。区块链中的密码学算法确保了交易的匿名性和完整性。

  4. 身份验证和访问控制:密码学技术可以用于验证用户的身份,确保只有合法用户可以访问系统资源。例如,密码学中的哈希函数和数字签名算法可以用于对用户身份进行验证。

  5. 数字版权保护:密码学可以用于保护数字内容的版权。数字水印技术使用密码学算法将一些隐藏的标记嵌入到数字内容中,以便识别和追踪盗版。

  6. 电子投票和选举:密码学也可以用于保证选举和投票的公正性和安全性。通过密码学算法,可以确保选民的投票保密性和选票的完整性。

  7. 安全协议和身份管理:在复杂的网络环境中,密码学可以用于设计安全协议和身份管理系统,以确保通信和交互的安全性。

总之,密码学是保护信息安全和隐私的关键技术,它在各个领域中都有广泛的应用。

后记

密码学是研究如何保护信息的科学和技术领域。它涵盖了加密、解密、认证、数字签名和密钥管理等方面的内容,旨在确保信息在传输和存储过程中的保密性、完整性和可用性。

在现代社会中,我们的个人和商业信息都需要得到保护,以免受到未经授权的访问和篡改。密码学的应用领域非常广泛,涵盖了各个行业和领域,包括网络通信、电子商务、电子支付、云计算、物联网、数字版权保护等。

密码学的核心在于加密算法。通过使用不同类型的加密算法,可以将原始数据转换为密文,以保护数据的机密性。对称加密算法使用相同的密钥进行加密和解密,速度较快,适合用于大量数据的加密。非对称加密算法使用一对密钥进行加密和解密,安全性更高,适合用于密钥的分发和数字签名。

然而,密码学并不是绝对安全的。随着计算机技术的发展和攻击手段的进步,一些加密算法最终会变得不安全。因此,密码学的研究和发展是一个不断进行的过程。专家们致力于研究新的加密算法、协议和技术,以应对不断变化的安全威胁。

在实际应用中,正确使用密码学也非常重要。强密码的选择、密钥管理和安全协议的设计都是保证密码学有效性的关键因素。此外,用户教育和安全意识的提高也是密码学应用的重要组成部分。

总之,密码学在保护信息安全和隐私方面起着重要的作用。对于个人和企业来说,了解密码学的基本概念和原理,正确使用密码学技术,可以有效地提高信息安全水平,保护重要数据免受未经授权的访问和攻击。

转载自:https://blog.csdn.net/u014727709/article/details/135256474
欢迎 👍点赞✍评论⭐收藏,欢迎指正

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

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

相关文章

抖音爬虫批量视频提取功能介绍|抖音评论提取工具

抖音爬虫是指通过编程技术从抖音平台上获取视频数据的程序。在进行抖音爬虫时,需要注意遵守相关法律法规和平台规定,以确保数据的合法获取和使用。 一般来说,抖音爬虫可以实现以下功能之一:批量视频提取。这个功能可以用于自动化地…

Kafka入门二——SpringBoot连接Kafka示例

实现 1.引入maven依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache…

软考38-上午题-【数据库】-关系模式

一、关系模式中的基本术语 关系数据库系统是支持关系模式的数据库系统。 1、关系 一个关系就是一张二维表&#xff0c;每个关系都有一个关系名。 2、元组 表中的一行即为一个元组&#xff0c;对应存储文件中的一个记录值。 3、属性 表中的列称为属性&#xff0c;每一列有一…

构建生物医学知识图谱from zero to hero (3):生物医学命名实体识别和链接

生物医学实体链接 🤓现在是激动人心的部分。对于NLP和命名实体识别和链接的新手,让我们从一些基础知识开始。命名实体识别技术用于检测文本中的相关实体或概念。例如,在生物医学领域,我们希望在文本中识别各种基因、药物、疾病和其他概念。 生物医学概念提取 在这个例子中…

《Linux C编程实战》笔记:信号量

信号量在操作系统的书里一般都有介绍&#xff0c;这里就只写书上说的了。 信号量是一个计数器&#xff0c;常用于处理进程或线程的同步问题&#xff0c;特别是对临界资源访问的同步。临界资源可以简单地理解为在某一时刻只能由一个进程或线程进行操作的资源&#xff0c;这里的…

删除遥感影像raster:另一个程序正在使用此文件,进程无法访问

问题&#xff1a; 在文件夹中删除处理过程得到的临时影像时&#xff0c;出现了上面的问题 os.remove(os.path.join(workspace2.replace(.tif, .cut.tif)))原因&#xff1a; 在文件夹中删除任何内容&#xff0c;比如文本、图片、影像时&#xff0c;都要先关闭这个对象 解决方…

【这个词(Sequence-to-Sequence)在深度学习中怎么解释,有什么作用?】

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;深度学习笔记 &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; Sequence-to-Sequence&#xff08;Seq2Seq&#xff09; Sequence-to-Sequence&#xff08;Seq2Seq…

加密函数f

1. 加密函数f 加密函数f(Ri-1,Ki)是DES中的核心算法,该函数包含选择运算E、异或运算、代替函数组S(S盒变换)、置换运算P,其流程如图所示。 (1)选择运算E与异或运算。选择运算E就是把Ri-1的32位扩展到48位,并与48位子秘钥Ki进行异或运算。具体扩展方式如图所示。 (2…

WordPres Bricks Builder 前台RCE漏洞

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

持续集成,持续交付和持续部署的概念,以及GitLab CI / CD的介绍

引言&#xff1a;上一期我们部署好了gitlab极狐网页版&#xff0c;今天我们介绍一下GitLabCI / CD 目录 一、为什么要 CI / CD 方法 1、持续集成 2、持续交付 3、持续部署 二、GitLab CI / CD简介 三、GitLab CI / CD 的工作原理 4、基本CI / CD工作流程 5、首次设置 …

视界未来:Sora领航AI视频模型的科技进步

随着人工智能技术的飞速发展&#xff0c;AI视频模型正逐渐成为视频内容创作、编辑和呈现的重要工具。在这个充满潜力的领域中&#xff0c;Sora作为一种领先的AI视频模型&#xff0c;正引领着科技的进步&#xff0c;并为我们带来了无限的想象空间。本文将探讨Sora在科技进步中的…

SpringBoot+PDF.js实现按需分片加载预览(包含可运行示例源码)

SpringBootPDF.js实现按需分片加载预览 前言分片加载的效果前端项目前端项目结构前端核心代码前端项目运行 后端项目后端项目结构后端核心代码后端项目运行 项目运行效果首次访问分片加载 项目源码 前言 本文的解决方案旨在解决大体积PDF在线浏览加载缓慢、影响用户体验的难题…

什么是IP地址,IP地址详解

在互联网的世界中&#xff0c;每一台连接的设备都需要一个独特的标识&#xff0c;这就是IP地址。IP地址&#xff0c;全称为“Internet Protocol Address”&#xff0c;即互联网协议地址&#xff0c;它是网络中进行数据传输的基础。下面&#xff0c;我们将对IP地址进行详细的解析…

幻兽帕鲁(Palworld 1.4.1)私有服务器搭建(docker版)

文章目录 说明客户端安装服务器部署1Panel安装和配置docker服务初始化设置设置开机自启动设置镜像加速 游戏服务端部署游戏服务端参数可视化配置 Palworld连接服务器问题总结 说明 服务器硬件要求&#xff1a;Linux系统/Window系统&#xff08;x86架构&#xff0c;armbian架构…

Vue+SpringBoot打造社区买菜系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、系统设计2.1 功能模块设计2.1.1 数据中心模块2.1.2 菜品分类模块2.1.3 菜品档案模块2.1.4 菜品订单模块2.1.5 菜品收藏模块2.1.6 收货地址模块 2.2 可行性分析2.3 用例分析2.4 实体类设计2.4.1 菜品分类模块2.4.2 菜品档案模块2.4.3…

在openEuler中通过KVM可视化安装华为FusionCompute的CNA主机

一、环境说明 在Windows物理主机上通过VMware WorkStation创建一个虚拟机&#xff08;4U4C、16GB内存&#xff0c;400GB磁盘&#xff0c;NAT网络连接&#xff09;&#xff0c;在虚拟机中安装openEuler 22.03 LTS系统&#xff0c;并将该虚拟机作为部署 FusionCompute的服务器&a…

maven3下载地址(含旧版本)

因为现有的3.8版本与IDEA不兼容&#xff0c;我需要下载3.6版本&#xff0c;但是官网的位置非常隐蔽&#xff0c;找了很多资料才看到。故记录一下。Index of /dist/maven/maven-3 选择需要的版本 选择binaries 选择zip文件下载就可以了

Modern C++ std::visit从实践到原理

前言 std::visit 是 C17 中引入的一个模板函数&#xff0c;它用于对给定的 variant、union 类型或任何其他兼容的类型执行一个访问者操作。这个函数为多种可能类型的值提供了一种统一的访问机制。使用 std::visit&#xff0c;你可以编写更通用和灵活的代码&#xff0c;而无需关…

静态时序分析:SDC约束命令set_input_transition详解

相关阅读 静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html DC工具在使用set_drive和set_driving_cell建模输入端口驱动能力时&#xff0c;会自动计算输入端口的转换时间&#xff0c;以及由于电阻或驱动单元带来的额外输入端口延迟。 set_input_tra…

Linux基础知识——命令行模式下命令的执行

文章目录 Linux基础知识——命令行模式下命令的执行开始执行Linux命令Linux基础命令的操作常用Linux命令行操作按键Linux输出错误信息查看 Linux系统在线帮助--help选项man命令info命令其他有用的文件文档百度搜索 文本编辑器&#xff1a;nanonano启动&#xff01; 正确关机方法…