2010-第2周 密码学中的数学基础知识
- 格式:ppt
- 大小:2.11 MB
- 文档页数:95
第二章密码学的数学基础•数论-素数-模运算•代数结构•安全性基础-信息论-复杂性理论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。
数学知识点归纳数论与密码学的基础数学知识点归纳:数论与密码学的基础数论是数学的一个分支,研究的是整数及其性质。
而密码学是应用数论的一个领域,研究的是信息保密和安全通信的方法。
本文将就数论和密码学的基础知识进行归纳和总结。
一、数论的基础知识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)椭圆曲线密码学是近年来发展起来的一种密码学分支,它利用了椭圆曲线上的数学性质来实现加密算法。
密码学的数学基础密码学是研究信息安全和通信保密的一门学科,它涉及到数据加密、解密、认证、签名以及密码系统的设计等领域。
密码学作为信息安全的基石,具备坚实的数学基础。
本文将探讨密码学中涉及的一些重要的数学原理和算法。
一、模运算在密码学中,模运算是一种关键的数学运算,它对于生成密码算法和破解密码算法都有着重要作用。
模运算是指对于给定的正整数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算法。
密码学中的数学原理密码学是研究如何在通信过程中保护信息安全的学科,它涉及到许多数学原理和算法。
在密码学中,数学原理起着至关重要的作用,它们为加密算法的设计和安全性提供了坚实的基础。
本文将介绍密码学中一些重要的数学原理,包括模运算、离散对数、椭圆曲线等内容。
一、模运算模运算是密码学中常用的数学运算之一,它在加密算法中扮演着重要的角色。
在模运算中,我们需要计算一个数除以另一个数的余数。
例如,对于整数a和b,a mod b的结果就是a除以b的余数。
模运算在密码学中广泛应用于数据加密和密钥生成等过程中,能够保证数据的安全性和完整性。
二、离散对数离散对数是密码学中另一个重要的数学原理,它与模运算密切相关。
在离散对数问题中,给定一个底数、一个模数和一个结果,需要找到满足指定条件的指数。
离散对数问题的复杂性使得它成为许多公钥加密算法的基础,如RSA算法和Diffie-Hellman密钥交换算法。
三、椭圆曲线椭圆曲线是密码学中一种重要的数学结构,它具有许多优秀的性质,被广泛应用于公钥密码系统中。
椭圆曲线密码学利用椭圆曲线上的点运算来实现加密和签名等功能,具有高效性和安全性。
椭圆曲线密码学已成为当前密码学领域的研究热点,被广泛应用于数字货币、物联网等领域。
四、费马小定理费马小定理是密码学中常用的数论定理,它为RSA算法等公钥密码系统提供了理论基础。
费马小定理表明,对于任意素数p和整数a,a^(p-1) ≡ 1 (mod p)。
利用费马小定理,可以验证素数性、生成大素数、计算模逆元等操作,为密码学中的各种算法提供了支持。
五、素数检测素数检测是密码学中的一个重要问题,因为许多加密算法的安全性建立在大素数的基础上。
素数检测算法可以判断一个给定的数是否为素数,其中Miller-Rabin素数检测算法是一种常用且高效的算法。
通过素数检测,可以确保生成的大素数满足密码学算法的要求,提高系统的安全性。
六、RSA算法RSA算法是一种基于大整数因子分解的公钥加密算法,它利用费马小定理和欧拉定理等数学原理实现数据加密和数字签名等功能。