网络安全 / A LEAF IN THE GARDEN
多表替换
网络安全 · crypto / 古典密码。来自 Daily Learning 的学习笔记。
概念
用多张替换表,按密钥循环切换,让同一个明文字母在不同位置被替换成不同密文字母,单字母频率分析失效
维吉尼亚密码
流程
- 去掉明文非字母部分
- 秘钥与明文循环对齐
- 每个明文字母按对应的秘钥字母选择替换表进行替换
密码表
| A | B | C | D | E | … | |
|---|---|---|---|---|---|---|
| A | A | B | C | D | E | … |
| B | B | C | D | E | F | … |
| C | C | D | E | F | G | … |
| D | D | E | F | G | H | … |
| E | E | F | G | H | I | … |
| … |
示例
明文: there is a cipher
秘钥: password
过滤对齐
明文: thereisacipher
秘钥: passwordpasswo
密文: ihwjawjdrihzaf
普莱菲尔密码
基于 矩阵为字母对进行加密
流程
- 对秘钥字母去重,按顺序填入矩阵
- 其余字母按字母表顺序填入(ij合并)
- 明文按字母对分组,组内相同或单字母则补x
- 按规则替换字母对:
- 同行:右移一位(循环式)
- 同列:下移一位(循环式)
- 不同行列:
- 取以两个字母为对角矩形
- 用矩形另一对角字母替换(同行或同列替换)
示例
明文: test with playfair cipher
秘钥: hello
去重秘钥: helo
矩阵
| 1 | 2 | 3 | 4 | 5 | |
|---|---|---|---|---|---|
| 1 | h | b | i/j | q | v |
| 2 | e | c | k | r | w |
| 3 | l | d | m | s | x |
| 4 | o | f | n | t | y |
| 5 | a | g | p | u | z |
密文: ortukvoqamzogokqkbaicw
希尔密码
使用矩阵进行可逆线性映射
流程
- 选择可逆矩阵 作为秘钥
- 将明文字母按 26 进制解析为 维向量
- 计算密文向量
- 将密文向量 转换为字母输出
示例
明文: act(n=3)
明文向量(3维):
秘钥矩阵(3×3):
密文: poh