密码学基础系列之(2.1传统对称密钥密码之三)
来源:互联网 发布:s cms企业建站系统 编辑:程序博客网 时间:2024/06/10 01:49
多码代换密码
多码代换中,明文字符与密文字符的关系是一对多。密文C除了与明文P有关外,还与P的位置有关。
自动密钥密码
autokey cipher
P=P1P2P3... C=C1C2C3..... k=(k1, P1, P2, ...)
加密:Ci = (Pi+ki) mod N 解密: Pi = (Ci-ki) mod N
该密码隐藏了单字频率,但密钥域太小。
Playfair 密码
一战中英国军队使用过该密码。
加密:将明文中的双字母组合作为一个单元对待,并将这些单元转换位密文双字母组合。加密过程把密钥填写在一个5×5的矩阵中(去出重复字母和字母j),矩阵中其它未用到的字母按顺序填在矩阵剩余位置中。
加密规则如下:
1 若p1 p2在同一行,对应密文c1 c2分别是紧靠p1 p2 右端的字母。其中第一列被看做是最后一列的右方。
2 若p1 p2在同一列,对应密文c1 c2分别是紧靠p1 p2 下方的字母。其中第一行被看做是最后一行的下方。
3 若p1 p2不在同一行,不在同一列,则c1 c2是由p1 p2确定的矩形的其他两角的字母,并且c1和p1, c2和p2同行。
4 若p1 p2相同,则插入一个事先约定的字母,比如X 。
5 若明文字母数为奇数时,则在明文的末端添加某个事先约定的字母作为填充。
解密:将密钥填写在一个5×5的矩阵中(去出重复字母和字母j),矩阵中其它未用到的字母按顺序填在矩阵剩余位置中,根据替换矩阵由密文得到明文。
解密规则如下:
1 若c1 c2在同一行,对应明文p1 p2分别是紧靠c1 c2 左端的字母。其中最后一列被看做是第一列的左方。
2 若c1 c2在同一列,对应明文p1 p2分别是紧靠c1 c2 上方的字母。其中最后一行被看做是第一行的上方。
3 若c1 c2不在同一行,不在同一列,则p1 p2是由c1 c2确定的矩形的其他两角的字母,并且c1和p1, c2和p2同行。
该密码的密钥域长度为25!,同时隐藏了单字母频率。
Vigenere密码
该密码的密钥流是一个长度为m的起始密钥流的重复。
P=P1P2P3…… C=C1C2C3…… K=[(k1, 2, ……km),(k1, 2, ……km)……]
加密:C1=Pi+ki 解密:Pi = Ci-ki
该密码不保存字符的频率,也无法直接暴力攻击。但还有方法进行有效攻击。具体的方法后面专门介绍。
上一篇
- 密码学基础系列之(2.1传统对称密钥密码之三)
- 密码学基础系列之(2.1传统对称密钥密码之二)
- 密码学基础系列之(2.1传统对称密钥密码之四)
- 密码学基础系列之(2.1传统对称密钥密码之一)
- [密码学]保密密钥对称加密算法之DES算法
- 密码学基础系列之1(1.1)
- 密码学之可逆加密 杂谈(对称、非对称)
- 非对称密码之DH密钥交换算法
- 密码学之序列密码
- 密码学之分组密码
- 密码学之hill密码
- 对称密码学的密钥交换
- 【密码学】传统密码:统计分析
- [密码学]公开密钥体系之RSA算法
- 网络安全之密码学基础
- 趣味密码学之二:福侦探的绝招——破译传统密码
- 【密码学】传统密码:置换密码
- 【密码学】传统密码:代换密码
- 解译“_ifdef+__cplusplus+”的含义
- js中的窗口大小
- How To Apply Patches in E-Business Suite
- 修改eclipse中$(user)的值
- 回归分析
- 密码学基础系列之(2.1传统对称密钥密码之三)
- 全能水果柠檬的保健功效和食用方法
- syntactic 与semantic 的区别
- asp.net url传递中文参数的小技巧 解决中文乱码
- 自己写的简单通过js只提供另存为功能【避免直接打开后,文件被占用,其他用户更新不了文件信息】
- Spinner的简单使用
- 关于“warning C4786”
- 短网址简介
- ant