首页 > 其他分享 >数论基础笔记

数论基础笔记

时间:2023-02-26 10:33:08浏览次数:30  
标签:mathbb ast 数论 cdot 质数 基础 笔记 pmod equiv

数论基础

Dan Boneh课程中数论基础笔记,该部分内容用于构建以下密码学相关部分:

  • Key Exchange Protocols
  • Digital Signatures
  • Public-Key Encryption

目录

Notation (Greek times)

本文中,\(N\) 指代一个正整数,\(p\) 指代一个质数。

\[\mathbb{Z}_N = \lbrace 0,1,2,\dots,N-1 \rbrace \]

Greatest Common Divisor 最大公约数

\(\gcd(x,y)\) 是 \(x\) 与 \(y\) 的最大公约数。

存在如下事实:

对于所有的整数 \(x,y\) ,总存在整数 \(a,b\) 使得:

\[a \cdot x + b \cdot y = \gcd (x,y) \]

在已知 \(x,y\) 的前提下,我们可以通过扩展欧几里得算法(Extended Euclidean Algorithm)高效地找出 \(a,b\) 的值。

Relatively Prime 互质

如果 \(\gcd(x,y)=1\) ,我们称 \(x\) 和 \(y\) 是互质(relatively prime)的。

Modular Arithmetic 模运算

在 \(\mathbb{Z}_n\) 中,模运算加法和乘法的基本性质仍然满足。

Modular Inversion 模逆元

Definition

\(x\) 在集合 \(\mathbb{Z}_N\) 中的逆元是集合 \(\mathbb{Z}_N\) 中的一个元素 \(y\),满足 \(x \cdot y \equiv 1 \pmod N\),\(y\) 记作 \(x^{-1}\)。

例如假设 \(N\) 是一个奇数,则集合 \(\mathbb{Z}_N\) 中 \(2\) 的逆元是 \(\frac{N+1}{2}\)。

Lemma

\(\mathbb{Z}_N\) 中的元素 \(x\) 有逆元,当且仅当 \(\gcd(x,N)=1\) 。

Proof:

\[\begin{align*} \gcd(x,N)=1 &\Rightarrow \exists a,b:a\cdot x + b \cdot N=1 \\ &\Rightarrow a \cdot x \equiv 1 \pmod N \\ &\Rightarrow x^{-1} \equiv a \pmod N \\ \gcd(x,N)>1 &\Rightarrow \forall a: \gcd(a\cdot x, N)>1 \\ &\Rightarrow a \cdot x \not \equiv 1 \pmod N \end{align*} \]

\(\mathbb{Z}_N^\ast\)

Definition:

\[\begin{align*} \mathbb{Z}_N^\ast &= \lbrace set\ of\ invertible\ elements\ in\ \mathbb{Z}_N \rbrace \\ &= \lbrace x \in \mathbb{Z}_N:\gcd (x,N)=1 \rbrace \end{align*} \]

对于 \(\mathbb{Z}_N^\ast\) 中的元素 \(x\),能够通过扩展欧几里得算法(extended Euclid. Algorithm)找出 \(x^{-1}\)。

Modular Linear Equation 线性同余方程

求解线性同余方程:

\[a \cdot x + b \equiv 0 \pmod N \]

解为:

\[x \equiv -b \cdot a^{-1} \pmod N \]

其中在 \(\mathbb{Z}_N\) 中寻找 \(a^{-1}\) 利用扩展欧几里得,时间复杂度为 \(O(\log^2N)\),也可用 \(O(n^2)\) 表示,其中 \(n\) 即为 \(N\) 的二进制位数。

Fermat‘s little theorem 费马小定理(1640)

假设 \(p\) 是一个质数,则:

\[\forall x \in \mathbb{Z}_p^*:x^{p-1} \equiv 1 \pmod{p} \]

利用费马小定理可以计算模质数的逆,但相比于欧几里得算法有两点不足之处:

  1. 费马小定理限制必须是质数模,欧几里得算法可以工作在合数模上。
  2. 运行时间较慢,计算模指数的时间是 \(p\) 长度的立方, \(O(\log^3 p)\),而欧几里得算法为 \(O(\log^2 p)\)

费马小定理的应用:随机生成质数,Miller Rabin质数判定算法(not the best),由于假质数的集合很小很小(Carmichael数的分布密度指数级衰减),随机选择的情况下不太可能选到假质数。迭代次数的期望是 \(1024\ln 2\),约为710次(质数定理)。

The structure of \(\mathbb{Z}_p^\ast\)

