ПРОВЕРЯЕМЫЕ СЕКРЕТНЫЕ ПЕРЕТАСОВЫВАНИЯ И ИХ ПРИМЕНЕНИЕ ПРИ ПРОВЕДЕНИИ ЭЛЕКТРОННОГО ГОЛОСОВАНИЯ Российский патент 2006 года по МПК G07C13/00 

Описание патента на изобретение RU2271574C2

Понятие о перетасовывании системы объектов, записей или ярлыков является простым и интуитивно понятным и примеры тасования в большом количестве окружают нас в различных повседневных ситуациях. Игрок в казино знает, что среди карт в его руке, каждая является одной из 52 возможных различных карт, и что ни у кого за столом не будет такой же карты, какая есть у него. Тем не менее, он ничего не знает о том, как распределены карты, даже если он записывает точный порядок карт до того, как их перетасовывает крупье.

Применительно к электронным данным, задача получения случайной перестановки (но действие которой можно проверить) входной последовательности является очень сложной. Проблема состоит в том, что сами данные либо видимы проверяющему, либо нет. Если они видимы, то проверяющий или другой наблюдатель может легко восстановить соответствие между входными и выходными записями. Если данные не видны, то входные и выходные записи должны являться разными представлениями одних и тех же исходных данных. Но, если выход достаточно сильно отличается от входа (то есть, является результатом процесса «хорошего» шифрования) и проверяющий не может восстановить упомянутое выше соответствие, то, как может проверяющий быть уверенным, что тот, кто тасовал данные, не изменил исходные данные в процессе перетасовывания?

Большинство статей посвящены разработке эффективного (линейного) способа решения данной задачи в одной важной ситуации - данные зашифрованы с помощью алгоритмов Эль-Гамаля или Диффи-Хеллмана. Для того чтобы сделать изложение как можно более ясным и четким, большая часть статей открыто обращается к конкретному случаю, когда операции выполняются в простой подгруппе группы Zp* - мультипликативной группы вычетов по модулю большого простого числа р. Тем не менее, единственным свойством исходной (мультипликативной) группы, которым мы пользуемся, является то, что соответствующая проблема Диффи-Хеллмана трудноразрешима. Таким образом протокол перетасовывания также применим в случае, когда криптосистема Эль-Гамаля строится для других групп, таких как группы эллиптических кривых.

Общие булевские методы доказательства из работ [1] и [4] можно также использовать для построения доказательства с аналогичными свойствами, тем не менее, итоговый размер доказательства (сложность) будет являться квадратичной (или более сложной) функцией от размера входной последовательности.

Способ согласно данной работе также имеет некоторые преимущества по сравнению с методом «разрезать и выбрать», использованном в работе [8]. В данном подходе размер доказательства зависит от вероятности мошенничества, доказывающего, что данная вероятность необходима для того, чтобы убедить всех участников. В протоколе перетасовывания согласно данной работе упомянутая вероятность мошенничества по существу равна k/q, где k - число тасуемых элементов, a q - мощность подгруппы из Zp*, в которой элементы подвергаются шифрованию. Хотя в [8] не проанализирована зависимость размера доказательства от вероятности мошенничества, кажется, что для получения подобной малой вероятности обмана необходимо, чтобы данный размер был на порядки больше размера доказательства, данного в этой работе. (Более того, если протокол из работы [8] работает не в диалоговом режиме, то вероятность мошенничества необходимо выбирать очень маленькой, так как злоумышленник может использовать значительные автономные вычислительные мощности для подбора поддельного доказательства с помощью полного перебора. Это же, конечно, может случиться и с протоколом из данной работы, но вероятность k/q является достаточно небольшой величиной для всех применяемых на практике значений k и q - даже для автономных атак).

Результаты данной работы предусматривают несколько путей реализации повсеместно проверяемого протокола проведения голосования. Некоторые из этих путей представлены в заключительных разделах работы. В этой связи целесообразно сравнить данный протокол с «элегантным гомоморфным протоколом проведения голосования» из работы [2]. Упомянутый протокол хорошо работает в ситуации, когда бюллетени содержат только простые вопросы типа «выберете (не более) m из n». Данные вопросы исключают ответы, где надо что-то вписывать свое, аналогичным свойством обладают вопросы «пропорционального типа», когда предполагается, что голосующий отмечает ответы в порядке своих предпочтений и вопросы сводятся в таблицы в соответствии с этими предпочтениями. (Теоретически вопросы пропорционального типа можно обрабатывать следующим образом: сопоставлять каждой возможной перестановке вариантов ответов единственный ответ - да или нет. Тем не менее, на практике данный вариант не осуществим, за исключением случаев, когда количество вариантов выбора ответа достаточно мало). Пара несколько менее важных недостатков схемы из [2] заключаются в том, что она значительно увеличивает размеры данных голосования и эта схема подразумевает наличие доказательства подлинности голосующего. Данное доказательство еще больше увеличивает размеры данных голосования примерно на порядок и оно не является привлекательным исходя из практических соображений, так как подразумевает, что на компьютере голосующего будет выполняться специальная программа.

Протоколы перетасовывания данной работы целиком построены на элементарных арифметических операциях. Следовательно, их легко реализовать и они хорошо пригодны для описанного здесь приложения с анонимными мандатами.

Применение к голосованию

Немедленно приходящее на ум применение к вопросу голосования заключается в использовании описанных протоколов для реализации обычного подхода центра сведения/перемешивания данных в вопросе обеспечения анонимности. В этом случае протоколы данной работы имеют несколько важных преимуществ. Они очень эффективны и позволяют центрам перемешивания данных быть полностью независимым от властей, которые обладают некоторой частью ключа, необходимого для расшифрования бюллетеней.

Тем не менее, возможно более ценным и интересным является применение нового протокола для создания «анонимных мандатов». Член некоторой группы лиц, определяемой только с помощью нескольких открытых ключей алгоритмов DSA или Диффи-Хеллмана, может подтвердить членство в упомянутой группе и/или поставить свою одноразовую подпись, при этом все действия проделываются, не раскрывая своей личности. Это приводит к новому решению задачи голосования, при этом решение можно будет везде проверить, но оно не предполагает наличия некоторого специального множества «уполномоченных лиц», которые осуществляют сведение результатов. Также новый протокол подразумевает модель большей конфиденциальности голосующего и значительно ускоряется сведение результатов, так как отпадает необходимость зашифровывать/расшифровывать бюллетени. В сущности, вместо перемешивания зашифрованных данных голосования после получения бюллетеней в центре сбора данных голосования, мандаты голосующих смешиваются до начала проведения выборов. На самом деле упомянутое перемешивание могут проводить сами голосующие с целью «анонимной идентификации» (смотри раздел 7.1). (Заметим, что смешивание может также проводиться несколькими уполномоченными лицами, таким образом обеспечивается более эффективное средство для внедрения голосования с пороговой секретностью. При таком голосовании снова не нужно зашифровывать/расшифровывать бюллетени).

Обозначения

Далее, если не оговорено другое, n - это положительное целое число, р и q - известные простые числа. Арифметические операции производятся в кольце вычетов Zp (или иногда Zn) и g ∈ Zp - число, мультипликативный порядок которого (простое число) равен q. (Очевидно, что q|(р-1)). В каждом протоколе доказательства через Р обозначаем того, кто доказывает (тасующего) и через V-проверяющего (того, кто контролирует).

Напомним доказательство Чаума-Педерсена знания равенства для дискретных логарифмов. Для G, X, Н, Y ∈ Zp это является доказательством знания соотношения

Известно, что данный протокол является протоколом с нулевым разглашением, тем не менее, он известен как протокол с нулевым разглашением при честном проверяющим. В следующем разделе приведем естественное обобщение данного протокола на несколько переменных и данный обобщенный протокол также будет обладать указанными свойствами. Этих свойств достаточно для нашего основного приложения, в котором проверяющий осуществляется с помощью эвристики Фиата-Шамира (Смотри [5] и [2]). Определение 1. Данное доказательство, как и выше, обозначается через CP(G, X, Н, Y). Определение 2. Для фиксированного g ∈ Zp*, обозначим через ⊗g бинарный оператор, действующий на (g)×(g), определяемый следующим образом:

logg (x ⊗gy)=loggx loggy

для всех x, у ∈ (g). Или, по-другому:

gaggb=gab=(ga)b=(gb)a

для всех a, b ∈ Zp. Следуя соглашениям, используемым для сумм и произведений, также будем использовать обозначение

Будем называть данный оператор логарифмическим произведением с основанем g.

При каждом использовании обозначения из данного выше определения, нижний индекс g можно не писать, если его значение ясно из контекста.

Замечание 1. Заметим, что

Приведем ниже ряд хорошо известных результатов, которые будем активно использовать в оставшейся части работы.

Лемма 1. Пусть f(x) ∈ Zq[x] - многочлен степени d. Тогда существует не более d значений z1, z2,..., zd ∈ Zq таких, что f(zi)=0.

Следствие 1. Пусть f(x), g(x) ∈ Zg[x] - два многочлена степени не выше d, причем f≠g. Тогда существует не более d-1 значения z1, z2,..., Zd-1 ∈ Zq таких, что f(zi)=g(zi).

Следствие 2. Пусть f(x), g(x) ∈ Zq[x] - два многочлена степени не выше d, причем f≠g. Если t ∈R Zq (t выбирается случайно из Zq), то

P({t:f(t)=g(t)})≤(d-1)/q.

Следствие 3. Пусть f(x), g(x) ∈ Zg[x] - любые два многочлена степени не выше d. Тогда для каждой константы R ≠ 0, существует не более d значений z1(R),..., zd(R) таких, что f(zi(R))=Rg(zi(R)).

Определение 3. Пусть f(x) - многочлен из Zg[x]. Обозначим через χf (неупорядоченное) множество всех корней многочлена f, то есть по определению

Определение 4. Если Λ ⊂ Zg и R ∈ Zg, то по определению пишем

Следствие 4. Пусть f(x), g(x)∈Zg[x] - любые два многочлена степени не выше d.

Зафиксируем константы R≠0, γ≠0 и δ≠0. Если t ∈R Zq, то

P({t:f(γt)=Rg(δt)})≤d/q.

Лемма 2. Пусть Zkq - стандартное векторное пространство над Zq размерности k и fix ν=(ν1,...,... νk) ∈ Zkq, ν≠0 и а ∈ Zq. Если r ∈R Zkq выбирается случайно, то

P({r:ν·r=a})=1/q.

