密码学-有限域

有限域

近世代数基础

在这里插入图片描述

  • A5交换群:满足交换律的群

  • 循环群:如果群中每一个元素都是某个固定元素g属于群G的幂g^k,则群G为循环群

在这里插入图片描述

  • 交换环:M4乘法的交换律

  • 整环:M5存在乘法单位元、M6无零因子

  • 域F:满足A1A5,M1M6且有M7乘法逆元

有限域
  • 阶为p的有限域GF§
    • 给定一个素数p,元素个数为p的有限域GF§被定义为整数{0,1,……,p-1}的集合Zp,其运算为模p的算术运算
    • 是一个交换环
    • Zn中某一整数有乘法逆元,当且仅当该整数与n互素
    • 若n为素数,则Zn中所有非零整数都与n互素,所以Zn中所有非零整数都有乘法逆元。
    • 在GF(p)中秋乘法逆元
      • a,b互素,则b有模a的乘法逆元
      • a是素数并且b<a,则a和b互素,且其最大公因子为1
      • 用扩展欧几里得算法:求b在a下的逆元即求扩展欧几里得算法中的y
        -在这里插入图片描述
多项式运算
  • 普通多项式运算:

    • f(x)是定义在系数集S上的n次多项式
      -在这里插入图片描述
  • 系数在Zp中的多项式运算

    • 考虑几个系数集合S的除法运算5/3

      • 如果S是有理数集合(域),那么结果可与简单表示成5/3,这是S中的一个元素
      • 如果S是域Z7,此时5/3 = (5*3^-1)mod 7 = 4。一定能整除
      • 如果S是整数集(是环但不是域),那么结果商1余2
    • 多项式除法

      • 系数集是一个域,多项式除法也不一定能整除:多项式会产生一个商式和一个余式

      • n次多项式f(x)和m次多项式g(x),(m<n),如果g(x)除f(x)的到一个商式q(x)和一个余式r(x),则满足:

        f(x) = q(x)*g(x)+r(x)
        
    • 多项式模运算:与整数运算相似:可以写成:r(x) = f(x)mod g(x)

    • GF(2)上的多项式

      • 加法和减法相当于异或
      • 乘法相当于逻辑与
    • 素多项式:当且仅当f(x)不能表示为两个多项式的积,域F上的多项式被称为不可约的

    • 最大公因式:通过欧几里得算法可求,例:

    • 在这里插入图片描述

  • 有限域GF(2n):有限域的元素个数必须为pn,其中p为素数,n为正整数

    • 多项式模运算:在这里插入图片描述

    • 有限域构造运算:

      • 遵循普通多项式运算规则
      • 系数运算以p为模,即遵循有限域Zp上的运算规则
      • 如果乘法运算的结果次数大于n-1的多项式,那么必须将其除以一个次数为n的既约多项式m(x)并取余式
  • 多项式剩余类集合

在这里插入图片描述

  • 多项式的逆元

    • f(x)a(x)+m(x)b(x) = 1,两边同时模上m(x)得知f(x)的逆就是a(x)
  • 构造有限域GF(2^3)

    • 既约多项式:x3+x2+1和x^3+x+1
    • 选择后者则,在这里插入图片描述
  • 求乘法逆元:给定既约多项式a(x)和模的有限域元素b(x),则其乘法逆元满足

b ( x ) w ( x ) = 1 m o d a ( x ) b(x)w(x) = 1 mod a(x) b(x)w(x)=1moda(x)

​ 使用扩展欧几里得算法

  • 加快多项式乘法:多项式表示成一个n位的二进制数

    • GF(2^n)加法、减法:二进制异或操作

    • GF(2^n)乘法:

      • 一般地
        x n m o d p ( x ) = p ( x ) − x n x^n mod p(x) = p(x)-x^n xnmodp(x)=p(x)xn

      • f ( x ) = b 7 x 7 + b 6 x 6 + . . . + b 1 x + b 0 x ∗ f ( x ) = b 7 x 8 + b 6 x 7 + . . . + b 1 x 2 + b 0 x x ∗ f ( x ) m o d m ( x ) = m ( x ) − b 7 x 8 + b 6 x 7 + . . . + b 1 x 2 + b 0 x 表 达 为 二 进 制 形 式 : x ∗ f ( x ) = b 6 b 5 b 4 b 3 b 2 b 1 b 0 0      如 果 b 7 = 0 x ∗ f ( x ) = b 6 b 5 b 4 b 3 b 2 b 1 b 0 0 异 或 00011011      如 果 b 7 = 1 f(x) = b_7x^7+b_6x^6+...+b_1x+b_0 \\ x*f(x) = b_7x^8+b_6x^7+...+b_1x^2+b_0x\\x*f(x) mod m(x) = m(x)-b_7x^8+b_6x^7+...+b_1x^2+b_0x \\表达为二进制形式: \\x*f(x) = b_6b_5b_4b_3b_2b_1b_00~~~~如果b_7=0 \\x*f(x) = b_6b_5b_4b_3b_2b_1b_00异或00011011~~~~如果b_7=1 f(x)=b7x7+b6x6+...+b1x+b0xf(x)=b7x8+b6x7+...+b1x2+b0xxf(x)modm(x)=m(x)b7x8+b6x7+...+b1x2+b0xxf(x)=b6b5b4b3b2b1b00    b7=0xf(x)=b6b5b4b3b2b1b0000011011    b7=1

  • 生成元

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值