‘壹’ des算法与rsa算法区别
DES算法与RSA算法区别:
1、DES算法:
优点:密钥短,加密处理简单,加密解密速度快,适用于加密大量数据的场合。
缺点:单键,不能从一个键推导出另一个键。
2、RSA算法:
优点:应用广泛,加密密钥与解密密钥不一样,一般的加密密钥称为私钥。解密密钥称为公钥,私钥加密后只能用公钥解密,当然也可以用公钥加密,用私钥解密。
缺点:密钥大小大,加密解密速度慢,一般用于加密少量数据,如DES密钥。
(1)rsa的加密优势扩展阅读:
一、安全性:
RSA的安全性依赖于大数分解,但它是否等同于大数分解还没有从理论上得到证明,因为没有证据证明破解RSA一定是大数分解。
如果有一种算法不需要分解大数,则必须将其修改为分解大数的算法。RSA算法的一些变体已被证明等价于大数分解。
不管怎样,分解n是最明显的攻击方式。把大素数分解到多个小数点后是可能的。因此,模n必须更大,这取决于具体的应用。
二、算法定义:
1、DES算法定义:是对称算法,加密密钥和解密密钥是相同的。
2、RSA算法定义:非对称算法,加密密钥与解密密钥是不同的,一般的加密密钥称为私钥,解密密钥称为公钥,私钥加密只能用于解密,当然也可以用于加密,解密用私钥。
‘贰’ RSA加密技术的特点
加密方和解密方使用相同的加密算法,但是使用不同的密钥.
‘叁’ RSA加密原理
RSA加密是一种非对称加密。可以在不直接传递密钥的情况下,完成解密。这能够确保信息的安全性,避免了直接传递密钥所造成的被破解的风险。是由一对密钥来进行加解密的过程,分别称为公钥和私钥。公钥加密--私钥解密,私钥加密--公钥解密
在 整数 中, 离散对数 是一种基于 同余 运算和 原根 的一种 对数 运算。而在实数中对数的定义 log b a 是指对于给定的 a 和 b ,有一个数 x ,使得 b x = a 。相同地在任何群 G 中可为所有整数 k 定义一个幂数为 b K ,而 离散对数 log b a 是指使得 b K = a 的整数 k 。
当3为17的 原根 时,我们会发现一个规律
对 正整数 n,欧拉函数是小于或等于n的正整数中与n 互质 的数的数目(因此φ(1)=1)。有以下几个特点
服务端根据生成一个随机数15,根据 3 15 mod 17 计算出6,服务端将6传递给客户端,客户端生成一个随机数13,根据 3 13 mod 17 计算出12后,将12再传回给服务端,客户端收到服务端传递的6后,根据 6 13 mod 17 计算出 10 ,服务端收到客户端传递的12后,根据 12 15 mod 17 计算出 10 ,我们会发现我们通过 迪菲赫尔曼密钥交换 将 10 进行了加密传递
说明:
安全性:
除了 公钥 用到 n 和 e ,其余的4个数字是 不公开 的(p1、p2、φ(n)、d)
目前破解RSA得到的方式如下:
缺点
RSA加密 效率不高 ,因为是纯粹的数学算法,大数据不适合RSA加密,所以我们在加密大数据的时候,我们先用 对称加密 算法加密大数据得到 KEY ,然后再用 RSA 加密 KEY ,再把大数据和KEY一起进行传递
因为Mac系统内置了OpenSSL(开源加密库),所以我们开源直接在终端进行RSA加密解密
生成RSA私钥,密钥名为private.pem,密钥长度为1024bit
因为在iOS中是无法使用 .pem 文件进行加密和解密的,需要进行下面几个步骤
生成一个10年期限的crt证书
crt证书格式转换成der证书
‘肆’ RSA 钬斺 缁忓吀镄勯潪瀵圭О锷犲瘑绠楁硶
鎺㈢储RSA锷犲瘑浼犲囷细闱炲圭О锷犲瘑绠楁硶镄勫ゥ绉
鍦ㄥ瘑镰佸︾殑鐟板疂涓锛孯SA绠楁硶浠ュ叾镫鐗圭殑闱炲圭О镐х嫭镙戜竴甯溿傚畠灏卞儚涓鎶婄炵樼殑阍ュ宠锛岃╀俊鎭鍦ㄧ湅浼兼棤瑙g殑璋滈树腑瀹夊叏绌挎銆备竴镞︽帉鎻′简娆ф媺鍑芥暟銆佹ф媺瀹氱悊鍜岄嗗厓镄勭簿楂掳纴RSA锷犲瘑涓庤В瀵嗙殑铡熺悊灏嗗彉寰楄交钥屾槗涓俱傝╂垜浠涓璧锋彮寮杩欎釜锷犲瘑绠楁硶镄勭炵橀溃绾便
锷犲瘑锛屾槸灏嗘槑鏂囬氲繃鐗瑰畾绠楁硶鍙桦够锛屼娇涔嫔湪链鎺堟潈钥呴溃鍓嶅彉寰椾笉鍙璇汇傝岃В瀵嗭纴鍒欐槸杩欎釜杩囩▼镄勯呜繍绠楋纴鎭㈠嶅师濮嬩俊鎭銆傛槑鏂囦笌瀵嗘枃锛屽氨镀忎竴瀵瑰瘑镰佺殑铡熷舰涓庡彉褰锛岄氲繃锷犲瘑绠楁硶镄勯瓟娉曪纴鍙桦缑闅句互瑙﹀强銆
鍦ㄥ姞瀵嗘坠娈典腑锛屽圭О涓庨潪瀵圭О鏄涓ょ嶆埅铹朵笉钖岀殑鏂瑰纺銆傚圭О锷犲瘑濡侫ES鍜娈ES锛屼娇鐢ㄥ悓涓鎶婂瘑阍ヨ繘琛屽姞瑙e瘑锛岄珮鏁堜絾瀵嗛挜绠$悊澶嶆潅銆傜浉鍙嶏纴RSA镄勯潪瀵圭О镐т互鍏阍ュ拰绉侀挜镄勫囧欑粍钖堜负鐗圭偣锛屼竴涓鍏寮锛屼竴涓淇濆瘑锛岀‘淇濅简淇℃伅浜ゆ崲镄勫畨鍏ㄣ
RSA绠楁硶镄勬牳蹇冨熀浜庝竴涓鏁板﹂毦棰桡细绱犳暟镄勪箻绉鐪嬩技瀹规槗鐢熸垚锛屼絾鍒呜В鍗村纾甯稿汹闅俱傛f槸杩欎釜铡熺悊锛屾瀯鎴愪简RSA锷犲瘑镄勫潥锲哄熀鐭炽傚叾杩囩▼鍖呮嫭鐢熸垚涓瀵瑰签澶х殑绱犳暟锛岃$畻涔樼Н骞舵垒鍒板畠浠镄勯嗗厓锛屽舰鎴愬叕阍ュ拰绉侀挜杩椤瑰瘑阍ヤ即渚c
锷犲瘑镞讹纴鏄庢枃阃氲繃鍏阍ョ殑骞傝繍绠椾笌妯¤繍绠楋纴鍙樻垚鐪嬩技镞犺抗鍙寰镄勫瘑鏂囷绂钥岃В瀵嗭纴鍒欐槸绉侀挜镄勮亴璐o纴杩愮敤钖屾牱镄勬暟瀛﹂瓟娉曞皢瀵嗘枃杩桦师涓哄师濮嬩俊鎭銆俣SA镄勫阀濡栾捐★纴璁╁畨鍏ㄥ拰鏁堢巼镓惧埌浜嗗畬缇庣殑骞宠銆
绉侀挜瑙e瘑镄勫叧阌鍦ㄤ簬锛屽畠纭淇濅简瀵嗘枃缁忚繃骞傚彇妯″悗绛変簬鏄庢枃銆傛棤璁烘槸浜掔礌杩樻槸闱炰簰绱犵殑𨱍呭喌锛屾ф媺瀹氱悊鍜岄嗗厓镄勮繍鐢锛岄兘淇濊瘉浜呜繖涓杩囩▼镄勬g‘镐с傝孯SA镄勫畨鍏ㄦу湪浜庯纴瑕佺牬瑙e畠锛屽氨镀忚瘯锲句粠涓鍫嗘暟瀛椾腑镓惧嚭闅愯棌镄勯挜鍖欙纴闇瑕佸瑰ぇ鏁存暟杩涜屽洜鏁板垎瑙o纴杩椤湪褰揿墠镄勮$畻鑳藉姏涓嫔嚑涔庢槸涓嶅彲鑳界殑鎸戞垬銆
镐荤粨𨱒ヨ达纴RSA绠楁硶锲犲叾闱炲圭О镐э纴链夋晥鍦拌В鍐充简瀵圭О锷犲瘑镄勫悓姝ラ梾棰桡纴涓轰俊鎭瀹夊叏鎻愪緵浜嗗己澶х殑淇濇姢銆傚敖绠$牬瑙g殑闅惧害宸ㄥぇ锛屼絾姝f槸杩欑嶆写鎴樻э纴浣垮缑RSA鎴愪负鐜颁唬阃氢俊棰嗗烟涓嶅彲鎴栫己镄勫姞瀵嗗伐鍏枫
‘伍’ RSA和DES算法的优缺点、比较
DES算法:
优点:密钥较短,加密处理简单,加解密速度快,适用于加密大量数据的场合。
缺点:密钥单一,不能由其中一个密钥推导出另一个密钥。
RSA算法升启知:
优点:应用广泛,加密密钥和解密密钥不一样,一般加密密钥称为私钥。解密密钥称为公钥,私钥加密后只能用公钥解密,,当然也可以用公钥加密,用私钥解密。
缺点:密钥尺寸大,加解密速度慢,一般用来加密少量数据,比如DES的密钥。
(5)rsa的加密优势扩展阅读:
安全性
RSA的安全性依赖于大数分解,但是否等同于大数分解一直未能得到理论上的证明,因为没有证明破解RSA就旁祥一定需要作大数分解。假设存在一种无须分解大数的算法,那它肯定可以修改成为大数分解算法。RSA的一些变种算法已被证明等价于大数分解。
不管怎样,分解n是最显然的攻击方法。人们已能分解多个十进制位的大素数。因此,模数n必须选大一些吵消,因具体适用情况而定。