3.2 代替技术

思维导图:

 

 

3.2 代替技术

概述
  • 目的与内容:本节与下一节将通过例子探讨古典加密方法,旨在理解对称密码的基础及其面临的密码攻击类型。
  • 重点:分析所有加密技术中的两个核心模块——代替和置换。
代替技术
  • 定义:代替技术涉及将明文字母替换为其他字母、数字或符号。
  • 实现方式:在二进制序列的视角下,代替可被视为使用密文位串替换明文位串。
  • 重要性:理解代替是掌握加密技术的关键,它是许多复杂密码系统的基础。
后续讨论
  • 将在接下来的内容中深入探讨代替技术,并讨论结合代替和置换的综合密码系统。

3.2.1 凯撒密码 (Caesar Cipher)

定义
  • 最早的代替密码:由Julius Caesar发明,属于替换加密类型。
加密过程
  • 基本原理:字母表中每个字母被替换为其后第3个字母。
  • 例子:明文 "meet me after the toga party" 被加密为 "PHHW PH DIWHU WKH WRJD SDUWB"。
  • 字母表循环:字母表被视为循环的,即Z后面是A。
数学表示
  • 明文与密文的对应:明文 "abcdef...xyz" 对应密文 "defgh...abc"。
  • 加密算法C = E(3, p) = (p + 3) mod 26,其中 p 是明文字母,C 是密文字母。
  • 一般化:将3替换为任意整数 k,得到 C = E(k, p) = (p + k) mod 26
解密过程
  • 解密算法p = D(k, C) = (C - k) mod 26,其中 C 是密文字母,p 是明文字母。
安全性分析
  • 穷举攻击:由于密钥空间(k的可能值)仅为1到25,穷举攻击是可行的。
  • 明文识别:加密文本的语言通常是已知的,易于识别正确的明文。
特点总结
  1. 加密和解密算法是已知的。
  2. 密钥空间相对较小。
  3. 明文所用语言易于识别,有助于穷举攻击。

 我的理解:

1. 替换加密的基本原理

  • 替换加密:这是一种将明文中的字符按照某种固定规则替换为其他字符的加密方法。
  • 凯撒密码:作为替换加密的一种,它特别地将字母表中的每个字母替换为字母表中该字母之后的第三个字母。

2. 凯撒密码的加密过程

  • 字母表的循环性:考虑到字母表是循环的,即Z之后是A,这使得这种替换可以无缝进行。
  • 实例:例如,字母'A'在凯撒密码中被替换为'D','B'被替换为'E',依此类推。

3. 数学表示

  • 加密公式:用数学方式表示,如果 p 是一个明文字符,那么加密后的字符 C 可以通过 C = (p + 3) mod 26 计算得出。这里的 mod 26 表示结果是在26个字母的范围内循环的。
  • 变量含义:在这个公式中,p 是明文字母在字母表中的位置(从0开始计数),C 是相应的密文字母的位置。

4. 解密过程

  • 解密公式:解密是加密的逆过程,可以通过 p = (C - 3) mod 26 实现。这里 C 是密文字母的位置,p 是恢复的明文字母位置。

5. 安全性和穷举攻击

  • 密钥空间:凯撒密码的密钥(替换的具体步数)是固定的(3步),但理论上可以从1到25步变换。
  • 易于破解:由于密钥空间较小,只需尝试最多25种不同的替换,就能找到正确的密钥。这就是所谓的穷举攻击。

总结

凯撒密码是加密历史上非常早期的一种方法,它以其简单性和直观性在加密学的发展中占有重要地位。然而,由于其安全性较低,在现代加密应用中已经不再使用。理解凯撒密码有助于了解加密技术的基本概念和历史发展。

3.2.2 单表代替密码

概述
  • 背景:Caesar密码只有25种可能的密钥,易被破解。单表代替密码通过允许任意代替,显著增加密钥空间。
  • 置换定义:置换是指有限元素集合的所有元素的有序排列,每个元素只出现一次。
密钥空间
  • 数量级:对于26个字母的任意置换,存在26!(大于4×10²⁶)种可能的密钥,远大于DES的密钥空间。
加密过程
  • 原理:在单表代替密码中,明文中的每个字母被替换为密文行中的对应字母,这个密文行是26个字母的任意置换。
密码分析
  • 频率分析:通过比较密文中字母的相对频率与已知语言(如英文)中字母的标准频率分布,可以推断出密文与明文字母的对应关系。
  • 示例:通过分析字母的使用频率和双字母组合的频率,可以逐步解密,揭示明文。