Доказательства для повторного логарифмического умножения

До конца данного раздела все логарифмические умножения будут вычисляться относительно фиксированного элемента g и таким образом будем опускать нижний индекс g в обозначениях. Задача, описанная далее, является принципиальной для протоколов перетасовывания, которые будут описаны позже.

Задача повторного логарифмического умножения: Две последовательности {Хi)ki=1 и {Yi}ki=1 известны. Доказывающий Р также знает ui=logg Xi и νi=logg Yi, для всех i, но данные последовательности не известны проверяющему V. Доказывающему Р необходимо убедить V в том, что

при этом Р не должен раскрывать никакой информации о секретных числах ui и νi.

Протокол, представленный ниже, является в точности обобщением на большую размерность протокола Чаума-Педерсена, упомянутого в начале раздела 2. На самом деле, мы увидим, что в случае k=2 данный протокол является непосредственно протоколом Чаума-Педерсена. Описание будет значительно проще, если мы ограничим описание протокола случаем, когда

Ясно, что если какое-либо из приведенных неравенств не выполняется, то бессмысленно строить доказательство, так как выполнение или невыполнение равенства (5) можно легко проверить. (Если Хi=1, то хi=0 и тогда равенство (5) верно тогда и только тогда, когда для некоторого j справедливо Yi=1. Аналогичное верно в случае, когда последовательности X и Y меняются местами).

Протокол доказательства для повторного логарифмического умножения (ПДПЛУ):

1. Р секретно, случайно и равновероятно порождает k-1 элемент из Zq: θ1,..., θk-1. Затем Р вычисляет

и передает проверяющему V последовательность А1,..., Аk.

2. V генерирует случайный элемент γ∈Zq и передает его доказывающему Р.

3. Р вычисляет k-1 элемент из Zq:r1,...,rk-1, удовлетворяющие соотношениям

и передает последовательность r1,..., rk-1 проверяющему V. (Ниже, при доказательстве полноты, мы увидим, каким образом вычисляются данные значения.)

4. Проверяющий V принимает доказательство как правильное тогда и только тогда, когда выполняются соотношения (8).

Теорема 1. ПДПЛУ является трехходовым, с открытой монетой доказательством знания равенства (5), доказательство является с особенным нулевым разглашением при честном проверяющем. Число возведений в степень, необходимое для построения доказательства (то, что делает Р), равно k и число возведений в степень, необходимое для проверки доказательства (то, что делает V), равно 2k. Если V генерирует элементы γ случайно, то вероятность фальсификации при доказательстве равна 1/q.

Замечание 2. Заметим, что при построении доказательства в степень возводится одно число (основание) g и, таким образом, можно применять алгоритмы с фиксированным основанием (смотри [6], стр. 623).

Доказательство. Ясно, что протокол является трехходовым и протоколом с открытой монетой. На первый взгляд кажется, что число возведений в степень при построении доказательства должно равняться 2k-2, но, на самом деле, его можно построить, используя только k возведений в степень. Это объясняется тем, что Р знает числа хi и уi (которые являются логарифмами от Xi и Yi соответственно) и, следовательно, может вычислять Ai по формуле для всех 2≤i≤k-1.

Полнота

Полнота означает, что для произвольных и γ доказывающий Р может всегда найти такой вектор , элементы которого удовлетворяют системе равенств (8). Для того, чтобы убедиться в том, что в нашем случае сказанное имеет место, прологарифмируем по основанию g обе стороны равенств из (8) и положим для всех 1≤i≤k-1. В результате получится следующая система из k линейных уравнений (при записи в матричной форме соответствующая матрица будет иметь размер k×(k-1)) над Zq относительно

Подсистема из последних k -1 уравнений

невырожденная, так как соответствующий определитель равен Пki=2=xi что не равно нулю благодаря предположению (6). Следовательно, систему уравнений можно решить относительно На самом деле решение записывается следующим образом:

Тем не менее, в предположении данной задачи, выполнение равенства (10) на самом деле следует из справедливости (9). Это происходит благодаря выполнению следующих равенств

что, совместно с фактом, что подматрица из левой части равенства (10) не вырождена, означает, что первый вектор-столбец матрицы размера k × k из (12) должен быть равен линейной комбинации оставшихся k-1 вектор-столбцов.

Корректность

Если первый вектор-столбец матрицы из левой части равенства (12) не является линейной комбинацией оставшихся k-1 вектор-столбцов, то существует не более одного значения γ∈Zq, для которого выполняется равенство (9). Таким образом, если γ выбирается случайно, то существует не более одного шанса из q для того, чтобы Р сгенерировал числа r1,..., rk-1, которые бы убедили проверяющего V в правильности доказательства.

Доказательство с особенным нулевым раскрытием при честном проверяющем

Свойство нулевого раскрытия при честном проверяющем выполняется, потому что для случайного γ и случайного и для

тройка является допустимой для признания доказательства правильным.

Следовательно, имитация строится посредством генерирования случайных и независимых у и ri и вычисления так, как показано в равенстве (13).

Легко видеть, что распределение вектора , построенного описанным выше способом, совпадает с распределением вектора, построенного исходя из (7), снова благодаря тому, что первый вектор-столбец матрицы из (12) является фиксированной линейной комбинацией оставшихся вектор-столбцов. Значит, если проверяющий V ведет себя честно, то имитация пройдет отлично. Следовательно, случайное число γ может выбираться произвольно, мы также имеем выполнение свойства особенного нулевого разглашения при честном проверяющем.

Замечание 3. Выражение для из (11) также может быть формально записано в следующем виде:

Тем не менее, этим выражением нельзя будет воспользоваться, если некоторые из чисел уi будут равны 0. В случае выражения (11) указанная проблема устраняется с помощью введения предположений (6). Конечно, основная часть решения может быть успешно сформулирована в предположении, что уi ≠ 0 для всех 1≤i≤k-1 - только выбор выражения для гi необходимо согласовывать с формой принимаемых предположений.

Замечание 4. Мы оставляем читателю вопрос проверки того, что в случае k=2 протокол ПДПЛУ представляет собой хорошо известный протокол Чаума-Педерсена. При этом желательно вспомнить замечание 1 и равенство (2).

Замечание 5. Особенная корректность

Так же как и в случае протокола Чаума-Педерсена, в котором доказывается, что Р знает s=logG X=logH Y, протокол ПДПЛУ доказывает, что Р знает s1,..., sk такие что loggXi=logg Yi и Пki=1 si=1. Ясно, что из двух допустимых диалогов и с одинаковым первым шагом, можно выделить свидетельство

(w, ρ)={γ-γ', -'),

удовлетворяющее

Так как w=γ-γ' ≠ 0, то ρi≠0 для всех 1≤i≤k-1. Следовательно, при соответствующей небольшой модификации постановки задачи, протокол будет обладать свойством особенной корректности.

Простое k-перетасовывание

Первый протокол доказательства перетасовывания, который мы опишем, предполагает некоторое количество ограничений. Это будет полезно по двум причинам. Во-первых, этот протокол является базисным структурным элементом для более общего протокола доказательства перетасовывания, который будет описан позже. Также эти ограничения служат второй важной цели. Единственный пример данного доказательства можно построить для того, чтобы по существу «выполнить» преобразование, соответствующее конкретной перестановке. Это может быть важным, когда необходимо тасовать кортежи элементов из Zp, а ведь именно это необходимо при тасовании пар алгоритма Эль-Гамаля как при применении протокола для голосования.

Определение 5. Предположим, что известны две последовательности Х1,..., Хk и Y1,..., Yk элементов из Zp и два дополнительных элемента С и D. Также предположим, что доказывающий Р знает хi=logg Xi и уi=loggYi, с=logg С и d=logg D, но все только что перечисленные значения не известны проверяющему V. Доказывающему Р необходимо убедить V, что существует некоторая перестановка π ∈ Σk, обладающая свойством

для всех 1≤i≤k-1, при этом нельзя раскрывать никакой информации о хii,π, с или d. Будем называть эту задачу Задачей простого k-перетасовывания.

Замечание 6. Для данного раздела и всей оставшейся части данной работы сделаем упрощающие предположения: во всех конструкциях с тасованием

1. хi ≠ xj для i≠j (и, следовательно, уi≠уj для i≠j).

2. хi≠1 для всех 1≤i≤k.

Существуют очевидные пути, каким образом действовать в указанных конкретных случаях. Более того, на практике данные случаи «практически никогда» не встречаются, так как элементы обычно выбираются случайно.

Протокол из предыдущего раздела, совместно со следствием 2, предоставляют «инструменты», необходимые для решения данной задачи фактически прямолинейным способом.

Протокол простого k-перетасовывания:

1. V генерирует случайный элемент t ∈ Zq и передает его Р.

2. Р и V открыто вычисляют U=Dt=gdt, W=Сt=gct,

и

3. Р и V выполняют ПДПЛУ для двух векторов из 2k элементов

Протокол приводит к успеху (V принимает доказательство) тогда и только тогда, когда V принимает ПДПЛУ для данных входных последовательностей.

Теорема 2. Протокол доказательства для простого k-перетасовывания является четырехходовым, с открытой монетой доказательством знания равенства (15). Он удовлетворяет свойству особенной корректности и является протоколом с особенным нулевым разглашением при честном проверяющем. Число возведений в степень, необходимое для проведения доказательства, равно 2k и число возведений в степень, необходимых для проверки доказательства, равно 4k.

Если V генерирует элементы t случайно, то вероятность фальсификации при доказательстве не превосходит

(k-1)/q+(q-k+1)/q2=(qk-q+q-k+1)/q2<k/q.

Замечание 7. Сказанное в замечании 2 также относится к данному случаю.

Доказательство. Все требуемые свойства следуют непосредственно из результатов предыдущего раздела (Свойство особенной корректности аргументировано в замечании 5). Поддельное доказательство может быть сгенерировано только при двух условиях.

1. Случайное число t является одним из особенных значений, для которых

2. Случайное число t не является одним из особенных значений из пункта 1, а протокол ПДПЛУ сфальсифицирован.

По следствию 2 вероятность события из пункта 1 не превосходит (k-1)/q и вероятность события из пункта 2 равна (q-k+1)/q2 исходя из результатов предыдущего раздела.

Улучшение сложности

Как размер, так и сложность протокола простого k-перетасовывания можно улучшить. Вместо использования следствия 2 будем использовать следствие 4. Интуитивно мы бы хотели заменить k копий D и k копий С в (16) на единственные числа соответственно. К сожалению, с такой заменой протокол потерял бы свойство нулевого разглашения. Вместо указанного, модифицируем протокол следующим образом.

