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