- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
一种GPON-AES的FPGA优化实现
图2是计数器模式下的AES算法的实现步骤。其中 是密钥, 是计数器值; 是加密前的明文; 是加密后的密文,它们都是128bit。值得注意的是,计数器模式下,进行AES加密的并不是明文,而是计数器的值,密文由计数器加密结果与明文相异或产生。
图2计数器模式下的AES算法计算步骤
GPON中,加密计数器与整个GTC下行帧有关,而AES密码分组仅与数据的有效载荷有关。这两个序列的关系如图3所示,其中H表示GEM帧头,P表示GEM帧静荷。当一个数据包在OLT段发送或被ONU接受,包头的第一个字节位置将被记录,该字节位置的加密计数器的值将作为此帧静荷的密码分组计数器的起始值。对于接下来的密码分组,密码分组计数器将逐一递增。这种排列保证了OLT和ONU计数器值的一致性。
图3加密计数器与加密块的关系图
3. GPON-AES的具体实现
由图3可知,由于GEM帧的分组的最后一块的长度会在1字节-16字节之间。对于大多数情况的16字节分组块,要求AES在16个字节的传输时间内给出加密结果,而最严重的情况是分组块只有一个字节加上后面跟着的5字节GEM帧头,要求AES在6个字节的传输时间内给出加密结果。简言之,GPON-AES系统对AES的加密瞬时带宽的要求不是固定的。
3.1. 整体优化思路
OLT的最大下行支持2.488G的数据带宽,考虑到FPGA设计的安全性,我们将FPGA系统工作在155. 52MHz的时钟上。这样整个系统的处理数据位宽为16bit,每个时钟发送2个字节的数据,16字节的分组用8个时钟就可以发送完。对于GEM分组16字节长度净荷的情况,其对AES的加密带宽要求是2.488G。最严重的情况(最后一个分组的长度是1个字节,加上后面得5字节GEM帧头),对AES的加密带宽要求约是6.635G。如果将AES硬件模块的处理带宽设计大于6.635G,会满足系统的各种情况,但整个电路资源消耗也会非常庞大。
我们实际应用中,GPON走的是以太网业务。以65字节的以太网帧帧长(以太网的最小帧长为64字节)为例进行分析,总共要进行4次16字节的分组和一次1字节的分组。这样带宽的需求为: 。而硬件设计AES的处理带宽为W,需要满足公式: ,即 ;因此在不影响电路的性能基础上,考虑资源优先,我们将AES的处理带宽设计为4G左右,通过在AES的前后加上缓存Ram来平滑瞬时带宽的影响。
图4 GPON-AES的硬件结构框图
如图4所示,AES的加密带宽为4G,则在155.52MHz的时钟上,每隔5个时钟输入一次AES加密。在GPON中,最短的密码块分组是1个字节,那么加上5字节的GEM帧头,总共6个字节,下行3个时钟就能传送完,因此Cntfifo缓存加密块的密钥和计数器信息。AES会将加密结果128bit花5个时钟写入ShaperFifo中,而Datafifo的数据位宽是16bit,因此Shaperfifo设计为两级fifo,其中前一级是32位宽,后一级的写端口是8bit、16bit、32bit的可变位宽,读端口是8bit、16bit可变位宽fifo。而Datafifo只是起到一个延时的作用。而Cntfifo和Shaperfifo互相作用,用来平滑瞬时带宽。调整这三个fifo的深度,则会改变电路的平滑瞬时加密带宽的能力。
3.2. AES优化实现
传统实现方法包括基本迭代方法和流水线方法。基本迭代方法10轮函数共用同一块电路,消耗的资源最小,但AES加密至少要耗时10个时钟节拍,并且每次加密完成之前,下一组的明文无法进入加密电路。流水线方法又分为轮内流水和轮间流水,而轮内流水的增加虽然可以提高整个电路的工作频率,也导致每轮计算对时钟节拍的需求增加。因此,加密带宽也并没有大幅度提高。轮间流水级别的增加,会提高吞吐率,相应的会直接导致了电路资源的成倍增加。
根据GPON-AES的电路需求,我们使用了一个轮间、轮内流水复用的方法。这种方法结合了轮间流水和轮内流水两种方法的优点,整个电路控制方便,电路的使用效率接近100%。首先一次AES加密,要经过10轮,每一轮的处理又包括查表和一大堆的组合逻辑,我们将每一轮进行轮内二级流水设计,并且每一轮都复用这个二级流水电路,这样整个AES加密会消耗20个时钟节拍,电路会安全的工作在155MHz的时钟上。显然这种方法达不到加密带宽支持4G的设计目标。我们将10轮AES进行两级轮间流水设计,前5轮共用一块二级流水电路,后5轮共用另一块二级流水电路。这样AES加密每隔10个时钟节拍,会输出加密结果,可支持2G的处理带宽,还是达不到系统的要求。考虑到每一轮使用两个时钟节拍,一个时钟节拍分配给查找表,一个时钟节拍分配给组合逻辑。查找电路和组合电路的利用率都是50%。因此每隔5个时钟节拍,新的AES加密启动进入电路,它们占用另外的时钟进行查表和组合电路的执行。这样AES经过两次轮间流水和两次轮内,整个系统工作在155MHz,每隔5个时钟节拍就可以输出结果,整个电路支持4G的处理带宽。
图5两级流水的轮操作电路结构
来源:中国信息产业网
上一篇:赞比亚ZESCO再谱新篇章
下一篇:G652D光纤宏弯损耗测试方法的实践及数据分析