Протокол простого k-перетасовывания II:

1. Р генерирует случайно и независимо элемент β из Zq и τ из Zq/{0}, вычисляет

и передает В и T проверяющему V.

2. V случайно генерирует элемент λ из Zq и передает λ, доказывающему Р.

3. Р вычисляет элемент s по формуле

и передает s проверяющему V.

4. V генерирует случайный элемент t из Zg и передает его доказывающему Р.

5. Р и V открыто вычисляют U=Dt=gdt, W=Сt=gct,

6. Р секретно случайно и равновероятно порождает k элементов из Zq1,...,θk.

Затем Р вычисляет

и передает проверяющему V последовательность A1,...,Ak+1.

1. V генерирует случайный элемент γ ∈ Zq и передает его доказывающему Р.

8. Р вычисляет k элементов из Zq:r1,..., rk, удовлетворяющих соотношениям

и передает последовательность r1,...,rk проверяющему V.

9. V принимает доказательство тогда и только тогда, когда выполняются равенства (20).

Теорема 3. Протокол II доказательства для простого k-перетасовывания является пятиходовым, с открытой монетой доказательством знания соотношения в равенстве (15). Он удовлетворяет свойству особенной корректности и является протоколом с особенным нулевым разглашением при честном проверяющем. Число возведений в степень, необходимое для проведения доказательства, равно k+4 и число возведений в степень, необходимых для проверки доказательства, равно 2k+2.

Если V генерирует элементы t случайно, то вероятность фальсификации при доказательстве не превосходит

(k-1)/q+(q-k+1)/q2=(qk-q+q-k+1)/q2<k/q.

Набросок доказательства. Все рассуждения очень похожи, свойство за свойством, на рассуждения, приводимые в случае первоначального протокола. Основное отличие заключается в том, что ссылки на следствие 2 заменяются ссылками на следствие 4. Определение 6. Обозначим случай протокола II простого k-перетасовывания через

где и С и D задаются так же, как в определении 5.

Общее k-перетасовывание

Очевидным ограничением протокола простого k-перетасовывания является то, что доказывающий Р должен знать все показатели степени х1,...,xk и у1,...,yk. Во многих приложениях дело обстоит по-другому. Цель данного раздела заключается в устранении данного ограничения.

Задача общего k-перетасовывания:

Две последовательности Х1,..., Xk и Y1,...,Yk элементов из Zp известны. Дополнительно только доказывающему Р известны константы с и d, а элементы С=gс и D=gd сделаны известными всем. Доказывающему Р необходимо убедить V, что существует некоторая перестановка π ∈ Σk, обладающая свойством

для всех 1≤i≤k-1, при этом нельзя раскрывать никакой информации о π, с или d.

Протокол доказательства для общего k-перетасовывания.

Для удобства описания рассмотрим случай d=1. Общий случай может быть сведен к данному случаю простой заменой порождающего элемента группы с g на С и заменой с на c/d.

1. Для 1≤i≤k доказывающий Р генерирует случайно и независимо элементы ai, bi, ui и wi из Zq и вычисляет

Также Р генерирует γ из Zq/{0} и случайно и независимо друг от друга генерирует z0, z1 из Zq и вычисляет

и для 1≤i≤k

и, наконец,

затем Р передает упорядоченные последовательности Аi, Вi, Сi Ui и Wi вместе с Х0, Y0 и Λ проверяющему V.

2. Для 1≤i≤k проверяющий V случайно и независимо выбирает еi из Zq/{0} и передает последовательность доказывающему Р.

3. P вычисляет

для всех 1≤i≤k и передает вычисленные значения проверяющему V.

4. V генерирует случайный элемент t из Zq/{0} и передает его доказывающему Р.

5. Для 1≤i≤k доказывающий Р тайно вычисляет экспоненты

ri=ai+t ei bi (27)

si=γrπ(i).

6. Затем Р и V выполняют простое k-перетасовывание SSk(, g, Г), где

Заметим, что Р не нужно прямо вычислять Ri и Si, для построения доказательства, а V может вычислять Ri и Si так: Rii и Sii Dti.

Таким образом, при выполнении данного протокола доказательства доказывающий Р проводит k+4 возведений в степень, а V вычисляет 4k+2 экспоненты.

7. Р открывает значения

8. V проверяет, что

gσi=WiSi/C,

и вычисляет

9. Р вычисляет

и выполняет вместе с V два доказательства Чаума-Педерсена CP(g, Г, G, G0) и CP(g, С, Z1, G0, G1). Таким образом, V убеждается в выполнении равенств 32.

10. Наконец V проверяет, что

11. V убеждается в правильности доказательства тогда и только тогда, когда

(а) Все проверяемые равенства верны (шаги 8 и 10),

(б) V принимает доказательство простого перетасовывания на шаге 6,

(в) V принимает оба доказательства Чаума-Педерсена на шаге 9.

Применение протоколов для голосования с несколькими уполномоченными

В работе [2] можно найти основное описание ситуации для применения протоколов при обыкновенном голосовании. Голоса представляются в виде пар схемы Эль-Гамаля в следующей форме: (или последовательности таких пар, если нужно больше данных), где m представляет собой некоторое стандартное шифрование ответов избирателей, αi секретно генерируются голосующими и h - это открытый параметр, который строится с помощью схемы разделения ключей без дилера ([7]). После закрытия избирательных участков (голосование закончено), независимые уполномоченные лица последовательно перетасовывают бюллетени. Каждое перетасовывание выполняется следующим образом:

где г, выбираются случайно из Zq и

(Xi,Yi)=(gαi,hαiMi).

После заключительного перетасовывания, окончательный набор зашифрованных бюллетеней расшифровывается в соответствии с пороговой схемой и открытые тексты ответов голосующих подсчитываются по обычным правилам проведения выборов.

Число уполномоченных лиц, принимающих участие в последовательном перемешивании, может быть произвольным и они могут быть совсем другими лицами, а не теми, кто обладает частями секретного ключа для голосования. Последовательность бюллетеней, которые, в конце концов, расшифровываются, можно только сравнить с исходной последовательностью представленных бюллетеней, если все перетасовывающие уполномоченные лица тайно сговорятся, так как каждая из их перестановок является совершенно произвольной.

Хотя форма каждого перетасовывания отличается от перетасовывания, обсуждавшегося в разделе 5, протокол доказательства можно построить с помощью лишь небольших изменений. Детали протокола будут представлены в следующим подразделе.

Перетасовывания пар схемы Эль-Гамаля

1. Для 1≤i≤k доказывающий Р генерирует случайно и независимо элементы аi, bi, ui и wi из Zq и вычисляет

также Р генерирует γ из Zq/{0} и случайно и независимо друг от друга генерирует x0, у0 и t0 из Zq и вычисляет

и для 1≤i≤k,

и, наконец,

затем Р передает упорядоченные последовательности Аi, Вi, Сi Ui и Wi вместе с Х0, Y0 и Λ проверяющему V.

1. Для 1≤i≤k проверяющий V случайно и независимо выбирает еi из Zq / {0} и передает данную последовательность Р.

3. Р вычисляет

для всех 1≤i≤k и передает вычисленные значения проверяющему V.

4. V генерирует элемент с из Zq/{0}и передает его доказывающему Р.

5. Для 1≤i≤k доказывающий Р тайно вычисляет

6. Затем Р и V выполняют простое k-перетасовывание SSk(, g, Г), где

Заметим, что P не нужно прямо вычислять Ri и Si для построения доказательства, а V может вычислять Ri и Si так: Ri=Ai Bicei и Sii Dic.

Таким образом, при выполнении протокола доказательства, Р проводит k+4 возведений в степень, а V вычисляет 4k+2 экспоненты.)

7. Р открывает значения

8. V проверяет, что

и вычисляет

9. Р вычисляет

и выполняет вместе с V два доказательства Чаума-Педерсена CP(g, Г, G, G0) и CP(g, Г, H, H0). (Таким образом, V убеждается в выполнении равенств 45.)

10. Р и V вычисляют

11. Р вычисляет

и передает его проверяющему V.

12. Наконец V проверяет, что

13. V принимает доказательство тогда и только тогда, когда

(а) Все проверяемые равенства верны (шаги 8 и 12),

(б) V принимает доказательство простого перетасовывания на шаге 6,

(в) V принимает оба доказательства Чаума-Педерсена на шаге 9.

Однопроходное сведение результатов

При стандартной реализации предполагается, что данная операция содержит две различные фазы:

Перетасовывание (или перемешивание). Набор зашифрованных бюллетеней перемешивается. Это означает, что зашифрованная (и итерационно перетасованная) избирательная урна должна последовательно проходить от одного уполномоченного лица к другому до тех пор, пока не будет выполнено достаточное количество стадий перемешивания.

Более точно, пусть А1,..., An - последовательность перетасовывающих или перемешивающих субъектов, обычно называемых уполномоченными. Пусть В - это последовательность зашифрованных бюллетеней. Последовательно каждый Аi выполняет следующие операции.

1. Аi получает

B=((X1,Y1),...,(Xk,Yk))

от Ai-1, также он получает все необходимые данные по аутентификации и доказательству правильности. (В случае i=1, А1 получает В непосредственно из центра сбора голосов.)

2. Ai выполняет все необходимые действия по осуществлению аутентификации и проверке правильности (доказательство).

3. Если какая-либо из проверок в пункте 2 не завершится успешно, то сведение данных прекращается или возможно начинается заново. Иначе Аi вычисляет

в соответствии с равенством 34, а также вычисляет соответствующее доказательство правильности Рi из раздела 6.1 (Обычно, это является не интерактивной версией протокола.)

4. Аi переименовывает в В и посылает уполномоченному Ai+1 последовательность В вместе с Рi и любыми другими необходимыми данными аутентификации и проверок правильности. В случае i=n стадия перемешивания заканчивается и процесс сведения данных в таблицы переходит к стадии расшифровывания.

Расшифровывание. После перетасовывания (перемешивания) результирующее множество бюллетеней остается зашифрованным с помощью открытого ключа для голосования, обычно обозначаемого через h. Для расшифровывания данных бюллетеней каждый уполномоченный должен поучаствовать в процессе расшифровывания. Это осуществляется следующим образом.

1. Пусть

B=((X1,Y1),...,(Xk,Yk))

