前言:为了大家更好的学习,我尽量采用图文和代码的形式为大家详细而又简单的讲解,与你相遇倍感荣幸,因为成长历程需要你我一起见证,欢迎大家一起讨论
明文+public key=密文:
密文-private kēy=明文
1.生成公私钥 (关键)
2.用公钥对指定编码集的字节流进行加密产生密文;
3.用私钥对密文进行解密得出密文;
P:
106697219132480173106064317148705638676529121742557567770857687729397446898790451577487723991083173010242416863238099716044775658681981821407922722052778958942891831033512463262741053961681512908218003840408526915629689432111480588966800949428079015682624591636010678691927285321708935076221951173426894836169
q
106697219132480173106064317148705638676529121742557567770857687729397446898790451577487723991083173010242416863238099716044775658681981821407922722052778958942891831033512463262741053961681512908218003840408526915629689432111480588966800949428079015682624591636010678691927285321708935076221951173426894836169
n=15451829866871637157835322285981368257909662702017179618938441893812851839135701007414707361242660160726516425982157617888395496297175564092494360771780789356530407344198651072794547134768749456960016822143151487852505415103282680142588791649018023314678806465404604863356330006297098883982004525047307441769849519455298373632470316136183314905468165805443248580301483600783264377812159448601179288205780106055575592759850520179438931325137509505409000578746718044163844933796688752995186209440200810671836319989244095544524426281446540439152873791764107025517382490712194797558551469166407875602487428429334974134321
φ(n) = φ(pq) = φ(p)φ(q)=15451829866871637157835322285981368257909662702017179618938441893812851839135701007414707361242660160726516425982157617888395496297175564092494360771780789356530407344198651072794547134768749456960016822143151487852505415103282680142588791649018023314678806465404604863356330006297098883982004525047307441769598002811700051151557898146487265141500919930165451354112742084112634421290530304261774352407733921876510894230578725305967639802190000637787751711519541066361896663331753421775366005510927218869208233453121408029247555902127555741567278204463766437571952333558427196578303404535803120800191248101905768922944
我们在此区间取一个质数,根据质数性质得知,质数与其他数互质;我们取3889;
d=1156205320457610288745198967657644166379972189839804389074591563666634066646564410685955217825048626066190866536592405966964024022236587593447122392540038493893121248948780525117822889230574978651418075403357439692743398250207060920929117606033490559159560987768768324823011579283223392964454439904542675637683985296529882973798752471233683249209762843835985174607047556306705224118165162905676610067022517682197138138621344578050034245933990790845007906416093198845798901781830868021761765904777531676765131379495584915533823288125255520904108500256867069512326595285549579378834222350197662163243932424184772115345
(n,e)=(15451829866871637157835322285981368257909662702017179618938441893812851839135701007414707361242660160726516425982157617888395496297175564092494360771780789356530407344198651072794547134768749456960016822143151487852505415103282680142588791649018023314678806465404604863356330006297098883982004525047307441769849519455298373632470316136183314905468165805443248580301483600783264377812159448601179288205780106055575592759850520179438931325137509505409000578746718044163844933796688752995186209440200810671836319989244095544524426281446540439152873791764107025517382490712194797558551469166407875602487428429334974134321
,
3889)
(n,d)=(15451829866871637157835322285981368257909662702017179618938441893812851839135701007414707361242660160726516425982157617888395496297175564092494360771780789356530407344198651072794547134768749456960016822143151487852505415103282680142588791649018023314678806465404604863356330006297098883982004525047307441769849519455298373632470316136183314905468165805443248580301483600783264377812159448601179288205780106055575592759850520179438931325137509505409000578746718044163844933796688752995186209440200810671836319989244095544524426281446540439152873791764107025517382490712194797558551469166407875602487428429334974134321
,
1156205320457610288745198967657644166379972189839804389074591563666634066646564410685955217825048626066190866536592405966964024022236587593447122392540038493893121248948780525117822889230574978651418075403357439692743398250207060920929117606033490559159560987768768324823011579283223392964454439904542675637683985296529882973798752471233683249209762843835985174607047556306705224118165162905676610067022517682197138138621344578050034245933990790845007906416093198845798901781830868021761765904777531676765131379495584915533823288125255520904108500256867069512326595285549579378834222350197662163243932424184772115345);
前提:我发消息(100),你生成了上面的密钥;;我通过下面发消息得到你的公钥,
我:发消息:询问你公钥--------------------------------------》你
我:《-------------------------------------回应消息公钥(n,e)你
我 :
加密过程(见下面实现过程):······(加密100)生成密文
我:发密文------------------------------------------------》你
解密过程(下面实现解密过程)--------------你
得到原文m=100;
将m,e,n代入进去:m^e≡c(modn) :求解c ,c即为密文
那么我将密文发给你C
你拿到我发过来的密文C,就用下面的欧拉定理公式进行解密出明文m:
使用自己的私钥,将d,c,n代入求解M,M即为明文
通过计算得到m=100;与原明文一样,则解密成功;
下期介绍RSA的安全性