公钥密码
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密码体制
数学基础是欧拉定理,安全性建立在大整数的因子分解的困难性上
基本性质
(1)加密和解密运算具有可交换性;
D(E(m))=E(D(m))mod n
(2)加解密算法的有效性;
(3)在计算上由公开的加密密钥不能求出解密密钥
RSA本质上是一个单表替代算法
RSA的实现
(1)如何快速计算a^m mod n
平方-乘法【没有什么局限性】
中国剩余定理【必须知道p,q,无法实际应用】
素数检测
定理:若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
常用的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不可测
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的阶
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)【错误,不是任意一点】