• 代换密码


    代换密码

    • 代换密码是将明文中的字符替换为其他字符的密码体质。
    • 基本方法是:
      • 建立一个代换表,加密时将明文字符通过查表代换为对应的密文字符,代换表即密钥。
      • (代换表即影视题材中常见的密码本,密码本由机要员保管,有电报需要发送时先由机要员用密码本将情报代换成电报代码,发报员负责发报,发报员不知道发报的内容是什么。)

    单表代换密码

    1. 移位密码
    • 首先建立英文字母与摸26的剩余之间的对应关系
      A B C D …… Z
      0 1 2 3 …… 25
    • 定义:
      • 设P=C=K=Z={0,1,2,……,25},明文x密文y,对于整数k(0<=k<=25),定义:
        • 加密:y=e(x)=x+kmod26,
        • 解密:x=d(y)=y-kmod26,x,y属于Z
    凯撒(Caesar)密码是k=3的移位密码
    明文:A B C D …… W X Y Z
    密文:D E F G …… Z A B C
    明文M=china,密文C=FKLQD
    
    M=game is over,k=9.
    加密过程: g a m e i s  o   v  e r
             6 0 12 4 8 18 14 21 4 17
             6 0 12 4 8 18 14 21 4 17
             +9mod26
             ------------------------
             15 9 21 13 17 1 23 4 13 0
       密文C= p j  v  n  r b  x e n a
    
    解密过程: p j  v  n  r  b x  e n a
             15 9 21 13 17 1 23 4 13 0
             15 9 21 13 17 1 23 4 13 0
             -9mod26
             ------------------------
             6 0 12 4 8 18 14 21 4 17
       密文C= g a m e i  s  o  v  e r
    
    1. 单表代换密码
    • 定义
      • 设P=C=K=Z={0,1,2,……,25},K是0,1,2,……,25的所有置换的集合,对置换π属于K
    置换π为:π=(0  1  2 ……  25
                0' 1' 2' …… 25')
    加密: y=e(x)=π(x),
    解密: y=d(y)=π^-1(y).
    
    • 密钥传递
      • 为方便使用,通常代换后结果还是26个英文字母。
        • 代换密钥可约定为当日的某份英文报纸的头版头条新闻(重复的字母只用一次)
    • 优点
      • 不需要携带密码本,且可以设定每天更换一次密码,不容易破译。
      • 26个英文字母的代换密钥个数为26!>10^25,无法穷举破译。
    • 攻击分析
      • 26个英文字母的代换密钥个数26!>10^25,无法穷举破译。
    • 缺点
      • 相同明文字母对应密文字母相同,可用统计的方法攻击。
  • 相关阅读:
    ABP源码编译及部署
    nopCommerce源码本地部署、配置及语言包导入
    MongoDB查询转对象时出错 Element '_id' does not match any field or property of class
    找不到资产文件 project.assets.json
    Docker中运行.net core 验证码不显示
    css设置input不显示光标
    js中的==和===
    Navicat连接mysql(高级选项配置)
    js回调函数,检测这个值是否重复
    layer数据表格换行
  • 原文地址:https://www.cnblogs.com/liugangjiayou/p/12375025.html
Copyright © 2020-2023  润新知