凯撒密码技术

2025年4月8日 | 阅读 6 分钟

凯撒密码是最简单、最古老的密码学方法。凯撒密码法基于单表替代密码,也称为移位密码或加法密码。尤利乌斯·凯撒在他的军官之间进行通信时使用了移位密码(加法密码)技术。因此,移位密码技术被称为凯撒密码。凯撒密码是一种替换(替代)密码,其中明文的所有字母都被另一个字母替换。

让我们举一个例子来理解凯撒密码。假设我们以 1 进行移位,那么 A 将被替换为 B,B 将被替换为 C,C 将被替换为 D,D 将被替换为 C,这个过程会一直持续到整个明文完成。

凯撒密码是一种薄弱的密码学方法。它可以很容易地被破解。这意味着使用此方法加密的消息可以很容易地被解密。

明文: 这是用户编写的简单消息。

密文: 这是应用某种技术后的加密消息。

加密公式为:

En (x) = (x + n) mod 26

解密公式为:

Dn (x) = (xi - n) mod 26

如果在任何情况下 (Dn) 的值变为负数(-ve),在这种情况下,我们将 26 添加到负数值中。

其中,

E 表示加密
D 表示解密
x 表示字母的值
n 表示密钥值(移位值)

注意:“i”表示字母的第 i 个数字的偏移量,如下表所示。

Caesar Cipher Technique

示例: 1 使用凯撒密码加密和解密消息“JAVATPOINT”,该消息的密钥(移位)值为 3。

加密

我们根据字母顺序,逐个字符应用加密公式。

加密公式为:

En (x) = (x + n) mod 26

明文:J → 09En:(09 + 3) mod 26密文:12 → M
明文:A → 00En:(00 + 3) mod 26密文:3 → D
明文:V → 21En:(21 + 3) mod 26密文:24 → Y
明文:A → 00En:(00 + 3) mod 26密文:3 → D
明文:T → 19En:(19 + 3) mod 26密文:22 → W
明文:P → 15En:(15 + 3) mod 26密文:18 → S
明文:O → 14En:(14 + 3) mod 26密文:17 → R
明文:I → 08En:(08 + 3) mod 26密文:11 → L
明文:N → 13En:(13 + 3) mod 26密文:16 → Q
明文:T → 19En:(19 + 3) mod 26密文:22 → W

加密后的消息是“MDYDWSRLQW”。请注意,凯撒密码是单表替代的,因此相同的明文字母会被加密成相同的字母。例如,“JAVATPOINT”中的“A”被加密成“D”。

解密

我们根据字母顺序,逐个字符应用解密公式。

解密公式为:

Dn (x) = (xi - n) mod 26

如果在任何情况下 (Dn) 的值变为负数(-ve),在这种情况下,我们将 26 添加到负数值中。

密文:M → 12Dn:(12 - 3) mod 26明文:09 → J
密文:D → 03Dn:(03 - 3) mod 26明文:0 → A
密文:Y → 24Dn:(24 - 3) mod 26明文:21 → V
明文:A → 00En:(00 + 3) mod 26密文:3 → D
明文:T → 19En:(19 + 3) mod 26密文:22 → W
明文:P → 15En:(15 + 3) mod 26密文:18 → S
明文:O → 14En:(14 + 3) mod 26密文:17 → R
明文:I → 08En:(08 + 3) mod 26密文:11 → L
明文:N → 13En:(13 + 3) mod 26密文:16 → Q
明文:T → 19En:(19 + 3) mod 26密文:22 → W

解密后的消息是“JAVATPOINT”。


示例: 2 使用凯撒密码加密和解密消息“HELLO”,该消息的密钥(移位)值为 15。

加密

我们根据字母顺序,逐个字符应用加密公式。

加密公式为:

En (x) = (x + n) mod 26

明文:H → 07En:(07 + 15) mod 26密文:22 → W
明文:E → 04En:(04 + 15) mod 26密文:19 → T
明文:L → 11En:(11 + 15) mod 26密文:00 → A
明文:L → 11En:(11 + 15) mod 26密文:00 → A
明文:O → 14En:(14 + 15) mod 26密文:03 → D

请注意,凯撒密码是单表替代的,因此相同的明文字母会被加密成相同的字母。例如,“HELLO”中的“L”被加密成“A”。

此明文的加密消息是“WTAAD”。

解密

我们根据字母顺序,逐个字符应用解密公式。

解密公式为:

Dn (x) = (xi - n) mod 26

密文:W → 22Dn:(22 - 15) mod 26明文:07 → H
密文:T → 19Dn:(19 - 15) mod 26明文:04 → E
密文:A → 00Dn:(00 - 15) mod 26明文:11 → L
密文:A → 00Dn:(00 - 15) mod 26明文:11 → L
密文:D → 03Dn:(03 - 15) mod 26明文:14 → O

解密后的消息是“HELLO”。

注意:如果在任何情况下 (Dn) 的值变为负数(-ve),在这种情况下,我们将 26 添加到负数值中。例如,密文的第三个字母。

Dn = (00 - 15) mod 26
= -15

dn 的值为负数,因此将 26 添加到其中。

= -15 + 26
= 11

凯撒密码的优点

其优点如下:-

  1. 它非常容易实现。
  2. 这种方法是密码学中最简单的方法。
  3. 在其整个过程中只使用一个简短的密钥。
  4. 如果一个系统不使用复杂的编码技术,这是最适合它的方法。
  5. 它只需要很少的计算资源。

凯撒密码的缺点

其缺点如下:-

  1. 它可以很容易地被破解。这意味着使用此方法加密的消息可以很容易地被解密。
  2. 它提供的安全性非常低。
  3. 通过观察其中的字母模式,可以解密整个消息。

程序

用于加密的 C 程序

用于解密的 C 程序