• 密码学原理学习笔记


    攻击的类型:

    唯密文攻击(COA):攻击者只知道密文

    已知明文攻击(KPA):攻击者知道同一密钥下密文对应的明文。

    选择明文攻击(CPA):攻击者可以事先任意选择一定数量的明文,让被攻击的加密算法加密,并得到相应的密文。

    选择密文攻击(CCA):攻击者事先知道任意一定数量的密文,让被攻击的解密算法解密,并得到对应的明文。

    被动攻击:COA、KPA

    主动攻击:CPA、CCA

    补充(来源:https://www.zhihu.com/question/34624915):

    古典密码学

    凯撒密码:使用移位处理

    维吉尼亚密码:确定密钥后,多次使用凯撒密码

    破解维吉尼亚密码:关键在于确定密钥的长度t

     方法一  Kasiski方法:

    在密文中出现相同的子串之间的距离可能是t的倍数,找出所有的相同的子串的距离,尤其出现次数较多的(避免巧合),t是这些距离的最大公约数。

    方法二 Friedman试验:

    以下内容推荐博客:https://blog.csdn.net/white_idiot/article/details/61201864

    重合因子Index of Coincidence(IC):任意取两个字母(取后放回),使之结果相同的概率

    英语中的重合因子定义如下:

    ,由每个字母出现的概率,可算得其结果为0.065

    破解维吉尼亚密码的两个步骤:

    1、确定密钥长度。

    遍历密钥长度,使得某一个密钥长度下的分组算得的重合因子其结果接近0.065,可用以下公式:

    ,其中,i为英文字母顺序表中的第i个字母,ni为其在密文分组中出现的频数,N为该分组的长度。如果该密钥长度下的各个分组算得的平均重合因子的结果接近0.065,则找到正确的密钥长度。否则,换下一个密钥长度测试。

    2、进行频率分析。

    密文确定密钥长度后,可将密文划分成相应的分组。在划分出来的任一分组中,明文和密文都是通过同一个字母实现移位加密的,此时,只需将密文相对于明文进行移位测试,找出具有重合因子接近0.065的位移,即可确定该分组的偏移量,其他分组同理。可用以下公式:

    (j的取值为[0,25],即我们需要求的偏移量)。可理解成:明文中出现的第i个字母可能映射成了密文中的第i+j个字母(两个"字母"都已经按顺序排好,但出现的频数不一定相同)

    单字母替换(Mono-Alphabetic Substitution):将明文中的字母进行随机替换,密钥空间为26!

    Kerckhoffs’s principle :

    The cipher method must not be required to be secret, and it must be able to fall into the hands of the enemy without inconvenience.


    Sufficient Key Space Principle:

    Any secure encryption scheme must have a key space that is not vulnerable to exhaustive search

    Arbitrary Adversary Principle :

    Security must be guaranteed for any adversary within the class of adversaries having the specified power

    现代密码学的三个主要规则

    Principle 1: Formulation of Exact Definitions
    No adversary can derive any meaningful information about the plaintext from the ciphertext.

    Principle 2 – Reliance on Precise Assumptions


    Principle 3 – Rigorous Proofs of Security


  • 相关阅读:
    没有内存,怎么还能跑程序呢
    风物长宜放眼量,人间正道是沧桑
    一篇文章带你「重新认识」线程上下文切换怎么玩儿
    一文带你怼明白进程和线程通信原理
    万字长文带你还原进程和线程
    这些操作系统的概念,保你没听过!
    什么叫操作系统啊 | 战术后仰
    你要问我应用层?我就和你扯扯扯
    面试官问你MyBatis SQL是如何执行的?把这篇文章甩给他
    从这道字符串处理的难题,寻找解决复杂问题的套路
  • 原文地址:https://www.cnblogs.com/cellphone7/p/9595373.html
Copyright © 2020-2023  润新知