我建议带有以下说明的板、一个解码表和一个等宽文本块(三个板不同),如下所示:
取两个盘子,将底部的文本逐个字母组合在一起,使用下面的解码表,以便第一个解码的字符是.
(数字空格)。忽略它,然后以相同的方式解码其余部分以获得密码。
| A B C D E F G H I J K L M N O P Q R S T U V W X Y Z .
----+------------------------------------------------------
- A | A B C D E F G H I J K L M N O P Q R S T U V W X Y Z .
- B | C A B F D E I G H L J K O M N R P Q U S T X V W . Y Z
- C | B C A E F D H I G K L J N O M Q R P T U S W X V Z . Y
- D | G H I A B C D E F P Q R J K L M N O Y Z . S T U V W X
- E | I G H C A B F D E R P Q L J K O M N . Y Z U S T X V W
- F | H I G B C A E F D Q R P K L J N O M Z . Y T U S W X V
- G | D E F G H I A B C M N O P Q R J K L V W X Y Z . S T U
- H | F D E I G H C A B O M N R P Q L J K X V W . Y Z U S T
- I | E F D H I G B C A N O M Q R P K L J W X V Z . Y T U S
- J | S T U V W X Y Z . A B C D E F G H I J K L M N O P Q R
- K | U S T X V W . Y Z C A B F D E I G H L J K O M N R P Q
- L | T U S W X V Z . Y B C A E F D H I G K L J N O M Q R P
- M | Y Z . S T U V W X G H I A B C D E F P Q R J K L M N O
- N | . Y Z U S T X V W I G H C A B F D E R P Q L J K O M N
- O | Z . Y T U S W X V H I G B C A E F D Q R P K L J N O M
- P | V W X Y Z . S T U D E F G H I A B C M N O P Q R J K L
- Q | X V W . Y Z U S T F D E I G H C A B O M N R P Q L J K
- R | W X V Z . Y T U S E F D H I G B C A N O M Q R P K L J
- S | J K L M N O P Q R S T U V W X Y Z . A B C D E F G H I
- T | L J K O M N R P Q U S T X V W . Y Z C A B F D E I G H
- U | K L J N O M Q R P T U S W X V Z . Y B C A E F D H I G
- V | P Q R J K L M N O Y Z . S T U V W X G H I A B C D E F
- W | R P Q L J K O M N . Y Z U S T X V W I G H C A B F D E
- X | Q R P K L J N O M Z . Y T U S W X V H I G B C A E F D
- Y | M N O P Q R J K L V W X Y Z . S T U D E F G H I A B C
- Z | O M N R P Q L J K X V W . Y Z U S T F D E I G H C A B
- . | N O M Q R P K L J W X V Z . Y T U S E F D H I G B C A
EKIAIJEBRP.ZOXHAOLKXMBWSPENLGKIIJYRDEYJQYOYISHMLQPRPNHKEPHNOLOMBCRDMGNXRSHBCQOVZFNIRIQFGPONEFDXAO.ILFHLCJEPVC..K
RTXAYBREAOWMYWXAWVYYXDIUBUSHKMVQWMJWVBHDBDNNEIBANTFECVXE.LVAFYBIMLTBD.PNYLCCCYNUN.XUJPVGQE.CFHPNRMYRPPLBBATDXMMG
SBLAQUSHWKSCBVJADHFTEIJTXPIVXRKYIANOOOXUOWCSRG.TKFUUYLGEHVFZ.B.DZOR.AABJVVACVBFVVALFWRNGRVAGFCB.LBQOT.LAUIFMRBBX
(每个板块只有上述三个文本块之一)。
.
这解码为(包括要忽略的前导)
.SMALL.GREEN.BOAT.WITH.BROWN.HOT.MILK.ON.LOW.COLD.MOON.AT.TOP.OF.GOOD.RED.CAR.LIT.MY.BLACK.FAIR.GOLD.TABLE.SPOON
这是使用拉丁方格对密码短语的各个字母执行的手动 Shamir 秘密共享。在描述整个系统之前,我将通过一个使用 3 个符号的示例来介绍该原理。
如果密钥由 中的n位数字组成012
,记下 K j其中 1 ≤ j ≤ n,例如120221
.. 我们可以进行如下处理:
- 一个盘子被标记
E
,后面跟着n 个随机数字012
,记为 E j,
例如E012101
..
- 一个牌号
R
后面有n位数字012
,记为R j,其中
R j = (3 + E j - K j ) % 3;[其中 % 是模运算符]
例如R222210
..
- 一个盘子
S
后面标有n个数字012
,记为S j,其中
S j = (3 + R j - K j ) % 3;
例如S102022
..
要恢复任何两个板块的密钥,请使用
K j = (3 + E j - R j ) % 3;
K j = (3 + R j - S j ) % 3;
K j = (3 + S j - E j ) % 3;
取决于使用的板。这将恢复密钥。每个单独的盘子都是随机的,因此根本没有关于密钥的任何线索。
等效地,编码和解码可以使用这个减法表:
| 0 1 2
----+------
- 0 | 0 1 2
- 1 | 2 0 1
- 2 | 1 2 0
这适用于三个以上的符号,通过以 3 为底表示。26 个字母和特殊符号.
(用于空格)可以写为以 3 为底的三位数字,字母表ABCDEFGHIJKLMNOPQRSTUVWXYZ.
由 000 到 222 表示。减法表 ( - ) 是盘子上的那个。
ABCDEFGHIJKLMNOPQRSTUVWXYZ.
除了第一个是 之外,一个盘子具有均匀随机的字符E
,另外两个盘子是根据密钥准备的,虚拟 K 0设置为.
。
R j = E j - K j
S j = R j - K j
解码是根据方程:
K j = E j - R j
K j = R j - S j
K j = S j - E j
车牌的E
R
S
开头允许识别它们,并导致.
作为第一个字符的解密。