ADFGVX和ADFGX加密与解密

明文
密文
ADFGVX
AABCDEF
DGHIJKL
FMNOPQR
GSTUVWX
VYZ0123
X456789

什么是ADFGVX密码?

ADFGVX密码是一种多重字母替换密码,最早由德国军方在第一次世界大战期间使用。它结合了替换和置换的原理,使用一个6×6的方阵来加密字母,字母在方阵中被替换成两个字符的组合。ADFGVX密码的名称来自于这个方阵的六个字母(A、D、F、G、V、X),这些字母分别代表了方阵中的行和列,如下图:

ADFGVX

在ADFGVX密码中,每个明文字符首先被替换成一个由两个字母组成的行列代码,这些字母根据一个预定的字母表来映射。如字母 M 对应的行列代码为:FA。加密的第二步是将这些由字母组成的代码根据秘钥重新排列,形成一个新顺序,从而最终得到密文。

ADFGVX 与 ADFGX 密码的比较

虽然ADFGVX密码和ADFGX密码都属于同一种密码体系,但它们之间还是存在一些重要的差异。这些差异主要体现在字母表的结构和使用的字符数上,进而影响到加密和解密的复杂性和适用场景。

特性ADFGVX密码ADFGX密码
字母表大小6×6方阵,包含36个字符(字母 + 数字)5×5方阵,包含25个字符(字母)
行、列号A、D、F、G、V、XA、D、F、G、X
加密复杂度较高,能加密更多类型的字符,安全性更强较低,仅处理字母,加密复杂度较简单
安全性更强,适用于更高安全性需求较弱,适合简单加密需求
适用场景适用于包含字母和数字的复杂信息加密,如军事通信等适用于仅包含字母的简单加密需求

ADFGVX 和 ADFGX 密码如何加密?

  1. 准备明文:删除明文中的任何非字母字符(如空格、标点等)。
  2. 构建字母方阵:设置字母表,根据字母表生成 ADFGVX 或 ADFGX 方阵。
  3. 替换明文字符:对明文中的每个字母,根据字母方阵找到对应的行和列,替换为一个由两个字母组成的行列代码。
  4. 构建秘钥表格:根据秘钥重新构建表格,把行列代码写入这个表格,按行填充。
  5. 表格排序:根据秘钥的字母顺序,重新整理列的顺序。
  6. 生成密文:逐列读取表格中的代码,获取最终密文。

示例

假设明文为:“HELLO WORLD”,使用默认字母表(A - Z 0 - 9),在ADFGVX模式,用秘钥“KEYWORD”来加密

1. 构建字母方阵

ADFGVX
AABCDEF
DGHIJKL
FMNOPQR
GSTUVWX
VYZ0123
X456789

2. 替换明文字符

3. 构建并填充秘钥表格(横向填充)

KEYWORD
3276451
DDAVDXD
XFFGVFF
FXDXAG

4. 排序表格

DEKORWY
1234567
DDDDXVA
FFXVFGF
XFAGXD

5. 生成密文

按列读取,获取最终密文:DFDFXDXFDVAXFGVGXAFD

ADFGVX密码如何解密?

解密过程与加密过程的步骤类似,获取行列字母坐标后,要按照秘钥的字母顺序(A - Z)填充到表格中。注意:要判断是否能完全填充,若不能,哪些单元格不能填充。填充完成后再还原成秘钥的原先顺序;接着,按行(横向)从上到下,两两组合读出行列坐标;最后,根据重新组合的行列坐标和字母表方阵还原明文信息。

分享页面