Иерархические схемы распределения ключей
Рассмотрим теперь следующую задачу. Пусть абоненты сети связи не равноправны между собой, а разделены на "классы безопасности" (security classes) . На множестве этих классов определен некоторый частичный порядок; если , то говорят, что доминирует (dominates) , т. е. имеет более высокий уровень безопасности, чем . Задача состоит в том, чтобы выработать секретные ключи для каждого класса таким образом, чтобы абонент из мог вычислить в том и только том случае, когда . Эта задача была решена в общем виде Эклом и Тейлором  в связи с проблемой контроля доступа. В их методе каждый класс безопасности получает, кроме секретного, также и открытый ключ, который вместе с секретным ключом класса, доминирующего данный, позволяет последнему вычислить секретный ключ данного класса. В дальнейшем было предложено несколько схем для этой цели, однако все они обладают тем недостатком, что при добавлении или удалении класса безопасности необходимо заново вырабатывать ключи для всех доминирующих классов. Для случая, когда частичный порядок является деревом, имеется схема Сандху, которая позволяет добавлять новые классы безопасности без изменения ключей существующих классов. См. также . 
Мы приведем описание иерархической схемы распределения ключей, предложенной Ву и Чангом  для случая, когда частичный порядок является деревом. Как заявляют авторы этой схемы, она сохраняет достоинства схемы Сандху. Введем необходимые определения. Пусть  -- большое простое число,  -- множество всех трехмерных векторов над . Если , , то определим следующие векторы из : 
		   	
	   если 	   	

Предположим, что каждому классу безопасности сопоставлен идентификатор ; класс с идентификатором мы будем обозначать через . Ввиду того, что частичный порядок на множестве классов безопасности является деревом, для описания протокола достаточно описать процедуры выработки секретного ключа для корневого класса безопасности (т. е. класса с наиболее высоким уровнем безопасности) и для произвольного класса при условии, что секретный ключ для класса , непосредственно доминирующего (т. е. такого, что и не существует класса такого, что ), уже выработан. 
    I. Для корневого класса безопасности (скажем, ) выбирается произвольный секретный ключ . 
    II. Пусть класс непосредственно доминирует класс и для уже выработан секретный ключ . Тогда в качестве секретного ключа для выбирается вектор 
	(1)	

где  -- вектор из , выбранный случайно так, чтобы было определено (т. е. , где и  -- -е координаты векторов и соответственно; очевидно, что число векторов , удовлетворяющих этому условию, равно ). После этого вектор делается общедоступным. 
Таким образом, в процессе выполнения протокола для каждого класса безопасности вырабатываются секретный ключ и открытый ключ (кроме корневого класса). Если теперь , то абонент из может вычислить следующим образом. Существует цепь классов безопасности , где непосредственно доминирует для всех . Абонент из , зная и , вычисляет по формуле (1), затем, зная и , вычисляет по той же формуле и т. д.; после шагов будет вычислен . 
Авторы также пытаются доказать, что если класс непосредственно доминирует класс , то абоненты из не могут вычислить , даже если вступят в сговор с абонентами из двух других классов, которые также непосредственно доминирует . Однако доказательство содержит грубые логические ошибки и не может быть признано состоятельным.