1、现代密码学Modern Cryptography,张方国中山大学信息科学与技术学院,,第四讲 密码的代数学(一),初等数论素数,整除,同余,原根群论基础定义,交换群,循环群, 子群,商群,数论数学中的皇冠,数论就是指研究整数性质的一门理论。整数的基本元素是素数,所以数论的本质是对素数性质的研 究。初等数论(古典数论)高等数论(近代数论)代数数论,解析数论,算术代数几何等等,初等数论,初等数论部分是以整数的整除性为中心的,包括整除性、不定方程、同余式、连分数、素数(即整数)分布 以及数论函数等内容,统称初等数论(elementary number theory)。 初等数论的大部份内容早在古希腊
2、欧几里德的几何原本中就已出现。 近代初等数论的发展得益於费马、欧拉、拉格朗日、勒让德和高斯等人的工作。1801年,高斯的算术探究是数论的划时代杰作。,数论知识,基本概念整除性,素数,200以内的素数: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199,目前已知最大的素数是2013年1月25日由美国中央密苏里大学Curtis Cooper教
3、授领导的GIMPS发现的第48个梅森素数257,885,161-1,有17425170位。,互素,欧几里得算法,整数唯一分解定理,几种特殊的素数,梅森(Mersenne)素数: 2p-1, p is prime广义梅森素数 2p a, p is prime。(a是小奇数)费马素数Fn 22n+1 (当 n取0、1、2、3、4时,这个式子对应值分别为3、5、17、257、65537,费马发现这五个数都是素数)孪生素数p, p+2都是素数,一次不定方程,同余,剩余类和完全剩余类,缩系,一次同余式,原根,中国剩余定理,孙子问题Sun Zis problem记载于中国古代约公元3世纪成书的孙子算经内面
4、,是原书卷下第26题:“今有物不知其数,三三数之剩二;五五数之剩三;七七数之剩二,问物几何?答曰:二十三”。用现代符号表示为N2mod33mod52mod7,其最小正数解是23。孙子算经中给出了其中关键的步骤是:“凡三三数之剩一,则置七十;五五数之剩一,则置二十一;七七数之剩一,则置十五”。因此可设N=702+213+1522105=23。原题及其解法中的3、5、7后来叫“定母”,70、21、15叫“乘数”。但在孙子算经中并没有说明求乘数的方法,直到1247年宋代数学家秦九韶在数书九章中才给出具体求法。70是5与7最小公倍的2倍,21、15分别是3与7、3与5最小公倍数的1倍。秦九韶称这2、1
5、、1的倍数为“乘率”,求出乘率,就可知乘数。 三人同行七十稀,五树梅花廿一枝,七子团圆整半月,除百零五便得知。,中国剩余(孙子)定理,两两互素, 则一次同余式组 的解为其中,素性判定,Fermat定理:ap-1=1 mod pEuler定理:a (n) =1 mod n素性判定:Fermat 定理的逆定理不成立,满足条件的合数叫 Carmichael 数,最小的是 561=31117。,判定一个整数是不是素数在数论和密码学中都有着重要的应用,ECPP是一个概率检测算法,但它是一种零错误概率算法。改进的Atkin-Morain算法的计算时间复杂度是O(log4n),这使得它成为首选的素性检测方法
6、。尽管现在已经有确定性多项式时间素性检测算法,即三个印度人Agrawal, Kayal和Saxena于2002年发明的AKS算法,但他们的算法复杂度是O(log12n)。Lenstra和Pomerance对AKS算法进行改进,使得该确定性算法的运行时间复杂度到了O(log6n)。目前ECPP是依然是最快和最广泛使用的素性检测方法。,二次剩余,定义: x2=a mod n 有解,则a 称为mod n 的一个二次剩余,否则称为mod n 的一个二次非剩余。定理:令p是一个素数1)QRp=x2 mod p | 0x= (p-1)/22) 二次剩余和二次非剩余各有(p-1)/2个。,Euler 准则,
7、令p是一个素数,那么对任意的x in Zp*, x是mod p 的二次剩余的充分必要条件是: x (p-1)/2 =1 mod p,Legendre-Jacobi 符号,定义: Legendre 符号:(x/p)= 1 x in QRp ; -1 其它。 Jacobi符号: (x/n)= (x/pi)ei , n=piei,近世代数基本概念,若干个(有限或无限多个)固定事物的全体叫做一个集合。 组成一个集合的事物叫做这个集合的元素(有时简称元)一个没有元素的集合叫空集合。集合A和集合B的所有共同元素组成的集合叫做A和B的交集AB。由至少属于A和B之一的一切元素组成的集合叫做A和B的并集AB。令
8、A1,A2,,An是n个集合,由一切从A1,A2,,An里顺序取出的元素组( a1,a2,,an)(aiAi)所做成的集合叫做A1,A2,,An的积,记成A1A2 An,映射和代数运算,假如通过一个法则,对于任何一个A1A2 An的元素( a1,a2,,an) (aiAi),都能得到一个唯一的集合D的元素d,那么这个法则叫做集合A1A2 An到集合D的一个映射。元素d叫做元素( a1,a2,,an)在映射之下的象;元素( a1,a2,,an)叫做元素d在映射之下的逆象。一个映射常用以下符号来描写, : ( a1,a2,,an) d= ( a1,a2,,an)一个AB到D的映射叫做一个AB到D的
9、代数运算。 一个代数运算用来表示,: (a,b) d=(a,b)为方便起见, (a,b)可以写成ab,代数运算定律,假如是一个AA到A的代数运算,我们就说,集合A对于代数运算来说是封闭的,也说是A的代数运算或二元运算。一个集合A的代数运算适合结合律,假如对于A的任何三个元a,b,c来说,都有(a b) c=a (b c)一个AA到D的代数运算适合交换律,假如对于A的任何两个元a,b来说,都有a b= ba代数运算 适合分配律,假如对于B的任何元素b,A的任何元素a1,a2来说,都有b (a1a2)=(b a1 ) (b a2 ) 或者, (a1a2)b =( a1 b) ( a2 b ),群(
10、Group),群G,有时记做G, ,是定义了一个二元运算的非空集合,这个二元运算可表示为 ,G中的每一个序对(a,b)通过运算生成G中的元素(a b),并满足以下公理:封闭性:如果a 和 b都属于G,则 (a b)也属于G 。结合律成立:a (b c)=(a b) c,对于G的任意三个元素都a,b,c成立单位元:G里至少存在一个元素e,对于G的任何元a,都有e a=a e=a成立。逆元:对于G的每一个元素a,在G里至少存在一个元素a,使得a a=a a=e成立。,群论近代代数学的基本概念之一,Hermann Weyl: “Galois ideas, which for several deca
11、des remained a book with seven seals but later exerted a more and more profound influence upon the whole development of mathematics are contained in a farewell letter written to a friend on the eve of his death,which he met in a silly duel at the age of twenty-one. This letter, if judged by the nove
12、lty and profundity of ideas it contains, is perhaps the most substantial piece of writing in the whole literature of mankind.” 伽罗瓦(1811-1832) 1829年 18岁 群论,有关群的概念,一个群叫做有限群,假如这个群的元素个数是一个有限整数。否则,这个群叫做无限群。一个有限群的元素的个数叫做这个群的阶,用#G表示。一个群叫做交换群(阿贝尔群),假如a b=b a,对于G里的任何两个元a,b都成立。若一个群的每一个元素都是G的某一个固定元素a的乘方,我们把G叫做
13、循环群,我们也说G是由元素a所生成的,并且用符号G=(a)来表示。a叫做G的一个生成元。,子群与Lagrange 定理,设G是一个群,若H是G的一个非空子集且同时H在和G一样的单位元与代数运算下是一个群,则H称为G的一个子群。 陪集:a H=a h,h in H称H的一个陪集 , 这里 H 是 G的子群.Lagrange 定理:#H |#G商群:G/H =a H, a in G (a H)* (b H)=(a b) H 恒等元 e H推论 : 如果 H 是 有限群 G 的子群,则有 # (G/H )=#G / # H,群元素的阶,定义:a G, 满足 ai=e 的最小的正整数 i 称作a 的阶
14、, 记作 ord(a).Lagrange 推论:ord(a)|#GRSA: a(N)=1 mod N,这里, 群 ZN* 的阶是(N),循环群,定义:任意的 b G, 都存在a G 和一个整数i,都有 b=ai,我们把a 叫群的生成元。记G=.Euler 函数 (N) :不超过N且和N互素的元素的个数。定理:1、循环群G=的任何子群都是循环群。2、任意的d |# , 都唯一存在一个阶为d的子群。3、如果#=m, 那么#=ord( ak )=m/(k,m)4、任意d |# , 中存在(d)个阶为d 的元素。 5、如果#=m,那么中有(m)个生成元。6、素数阶的循环群的任何非恒等元都是生成元。,Questions ?,