




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
五、设计题(20分)1、已知AES密钥扩展状态机的状态转移及控制信号取值表如下(复位时处于初始状态S0):当前状态当前输入下一状态当前输出(控制信号)S0keyexp=0S0keysel=0,rndkren=0,wrrndkrf=0,wrkrfaddr=4d0,rconen=0,keyexprdy=(state_delay= =S11)。S0keyexp=1S1keysel=0,rndkren=0,wrrndkrf=0,wrkrfaddr=4d0, rconen=0,keyexprdy=(state_delay= =S11)。S1xS2keysel=0,rndkren=1,wrrndkrf=1,wrkrfaddr=4d0, rconen=0,keyexprdy=0。S2xS3keysel=1,rndkren=1,wrrndkrf=1,wrkrfaddr=4d1, rconen=1, keyexprdy=0。S3xS4keysel=1,rndkren=1,wrrndkrf=1,wrkrfaddr=4d2, rconen=1, keyexprdy=0。S4xS5keysel=1,rndkren=1,wrrndkrf=1,wrkrfaddr=4d3, rconen=1, keyexprdy=0。S5xS6keysel=1,rndkren=1,wrrndkrf=1,wrkrfaddr=4d4, rconen=1, keyexprdy=0。S6xS7keysel=1,rndkren=1,wrrndkrf=1,wrkrfaddr=4d5, rconen=1, keyexprdy=0。S7xS8keysel=1,rndkren=1,wrrndkrf=1,wrkrfaddr=4d6, rconen=1, keyexprdy=0。S8xS9keysel=1,rndkren=1,wrrndkrf=1,wrkrfaddr=4d7, rconen=1, keyexprdy=0。S9xS10keysel=1,rndkren=1,wrrndkrf=1,wrkrfaddr=4d8, rconen=1, keyexprdy=0。S10xS11keysel=1,rndkren=1,wrrndkrf=1,wrkrfaddr=4d9, rconen=1, keyexprdy=0。S11xS0keysel=1,rndkren=1,wrrndkrf=1,wrkrfaddr=4d10, rconen=1, keyexprdy=0。试建立AES密钥扩展状态机的Verilog RTL模型。module keyexpfsm(clk,rst,keyexp,keysel,rndkren,wrrndkrf,wrkrfaddr,rconen,keyexprdy);output keysel,rndkren,wrrndkrf,rconen,keyexprdy;output 3:0 wrkrfaddr;input clk,rst,keyexp;reg 3:0 state,next_state,wrkrfaddr;reg keysel,rndkren,keyexprdy;always (posedge clk)beginif(rst)state=4d0;elsestate=next_state;endalways (state or keyexp) case(state) 4d0:if(keyexp = 1) next_state = 4d1; else next_state = 4d0; 4d1: next_state = 4d2; 4d2: next_state = 4d3; 4d3: next_state = 4d4; 4d4: next_state = 4d5; 4d5: next_state = 4d6; 4d6: next_state = 4d7; 4d7: next_state = 4d8; 4d8: next_state = 4d9; 4d9: next_state = 4d10; 4d10: next_state = 4d11; 4d11: next_state = 4d0; default: next_state = 4d0; endcasealways (state) case(state) 4d0:keysel=0; 4d1:keysel=0; 4d2:keysel=1; 4d3:keysel=1; 4d4:keysel=1; 4d5:keysel=1; 4d6:keysel=1; 4d7:keysel=1; 4d8:keysel=1; 4d9:keysel=1; 4d10:keysel=1; 4d11:keysel=1; default: keysel=0; endcasealways (state) case(state) 4d0:rndkren=0; 4d1:rndkren=1; 4d2:rndkren=1; 4d3:rndkren=1; 4d4:rndkren=1; 4d5:rndkren=1; 4d6:rndkren=1; 4d7:rndkren=1; 4d8:rndkren=1; 4d9:rndkren=1; 4d10:rndkren=1; 4d11:rndkren=1; default: rndkren=0; endcaseassign wrrndkrf=rndkren;always (state) case(state) 4d0:wrkrfaddr=4d0; 4d1:wrkrfaddr=4d0; 4d2:wrkrfaddr=4d1; 4d3:wrkrfaddr=4d2; 4d4:wrkrfaddr=4d3; 4d5:wrkrfaddr=4d4; 4d6:wrkrfaddr=4d5; 4d7:wrkrfaddr=4d6; 4d8:wrkrfaddr=4d7; 4d9:wrkrfaddr=4d8; 4d10:wrkrfaddr=4d9; 4d11:wrkrfaddr=4d10; default: wrkrfaddr=4d0; endcaseassign rconen=keysel;always (state) case(state) 4d0:keyexprdy=1; default: keyexprdy=0; endcaseendmodule 2、已知AES加密状态机的状态转移及控制信号取值表如下(复位时处于初始状态S0):当前状态当前输入下一状态当前输出S0staenc=0S0wrregen=0,mixsel=0,reginsel=0,keyadsel=2b00,rdkrfaddr=4d0,encrdy=(state_delay=S11)。S0staenc=1S1wrregen=0,mixsel=0, reginsel=0,keyadsel=2b00,rdkrfaddr=4d0, encrdy=(state_delay=S11)。S1xS2wrregen=1,mixsel=0, reginsel=0,keyadsel=2b00,rdkrfaddr=4d0, encrdy=0。S2xS3wrregen=1,mixsel=0, reginsel=0,keyadsel=2b01,rdkrfaddr=4d1, encrdy=0。S3xS4wrregen=1,mixsel=0, reginsel=0,keyadsel=2b01,rdkrfaddr=4d2, encrdy=0。S4xS5wrregen=1,mixsel=0, reginsel=0,keyadsel=2b01,rdkrfaddr=4d3, encrdy=0。S5xS6wrregen=1,mixsel=0, reginsel=0,keyadsel=2b01,rdkrfaddr=4d4, encrdy=0。S6xS7wrregen=1,mixsel=0, reginsel=0,keyadsel=2b01,rdkrfaddr=4d5, encrdy=0。S7xS8wrregen=1,mixsel=0, reginsel=0,keyadsel=2b01,rdkrfaddr=4d6, encrdy=0。S8xS9wrregen=1,mixsel=0, reginsel=0,keyadsel=2b01,rdkrfaddr=4d7, encrdy=0。S9xS10wrregen=1,mixsel=0, reginsel=0,keyadsel=2b01,rdkrfaddr=4d8, encrdy=0。S10xS11wrregen=1,mixsel=0, reginsel=0,keyadsel=2b01,rdkrfaddr=4d9, encrdy=0。S11xS0wrregen=1,mixsel=0,reginsel=0,keyadsel=2b10,rdkrfaddr=4d10, encrdy=0。试建立AES加密状态机的Verilog RTL模型。module encryfsm(clk,rst,staenc,keyadsel,mixsel,reginsel,wrregen,rdkrfaddr,encrdy,state);output wrregen,mixsel,reginsel,encrdy;output 1:0 keyadsel;output 3:0 rdkrfaddr,state;input clk,rst,staenc;reg 3:0 state,next_state,rdkrfaddr;reg wrregen,encrdy;reg 1:0 keyadsel;always (posedge clk)beginif(rst)state=4d0;elsestate=next_state;endalways (state or staenc) case(state) 4d0:if(staenc = 1) next_state = 4d1; else next_state = 4d0; 4d1: next_state = 4d2; 4d2: next_state = 4d3; 4d3: next_state = 4d4; 4d4: next_state = 4d5; 4d5: next_state = 4d6; 4d6: next_state = 4d7; 4d7: next_state = 4d8; 4d8: next_state = 4d9; 4d9: next_state = 4d10; 4d10: next_state = 4d11; 4d11: next_state = 4d0; default: next_state = 4d0; endcasealways (state) case(state) 4d0:wrregen=0; 4d1:wrregen=1; 4d2:wrregen=1; 4d3:wrregen=1; 4d4:wrregen=1; 4d5:wrregen=1; 4d6:wrregen=1; 4d7:wrregen=1; 4d8:wrregen=1; 4d9:wrregen=1; 4d10:wrregen=1; 4d11:wrregen=1; default: wrregen=0; endcaseassign mixsel=0;assign reginsel=0;always (state) case(state) 4d0:keyadsel=2b00; 4d1:keyadsel=2b00; 4d2:keyadsel=2b01; 4d3:keyadsel=2b01; 4d4:keyadsel=2b01; 4d5:keyadsel=2b01; 4d6:keyadsel=2b01; 4d7:keyadsel=2b01; 4d8:keyadsel=2b01; 4d9:keyadsel=2b01; 4d10:keyadsel=2b01; 4d11:keyadsel=2b10; default: keyadsel=2b00; endcasealways (state) case(state) 4d0:rdkrfaddr=4d0; 4d1:rdkrfaddr=4d0; 4d2:rdkrfaddr=4d1; 4d3:rdkrfaddr=4d2; 4d4:rdkrfaddr=4d3; 4d5:rdkrfaddr=4d4; 4d6:rdkrfaddr=4d5; 4d7:rdkrfaddr=4d6; 4d8:rdkrfaddr=4d7; 4d9:rdkrfaddr=4d8; 4d10:rdkrfaddr=4d9; 4d11:rdkrfaddr=4d10; default: rdkrfaddr=4d0; endcasealways (state) case(state) 4d0: encrdy=1; default: encrdy=0; endcaseendmodule 3、已知AES密钥扩展算法如下(用伪代码描述):KeyExpansion(byte key4*Nk,word wNb*(Nr+1)begin word temp i=0 while (i Nk) wi = word(key4 * i,key4 * i+1,key4 * i+2,key4 * i+3) i = i+1 end while i = Nk while (i Nb * (Nr+1) temp = wi - 1 if ( i mod Nk = 0 ) temp = Subword(Rotword(temp) xor Rconi/Nk end if w i = wi - Nk xor temp i = i +1 end while end试提出AES密钥扩展模块的电路设计方案(包括电路结构图和外部信号说明),并建立Verilog模型。1、电路结构设计图1 密钥扩展模块的电路结构图密钥扩展模块的外部信号如下表所示:表1 密钥扩展模块的外部信号说明信号名称信号宽度传输方向信号含义clk1位输入时钟信号。rst1位输入复位信号,1有效。有效时使轮常数产生模块输出第一个轮常数。keysel1位输入轮密钥选择信号,keysel=0选择密钥寄存器中的种子密钥,否则,选择经过密钥扩展变换的轮密钥。rndkren1位输入轮密钥寄存器写使能信号,1有效。wrrndkrf1位输入轮密钥寄存器堆写使能信号,1有效。addr4位输入轮密钥寄存器堆地址,表示11个轮密钥寄存器的地址。rconen1位输入轮常数寄存器写使能信号,1有效。当有效时将下一个轮常数写入轮常数寄存器。key128位输入种子密钥,来自于密钥寄存器的输出。rndkrfout128位输出轮密钥寄存器堆的输出,为加解密模块提供需要的轮密钥。module keyexp(clk,rst,keysel,rndkren,wrrndkrf,addr,rconen,key,rndkrfout);output127:0 rndkrfout;input clk,rst,keysel,rndkren,wrrndkrf,rconen;input3:0 addr;input127:0 key;wire 127:0 rndkey,rndkrout,rndkrfout;wire 31:0 w4,w5,w6,w7,rotword,subword,xorrcon;wire 7:0 rconout;assign rndkey=(keysel=0) ? key:w4,w5,w6,w7;reg_128 rndkreg(clk,rndkren,rndkey,rndkrout);rndkrf rndkrf(clk,wrrndkrf,addr,rndkey,rndkrfout);assign rotword=rndkrout23:0,rndkrout31:24;sbox_mux sbox0(rotword31:24,subword31:24);sbox_mux sbox1(rotword23:16,subword23:16);sbox_mux sbox2(rotword15:8,subword15:8);sbox_mux sbox3(rotword7:0,subword7:0);rcon rcon(clk,rst,rconen,rconout);assign xorrcon=subwordrconout,24h000000;assign w4=xorrconrndkrout127:96;assign w5=w4rndkrout95:64;assign w6=w5rndkrout63:32;assign w7=w6rndkrout31:0;endmodule4、已知AES密钥扩展算法如下(用伪代码描述):KeyExpansion(byte key4*Nk,word wNb*(Nr+1)begin word temp i=0 while (i Nk) wi = word(key4 * i,key4 * i+1,key4 * i+2,key4 * i+3) i = i+1 end while i = Nk while (i Nb * (Nr+1) temp = wi - 1 if ( i mod Nk = 0 ) temp = Subword(Rotword(temp) xor Rconi/Nk end if w i = wi - Nk xor temp i = i +1 end while end试提出AES密钥扩展状态机的电路设计方案(包括状态划分与定义、状态转移图等),并建立Verilog模型。module keyexpfsm(clk,rst,keyexp,keysel,rndkren,wrrndkrf,wrkrfaddr,rconen,keyexprdy);output keysel,rndkren,wrrndkrf,rconen,keyexprdy;output 3:0 wrkrfaddr;input clk,rst,keyexp;reg 3:0 state,next_state,wrkrfaddr;reg keysel,rndkren,keyexprdy;always (posedge clk)beginif(rst)state=4d0;elsestate=next_state;endalways (state or keyexp) case(state) 4d0:if(keyexp = 1) next_state = 4d1; else next_state = 4d0; 4d1: next_state = 4d2; 4d2: next_state = 4d3; 4d3: next_state = 4d4; 4d4: next_state = 4d5; 4d5: next_state = 4d6; 4d6: next_state = 4d7; 4d7: next_state = 4d8; 4d8: next_state = 4d9; 4d9: next_state = 4d10; 4d10: next_state = 4d11; 4d11: next_state = 4d0; default: next_state = 4d0; endcasealways (state) case(state) 4d0:keysel=0; 4d1:keysel=0; 4d2:keysel=1; 4d3:keysel=1; 4d4:keysel=1; 4d5:keysel=1; 4d6:keysel=1; 4d7:keysel=1; 4d8:keysel=1; 4d9:keysel=1; 4d10:keysel=1; 4d11:keysel=1; default: keysel=0; endcasealways (state) case(state) 4d0:rndkren=0; 4d1:rndkren=1; 4d2:rndkren=1; 4d3:rndkren=1; 4d4:rndkren=1; 4d5:rndkren=1; 4d6:rndkren=1; 4d7:rndkren=1; 4d8:rndkren=1; 4d9:rndkren=1; 4d10:rndkren=1; 4d11:rndkren=1; default: rndkren=0; endcaseassign wrrndkrf=rndkren;always (state) case(state) 4d0:wrkrfaddr=4d0; 4d1:wrkrfaddr=4d0; 4d2:wrkrfaddr=4d1; 4d3:wrkrfaddr=4d2; 4d4:wrkrfaddr=4d3; 4d5:wrkrfaddr=4d4; 4d6:wrkrfaddr=4d5; 4d7:wrkrfaddr=4d6; 4d8:wrkrfaddr=4d7; 4d9:wrkrfaddr=4d8; 4d10:wrkrfaddr=4d9; 4d11:wrkrfaddr=4d10; default: wrkrfaddr=4d0; endcaseassign rconen=keysel;always (state) case(state) 4d0:keyexprdy=1; default: keyexprdy=0; endcaseendmodule 5、试用Verilog HDL设计一个带三态输出控制端的8位4选1多路选择器。6、试用Verilog HDL设计一个带计数使能端和异步复位端的8位计数器。7、已知AES加密过程如下(用伪代码描述):Cipher(plaintext,ciphertext,CiperKey) /初始化State = plaintext;KeyExpansion(CipherKey, ExpandedKey);/生成扩展密钥 AddRoundKey(State, ExpandedKey);/前Nr 1轮 for(r=1;rNr;r+) SubBytes(State); ShiftRow(State); MixColumn(State); AddRoundKey(State, ExpandedKey); /最后一轮 SubBytes(State); ShiftRow(State); AddRoundKey(State, ExpandedKey);Ciphertext = state; 试提出AES加密模块的电路设计方案,包括电路结构图和外部信号说明。表1 加密/解密模块的外部信号说明信号名称信号宽度传输方向信号含义clk1位输入时钟信号。wrsben1位输入向S盒写入配置数据的使能信号,1有效。wrsbaddr4位输入S盒配置数据的地址,一个S盒包含256个字节,一次写入16位,因此共需要写128次,需要128个地址,所以需要4位地址码。sbdata128位输入S盒配置数据。keyadsel2位输入密钥加操作输入数据选择信号,mixsel1位输入选择是否进行逆列混合变换,在进行第1-9轮解密变换时为1,其余时间为0。reginsel1位输入结果寄存器输入数据选择信号。wrregen1位输入结果寄存器写使能信号,1有效。intxt128位输入外部输入数据(明文或密文)。roundkey128位输入子密钥。shift1位输入结果寄存器移位使能信号,1有效,有效时将128位结果寄存器中的数据右移16位。outtxt128位输出输出数据(加密/解密结果)。8、试用Verilog语言设计一个带使能端的2-4译码器。9、试用Verilog语言设计一个带同步复位和写使能的16位寄存器,要求复位信号和写使能信号均为1有效。10、试用Verilog语言设计一个4选1多路选择器。11、试用Verilog语言设计一个3-8译码器。12、试用Verilog语言设计一个带异步复位和写使能的D触发器,要求复位信号和写使能信号均为1有效。13、试提出一个AES IP核的体系结构设计方案,即AES IP核包括哪几个模块?每个模块完成什么功能?AES IP核的主要外部信号有哪些?每个信号的传输方向和作用是什么?要求画出AES IP核的体系结构图。(注:AES为高级加密标准算法)。AES模块包括明/密文和密钥寄存器、密钥扩展、加/解密运算、控制等多个子模块,其系统结构图如下图所示。每个子模块的功能如下:1)明文/密文/密钥:用于存放明文、密文、密钥,但是不同时存放。其详细功能描述如下:在时钟信号clk的上升沿,若寄存器写使能信号write有效,则将输入数据总线din上的16位数据写入明文/密文/密钥寄存器的高16位,同时将寄存器原来的数据右移16位放入寄存器的低112位。若寄存器写使能信号write无效,则寄存器保持原来的数据不变。由此可见,1个128位的数据需要经过8个时钟周期,通过8次写操作才能装入寄存器2)密钥扩展模块:通过种子密钥生成11个子密钥。AES算法首先得到初始密钥K后,执行一个密钥扩展程序以产生所有的轮密钥。密钥扩展共产生Nb ( Nr+1 )个32bit字,算法初始需要一个Nb个32bit字的集合,接着每个轮操作都需要Nb个32bit字的密钥数据。3)加密/解密模块:对明文进行加密或对密文进行解密。AES加密过程由一个初始密钥加(异或)变换和十个轮变换构成,其中除第10个轮变换外,每个轮变换都是一样的,都是由字节代替(S盒变换)、行移位、列混合、密钥加4个子变换组成,第10个轮变换由字节代替、行移位、密钥加3个子变换组成,不包括列混合变换。 通过类似分析,可以得出AES解密过程包括逆S盒变换、09乘字节、0b乘字节、0d乘字节、0e乘字节、异或共6种操作。4)控制模块:控制明文/密文/密钥、密钥扩展模块和加密/解密模块的进行。信号名称信号宽度传输方向信号含义clk1位输入时钟信号rst1位输入复位信号,1有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030美妆工具发展趋势分析与未来投资战略咨询研究报告
- 2025至2030莱姆病疫苗行业发展趋势分析与未来投资战略咨询研究报告
- 2025-2030中国消化系统药物行业发展分析与投资机会预测报告
- 2025-2030中国柔性显示屏量产良品率提升技术路线对比分析报告
- 2025-2030中国智能网联汽车商业化落地路径及投资风险分析报告
- 2025-2030中国数字营销技术演进与消费者行为变迁研究报告
- 2025-2030中国数字化转型发展现状及未来趋势分析报告
- 2025年健身教练职业技能考核试卷:健身教练健身俱乐部会员服务与管理试题
- 2025年初中地理学业水平考试实验探究模拟试卷及答案
- 2025年环保产业财务稳健性及发展潜力可行性分析报告
- 水生产处理工三级安全教育(班组级)考核试卷及答案
- 2025至2030中国魔芋行业项目调研及市场前景预测评估报告
- 2024新译林版英语八年级上Unit 3 To be a good learner单词表(开学版)
- DGTJ08-2310-2019 外墙外保温系统修复技术标准
- 软件开发分包管理措施
- 冬季四防培训课件
- (餐饮娱乐业态助手模板合集)店铺选址评估审批表
- 腕踝针案例分析
- 天津市河东区2024-2025学年上学期第一次月考七年级数学试题(含答案解析)
- 第一次月考2024-2025学年度九年级英语
- TB-T 3356-2021铁路隧道锚杆-PDF解密
评论
0/150
提交评论