置换密码理论学习
来源:互联网 发布:java编写应用程序 编辑:程序博客网 时间:2024/05/17 00:53
传统密码技术-置换密码
置换密码将明文中的字母顺序重新排列,但字母本身不变,由此形成密文。换句话说,明文与密文所使用的字母相同,只是它们的排列顺序不同。
我们可以将明文按矩阵的方式逐行写出,然后再按列读出,并将它们排成一排作为密文,列的阶就是该算法的密钥。在实际应用中,人们常常用某一单词作为密钥,按照单词中各字母在字母表中的出现顺序排序,用这个数字序列作为列的阶。
【例1】我们以coat作为密钥,则它们的出现顺序为2、3、1、4,对明文“attack postoffice”的加密过程见图1:
密钥coat阶2314 attackpostoffice按照阶数由小到大,逐列读出各字母,所得密文为:
t p o c a c s f t k t i a o f e.
对于这种列变换类型的置换密码,密码分析很容易进行:将密文逐行排列在矩阵中,并依次改变行的位置,然后按列读出,就可得到有意义的明文。为了提高它的安全性,可以按同样的方法执行多次置换。例如对上述密文再执行一次置换,就可得到原明文的二次置换密文:
o s t f t a t a p c k o c f i e
还有一种置换密码采用周期性换位。对于周期为r的置换密码,首先将明文分成若干组,每组含有r个元素,然后对每一组都按前述算法执行一次置换,最后得到密文。
【例2】一周期为4的换位密码,密钥及密文同上例,加密过程如图2:
0 0
- 置换密码理论学习
- 替代密码理论学习
- 行置换密码 (列置换密码)
- 置换密码实现
- 单表置换密码
- 置换密码算法说明
- 【密码学】传统密码:置换密码
- 古典密码体制 密码置换技术验证
- 古典密码——置换密码
- 置换密码 古典加密算法 信息安全
- Z26上的行置换密码体制
- [python] 密码学:置换密码的实现
- 理论学习 C#
- 数据结构理论学习
- RabbitMQ理论学习
- H264理论学习
- AJAX理论学习
- LSTM理论学习
- bootstrap Fileinput插件的使用实例
- numpy中array的简单属性
- 关于 this 关键字
- Oracle alert 常用句式
- 特征工程
- 置换密码理论学习
- 缓存淘汰算法--LRU算法
- Invert Binary Tree
- oracle导入与导出表dmp文件
- jQuery 选择器 学习笔记
- ubuntu中源码安装编译Vim
- 如何工程化开发大型angular2项目(下篇)
- 数组 list 互转
- MyBatis insert 返回主键的方法(oracle和mysql)