密码学教程

信息在商业、政府和军事行动中扮演着至关重要的角色,信息一旦落入不法分子之手,可能会造成经济损失,甚至更严重的后果。为了确保通信安全,组织机构会使用密码学对信息进行加密——将其转换为人类无法读取的格式,然后再转换回来。
在这篇关于密码学和网络安全的文章中,您将学习密码学的工作原理以及如何防止信息落入不法分子之手。
什么是密码学?
密码学是研究和应用各种技术来隐藏信息的真实含义,这些技术通过将信息转换成人类不可读的格式,然后再转换回来。
举个例子。要发送“我爱苹果”,你需要将每个字母替换成字母表中的第三个字母,得到“K NQXG CRRNGU”。要阅读它,收件人需要倒退三个字母,如下所示。

将信息转换成人类不可读的形式称为 加密而将其逆转则称为 解密加密后的结果被称为 暗号.
解密使用只有合法接收者才知道的密钥。由于需要密钥,即使攻击者截获了密文(没有密钥,密文就无法被截获),通信仍然安全。
密码学的特点
密码系统的优劣取决于以下特征。
| 特性 | 这是什么意思 |
|---|---|
| 算法 | 已发表的执行变换的数学过程。 |
| 保密协议 | 只有密钥持有者才能读取受保护的数据。 |
| Integrity | 任何数据变化都能被检测到。 |
| 适应性 | 该方案可根据不同的密钥大小和威胁级别进行调整。 |
| 互操作性 | 不同的系统和供应商交换受保护的数据。 |
| 认证 | 信息的来源是可以证明的。 |
| 可扩展性 | 随着数据量的增长,性能依然保持稳定。 |
| 密钥管理 | 密钥的生成、存储、轮换和退役都是安全的。 |
密码学的应用
这些特性会成为人们日常生活中不可或缺的服务,而人们却浑然不觉。
| 应用领域 | 密码学是如何使用的 |
|---|---|
| TLS加密 | 保护浏览器和网站之间的通信流量。 |
| 密码存储 | 存储的是加盐哈希值,而不是可读密码。 |
| 网上银行业务 | 保障交易安全并验证银行身份。 |
| Cryptocurrency | 对交易进行签名,并将区块与哈希值链接起来。 |
| 加密电子邮件 | 在传输和存储过程中保护消息内容的私密性。 |
| Digi签名 | 证明作者身份以及文档未被篡改。 |
| 安全消息传递 | 在设备间应用端到端加密。 |
| 电子商务 | 结账时保护银行卡信息。 |
什么是密码分析?
密码分析是在不使用加密密钥的情况下解密信息的艺术。它运用数学分析和算法来破解密码,既可用于入侵系统,也可用于防御,衡量算法的防护能力。
密码分析攻击的成功取决于:
- 可用时间
- 可用的计算能力
- 可用存储容量
以下是一些常见的密码分析攻击:
- 蛮力攻击 — 尝试明文或密钥的每一种可能组合,对每一种组合进行加密,并将其与原始密文进行比较。
- 字典攻击 — 使用单词列表来匹配明文或密钥。它主要用于尝试…… 破解加密密码.
- 彩虹桌攻击 — 将密文与预先计算的哈希值进行比较,以查找匹配项。对每个存储的密码进行加盐处理可以破解它。
什么是密码学?
密码学是结合了密码学和密码分析的综合领域。这两部分都至关重要:只有当密码分析人员尝试破解一个算法但失败后,该算法才能被信任。
加密 Algorithms
以下算法在安全工作中反复出现。请注意哪些算法仍然有效,哪些算法仅存在于旧系统中。
- MD5 — MD5 是 Message-Digest 5 的缩写,它生成 128 位哈希值。MD5 是一种哈希函数,而不是…… 加密因此,从设计上来说,它就无法被逆向推导。它不具备抗碰撞性——两个不同的输入可能产生相同的哈希值——因此不适合用于密码或签名。
- SHA — 安全哈希算法的缩写,该算法家族生成消息的精简表示,称为消息摘要:
- SHA-0:生成 160 位哈希值。由于存在重大缺陷,它已被弃用,并被 SHA-1 取代。
- SHA-1:生成 160 位哈希值。2017 年已演示过实际的哈希碰撞,NIST 也已禁止将其用于数字签名,因此请避免使用。
- SHA-2:包含六种函数的系列,其中包括 SHA-256 和 SHA-512,分别处理 32 位和 64 位字。两者均仍然有效。
- SHA-3:于 2015 年标准化,以前称为 Keccak,它使用不同的内部设计作为 SHA-2 的备份。
- AES — 高级加密标准 (ADE) 是一种对称分组密码,目前用于保护大多数静态和传输中的数据,密钥长度分别为 128 位、192 位和 256 位。它取代了 DES,并且是新系统的默认加密算法。
- RC4 RC4 是一种流密码,曾广泛用于安全套接字层 (SSL) 和有线等效加密 (WEP)。这两种协议都已过时,RFC 7465 在 2015 年发布的所有 TLS 版本中都禁止了 RC4。这里保留 RC4 仅作为教学示例。
- 河豚 — 一种带密钥的对称分组密码,历史上曾用于密码和文件加密。其 64 位分组大小使 AES 成为更好的现代选择。
展望未来,NIST 于 2024 年 8 月发布了其首批后量子标准——用于密钥交换的 ML-KEM、用于签名的 ML-DSA 和 SLH-DSA——这些标准将逐步取代当今的公钥算法。
黑客活动:如何使用 CrypTool 创建密码
在这个 CrypTool 的实践练习中,您将使用 RC4 创建一个简单的密码,然后通过暴力破解分析来恢复它,假设密钥长度为 24 位。目的是为了说明为什么短密钥和已破解的密码无法提供真正的保护。
创建 RC4 流密码
步骤 1)下载并安装 CrypTool
CrypTool 1 是一款开源的密码学教育工具。虽然目前开发工作已转移到 CrypTool 2,但 1.4.42 版本仍然可以在 CrypTool 1 上运行。 Windows 与以下屏幕截图相符。从此处下载。 cryptool.org.
步骤 2)打开 CrypTool 并替换文本
要加密的短语是 永远不要低估一个有时间却没钱的孩子的决心密钥是 00 00 00。
- 打开 CrypTool 1。
- 请将文本替换为以上短语。
步骤3)加密文本
- 点击加密/解密菜单。
- 指向对称(现代),然后选择 RC4。
步骤 4)选择加密密钥
- 选择 24 位作为密钥长度。
- 将值设置为 00 00 00。
- 点击“加密”按钮生成以下流密码。
攻击流密码
步骤 5)开始分析
- 点击“分析”菜单。
- 指向对称加密(现代),然后选择 RC4。
- 假设密钥长度为 24 位,因此选择 24 位作为密钥长度。
- 点击“开始”。
- 注意: 所需时间取决于所用机器的处理能力和密钥长度。密钥越长,所需时间越长,这就是为什么现代密钥的长度为 128 位或更长。
步骤 6)分析结果
- 分析完成后,候选密钥按以下顺序排列。
- 注意: 较低的熵值通常表示结果正确,但较高的熵值也可能是正确的。
- 选择读起来像有效文本的那一行,然后单击“接受选择”。









