美文网首页
密码学 - 古典加密

密码学 - 古典加密

作者: 极客圈 | 来源:发表于2017-04-05 13:10 被阅读0次

    珍惜现在的资源和时间,坚持让编程改变世界

    密码学

    信息理论之父:克劳德 香农
    论文《通信的数学理论》

    如果没有信息加密,信息直接被中间人拦截查看、修改。

    密码学基础概念

    明文Plain text
    密文Cipher text

    加密Encryption/Encrypherment:将明文转化为密文
    解密Decrytion/Decipherment:讲密文还原为明文

    加密钥匙EK Encryption Key:加密时配合加密算法的数据
    解密钥匙EK Encryption Key:解密时配合解密算法的数据

    古典加密 - 凯撒密码

    各个字符按照顺序进行n个字符错位的加密方法。
    (凯撒是古罗马军事家政治家)

    明文AKEA
    密匙2.  加密算法:每位+
    密文CMFC
    (大忌!密文中出现重复,是一种特征,易被破解)
    
    将123456每位数字都加1后得到234567
    
    明文123456
    密钥:1  加密算法:每位+
    密文234567
    

    多次使用恺撒密码来加密并不能获得更大的安全性,因为使用偏移量A加密得到的结果再用偏移量B加密,等同于使用A+B的偏移量进行加密的结果。

    凯撒密码 - 解密

    凯撒密码最多只有25个密匙 +1到+25 安全强度几乎为0
    (密钥为0或26时,明文在加密前后内容不变)

    暴力枚举
    根据密文,暴力列出25个密匙解密后的结果。

    凯撒密码的变种 - 换字式

    如
    原文AB..
    密文BV..
    
    • 典型的rot13(密钥为+13的凯撒加密)
      26个字母 大小写 替换对照表
      ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm
    • 破解 rot13 再来一次rot13加密,就变回原文。

    凯撒密码的变种 - 多表替代 - 维吉尼亚密码

    如
    明文分为5组
    第1组密匙+2 第2组密匙+5
    然后把密文连接起来
    

    凯撒密码的例子是所有 单字母替代式密码 的典范,它只使用一个密码字母集。
    我们也可以使用多字母替代式密码,使用的是多个密码字母集。
    加密由两组或多组 密码字母集 组成,加密者可自由的选择然后用交替的密码字母集加密讯息。
    (增加了解码的困难度,因为密码破解者必须找出这两组密码字母集)
    另一个多字母替代式密码的例子“维吉尼亚密码”,将更难解密
    (法语:Vigenère cypher),
    它有26组不同用来加密的密码字母集。
    每个密码字母集就是多移了一位的凯撒密码。
    维吉尼亚方格(替换对照表):

                    A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
                    B C D E F G H I J K L M N O P Q R S T U V W X Y Z A
                    C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
                    D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
                    E F G H I J K L M N O P Q R S T U V W X Y Z A B C D
                    F G H I J K L M N O P Q R S T U V W X Y Z A B C D E
                    G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
                    H I J K L M N O P Q R S T U V W X Y Z A B C D E F G
                    I J K L M N O P Q R S T U V W X Y Z A B C D E F G H
                    J K L M N O P Q R S T U V W X Y Z A B C D E F G H I
                    K L M N O P Q R S T U V W X Y Z A B C D E F G H I J
                    L M N O P Q R S T U V W X Y Z A B C D E F G H I J K
                    M N O P Q R S T U V W X Y Z A B C D E F G H I J K L
                    N O P Q R S T U V W X Y Z A B C D E F G H I J K L M
                    O P Q R S T U V W X Y Z A B C D E F G H I J K L M N
                    P Q R S T U V W X Y Z A B C D E F G H I J K L M N O
                    Q R S T U V W X Y Z A B C D E F G H I J K L M N O P
                    R S T U V W X Y Z A B C D E F G H I J K L M N O P Q
                    S T U V W X Y Z A B C D E F G H I J K L M N O P Q R
                    T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
                    U V W X Y Z A B C D E F G H I J K L M N O P Q R S T
                    V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
                    W X Y Z A B C D E F G H I J K L M N O P Q R S T U V
                    X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
                    Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
                    Z A B C D E F G H I J K L M N O P Q R S T U V W X Y
    
    维吉尼亚密码
    如
    明文: I LOVE CRYPTOGRAPHY
    关键字(密钥):W ORDW ORDWORDWORDW
    则
    密文: E ZFYA QIBLHFJNOGKU
    
    
    第1位密文字母结果 = 
    维吉尼亚方格中W开头的那一行,与第1行中的字母I相同列位置的那个字母 = E
    
    维吉尼亚密码 必须先选择一个关键字,接着连续“复制”这个关键字,直到和明文长度相同。
    然后看明文讯息下方是哪一行(密码字母集)可供使用,就是明文的第一个字母下方对映到的关键字母。另外,每个密码字母集由它自己的第一个字母作为名称。
    

    维吉尼亚密码引入了密匙概念。
    同一明文在密文中的每个对应,可能都不一样。

    凯撒密码的变种 - 移位式密码

    移位式密码,明文中出现的字母依然出现在密文中,只有字母顺序是依照一个定义明确的计划改变。
    许多移位式密码是基于几何而设计的。一个简单的加密(也易被破解),可以将字母向右移1位。
    例如,明文"Hello my name is Alice."
    将变成"olleH ym eman si ecilA."
    密码棒(英语:scytale)也是一种运用移位方法工具。


    明文分组,按字符长度来分,每5个字母分一组。
    并将各组内的字符的顺序进行替换。

    如
    明文 ILOVEFISH!
    
    假设 n = 5(每5个字母为1组)
    
    变换规则(密匙):
    第1个字母 -> 移动到位置 2
    第2个字母 -> 移动到位置 4
    第3个字母 -> 移动到位置 1
    第4个字母 -> 移动到位置 5
    第5个字母 -> 移动到位置 3
    
    共有两组明文 加密后组合起来 得到密文:OIELVSF!IH
    

    具体例子
    纵栏式移项密码
    先选择一个关键字,把原来的讯息由左而右、由上而下依照关键字长度转写成长方形。接着把关键字的字母依照字母集顺序编号,例如A就是1、B就是2、C就是3等。例如,关键字是CAT,明文是THE SKY IS BLUE,则讯息应该转换成这样:
    C A T
    3 1 20
    T H E
    S K Y
    I S B
    L U E

    最后把讯息以行为单位,依照编号大小调换位置。呈现的应该是A行为第一行、C行为第二行、T行为第三行。然后就可以把讯息"The sky is blue"转写成HKSUTSILEYBE。
    另一种移位式密码是中国式密码(英语:Chinese cipher),移位的方法是将讯息的字母加密成由右而左、上下交替便成不规则的字母。范例,如果明文是:THE DOG RAN FAR,则中国式密码看起来像这样:
    R R G T
    A A O H
    F N D E
    密码文将写成:RRGT AAOH FNDE
    绝大多数的移位式密码与这两个范例相类似,通常会重新排列字母的行或列,然后有系统的移动字母。其它一些例子包括Vertical Parallel和双移位式(英语:Double Transposition)密码。
    更复杂的算法可以混合替代和移位成为积密码(product cipher);现代资料区段密码像是DES反复位移和替代的几个步骤。

    栅栏密码

    行数=栏数
    明文,分为N栏(N行) 按照明文本来的顺序,竖着从上往下填。

    【实例1】
    明文123456
    栏数2(行数2)
    密文135246

    135
    246
    拆成2行(2栏),竖着看密文——得到明文

    【实例2】明文123456789abcdefghi 栏数9 (行数)--->密文1a2b3c4d5e6f7g8h9i
    拆成9行竖着看密文.

    1a
    2b
    3c
    4d
    5e
    6f
    7g
    8h
    9i

    古典密码【栅栏密码安全度极低】组成栅栏的字母一般一两句话,30个字母。不会太多! 加解密都麻烦

    频率分析

    是指研究字母或者字母组合在文本中出现的频率。应用频率分析可以破解古典密码。

    工具
    在线词频分析 http://textalyser.net/

    相关文章

      网友评论

          本文标题:密码学 - 古典加密

          本文链接:https://www.haomeiwen.com/subject/ohwtattx.html