- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
密码学的数学知识
第五章 公钥密码 公钥密码 数论简介 公钥密码体制的基本概念 RSA算法 椭圆曲线密码体制 数论简介 模运算 设n是一正整数,a是整数,若 a=qn+r, 0≤rn, 则a mod n=r 若(a mod n)=(b mod n),称为a,b模n同余,记为a≡b mod n 称与a模n同余的数的全体为a的同余类,记为[a],a称为这个同余类的代表元素 模运算 同余的性质 若n|(a-b),则a≡b mod n (a mod n) ≡(b mod n),则a≡b mod n a≡b mod n,则b≡a mod n a≡b mod n, b≡c mod n,则a≡c mod n 求余运算a mod n将a映射到集合{0,1,…,n-1},求余运算称为模运算 模运算 模运算的性质 [(a mod n)+(b mod n)] mod n=(a+b) mod n [(a mod n)-(b mod n)] mod n=(a-b) mod n [(a mod n)×(b mod n)] mod n=(a×b) mod n 模运算 例:Z8={0,1,2,3,4,5,6,7},模8加法和乘法 模运算 若x+y=0 mod n, y为x的加法逆元。每一元素都有加法逆元 若对x,有xy=1 mod n,称y为x的乘法逆元。在上例中,并非所有x都有乘法逆元 定义Zn={0,1,..,n-1}为模n的同余类集合。 模运算 Zn上模运算的性质 交换律 (x+w) mod n=(w+x) mod n (x×w) mod n=(w×x) mod n 结合律 [(x+w)+y] mod n=[x+(w+y)] mod n [(x×w) ×y] mod n=[x×(w×y)] mod n 分配律 [w×(x+y)] mod n=[w×x+w×y)] mod n 模运算 单位元 (0+w) mod n=w mod n (1×w) mod n=w mod n 加法逆元:对w∈Zn,有z∈Zn,满足w+z=0 mod n, z为w的加法逆元,记为z=-w。 加法的可约律 (a+b)≡(a+c) mod n, 则b≡c mod n 对乘法不一定成立,因为乘法逆元不一定存在。 模运算 定理:设a∈Zn,gcd(a,n)=1,则a在Zn有逆元 证明思路: 用反证法证明a和Zn中任何两个不同的数相乘结果都不相同 从1得出a×Zn=Zn,因此存在x∈Zn,使a×x=1 mod n 设p为素数,Zp中每一个非零元素都与p互素,因此有乘法逆元,有乘法可约律 (a×b)=(a×c) mod n, b=c mod n 费尔玛定理和欧拉定理 费尔玛定理 若p是素数,a是正整数且gcd(a,p)=1,则ap-1≡1 mod p 证明: gcd(a,p)=1,则a×Zp=Zp, a×(Zp-{0})=Zp-{0} {a mod p,2a mod p,…,(n-1)a mod p} ={0,1,…,p-1} (a mod p) ×(2a mod p) ×…×(n-1)a mod p=(p-1)! mod p (p-1)! ×ap-1=(p-1)! mod p (p-1)!与p互素,所以乘法可约律,ap-1=1 mod p 费尔玛定理和欧拉定理 欧拉函数 设n为一正整数,小于n且与n互素的正整数的个数称为n的欧拉函数,记为j(n) 定理:若n是两个素数p和q的乘积,则j(n)= j(p) j(q)=(p-1)(q-1) 欧拉定理 若a和n互素,则aj(n)=1 mod n 素性检验 引理:如果p为大于2的素数,则方程x2≡1 mod p的解只有和x≡1和x≡-1 证明: x2≡1 mod p ? x2 -1 ≡0 mod p (x+1)(x-1)≡0 mod p 所以,p|(x+1)或p|(x-1) 或p|(x+1)且p|(x-1)?存在k,j,x+1=kp, x-1=jp?2=(k-j)p, 这是不可能的。 引理的逆命题:若方程x2≡1 mod p有唯一解x不为+1或-1,p不是素数 素性检验 Miller-Rabin素性概率检测法 n为待检测数,a为小于n的整数,将n-1表示为二进制形式bkbk-1…b0,d赋初值为1,算法核心如下 for i=k downto 0 do {x?d; d?(d×d) mod n; if d=1 and (x≠1)and(x≠n-1) then return False if bi=1 the d?(d×a)
文档评论(0)