安全性分析
  • 易于破解:尽管密钥空间大,但由于保留了原始字母的使用频率特征,单表代替密码仍然易于通过频率分析被破解。
  • 同音词方法:一种增强安全性的对策是为每个字母提供多种代替选项,例如,一个明文字母可以对应多个不同的密文字符。这种方法可以破坏使用频率信息,但仍保留了多字母语法模式。
提高安全性的方法
  • 多字母加密:同时加密明文中的多个字母。
  • 多表代替密码:使用不同的置换表来加密不同部分的文本。

我的理解:

1. 单表代替密码的基本原理

  • 定义:单表代替密码是一种替换加密方法,其中每个明文字符都按照一个固定的对应表(即单表)被替换为一个密文字符。
  • 与凯撒密码的区别:凯撒密码仅将每个字母替换为按固定数目偏移后的字母,而单表代替密码允许任何形式的替换,大大增加了密钥的可能性。

2. 密钥空间的扩大

  • 可能的置换数:对于26个字母的集合,存在26!(即26的阶乘,约为4×10²⁶)种不同的置换方式,相比之下,凯撒密码只有25种可能的密钥。

3. 加密过程

  • 置换:加密时,根据预先定义的置换表,每个明文字符被替换为对应的密文字符。

4. 密码分析

  • 频率分析:由于每个字母都有固定的替代,可以通过分析密文中字母的出现频率,对照标准语言(例如英语)的字母频率分布,来推断可能的字母对应关系。
  • 例子:在一个密文中,如果某个字母的出现频率与英语中字母'e'的出现频率相近,那么可以推测这个密文字母可能代表明文中的'e'。

5. 安全性考量

  • 易于破解:尽管密钥空间大,单表代替密码仍然容易受到频率分析的攻击,因为它保留了字母的使用频率特征。
  • 同音词方法:一种增强安全性的方法是为每个字母提供多种代替选项,从而破坏使用频率信息。

6. 提高安全性的策略

  • 多字母加密:同时加密多个字母,而非单一字符,可以增强加密的安全性。
  • 多表代替:使用不同的替换表来加密不同部分的文本,从而进一步混淆加密信息。

理解单表代替密码的关键在于认识到它通过增加密钥的复杂性来提高安全性,但同时仍然保留了一些固有的弱点,如字符频率分布,这使得它易于通过频率分析等方法被破解。

3.2.3 Playfair密码

背景
  • 发明者:由Charles Wheatstone于1854年发明,但命名为他的朋友Baron Playfair的名字。
  • 历史使用:在第一次世界大战中英军使用,以及第二次世界大战中美军及盟军广泛使用。
加密过程
  • 基本单位:将明文中的双字母音节作为一个单元进行加密。
  • 密钥矩阵:基于一个5×5字母矩阵,由密钥词构成。
  • 填充矩阵:首先将去重的密钥词填入矩阵,然后填入剩余字母。字母I和J视为相同。
  • 加密规则
    1. 对相同字母对加填充字母(如x)。
    2. 同一行的明文字母对用右侧字母替换;最右侧的字母用最左侧的字母替换。
    3. 同一列的明文字母对用下方字母替换;最下方的字母用最上方的字母替换。
    4. 其他情况下,明文字母对根据矩阵中的位置替换。
安全性分析
  • 提升复杂度:相对于单表密码,Playfair密码通过加密字母对而非单个字母,增加了密码的复杂性。
  • 相对频率变化:单个字母的相对频率比字母对的相对频率变化幅度更大,使得频率分析更困难。
  • 长期安全性:尽管被认为是相对安全的,Playfair密码仍保留了明文语言的部分结构特征,使其容易受到密码分析的攻击。
统计分析
  • 字母频率分布:Playfair密码加密后的文本仍展示出某种程度的字母频率分布,但比单表代替密码更平坦。
  • 密码分析挑战:虽然Playfair密码隐藏了一些频率信息,但密码分析仍可通过分析字母对的出现频率进行。

 我的理解:

Playfair密码的基本概念

  1. 密钥矩阵:Playfair密码使用一个5x5的矩阵,其中填充了不重复的26个字母(I和J通常被视为同一个字母)。
  2. 密钥词填充:首先,将密钥词(去除重复字母)填入矩阵,从左到右,从上到下。接着,填入剩余的字母。

