Las fechas son un tipo de datos muy habitual. En los casos en los que las fechas se puedan considerar datos sensibles o información personal identificable (IPI), es posible que tengas que generalizarlas, ofuscarlas o redactarlas.
Un método para hacerlo es la generalización o la agrupación en contenedores. Sin embargo, en función del caso práctico y de la configuración, la creación de contenedores puede eliminar la utilidad de las fechas. Por ejemplo, si generalizas todas las fechas a un solo año, puedes perder el orden en el que se producen los eventos de ese año. Un método alternativo para ofuscar fechas que soluciona este problema es el desplazamiento de fechas.
Las técnicas de cambio de fechas modifican aleatoriamente un conjunto de fechas, pero conservan la secuencia y la duración de un periodo. Las fechas de cambio suelen estar relacionadas con una persona o una entidad. Es decir, las fechas de cada persona se desplazan una cantidad de tiempo única para esa persona.
Ejemplo de cambio de fecha
Tomemos los siguientes datos:
user_id | fecha | acción |
---|---|---|
1 | 2009-06-09 | run |
1 | 2009-06-03 | walk |
1 | 2009-05-23 | rastreo |
2 | 2010-11-03 | rastreo |
2 | 2010-11-22 | walk |
... | ... | ... |
Si generalizas estas fechas al año, obtendrás lo siguiente:
user_id | date_year | acción |
---|---|---|
1 | 2009 | run |
1 | 2009 | walk |
1 | 2009 | rastreo |
2 | 2010 | rastreo |
2 | 2010 | walk |
... | ... | ... |
Sin embargo, ahora no tienes ninguna noción de la secuencia por usuario.
En su lugar, prueba a cambiar la fecha:
user_id | fecha | acción |
---|---|---|
1 | 2009-07-17 | run |
1 | 2009-07-11 | walk |
1 | 2009-06-30 | rastreo |
2 | 2011-01-26 | rastreo |
2 | 2011-02-14 | walk |
... | ... | ... |
Observa que las fechas son diferentes, pero se conservan la secuencia y la duración.
La magnitud del cambio de las fechas fue diferente entre las user_id
s 1 y 2.
Desplazamiento de fechas en Protección de Datos Sensibles
A continuación, se muestra un objeto JSON para configurar este método de content.deidentify
de Protección de Datos Sensibles:
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"
}
}
}
}
}
}
}
Los límites superior e inferior del desplazamiento se especifican mediante los valores upper_bound_days
y lower_bound_days
, respectivamente. El contexto o el ámbito al que se aplicará el desplazamiento se basa en el valor de entity_id_field
, que en este caso es "user_id"
.
También se usa un crypto_key
. Es similar a cómo se usa en la seudonimización. La clave te permitirá mantener la integridad de estos cambios de fecha en varias solicitudes o ejecuciones de datos.
Recursos
Para obtener más información sobre cómo anonimizar datos mediante el cambio de fechas y otros métodos en Protección de Datos Sensibles, consulta los siguientes artículos:
Para obtener información de referencia sobre las transformaciones primitivas en la protección de datos sensibles, consulta lo siguiente:
DeidentifyConfig
object: objeto en el que se configuran las opciones de desidentificación.PrimitiveTransformations
object: el desplazamiento de fechas es una "transformación primitiva" en Protección de Datos Sensibles.DateShiftConfig
objeto: objeto con el que se va a configurar elPrimitiveTransformations
objeto. Si especificas el objetoDateShiftConfig
, puedes cambiar las fechas en un número aleatorio de días.