虛無加密法加密與解密

明文
密文
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. 輸入明文或密文:根據需要在相應輸入框內輸入明文或密文,工具會根據設定的參數自動完成加密或解密,並最終顯示。

分享頁面