freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

des加密verilog模塊設計方案(已改無錯字)

2023-06-14 03:32:19 本頁面
  

【正文】 節(jié)的最末一位用奇偶校驗,也就是只有56bit真正包含了密鑰信息。排PC1之后分別存到28bit的寄64bit的外部密鑰K輸入以后,首先通過奇偶校驗,剔除奇偶校驗位,得到56bit的密鑰M,M又經(jīng)過換位重存器C0和D0中。PC1的換位重排規(guī)律如表48所示。表48 PC1的換位重排規(guī)律57494133251791585042342618102595143352719113605244366355473931231576254463830221466153453729211352820124在內(nèi)部子密鑰產(chǎn)生器中,除寄存器(C0,D0)外,還有16對寄存器,即(C1,D1),(C2,D2) ……(C16,D16)。加密時的內(nèi)容是將C 和D中的內(nèi)容分別向左移動1至2位得到的,而且這種移位方式是按循環(huán)移位寄存器方式進行的。在16次左移操作中,總共向左移動了28bit,這樣就保證了C16=C0,D16=D0,即(C16,D16)的內(nèi)容和(C0,D0)完全相同。表49 PC2換位重排規(guī)律141711241532815621102319124268167272013241523137475530405145334844493954345346425036293248bit的內(nèi)部子密鑰K是從寄存器C1和D1所存儲的56bit中,經(jīng)過PC2重排按固定方式從中選出的48bit。解密和加密時所用的外部密鑰K完全相同,只是在解密時內(nèi)部16步非線性變換所用的內(nèi)部子密鑰應按K16,…K2,K1的次序使用。密鑰產(chǎn)生模塊key_gen如圖44所示。previous_key[55…0]iteration[3…0]decryptnon_perm_key[55…0]new_key[47…0]圖44 密鑰產(chǎn)生模塊key_genkey_gen模塊核心程序如下:……prev_key_var=previous_key。 iteration CASE 選擇new_key_var=0。new_key=(0)。non_perm_key_var=0。non_perm_key=(0)。if(!decrypt)begin case(iteration) 0,1,8,15。 begin semi_key= prev_key_var[55:28]。 prev0= semi_key[27]。 semi_key= semi_key1。 semi_key[0]=prev0。 non_perm_key_var[55:28]= semi_key。 semi_key= perv_key_var[27:0]。 non_perm_key_var[27:0]= semi_key。 …… default: begin semi_key= prev_key_var[55:28]。 prev0= semi_key[27]。 prev0= semi_key[26]。 semi_key= semi_key2。 semi_key[1]=prev0。 semi_key[0]=prev1。 non_perm_key_var[55:28]= semi_key。 semi_key= perv_key_var[27:0]。 ……elsebegincase(iteration)0: begin semi_key= prev_key_var[55:28]。 non_perm_key_var[55:28]= semi_key。 ……non_perm_key=(non_perm_key_var)。 new_key_var產(chǎn)生電路new_key_var[47]= non_perm_key_var[42]。new_key_var[46]= non_perm_key_var[39]。new_key_var[45]= non_perm_key_var[45]。new_key_var[44]= non_perm_key_var[32]。……new_key_var[2]= non_perm_key_var[20]。new_key_var[1]= non_perm_key_var[27]。new_key_var[0]= non_perm_key_var[24]。new_key=( new_key_var)?!赿ecrypt=decrypt=0條件下,key_gen仿真波形分別如圖4圖46所示。 圖45 decrypt=1時key_gen部分仿真波形 圖46 decrypt=0時key_gen部分仿真波形 S部件代換模塊設計擴展器輸出的48bit數(shù)據(jù)和密鑰K模2相加得到48bit的數(shù)據(jù)A,這個數(shù)據(jù)必須代換為32bit的數(shù)據(jù)B,再經(jīng)過重排P(B),然后才能和L進行運算。S代換部件就是完成從48bit到32bit的代換并重排。S代換部件是一個十分復雜的非線性函數(shù),正是經(jīng)過它的非線性變換才使明文實現(xiàn)了較好的混亂(confusion),達到加解密效果,從而具有較強的安全性。S代換部件在整個DES算法中所占比重較大,一共有8個模塊,是設計中需要關注的部分。S盒的設計準則如下:l 沒有一個S代換部件的輸出位是接近輸入位的線性函數(shù)。l 如果將輸入位的最左或最右端的位固定,變化中間的4位,每個可能的4位輸出只能得到一次。l 如果S部件兩個輸入僅有1位的差異,則其輸出必須至少有2位不同。l 如果S代換部件的兩個輸入僅有中間2位不同,則其輸出必須至少有2位不同。l 如果S代換部件的兩個輸入前2位不同,后2位已知,則其輸出必不同。l 對于輸入之間的任何非零的G位差分,32對中至多有8對顯示出的差分導致了相同的輸出差分。對于S代換部件的實現(xiàn),主要有兩種方法:查表法,邏輯電路法。本章節(jié)通過邏輯電路法實現(xiàn)S代換部件。使用邏輯電路法來設計的時候,通常使用硬件描述語言Verilog HDL編寫程序作為設計輸入。S部件代換模塊S1,S8仿真波形分別如圖47和圖48所示。 desround 模塊設計desround模塊執(zhí)行DES算法中的一輪非線性變換。一輪非線性變換的作用過程:第i步非線性變換的輸入信號是32bit的右寄存器R(i),首先把它加到擴展器E上,擴展器把32bit的輸入擴展為48bit的輸出,圖47 S1部件代換模塊仿真圖圖48 S8部件代換模塊仿真圖然后與第i步的第48bit內(nèi)部變換子密鑰K(i)按位模2相加。接著輸出的48bit,被劃分為8組,每組6bit,分別加到8個代換部件S1,S2,…,S8上,經(jīng)查表代換后輸出4bit。8個部件共輸出32bit,這32bit又經(jīng)過換位重排,再與變換信號的左半部分L(i1)按位模2相加,就成為下一步變換信號的右半部分R(i).相應的左半部分則為L(i)=R(i1)。其中擴展器的工作原理如下。假設32bit的輸入為: R=r,r,…,r32bit的輸入被分為8組,每組4bit,再把每組4bit前后各加一個bit,從而擴展為6bit。每組前面的一個bit是復制上一組擴展前的最后一個bit,后面加的一個bit是復制下一組擴展前的最開始的一個bit。而第一組加的一個bit是擴展前的第32bit,第八組后面加上的一個bit則是擴展前第一組的頭一個bit。本模塊調(diào)用了密鑰生成模塊,它的輸出除了左半信號和右半信號,還有密鑰信號。在這一輪運算中,密鑰產(chǎn)生器產(chǎn)生了一個沒有經(jīng)PC2重排的56bit的數(shù)據(jù)(它是由preious_key移位而得)。這個信號會輸出給Key_o,作為下輪運算的一個輸入,用以產(chǎn)生下一輪運算所需的密鑰。desround模塊核心程序如下:key_gen1(.previous_key(previous_key), key_gen 調(diào)用 .iteration(iteration),.decrypt(decrypt), .new_key(new_key),.non_perm_key))。always@(posedge clk or negedge reset) begin L_o、R_o、Key_o產(chǎn)生邏輯 if(!reset) begin L_o=(0)。 R_o=(0)。 Key_o=(0)。 end else begin L_o=(R_i)。 R_o=(next_R)。 Key_o=(non_perm_key)。 end endalways@(R_i or L_i or
點擊復制文檔內(nèi)容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1