Initial commit

This commit is contained in:
user
2026-07-12 14:06:45 +04:00
commit a75028d68f
148 changed files with 3275 additions and 0 deletions
@@ -0,0 +1,19 @@
from secrets import randbelow
from .public_params import PublicParams
class Participant:
"""
Участник протокола (Алиса или Боб).
Держит свой секрет, публикует g^secret mod p,
умеет вычислять общий ключ.
"""
def __init__(self, params: PublicParams, secret: int | None = None):
self.params = params
self.secret = secret if secret is not None else (2 + randbelow(9998))
self.public_value = pow(self.params.generator,
self.secret, self.params.prime_modulus)
def compute_shared_key(self, other_public: int) -> int:
return pow(other_public, self.secret, self.params.prime_modulus)