今天花了一下午的时间学习密码学的数论部分,下面将学到的内容进行一下总结,也算是加深记忆。我本身对密码学这方面比较感兴趣,而且本节出现了许多数学公式,使用刚刚学习的LaTex公式来呈现出来,练习练习,何乐而不为。

  首先给出了群,交换群(阿贝尔群),环,交换环,整环,域的定义,大致如下图所示:

  涉及到的第一个重要的新概念就是有限域$GF(p)$ Galois Fields

  有限域的元素个数是一个素数的幂$p^n$,n为正整数,一般记为$GF(p^n)$,我们最为关注的只有两种情况:n=1即$GF(p)$;p为2即$GF(2^n)$。

  $GF(p)$的空间是模p的完全剩余类$Z_p : \left\{0, 1, \cdots, p-1 \right\}$

  $GF(2^n)$中的的元素是系数为二进制0和1的多项式,最高不超过n-1次。一个元素可以被表示成一个长度为n的位矢量。例如二进制数$11001_2$在$GF(2^5)$中可以记作$x^4+x^3+1$

  这样来看,$GF(p)$和$GF(2^n)$域中的元素都可以用多项式来表示,一个多项式可以被表示成如下形式:$$f(x)=a_{n}x^n+a_{n-1}x^{n-1}+\cdots+a_{1}x+a_0=\sum^n_{i=0}a_{i}x^i$$

  下面是重头戏,如何计算?针对三种不同的作用域我们定义了三种不同的多项式运算。

  1.普通多项式运算。这个不必多说,从小学初中就开始学,就是我们认识的普通多项式。

  2.系数在$Z_p$中的多项式运算。和普通多项式运算不同的是,系数要进行模p运算。模可以是任意素数,一般取二,是最简单的情况。例如:$$f(x)=x^3+x^2+1,\  \ g(x)=x^2+x+1\\f(x)+g(x)=x^3+x,\  \ f(x)\times g(x)=x^5+x+1$$

  可见多项式的系数在运算的时候进行了模2处理。

  3.有限域$GF(2^n)$上的多项式运算。这种运算和计算机的运作方式很相似,对于一个有限域$GF(2^n)$我们定义如下要求:系数对2取模运算,最高次数小于n,多项式对n次素多项式取模运算。既然是域那就有逆元,可以用拓展欧几里得算法求逆。

  下面分别介绍在$GF(2^n)$上的四则运算:

  1.加法(减法)

  $GF(2^n)$上的加法即比特串的异或运算,因为是异或,加减其实是一样的,都是异或而已。$$(x^2+1)+(x^2+x+1)=x\\101_2\oplus 111_2=010_2$$

  2.乘法

  乘法即比特串的移位和异或运算。实际运算的时候和普通乘法很像,只不过加法变成了异或。下面的运算用了一个小技巧,异或的结果只和参与异或的1的个数有关,奇数则为1,偶数则为0。$$\ \ \ 101\\ \underline{\times011}\\ \ \ \ 101\\ \ \underline{1010}\\ \ 1111$$

  或者可以表示为$011_2\times 101_2=(101_2)<<1\oplus (101_2)<<0=1111_2$其中<<为移位符。

  3.取模

  读者可能会好奇,为什么没有除法。这是因为在$GF(2^n)$上取模运算就相当于除法啦。多项式取模有一个简单的算法,重复用既约多项式剪掉最高次项。下面是一个极其简单的例子。$$(x^3+x^2+x+1)mod(x^3+x+1)=x^2\\1111_2mod1011_2=1111_2\oplus 1011_2=100_2$$

  这个例子过于简单,如果用$(x^9+x^8+x^6+x^4+x^3+x^2+x+1)mod(x^4+x+1)$即$1101011111mod10011$有两种做法,一种是在被除数后面补上三个0(除数四位 4-1=3),然后像做除法一样除掉除数10011,如果最高位是1就添1,是零就直接写0,最后得到余数0010。还有一种等价做法就是用除数的最高位和被除数的最高位对齐。减(异或)一次,然后继续这个过程直到产生余数。

