Cambio de fechas

Las fechas son un tipo de datos muy común. En los casos en que las fechas se puedan considerar datos sensibles o información de identificación personal (PII), es posible que debas ofuscarlas, ocultarlas o generalizarlas.

Un método para hacer esto es la generalización, o agrupamiento. Sin embargo, según el caso práctico y la configuración, el agrupamiento puede quitar la utilidad de las fechas. Por ejemplo, si generalizas todas las fechas a solo un año, podrías perder el orden en que ocurren los eventos dentro de ese año. Un método alternativo para ofuscar fechas que resuelve este problema es el cambio de fechas.

Las técnicas de cambio de fechas cambian un conjunto de fechas de forma aleatoria, pero conservan la secuencia y la duración de un período. En general, el cambio de fechas se realiza en el contexto de un individuo o una entidad. Es decir, las fechas de cada persona se cambian por una cantidad de tiempo que es única para esa persona.

Ejemplo de cambio de fechas

Considera los siguientes datos:

user_id date action
1 09/06/2009 correr
1 03/06/2009 caminar
1 23/05/2009 gatear
2 03/11/2010 gatear
2 22/11/2010 caminar

Si generalizas estas fechas al año, obtendrás lo siguiente:

user_id date_year action
1 2009 correr
1 2009 caminar
1 2009 gatear
2 2010 gatear
2 2010 caminar

Pero ahora ya no sabes cuál es el sentido de la secuencia por usuario.

En su lugar, prueba el cambio de fecha:

user_id date action
1 17/07/2009 correr
1 11/07/2009 caminar
1 30/06/2009 gatear
2 26/01/2011 gatear
2 14/02/2011 caminar

Observa cómo las fechas son diferentes, pero se conservan la secuencia y la duración. La magnitud con la que se cambiaron las fechas fue diferente entre los user_id 1 y 2.

Cambio de fecha en Sensitive Data Protection

A continuación, se muestra un objeto JSON para configurar el método 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 valores upper_bound_days y lower_bound_days especifican los límites superior e inferior del cambio, respectivamente. El contexto o alcance al que se aplicará ese cambio se basa en el valor entity_id_field, que en este caso es "user_id".

También ten en cuenta el uso de un crypto_key. Esto es similar a su uso en la seudonimización. La clave te permitirá mantener la integridad de estos cambios de fechas en varias solicitudes o ejecuciones de datos.

Recursos

Si quieres obtener más información para desidentificar datos mediante el cambio de fechas y otros métodos en Sensitive Data Protection, consulta los siguientes recursos:

Para obtener información de referencia de la API sobre transformaciones básicas en Sensitive Data Protection, consulta lo siguiente:

  • Objeto DeidentifyConfig: es el objeto en el que configuras las opciones de desidentificación.
  • Objeto PrimitiveTransformations: El cambio de fecha es una “transformación primitiva” en Sensitive Data Protection.
  • Objeto DateShiftConfig: es el objeto con el que se configura el objeto PrimitiveTransformations. Si especificas el objeto DateShiftConfig, puedes cambiar las fechas por un número al azar de días.