1 / 58
文档名称:

加密解密算法RC.ppt

格式:ppt   大小:6,723KB   页数:58页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

加密解密算法RC.ppt

上传人:wcuxirh 2022/1/15 文件大小:6.57 MB

下载得到文件列表

加密解密算法RC.ppt

相关文档

文档介绍

文档介绍:加密解密算法RC
概述
密码学有对称密码学和公钥密码学两大分支。目前我们重点调研了对称密码学。
在对称密码学中,加密方和解密方使用相同的密钥。 DES和AES是目前最主要的对称加密算法。
在公钥密码学中,加密方和解密方使用不同的密钥chitecture
Loop Unrolling
Internal Pipelining
External Pipelining
Hybrid Pipelining
Basic Architecture
Loop Unrolling
Internal Pipelining
External Pipelining
4种结构的速度比较
speedba = 1 / (#rounds*clock_period)
speedul / speedba = (1 + t)/(1+t/k),其中t=(m+r)/c
k-round internal pipelining,理想情况下,clock_period可以比basic结构提高k倍(仅对非反馈模式有效)。
对k-round external pipelining,理想情况下,速度比相同clock_period的basic结构提高k倍(仅对非反馈模式有效)。
4种结构的area比较
Basic结构消耗的area最少。
Internal pipelining只比Basic结构增加了少量的area(用于pipeline stage间的寄存器)。
k-round unrolling/external pipeling大约会增加k倍的area。
其他影响硬件实现的因素
是否需要在一块芯片(或FPGA)上同时实现加解密算法
Feistel结构的算法,同时实现加解密算法比只实现加密算法增加的area不到10%;非Feistel结构的算法area增加较多(AES算法会增加60%的area)
对于RC系统,如果需要同时实现加解密算法,有两种方法 :(1)使用动态可重构;(2)在一个配置里同时实现加解密功能。方法2在加解密功能切换速度比1快,但会消耗更多的area,而1可以利用这些area对吞吐率进行优化。
其他影响硬件实现的因素
是否要实现子密钥生成算法
如何实现子密钥生成算法
算好所有的子密钥存在寄存器中,以后不再重复计算(loop unrolling/external pipelining结构必须使用这种方式)
on-the-fly的计算方式(可以省去保存子密钥的寄存器)
NIST对5种AES候选算法硬件实现的评估
Rijndael和Serpent的吞吐率和效能都很高。
RC6和Twofish的吞吐率效能处于平均水平,但可以在很小的area上实现。
MARS的吞吐率、效能都是最差的,不太适合硬件实现(主要原因有异种的循环结构,大的S-Box等)。
公钥密码学
公钥密码学
公钥密码算法应满足的条件
产生一对密钥(KU,KR)在计算上是容易的
已知公钥KU和明文M,计算密文C是容易的
用私钥KR解密接收到的密文C是是容易的
已知公钥KU,攻击者要确定私钥KR在计算上是不可行的
已知公钥KU和密文C,攻击者要恢复明文M在计算上是不可行的
公钥密码学
在公钥密码学概念提出后的几十年中,只有两个满足这些条件的算法(RSA, 椭圆曲线密码体制)为人们普遍接受。
公钥密码学的安全性一般要依赖于某种计算难题:
RSC基于大数因数分解难题
ECC基于椭圆曲线上的离散对数难题
公钥密码学算法要比对称密码学算法慢几个数量级。
RSA简介
RSA是目前使用最广泛的公钥密码学算法
RSA
密钥产生
选择两个素数,p和q
计算n=pq
计算z=(p-1)(q-1)
选择e使得:gcd(e, z)=1 且 e<z
确定d使得d*e mod z =1 且 d<z
公钥KU={e, n},私钥KR={d, n}
为了保证安全性,RSA算法实际使用的密钥长度多达几百至上千bit
密钥产生
密钥产生需要做以下工作:
确定两个大素数p和q
选择e, 并计算d
目前选择素数一般是随机挑选一个奇数n,再用Miller-Rabin等概率算法判断n是否是素数。
求e和d一般使用扩展Euclid算法:随机选择e<z,用扩展Euclid算法求gcd(z, e),并且当gcd(z, e)=1时,扩展Euclid算法还能同时求出d。
RSA
加解密运算
加密算法为C=Me mod n
解密算法为M=Cd mod n
实现RSA算法
密钥产生算法远没有加解密算法常用,故一般只考虑用硬件加速加解密算法,即加速模幂(modular exponentiation)运算。