加密规则

当将明文分成双字母组(如需要,可在最后添加额外字母以保证双字母组完整)时,遵循以下规则:

  1. 相同字母对:如果一对字母相同,或者只剩下一个字母,那么在它们之间加一个填充字母(通常是'X')。例如,"balloon" 分割为 “ba lx lo on”。

  2. 同一行内的字母对:如果字母对位于密钥矩阵的同一行,则每个字母都用其右侧的字母替换(对于行中最后一个字母,则用该行的第一个字母替换)。例如,如果“AR”在同一行,“A”将被“R”右边的字母替换,同理“R”也是。

  3. 同一列内的字母对:如果字母对位于同一列,则每个字母都用其下方的字母替换(对于列中最下面的字母,则用该列的第一个字母替换)。例如,如果“MU”在同一列,“M”将被“U”下方的字母替换,同理“U”也是。

  4. 其他情况:如果字母对不在同一行也不在同一列,则在矩阵中形成一个矩形。每个字母被替换为在同一行但在另一个字母列上的字母。例如,对于字母对“HS”,“H”被替换为与“H”在同一行但与“S”在同一列的字母,同样,“S”被替换为与“S”在同一行但与“H”在同一列的字母。

加密实例

假设密钥矩阵如下所示:

N A R M O
B D C H X
V K E F G
S L T P Q
U Z I/J W Y

并且要加密的明文为 "hello"。根据规则,我们首先分割明文为字母对:“he” “ll” “ox”。因为“ll”是相同的字母对,我们用填充字母替换它,变为“lx”。现在字母对为:“he” “lx” “ox”。

  1. “he”位于不同行不同列,所以用对角线上的字母替换,变为“BM”。
  2. “lx”中“l”和“x”位于同一行,所以用右侧字母替换,变为“TP”。
  3. “ox”中“o”和“x”位于同一行,用右侧字母替换,变为“BN”。

所以,"hello" 加密后变为 "BMTPBN"。

Playfair密码比单表代替密码复杂,因为它考虑了字母对而不是单个字母,这使得频率分析变得更加困难。

3.2.4 Hill密码

基本概念
  • 发明:由数学家Lester Hill在1929年发明,基于线性代数的原理。
  • 模26的矩阵算术:Hill密码使用模26下的矩阵运算来进行加密和解密。
矩阵和行列式
  • 方阵和逆矩阵:方阵的逆矩阵是另一个方阵,与原矩阵相乘得到单位矩阵(对角线上的元素为1,其他为0的矩阵)。
  • 行列式概念:方阵的行列式表示该矩阵是否有逆矩阵,及如何计算它。行列式的值是矩阵中元素的代数和。
Hill密码的工作原理
  • 加密过程:Hill密码通过将一组连续的明文字母(视为数值)与一个密钥矩阵相乘(模26运算),得到一组密文字母。
  • 明文和密文的表示:明文和密文表示为行向量,密钥表示为方阵。
  • 例子:例如,明文“pay”可以表示为向量(15, 0, 24),用一个3x3密钥矩阵乘以此向量,得到加密的密文。
加密和解密
  • 加密公式:26C=PKmod26,其中C代表密文向量,P代表明文向量,K代表密钥矩阵。
  • 解密公式:mod  26P=CK−1mod26,其中K−1是密钥矩阵的逆。
安全性分析
  • 隐藏频率特性:Hill密码隐藏了单字母和双字母的频率特性,使得频率分析更加困难。
  • 易受已知明文攻击:尽管对抗唯密文攻击较为有效,但Hill密码容易受到已知明文攻击,尤其是当攻击者获得足够多的明密文对时。
示例
  • 加密示例:给定明文和密钥,可以展示如何计算出密文。
  • 解密示例:通过计算密钥矩阵的逆,可以展示如何从密文恢复出明文。

 我的理解:

理解Hill密码的概念,需要一定的线性代数知识,特别是关于矩阵的运算。这种密码方法不同于传统的字母替换技术,因为它使用数学运算对一组字母进行同时加密。下面是逐步解释:

1. 将字母转换为数字

在Hill密码中,首先要把字母转换成数字。这是通过一个简单的映射完成的:A=0, B=1, C=2, ..., Z=25。

2. 使用矩阵作为密钥

Hill密码使用一个方阵(比如2x2或3x3)作为密钥。每个数字在矩阵中占据一个位置。

3. 明文的表示