представляет собой набор зашифрованных бюллетеней, которые передал последний уполномоченный Аn после перемешивания и пусть SD={D1,...,Dt} - это подмножество уполномоченных, принимающих участие в расшифровывании. (Значение t определяется используемым порогом при создании открытого ключа h для голосования. Смотри [7].)

2. Для каждого 1≤j≤t параллельно:

(а) Dj получает последовательность Х1,..., Xk вместе с соответствующими данными по аутентификации ее правильности.

(б) Если аутентификация, проводимая на шаге 2а, не прошла, то Dj должен прекратить расшифровывание. Иначе для каждого 1≤i≤k уполномоченный Dj вычисляет

где sj - это часть ключа для расшифровывания, содержащаяся у Dj, a z(j,SD) - открыто вычисляемый множитель - константа. (Смотри [7].) Dj также вырабатывает доказательство правильности Чаума-Педерсена Сij для равенства 49.

(в) D передает все Zij и Сij в центр сведения данных в таблицы.

3. Предположим, что все значения Сij, полученные в центре сведения данных в таблицы, признаны правильными, тогда множество открытых текстов бюллетеней вычисляется по формуле

4. Итог голосования, наконец, вычисляется посредством подсчета М, так же как при любых выборах.

Если множество SD уполномоченных для расшифровывания лиц (или даже некоторое подмножество его) является подмножеством уполномоченных лиц для перетасовывания (такой случай почти всегда встречается на практике), то существует один недостаток описанной процедуры: каждому уполномоченному, принимающему участие в обоих стадиях, необходимо получать два самостоятельных потока сообщений, каждый из которых может быть достаточно большим. Данный недостаток является особенно ощутимым в случае, когда уполномоченные соединены с помощью плохого канала связи.

Заметим, что возможно некоторую часть или все действия по расшифровыванию проводить в одно время с перемешиванием. Это осуществляется следующим образом: во время стадии перетасовывания для каждого уполномоченного для перетасовывания, принадлежащего также и множеству SD, объединяются шаг 3 перетасовывания и шаг 2 расшифровывания. Те уполномоченные для перетасовывания, которые не входят в множество SD, выполняют шаги без изменений.

Таким образом, если Aj входит в множество SD, то вместо того, чтобы на шаге 4 перетасовывания послать В уполномоченному Aj+1, он посылает как

B=((X1,Y1),...,(Xk,Yk)) так и

Z=((Z1j, C1j),...,(Zkj, Сkj)),

где Zij и Сij определены выше. Далее, вместо того, чтобы использовать В в качестве входных данных для перетасовывания уполномоченный Aj+1 должен использовать

B=((X1,Y1/Z1j),...,(Xk,Yk/Zkj)).

Таким образом, если все уполномоченные для расшифровывания являются также уполномоченными для перетасовывания, что обычно имеет место, то окончательные выходные данные представляют собой множество расшифрованных бюллетеней, и таким образом исчезает необходимость в отдельной стадии расшифровывания. Если только t0<t уполномоченных для расшифровывания являются также уполномоченными для перетасовывания, то окончательно перетасованный ящик для голосования будет состоять из элементов, зашифрованных с помощью открытого ключа, разделенного между оставшимися t-t0 уполномоченными по расшифровыванию. Таким образом, в данном случае сохраняется необходимость проведения стадии расшифрования, но количество необходимых сеансов обмена информацией уменьшится на соответствующую величину.

К-перетасовывание открытых ключей DSA

Общий алгоритм k-перетасовывания идеально подходит для проверяемой перестановки набора открытых ключей схемы DSA или Диффи-Хеллмана. Под этим мы понимаем то, что получается новый набор открытых ключей схемы DSA, который посредством вычислений невозможно связать с исходным набором, но можно проверить, что указанный набор представляет то же самое множество открытых ключей. Это может быть очень важно, когда желательно сделать анонимным набор ключей, проходящих аутентификацию, но при этом защищая целостность исходной группы секретных ключей - ситуация при голосовании является именно таким примером.

Здесь мы только обрисуем алгоритм, но читателю должны быть полностью очевидны все детали. Предполагается, что первоначально все открытые ключи представлены в виде (g, Н), Н=gs, где g является фиксированным порождающим элементом, a s - это секретный ключ. То есть, вообще говоря «все ключи используют одно и то же основание». Протокол описывается следующим образом.

1. Тасующий или тот, кто перемешивает, получает g и список ключей Нi.

2. Тасующий выполняет общее k-перетасовывание с С=g и Yii' (новые открытые ключи), при этом порождая случайные числа проверяющего с помощью эвристики Фиата-Шамира. (То есть выполняется неинтерактивная версия протокола доказательства.)

3. Тасующий «возвращает» полную запись доказательства.

4. Предполагая, что запись подтверждается, полагаем, что g=С и Нii'. Изменяя общее основание на С, секретные ключи остаются теми же самыми, так как

Анонимные голосующие

При применении протоколов голосования часто говорят, что для достоверности голосования необходимо знать «кто голосовал», но для конфиденциальности необходимо знать «как голосовал». Алгоритм данного раздела разрешает дилемму достоверность/конфиденциальность новым способом. Вместо того, чтобы знать «кто голосовал» достаточно только знать, что тот, кто голосовал, принадлежит множеству правомочных избирателей! Как следствие мы приходим к решению задачи голосования, при котором:

1. Не нужно разделять ключ для внедрения разделенной доверенной схемы сведения данных.

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

3. При данном решении отпадает необходимость в зашифровывании и расшифровывании бюллетеней.

Конечно, необходимо следить за проблемой «двойного голосования», но алгоритм из данного раздела можно легко изменить следующим образом, чтобы избежать указанной проблемы.

АГ-1. На шаге 3, голосующий (тасующий) - тот, кто в данном случае знает один из секретных ключей s0 - подписывает свой заполненный бюллетень с помощью алгоритма подписи DSA, при этом в качестве образующего (или основания) группы используется С и с помощью ключевой пары (s0, Н0'). (H0' является открытым ключом «после перетасовывания», принадлежащим голосующему. Голосующий знает его место в новой последовательности, так как он/она осуществляет перетасовывание. И более того, свойства перетасовывания гарантируют, что H0'=Сs0 - то есть s0 является секретным ключом, соответствующим H0'.)

АГ-2. На шаге 4, предположим, что запись перетасовывания и подпись бюллетеня проверены, тогда центр по проведению голосования просто удаляет Н0' из списка правомочных ключей и начинает процесс снова, ожидая следующего бюллетеня. Новый список открытых ключей теперь содержит на один ключ меньше и, если голосующий (тасующий) знает не более одного секретного ключа, то он/она не знает ничего о новых секретных ключах и, следовательно, не может голосовать еще раз.

Окончательный протокол проведения выборов является повсеместно проверяемым в том случае, если доступны все записи перетасовываний и все подписи.

Хотя данная схема проведения голосования предполагает отличные характеристики конфиденциальности (секретность каждого бюллетеня защищается самим голосующим, а не рассредоточенным множеством уполномоченных лиц), на практике данная схема может иметь потенциальный недостаток. Объем вычислений, проводимых как голосующим (то есть на его компьютере), так и сервером центра сбора информации по голосованию с целью аутентификации, значительно превосходит тот объем, который имеет место в стандартных протоколах проведения выборов, где голосующий должен только вычислить стандартную подпись на основе открытого ключа. Тем не менее, если данный дополнительный объем вычислений может стать проблемой, то те же самые действия, необходимые для сохранения анонимности избирателя, можно выполнить до начала проведения выборов, до того, как бюллетени поступят в центр.

Это делается с помощью выдачи стандартных сертификатов PKI в ответ на запрос о выдаче сертификата, при этом запрос «анонимно» подписан так же, как подписывается бюллетень на шаге АГ-1, описанном выше. Конечно, эти запросы о выдаче сертификата не должны содержать никакой идентификационной личной информации, но в противном случае они должны являться полностью стандартными и содержащими, что очень важно, стандартный открытый ключ, для которого у избирателя имеется соответствующий секретный ключ. Во время голосования бюллетень может быть просто подписан с помощью этого обыкновенного секретного ключа. Используя эту методику, можно повторно использовать «анонимные» сертификаты. Таким образом, стоимость вычислений анонимных подписей может распределяться на много голосований.

К-перетасовывания кортежей

Из раздела 5 должно быть ясно, что проведенное простое перетасовывание по существу «замораживает» перестановку, которую можно будет проверить. После этого легко понять, каким образом обобщить результаты предыдущего раздела на случай перетасовывания k кортежей, в каждом из которых содержится по l элементов из 〈g〉 (l-кортежей) или k штук l-кортежей из пар алгоритма Эль-Гамаля. Если последовательность из k l-кортежей представить как массив размера k×l, то единственное простое k-перетасовывание может быть использовано для доказательства того, что все столбцы переставлены по одной и той же перестановке. А именно, это означает, что одинаковые значения Ai, Вi, Сi и Di используются для всех столбцов как в протоколе Общего k-перетасовывания, так и в протоколе Перетасовывания для алгоритма Эль-Гамаля. (В протоколе Общего k-перетасовывания одно и то же значение t может использоваться для всех столбцов, в то время как в протоколе Перетасовывания для алгоритма Эль-Гамаля одно и тоже значение с может использоваться для всех столбцов, хотя это и не обязательно.)

Перетасовывание ключа DSA без общего основания

Замечание данного раздела также можно распространить на протокол перетасовывания ключей DSA из раздела 7. Вместо того, чтобы приводить все множество открытых ключей к одному основанию g ↔ С, ключи обслуживаются как независимые пары (gi, Hi). Тасующий может выбрать произвольное подмножество пар ключей (Gi, Hi), перемешать их «как 2-кортежи» и возвратить результат. Это позволяет сделать перетасовывание более легким в обращении, если исходное множество велико, однако это достигается за счет увеличения объема работы с одним ключом примерно на 50%.

