菜单
  

    下面先分别描述各运算的内部功能,最后将它们全部连接起来,构成组合逻辑运算模块block_top。
    3.3.1  选择扩展运算E
    选择扩展运算的实现非常简单,只要按照表2-4所示,将输入的32bit数据映射到输出即可。为了描述的方便,程序将输出的48bit分为8组,每组6bit。这样,可以提高程序可读性,并有利于后文中的S盒压缩运算。选择扩展运算模块的管脚如图3-5所示,输入数据为32bit,被扩展为48bit,并分为8组输出。
     
    图3-5   选择扩展运算模块管脚图
    3.3.2  异或加密运算
    异或加密运算的实现非常简单,将选择扩展运算输出的48bit数据(8组,每组6bit)与48bit的子密钥逐位进行异或运算。异或加密运算模块的管脚图如图3-6所示。
     
    图3-6   异或加密运算模块管脚图
    3.3.3  S盒压缩运算
    S盒压缩运算包括8个S盒的代换,而每个S盒的代换规律又都不相同。因此,必须逐个描述S盒的内部功能,最后将8个S盒并联起来。[15]
    以S1盒为例,输入信号为6bit,输出信号为4bit,根据2.1节中介绍的原理,计算输出信号。
    其它S盒的实现方法与上述例程相同,只是需要根据各自的S盒代换表按照本程序注释部分的方法计算输出信号即可。
    最后,将8个S盒并行连接起来,每个S盒的输入数据来自上一步骤中的异或加密。S盒压缩模块的管脚图如图3-7所示。
     
    图3-7   S盒压缩运算模块管脚图
    3.3.4  置换运算P
    根据表2-6,进行置换运算,模块的输入为S盒压缩后的结果4bit*8,即32bit数据,输出为32bit数据。置换运算运算模块的管脚图如图3-8所示。
     
    图3-8   置换运算模块管脚图
    3.3.5  左右分组异或运算
    左右分组异或运算的输入/输出数据均为32bit,其中输入数据分别为右边处理后的32bit数据和左边的32bit数据,因此输出结果为32bit。管脚图如图3-9所示。
     
    图3-9   左右分组异或运算模块管脚图
    3.3.6  组合运算模块顶层文件
    如图3-10所示,组合运算模块的输入管脚有R_in(0 to 31)、L_in(0 to 31)和Round_key_des(0 to 47),输出管脚有R_out(0 to 31)和L_out(0 to 31)。
     
    图3-10   组合运算模块顶层管脚图
    其中,R_in(0 to 31)是本模块要处理的32bit数据,输入模块后直接进入选择扩展运算模块。Round_key_des(0 to 47)是每次迭代中的子密钥,用于异或加密运算。L_in(0 to 31)是左边的32bit,用于在运算的最后与右边被处理后的32bit数据相异或。根据算法流程图2-2,输出R_out(0 to 31)应该为左右分组异或后的结果,而L_out(0 to 31)直接等于R_out(0 to 31)。即有
  1. 上一篇:现代电网在节能环保新形势下的问题研究
  2. 下一篇:基于Matlab的汽车ABS模糊控制系统设计
  1. 基于中频信号的家用治疗...

  2. 基于嵌入式技术的智能家...

  3. 基于FPGA竞赛系统设计+程序

  4. Matlab基于前馈控制的加热炉温度控制系统设计

  5. MEMS基于SHARC型DSP的组合导航算法实现

  6. 基于LabVIEW的车牌图像识别技术研究

  7. 基于LabVIEW和MATLAB混合编程...

  8. 酸性水汽提装置总汽提塔设计+CAD图纸

  9. 河岸冲刷和泥沙淤积的监测国内外研究现状

  10. java+mysql车辆管理系统的设计+源代码

  11. 当代大学生慈善意识研究+文献综述

  12. 中考体育项目与体育教学合理结合的研究

  13. 大众媒体对公共政策制定的影响

  14. 乳业同业并购式全产业链...

  15. 杂拟谷盗体内共生菌沃尔...

  16. 十二层带中心支撑钢结构...

  17. 电站锅炉暖风器设计任务书

  

About

751论文网手机版...

主页:http://www.751com.cn

关闭返回