格伦斯费尔德密码

Gronsfeld 密码:数字密钥版维吉尼亚变体及其破解方法

学习 Gronsfeld 密码——一种使用 0-9 数字密钥的维吉尼亚变体。探索其历史、加密示例、密钥空间分析及破解方法。

发布于 2026年3月19日
14 分钟阅读
密码学指南

简介

Gronsfeld 密码是一种多表替换密码,其运作方式与维吉尼亚密码完全相同,但有一个关键限制:密钥完全由单个数字(0 到 9)组成,而非字母(A 到 Z)。这一看似微小的限制对密码安全性产生了深远影响:可用的替换字母表数量从 26 个降至仅 10 个,使得该密码极易遭到暴力破解。

尽管存在安全弱点,Gronsfeld 密码在密码学史上仍占有重要地位。17 世纪至 18 世纪期间,它被广泛用于欧洲军事和外交通信,其数字密钥易于记忆和传递,比字母关键词更具实用优势。它的故事揭示了密码学史上反复出现的主题:易用性与安全性之间的张力。

使用我们的免费 Gronsfeld 密码工具,通过数字密钥对消息进行加密和解密。


历史:Gronsfeld 伯爵与密码的起源

伯爵与他的时代

Gronsfeld 密码归属于约斯特·马克西米利安·范·布朗克霍斯特,即 Gronsfeld 伯爵(又拼作 Gronsveld)。他是一位居住于 17 世纪的弗拉芒贵族和军事指挥官。格朗斯费尔德是利姆堡公国的一个要塞郡,位于现今荷兰东南角马斯特里赫特附近。该伯爵在三十年战争(1618-1648)之后那段动荡的欧洲战争时期担任军事将领,彼时神圣罗马帝国、法国、西班牙和荷兰共和国之间结盟关系不断变动、冲突频繁。

在这种环境下,安全通信是军事必需。指挥官需要传达命令、协调部队行动、传递情报,同时防止消息被敌方截获。当时常用的密码体系从简单的单表替换(极易破解)到更复杂的多表替换系统(如维吉尼亚密码,较难破解,但野战中也更难使用)不等。

为何选择数字密钥?

Gronsfeld 伯爵的贡献更多出于实用考量,而非理论创新。将密钥限定为数字而非字母,使 Gronsfeld 密码在实战中获得了若干优势:

  1. 更易记忆。 像 31415 这样的数字密钥,对大多数人而言比同等长度的字母关键词更易于记忆。数字可以与日期、测量值或其他有意义的数值联系起来,便于回忆。

  2. 传递更简便。 数字密钥可通过数字比字母更易于处理的渠道传递——例如旗语、鼓点信号,或军事通信系统中已有的数字编码。

  3. 加密更快捷。 将一个数字加到一个字母上,在算术上比查维吉尼亚表中字母与字母的对应关系更简单。野战中执行加密的士兵使用数字可以更高效地作业。

  4. 减少错误。 更小的密钥空间意味着更少的混淆机会——在标准化印刷出现之前的手写密码作业中,字母外形相似(B 与 D、I 与 J、U 与 V)极易造成混淆,而数字在视觉上更易于区分。

这些优势是真实存在的,也解释了为何 Gronsfeld 密码尽管理论上存在弱点,却依然得到了广泛使用。在实践中,一种能在战场条件下被快速、准确使用的密码,比理论上更强但操作人员频繁出错的密码更有价值。

地理与历史背景

Gronsfeld 密码主要在 17 世纪至 18 世纪的中欧德语地区、低地国家和斯堪的纳维亚地区流传。它在中级军官中尤为流行——这些人需要对战术通信进行加密,但缺乏更复杂系统所需的训练或基础设施。更高级别的官员和外交机构倾向于使用更复杂的密码(包括完整的维吉尼亚密码甚至命名表系统),但 Gronsfeld 密码对于只需临时保密的消息而言已足够实用。


Gronsfeld 密码的工作原理

加密公式

Gronsfeld 密码使用与维吉尼亚密码相同的数学公式:

C = (P + K) mod 26

其中:

  • P 是明文字母的位置(A=0,B=1,……,Z=25)
  • K 是密钥数字(0 到 9)
  • C 是密文字母的位置

解密公式为:

P = (C - K) mod 26

与维吉尼亚密码的唯一区别在于,K 被限定在 0-9 范围内,而非 0-25。这意味着每个明文字母在字母表中最多只能向前偏移 9 个位置。

分步加密示例

使用数字密钥 3 1 4 1 5 对消息"ATTACK AT DAWN"进行加密。

第 1 步:去除空格并对齐密钥。

Key:   3 1 4 1 5 3 1 4 1 5 3 1
Plain: A T T A C K A T D A W N