明文(要加密的信息)被分割成与密钥矩阵同样大小的块。比如,如果使用2x2矩阵,那么每两个字母一组。每组字母(现在是数字)也被表示为一个向量。

4. 加密过程

加密是通过将每个明文向量乘以密钥矩阵来完成的,结果再对26取模(因为有26个字母)。这个模运算确保了结果仍然是一个有效的字母。

5. 解密过程

解密需要使用密钥矩阵的逆矩阵。通过将每个密文向量乘以逆矩阵并对26取模,可以恢复出原始的明文向量。

6. 矩阵的逆和行列式

为了得到一个矩阵的逆,首先需要计算它的行列式。行列式是一个特定的数值,它基于矩阵中元素的排列计算得出。如果行列式为0,则矩阵没有逆;否则,可以通过特定的计算方法找到逆矩阵。

7. 安全性

Hill密码的一个主要优点是它不仅隐藏了单字母的频率特征,而且还隐藏了字母对的频率特征。这使得基于频率分析的密码破解方法变得不再有效。然而,它对已知明文攻击比较脆弱,特别是当攻击者有足够的明密文对时。

形象比喻

可以将Hill密码想象为一个数学的“魔术盒”:你把一组字母(现在是数字)放入盒子,盒子里的矩阵就像一个魔法密钥,通过一系列数学运算变换这些数字,然后再从盒子里取出一组完全不同的数字,这些就是你的密文。解密的过程就是使用另一个“魔法密钥”(逆矩阵)来恢复原始的字母。

理解Hill密码的关键在于把握它如何利用矩阵运算来转换明文和密文,这种方法的独特之处在于它处理一组字母而不是单个字母,并且它依赖于线性代数的原理。

3.2.5 多表代替加密

概述
  • 多表代替加密:相比单表代替,多表代替加密在明文消息中采用不同的单表代替规则。
  • 共同特征
    1. 使用一组相关的单表代替规则集。
    2. 密钥决定具体的变换规则。
Vigenère密码
  • 基本原理:由一组Caesar密码的代替表组成,每个代替表对应字母表移位0~25次的结果。
  • 加密过程:使用一个密钥字母序列,其中每个密钥字母代表一个Caesar密码的移位量。
  • 加密算法:明文字母与对应密钥字母的数值相加(模26)得到密文字母。
  • 解密算法:密文字母与对应密钥字母的数值相减(模26)得到明文字母。
  • 周期性:通常,密钥是一个密钥词的重复。
Vernam密码
  • 基本概念:又称为一次性密码本,使用的密钥与明文一样长,且毫无统计关系。
  • 加密过程:明文和密钥的每一位进行异或运算得到密文。
  • 解密过程:密文和相同的密钥位进行异或运算得到明文。
  • 密钥特性:理想情况下,密钥是随机的且只使用一次。
安全性分析
  • Vigenère密码:虽然比单表代替加密强,但仍然保留了一些频率信息。可以通过分析密钥词长度和单表频率特性进行破解。
  • Vernam密码:如果密钥真正随机且只用一次,则理论上是不可破解的。但在实际应用中,密钥的生成和管理是一个挑战。

我的理解:

多表代替加密的基本理念

  • 多样性:与单表代替加密使用单一替换规则不同,多表代替加密在加密过程中使用多种替换规则。
  • 密钥的作用:在多表代替加密中,密钥不仅仅是一个固定的值,而是一系列值,决定了如何在不同部分的明文中应用不同的替换规则。

Vigenère密码

  • 原理:基于一系列Caesar密码,每个Caesar密码对应于字母表的不同移位。
  • 加密方法:将明文的每个字母与一个密钥字母相对应,然后根据密钥字母指定的Caesar密码进行替换。
  • 重复性:密钥通常是一个重复的词或一系列字母,用于周期性地变换使用的Caesar密码。
  • 安全性:相比单表代替,Vigenère密码更难破解,但仍然可以通过分析密钥长度和应用频率分析来破解。

Vernam密码

  • 一次性密码本:Vernam密码,又称为一次性密码本,要求密钥与明文长度相同,并且是随机的。
  • 加密方法:通过逐位异或明文和密钥来生成密文。
  • 安全性:如果密钥完全随机且仅使用一次,则理论上不可破解。但这在实际中难以实现,因为需要长、随机且一次性的密钥。

形象理解

