用户:MaxHasBeenUsed/置换式密码
在密码学中,置换式密码(英文:Transposition Cipher,也称换位式密码)是一种加密方法,通过打乱明文(通常是字符或字符组)中的各字符所处的相对位置而实现加密。打乱后生成的文本称为密文。相对地,替换式密码不改变明文中各字符的位置,但会改变字符本身。
替换和置换两种加密手段经常组合在一起使用,如ADFGVX 密码等古典密码或现代高级加密算法(AES)等复杂、高质量的加密方法。
基本原则
编辑使用密钥可以将明文重新排列成密文,使得密文的字符看起来就像打乱的拼图一样杂乱无章。在没有密钥的情况下,生成的消息极难破译,因为字符有意义的排列方式可以有很多种。例如,明文 THIS IS WIKIPEDIA 可以加密为 TWDIP SIHII IKASE。
为了在没有密钥的情况下破译密文,密码分析者可以猜测可能的单词或短语,如 DIATHESIS、DISSIPATE、WIDTH 等,但这样重建明文需要耗费大量时间。相比之下,拥有密钥的人可以轻松地重建消息。
假设以密钥 CIPHER 加密一段文字 THIS IS WIKIPEDIA,可以先将明文中的各字母依次写在方格中,然后按照密钥中字母的字母顺序(例如,“C”是第一个,而“E”是第二个)按列读取,形成密文。实际流程如下:
C I P H E R 密钥 1 4 5 3 2 6 顺序(密钥中的字母,按字母序) T H I S I S 明文(THIS IS WIKIPEDIA) W I K I P E D I A * * *
按顺序读取列得到:
#1 TWD, #2 IP, #3 SI, #4 HII, #5 IKA, #6 SE
密文:
TWDIP SIHII IKASE
以上的密文刻意以 5 个字母为一“组”书写,这是使密文更易于阅读的常用技术。“组”间的间隔与明文中单词间的间隔无关,因此不携带任何有关明文的信息。
实践中,像这样短且带有可预测关键字的密文几乎可以立即通过密码分析技术破解。同时,作为一种加密方式,置换密码存在漏洞,且加密过程中的一点小错误可能会使整个密文毫无意义。
但如果使用正确——满足明文较长(100 个字母以上)、没有可简单猜到的字词,每条密文对应唯一密钥、使用复杂的换位方法等要求——仅靠猜测破解密文从数学角度上说是不可能的。
密码棒
编辑密码棒(英文:Scytale)是古希腊人使用的一种产生置换密码的机械装置。该装置由一个圆柱体和缠绕其上的带状物组成。将写有明文信息的丝带缠绕到圆筒外侧后观察圆筒,即可得到字母顺序被重新排列的密文。然而,只要有和用于加密的圆柱体直径足够相近的圆柱体,则可以很容易地解密。 [1]
例如,加密信息 WE ARE DISCOVERED FLEE AT ONCE(意为:我们被发现了,立即撤退),将圆筒水平放置,而带状物在垂直方向上缠绕。如果圆柱体一周容纳三个字母,则密码器写出:
W . . E . . A . . R . . E . . D . . I . . S . . C . O . . V . . E . . R . . E . . D . . F . . L . . . . E . . E . . A . . T . . O . . N . . C . . E .
密码器读出:
WOEEV EAEAR RTEEO DDNIF CSLEC
栅栏密码
编辑栅栏密码(英文:Rail Fence Cipher)是置换密码的一种形式,因其编码方式而得名。在栅栏密码中,明文向斜下方写入假想的栅栏和连续的“轨道”上,触底时向斜上方继续书写,如此反复。最后按行读取,形成密文。
使用与之前相同的示例,如果使用三条“轨道”加密,则密码器写出:
W . . . E . . . C . . . R . . . L . . . T . . . E . E . R . D . S . O . E . E . F . E . A . O . C . . . A . . . I . . . V . . . D . . . E . . . N . .
读出:
WECRL TEERD SOEEF EAOCA IVDEN
路径密码
编辑在路径密码(英文:Route Cipher)中,明文首先以给定尺寸的网格写出,然后以密钥中给定的模式读出。例如,使用与上文相同的明文:
W R I O R F E O E E E S V E L A N J A D C E D E T C X
如果密钥指定“从右上角开始,顺时针向内螺旋读取”,则密文为:
EJXCTEDEC DAEWRIORF EONALEVSE
比起栅栏密码,路径密码存在更多密钥的可能性。对于有一定的长度的消息,可能的密钥数量非常多,即使是现代计算机器也难以枚举。但这并不意味着加密者可以高枕无忧。如果密钥的路径使密文中留下过多的明文块,甚至只是简单地反转文本,密码分析者都可能可以更快地理解路径,从而破解密文。
列位移密码
编辑在列位移密码中,消息按行写下,然后按列读取。其中,行的宽度和列的读取顺序都由一个关键词决定。例如,关键词 ZEBRAS 由 6 个字母组成,因此行的长度为 6;关键词中各字母的字母顺序为“6 3 2 4 1 5”,说明按列读取时最先读从左起第 5 列。
在按行写下消息时,有可能出现最后一行长度不同的情况。一般来说,列位移密码中任何空白都应以空值填充;在不规则的列位移密码中,空白部分留空。用作空值的字母可以由加密方随意选择,因为它们只是填满不完整的行(或列),其本身并不是消息的一部分。
例如,假设我们使用关键词 ZEBRAS 加密明文 WE ARE DISCOVERED FLEE AT ONCE,并添上五个空值(QKJEU)。在常规的列位移密码中,写入方格如下所示:
6 3 2 4 1 5 顺序 W E A R E D 明文 I S C O V E R E D F L E E A T O N C E Q K J E U
密文读出为:
EVLNE ACDTK ESEAQ ROFOJ DEECU WIREE
若为不规则的列位移密码,写入方格:
6 3 2 4 1 5 W E A R E D I S C O V E R E D F L E E A T O N C E
密文读出为:
EVLNA CDTES EAROF ODEEC WIREE
破译列位移密码时,接收者必须通过将密文长度除以密钥长度来计算出列长度,将密文按列写进方格中,然后通过密钥给出的顺序来重新排序列。
参考文献
编辑参看
编辑引用
编辑- ^ Smith, Laurence Dwight, Cryptography / The Science of Secret Writing, New York: Dover: 16, 92–93, 1955 [1943]