亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? sms4_cal.v

?? Verilog實(shí)現(xiàn)的SMS4
?? V
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
module           SMS4_Cal  (                            clk         	,                                rst_n           	,			     			    SMS4_sw_rst		,	                            			    			    secret_reg,			    data_reg,                           			   			    SMS4_ready	,			    SMS4_DataOut        ,			    			    start_pulse		,			    logic_start    	, 			    SMS4_encrypt_start  ,       			    secret_update	, 			    secret_update_clr	                           			                                      );  				  				                                                                                                                      input clk         ;input rst_n       ;input SMS4_sw_rst;input start_pulse;input [127:0] secret_reg;input [127:0] data_reg;input logic_start;	input SMS4_encrypt_start;	input secret_update;output [127:0] SMS4_DataOut;output  SMS4_ready;output secret_update_clr;// internal signalreg [31:0]   data_out_reg0;reg [31:0]   data_out_reg1;reg [31:0]   data_out_reg2;reg [31:0]   data_out_reg3;wire SMS4_ready;reg  ready_delay;                            wire one_ring_end;wire [31:0]  t_in ;reg [31:0]  t_out ;wire [31:0]  lc_out_secret; wire [31:0]  lc_out_data ;wire [31:0]  lc_out ;wire [31:0]  ring_out ;wire [31:0] common_reg3;wire [31:0] common_reg2;wire [31:0] common_reg1;wire [31:0] common_reg0;wire [31:0] common_para;wire secret_or_data;wire [31:0] parameter_ck;reg[4:0] cal_t;reg [3:0] cnt_in_ring;reg data_ready;reg [31:0] ring_secret;reg cal_secret;reg cal_data;wire [31:0] secret_reg3;wire [31:0] secret_reg2;wire [31:0] secret_reg1;wire [31:0] secret_reg0;wire [31:0] data_reg3;wire [31:0] data_reg2;wire [31:0] data_reg1;wire [31:0] data_reg0;// the 32 secret reg for store extend secret reg [31:0] secret_ext_reg0,secret_ext_reg31;reg [31:0] secret_ext_reg1,secret_ext_reg11,secret_ext_reg21;reg [31:0] secret_ext_reg2,secret_ext_reg12,secret_ext_reg22;reg [31:0] secret_ext_reg3,secret_ext_reg13,secret_ext_reg23;reg [31:0] secret_ext_reg4,secret_ext_reg14,secret_ext_reg24;reg [31:0] secret_ext_reg5,secret_ext_reg15,secret_ext_reg25;reg [31:0] secret_ext_reg6,secret_ext_reg16,secret_ext_reg26;reg [31:0] secret_ext_reg7,secret_ext_reg17,secret_ext_reg27;reg [31:0] secret_ext_reg8,secret_ext_reg18,secret_ext_reg28;reg [31:0] secret_ext_reg9,secret_ext_reg19,secret_ext_reg29;reg [31:0] secret_ext_reg10,secret_ext_reg20,secret_ext_reg30;reg secret_update_clr_delay;// the system parameter constant of 32*4 key.parameter[31:0] fk0  =  32'ha3b1bac6;parameter[31:0] fk1  =  32'h56aa3350;parameter[31:0] fk2  =  32'h677d9197;parameter[31:0] fk3  =  32'hb27022dc;assign secret_reg3 = secret_reg[127:96];assign secret_reg2 = secret_reg[95:64];assign secret_reg1 = secret_reg[63:32];assign secret_reg0 = secret_reg[31:0];assign data_reg3 = data_reg[127:96];assign data_reg2 = data_reg[95:64];assign data_reg1 = data_reg[63:32];assign data_reg0 = data_reg[31:0];// encrypt and decrypt the data assign secret_or_data = cal_secret;	// 1: secret cal period,0:data cal periodassign parameter_ck = ck(cal_t);assign common_reg3 = data_out_reg3;assign common_reg2 = data_out_reg2;assign common_reg1 = data_out_reg1;assign common_reg0 = data_out_reg0;assign common_para = secret_or_data ? parameter_ck : ring_secret;// secret_ring = T(secret1,secret2,secret3,parameter_ck);// t_in: the input of function litter t// t_out : the output of function litter t// lc_out : the output of function linechange// secret_ring : the Ki+4 , the ring secretassign t_in = common_reg3 ^ common_reg2 ^ common_reg1 ^ common_para;reg [7:0] t_out_3;reg [7:0] t_out_2;reg [7:0] t_out_1;reg [7:0] t_out_0;always@(posedge clk or negedge rst_n)begin  if(!rst_n)  begin    t_out_3 <= 8'h00;    t_out_2 <= 8'h00;    t_out_1 <= 8'h00;    t_out_0 <= 8'h00;    t_out   <= 32'h0000;  end  else if(SMS4_sw_rst)  begin    t_out_3 <= 8'h00;    t_out_2 <= 8'h00;    t_out_1 <= 8'h00;    t_out_0 <= 8'h00;    t_out   <= 32'h0000;  end  else if(logic_start && cnt_in_ring==4'd0)    t_out_3 <= sbox(t_in[31:24]);  else if(logic_start && cnt_in_ring==4'd1)    t_out_2 <= sbox(t_in[23:16]);  else if(logic_start && cnt_in_ring==4'd2)    t_out_1 <= sbox(t_in[15:8]);  else if(logic_start && cnt_in_ring==4'd3)    t_out_0 <= sbox(t_in[7:0]);  else if(logic_start && cnt_in_ring==4'd4)    t_out <= {t_out_3,t_out_2,t_out_1,t_out_0};endassign lc_out_secret = lc_secret(t_out);assign lc_out_data = lc_data(t_out);assign lc_out = secret_or_data ? lc_out_secret : lc_out_data;assign ring_out = common_reg0 ^ lc_out;// cal the extend secret and store in the reg secret_ext_reg0~secret_ext_reg31always@(posedge clk or negedge rst_n)begin  if(!rst_n)  begin	secret_ext_reg0 <= 32'd0;	secret_ext_reg1 <= 32'd0;	secret_ext_reg2 <= 32'd0;	secret_ext_reg3 <= 32'd0;	secret_ext_reg4 <= 32'd0;	secret_ext_reg5 <= 32'd0;	secret_ext_reg6 <= 32'd0;	secret_ext_reg7 <= 32'd0;	secret_ext_reg8 <= 32'd0;	secret_ext_reg9 <= 32'd0;	secret_ext_reg10 <= 32'd0;	secret_ext_reg11 <= 32'd0;	secret_ext_reg12 <= 32'd0;	secret_ext_reg13 <= 32'd0;	secret_ext_reg14 <= 32'd0;	secret_ext_reg15 <= 32'd0;	secret_ext_reg16 <= 32'd0;	secret_ext_reg17 <= 32'd0;	secret_ext_reg18 <= 32'd0;	secret_ext_reg19 <= 32'd0;	secret_ext_reg20 <= 32'd0;	secret_ext_reg21 <= 32'd0;	secret_ext_reg22 <= 32'd0;	secret_ext_reg23 <= 32'd0;	secret_ext_reg24 <= 32'd0;	secret_ext_reg25 <= 32'd0;	secret_ext_reg26 <= 32'd0;	secret_ext_reg27 <= 32'd0;	secret_ext_reg28 <= 32'd0;	secret_ext_reg29 <= 32'd0;	secret_ext_reg30 <= 32'd0;	secret_ext_reg31 <= 32'd0;  end  else if(cal_secret && cnt_in_ring==4'd5)  begin	    case(cal_t)	    5'd0:secret_ext_reg0 <= ring_out; 	    5'd1:secret_ext_reg1 <= ring_out; 	    5'd2:secret_ext_reg2 <= ring_out; 	    5'd3:secret_ext_reg3 <= ring_out; 	    5'd4:secret_ext_reg4 <= ring_out; 	    5'd5:secret_ext_reg5 <= ring_out; 	    5'd6:secret_ext_reg6 <= ring_out; 	    5'd7:secret_ext_reg7 <= ring_out; 	    5'd8:secret_ext_reg8 <= ring_out; 	    5'd9:secret_ext_reg9 <= ring_out; 	    5'd10:secret_ext_reg10 <= ring_out; 	    5'd11:secret_ext_reg11 <= ring_out; 	    5'd12:secret_ext_reg12 <= ring_out; 	    5'd13:secret_ext_reg13 <= ring_out; 	    5'd14:secret_ext_reg14 <= ring_out; 	    5'd15:secret_ext_reg15 <= ring_out; 	    5'd16:secret_ext_reg16 <= ring_out; 	    5'd17:secret_ext_reg17 <= ring_out; 	    5'd18:secret_ext_reg18 <= ring_out; 	    5'd19:secret_ext_reg19 <= ring_out; 	    5'd20:secret_ext_reg20 <= ring_out; 	    5'd21:secret_ext_reg21 <= ring_out;  	    5'd22:secret_ext_reg22 <= ring_out;  	    5'd23:secret_ext_reg23 <= ring_out; 	    5'd24:secret_ext_reg24 <= ring_out; 	    5'd25:secret_ext_reg25 <= ring_out; 	    5'd26:secret_ext_reg26 <= ring_out; 	    5'd27:secret_ext_reg27 <= ring_out; 	    5'd28:secret_ext_reg28 <= ring_out; 	    5'd29:secret_ext_reg29 <= ring_out; 	    5'd30:secret_ext_reg30 <= ring_out; 	    5'd31:secret_ext_reg31 <= ring_out;             endcase  endend// gen the ring secret ,the four reg assign SMS4_DataOut = {data_out_reg3,data_out_reg2,data_out_reg1,data_out_reg0};always@(posedge clk or negedge rst_n)begin  if(!rst_n)  begin    data_out_reg0 <= 32'h0000;    data_out_reg1 <= 32'h0000;    data_out_reg2 <= 32'h0000;    data_out_reg3 <= 32'h0000;  end  else if(SMS4_sw_rst)  begin    data_out_reg0 <= 32'h0000;    data_out_reg1 <= 32'h0000;    data_out_reg2 <= 32'h0000;    data_out_reg3 <= 32'h0000;  end  else if(start_pulse && secret_update)	// add init ring key value at calculation ring key  begin    data_out_reg0 <= fk0^secret_reg3;    data_out_reg1 <= fk1^secret_reg2;    data_out_reg2 <= fk2^secret_reg1;    data_out_reg3 <= fk3^secret_reg0;  end// load data at encry or decry the data, one case is input key , one case is no input key  else if((start_pulse && !secret_update) || (secret_update && secret_update_clr))	  begin    data_out_reg0 <= data_reg3;    data_out_reg1 <= data_reg2;    data_out_reg2 <= data_reg1;    data_out_reg3 <= data_reg0;  end// control loop of four register, one for control calculation ring secret and one for calculation data   else if((cal_secret && cnt_in_ring == 4'd5) || (cal_data && one_ring_end))  begin     data_out_reg0 <= data_out_reg1;    data_out_reg1 <= data_out_reg2;    data_out_reg2 <= data_out_reg3;    data_out_reg3 <= ring_out;  endendalways@(SMS4_encrypt_start or cal_t or secret_ext_reg0 or secret_ext_reg1 or secret_ext_reg2 or secret_ext_reg3 		or secret_ext_reg4 or secret_ext_reg5 or secret_ext_reg6 or secret_ext_reg7    			or secret_ext_reg8 or secret_ext_reg9 or secret_ext_reg10 or secret_ext_reg11 		or secret_ext_reg12 or secret_ext_reg13 or secret_ext_reg14 or secret_ext_reg15 		or secret_ext_reg16 or secret_ext_reg17 or secret_ext_reg18 or secret_ext_reg19 		or secret_ext_reg20 or secret_ext_reg21 or secret_ext_reg22 or secret_ext_reg23 		or secret_ext_reg24 or secret_ext_reg25 or secret_ext_reg26 or secret_ext_reg27 		or secret_ext_reg28 or secret_ext_reg29 or secret_ext_reg30 or secret_ext_reg31) begin  if(SMS4_encrypt_start)  begin    case(cal_t)    5'd0: ring_secret <= secret_ext_reg0;    5'd1: ring_secret <= secret_ext_reg1;    5'd2: ring_secret <= secret_ext_reg2;    5'd3: ring_secret <= secret_ext_reg3;    5'd4: ring_secret <= secret_ext_reg4;    5'd5: ring_secret <= secret_ext_reg5;    5'd6: ring_secret <= secret_ext_reg6;    5'd7: ring_secret <= secret_ext_reg7;    5'd8: ring_secret <= secret_ext_reg8;    5'd9: ring_secret <= secret_ext_reg9;    5'd10: ring_secret <= secret_ext_reg10;    5'd11: ring_secret <= secret_ext_reg11;    5'd12: ring_secret <= secret_ext_reg12;    5'd13: ring_secret <= secret_ext_reg13;    5'd14: ring_secret <= secret_ext_reg14;    5'd15: ring_secret <= secret_ext_reg15;    5'd16: ring_secret <= secret_ext_reg16;    5'd17: ring_secret <= secret_ext_reg17;    5'd18: ring_secret <= secret_ext_reg18;    5'd19: ring_secret <= secret_ext_reg19;    5'd20: ring_secret <= secret_ext_reg20;    5'd21: ring_secret <= secret_ext_reg21;    5'd22: ring_secret <= secret_ext_reg22;    5'd23: ring_secret <= secret_ext_reg23;    5'd24: ring_secret <= secret_ext_reg24;    5'd25: ring_secret <= secret_ext_reg25;    5'd26: ring_secret <= secret_ext_reg26;    5'd27: ring_secret <= secret_ext_reg27;    5'd28: ring_secret <= secret_ext_reg28;    5'd29: ring_secret <= secret_ext_reg29;    5'd30: ring_secret <= secret_ext_reg30;    5'd31: ring_secret <= secret_ext_reg31;    endcase  end  else   begin    case(cal_t)    5'd0: ring_secret <= secret_ext_reg31;    5'd1: ring_secret <= secret_ext_reg30;    5'd2: ring_secret <= secret_ext_reg29;    5'd3: ring_secret <= secret_ext_reg28;    5'd4: ring_secret <= secret_ext_reg27;    5'd5: ring_secret <= secret_ext_reg26;    5'd6: ring_secret <= secret_ext_reg25;    5'd7: ring_secret <= secret_ext_reg24;    5'd8: ring_secret <= secret_ext_reg23;    5'd9: ring_secret <= secret_ext_reg22;    5'd10: ring_secret <= secret_ext_reg21;    5'd11: ring_secret <= secret_ext_reg20;    5'd12: ring_secret <= secret_ext_reg19;    5'd13: ring_secret <= secret_ext_reg18;    5'd14: ring_secret <= secret_ext_reg17;    5'd15: ring_secret <= secret_ext_reg16;    5'd16: ring_secret <= secret_ext_reg15;    5'd17: ring_secret <= secret_ext_reg14;    5'd18: ring_secret <= secret_ext_reg13;    5'd19: ring_secret <= secret_ext_reg12;    5'd20: ring_secret <= secret_ext_reg11;    5'd21: ring_secret <= secret_ext_reg10;    5'd22: ring_secret <= secret_ext_reg9;    5'd23: ring_secret <= secret_ext_reg8;    5'd24: ring_secret <= secret_ext_reg7;    5'd25: ring_secret <= secret_ext_reg6;    5'd26: ring_secret <= secret_ext_reg5;    5'd27: ring_secret <= secret_ext_reg4;    5'd28: ring_secret <= secret_ext_reg3;    5'd29: ring_secret <= secret_ext_reg2;    5'd30: ring_secret <= secret_ext_reg1;    5'd31: ring_secret <= secret_ext_reg0;    endcase  endend// cnt for count in a ring of encrypt calculationalways@(posedge clk or negedge rst_n)begin  if(!rst_n)    cnt_in_ring <= 4'd0;  else if(SMS4_sw_rst || one_ring_end || SMS4_ready)    cnt_in_ring <= 4'd0;  else if(secret_update_clr_delay)    cnt_in_ring <= 4'd0;  else if(cal_data || cal_secret)     cnt_in_ring <= cnt_in_ring + 1'b1;end// one ring use 7 clkassign one_ring_end = (cnt_in_ring==4'd6);// control counter , use to counter 32 ring encrypt calculationalways@(posedge clk or negedge rst_n)

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久久久99精品| 精品美女在线播放| 极品尤物av久久免费看| 国产精品欧美极品| 制服丝袜中文字幕一区| 99精品久久99久久久久| 日本美女视频一区二区| 亚洲天堂网中文字| 久久久久久久久久久黄色| 欧美色窝79yyyycom| 福利电影一区二区| 另类小说一区二区三区| 亚洲激情五月婷婷| 中文字幕 久热精品 视频在线| 欧美日韩不卡一区二区| 91亚洲资源网| 国产成人午夜精品影院观看视频| 亚洲综合av网| 亚洲欧美一区二区不卡| 国产拍欧美日韩视频二区| 日韩网站在线看片你懂的| 欧美日韩的一区二区| 日本精品一区二区三区高清| 成人爽a毛片一区二区免费| 韩国精品免费视频| 另类的小说在线视频另类成人小视频在线| 亚洲精品国产第一综合99久久 | 视频精品一区二区| 亚洲美女电影在线| 国产精品第五页| 国产精品天干天干在线综合| 久久综合久久综合九色| 精品sm捆绑视频| 精品国产精品网麻豆系列 | 欧美成人福利视频| 欧美一区二区三区免费| 欧美日韩国产综合草草| 欧美日本在线视频| 欧美日韩国产小视频| 精品视频1区2区3区| 精品视频色一区| 91精品国产综合久久香蕉的特点| 欧美日韩日本视频| 欧美高清一级片在线| 欧美高清视频www夜色资源网| 欧美日韩成人综合在线一区二区| 欧美日韩免费视频| 91精品福利在线一区二区三区| 91精品国产乱| 精品久久久久久久人人人人传媒 | 在线亚洲欧美专区二区| 99国产欧美久久久精品| 91免费观看视频在线| 在线观看免费亚洲| 欧美剧在线免费观看网站| 91精品欧美综合在线观看最新 | 91欧美激情一区二区三区成人| 99精品视频一区| 欧美色国产精品| 欧美成人bangbros| 中文字幕不卡的av| 亚洲精品免费看| 日韩精彩视频在线观看| 久久精品国产99久久6| 国产高清精品在线| 色悠悠亚洲一区二区| 欧美精品aⅴ在线视频| 久久色视频免费观看| 最新国产成人在线观看| 午夜视频一区在线观看| 精品亚洲成av人在线观看| 9色porny自拍视频一区二区| 欧美三级日韩三级国产三级| 精品日韩在线观看| 日韩毛片精品高清免费| 天天操天天干天天综合网| 国产一区二区三区蝌蚪| av电影在线观看一区| 欧美精品九九99久久| 久久久久久久电影| 亚洲一区日韩精品中文字幕| 男女男精品网站| av在线不卡网| 欧美一区二区免费观在线| 欧美国产日韩一二三区| 亚洲超丰满肉感bbw| 国产精品一二三四五| 日本韩国精品在线| 久久综合九色综合欧美98| 亚洲伦在线观看| 久久99精品国产麻豆不卡| 91污在线观看| 精品乱码亚洲一区二区不卡| 亚洲黄色尤物视频| 国产一区二区三区综合| 欧美视频在线观看一区二区| 久久久精品免费网站| 亚洲国产色一区| 国产白丝网站精品污在线入口| 欧美视频自拍偷拍| 中文字幕亚洲视频| 久久99久久久欧美国产| 欧美午夜影院一区| 国产精品久久久久三级| 九九视频精品免费| 欧美在线免费观看亚洲| 国产日本欧洲亚洲| 久久国产尿小便嘘嘘尿| 欧美综合欧美视频| 国产精品久久久久久久第一福利| 日韩成人免费在线| 在线一区二区三区四区五区| 国产精品美日韩| 国内精品伊人久久久久av一坑| 欧美日韩一区三区四区| 亚洲日本在线视频观看| 国产美女精品人人做人人爽 | 欧美一区二区高清| 一区二区激情小说| 99久久伊人久久99| 日本一区二区不卡视频| 激情国产一区二区| 欧美一级免费大片| 偷拍与自拍一区| 欧美视频在线播放| 亚洲欧美另类在线| 波多野结衣的一区二区三区| 久久久久国产成人精品亚洲午夜| 蜜桃精品视频在线| 日韩午夜av电影| 喷白浆一区二区| 欧美一区二区三区日韩| 日韩综合小视频| 欧美顶级少妇做爰| 视频一区国产视频| 91精品国产综合久久精品| 亚洲一二三专区| 欧美日韩一区小说| 日韩精品一二区| 欧美夫妻性生活| 热久久国产精品| 日韩亚洲国产中文字幕欧美| 免费看日韩a级影片| 日韩一区二区精品在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎 | 夜夜揉揉日日人人青青一国产精品| 成人av中文字幕| 最新热久久免费视频| 91视视频在线直接观看在线看网页在线看 | 国产精品久久看| 99国产精品久久久久| 亚洲女爱视频在线| 欧美在线高清视频| 日一区二区三区| 日韩亚洲欧美在线| 国产99精品在线观看| 中文字幕欧美一| 在线欧美日韩精品| 日韩成人免费看| 久久伊人中文字幕| av电影在线观看一区| 亚洲国产精品综合小说图片区| 91精品国产综合久久香蕉麻豆 | 伊人一区二区三区| 337p亚洲精品色噜噜狠狠| 久久激五月天综合精品| 国产日韩欧美精品一区| 91麻豆国产福利精品| 亚洲成人免费观看| 26uuu色噜噜精品一区二区| 成人av集中营| 亚洲图片欧美视频| 2欧美一区二区三区在线观看视频| 成人av集中营| 日本中文在线一区| 中文字幕成人网| 欧美美女直播网站| 国产传媒日韩欧美成人| 亚洲精品中文字幕乱码三区| 欧美色视频一区| 成人天堂资源www在线| 午夜影院久久久| 国产欧美精品一区| 欧美日韩国产色站一区二区三区| 狠狠狠色丁香婷婷综合激情| 亚洲人xxxx| 亚洲精品一区二区三区精华液| 91麻豆精东视频| 激情综合色播激情啊| 一区二区三区免费网站| www国产精品av| 欧美亚洲综合色| 成人免费毛片aaaaa**| 日韩电影在线看| 中文字幕综合网| 久久午夜羞羞影院免费观看| 91久久精品一区二区| 国产精品综合一区二区三区| 婷婷综合另类小说色区| 中文字幕一区二区三区不卡|