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

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

2021-1-5 17:04
4108

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


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 3561
活跃值: (541)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
good
2021-1-7 11:11
0
游客
登录 | 注册 方可回帖
返回
//