1. 缁椤嚭p銆乹銆乪銆丮锛岃捐′竴涓猂SA绠楁硶锛屾眰鍏阍ワ纴绉侀挜锛屽苟涓斿埄鐢≧SA绠楁硶锷犲瘑鍜岃В瀵嗭纻
闾f垜缁欎綘瑙i喷涓婻SA钖э纴灏介噺璁╀綘鐪嬫哕锛
*RSA鏄闱炲圭О锷犲瘑浣撶郴锛屼篃灏辨槸璇村姞瀵嗙敤涓涓鍏阍ワ纴瑙e瘑鐢ㄤ竴涓绉侀挜锛岃繖2涓瀵嗛挜涓嶅悓锛岃繖镣归潪甯搁潪甯搁吨瑕併
鍏跺疄RSA闱炲父绠娲侊纴浣嗗緢缇
娴佺▼
1锛屽绘垒2涓澶х殑绱犳暟p锛宷 n=p*q=33 N=锛坧-1锛*锛坬-1锛=20
鍏阍e涓鑸鏄3 绉侀挜d瑕侀氲繃鍏阍e铡荤畻鍑烘潵
e*d=1(mod N) 灏辨槸璇磂鍜宒镄勪箻绉妯N寰1 涔熷氨鏄痚鍜宒鍏充簬妯N浜掍负阃嗗厓
3*7=1锛坢od 20锛 鍙鐭d=7
锷犲瘑镄勬槑鏂囱句负M 锷犲瘑钖庣殑瀵嗘枃璁句负c
锷犲瘑杩囩▼锛欳=M^e(mod n)
瑙e瘑杩囩▼锛歁=C^d(mod n)
涓句釜鍏蜂綋镄勪緥瀛 锅囧侻=2
锷犲瘑杩囩▼锛欳=2^3(mod 33)=8(mod 33)
瑙e瘑杩囩▼锛歁=8^7(mod 33)=2097152(mod 33)=2(mod 33) 鍙浠ョ湅鍑哄拰鍜屾湰𨱒ョ殑鏄庢枃鏄鐩稿悓镄勚
铡熺悊鍙浠ョ悊瑙d负 M=M^(ed) (mod n)
链渚嬩腑 e*d=21 涔熷氨鏄鏄疢^21娆℃柟绛変簬M
RSA杩欎釜鐗规ф槸鏁拌轰腑镄勮垂椹瀹氱悊鎺ㄥ嚭镄
鍦ㄨ茶茬粏鑺 姣斿傛ゼ涓诲姞瀵嗙殑鏄26镄勫瓧姣 灏卞綋鏄庢枃镄勫兼槸浠1鍒26
灏辨嬁n=33璇村惂 锷犲瘑钖庣殑瀵嗘枃镄勫兼槸1鍒33 杩椤緢姝e父
浣嗘槸瑙e瘑钖 涓瀹氩拰鏄庢枃镄勫肩浉钖 涔熷氨鏄1鍒26
瀹为檯𨱍呭喌涓 鍏阍e鏄鍏寮镄 绉侀挜d鏄淇濆瘑镄
姣斿傜敳瑕佺粰涔椤彂涓涓滆タ 涔欑殑鍏阍ョ敱浜庢槸鍏寮镄 镓浠ョ敳鐭ラ亾 浣嗙敳涓岖煡阆扑箼镄勭侀挜
鐢插厛鐢ㄤ箼镄勫叕阍ュ姞瀵 涔嫔悗 杩欎釜瀵嗘枃鍙鑳界敤涔欑殑绉侀挜 鐢变簬涔欑殑绉侀挜鏄淇濆瘑镄 鍙链変粬镊宸辩煡阆 镓浠ヤ缭璇佷简瀹夊叏
RSA链澶х殑瀹夊叏闂棰樻槸 n镄勫垎瑙 鍙瑕佹妸n鍒呜В涓簆*q 鍒橬=锛坧-1锛夛纸q-1锛
镙规嵁 e*d=1锛坢od N锛 灏卞彲浠ラ氲繃e绠楀嚭d 闾d箞绉侀挜閮借浜虹畻鍑烘潵浜 涔熷氨娌″畨鍏ㄦц岃█浜
涓嶈繃鍙𨱍灭殑鏄 澶ф暟鍒呜В鏄涓涓鍗曞悜镄勫嚱鏁 浣犵畻鐭ラ亾p锛宷绠枭寰埚规槗锛屼絾鏄鐭ラ亾n绠楀嚭p锛宷鐩稿綋闅
寮鸿皟涓鍙 n鏄锷犲瘑瑙e瘑鐢ㄧ殑 N鏄鐭ラ亾e绠栀镄
妤间富涔熸病璇翠綘瑕佸共鍢 𨱍崇湅镍傚氨杩欎箞澶
濡傛灉瑕佸疄鐜拌繖涓绠楁硶锛
蹇呴’鐭ラ亾2镣癸细
1.p锛宷杩欎釜涓や釜澶х礌鏁扮殑鐢熸垚锛岃繖鐗垫坛鍒扮礌镐ф楠岋纴鏁拌轰腑鏄涓绔犵殑鍐呭癸纴娌℃硶鍜屼綘灞曞紑
2.鍙栨ā杩愮畻锛岀敱浜庡姞瀵呜В瀵呜繃绋嫔彲鑳藉彇涓涓鏁扮殑鍑犲崄娆℃柟镄勬ā鏁帮纴镓浠ヨ繖涓蹇呴’鐢ㄧ亩渚跨殑绠楁硶𨱒ュ寲瑙e嶆潅搴︼纴涔熷氨鏄妯¢吨澶嶅钩鏂圭畻娉曘
濡傛灉瑕佺紪绋嬩腑浣跨敤锛屽お瀹规槗浜
铡讳笅涓猟ll
鍦╦ava涓 鐩存帴链夊彲鐢ㄤ簬RSA镄勭被 鐩稿綋瀹规槗
2. RSA和AES区别
先了解下AES和RSA的区别,前者属于 对称加密 ,后者属于 非对称加密 。
1、对称加密
对称加密就是加密和解密使用同一个密钥。
用数学公示表示就是:
▲加密:Ek(P) = C
▲解密:Dk(C) = P
这里E表示加密算法,D表示解密算法,P表示明文,C表示密文。
是不是看起来有点不太容易理解?看下图:
看过间谍局的知友们一定知道电台和密码本的功能。潜伏里面孙红雷通过电台收听到一堆数字,然后拿出密码本比对,找到数字对应的汉字,就明白上级传达的指令。而军统的监听台没有密码本,只看到一堆没有意义的数字,这就是对称算法的原理。
AES就属于对称加密 ,常见的对称加密方法还有DES、3DES、Blowfish、RC2以及国密的SM4。
2、非对称加密
对称加密快而且方便,但是有个缺点——密钥容易被偷或被破解。非对称加密就可以很好的避免这个问题。
非对称算法 把密钥分成两个 ,一个自己持有叫 私钥 ,另一个发给对方,还可以公开,叫 公钥 ,用公钥加密的数据只能用私钥解开。
▲加密: E公钥(P) = C
▲解密::D私钥(C) = P
这下就不用担心密钥被对方窃取或被破解了,私钥由自己保管。
非对称加密算法核心原理其实就是设计一个数学难题,使得用公钥和明文推导密文很容易,但根据公钥、明文和密文推导私钥极其难。
RSA 就属于非对称加密,非对称加密还有Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)以及国家商用密码SM2算法。
3、AES和RSA
AES和RSA都很安全,至少在目前的计算机体系结构下,没有任何有效的攻击方式。量子计算机时代,RSA有一定的破绽,因为利用shro's algorithm,量子计算机穷举计算质因子速度可以提高N个数量级,能够在有限的时间内破解RSA密钥。AES256至少目前并没有什么明显的漏洞。
AES作为对称加密技术,加密速度很快。 现在高端一点的CPU都带有AES-NI指令,可以极快的完成加密和解密。
举例来说,坚果云存储系统采用了intel 的AES-NI加速,在采用AES加密和解密的时候,
单核的性能可以超过 1GB Byte/秒,非常非常快,很适合对大量数据进行加解密。
但是AES作为对称加密技术,如何安全的分发密钥是一个难题。通过任何方式传递密钥都有泄密的风险。当然,目前我国高大上的量子通信技术或许能很好的解决这个问题。
RSA作为非对称加密技术的代表, 加解密的速度其实相当慢,只能对小块的数据进行加解密。但是其非对称的特点,满足公钥可以随处分发,只有公钥能解密私钥加密的数据,只有私钥能解密公钥加密的数据。所以很适合用来进行密钥分发和身份验证,这两个应用场景刚好相反。
1)用于对称秘钥分发的场景,其他人用公钥加密对称的秘钥,那么只有授权人才持有私钥,因此才能解密获得对应的秘钥,解决了AES密钥分发的难题;
2)对于身份验证的场景,授权人用私钥加密一段指令,其他人用公钥解密对应的数据,验证对应的指令与之前约定的某些特征一致(例如,这段话必须使用四川口音,像是坚果云CEO
的标准四川口音==),如果一致,那么可以确认这个指令就是授权人发出的。
相关趣闻轶事:
RSA除了是一个伟大的发明,被免费开放给所有互联网用户使用。它的发明者还以此成立了一家名为 RSA Security 的网络安全公司,这家公司最后被EMC高价收购。这是德艺双馨的伟大证明, 是“又红又专”的典范。
RSA的算法是以三个发明者的名字命名的,三位都是成功的数学家,科学家和企业家,其中的排名第一Ron Rivest,有非常多的杰出贡献。
RSA是整个互联网数据安全的基础,与光纤处于同样基础和重要的方式。 大部分的加密和解密的应用都是同时应用RSA和AES。
总结
破解加密的难度除了跟 加密方法 有关,还跟 密钥长度 以及 加密模式 有很大的关系,就拿AES来说,有AES128和AES256( 代表密钥长度 ),显然AES256的安全性能比AES128更高,而AES又要四种模式:ECB、CBC、CFB、OFB( 代表加密模式 )。
RSA1024是属于非对称加密,是基于大整数因式分解难度,也就是两个质数相乘很容易,但是找一个大数的质因子非常困难。量子计算机时代,RSA有一定的风险,具体可以参考: 超链接
AES256目前没有明显的漏洞,唯一的问题就是如何安全的分发密钥。
现在大部分的加密解密都是同时应用RSA和AES,发挥各自的优势,使用RSA进行密钥分发、协商,使用AES进行业务数据的加解密。
3. 利用RSA完成数据的加密与解密应用.求详细过程,求原理。
1、已知 p = 19,q = 23,则 n = p * q = 437,phi_n = ( p - 1) * (q - 1) = 396;
2、已知 e = 13,符合 gcd(e, phi_n) = 1,即 e 和 phi_n 互为素数;
3、由 e * d mod phi_n = 1,解出 d = 61;
4、因为Alice向Bob发送的明文为 m = 10;则加密后的密文为 c = m ^ e % n = 222;
5、Bob收到密文 c 后,利用私钥 d 即可得出明文 m = c ^ d % n = 10。
6、我认为题中私钥和公钥的概念你好像搞错了:Alice要向BOB传送数字10,那么Alice用来加密 使用的是Bob的公钥,即e,而Bob用来解密的是他自己的私钥,即d。
7、上面的d我是用了软件Sage算出的,这个软件用来解RSA很好用,有兴趣的话可以试试,当然 它还有很多很强大的功能。