非对称加密及RSA算法

非对称加密及RSA算法

 

最近在学习区块链相关的知识,发现其保证去中心化的一个重要的手段就是基于密码学中的非对称加密。

何为非对称加密?

在回答这个问题之前,我觉得有比说一下对称加密。所谓对称加密,就是加密和解密都使用同一个密钥。那么很显然,非对称加密就是加密和解密使用不同的密钥。

非对称加密有两个密钥:公钥和私钥,公钥是公开的,私钥是私密的,公钥加密的可以用私钥解开,私钥加密的东西可以用公钥解开,即加密和解密的密钥是不同的。举个例子,甲要发信息给乙,那么甲可以使用乙方的公钥对机密信息进行加密签名后发送给乙方,乙方收到数据后用自己的私钥对数据进行解密。

好了,非对称加密的概念我们很好理解,那么具体如何实现非对称加密呢?

常用的加密算法有RSAElgamal、背包算法、RabinD-HECC(椭圆曲线加密算法)。其中,使用最广泛的是RSA算法。下面我们就具体介绍一下RSA算法,主要参考博客安全体系(二)——RSA算法详解

RSA

算法来源

RSA公钥加密算法1977年由罗纳德·李维斯特Ron Rivest)、阿迪·萨莫尔Adi Shamir)和伦纳德·阿德曼Leonard Adleman)一起提出的。19877月首次在美国公布,当时他们三人都在麻省理工学院工作实习。RSA就是他们三人姓氏开头字母拼在一起组成的。

数学基础

质数:除了1和它自己不能被别的数整除,这个数就是质数。

互质:两个正整数,除了1以外,没有其他公因子,那么这两个数是互质的。

欧拉函数:对于任意一个正整数n,如果n=p1k1p2k2…prkr,其中,p1,p2,…,pk为质数,那么在小于n的正整数中,可以用下面的公式求解与n互质的数的个数:   

φ(n)=n(1-1/p1)(1-1/p2)…(1-1/pr)

欧拉定理:如果an互为质数,则aφ(n)≡1(mod n),其中φ(n)n的欧拉函数。

模反元素:如果两个正整数an互质,那么一定可以找到整数b,使得ab-1n整除,或者说abn除的余数是1。这时b被称为a的模反元素。用公式表示为ab≡1(mod n)

 

 

算法过程

密钥生成

1、选择两个不同的质数pq

2、计算两者的乘积为n,将n转换成二进制后,二进制的长度即为密钥的长度;

3、计算n的欧拉函数φ(n)

4、选择整个e,其中φ(n)>e>1,且eφ(n)互质;

5、计算eφ(n)的模范元素d

6、ne封装成公钥,将nd封装成私钥。

 

加密

me=c(mod n),其中m为需要加密的信息,c为加密后的信息。

 

解密

me=c(mod n),其中c为解密前的信息,m为解密后的信息。

 

 

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值