Фигура 1 и последующее обсуждение представляет краткое, общее описание подходящей вычислительной среды, в которой могут быть реализованы варианты осуществления изобретения. Хотя это не обязательно, варианты осуществления изобретения могут быть реализованы как компьютерные программы, такие как стандартные программы, выполняемые на компьютерах общего назначения, таких как персональные компьютерные или web-серверы. Специалисты в соответствующей области оценят то, что варианты осуществления изобретения (такие, как выборы небольшого объема) могут быть реализованы на практике на вычислительных системах другой конфигурации, включая устройства для доступа к Интернет, ручные устройства, переносные компьютеры, персональные цифровые помощники («PDA»), мультипроцессорные системы, программируемую бытовую электронную аппаратуру или устройства, построенные на основе микропроцессоров, сетевые персональные компьютеры, миникомпьютеры, сотовые или мобильные телефоны, мейнфреймы и другие подобные устройства. Варианты осуществления изобретения могут быть реализованы на специализированных компьютерах или специально программируемых процессорах обработки данных, сконфигурированных или построенных для того, чтобы выполнять описанные здесь компьютерные программы. На самом деле термин «компьютер», как он обычно используется в данной работе, подразумевает любое из упомянутых выше устройств, а также любой процессор обработки данных.

Данное изобретение может также быть реализовано в распределенной "вычислительной среде, где задачи или модули выполняются удаленными процессорными устройствами, связанными каналами связи, такими как локальные вычислительные сети (ЛВС), глобальные вычислительные сети (ГВС) или Интернет. В распределенной вычислительной среде, программные модули или подпрограммы могут находиться как на локальных, так и на удаленных запоминающих устройствах. Программы, соответствующие описанному здесь изобретению, могут храниться или распространяться на носителях, которые может прочитать компьютер, включая магнитные и оптические читаемые и сменные компьютерные диски, хранимые как аппаратно-реализованные программы в чипах, также программы могут распространяться через Интернет или другие сети (включая сети беспроводной связи). Специалисты в соответствующей области признают, что части здесь описанных протоколов могут резидентно находиться на сервере, а соответствующие части могут резидентно находиться на клиентских компьютерах. Структуры данных и передача данных, специфических для данных протоколов, также подпадают под границы действия данного изобретения.

Если не сказано иного, то различные блоки, показанные на фигуре 1, имеют обычное построение и функционируют традиционным способом. Следовательно, здесь не надо описывать подобные блоки подробно, потому что их назначение и работа хорошо понятна специалистам в соответствующей области.

Согласно фигуре 1 подходящая среда для системы 100 включает в себя одного или более клиентских компьютеров или компьютеров голосующих 102, каждый из которых содержит программный модуль браузера 104, позволяющий компьютеру получать доступ к данным и обмениваться данными через Интернет, включая веб-сайты Всемирной паутины 106 Интернета. Компьютеры избирателей 102 могут содержать один или более центральных процессорных элементов или других логических обрабатывающих схем, память, устройства ввода данных (например, клавиатуру, микрофоны, сенсорные экраны и координатно-указывающие устройства), устройства вывода данных (например, дисплеи, колонки и принтеры) и запоминающие устройства (например, накопители для жестких, гибких и оптических дисков), все эти устройства хорошо известны, но не показаны на фигуре 1. Компьютеры избирателей 102 могут также содержать другие программные модули, таких как операционная система, одна или более программа-приложение (например, текстовые редакторы или программы для обработки электронных таблиц) и тому подобное. Как показано на фигуре 1, существует N компьютеров избирателей 102, которые представляют избирателей 1, 2, 3,..., N.

Сервер 108 или «центр сбора информации по голосованию», соединенный с Интернетом или Всемирной паутиной («паутиной») 106, выполняет большую часть или всю работу по сбору, хранению и другим процессам обработки бюллетеней. База данных 110, соединенная с сервером 108, хранит большую часть веб-страниц и данных (включая бюллетени и доказательства правильности перетасовывания), которыми обмениваются компьютеры голосующих 102, один или более компьютеров избирательных пунктов 112 и сервер 108. Компьютер избирательного участка 112 - это персональный компьютер, сервер, миникомпьютер или что-то подобное, расположенный в месте проведения голосования для того, чтобы простые люди или избиратели, не имеющие доступа к компьютерам, соединенным с Интернетом, могли воспользоваться возможностью электронного голосования с помощью описанной здесь системы. Таким образом, компьютеры избирателей 102 могут располагаться в отдельном доме голосующего, в то время как один или более компьютеров избирательных участков 112 расположены в общественных местах или как-то по-другому, но так, чтобы люди могли на них проголосовать во время выборов. Компьютер избирательного участка 112 может представлять собой локальную вычислительную сеть (ЛВС) с одним сервером и несколькими рабочими станциями или терминалами для голосования, соединенными в ЛВС таким образом, чтобы несколько избирателей могли проголосовать одновременно или параллельно. Заметим также, что термин «голосующий» обычно используется здесь для обозначения любого индивидуума или организации, которые используют некоторые или все здесь описанные протоколы.

В другом варианте осуществления изобретения система 100 может быть использована для «частного» голосования, такого, как выборы служащих корпорации или членов правления. Согласно данному варианту компьютеры голосующих 102 могут представлять собой портативные или настольные компьютеры акционеров и компьютер избирательного участка 112 может быть одним или несколькими компьютерами, расположенными на территории компании (например, в холле), проводящей выборы. Таким образом, акционеры могут посетить компанию, чтобы получить доступ к компьютеру участка для голосования 112 и отдать свои голоса.

Один или более компьютеров уполномоченных лиц или организации 114 также соединены с сервером 108 с помощью Интернета 106. Если применяется пороговая криптосистема, то компьютеры уполномоченных 114 каждый обладает частью ключа, необходимого для расшифровывания электронных бюллетеней, хранящихся в базе данных 110. Для пороговых криптографических систем необходимо, чтобы в расшифровывании бюллетеней согласилось участвовать подмножество из t элементов из общего числа уполномоченных n (то есть, t<n), таким образом, нет необходимости всем уполномоченным лицам участвовать в расшифровывании бюллетеней. Другими словами, целью пороговой криптосистемы является разделение секретного ключа между n членами группы так, чтобы сообщения можно было расшифровать, если взаимодействуют члены довольно большого подмножества Т - (t, n) пороговая криптосистема. Протоколы определяются для (1) совместного порождения ключей в группе и для (2) расшифровывания сообщений без восстановления секретного ключа. Компьютеры уполномоченных 114 могут передавать серверу 108 свою роль в расшифровывании после завершения периода голосования, так что сервер может осуществлять расшифровывание бюллетеней и подведение итогов голосования.

Кроме того, для указанного варианта осуществления изобретения, каждый компьютер уполномоченных может выполнить одно перетасовывание бюллетеней так, как описано выше. Вместе с каждым перетасовыванием, каждый компьютер администрации вырабатывает доказательство правильности перетасовывания, которое можно зашифровать и направить серверу 108 или оставить хранить на компьютере уполномоченного. В другом варианте осуществления изобретения существует дополнительное множество компьютеров уполномоченных, при этом одно множество компьютеров уполномоченных перетасовывает зашифрованные бюллетени и генерирует доказательства правильности перетасовывания, а второе множество компьютеров уполномоченных использует части ключей для расшифровывания бюллетеней.

Также существует один или более компьютеров проверяющих 130, аналогичных компьютерам уполномоченных 114. Компьютеры проверяющих могут получать копии записей о проведении выборов для того, чтобы проверять их и выяснять не подтасованы ли результаты выборов. Например, компьютеры проверяющих могут получать доказательства правильности перетасовывания от каждого компьютера уполномоченных, как описано выше. Компьютеры проверяющих могут проводить проверки после окончания выборов и им не обязательно быть подключенными к Интернет. На самом деле, проверки могут проводить и другие показанные и описанные здесь компьютеры.

Серверы, компьютеры проверяющих или компьютеры уполномоченных могут выполнять протоколы регистрации голосующих или для регистрации могут быть выделены специальные компьютеры (не показано). Компьютеры для регистрации могут содержать устройства для считывания биометрических данных регистрирующихся, указанные данные могут включать в себя данные об отпечатках пальцев, данные с характерными признаками голоса, данные сравнения с цифровой фотографией и другие, известные специалистам в соответствующей сфере. Регистрация избирателей и обращение с анонимными сертификатами, использующимися вместе с проверяемыми перетасовываниями будут описаны ниже.

Сервер 108 включает в себя движок сервера 120, компонент управления веб-страницами 122, компонент управления базой данных 124 и другие не показанные компоненты. Движок сервера 124 выполняет, помимо стандартных функций, части протокола проведения электронного голосования. Протокол шифрования может храниться на сервере, а части этого протокола вместе с соответствующими константами также могут храниться на клиентских компьютерах. На самом деле упомянутый выше протокол может храниться и распространяться на носителях, информацию с которых можно прочитать на компьютере, включая магнитные, оптические и съемные запоминающие устройства, микрокоманды, хранящиеся на полупроводниковых чипах (например, EEPROM) и распространяться в электронном виде через Интернет или другие сети. Специалисты в соответствующей области признают, что части здесь описанных протоколов могут резидентно находиться на сервере, а соответствующие части могут резидентно находиться на клиентских компьютерах. Структуры данных и передача данных, специфических для данных протоколов, также подпадают под границы действия данного изобретения. Таким образом, движок сервера 120 может выполнять все необходимые операции по передаче бюллетеней правомочным избирателям, сбору бюллетеней, проверке бюллетеней (например, проверка цифровых подписей и проверка содержащихся доказательств подлинности бюллетеней), объединению голосов, расшифровыванию бюллетеней и/или сведению данных о голосовании в таблицы. В другом варианте осуществления изобретения движок сервера 120 просто собирает все электронные бюллетени так же, как центр по сбору данных голосования. Электронные бюллетени далее сохраняются и передаются третьей стороне, проводящей голосование, такой как муниципалитет, также передаются средства для перетасовывания бюллетеней, расшифровывания итогов и представления результатов голосования. Также информация по проверке выборов, такая как доказательства правильности перетасовывания и тому подобное, может храниться на месте или передаваться муниципалитету или другим организациям.

Компонент управления веб-страницами 122 отвечает за создание и показ или направление веб-страниц таких, как веб-страница электронной избирательной урны, как будет описано ниже. Голосующие и пользователи могут получить доступ к серверу 108 с помощью связанного с ним URL, такого как http:\www.votehere.net или URL, связанного с выборами, например URL для муниципалитета. Муниципалитет может управлять сервером 108 напрямую или автоматически направлять полученные электронные бюллетени третьей стороне, уполномоченной для проведения голосования, которая может управлять сервером. URL или любая другая упоминаемая здесь связь или адрес может быть любым указателем ресурса.

