首页
社区
课程
招聘
[分享]Android逆向——RSA加密算法
2021-1-5 17:04 3501

[分享]Android逆向——RSA加密算法

2021-1-5 17:04
3501

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


[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

收藏
点赞0
打赏
分享
最新回复 (1)
雪    币: 3561
活跃值: (541)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
朱年吉祥 2021-1-7 11:11
2
0
good
游客
登录 | 注册 方可回帖
返回