国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種適用于有限io資源的fpga的aes加解密方法及電路的制作方法

      文檔序號:9931083閱讀:685來源:國知局
      一種適用于有限io資源的fpga的aes加解密方法及電路的制作方法
      【技術(shù)領(lǐng)域】
      [0001] 本發(fā)明涉及通信領(lǐng)域,尤其是涉及一種適用于有限10資源的FPGA的AES加解密 方法及電路。
      【背景技術(shù)】
      [0002] 隨著物聯(lián)網(wǎng)的發(fā)展,射頻通信逐漸成為一種常見的信息交換方式。伴隨著現(xiàn)代 化的發(fā)展,這種信息交換方式的安全性越為越受到各方面的威脅,因此有必要對物聯(lián)網(wǎng)框 架下的射頻通信方式進(jìn)行信息加密保護(hù)。信息加密技術(shù)是保障信息安全的核心技術(shù)。在 物聯(lián)網(wǎng)通信鏈路系統(tǒng)中主要采用的是傳輸加密。信息加密算法有很多種,目前在數(shù)據(jù)通 信使用最普遍的算法有AES算法。AES加密算法即密碼學(xué)中的高級加密標(biāo)準(zhǔn)(Advanced Encryption Standard,AES),又稱Rijindael加密法,是美國聯(lián)邦政府采用的一種區(qū)塊加密 標(biāo)準(zhǔn)。
      [0003] AES加密過程是在一個4X4的字節(jié)矩陣上運行,這個矩陣又稱為"體(state) ",其 初值就是一個明文區(qū)塊(矩陣中一個元素大小就是區(qū)塊中的一個Byte)。加密時,各輪AES 加循環(huán)(除最后一輪處)均包含四個步驟:AddRoundKey,SubBytes,ShiftRows,MixColums。
      [0004] AddRoundKey :此步驟中,回合密鑰將與原矩陣合并。在每次的加密循環(huán)中,都會產(chǎn) 生一把回合密鑰(通過Rijndael密鑰生成方案產(chǎn)生),這把密鑰大小會跟原矩陣一樣,以 與原矩陣中每個對應(yīng)字節(jié)異或加法,在初始化的第一個回合中,State每個狀態(tài)中的字節(jié)與 對應(yīng)Cipher Key的字節(jié)做異或(? )運算,生成的結(jié)果做為新的State,在后續(xù)的回合中 State只與該回合中的Round Key做異或運算。
      [0005] SubBytes :此步驟中,矩陣中的各個字節(jié)通過一個固定的S-B0X按公式2進(jìn)行轉(zhuǎn) 換,即以State中16進(jìn)制數(shù)為腳標(biāo)去查S-B0X中值,結(jié)果替換原State中的值。
      [0006] ShiftRows :此步驟是對State的每一行進(jìn)行左循環(huán)移位,移位次數(shù)與所在行 n(0<n< 3)有關(guān),第n行移位n次。
      [0007] MixColums :每一個起先的四個字節(jié)通過線性變換互相結(jié)合。每一直行的四個元素 分別當(dāng)作l,X,x2,x 3的系數(shù),合并即為GF(2S)中的一個多項式,接著將此多項式和一個固定 的多項式 c (x) = 3x3+x2+x+2 在 modulox4+l 下相乘。
      [0008] 在現(xiàn)有技術(shù)條件下使用FPGA實現(xiàn)AES加密和解密的過程中,需要使用大量的10 引腳資源,一方面會使器件成本大大提高,另一方面當(dāng)FPGA的數(shù)據(jù)引腳有限時,因 AES加密 和解密所需的引腳數(shù)目很多,不能滿足AES加密和解密的需求。

      【發(fā)明內(nèi)容】

      [0009] 本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種節(jié)省10資源、 程序可移植性強(qiáng)的適用于有限10資源的FPGA的AES加解密方法及電路。
      [0010] 本發(fā)明的目的可以通過以下技術(shù)方案來實現(xiàn):
      [0011] -種適用于有限10資源的FPGA的AES加解密方法,包括以下步驟:
      [0012] 1)數(shù)據(jù)處理模塊接收輸入數(shù)據(jù)并緩存到輸入緩存區(qū)中;
      [0013] 2) FPGA芯片通過控制命令將輸入緩存區(qū)中的數(shù)據(jù)送入加密單元或解密單元中;
      [0014] 3) FPGA芯片通過控制命令將加密或解密完成的數(shù)據(jù)送到輸出緩存區(qū);
      [0015] 4)FPGA芯片通過控制命令將輸出緩存中的數(shù)據(jù)讀出;
      [0016] 5)通過狀態(tài)管理器和命令模塊發(fā)送系統(tǒng)狀態(tài)信號。
      [0017] 所述的步驟1)具體包括以下步驟:
      [0018] 11)判斷復(fù)位信號r是否為1,若是,復(fù)位所有寄存器,回到步驟11);若否,進(jìn)行步 驟 12);
      [0019] 12)判斷寫地址初始化信號al是否為1,若是,輸入緩存寫地址指針復(fù)位,返回步 驟11);若否,則進(jìn)行步驟13);
      [0020] 13)判斷輸入緩存使能信號E_i是否處于下降沿,若是,將接收到的數(shù)據(jù)寫入輸入 緩存器,地址指針自加1 ;若否,返回步驟11)。
      [0021] 所述的步驟2)具體包括以下步驟:
      [0022] 21)判斷復(fù)位信號r是否為1,若是,復(fù)位所有寄存器,回到步驟21),若否,進(jìn)行步 驟 22);
      [0023] 22)判斷讀地址初始化信號a2是否為1,若是,復(fù)位輸入緩存寫地址指針復(fù)位,返 回步驟21),若否,則進(jìn)行步驟23);
      [0024] 23)判斷數(shù)據(jù)有效信號vl是否為1,若是,進(jìn)行步驟24),若否,進(jìn)行步驟26);
      [0025] 24)判斷時鐘信號c是否為下降沿,若是,進(jìn)行步驟25),若否,回到步驟21);
      [0026] 25)讀出緩存器中地址指針指向地址的內(nèi)容,送往AES加密單元,地址指針自加1, 回到步驟21);
      [0027] 26)判斷密鑰有效信號v2是否為1,若是,進(jìn)行步驟27),若否,回到步驟21);
      [0028] 27)判斷時鐘信號c是否為下降沿,若是,進(jìn)行步驟28),若否,回到步驟21);
      [0029] 28)讀出緩存器中地址指針指向地址的內(nèi)容,送往AES解密單元,地址指針自加1, 回到步驟21)。
      [0030] 所述的步驟3)具體包括以下步驟:
      [0031] 31)判斷復(fù)位信號r是否為1,若是,復(fù)位所有寄存器,回到步驟31);若否,進(jìn)行步 驟 32);
      [0032] 32)判斷數(shù)據(jù)信號v3是否為1,若是,進(jìn)行步驟33);若否,回到步驟31);
      [0033] 33)判斷讀地址初始化信號a3是否為1,若是,復(fù)位輸出緩存寫地址指針,返回步 驟31);若否,則進(jìn)行步驟34);
      [0034] 34)判斷輸入緩存使能信號E_o是否處于下降沿,若是,將接收到的數(shù)據(jù)寫入輸出 緩存器,地址指針自加1 ;若否,返回步驟31)。
      [0035] 所述的步驟4)具體包括以下步驟:
      [0036] 41)判斷復(fù)位信號r是否為1,若是,復(fù)位所有寄存器,回到步驟41),若否,進(jìn)行步 驟 42);
      [0037] 42)判斷數(shù)據(jù)數(shù)據(jù)類型選擇信號s是否為1,若是,則讀出信號為加密數(shù)據(jù),進(jìn)行步 驟43),若否,則讀出信號為解密數(shù)據(jù),進(jìn)行步驟46);
      [0038] 43)判斷讀地址初始化信號a4是否為1,若是,復(fù)位讀地址指針,回到步驟41),若 否,進(jìn)行步驟44);
      [0039] 44)判斷時鐘信號c是否為下降沿,若是,進(jìn)行步驟45),若否,回到步驟41);
      [0040] 45)讀出緩存器中地址指針指向地址的內(nèi)容,送往數(shù)據(jù)10端口,地址指針自加1, 回到步驟41);
      [0041] 46)判斷時鐘信號c是否為下降沿,若是,進(jìn)行步驟47),若否,回到步驟41);
      [0042] 47)讀出緩存器中地址指針指向地址的內(nèi)容,送往數(shù)據(jù)10端口,地址指針自加1, 回到步驟41)。
      [0043] 所述的步驟5)具體包括以下步驟:
      [0044] 51)判斷狀態(tài)使能信號E_s是否為1,若是,則狀態(tài)管理器被使能工作,bll = bl2, b21 = b22, kll = kl2, k21 = k22,若否,回到步驟 51);
      [0045] 52)信號經(jīng)過四個二輸入與門得到ql、q2、q3和q4,4個信號再過四輸入或門得到 狀態(tài)信號P,并將信號P送到狀態(tài)輸出10 口上,回到步驟51)。
      [0046] -種適用于有限10資源的FPGA的AES加解密電路,包括FPGA芯片、數(shù)據(jù)管理模 塊和數(shù)據(jù)處理模塊,所述的數(shù)據(jù)處理模塊包括輸入緩沖區(qū)、加密單元、解密單元和輸出緩沖 區(qū)和命令處理單元,所述的加密單元和解密單元分別與輸入緩沖區(qū)和輸出緩沖區(qū)連接,所 述的輸入緩沖區(qū)、輸出緩沖區(qū)和命令處理單元分別與FPGA芯片的數(shù)據(jù)引腳連接,所述的數(shù) 據(jù)管理模塊與FPGA芯片連接,用以控制數(shù)據(jù)處理模塊中數(shù)據(jù)的讀寫、控制數(shù)據(jù)的輸入輸出 以及地址的選擇。
      [0047] 所述的數(shù)據(jù)管理模塊包括數(shù)據(jù)類型管理器和狀態(tài)管理器,所述的
      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1