加密解密算法RC
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
加密解密算法RC 实现的调研报告
仲力 王宇旸
概述
密码学有对称密码学和公钥密码学两大 分支。目前我们重点调研了对称密码学。
在对称密码学中,加密方和解密方使用相同 的密钥。 DES和AES是目前最主要的对称加 密算法。
在公钥密码学中,加密方和解密方使用不同 的密钥。 RSA和ECC是目前最主要的公钥加 密算法。
最终Rijndael当选。 AES使用128位分组,128、192或256位密钥,
使用不同长度的密钥时算法执行的轮数不同。 AES不是Feistel结构的,其加解密算法不相同。
AES算法中主要的运算
AddRoundKey是一个128bit分组和128bit 子密钥的Xor操作;
SubBytes是16次S-Box操作,AES使用的 一个8bit输入8bit输出的S-Box;
对称加密算法的工作模式
常用的工作模式有ECB, CTR, CBC, CFB, OFB。
ECB和CTR是非反馈模式。 CBC, CFB, OFB是有反馈模式。
ECB模式
Biblioteka Baidu
CBC模式
工作模式对硬件实现的影响
非反馈模式中,不同的分组之间的加密 运算时可以并行执行的,因此可以用流 水线技术极大的提高吞吐率。
Multiplexer
Register Combinational
Logic
Loop Unrolling
k-rounds loop unrolling
Multiplexer
Register
Combinational Logic Combinational Logic
...
Combinational Logic
DES使用64位分组和56位密钥。 DES算法是Feistel结构,因此加密算法和
解密算法是相同的,只是子密钥的使用 次序相反。
DES算法最耗时的部分是16轮 的f(R,K)函数的计算
f函数的计算有四个步骤:
1.扩充/置换函数e; 2.48bit Xor; 3.8个不同的S-Box(6bit输入4bit输出)查表; 4.置换P函数;
扩充/置换函数e
S-Box范例:S1
置换函数P
F(R, K)函数中四种运算的分析
Xor软件硬件都很容易做 置换函数e和P软件很难有效的实现;而硬件只
需要定制相应的数据通路,很容易实现。 S-Box运算软硬件均可用查表实现;但软件只
能串行地查8个表,而硬件可以并行查表。 数据长度不规整(6,4,48bit),不利于软件有效
ShiftRows是3次32bit的循环移位操作(分 别是循环左移8位、16位和24位);
AES算法中主要的运算
MixColumns是1个矩阵乘法运算(两个 4*4的8bit方阵相乘,其中一个方阵是常 数)。用到的加法和乘法是定义在有限域 GF(28)上的,加法实际是Xor;乘法可以 通过移位和Xor操作方便的实现,对软件 也可以通过查表法加速实现。
AES中运算的特点
AES所有的操作数长度都是8bit的2n倍, 并且没有复杂的位运算,因此很容易在 各种平台上(8位、32位、64位机,智能 卡等)用软件有效的实现。
研究表明,AES算法有很高的指令集并行 性(ILP),可以很好的利用现代CPU的 流水线、超标量等技术。
AES也很容易用硬件实现
Internal Pipelining
One Round
Multiplexer
Register 1 Pipeline Stage 1
Register 2 Pipeline Stage 2
... Register k Pipeline Stage k
k-stage internal pipelining
平台
优化技术
吞吐率(Mbits/s)
450MHz Pentium II
针对MMX指令集优 243 化
40MHz Xilinx 2-round loop
VirtexXCV100 unrolling
0BG560-4
同上
5-round external
pipelining & one
internal pipeline
External Pipelining
k Round
Multiplexer
Register 1 Pipeline Stage 1
Register 2 Pipeline Stage 2
... Register k Pipeline Stage k
k-stage external pipelining
4种结构的速度比较
speedba = 1 / (#rounds*clock_period) speedul / speedba = (1 + t)/(1+t/k),其中
内容安排
对称密码学
DES AES 对称密码学综述
公钥密码学
RSA 椭圆曲线密码学(ECC)
小结和进一步的调研方向
(5min) (5min) (10min)
(5min) (5min) (5min)
对称密码学——DES算法
DES算法特征
DES设计时只考虑方便硬件实现。因此很 方便用硬件实现,但难以用软件有效的 实现。
实现。
DES小结
DES难以用软件有效的实现,但很容易用 硬件实现
3DES算法要做3次DES运算,软件实现的 速度更低
AES算法(Rijndael)
AES算法
AES是NIST从5种候选算法(MARS, RC6, Rijndael, Serpent, TwoFish)中评选出来的,能 够高速的在各种软硬件平台上实现是重要的选 择标准。
300(反馈模式)
1938(非反馈 模式)
对称密码学算法硬件实现综述
硬件实现的指标
吞吐率(Throughput) 消耗的硬件资源(Area) 效能(Efficiency=Throughput/Area) 延迟(Latency)
硬件实现的4种不同的设计目标:
最小化资源消耗 在无限的资源下最大化吞吐率 在固定的资源下最大化吞吐率 最大化效能
反馈模式中,各个分组的加密运算必须 相继串行计算,无法从流水线技术中得 到好处。
硬件实现可以采用的结构
Basic Architecture Loop Unrolling Internal Pipelining External Pipelining Hybrid Pipelining
Basic Architecture
仲力 王宇旸
概述
密码学有对称密码学和公钥密码学两大 分支。目前我们重点调研了对称密码学。
在对称密码学中,加密方和解密方使用相同 的密钥。 DES和AES是目前最主要的对称加 密算法。
在公钥密码学中,加密方和解密方使用不同 的密钥。 RSA和ECC是目前最主要的公钥加 密算法。
最终Rijndael当选。 AES使用128位分组,128、192或256位密钥,
使用不同长度的密钥时算法执行的轮数不同。 AES不是Feistel结构的,其加解密算法不相同。
AES算法中主要的运算
AddRoundKey是一个128bit分组和128bit 子密钥的Xor操作;
SubBytes是16次S-Box操作,AES使用的 一个8bit输入8bit输出的S-Box;
对称加密算法的工作模式
常用的工作模式有ECB, CTR, CBC, CFB, OFB。
ECB和CTR是非反馈模式。 CBC, CFB, OFB是有反馈模式。
ECB模式
Biblioteka Baidu
CBC模式
工作模式对硬件实现的影响
非反馈模式中,不同的分组之间的加密 运算时可以并行执行的,因此可以用流 水线技术极大的提高吞吐率。
Multiplexer
Register Combinational
Logic
Loop Unrolling
k-rounds loop unrolling
Multiplexer
Register
Combinational Logic Combinational Logic
...
Combinational Logic
DES使用64位分组和56位密钥。 DES算法是Feistel结构,因此加密算法和
解密算法是相同的,只是子密钥的使用 次序相反。
DES算法最耗时的部分是16轮 的f(R,K)函数的计算
f函数的计算有四个步骤:
1.扩充/置换函数e; 2.48bit Xor; 3.8个不同的S-Box(6bit输入4bit输出)查表; 4.置换P函数;
扩充/置换函数e
S-Box范例:S1
置换函数P
F(R, K)函数中四种运算的分析
Xor软件硬件都很容易做 置换函数e和P软件很难有效的实现;而硬件只
需要定制相应的数据通路,很容易实现。 S-Box运算软硬件均可用查表实现;但软件只
能串行地查8个表,而硬件可以并行查表。 数据长度不规整(6,4,48bit),不利于软件有效
ShiftRows是3次32bit的循环移位操作(分 别是循环左移8位、16位和24位);
AES算法中主要的运算
MixColumns是1个矩阵乘法运算(两个 4*4的8bit方阵相乘,其中一个方阵是常 数)。用到的加法和乘法是定义在有限域 GF(28)上的,加法实际是Xor;乘法可以 通过移位和Xor操作方便的实现,对软件 也可以通过查表法加速实现。
AES中运算的特点
AES所有的操作数长度都是8bit的2n倍, 并且没有复杂的位运算,因此很容易在 各种平台上(8位、32位、64位机,智能 卡等)用软件有效的实现。
研究表明,AES算法有很高的指令集并行 性(ILP),可以很好的利用现代CPU的 流水线、超标量等技术。
AES也很容易用硬件实现
Internal Pipelining
One Round
Multiplexer
Register 1 Pipeline Stage 1
Register 2 Pipeline Stage 2
... Register k Pipeline Stage k
k-stage internal pipelining
平台
优化技术
吞吐率(Mbits/s)
450MHz Pentium II
针对MMX指令集优 243 化
40MHz Xilinx 2-round loop
VirtexXCV100 unrolling
0BG560-4
同上
5-round external
pipelining & one
internal pipeline
External Pipelining
k Round
Multiplexer
Register 1 Pipeline Stage 1
Register 2 Pipeline Stage 2
... Register k Pipeline Stage k
k-stage external pipelining
4种结构的速度比较
speedba = 1 / (#rounds*clock_period) speedul / speedba = (1 + t)/(1+t/k),其中
内容安排
对称密码学
DES AES 对称密码学综述
公钥密码学
RSA 椭圆曲线密码学(ECC)
小结和进一步的调研方向
(5min) (5min) (10min)
(5min) (5min) (5min)
对称密码学——DES算法
DES算法特征
DES设计时只考虑方便硬件实现。因此很 方便用硬件实现,但难以用软件有效的 实现。
实现。
DES小结
DES难以用软件有效的实现,但很容易用 硬件实现
3DES算法要做3次DES运算,软件实现的 速度更低
AES算法(Rijndael)
AES算法
AES是NIST从5种候选算法(MARS, RC6, Rijndael, Serpent, TwoFish)中评选出来的,能 够高速的在各种软硬件平台上实现是重要的选 择标准。
300(反馈模式)
1938(非反馈 模式)
对称密码学算法硬件实现综述
硬件实现的指标
吞吐率(Throughput) 消耗的硬件资源(Area) 效能(Efficiency=Throughput/Area) 延迟(Latency)
硬件实现的4种不同的设计目标:
最小化资源消耗 在无限的资源下最大化吞吐率 在固定的资源下最大化吞吐率 最大化效能
反馈模式中,各个分组的加密运算必须 相继串行计算,无法从流水线技术中得 到好处。
硬件实现可以采用的结构
Basic Architecture Loop Unrolling Internal Pipelining External Pipelining Hybrid Pipelining
Basic Architecture