公钥密码

1.对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key)。

(单锁箱模型)缺点:

(1)系统开放性差,需要可靠的密钥传递渠道;

(2)密钥管理量困难;

(3)难以实现数字签名;

(4)难以实现抗抵赖的安全需求。

优点:

(1)加解密密钥相同,或可相互导出;

(2)算法效率较高

(检举箱模型)优点:

1.信道安全;

2.钥匙管理方便;

公钥密码:

加解密运算复杂,不宜做数据加密;

存在特有的“可能报文攻击”的威胁。

基本思想

加密密钥和解密密钥不同。

对公钥密码的要求

(1)生成密钥对的计算很容易;

(2)发送方用接收方B的公钥PK生成密文c,计算上是很容易的;

(3)接收方B用自己的私钥SK对c解密,在计算上是很容易的;

(4)攻击者通过B的公钥PK计算出私钥SK在计算上不可行;

(5)攻击者通过B的公钥PK计算出明文在计算上不可行;

函数

严格单向函数:给定x计算y=f(x)是容易的,给定y,计算x使y=f(x)很难,没有实际意义。

陷门单向函数:给定x计算y=f(x)是容易的,给定y,k,计算x使y=f(x)很容易。

应用

(1)常规密钥分发和协商;

(2)数字签名;

(3)加密/解密

RSA密码体制

数学基础是欧拉定理,安全性建立在大整数的因子分解的困难性

ios公钥和指纹 公钥加密优缺点_公钥密码

基本性质

(1)加密和解密运算具有可交换性;

D(E(m))=E(D(m))mod n

(2)加解密算法的有效性;

(3)在计算上由公开的加密密钥不能求出解密密钥

RSA本质上是一个单表替代算法

RSA的实现

ios公钥和指纹 公钥加密优缺点_ios公钥和指纹_02

(1)如何快速计算a^m mod n

平方-乘法【没有什么局限性】

ios公钥和指纹 公钥加密优缺点_加解密_03

中国剩余定理【必须知道p,q,无法实际应用】

ios公钥和指纹 公钥加密优缺点_ios公钥和指纹_04

素数检测

定理:若p是一个奇素数,则方程x^2=1 mod p的解只有 x ≡ 1 或x ≡-1(有限域上的平方根定理,亦称“二次探测定理”)

逆否命题: 若程x^2=1 mod p的解不只有 x ≡ 1 或x ≡-1,P不是奇素数

费马小定理:a^(p-1)=1 mod p

ios公钥和指纹 公钥加密优缺点_公钥密码_05

常用的e: 3,17,2^16+1=65537

一般的,选取一个素数的过程如下:
1)随机产生一个奇数 n(例如使用伪随机数产生器);
2)用某种概率性算法(如 Miller-Rabin 算法)对 n 进行一次素性检验,如果 n 没有通
过检验,转到步骤 1;
3)重复步骤 2 足够多次,如果 n 都通过了检测,则认为 n 为素数。

对RSA的攻击

(1)选择密文攻击

获取公钥加密的密文c,处理后发给发送方签名,把签名再变换一下就是明文

(2)小加密指数e攻击

如果有相同的消息要传送给多个实体,就不能使用小的加密指数。

应用RSA体制中的一些问题

(1)不同用户不可共享模n(存在公共模数攻击)

(2)不同的用户选用的素数不能相同

用欧几里得算法求公因数很快

(3)RSA的不动点

一般不能直接应用 RSA 进行加解密 ,由于 RSA 算法是决定性算法(即对相同的明文始终会给出相同的密文)和具有特殊的代数结构等原因,用 RSA 算法进行直接加密在很多环境下是不安全的。

EIGamal算法

特点:

(1)加密相同的明文可能会有不同的密文

(2)密文空间比明文空间大,明文空间Z,密文空间ZxZ

安全性:1.建立在计算Zp上离散对数的困难性上;2.要使用不同的随机数来加密,3.随机数K不可测

ios公钥和指纹 公钥加密优缺点_密码学_06


ios公钥和指纹 公钥加密优缺点_密码学_07

RSA和EIGamal的对比

“公钥加密,私钥鉴别”----不是所有公钥密码都有这种特性,EIGamal没有

椭圆曲线密码体制ECC

多数公钥密码使用非常大的数或多项式,椭圆曲线是一个代替,可以用更小的尺寸得到同样的安全性.。ECC 的安全性基于椭圆曲线离散对数问题的难解性

椭圆曲线不一定是椭圆,是

y2+a1xy+a2y=x3+a3x^2+a4x=a5
所描述的曲线。其中a1, a2, a3, a4, a5是满足一定条件的实数。集合包括曲线上的点连同无穷远点O的集合。不同数域上的椭圆曲线的表示和运算是不相同的。

优点:密钥长度小;算法性能好

加法运算

(1)若 P、Q、R 三点位于一条直线上,则定义其和为零点(zero point)或无穷点(point at infinity): P + Q + R = O ,P+0=P

(2)ECC上点的加法逆元是:具有相同 x 坐标和负 y 坐标的点。

(3) ECC上的点加定义: 对ECC上 x 坐标不同的两点P、Q, 由

P + Q + R=O 有: P+Q =-R

(4) ECC上的倍点运算定义: P + P = 2P = ?
在ECC上点P做一条切线,设切线与对ECC交于点R

定义: 2P = P + P = -R 类似有,3P= P + P + P , kP= P + P + P + …+ P

定义1:设E是有限域Zp上的椭圆曲线,P是E上一点,若n是满足 nP=P+P+P+……+P=O的最小正整数,则称n为点P的阶

ios公钥和指纹 公钥加密优缺点_ios公钥和指纹_08

ios公钥和指纹 公钥加密优缺点_密码学_09

MV公钥密码体制

椭圆曲线,具有非确定性

在M-V公钥密码体制中β=d𝜶,由公开的系统参数基点𝜶和公钥β计算解密密钥𝒅是ECC上计算离散对数的问题,当基点𝜶的阶足够时是一个困难问题。

总结

误区:

1.公开密钥密码算法更安全【误】

2.公开密钥密码使对称密钥密码过时了;【误】

3.公钥的分发是简单和一目了然的【误】

答题:

1.可利用平方-乘法算法进行RSA加密和解密的快速计算。【正确】

2.利用中国剩余定理可以实现RSA的快速加密和解密计算。【错误,只能用来解密】

3.RSA加密算法实现时,不同用户选用的素数p,q不能都相同,应至少有一个不同。【误区,p,q都不能相同】

4.在用公钥密码体制实现信息传输的机密性安全服务时,加密与解密算法均应使用信息发送方的密钥对。【错误,应该用接收方的】

答题:

1.可利用平方-乘法算法进行RSA加密和解密的快速计算。【正确】

2.利用中国剩余定理可以实现RSA的快速加密和解密计算。【错误,只能用来解密】

3.RSA加密算法实现时,不同用户选用的素数p,q不能都相同,应至少有一个不同。【误区,p,q都不能相同】

4.在用公钥密码体制实现信息传输的机密性安全服务时,加密与解密算法均应使用信息发送方的密钥对。【错误,应该用接收方的】

5.对于椭圆曲线上任意一点P,设其逆元为−P,则有P+(−P)=(0,0)【错误,不是任意一点】