密码学教程

密码学与网络安全教程

信息在商业、组织、军事行动等运行中起着至关重要的作用。信息落入不法之徒手中可能导致业务损失或灾难性后果。为了确保通信安全,企业可以使用密码学来加密信息。密码学涉及将信息转换为非人类可读的格式,反之亦然。

在本密码学与网络安全教程中,我们将带您进入密码学世界,并指导您如何保护信息不落入不法之徒手中。

什么是密码学?

密码学是研究和应用通过将信息转换为非人类可读格式来隐藏信息真实含义的技术,反之亦然。

让我们通过一个例子来说明。假设您想发送消息“I LOVE APPLES”,您可以将短语中的每个字母替换为字母表中的第三个连续字母。加密的消息将是“K NQXG CRRNGU”。要解密我们的消息,我们将不得不使用要解密的字母在字母表中回溯三个字母。下图显示了转换过程。

Cipher Encryption and Decryption
密码的加密与解密

将信息转换为非人类可读格式的过程称为加密。

逆转加密的过程称为解密

解密是使用密钥完成的,该密钥只有信息的合法接收者知道。密钥用于解密隐藏的消息。这使得通信更加安全,因为即使攻击者设法获取了信息,对他们来说也没有意义。

加密后的信息称为密文。在本次密码学教程中,接下来我们将学习什么是密码分析学。

密码学的特征

下面列出了密码学的一些特征

  • 算法
  • 保密性
  • 完整性
  • 适应性
  • 互操作性
  • 认证
  • 可扩展性
  • 密钥管理

密码学的应用

密码学的应用如下

  • SSL/TLS 加密
  • 密码存储
  • 安全的网上银行
  • 加密货币
  • 加密电子邮件
  • 数字签名
  • 安全通信
  • 电子商务和在线交易

什么是密码分析学?

密码分析学是在不知道用于加密消息的密钥的情况下,尝试解密加密消息的艺术。密码分析学利用数学分析和算法来破译密文。它用于破解安全系统,以在不知道密码学密钥的情况下访问加密内容和消息。

密码分析攻击的成功取决于

  • 可用时间
  • 可用计算能力
  • 可用存储容量

以下是常用的密码分析攻击列表;

  • 暴力破解攻击——这种攻击使用算法尝试猜测明文的所有可能逻辑组合,然后将它们加密并与原始密文进行比较。
  • 字典攻击——这种攻击使用单词列表来查找明文或密钥的匹配项。它主要用于尝试破解加密密码
  • 彩虹表攻击——这种攻击将密文与预计算的哈希值进行比较以查找匹配项。

什么是密码学?

密码学结合了密码学和密码分析学的技术。

加密算法

MD5——这是消息摘要 5 的缩写。它用于创建 128 位哈希值。理论上,哈希值无法反向还原为原始明文。MD5 用于加密密码和检查数据完整性。MD5 不具备碰撞抵抗性。碰撞抵抗性是指查找产生相同哈希值的两个值的难度。

  • SHA——这是安全哈希算法的缩写。SHA 算法用于生成消息的压缩表示(消息摘要)。它有多种版本,例如:
  • SHA-0:生成 120 位哈希值。由于存在重大缺陷,它已被撤回使用,并被 SHA-1 取代。
  • SHA-1:生成 160 位哈希值。它类似于 MD5 的早期版本。它具有加密弱点,自 2010 年以来不建议使用。
  • SHA-2:它有两个哈希函数,即 SHA-256 和 SHA-512。SHA-256 使用 32 位字,而 SHA-512 使用 64 位字。
  • SHA-3:此算法以前称为 Keccak。
  • RC4——暴力破解 RC4 算法用于创建流密码。它主要用于 SSL (Secure Socket Layer) 等协议来加密互联网通信,以及 WEP (Wired Equivalent Privacy) 来保护无线网络。
  • BLOWFISH——此算法用于创建带密钥的对称块密码。它可以用于加密密码和其他数据。

现在,在本密码学教程系列中,我们将学习如何破解 RC4 并使用 CrypTool 创建密码。

黑客活动:如何使用 CrypTool 创建密码

在本实用的 CrypTool 教程中,我们将使用 RC4 暴力破解工具创建一个简单的密码。然后,我们将尝试使用暴力破解攻击对其进行解密。对于此练习,我们假设我们知道加密的密钥长度为 24 位。我们将使用此信息来破解密码。

创建 RC4 流密码

步骤 1) 下载并安装 CrypTool

我们将使用 CrypTool 1 作为我们的密码学工具。CrypTool 1 是一个开源的加密学研究教育工具。您可以从https://www.cryptool.org/en/ct1/下载。

步骤 2) 打开 CrypTool 并替换文本

我们将加密以下短语

永远不要低估一个时间充裕但现金匮乏的孩子所展现出的决心

我们将使用 00 00 00 作为加密密钥。

  • 打开 CrypTool 1

Creating the RC4 stream cipher

  • 将文本替换为 Never underestimate the determination of a kid who is time-rich and cash-poor

Creating the RC4 stream cipher

步骤 3) 加密文本

  • 单击“加密/解密”菜单

Creating the RC4 stream cipher

  • 指向“对称(现代)”,然后选择 RC4,如上所示
  • 将出现以下窗口

Creating the RC4 stream cipher

步骤 4) 选择加密密钥

  • 选择 24 位作为加密密钥
  • 将值设置为 00 00 00
  • 单击“加密”按钮
  • 您将得到以下流密码

Creating the RC4 stream cipher

攻击流密码

步骤 5) 开始分析

  • 单击“分析”菜单

Attacking the Stream Cipher

  • 指向“对称加密(现代)”,然后选择 RC4,如上所示
  • 您将获得以下窗口

Attacking the Stream Cipher

  • 请记住,我们做出的假设是密钥长度为 24 位。因此,请确保您选择 24 位作为密钥长度。
  • 单击“开始”按钮。您将获得以下窗口

Attacking the Stream Cipher

  • 注意:完成暴力破解分析攻击所需的时间取决于所用机器的处理能力和密钥长度。密钥长度越长,攻击完成所需的时间越长。

步骤 6) 分析结果

  • 分析完成后,您将获得以下结果。

Attacking the Stream Cipher

  • 注意:较低的熵值表示最可能正确的结果。比找到的最低熵值高的值也可能是正确的结果。
  • 选择最合理的一行,然后单击“接受选择”按钮。

摘要

  • 密码学是加密和解密消息的科学。
  • 密文是已被转换为非人类可读格式的消息。
  • 解密是将密文还原为原始文本。
  • 密码分析学是在不知道用于加密密文的密钥的情况下解密密文的艺术。
  • 密码学结合了密码学和密码分析学两者的技术。
  • RC4 暴力破解在线算法用于创建流密码。它主要用于 SSL (Secure Socket Layer) 等协议来加密互联网通信,以及 WEP (Wired Equivalent Privacy) 来保护无线网络。