>> Tecnologia Eletrônica >  >> Celulares e Acessórios >> PDAs

Projetando Sistema de Autenticação por Senha em VHDL: Guia Implementação FPGA

VHDL é linguagem de descrição de hardware, então você não "escreve uma senha" nela — você projeta circuito digital que verifica senha. Isso tipicamente envolve Máquina de Estados Finitos (FSM) comparando entrada serial ou paralela contra valor armazenado.

Visão Geral da Arquitetura

  1. Armazenamento Senha: constant hard-coded (senhas fixas), ROM/Block RAM (atualizáveis em campo), ou Registradores com Interface Carrega-Chave.
  2. Interface Entrada: Scanner teclado (matriz debouncing), UART/USB para entrada serial, ou SPI/I2C de elemento seguro.
  3. Lógica Comparação: Verificação igualdade combinacional (paralelo) ou FSM bit-a-bit sequencial (entrada serial).
  4. Saída/Ação: Flag valid_password, sinal desbloqueio, trigger alarme, ou escrita log auditoria.

Exemplo VHDL Simplificado (Keypad Paralelo 4-bit)

library ieee; use ieee.std_logic_1164.all; entity password_checker is port ( clk : in std_logic; rst_n : in std_logic; key_input : in std_logic_vector(3 downto 0); -- código keypad 4-bit key_valid : in std_logic; -- strobe quando tecla estável unlock : out std_logic ); end entity; architecture rtl of password_checker is constant CORRECT_PASS : std_logic_vector(3 downto 0) := "0101"; -- '5' begin process(clk, rst_n) begin if rst_n = '0' then unlock <= '0'; elsif rising_edge(clk) then if key_valid = '1' then unlock <= '1' when key_input = CORRECT_PASS else '0'; end if; end if; end process; end architecture; 

Considerações Avançadas

  • Segurança: Netlists VHDL podem ser reverse-engineered. Para alta segurança, armazene hash saltado (ex.: SHA-256) em ROM e implemente hash em hardware, comparando digests em vez de plaintext.
  • Proteção Força Bruta: Implemente contadores tentativas, timers lockout, backoff exponencial na FSM.
  • Resistência Canal Lateral: Use lógica comparação tempo-constante para evitar vazamentos timing/análise potência.
  • Suporte Multi-usuário/Função: Use lookup table (RAM) indexando usernames para hashes senha e níveis privilégio.

Próximos Passos

Simule com ModelSim/Questa, sintetize para FPGA alvo (Xilinx Vivado, Intel Quartus, Lattice Radiant), verifique timing closure. Para produção, considere MCU seguro dedicado ou armazenamento chave baseado em PUF em vez de lógica FPGA pura.