Alteração de datas

As datas são um tipo de dados muito comum. Nos casos em que as datas podem ser consideradas dados confidenciais ou informações de identificação pessoal (IIP), pode ter de generalizá-las, ocultá-las ou censurá-las.

Um método para o fazer é a generalização ou a agrupagem. No entanto, consoante o exemplo de utilização e a configuração, a divisão em grupos pode remover a utilidade nas datas. Por exemplo, se generalizar todas as datas para apenas um ano, pode perder a ordem em que os eventos ocorrem nesse ano. Um método alternativo para ocultar datas que resolve este problema é a alteração de datas.

As técnicas de alteração de datas alteram aleatoriamente um conjunto de datas, mas preservam a sequência e a duração de um período. A alteração de datas é normalmente feita no contexto de um indivíduo ou uma entidade. Ou seja, as datas de cada indivíduo são deslocadas por um período único para esse indivíduo.

Exemplo de alteração de datas

Considere os seguintes dados:

user_id data ação
1 2009-06-09 corrida
1 2009-06-03 caminhada
1 2009-05-23 rastreio
2 2010-11-03 rastreio
2 2010-11-22 caminhada
...

Se generalizar estas datas para o ano, obtém:

user_id date_year ação
1 2009 corrida
1 2009 caminhada
1 2009 rastreio
2 2010 rastreio
2 2010 caminhada
...

No entanto, perdeu qualquer noção da sequência por utilizador.

Em alternativa, experimente alterar a data:

user_id data ação
1 2009-07-17 corrida
1 2009-07-11 caminhada
1 2009-06-30 rastreio
2 2011-01-26 rastreio
2 2011-02-14 caminhada
...

Repare que as datas são diferentes, mas a sequência e a duração são preservadas. A magnitude da mudança das datas foi diferente entre os user_ids 1 e 2.

Alteração de datas na proteção de dados confidenciais

Um objeto JSON para configurar isto para o método content.deidentify de proteção de dados confidenciais é o seguinte:

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, respetivamente. O contexto ou o âmbito ao qual essa mudança se aplica baseia-se no valor entity_id_field, que, neste caso, é "user_id".

Tenha também em atenção a utilização de um crypto_key. Isto é semelhante à forma como é usado na pseudonimização. A chave permite-lhe manter a integridade destas alterações de datas em vários pedidos ou execuções de dados.

Recursos

Para mais informações sobre como desidentificar dados através da alteração de datas e outros métodos na proteção de dados confidenciais, consulte:

Para informações de referência da API acerca das transformações primitivas na proteção de dados confidenciais, consulte:

  • DeidentifyConfig object: o objeto no qual configura as opções de desidentificação.
  • PrimitiveTransformations object: A alteração de datas é uma "transformação primitiva" na proteção de dados confidenciais.
  • DateShiftConfig object: Objeto com o qual configurar o PrimitiveTransformations objeto. Ao especificar o objeto DateShiftConfig, pode alterar as datas por um número aleatório de dias.