第 2 步:将明文转换为数字。

A=0, T=19, T=19, A=0, C=2, K=10, A=0, T=19, D=3, A=0, W=22, N=13

第 3 步:加上密钥数字(取模 26)。

明文P 值密钥(P+K) mod 26密文
A033D
T19120U
T19423X
A011B
C257H
K10313N
A011B
T19423X
D314E
A055F
W22325Z
N13114O

结果:

Plain:  A T T A C K A T D A W N
Key:    3 1 4 1 5 3 1 4 1 5 3 1
Cipher: D U X B H N B X E F Z O

密文为:DUXBH NBXEF ZO

第 4 步:通过减去密钥解密。

密文C 值密钥(C-K) mod 26明文
D330A
U20119T
X23419T
B110A
H752C
N13310K

明文已被正确还原。


密钥空间分析:Gronsfeld 密码为何脆弱

密钥空间对比

Gronsfeld 密码的根本弱点在于其受限的密钥空间。下面对此进行量化分析。

对于长度为 n 的密钥:

密码每个位置的可能值总密钥空间n=5 时的密钥空间
维吉尼亚密码2626^n11,881,376
Gronsfeld 密码1010^n100,000
凯撒密码26(单一偏移)2626

5 位 Gronsfeld 密钥仅有 100,000 种可能密钥——比 5 字母维吉尼亚密钥少约 119 倍。4 位密钥仅有 10,000 种可能。现代计算机可在一秒内穷举所有 10,000 个密钥。

偏移限制

由于每个密钥数字范围为 0 到 9,每个明文字母最多只能偏移 9 个位置。这意味着:

  • 字母 A 只能变为 A、B、C、D、E、F、G、H、I 或 J——别无其他。
  • 字母 Z 只能变为 Z、A、B、C、D、E、F、G、H 或 I——别无其他。

这一约束对密码分析者极为有利。如果某个密文字母是 Q,则对应的明文字母必定是 H、I、J、K、L、M、N、O、P 或 Q 中的一个,这立即排除了 26 个可能明文值中的 16 个——这是维吉尼亚密码所不存在的巨大信息泄漏。

实际安全级别

从信息论角度来看,Gronsfeld 密钥的每个位置携带 log2(10) = 3.32 比特的熵,而维吉尼亚密钥每个位置携带 log2(26) = 4.70 比特。5 位 Gronsfeld 密钥总计携带 16.6 比特的熵,而 5 字母维吉尼亚密钥携带 23.5 比特。按现代标准,两者都远谈不上安全,但即便在已然脆弱的古典多表替换密码类别中,Gronsfeld 密码也显著更弱。


破解 Gronsfeld 密码

方法一:暴力破解

破解 Gronsfeld 密码最直接的方法是穷举密钥搜索。具体步骤如下:

  1. 估算密钥长度。 从 1 开始逐一尝试各密钥长度。对于每个假设的长度 n,将密文分成 n 个流,并计算每个流的重合指数。当所有流的重合指数均接近 0.0667(英文期望值)时,即找到了正确的密钥长度。

  2. 尝试所有可能密钥。 对于长度为 n 的密钥,共有 10^n 个可能密钥。对每个候选密钥解密密文,并评估结果是否接近英文(使用频率分析、词典词汇计数或其他评分方法)。

  3. 选择最佳候选。 产生最接近英文明文的密钥几乎肯定是正确的。

对于长度不超过 6 位(1,000,000 个密钥)的密钥,这种暴力破解方法在任何现代硬件上都能在一秒内完成。即使密钥长度达到 8 或 9 位(1 亿至 10 亿个候选),搜索仍然可行,只是速度会变慢。实际上,Gronsfeld 密钥很少超过 6 或 7 位,因此暴力破解几乎总是可行的。

方法二:频率分析

即使不借助暴力破解,也可以通过经典频率分析破解 Gronsfeld 密码,方法与破解维吉尼亚密码相同:

  1. 使用 Kasiski 检验或重合指数确定密钥长度。

  2. 将密文分成 n 个独立的流,其中 n 为密钥长度。每个流均以 0-9 个位置中的某个凯撒偏移进行加密。

  3. 逐流分析。 对每个流,计算各字母的出现频率。出现频率最高的字母很可能对应 E(经密钥数字偏移后的结果)。如果某流中出现频率最高的密文字母是 H(位置 7),则该位置的密钥数字可能是 7 - 4 = 3(因为 E 的位置为 4)。

  4. 交叉验证。 将出现频率第二、第三高的字母与 T、A、O、I、N、S 等的期望频率进行对比。若规律吻合,则密钥数字得到确认。

