非对称加密算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
k(rG)=M+rK-r(kG)=M,再对点M进行解码就可以得到明文。
椭圆曲线上的加密/解密
在这个加密通信中,如果有一个偷窥者H, 他只能看到Ep(a,b)、K、G、C1、C2 而通 过K、G求k或通过C2、G求r 都是相对困难 的。因此H无法得到A、B间传送的明文信 息。
28
椭圆曲线密码性能分析
定 义
Fp上的椭圆曲线有同样的加法
y2=x3+x+1(mod 23)的图
24
Fp上的椭圆曲线加法
Fp上的椭圆曲线同样有加法 :
1. 无穷远点O∞是零元,有O∞+O∞=O∞,O∞+P=P 2. P(x,y)的负元是 (x,-y),有P+(-P)= O∞ 3. P(x1,y1),Q(x2,y2)的和R(x3,y3) 有如下关系: x3≡k2-x1-x2(mod p) y3≡k(x1-x3)-y1(mod p) 其中若P=Q 则 k=(3x2+a)/2y 若P≠Q,则k=(y2y1)/(x2-x1)
非对称加密算法
12
非对称密钥加密算法
加密系统的加密和解密Байду номын сангаас别采用不同的密钥实现,且不可能互相导出, 则称为非对称密钥体制; 一对密钥分为公钥私钥,公钥用来加密,私钥用于解密,公钥是公开 的,密钥是用户自己秘密保存。信息发送者利用接收者的公钥对数据 进行加密,然后发送给接收者,接收者使用自己的私钥进行解密; 优点:密钥管理相对简单,可以实现数字签名,从而实现不可抵赖的 安全目标; 缺点:为了达到足够的安全强度, 需要增加密钥长度,运算速度和 处理效率较低,不适用处理能力 有限的情况; 典型算法:RSA(大质数分解) ECC(离散对数计算)
21
椭圆曲线中的数乘
k个相同的点P相加,记作kP。如下图: P+P+P=2P+P=3P。
22
椭圆曲线不对称
提醒大家注意一点,以前提供的图像可能会给大 家产生一种错觉,即椭圆曲线是关于x轴对称的。 事实上,椭圆曲线并不一定关于x轴对称。如下图:
23
密码学中的椭圆曲线
实数域中的椭圆曲线是连续的,因为实数域连续的;
19
椭圆曲线上的加法
运算法则:任意取椭圆曲线上两点P、Q (若P、Q两点重 合,则做P点的切线)做直线交于椭圆曲线的另一点R’, 过R’做y轴的平行线交于R。我们规定P+Q=R。
20
椭圆曲线上加法详解
这里的+不是实数中普通的加法,而是从普通加法中抽象出来的加法, 具备普通加法的一些性质,但具体运算法显然与普通加法不同。 根据这个法则,可以知道椭圆曲线无穷远点O∞与椭圆曲线上一点P的 连线交于P’,过P’作y轴的平行线交于P,所以有无穷远点O∞+P=P。 这样,无穷远点O∞的作用与普通加法 中零的作用相当(0+2=2),我们把 无穷远点O∞称为零元。同时我们把 P’称为P的负元(简称负P;记作-P); 根据这个法则,可以得到如下结论: 如果椭圆曲线上的三个点A、B、C, 处于同一条直线上,那么他们的和 等于零元,即A+B+C=O∞。
非对称加密算法
1
前情提要
数论基础
加密系统中常用的数论知识 复杂性理论简介
对称加密算法
对称密码体制模型
流密码
分组密码
DES
Rijndael密码体制(AES加密算法)
2
本次课提纲
对称加密算法
KASUMI分组密码
非对称加密算法
RSA加密体制 椭圆曲线密码体制
3
对称加密算法
解 密 过 程
加 密 过 程
数字签名:
签名:s=md mod n;
验证:m=se mod n; 其中s为签名,m为验证明文;
同密钥长度,软件实现比DES慢 100倍,硬件实现慢1000倍。
密钥计算过程
14
椭圆曲线ECC加密算法
15
从平行线谈起
平行线,永不相交。真的吗? 平行线会不会在很远很远的地方相交了? 可以假设平行线在很远很远的地方相交了。即平行线相交 于无穷远点P∞。
13
RSA算法
密钥生成:
选取两个素数p,q; 计算模数n=pq; 随机选取加密密钥e,有e与 (p-1)(q-1) 互素; 计算d*e=1 mod ((p-1)(q-1)); 公开密钥为(e,n),私钥为d;
加解密:
加密:c=me mod n;
解密:m=cd mod n; 其中c为密文,m为明文;
4
KUSAMI分组密码
KUSAMI算法是日本三菱公司在MISY1密 码基础上改进产生的分组密码;
用于第三代移动通信系统的信令和数据加 密。 是一个迭代分组密码算法,使用一个128bit 的密钥加密一个长度为64bit的明文,获得 长度为64bit的密文。
5
KASUMI算法
RKi=KLi||KOi||KIi KLi=KLi1||KLi2 KOi=KOi1||KOi2||KOi3 KIi=KIi1||KIi2||KIi3 KIij=KIij1(7bit)||KIij2(9bit)
6
KUSAMI-非线性盒子S7
7
KUSAMI-非线性盒子S9
8
KASUMI轮密钥
需要8个轮密钥,每轮密钥RKi为128位 RKi=KLi||KOi||KIi=KLi1||KLi2||KOi1||KOi2||KOi3||KIi1||KIi2||KIi3 用户密钥K为128位 Ki=K1||K2||K3||K4||K5||K6||K7||K8
利用Ki’=Ki Ci C1=0x0123 C2=0x4567 C3=0x89AB C4=0xCDEF C5=0xFEDC C6=0xBA98 C7=0x7654 C8=0x3210
轮密钥取值
9
轮密钥取值表
10
KASUMI算法分析
主算法由线性混合函数FL和非线性混合函数FO 组成;
非线性混合函数的非线性部分为FI,FI也是 KASUMI函数惟一的非线性变化; 非线性盒子S7和S9是整个非线性子函数FI的核心, 也是KASUMI算法的核心,它的强度就决定了密 码算法的强度; S盒的设计准测包括非线性度、差分均匀性、代数 次数及项目分布、雪崩效应和完全性、扩散性、 11 可逆性以及是否有陷门等多方面来考虑;
直线上出现P∞点,所带来的好处是所有的直线都相交了, 且只有一个交点。这就把直线的平行与相交统一了。 无穷远点性质:
直线L上的无穷远点只能有一个; 平面上一组相互平行的直线有公共的无穷远点; 平面上任何相交的两直线L1,L2有不同的无穷远点; 平面上全体无穷远点构成一条无穷远直线; 平面上全体无穷远点与全体平常点构成射影平面。
18
椭圆曲线上一点斜率
问题:椭圆曲线方程y2+a1xy+a3y=x3+a2x2+a4x+a6 上,平常点A(x,y)的切线的斜率k:
令F(x,y)= y2+a1xy+a3y-x3-a2x2-a4x-a6 求偏导数 Fx(x,y)= a1y-3x2-2a2x-a4 Fy(x,y)= 2y+a1x+a3 则导数为:f'(x)=- Fx(x,y)/ Fy(x,y) =-(a1y-3x2-2a2x-a4)/(2y+a1x+a3) = (3x2+2a2x+a4-a1y)/(2y+a1x+a3) 所以k=(3x2+2a2x+a4-a1y)/(2y+a1x+a3)
卡内密钥生成
ECC生成密钥对的时间相对短很多,故可以在计算能力有限的环境中生成, 不像其他公钥系统需要预先生成然后在假定安全环境中加载到卡中。
ECC更加适用于需要密集的公钥操作的环境和受限环境
30
下次课提要
WPKI无线公钥基础设施
签名与认证 伪随机数发生器
31
课堂练习-15分钟完成
求出E11(1,6)上所有的点
已知E11(1,6)上一点G(2,7),求2G到13G所 有的值。
无穷远点就是这种形式(X:Y:0)表示。注意,平常点
Z≠0,无穷远点Z=0,因此无穷远直线对应的方程是Z=0。
17
椭圆曲线
椭圆曲线是射影平面上满足Y2Z+a1XYZ+a3YZ2=X3+a2X2Z+a4XZ2+a6Z3 的所有点的集合,且曲线上的每个点都是非奇异(或光滑)的。
Weierstrass方程 (维尔斯特拉斯) 是一个齐次方程。
有限域中的椭圆曲线是离散的,因为有限域只有有限个元素;
有限域Fp Fp中只有p(p为素数)个元素0,1,2 …… p-2,p-1; Fp 的加法法则是a+b≡c(mod p); Fp 的乘法法则是a×b≡c(mod p); Fp 的除法法则是a/b≡c(mod p);即a×b-1≡c(mod p); b-1也是0到p-1之间的整数,但满足b×b-1≡1(mod p)。 Fp 的单位元是1,零元是 0。 不是每条椭圆曲线适合加密, y2=x3+ax+b是一类可以用来 加密的椭圆曲线 选择两个满足4a3+27b2≠0(mod p)的小于 p(p为素数)的非负整数a和b; 满足方程y2=x3+ax+b (mod p)的所有点再 加上无穷远点O∞,构成一条椭圆曲线。 x,y属于0到p-1间的整数,并将这条椭圆 曲线记为Ep(a,b)。
是指曲线上任意一点的偏导 椭圆曲线的形状并不是椭圆, Fx(x,y,z),Fy(x,y,z),Fz(x,y,z) 只因为 其描述方程类似于 不同时为0。即满足方程的 椭圆周长计算方程,故得名 任意一点都存在切线。 椭圆曲线上有一个无穷远点O∞(0:1:0),因 为这个点满足方程; 把椭圆曲线放回普通平面直角坐标系,代入 x=X/Z,y=Y/Z,得到y2+a1xy+a3y = x3+a2x2+a4x+a6 因此,满足上述方程的光滑曲线加上一个无穷远 点O∞,组成了椭圆曲线。
利用椭圆曲线进行加密通信的过程:
1、用户A选定一条椭圆曲线Ep(a,b),并取椭圆曲线上一点,作为基点G。
2、用户A选择一个私有密钥k,并生成公开密钥K=kG。
3、用户A将Ep(a,b)和点K,G传给用户B。 4、用户B接到信息后 ,将待传输的明文编码到Ep(a,b)上一点M,并产生一 个随机整数r(r<n)。 5、用户B计算点C1=M+rK;C2=rG。 6、用户B将C1、C2传给用户A。 7、用户A接到信息后,计算C1-kC2,结果就是点M。因为C1-kC2=M+rK27
25
椭圆曲线上点的阶
如果椭圆曲线上一点P,存在最小的正整数 n,使得数乘nP=O∞,则将n称为P的阶, 若n不存在,我们说P是无限阶的; 事实上,在有限域上定义的椭圆曲线上所 有的点的阶n都是存在的。
26
椭圆曲线上的加密/解密
考虑如下等式:
K=kG [其中K,G为Ep(a,b)上的点,k为小于n(n是点G的阶)的整数]; 不难发现,给定k和G,根据加法法则,计算K很容易;但给定K和G,求k 就相对困难了,这就是椭圆曲线加密算法采用的难题; 我们把点G称为基点,k(k<n,n为基点G的阶)称为私有密钥,K称为公 开密钥。
29
椭圆曲线对移动环境的适应性
更小的EEPROM和更短的传输时间
ECC可以用更小的密钥和证书尺寸达到相通的密码长度,故所需的存储的 EEPROM更小,传输密钥和证书的时间也就越短;
不需要协处理器
ECC处理时间更短,故可以在ROM中执行,不需要格外的协处理器,节省 了芯片空间和成本,降低了芯片功耗;
16
射影平面坐标系
为了表示无穷远点,产生了射影平面坐标系,它是对普通 平面直角坐标系的扩展。 对普通平面直角坐标系上的点A的坐标(x,y)做如下改造: 令x=X/Z ,y=Y/Z(Z≠0);则A点可以表示为(X:Y:Z)变成 了有三个参量的坐标点,这就对平面上的点建立了一个新 的坐标体系。 新的直线方程:aX+bY+cZ=0,平行直线的方程是: aX+bY+c1Z =0; aX+bY+c2Z =0 (c1≠c2); 有c2Z= c1Z= -(aX+bY),∵c1≠c2 ∴Z=0 ∴aX+bY=0;
ECC与其他公钥系统相比,能提供更好的加 密强度、更快的执行速度和更小的密钥长 度; ECC可以用较小的开销和时延实现较高的安 全性,特别适合计算能力受限、集成电路 空间受限和带宽受限(如:无线通信)等 情况下的高速实现; ECC标准化进程的推进也增强了其的用户操 作性、公众接受程度和技术因素;