补充密码学的数学基础
大学安全工程之密码学2第二章 密码学的数学基础

第二章密码学的数学基础•数论-素数-模运算•代数结构•安全性基础-信息论-复杂性理论1为何讲素数?•为何讲数?-加(解)密:数字变换-信息:离散事件-例:A(0),B(1),…,Z(25)•为何讲素数?-素数是数的基础2素数与合数•定义:整数p是一个素数,如果它只能被+p, -p,+1,-1整除.-例:2,3,5,7,11,13,17,…,101,…•全体素数的集合记为P.•定义:如果整数n不是素数,则它是一个合数.-例:4,9,187,900,…4•Theorem:(Fundamental Theorem of Arithmetic)∀n∈N n= p1e1p2e2…pke k ( or Πp i∈Pp e i)where e p is the exponent of the prime factor p•Note:the result of factorization is unique •Example:84=22×3×7数的因子分解56素数•Theorem:There are infinitely many primes •Proof:(by contradiction)Assume , build a number N is There N is a new prime.maxP 1...max 21+=P P P N8Finding GCD•Theorem:•Example:•Complexity∏∏∏=⇒=∧=i b a ib i i a i i i i i i p b a p b p a ),min(),gcd(637*3),gcd(11*7*5*334657*3*28822322==⇒====b a b a )()()(n o c o n T band a the factoring Need =••10Euclidean Algorithm),gcd(:300...:2,:1111123221211010b a r step r and r until r r q r r r q r r r q r step br a r step n n n nn n n =≠=+=+=+===−−−−−16Congruence Relation (同余关系)•同余关系是一个等价关系-自反性-对称性-传递性•等价关系划分⇒ca cb b a ab b a aa ≡⇒≡∧≡≡⇒≡≡Modular Arithmetic(模运算)•We can define the modular arithmetic in the set of integers: Z n={0, 1, 2, …, n-1}•Under normal arithmetic (+,×)–[(a mod n) +(b mod n)] mod n = (a+b) mod n•Proof:Let a=q1n+r1, b=q2n+r2•(a+b) mod n = (q1n+r1+q2n+r2) mod n = (r1+r2) mod n–[(a mod n) ×(b mod n)] mod n = (a×b) mod n •(+, ×)→(-,÷) ?1819模运算:举例1•(Z 8={0, 1, 2, …, 7}, +)What?模运算说明•Additive Inverse Always Exists–(a+(-a)) = 0 mod n ⇒-a = n-a–if (a+b) ≡(a+c) mod n then b≡c mod n•((-a)+a+b) ≡((-a)+a+c) mod n•Multiplicative Inverse NOT Always Exists –Example:6 in Z8–When?21模运算中的乘法逆•Definition:a-1mod n is the multiplicative inverse of a∈{1,2,…,n-1} when ax≡1mod n•Theorem: If and only if gcd(a,n)=1, then the a-1 mod n exists•Lemma:If gcd(a,n)=1, then a⋅i≠a⋅j mod n for all 0≤i<j<n (i ≠j)–Proof:assume a⋅i≡a⋅j mod n⇒n|a(i-j) ⇒n|i-j⇒i-j=022乘法逆定理•Proof:•⇒–gcd(a,n)=1 ⇒a·{1,…,n-1} mod n is the permutationof {1,…,n-1}–So there exists only an i that a⋅i≡1 mod n–Therefore i is a-1mod n•⇐–Suppose a-1exists, call it x–ax ≡1 (mod n) and ax + yn= 1 for some integer y–gcd(a, n)=1 (gcd(a,n)|ax+yn→gcd(a,n)|1)23如何找到a-1mod n?•在{1,…,n-1} 中寻找,直到找到一个a-1,使得a·a-1≡1 (mod n)–T(n)=O(n)•计算a-1= aϕ(n)-1mod n–寻找ϕ(n) ⇔分解n–T(n)=O(n a)•用Extended Euclidean Algorithm–T(n)=O(log a n)2426求a-1mod ngcd(n,a)•n=aq 1+r 1 r 1=n-aq 1= s 0n+t 0a •a= r 1q 2+r 2 r 2= a-r 1q 2 =s 1n+t 1a ……•r k-1 =s k-1n+t k-1a•r k-1=gcd(n, a)•若gcd(n, a) =1,则s k-1n+t k-1a =1 ⇒t k-1a ≡1 mod n ⇒t k-1≡a -1mod nGCD(1970,1066)1970=1*1066+904 gcd(1066,904)1066=1*904+162 gcd(904,162)904=5*162+94 gcd(162,94)162=1*94+68 gcd(94,68)94=1*68+26 gcd(68,26)68=2*26+16 gcd(26,16)26=1*16+10 gcd(16,10)16=1*10+6 gcd(10,6)10=1*6+4 gcd(6,4)6=1*4+2 gcd(4,2)4=2*2+0 gcd(2,0)如何找到t k-1 ?28Step 1:r 0 =n and r 1 =aStep 2:r 0 =q 1r 1+r 2 Ær 2 =r 0 -q 1r 1 =-q 1r 1 mod nlet x 2= -q 1then r 2 =x 2r 1 mod nr 1 =q 2r 2+r 3 Ær 3 =r 1 –q 2r 2 =(1-x 2q 2)r 1 mod nlet x 3= 1-x 2q 2then r 3 =x 3r 1 mod n ……r n-3 = q n-2r n-2+r n-1 Ær n-1 =r n-3 –q n-2r n-2 mod nlet x n-1= x n-3-x n-2q n-2then r n-1 =x n-1r 1 mod n Now r n-1=1Step 3:Result is x n-2 =a -1mod nExtended Euclidean Algorithm29例:求7-1mod 26r 4 = r 2 -2r 3= r 2-2(r 1-r 2)= -2r 1+3r 2= -2r 1+3(r 0-3r 1)= 3r 0-11r 1⇒t 4= -11⇒7-1mod 26 = 15r 0 q 1 r 1r 226=3*7+5r 1 q 2 r 2r 37 =1*5+2r 2 q 3 r 3r 45 =2*2+1例:求3-1mod 26=930Euler phi Function•是在比n 小的正整数中与n 互素的数的个数.•例如:•若n 是素数,则显然有φ(n)=n-1。
密码学中的数学基础

数论 群论 有限域(Galois Field)理论 计算复杂性理论
密码学数学引论----数论
一、素数 1 除数 ➢ 若a=mb,其中a,m,b均为整数,当b≠0时,b
能整除a,记为b|a,称b为a的一个除数(或因 子)。 ➢ 对于除数,以下规则成立: (1)如果a|1,则a=±1; (2)如果a|b且b|a,则a=±b; (3)对于任何b≠0,有b|0; (4) 如 果b|g 且 b|h, 则 对任 何 整数 m 和 n有
b|(mg+nh)。
密码学数学引论----数论
2 素数 ➢ 如果整数p>1且因子仅为±1和±p,则称p是素
数(质数)。 ➢ 在只考虑正整数的情况下,素数是指只能被1和
它本身整除的整数。 ➢ 目前没有一个规律来确定所有的素数。 ➢ 素数有无穷多个。
算术基本定理:任何大于1的整数a都可以分解写 成唯一的表达式:
56=53×53≡132 mod 56≡1 mod 56 因此
560=56×56×56×56×56×56×56×56×56×56 ≡(1 mod 56) ×…× (1 mod 56) ≡(1×1×…×1)mod 56 ≡1 mod 56
所以56|560-1。
密码学数学引论----数论
三、欧几里德(Euclid)算法 欧几里德算法用于确定两个整数的最大公因子,
和传递性。 (2)模运算满足可交换、可结合、可分配。
[a(modn)±b(modn)]=(a±b)modn [a(modn)b(modn)]=(ab)modn
[(ab)(modn)+(ac)(modn)]modn=[a(b+c)]mo dn
例:证明560-1是56的倍数 证明:53=125≡13 mod 56
数学知识点归纳数论与密码学的基础

数学知识点归纳数论与密码学的基础数学知识点归纳:数论与密码学的基础数论是数学的一个分支,研究的是整数及其性质。
而密码学是应用数论的一个领域,研究的是信息保密和安全通信的方法。
本文将就数论和密码学的基础知识进行归纳和总结。
一、数论的基础知识1. 整数和整除性质:整数是自然数、0和负整数的集合。
整除是指一个数能够整除另一个数,也可以说是被整除的那个数是另一个数的倍数。
2. 最大公约数和最小公倍数:最大公约数是两个数中最大的能够同时整除它们的数;最小公倍数是能够同时被两个数整除的最小的非零自然数。
3. 模运算:模运算是指将一个数对另一个数取余得到的结果,表示为a mod b。
常用于解决循环问题、计算机编程和密码学等领域。
4. 素数和合数:素数是指只能被1和自身整除的数,大于1的非素数称为合数。
二、RSA公钥密码体制RSA密码体制是一种基于数论的非对称加密算法,由三位数学家Rivest、Shamir和Adleman共同发明。
它利用了大数分解的困难性来提供安全性。
1. 密钥生成:RSA算法需要生成一对公私密钥。
首先选择两个不同的素数p和q,计算它们的乘积n=p*q。
选择一个与(p-1)*(q-1)互质的整数e作为公钥,计算私钥d使e*d ≡ 1(mod (p-1)*(q-1))。
2. 加密过程:将明文M转换为整数m,然后使用公钥(e,n)对明文进行加密,得到密文C ≡ m^e(mod n)。
3. 解密过程:使用私钥(d,n)对密文进行解密,得到明文M ≡C^d(mod n)。
三、素性测试素性测试是判断一个大数是否为素数的方法,其中最著名的是费马素性测试和米勒-拉宾素性测试。
1. 费马素性测试:根据费马小定理,如果p是素数且a是p的一个互质整数,那么 a^p-1 ≡ 1(mod p)。
因此,对于一个给定的大数n,若不等式a^n-1 ≡ 1(mod n)成立,那么n一定是合数。
费马素性测试虽然简单,但在实际应用中效果较差。
密码学的数学基础及其应用

密码学的数学基础及其应用密码学是现代信息安全领域中的重要分支,它涵盖了加密、解密、数字签名、密钥管理等方面。
其基本目的是确保信息的安全性、可靠性和隐私性。
密钥是解密或解码所需的加密或编码过的文本,因此,密码学的基础是在数学和其他相关学科中找到可行的方法来创建和管理密钥。
一、密码学的数学基础密码学的数学基础主要包括大量的数学理论、算法和问题,这些是建立密码体系必不可少的基础。
其中,最基础也最重要的是数论、代数、离散数学和计算机科学。
1. 数论数论是密码学的基础。
在密码学中,一种常用的数论方法叫做模运算。
模运算是在某一范围内进行的算术运算,例如将100除以7得到的余数是2,即100 mod 7 = 2。
这个方法被用于创建密钥和密码。
2. 代数代数在密码学中的作用与数论一样重要。
这是因为密码的创建和破解过程中,有时需要用到代数方法。
例如,当使用基于公钥的密码体系时,常常需要使用解方程式的方法来计算密钥。
3. 离散数学离散数学是密码学的关键,特别是在数据结构、图论、组合数学等方面。
在密码学中,离散数学的一种应用是用于构建Diffie-Hellman密钥交换协议和ElGamal加密算法等。
4. 计算机科学计算机科学是密码学的另一个重要基础。
密码学中使用的大多数算法都需要计算机的支持。
因此,对于密码学的学习者,必须了解计算机科学的基础知识,例如数据结构、算法、计算机体系结构和操作系统等。
二、密码学的应用密码学的应用涵盖了众多领域。
在计算机网络安全领域,有四种常见的密码学应用。
1. 对称加密技术对称加密技术是一种常见的密码技术,使用相同的密钥加密和解密数据。
这种技术能够快速加密和解密数据,但有一个问题是,不安全地传输密钥会导致密钥泄漏的风险。
2. 公钥加密技术公钥加密技术也被称为非对称加密技术。
它使用两个密钥,一个用于加密数据,另一个用于解密数据,因此只有拥有私钥的人才能读取数据。
这种技术缺点是速度慢,因为加密和解密都需要昂贵的数学计算。
数学与密码学加密算法的数学基础

数学与密码学加密算法的数学基础密码学加密算法是现代通信和信息安全领域至关重要的技术之一。
而实现这些加密算法的核心就是数学。
在本文中,我们将探讨数学与密码学加密算法之间的密切关系,以及这些加密算法背后的数学基础。
一、对称加密算法对称加密算法是最早也是最简单的加密算法之一。
它使用相同的密钥进行加密和解密操作。
这些算法的核心基于数学方法,例如位运算、模运算和异或运算等。
位运算是一种对二进制数据进行操作的数学运算,广泛应用于密码学中。
通过对数据进行按位和异或运算,可以实现高效、快速的加密和解密过程。
例如,常见的对称加密算法DES(Data Encryption Standard)使用了复杂的置换和替换运算,利用二进制编码的数据处理方式实现数据保护。
这些操作背后依赖了离散数学中的置换群和线性代数等数学理论。
二、非对称加密算法与对称加密算法不同,非对称加密算法使用一对密钥,即公钥和私钥。
公钥可以公开给其他人使用,而私钥则保密。
非对称加密算法的数学基础是基于数论中的一些难题,例如大素数分解问题和离散对数问题。
RSA算法是最著名的非对称加密算法之一。
该算法是基于数论中的欧拉函数和模取幂运算等数学概念。
通过选择合适的大素数,并进行一系列数学运算,可以生成非常强大的加密算法。
三、哈希函数哈希函数是一种重要的密码学工具,用于将任意长度的输入数据转换为固定长度的输出数据。
哈希函数具有不可逆性和唯一性的特性,也就是说,无法通过输出数据反推出输入数据,并且不同的输入数据会产生不同的输出。
经典的哈希函数,例如MD5和SHA(Secure Hash Algorithm),都是基于数学原理设计的。
这些函数利用了位运算、模运算和异或运算等数学方法,以及数论中的散列函数定理和模取幂运算等概念。
通过这些数学基础,哈希函数可以提供高度的数据安全性和完整性。
四、椭圆曲线密码学(ECC)椭圆曲线密码学是近年来发展起来的一种密码学分支,它利用了椭圆曲线上的数学性质来实现加密算法。
密码学数学基础

第 4 章 数学基础一 来自整数理论的一些概念1 数的整除性初等数论研究的基本对象是整数集合Z = {0 , ± 1 , ± 2 , ± 3, K }和自然数集合(即正整数集合)N = {1 , 2 , 3 , 4 ,K }定义:设 Z 为有全体整数而构成的集合,若 b ≠ 0 且a , b , m ∈ Z 使得a = mb此时称b 整除 a 。
记为b | a ,还称b 为 a 的除数(因子)。
如果不存在整数 m 使得 a = mb 则称b 不整除a 。
例如:24 的正因子是:1、2、3、4、6、8、12 和 24。
对于数的整除有以下规则成立:1. 如果a | 1则a = ±1。
2. 如果 a | b 且b | a ,则a = ±b 。
3. 任何b ≠ 0 能整除 0。
4. 如果b | g 而且b | h ,则对任意整数m 和n 有b | (mg + nh ) 。
为明白最后一个规则,证明如下:如果b | g ,则 g 是b 的倍数,可以表示成: g = b ⨯ g 1 , g 1 为某一整数。
如果b | h ,则h 是b 的倍数,可以表示成: h = b ⨯ h 1 , h 1 为某一整数。
故有:mg + nh = mbg 1 + nbh 1 = b ⨯ (mg 1 + nh 1 )所以b 能整除mg + nh 。
1 2 t 2 素数(质数)的概念:定义:整数 p > 1被称为素数是指 p 的因子仅有1 ,-1 , p ,- p 。
例如:下面的表给出了在 2000 以内的所有素数。
算术基本定理。
任意大于 1 的整数a 都能被因式分解为如下的唯一形式:a = P α1 P α2 K P αt其中 P 1 > P 2 > K P t 都是素数而且每一个α i > 0 (i = 1 ,2 ,3 ,K )。
例如: 91 = 7 ⨯13 ;11011 = 7 ⨯112 ⨯13任一个给定的正整数可以通过简单列出后面公式中非零分量来说明。
密码学的数学基础

密码学的数学基础密码学是研究信息安全和通信保密的一门学科,它涉及到数据加密、解密、认证、签名以及密码系统的设计等领域。
密码学作为信息安全的基石,具备坚实的数学基础。
本文将探讨密码学中涉及的一些重要的数学原理和算法。
一、模运算在密码学中,模运算是一种关键的数学运算,它对于生成密码算法和破解密码算法都有着重要作用。
模运算是指对于给定的正整数n,将一个整数a除以n所得的余数。
模运算具有以下几个重要性质:1. 加法的封闭性。
对于任意的整数a和b,(a+b) mod n=(a mod n + b mod n) mod n。
2. 乘法的封闭性。
对于任意的整数a和b,(a×b) mod n=(a mod n × b mod n) mod n。
3. 乘法的分配律。
对于任意的整数a、b和c,(a+b) mod n=(a mod n + b mod n) mod n。
二、欧拉函数和费马小定理在密码学中,欧拉函数和费马小定理是密码算法设计的重要数学基础。
1. 欧拉函数欧拉函数φ(n)表示小于等于n的正整数中与n互质的数的个数。
对于任意正整数n,欧拉函数满足以下性质:- 如果p是一个质数,那么φ(p)=p-1。
- 如果a和b互质,那么φ(a×b)=φ(a)×φ(b)。
2. 费马小定理费马小定理是一个基本的数论定理,它指出如果p是一个质数,a是不可被p整除的整数,那么a^(p-1) mod p ≡ 1。
费马小定理在密码学中应用广泛,特别是在RSA算法中。
RSA算法是一种非对称加密算法,基于大数因子分解的困难性。
三、素数和大数因子分解密码学中的许多算法都依赖于素数和大数因子分解的困难性。
1. 素数素数是只能被1和自身整除的正整数。
在密码学中,素数的选取十分重要,因为对于一个大的合数,将其分解质因数是非常困难的。
2. 大数因子分解大数因子分解是指将一个大的合数分解成质因数的过程。
在密码学中,大数因子分解的困难性是许多加密算法的基础,如RSA算法。
密码学数学基础

第三章密碼學數學基礎本章摘要3.1 有限場3.2 同餘及模運算3.3 乘法反元素3.4 線性同餘3.5 中國餘數定理3.6 二次剩餘3.7 單向函數與單向暗門函數3.8 指數函數3.9 小結本章前言密碼學中需要使用到許多數學理論,如數論(Number Theory)、資訊理論(Information Theory)、複雜度理論(Complexity Theory)、機率(Probability),與線性代數(Linear Algebra)等,均為設計密碼系統與協定不可或缺的工具。
在分析密碼系統與協定時,這些理論提供我們証明或相信,這些密碼系統或協定提供足夠安全的保障。
在本章中,我們將對密碼學中必要的數學基礎,作一重點整理,期使讀者能全盤了解密碼學的運作原理及如何分析與証明其安全性。
學習路徑❖密碼學數學基礎包括有限場、同餘及模運算、乘法反元素、線性同餘、中國餘數定理、二次剩餘、單向函數與單向暗門函數,與指數函數等。
由於數論是密碼學中最重要的數學基礎,本章將針對必要的數論理論為讀者做一整體概念的介紹。
❖本章主要探討有限場、同餘及模運算、乘法反元素、線性同餘、中國餘數定理、二次剩餘、單向函數與單向暗門函數,與指數函數等。
有限場方面,將介紹環、群,與場。
同餘及模運算方面,包括同餘基本運算、尤拉商數、尤拉定理與費瑪定理之介紹。
乘法反元素方面,探討如何運用尤拉定理與歐幾里德演算法求得乘法反元素。
接著介紹線性同餘、中國餘數定理、二次剩餘,與單向函數與單向暗門函數之定義及其應用,並輔以實例加以說明。
本章最後將探討指數函數之特性。
本章內容 3.1 有限場若一個場中的元素個數為無限多個則稱為無限場(infinite field);反之,稱為有限場(finite field)。
密碼理論應用中常用有限場。
無限場的例子有實數場R 、有理數場Q 、複數場C 等;有限場的例子有Galois Field (GF)、模運算結果等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3≡11mod8(成立!)
10
Z8
0
乘以6 0
模8后余数 0
Z8
0
乘以5 0
模8后余数 0
1234567 6 12 18 24 30 36 42 6420642 1234567 5 10 15 20 25 30 35 5274163
原因:模m的乘法运算返回的结果是0到m-1之间
的数,如果乘数a和模数m有除1以外的共同因子时
6
例子.通过同余式演算证明: (1)560-1是56的倍数 (2)223-1是47的倍数。 解:
注意53=125≡13(mod56) 于是有56≡169≡1(mod56) 对同余式的两边同时升到10次幂, 即有56∣560-1。
7
同理, 注意到26=64≡17(mod47), 223=(26)3·25=(26 · 26)26 · 25 ≡289*(17)*(32) mod47 ≡7*17*32 (mod47) ≡ 25*32(mod47) ≡1(mod47) 于是有 47∣223-1
§1 数论
1、除数(因子) 设z为由全体整数而构成的集合,若 b≠0且 a,b,mZ 使得a=mb,此时称b整除a.记为b∣a,还称 b为a的除数(因子).
注:若a=mb+r且0<r<b,此时b不整除a,记为 b | a
2、素数(质数)的概念: 整数p>1被称为素数是指p的因子仅有1,-1,p,-p。
(若r=0则m∣a)
整数同余:
定义:如果a mod m =b mod m,则称整数a模
正整数m同余于整数b,并写a≡b(mod m)是
指m∣(a-b), m称为模数。
注:1*.m∣a-ba=q1m+r,b=q2m+r即a和b
分别 除以m有相同的余数。
4
2*.相对于某个固定模数m的同余关系,是整数间 的一种等价关系。具有等价关系的三点基本性 质:
12
欧几里德算法描述
EUCLID(a,b):(条件:0<a<b) 1)X ←a;Y←b; 2)如果Y=0,返回X=gcd(a,b); 3)R=X mod Y 4)X ←Y;Y←R; 5)返回到 2)
13
欧几里德算法c++实现
int a,b,r; cout<<"输入两个整数:";
cin>>a>>b;
3)如果Y3=1,有逆元(即Y2);X3=gcd(a,n);返回
4)Q=max_int(X3/Y3)
5)(T1,T2,T3) ←(X1-Q·Y1,X2-Q·Y2,X3-Q·Y3)
6)(X1,X2,X3) ←(Y1,Y2,Y3)
7)(Y1,Y2,Y3) ←(T1,T2,T3)
8)回到 2)
16
例:求gcd(20,117)和20-1mod117
Q
X1
X2
X3 Y1(T1)Y2(T2) Y3(T3)
-
1
0
117
0
1
20
5
0
1
20
1
-5
17
1
1
-5
17
-1
6
3
5
-1
6
3
6
-35
2
1
6
-35
2
-7
41 1=gcd
1)(X1,X2,X3) ←(1,0,n);(Y1,Y2,Y3)←(0,1,a)
4)Y3不为0或1,计算Q=max_int(X3/Y3)=5
于是
定理:(消去律)对于ab≡ac(mod m)来说,若 gcd(a,m)=1则b≡c(mod m)
8
9
消去律规则
例如1:附加条件不满足的情况
6×3=18≡2mod8
6×7=42≡2mod8
但3≡7mod8(不成立!)
例如2:附加条件满足的情况 5×3=15≡7mod8
5×11=55≡7mod8
❖d是a和b的公约数。 ❖对a和b的任何一个公约数c有c∣d。 注:1*. 等价的定义形式是: gcd(a,b)=max{k∣ k∣a且k∣b} 2*.若gcd(a,b)=1,称a与b是互素的。
3
二、模算术运算
带余除法: a∈z,>0,可找出两个唯一确定的整数q和r, 使a=qm+r, 0<=r< m,q和r这两个数分别称为 以m去除a所得到的商数和余数。
1
§算术基本定理
任何一个不等于0的正整数a都可以写成唯一的 表达式:
a=P1α1×P2α2×…×Ptαt, 其中:P1<P2<P3…<Pt是素数,其中αi>0 即:任何大于1的整数都可分解成素数幂之积。
11111=7×112×13
2
§最大公约数
若a,b,c∈z,如果c∣a,c∣b,称c是a和b的公 约数。 正整数d称为a和b的最大公约数,如果它满足
if(a>b){r=a,a=b,b=r;} //交换两数
r=a%b;
while (r!=0)
{ a=b;b=r;r=a%b;} //辗转相除
cout<<"最大公约数:"<<b<<endl;
14
扩展的欧几里德算法
原理:如果正整数n≥1,并且gcd(a,n)=1,那么 a有一个模n的乘法逆元a-1。即对小于n的正整 数a,存在一个小于n的整数a-1,满足:
a×a-1≡1mod n
作用:不仅可以计算两个正整数的gcd,如果两 互逆,还能计算它们的逆元。
15
扩展的欧几里德算法描述
Extended EUCLID(a,n):
1)(X1,X2,X3) ←(1,0,n);(Y1,Y2,Y3)←(0,1,a)
2)如果Y3=0,无逆元。X3=gcd(a,n),返回;
自反性:对任意整数a有:a≡a(mod m)
对称性:如果a≡b(mod m),则b≡a(mod m)
传递性:如果a≡b (mod m),b≡c(mod m),则a≡c(mod m)
于是,全体整数集合z可按模m(m>1)分成 一些两两不交的等价类。
5
3*. 对于某个固定模m的同余式可以象普通的等式 那样相加、相减、相乘,可结合: (1)[a(mod m)±b(mod m)]mod m =(a±b)(mod m) (2)[a(mod m)*b(mod m)]mod m =a*b(mod m) (3)[(a*b)modm+(a*c)modm] =[a*(b+c)]modm
将不会产生完整的余数集合。
11
欧几里德算法
算法:对于任何非负整数a与b,有 gcd(a,b)=gdc(b,amod b) (a≥b)
重复使用上式可计算gcd,结束条件是最后一 个整数=0,此时前一整数即为gcd。 例:gcd(18,12)=gcd(12,18 mod 12)
=gcd(12,6)=gcd(6,12 mod 6) =gcd(6,0)=6