数字限制为 0-9 实际上使频率分析比针对维吉尼亚密码时更加容易,因为每个流只需评估 10 个候选偏移而非 26 个。密码分析者可以直接对每个流尝试所有 10 种偏移,选出频率匹配最佳的那个。

方法三:已知明文攻击

如果部分明文已知或可以猜测(当消息遵循可预测的格式如"DEAR SIR"或"REPORT FROM"时很常见),密钥数字可以立即还原:

  1. 用已知明文减去对应的密文:K = (C - P) mod 26。
  2. 若结果在 0 到 9 之间,即为有效密钥数字。
  3. 若结果大于等于 10,则要么明文猜测有误,要么该密码并非 Gronsfeld(可能是完整的维吉尼亚密码)。

最后一点意义重大:已知明文攻击可以区分 Gronsfeld 密码与维吉尼亚密码。若所有恢复的密钥值都在 0-9 范围内,则该系统几乎肯定是 Gronsfeld 密码;若任何恢复的密钥值超过 9,则是维吉尼亚密码或其他系统。

方法四:仅密文统计检测

若密码分析者怀疑但不确定某段密文是由 Gronsfeld 密码生成的,可以寻找其特有的统计特征:偏移限制。对于假设密钥周期中的每个位置,能产生每个观察到的密文字母的明文字母集合被限定在 10 个连续字母的窗口内。这在密文统计中产生了一种微妙但可检测的规律,与维吉尼亚密码在全部 26 种偏移上的均匀分布有所不同。


与维吉尼亚密码的数学对比

形式等价性

从数学角度来看,Gronsfeld 密码是维吉尼亚密码的一个真子集。每个 Gronsfeld 密钥都可以表示为维吉尼亚密钥(数字 3 等价于字母 D,数字 7 等价于字母 H,以此类推),但大多数维吉尼亚密钥无法表示为 Gronsfeld 密钥(任何包含 K 到 Z 字母的密钥在 Gronsfeld 中没有对应物)。

Gronsfeld 数字与维吉尼亚密钥字母之间的映射关系为:

数字0123456789
字母ABCDEFGHIJ

因此,Gronsfeld 密钥 31415 等价于维吉尼亚密钥 DBEBE。任何能执行维吉尼亚加密的工具,只需将数字转换为对应字母,即可执行 Gronsfeld 加密。

为何不直接使用维吉尼亚密码?

这种等价关系引出了一个自然而然的问题:既然 Gronsfeld 只是一种较弱的维吉尼亚密码,为何还有人使用它?答案在于 17 世纪军事通信的实际考量:

  1. 数字密钥更易管理。 军事组织已有传递和管理数字编码的现成系统,将数字密码密钥融入现有通信协议,比引入字母密钥系统更为简便。

  2. 错误率更低。 手写消息是当时的常态,字母混淆十分普遍(I/J、U/V、C/G)。数字在视觉上比字母更易区分,可减少誊写错误。

  3. 弱点尚未被认识到。 对多表替换密码的系统性密码分析直到 19 世纪才通过巴贝奇和卡西斯基的工作得以发展。在 17 世纪,任何多表替换密码都被认为几乎无法破解,10 字母表与 26 字母表系统之间的差异并未被认识到。

  4. 实战安全性往往比理论安全性更重要。 每次都能被正确使用的密码,在实践中比一种更强但频繁被错误使用的密码更安全。Gronsfeld 密码的简洁性促进了正确使用。


历史军事应用

三十年战争及其后续

Gronsfeld 密码在中欧军事活动频繁的时期应运而生。三十年战争(1618-1648)揭示了安全通信的重要性,此后数十年间,欧洲各国军队中密码系统大量涌现。Gronsfeld 密码非常适合团级和师级指挥官快速加密战术消息的需求。

德语军队的标准做法

文献证据表明,17 世纪末至 18 世纪初,Gronsfeld 密码的各种变体在数支德语军队中作为标准配置使用。密钥管理通常遵循一套简单的规程:定期(每周或每月)下发新的数字密钥,同一指挥层级的所有军官共用同一密钥。密钥可能来源于某个日期、常备书籍中的某一页码,或在面对面会议中商定的某个数字。

衰落与替代

到 18 世纪中叶,欧洲密码分析机构日益精进,对简单多表替换密码的信心开始动摇。各国政府纷纷投资建立"黑室"——以例行方式拦截和破译外交通信的专业破密机构。Gronsfeld 密码凭借其较小的密钥空间,是最早被这些职业密码分析人员攻破的系统之一。它逐渐被更复杂的系统所取代,包括命名表(代码与密码相结合的系统),以及最终在 19 世纪和 20 世纪出现的更复杂的机械密码装置。


Gronsfeld 密码在密码体系中的位置

