є конверт, бачить штамп Боба і довіряє джерелу інформації, не знаючи це джерело.
Принцип в наступному. Той, хто буде засвідчувати нашу особистість (валідатор), не повинен знати, за кого ми віддали свій голос в бюлетені. А той, хто вважає наш бюлетень (лічильник), не повинен знати нашу особистість. Отже, наші повідомлення валідатора і лічильнику повинні відрізнятися один від одного, до того ж так, щоб валідатор і лічильник, змовившись, не могли визначити, який бюлетень кому належить. Нехай валідатор підписує повідомлення, помноживши його на 2, тобто ми відправляємо валідатора число, він повертає нам подвоєне число в якості підпису, і лічильник такий підпис визнає істинною. Ми відправляємо валідатора 1, він нам повертає 2, ми пересилаємо лічильнику пару (1,2), лічильник дивиться, що так, дійсно, 2 рівно в 2 рази більше 1 і визнає підпис істинною. А тепер ми робимо інакше, ми беремо наше повідомлення (1), відправляємо валідатора подвоєне повідомлення (2), він його підписує, повертає підпис (4), ми виробляємо зворотне перетворення, ділимо четвірку на два, отримуємо справжню підпис (2) для нашого повідомлення. Таким чином, валідатор не знав нашого повідомлення (адже він знає, на скільки спочатку повідомлення помножили), але з його підпису нашого замаскованого повідомлення ми відновили справжню підпис для нашого секретного повідомлення. p> Таким чином, ми отримуємо загальну схему:
Виборець встановлює захищене з'єднання з валідатором, тобто по-перше, виборець точно знає, що валідатор це валідатор, а валідатор точно знає, що виборець це виборець;
Виборець генерує виборчий бюлетень, голосує за будь-яку партію, додає до бюлетеню унікальну послідовність символів і хешірует бюлетень;
Виборець додає до хешу бюлетеня маскує множник і направляє на підпис валідатора;
Валідатор перевіряє, чи голосував вже цей виборець. У разі негативної перевірки, підписує замаскований хеш;
Виборець витягує з підпису маскує множник і отримує коректну підпис для свого оригінального хешу бюлетеня;
Виборець встановлює незахищене відкрите з'єднання з лічильником з будь-якого місця, яке вважає анонімним, і пересилає підписаний бюлетень.
Лічильник перевіряє коректність підпису бюлетеня, унікальність ідентифікатора, якщо перевірка позитивна, дописує +1 голос зазначеної партії.
У разі необхідності, виборець за своєю унікальною ідентифікуючої сходинці зможе перевірити, за яку з партій був зарахований його голос.
СПИСОК
ГОСТ Р 34.10-2001 Інформаційна технологія. Криптографічний захист інформації. Процеси формування та перевірки електронного цифрового підпису. - М.: ІПК Вид-во стандартів, 2002. - 16 с. p align="justify"> Баричев С.Г., Сєров Р.Є. Основи сучасної криптографії: навчальний посібник. - М.: Гаряча лінія - Телеком, 2002. - 152 с. p> Блог Habrahabr, стаття В«Сліпа підпис на основі ГОСТ 34.10-2001В». <# "Justify"> 1. br/>