Mudança de data

As datas são dados muito comuns. Nos casos em que as datas possam ser consideradas dados confidenciais ou informações de identificação pessoal (PII, na sigla em inglês), elas talvez precisem ser generalizadas, ofuscadas ou editadas.

Um método para fazer isso é a generalização ou agrupamento por classes. Entretanto, dependendo do caso de uso e da configuração, o agrupamento por classes pode remover o utilitário das datas. Por exemplo, se você generalizar todas as datas para apenas um ano, poderá perder a ordem em que os eventos ocorrem nesse ano. Um método alternativo para ofuscar datas que resolve esse problema é a mudança de data.

As técnicas de mudança de data alteram aleatoriamente um conjunto de datas, mas preservam a sequência e a duração de um período. Geralmente, a mudança de datas é feita no contexto para um indivíduo ou uma entidade. Ou seja, cada data individual é alterada por um espaço de tempo exclusivo para esse indivíduo.

Exemplo de mudança de data

Considere os seguintes dados:

user_id data ação
1 2009-06-09 run
1 2009-06-03 walk
1 2009-05-23 crawl
2 2010-11-03 crawl
2 2010-11-22 walk
... ... ...

Se você generalizar essas datas para um ano, terá:

user_id date_year ação
1 2009 run
1 2009 walk
1 2009 crawl
2 2010 crawl
2 2010 walk
... ... ...

Mas agora você perdeu as informações da sequência por usuário.

Em vez disso, tente a mudança de data:

user_id data ação
1 2009-07-17 run
1 2009-07-11 walk
1 2009-06-30 crawl
2 2011-01-26 crawl
2 2011-02-14 walk
... ... ...

Observe como as datas são diferentes, mas a sequência e a duração são preservadas. A magnitude em que as datas foram alteradas foi diferente entre user_ids 1 e 2.

Mudança de data na proteção de dados sensíveis

Segue um objeto JSON para configurar isso para o método content.deidentify da proteção de dados sensíveis:

deidentify_config {
  record_transformations {
    field_transformations {
      fields {
        name: "date"
      }
      primitive_transformation {
        date_shift_config {
          upper_bound_days: 100
          lower_bound_days: -100
          entity_field_id {
            name: "user_id"
          }
          crypto_key {
            unwrapped {
              key: "123456789012345678901234567890ab"
            }
          }
        }
      }
    }
  }
}

Os limites superior e inferior da mudança são especificados pelos valores upper_bound_days e lower_bound_days, respectivamente. O contexto ou o escopo ao qual essa mudança será aplicada é baseado no valor entity_id_field, que, neste caso, é "user_id".

Observe também o uso de uma crypto_key. Isso é semelhante à forma como ela é utilizada na pseudonimização. A chave permitirá que você mantenha a integridade dessas mudanças de data em várias solicitações ou execuções de dados.

Recursos

Para mais informações sobre como desidentificar dados usando a mudança de data e outros métodos na proteção de dados sensíveis, consulte:

Para informações de referência da API sobre transformações primitivas na proteção de dados sensíveis, consulte:

  • Objeto DeidentifyConfig: o objeto em que você configura as opções de desidentificação.
  • Objeto PrimitiveTransformations: a mudança de data é uma "transformação primitiva" na proteção de dados sensíveis.
  • Objeto DateShiftConfig: objeto com o qual configurar o objeto PrimitiveTransformations. Ao especificar o objeto DateShiftConfig, é possível mudar as datas por um número aleatório de dias.