可以把多表代替加密想象成使用多个不同的“编码轮”来加密信息。每个编码轮代表一种不同的替换规则。Vigenère密码就像是一串编码轮,每个轮对应一个密钥字母,用于加密相应的明文字母。而Vernam密码则更像是一次性使用的“随机编码轮”,每个明文字符都有一个唯一且随机的轮来加密。

理解多表代替加密的关键在于认识到,通过变换使用的替换规则,可以显著提高加密信息的安全性,使得单纯的频率分析或其他简单的破解方法变得不再有效。

3.2.6 一次一密

基本概念
  • 完美安全性:由Joseph Mauborgne提出,使用与消息等长、随机且无重复的密钥来加密消息。
  • 使用原则:密钥只用于一条消息的加密和解密,之后就被丢弃,每条新消息都需要一个新的密钥。
加密和解密过程
  • 随机密钥:密钥由完全随机的字符序列组成,长度与明文相同。
  • 操作方式:通常采用逐字符的异或运算(对于二进制数据)或模26加法(对于字母)来进行加密。
  • 无法破解:由于每个可能的明文都有一个对应的密钥可以生成相同的密文,因此无法确定哪个是正确的明文。
安全性分析
  • 随机性:一次一密的安全性完全依赖于密钥的随机性。如果密钥完全随机,密文也会完全随机,使密码分析者无法利用任何统计规律。
  • 理论上的不可破解:理论上,一次一密提供了完美的保密性,因为对每个密文都有等量的可能明文。
实际应用中的挑战
  • 密钥生成:生成大规模的真正随机密钥序列是一个挑战。
  • 密钥分配和保护:对于每条消息,需要向发送方和接收方提供等长的密钥,这导致了密钥分配和保护的难题。
示例
  • 多解释性:给出一个密文,可以根据不同的密钥解密出不同的明文,无法确定哪个是正确的。
  • 实际应用局限性:因为上述困难,一次一密在实际中很少使用,通常仅用于特别高安全性要求的情况。

形象理解

可以把一次一密想象成一个完美的保险箱,每次你放入一个消息,都需要一个全新的、完全随机的钥匙来锁上它。一旦使用过一次,这个钥匙就会被销毁,确保每个消息都有其独特的保护。由于钥匙的随机性和独特性,即使有人获得了保险箱(密文),他们也无法确定正确的钥匙是什么,因此无法打开它。

理解一次一密的关键在于认识到,虽然它提供了理论上的完美安全性,但在实际应用中,由于密钥的生成、分配和保护等问题,这种方法很少被使用。

 

代替技术总结

重点
  1. 代替技术的基本概念:加密过程中使用代替技术,即替换明文字符以产生密文。
  2. 凯撒密码:最早的代替技术之一,通过将字母表中每个字母移动固定数量的位置来进行加密。
  3. 单表代替密码:使用一个固定的替换规则集对明文进行加密,每个字母都有一个特定的替代。
  4. Playfair密码:多字母代替密码,使用一个5x5的矩阵作为密钥,按特定规则加密字母对。
  5. Hill密码:基于线性代数,使用矩阵运算进行加密,能够隐藏单字母和双字母的频率特征。
  6. 多表代替加密:如Vigenère密码,使用多个代替规则(基于不同的Caesar密码),增加了破解的难度。
  7. 一次一密:理论上完美的安全性,使用与消息等长的一次性随机密钥。
难点
  1. Playfair密码的加密规则:理解如何在5x5矩阵中找到字母对,并应用正确的替换规则。
  2. Hill密码中的矩阵运算:掌握线性代数的基础,理解如何通过矩阵乘法和模26运算进行加密。
  3. Vigenère密码的密钥周期性:了解如何应用密钥序列,并理解其周期性对加密过程的影响。
  4. 一次一密的实际应用困难:理解为何尽管理论上完美,一次一密在实际中难以广泛应用。
易错点
  1. 混淆不同类型的代替技术:例如,将单表代替密码的特征错误地应用于多表代替密码。
  2. Playfair密码的加密/解密过程:在Playfair密码的加密和解密过程中,容易混淆字母对的处理规则。
  3. Hill密码的逆矩阵计算:在Hill密码中,错误计算矩阵的逆或不正确地应用模运算。
  4. Vigenère密码的密钥重复:在使用Vigenère密码时,忽视密钥的周期性和重复性,导致解密错误。
  5. 一次一密的密钥随机性:在讨论一次一密时,忽略密钥必须完全随机和不重复的重要性。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏驰和徐策

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值