密码学数论基础部分总结之 有限域GF(p) Galois Fields相关推荐

  1. 【考研—密码学数论基础】环、群、域、多项式运算

    注:下述笔记根据 学习通公开课程<数学的思维方式与创新>,部分内容并非严谨数学定义,个人理解居多. 注2:第一遍学的时候理解得太片面了,面试被问到了才意识到理解得有问题,特此重新更正 Pr ...

  2. 你也可以手绘二维码(二)纠错码字算法:数论基础及伽罗瓦域GF(2^8)

    摘要:本文讲解二维码纠错码字生成使用到的数学数论基础知识,伽罗瓦域(Galois Field)GF(2^8),这是手绘二维码填格子理论基础,不想深究可以直接跳过.同时数论基础也是 Hash 算法,RS ...

  3. 应用密码学数学基础习题之设有限域GF(28)的不可约多项式为p(x)=x8+x4+x3+x+1

    题目:设有限域GF(28)的不可约多项式为p(x)=x8+x4+x3+x+1,写出多项式A(x)=x7+x4+x3+x2+x+1,B(x)=x6+x4+x2+x+1的二进制表示, 并求GF(28)的多 ...

  4. RSA加密原理详解,以及RSA中的数论基础

    文章目录 1. RSA加密算法介绍 2. RSA密钥生成 3. RSA加密和解密 4. RSA的安全性 5.涉及到的数论基础 5.1. 模的逆元 5.1.1. 扩展欧几里得算法计算模逆元 5.1.2. ...

  5. matlab有限域多项式除法_有限域GF(2^8)的四则运算及拉格朗日插值

    域的性质: 群和域在数学上的概念就不解释,可以参考维基百科.当然也可以参考<密码编码学与网络安全>这书的有限域一章.形象地说,域有这样一个性质:在加法和乘法上具有封闭性.也就是说对域中的元 ...

  6. 数论基础,从入门到入门

    数论基础,从入门到入门 文章目录 数论基础,从入门到入门 一.常用算法 1.素数筛法 2.线性筛 3.快速幂 4.矩阵快速幂 5.辗转相除法/欧几里得算法 6.扩展欧几里得 7.中国剩余定理/CRT ...

  7. CTF密码学-编码基础知识点总结

    CTF密码学-编码基础知识点总结 0x01 目录 常见编码: 1.ASCII编码 2.Base64/32/16编码 3.shellcode编码 4.Quoted-printable编码 5.XXenc ...

  8. 数论基础:模奇素数的二次剩余 (1)

    注意: 本文讨论的是模奇素数的二次剩余 目前不打算写二次互反律,不易写明白 什么是二次剩余 求解模小素数的二次同余方程 求解模小素数的二次方程,只需要遍历 Zp⋆\mathbb{Z}_p^{\star ...

  9. 浅谈密码学中数论基础

    1.模运算(mod) 模运算也可以称为取余运算,例如 23≡11(mod12),因此如果a=kn+b,也可以表示为a ≡ b(mod n),运算规则: (a+b) mod n = ((a mod n) ...

最新文章

  1. 计算机组成定点数的编码,2.1.1 定点数的表示
  2. Android背景渐变色(shape,gradient)
  3. python常见内置函数_python常见的内置函数
  4. Python爬虫自学之第(⑤)篇——爬取某宝商品信息
  5. “出道” 5 年采用率达 78%,Kubernetes 的成功秘诀是什么?
  6. mysql字段分隔符拆分_面试题Mysql数据库优化之垂直分表
  7. SSL证书检查吊销状态
  8. C语言中未显示声明函数返回值的类型
  9. C#.Net工作笔记017---C#事件的理解以及自定义事件的方法
  10. 解决Flex4 发布后访问 初始化极其缓慢的问题
  11. dhcp、tftp基础
  12. 关于GomezPeer赚钱的可行性调查
  13. Windows 恢复使用老版的图片查看器
  14. [应用漏洞]OpenSSH scp命令注入漏洞(CVE-2020-15778)
  15. NYOJ234吃土豆
  16. 3w服务器把信息组织成,HTML小白入坑日记~qwq
  17. 【毕业设计】基于java web的医院预约挂号系统
  18. 数据来源渠道及采集工具_几款简单好用的爬虫抓取数据采集工具
  19. C#学习笔记(五)CSharp操作符-基本操作符(一)
  20. send sendto ,recv recvfrom有什么区别

热门文章

  1. [微信小程序]--关于获取当前时间的实现
  2. 读书笔记:Bi-Directional Cascade Network for Perceptual Edge Detection
  3. 查找SCI期刊的JCR缩写
  4. 2018科大讯飞Java笔试第三道编程题
  5. 6--目标检测和边界框和锚框
  6. 基于微信小程序的租房小程序
  7. [Excel启用编辑]的影响与关闭
  8. bootmgr快速修复win7_Win7进入死亡倒计时,全国一半电脑要遭殃?
  9. 1024程序员节主题征文 | 2022年1024程序员节只剩一天
  10. poi解决受保护视图问题