非对称加密之-RSA加密

对一个大整数进行因数分解,在高等数学中叫做费马大定理,至今没有被破解
RSA算法是最流行的公钥密码算法,使用长度可以变化的密钥。RSA是第一个既能用于数据加密也能用于数字签名的算法。

这是目前地球上最重要的加密算法

至此,所有计算完成。
将 n和e封装成公钥 , n和d封装成私钥 。

回顾上面的密钥生成步骤,一共出现六个数字:

这六个数字之中,公钥用到了两个(n和e),其余四个数字都是不公开的。其中最关键的是d,因为n和d组成了私钥,一旦d泄漏,就等于私钥泄漏。
那么, 有无可能在已知n和e的情况下,推导出d?

最终转换成->结论: 如果n可以被因数分解,d就可以算出,也就意味着私钥被破解。

第一步 :首先生成秘钥对

第二步 :公钥加密

第三步 :私钥解密

几个全局变量解说:

关于加密填充方式:之前以为上面这些操作就能实现rsa加解密,以为万事大吉了,呵呵,这事还没完,悲剧还是发生了, Android这边加密过的数据,服务器端死活解密不了, ,这造成了在android机上加密后无法在服务器上解密的原因,所以在实现的时候这个一定要注意

实现分段加密:搞定了填充方式之后又自信的认为万事大吉了,可是意外还是发生了,RSA非对称加密内容长度有限制,1024位key的最多只能加密127位数据,否则就会报错(javax.crypto.IllegalBlockSizeException: Data must not be longer than 117 bytes) , RSA 是常用的非对称加密算法。最近使用时却出现了“不正确的长度”的异常,研究发现是由于待加密的数据超长所致。RSA 算法规定:待加密的字节数不能超过密钥的长度值除以 8 再减去 11(即:KeySize / 8 - 11),而加密后得到密文的字节数,正好是密钥的长度值除以 8(即:KeySize / 8)。

爱丽丝选择了61和53。(实际应用中,这两个质数越大,就越难破解。)

爱丽丝就把61和53相乘

n的长度就是密钥长度。3233写成二进制是110010100001,一共有12位,所以这个密钥就是12位。实际应用中,RSA密钥一般是1024位,重要场合则为2048位

爱丽丝算出φ(3233)等于60×52,即3120。

爱丽丝就在1到3120之间,随机选择了17。(实际应用中,常常选择65537。)

所谓 "模反元素" 就是指有一个整数d,可以使得ed被φ(n)除的余数为1。

这个式子等价于

于是,找到模反元素d,实质上就是对下面这个二元一次方程求解。

已知 e=17, φ(n)=3120,

至此所有计算完成

在爱丽丝的例子中,n=3233,e=17,d=2753,所以公钥就是 (3233,17),私钥就是(3233, 2753)。

实际应用中,公钥和私钥的数据都采用 ASN.1 格式表达

回顾上面的密钥生成步骤,一共出现六个数字:

这六个数字之中,公钥用到了两个(n和e),其余四个数字都是不公开的。其中最关键的是d,因为n和d组成了私钥,一旦d泄漏,就等于私钥泄漏。
那么,有无可能在已知n和e的情况下,推导出d?

结论:如果n可以被因数分解,d就可以算出,也就意味着私钥被破解。

可是,大整数的因数分解,是一件非常困难的事情。目前,除了暴力破解,还没有发现别的有效方法。维基百科这样写道

举例来说,你可以对3233进行因数分解(61×53),但是你没法对下面这个整数进行因数分解。

它等于这样两个质数的乘积

