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_id
s 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 oPrimitiveTransformations
objeto. Ao especificar o objetoDateShiftConfig
, pode alterar as datas por um número aleatório de dias.