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

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

?? key_expander.vhd

?? 本程序是AES128 加密算法硬件實現(xiàn)源程序。符合NIST FIPS-197標(biāo)準(zhǔn)
?? VHD
字號:
--*************************************************************************
-- Project    : AES128                                                    *
--                                                                        *
-- Block Name : key_expander.vhd                                          *
--                                                                        *
-- Author     : Hemanth Satyanarayana                                     *
--                                                                        *
-- Email      : hemanth@opencores.org                                     *
--                                                                        *
-- Description: This block implements the key expnasion algorithm         *
--              to generate different keys for each of 10 rounds.         *
--                         .                                              *
--                                                                        *
-- Revision History                                                       *
-- |-----------|-------------|---------|---------------------------------|*
-- |   Name    |    Date     | Version |          Revision details       |*
-- |-----------|-------------|---------|---------------------------------|*
-- | Hemanth   | 15-Dec-2004 | 1.1.1.1 |            Uploaded             |*
-- |-----------|-------------|---------|---------------------------------|*
--                                                                        *
--  Refer FIPS-197 document for details                                   *
--*************************************************************************
--                                                                        *
-- Copyright (C) 2004 Author                                              *
--                                                                        *
-- This source file may be used and distributed without                   *
-- restriction provided that this copyright statement is not              *
-- removed from the file and that any derivative work contains            *
-- the original copyright notice and the associated disclaimer.           *
--                                                                        *
-- This source file is free software; you can redistribute it             *
-- and/or modify it under the terms of the GNU Lesser General             *
-- Public License as published by the Free Software Foundation;           *
-- either version 2.1 of the License, or (at your option) any             *
-- later version.                                                         *
--                                                                        *
-- This source is distributed in the hope that it will be                 *
-- useful, but WITHOUT ANY WARRANTY; without even the implied             *
-- warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR                *
-- PURPOSE.  See the GNU Lesser General Public License for more           *
-- details.                                                               *
--                                                                        *
-- You should have received a copy of the GNU Lesser General              *
-- Public License along with this source; if not, download it             *
-- from http://www.opencores.org/lgpl.shtml                               *
--                                                                        *
--*************************************************************************

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use work.aes_package.all;


entity key_expander is
port(
      clk      : in std_logic;
      reset    : in std_logic;
      key_in_c0: in state_array_type; -- given input keys 
      key_in_c1: in state_array_type; -- given input keys 
      key_in_c2: in state_array_type; -- given input keys 
      key_in_c3: in state_array_type; -- given input keys 
      count    : in integer;          -- to synchronise with input transformation rounds
      mode     : in std_logic;        -- high=encrypt, low=decrypt
      keyout_c0: out state_array_type;-- output key value for each round
      keyout_c1: out state_array_type;-- output key value for each round
      keyout_c2: out state_array_type;-- output key value for each round
      keyout_c3: out state_array_type -- output key value for each round
      );
end key_expander;

architecture expansion of key_expander is
signal X0      : state_array_type;
signal X1      : state_array_type;
signal X2      : state_array_type;
signal X3      : state_array_type;
signal w_i_nk0 : state_array_type;
signal w_i_nk1 : state_array_type;
signal w_i_nk2 : state_array_type;
signal w_i_nk3 : state_array_type;
signal temp0   : state_array_type;
signal k_rot   : state_array_type;
signal key_sub : state_array_type;
signal key_xor_rcon: state_array_type;
signal rcon: std_logic_vector(7 downto 0);
begin

