

ut std_logic_vector(3 downto 0); subtype s_word is std_logic_vector(3 downto 0); subtype s1_rangeij is integer range 0 to 63; type s_type is array(s1_rangeij) of s_word; constant s:s_type:=(("1110"),("0100"),("1101"),("0001")……); function logic2int(din:std_logic_vector(t downto 0))return s1_rangeij -二进转换为十进制 output<=s(logic2int(input)); 经综合后,每个S盒只用了24个逻辑单元。 3DES是64位分组大小的加密算法,数据线一般是8位、16位或32位,为此增加了输入、输出接口,这部分接口完成的功能就是串/并转换和并/串转换。以16位输出接口为例,设计中将加/解密出来的数据从低位到高位在valid信号有效的情况下同时存入四个16位寄存器,再通过一个选择器依次将数据送出。该选择器不同于普通的多路选择器,它是由valid信号触发其内的计数功能,从而依次将寄存器中数据输出,如图4所示。输入接口要简单一些,只需一个64位可移位的寄存器,在第四个16位数据到来后才将这一组64位数据送给加密模块。这种结构非常容易用硬件描述语言实现。 

| 欢迎光临 DIY编程器网 (http://diybcq.com/) | Powered by Discuz! X3.2 |