1122cf 发表于 2021-1-5 17:06

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算法的代码。

fcguo800 发表于 2021-2-25 11:07

好高大上啊,虽然目前还不懂,慢慢学习一下,感谢分享。

小虫儿 发表于 2021-5-7 16:50

我不知为什么没人回帖,但我看了也还是不懂

拿着雪糕 发表于 2022-1-28 12:35

感谢大佬分享

hetao8003200 发表于 2022-1-28 13:32

感谢楼主分享

PDWORD 发表于 2022-1-29 13:19


谢谢分享

1019045978 发表于 2022-1-29 14:12

[快捷回复]-学破解防逆向,知进攻懂防守!

summersn0w 发表于 2022-1-29 14:56

RSA这个加密算法内容其实还挺多的,讲下去估计要好几个帖子{:5_117:}

IPGVh84539 发表于 2022-2-22 14:58

谢谢分享

alYhPoEXkdx 发表于 2022-2-22 16:26

谢谢大神的奉献
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: Android逆向——RSA加密算法