-- transformation of keys
process(mode,rcon,temp0,k_rot,key_sub,key_xor_rcon,X0,X1,X2,X3,w_i_nk0,w_i_nk1,w_i_nk2,w_i_nk3)
begin
  if(mode = '1') then -- if encrypt
    k_rot <= (temp0(1),temp0(2),temp0(3),temp0(0)); -- ROTATE word
    -- SUB word
    key_sub(0) <= sbox_val(k_rot(0));
    key_sub(1) <= sbox_val(k_rot(1));
    key_sub(2) <= sbox_val(k_rot(2));
    key_sub(3) <= sbox_val(k_rot(3));
    -- XOR with rcon
    key_xor_rcon <= ((key_sub(0) xor rcon),key_sub(1),key_sub(2),key_sub(3));
    
    -- XOR with Wi's
    X0 <= ( key_xor_rcon(0) xor w_i_nk0(0) ,key_xor_rcon(1) xor w_i_nk0(1),key_xor_rcon(2) xor w_i_nk0(2),key_xor_rcon(3) xor w_i_nk0(3));
    X1 <= ((X0(0) xor w_i_nk1(0)) , (X0(1) xor w_i_nk1(1)) , (X0(2) xor w_i_nk1(2)) , (X0(3) xor w_i_nk1(3)));
    X2 <= ((X1(0) xor w_i_nk2(0)) , (X1(1) xor w_i_nk2(1)) , (X1(2) xor w_i_nk2(2)) , (X1(3) xor w_i_nk2(3)));
    X3 <= ((X2(0) xor w_i_nk3(0)) , (X2(1) xor w_i_nk3(1)) , (X2(2) xor w_i_nk3(2)) , (X2(3) xor w_i_nk3(3)));
  else -- if decrypt
    X3 <= (w_i_nk3(0) xor w_i_nk2(0) , w_i_nk3(1) xor w_i_nk2(1) , w_i_nk3(2) xor w_i_nk2(2) , w_i_nk3(3) xor w_i_nk2(3));
    X2 <= (w_i_nk2(0) xor w_i_nk1(0) , w_i_nk2(1) xor w_i_nk1(1) , w_i_nk2(2) xor w_i_nk1(2) , w_i_nk2(3) xor w_i_nk1(3));
    X1 <= (w_i_nk1(0) xor w_i_nk0(0) , w_i_nk1(1) xor w_i_nk0(1) , w_i_nk1(2) xor w_i_nk0(2) , w_i_nk1(3) xor w_i_nk0(3));
    X0 <= ( key_xor_rcon(0) xor w_i_nk0(0) ,key_xor_rcon(1) xor w_i_nk0(1),key_xor_rcon(2) xor w_i_nk0(2),key_xor_rcon(3) xor w_i_nk0(3));

    k_rot <= (X3(1),X3(2),X3(3),X3(0));
    key_sub(0) <= sbox_val(k_rot(0));
    key_sub(1) <= sbox_val(k_rot(1));
    key_sub(2) <= sbox_val(k_rot(2));
    key_sub(3) <= sbox_val(k_rot(3));
    key_xor_rcon <= ((key_sub(0) xor rcon),key_sub(1),key_sub(2),key_sub(3));
  end if;
end process;  

-- registering key outputs for each round and generating rcon values for each round
process(clk,reset)
begin
  if(reset = '1') then
    temp0   <= (others =>(others => '0'));
    w_i_nk0 <= (others =>(others => '0'));
    w_i_nk1 <= (others =>(others => '0'));
    w_i_nk2 <= (others =>(others => '0'));
    w_i_nk3 <= (others =>(others => '0'));
    rcon    <= (others => '0');
  elsif clk'event and clk = '1' then
    if(count = 0) then
      temp0   <= key_in_c3;
      w_i_nk0 <= key_in_c0;
      w_i_nk1 <= key_in_c1;
      w_i_nk2 <= key_in_c2;
      w_i_nk3 <= key_in_c3;
    else
      temp0   <= X3;
      w_i_nk0 <= X0;
      w_i_nk1 <= X1;
      w_i_nk2 <= X2;
      w_i_nk3 <= X3;
    end if;
    if(mode = '1') then
      case count is
        when 0 => rcon <= "00000001";
        when 1 => rcon <= "00000010";
        when 2 => rcon <= "00000100";
        when 3 => rcon <= "00001000";
        when 4 => rcon <= "00010000";
        when 5 => rcon <= "00100000";
        when 6 => rcon <= "01000000";
        when 7 => rcon <= "10000000";
        when 8 => rcon <= "00011011";
        when 9 => rcon <= "00110110";
        when others => rcon <= "00000000";
      end case; 
    else------------------------->>>>>>>>>>>>>>
      case count is
        when 0 => rcon <= "00110110";
        when 1 => rcon <= "00011011";
        when 2 => rcon <= "10000000";
        when 3 => rcon <= "01000000";
        when 4 => rcon <= "00100000";
        when 5 => rcon <= "00010000";
        when 6 => rcon <= "00001000";
        when 7 => rcon <= "00000100";
        when 8 => rcon <= "00000010";
        when 9 => rcon <= "00000001";
        when others => rcon <= "00000000";
      end case; 
    end if;
  end if;
