数字电视CAS中DES加密模块的FPGA实现
经过置换和不同次数的循环移位。每一轮循环移位的次数对原始密钥是固定的,其每一位相对于初始密钥的每一位存在着固定的关系,由此可以列出每一轮子密钥与初始密钥之间的关系表,通过关系表采用硬件描述语言可同时产生16轮子密钥。采用此方法大大简化了程序语言、节约了硬件的资源开销。
(2) S盒的优化
S盒的设计是DES算法的关键部分, S盒设计的优劣将影响整个算法的性能。S盒是DES加密算法中唯一的非线性函数,S盒的非线性变换使算法达到很好的“混乱”效果,从而具有较强的安全性。
S盒的原理是输入6bit的数据,其中第1位和第6 位确定行,中间4bit确定列,通过行、列查表确定对应的4 bit的输出。根据S盒的工作原理,可直接使用输入为6变量、输出为4变量的case语句进行描述,构成一个4bit 64个存储空间的表。然而这样的语句虽然可读性很强,但综合的效率往往不高,占用资源过多,速度也比较低,使S盒成为系统速度的瓶颈。
本文采用8个ROM来实现S盒。把输入的6bit作为地址,对应的地址空间里存放的就是待输出的4bit,这样可提高运算时间,解决S盒变换的时间瓶颈;利用FPGA内部自带的ROM,大大减少逻辑资源的占用。以第一个S盒设计为例,其设计实现电路如图6所示。输入为IN[6:1],经地址变换电路将输入的初始值转换为相应的查表地址{IN[6]、IN[1]、IN[5:2]},即ADR[6:1],以此对64×4 ROM进行查表,ROM值按照S盒查找表进行初始化,由ADR[6:1]读取ROM中相对应的数据从而得到OUT[3:0][2,5]。采用同样的办法,通过ROM实现其他7个S盒,以达到优化的目的。
3 综合仿真结果对比
利用ModelSim对三种不同方法实现的DES加密算法程序进行了仿真,得到的仿真波形初步验证了DES加密功能的正确性。选用Altera公司的QuartusⅡ6.0环境下成功编译、综合、适配、仿真,并下载到CycloneⅡ系列的FPGA中进行了验证,通过分析得到循环法、传统流水线法、改进流水线法在速度性能和资源占用上的差异如表1所示。
从表1可以看出,三种不同的方法,各自占用硬件资源、可以达到的最大时钟频率、加密速率上都存在各自的特点。循环法占用资源少、时钟频率低、加密速度相对较慢。传统流水线法通过改进后,大大减少了逻辑资源的占用量,同时在时钟频率和加密速率上都得到很大的提升。
本文按照资源优先和性能优先两种不同的设计方案,分别采取循环法和流水线法予以实现。同时,对性能优先方案提出了改进方法即:子密钥简单生成和S盒的优化。通过对这三种方法进行综合仿真验证,证实了改进流水线法的正确可行性。这两种方案可以用于不同要求的应用领域,具有较大的灵活性。
- 3DES算法的FPGA高速实现(06-21)
- 展望未来 多核DSP技术不仅仅是小把戏(04-03)
- DSP程序的加密保护体制设计 (11-10)
- SERDES的数字系统中高效时钟设计方案(01-15)
- EDM安全访问机制应用方案(02-12)
- FPGA系列相关图书介绍(06-06)