Компонент управления веб-страницами 122 и сервер 108 могут содержать защищенные разделы или страницы, доступ к которым могут осуществлять только уполномоченные лица, такие как правомочные избиратели или системные администраторы. Сервер 108 может использовать, например, уровень защищенных разъемов («УЗР») и маркеры для аутентификации подобных пользователей. На самом деле для малых выборов или тех, где вероятность мошенничества низка (или результаты фальсификации сравнительно незначительны), система 100 для сбора и хранения результатов голосования может использовать такие простые сетевые меры безопасности, как объяснено ниже, а не применять сложные системы электронных зашифрованных бюллетеней, как описано выше в заявке на патент. Специалистам в соответствующей области известны методы аутентификации пользователей (такие как использование системы паролей), создание безопасных каналов связи и обеспечение безопасности серверов и веб-страниц.

Схема проведения выборов и система может использовать «доску объявлений», где каждое письмо снабжается цифровой подписью и из письма нельзя ничего выкинуть. Доска объявления реализуется как веб-сервер. «Избирательная урна» резидентно находится на доске объявлений и содержит все зашифрованные бюллетени. Стирание предотвращается следующим образом: данные на веб-сервере пишутся на постоянные запоминающие устройства, на которые возможно только однократное записывание, а считывать данные можно многократно (ПОСМ) или запись происходит на другие подобные устройства.

Заметим, что хотя для одного варианта осуществления настоящего изобретения, описанного здесь, необходим Интернет для соединения компьютеров, существуют также другие варианты. Например, изобретение может быть реализовано для отдельных компьютеров. Варианты осуществления изобретения могут также использоваться любыми связанными между собой вычислительными машинами для обработки данных. Вместо использования браузера, такие машины могут использовать программное обеспечение клиент-сервер для реализации здесь описанных способов или протоколов.

На фигуре 2 схематическая диаграмма иллюстрирует основной способ применения протокола перетасовывания при проведении голосования. Данная иллюстрация показывает «способ 200». В блоке 202 существуют три зашифрованных бюллетеня, по одному для каждого голосующего: Джо Смита, Салли Джонс и Яна Келлега. В блоке 204 список или рулон с именами голосующих отделяется от зашифрованных бюллетеней, которые показаны в блоке 206. Далее производится однонаправленное еще одно шифрование зашифрованных бюллетеней, оно проводится для того, чтобы получить перетасованный набор бюллетеней, показанный в блоке 208. На основе данного первого перетасовывания вырабатывается доказательство правильности перетасовывания, что показано в блоке 210. Доказательство правильности перетасовывания позволяет третьей стороне убедиться, что ко всем входным данным (бюллетеням) применялась одна и та же операция и не производилось никакого изменения бюллетеней.

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

Протокол перетасовывания представлен выше, как эффективные отдельные подпрограммы, которые можно применять для различных приложений, как, например, схема электронного голосования. Первая стандартная подпрограмма обеспечивает функционирование доказательств между доказывающим и проверяющим относительно масштабируемых, повторных логарифмических умножений. Вторая стандартная подпрограмма обеспечивает функционирование простого протокола перетасовывания и использует доказательства для масштабируемых, повторных логарифмических умножений. Далее третья стандартная подпрограмма реализует общее перетасовывание, когда тасующий не знает показателей степеней. Данная подпрограмма строится на основе второй подпрограммы простого перетасовывания. Четвертая стандартная подпрограмма обобщает третью подпрограмму на случай перетасовывания k-кортежей элементов. Также предусмотрены другие стандартные программы.

Специалистам ясно, что принципы данного изобретения могут быть использованы в различных средах, отличных от Интернет. Например, принципы могут быть использованы в «среде электронной почты», в которой обрабатываются и хранятся бюллетени в виде электронных писем, операции или формы. Вообще, веб-страница или описание дисплея (например, доска объявлений) может быть представлена в формате HTML, XML или WAP, формате электронного письма или любом другом формате, подходящем для отображения информации (включая форматы на основе символов/кодов, форматов растровых изображений и форматов на основе векторной графики). Также вместо Интернета могут использоваться различные каналы связи, такие как локальные вычислительные сети, глобальные вычислительные сети или автоматические соединения одной точки с другой с помощью дискового набора. Различные операции также могут осуществляться в рамках среды «один компьютер», а не среды «клиент/сервер». Каждый голосующий или клиентский компьютер может содержать любую комбинацию программных и аппаратных средств, которые взаимодействуют с сервером. Данные клиентские системы могут включать в себя системы на основе телевидения, устройства для доступа в Интернет, мобильные телефоны/PDA и различные другие потребительские товары, которые могут осуществлять описанные операции.

Вообще, термин «связь», как он используется здесь, относится к любому указателю ресурсов, определяющему ресурс в сети, как, например, описание дисплея организации, проводящей голосование, имеющей сайт или узел в сети. Обычно, несмотря на то, что здесь упоминаются аппаратные платформы, такие как компьютеры голосующих, терминалы и серверы, аспекты данного изобретения в равной степени применимы к узлам сети, имеющим соответствующий указатель ресурсов для определения подобных узлов.

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

Не предполагается, что данное выше описание проиллюстрированных вариантов осуществления данного изобретения является исчерпывающим или ограничивает рамки изобретения описанной конкретной формой. Конкретные варианты осуществления или примеры изобретения описаны здесь с целью иллюстрации, в рамках изобретения возможны различные эквивалентные модификации, что понимают специалисты в соответствующей области. То что здесь было написано об изобретении может также применяться к другим применениям, использующим шифрование, не только к описанной выше системе проведения электронных выборов. Например, описанный протокол может применяться в электронной коммерции, где необходимы как анонимность, так и возможность проверки. Примером этого может служить схемы электронных платежей («электронные наличные»).

В свете данного выше описания можно сделать в изобретении эти и другие изменения. Вообще, в последующих пунктах формулы изобретения используемые термины не должны толковаться так, чтобы ограничивать изобретение рамками конкретных вариантов осуществления, описанных выше и в формуле изобретения, но должны толковаться так, чтобы включать все системы и методы шифрования, которые работают согласно пунктам формулы изобретения для обеспечения секретности данных. Соответственно изобретение не ограничивается каким-то объявлением, но вместо этого границы изобретения должны определяться полностью на основе пунктов формулы изобретения.

В то время как некоторые аспекты изобретения представлены ниже в форме некоторых пунктов формулы изобретения изобретатель рассматривает различные аспекты изобретения в любом количестве пунктов. Например, когда только один аспект изобретения излагается, как реализованный на носителе, который может считывать компьютер, другие аспекты аналогично могут быть реализованы на носителе, который может считывать компьютер. Соответственно, изобретатель оставляет за собой право добавлять дополнительные пункты в формулу изобретения после регистрации заявки с целью добавлять подобные дополнительные формы пунктов формулы изобретения для других аспектов изобретения.

Литература

[1] Р. Крамер, И.Дамгрд, Б.Шонмейкерс. Доказательства частичного знания и упрощенная разработка протоколов защиты свидетелей. Advances in Cryptology - CRYPTO'94, Lecture Notes in Computer Science, стр.174-187, Springer-Verlag, Berlin, 1994.

[2] P. Крамер, Р. Женнаро, Б.Шонмейкерс. Безопасная и оптимально эффективная схема проведения выборов с несколькими уполномоченными. Advances in Cryptology - EUROCRYPTO'97, Lecture Notes in Computer Science, Springer-Verlag, Berlin, 1997.

[3] Д.Чаум и Т.П.Педерсен. База данных в бумажнике с наблюдателями. Advances in Cryptology -CRYPTO'92, Lecture Notes in Computer Science, том 740, стр.89-105, Berlin, 1993, Springer-Verlag.

[4] А. Де Сантис, Г. Ди Креченцо, Г. Персиано и М. Янг. О монотонной формуле замыкания SZK. FOCS 94, стр.454-465.

[5] А. Фиат, А. Шамир. Как доказать свою личность: практические решения задач идентификации и подписи. Advances in Cryptology - CRYPTO'86, Lecture Notes in Computer Science, стр.186-194, Springer-Verlag, New York, 1987.

[6] А. Менечес, П.ван Оршот и С. Ванстоун. Руководство по прикладной криптографии, CRC Press, 1997.

[7] Т. Педерсен. Пороговая криптосистема без доверенной группы. Advances in Cryptology - EUROCRYPTO'91, Lecture Notes in Computer Science, стр. 522-526, Springer-Verlag, 1991.

[8] К. Сако, Дж. Килиан. Схема голосования типа смешивания без квитанций - Практическое решение для реализации кабинки голосования. Advances in Cryptology - EUROCRYPTO'95, Lecture Notes in Computer Science, Springer-Verlag, 1995.

Похожие патенты RU2271574C2

название год авторы номер документа
СХЕМА ГОЛОСОВАНИЯ БЕЗ ПРИНУЖДЕНИЯ 2003
  • Нефф К. Эндрю
RU2292082C2
ОБНАРУЖЕНИЕ ФАЛЬСИФИЦИРОВАННЫХ ИЗБИРАТЕЛЬНЫХ БЮЛЛЕТЕНЕЙ 2002
  • Нефф С. Эндрю
RU2272322C2
СПОСОБ ЭЛЕКТРОННОГО ГОЛОСОВАНИЯ 2003
  • Никишин Н.А.
RU2242793C2
Система и способ определения количества голосов избирателей, собираемых с помощью электронного голосования 2017
  • Чепель Дмитрий Михайлович
  • Алешкин Роман Вячеславович
RU2652443C1
СПОСОБ ПРОВЕДЕНИЯ ТАЙНОГО ГОЛОСОВАНИЯ 2006
  • Зулин Александр Михайлович
RU2321893C2
СПОСОБ ГОЛОСОВАНИЯ С ВЫСОКОНАДЕЖНОЙ БИОМЕТРИЧЕСКОЙ ЗАЩИТОЙ АНОНИМНОСТИ ГОЛОСУЮЩЕГО 2010
  • Иванов Александр Иванович
  • Назаров Игорь Григорьевич
  • Фунтиков Вячеслав Александрович
  • Ефимов Олег Владимирович
  • Язов Юрий Константинович
RU2444063C1
СПОСОБ ТАЙНОГО ГОЛОСОВАНИЯ ИЗБИРАТЕЛЬНЫМИ БЮЛЛЕТЕНЯМИ 2001
  • Макаров Б.А.
RU2178203C1
АВТОМАТИЗИРОВАННАЯ ОПЕРАЦИОННО-ИНФОРМАЦИОННАЯ СИСТЕМА СОПРОВОЖДЕНИЯ ПОДГОТОВКИ И ПРОВЕДЕНИЯ ГОЛОСОВАНИЯ 2005
  • Вешняков Александр Альбертович
  • Ященко Виктор Васильевич
  • Калинин Александр Николаевич
  • Демин Борис Евгеньевич
  • Бурдаков Виктор Иванович
  • Молчанов Владимир Иванович
