Отказ от ответственности: у меня нет доказательств безопасности для этой схемы. Критика приветствуется.
Чтобы упростить запись, я называю две пары ключей (закрытый и открытый) $(а, А = а\cdot G)$ и $(b, B = b\cdot G)$ на базовой точке $G$. Строчные буквы — скаляры, прописные буквы — точки ЕС. $H_s()$ означает хэш и сокращение (мод порядок $G$) в скаляр. Все операции между скалярами (такие как вычитание и умножение) выполняются по модулю порядка $G$.
Во-первых, объявить $D = а\cdot b\cdot G$.
позволять $m = H_s(\text{"сообщение подписывается"})$ как одноразовое сообщение, которое предотвратит повторное использование этой подписи в разных контекстах.
Чтобы доказать $Д$ действительно построен правильно, используйте расширенную подпись Шнорра:
Подпись $(D, с, г)$ куда $к$ является случайным скаляром, $c = H_s(m \mathbin\| k\cdot G \mathbin\| k\cdot B)$ и $r = k - c\cdot a$.
Подпись проверяется проверкой $c \overset{?}{=} H_s(m \mathbin\| r\cdot G + c\cdot A \mathbin\| r\cdot B + c\cdot D)$ и проверив $Д$ является действительной точкой, а не точкой в бесконечности.
Это доказывает и то, и другое $а$ известно, и что $а$ является закрытым ключом точки $А$ на генераторной точке $G$, а также приватный ключ точки $Д$ на генераторной точке $В$. Следовательно $Д$ доказано, что $а\cточка б\cточка G$.
Наконец, нам нужно создать вторую подпись, доказывающую, что кто-то знает и то, и другое. $а$ и $b$. Мы можем сделать это, доказав знание закрытого ключа точки $Д$ на базовой точке $G$ (таким образом подтверждая знание $а\cточка б$).
Подпись $(с', г')$ куда $к'$ является случайным скаляром, $c' = H_s(m \mathbin\| k'\cdot G)$ и $r' = k' - c'\cdot a\cdot b$.
Подпись проверяется проверкой $c' \overset{?}{=} H_s(m \mathbin\| r'\cdot G + c'\cdot D)$.
Если бы Алиса вступила в сговор с Евой, а Ева не раскрыла бы $b$, Алиса должна будет раскрыть свой закрытый ключ $а$ к Еве. Знание $к'$ одним из участников сговора позволит этому участнику сговора вычислить закрытый ключ другого участника сговора. Безопасность этой схемы зависит от того, что Алиса математически не может каким-либо образом сговориться с Евой, чтобы построить $г'$ так что либо Алиса, либо Ева могли математически определить закрытый ключ другого.
Таким образом, общая подпись $(D, с, г, с', г')$ и является $5\cdot 32 = 160$ байт.