Способ обезличивания персональных данных
METHOD FOR DEPERSONALISING PERSONAL DATA

Изобретение относится к области защиты информации, хранимой в информационных системах персональных данных (ИСПДн), от несанкционированного доступа, обезличиванием персональных данных, которые представлены в виде исходной таблицы.
В настоящем описании термины будут использоваться в следующем толковании.
Под структурированными персональными данными понимаются данные, содержащие информацию различного типа о субъекте, которая представлена в виде отдельных структурных единиц.
Под структурной единицей персональных данных понимается информация о субъекте определенного типа (возраст, номер паспорта, адреса и т.д.).
Под исходной таблицей персональных данных понимается таблица, каждая строка которой содержит персональные данные одного субъекта, соответствующие структурным единицам персональных данных, представленные в виде записей определенной формы.
Под атрибутом персональных данных понимается именованная структурная единица в исходной таблице персональных данных. Атрибут содержит множество однотипных структурных единиц персональных данных разных субъектов, представленных в виде столбца исходной таблицы персональных данных, имеющего название атрибута.
Под таблицей обезличенных персональных данных понимается таблица, размерность которой, состав атрибутов и семантика данных совпадают с размерностью и семантикой исходной таблицы персональных данных, но изменен состав строк таблицы, разрушены связи между типами персональных данных субъектов.
Известна Система и метод маскировки данных [US2004181670], которые предусматривают преобразование (маскировку) идентифицирующих персональных данных и представление их в таблице, структурно совпадающей с исходной таблицей персональных данных. Доступ к персональным данным предоставляется пользователям с установленными ролями (полномочиям) для обратного преобразования обезличенных данных. Недостатками данного способа являются:
- возможность косвенной идентификации субъекта персональных данных по не преобразованным данным, поскольку не все персональные данные преобразуются;
обратного
(деобезличивания)
- отсутствие возможности обрабатывать персональные данные без предварительного преобразования обезличенных данных ;
- необходимость непосредственного воздействия на персональные данные в исходной таблице для их преобразования, что может вызвать ошибки при прямом и обратном преобразованиях и нарушить целостность данных;
- необходимость разделять пользователей данных по предоставляемым им ролям (полномочиям), что усложняет работу с большим числом пользователей.
Известна Система и методы деидентификации записей в источнике данных [US7269578], которые предусматривают преобразование персональных данных в зависимости от требований к анонимности (безопасности) данных.
Недостатками способа являются:
- непосредственное воздействие на исходные персональные данные, что может привести к искажению информации на этапах прямого или обратного преобразований или отсутствию возможности обратного преобразования;
- сложности с установлением и изменением требований к анонимности данных, для различных пользователей;
- отсутствие возможностей обработки персональных данных с использованием обезличенных (искаженных) данных без предварительного деобезличивания.
Известна Система защищенной базы данных [EP0884670], основанная на разделении идентификационных и персональных данных субъектов и хранении их в различных таблицах и на различных носителях. Идентификационные данные вместе с ключами, связывающими различные таблицы, шифруются клиентами.
Недостатками способа являются:
- разделение данных по различным таблицам, снижающее надежность всей системы хранения и доступа, а также увеличивающее время обработки запросов к персональным данным;
- использование шифрования клиентами, что приводит к необходимости управления процессом управления ключами (создания и распределения, смена ключей);
- работа с зашифрованными данными усложняет процесс сопоставления данных в различных таблицах;
- невозможность поиска данных, связанных с различными субъектами, без предварительного дешифрования всех данных.
Наиболее близким к предложенному изобретению является способ деперсонализации персональных данных [RU2538913], заключающийся в том, что отдельные атрибуты персональных данных, размещенные в исходной таблице, разбиваются на подмножества (блоки), затем производится циклический сдвиг подмножеств, после чего в каждом подмножестве производится циклический сдвиг находящихся в нем элементов. В результате получается таблица деперсонализированных данных. Параметры циклических сдвигов являются случайными числами для каждого атрибута и составляют ключ преобразования таблицы.
Недостатками способа являются:
- слабое рассеивание элементов атрибута по всему множеству элементов атрибута, поскольку после преобразования все элементы остаются внутри своих подмножеств, что увеличивает вероятность обратного преобразования без знания ключа, при известных данных по множеству физических лиц, чьи персональные данные находятся в исходной таблице;
- ограниченное число возможных вариантов преобразования, связанное с использованием только циклических сдвигов;
- однократное проведение преобразований, не обеспечивающее высокий уровень защищенности обезличенных данных из-за относительно небольшого количества вариантов преобразований;
- ограничение на число записей в таблице, число записей должно быть очень большим для достижения хорошей стойкости к обратным преобразованиям;
- сложности при добавлении новых записей, связанные с необходимостью проводить деперсонализацию данных всей таблицы.
Основными отличиями заявляемого способа от наиболее близкого являются:
- возможность формирования структуры исходной таблицы персональных данных путем определения множества и состава атрибутов;
- отсутствие изменений внутри формируемых при разбиениях блоков персональных данных;
- возможность многоэтапного разбиения с перестановкой формируемых при разбиениях блоков персональных данных, когда количество этапов определяется применяемыми показателями качества преобразования и защищенности персональных данных;
- возможность применения перестановок, отличных от циклических сдвигов;
- возможность формирования ключей преобразований для каждого этапа.
Заявленный способ совпадает с наиболее близким по следующим показателям:
- проведение разбиения исходного множества персональных данных на непересекающиеся блоки;
- возможность, в виде частного случая, проведения циклических перестановок множества блоков атрибутов персональных данных.
Технической задачей, на решение которой направлено заявляемое техническое решение, является обеспечение хранения и обработки персональных данных в обезличенной форме при сохранении семантики данных исходной таблицы, возможность обработки запросов к обезличенным персональным данным в виде их номеров в составе атрибутов.
Техническим результатом, достижение которого обеспечивается реализацией способа, является повышение защищенности персональных данных, повышение безопасности хранимых в обезличенной форме структурированных персональных данных, обеспечение скорости и удобства их обработки без обратного преобразования в режиме реального времени.
Указанный технический результат достигается тем, что способ обезличивания структурированных персональных данных заключается в представлении данных в виде предварительно сформированной исходной таблицы, каждая строка которой содержит персональные данные одного субъекта, разделенные на множество атрибутов, соответствующих заданным единицам структуры персональных данных, и многоэтапном преобразовании каждого атрибута исходной таблицы, включающем разбиения множества элементов атрибута на блоки и перестановки блоков на каждом этапе, при этом состав и порядок внутриблоковых данных при преобразованиях не меняются, на сервере формируется и хранится множество ключей преобразования для всех этапов преобразования каждого атрибута, где каждый ключ содержит число блоков на каждом этапе, вектор элементов в каждом блоке и матрицу перестановки на каждом этапе, при этом преобразование атрибутов исходной таблицы выполняется с применением заданных ключей преобразований для каждого атрибута таким образом, что количество блоков для каждого атрибута и количество элементов в каждом блоке является уникальными для каждого атрибута и каждого этапа.
Кроме того, число этапов преобразования каждого атрибута исходной таблицы является неограниченным.
Кроме того, на сервере обезличивания формируется и хранится множество ключей преобразования для всех этапов преобразования каждого атрибута, где каждый ключ является уникальным и содержит информацию для преобразования на этапе.
Кроме того, исходная таблица персональных данных может быть получена из любой структурированной формы представления персональных данных, получаемой от удаленных источников, и иметь варьируемое количество атрибутов, не совпадающее с количеством структурных единиц в персональных данных, получаемых от удаленных источников, и обеспечивающее повышение защищенности таблицы обезличенных персональных данных, сохраняя семантику элементов атрибутов.
Кроме того, для увеличения защищенности данных исходная таблица персональных данных может создаваться на отдельном сервере и, по запросу, передаваться на сервер обезличивания, входящий в состав информационной системы персональных данных (ИСПДн), где формируются и хранятся ключи преобразований, после проведения обезличивания исходная таблица персональных данных уничтожается, так как возможно ее восстановление по таблице обезличенных персональных данных.
Кроме того, при преобразованиях элементы каждого атрибута перемещаются на всем множестве элементов атрибута, что обеспечивает более эффективную защиту от деобезличивания при прямом переборе вариантов и использовании множества известных персональных данных за счет увеличения количества возможных вариантов обезличивания.
Кроме того, возможно использование различных вариантов хранения таблицы обезличенных персональных данных.
Кроме того, обеспечивается возможность обработки персональных данных с использованием таблицы обезличенных данных без предварительного деобезличивания всей таблицы за счет возможности деобезличивания только запрашиваемых данных.
T
0
N
M
N
M
N
M
Исходная таблица персональных данных (ПД) – (, ) – содержит  записей (строк) и  атрибутов (столбцов). Все строки и атрибуты имеют уникальные номера от 1 до  и от 1 до  соответственно.
j
N
C
c
m
c
m
m
m
C
N
M
c
m
m
c
m
N
m
N
j
0
j
0
j
0
j
0
0
j
0
j
0
T
Далее для удобства будем рассматривать атрибут номер  исходной таблицы, который содержит упорядоченное занумерованное множество из  элементов (данных о субъектах) –  = {()}. Здесь () – уникальный номер элемента, имеющего порядковый номер  (стоящего на месте ) во множестве . В исходной таблице (, ) порядковый номер элемента равен номеру строки, в которой этот элемент находится, и всегда уникальный номер элемента равен его порядковому номеру в исходной таблице: () = , (1 < () ≤ ; 1 ≤ ≤ ). Проводимые преобразования приводят к несовпадению уникальных и порядковых номеров элементов.
Допускается отсутствие данных о субъектах в отдельных элементах атрибутов, в этом случае элементом атрибута является специальный набор символов.
j
j
M
R
R
j
j
Преобразование множества данных атрибута номер  (= 1, 2, …, ) происходит в несколько этапов, число которых –  (1 ≤ < ∞).
r
r
R
j
Каждый этап номер  ( = 1, 2, …, ) содержит два шага.
Z
Z
N
i
i
Z
jr
jr
jr
На первом шаге происходит разбиение множества данных атрибута на непересекающиеся блоки данных. Число блоков равно , где 1 <  ≤ . Все блоки имеют порядковые номера. Каждый блок номер  содержит  последовательно занумерованных элементов c номерами от  до  ( = 1, 2, …, ; ). Также , т.е. блоки разбиения содержат все элементы атрибута.
jr
jr
j
r
k
Число блоков Z атрибута  на этапе  и вектор количества элементов в каждом блоке = (, , …, ) являются в общем случае уникальными для каждого атрибута и каждого этапа.
r
i
j
Z
x
x
x
j
x
–
j
x
x
n
x
j
r
r
R
jr
1
j
1
j
jr
1
j
2
j
2
j
jr
2
n
1
n
j
На втором шаге этапа проводится перестановка блоков атрибута, задаваемая матрицей перестановки , (= 1, 2; = 1, 2, …, ), где – порядковый номер блока при разбиении (1 ≤  ≤ Z, как правило,  = ), а  номер блока разбиения, стоящего на месте, указанном в верхней строке в столбце , после перестановки (1 ≤  ≤ Z), т.е.  – номер блока разбиения, имеющего после перестановки номер (номер ). В результате получается преобразованное множество атрибута – , где  – номер этапа ( = 1, 2, …, ).
j
C
R
j
N
M
j
0
j
T
*
Исходным множеством для преобразования на первом этапе является множество данных атрибута  исходной таблицы – , исходными множествами для преобразований разбиений на этапах 2, 3, …,  являются множества , , …, . Множество  есть окончательный результат преобразования множества данных атрибута номер . После окончания проведения преобразований всех атрибутов получается таблица обезличенных ПД – (, ).
Преобразование исходной таблицы ПД на каждом этапе изменяет порядковые номера элементов всех атрибутов, разрушая связи между элементами строки исходной таблицы.
n
j
r
r
m
c
m
n
c
m
j
(
r
–
1)
jr
jr
j
(
r
–1)
k
Пусть требуется вычислить новый порядковый номер  элемента атрибута  после выполнения этапа , который по окончании этапа (– 1) имеет порядковый номер  и уникальный номер – (). Разбиение и перестановка задаются вектором = (,, …, ) и матрицей . При этом c() = ().
h
m
Номер блока , куда после разбиения входит элемент номер , вычисляется из условия:
.
h
Номер элемента внутри блока равен:
.
h
z
x
h
2
z
После перестановки блок номер  будет иметь порядковый номер , который вычисляется из условия: = .
Номер элемента после перестановки равен:
.
T
0
Таким образом, определяется новый порядковый номер элемента после проведения этапа. Этот номер становится номером элемента перед следующим этапом преобразования. Уникальный номер элемента не меняется и всегда остается равным порядковому номеру этого элемента в исходной таблице .
K
k
X
K
K
K
K
jr
jr
jr
jr
j
j
1
j
2
jRj
Z
j
r
j
j
M
Параметры преобразования атрибута задает множество:  = {, , }, которое является ключом преобразования атрибута  на этапе . Вектор  = (, , …, ) задает множество ключей всех этапов преобразования атрибута  ( = 1, 2, …, ).
K
T
K
0
j
N
M
j
M
Множество ключей для всех атрибутов и всех этапов преобразования исходной таблицы: ((, )) = {}, ( = 1, 2, …, ) – это ключ преобразования исходной таблицы.
Оценка защищенности преобразования.
T
*
N
M
Защищенность таблицы (, ) от атак, направленных на деобезличивание, при отсутствии данных о ключе преобразования можно оценить количеством возможных вариантов преобразования.
N
k
N
k
Число разбиений  элементов атрибута на  блоков равно числу возможных сочетаний из ( – 1) по (– 1) и равно:
.
N
Число возможных разбиений  элементов атрибута равно:
.
k
k
N
Возможное число перестановок  блоков на этапе равно !. Следовательно, общее число возможных вариантов преобразования атрибута, содержащего  элементов на одном этапе, равно:
.
j
R
j
Если полное преобразование одного атрибута номер  проводится за  этапов, то число вариантов полного преобразования этого атрибута равно:
.
T
0
N
M
M
Для исходной таблицы (, ), содержащей  атрибутов, число вариантов преобразований равно:
.
T
0
j
j
1
0
N
M
N
N
M
R
j
U
k
U
T
3
8
5
12
13
130
Таким образом, число возможных вариантов преобразования таблицы (, ) очень велико (реальные значения  лежат в диапазоне от 10 до 10). Например, при = 100, = 10, = 1, Z = 10 ( = 1, 2, …, 10) получим (10, 100) ≈ 10×17310308 ≥ 10. При фиксированном = 10(100) ≥ 10. Откуда (100, 10) ≥ 10.
N
M
новых структурных
Для более значительного увеличения числа вариантов при небольших значениях  можно увеличить число  за счет разбиения элементов одного атрибута на несколько частей, каждая из которых будет входить в состав своего атрибута (создание новых атрибутов). Например, можно телефон субъекта разделить на 5 частей.
Заявляемый способ реализуется следующим образом.
Для проведения обезличивания из структурированных персональных данных, хранимых в различных удаленных хранилищах, создается исходная таблица, каждая строка которой содержит данные об одном субъекте персональных данных. Для создания таблицы проводится сбор данных с удаленных хранилищ (источников) персональных данных путем передачи персональных данных по открытым или защищенным каналам связи на сервер формирования исходной таблицы. От каждого источника также передается информация о структуре персональных данных этого источника. Все данные поступают на сервер формирования исходной таблицы персональных данных, реализованный либо аппаратно, либо программно, который обеспечивает связь, защиту информации и формирование таблицы исходных данных заданной структуры путем интеграции и необходимых преобразований данных, поступающих от удаленных источников. Для приема и преобразования данных от удаленных источников должно использоваться специализированное программное обеспечение, основу которого составляют программы конвертации данных (PDF to Word, XML конвертеры, табличные процессоры MicrosoftExcel); языки программирования для создания приложений: C++, C#, PHP, Java, Python.
Сформированная исходная таблица персональных данных по запросу передается на сервер обезличивания, который формирует таблицу обезличенных персональных данных. После чего исходная таблица уничтожается.
На сервере обезличивания создаются и хранятся ключи преобразования атрибутов. Для создания, хранения и защиты ключей используется программное обеспечение, которое по заданным алгоритмам формирует ключи преобразования, создает отдельный файл ключей и обеспечивает защиту этого файла от несанкционированного доступа такими способами, как шифрование, перемещение в другое хранилище и т.д. Программное обеспечение может использовать возможности DriveCrypt,  PGP Personal Desktop для хранения и защиты файлов ключей, а также языки программирования для создания приложений создающих ключи: C++, C#, PHP, Java, Python.
Исходная таблица персональных данных с применением ключей преобразования атрибутов преобразуется в таблицу обезличенных персональных данных, содержащую те же атрибуты, что и исходная таблица, и сохраняющую семантику записей для каждого атрибута. Для формирования таблицы обезличенных персональных данных используется программное обеспечение, которое реализует заявляемый способ обезличивания, осуществляет многоэтапное преобразование атрибутов исходной таблицы с применением заданных ключей преобразований для каждого атрибута, замену исходной таблицы на получаемую таблицу обезличенных персональных данных. Базой для такого программного обеспечения являются: СУБД – MySQL, Postgre SQL, Microsoft Access; языки программирования для создания приложений – C++, C#, PHP, Java, Python.
Сервер обезличивания может передавать таблицу обезличенных данных на сервер обработки персональных данных для обслуживания запросов на обработку персональных данных от зарегистрированных пользователей.
Разделение функций формирования исходной таблицы, обезличивания и обработки персональных данных позволяет повысить производительность и безопасность системы обработки персональных данных.
Пример заполнения исходных таблиц персональных данных T
(10, 3)
0
N
M
Исходная таблица состоит из 10 строк ( = 10), включает три атрибута A, B, C ( = 3) и имеет вид:
T
0
Исходная таблица персональных данных (10, 3)
<b>№ субъекта</b>
<b>Атрибут 1 (A)</b>
<b>Атрибут 2 (B)</b>
<b>Атрибут 3 (C)</b>
1
<i>a</i><sub>1</sub>
<i>b</i><sub>1</sub>
<i>c</i><sub>1</sub>
2
<i>a</i><sub>2</sub>
<i>b</i><sub>2</sub>
<i>c</i><sub>2</sub>
3
<i>a</i><sub>3</sub>
<i>b</i><sub>3</sub>
<i>c</i><sub>3</sub>
4
<i>a</i><sub>4</sub>
<i>b</i><sub>4</sub>
<i>c</i><sub>4</sub>
5
<i>a</i><sub>5</sub>
<i>b</i><sub>5</sub>
<i>c</i><sub>5</sub>
6
<i>a</i><sub>6</sub>
<i>b</i><sub>6</sub>
<i>c</i><sub>6</sub>
7
<i>a</i><sub>7</sub>
<i>b</i><sub>7</sub>
<i>c</i><sub>7</sub>
8
<i>a</i><sub>8</sub>
<i>b</i><sub>8</sub>
<i>c</i><sub>8</sub>
9
<i>a</i><sub>9</sub>
<i>b</i><sub>9</sub>
<i>c</i><sub>9</sub>
10
<i>a</i><sub>10</sub>
<i>b</i><sub>10</sub>
<i>c</i><sub>10</sub>
Заданы ключи преобразований для атрибутов:
Атрибут 1:
X
X
R
Z
Z
1
11
12
11
12
= 2,  = 3,  = 3. Ключ атрибута: (2, 3, (4, 2, 4), , 3, (3, 5, 2), ),
X
X
11
12
где = ,  = .
Атрибут 2:
X
R
Z
2
21
21
= 1,  = 4. Ключ атрибута: (1, 4, (2, 3, 1, 4), ),
X
21
где = .
Атрибут 3:
X
X
R
Z
Z
3
31
32
31
32
= 2, = 5, = 3. Ключ атрибута: (2, 5, (2, 1, 2, 2, 3), , 3, (5, 2, 3), ,),
X
X
31
32
где = ,  = .
После преобразования исходной таблицы получается таблица обезличенных персональных данных:
T
*
Таблица обезличенных данных (10, 3)
<b>№ субъекта</b>
<b>Атрибут 1 (A)</b>
<b>Атрибут 2 (B)</b>
<b>Атрибут 3 (C)</b>
1
<i>a</i><sub>9</sub>
<i>b</i><sub>3</sub>
<i>c</i><sub>9</sub>
2
<i>a</i><sub>10</sub>
<i>b</i><sub>4</sub>
<i>c</i><sub>10</sub>
3
<i>a</i><sub>2</sub>
<i>b</i><sub>5</sub>
<i>c</i><sub>3</sub>
4
<i>a</i><sub>3</sub>
<i>b</i><sub>7</sub>
<i>c</i><sub>1</sub>
5
<i>a</i><sub>4</sub>
<i>b</i><sub>8</sub>
<i>c</i><sub>2</sub>
6
<i>a</i><sub>7</sub>
<i>b</i><sub>9</sub>
<i>c</i><sub>6</sub>
7
<i>a</i><sub>8</sub>
<i>b</i><sub>10</sub>
<i>c</i><sub>7</sub>
8
<i>a</i><sub>5</sub>
<i>b</i><sub>6</sub>
<i>c</i><sub>4</sub>
9
<i>a</i><sub>6</sub>
<i>b</i><sub>1</sub>
<i>c</i><sub>5</sub>
10
<i>a</i><sub>1</sub>
<i>b</i><sub>2</sub>
<i>c</i><sub>8</sub>
Как видно, каждая строка содержит значения атрибутов, не все из которых соответствуют значениям в исходной таблице, т.е. в каждой строке уже не персональные данные какого-либо субъекта.
Преимуществами заявляемого способа являются:
N
- обеспечение большей защищенности данных от деобезличивания по косвенным признакам, поскольку исходные номера элементов каждого атрибута после преобразования могут принимать любые значения от 1 до , а число возможных вариантов преобразования очень велико;
- применение для обезличивания ограниченного числа однотипных преобразований (разбиения и перестановки), что упрощает разработку и эксплуатацию программного обеспечения;
- возможность динамического управления ключами преобразования на каждом этапе и для каждого атрибута;
- возможность обработки персональных данных без предварительного деобезличивания всей таблицы;
- возможность хранения атрибутов таблицы обезличенных данных в различных базах данных и на различных серверах;
- возможность добавления новых атрибутов и их преобразования без деобезличивания созданной таблицы обезличенных персональных данных;
- возможность оперативного управления процессами обезличивания/деобезличивания;
- возможность формирования унифицированной структуры исходной таблицы персональных данных, сочетающей структуры персональных данных, поступающих от различных внешних источников;
- возможность разбиения исходной таблицы на части и формирования нескольких таблиц обезличенных персональных для повышения скорости выполнения процессов доступа и обработки запросов;
- возможность ликвидации исходной таблицы персональных данных после формирования таблицы обезличенных персональных данных;
- возможность хранения таблицы обезличенных персональных данных в виде распределенного реестра с применением технологии блокчейн.
Использование заявленного изобретения обеспечивает:
- существенное повышение защищенности обезличенных данных от деобезличивания;
- повышение качества обработки персональных данных за счет сохранения семантики и отсутствия возможностей для искажения и потерь информации при обезличивании;
- повышение скорости обработки запросов к персональным данным без деобезличивания.
Структурированные персональные данные могут поступать от удаленных источников в виде файлов, таблиц баз данных. Для проведения обезличивания требуется на основе имеющихся форм представления персональных данных составить исходную таблицу персональных данных, каждая строка которой представляет персональные данные одного субъекта, а каждый столбец (атрибут) содержит множество однотипных данных, соответствующих элементам заданной структуры, по всем субъектам, занесенным в таблицу.
Атрибуты исходной таблицы могут быть элементами структурных единиц начальной структуры персональных данных (фамилия субъекта, город, телефон и т.д.), а также могут быть частями или объединениями элементов начальной структуры, что увеличивает сложность задачи несанкционированного деобезличиания и позволяет снизить требования к числу субъектов персональных данных в исходной таблице при заданном числе вариантов деобезличивания.