RU2303816C2
СПОСОБ И СИСТЕМА ПОДГОТОВКИ И ПРОВЕДЕНИЯ ЭЛЕКТРОННОГО ГОЛОСОВАНИЯ 2005
  • Вешняков Александр Альбертович
  • Кабанов Владимир Алексеевич
  • Ященко Вадим Викторович
  • Анцелевич Михаил Александрович
RU2290695C1
Система и способ подачи голоса при электронной системе голосования 2019
  • Николина Александра Михайловна
  • Корунов Александр Сергеевич
  • Сазонов Александр Валентинович
  • Абушинов Очир Валериевич
  • Сергеева Зоя Сергеевна
RU2747450C2

Иллюстрации к изобретению RU 2 271 574 C2

Реферат патента 2006 года ПРОВЕРЯЕМЫЕ СЕКРЕТНЫЕ ПЕРЕТАСОВЫВАНИЯ И ИХ ПРИМЕНЕНИЕ ПРИ ПРОВЕДЕНИИ ЭЛЕКТРОННОГО ГОЛОСОВАНИЯ

Изобретение относится к системам голосования, в которых используется повсеместно проверяемый протокол проведения голосования. Техническим результатом является повышение эффективности голосования. Система содержит сервер и, по меньшей мере, три компьютера избирателей, соединенных с вычислительной сетью. Компьютер первого избирателя выполнен с возможностью перетасовывания полученных электронных мандатов и выработки первого доказательства правильности для первого набора перетасованных мандатов. Компьютер второго избирателя выполнен с возможностью перетасовывания первого набора перетасованных мандатов и выработки второго доказательства правильности для второго набора перетасованных мандатов. Компьютер третьего избирателя выполнен с возможностью перетасовывания второго набора перетасованных мандатов и выработки третьего доказательства правильности для третьего набора перетасованных мандатов. Сервер выполнен с возможностью получения указанных доказательств и проверки и подсчета голосов. 8 н. и 29 з.п. ф-лы, 2 ил.

Формула изобретения RU 2 271 574 C2

1. Система для проведения электронного голосования, использующаяся совместно с вычислительной сетью, содержащая:

по меньшей мере, один сервер, соединенный с обеспечением возможности получать запросы от, по меньшей мере, первого, второго и третьего компьютеров избирателей, соединенных с вычислительной сетью;

где компьютер первого избирателя сконфигурирован с обеспечением возможности получать от сервера комплект электронных мандатов, соответствующих множеству электронных мандатов, полученных от компьютеров избирателей, где каждый электронный мандат является парой алгоритма цифровой подписи (АЦП) или алгоритма Эль-Гамаля и где компьютер первого избирателя сконфигурирован с обеспечением возможности применять секретное однонаправленное криптографическое преобразование с использованием, по крайней мере, первого секретного ключа для анонимного перетасовывания комплекта электронных мандатов и выработки для сервера первого набора перетасованных электронных мандатов, где только компьютер первого избирателя знает соответствие между первым набором перетасованных электронных мандатов и серией электронных мандатов, где помимо указанного компьютер первого избирателя сконфигурирован с обеспечением возможности вырабатывать первое доказательство (линейного размера) правильности для первого набора перетасованных мандатов на основе доказательства для повторного логарифмического умножения и сконфигурирован с обеспечением возможности снабжать первый бюллетень первым связанным с ним мандатом;

где компьютер второго избирателя сконфигурирован с обеспечением возможности получать от сервера первый набор перетасованных электронных мандатов, чтобы применять криптографическое преобразование с использованием, по крайней мере, второго секретного ключа с целью анонимного перетасовывания первого набора электронных мандатов и выработки для сервера второго набора перетасованных электронных мандатов, где только компьютер второго избирателя знает соответствие между вторым набором перетасованных электронных мандатов и первым набором перетасованных электронных мандатов и где помимо указанного компьютер второго избирателя сконфигурирован с обеспечением возможности вырабатывать второе доказательство (линейного размера) правильности для второго набора перетасованных мандатов на основе доказательства для повторного логарифмического умножения, при этом второй бюллетень содержит второй мандат, связанный с ним;

где компьютер третьего избирателя сконфигурирован с обеспечением возможности получать второй набор перетасованных электронных мандатов, чтобы совершать криптографическое преобразование с использованием, по крайней мере, третьего секретного ключа с целью анонимного перетасовывания второго набора электронных мандатов и выработки для сервера третьего набора перетасованных электронных мандатов, где только компьютер третьего избирателя знает соответствие между вторым набором перетасованных электронных мандатов и третьим набором перетасованных электронных мандатов и где помимо указанного компьютер третьего избирателя сконфигурирован с обеспечением возможности вырабатывать третье доказательство (линейного размера) правильности для третьего набора перетасованных мандатов на основе доказательства для повторного логарифмического умножения, при этом третий бюллетень содержит третий прикрепленный мандат; и

где сервер сконфигурирован с обеспечением возможности получать доказательства правильности от компьютеров первого, второго и третьего избирателей и проверять корректность перетасованных мандатов и получать, проверять и подсчитывать первые, вторые и третьи бюллетени, содержащие соответственно первый, второй и третий прикрепленные мандаты.

2. Система по п.1, отличающаяся тем, что дополнительно содержит:

множество компьютеров уполномоченных лиц, соединенных с вычислительной сетью, где первый, второй и третий бюллетени шифруются с помощью порогового, ассиметричного процесса шифрования на основе дискретного логарифмирования с использованием групп Zp или группы эллиптических кривых;

и где каждый из множества компьютеров уполномоченных, в свою очередь,

получает, по меньшей мере, первый, второй и третий зашифрованные бюллетени,

секретно перетасовывает бюллетени;

применяет часть ключа расшифрования к секретно перетасованным бюллетеням с целью частично расшифровать секретно перетасованные бюллетени и

передает частично расшифрованные и секретно перетасованные бюллетени следующему компьютеру уполномоченного лица.

3. Система по п.1, отличающаяся тем, что компьютеры первого, второго и третьего избирателей сконфигурированы с обеспечением возможности предоставлять серверу, по крайней мере, идентификационную информацию первого, второго и третьего открытых ключей в множестве электронных мандатов, соответствующих первому, второму и третьему компьютерам соответственно, и

где сервер далее сконфигурирован с обеспечением возможности в ответ на перечисленные выше действия удалять первый, второй и третий открытые ключи.

4. Система по п.1, отличающаяся тем, что вычислительная сеть содержит Всемирную Паутину, где каждый из компьютеров первого, второго и третьего голосующих имеет программу - веб-браузер.5. Система по п.1, отличающаяся тем, что, по меньшей мере, один из компьютеров первого, второго и третьего голосующих представляет собой карманный компьютер, мобильный телефон, переносной компьютер, интерактивный телевизионный терминал или устройство для доступа к Интернет.6. Компьютерная система, предназначенная для приема последовательности элементов, включающая в себя:

компьютер, соединенный с вычислительной сетью и сконфигурированный для

приема последовательности электронных элементов данных, представляющих собой отдельные файлы данных,

совершения криптографического преобразования с использованием, по меньшей мере, первого секретного значения для того, чтобы анонимно переставить последовательность электронных элементов данных и выработать первую перетасованную последовательность электронных элементов данных, где сервер знает соответствие между первой перетасованной последовательностью электронных элементов данных и последовательностью электронных элементов данных, и

порождения первого доказательства (линейного размера) правильности для первой перетасованной последовательности электронных элементов данных на основе доказательства для повторного логарифмического умножения, использующего двоичный оператор, где каждый элемент данных в последовательности элементов данных связан с общим значением основания и где проверка доказательства корректности использует трех-ходовое доказательство знания с открытой монетой, где в ответ на запрос о проверке компьютер вычисляет набор показателей степеней, вычисление происходит посредством решения соответствующих линейных уравнений.

7. Система по п.6, отличающаяся тем, что получаемая последовательность электронных элементов данных зашифровывается с использованием Zp или группы эллиптических кривых, при этом применяется неизвестный компьютеру ключ, и где компьютер далее сконфигурирован с обеспечением возможности:

получать набор случайно сгенерированных значений еi от компьютера проверяющего;

секретно вырабатывать набор значений Di исходя из секретного однонаправленного криптографического преобразования, использующего полученный набор значений еi и секретно выработанный набор значений;

переставлять последовательность электронных элементов данных с обеспечением получения первой перетасованной последовательности элементов с учетом значений Di и секретного значения γ и

передавать компьютеру проверяющего значения Di и набор значений доказательства исходя из криптографического преобразования в качестве доказательства знания того, что сервер имеет доступ к информации о том, как криптографическое преобразование переставило последовательность электронных элементов данных и как выработалась первая перетасованная последовательность элементов, при этом информация о криптографическом преобразовании не разглашается компьютеру проверяющего.

8. Система по п.6, отличающаяся тем, что сервер дополнительно сконфигурирован с обеспечением возможности:

получать множество открытых ключей от соответствующего множества индивидов, где каждый из множества индивидов имеет секретный ключ, соответствующий одному ключу из множества открытых ключей;

получать запрос от одного из множества индивидов, имеющего один секретный ключ;

предоставлять, по крайней мере, поднабор набора открытых ключей в ответ на запрос индивида;

получать файл и перестановку набора открытых ключей и линейного размера - доказательство корректности для перетасованных открытых ключей, полученное на основе доказательства для повторного логарифмического умножения, и значение, соответствующее одному секретному ключу, где данное значение связано с файлом и обеспечивает доказательство того, что один индивид знает один секретный ключ, при этом значение секретного ключа не раскрывается;

проверять доказательство корректности;

проверять, что значение математически связано с одним из открытых ключей и файлом, и

уменьшать множество открытых ключей на один упомянутый ключ.

9. Система по п.6, отличающаяся тем, что последовательность электронных элементов - это открытые ключи и где сервер дополнительно сконфигурирован с обеспечением возможности проверять (в ответ на запрос от индивида), что у индивида есть значение, которое однозначно и математически связано с одним из открытых ключей и если так, то сервер предоставляет сертификат данному индивиду.10. Способ получения данных, включающий в себя:

получение запроса от одного из множества индивидов, имеющего секретный ключ, соответствующий одному из множества открытых ключей;