Gronsfeld 密码属于多表替换密码家族,这一家族的所有成员都源于同一基本思想:使用重复密钥从多个替换字母表中进行选择。该家族包括:

  • 凯撒密码 单一固定偏移。等价于使用一位密钥的 Gronsfeld 密码(或使用单字母密钥的维吉尼亚密码)。
  • Gronsfeld 密码: 使用数字 0-9 的重复数字密钥。
  • 维吉尼亚密码 使用字母 A-Z 的重复字母密钥。
  • 自动密钥密码: 密钥本身包含明文或密文,消除了使 Kasiski 分析得以成立的周期性重复。
  • 一次性密码本: 与消息等长的随机密钥,且只使用一次。该家族中唯一在理论上无法破解的密码。

从凯撒密码到一次性密码本的演进,揭示了密钥空间的基本原则:密钥越大、越不可预测,安全性就越高。Gronsfeld 密码位于这一安全谱系的低端,比凯撒密码提供了更多的安全性,但远不及完整的维吉尼亚密码,与一次性密码本相比则更是无从比较。


实现 Gronsfeld 密码

算法

Gronsfeld 密码的实现相当直接:

  1. 接受一个明文字符串和一个数字密钥字符串(例如"31415")。
  2. 对明文中的每个字母字符: a. 转换为位置数字(A=0,……,Z=25)。 b. 获取当前密钥数字(在密钥字符串中循环)。 c. 将数字加到位置上:结果 = (位置 + 数字)mod 26。 d. 将结果转换回字母。
  3. 非字母字符直接输出,不做处理。

解密时,在步骤 2c 中改为减法。

边界情况处理

  • 密钥数字为 0: 字母保持不变(偏移 0 个位置)。这是合法的,但会将明文直接泄漏到密文中。
  • 保留大小写: 通常,原始字母的大小写在输出中保持不变。
  • 非字母字符: 空格、数字和标点符号通常直接输出,不进行加密,也不推进密钥位置。

常见问题

什么是 Gronsfeld 密码?

Gronsfeld 密码是一种多表替换密码,工作方式与维吉尼亚密码完全相同,但使用由数字 0 到 9 组成的数字密钥。每个数字表示对应明文字母在字母表中向前偏移的位置数。例如,密钥数字为 3 时,字母 A 变为 D,B 变为 E,以此类推。该密码以 Gronsfeld 伯爵命名,他是 17 世纪的一位弗拉芒贵族。

Gronsfeld 密码与维吉尼亚密码有何区别?

唯一的区别在于密钥格式。维吉尼亚密码使用字母密钥,每个字母(A-Z)代表 0-25 个位置的偏移。Gronsfeld 密码使用数字密钥,每个数字(0-9)代表 0-9 个位置的偏移。这意味着 Gronsfeld 密码每个密钥位置只有 10 种可能偏移,而维吉尼亚密码有 26 种,导致密钥空间大幅缩小,安全性显著降低。

Gronsfeld 密码有多容易被破解?

按现代标准,极易被破解。5 位 Gronsfeld 密钥只有 100,000 种可能的组合,计算机可在毫秒内穷举。即使不借助计算机,一旦知道密钥长度,频率分析也能破解该密码,因为每个密钥位置只有 10 种可能偏移需要测试。Kasiski 检验或重合指数可以确定密钥长度,然后每个位置可以独立求解。

既然如此脆弱,为何还有人使用 Gronsfeld 密码?

在 17 世纪至 18 世纪,Gronsfeld 密码的弱点尚未被充分认识。多表替换密码在当时被普遍认为极难破解,而系统性攻击方法(Kasiski 检验、重合指数)直到 19 世纪才被发展出来。Gronsfeld 密码的数字密钥比字母密钥更易记忆、传递和正确使用,使其在优先考虑操作简便性的军事野战场景中颇具吸引力。

能否将 Gronsfeld 密钥转换为维吉尼亚密钥?

可以。每个 Gronsfeld 数字直接对应一个维吉尼亚字母:0=A、1=B、2=C、3=D、4=E、5=F、6=G、7=H、8=I、9=J。因此,Gronsfeld 密钥"31415"等价于维吉尼亚密钥"DBEBE"。任何维吉尼亚密码工具都可以通过使用转换后的密钥来执行 Gronsfeld 加密。反向转换并非始终可行——包含 K 到 Z 字母的维吉尼亚密钥在 Gronsfeld 中没有对应物。

关于本文

本文是我们综合 格伦斯费尔德密码 教程系列的一部分。继续了解古典密码学,并探索我们的交互式密码工具。

试用 格伦斯费尔德密码 工具

通过我们的交互式格伦斯费尔德密码工具,将所学知识付诸实践。

试用 格伦斯费尔德密码 工具