虚无加密法加密与解密

明文
密文
12345
1ABCDE
2FGHIK
3LMNOP
4QRSTU
5VWXYZ

什么是虚无加密法?

虚无加密法(Nihilist Cipher)是一种基于数字和字母的加密方式,其核心原理是将字母通过方阵转化为数字,然后利用秘钥对数字进行加密。该加密方法与波利比奥斯方阵不同,加入了秘钥的复杂性,使得加密和解密过程更加安全。通过该方法,即使攻击者获得了加密后的文本,只凭密文无法轻易恢复原文。

虚无加密法如何加密?

  1. 确定字母表、行数、列数、秘钥
    • 字母表:选择字母表,如英语字母表“ABCDEFGHIJKLMNOPQRSTUVWXYZ”,或其他语言的字母表。
    • 行数与列数:根据字母表的长度选择合适的行数和列数;通常,如果字母表有26个字母,则选择 5 行 5 列的方阵。
    • 秘钥:选择一个字母表中的字母作为秘钥(可以是单词或字符串),秘钥的字母将被转换为方阵中的行列坐标。
  2. 生成方阵: 根据字母表、行数和列数,自动生成对应的方阵。
  3. 将明文转换为数字: 将明文中的每个字母根据方阵转换为对应的行列数字。
  4. 将秘钥转换为数字: 将秘钥中的每个字母根据方阵转换为行列坐标。
  5. 应用秘钥对数字进行加法运算: 将明文中得到的数字与秘钥中的数字进行加法运算。由于秘钥可能短于明文,需要重复使用秘钥以匹配明文的长度。
  6. 输出密文:将数字对合并为最终密文。

示例

假设要加密明文“HELLO”,秘钥是“KEY”,字母表是“ABCDEFGHIJKLMNOPQRSTUVWXYZ”,生成 5行5列的方阵:

12345
1ABCDE
2FGHI / JK
3LMNOP
4QRSTU
5VWXYZ

将明文“HELLO”转为数字坐标:

将秘钥“KEY”转为数字对:

合并明文“HELLO”与秘钥“KEY”的数字对:

Hello(2, 3)(1, 5)(3, 1)(3, 1)(3, 4)
Key(2, 5)(1, 5)(5, 4)(2, 5)(1, 5)
密文(4, 8)(2, 10)(8, 5)(5, 6)(4, 9)

所以,最终得到的加密后的数字对:48 30 85 56 49

虚无加密法如何解密?

解密的步骤与加密过程类似,但需要进行逆向操作(行列相减),如上面的密文:48 30 85 56 49,解密步骤如下:

密文(4, 8)(3, 0)(8, 5)(5, 6)(4, 9)
Key(2, 5)(1, 5)(5, 4)(2, 5)(1, 5)
明文(2, 3)(1, 5)(3, 1)(3, 1)(3, 4)

根据这些数字对,还原为原始字母:

得到解密后的明文:HELLO

如何使用虚无加密法工具?

  1. 选择字母表,设置行数和列数:在工具中,您可以选择字母表(支持多语言),设置行数和列数,默认是 5 行 5 列。
  2. 定义秘钥和分隔符:设置加密的秘钥,可以是任何由字母组成的字符串;分隔符默认以空格隔开。
  3. 输入明文或密文:根据需要在相应输入框内输入明文或密文,工具会根据设定的参数自动完成加密或解密,并最终显示。

分享页面