付费节目是数字电视的重要新事务之一,树立付费频道,其间要害性的技能便是加密技能,数字电视条件接纳体系CAS(Conditional Access System)是数字电视加密操控的核心技能的确保。典型的CAS由前端子体系、终端接纳子体系等组成,前端子体系逻辑结构如图1所示。图1中加密器B选用数据加密规范DES(Data Encryption Standard)加密算法进行硬件完结,以到达对操控字CW进行快速加密。尽管现在DES算法现已呈现许多变形的算法,但根底仍然是DES算法,可见,对DES算法的研讨具有很大现实意义。
经过软件完结的安全体系从本质上来说很难做到真实的保密,而经过硬件来完结加密模块的内部运作,可完结硬件的自锁、自毁功用,能够完结真实意义上的保密。现场可编程门阵列FPGA在完结算法方面具有灵活性、物理安全性和比软件高的速度功用,已成为硬件完结DES算法最好的挑选。本文就资源优先和功用优先上对DES算法进行了规划和比较,这两种规划办法和针对流水线改善后的办法都在Altera CycloneⅡ芯片上得到了完结。
1 DES加密算法原理
本文选用电码本形式ECB(Electric Code Book)的DES加密算法,经过直接运用分组暗码算法来进行音讯加密。这一作业形式的长处便是分组暗码的长处,其缺陷是相同的密文对应相同的明文。DES是迭代型分组暗码,明文分组长度为64bit,密钥的长度也为64bit,但实际上只要56bit有用,密钥中第8、16、24、…、64位被舍去,因为它们通常是奇偶校验位。DES加密算法从数据流的视点来看,能够分为两部分:明文的改换和密钥的改换。改换中引入了轮的概念,每一轮的算法都是重复的,一般要进行16轮。
在每轮密钥改换进程中,密钥扩展算法还需要用到循环左移改换。密钥改换的原则是:在第1、2、9、16轮改换时,密钥循环左移1位;当第3~8轮或许10~15轮改换时,密钥循环左移2位。每个循环左移改换的输入和输出都是28bit串。将移位所得的56bit密钥经过紧缩改换变成48bit密钥,此密钥即为这轮改换所得的子密钥[1]。
在一轮明文改换时,输入数据被分为左右对称的两部分。经过一个扩展置换将数据的右半部分扩展成48bit,将其与此轮生成的子密钥进行模二加运算,经过S盒代换将模二加生成的48bit密钥代替成32bit密钥,终究将其进行P盒置换。以上四个运算进程构成函数F。经过另一个模二加运算,函数F的输出与输入数据左半边模二加构成新的右半部分,本来的右半部分变成新的左半部分。以上进程即完结了DES算法的完好的一轮运算。DES加密算法一轮运算和总运算流程如图2所示。
2 DES加密算法的FPGA完结
2.1 资源优先规划计划
资源优先计划便是经过硬件规划出一个密钥改换轮函数和一个明文改换轮函数,经过16轮重复调用这一个硬件体系完结一次DES加密运算。因为16轮运算都只占用一轮运算所需的硬件资源,使硬件的开支大大削减。可是,一个时钟周期只能进行一轮加密运算,要完结整个加密进程要花费16个时钟周期,然后在速度功用上大打折扣。而选用循环法完结DES加密算法能到达削减资源占用的意图,详细完结办法如图3所示。
2.2 功用优先规划计划
功用优先规划计划刚好与资源优先规划计划相反。传统计划是将循环悉数翻开合作流水线结构进行规划,行将16轮函数进行硬件级联构成一个16级的流水线结构,提早生成16个子密钥,跟着流水线的进程发送给相对应的流水级,然后到达16个数据块一起加密的意图[3-4]。这样,从榜首个数据块开端加密起,每一个时钟周期延时都会有一个数据块进行加密,经16个时钟周期延时后,得到终究的密文。流水线结构规划经过一个时钟周期即可进行一个数据块的加密,经过占用资源交换速度功用的进步。
本文经过子密钥的简化和S盒的优化来改善传统的流水线结构,完结一个占用资源少、加密速度快的加密体系。详细的规划框图如图4所示。
(1) 子密钥的简略生成
由DES加密算法原理可知,一个64bit的初始密钥输入后经过一次紧缩改换、移位改换、二次紧缩改换后得到榜首轮子密钥,其密钥为48bit。榜首轮子密钥改换成果如图5所示。由图5可知,榜首轮子密钥的第1、2、3、…、46、47、48位别离为初始密钥的第10、51、34、…、62、55、31位。每一轮子密钥发生的办法是相同的,假如选用硬件描绘言语依照其子密钥发生的原理一步步地推导出16次DES迭代的密钥,不只言语表述繁琐,并且占用许多的硬件资源。一起,因为每一轮子密钥发生的时刻并不相同,会给DES暗码的迭代运算带来许多不必要的费事。
对密钥改换原理进行剖析能够发现,每一轮子密钥的发生仅仅将初始密钥经过置换和不同次数的循环移位。每一轮循环移位的次数对原始密钥是固定的,其每一位相对于初始密钥的每一位存在着固定的联系,由此能够列出每一轮子密钥与初始密钥之间的联系表,经过联系表选用硬件描绘言语可一起发生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盒的优化。经过对这三种办法进行归纳仿真验证,证明了改善流水线法的正确可行性。这两种计划能够用于不同要求的应用领域,具有较大的灵活性。