1. O Artigo
    1. Objetivo
      1. Propor de um novo modelo para geração do PIN
    2. Conteúdo
      1. Geração de PIN usando Gramática Regular e Gramática Livre de Contexto
      2. Reconhecimento do PIN usando Autômatos Finitos e Autômatos Pushdown
  2. Introdução
    1. Ideia Geral
      1. 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
      2. 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)
      3. 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
    2. Dificuldade
      1. A geração randômica do primeiro PIN é simples e rápida
      2. A gestão de inúmeros PINs é complexa
  3. Histórico
    1. 1º ATM - 1967, por John Shepherd-Barron, Londres
    2. Com serviços bancários de saques, depósitos e outros serviços, evita filas nas agências bancárias
    3. 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
    4. instituições investem enormes quantias na compra de ferramentas de terceiros para gerar aleatoriamente seus primeiros PINs
  4. Métodos existentes de geração de PIN
    1. IBM 3624
      1. 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
    2. IBM 3624 + offset
      1. O usuário pode escolher seu PIN, que é encriptado e armazenado no banco emissor ou no cartão do usuário
    3. VISA
      1. 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.
  5. Proposta de geração de PINs
    1. 1. PIN gerado por Gramática Regular
      1. Gramática regular é do tipo 3 na Hierarquia de Chomsky
        1. G = (V, T, P, S)
          1. S - Símbolo Inicial
          2. V - Símbolos não Terminais
          3. T - Símbolos Terminais
          4. P - Conjunto de Produções na forma S → Aa/bB/a/b/ε
          5. Onde maiúsculos são não terminais, minúsculos são terminais e ε é a string vazia
      2. Geração do PIN''
        1. Exemplo
        2. A → B5
        3. B5 → C05
        4. C05 → D405
        5. D405 → 9405
    2. 2. PIN gerado por Gramática Livre de Contexto
      1. Gramática livre de contexto é do tipo 2 na Hierarquia de Chomsky
        1. G = (V, T, P, S)
          1. S - Símbolo Inicial
          2. V - Símbolos não Terminais
          3. T - Símbolos Terminais
          4. P - Conjunto de Produções na forma S → Aa/bB/a/b/ε
          5. Onde maiúsculos são não terminais, minúsculos são terminais e ε é a string vazia
      2. São referidas como gramáticas de estrutura de frase
      3. Geração do PIN
        1. Algoritmos de análise sintática
    3. 3. PIN gerado em Python
  6. Reconhecimento dos PINs com Autômato Finito e Autômato a Pilha
    1. Implementação
      1. AFD
        1. Uma cadeia será reconhecida por um autômato apenas se a derivação dessa string começar no estado inicial e terminar no estado de aceitação.
        2. M = {Q, Fi, Fa, Σ, δ}
          1. Q = nº de estados = {q0, q1, q2, q3, q4}
          2. Fi = q0 (estado inicial)
          3. Fa = q4 (estado final)
          4. $ = Σ = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} (alfabetos de entrada)
          5. δ: Q × Σ → Q * definido como δ (q0, $) = q1 δ (q1,$) = q2 δ (q2, $) = q3 δ (q3, $) = q4
      2. Autômato a Pilha
        1. A artigo propõe o reconhecimento utilizando autômato a pilha (pushdown) que, conforme visto em aula não é tão eficiente quanto a utilizar diretamente as gramáticas, por exemplo com os algoritmos CYK ou Early
        2. O que é
          1. É um autômato com uma estrutura de dados em pilha, reconhecedor de Linguagens Livres de Contexto
        3. Quando uma string é aceita?
          1. Esvaziando a pilha
          2. Ou entrando no estado de aceitação
  7. Processo de implementação
    1. O administrador digita o ID do cliente, ID da conta e nº do cartão (serão usados para a geração do PIN)
    2. O administrador seleciona Gramática Regular ou Livre de Contexto.
    3. O sistema gera os PINs que ainda não foram gerados.
    4. Cada registro com ID cliente, ID conta e nº cartão terá um PIN correspondente
    5. No ATM, após o cliente inserir o cartão e digitar o PIN, o servidor valida o PIN digitado com o armazenado no sistema
    6. Se o cliente solicitar a alteração do PIN, o sistema deverá registrar o motivo da alteração (prazo de expiração ou bloqueio), definir o PIN como nulo e executar a gramática para criar um novo PIN
    7. Ao inserir o PIN no ATM, este será enviado para o servidor, onde será reconhecido por Máquina de Estado Finito ou Autômato a Pilha e então a autorização será concedida.
  8. Conclusões
    1. Do autor
      1. A aplicação do artigo é a criação de uma estrutura para produzir PIN de forma rápida e confiável.
      2. Pode-se usar a estrutura para criar um sistema de mercado
    2. Nossas conclusões
      1. O artigo tem alguns GAPs entre a geração e o reconhecimento do PIN.
      2. Ficou clara a aplicabilidade das regras de produção referente às gramáticas regular e livre de contexto, porém após o primeiro reconhecimento do respectivo autômato reconhecedor, entendemos que para as próximas verificações do PIN eles não seriam necessários
      3. Também não ficou claro o motivo de nova proposta usando gramáticas: os modelos existentes possuem limitações? Quais?
  9. SIN5023 - Reconhecimento Sintático e Estrutural de Padrões
  10. Alunos: André Prado Diego Dedize
  11. Professora: Ariane Machado