【安全与风险】密码学介绍

news/2025/2/6 4:35:18/

密码学介绍

  • 密码
  • 历史密码
  • 换位(Transposition)与置换(Substitution)
    • 替换密码(Substiution Cipher)
      • 凯撒密码 (100BC 公元前100年)
      • 移位密码
      • 破坏替换密码
      • 维吉尼亚密码
  • 现代密码学核心原理
    • 从历史观点上说
  • 模型和定义的重要性
  • 明确假设的重要性
  • 对称和非对称
    • 对称密码:定义
  • 一次性密码本(One-Time Pad)
  • 非对称密码术(公钥密码术)
  • 密钥生成
  • 加密和解密技术
  • 反向使用:数字签名
  • 总结

密码

密码学是一种通过使用密码来保护信息和通信的方法,这样只有信息的使用者才能阅读和处理信息。

前缀“crypt”的意思是“隐藏的”,后缀“graphy”代表“写作”。

历史密码

Scytale(700BC 公元前700年)
斯巴达军队在战斗期间使用Scytale发送敏感信息。

换位(Transposition)与置换(Substitution)

Scytale是转位密码(transposition cipher)的一个例子
我们改变的不是字母,而是顺序。

另一类是替换密码(substitution cipher)
字母改变了,但顺序保持不变。

替换密码(Substiution Cipher)

系统地用字母或字母组替换其他字母或字母组

例如,“fly at once”变成了“gmz bu podf”,将每个字母替换为拉丁字母中后面的字母。

凯撒密码 (100BC 公元前100年)

明文中的每个字母都被字母表中更靠后一些固定位置的字母所取代。

移位密码

考虑加密英文文本
密钥空间:k属于{0, 1, …, 25}
加密:将每个字母x替换成x+k
解密:将每个字母x替换成x-k

  1. ROT13是一个键为13的移位密码。
  2. 凯撒密码是一种密钥为3的移位密码。
    在这里插入图片描述

破坏替换密码

课文中最常见的字母
x,i,e,h

已知密文攻击

  1. 使用英语字母的概率(E:12.7%,T:9.1%,A:8.1%)
  2. 字母对的使用概率(HE, AN, IN, TH)

密码中的d可能是明文中的e

维吉尼亚密码

替换密码可以是单字母的(monoalphabetic)

  1. 每个字母总是被编码成相同的字母。

Vigenère Cipher是一个多字母密码的例子

基本上,它对不同的文本位置应用不同键的移位密码。

例如,key = crypto
在这里插入图片描述

现代密码学核心原理

从历史观点上说

密码学是一门艺术(启发式、特别设计和分析)
在70年代末和80年代初,密码学开始发展成为一门严谨的科学

密码学的三个步骤:

  1. 精确指定威胁模型(安全含义的形式化模型和定义)
  2. 提出一个结构
  3. 证明在威胁模型下打破结构将解决一个潜在的困难问题

模型和定义的重要性

如果你不知道自己想要实现什么,你怎么可能知道自己何时(或是否)实现了呢?

开发精确的威胁模型和安全定义迫使设计师思考他们真正想要的是什么。

  1. 什么是必要的(有时更重要),什么不是

威胁模型和安全定义可以对方案进行有意义的评估和比较

一个清晰的威胁模型和安全定义可以让其他人理解某些方案提供的安全保证

  1. 允许将方案用作更大系统的组件

明确假设的重要性

一般来说,密码学目前需要计算假设。

  1. 允许研究人员尝试验证这一假设。
  2. 允许基于不同假设的方案之间进行有意义的比较。
  3. 在假设被证明是错误的情况下的实际影响。
  4. 启用安全性证明

对称和非对称

对称加密使用相同的密钥进行加密和解密。
非对称加密使用不同的密钥进行加密和解密。
优缺点:

  1. 对称通常要快得多,但密钥需要通过非加密通道传输。
  2. 另一方面,不对称更安全,但速度较慢。

对称密码:定义

定义:定义在(k, m, c)的是:
在这里插入图片描述
E是加密函数,需要两个输入:密钥k和消息m。这个函数生成密文c。
D是需要两个输入的解密函数:一个密钥k和一个密文c。它产生消息m。

一次性密码本(One-Time Pad)

在这里插入图片描述

非对称密码术(公钥密码术)

