zoukankan      html  css  js  c++  java
  • 第二章古典密码体制

    转https://www.cnblogs.com/WittPeng/p/8978737.html

    古典密码体制

    1.置换密码

    1.列置换密码

    • 加密过程:(1)明文按照固定宽度m按行写出,不足部分按照双方约定方式填充,得到字符矩阵;

                               (2)进行置换操作;

                              (3)读出后即为密文

    • 解密过程:将加密密钥逆置,按照加密过程操作,即可由密文得到明文。
    • 如密钥e=(143)(56) 意思是1->4,4->3,3->1,5->6,6->5

    2.周期置换密码

    •  明文按照固定长度m分组,对字符串编号,重新排列位置从而得到密文;解密时将加密密钥逆置得到解密密钥,重新排列位置后得到明文。

    2.代换密码

    • 代换密码就是将明文中的字符替换为其他字符的密码体制。

    单表代换密码

    • 基于密钥的代换密码,明文字母对应的密文字母在密文中保持不变
    • 仿射密码:e(x)=ax+b(mod26) (a,b属于Z26,gcd(a,26)=1)

                        x=d(e(x))=a-1(e(x)-b)(mod26)

    多表代换密码

    • 明文中不同位置的同一明文字母在密文中对应的密文字母不同,能够很好地对抗统计密码分析
    • 实例:
    Playfair密码
    加密步骤:a.在适当位置闯入一些特定字母,譬如q,使得明文字母串的长度为偶数,并且将明文字母串按两个字母一组进行分组,每组中的两个字母不同。

    b.明文m1m2对应的密文c1c2的确定:m1和m2同行或同列,则c1为m1后的字符,c2为m2后的字符;若m1和m2既不同行也不同列,则c1c2在m1m2所确定的矩形的其他两个角上,c1和m1同行,c2和m2同行。

    Vigenere(维吉尼亚密码)

    例:

     

    Vernam(维尔姆密码)
    Hill(希尔密码)
    • [p]1*n≡([c]1*n*[k]-1m*n)(mod 26)62333333
    • 所使用的矩阵必须为非奇异矩阵
    • 安全性:能较好抵抗统计分析法,对抗唯密文攻击的强度较高,但易受已知明文攻击。
    • 逆矩阵的求法:
    • 转轮密码机

    古典密码的分析——统计分析法

    单表代换密码分析

    • 使用字母或汉字的统计规律

    多表代换密码分析

    • 确定密钥长度:
    1.  卡西斯基(Kasisks)测试法:找相同字母间隔字母数的最大公因子,有可能是周期k
    2. 重合指数法:计算概率分析重合指数IC=Σpi ,IC高的可能是单表代换,低的可能是多表代换。
    • 确定密钥:拟重合指数测试法:x=Σriqi
    • 恢复明文并验证

    明文-密文对分析法

  • 相关阅读:
    csp-s 92
    支持smtp/imap smtp/pop3的撞库python撞库脚本
    关于KB2839299 微软补丁前后的kifastcallentry
    (转载)RegSetValueEx设置REG_SZ类型键值时要注意的问题
    x64windows安全机制进程_线程_模块加载回调摘要
    windbg脚本实践3----监控特定进程创建
    windbg脚本实践2----监控特定注册表键值创建和删除
    windbg脚本实践1----监控特定文件创建 删除 读写
    纪念在乙方安全公司的2年_关于杀毒软件和远控的斗争
    文件删除的windows下面的三种路径(轻量级)
  • 原文地址:https://www.cnblogs.com/69-year-old-comrade/p/15313709.html
Copyright © 2011-2022 走看看