资源描述:
《加密算法介绍》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、RSA加密算法介绍 首先,找出三个数,p,q,r, 其中p,q是两个相异的质数,r是与(p-1)(q-1)互质的数。 p,q,r这三个数便是privatekey。接著,找出m,使得rm==1mod(p-1)(q-1).....这个m一定存在,因为r与(p-1)(q-1)互质,用辗转相除法就可以得到了.....再来,计算n=pq.......m,n这两个数便是publickey。 编码过程是,若资料为a,将其看成是一个大整数,假设a=n的话,就将a表成s进位(s<=n,通常取s=2^t),则每一位数均小於
2、n,然後分段编码......接下来,计算b==a^mmodn,(0<=b若p,q是相异质数,rm==1mod
3、(p-1)(q-1),a是任意一个正整数,b==a^mmodpq,c==b^rmodpq,则c==amodpq证明的过程,会用到费马小定理,叙述如下:m是任一质数,n是任一整数,则n^m==nmodm(换另一句话说,如果n和m互质,则n^(m-1)==1modm)运用一些基本的群论的知识,就可以很容易地证出费马小定理的........<证明>因为rm==1mod(p-1)(q-1),所以rm=k(p-1)(q-1)+1,其中k是整数因为在modulo中是preserve乘法的(x==ymodzandu==vmodz=>xu==yvm
4、odz),所以,c==b^r==(a^m)^r==a^(rm)==a^(k(p-1)(q-1)+1)modpq1.如果a不是p的倍数,也不是q的倍数时,则a^(p-1)==1modp(费马小定理)=>a^(k(p-1)(q-1))==1modpa^(q-1)==1modq(费马小定理)=>a^(k(p-1)(q-1))==1modq所以p,q均能整除a^(k(p-1)(q-1))-1=>pq
5、a^(k(p-1)(q-1))-1即a^(k(p-1)(q-1))==1modpq=>c==a^(k(p-1)(q-1)+1)==amodpq
6、2.如果a是p的倍数,但不是q的倍数时,则a^(q-1)==1modq(费马小定理)=>a^(k(p-1)(q-1))==1modq=>c==a^(k(p-1)(q-1)+1)==amodq=>q
7、c-a因p
8、a=>c==a^(k(p-1)(q-1)+1)==0modp=>p
9、c-a所以,pq
10、c-a=>c==amodpq3.如果a是q的倍数,但不是p的倍数时,证明同上4.如果a同时是p和q的倍数时,则pq
11、a=>c==a^(k(p-1)(q-1)+1)==0modpq=>pq
12、c-a=>c==amodpqQ.E.D.这个定理说明a
13、经过编码为b再经过解码为c时,a==cmodn(n=pq)....但我们在做编码解码时,限制0<=a14、1585042342618102595143352719113605244366355473931231576254493830221466153453729211352820124III.把变换后的密钥等分成两部分,前28位记为C[0],后28位记为D[0].IV.计算子密钥(共16个),从i=1开始。1.分别对C[i-1],D[i-1]作循环左移来生成C[i],D[i].(共16次)。每次循环左移位数如下表所示:i.轮12345678910111213141516位数11222222122222212.串联C[i],D[i],得
15、到一个56位数,然后对此数作如下变换以产生48位子密钥K[i]。变换过程如下:1.1417112415328156211023191242681672720132415231374755304051453348444939563453