Если информация, получаемая на основе конфиденциальных данных, предназначена для широкого использования, то требуют изменений правила управления потоком передаваемых данных. Это относится в первую очередь к статистическим базам и банкам данных, которые содержат конфиденциальную информацию об индивидуумах, используемую для формирования различных статистических сводок. Особенность ситуации состоит в том, что сводки содержат "отголоски" исходной конфиденциальной информации, и весьма настойчивый пользователь можетее восстановить. Когда информация касается некоторого конкретного индивидуума, процедура восстановления оказывается посягательством на его личную тайну. Поэтому одна из задач процедур вывода состоит в том, чтобы стоимость восстановления конфиденциальной информации была исключительно высокой. Допустим, что при формировании запроса пользователь задает некоторую формулу С, использующую логические операторы (AND,OR,NOT). Множество записей, удовлетворяющих формуле С, называется множеством запросов формулы С. Результатом программы обработки запросов могут быть следующие величины: число записей, сумма значений записей или некоторая характеристика величины - максимум или медиана. Запись считается скомпрометированной, если пользователь, формирующий запрос, может определить значение конфиденциальной величины, сравнивая ответы на запросы и используя любую априорную информацию. Компрометация заключается в выявлении интересующей записи на основе перекрестных запросов; искажение ответа путем округления или некоторой преднамеренной коррекции данных; контроль обращения только к случайным записям. Если пользователь имеет возможность контролировать все ответы на запросы и ответы при этом не искажаются, вероятность компрометации записи и доступа к данным чрезвычайно высока. Пользователь определяет некоторую формулу С, принадлежащую множеству запросов, и присваиваетей номер 1. Затем он может выявить, обладает ли выявленный индивидуум характеристикой Х, сформировав запрос: "Сколько индивидуумов удовлетворяют одновременно условиям C AND X?" Может показаться, что такой механизм доступа можно пресечь, если следовать принципу минимального множества запросов, который состоит в следующем: "Не следует отвечать на запросы, с которыми связано менее чем k или более чем n-k записей, где n - общее число записей в базе данных". Положительное число k является параметром, определяющим минимально допустимое число запросов. Если язык запросов предусматривает операцию дополнения, то максимальное число n-k запросов также должно быть определено, в противном случае пользователь может формировать свои запросы с использованием операции дополнения (NOT C). К сожалению такой контроль не эффективен. Можно показать, что опасность возникает уже при k, близком к n/2, если использовать метод выслеживания. Его идея состоит в том, чтобы, дополнив запросы дополнительными вопросами, получать на них ответы и затем проанализировать их с целью выявить исходные записи. Формула, анализирующая ответы на дополнительные вопросы, называется сыщиком (tracker), поскольку она используется для выявления характеристик отдельного индивидуума. Может показаться, что при таком подходе получить доступ ко всей базе данных очень сложно, поскольку необходимо выявить все индивидуальные характеристики. Однако, если пользователь может вывести формулу, которая содержит по меньшей мере 2k, но не более n-2k записей, то он может использовать эту формулу для создания "универсального сыщика", обеспечивающего получение ответа на любой запрос к базе данных. Доступ к информации на основе метода выслеживания основан на использовании группы пересекающихся записей. Для защиты от выслеживания применяют принцип минимальной взаимосвязи вопросов, который состоит в следующем: "Не следует отвечать на запрос, в котором содержится более определенного числа совпадающих записей из предыдущих запросов". Такой контроль на практике нереален, поскольку программа должна произвести сравнение последней группы запросов со всеми предыдущими. Но даже если его и применить, этот контроль можно обойти в базе данных, где каждая конфиденциальная величина появляется лишь один раз. Контроль минимальной взаимосвязии вопросов может быть устранен путем решения системы линейных уравнений относительно неизвестной величины. Эти примеры доступа к базе иллюстрируют применение комбинаторных принципов включения и исключения для выделения записи. Предотвращение такого доступа возможно при использовании разделенных баз данных. В такой базе записи хранятся группами, в каждой их которых может быть не более определенного числа записей. Запросы относятся к любому множеству групп, но не к подмножеству записей из группы. При реализации такого контроля все попытки вторжения, основанные на использовании логических функций включения и исключения, могут в лучшем случае выделить одну из групп, поскольку разрешены запросы, относящиеся лишь к одной группе. Разделенная база данных имеет два существенных ограничения. Первое состоит в том, что поток статистических выводов ограничен из-за большого числа групп записей или их необдуманной группировки. Второе обусловлено тем, что реструктурезация групп, а также вставка, обновление или удаление записей из базы данных порождают много лишней работы. Другой способ контроля за логическим выводом основан на внесении преднамеренных искажений в ответы. Обычно реализуется округление результатов, когда точный ответ на запрос незначительно искажается, прежде чем формируется ответ пользователю, осуществившему запрос. Использование для округления случайных чисел с нулевым средним недопустимо, поскольку в этом случае правильный ответ может быть получен путем усреднения достаточно большого числа ответов на один и тот же запрос. Использование псевдослучайных чисел в этом случае предпочтительнее, поскольку на каждый запрос всегда возвращается один и тот же ответ. Этот способ защиты достаточно эффективный, однако он тем не менее может быть преодолен путем добавления пустых записей в базу данных либо простого сравнения ответов на определенные запросы. Другой путь внесения возмущений состоит в том, что перед началом статистической обработки значения записи случайно возмущаются или заменяются другой величиной. Как и округление, такое преднамеренное внесение ошибок снижает точность статистического вывода. Поэтому для того, чтобы не скомпрометировать исходные данные, к ним должны быть добавлены значительные возмущения. Вариант этого подхода, который обеспечивает достаточно точную статистику, называется свопингом данных. Его суть состоит во взаимном обмене значений полей записей, в результате чего все статистики i-го порядка, включающие i атрибутов, оказываются защищенными для всех i, меньших или равных некоторому значению d. Даже если сыщик выявит некоторые значения, он не может определить, с каким конкретным индивидуумом они связаны. Трудность этого подхода заключается в сложности выбора набора записей, ряд значений которых может быть перемещен. Еще один способ контроля основан на том, что запросы адресуются не ко всей базе данных, а к некоторой случайно выбранной группе записей. Такой подход наиболее эффективен, поскольку лишает пользователя возможности контролировать множество запросов. Функции запросов в большинстве коммерческих СУБД позволяют выявить значительно больше информации о конфиденциальных записях, чем многие себе представляют. Без соответствующего контроля несанкционированный доступ к базе данных будет скорее правилом, чем исключением. В комбинации с принципомминимального множества запросов случайные запросы обеспечивают наилучшую защиту. Наиболее эффективной мерой защиты от навязчивых злоумышленников является процедура наблюдения за вторжениями, включающая проверку файлов регистрации и контрольных журналов на наличие необычных сочетаний запросов или большого числа запросов к одной и той же записи. Хотя при этом и контролируется поток информации, проходящей через программы обработки запросов, но наблюдение за вторжениями позволяет выявить повышенную активность обращений.