使用了两个不同但在数学上相关的密钥—公钥和私钥。

从一个密钥(“私钥”)计算另一个密钥(“公钥”)在计算上是不可行的,即使它们必然相关。

相反,这两个密钥都是作为相互关联的对秘密生成的。

密钥生成

使用一个不可预测的(通常是大而随机的)数字开始生成适合于非对称密钥算法使用的可接受的密钥对。
在这里插入图片描述

加密和解密技术

任何人都可以使用公钥加密消息,但只有配对私钥的持有者才能解密。安全性取决于私钥的保密性。
在这里插入图片描述

反向使用:数字签名

附在电子传输文件上的一种数字代码(由公钥加密生成并验证),用于验证文件的内容和发送人的身份。

生成数字签名:

  1. 消息通过商定的算法进行散列,形成消息摘要。
  2. 消息摘要使用发送方的私钥加密。
  3. 加密的消息摘要是添加到消息并发送的签名。
  4. 接收方计算消息摘要,并使用发送方的公钥解密签名。
  5. 接收方将MD与解密签名进行比较。如果匹配,则表示消息未被篡改。

签名验证!用私钥加密的版本附加到原始消息中。在收到消息和签名之后,Bob使用公钥来验证消息的真实性。验证是通过使用公钥解密消息并确定哈希/摘要是否与原始消息匹配来完成的。

总结

  1. 传统的 (换位vs置换)
  2. 现代的(对称vs非对称)

Acknowledgements: Jiangtao Wang


http://www.ppmy.cn/news/34214.html

相关文章

Qt调用Chrome浏览器

一、前言 最近有个小项目需要跳转网页,之前有了解过,但是没有在项目中使用过Qt网页嵌入; 结合自己之前的博客,有如下两种技术可以实现我的需求: 1、Qt–网页嵌入 2、Qt使用QAxWidget调用Windows组件 但是在实际开…

程序员的代码行数越少越好?

有些人可能会认为,应用程序中的代码行越少,就越容易阅读。这句话只有部分正确,我认为代码可读性的度量标准包括:代码应具备一致性代码应具备自我描述性代码应具备良好的文档代码应使用稳定的现代功能代码不应过于复杂代码的性能不…

【华为OD机试真题2023 JAVA】服务中心的最佳位置

华为OD机试真题,2023年度机试题库全覆盖,刷题指南点这里 服务中心的最佳位置 知识点二分查找双指针 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: 一家快递公司希望在一条街道建立新的服务中心。公司统计了该街道中所有区域在地图上的位置,并希望能够以此为依据…

Python中的微型巨人-Flask

文章目录前言主要内容优点及特性主要使用创建实例定义路由获取请求定制响应渲染Jinja2模板重定向和反向解析抛出HTTP异常总结更多宝藏前言 😎🥳😎🤠😮🤖🙈💭🍳&#x1f…

订单流量录制与回放探索实践

1.背景介绍 1.1 得物pandora介绍 什么是流量录制回放?流量录制回放是应用端通过挂载注入录制器探针自动注册到服务端形成录制流量回流,将所有外部调用依赖的响应内容(如数据库、分布式缓存、外部服务响应等)进行完整记录。由平台…

uni-app+uView如何轮播图滑动时改变背景颜色和导航栏颜色

今儿的创作欲很高涨哈 😄 这也是在群里看到的,群友问如何在滑动(或者自动滑动)的时候背景颜色能跟着变 正好之前做过这个需求,也分享一下 首先,页面的组成分为三部分: 自定义navbar 页面背景轮…

java各大集合的区别

java各大集合的区别 ​ Java集合也称呼为容器,他是由2大接口组曾,一个是Collection主要用来存放单一的元素,另一个是Map接口,主要用来存放K-V的数据。 **List:**存储的元素是有序的,可重复得到。 Set&am…

可换皮肤的Qt登录界面

⭐️我叫忆_恒心,一名喜欢书写博客的在读研究生👨‍🎓。 如果觉得本文能帮到您,麻烦点个赞👍呗! 近期会不断在专栏里进行更新讲解博客~~~ 有什么问题的小伙伴 欢迎留言提问欧,喜欢的小伙伴给个三连支持一下呗。👍⭐️❤️ 可换皮肤的Qt登录界面 QSS的学习笔记 快…