end process;  

keyout_c0 <= X0;
keyout_c1 <= X1;
keyout_c2 <= X2;
keyout_c3 <= X3;

end expansion;  
  
  
  
  

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩精品一区二区浪潮av| 在线观看成人小视频| 欧美成人精精品一区二区频| 美女视频黄久久| 精品国产精品网麻豆系列| 国产麻豆一精品一av一免费| 亚洲国产精品av| 色综合激情五月| 亚洲成人一区二区| 日韩丝袜美女视频| 国产精品18久久久久久久久久久久| 久久网站最新地址| 99精品视频一区二区| 一区二区久久久久| 欧美一区日韩一区| 国产精品一区在线观看乱码| 国产精品久久久久永久免费观看 | 一区二区三区中文在线| 色88888久久久久久影院野外| 亚洲午夜三级在线| 精品欧美久久久| 不卡视频在线看| 亚洲第一久久影院| 久久久亚洲国产美女国产盗摄| 国产伦精品一区二区三区视频青涩| 国产精品久久久爽爽爽麻豆色哟哟| 色婷婷国产精品综合在线观看| 肉色丝袜一区二区| 欧美激情一区二区在线| 欧美日韩一区在线观看| 国产一区二区免费看| 一区二区三区在线看| 精品国精品国产| 在线看日韩精品电影| 国内久久精品视频| 国产综合色产在线精品| 中文字幕在线不卡| 日韩一区二区免费视频| 99re在线精品| 精品影视av免费| 亚洲一区免费在线观看| 久久久久97国产精华液好用吗| 欧洲亚洲国产日韩| 国产成人av影院| 免费成人结看片| 亚洲美女精品一区| 国产婷婷色一区二区三区| 欧美精品在线一区二区三区| 懂色一区二区三区免费观看| 青青草一区二区三区| 亚洲欧美偷拍三级| 久久久91精品国产一区二区精品| 制服丝袜激情欧洲亚洲| 99久久精品免费精品国产| 激情五月婷婷综合| 日韩高清不卡一区二区| 亚洲与欧洲av电影| 亚洲人快播电影网| 欧美韩日一区二区三区四区| 精品久久久久久久久久久久久久久久久 | 成av人片一区二区| 黄色日韩网站视频| 青青草97国产精品免费观看无弹窗版| 亚洲人快播电影网| 国产精品国产自产拍在线| 亚洲电影一级黄| 依依成人精品视频| 亚洲伦理在线免费看| 中文字幕一区二区三区精华液| 国产片一区二区三区| 久久蜜桃香蕉精品一区二区三区| 日韩三级视频中文字幕| 在线播放中文一区| 欧美高清性hdvideosex| 欧美日韩黄视频| 欧美麻豆精品久久久久久| 欧美日韩综合一区| 欧美日韩精品高清| 欧美日韩国产电影| 7777精品伊人久久久大香线蕉经典版下载| 色狠狠色狠狠综合| 欧美性xxxxx极品少妇| 欧美在线影院一区二区| 欧美性色aⅴ视频一区日韩精品| 91啪九色porn原创视频在线观看| 99在线热播精品免费| k8久久久一区二区三区| 91老师片黄在线观看| 欧美午夜影院一区| 91精品欧美一区二区三区综合在| 555www色欧美视频| 精品久久久久久久一区二区蜜臀| 精品卡一卡二卡三卡四在线| 精品国产网站在线观看| 久久久久久久综合日本| 亚洲国产高清在线| 一卡二卡欧美日韩| 午夜精品在线看| 精品亚洲国内自在自线福利| 国产成人免费视频网站| www.欧美日韩| 欧美性大战久久久久久久蜜臀| 欧美日韩一区二区欧美激情| 欧美不卡在线视频| 中文一区二区完整视频在线观看| 国产精品国产三级国产| 亚洲国产精品久久久久婷婷884| 日韩电影在线免费观看| 国产乱理伦片在线观看夜一区| 不卡的看片网站| 欧美精品99久久久**| 久久久久国产一区二区三区四区 | 丁香婷婷综合五月| 在线观看国产91| 精品国产精品网麻豆系列| 国产精品久久久久四虎| 日韩中文字幕亚洲一区二区va在线| 黄网站免费久久| 一本大道久久a久久精品综合| 日韩一区二区三区电影在线观看 | 国产精品视频一区二区三区不卡| 一区二区三区精品视频| 毛片基地黄久久久久久天堂| 不卡一卡二卡三乱码免费网站| 欧美人牲a欧美精品| 久久精品欧美一区二区三区不卡 | 欧美区在线观看| 国产精品青草久久| 久久精品国产亚洲a| gogogo免费视频观看亚洲一| 日韩精品一区在线观看| 亚洲欧美另类图片小说| 久久精品国产999大香线蕉| 91免费国产在线| 久久视频一区二区| 亚洲第一会所有码转帖| 99久久综合精品| 久久在线观看免费| 天堂精品中文字幕在线| 99精品黄色片免费大全| 久久免费偷拍视频| 丝袜亚洲另类丝袜在线| 色菇凉天天综合网| 日本一区二区三级电影在线观看 | 91浏览器打开| 亚洲国产成人午夜在线一区| 麻豆久久久久久| 欧美日韩久久不卡| 亚洲综合偷拍欧美一区色| 成人午夜视频在线观看| 天天综合色天天综合色h| 成人国产免费视频| 国产欧美精品一区二区三区四区| 老司机免费视频一区二区三区| 欧美日韩精品一区视频| 伊人色综合久久天天人手人婷| 风间由美一区二区三区在线观看 | 亚洲综合小说图片| 91亚洲永久精品| 国产精品剧情在线亚洲| 国产激情一区二区三区四区| 精品久久久久久久久久久久包黑料 | 在线亚洲人成电影网站色www| 国产日韩欧美电影| 国产精品1024| 久久精品免视看| 粉嫩高潮美女一区二区三区| 国产婷婷精品av在线| 激情综合网天天干| 久久久久久久久久电影| 国产一区二区看久久| 欧美精品一区二区三区蜜桃视频 | 欧美成人精品1314www| 老色鬼精品视频在线观看播放| 制服丝袜亚洲播放| 蜜臀av一区二区三区| 日韩欧美另类在线| 国产综合成人久久大片91| 久久一区二区视频| 国产成人久久精品77777最新版本| 久久综合99re88久久爱| 国产91精品一区二区| 国产精品天干天干在观线| 91在线视频播放地址| 亚洲一区av在线| 欧美va在线播放| 成人污污视频在线观看| 亚洲欧美另类在线| 91麻豆精品国产91久久久资源速度| 日本vs亚洲vs韩国一区三区 | 国产亚洲精品资源在线26u| 东方aⅴ免费观看久久av| 亚洲靠逼com| 宅男在线国产精品| 国产精品羞羞答答xxdd| 日韩毛片视频在线看| 欧美色区777第一页| 久久国产福利国产秒拍| 国产精品麻豆一区二区 | 成人av免费在线观看|