zoukankan      html  css  js  c++  java
  • 仿射变换

    仿射变换

    • 在集合上定义为两个向量空间之间的一个仿射变换或者仿射映射由一个线性变换加上一个平移组成。
    • 常用的二维仿射变换:
      • 旋转
      • 倾斜
      • 平移
      • 缩放
    • 注:仿射密码是借用仿射变换y=kx+b的名称
    1. 定义
      设P=C=Z,K={(a,b)∈Z*Z/gcd(a,26)=1},对于任意k=(a,b)∈K,定义:
      加密:y=e(x)=ax+bmod26,
      解密:x=d(y)=a^-1(y-b)mod26.
      注:
    • 逆元概念:若au=1mod26,u∈Z,则a^-1=u. 3*9mod26=1.则3^-1=9mod26
    • gcd指最大公因子,条件gcd(a,26)=1可使a有唯一逆元。
    • a=1时是位移密码:a=1,b=3是凯撒密码。
    设k=(a,b)=(7,3)
    加密:
    y=e(x)=7x+3mod26,
    7*15=1mod25
    7^-1=15
    解密:
    x=d(y)=a^-1*(y-3)mod26
    =7^-1*(y-3)mod26
    =15*(y-3)mod26
    =15y-19mod26.
    

    设明文M=CHINA
    加密:
    7(2 7 8 13 0)^-1 + (3 3 3 3 3)^-1 mod 26=(17 52 59 94 3)^-1 mod 26
    =(17 0 7 16 3)=(R A H Q D)^-1
    故密文C=RAHQD
    解密:
    15
    (17 0 7 16 3)^-1 - (19 19 19 19 19)^-1 mod 26 =(2 7 8 13 0)^-1=(C H I N A)^-1
    故明文M=CHINA

    • 密码分析
      • 为了对密文进行解密,必须保证所选用的仿射函数是一个双射函数。
      • 对于任意y∈Z,如下同宇方程
        • ax+b=ymod26(ax=y-bmod26)有唯一解x.(当y遍历Z时,y-b亦遍历Z)
        • 要求ax=ymod26有唯一解x.
    • 引理
      • 设a∈Z,对于任意b属于Z,同余方程ax=bmodm有唯一解x∈Z的充要条件是gcd(a,m)=1
      • 进一步,因为26=213,与26互素的数的a=1,3,5,7,9,11,15,11,15,17,19,21,23,25,参数b无要求。故仿射密码有1226=312种密钥。(密钥个数不多,可被穷举攻击)
    • 攻击
      • 前述密码体制中,相同明文字母对应相同密文字母,则可用频率分析攻击,其基于某种语言中各个字符出现的频率不一样,表现出一定的统计规律,这种统计规律可能在密文中得以保存,从而通过一些推测和验证来实现密码分析的方法。
  • 相关阅读:
    java 之 xml
    oracle 之 定时任务,存储过程和游标等语法案例
    oracle 之创建定时器
    java 之 音乐播放代码
    oracle函数之 minus
    iis默认文档有什么用?
    html页面使用前端框架布局时,弹出子页面等情况若出现布局混乱,可能是回发导致
    html 之 区块元素属性(待补充)
    EffectiveJava(2)应对多个构造函数应当使用构建器
    EffectiveJava(1) 构造器和静态工厂方法
  • 原文地址:https://www.cnblogs.com/liugangjiayou/p/12380014.html
Copyright © 2011-2022 走看看