如上图所示为Camellia加解密系统的结构,PC端上位机通过串口以115200波特率向FPGA发送数据或密钥数据,UART_RX模块接收到数据后,进行串并转换,并将转换后的数据传给Camellia的核心算法模块进行处理。经过处理后的数据,并进行并串转换后,通过UART_TX模块发送给上位机。经过改进后的Camellia系统测试方便,实现FPGA与PC机的友好交互。
核心算法模块的结构如上图所示,可分为子模块:密钥模块(key),加密模块(encode),解密模块(decode)和控制模块(control)。秘钥模块,加密模块以及解密模块这三个模块通过Control模块和外界进行信息交换,而这三者本身不直接和外界进行信息的发送和接收。控制模块既负责与外部数据的接收和发送,又负责内部各模块的信息流控制。密钥模块负责接收密钥数据并产生子密钥数据输出到控制模块,加密模块负责接收明文数据或子密钥数据并返回密文数据到控制模块,解密模块负责接收密文数据或子密钥数据并返回解密好的明文数据到控制模块。
功能仿真后的波形图如上所示。
至于Camellia算法如何在协处理上调度实现的,请详看本队伍的比赛报告!