事实上,RSA加密的方式原理是一个高等数学中没有被解决的难题,所有没有可靠的RSA的破解方式



  • RSA鍔犲瘑鍘熺悊
    绛旓細RSA鍔犲瘑鏄竴绉闈炲绉板姞瀵銆傚彲浠ュ湪涓嶇洿鎺ヤ紶閫掑瘑閽ョ殑鎯呭喌涓嬶紝瀹屾垚瑙e瘑銆傝繖鑳藉纭繚淇℃伅鐨勫畨鍏ㄦэ紝閬垮厤浜嗙洿鎺ヤ紶閫掑瘑閽ユ墍閫犳垚鐨勮鐮磋В鐨勯闄┿傛槸鐢变竴瀵瑰瘑閽ユ潵杩涜鍔犺В瀵嗙殑杩囩▼锛屽垎鍒О涓哄叕閽ュ拰绉侀挜銆傚叕閽ュ姞瀵--绉侀挜瑙e瘑锛岀閽ュ姞瀵--鍏挜瑙e瘑 鍦 鏁存暟 涓紝 绂绘暎瀵规暟 鏄竴绉嶅熀浜 鍚屼綑 杩愮畻鍜 鍘熸牴 鐨勪竴绉 ...
  • 瀵嗙爜瀛﹀熀纭(涓):闈炲绉板姞瀵(RSA绠楁硶鍘熺悊)
    绛旓細鎬昏岃█涔嬶紝RSA鐨勫姞瀵嗗氨鏄娇鐢ㄦā鍙嶅嚱鏁板鏁板瓧杩涜鍔犲瘑鍜屾眰瑙h繃绋嬶紝鍦ㄥ疄闄呬娇鐢ㄤ腑鍥犱负 m < n蹇呴』鎴愮珛锛屾墍浠ュ氨鏈変袱绉嶅姞瀵嗘柟娉曪細瀵圭О鍔犲瘑瀛樺湪铏界劧蹇燂紝浣嗘槸瀛樺湪鑷村懡鐨勭己鐐瑰氨鏄閽ラ渶瑕佷紶閫掋闈炲绉板姞瀵铏界劧涓嶉渶瑕佷紶閫掔閽ュ氨鍙互瀹屾垚鍔犲瘑鍜岃В瀵嗭紝浣嗘槸鍏惰嚧鍛界己鐐规槸閫熷害涓嶅蹇紝涓嶈兘鐢ㄤ簬楂橀鐜囷紝楂樺閲忕殑鍔犲瘑鍦烘櫙銆
  • RSA鏄粈涔堟剰鎬?
    绛旓細RSA绠楁硶鏄竴绉闈炲绉瀵嗙爜绠楁硶锛屾墍璋撻潪瀵圭О锛屽氨鏄寚璇ョ畻娉曢渶瑕佷竴瀵瑰瘑閽ワ紝浣跨敤鍏朵腑涓涓鍔犲瘑锛屽垯闇瑕佺敤鍙︿竴涓墠鑳借В瀵嗐俁SA鐨勭畻娉曟秹鍙婁笁涓弬鏁帮紝n銆乪1銆乪2銆傚叾涓紝n鏄袱涓ぇ璐ㄦ暟p銆乹鐨勭Н锛宯鐨勪簩杩涘埗琛ㄧず鏃舵墍鍗犵敤鐨勪綅鏁帮紝灏辨槸鎵璋撶殑瀵嗛挜闀垮害銆俥1鍜宔2鏄竴瀵圭浉鍏崇殑鍊硷紝e1鍙互浠绘剰鍙栵紝浣嗚姹俥1涓(p-1...
  • 鍥炬枃褰诲簳鎼炴噦闈炲绉板姞瀵(鍏挜瀵嗛挜)
    绛旓細鐢变簬鎴戝彧鎯虫帴鏀舵垜鏈熸湜涓庝箣閫氫俊鐨勬湅鍙嬩俊浠躲備簬鏄垜鍦ㄦ姇閫掑彛鍔犱簡涓鎶婇攣,杩欐妸閿佺殑閽ュ寵(鍏挜)鎴戝彲浠ュ鍒秐浠,鍙戠粰鎴戞兂鎺ュ彈鍏朵俊浠剁殑浜恒傚彧鏈夎繖浜涗汉鍙互鐢ㄨ繖鎶婇挜鍖欐墦寮瀵勪俊鍙,鎶婁俊浠舵姇鍏ャ 鐩镐俊閫氳繃杩欎釜渚嬪瓙,鍙互甯姪澶у褰诲簳鐞嗚В鍏挜鍜岀閽ョ殑姒傚康銆 RSA 鏄幇鍦ㄤ娇鐢ㄦ渶涓哄箍娉涚殑闈炲绉板姞瀵绠楁硶,鏈妭鎴戜滑鏉ョ畝鍗曚粙缁 RSA 鍔...
  • RSA绠楁硶鍔犲瘑
    绛旓細RSA鍔犲瘑绠楁硶鏄竴绉嶅吀鍨嬬殑闈炲绉板姞瀵绠楁硶锛屽畠鍩轰簬澶ф暟鐨勫洜寮忓垎瑙f暟瀛﹂毦棰橈紝瀹冧篃鏄簲鐢ㄦ渶骞挎硾鐨勯潪瀵圭О鍔犲瘑绠楁硶锛屼簬1978骞寸敱缇庡浗楹荤渷鐞嗗伐瀛﹂櫌锛圡IT锛夌殑涓変綅瀛︾潃锛歊on Rivest銆丄di Shamir 鍜 Leonard Adleman 鍏卞悓鎻愬嚭銆傚畠鐨勫師鐞嗚緝涓虹畝鍗曪紝鍋囪鏈夋秷鎭彂閫佹柟A鍜屾秷鎭帴鏀舵柟B锛岄氳繃涓嬮潰鐨勫嚑涓楠わ紝灏卞彲浠ュ畬鎴...
  • 鎽樻妱涓庣悊瑙--RSA鍔犲瘑鍜宻sl
    绛旓細缁撹锛氬姞瀵嗗拰瑙e瘑浣跨敤鍚屾牱瑙勫垯锛堢畝绉"瀵嗛挜"锛夛紝杩欒绉颁负 "瀵圭О鍔犲瘑绠楁硶"RSA鏄竴绉闈炲绉板姞瀵鐨勭畻娉曪紝涓轰粈涔堜細鏈夎繖涓紝鍏堣瀵规垚鍔犲瘑锛屽绉板氨鏄悓涓涓瘑閽ュ姞瀵嗚В瀵嗭紝涓嶅畨鍏紝SSL鏄熀浜庨潪瀵圭О鍔犲瘑鐨勫師鐞嗭紝鍦ㄨ繖涔嬩笂杩樿繘琛屼簡瀵圭О鍔犲瘑鐨勬暟鎹紶杈 瀵规垚鍔犲瘑鐨勮瘽锛氾紙1锛夌敳鏂归夋嫨鏌愪竴绉嶅姞瀵嗚鍒欙紝瀵逛俊鎭繘琛屽姞瀵...
  • 闈炲绉板姞瀵绠楁硶鏈夊摢浜
    绛旓細闈炲绉板姞瀵绠楁硶涓昏鍖呮嫭RSA銆丒lgamal銆佽儗鍖呯畻娉曘丷abin銆丏-H銆丒CC锛堝嵆妞渾鏇茬嚎鍔犲瘑绠楁硶锛夌瓑銆傞鍏堬紝鎴戜滑鏉ョ悊瑙d粈涔堟槸闈炲绉板姞瀵嗙畻娉曘傞潪瀵圭О鍔犲瘑绠楁硶鏄竴绉嶄娇鐢ㄤ袱涓笉鍚屽瘑閽ヨ繘琛屽姞瀵嗗拰瑙e瘑鐨勭畻娉曪紝杩欎袱涓瘑閽ュ垎鍒槸鍏挜鍜岀閽ャ傚叕閽ユ槸鍏紑鐨勶紝浠讳綍浜洪兘鍙互鐢ㄥ叾杩涜鍔犲瘑鎿嶄綔锛屼絾瑙e瘑鍒欏繀椤讳娇鐢ㄤ笌涔嬮厤瀵圭殑绉侀挜...
  • rsa鏄绉拌繕鏄闈炲绉
    绛旓細rsa鏄闈炲绉板姞瀵绠楁硶闈炲绉板姞瀵嗙畻娉曢渶瑕佷袱涓瘑閽ワ細鍏紑瀵嗛挜锛坧ublickey锛夊拰绉佹湁瀵嗛挜锛坧rivatekey锛夈傚叕寮瀵嗛挜涓庣鏈夊瘑閽ユ槸涓瀵癸紝濡傛灉鐢ㄥ叕寮瀵嗛挜瀵规暟鎹繘琛屽姞瀵嗭紝鍙湁鐢ㄥ搴旂殑绉佹湁瀵嗛挜鎵嶈兘瑙e瘑锛涘鏋滅敤绉佹湁瀵嗛挜瀵规暟鎹繘琛屽姞瀵嗭紝閭d箞鍙湁鐢ㄥ搴旂殑鍏紑瀵嗛挜鎵嶈兘瑙e瘑銆傚洜涓哄姞瀵嗗拰瑙e瘑浣跨敤鐨勬槸涓や釜涓嶅悓鐨勫瘑閽ワ紝鎵浠ヨ繖绉...
  • RSA 鍔犲瘑绠楁硶(鍘熺悊绡)
    绛旓細褰撶劧瑕侀潬鍚勭鍔犲瘑绠楁硶銆傝璧峰姞瀵嗙畻娉曪紝澶у閮界煡閬撴湁鍝堝笇銆佸绉板姞瀵嗗拰闈炲绉板姞瀵嗕簡銆傚搱甯屾槸涓涓暎鍒楀嚱鏁帮紝鍏锋湁涓嶅彲閫嗘搷浣滐紱瀵圭О鍔犲瘑鍗冲姞瀵嗗拰瑙e瘑浣跨敤鍚屼竴涓瘑閽ワ紝鑰闈炲绉板姞瀵嗗姞瀵鍜岃В瀵嗚嚜鐒跺氨鏄袱涓瘑閽ヤ簡銆傜◢寰繁鍏ヤ竴浜涚殑锛岃繕瑕佽鍑洪潪瀵圭О鍔犲瘑绠楁硶鏈塂ES銆3DES銆丷C4绛夛紝闈炲绉板姞瀵嗙畻娉曡嚜鐒跺氨鏄RSA浜嗐傞偅涔堝綋...
  • 2019-06-10 瀵圭О鍔犲瘑 鍜闈炲绉板姞瀵
    绛旓細涓銆佸绉板姞瀵 AES鍔犲瘑 AES鍔犲瘑鏄竴绉嶉珮绾у姞瀵嗘爣鍑嗭紝鏄竴绉嶅尯鍧楀姞瀵嗘爣鍑嗐傚畠鏄竴涓绉板瘑鐮侊紝灏辨槸璇村姞瀵嗗拰瑙e瘑鐢ㄧ浉鍚岀殑瀵嗛挜銆俉PA/WPA2缁忓父鐢ㄧ殑鍔犲瘑鏂瑰紡灏辨槸AES鍔犲瘑绠楁硶銆備簩銆闈炲绉板姞瀵 RSA鍔犲瘑绠楁硶鏄竴绉嶉潪瀵圭О鍔犲瘑绠楁硶锛岄潪瀵圭О鍔犲瘑绠楁硶闇瑕佷袱涓瘑閽ワ細鍏叡瀵嗛挜鍜岀鏈夊瘑閽ャ傚叕閽ュ拰绉侀挜鏄厤瀵圭殑锛岀敤鍏挜...
  • 扩展阅读:在线rsa公钥加密 ... 对称加密算法有哪些 rsa ... rsa加密计算公式期末考试 ... 非对称加密为什么安全 ... rsa为什么是非对称加密 ... rsa加密的详细步骤 ... 我国首个非对称密码算法 ... 非对称加密优缺点 详解 ... des加密算法是非对称加密 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网