对称加密与公钥加密(下)

原创 2017年01月03日 22:10:02

在本篇博文中,我将讲解公钥密码以及公钥密码与对称称密码的比较

一.公钥密码

1、什么是公钥密码

公钥密码这种,密钥分为两种,加密密钥与解密密钥,发送用加密密钥对消息进行加密,接收者用解密密钥对密文进行解密。一般情况下,加密密钥是公开的,称为公钥,解密密钥是非公开的,称为私钥。公钥与私钥是一一对应的。

这样,阿狗可能拥有阿猫的公钥,但公钥并不是解密的密钥,故而阿狗无法完成解密操作

2.公钥密码存在的问题

公钥密码解决了密钥配送问题,但并不意味着它能解决所有的问题,因为我们要判断所得到的公钥是否正确合法,这个问题被称为公钥认证问题。这个问题这里我并不打算解决,若想知道答案,最好的方法是关注下面的博客

此外,公钥密码还有一个问题就是,它的处理速度只有对称密码的几百分之一,关于这个问题,,关注博客吧,下一篇博客会讲。

3.RSA

RSA是一种广泛使用的公钥密码,可以被用于公钥密码和数字签名

3.1.RSA加密
在RSA中,明文、密钥、密文,RSA可以用下面这个公式来加密


E和N是RSA的加密密钥,也就是说,E和N组合就是公钥,一般会写成“公钥是(E, N)或者“公钥{(E, N}”

3.2.RSA的解密

RSA的解密和加密一样简单,也是一个公式


D和N的组合是私钥,只有知道D和N两个数组合起来才能够完成解密运算


3.3生成密钥对
E和N是公钥,D和N是私钥,因此求E、D和N这三个数就是生成密钥。RSA密钥生成步骤如下
(1).求N
(2).求L
(3).求E
(4).求D

(1).求N
a.准备两个很大的质数p和q (用伪随机数生成器生成)
b.N = p x q (p和q为质数)

(2).求L
L=lcm(p-1, q-1) (L是p-1和q-1的最小公倍数)

(3).求E
gcd(E, L) = 1(1 < E < L)    E和L的最大公约数必须为1(E和L互质)
到目前为止我们已经求出E和N,也就是说我们已经生成密钥中的公钥

(4).求D
数D是由数E计算得到的。D、E和L必须具备以下关系
1 < D < L
E x D mod L = 1
到此为止我们也可以生成私钥啦。整个过程如下图



4.对RSA的攻击
咱们先来整理一下攻击者知道那些信息,不知道那些信息
【攻击者知道的信息】
密文:可以通过窃听来获取
数字E和N:公开的信息,因此破译者知道E和N
【密码破译者不知道的信息】
明文:需要破译的内容
数字D:私钥中至少D是不知道的东西
其他:p、q和L
破解方式一
暴力破解D:D的长度足够长的话,想找D的值难度很大,这种方法不现实。
破解方式二
通过E和N求出D:E x D mod L = 1; L = lcm(p-1, q-1),p和q无法知道,N=p x q,可以对N做质因数分解,但是如果N是大整数,现在还没有很好的算法,这种方法不现实;但如果质因数分解求q和p,恭喜你,你已经破解RSA啦
破解方式三
通过推测p和q:这还是有可能的,如果推测出来,也恭喜你,你已经破解RSA啦

5.中间人攻击
这种方法虽然不能破解RSA,但却是一种针对机密性的有效攻击,看下图你就明白


6.选择密文攻击
选择密文攻击一般是通过提示信息去尝试解密,使用RSA-OAEP,RSA-OAEP会在加密明文前生成一些认证信息,包括明文的散列值和一定数量的0,然后再对填充后的明文用RSA加密。这样攻击者就无法得到解密提示的相关信息

7.其他公钥密码
(1)ElGamal方式
(2)Rabin方式
(3)椭圆曲线密码


版权声明:本文为博主原创文章,未经博主允许不得转载。

由Git的SSH公钥到非对称加密

那么SSH公钥到底是什么,为什么要添加SSH公钥呢,怎么生成SSH公钥呢? 希望能通过这一篇文章,将我理解的学习到的知识跟大家分享一下。 公钥私钥,是非对称加密中的概念,是相对于对称加密而言的。 所谓...

公钥密码学中的素数以及对称加密

转来的科普文章。    密码学,一向被人们认为门槛很高,特别高端...这也是实际,但是这决不意味着普通人无法了解它的精髓,对于喜欢画圆的人来讲,即便是理解了密码技术背后的哪怕一点理论...
  • ssmile
  • ssmile
  • 2016年12月01日 16:31
  • 821

2.Java安全之公钥与私钥-非对称加密

公钥与私钥机制属于非对称加密的范畴,非对称是相对于对称加密而言的,对称加密用于加密与解密的密钥是同一把,而非对称加密则用于加密与解密的密钥不相同,一个公开,称为公钥;一个保密,称为私钥,公钥与私钥必须...

非对称加密之公钥、私钥

非对称加密需要公钥和私钥。 公钥和私钥可以互相解密,并且加密过程是不可逆的,即经公钥加密后的文件只有对应私钥可解开,经私钥加密的秘钥也只有对应的公钥才可以解开。 用私钥加密可以证明文件是出于原作者...

公钥密码学中的素数以及对称加密

密码学,一向被人们认为门槛很高,特别高端...这也是实际,但是这决不意味着普通人无法了解它的精髓,对于喜欢画圆的人来讲,即便是理解了密码技术背后的哪怕一点理论,也是激动人心的。声明和悲叹最近,一次联调...
  • dog250
  • dog250
  • 2014年08月31日 10:34
  • 6799

浅谈IM软件业务知识——非对称加密,RSA算法,数字签名,公钥,私钥

概述 首先了解一下相关概念:RSA算法:1977年由Ron Rivest、Adi Shamirh和LenAdleman发明的,RSA就是取自他们三个人的名字。算法基于一个数论:将两个大素数相乘...
  • hherima
  • hherima
  • 2014年06月17日 15:46
  • 3325

java 非对称加密(公钥加密)

我夕 在实际的应用中单单只有对称加密是不够的,更多的时候是对称加密与非对称加密结合使用,非对称加密(公钥加密)特点速度慢、加密和解密的钥匙不相同,加密的方式是:  * 公钥加密-私钥解密  ...

对称加密与公钥加密(中)

分组密码 一、分组密码的模式 分组密码:是每次只能处理特定长度的一块数据的一类算法,这里的"一块"就称为分组。此外,一个分组的比特数就称为比特长度;DES和3DES分组长度都是64比特,AES的分组长...

对称加密,单向加密,公钥加密

一、对称加密:数据发送和接收方用同一个秘钥同一个转换算法,不同方之间的秘钥不同(缺点密码太多,不容易记)。   二、单向加密算法:提取发送数据的特征码,随数据发送,接收方根据特征码校验。特点:1.输入...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:对称加密与公钥加密(下)
举报原因:
原因补充:

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