Android逆向——RSA加密算法
1、RAS算法简介RSA是最流行的非对称加密算法之一。也被称为公钥加密。它是由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)在1977年一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。
RSA是非对称的,也就是用来加密的密钥和用来解密的密钥不是同一个。和DES一样的是,RSA也是分组加密算法,不同的是分组大小可以根据密钥的大小而改变。如果加密的数据不是分组大小的整数倍,则会根据具体的应用方式增加额外的填充位。
RSA作为一种非对称的加密算法,其中很重要的一特点是当数据在网络中传输时,用来加密数据的密钥并不需要也和数据一起传送。因此,这就减少了密钥泄露的可能性。RSA在不允许加密方解密数据时也很有用,加密的一方使用一个密钥,称为公钥,解密的一方使用另一个密钥,称为私钥,私钥需要保持其私有性。
RSA被认为是非常安全的,不过计算速度要比DES慢很多。同DES一样,其安全性也从未被证明过,但想攻破RSA算法涉及的大数(至少200位的大数)的因子分解是一个极其困难的问题。所以,由于缺乏解决大数的因子分解的有效方法,因此,可以推测出目前没有有效的办法可以逆向RSA。
2、RSA算法的原理
RSA算法基于的原理,基本上来说,加密和解密数据围绕着模幂运算,这是取模计算中的一种。取模计算是整数计算中的一种常见形式。x mod n的结果就是x / n的余数。比如,40 mod 13 = 1,因为40 / 13 = 3,余数为1。模幂运算就是计算ab mod n的过程。
3、eclipse中讲解PBE算法的代码
1)分析主类Mainactivity
**主要分析这几个方法:**
encryptByPrivateKey:私钥加密;
decryptByPublicKey:公钥解密
encryptByPublicKey:公钥加密;
decryptByPrivateKey:私钥解密
2)分析RSA类
关注这几个方法:
generateKeyPair:生成密钥对
getPublic:获取公钥
getPrivate:获取私钥
PKCS8EncodedKeySpec:根据给定的编码密钥创建一个新的 PKCS8EncodedKeySpec
KeyFactory:密钥工厂用于将密钥(Key 类型的不透明加密密钥)转、换成密钥规范(底层密钥材料的透 明表示)
generatePublic:根据提供的密钥规范(密钥材料)生成公钥对象
小结
1、介绍RSA相关的算法以及实现原理。
2、在eclipse中分析了RSA算法的代码。
好高大上啊,虽然目前还不懂,慢慢学习一下,感谢分享。 我不知为什么没人回帖,但我看了也还是不懂 感谢大佬分享 感谢楼主分享
谢谢分享 [快捷回复]-学破解防逆向,知进攻懂防守! RSA这个加密算法内容其实还挺多的,讲下去估计要好几个帖子{:5_117:} 谢谢分享 谢谢大神的奉献