RSA加密算法分析
简介
RSA加密算法属于公钥加密算法或非对称加密算法,是目前使用最广泛的公钥密码算法之一,以其高安全性而著称。
算法原理
RSA加密算法原理包括密钥生成、加密和解密三个主要步骤。
密钥生成
- 选择两个大质数:
和 。 - 计算模数:
。 用于加密和解密 - 计算欧拉函数:计算
。 - 选择公钥指数:选择一个整数
e
,使得且与 互质,通常选择 。 - 计算私钥指数:计算
,使得 ,可以通过扩展欧几里得算法计算出 。
最终结果,公钥为
加密
给定明文
其中
解密
给定密文C,解密过程如下:
例题
BUUCTF rsa
下载附件,拿到两个文件:flag.enc、pub.key。
看名称就知道flag.enc应该是加密的flag,pub.key应该是密钥。
拿到公钥我们通过在线工具(密钥解析)解析分解公钥拿到以下信息。
公钥指数及模数信息:
key长度: | 256 |
模数: | C0332C5C64AE47182F6C1C876D42336910545A58F7EEFEFC0BCAAF5AF341CCDD |
指数: | 65537 (0x10001) |
即e=65537
,n
(将模数转换为十进制)
通过工具yafu分解模数来得到p和q。
1 |
|