-
O Artigo
-
Objetivo
- Propor de um novo modelo para geração do PIN
-
Conteúdo
- Geração de PIN usando Gramática Regular e Gramática Livre de Contexto
- Reconhecimento do PIN usando Autômatos Finitos e Autômatos Pushdown
-
Introdução
-
Ideia Geral
- Os caixas eletrônicos (ATM) substituiem os bancos para muitas operações saques, depósitos, geração de extratos, transferências, etc. por sua facilidade de operação, acessibilidade e outros fatores
- Orientado para o cliente, as duas chaves para qualquer transação em ATM são o cartão do banco e o PIN (código numérico 4 dígitos)
- PINs são gerados pelo banco, randomicamente, e dados ao titular da conta de forma confidencial, após o qual o cliente pode alterar o seu PIN
-
Dificuldade
- A geração randômica do primeiro PIN é simples e rápida
- A gestão de inúmeros PINs é complexa
-
Histórico
- 1º ATM - 1967, por John Shepherd-Barron, Londres
- Com serviços bancários de saques, depósitos e outros serviços, evita filas nas agências bancárias
- Problemas de segurança tornaram-se mais críticos a partir dos anos 90, quando usuários passaram a se preocupar menos com a complexidade dos PINs, facilitando invasões
- instituições investem enormes quantias na compra de ferramentas de terceiros para gerar aleatoriamente seus primeiros PINs
-
Métodos existentes de geração de PIN
-
IBM 3624
- O mais simples. O PIN é uma encriptação do número da conta/cartão, com chave exclusiva. Se um novo cartão é emitido, um novo PIN é gerado
-
IBM 3624 + offset
- O usuário pode escolher seu PIN, que é interpretado como PIN natural com base em seu valor de módulo para derivar o respectivo valor de deslocamento. Esse valor pode ser armazenado no banco emissor ou no cartão do usuário
-
VISA
- O método VISA é semelhante ao IBM 3624 + offset. É gerado utilizando o número da conta + o PIN do usuário. Com base neste no conta/PIN é gerado o PVKI, que é uma chave encriptada de verificação.
-
Proposta de geração de PINs
-
1. PIN gerado por Gramática Regular
-
Gramática regular é do tipo 3 na Hierarquia de Chomsky
-
G = (V, T, P, S)
- S - Símbolo Inicial
- V - Símbolos não Terminais
- T - Símbolos Terminais
- P - Conjunto de Produções na forma
S → Aa/bB/a/b/ε
- Onde maiúsculos são não terminais, minúsculos são terminais e ε é a string vazia
- As strings geradas e aceitas pela gramática são expressas de forma declarativa por RE (Regular Expression)
-
Geração do PIN''
- Exemplo
- A → B5
- B5 → C05
- C05 → D405
- D405 → 9405
-
2. PIN gerado por Gramática Livre de Contexto
-
Gramática livre de contexto é do tipo 2 na Hierarquia de Chomsky
-
G = (V, T, P, S)
- S - Símbolo Inicial
- V - Símbolos não Terminais
- T - Símbolos Terminais
- P - Conjunto de Produções na forma
S → Aa/bB/a/b/ε
- Onde maiúsculos são não terminais, minúsculos são terminais e ε é a string vazia
- É expressa na forma Backus-Naur (BNF). São referidas como gramáticas de estrutura de frase
- Padrões de strings são gerados por um conjunto de regras de produção recursivas.
-
Geração do PIN
-
3. PIN gerado em Python
-
-
Reconhecimento dos PINs com Autômato Finito e PDA
-
Definições
-
FSA - Finite State Automata - Autômato Finito
- A partir de um estado inicial, transições para outros estados, emissão de símbolos e estado de aceitação (final)
- Uma string será reconhecida como aceita para uma linguagem gerada por um autômato de estado finito apenas se a derivação dessa string começar no estado inicial e terminar no estado final
-
O autômato reconhecedor é uma 5-tupla
-
M = {Q, Fi, Fa, Σ, δ}
- Q = conjunto de todos os estados
- Fi = estado inicial
- Fa = estado final
- Σ = conjunto dos alfabetos de entrada
- δ = função de transição
-
Implementação
-
FSA
-
M = {Q, Fi, Fa, Σ, δ}
- Q = nº de estados = {q0, q1, q2, q3, q4}
- Fi = q0 (estado inicial)
- Fa = q4 (estado final)
- $ = Σ = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} (alfabetos de entrada)
- δ: Q × Σ → Q * definido como
δ (q0, $) = q1
δ (q1,$) = q2
δ (q2, $) = q3
δ (q3, $) = q4
-
Autômato Pushdown (PDA)
-
O que é
- É um autômato com uma estrutura de dados em pilha, reconhecedor de Linguagens Livres de Contexto
-
Quando uma string é aceita?
- Esvaziando a pilha
- Ou entrando no estado de aceitação
-
Definição
- M = (Q, Σ, S, δ, q0, Z0, F)
- Q: número finito de estados
Σ são símbolos de entrada
S são símbolos de pilha
δ: Q × (Σ ∪ { ε}) × S → Q × S * é a função de transição
q0 ∈ Q é o estado inicial
Z0 ∈ S é o símbolo inicial do topo da pilha
F ∈ Q é um conjunto de estados de aceitação
-
Função de transição
- A função de transição de autômatos pushdown que reconhecem o PIN ATM gerado pela gramática livre de contexto é a seguinte
- Processo de implementação