предоставление, по крайней мере, перетасованного поднабора набора открытых ключей в ответ на запрос индивида;

получение файла F и информацию по аутентификации, состоящих из

(1) нового перетасованного набора открытых ключей S,

(2) доказательства корректности перетасовывания для нового перетасованного набора открытых ключей и

(3) значение подписи х от индивида, посылавшего запрос, и принятие аутентификации при условии, что

(а) успешно пройдет проверка доказательства корректности перетасовывания и

(б) V(F, x, s0) принимает значение «истина», где V есть функция проверки подписи и s0 - это один из открытых ключей из нового перетасованного набора открытых ключей S.

11. Способ получения данных, включающий в себя:

получение запроса от компьютера, связанного с одним из секретных ключей, соответствующего одному открытому ключу из множества открытых ключей, где каждый ключ из множества открытых ключей соответствует одному ключу из множества секретных ключей;

предоставление компьютеру, пославшему запрос, по крайней мере, поднабора из перетасованного набора открытых ключей;

получение файла от компьютера, пославшего запрос;

получение нового поднабора переставленного набора открытых ключей и линейного размера доказательства корректности для нового переставленного поднабора открытых ключей, полученное на основе доказательства для повторного логарифмического умножения, и значение, соответствующее одному секретному ключу, где данное значение связано с файлом и обеспечивает доказательство того, что компьютер, пославший запрос, обладает знаниями об одном секретном ключе, при этом значение секретного ключа не раскрывается;

проверку доказательства корректности и

проверку того, что упомянутое значение математически связано, по существу, однозначным образом с одним из открытых ключей и файлом.

12. Способ по п.11, отличающийся тем, что дополнительно включает в себя получение от компьютера, пославшего запрос, по крайней мере, указателя одного из открытых ключей в новом поднаборе перетасованных открытых ключей.13. Способ по п.11, отличающийся тем, что дополнительно включает в себя процедуру удаления одного открытого ключа из нового поднабора перетасованных открытых ключей.14. Способ по п.11, отличающийся тем, что дополнительно включает:

последовательное получение от каждого из множества уполномоченных лиц перетасованного набора открытых ключей Н', полученное на основе криптографической операции тасования, проведенной на, по крайней мере, поднаборе набора открытых ключей Н с целью получения перетасованного набора открытых ключей Н';

последовательное получение от каждого из уполномоченных записей проверки операции криптографического перетасовывания и

проверку корректности операции криптографического перетасовывания, проводимую с учетом записей проверки; и если данная проверка завершилась успешно, то перетасованному набору открытых ключей изменяется обозначение с Н' на Н.

15. Способ по п.11, отличающийся тем, что дополнительно включает в себя:

в момент времени после получения, по крайней мере, некоторого количества ключей из набора открытых ключей, по крайней мере, поднабор далее полученного множества открытых ключей обозначается через полученный перетасованный набор открытых ключей, где перетасованный набор открытых ключей получен от третьей стороны.

16. Способ по п.11, отличающийся тем, что дополнительно включает в себя:

выдачу сертификата, идущую после шагов проверки;

затем получение выданного сертификата от одного из индивидов и предоставление электронного бюллетеня одному индивиду.

17. Способ по п.11, отличающийся тем, что дополнительно включает в себя цифровую подпись полученного запроса с целью выработать сертификат инфраструктуры открытых ключей («PKI»).18. Способ по п.11, отличающийся тем, что дополнительно включает в себя:

получение выданного сертификата от, по крайней мере, некоторых пользовательских компьютеров и предоставление начальных электронных бюллетеней в ответ на это и

получение расшифрованных бюллетеней голосования от, по крайней мере, некоторого количества из компьютеров пользователей.

19. Способ обеспечения безопасности передачи данных между доказывающим компьютером и компьютером проверяющим, включающий в себя:

секретное перетасовывание первого набора электронных элементов данных относительно второго набора электронных элементов данных с целью получения перетасованного набора;

выработку линейного по размеру доказательства корректности для перетасованного набора исходя из доказательства, что первый набор корней первого полиномиального уравнения совпадает со вторым набором корней для второго полиномиального уравнения, умноженному на фиксированную константу и

линейного размера доказательство корректности того, что первый набор корней равен второму набору корней, умноженному на константу, где доказательство получается следующим образом: определяется вторая фиксированная константа, вычисляется первое полиномиальное уравнение в первой случайной точке и получается первое значение, вычисляется второе полиномиальное уравнение в первой случайной точке и получается второе значение и определяется, что второе значение равно произведению первого значения на вторую установленную константу.

20. Способ по п.19, отличающийся тем, что, по меньшей мере, некоторые из элементов первой последовательности являются электронными бюллетенями.21. Способ по п.19, отличающийся тем, что, по меньшей мере, некоторые из элементов перетасованного набора являются парами алгоритма Эль-Гамаля.22. Способ по п.19, отличающийся тем, что дополнительно содержит повторение секретного перетасовывания, выработки и предоставления l-кортежей элементов входной последовательности элементов.23. Способ по п.19, отличающийся тем, что секретное перетасовывание первого набора элементов включает в себя получение подмножества множества идентификационных элементов, где каждый идентификационный элемент в наборе соответствует индивиду и дополнительно включает в себя получение анонимного сертификата в случае, если проверяющий компьютер проверяет доказательство корректности.24. Система авторизации зашифрованных бюллетеней в системе электронного голосования, которая использует вычислительную сеть, содержащая:

множество компьютеров уполномоченных, соединенных с вычислительной сетью с обеспечением возможности получать наборы бюллетеней, зашифрованных с помощью порогового асимметричного процесса шифрования с дискретным логарифмом;

где каждый из множества компьютеров уполномоченных сконфигурирован с обеспечением возможности:

получать, по крайней мере, наборы зашифрованных бюллетеней;

секретно перетасовывать бюллетени;

применять часть ключа для расшифрования к секретно перетасованным бюллетеням с целью частично расшифровать секретно перетасованные бюллетени;

вырабатывать доказательства корректности для перетасованных и частично расшифрованных бюллетеней и

передавать частично расшифрованные и секретно перетасованные бюллетени следующему компьютеру уполномоченных и где последний компьютер уполномоченных применяет последнюю часть ключа расшифрования к секретно перетасованным бюллетеням с получением в результате полностью расшифрованных секретно перетасованных бюллетеней.

25. Система по п.24, отличающаяся тем, что каждый из компьютеров уполномоченных сконфигурирован с обеспечением возможности, по существу, одновременно:

(1) секретно перетасовывать бюллетени,

(2) применять часть ключа для расшифрования к секретно перетасованным бюллетеням с целью частично расшифровать секретно перетасованные бюллетени и

(3) вырабатывать доказательства корректности для частично расшифрованных бюллетеней.

26. Носитель данных, которые можно прочитать на компьютере и содержащие операторы, которые, будучи выполнены на компьютере, осуществляют тасование последовательности электронных элементов данных, содержащих:

осуществление запроса с компьютера, связанного с одним секретным ключом, соответствующим одному открытому ключу из множества открытых ключей, где каждый ключ из множества открытых ключей соответствует одному ключу из множества секретных ключей;

получение, по крайней мере, перетасованного поднабора открытых ключей;

предоставление файла;

выработку нового перетасованного поднабора открытых ключей и доказательства корректности для нового перетасованного поднабора открытых ключей, полученного на основе доказательства для повторного логарифмического умножения, и значения, соответствующего одному секретному ключу, где данное значение связано с файлом и обеспечивает доказательство знания одного секретного ключа, при этом значение секретного ключа не раскрывается.

27. Носитель данных по п.26, отличающийся тем, что данный носитель информации является логическим узлом вычислительной сети, получающим последовательность электронных элементов данных и оглавление.28. Носитель данных по п.26, отличающийся тем, что данный носитель информации является диском с данными, считываемыми на компьютере.29. Носитель данных по п.26, отличающийся тем, что данный носитель информации является средой передачи данных, передающей сгенерированный сигнал данных, содержащий оглавление.30. Носитель данных по п.26, отличающийся тем, что данный носитель информации представляет собой память компьютерной системы.31. Носитель данных по п.26, отличающийся тем, что данный носитель информации является линией Интернет-связи с сервером ответственных за проведение голосования.32. Носитель данных по п.26, отличающийся тем, что доказательство корректности имеет линейный размер и доказательство включает вычисление первого и второго полиномиальных уравнений и где подсчет первого и второго полиномов в случайно выбранной точке приводит к тому же вычисленному значению.33. Способ, реализованный на компьютере, предназначенный для осуществления перемешивания электронных элементов данных, включающий в себя:

получение, по крайней мере, исходного поднабора кратных открытых ключей, где каждому открытому ключу в исходном поднаборе открытых ключей соответствует один секретный ключ в наборе секретных ключей, и

перемешивание исходного поднабора открытых ключей с целью выработки перемешанного набора открытых ключей, где невозможно проследить связь между перемешанным набором открытых ключей и исходным поднабором открытых ключей, но где существует соответствие между перемешанным набором открытых ключей и исходным поднабором открытых ключей.

34. Способ по п.33, отличающийся тем, что дополнительно включает в себя:

предоставление файла и

выработку доказательства корректности для нового перемешанного поднабора открытых ключей исходя из доказательства для повторного логарифмического умножения и выработку значения, соответствующего одному секретному ключу, где данное значение связано с файлом и обеспечивает доказательство знания одного секретного ключа без раскрытия информации об этом секретном ключе.

35. Способ по п.33, отличающийся тем, что дополнительно включает в себя выработку доказательства корректности для перемешанного набора открытых ключей, где доказательство корректности доказывает то, что перемешанный набор открытых ключей соответствует набору секретных ключей.36. Способ по п.33, отличающийся тем, что перемешанный поднабор открытых ключей соответствует последовательности бюллетеней.37. Способ по п.33, отличающийся тем, что дополнительно включает в себя выработку доказательства корректности для перемешанного набора открытых ключей, которое включает вычисление первого и второго полиномиальных уравнений, где подсчет первого и второго полиномов в случайно выбранной точке приводит к тому же вычисленному значению.

Документы, цитированные в отчете о поиске Патент 2006 года RU2271574C2

RU 98120494 A, 20.09.2000.RU 2159466 C1, 20.11.2000.WO 96/02044 A1, 25.01.1996.US 5610383 A, 11.03.1997.

RU 2 271 574 C2

Авторы

Нефф Эндрю С.

Даты

2006-03-10Публикация

2002-03-25Подача