定理(Euler):

\(\mathbb{Z}_p^\ast\)是一个循环群(cyclic group):

\[\exists g \in \mathbb{Z}_p^\ast, \lbrace1,g,g^2,g^3,\dots,g^{p-2}\rbrace=\mathbb{Z}_p^\ast \]

(幂次达到 \(g^{p-1}\) 由费马小定理可知模 \(p\) 同余1,所以又从头开始循环)

此时 \(g\) 被称为该群的生成元,通过 \(g\) 的幂次能够扩展出整个群。

Order 阶

对于 \(g \in \mathbb{Z}_p^\ast\),\(\lbrace1,g,g^2,g^3,\dots,g^{p-2}\rbrace\) 称为 \(g\) 的生成群(group generated by g),记作\(<g>\),生成群的大小叫做 \(g\) 在 \(\mathbb{Z}_p^\ast\) 里的阶(order)

\[ord_p(g)=\vert<g>\vert=smallest \quad a>0\quad s.t. \quad g^a \equiv 1 \pmod p \]

Examples:

\(ord_7(3)=6\); \(ord_p7(2)=3\); \(ord_p7(1)=1\)

Thm(Lagrange):(19C)

\[\forall g \in \mathbb{Z}_p^\ast: ord_p(g)\ divides\ (p-1) \]

广义的Lagrange定理:群A是B的子群,则A的阶整除B的阶,此处 \(<g>\) 是 \(\mathbb{Z}_p^\ast\) 的子群。

Euler's theorem 欧拉定理(1736)

Definition:

对于一个整数 \(N\),定义 \(\varphi(N)=|\mathbb{Z}_N^\ast|\) (Euler's \(\varphi\) function)

  • 如果 \(p\) 是一个质数,则 \(\varphi(p) = p-1\)
  • 如果 \(p,q\) 均为质数,\(N=p \cdot q\),则 \(\varphi(N) = N-p-q+1 = (p-1)(q-1)\)

Thm(Euler):

\[\forall x \in \mathbb{Z}_N^\ast: x^{\varphi(N)}\equiv 1 \pmod N \]

欧拉定理实际上是费马小定理的推广,对于质数而言 \(\varphi(p) = p-1\),换句话说,如果 \(N\) 是质数,则 \(x^{p-1} \equiv 1 \pmod N\)。欧拉定理将适用范围推广至合数而不仅仅质数。欧拉定理是RSA加密系统的基础。

Modular e's roots 模e次方根

Definition

\[x \in \mathbb{Z}_p\ s.t.\ x^e \equiv c \pmod p \]

\(x\) 被称为 \(c\) 模 \(p\) 的 \(e\) 次根。

什么时候 \(c\) 模 \(p\) 的 \(e\) 次方根存在?

Case1:e与p-1互质

假设 \(\gcd(e,p-1)=1\),则对于集合 \(\mathbb{Z}_p^\ast\) 中的所有元素 \(c\),总是存在 \(c^{1/e}\) 在集合 \(\mathbb{Z}_p\) 中并且很容易找到。证明如下:

令 \(d \equiv e^{-1} \pmod {p-1}\),则 \(c^{1/e} \equiv c^d \pmod p\)

\(d\cdot e \equiv 1 \pmod {p-1} \Rightarrow \exists k \in \mathbb{Z}:d \cdot e = k\cdot (p-1) + 1 \Rightarrow (c^d)^e = c^{d\cdot e}=c^{k\cdot(p-1)+1}=(c^{p-1})^k\cdot c\)

由费马小定理可知 \(c \in \mathbb{Z}_p^\ast\),则 \(c^{p-1} \equiv 1 \pmod p\),进一步有 \((c^{p-1})^k \equiv 1 \pmod 1\)

则推出 \((c^d)^e \equiv c \pmod p\)

证毕

Case2: e与p-1不互质(e=2):

若 \(p\) 是一个奇质数(除2以外的质数均为奇数),易知p-1是偶数,则 \(\gcd(2,p-1) \neq 1\)

当工作在奇质数模下,平方函数实际上是2-to-1 function(群同态),即它把 \(x\) 和 \(-x\) 映射到了同一个值

graph TB -x --> id[x^2] x --> id[x^2]

Definition

若集合 \(\mathbb{Z}_p\) 中的元素 \(x\) 在 \(\mathbb{Z}_p\) 中有一个平方根,则称 \(x\) 是一个二次剩余(quadratic residue, Q.R.)

若 \(p\) 是奇质数 \(\Rightarrow\) 则 \(\mathbb{Z}_p\) 中二次剩余的个数为 \(\frac{p-1}{2}+1\),由于平方函数是2到1的映射,这就意味着 \(\mathbb{Z}_p\) 中有一半的元素在这个映射中没有原像,此外在 \(\mathbb{Z}_p\) 中 \(0\) 也是二次剩余的。


Euler's theorem:

假设 \(p\) 是一个奇质数,则:

\(x\) in \(\mathbb{Z}_p^\ast\) is a Q.R. \(\Leftrightarrow\) \(x^{(p-1)/2} \equiv 1 \pmod p\)

注意:

我们任取一个 \(x \neq 0\),利用费马小定理 \(\Rightarrow x^{(p-1)/2} \equiv (x^{p-1})^{1/2} \equiv 1^{1/2} \in \lbrace 1,-1 \rbrace \pmod p\)

Def(1798):

\(x^{(p-1)/2}\) 被称为勒让德符号(Legendre Symbol) (x/p)

欧拉定理的不足之处是只为我们提供了判断二次剩余的方法,而没有告诉我们如何计算我们想要的平方根。


计算模 \(p\) 的二次方根:

假设 \(p\equiv 3 \pmod 4\)

Lemma

如果 \(c \in \mathbb{Z}_p^\ast\) 是一个二次剩余,则 \(\sqrt{c} \equiv c^{(p+1)/4} \pmod p\)

Proof:

\[[c^{(p+1)/4}]^2 \equiv c^{(p+1)/2} \equiv c^{(p-1)/2}\cdot c \equiv 1 \cdot c \equiv c \pmod p \]

当 \(p \equiv 1 \pmod 4\) ,也有随机算法能够高效计算出二次方根,较复杂,运行时间约为 \(O(\log^3 p)\)。


Solving quadratic equations mod p

求解:\(a \cdot x^2 + b \cdot x + c \equiv 0 \pmod p\)

利用中学的二次方程公式解:\(x \equiv \frac{-b \pm \sqrt{b^2 -4ac}}{2a} \pmod p\)

  • 利用扩展欧几里得求出 \((2a)^{-1}\ in\ \mathbb{Z}_p\)
  • 利用平方根算法求出 \(b^2-4ac\) 的平方根

扩展到合数模的e次方根,何时存在?这个问题的难度和大数的质因数分解相同,因为一旦分解出质因数,则利用前面描述的质数模求e次方根的方法,便容易得到合数模的e次方根。

Compute Modular Large Integers 大整数模运算

计算机如何表示大整数?

给定两个n-bit的整数:

  • 加法与减法:线性时间 \(T_+=O(n)\)
  • 乘法
    • 自然计算情况下为 \(T_\times=O(n^2)\)
    • Karatsuba于1960年提出一种 \(O(n^{1.585})\) 的算法
      • 基本思路: \((2^bx_2+x_1)\times(2^by_2+y_1)\) with 3 mults
    • 最优(渐进asymptotic)算法为 \(O(n\log n)\)
  • 带余数的除法:\(O(n^2)\)
  • 求幂:(快速幂)反复平方法:
    • \(O((\log x)\cdot T_\times) \leq O((\log x)\times n^2) \leq O(n^3)\)

Intractable Problems

Discrete Logarithm Problem 离散对数问题

质数模困难问题

对于一个质数 \(p>2\),并且 \(\mathbb{Z}_p^\ast\) 中的元素 \(g\) 的阶是 \(q\)。

考虑如下函数:

\[x \mapsto g^x \pmod p \]

给定 \(x\) 计算 \(g^x\) 是容易的,我们可以利用之前提到的快速幂算法。但是考虑该函数的逆过程,即给定 \(g\) ,求出 \(x\) ,此时便是对数函数的定义,该问题也被称为离散对数问题:

\[D\log_g(g^x) = x, x\in \lbrace0,\dots,q-2 \rbrace \]

更加通用型的描述为:

\(G\) 是一个有限循环群,并且 \(g\) 是 \(G\) 的一个生成元,\(q\) 是 \(G\) 的阶

\[G = \lbrace 1, g, g^2, g^3, \dots,g^{q-1} \rbrace \]

Def: 如果对于所有的算法 \(A\),概率 \(Pr_{g\leftarrow G,x\leftarrow \mathbb{Z}_q}[A(G,q,g,g^x)=x]\) 是可以忽略的话,则称在 群 \(G\) 上,离散对数问题(DLOG)是困难的。

例如在群 \(\mathbb{Z}_p^\ast\) (p很大时)上,或者在椭圆曲线群上,离散对数问题都是困难的。并且假设两个问题规模一样的情况下,椭圆曲线群上的离散对数问题较之前者困难得多,这就意味着在椭圆曲线群上我们可以采用更小的参数获得同等的安全性。

计算群 \(\mathbb{Z}_p^\ast\) (n-bit质数 \(p\))上的离散对数问题已知的最好的算法是亚指数算法(GNFS),运行时间 \(\exp(\tilde{O}(\sqrt[3]{n}))\),可以看出我们需要较大的 \(n\) 才能确保安全性,而在椭圆曲线群上的离散对数问题的最优算法运行时间为 \(2^{n/2}\),即说明了对于一个规模是 \(n\) 的问题,其运行时间大约是 \(e\) 的 \(n\) 次方,为 \(n\) 次指数,而不是 \(n\) 的立方根的指数,所以我们选择较小的质数也能获得比较好的安全性。顺带一提的是,椭圆曲线大小(质数模的大小)是对称密钥大小两倍的原因是指数中的因子 \(2\),

质因数分解问题

合数模困难问题

考虑如下集合:

\[\mathbb{Z}_{(2)}(n) := \lbrace N=p\cdot q\ \text{where $p,q$ are n-bit primes} \rbrace \]

  • Problem 1: 随机选择 \(\mathbb{Z}_{(2)}(n)\) 中的一个整数 \(N\),如何对其进行分解?(e.g. for n=2048)

  • Problem 2: 提供一个非线性多项式 \(f(x)\),如果多项式次数大于1,随机选择 \(\mathbb{Z}_{(2)}(n)\) 中的一个整数 \(N\),在 \(\mathbb{Z}_N\) 中找到一个 \(x\) ,\(s.t.\ f(x) \equiv 0 \pmod N\)

标签:mathbb,ast,数论,cdot,质数,基础,笔记,pmod,equiv
From: https://www.cnblogs.com/I-am-Sino/p/17156228.html

相关文章

  • 考研算法辅导课笔记:第十七讲--枚举和位运算
    这节课主要讲枚举,位运算成员函数booloperator<(constRange&b)const{};括号中的const表示参数b对象不会被修改;在函数末尾加CONST这样的函数叫常成员函数。常成员函......
  • ECharts笔记--实现地图版的数据显示(存在bug/┭┮﹏┭┮/)
    相关描述前几天实现了柱状图等图的数据可视化,现在就来接着实现一下“更加”形象的数据可视化吧!具体实现如下<%@taglibprefix="c"uri="http://java.sun.com/jsp/jstl/......
  • 读Java性能权威指南(第2版)笔记02_ Java SE API技巧上
    1. 压缩字符串1.1. Java61.2. 实验性1.3. compressedstring2. 字符串2.1. Java82.2. 所有都会编码为16位字符数组3. 紧凑字符串3.1. Java113.2. c......
  • ssm学习笔记23001-mybatis基础查询
    myBatis的基础查询单条或多条查询根据id查询单条数据,查询所有数据的列表集合,查询所有数据的条目,查询出单条数据返回值为map,查询多条数据返回值为列表,查询多条数据返回值......
  • Java基础——(综合练习)买飞机票和找素数
    packagecom.zhao.test;importjava.util.Scanner;publicclassTest14{/*需求:机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、......
  • 大型企业智能化-数字化转型基础-关注点
    大型企业智能化-数字化转型基础-关注点      业务中台,多半是传统的成本中心,把后台的资源整合成前台打仗需要的“中间件”,方便被随需调用。典型的业务中台如字节跳动......
  • python基础-数据容器的通用操作
    五种数据容器的特性 my_list=[1,2,3,4,5]my_tuple=(1,2,3,4,5)my_str="abcdefg"my_set={1,2,3,4,5}my_dict={"key1":1,"key2":2,"key3":3,"key4":4,"ke......
  • Java基础
    Java基础1.注释、标识符、关键字注释书写注释是一个非常好的习惯Java中的注释有三种单行注释//多行注释/**/文档注释/***/标识符关键字Java......
  • python基础-集合set { }
    集合的定义和操作集合的特性:元素数量支持多个元素类型任意下标索引支持重复元素不支持可修改性支持数据有序否使用场景不可重复的数据记录......
  • python基础-字典dict {key:value }
     字典的定义和操作字典的特性:元素数量支持多个元素类型任意下标索引支持重复元素不支持可修改性支持数据有序否使用场景不可重复的数据......