RSA算法简述

原创 2004年10月27日 17:01:00

RSA算法简述

http://pajhome.org.uk/crypt/rsa/rsa.html

1.密钥生成:

1.1 生成两个大的质数(素数)p和q.(质数就是只能被自己和1整除的数)
1.2 n=p*q
1.3 m=(p-1)*(q-1)
1.4 生成较小的数e, 使e与m互质

(特别借用隔壁豆豆的小学数学课本找出:
互质的概念其实和质数没有什么关系,互质的定义为:如果非0整数a,b的
最大公约数为1,则说这两个数互质)

1.5 生成d,使d*e%m=1,%代表求余数.

至此公钥为e和n,私钥为d和n. 至于p,q,m马上丢弃

2.加密过程:
产生密文c的公式为:c=p^e%n, 即p的e次方除以n求余,可见加密是用公钥进行的,加密只牵涉到明文
和公钥.

至此可以把密文传出去了,这样就是被截获也搞不懂原文是什么.

3.解密过程:
收到密文c后
产生明文(解密)p的公式为:p=c^d%n,即c的d次方除以n求余.可见解密只牵涉到私钥和密文.

因此从整个过程来看,只要你保管好私钥,不泄密,可以放心的把密文和公钥公开.

举个例子:
本例用较小的质数为例,以计算方便,小质数并不安全

1.密钥生成:

1.1 p=7, q=19
1.2 n=p*q=7*9=133
1.3 m=(p-1)*(q-1)=(7-1)*(19-1)=108
1.4 生成较小的数e,使e与108互质,2,3,4都不对,5是最小的,于是e=5
1.5 生成d,使d*e%m=1,d*5%108=1,d*5除以108余数为1,...于是算出d=65

至此公钥e=5,n=133.私钥d=65,n=133.密钥计算完毕

2.加密过程:
RSA的原则是被加密的信息应该小于p和q的较小者,所以在这个例子中,我们要指明被加密的数字要小于
7. 于是我们取6为例

加密:c=p^e%n=6^5%133=7776%133=62, 于是密文为62. 把62传出去.

(我想同时应把公钥也传出去,好在收到时知道对应的是那个私钥)


3.解密过程:
(我想接收者收到密文和公钥,找到对应的私钥)

解密: p=c^d%n=62^65%133=62*62^64%133 经过好一阵子运算,余数为6,参见
(http://pajhome.org.uk/crypt/rsa/rsa.html),

RSA加密算法的基本流程

本文只是说一下RSA加密的流程,对于其他的不做过多的介绍! 首先找到两个大素数 p,q 计算n = p*q , = φ(n)(p-1)*(q-1),其中φ(n)表示的是n的欧拉函数值 任意选择一个满足...
  • woshinannan741
  • woshinannan741
  • 2016年10月11日 18:25
  • 1407

des、MD5、RSA加密算法优缺点

美国数据加密标准(DES)是对称密码算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立。密钥较短,加密处理简单,加解密速度快,适用于加密大量数据的场合。 RSA是非对称算法,加密密钥和解密密钥是...
  • liujn347
  • liujn347
  • 2014年04月23日 01:20
  • 1484

密码学:用例子和程序说明RSA算法过程

本文用简单的例子说明RSA算法过程。
  • ddk3001
  • ddk3001
  • 2017年01月17日 19:35
  • 2174

RSA算法的c++实现(简化版)

#include #include #include using namespace std; //encrypt void encrypt(char *str,int pk,int n,int *a...
  • wjy1025104554
  • wjy1025104554
  • 2016年11月15日 10:30
  • 1247

java 使用RSA算法进行加密和解密

一、  生成公钥和私钥公钥可以对外公开,供其他人加密使用,而把私钥秘密保存用于解密。下面程序产生公钥和私钥,并将他们分别保存在文件中。import java.io.*; import java.sec...
  • dreamingjay
  • dreamingjay
  • 2011年05月10日 11:20
  • 715

RSA 算法的使用

RSA 介绍RSA 算法是非对称密码算法中非常经典的一种算法,使用率非常高,一般用于数据加密和数字签名。RSA 算法加密的过程是怎样的呢?首先由接收方实例化密钥对,然后将自己的公钥公布出去,这就相当于...
  • Hwaphon
  • Hwaphon
  • 2016年08月13日 09:52
  • 3159

RSA算法及其安全性

RSA加密原理: 1. 数据。    数据在计算机中,其实就是字节串。    将被加密的数据,分割成一定长度的数据块,每一块就是一个bit串。    将这个比特串,看成一个二进制整数—...
  • crazycoder8848
  • crazycoder8848
  • 2013年12月27日 10:40
  • 3881

RSA算法加密/解密工具类

import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java...
  • mengzhongxue
  • mengzhongxue
  • 2016年08月25日 14:44
  • 255

JAVA实现RSA算法

1.关于RSA算法,主要就是要掌握好公钥和私钥的使用。首先,公钥是由N,E组成,私钥由N,D组成。那个下面我,先将java生成密钥对的方法写出来: public void createRsaKeyP...
  • zhouy6020975
  • zhouy6020975
  • 2017年04月20日 17:42
  • 358

RSA算法浅析

概述   RSA算法是第一个能用于加解密和数字签名的非对称加密算法。RSA的命名是以其提出者姓氏的首字母组合而成,Ron Rivest、Adi Shamir和Leonard Adleman。关于...
  • zouliping123
  • zouliping123
  • 2012年11月17日 11:04
  • 1062
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:RSA算法简述
举报原因:
原因补充:

(最多只允许输入30个字)